.auth-backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:#0706038c;backdrop-filter:blur(5px);display:grid;place-items:center;padding:var(--sp-4);animation:cmdk-fade var(--dur-2) var(--ease-out-quart)}.auth-dialog{position:relative;width:min(420px,94vw);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--sh-3);animation:cmdk-rise var(--dur-3) var(--ease-out-expo);text-align:center}.auth-close{position:absolute;top:var(--sp-3);right:var(--sp-3);color:var(--ink-3)}.auth-close:hover{color:var(--ink)}.auth-icon{align-self:center;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:color-mix(in oklch,var(--brand) 16%,var(--surface-3));color:var(--brand-bright)}.auth-icon[data-tone=success]{background:color-mix(in oklch,var(--good) 18%,var(--surface-3));color:var(--good)}.auth-icon[data-tone=error]{background:color-mix(in oklch,var(--bad) 18%,var(--surface-3));color:var(--bad)}.auth-dialog-static{position:static;margin:0 auto;animation:none;box-shadow:none}.auth-dialog h2{font-size:var(--fs-h3)}.auth-sub{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:var(--sp-2)}.auth-field{display:flex;flex-direction:column;gap:5px;text-align:left}.auth-field span{font-size:var(--fs-xs);color:var(--ink-2);font-weight:600}.auth-field input{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);font-size:1rem;color:var(--ink)}.auth-field input:focus{outline:none;border-color:var(--brand)}.auth-input-wrap{position:relative;display:flex}.auth-input-wrap input{flex:1;padding-right:2.7rem}.auth-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-xs);color:var(--ink-3)}.auth-eye:hover{color:var(--ink)}.auth-eye:focus-visible{outline:2px solid var(--brand-bright);outline-offset:1px}.auth-dialog .btn{width:100%;justify-content:center}.auth-error{font-size:var(--fs-sm);color:var(--bad);background:color-mix(in oklch,var(--bad) 10%,var(--surface));border:1px solid color-mix(in oklch,var(--bad) 30%,var(--border));border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3)}.auth-info{display:flex;align-items:flex-start;gap:var(--sp-2);text-align:left;font-size:var(--fs-sm);color:var(--good);background:color-mix(in oklch,var(--good) 10%,var(--surface));border:1px solid color-mix(in oklch,var(--good) 30%,var(--border));border-radius:var(--r-md);padding:var(--sp-3)}.auth-info svg{flex-shrink:0;margin-top:2px}.auth-switch{font-size:var(--fs-sm);color:var(--ink-3);display:flex;flex-direction:column;gap:6px;margin-top:var(--sp-2)}.auth-link{color:var(--brand-bright);font:inherit;display:inline-flex;align-items:center;gap:5px}.auth-link:hover{text-decoration:underline}.auth-link:disabled{opacity:.5}.acct{position:relative}.acct-skel{width:34px;height:34px;border-radius:50%;background:var(--surface-2)}.acct-trigger{position:relative;display:grid;place-items:center}.acct-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border-strong);font-weight:600;font-size:var(--fs-sm);color:var(--ink)}.acct-avatar[data-admin]{border-color:color-mix(in oklch,var(--warn) 55%,var(--border));background:color-mix(in oklch,var(--warn) 18%,var(--surface-3));color:var(--warn)}.acct-syncdot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg)}.acct-syncdot.ok{background:var(--good)}.acct-syncdot.busy{background:var(--warn)}.acct-syncdot.warn{background:var(--bad)}.acct-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:var(--sp-2);z-index:var(--z-dropdown);animation:cmdk-rise var(--dur-2) var(--ease-out-expo)}.acct-menu-head{padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:3px}.acct-email{font-size:var(--fs-sm);color:var(--ink);font-weight:550;overflow:hidden;text-overflow:ellipsis}.acct-admin{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--warn)}.acct-sync{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin:2px var(--sp-1);font-size:var(--fs-xs);color:var(--ink-3);border-radius:var(--r-sm);background:var(--surface)}.acct-sync.ok{color:var(--good)}.acct-sync.busy{color:var(--warn)}.acct-sync.warn{color:var(--bad)}.acct-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--ink-1);font-size:var(--fs-sm)}.acct-item:hover{background:var(--surface-3)}.spin{animation:spin .9s linear infinite}.app{display:grid;grid-template-columns:var(--rail-w) 1fr;height:100dvh;overflow:hidden}.rail{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-3) 0 var(--sp-4);background:var(--bg-deep);border-right:1px solid var(--border);z-index:var(--z-rail)}.rail-brand{margin-bottom:var(--sp-3)}.rail-brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-md);color:var(--on-accent);background:var(--accent-fill);transition:transform var(--dur-micro) var(--ease-out)}.rail-brand:active .rail-brand-mark{transform:scale(.94)}.rail-group{display:flex;flex-direction:column;gap:var(--sp-1);width:100%;align-items:center}.rail-divider{width:28px;height:1px;background:var(--border);margin:var(--sp-2) 0}.rail-spacer{flex:1}.rail-link{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);color:var(--ink-3);transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.rail-link:hover,.rail-link.active{color:var(--ink);background:var(--surface-2)}.rail-link.active:before{content:"";position:absolute;left:-9px;top:50%;transform:translateY(-50%);width:2px;height:20px;border-radius:var(--r-pill);background:var(--accent)}.rail-link[data-subject].active:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--subject-hue)}.rail-tip{position:fixed;left:calc(var(--rail-w) + 6px);transform:translate(-6px);padding:4px 10px;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:550;white-space:nowrap;color:var(--ink);opacity:0;pointer-events:none;box-shadow:var(--sh-2);transition:opacity var(--dur-1),transform var(--dur-1) var(--ease-out-quart);z-index:var(--z-tooltip)}.rail-link:hover .rail-tip{opacity:1;transform:translate(0)}.rail-cmd{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3);border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 7px;background:var(--surface)}.rail-cmd:hover{color:var(--ink);border-color:var(--border-strong)}.app-body{display:flex;flex-direction:column;min-width:0;height:100dvh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);height:60px;padding:0 clamp(1rem,3vw,2rem);border-bottom:1px solid var(--border);background:color-mix(in oklch,var(--bg) 80%,transparent);backdrop-filter:blur(12px);z-index:var(--z-sticky);flex-shrink:0}.breadcrumb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2);min-width:0;overflow:hidden;white-space:nowrap}.breadcrumb-root{font-weight:600;color:var(--ink)}.breadcrumb-seg{display:inline-flex;gap:var(--sp-2);text-transform:capitalize}.breadcrumb-seg:last-child{color:var(--ink);font-weight:550}.breadcrumb-sep{color:var(--ink-faint)}.topbar-actions{display:flex;align-items:center;gap:var(--sp-3)}.topbar-search{display:flex;align-items:center;gap:var(--sp-5);padding:.5em .7em .5em .9em;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--ink-3);font-size:var(--fs-sm);min-width:220px;justify-content:space-between}.topbar-search:hover{border-color:var(--border-strong);color:var(--ink-2)}.topbar-search kbd{font-size:var(--fs-xs);padding:2px 6px;border:1px solid var(--border-strong);border-radius:var(--r-xs);background:var(--surface-2)}.topbar-search-icon{display:none;flex-shrink:0}@media (max-width: 720px){.topbar-search span,.topbar-search kbd{display:none}.topbar-search-icon{display:block}.topbar-search{min-width:0;padding:.5em;color:var(--ink-2)}}.app-main{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.site-footer{border-top:1px solid var(--border);margin-top:var(--sp-8);padding:var(--sp-5) clamp(1rem,4vw,2.5rem)}.site-footer-inner{max-width:var(--max-content);margin-inline:auto;display:flex;align-items:center;gap:var(--sp-3) var(--sp-5);flex-wrap:wrap;font-size:var(--fs-xs);color:var(--ink-3)}.site-footer-brand{font-family:var(--font-display);font-weight:600;color:var(--ink-2)}.site-footer-disclaimer{flex:1;min-width:200px}.site-footer-links{display:flex;gap:var(--sp-4)}.site-footer-links a{color:var(--ink-3)}.site-footer-links a:hover{color:var(--brand-bright)}.study-timer{display:flex;align-items:center;gap:var(--sp-2);padding:5px 8px 5px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.study-timer[data-running=true]{border-color:color-mix(in oklch,var(--accent) 45%,var(--border))}.study-timer-icon{color:var(--accent)}.study-timer-clock{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;color:var(--ink);font-variant-numeric:tabular-nums;min-width:44px}.study-timer-btn{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-sm);color:var(--ink-2)}.study-timer-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.study-timer-btn:disabled{opacity:.35;cursor:not-allowed}.cmdk-backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:#0706038c;backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;animation:cmdk-fade var(--dur-fast) var(--ease-out)}@keyframes cmdk-fade{0%{opacity:0}}.cmdk{width:min(620px,92vw);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--sh-3);overflow:hidden;animation:cmdk-rise var(--dur-3) var(--ease-out-expo)}@keyframes cmdk-rise{0%{transform:translateY(-12px) scale(.985);opacity:0}}.cmdk-input-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--border);color:var(--ink-3)}.cmdk-input-row input{flex:1;background:none;border:none;outline:none;font-size:1.05rem;color:var(--ink)}.cmdk-input-row input::placeholder{color:var(--ink-3)}.cmdk-input-row kbd{font-size:var(--fs-xs);padding:2px 7px;border:1px solid var(--border-strong);border-radius:var(--r-xs);color:var(--ink-3)}.cmdk-list{max-height:50vh;overflow-y:auto;padding:var(--sp-2)}.cmdk-empty{padding:var(--sp-6);text-align:center;color:var(--ink-3)}.cmdk-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:pointer}.cmdk-item[data-active=true]{background:var(--surface-3)}.cmdk-item-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--surface-3);color:var(--subject-ink, var(--ink-2));flex-shrink:0}.cmdk-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.cmdk-item-label{font-weight:550;color:var(--ink)}.cmdk-item-sub{font-size:var(--fs-xs);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}.cmdk-item-kind{font-size:var(--fs-xs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em}.cmdk-enter{color:var(--subject-ink, var(--brand))}.route-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);height:60vh;color:var(--ink-3)}.route-fallback-pulse{width:38px;height:38px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--subject, var(--brand));animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.app{grid-template-columns:1fr;grid-template-rows:1fr auto}.rail{grid-row:2;flex-direction:row;width:100%;height:60px;padding:0 var(--sp-3);border-right:none;border-top:1px solid var(--border);overflow-x:auto}.rail-brand,.rail-divider,.rail-spacer,.rail-cmd{display:none}.rail-group{flex-direction:row;width:auto}.rail-link.active:before{left:50%;top:auto;bottom:-4px;transform:translate(-50%);width:20px;height:3px}.rail-tip{display:none}.app-body{grid-row:1;height:auto;overflow:hidden}.topbar{gap:var(--sp-2);padding:0 var(--sp-3)}.breadcrumb{flex:1 1 0;min-width:0}.topbar-actions{flex-shrink:0;gap:var(--sp-2)}.study-timer{padding:4px 6px 4px 9px;gap:4px}.study-timer-reset{display:none}.study-timer-clock{min-width:38px;font-size:var(--fs-xs)}}:root{--bg: oklch(.18 .008 85);--bg-deep: oklch(.145 .008 85);--surface: oklch(.215 .008 85);--surface-2: oklch(.245 .009 85);--surface-3: oklch(.275 .01 85);--surface-hover: oklch(.275 .01 85);--border: oklch(.32 .01 85);--border-strong: oklch(.4 .012 85);--border-faint: oklch(.265 .009 85 / .85);--ink: oklch(.93 .012 85);--ink-1: oklch(.9 .012 85);--ink-2: oklch(.855 .012 85);--ink-3: oklch(.7 .012 85);--ink-faint: oklch(.56 .01 85);--accent: oklch(.7 .082 135);--accent-bright: oklch(.78 .095 135);--accent-fill: oklch(.6 .072 135);--accent-dim: oklch(.5 .055 135);--on-accent: oklch(.16 .01 135);--accent-wash: oklch(.7 .082 135 / .12);--brand: var(--accent);--brand-bright: var(--accent-bright);--brand-dim: var(--accent-dim);--good: oklch(.74 .09 150);--good-dim: oklch(.52 .07 150);--warn: oklch(.78 .095 75);--bad: oklch(.66 .115 35);--bad-dim: oklch(.48 .09 35);--good-wash: oklch(.74 .09 150 / .12);--warn-wash: oklch(.78 .095 75 / .12);--bad-wash: oklch(.66 .115 35 / .12);--physics: oklch(.7 .07 235);--physics-ink: oklch(.8 .075 235);--physics-bright: oklch(.8 .075 235);--physics-dim: oklch(.5 .05 235);--maths: oklch(.7 .085 25);--maths-ink: oklch(.8 .09 25);--maths-bright: oklch(.8 .09 25);--maths-dim: oklch(.5 .06 25);--fmaths: oklch(.71 .075 300);--fmaths-ink: oklch(.81 .08 300);--fmaths-bright: oklch(.81 .08 300);--fmaths-dim: oklch(.52 .055 300);--econ: oklch(.74 .085 95);--econ-ink: oklch(.83 .09 95);--econ-bright: oklch(.83 .09 95);--econ-dim: oklch(.54 .06 95);--subject: var(--accent);--subject-bright: var(--accent-bright);--subject-dim: var(--accent-dim);--subject-ink: var(--accent-bright);--subject-glow: transparent;--subject-hue: var(--accent);--subject-hue-ink: var(--accent-bright);--font-read: "Newsreader", Georgia, "Times New Roman", serif;--font-ui: "Hanken Grotesk", "Inter", system-ui, -apple-system, sans-serif;--font-sans: var(--font-ui);--font-display: var(--font-ui);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-display: 2rem;--fs-h1: 1.75rem;--fs-h2: 1.375rem;--fs-h3: 1.125rem;--fs-body: .9375rem;--fs-body-read: 1.125rem;--fs-sm: .8125rem;--fs-xs: .75rem;--lh-body: 1.55;--lh-read: 1.7;--measure-read: 66ch;--para-space: .9em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4.5rem;--sp-9: 6.5rem;--r-xs: 5px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-pill: 9999px;--shadow-float: 0 1px 2px oklch(.1 .01 85 / .4), 0 8px 24px oklch(.1 .01 85 / .28);--sh-1: 0 1px 2px oklch(.1 .01 85 / .32);--sh-2: var(--shadow-float);--sh-3: var(--shadow-float);--sh-glow: none;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-io: cubic-bezier(.77, 0, .175, 1);--ease-page: cubic-bezier(.32, .72, 0, 1);--ease-out-quart: var(--ease-out);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out: var(--ease-io);--dur-micro: .14s;--dur-fast: .18s;--dur-base: .22s;--dur-list: .26s;--dur-accordion: .24s;--dur-1: .14s;--dur-2: .18s;--dur-3: .24s;--dur-4: .42s;--stagger: .04s;--z-base: 1;--z-raised: 10;--z-sticky: 30;--z-dropdown: 40;--z-backdrop: 50;--z-modal: 60;--z-toast: 70;--z-tooltip: 80;--z-cmdk: 60;--rail-w: 68px;--max-content: 1160px}[data-subject=physics]{--subject-hue: var(--physics);--subject-hue-ink: var(--physics-ink)}[data-subject=maths]{--subject-hue: var(--maths);--subject-hue-ink: var(--maths-ink)}[data-subject=fmaths]{--subject-hue: var(--fmaths);--subject-hue-ink: var(--fmaths-ink)}[data-subject=economics]{--subject-hue: var(--econ);--subject-hue-ink: var(--econ-ink)}[data-theme=light]{--bg: oklch(.95 .006 85);--bg-deep: oklch(.92 .006 85);--surface: oklch(.985 .005 85);--surface-2: oklch(.965 .006 85);--surface-3: oklch(.945 .007 85);--surface-hover: oklch(.945 .007 85);--border: oklch(.88 .008 85);--border-strong: oklch(.8 .01 85);--border-faint: oklch(.91 .006 85);--ink: oklch(.26 .014 85);--ink-1: oklch(.3 .014 85);--ink-2: oklch(.34 .014 85);--ink-3: oklch(.48 .012 85);--ink-faint: oklch(.58 .01 85);--accent: oklch(.48 .08 135);--accent-bright: oklch(.42 .085 135);--accent-fill: oklch(.46 .08 135);--accent-dim: oklch(.4 .07 135);--on-accent: oklch(.97 .006 135);--accent-wash: oklch(.48 .08 135 / .1);--good: oklch(.52 .09 150);--warn: oklch(.58 .095 75);--bad: oklch(.52 .12 35);--physics: oklch(.52 .08 235);--physics-ink: oklch(.46 .085 235);--maths: oklch(.52 .095 25);--maths-ink: oklch(.46 .1 25);--fmaths: oklch(.5 .08 300);--fmaths-ink: oklch(.44 .085 300);--econ: oklch(.54 .095 95);--econ-ink: oklch(.46 .1 95);--shadow-float: 0 1px 2px oklch(.55 .01 85 / .18), 0 8px 24px oklch(.55 .01 85 / .14)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink-2);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.016;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.18;letter-spacing:-.012em;color:var(--ink);text-wrap:balance}h1{font-size:var(--fs-h1);letter-spacing:-.018em}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}p{text-wrap:pretty;max-width:72ch}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font:inherit;color:inherit}ul,ol{list-style:none}img,svg{display:block;max-width:100%}code,kbd{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid color-mix(in oklch,var(--accent) 70%,transparent);outline-offset:2px;border-radius:var(--r-xs)}::selection{background:var(--accent-wash);color:var(--ink)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:var(--r-pill);border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.container{width:100%;max-width:var(--max-content);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}.surface-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.28em .72em;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:550;letter-spacing:.005em;border:1px solid var(--border);background:var(--surface-2);color:var(--ink-3);white-space:nowrap}.chip[data-tone=subject]{border-color:color-mix(in oklch,var(--subject-hue) 32%,var(--border));background:var(--surface-2);color:var(--subject-hue-ink)}.btn{--_bg: var(--surface-2);--_fg: var(--ink-1);--_bd: var(--border);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:.6em 1.05em;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:550;white-space:nowrap;background:var(--_bg);color:var(--_fg);border:1px solid var(--_bd);transition:transform var(--dur-micro) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.btn:hover{--_bg: var(--surface-3);--_bd: var(--border-strong)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn[data-variant=primary]{--_bg: var(--accent-fill);--_fg: var(--on-accent);--_bd: transparent;font-weight:620}.btn[data-variant=primary]:hover{--_bg: var(--accent-bright)}.btn[data-variant=ghost]{--_bg: transparent;--_bd: transparent}.btn[data-variant=ghost]:hover{--_bg: var(--surface-2);--_bd: transparent}.btn[data-variant=danger]{--_bg: transparent;--_fg: var(--bad);--_bd: transparent}.btn[data-variant=danger]:hover{--_bg: var(--bad-wash)}.btn[data-size=sm]{padding:.4em .7em;font-size:var(--fs-xs)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.katex{font-size:1.02em}.katex-display{margin:var(--sp-4) 0;overflow-x:auto;overflow-y:hidden;padding-bottom:2px}.skip-link{position:fixed;top:-60px;left:var(--sp-4);z-index:var(--z-tooltip);background:var(--surface-2);color:var(--ink);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);border:1px solid var(--border-strong);transition:top var(--dur-base) var(--ease-out)}.skip-link:focus{top:var(--sp-4)}@keyframes reveal-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes reveal-soft{0%{opacity:0}to{opacity:1}}.reveal{animation:reveal-up var(--dur-list) var(--ease-out) both}.reveal-scale{animation:reveal-up var(--dur-base) var(--ease-out) both}.route-fade{animation:reveal-up var(--dur-base) var(--ease-page) both}.stagger>*{animation:reveal-up var(--dur-list) var(--ease-out) both;animation-delay:calc(var(--i, 0) * var(--stagger))}.auth-splash{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);background:var(--bg)}.auth-splash-mark{display:flex;gap:9px}.auth-splash-dot{width:13px;height:13px;border-radius:4px;animation:splash-pulse 1.2s var(--ease-io) infinite}.auth-splash-dot.phys{background:var(--physics)}.auth-splash-dot.math{background:var(--maths);animation-delay:.12s}.auth-splash-dot.fmath{background:var(--fmaths);animation-delay:.24s}.auth-splash-dot.econ{background:var(--econ);animation-delay:.36s}.auth-splash-name{font-family:var(--font-read);font-weight:500;font-size:1.35rem;color:var(--ink-2);letter-spacing:-.01em}@keyframes splash-pulse{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal,.reveal-scale,.route-fade,.stagger>*{animation:none;opacity:1;transform:none}}
