@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-local:"Geist","Geist Fallback"}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_dbe48b{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_dbe48b{--font-fraunces-local:"Fraunces","Fraunces Fallback"}:root{--color-paper:oklch(97% 0.012 80);--color-paper-deep:oklch(93% 0.019 78);--color-surface:oklch(99.2% 0.006 80);--color-ink:oklch(22% 0.018 255);--color-ink-soft:oklch(45% 0.022 255);--color-rule:oklch(83% 0.018 76);--color-rule-strong:oklch(71% 0.026 250);--color-accent:oklch(50% 0.15 252);--color-accent-strong:oklch(40% 0.15 252);--color-accent-soft:oklch(92% 0.035 252);--color-success:oklch(47% 0.115 153);--color-success-soft:oklch(93% 0.035 153);--color-danger:oklch(50% 0.17 28);--color-danger-soft:oklch(94% 0.035 28);--color-focus:oklch(62% 0.19 252);--color-shadow:oklch(18% 0.02 255/0.1);--font-body:var(--font-geist-local),"Segoe UI",sans-serif;--font-display:var(--font-fraunces-local),Georgia,serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:clamp(1.3rem,2vw,1.6rem);--text-2xl:clamp(2rem,4vw,3.5rem);--text-hero:clamp(3.2rem,8vw,7rem);--space-3xs:0.25rem;--space-2xs:0.5rem;--space-xs:0.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4.5rem;--space-3xl:7rem;--space-4xl:10rem;--radius-sm:0.65rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-pill:999px;--rule-hairline:1px;--rule-heavy:2px;--dur-fast:140ms;--dur-base:240ms;--dur-slow:480ms;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--banner-height:4.5rem;--z-sticky:10;--z-sticky-nav:20;--z-dialog:50}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--color-paper)}body{margin:0;min-width:320px;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.55;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select{font:inherit}a,button,input,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,dialog:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky-nav);min-height:var(--banner-height);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:var(--space-sm);gap:var(--space-sm);padding:var(--space-xs) clamp(var(--space-sm),4vw,var(--space-xl));border-bottom:var(--rule-hairline) solid var(--color-rule);background:color-mix(in oklch,var(--color-paper) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.wordmark{font-family:var(--font-display);font-size:1.35rem;font-weight:650;letter-spacing:-.04em}.nav-links{justify-self:end;display:flex;align-items:center;gap:var(--space-md);font-size:var(--text-sm)}.nav-links a{min-height:44px;display:inline-flex;align-items:center;color:var(--color-ink-soft)}.nav-links a:hover{color:var(--color-ink)}.nav-button{min-height:44px;border:0;background:transparent;color:var(--color-ink-soft);padding:0;cursor:pointer}.nav-button:hover{color:var(--color-ink)}.command-trigger{min-width:min(23rem,38vw);min-height:44px;border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink-soft);display:flex;align-items:center;justify-content:space-between;padding:.65rem var(--space-sm);cursor:pointer;box-shadow:0 5px 18px var(--color-shadow)}.keycap{border:var(--rule-hairline) solid var(--color-rule);border-radius:var(--radius-sm);padding:.08rem .4rem;font-size:var(--text-xs)}.command-dialog{width:min(34rem,calc(100vw - 2rem));border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-lg);padding:var(--space-xs);background:var(--color-surface);color:var(--color-ink);box-shadow:0 30px 80px var(--color-shadow)}.command-dialog::-webkit-backdrop{background:oklch(18% .02 255/.42)}.command-dialog::backdrop{background:oklch(18% .02 255/.42)}.command-head{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm);border-bottom:var(--rule-hairline) solid var(--color-rule)}.icon-button{width:44px;height:44px;border:0;border-radius:var(--radius-pill);background:var(--color-paper-deep);cursor:pointer}.command-list{display:grid;grid-gap:var(--space-2xs);gap:var(--space-2xs);padding:var(--space-xs)}.command-list a{min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-sm);border-radius:var(--radius-md)}.command-list a:hover{background:var(--color-accent-soft);color:var(--color-accent-strong)}main{min-height:calc(100vh - var(--banner-height) - 12rem)}.page{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:var(--space-2xl) 0 var(--space-3xl)}.page-head{max-width:52rem;margin-bottom:var(--space-xl)}.section-label{margin:0 0 var(--space-xs);color:var(--color-accent-strong);font-size:var(--text-xs);font-weight:720;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);font-weight:520;letter-spacing:-.045em;line-height:.98}h1{font-size:var(--text-2xl)}h1,h2{margin-bottom:var(--space-md)}h2{font-size:clamp(2rem,5vw,4.6rem)}h3{margin-bottom:var(--space-xs);font-size:var(--text-xl);line-height:1.12}.lede{max-width:46rem;font-size:var(--text-lg)}.lede,.micro,.muted{color:var(--color-ink-soft)}.micro{font-size:var(--text-sm)}.text-link{color:var(--color-accent-strong);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}.home-workbench{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);grid-gap:clamp(var(--space-xl),7vw,var(--space-3xl));gap:clamp(var(--space-xl),7vw,var(--space-3xl));align-items:end;padding-top:var(--space-xl)}.hero-copy h1{max-width:9ch;font-size:var(--text-hero)}.hero-copy .lede{max-width:37rem}.study-ledger{border-top:var(--rule-heavy) solid var(--color-ink);border-bottom:var(--rule-hairline) solid var(--color-rule-strong);padding:var(--space-md) 0}.ledger-row{display:grid;grid-template-columns:4.2rem 1fr auto;grid-gap:var(--space-sm);gap:var(--space-sm);align-items:baseline;padding:var(--space-sm) 0;border-bottom:var(--rule-hairline) solid var(--color-rule)}.ledger-row:last-child{border-bottom:0}.ledger-unit{font-size:var(--text-xs);color:var(--color-ink-soft);text-transform:uppercase;letter-spacing:.08em}.ledger-word{font-family:var(--font-display);font-size:1.18rem}.ledger-state{color:var(--color-success);font-size:var(--text-sm)}.workbench-strip{margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:var(--rule-heavy) solid var(--color-ink);display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:var(--space-xl);gap:var(--space-xl)}.mode-list,.mode-row{display:grid}.mode-row{grid-template-columns:7rem 1fr;grid-gap:var(--space-md);gap:var(--space-md);padding:var(--space-lg) 0;border-bottom:var(--rule-hairline) solid var(--color-rule)}.mode-row strong{font-family:var(--font-display);font-size:var(--text-xl)}.button{min-height:46px;border:var(--rule-hairline) solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);padding:.72rem 1.25rem;font-weight:650;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.button:hover:not(:disabled){background:var(--color-accent-strong);transform:translateY(-1px)}.button.secondary{background:transparent;color:var(--color-ink);border-color:var(--color-rule-strong)}.button.ghost{background:transparent;color:var(--color-accent-strong);border-color:transparent}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);margin-top:var(--space-md)}.card{border:var(--rule-hairline) solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-surface);padding:clamp(var(--space-md),3vw,var(--space-lg));box-shadow:0 12px 40px var(--color-shadow)}.stats-rail{display:grid;grid-template-columns:1.35fr .8fr .8fr;border-top:var(--rule-heavy) solid var(--color-ink);border-bottom:var(--rule-hairline) solid var(--color-rule)}.stat-cell{padding:var(--space-lg) var(--space-md);border-right:var(--rule-hairline) solid var(--color-rule)}.stat-cell:first-child{padding-left:0}.stat-cell:last-child{border-right:0}.stat{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,5rem);line-height:1;letter-spacing:-.05em;margin:var(--space-xs) 0}.dashboard-flow{margin-top:var(--space-xl);display:grid;grid-template-columns:1.25fr .75fr;grid-gap:var(--space-md);gap:var(--space-md)}.list-stack{display:grid}.list-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);min-height:58px;padding:var(--space-xs) 0;border-bottom:var(--rule-hairline) solid var(--color-rule)}.list-row:last-child{border-bottom:0}.practice-setup{display:grid;grid-template-columns:minmax(16rem,.72fr) minmax(0,1.28fr);grid-gap:var(--space-xl);gap:var(--space-xl)}.form-grid{display:grid;grid-gap:var(--space-md);gap:var(--space-md)}.field{display:grid;grid-gap:var(--space-2xs);gap:var(--space-2xs);font-size:var(--text-sm);font-weight:640}.field input,.field select{min-height:48px;width:100%;border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);padding:0 var(--space-sm)}.unit-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:var(--space-2xs);gap:var(--space-2xs);margin-top:var(--space-md)}.unit-chip{min-height:48px;border:var(--rule-hairline) solid var(--color-rule);border-radius:var(--radius-sm);background:transparent;color:var(--color-ink-soft);cursor:pointer}.unit-chip.selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong);font-weight:700}.practice-layout{display:grid;grid-template-columns:minmax(12rem,.28fr) minmax(0,.72fr);grid-gap:var(--space-md);gap:var(--space-md);align-items:start}.session-rail{position:-webkit-sticky;position:sticky;top:calc(var(--banner-height) + var(--space-md))}.progress-track{height:4px;background:var(--color-paper-deep);overflow:hidden;border-radius:var(--radius-pill);margin:var(--space-md) 0}.progress-value{height:100%;background:var(--color-accent);transform-origin:left;transition:transform var(--dur-base) var(--ease-out)}.practice-main{min-height:31rem;display:flex;flex-direction:column}.question-head{display:flex;justify-content:space-between;gap:var(--space-sm);color:var(--color-ink-soft);font-size:var(--text-sm)}.question-word{margin:var(--space-xl) 0 var(--space-lg);font-family:var(--font-display);font-size:clamp(3rem,9vw,6.5rem);line-height:.95;letter-spacing:-.055em}.question-meta{color:var(--color-ink-soft);font-style:italic}.option-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-xs);gap:var(--space-xs);margin-top:auto}.option{min-height:64px;text-align:left;border:var(--rule-hairline) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper);color:var(--color-ink);padding:var(--space-sm);cursor:pointer;transition:border-color var(--dur-fast),transform var(--dur-fast)}.option:hover:not(:disabled){border-color:var(--color-accent);transform:translateY(-1px)}.option.selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.option.correct{border-color:var(--color-success);background:var(--color-success-soft)}.option.wrong{border-color:var(--color-danger);background:var(--color-danger-soft)}.flashcard{min-height:20rem;position:relative;perspective:900px;cursor:pointer;margin-top:var(--space-md)}.flashcard-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform var(--dur-slow) var(--ease-out)}.flashcard.revealed .flashcard-inner{transform:rotateY(180deg)}.flash-face{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:var(--space-xl);border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-lg);background:var(--color-paper);-webkit-backface-visibility:hidden;backface-visibility:hidden}.flash-face.back{transform:rotateY(180deg);background:var(--color-accent-soft)}.flash-face strong{font-family:var(--font-display);font-size:clamp(2rem,6vw,4rem);font-weight:520}.result{margin-top:var(--space-md);border-left:4px solid var(--color-success);background:var(--color-success-soft);padding:var(--space-md);animation:result-in var(--dur-base) var(--ease-spring)}.result.incorrect{border-color:var(--color-danger);background:var(--color-danger-soft);animation:result-wrong var(--dur-base) var(--ease-out)}.error{color:var(--color-danger);font-weight:650}.completion{text-align:center;padding:var(--space-2xl) var(--space-md)}.sound-toggle{margin-left:auto}.auth-shell{width:min(62rem,calc(100% - 2rem));margin:0 auto;padding:var(--space-2xl) 0 var(--space-3xl);display:grid;grid-template-columns:.8fr minmax(19rem,1.2fr);grid-gap:var(--space-2xl);gap:var(--space-2xl);align-items:center}.auth-panel{max-width:30rem}.form{display:grid;grid-gap:var(--space-sm)}.divider,.form{gap:var(--space-sm)}.divider{display:flex;align-items:center;color:var(--color-ink-soft);font-size:var(--text-sm)}.divider:after,.divider:before{content:"";height:1px;background:var(--color-rule);flex:1 1}.auth-promise{border-left:var(--rule-heavy) solid var(--color-accent);padding-left:var(--space-lg)}.admin-grid{grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);align-items:start}.admin-grid,.admin-stack{display:grid;grid-gap:var(--space-md);gap:var(--space-md)}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table td,.admin-table th{text-align:left;padding:var(--space-xs);border-bottom:var(--rule-hairline) solid var(--color-rule);vertical-align:middle}.admin-table th{color:var(--color-ink-soft);font-weight:620}.site-footer{width:min(1180px,calc(100% - 2rem));margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-gap:var(--space-lg);gap:var(--space-lg);padding:var(--space-xl) 0;border-top:var(--rule-heavy) solid var(--color-ink);color:var(--color-ink-soft);font-size:var(--text-sm)}.footer-mark{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-xl)}.footer-links{display:grid;align-content:start;grid-gap:var(--space-2xs);gap:var(--space-2xs)}@keyframes result-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes result-wrong{0%{opacity:0;transform:translateX(0)}35%{opacity:1;transform:translateX(-5px)}70%{transform:translateX(4px)}to{transform:translateX(0)}}@media (max-width:820px){.site-header{grid-template-columns:auto 1fr}.command-trigger{justify-self:end;min-width:44px;width:44px;padding:0;justify-content:center}.command-trigger .keycap,.command-trigger span:first-child{display:none}.command-trigger:after{content:"⌘"}.nav-links{grid-column:1/-1;justify-self:stretch;justify-content:space-between;border-top:var(--rule-hairline) solid var(--color-rule)}.admin-grid,.auth-shell,.dashboard-flow,.home-workbench,.practice-layout,.practice-setup,.workbench-strip{grid-template-columns:1fr}.session-rail{position:static}.stats-rail{grid-template-columns:1fr 1fr}.stat-cell:first-child{grid-column:1/-1;border-right:0;border-bottom:var(--rule-hairline) solid var(--color-rule)}.site-footer{grid-template-columns:1fr 1fr}.footer-intro{grid-column:1/-1}}@media (max-width:520px){:root{--banner-height:7.5rem}.page{width:min(100% - 1.25rem,1180px);padding-top:var(--space-xl)}.site-header{padding-inline:var(--space-xs)}.nav-links{gap:var(--space-2xs);font-size:var(--text-xs)}.hero-copy h1{font-size:clamp(3rem,18vw,5rem)}.ledger-row{grid-template-columns:3.4rem 1fr}.ledger-state{grid-column:2}.mode-row{grid-template-columns:1fr;gap:var(--space-2xs)}.unit-picker{grid-template-columns:repeat(2,1fr)}.option-grid,.stats-rail{grid-template-columns:1fr}.stat-cell,.stat-cell:first-child{grid-column:auto;border-right:0;border-bottom:var(--rule-hairline) solid var(--color-rule);padding-left:0}.site-footer{grid-template-columns:1fr}.footer-intro{grid-column:auto}.list-row{align-items:flex-start;flex-direction:column;gap:var(--space-2xs)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.flashcard.revealed .flashcard-inner{transform:none}.flashcard.revealed .flash-face.front{display:none}.flash-face.back{transform:none}}