@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--subtle:#f2f2f2;--text:#0a0a0a;--text-muted:#666;--border:#ebebeb;--accent:#0a0a0a;--accent-text:#fff;--focus:#0a0a0a;--danger:#d0021b;--heat-1:#d9d9d9;--heat-2:#a8a8a8;--heat-3:#5f5f5f;--heat-4:#0a0a0a;--font-ui:"Geist Variable", system-ui, sans-serif;--font-term:"Geist Variable", system-ui, sans-serif;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-term:2.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--radius:8px;--radius-sm:6px;--nav-h:3.5rem;--rail-w:12rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#0a0a0a;--subtle:#141414;--text:#ededed;--text-muted:#a1a1a1;--border:#1f1f1f;--accent:#ededed;--accent-text:#000;--focus:#ededed;--danger:#ff6166;--heat-1:#2e2e2e;--heat-2:#5a5a5a;--heat-3:#9a9a9a;--heat-4:#ededed}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#0a0a0a;--subtle:#141414;--text:#ededed;--text-muted:#a1a1a1;--border:#1f1f1f;--accent:#ededed;--accent-text:#000;--focus:#ededed;--danger:#ff6166;--heat-1:#2e2e2e;--heat-2:#5a5a5a;--heat-3:#9a9a9a;--heat-4:#ededed}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-base);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3{margin:0 0 var(--space-4);letter-spacing:-.03em;font-weight:600;line-height:1.2}h1{font-size:var(--text-xl)}h2{margin:var(--space-8) 0 var(--space-3);font-size:var(--text-lg)}h1+h2{margin-top:0}h3{margin:var(--space-6) 0 var(--space-3)}p{margin:0 0 var(--space-4)}.muted{color:var(--text-muted)}.term{font-family:var(--font-term);font-size:var(--text-term);letter-spacing:-.04em;font-weight:500;line-height:1.1}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}hr{border:0;border-top:1px solid var(--border);margin:var(--space-6) 0}input,select,textarea{font:inherit;min-height:2.75rem;padding:var(--space-2) var(--space-3);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);background:0 0}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--text)}button.primary{min-height:2.75rem;padding:var(--space-2) var(--space-6);background:var(--accent);color:var(--accent-text);border-radius:var(--radius-sm);cursor:pointer;border:0;font-weight:500}button.primary:active{opacity:.8}button.link{padding:var(--space-1) var(--space-2);color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;cursor:pointer;background:0 0;border:0}button.link:disabled{color:var(--text-muted);cursor:default;text-decoration:none}button.danger{color:var(--danger)}.log-quick button,.log-custom button,.journal-form button,.data-actions button,.data-pick,.data-pending>button,.ratings button,.drill-choices button{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0}.log-quick button:active,.log-custom button:active,.journal-form button:active,.data-actions button:active,.data-pick:active,.data-pending>button:active,.ratings button:active,.drill-choices button:active,.segmented button:active,.card-list button:active,.speak:active{background:var(--subtle)}@media (hover:hover){.log-quick button:hover,.log-custom button:hover:not(:disabled),.journal-form button:hover:not(:disabled),.data-actions button:hover,.data-pick:hover,.data-pending>button:hover,.ratings button:hover,.drill-choices button:hover:not(:disabled),.segmented button:hover,.card-list button:hover,.speak:hover{background:var(--subtle)}}@media (prefers-reduced-motion:no-preference){button,.data-pick,input,select,textarea{transition:background-color .12s ease-out,border-color .12s ease-out,opacity .12s ease-out}}.shell{min-height:100dvh}.shell-main{max-width:40rem;padding:calc(var(--space-6) + env(safe-area-inset-top)) max(var(--space-4), env(safe-area-inset-right)) calc(var(--nav-h) + var(--space-6) + env(safe-area-inset-bottom)) max(var(--space-4), env(safe-area-inset-left));margin:0 auto}.nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding:0 max(var(--space-4), env(safe-area-inset-right)) env(safe-area-inset-bottom) max(var(--space-4), env(safe-area-inset-left));background:var(--bg);border-top:1px solid var(--border);display:flex;position:fixed;inset:auto 0 0}.nav a{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;text-decoration:none;display:flex}.nav a[aria-current=page]{color:var(--text);font-weight:600}.nav svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:1.4rem;height:1.4rem}.segmented{width:fit-content;margin:0 0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;overflow:hidden}.data-pending .segmented{margin:0}.segmented button{min-height:2.75rem;padding:var(--space-2) var(--space-4);border:0;border-right:1px solid var(--border);cursor:pointer;background:0 0}.segmented button:last-child{border-right:0}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}@media (width>=768px){.shell{grid-template-columns:var(--rail-w) 1fr;display:grid}.shell-main{max-width:44rem;padding:calc(var(--space-8) + env(safe-area-inset-top)) max(var(--space-8), env(safe-area-inset-right)) var(--space-8) var(--space-8);width:100%}.nav{top:0;height:100dvh;padding:calc(var(--space-6) + env(safe-area-inset-top)) var(--space-3) var(--space-6) max(var(--space-3), env(safe-area-inset-left));gap:var(--space-1);border-top:0;border-right:1px solid var(--border);flex-direction:column;position:sticky;inset:auto}.nav a{justify-content:flex-start;gap:var(--space-3);min-height:2.75rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base);flex-direction:row;flex:none}.nav a[aria-current=page]{background:var(--subtle)}}.account-form{gap:var(--space-3);max-width:24rem;margin-bottom:var(--space-3);flex-direction:column;display:flex}.account-form+button.link{margin:0 0 var(--space-4) calc(var(--space-2) * -1)}.btn,.account-form button[type=submit]{min-height:3rem;margin-bottom:var(--space-4);padding:var(--space-2) var(--space-6);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-self:flex-start}.account-form button[type=submit]{margin-bottom:0}.btn:active,.account-form button[type=submit]:active{background:var(--subtle)}.btn:disabled,.account-form button[type=submit]:disabled{color:var(--text-muted);cursor:default}@media (hover:hover){.btn:hover:not(:disabled),.account-form button[type=submit]:hover:not(:disabled){background:var(--subtle)}}.account-form label{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;display:flex}.speak{border:1px solid var(--border);width:2.75rem;height:2.75rem;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.speak svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:1.4rem;height:1.4rem}.lookup-links{gap:var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}.lookup-links a{color:var(--text);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px}.sync-status{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--text-muted);display:flex}.sync-dot{background:var(--text-muted);border-radius:50%;width:.5rem;height:.5rem}.sync-status[data-phase=idle] .sync-dot{background:var(--text)}.sync-status[data-phase=syncing] .sync-dot{animation:1s ease-in-out infinite sync-pulse}.sync-status[data-phase=error]{color:var(--text)}.sync-status[data-phase=error] .sync-dot{background:var(--danger)}@keyframes sync-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.sync-status[data-phase=syncing] .sync-dot{animation:none}}.limits{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.limits label{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;display:flex}.limits input{width:9rem}.data-actions{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.data-actions button,.data-pick,.data-pending>button{min-height:3rem;padding:var(--space-2) var(--space-6);align-items:center;display:inline-flex}.data-pick input{opacity:0;border:0;width:1px;height:1px;min-height:0;padding:0;position:absolute}.data-pick:focus-within{outline:2px solid var(--focus);outline-offset:2px}.data-pending{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}:root{--de-der:#0060d6;--de-die:#c4245a;--de-das:#0a7d3b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--de-der:#52a8ff;--de-die:#ff6b9a;--de-das:#4ade80}}:root[data-theme=dark]{--de-der:#52a8ff;--de-die:#ff6b9a;--de-das:#4ade80}.de-article{font-weight:500}.de-article--der{color:var(--de-der)}.de-article--die{color:var(--de-die)}.de-article--das{color:var(--de-das)}.cards-toolbar{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.cards-toolbar input{flex:1}.card-form{gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}.card-form label{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;display:flex}.card-form-actions{gap:var(--space-2);display:flex}.card-form-actions .danger{margin-left:auto}.card-list{margin:0;padding:0;list-style:none}.card-list button{justify-content:space-between;align-items:baseline;gap:var(--space-4);width:100%;min-height:3rem;padding:var(--space-3) var(--space-2);border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;display:flex}.card-list .term{font-size:var(--text-lg);letter-spacing:-.02em}.drill-card{gap:var(--space-4);padding:var(--space-4) 0;flex-direction:column;display:flex}.drill-term{font-family:var(--font-term);font-size:var(--text-term);letter-spacing:-.04em;margin:0;font-weight:500;line-height:1.1}.drill-choices{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.drill-choices button{min-height:3rem;padding:var(--space-2)}.drill-choices button:disabled{cursor:default;color:var(--text)}.drill-choices button[data-state=right]{border:2px solid var(--text);font-weight:600}.drill-choices button[data-state=wrong]{border:2px dashed var(--text-muted);color:var(--text-muted);text-decoration:line-through}.drill-score{font-size:var(--text-xl);letter-spacing:-.04em;margin:0 0 var(--space-4);font-weight:500}.drill-missed{margin:0 0 var(--space-6);padding:0;list-style:none}.drill-missed li{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.journal-day{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.journal-form{gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}.journal-form label{gap:var(--space-1);flex-direction:column;display:flex}.journal-form input,.journal-form textarea,.journal-day input{min-height:3rem}.journal-form textarea{resize:vertical}.journal-form button{min-height:3rem;padding:var(--space-2) var(--space-6);align-self:flex-start}.journal-form button:disabled{color:var(--text-muted);cursor:default}.journal-list{margin:0 0 var(--space-6);padding:0;list-style:none}.journal-list li{gap:var(--space-1);padding:var(--space-2) 0;border-bottom:1px solid var(--border);flex-direction:column;display:flex}.journal-list button.link{align-self:flex-start}.journal-notes{color:var(--text-muted);white-space:pre-wrap;display:block}.log-total,.log-streak{padding:0 0 var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--border)}.log-hours,.log-streak-count{margin:0 0 var(--space-3);letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:500;line-height:1.1}.log-hours .muted,.log-streak-count .muted{font-size:var(--text-base);letter-spacing:0;font-weight:400}.log-bar{background:var(--subtle);height:.5rem;margin-bottom:var(--space-3);border-radius:999px;overflow:hidden}.log-bar>div{background:var(--accent);height:100%}.log-warning{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);background:var(--subtle);border-radius:var(--radius-sm);font-size:var(--text-sm)}.heatmap{grid-template-rows:repeat(7,1fr);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;display:grid}.heat{aspect-ratio:1;background:var(--subtle);border-radius:2px}.heat[data-level="1"]{background:var(--heat-1)}.heat[data-level="2"]{background:var(--heat-2)}.heat[data-level="3"]{background:var(--heat-3)}.heat[data-level="4"]{background:var(--heat-4)}.heat[data-future]{visibility:hidden}.heat[data-today]{outline:2px solid var(--text);outline-offset:1px}.log-quick{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.log-quick button,.log-custom button{min-height:3rem;padding:var(--space-2) var(--space-4)}.log-custom button:disabled{color:var(--text-muted);cursor:default}.log-custom{align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-6);display:flex}.log-custom label{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.log-custom input{min-height:3rem}.log-list{margin:0;padding:0;list-style:none}.log-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.review-meta{justify-content:space-between;align-items:center;display:flex}.review-card{gap:var(--space-4);padding:var(--space-4) 0;flex-direction:column;display:flex}.review-answer{font-size:var(--text-lg);margin:0}.ratings{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.ratings button{min-height:3.25rem;padding:var(--space-2);flex-direction:column;align-items:center;font-weight:500;display:flex}.ratings small{color:var(--text-muted);font-weight:400}.ratings button[data-rating="3"]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.ratings button[data-rating="3"] small{color:inherit;opacity:.7}@media (hover:hover){.ratings button[data-rating="3"]:hover{background:var(--accent);opacity:.85}}.ratings button[data-rating="3"]:active{background:var(--accent);opacity:.8}.review-term{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}
