@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..800;1,14..32,300..700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;1,400&family=Instrument+Serif:ital@0;1&display=swap";:root,[data-theme=dark]{--bg: #06060A;--bg-elevated: #0E0E14;--panel: #0E0E14;--panel-raised: #15151E;--panel-hover: #1C1C28;--surface-0: #06060A;--surface-1: #0E0E14;--surface-2: #15151E;--surface-3: #1C1C28;--surface-4: #222233;--line: #252533;--line-soft: #1A1A26;--text: #F0F0F5;--text-muted: #9898AA;--text-faint: #5E5E72;--accent: #818CF8;--accent-2: #A78BFA;--accent-dim: #312E81;--accent-soft: rgba(129, 140, 248, .1);--accent-tonal: rgba(99, 102, 241, .08);--gradient: linear-gradient(135deg, #818CF8 0%, #A78BFA 100%);--gradient-hero: linear-gradient(135deg, #6366F1 0%, #8B5CF6 50%, #A78BFA 100%);--due: #FBBF24;--danger: #F87171;--danger-soft: rgba(248, 113, 113, .1);--success: #34D399;--success-soft: rgba(52, 211, 153, .1);--shadow-xs: 0 1px 2px rgba(0,0,0,.4);--shadow-sm: 0 2px 8px rgba(0,0,0,.35);--shadow-md: 0 8px 24px rgba(0,0,0,.4);--shadow-lg: 0 20px 48px rgba(0,0,0,.5);--shadow-glow: 0 0 0 1px rgba(129,140,248,.2), 0 8px 32px rgba(99,102,241,.15);--shadow-glow-sm: 0 0 0 1px rgba(129,140,248,.15);--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--sans: "Inter", -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--serif: "Instrument Serif", ui-serif, Georgia, serif;--ease-std: cubic-bezier(.05, .7, .1, 1);--ease-exit: cubic-bezier(.3, 0, 1, 1);--ease-decel: cubic-bezier(0, 0, .2, 1);--ease-accel: cubic-bezier(.4, 0, 1, 1);--dur-fast: .12s;--dur-std: .25s;--dur-slow: .4s;color-scheme:dark}[data-theme=light]{--bg: #F6F6FC;--bg-elevated: #FFFFFF;--panel: #FFFFFF;--panel-raised: #F0F0F8;--panel-hover: #E8E8F4;--surface-0: #F6F6FC;--surface-1: #FFFFFF;--surface-2: #F0F0F8;--surface-3: #E8E8F4;--surface-4: #E0E0EC;--line: #DEDEED;--line-soft: #EAEAF5;--text: #0C0C1A;--text-muted: #4A4A62;--text-faint: #9090A8;--accent: #4F46E5;--accent-2: #7C3AED;--accent-dim: #C7C5FD;--accent-soft: rgba(79, 70, 229, .08);--accent-tonal: rgba(99, 102, 241, .05);--gradient: linear-gradient(135deg, #4F46E5 0%, #7C3AED 100%);--gradient-hero: linear-gradient(135deg, #6366F1 0%, #8B5CF6 50%, #A78BFA 100%);--due: #D97706;--danger: #DC4C33;--danger-soft: rgba(220, 76, 51, .08);--success: #059669;--success-soft: rgba(5, 150, 105, .08);--shadow-xs: 0 1px 2px rgba(15,15,30,.05);--shadow-sm: 0 2px 8px rgba(15,15,30,.07);--shadow-md: 0 8px 24px rgba(15,15,30,.09);--shadow-lg: 0 20px 48px rgba(15,15,30,.12);--shadow-glow: 0 0 0 1px rgba(79,70,229,.2), 0 8px 24px rgba(99,102,241,.12);--shadow-glow-sm: 0 0 0 1px rgba(79,70,229,.15);--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--sans: "Inter", -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--serif: "Instrument Serif", ui-serif, Georgia, serif;--ease-std: cubic-bezier(.05, .7, .1, 1);--ease-exit: cubic-bezier(.3, 0, 1, 1);--ease-decel: cubic-bezier(0, 0, .2, 1);--ease-accel: cubic-bezier(.4, 0, 1, 1);--dur-fast: .12s;--dur-std: .25s;--dur-slow: .4s;color-scheme:light}[data-theme=dark-mono]{--bg: #080809;--bg-elevated: #101011;--panel: #101011;--panel-raised: #181819;--panel-hover: #202022;--surface-0: #080809;--surface-1: #101011;--surface-2: #181819;--surface-3: #202022;--surface-4: #282829;--line: #2A2A2D;--line-soft: #1E1E20;--text: #F4F4F5;--text-muted: #9898A0;--text-faint: #5A5A62;--accent: #E8E8EC;--accent-2: #B8B8C0;--accent-dim: #6A6A72;--accent-soft: rgba(232,232,236,.08);--accent-tonal: rgba(232,232,236,.05);--gradient: linear-gradient(135deg, #E8E8EC 0%, #B0B0BA 100%);--gradient-hero: linear-gradient(135deg, #FFFFFF 0%, #909098 100%);--due: #D4D4DC;--danger: #E8E8EC;--danger-soft: rgba(232,232,236,.1);--success: #A0A0A8;--success-soft: rgba(160,160,168,.1);--shadow-xs: 0 1px 2px rgba(0,0,0,.45);--shadow-sm: 0 2px 8px rgba(0,0,0,.4);--shadow-md: 0 8px 24px rgba(0,0,0,.45);--shadow-lg: 0 20px 48px rgba(0,0,0,.55);--shadow-glow: 0 0 0 1px rgba(255,255,255,.14), 0 8px 24px rgba(255,255,255,.06);--shadow-glow-sm: 0 0 0 1px rgba(255,255,255,.1);--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-pill: 999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--sans:"Inter",-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--serif:"Instrument Serif",ui-serif,Georgia,serif;--ease-std:cubic-bezier(.05,.7,.1,1);--ease-exit:cubic-bezier(.3,0,1,1);--ease-decel:cubic-bezier(0,0,.2,1);--ease-accel:cubic-bezier(.4,0,1,1);--dur-fast:.12s;--dur-std:.25s;--dur-slow:.4s;color-scheme:dark}[data-theme=light-mono]{--bg: #F8F8F8;--bg-elevated: #FFFFFF;--panel: #FFFFFF;--panel-raised: #F0F0F0;--panel-hover: #E8E8E8;--surface-0: #F8F8F8;--surface-1: #FFFFFF;--surface-2: #F0F0F0;--surface-3: #E8E8E8;--surface-4: #E0E0E0;--line: #E0E0E0;--line-soft: #EBEBEB;--text: #111111;--text-muted: #666670;--text-faint: #A0A0A8;--accent: #111111;--accent-2: #444450;--accent-dim: #444450;--accent-soft: rgba(17,17,17,.06);--accent-tonal: rgba(17,17,17,.04);--gradient: linear-gradient(135deg, #111111 0%, #555560 100%);--gradient-hero: linear-gradient(135deg, #000000 0%, #666670 100%);--due: #444450;--danger: #111111;--danger-soft: rgba(17,17,17,.06);--success: #808088;--success-soft: rgba(128,128,136,.08);--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 2px 8px rgba(0,0,0,.05);--shadow-md: 0 8px 24px rgba(0,0,0,.07);--shadow-lg: 0 20px 48px rgba(0,0,0,.09);--shadow-glow: 0 0 0 1px rgba(0,0,0,.12), 0 8px 24px rgba(0,0,0,.06);--shadow-glow-sm: 0 0 0 1px rgba(0,0,0,.1);--radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-pill:999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--sans:"Inter",-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--serif:"Instrument Serif",ui-serif,Georgia,serif;--ease-std:cubic-bezier(.05,.7,.1,1);--ease-exit:cubic-bezier(.3,0,1,1);--ease-decel:cubic-bezier(0,0,.2,1);--ease-accel:cubic-bezier(.4,0,1,1);--dur-fast:.12s;--dur-std:.25s;--dur-slow:.4s;color-scheme:light}[data-theme=dark-mono] .badge-hard,[data-theme=light-mono] .badge-hard{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:700}[data-theme=dark-mono] .badge-medium,[data-theme=light-mono] .badge-medium{font-weight:600}[data-theme=dark-mono] .badge-easy,[data-theme=light-mono] .badge-easy{opacity:.75}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01";transition:background-color var(--dur-std) var(--ease-decel),color var(--dur-std) var(--ease-decel)}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}img,svg{display:block}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.mono{font-family:var(--mono)}.serial{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text-faint);font-size:11px;letter-spacing:.04em}.eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);line-height:1.3}.display-serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em;line-height:1.1}.hairline{border-color:var(--line)!important}.card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);background-image:linear-gradient(var(--accent-tonal),var(--accent-tonal));box-shadow:var(--shadow-sm);transition:border-color var(--dur-std) var(--ease-std),box-shadow var(--dur-std) var(--ease-std),transform var(--dur-fast) var(--ease-std)}.card-hover:hover{border-color:var(--accent-dim);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.01em;padding:8px 16px;border:1px solid var(--line);background:var(--panel-raised);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:border-color var(--dur-fast) var(--ease-std),background var(--dur-fast) var(--ease-std),color var(--dur-fast) var(--ease-std),box-shadow var(--dur-fast) var(--ease-std),transform var(--dur-fast) var(--ease-std)}.btn:hover:not(:disabled){border-color:var(--text-muted);background:var(--panel-hover);box-shadow:var(--shadow-xs)}.btn:active:not(:disabled){transform:scale(.97);box-shadow:none}.btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.btn-accent{border-color:transparent;color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.btn-accent:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:var(--shadow-glow-sm)}.btn-danger{border-color:transparent;color:var(--danger);background:var(--danger-soft)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 18%,transparent)}.btn-gradient{border:none;background:var(--gradient);color:#fff;font-weight:600;letter-spacing:.01em;box-shadow:var(--shadow-glow);padding:10px 20px}.btn-gradient:hover:not(:disabled){filter:brightness(1.06);box-shadow:var(--shadow-glow),var(--shadow-sm)}.field{width:100%;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 14px;font-size:14px;line-height:1.5;transition:border-color var(--dur-fast) var(--ease-std),box-shadow var(--dur-fast) var(--ease-std);outline:none}.field:hover{border-color:var(--text-muted)}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field::placeholder{color:var(--text-faint)}.tag-pill{display:inline-flex;align-items:center;gap:4px;font-family:var(--sans);font-size:12px;font-weight:500;padding:3px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--text-muted);background:var(--panel-raised);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-std),color var(--dur-fast) var(--ease-std),background var(--dur-fast) var(--ease-std)}.badge-easy{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,transparent)}.badge-medium{color:var(--due);border-color:color-mix(in srgb,var(--due) 40%,transparent)}.badge-hard{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.progress-track{height:6px;border-radius:var(--radius-pill);background:var(--line-soft);overflow:hidden}.progress-fill{height:100%;background:var(--gradient);border-radius:var(--radius-pill);transition:width var(--dur-slow) var(--ease-decel)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.variant-accordions{display:none}@media (max-width: 640px){.variant-tabs,.variant-tab-panel{display:none!important}.variant-accordions{display:block}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:var(--shadow-glow-sm)}50%{box-shadow:var(--shadow-glow)}}.page-enter{animation:fadeIn var(--dur-std) var(--ease-decel) both}.rise-in{animation:riseIn var(--dur-slow) var(--ease-std) both}.stagger-item{animation:riseIn var(--dur-slow) var(--ease-std) both;animation-delay:calc(min(var(--i, 0),14)*25ms)}.pop-in{animation:scaleIn .18s var(--ease-std) both}.fade-in{animation:fadeIn var(--dur-std) var(--ease-decel) both}.skeleton{position:relative;overflow:hidden;background:var(--line-soft);border-radius:var(--radius-xs);background-image:linear-gradient(90deg,var(--line-soft) 25%,var(--panel-hover) 50%,var(--line-soft) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .65s linear infinite;display:inline-block;flex-shrink:0}.clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.thin-scroll{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.thin-scroll::-webkit-scrollbar{width:6px;height:6px}.thin-scroll::-webkit-scrollbar-track{background:transparent}.thin-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}.thin-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.kbd{font-family:var(--mono);font-size:11px;padding:2px 7px;border:1px solid var(--line);border-bottom-width:2px;border-radius:var(--radius-xs);background:var(--panel-raised);color:var(--text-muted);min-width:22px;text-align:center;display:inline-block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008a;backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);display:grid;place-items:center;z-index:100;padding:var(--space-md);animation:fadeIn .15s var(--ease-decel) both}.modal-panel{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:440px;width:100%;max-height:82vh;overflow-y:auto;animation:scaleIn .22s var(--ease-std) both}.flow-node{transition:background var(--dur-fast) var(--ease-std)}.flow-arrow{transition:color var(--dur-fast) var(--ease-std)}.nav-links{display:flex;gap:18px;flex-wrap:wrap}.nav-toggle,.nav-drawer{display:none}@media (max-width: 640px){.nav-links,.nav-toggle{display:none}main{padding:18px 16px calc(72px + env(safe-area-inset-bottom,0px))!important}}@media (min-width: 641px) and (max-width: 720px){.nav-links{display:none}.nav-toggle{display:inline-flex;align-items:center;justify-content:center}.nav-drawer.open{display:flex;flex-direction:column;gap:2px;position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border-bottom:1px solid var(--line);padding:var(--space-sm) var(--space-md) var(--space-md);box-shadow:var(--shadow-md);animation:slideUp .18s var(--ease-std) both;z-index:50}.nav-drawer a{padding:11px 4px;border-bottom:1px solid var(--line-soft)!important}}.bottom-tab-bar{display:none}@media (max-width: 640px){.bottom-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-elevated);background-image:linear-gradient(var(--accent-tonal),var(--accent-tonal));border-top:1px solid var(--line);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);z-index:50;align-items:stretch;justify-content:space-around}}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;padding:6px 4px;color:var(--text-faint);text-decoration:none;font-size:10px;font-weight:500;letter-spacing:.01em;position:relative;transition:color var(--dur-fast) var(--ease-std);cursor:pointer;background:none;border:none}.tab-item.active{color:var(--accent)}.tab-item-icon{font-size:20px;line-height:1;transition:transform var(--dur-fast) var(--ease-std)}.tab-item.active .tab-item-icon{transform:scale(1.08)}.tab-item.active:before{content:"";position:absolute;top:4px;left:50%;transform:translate(-50%);width:32px;height:3px;border-radius:var(--radius-pill);background:var(--accent);opacity:.5}@media (max-width: 420px){.card-grid{grid-template-columns:1fr!important}}
