@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#0b1f4d;--color-surface:#13296b;--color-surface-raised:#1b3585;--color-border:#2a4399;--color-border-strong:#7d93e0;--color-text:#f4f6fb;--color-text-muted:#aab6d6;--color-accent:#fecc02;--color-accent-text:#0b1f4d;--color-error:#ff6b6b;--color-success:#4ade80;--font-sans:"Figtree Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--radius:.75rem;--nav-height:3.5rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);margin:0;line-height:1.5}a{color:var(--color-accent)}h1,h2,h3{font-family:var(--font-display);font-weight:650;line-height:1.15}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}.app-main{width:100%;max-width:40rem;padding:var(--space-3);padding-bottom:calc(var(--nav-height) + var(--space-3) + env(safe-area-inset-bottom));flex:1;margin:0 auto}.app-nav{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);justify-content:space-around;align-items:center;display:flex;position:fixed;inset:auto 0 0}.app-nav a{height:var(--nav-height);color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;text-decoration:none;display:flex}.tab-icon{border-radius:999px;place-items:center;width:3.5rem;height:1.75rem;transition:background-color .15s;display:grid}.tab-icon svg{width:1.4rem;height:1.4rem}.app-nav a[aria-current=page] .tab-icon{background:var(--color-surface-raised)}.app-nav a[aria-current=page]{color:var(--color-accent);font-weight:600}.app-main:focus{outline:none}.app-status{padding:var(--space-3);text-align:center;color:var(--color-text-muted)}.login{width:100%;max-width:28rem;padding:var(--space-4) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));flex-direction:column;flex:1;margin:0 auto;display:flex}.login-header{text-align:center;padding-block:var(--space-3)}.login-header h1{letter-spacing:-.01em;margin:0;font-size:clamp(2.25rem,11vw,3rem)}.login-header p{margin:var(--space-1) 0 var(--space-3);color:var(--color-text-muted)}.logo{width:min(13rem,56vw);height:auto}@media (prefers-reduced-motion:no-preference){.logo-flag{transform-box:fill-box;transform-origin:0;animation:1.4s ease-out .3s both wave}}@keyframes wave{0%{transform:skewY(0)scaleX(1)}20%{transform:skewY(-9deg)scaleX(.94)}45%{transform:skewY(6deg)scaleX(.97)}70%{transform:skewY(-3deg)scaleX(.99)}to{transform:skewY(0)scaleX(1)}}.login-body{gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.login-body form{gap:var(--space-3);flex-direction:column;display:flex}.segmented{gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);grid-template-columns:1fr 1fr;margin:0;display:grid}.segmented-3{grid-template-columns:repeat(3,1fr);min-width:0}.segmented label{border-radius:calc(var(--radius) - var(--space-1));min-height:3rem;color:var(--color-text-muted);place-items:center;font-weight:600;transition:background-color .15s,color .15s;display:grid;position:relative}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented label:has(input:checked){background:var(--color-accent);color:var(--color-accent-text)}.segmented label:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}.field{gap:var(--space-1);flex-direction:column;display:flex}.field label{color:var(--color-text-muted);font-size:.875rem}.field input{width:100%;min-height:3rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:1rem}.field input[aria-invalid=true]{border-color:var(--color-error)}.password-row{align-items:center;gap:var(--space-2);display:flex}.link-button{min-width:3.5rem;min-height:3rem;color:var(--color-accent);font:inherit;background:0 0;border:0}.field-error,.form-error{color:var(--color-error);margin:0;font-size:.875rem}.field-hint{color:var(--color-text-muted);margin:0;font-size:.875rem}.field-hint:empty{display:none}.button{min-height:3.25rem;padding:0 var(--space-3);border-radius:var(--radius);font:inherit;border:1px solid #0000;place-items:center;font-weight:600;text-decoration:none;display:grid}.button-primary{background:var(--color-accent);color:var(--color-accent-text)}.button-primary:disabled,.button-primary[aria-disabled=true]{opacity:.6}.button-google{gap:var(--space-2);color:#1f1f1f;background:#fff;border-color:#747775;justify-content:center;align-items:center;display:flex}.divider{text-align:center;color:var(--color-text-muted);margin:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.credits{max-width:36rem}.credits-list{margin:var(--space-4) 0;padding:0;list-style:none}.credits-list li{padding-block:var(--space-3);border-top:1px solid var(--color-border)}.credits-list li:last-child{border-bottom:1px solid var(--color-border)}.credits-list h2{margin:0 0 var(--space-1);font-size:1.35rem}.credits-list p{margin:var(--space-1) 0}.credits-list p:first-of-type{color:var(--color-text-muted)}.translate{gap:var(--space-4);flex-direction:column;display:flex}.field textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;resize:vertical;font-size:1.125rem}.direction{justify-content:center;align-items:center;gap:var(--space-3);letter-spacing:.05em;font-weight:700;display:flex}.offer{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-accent);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;display:flex}.offer-text{margin:0 0 var(--space-1);font-weight:600}.offer-text:focus{outline:none}.icon-button{width:3rem;height:3rem;color:var(--color-accent);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.icon-button:disabled{opacity:.5}.result-head{border-bottom:2px solid var(--color-accent);justify-content:space-between;align-items:center;display:flex}.result-head h2{margin:0;font-size:1.25rem}.result-text{margin:var(--space-3) 0 0;font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.5rem;line-height:1.35}.button-secondary{border-color:var(--color-border-strong);color:var(--color-text);background:0 0}.word{border:0;border-bottom:2px dotted var(--color-border-strong);color:inherit;font:inherit;cursor:pointer;background:0 0;margin:0;padding:0;display:inline}.piece.in-group{background:var(--color-surface-raised);border-bottom:2px solid var(--color-accent)}.word.selected,.piece.selected{background:var(--color-accent);color:var(--color-accent-text)}.word-popup{width:100%;max-width:40rem;padding:var(--space-3) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));border-radius:var(--radius) var(--radius) 0 0;background:var(--color-surface);color:var(--color-text);border:0;margin:0 auto;position:fixed;inset:auto 0 0}.word-popup::backdrop{background:#0000008c}.word-popup-head{justify-content:space-between;align-items:center;display:flex}.word-popup-head h2{margin:0;font-size:1.75rem}.word-popup-meta{color:var(--color-text-muted);margin:0}.word-popup-gloss{margin:var(--space-2) 0 var(--space-3);font-size:1.25rem}.word-popup-actions{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.button-with-icon{align-items:center;gap:var(--space-2);display:flex}.button-with-icon svg{width:1.25rem;height:1.25rem}.bank{gap:var(--space-2);height:calc(100dvh - var(--nav-height) - env(safe-area-inset-bottom) - 2 * var(--space-3));flex-direction:column;display:flex}.bank-search{gap:var(--space-2);display:flex}.bank-search select{min-height:2.75rem;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit}.bank-search input{width:100%;min-width:0;min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;flex:1}.bank-body{border-top:1px solid var(--color-border);flex:1;min-height:0;display:flex}.bank-scroll{overscroll-behavior:contain;flex:1;min-width:0;overflow-y:auto}.bank-list{margin:0;padding:0;list-style:none;position:relative}.bank-row,.bank-letter{height:64px;position:absolute;left:0;right:0}.bank-letter{padding-bottom:var(--space-1);font-family:var(--font-display);color:var(--color-accent);align-items:flex-end;font-size:1.5rem;font-weight:650;display:flex}.bank-row{align-items:center;display:flex}.bank-row a{min-width:0;height:100%;color:var(--color-text);flex-direction:column;flex:1;justify-content:center;text-decoration:none;display:flex}.bank-row a:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.bank-headword{font-family:var(--font-display);font-size:1.375rem;line-height:1.2}.bank-meta{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-muted);font-size:.875rem;overflow:hidden}.bank-scrubber{width:2rem;padding-block:var(--space-1);touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:space-between;display:flex}.bank-scrubber button{min-height:0;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;flex:1;padding:0;font-size:.75rem;font-weight:600}.bank-scrubber button[aria-disabled=true]{color:var(--color-text-muted);opacity:.45}.bank-scrubber button[aria-current=true]{color:var(--color-accent-text);background:var(--color-accent);opacity:1;border-radius:999px}.bank-scrubber button:focus-visible{outline:2px solid var(--color-accent)}.bank-with-dictionary .bank-body{flex:0 auto;max-height:40%}.dictionary{gap:var(--space-2);overscroll-behavior:contain;min-height:0;padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;flex:1;display:flex;overflow-y:auto}.dictionary h2{margin:0;font-size:1.25rem}.dictionary-list{margin:0;padding:0;list-style:none}.dictionary-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border);min-height:64px;display:flex}.dictionary-row a{min-width:0;min-height:64px;color:var(--color-text);flex-direction:column;flex:1;justify-content:center;text-decoration:none;display:flex}.dictionary-row a:focus-visible,.dictionary-add:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.dictionary-add{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-accent);color:var(--color-accent);font:inherit;background:0 0;border-radius:999px;font-weight:600}.dictionary-add[aria-disabled=true]{opacity:.5}.dictionary-saved{padding:0 var(--space-3);color:var(--color-text-muted);font-size:.875rem}.empty-state{text-align:center;max-width:22rem;margin:auto}.empty-state p{color:var(--color-text-muted)}.word-page{gap:var(--space-4);flex-direction:column;display:flex}.word-page>.link-button,.word-page>a{align-self:flex-start}.word-page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.word-page-head h1{overflow-wrap:anywhere;margin:0;font-size:2.5rem}.word-page-ipa{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-style:italic}.icon-button{border:1px solid var(--color-border-strong);background:var(--color-surface);width:3rem;height:3rem;color:var(--color-accent);cursor:pointer;border-radius:999px;flex:none;place-items:center;display:grid}.icon-button svg{width:1.5rem;height:1.5rem}.icon-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.word-page section h2{margin:0 0 var(--space-1);font-family:var(--font-sans);color:var(--color-text-muted);font-size:.875rem;font-weight:600}.word-page section p{margin:0;font-size:1.125rem}.word-page-examples{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.word-page-examples li{padding-left:var(--space-3);border-left:3px solid var(--color-accent);font-family:var(--font-display);flex-direction:column;font-size:1.25rem;line-height:1.3;display:flex}.word-page-examples+.button{margin-top:var(--space-3)}.word-page-translation{font-family:var(--font-sans);color:var(--color-text-muted);font-size:.9375rem}.flaggable{align-items:start;column-gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.flaggable-text{flex-direction:column;display:flex}.flag-button{width:2.75rem;height:2.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;margin:-.5rem -.75rem 0 0;padding:0;display:grid}.flag-button svg{width:1.125rem;height:1.125rem}.flag-button:hover,.flag-button[aria-expanded=true]{background:var(--color-surface-raised);color:var(--color-text)}.flag-reasons{gap:var(--space-2);min-width:0;margin:var(--space-2) 0 0;font-family:var(--font-sans);border:0;flex-wrap:wrap;grid-column:1/-1;padding:0;display:flex}.flag-reasons legend{margin-bottom:var(--space-2);color:var(--color-text-muted);padding:0;font-size:.875rem}.flag-reasons button{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;font-size:.9375rem}.flag-reasons button:hover{border-color:var(--color-accent)}.flag-reasons button:disabled{opacity:.6;cursor:default}.flag-problem{margin-top:var(--space-2);grid-column:1/-1}.flag-done{align-items:center;column-gap:var(--space-2);font-family:var(--font-sans);flex-wrap:wrap;display:flex}.flag-done p{color:var(--color-text-muted);margin:0;font-size:.9375rem}.flag-done .link-button{min-width:2.75rem;min-height:2.75rem;padding:0 var(--space-1);cursor:pointer;font-size:.9375rem;text-decoration:underline}.flag-done .flag-problem{flex-basis:100%}.report-word summary{min-height:2.75rem;color:var(--color-text-muted);cursor:pointer;align-items:center;font-size:.9375rem;text-decoration:underline;display:flex}.report-word summary:hover{color:var(--color-text)}.report-word form{gap:var(--space-3);padding-bottom:var(--space-2);flex-direction:column;display:flex}.report-word fieldset{border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.report-word legend{margin-bottom:var(--space-1);color:var(--color-text-muted);padding:0;font-size:.875rem}.report-reason{align-items:center;gap:var(--space-2);min-height:2.75rem;display:flex}.report-reason input{width:1.25rem;height:1.25rem;accent-color:var(--color-accent)}.report-word .field textarea{font-size:1rem}.report-word .button{align-self:flex-start}.report-done{align-items:center;column-gap:var(--space-2);flex-wrap:wrap;display:flex}.report-done p{color:var(--color-text-muted);margin:0;font-size:.9375rem}.report-done .link-button{min-width:2.75rem;min-height:2.75rem;padding:0 var(--space-1);cursor:pointer;font-size:.9375rem;text-decoration:underline}.report-done .form-error{flex-basis:100%}.review-back .flaggable{grid-template-columns:2.75rem minmax(0,1fr) 2.75rem}.review-back .flaggable-text{grid-area:1/2}.review-back .flag-button{grid-area:1/3;margin:-.5rem -.5rem 0 0}.review-back .flag-reasons,.review-back .flag-done{justify-content:center}.word-page-check{align-items:center;gap:var(--space-2);min-height:2.75rem;font-size:1.125rem;display:flex}.word-page-check input{width:1.5rem;height:1.5rem;accent-color:var(--color-accent)}.timeline{margin:var(--space-2) 0 0;justify-content:space-between;padding:0;list-style:none;display:flex;position:relative}.timeline:before{content:"";background:var(--color-border-strong);height:2px;position:absolute;top:.4375rem;left:0;right:0}.timeline li{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex;position:relative}.timeline li:first-child:not(:only-child){text-align:left;align-items:flex-start}.timeline li:last-child:not(:only-child){text-align:right;align-items:flex-end}.timeline-dot{width:.875rem;height:.875rem;margin-bottom:var(--space-1);background:var(--color-border-strong);border-radius:50%}.timeline li[data-tense=present] .timeline-dot,.timeline li[data-degree=positive] .timeline-dot{background:var(--color-accent)}.timeline-tense{color:var(--color-text-muted);font-size:.8125rem}.timeline-form{font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.125rem}.other-forms{gap:var(--space-1);flex-direction:column;margin:0;display:flex}.other-forms div{align-items:baseline;gap:var(--space-3);display:flex}.other-forms dt{width:6rem;color:var(--color-text-muted);flex:none;font-size:.9375rem}.other-forms dd{font-family:var(--font-display);margin:0;font-size:1.125rem}.noun-forms{border-collapse:collapse;text-align:left}.noun-forms th{padding:0 var(--space-3) var(--space-1) 0;color:var(--color-text-muted);font-size:.9375rem;font-weight:400}.noun-forms th[scope=row]{width:6rem;padding-top:var(--space-1)}.noun-forms td{padding:var(--space-1) var(--space-4) 0 0;font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.125rem}.noun-article{color:var(--color-accent)}.user-page{max-width:36rem}.user-page section{padding-block:var(--space-3);border-top:1px solid var(--color-border)}.user-page h2{margin:0 0 var(--space-2);font-size:1.35rem}.user-email{color:var(--color-text-muted);margin-top:0}.user-muted{color:var(--color-text-muted)}.crossword-log-lead{font-family:var(--font-display);margin:0;font-size:1.5rem;line-height:1.3}.crossword-log-lead+.user-muted{margin-top:var(--space-1)}.crossword-log-lead~.usage-years{margin-top:var(--space-3)}.crossword-log-latest{margin:var(--space-3) 0 var(--space-1);font-size:1rem}.crossword-log{margin:0;padding:0;list-style:none}.crossword-log li{justify-content:space-between;column-gap:var(--space-3);padding-block:var(--space-2);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.usage-chart{width:100%;height:auto;display:block}.usage-chart text{fill:var(--color-text-muted);font-size:10px}.usage-input{fill:var(--color-border-strong);background:var(--color-border-strong)}.usage-output{fill:var(--color-accent);background:var(--color-accent)}.usage-axis{stroke:var(--color-border)}.usage-legend{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3);color:var(--color-text-muted);font-size:.9rem;display:flex}.usage-key{border-radius:2px;width:.75rem;height:.75rem;display:inline-block}.usage-years{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.usage-years th,.usage-years td{padding:var(--space-1) 0;text-align:right}.usage-years th:first-child{text-align:left}.usage-years thead th{color:var(--color-text-muted);font-weight:500}.field .settings-check{align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--color-text);font-size:1rem;display:flex}.field .settings-check input{width:1.5rem;height:1.5rem;min-height:0;accent-color:var(--color-accent);margin:0;padding:0}.user-settings{margin:0;padding:0;list-style:none}.user-settings li{padding-block:var(--space-1);justify-content:space-between;display:flex}.usage-legend .usage-key:nth-of-type(2){margin-left:var(--space-2)}.translate-page{gap:var(--space-4);height:calc(100dvh - var(--nav-height) - env(safe-area-inset-bottom) - 2 * var(--space-3));flex-direction:column;display:flex}.translate-page>.translate{flex:none}.history{gap:var(--space-2);flex-direction:column;flex:1;min-height:10rem;display:flex}.history-scroll{gap:var(--space-3);overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.history h2{margin:0;font-size:1.25rem}.history-list{margin:0;padding:0;list-style:none}.history-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border);display:flex}.history-open{gap:var(--space-1);min-width:0;padding:var(--space-3) 0;color:var(--color-text);font:inherit;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;display:flex}.history-open:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.history-text,.history-translation{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.history-translation,.history-direction{color:var(--color-text-muted);font-size:.875rem}.history .icon-button{color:var(--color-text-muted)}.home{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.home-header{justify-content:flex-end;align-self:stretch;display:flex}.avatar-button{background:var(--color-surface);border:1px solid var(--color-border);width:2.75rem;height:2.75rem;color:var(--color-text);border-radius:50%;place-items:center;display:grid}.avatar-button svg{width:1.4rem;height:1.4rem}.avatar-button:focus-visible,.home-card:focus-visible,.hub-list a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.home-card{padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);flex-direction:column;align-self:stretch;text-decoration:none;display:flex}.home-card-title{font-family:var(--font-display);font-size:1.375rem}.home-card-detail{color:var(--color-text-muted)}.bank-bar,.bank-levels{--level-new:#3d5ac0;--level-learning:#7d93e0;--level-familiar:#c3cff5;--level-strong:var(--color-accent)}.bank-bar{height:.75rem;margin:var(--space-3) 0 var(--space-2);background:var(--color-surface-raised);border-radius:999px;gap:2px;display:flex;overflow:hidden}.bank-bar-segment{background:var(--bank-level);flex-basis:0;min-width:.5rem}.bank-levels{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.bank-level{flex-direction:column;display:flex}.bank-level-new{--bank-level:var(--level-new)}.bank-level-learning{--bank-level:var(--level-learning)}.bank-level-familiar{--bank-level:var(--level-familiar)}.bank-level-strong{--bank-level:var(--level-strong)}.bank-level-count{font-family:var(--font-display);font-size:1.375rem;line-height:1.2}.bank-level-name{color:var(--color-text-muted);font-size:.8125rem}.bank-level-glyph{color:var(--bank-level)}@media (prefers-reduced-motion:no-preference){.bank-bar{animation:.7s ease-out both bank-fill}}@keyframes bank-fill{0%{clip-path:inset(0 100% 0 0 round 999px)}to{clip-path:inset(0 round 999px)}}.hub-intro{color:var(--color-text-muted)}.hub-list{margin:0;padding:0;list-style:none}.hub-list li{border-top:1px solid var(--color-border)}.hub-list li:last-child{border-bottom:1px solid var(--color-border)}.hub-list a:not(.button){padding:var(--space-3) 0;color:var(--color-text);flex-direction:column;text-decoration:none;display:flex}.hub-list a.hub-with-icon{align-items:center;gap:var(--space-3);flex-direction:row}.hub-icon{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:3rem;height:3rem;color:var(--color-accent);flex:none;place-items:center;display:grid}.hub-icon svg{width:1.5rem;height:1.5rem}.hub-text{flex-direction:column;min-width:0;display:flex}.hub-title{font-family:var(--font-display);font-size:1.375rem;line-height:1.2}.hub-description{color:var(--color-text-muted);font-size:.875rem}.tab-badge{background:var(--color-accent);min-width:1.15rem;color:var(--color-accent-text);text-align:center;border-radius:999px;padding:0 .3rem;font-size:.6875rem;font-weight:700;line-height:1.15rem;position:absolute;top:.15rem;left:calc(50% + .5rem)}.app-nav a{position:relative}.home-review{gap:var(--space-2)}.home-path{border-inline-start:4px solid var(--color-accent)}.home-path-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.home-path-switch{align-items:center;gap:var(--space-1);display:flex}.home-path-count{min-width:3.5rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;font-size:.9375rem}.home-path-arrow{border:1px solid var(--color-border-strong);width:2.75rem;height:2.75rem;color:var(--color-text);cursor:pointer;background:0 0;border-radius:50%;place-items:center;font-size:1.5rem;line-height:1;display:grid}.home-path-arrow:disabled{opacity:.4;cursor:default}.home-path-arrow:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.home-path-list{margin:var(--space-2) 0 0;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0;list-style:none;display:flex;overflow-x:auto}.home-path-list::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:no-preference){.home-path-list{scroll-behavior:smooth}}.home-path-list>li{box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;padding:.25rem}.home-path-set{font-family:var(--font-display);margin:0;font-size:1.125rem}.home-path-list .home-card-detail{margin:0 0 var(--space-3)}.getting-started-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.getting-started-head>*{margin:0}.getting-started-count{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.getting-started-list{margin:0 0 var(--space-2);padding:0;list-style:none}.getting-started-list li{border-top:1px solid var(--color-border)}.getting-started-list a{align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--color-text);text-decoration:none;display:flex}.getting-started-list a:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.getting-started-tick{border:2px solid var(--color-border-strong);border-radius:50%;flex:none;place-items:center;width:1.375rem;height:1.375rem;font-size:.8125rem;font-weight:700;line-height:1;display:grid}.getting-started-done .getting-started-tick{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-text)}.getting-started-done .getting-started-label{color:var(--color-text-muted)}.getting-started-label{flex:1}.getting-started-go{color:var(--color-text-muted)}.getting-started-dismiss{align-self:center}.home-review>*{margin:0}.review{gap:var(--space-3);min-height:calc(100dvh - var(--nav-height) - 2 * var(--space-3));flex-direction:column;display:flex}.review-head{justify-content:space-between;align-items:center;display:flex}.review-progress{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin:0}.review-longest{font-size:.875rem}.review-card{justify-content:center;gap:var(--space-4);flex-direction:column;flex:1;display:flex;container-type:inline-size}.review-front{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.review-word{max-width:100%;font-family:var(--font-display);font-size:clamp(1.75rem, calc(165cqw / var(--len,8)), 3.5rem);overflow-wrap:break-word;margin:0;line-height:1.1}.review-article{color:var(--color-text-muted)}.review-article-answer{color:var(--color-accent)}.review-hint-button{width:auto;min-height:2.75rem}.review-listen{margin-top:var(--space-3);width:auto;min-height:2.75rem}.review-play{align-items:center;gap:var(--space-2);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;padding:0;font-size:1.125rem;display:flex}.review-play svg{box-sizing:content-box;background:var(--color-accent);width:2.75rem;height:2.75rem;color:var(--color-accent-text);border-radius:50%;padding:1.625rem}.review-play:active svg{transform:scale(.96)}.review-play:focus-visible{outline:none}.review-play:focus-visible svg{outline:2px solid var(--color-accent);outline-offset:4px}.review-front:focus,.review-back:focus,.grades:focus,.review-message h1:focus{outline:none}.review-back{padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-top:2px solid var(--color-accent);border-radius:var(--radius);text-align:center}.review-back>*{margin:0 0 var(--space-2)}.review-back>.review-listen{margin-inline:auto}.review-meta{color:var(--color-text-muted)}.review-definition{font-size:1.25rem}.review-example{font-family:var(--font-display);flex-direction:column;display:flex}.review-example-en{color:var(--color-text-muted);font-family:var(--font-sans);font-size:.875rem}.review-prompt{font-family:var(--font-display);margin:0;font-size:clamp(1.5rem,7cqw,2.25rem);line-height:1.2}.review-context{max-width:32rem;color:var(--color-text-muted);margin:0}.review-sentence{font-family:var(--font-display);margin:0;font-size:clamp(1.375rem,6cqw,1.875rem);line-height:1.4}.review-filled{border-bottom:2px solid var(--color-accent);font-weight:600}.review-blank{border-bottom:2px solid var(--color-accent);vertical-align:baseline;width:2.5em;height:1em;margin:0 .15em;display:inline-block}.answer{gap:var(--space-2);flex-direction:column;align-self:center;width:100%;max-width:24rem;display:flex}.answer-label{color:var(--color-text-muted);text-align:center;font-size:.875rem}.answer-input{width:100%;min-height:3.5rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-family:var(--font-display);text-align:center;font-size:1.5rem}.answer-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.answer .field-hint{text-align:center}.answer-letters{justify-content:center;gap:var(--space-2);display:flex}.answer-letters .button{min-width:3rem;min-height:3rem;font-family:var(--font-display);padding:0;font-size:1.25rem;font-weight:400}.answer-verdict{color:var(--color-error);font-weight:600}.answer-verdict-right{color:var(--color-success)}.review-back ins{background:var(--color-accent);color:var(--color-accent-text);border-radius:.12em;text-decoration:none}.answer-typed{color:var(--color-text-muted)}.answer-typed del{color:var(--color-error);text-decoration-thickness:2px}.review-reveal{width:100%}.grades{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.grade{min-height:3.75rem;padding:var(--space-2) .25rem;border:1px solid var(--color-border-strong);border-radius:var(--radius);color:var(--color-text);font:inherit;background:0 0;flex-direction:column;justify-content:center;align-items:center;display:flex}.grade:disabled{opacity:.6}.grade-good{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}.grade-article{min-height:5rem}.grade-article .grade-label{font-family:var(--font-display);font-size:2rem;font-weight:400}.grade-label{font-weight:600}.grade-interval{opacity:.85;font-size:.8125rem}.review-hint{text-align:center}.review button:focus-visible,.review a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.review-message{justify-content:center}.review-message h1{margin:0}.review-stats{gap:var(--space-4);margin:0;display:flex}.review-stats div{flex-direction:column-reverse;display:flex}.review-stats dt{color:var(--color-text-muted)}.review-stats dd{font-family:var(--font-display);margin:0;font-size:2.5rem;line-height:1}.review-actions{gap:var(--space-2);flex-direction:column;display:flex}.strength{margin-left:var(--space-2);padding:.125rem var(--space-2);border:1px solid var(--color-border-strong);color:var(--color-text-muted);white-space:nowrap;border-radius:999px;flex:none;font-size:.8125rem}.strength-familiar{color:var(--color-text)}.strength-strong{border-color:var(--color-accent);color:var(--color-accent)}.word-page-strength{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.word-page-strength .strength{margin-left:0}.word-page{padding-bottom:4.5rem}.captain-fab,.captain-panel{--captain-edge:max(var(--space-3), calc((100vw - 40rem) / 2 + var(--space-3)));right:var(--captain-edge);position:fixed}.captain-fab{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + var(--space-3));z-index:20;border:2px solid var(--color-accent);background:var(--color-surface-raised);cursor:pointer;border-radius:999px;width:3.5rem;height:3.5rem;padding:0;overflow:hidden;box-shadow:0 4px 14px #0006}.captain-fab[aria-expanded=true]{background:var(--color-surface)}.captain-fab:focus-visible{outline:3px solid var(--color-text);outline-offset:3px}.captain-face{width:100%;height:100%;display:block}.captain-panel{--captain-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 3.5rem + var(--space-3) * 2);bottom:var(--captain-bottom);left:var(--captain-edge);z-index:20;gap:var(--space-2);max-width:26rem;max-height:calc(100dvh - var(--captain-bottom) - var(--space-3));padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;margin-left:auto;display:flex;box-shadow:0 8px 28px #00000080}@media (prefers-reduced-motion:no-preference){.captain-panel{transform-origin:100% 100%;animation:.18s ease-out captain-open}}@keyframes captain-open{0%{opacity:0;transform:scale(.94)}}.captain-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.captain-head h2{margin:0;font-size:1.25rem}.captain-word{color:var(--color-accent)}.captain-log{gap:var(--space-2);overscroll-behavior:contain;flex-direction:column;flex:1;min-height:8rem;display:flex;overflow-y:auto}.captain-message{max-width:85%;padding:var(--space-2) var(--space-3);border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.captain-user{background:var(--color-accent);color:var(--color-accent-text);align-self:flex-end}.captain-assistant{background:var(--color-surface-raised);align-self:flex-start}.captain-wait{color:var(--color-text-muted)}.captain-empty p{margin:0 0 var(--space-2)}.captain-chips{align-items:flex-start;gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chip{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:999px}.chip:disabled{opacity:.5}.captain-error{margin:0}.captain-form{align-items:flex-end;gap:var(--space-2);display:flex}.captain-form textarea{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font:inherit;resize:none;flex:1;font-size:1rem}.captain-form .button{min-height:2.75rem}.captain-clear{align-self:flex-start}.captain-confirm{align-items:center;gap:var(--space-3);font-size:.875rem;display:flex}.crossword-page h1{margin:0}.crossword-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.crossword-head .button{min-height:3rem}.crossword-hub section{padding-block:var(--space-3);border-top:1px solid var(--color-border)}.crossword-hub h2{margin:0 0 var(--space-2);font-size:1.35rem}.crossword-continue-detail{margin:0 0 var(--space-3);color:var(--color-text-muted)}.crossword-sizes{gap:var(--space-3);grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}.crossword-sizes .button{min-height:5rem;padding-block:var(--space-3);background:var(--color-surface);line-height:1.2}.crossword-size-name{font-family:var(--font-display);font-size:1.375rem}.crossword-size-detail{color:var(--color-text-muted);font-size:.875rem;font-weight:400}.crossword-empty{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.crossword-empty h2,.crossword-empty p{margin:0}.crossword-empty .button{margin-top:var(--space-2)}.crossword{--keyboard:0px;--color-wrong:#b42318;--color-right:#166534;--dock-h:8rem;--inset:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:calc(var(--dock-h) + var(--space-3))}.crossword[data-keyboard]{--inset:var(--keyboard);padding-bottom:calc(var(--keyboard) + var(--dock-h) + var(--space-3))}.crossword-help{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.help-menu{position:relative}.help-menu>summary{gap:var(--space-2);cursor:pointer;align-items:center;min-height:3rem;list-style:none;display:flex}.help-menu>summary::-webkit-details-marker{display:none}.help-menu>summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:.5rem;height:.5rem;margin-top:-.25rem;transform:rotate(45deg)}.help-menu[open]>summary:after{margin-top:.25rem;transform:rotate(225deg)}.help-panel{z-index:3;top:calc(100% + var(--space-1));min-width:100%;padding:var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface-raised);flex-direction:column;display:flex;position:absolute;left:0;box-shadow:0 .5rem 1.5rem #00000059}.help-item{min-height:2.75rem;padding:0 var(--space-3);border-radius:calc(var(--radius) - .25rem);color:var(--color-text);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0}.help-item:hover{background:var(--color-surface)}.crossword-status{padding:var(--space-2) var(--space-3);border-left:.25rem solid var(--color-accent);background:var(--color-surface);border-radius:.2rem;margin:0}.crossword-status:empty{display:none}.crossword-grid{width:min(100%, calc(var(--cols) * 3.5rem));margin:0 auto var(--space-3);gap:2px;display:grid;container-type:inline-size}.crossword-row{grid-template-columns:repeat(var(--cols), 1fr);gap:2px;display:grid}.cell{aspect-ratio:1}.cell-button{background:var(--color-text);width:100%;height:100%;color:var(--color-accent-text);font:inherit;cursor:pointer;scroll-margin:var(--space-3) var(--space-3) calc(var(--inset) + var(--dock-h) + var(--space-3));border:0;border-radius:.2rem;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}.cell-letter{font-family:var(--font-display);font-size:calc(100cqw / var(--cols) * .55);font-weight:650;line-height:1}.cell-number{font-size:max(.625rem, calc(100cqw / var(--cols) * .26));font-weight:600;line-height:1;position:absolute;top:.1rem;left:.2rem}.cell-word{background:color-mix(in srgb, var(--color-accent) 40%, var(--color-text))}.cell-word:after,.cell-active:after{content:"";background:var(--color-accent-text);border-radius:999px;position:absolute}.cell-dir-across:after{height:.2rem;inset:auto .3rem .2rem}.cell-dir-down:after{width:.2rem;inset:.3rem .2rem .3rem auto}.cell-active{z-index:1;background:var(--color-accent);outline:3px solid var(--color-accent);outline-offset:2px}.cell-wrong .cell-letter{color:var(--color-wrong)}.cell-wrong:before{content:"";background:linear-gradient(to top right, transparent calc(50% - 1.5px), var(--color-wrong) calc(50% - 1.5px) calc(50% + 1.5px), transparent calc(50% + 1.5px));position:absolute;inset:0}.cell-right .cell-letter{color:var(--color-right)}.cell-right:before{content:"✓";color:var(--color-right);font-size:max(.625rem, calc(100cqw / var(--cols) * .26));font-weight:700;line-height:1;position:absolute;top:.1rem;right:.2rem}.cell-revealed .cell-letter{font-style:italic;font-weight:500}.cell-revealed:before{content:"";width:max(.6rem, calc(100cqw / var(--cols) * .3));aspect-ratio:1;background:linear-gradient(to bottom left, var(--color-border) 50%, transparent 50%);border-top-right-radius:.2rem;position:absolute;top:0;right:0}.crossword-grid.is-focused .cell-active{outline-color:var(--color-text)}.clue-lists{gap:var(--space-3) var(--space-4);margin-top:var(--space-4);display:grid}@media (width>=30rem){.clue-lists{grid-template-columns:1fr 1fr;align-items:start}}.clue-lists h2{margin:0 0 var(--space-1);font-size:1.125rem}.clue-list{margin:0;padding:0;list-style:none}.clue-button{gap:var(--space-2);width:100%;min-height:2.75rem;padding:var(--space-2) var(--space-2);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-left:.25rem solid #0000;display:flex}.clue-button[aria-current=true]{border-left-color:var(--color-accent);background:var(--color-surface);font-weight:600}.clue-number{min-width:1.25rem;color:var(--color-accent);flex:none;font-weight:600}.crossword-dock{inset:auto 0 var(--inset) 0;z-index:2;gap:var(--space-2);max-width:40rem;padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;margin:0 auto;display:flex;position:fixed}.clue-bar{align-items:center;gap:var(--space-2);display:flex}.clue-bar-text{text-align:center;flex:1;margin:0;line-height:1.3}.crossword-input{opacity:0;border:0;width:1px;height:1px;padding:0;font-size:16px;position:absolute;bottom:0;left:0}.crossword-solved,.gender-done{gap:var(--space-3);flex-direction:column;display:flex}.solved-head{align-items:center;gap:var(--space-3);display:flex}.solved-head h1,.solved-head p{margin:0}.solved-head h1:focus{outline:none}.solved-head p{color:var(--color-text-muted)}.solved-face{border:2px solid var(--color-accent);background:var(--color-surface-raised);border-radius:999px;flex:none;width:4.5rem;height:4.5rem;overflow:hidden}.recap-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recap-word{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-left:3px solid var(--color-border);background:var(--color-surface);display:flex}.recap-word.is-helped{border-left-color:var(--color-accent)}.recap-text{align-items:baseline;column-gap:var(--space-3);flex-wrap:wrap;flex:1;min-width:0;display:flex}.recap-answer{font-family:var(--font-display);font-size:1.375rem;line-height:1.3}.recap-meaning{color:var(--color-text-muted);flex-basis:100%}.recap-help{margin-top:var(--space-1);padding:.125rem var(--space-2);border:1px solid var(--color-accent);color:var(--color-accent);white-space:nowrap;border-radius:999px;font-size:.8125rem}.reading-page section{padding-block:var(--space-3);border-top:1px solid var(--color-border)}.reading-page h2{margin:0 0 var(--space-2);font-size:1.35rem}.reading-list-head{justify-content:space-between;align-items:baseline;column-gap:var(--space-3);flex-wrap:wrap;display:flex}.reading-list-score{color:var(--color-accent);font-variant-numeric:tabular-nums;white-space:nowrap}.reading-form{gap:var(--space-3);flex-direction:column;display:flex}.reading-form .field select,.user-page .field select{width:100%;min-height:3rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:1rem}.reading-wait{align-items:center;gap:var(--space-3);display:flex}.reading-wait p{margin:0}.reading-face{border:2px solid var(--color-accent);background:var(--color-surface-raised);border-radius:999px;flex:none;width:4.5rem;height:4.5rem;overflow:hidden}@media (prefers-reduced-motion:no-preference){.reading-face{animation:1.8s ease-in-out infinite reading-bob}}@keyframes reading-bob{50%{transform:translateY(-.25rem)}}.reading-short{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.reading-short h1,.reading-short p{margin:0}.reading-back{margin:0 0 var(--space-2)}.reading-listen{min-width:8rem;margin-block:var(--space-3) var(--space-2)}.reading-note:empty{display:none}.reading-text{max-width:36rem;margin-top:var(--space-3);font-family:var(--font-display);font-size:1.25rem;line-height:1.7}.reading-text p{margin:0 0 var(--space-3);overflow-wrap:anywhere}.reading-text .word{border-bottom-color:#0000;border-radius:.25em}.reading-text .story-word,.reading-text .piece.in-group{background:color-mix(in srgb, var(--color-accent) 24%, transparent);color:inherit;border-bottom-color:#0000}.reading-text .word:hover,.reading-text .word:focus-visible{border-bottom-color:var(--color-border-strong)}.reading-text .story-word{padding:0 .15em}.reading-text .word.selected,.reading-text .piece.selected{background:var(--color-accent);color:var(--color-accent-text)}.word-popup-others{margin-bottom:var(--space-3)}.word-popup-others ul{margin:0;padding:0;list-style:none}.word-popup-others li+li{margin-top:var(--space-1)}.word-popup-others .link-button{text-align:left}.reading-questions{max-width:36rem;margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.reading-questions h2{margin:0 0 var(--space-1);font-size:1.35rem}.reading-question{min-width:0;margin:var(--space-4) 0 0;border:0;padding:0}.reading-question legend{margin-bottom:var(--space-2);padding:0;font-size:1.0625rem;font-weight:600}.reading-choice{align-items:center;gap:var(--space-1) var(--space-3);min-height:3rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;flex-wrap:wrap;display:flex}.reading-choice+.reading-choice{margin-top:var(--space-2)}.reading-choice input{width:1.25rem;height:1.25rem;accent-color:var(--color-accent);flex:none;margin:0}.reading-choice>span:first-of-type{overflow-wrap:anywhere;flex:1;min-width:0}.reading-choice:has(input:checked){border-color:var(--color-accent)}.reading-choice:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}.reading-question:disabled .reading-choice{color:var(--color-text);cursor:default}.reading-choice.is-right{border-color:var(--color-success)}.reading-choice.is-wrong{border-color:var(--color-error)}.reading-mark{font-size:.875rem;font-weight:600}.is-right .reading-mark,.reading-verdict.is-right{color:var(--color-success)}.is-wrong .reading-mark,.reading-verdict.is-wrong{color:var(--color-error)}.reading-explanation{margin-top:var(--space-2)}.reading-explanation p{margin:0}.reading-verdict{font-weight:600}.reading-explanation p:last-child{color:var(--color-text-muted)}.reading-check{align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.reading-check .button{min-width:10rem}.reading-score{margin:0;font-weight:600}.reading-score:empty{display:none}.wordsets-page section{padding-block:var(--space-3);border-top:1px solid var(--color-border)}.wordsets-page h2{margin:0 0 var(--space-2);font-size:1.35rem}.wordsets-form{gap:var(--space-3);flex-direction:column;display:flex}.wordsets-wait:empty{display:none}.wordsets-wait p{margin:var(--space-3) 0 0}.wordsets-suggestions h3{margin:var(--space-4) 0 var(--space-2);font-family:var(--font-sans);color:var(--color-text-muted);font-size:.875rem;font-weight:400}.wordsets-suggestions ul{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.wordsets-chip{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font:inherit;border-radius:999px}.wordsets-chip-count{margin-left:var(--space-2);color:var(--color-text-muted);font-size:.8125rem}.wordsets-chip:hover:not(:disabled){border-color:var(--color-accent)}.wordsets-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.wordsets-chip:disabled{opacity:.6}.wordsets-progress{width:100%;height:.5rem;margin:var(--space-2) 0 var(--space-1);background:var(--color-surface-raised);accent-color:var(--color-accent);appearance:none;border:0;border-radius:999px;overflow:hidden}.wordsets-progress::-webkit-progress-bar{background:var(--color-surface-raised)}.wordsets-progress::-webkit-progress-value{background:var(--color-accent)}.wordsets-progress::-moz-progress-bar{background:var(--color-accent)}.wordset-page h1{margin-block:var(--space-2)}.wordset-back{margin:0}.wordset-progress{margin-block:var(--space-2);color:var(--color-text-muted)}.wordset-progress span{display:block}.wordset-group{margin:var(--space-3) 0 0}.wordset-group summary{align-items:baseline;gap:var(--space-2);min-height:3rem;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);cursor:pointer;list-style:none;display:flex}.wordset-group summary::-webkit-details-marker{display:none}.wordset-group summary:before{content:"▸";color:var(--color-accent);transition:transform .15s}.wordset-group[open] summary:before{transform:rotate(90deg)}.wordset-group summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.wordset-group-name{font-family:var(--font-display);font-size:1.35rem;font-weight:650;line-height:1.2}.wordset-count{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:.875rem}.wordset-group fieldset{border:0;min-width:0;margin:0;padding:0}.wordset-tools{justify-content:flex-end;display:flex}.wordset-group ul{margin:0;padding:0;list-style:none}.wordset-row{border-bottom:1px solid var(--color-border);align-items:center;display:flex}.wordset-row label{gap:var(--space-3);min-width:0;padding:var(--space-2) 0;flex:1;align-items:flex-start;display:flex}.wordset-row input[type=checkbox]{width:1.5rem;height:1.5rem;accent-color:var(--color-accent);flex:none;margin:.125rem 0 0}.wordset-row input[type=checkbox]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.wordset-text{flex-direction:column;min-width:0;display:flex}.wordset-head{align-items:baseline;gap:0 var(--space-2);flex-wrap:wrap;display:flex}.wordset-headword{font-family:var(--font-display);font-size:1.25rem;line-height:1.3}.wordset-class,.wordset-gloss{color:var(--color-text-muted);font-size:.875rem}.wordset-head .strength{margin-left:0}.wordset-info{width:2.75rem;height:2.75rem;color:var(--color-text-muted);font:inherit;background:0 0;border:0;flex:none;place-items:center;display:grid}.wordset-info span{border:1px solid var(--color-border-strong);width:1.5rem;height:1.5rem;font-family:var(--font-display);border-radius:50%;place-items:center;font-style:italic;display:grid}.wordset-info:hover span{border-color:var(--color-accent);color:var(--color-text)}.wordset-info:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.wordset-bar{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + var(--space-2));gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);display:grid;position:sticky}.set-continue{justify-content:space-between;align-items:center;gap:var(--space-2);margin-block:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.set-continue-waiting{font-weight:600}.set-continue-done{color:var(--color-text-muted)}.path-page h1{margin-block:var(--space-2)}.path-headline{margin-block:var(--space-2) var(--space-4)}.path-strong{margin:0;font-size:1.125rem}.path-strong strong{font-family:var(--font-display);font-size:2rem;line-height:1}.path-percent{color:var(--color-text-muted)}.path-chapters{margin:0;padding:0;list-style:none}.path-chapter{border-top:1px solid var(--color-border)}.path-chapters>li:last-child .path-chapter{border-bottom:1px solid var(--color-border)}.path-chapter summary{align-items:baseline;gap:var(--space-2);min-height:2.75rem;padding-block:var(--space-2);cursor:pointer;list-style:none;display:flex}.path-chapter summary::-webkit-details-marker{display:none}.path-chapter summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.path-mark{text-align:center;width:1.25rem;color:var(--color-text-muted);flex:none}.path-chapter-current .path-mark,.path-chapter-current .path-chapter-name{color:var(--color-accent)}.path-chapter-name{font-family:var(--font-display);flex:1;font-size:1.125rem;font-weight:650}.path-chapter-count{color:var(--color-text-muted);text-align:right;font-size:.875rem}.path-chapter .wordsets-progress{margin-top:0}.path-needs{padding-bottom:var(--space-3)}.path-track{margin:var(--space-2) 0 var(--space-3);padding:0;list-style:none}.path-station{padding:0 0 var(--space-2) 2rem;position:relative}.path-station:before{content:"";border:2px solid var(--color-border-strong);background:var(--color-bg);border-radius:50%;width:.75rem;height:.75rem;position:absolute;top:.95rem;left:.3125rem}.path-station:after{content:"";background:var(--color-border);width:2px;position:absolute;top:1.95rem;bottom:-.1rem;left:.6875rem}.path-station:last-child:after{display:none}.path-station[data-state=done]:before{border-color:var(--color-text-muted);background:var(--color-text-muted)}.path-station[data-next]:before{border-color:var(--color-accent);background:var(--color-accent);box-shadow:0 0 0 4px #fecc0240}.path-station-main{align-items:baseline;gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--color-text);border:1px solid #0000;flex-wrap:wrap;text-decoration:none;display:flex}a.path-station-main:hover{background:var(--color-surface)}a.path-station-main:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.path-station[data-next] .path-station-main{background:var(--color-surface-raised);border-color:var(--color-accent)}.path-station-name{font-weight:600}.path-station-text{color:var(--color-text-muted);flex:1;font-size:.9375rem}.path-next{padding:0 var(--space-2);background:var(--color-accent);color:var(--color-accent-text);border-radius:999px;font-size:.8125rem;font-weight:700}.path-station>.button,.path-station-error{margin:var(--space-1) 0 0 var(--space-3)}.path-done{margin:0 0 var(--space-3)}.path-star{color:var(--color-text-muted);margin-right:.25rem}.path-star-filled{color:var(--color-accent)}.path-station[data-state=failed]:before,.path-station[data-state=unavailable]:before{border-style:dashed}.path-station-note{margin:0 0 0 var(--space-3);color:var(--color-text-muted);font-size:.875rem}.path-more{margin:0 0 var(--space-3);padding-left:2rem}.path-more-group+.path-more-group{margin-top:var(--space-2)}.path-more-label{color:var(--color-text-muted);margin:0;font-size:.9375rem}.path-more ul{gap:0 var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.path-more li{align-items:center;min-height:2.75rem;display:flex}.path-more a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.path-more-wait{color:var(--color-text-muted)}.welcome{width:100%;max-width:28rem;padding:var(--space-3) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));flex-direction:column;flex:1;margin:0 auto;display:flex}.welcome-bar{justify-content:space-between;align-items:center;display:flex}.welcome-bar .link-button:disabled{color:var(--color-text-muted)}.welcome-offline{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-error);border-radius:var(--radius)}.welcome-step{gap:var(--space-3);flex-direction:column;flex:1;display:flex}.welcome-step h1{margin:var(--space-4) 0 0;letter-spacing:-.01em;font-size:clamp(2rem,9vw,2.5rem)}.welcome-step h1:focus{outline:none}.welcome-step form{gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.welcome-levels{gap:var(--space-2);flex-direction:column;margin-top:auto;display:flex}.welcome-level{min-height:5rem;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-family:var(--font-display);text-align:left;font-size:1.375rem;font-weight:650}.welcome-level[aria-pressed=true]{border-color:var(--color-accent);box-shadow:inset .3rem 0 0 var(--color-accent)}.welcome-level:focus-visible,.welcome-skip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.welcome-goals{border:0;min-width:0;margin:0;padding:0}.profile-goals{margin-block:var(--space-3)}.welcome-goals legend{margin-bottom:var(--space-2);color:var(--color-text-muted);padding:0}.welcome-plan{margin:0;padding:0;list-style:none}.welcome-plan li{padding:var(--space-3) 0;border-top:1px solid var(--color-border);flex-direction:column;display:flex}.welcome-plan li:last-child{border-bottom:1px solid var(--color-border)}.welcome-plan strong{font-family:var(--font-display);font-size:1.25rem;font-weight:650}.welcome-plan span{color:var(--color-text-muted)}.welcome-step>.button{margin-top:auto}.mission-progress{color:var(--color-text-muted);margin:0}.lesson-card{padding:var(--space-4) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin-top:auto}.lesson-card h2{font-family:var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:clamp(2.25rem,12vw,3rem)}.chapter-words{gap:var(--space-3);flex-direction:column;display:flex}.chapter-words h1{margin:0}.chapter-words h1:focus{outline:none}.chapter-words-back{margin:0}.chapter-words .lesson-card{margin-top:0}.chapter-words-actions{align-items:stretch;gap:var(--space-2);flex-direction:column;display:flex}.chapter-words-actions .link-button{align-self:center}.lesson-class,.lesson-from{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:1rem}.lesson-gloss{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:1.25rem}.listen-button{min-height:3rem;padding:0 var(--space-2);color:var(--color-accent);font:inherit;background:0 0;border:0;align-self:flex-start}.listen-button:focus-visible,.scene-reply:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.listen-note:empty{display:none}.scene-log{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.scene-turn{gap:var(--space-2);flex-direction:column;display:flex}.scene-bubble{max-width:85%;padding:var(--space-2) var(--space-3);border-radius:var(--radius);overflow-wrap:anywhere;margin:0}.scene-bubble p{margin:0}.scene-them{background:var(--color-surface-raised);align-self:flex-start}.scene-you{background:var(--color-accent);color:var(--color-accent-text);align-self:flex-end}.scene-bubble-tools{align-items:center;gap:0 var(--space-3);flex-wrap:wrap;display:flex}.scene-bubble-tools .link-button{min-width:0;padding:0}.scene-english{color:var(--color-text-muted)}.scene-you .word{border-bottom-color:color-mix(in srgb, currentColor 55%, transparent)}.scene-you .word.selected{background:var(--color-accent-text);color:var(--color-accent)}.scene-done{padding:var(--space-3);border-top:1px solid var(--color-border);font-family:var(--font-display);font-size:1.25rem;font-weight:650}.scene-replies{gap:var(--space-2);min-width:0;padding:var(--space-3) 0 0;background:var(--color-bg);border:0;flex-direction:column;margin:auto 0 0;display:flex;position:sticky;bottom:0}.scene-replies legend{margin-bottom:var(--space-2);color:var(--color-text-muted);padding:0}.scene-reply{min-height:3.25rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left}.scene-reply-wrong{border-color:var(--color-error);box-shadow:inset .3rem 0 0 var(--color-error)}.scene-reply-waiting{opacity:.5}.scene-typing{padding:var(--space-3);gap:.3rem;display:flex}.scene-typing span{background:var(--color-text-muted);border-radius:50%;width:.5rem;height:.5rem}.scene-why{min-height:1.5rem;color:var(--color-error);margin:0}.scene-prompt{margin:0;font-weight:600}.scene-show{align-self:center}.tiles-line{align-content:flex-start;gap:var(--space-2);min-height:3.5rem;padding:var(--space-2) 0;border-bottom:2px solid var(--color-accent);flex-wrap:wrap;display:flex}.tiles-line-wrong{border-bottom-color:var(--color-error)}.tiles-hint{color:var(--color-text-muted);align-self:center}.tiles-bank{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tile{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:1.125rem}.tiles-line .tile{border-color:var(--color-accent);background:var(--color-surface-raised)}.tile-used{border-style:dashed;border-color:var(--color-border);color:#0000;background:0 0}.tile:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.scene-typed{gap:var(--space-2);flex-direction:column;display:flex}.scene-typed-row{gap:var(--space-2);display:flex}.scene-typed-input{min-width:0;min-height:3rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;flex:1;font-size:1.125rem}.scene-typed-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.scene-miss ins{background:var(--color-accent);color:var(--color-accent-text);border-radius:.12em;text-decoration:none}@media (prefers-reduced-motion:no-preference){.scene-typing span{animation:1s ease-in-out infinite scene-dot}.scene-typing span:nth-child(2){animation-delay:.15s}.scene-typing span:nth-child(3){animation-delay:.3s}.scene-shake{animation:.4s ease-in-out scene-shake}}@keyframes scene-dot{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-.25rem)}}@keyframes scene-shake{0%,to{transform:translate(0)}20%{transform:translate(-.5rem)}40%{transform:translate(.5rem)}60%{transform:translate(-.35rem)}80%{transform:translate(.25rem)}}.done-count{color:var(--color-text-muted);margin:0}.done-words{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.done-words li{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9375rem}.done-actions{gap:var(--space-2);flex-direction:column;margin-top:auto;display:flex}.confetti{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.confetti-piece{display:none}@media (prefers-reduced-motion:no-preference){.confetti-piece{top:-1.5rem;left:var(--x);width:.5rem;height:.9rem;animation:confetti-fall var(--fall) var(--delay) ease-in both;border-radius:1px;display:block;position:absolute}}.confetti-0{background:var(--color-accent)}.confetti-1{background:var(--color-text)}.confetti-2{background:var(--color-border-strong)}@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0)rotate(0)}85%{opacity:1}to{transform:translate3d(var(--drift), 105vh, 0) rotate(var(--spin));opacity:0}}.confetti-star{margin-top:var(--space-4);color:var(--color-accent);font-size:3.5rem;line-height:1}.confetti-star+h1{margin-top:0}.mission-back{margin-bottom:var(--space-2);display:inline-block}.mission-play h1{margin-top:0}.mission-play h1:focus{outline:none}.mission-words{margin:0 0 var(--space-3);padding:0;list-style:none}.mission-words li{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--color-border);display:flex}.mission-words li:last-child{border-bottom:1px solid var(--color-border)}.mission-word{font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.5rem;line-height:1.2;display:block}.mission-gloss{color:var(--color-text-muted);display:block}.mission-play .scene-replies{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom))}.mission-done{gap:var(--space-3);flex-direction:column;display:flex}.mission-actions{gap:var(--space-2);flex-direction:column;display:flex}.missions-played{font-family:var(--font-display);margin:0;font-size:1.25rem}.play-note{align-items:center;gap:var(--space-1);margin-top:var(--space-1);color:var(--color-text-muted);font-size:.875rem;display:flex}.play-note svg{flex:none;width:1rem;height:1rem}
