@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.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: ;--lightningcss-dark:initial;color-scheme:dark;--night:#0e0f0c;--surface:#1b1c18;--surface-raised:#272822;--paper:#272822;--line:#3b3c34;--chalk:#f5f3ea;--chalk-soft:#aeaea0;--placeholder:#7c7c70;--hover-tint:#ffffff0f;--shadow:0 18px 40px #00000052;--brand:#ffd21f;--accent:var(--brand);--on-accent:#0e0f0c;--known:#2fe0a0;--missed:#ff7a63;--on-status:#0e0f0c;--mark-ink:#0e0f0c;--text-white:#fff;--text-red:#ff6b5e;--text-green:#3ddc97;--text-blue:#62c6ff;--text-yellow:#ffd21f;--text-violet:#c4b0ff;--mark-red:#ff6b5e;--mark-green:#3ddc97;--mark-blue:#62c6ff;--mark-yellow:#ffd21f;--mark-violet:#c4b0ff;--display:"Bricolage Grotesque Variable", "Arial Narrow", sans-serif;--text:"Instrument Sans Variable", "Helvetica Neue", sans-serif;--gutter:clamp(1rem, 4vw, 3rem);--radius:22px;--radius-small:12px}[style*=--course]{--accent:var(--course)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--night);color:var(--chalk);font-family:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.55;transition:background-color .2s,color .2s}h1,h2,h3,p{margin:0}a{color:inherit}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.on-touch{display:none}@media (hover:none){.on-mouse{display:none}.on-touch{display:inline}}.page-title{font-family:var(--display);letter-spacing:-.035em;font-size:clamp(2.75rem,9vw,5.5rem);font-weight:800;line-height:.95}.section-title{font-family:var(--display);letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(1.625rem,4vw,2.25rem);font-weight:700}.button{border:2px solid var(--accent);background:var(--accent);min-height:2.75rem;color:var(--on-accent);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.5rem 1.25rem;font-size:.9375rem;font-weight:700;text-decoration:none;transition:transform .14s,opacity .14s;display:inline-flex}.button:hover:not(:disabled){transform:scale(1.04)}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.3;cursor:not-allowed}.button--quiet{color:var(--accent);background:0 0}.text-button{min-height:2.75rem;color:var(--chalk-soft);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:.25rem .5rem;font-size:.875rem;font-weight:600;text-decoration:underline}.text-button:hover{color:var(--chalk)}.text-button--danger,.text-button--danger:hover{color:var(--missed)}.confirm{flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.875rem;display:inline-flex}.field{display:block}.field__label{color:var(--chalk-soft);margin-bottom:.35rem;padding:0;font-size:.8125rem;font-weight:600;display:block}.field__input{border:2px solid var(--line);border-radius:var(--radius-small);background:var(--night);width:100%;padding:.7rem .85rem;transition:border-color .14s;display:block}.field__input:focus{border-color:var(--accent);outline:0}.field__input--area{resize:vertical;field-sizing:content;min-height:4.5rem}::placeholder{color:var(--placeholder)}.form-actions{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.form-actions__hint{color:var(--chalk-soft);margin-left:auto;font-size:.75rem;display:none}@media (hover:hover){.form-actions__hint{display:inline}}.panel-empty{color:var(--chalk-soft);text-align:center;padding:2rem 0}.save-alert{padding:.75rem var(--gutter);background:var(--missed);color:var(--on-status);font-size:.9375rem;font-weight:600}.not-found{max-width:34rem;padding:3rem var(--gutter);justify-items:start;gap:1rem;display:grid}.not-found__title{font-family:var(--display);letter-spacing:-.03em;font-size:2.75rem;font-weight:800;line-height:1.05}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.backup-page{max-width:38rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter) 0;gap:1.25rem;display:grid}.backup p{color:var(--chalk-soft)}.backup__last{color:var(--chalk-soft);font-size:.875rem}.backup__actions{gap:.5rem;margin-top:.5rem;display:flex}.backup__error{color:var(--missed);font-weight:600}.backup__confirm{border:2px solid var(--missed);border-radius:var(--radius-small);margin-top:.5rem;padding:1rem}.tutorial-banner{border:1px solid var(--line);border-radius:999px;align-items:center;gap:.25rem;margin-top:1rem;display:flex}.tutorial-banner__open{min-height:2.75rem;color:var(--chalk-soft);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:.6rem;padding:.35rem .5rem .35rem .4rem;font-size:.9375rem;display:flex}.tutorial-banner__open:hover{color:var(--chalk)}.tutorial-banner__mark{background:var(--accent);width:1.75rem;height:1.75rem;color:var(--on-accent);font-family:var(--display);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.tutorial-banner__more{color:var(--accent);white-space:nowrap;font-weight:700}.tutorial-banner__close{width:2.75rem;height:2.75rem;color:var(--chalk-soft);cursor:pointer;background:0 0;border:0;flex:none;font-size:1.375rem}.tutorial-banner__close:hover{color:var(--chalk)}.today{max-width:56rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter) 0;gap:2.25rem;display:grid}.today-strip{border-radius:var(--radius-small);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.15rem 1rem;margin-top:1rem;padding:.75rem 1.1rem;font-size:.9375rem;font-weight:600;text-decoration:none;transition:background .16s;display:flex}.today-strip:hover{background:var(--surface-raised)}.today-goal{border-radius:var(--radius);background:var(--surface);gap:.5rem;padding:1.25rem;display:grid}.today-goal__count{font-family:var(--display);letter-spacing:-.04em;font-size:clamp(3.5rem,12vw,6rem);font-weight:800;line-height:.95}.today-goal__count span{color:var(--chalk-soft);letter-spacing:-.02em;font-size:.45em}.today-goal__label{color:var(--chalk-soft)}.today-figures{flex-wrap:wrap;gap:.5rem 2.5rem;margin:.75rem 0 .25rem;display:flex}.today-figures dt{color:var(--chalk-soft);font-size:.8125rem;font-weight:600}.today-figures dd{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:700}.today-goal__setting{max-width:10rem}.today-section__empty{color:var(--chalk-soft)}.today-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.exam-row{border-radius:var(--radius);background:var(--accent);color:var(--on-accent);grid-template-columns:1fr auto;gap:.15rem 1rem;padding:1rem 1.1rem;text-decoration:none;transition:transform .16s;display:grid}.exam-row:hover{transform:translateY(-2px)}.exam-row:focus-visible{outline-color:var(--chalk)}.exam-row__title{font-family:var(--display);letter-spacing:-.02em;font-size:1.375rem;font-weight:800;line-height:1.15}.exam-row__when{white-space:nowrap;font-weight:700}.exam-row__plan{grid-column:1/-1;font-size:.9375rem;font-weight:600}.hard-row{border-radius:var(--radius);background:var(--surface);overflow-wrap:break-word;gap:.15rem;padding:.9rem 1.1rem;text-decoration:none;transition:background .16s;display:grid}.hard-row:hover{background:var(--surface-raised)}.hard-row__question{font-weight:600}.hard-row__stats{color:var(--chalk-soft);font-size:.875rem}.streak-flame{place-items:center;width:2.4rem;height:3rem;margin-block:-.6rem;display:inline-grid;position:relative}.streak-flame svg{width:100%;height:100%;overflow:visible}.streak-flame--lit svg{transform-origin:50% 92%;filter:drop-shadow(0 0 6px #ff8c3273);animation:2.4s ease-in-out infinite flame-sway}.streak-flame--lit .streak-flame__inner{transform-origin:50% 90%;animation:1.1s ease-in-out infinite alternate flame-flicker}.streak-flame__count{color:#0e0f0c;font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:800;line-height:1;position:absolute;top:60%;left:50%;translate:-50% -50%}.streak-flame__count--small{letter-spacing:-.04em;font-size:.8125rem}.streak-flame__count--tiny{letter-spacing:-.04em;font-size:.625rem}@keyframes flame-sway{0%,to{transform:rotate(-3deg)scale(1)}25%{transform:rotate(1deg)scale(1.03,.97)}50%{transform:rotate(3deg)scale(.98,1.05)}75%{transform:rotate(-1deg)scale(1.02,.98)}}@keyframes flame-flicker{0%{opacity:.85;transform:scale(.92,.9)}to{opacity:1;transform:scale(1.05,1.08)}}.home,.course{max-width:76rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter) 0}.home__empty{color:var(--chalk-soft);margin-top:.75rem;font-size:1.125rem}.tiles{gap:.75rem;margin-top:1.5rem;display:grid}.tile{border-radius:var(--radius);background:var(--accent);min-height:11.5rem;color:var(--on-accent);grid-template-rows:auto 1fr auto auto;gap:.25rem;padding:1.1rem 1.25rem 1.25rem;text-decoration:none;transition:transform .2s cubic-bezier(.2,1.3,.4,1);animation:.38s cubic-bezier(.2,.9,.3,1) both tile-in;display:grid}.tile:nth-child(2){animation-delay:40ms}.tile:nth-child(3){animation-delay:80ms}.tile:nth-child(4){animation-delay:.12s}.tile:nth-child(5){animation-delay:.16s}.tile:hover{transform:translateY(-4px)rotate(-1deg)}.tile:focus-visible{outline-color:var(--chalk)}@keyframes tile-in{0%{opacity:0;transform:translateY(16px)}}.tile__rank{font-family:var(--display);font-size:1rem;font-weight:800}.tile__title{font-family:var(--display);letter-spacing:-.03em;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;align-self:end;font-size:clamp(1.625rem,2.6vw,2rem);font-weight:800;line-height:1}.tile__counts{margin-top:.35rem;font-size:.875rem;font-weight:600}.tile__meter{background:color-mix(in srgb, var(--on-accent) 25%, transparent);border-radius:999px;height:6px;margin-top:.4rem;overflow:hidden}.tile__meter span{background:var(--on-accent);height:100%;display:block}.tile-new{border:2px dashed var(--line);border-radius:var(--radius);min-height:5rem;color:var(--chalk-soft);font-family:var(--display);cursor:pointer;background:0 0;font-size:1.375rem;font-weight:700;transition:border-color .16s,color .16s}.tile-new:hover{border-color:var(--accent);color:var(--accent)}.course-form{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:1rem;max-width:34rem;margin-top:1rem;padding:1.25rem;display:grid}.swatches{border:0;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;display:flex}.swatches legend{margin-bottom:.45rem}.swatch{cursor:pointer;border-radius:50%;width:2.75rem;height:2.75rem;position:relative}.swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}:is(.swatch:has(input:checked),.swatch:has(input:focus-visible)){outline:3px solid var(--chalk);outline-offset:3px}.course-head{margin-bottom:2.25rem}.course-head__top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.course-head__title{color:var(--accent);font-family:var(--display);letter-spacing:-.04em;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:clamp(2.5rem,6.5vw,4.25rem);font-weight:800;line-height:.95}.course-head__editor{justify-items:start;gap:.5rem;display:grid}.course-head__editor .course-form{width:100%}.course-head__review{justify-items:start;gap:1rem;margin-top:1.5rem;display:grid}.progress{width:100%;max-width:28rem;color:var(--chalk-soft);font-size:.875rem}.progress__track{background:var(--surface-raised);border-radius:999px;height:8px;margin-bottom:.4rem;overflow:hidden}.progress__fill{background:var(--accent);border-radius:999px;height:100%;transition:width .4s}.cta{background:var(--accent);width:100%;color:var(--on-accent);font-family:var(--display);letter-spacing:-.02em;text-align:center;border-radius:999px;padding:1rem 1.75rem;font-size:clamp(1.25rem,4vw,1.625rem);font-weight:800;text-decoration:none;transition:transform .16s cubic-bezier(.2,1.3,.4,1);display:block}.cta:hover{transform:scale(1.03)}.course-head__subset{min-height:2.75rem;color:var(--chalk-soft);text-underline-offset:3px;align-items:center;font-size:.9375rem;display:inline-flex}@media (width>=36rem){.cta{width:auto}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=80rem){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}.course-head__exam{margin-top:.75rem;font-size:1.0625rem}.type-filter{flex-wrap:wrap;gap:.4rem;display:flex}.chip-button{border:2px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;min-height:2.75rem;padding:.35rem 1rem;font-size:.9375rem;font-weight:600;transition:border-color .14s}.chip-button:hover{border-color:var(--accent)}.chip-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.course-back{min-height:2.75rem;color:var(--chalk-soft);align-items:center;margin-bottom:.5rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.course-back:hover{color:var(--chalk)}.type-filter{align-items:center}.type-filter__label{color:var(--chalk-soft);margin-right:.25rem;font-size:.875rem;font-weight:600}.type-filter .chip-button{border-width:1.5px;min-height:2.25rem;padding:.2rem .85rem;font-size:.875rem}.type-filter .chip-button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--chalk)}.course-head__progress{margin-top:1rem}.train,.train-empty{gap:1rem;display:grid}.train-empty{border:2px dashed var(--line);border-radius:var(--radius);color:var(--chalk-soft);justify-items:start;padding:1.25rem}.train-block{border-radius:var(--radius);background:var(--surface);gap:.75rem;padding:1.25rem;display:grid}.train-block__title{font-family:var(--display);letter-spacing:-.02em;font-size:1.5rem;font-weight:800}.train-block__lead{color:var(--chalk-soft);margin-top:-.4rem;font-size:.9375rem}.train-options{gap:.5rem;display:grid}.train-option{border:2px solid var(--accent);min-height:3.5rem;color:var(--accent);border-radius:1.75rem;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.1rem;text-decoration:none;transition:transform .16s cubic-bezier(.2,1.3,.4,1);display:flex}.train-option:hover{transform:scale(1.015)}.train-option--main{background:var(--accent);color:var(--on-accent)}.train-option__name{font-family:var(--display);letter-spacing:-.015em;font-size:1.1875rem;font-weight:800}.train-option__count{white-space:nowrap;font-size:.875rem;font-weight:700}.train-option__count:after{content:" →"}.train-types{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.train-types .chip-button{border-width:1.5px;align-items:center;min-height:2.25rem;padding:.2rem .85rem;font-size:.875rem;text-decoration:none;display:inline-flex}.weak-points{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.weak-point{border-radius:var(--radius-small);background:var(--night);gap:.1rem;padding:.7rem .9rem;text-decoration:none;transition:background .14s;display:grid}.weak-point:hover{background:var(--surface-raised)}.weak-point__question{overflow-wrap:break-word;font-weight:600}.weak-point__stats{color:var(--missed);font-size:.8125rem;font-weight:600}@media (width<=30rem){.train-option__name{font-size:1.0625rem}.train-block{padding:1rem}}@media (width>=60rem){.train{grid-template-columns:repeat(2,minmax(0,1fr))}.train-block:first-child{grid-column:1/-1}}.course-steps{counter-reset:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:1.5rem;display:grid}.course-step{border:2px solid var(--line);border-radius:var(--radius-small);background:var(--surface);align-items:center;gap:.75rem;min-width:0;padding:.8rem .95rem;text-decoration:none;transition:border-color .16s,background .16s,transform .16s;display:flex;position:relative}.course-step:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--line));transform:translateY(-2px)}.course-step.active{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.course-step__number{background:var(--surface-raised);width:2.1rem;height:2.1rem;font-family:var(--display);border-radius:50%;flex:none;place-items:center;font-size:1.0625rem;font-weight:800;display:grid}.course-step.active .course-step__number{background:var(--on-accent);color:var(--accent)}.course-step__text{min-width:0;display:grid}.course-step__name{font-family:var(--display);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-size:1.1875rem;font-weight:800;line-height:1.15;overflow:hidden}.course-step__meta{color:var(--chalk-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.course-step.active .course-step__meta{color:inherit;opacity:.8}.course-step__meta--alert{color:var(--missed)}.course-step.active .course-step__meta--alert{color:inherit;opacity:1}@media (width<=40rem){.course-steps{gap:.35rem}.course-step{text-align:center;flex-direction:column;align-items:center;gap:.3rem;padding:.65rem .3rem}.course-step__number{width:1.7rem;height:1.7rem;font-size:.875rem}.course-step__name{font-size:.9375rem}.course-step__meta{font-size:.75rem}.course-step__verb{display:none}}.account{max-width:34rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter) 0;gap:1.25rem;display:grid}.account-intro{color:var(--chalk-soft)}.account-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:1rem;padding:1.25rem;display:grid}.account-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.account-email{font-family:var(--display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.5rem;font-weight:700}.account-summary,.account-note{color:var(--chalk-soft);font-size:.9375rem}.account-feedback{font-weight:600}.account-feedback--error{color:var(--missed)}.account-feedback--info{color:var(--known)}.sync-line{align-items:center;gap:.5rem;font-weight:600;display:flex}.sync-dot{background:var(--chalk-soft);border-radius:50%;flex:none;width:.65rem;height:.65rem}.sync-line--synced .sync-dot,.nav-item .sync-dot--synced{background:var(--known)}.sync-line--syncing .sync-dot,.nav-item .sync-dot--syncing{background:var(--accent);animation:.9s ease-in-out infinite alternate sync-pulse}.sync-line--error .sync-dot,.sync-line--offline .sync-dot,.nav-item .sync-dot--error,.nav-item .sync-dot--offline{background:var(--missed)}@keyframes sync-pulse{to{opacity:.3}}.welcome{max-width:64rem;min-height:100dvh;padding:2.5rem var(--gutter);align-content:center;gap:2rem;margin:0 auto;display:grid}.welcome__wordmark{color:var(--brand);font-family:var(--display);letter-spacing:-.05em;font-size:clamp(4rem,19vw,8.5rem);font-weight:800;line-height:.85;animation:.52s cubic-bezier(.2,.9,.3,1) both welcome-in}.welcome__pitch{max-width:26rem;margin-top:1.25rem;font-size:clamp(1.125rem,3vw,1.375rem);font-weight:600}.welcome__points{color:var(--chalk-soft);gap:.4rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.welcome__points li:before{content:"→ ";color:var(--accent);font-weight:700}.welcome__side{align-self:center;gap:.75rem;display:grid}.welcome__move{border:2px solid var(--accent);border-radius:var(--radius-small);padding:.85rem 1rem;font-size:.9375rem}.app-splash{min-height:100dvh;color:var(--accent);font-family:var(--display);letter-spacing:-.04em;place-items:center;font-size:2rem;font-weight:800;display:grid}@keyframes welcome-in{0%{opacity:0;transform:translateY(14px)}}@media (width>=56rem){.welcome{grid-template-columns:1fr minmax(0,26rem);gap:4rem}}.account-hint{color:var(--chalk-soft);font-size:.9375rem;display:block}.account-hint strong{color:var(--chalk)}.account-hint .text-button{min-height:auto;color:var(--accent);padding:0}.account-hint--error{color:var(--missed);margin-top:.35rem;font-weight:600}.field__input[aria-invalid=true]{border-color:var(--missed)}.account-admin-link{gap:.25rem;text-decoration:none;transition:border-color .14s}.account-admin-link:hover{border-color:var(--accent)}.account-admin-link .section-title{margin:0}.shell-side{z-index:5;padding:.35rem .5rem max(.35rem, env(safe-area-inset-bottom));background:var(--accent);color:var(--on-accent);position:fixed;inset:auto 0 0}.wordmark{display:none}.shell-top{padding:.25rem var(--gutter) 0;align-items:center;gap:.25rem;display:flex}.nav-help{display:none}.shell-top__link{cursor:pointer;width:2.75rem;height:2.75rem;color:var(--chalk);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.wordmark-compact{color:var(--accent);font-family:var(--display);letter-spacing:-.03em;margin-right:auto;font-size:1.25rem;font-weight:800;text-decoration:none}.shell-nav{justify-content:space-around;gap:.25rem;display:flex}.nav-item{border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;min-width:0;min-height:3.25rem;padding:.25rem;font-size:.75rem;font-weight:700;text-decoration:none;transition:background .14s,color .14s;display:flex}.nav-item.active{background:var(--on-accent);color:var(--accent)}.nav-item:focus-visible{outline-color:var(--on-accent)}.nav-item{position:relative}.nav-item .sync-dot{border:2px solid var(--accent);background:var(--on-accent);border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:.45rem;right:calc(50% - 1.1rem)}.nav-item.active .sync-dot{border-color:var(--on-accent)}.nav-item--off{opacity:.4;cursor:not-allowed}.nav-item--desktop-only{display:none}.nav-icon{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.375rem;height:1.375rem}.shell-page{min-width:0;padding-bottom:6rem}@media (width>=56rem){.shell{grid-template-columns:17rem minmax(0,1fr);min-height:100dvh;display:grid}.shell-side{flex-direction:column;height:100dvh;padding:1.5rem 1rem;transition:background .24s;display:flex;position:sticky;inset:0 auto auto}.shell-top{display:none}.wordmark{font-family:var(--display);letter-spacing:-.05em;margin:0 .5rem 2rem;font-size:3.5rem;font-weight:800;line-height:.85;text-decoration:none;display:block}.shell-nav{flex-direction:column;flex:1;justify-content:flex-start}.nav-item{font-family:var(--display);letter-spacing:-.015em;flex-direction:row;flex:none;justify-content:flex-start;gap:.7rem;padding:.5rem .75rem;font-size:1.3125rem}.nav-item .sync-dot{margin-left:auto;position:static}.nav-item:hover:not(.active,.nav-item--off){background:#0e0f0c1f}.nav-item--desktop-only{display:flex}.nav-help{opacity:.75;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:.5rem;min-height:2.75rem;margin-top:auto;padding:.25rem .75rem;font-size:.875rem;font-weight:700;transition:opacity .14s,background .14s;display:flex}.nav-help:hover{opacity:1;background:#0e0f0c1f}.nav-help .nav-icon{width:1.125rem;height:1.125rem}.nav-help~.nav-item--admin,.nav-help~.nav-item--account{margin-top:0}.shell-page{padding-bottom:3rem}}.tour{z-index:50;position:fixed;inset:0}.tour__blocker{position:absolute;inset:0}.tour__dim{background:#000000b8;animation:.24s both tour-fade;position:absolute;inset:0}.tour__spotlight{box-shadow:0 0 0 3px var(--accent), 0 0 0 100vmax #000000b8;pointer-events:none;border-radius:18px;transition:top .38s cubic-bezier(.3,.9,.3,1),left .38s cubic-bezier(.3,.9,.3,1),width .38s cubic-bezier(.3,.9,.3,1),height .38s cubic-bezier(.3,.9,.3,1);position:fixed}.tour__card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-height:calc(100dvh - 1.5rem);color:var(--chalk);gap:.6rem;padding:1rem 1.15rem 1.15rem;animation:.3s cubic-bezier(.2,.9,.3,1) both tour-card-in;display:grid;position:fixed;overflow-y:auto;box-shadow:0 18px 50px #00000080}.tour__card[style*=translate]{width:min(26rem,100vw - 1.5rem);animation-name:tour-fade}@keyframes tour-card-in{0%{opacity:0;translate:0 10px}}@keyframes tour-fade{0%{opacity:0}}.tour__top{justify-content:space-between;align-items:center;display:flex}.tour__progress{color:var(--chalk-soft);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700}.tour__bar{background:var(--surface-raised);border-radius:999px;height:4px;overflow:hidden}.tour__bar span{background:var(--accent);height:100%;transition:width .3s;display:block}.tour__title{font-family:var(--display);letter-spacing:-.025em;margin-top:.2rem;font-size:1.5rem;font-weight:800;line-height:1.1}.tour__points{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.tour__points li{padding-left:1.25rem;line-height:1.45;position:relative}.tour__points li:before{content:"→";color:var(--accent);font-weight:700;position:absolute;left:0}.tour__actions{justify-content:flex-end;gap:.5rem;margin-top:.35rem;display:flex}@media (prefers-reduced-motion:reduce){.tour__spotlight{transition:none}}.review{background:var(--night);min-height:100dvh}.review-stage{max-width:46rem;min-height:100dvh;padding:.25rem var(--gutter) max(1rem, env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.review-top{grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;min-height:2.75rem;font-size:.875rem;font-weight:600;display:grid}.review-top__quit{align-items:center;min-height:2.75rem;text-decoration:none;display:inline-flex}.review-top__quit:hover{color:var(--accent)}.review-top__course{max-width:40vw;color:var(--chalk-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-top__count{font-variant-numeric:tabular-nums;text-align:right}.review-meter{background:var(--surface-raised);border-radius:999px;height:6px;overflow:hidden}.review-meter div{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.review-table{flex:1;min-height:19rem;margin-top:1.25rem;display:grid;position:relative}.review-table__next{background:var(--accent);opacity:.22;border-radius:28px;position:absolute;inset:10px -4px -10px 4px;transform:rotate(1.2deg)}.review-card{cursor:pointer;perspective:1400px;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:28px;min-width:0;transition:transform .24s cubic-bezier(.2,.8,.2,1);animation:.28s cubic-bezier(.2,.9,.3,1) card-arrives;position:relative}.review-card--dragging{transition:none}@media (hover:hover){.review-card:hover .review-card__flipper:not(.is-revealed){transform:rotateY(-5deg)}}.review-card:focus-visible{outline-color:var(--chalk);outline-offset:4px}@keyframes card-arrives{0%{opacity:0;scale:.96}}.review-card__flipper{transform-style:preserve-3d;transition:transform .46s cubic-bezier(.3,1.1,.4,1);position:absolute;inset:0}.review-card__flipper.is-revealed{transform:rotateY(180deg)}.review-face{border-top:10px solid var(--accent);background:var(--paper);box-shadow:var(--shadow);color:var(--chalk);backface-visibility:hidden;border-radius:28px;flex-direction:column;padding:clamp(1.25rem,5vw,2.5rem);display:flex;position:absolute;inset:0;overflow-y:auto}.review-face--answer{border-top-color:var(--chalk-soft);transform:rotateY(180deg)}.review-face__label{color:var(--accent);flex:none;font-size:.875rem;font-weight:700}.review-face__text{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;margin-block:auto;padding-block:1rem;font-size:clamp(1.1875rem,3.2vw,1.5rem);font-weight:500;line-height:1.4}.review-face__text--question{font-family:var(--display);letter-spacing:-.03em;font-size:clamp(1.75rem,6vw,3rem);font-weight:500;line-height:1.05}.review-face__hint{color:var(--chalk-soft);text-align:center;flex:none;font-size:.875rem;font-weight:600}.stamp{z-index:2;color:var(--on-status);font-family:var(--display);letter-spacing:-.02em;pointer-events:none;border-radius:999px;padding:.3em .75em;font-size:clamp(1.75rem,7vw,3rem);font-weight:800;line-height:1.15;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-7deg)}.stamp--known{background:var(--known)}.stamp--review{background:var(--missed)}.stamp--landing{animation:.24s cubic-bezier(.2,1.5,.4,1) both stamp-lands}@keyframes stamp-lands{0%{opacity:0;transform:translate(-50%,-50%)rotate(4deg)scale(.4)}}.review-retry{color:var(--chalk-soft);text-align:center;margin-top:1.1rem;font-size:.9375rem}.review-actions{grid-auto-columns:1fr;grid-auto-flow:column;gap:.6rem;min-height:3.5rem;margin-top:.4rem;display:grid}.verdict{border:2px solid var(--chalk-soft);min-height:3.5rem;font-family:var(--display);cursor:pointer;background:0 0;border-radius:999px;padding:.5rem 1rem;font-size:1.125rem;font-weight:800;transition:transform .14s;animation:.2s both verdict-in}@keyframes verdict-in{0%{opacity:0;transform:translateY(6px)}}.verdict:hover:not(:disabled){transform:scale(1.03)}.verdict:disabled{opacity:.5}.verdict--known{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.review-keys{color:var(--chalk-soft);text-align:center;margin-top:.75rem;font-size:.75rem;display:none}@media (hover:hover){.review-keys{display:block}}.review-recap{max-width:40rem;min-height:100dvh;padding:2rem var(--gutter);align-content:center;justify-items:start;gap:1rem;margin:0 auto;display:grid}.review-recap__kicker{font-size:1.125rem;font-weight:600}.review-recap__title{color:var(--accent);font-family:var(--display);letter-spacing:-.04em;font-size:clamp(4rem,18vw,9rem);font-weight:800;line-height:.95}.review-recap__detail{font-size:1.1875rem}.review-recap .verdict{margin-top:.5rem;padding-inline:1.75rem}.review-recap__link{text-underline-offset:3px;align-items:center;min-height:2.75rem;display:inline-flex}.review-face__body{gap:.5rem;margin-block:auto;display:grid}.review-face__body .review-face__text{margin-block:0;padding-block:.5rem}.review-recap__today{color:var(--chalk-soft);font-weight:600}.quiz{max-width:50rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter) 0;gap:1.5rem;margin-inline:auto;display:grid}.quiz-setup{gap:1.75rem;display:grid}.quiz-setup__intro,.quiz-setup__note{color:var(--chalk-soft)}.quiz-setup__link{justify-self:start}.quiz-setup .section-title{margin-bottom:.6rem;font-size:1.375rem}.quiz-choices{flex-wrap:wrap;gap:.4rem;display:flex}.course-choice{cursor:pointer;position:relative}.course-choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.course-choice span{border:2px solid var(--accent);border-radius:999px;align-items:center;min-height:2.75rem;padding:.35rem 1rem;font-weight:600;transition:background .14s,color .14s;display:flex}.course-choice input:checked+span{background:var(--accent);color:var(--on-accent)}.course-choice input:focus-visible+span{outline:3px solid var(--chalk);outline-offset:2px}.quiz-setup__start{gap:.75rem;display:grid}.quiz-setup__cta,.quiz-run__next,.quiz-results__retry{cursor:pointer;border:0}.quiz-setup__cta:disabled{opacity:.3;cursor:not-allowed;transform:none}.quiz-run{gap:1.25rem;display:grid}.quiz-run__top{color:var(--chalk-soft);gap:.4rem;font-size:.875rem;font-weight:600;display:grid}.quiz-run__prompt{font-family:var(--display);letter-spacing:-.025em;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:clamp(1.625rem,5vw,2.5rem);font-weight:500;line-height:1.1}.quiz-options{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.quiz-option{border:2px solid var(--line);border-radius:var(--radius-small);background:var(--surface);text-align:left;cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:.15rem .75rem;width:100%;min-height:3.5rem;padding:.8rem 1rem;transition:border-color .14s,background .14s,transform .14s;display:grid}.quiz-option:hover:not(:disabled){border-color:var(--accent);transform:translate(3px)}.quiz-option:disabled{color:inherit;cursor:default}.quiz-option__key{background:var(--surface-raised);width:1.75rem;height:1.75rem;font-family:var(--display);border-radius:50%;place-items:center;font-size:.9375rem;font-weight:800;display:grid}.quiz-option__text{overflow-wrap:break-word;white-space:pre-wrap;align-self:center}.quiz-option__tag{grid-column:2;font-size:.8125rem;font-weight:800}.quiz-option--correct{border-color:var(--known);background:color-mix(in srgb, var(--known) 16%, var(--surface))}.quiz-option--wrong{border-color:var(--missed);background:color-mix(in srgb, var(--missed) 16%, var(--surface))}.quiz-option--correct .quiz-option__key{background:var(--known);color:var(--on-status)}.quiz-option--wrong .quiz-option__key{background:var(--missed);color:var(--on-status)}.quiz-option--correct .quiz-option__tag{color:var(--known)}.quiz-option--wrong .quiz-option__tag{color:var(--missed)}.quiz-option--dimmed{opacity:.5}.quiz-run__feedback{align-content:start;gap:.75rem;min-height:5.5rem;display:grid}.quiz-run__note{color:var(--chalk-soft)}.quiz-results{gap:1rem;display:grid}.quiz-results__score{color:var(--accent);font-family:var(--display);letter-spacing:-.04em;font-size:clamp(4.5rem,18vw,8rem);font-weight:800;line-height:.95}.quiz-results__score span{color:var(--chalk-soft);letter-spacing:-.02em;font-size:.4em}.quiz-results__today,.quiz-results__perfect{color:var(--chalk-soft);font-weight:600}.quiz-results__actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.quiz-mistakes{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.quiz-mistake{border-radius:var(--radius);background:var(--surface);overflow-wrap:break-word;gap:.3rem;padding:1rem 1.1rem;display:grid}.quiz-mistake__prompt{font-family:var(--display);font-size:1.1875rem;font-weight:700;line-height:1.2}.quiz-mistake__wrong strong{color:var(--missed)}.quiz-mistake__right strong{color:var(--known)}.search{max-width:50rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter) 0;gap:1rem;display:grid}.search__input{font-size:1.25rem}.search__count{color:var(--chalk-soft);font-size:.9375rem}.search__group{gap:.5rem;margin-top:.75rem;display:grid}.search__group .section-title{margin-bottom:.25rem}.search-hit{border-radius:var(--radius);background:var(--surface);overflow-wrap:break-word;gap:.15rem;padding:.9rem 1.1rem;text-decoration:none;transition:background .16s;display:grid}.search-hit:hover{background:var(--surface-raised)}.search-hit__where{color:var(--chalk-soft);font-size:.8125rem;font-weight:600}.search-hit__title{font-family:var(--display);letter-spacing:-.015em;font-size:1.25rem;font-weight:700;line-height:1.2}.search-hit__excerpt{color:var(--chalk-soft);font-size:.9375rem}
