:root{--bg-canvas: #f8f9fa;--bg-surface: #ffffff;--bg-subtle: #f1f3f5;--bg-hover: #e9ecef;--bg-elevated: #ffffff;--bg-card-warm: #fffdf5;--bg-overlay: rgba(0, 0, 0, .5);--ink-primary: #111827;--ink-secondary: #374151;--ink-muted: #6b7280;--ink-faint: #9ca3af;--ink-inverse: #ffffff;--brand: #4f46e5;--brand-hover: #4338ca;--brand-active: #3730a3;--brand-soft: #eef2ff;--brand-border: #c7d2fe;--brand-text: #4338ca;--brand-shadow: #312e81;--brand-glow: rgba(79, 70, 229, .2);--success: #10b981;--success-hover: #059669;--success-soft: #ecfdf5;--success-border: #a7f3d0;--success-text: #065f46;--success-shadow: #047857;--warn: #f59e0b;--warn-hover: #d97706;--warn-soft: #fffbeb;--warn-border: #fde68a;--warn-text: #92400e;--warn-shadow: #b45309;--danger: #ef4444;--danger-hover: #dc2626;--danger-soft: #fef2f2;--danger-border: #fecaca;--danger-text: #991b1b;--danger-shadow: #be123c;--info: #0284c7;--info-hover: #0369a1;--info-soft: #f0f9ff;--info-border: #bae6fd;--info-text: #0369a1;--info-shadow: #075985;--purple: #8b5cf6;--purple-soft: #f5f3ff;--purple-border: #ddd6fe;--coral: #f97316;--coral-soft: #fff7ed;--coral-border: #fed7aa;--cyan: #06b6d4;--cyan-soft: #ecfeff;--cyan-border: #a5f3fc;--pink: #ec4899;--pink-soft: #fdf2f8;--pink-border: #fbcfe8;--border: #e5e7eb;--border-strong: #d1d5db;--border-focus: var(--brand);--border-interactive: #9ca3af;--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 22px;--r-2xl: 28px;--r-pill: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .06);--shadow-md: 0 6px 16px -2px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 28px -4px rgba(0, 0, 0, .12);--shadow-card: 0 2px 8px rgba(0, 0, 0, .04);--shadow-tactile: 0 4px 0 var(--border-strong);--shadow-tactile-primary: 0 4px 0 var(--brand-shadow);--shadow-tactile-success: 0 4px 0 var(--success-shadow);--shadow-tactile-warn: 0 4px 0 var(--warn-shadow);--shadow-float: 0 12px 32px -4px rgba(79, 70, 229, .2);--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-math: "KaTeX_Main", "Times New Roman", serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--t-fast: .15s;--t-normal: .25s;--content-max: 1140px;--topbar-h: 62px;--bottomnav-h: 66px;--accent-primary: var(--brand);--accent-hover: var(--brand-hover);--accent-active: var(--brand-active);--accent-soft: var(--brand-soft);--accent-border: var(--brand-border);--accent-text: var(--brand-text);--accent-shadow: var(--brand-shadow);--primary: var(--brand);--primary-hover: var(--brand-hover);--primary-strong: var(--brand-active);--primary-soft: var(--brand-soft);--primary-ink: var(--brand-text);--secondary: var(--info);--secondary-soft: var(--info-soft);--surface: var(--bg-surface);--surface-1: var(--bg-surface);--surface-2: var(--bg-subtle);--surface-3: var(--bg-hover);--canvas: var(--bg-canvas);--bg: var(--bg-canvas);--ink: var(--ink-primary);--ink-2: var(--ink-secondary);--ink-3: var(--ink-muted);--duration-fast: var(--t-fast);--duration-normal: var(--t-normal);--border-subtle: var(--border);--success-primary: var(--success);--warn-primary: var(--warn);--danger-primary: var(--danger);--info-primary: var(--info);--font-ui: var(--font-sans);--unit-1: #4f46e5;--unit-2: #06b6d4;--unit-3: #10b981;--unit-4: #8b5cf6;--unit-5: #f59e0b;--unit-6: #ec4899;--unit-7: #3b82f6;--unit-8: #14b8a6;--unit-9: #f97316;--unit-10: #0284c7;--unit-11: #84cc16;--unit-12: #a855f7;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg-canvas: #000000;--bg-surface: #0a0a0c;--bg-subtle: #141417;--bg-hover: #1f1f24;--bg-elevated: #16161a;--bg-card-warm: #12100a;--bg-overlay: rgba(0, 0, 0, .85);--ink-primary: #f4f4f5;--ink-secondary: #d4d4d8;--ink-muted: #a1a1aa;--ink-faint: #71717a;--ink-inverse: #000000;--brand: #6366f1;--brand-hover: #818cf8;--brand-active: #4f46e5;--brand-soft: rgba(99, 102, 241, .15);--brand-border: rgba(99, 102, 241, .35);--brand-text: #c7d2fe;--brand-shadow: #1e1b4b;--brand-glow: rgba(99, 102, 241, .3);--success: #10b981;--success-hover: #34d399;--success-soft: rgba(16, 185, 129, .15);--success-border: rgba(16, 185, 129, .35);--success-text: #a7f3d0;--success-shadow: #022c22;--warn: #f59e0b;--warn-hover: #fbbf24;--warn-soft: rgba(245, 158, 11, .15);--warn-border: rgba(245, 158, 11, .35);--warn-text: #fde68a;--warn-shadow: #451a03;--danger: #ef4444;--danger-hover: #f87171;--danger-soft: rgba(239, 68, 68, .15);--danger-border: rgba(239, 68, 68, .35);--danger-text: #fecaca;--danger-shadow: #450a0a;--info: #38bdf8;--info-hover: #7dd3fc;--info-soft: rgba(56, 189, 248, .15);--info-border: rgba(56, 189, 248, .35);--info-text: #bae6fd;--info-shadow: #082f49;--purple: #a78bfa;--purple-soft: rgba(167, 139, 250, .15);--purple-border: rgba(167, 139, 250, .35);--coral: #fb923c;--coral-soft: rgba(251, 146, 60, .15);--coral-border: rgba(251, 146, 60, .35);--cyan: #22d3ee;--cyan-soft: rgba(34, 211, 238, .15);--cyan-border: rgba(34, 211, 238, .35);--pink: #f472b6;--pink-soft: rgba(244, 114, 182, .15);--pink-border: rgba(244, 114, 182, .35);--border: #222226;--border-strong: #333338;--border-interactive: #44444d;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .6);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .6);--shadow-md: 0 6px 16px -2px rgba(0, 0, 0, .7);--shadow-lg: 0 12px 28px -4px rgba(0, 0, 0, .8);--shadow-card: 0 2px 8px rgba(0, 0, 0, .6);--shadow-tactile: 0 4px 0 #18181c;--shadow-tactile-primary: 0 4px 0 #1e1b4b;--shadow-tactile-success: 0 4px 0 #022c22;--shadow-tactile-warn: 0 4px 0 #451a03;color-scheme:dark}}[data-theme=dark]{--bg-canvas: #000000;--bg-surface: #0a0a0c;--bg-subtle: #141417;--bg-hover: #1f1f24;--bg-elevated: #16161a;--bg-card-warm: #12100a;--bg-overlay: rgba(0, 0, 0, .85);--ink-primary: #f4f4f5;--ink-secondary: #d4d4d8;--ink-muted: #a1a1aa;--ink-faint: #71717a;--ink-inverse: #000000;--brand: #6366f1;--brand-hover: #818cf8;--brand-active: #4f46e5;--brand-soft: rgba(99, 102, 241, .15);--brand-border: rgba(99, 102, 241, .35);--brand-text: #c7d2fe;--brand-shadow: #1e1b4b;--brand-glow: rgba(99, 102, 241, .3);--success: #10b981;--success-hover: #34d399;--success-soft: rgba(16, 185, 129, .15);--success-border: rgba(16, 185, 129, .35);--success-text: #a7f3d0;--success-shadow: #022c22;--warn: #f59e0b;--warn-hover: #fbbf24;--warn-soft: rgba(245, 158, 11, .15);--warn-border: rgba(245, 158, 11, .35);--warn-text: #fde68a;--warn-shadow: #451a03;--danger: #ef4444;--danger-hover: #f87171;--danger-soft: rgba(239, 68, 68, .15);--danger-border: rgba(239, 68, 68, .35);--danger-text: #fecaca;--danger-shadow: #450a0a;--info: #38bdf8;--info-hover: #7dd3fc;--info-soft: rgba(56, 189, 248, .15);--info-border: rgba(56, 189, 248, .35);--info-text: #bae6fd;--info-shadow: #082f49;--purple: #a78bfa;--purple-soft: rgba(167, 139, 250, .15);--purple-border: rgba(167, 139, 250, .35);--coral: #fb923c;--coral-soft: rgba(251, 146, 60, .15);--coral-border: rgba(251, 146, 60, .35);--cyan: #22d3ee;--cyan-soft: rgba(34, 211, 238, .15);--cyan-border: rgba(34, 211, 238, .35);--pink: #f472b6;--pink-soft: rgba(244, 114, 182, .15);--pink-border: rgba(244, 114, 182, .35);--border: #222226;--border-strong: #333338;--border-interactive: #44444d;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .6);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .6);--shadow-md: 0 6px 16px -2px rgba(0, 0, 0, .7);--shadow-lg: 0 12px 28px -4px rgba(0, 0, 0, .8);--shadow-card: 0 2px 8px rgba(0, 0, 0, .6);--shadow-tactile: 0 4px 0 #18181c;--shadow-tactile-primary: 0 4px 0 #1e1b4b;--shadow-tactile-success: 0 4px 0 #022c22;--shadow-tactile-warn: 0 4px 0 #451a03;color-scheme:dark}[data-theme=light]{--bg-canvas: #f8f9fa;--bg-surface: #ffffff;--bg-subtle: #f1f3f5;--bg-hover: #e9ecef;--bg-elevated: #ffffff;--bg-card-warm: #fffdf5;--bg-overlay: rgba(0, 0, 0, .5);--ink-primary: #111827;--ink-secondary: #374151;--ink-muted: #6b7280;--ink-faint: #9ca3af;--ink-inverse: #ffffff;--brand: #4f46e5;--brand-hover: #4338ca;--brand-active: #3730a3;--brand-soft: #eef2ff;--brand-border: #c7d2fe;--brand-text: #4338ca;--brand-shadow: #312e81;--brand-glow: rgba(79, 70, 229, .2);--success: #10b981;--success-hover: #059669;--success-soft: #ecfdf5;--success-border: #a7f3d0;--success-text: #065f46;--success-shadow: #047857;--warn: #f59e0b;--warn-hover: #d97706;--warn-soft: #fffbeb;--warn-border: #fde68a;--warn-text: #92400e;--warn-shadow: #b45309;--danger: #ef4444;--danger-hover: #dc2626;--danger-soft: #fef2f2;--danger-border: #fecaca;--danger-text: #991b1b;--danger-shadow: #be123c;--info: #0284c7;--info-hover: #0369a1;--info-soft: #f0f9ff;--info-border: #bae6fd;--info-text: #0369a1;--info-shadow: #075985;--border: #e5e7eb;--border-strong: #d1d5db;--border-focus: var(--brand);--border-interactive: #9ca3af;color-scheme:light}@media (prefers-reduced-motion: reduce){:root{--t-fast: 0ms;--t-normal: 0ms}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--ink-primary);background-color:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh;background-color:var(--bg-canvas);color:var(--ink-primary);display:flex;flex-direction:column}#root{display:flex;flex-direction:column;min-height:100vh}a{color:var(--brand);text-decoration:none;transition:color var(--t-fast) var(--ease-out)}a:hover{color:var(--brand-hover)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;-webkit-tap-highlight-color:transparent;user-select:none}img,svg{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{line-height:1.25;font-weight:800;color:var(--ink-primary);letter-spacing:-.02em}:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}.page,.page--narrow,.page--wide{width:100%;margin:0 auto;padding:var(--sp-6) var(--sp-4);animation:fadeUp .3s var(--ease-out)}.page{max-width:var(--content-max)}.page--narrow{max-width:680px}.page--wide{max-width:1200px}.page--has-bottomnav{padding-bottom:calc(var(--bottomnav-h) + var(--sp-8))}@media (min-width: 820px){.page--has-bottomnav{padding-bottom:var(--sp-8)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;min-height:44px;border-radius:var(--r-md);font-weight:700;font-size:14.5px;line-height:1.2;transition:all var(--t-fast) var(--ease-bounce);user-select:none;max-width:100%;text-align:center;position:relative;text-decoration:none}.btn:disabled{opacity:.5;pointer-events:none;box-shadow:none!important;transform:none!important}.btn:active:not(:disabled){transform:translateY(3px)!important}.btn--primary{color:#fff!important;background:linear-gradient(180deg,#6366f1,#4f46e5);border:1px solid #4338ca;box-shadow:0 4px #3730a3,0 6px 14px var(--brand-glow)}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #3730a3,0 10px 20px var(--brand-glow)}.btn--primary:active:not(:disabled){box-shadow:0 1px #3730a3}.btn--success{color:#fff!important;background:linear-gradient(180deg,#34d399,#10b981);border:1px solid #059669;box-shadow:0 4px #047857,0 6px 14px #10b98140}.btn--success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #047857,0 10px 20px #10b9814d}.btn--success:active:not(:disabled){box-shadow:0 1px #047857}.btn--secondary{color:var(--ink-secondary)!important;background:var(--bg-surface);border:2px solid var(--border);box-shadow:0 3px 0 var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--bg-subtle);color:var(--ink-primary)!important;transform:translateY(-2px);box-shadow:0 5px 0 var(--border-strong)}.btn--secondary:active:not(:disabled){box-shadow:0 1px 0 var(--border-strong)}.btn--warn{color:#fff!important;background:linear-gradient(180deg,#fbbf24,#f59e0b);border:1px solid #d97706;box-shadow:0 4px #b45309,0 6px 14px #f59e0b40}.btn--warn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #b45309,0 10px 20px #f59e0b4d}.btn--warn:active:not(:disabled){box-shadow:0 1px #b45309}.btn--danger{color:#fff!important;background:linear-gradient(180deg,#f87171,#ef4444);border:1px solid #dc2626;box-shadow:0 4px #b91c1c,0 6px 14px #ef444440}.btn--danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #b91c1c,0 10px 20px #ef44444d}.btn--danger:active:not(:disabled){box-shadow:0 1px #b91c1c}.btn--white{color:var(--brand)!important;background:#fff;border:2px solid rgba(255,255,255,.6);box-shadow:0 4px #4f46e533,0 8px 18px #0000001f;font-weight:800}.btn--white:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #4f46e540,0 12px 24px #00000026}.btn--white:active:not(:disabled){box-shadow:0 1px #4f46e533}.btn--glass{color:#fff!important;background:#ffffff29;backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.35);box-shadow:0 4px #00000026;font-weight:700}.btn--glass:hover:not(:disabled){background:#ffffff42;transform:translateY(-2px);box-shadow:0 6px #0003}.btn--glass:active:not(:disabled){box-shadow:0 1px #00000026}.btn--ghost{color:var(--ink-muted);background:var(--bg-subtle);border:1px solid var(--border)}.btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--ink-primary);transform:translateY(-1px)}.btn--lg{padding:13px 26px;font-size:16px;border-radius:var(--r-lg);min-height:48px}.btn--sm{padding:6px 13px;font-size:13px;min-height:36px;border-radius:var(--r-sm)}.btn--pill{border-radius:var(--r-pill)}.btn--block{width:100%}.btn-bouncy{composes:btn}.btn-primary{composes:btn--primary}.btn-success{composes:btn--success}.btn-secondary{composes:btn--secondary}.card{background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-5);box-shadow:var(--shadow-card);transition:all var(--t-fast) var(--ease-bounce);position:relative}.card--hover{cursor:pointer}.card--hover:hover{border-color:var(--brand-border);transform:translateY(-3px);box-shadow:var(--shadow-md)}.card--accent{border-left:4px solid var(--brand)}.card--brand{background:var(--brand-soft);border-color:var(--brand-border)}.card--success{background:var(--success-soft);border-color:var(--success-border)}.card--warm{background:var(--bg-card-warm);border-color:var(--warn-border)}.card--danger{background:var(--danger-soft);border-color:var(--danger-border)}.card--flush{padding:0;overflow:hidden}.label{display:block;font-size:13px;font-weight:700;color:var(--ink-secondary);margin-bottom:6px}.input{width:100%;min-height:44px;border-radius:var(--r-md);border:2px solid var(--border);background:var(--bg-surface);padding:10px 16px;font-size:15px;color:var(--ink-primary);transition:all var(--t-fast)}.input::placeholder{color:var(--ink-faint)}.input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-glow);outline:none}.input:disabled{background:var(--bg-subtle);opacity:.7;cursor:not-allowed}.input--sm{min-height:36px;padding:6px 12px;font-size:13px}.input--lg{min-height:52px;padding:12px 18px;font-size:18px;font-weight:700}.input--pin{font-family:var(--font-mono);letter-spacing:.18em;font-size:20px;font-weight:900;text-transform:uppercase;text-align:center}select.input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}textarea.input{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap}.badge--brand{background:var(--brand-soft);color:var(--brand-text);border:1px solid var(--brand-border)}.badge--success{background:var(--success-soft);color:var(--success-text);border:1px solid var(--success-border)}.badge--warn{background:var(--warn-soft);color:var(--warn-text);border:1px solid var(--warn-border)}.badge--danger{background:var(--danger-soft);color:var(--danger-text);border:1px solid var(--danger-border)}.badge--info{background:var(--info-soft);color:var(--info-text);border:1px solid var(--info-border)}.badge--muted{background:var(--bg-subtle);color:var(--ink-muted);border:1px solid var(--border)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);height:var(--topbar-h);padding:0 var(--sp-4);background:color-mix(in srgb,var(--bg-surface) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1.5px solid var(--border);position:sticky;top:0;z-index:50;box-shadow:0 1px 8px #0f172a0a}@media (min-width: 768px){.topbar{padding:0 var(--sp-6)}}.topbar__brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:900;font-size:16px;color:var(--ink-primary);white-space:nowrap;text-decoration:none}.topbar__logo{width:36px;height:36px;border-radius:var(--r-md);background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;display:grid;place-items:center;font-weight:900;font-size:15px;box-shadow:0 3px 8px var(--brand-glow);flex-shrink:0}.topbar__nav{display:none;align-items:center;gap:4px}@media (min-width: 820px){.topbar__nav{display:flex}}.topbar__link{padding:8px 14px;border-radius:var(--r-pill);font-size:14px;font-weight:600;color:var(--ink-muted);transition:all var(--t-fast)}.topbar__link:hover{background:var(--bg-subtle);color:var(--brand)}.topbar__link--active{background:var(--brand-soft);color:var(--brand);font-weight:700}.topbar__actions{display:flex;align-items:center;gap:var(--sp-2)}.bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--bottomnav-h);background:color-mix(in srgb,var(--bg-surface) 95%,transparent);backdrop-filter:blur(16px);border-top:1.5px solid var(--border);padding:4px var(--sp-3);z-index:50;box-shadow:0 -4px 16px #0f172a0f}@media (min-width: 820px){.bottomnav{display:none}}.bottomnav__inner{display:flex;justify-content:space-around;align-items:center;width:100%;max-width:480px;margin:0 auto}.bottomnav__link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 12px;min-width:48px;min-height:48px;border-radius:var(--r-md);color:var(--ink-muted);font-size:11px;font-weight:700;transition:all var(--t-fast);text-decoration:none}.bottomnav__link:hover,.bottomnav__link:active{color:var(--brand)}.bottomnav__link--active{color:var(--brand)!important;background:var(--brand-soft)}.bottomnav__link .icon{font-size:20px;line-height:1}.hero{background:linear-gradient(135deg,#4f46e5,#6366f1 55%,#8b5cf6);border-radius:var(--r-2xl);padding:var(--sp-8) var(--sp-6);color:#fff;box-shadow:var(--shadow-float);position:relative;overflow:hidden;margin-bottom:var(--sp-6)}@media (min-width: 768px){.hero{padding:var(--sp-10) var(--sp-8)}}.hero:after{content:"";position:absolute;top:-60px;right:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 70%);pointer-events:none}.hero__kicker{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:#fff3;backdrop-filter:blur(8px);padding:5px 14px;border-radius:var(--r-pill);margin-bottom:var(--sp-3)}.hero__title{font-size:28px;font-weight:900;line-height:1.2;margin-bottom:var(--sp-3);color:#fff}@media (min-width: 768px){.hero__title{font-size:38px}}.hero__sub{font-size:15.5px;color:#ffffffeb;line-height:1.6;max-width:620px}.grid{display:grid;gap:var(--sp-4)}.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}@media (min-width: 640px){.grid--2,.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}@media (min-width: 960px){.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}}.choice-list{display:flex;flex-direction:column;gap:var(--sp-3)}.choice-btn{display:flex;align-items:center;gap:var(--sp-3);padding:12px 16px;min-height:52px;border-radius:var(--r-lg);background:var(--bg-surface);border:2px solid var(--border);color:var(--ink-primary);font-weight:600;font-size:15px;text-align:left;transition:all var(--t-fast) var(--ease-bounce);box-shadow:0 2px 0 var(--border)}.choice-btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--brand-border);transform:translateY(-2px);box-shadow:0 4px 0 var(--border-strong)}.choice-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--border-strong)}.choice-btn__key{width:28px;height:28px;border-radius:var(--r-sm);background:var(--bg-subtle);border:1px solid var(--border);display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--ink-secondary);flex-shrink:0}.choice-btn--selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-text);box-shadow:0 3px 0 var(--brand)}.choice-btn--selected .choice-btn__key{background:var(--brand);color:#fff;border-color:var(--brand)}.choice-btn--correct{border-color:var(--success)!important;background:var(--success-soft)!important;color:var(--success-text)!important;box-shadow:0 3px 0 var(--success)!important}.choice-btn--correct .choice-btn__key{background:var(--success)!important;color:#fff!important;border-color:var(--success)!important}.choice-btn--wrong{border-color:var(--danger)!important;background:var(--danger-soft)!important;color:var(--danger-text)!important;box-shadow:0 3px 0 var(--danger)!important}.choice-btn--wrong .choice-btn__key{background:var(--danger)!important;color:#fff!important;border-color:var(--danger)!important}.stat{text-align:center}.stat__value{font-size:28px;font-weight:900;line-height:1.1}.stat__label{font-size:12.5px;color:var(--ink-muted);font-weight:600;margin-top:4px}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{padding:12px 10px;text-align:left;font-weight:700;color:var(--ink-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border);white-space:nowrap}.table td{padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.empty{text-align:center;padding:var(--sp-10) var(--sp-4);color:var(--ink-muted)}.empty__icon{font-size:44px;margin-bottom:var(--sp-3);line-height:1}.empty__text{font-size:15px;font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes popBounce{0%{transform:scale(.92);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 var(--brand-glow)}50%{box-shadow:0 0 0 10px transparent}}.anim-pop{animation:popBounce .35s var(--ease-bounce)}.anim-fade{animation:fadeUp .3s var(--ease-out)}.anim-glow{animation:pulseGlow 2s infinite}.katex,.katex *{box-sizing:content-box!important}.katex .vlist-t{border-collapse:separate!important}.katex{color:inherit;font-size:1.1em}.katex-display{overflow-x:auto;overflow-y:hidden;padding:6px 0;margin:12px 0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-sm{font-size:13.5px}.text-xs{font-size:11.5px}.text-lg{font-size:18px}.text-muted{color:var(--ink-muted)}.text-faint{color:var(--ink-faint)}.text-brand{color:var(--brand)}.text-success{color:var(--success)}.text-warn{color:var(--warn)}.text-danger{color:var(--danger)}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}.fw-900{font-weight:900}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.mt-1{margin-top:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mt-8{margin-top:var(--sp-8)}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.mb-8{margin-bottom:var(--sp-8)}@media (max-width: 480px){.page{padding:var(--sp-4) var(--sp-3)}.btn--lg{white-space:normal;line-height:1.3;padding:12px 18px;font-size:15px}h1{font-size:22px!important}h2{font-size:18px!important}.card{padding:var(--sp-4);border-radius:var(--r-lg)}}
