:root{--ground:#ededed;--ground-tint:#e4e9f2;--card:#fff;--card-sunk:#f7f8fa;--input:#eef3fb;--rule:#e3e7ec;--rule-strong:#c9d1da;--ink:#1a1a1a;--ink-2:#4b5563;--ink-3:#5a6570;--primary:#2f6bf0;--primary-edge:#2354c7;--primary-hover:#2a60d8;--primary-soft:#d6e4ff;--primary-line:#93b8ff;--on-primary:#fff;--success:#58cc02;--success-edge:#46a302;--success-soft:#d7ffb8;--gold:#ffc800;--gold-soft:#fff4cc;--orange:#ff9600;--orange-soft:#ffedd5;--danger:#ff4b4b;--danger-edge:#e23d3d;--danger-soft:#ffe3e3;--purple:#ce82ff;--purple-soft:#f3e6ff;--link:#2354c7;--success-ink:#376e00;--danger-ink:#b52222;--orange-ink:#9a4a00;--purple-ink:#7b3fa8;--gold-ink:#7d6000;--control-edge:#78869a;--sans:"Nunito", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--step--2:.75rem;--step--1:.875rem;--step-0:1rem;--step-1:1.125rem;--step-2:1.375rem;--step-3:1.75rem;--step-4:2.25rem;--gutter:1.25rem;--radius:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--edge:4px;--shadow-card:0 2px 0 #0000000d;--shadow-lift:0 4px 12px #00000014;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--sans);color:var(--ink);background:var(--ground);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ground:#131f24;--ground-tint:#16242b;--card:#1c2b32;--card-sunk:#172429;--input:#223138;--rule:#2c3d45;--rule-strong:#37464f;--ink:#f1f7fb;--ink-2:#b4c4ce;--ink-3:#8296a2;--primary:#4a87ff;--primary-edge:#2f62cc;--primary-hover:#5c93ff;--primary-soft:#1e3358;--primary-line:#3a5c99;--on-primary:#fff;--success:#61d806;--success-edge:#4aa804;--success-soft:#1d3311;--gold:#ffd43b;--gold-soft:#3a3013;--orange:#ffa733;--orange-soft:#3a2a15;--danger:#ff6b6b;--danger-edge:#d95252;--danger-soft:#3a1e1e;--purple:#d89bff;--purple-soft:#2e1f3d;--link:#6ea3ff;--success-ink:#61d806;--danger-ink:#ff6b6b;--orange-ink:#ffa733;--purple-ink:#d89bff;--gold-ink:#ffd43b;--control-edge:#6b8695;--shadow-card:0 2px 0 #0000004d;--shadow-lift:0 4px 12px #00000073}}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--ground);color:var(--ink);font-size:var(--step-0);margin:0;font-weight:400;line-height:1.5}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}h1,h2,h3,h4{font-family:var(--sans);color:var(--ink);letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.2}h1{font-size:var(--step-4)}h2{font-size:var(--step-2)}h3,h4{font-size:var(--step-1)}p{margin:0}a{color:var(--link);text-underline-offset:3px;font-weight:700;text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:4px}::selection{background:var(--primary-soft);color:var(--ink)}.eyebrow{font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:800}.button{font-family:var(--sans);font-size:var(--step-0);letter-spacing:.01em;text-align:center;border-radius:var(--radius-lg);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.4rem;font-weight:800;line-height:1.2;text-decoration:none;transition:background-color .12s,border-color .12s,box-shadow 80ms,transform 80ms;display:inline-flex}.button:not(:disabled):active{transform:translateY(var(--edge));box-shadow:none!important}.button:disabled{cursor:not-allowed;background:var(--card-sunk);color:var(--ink-3);box-shadow:none;border-color:#0000;transform:none}.button--primary{background:var(--primary);color:var(--on-primary);box-shadow:0 var(--edge) 0 var(--primary-edge)}.button--primary:hover:not(:disabled){background:var(--primary-hover)}.button--success{background:var(--success);color:#14340a;box-shadow:0 var(--edge) 0 var(--success-edge)}.button--secondary{background:var(--card);color:var(--link);border-color:var(--control-edge);box-shadow:0 var(--edge) 0 var(--control-edge)}.button--secondary:hover:not(:disabled){background:var(--card-sunk)}.button--danger{background:var(--danger);color:#3d0000;box-shadow:0 var(--edge) 0 var(--danger-edge)}.button--link{box-shadow:none;color:var(--link);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.button--link:active{transform:none}.field{flex-direction:column;gap:.4rem;display:flex}.field>label{font-size:var(--step--1);color:var(--ink-2);font-weight:700}.field>input,.field>select,.field>textarea{font-family:var(--sans);font-size:var(--step-0);color:var(--ink);background:var(--input);border:2px solid var(--control-edge);border-radius:var(--radius-lg);padding:.85rem 1rem;font-weight:700;transition:border-color .12s,background-color .12s}.field>textarea{resize:vertical;font-family:inherit;font-weight:400}.field>input:focus,.field>select:focus,.field>textarea:focus{border-color:var(--primary);background:var(--card);outline:none}.field>input::placeholder,.field>textarea::placeholder{color:var(--ink-3);font-weight:400}.option-row{text-align:left;background:var(--card);border:2px solid var(--control-edge);border-radius:var(--radius-lg);width:100%;font-family:var(--sans);font-size:var(--step-0);color:var(--ink);cursor:pointer;box-shadow:0 2px 0 var(--control-edge);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;font-weight:700;text-decoration:none;transition:background-color .12s,border-color .12s;display:flex}.option-row:hover{background:var(--card-sunk)}.option-row--selected{background:var(--primary-soft);border-color:var(--primary);box-shadow:0 2px 0 var(--primary)}.option-row__box{background:var(--rule);color:#0000;border-radius:8px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.option-row--selected .option-row__box{background:var(--primary);color:#fff}.pill{font-size:var(--step--2);letter-spacing:.03em;text-transform:uppercase;border-radius:var(--radius-pill);background:var(--card-sunk);color:var(--ink-3);white-space:nowrap;align-items:center;gap:.3rem;padding:.25rem .7rem;font-weight:800;display:inline-flex}.pill--scene{background:var(--primary-soft);color:var(--link)}.pill--topic{background:var(--purple-soft);color:var(--purple-ink)}.pill--done{background:var(--gold-soft);color:var(--gold-ink)}.pill--live{background:var(--success-soft);color:var(--success-ink)}.icon-button{border:2px solid var(--control-edge);background:var(--card);width:44px;height:44px;color:var(--ink-2);box-shadow:0 var(--edge) 0 var(--control-edge);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;text-decoration:none;transition:color .12s,background-color .12s,transform 80ms,box-shadow 80ms;display:inline-flex}.icon-button:hover{color:var(--ink);background:var(--card-sunk)}.icon-button:active{transform:translateY(var(--edge));box-shadow:none}.alert{font-size:var(--step--1);color:var(--danger-ink);background:var(--danger-soft);border:2px solid var(--danger);border-radius:var(--radius-lg);padding:.75rem 1rem;font-weight:700}.quiet{color:var(--ink-3);font-size:var(--step--1);font-weight:700}.empty{background:var(--card);border:2px dashed var(--rule-strong);border-radius:var(--radius-xl);text-align:center;flex-direction:column;align-items:center;gap:.5rem;max-width:30rem;margin:2rem auto;padding:2.5rem 1.5rem;display:flex}.empty__line{font-size:var(--step-2);color:var(--ink);font-weight:800}.empty__hint{font-size:var(--step-0);color:var(--ink-2);max-width:34ch}.progress{background:var(--card-sunk);border-radius:var(--radius-pill);width:100%;height:12px;box-shadow:inset 0 0 0 1px var(--control-edge);overflow:hidden}.progress__fill{border-radius:var(--radius-pill);height:100%;transition:width .3s}.progress__fill--success{background:var(--success)}.progress__fill--gold{background:var(--gold)}@media (prefers-color-scheme:dark){.button--primary{background:var(--primary-edge);border-color:var(--primary);box-shadow:0 var(--edge) 0 #25509e}.button--primary:hover:not(:disabled){background:#3a70dd}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app__bar{padding:.85rem var(--gutter);background:var(--card);border-bottom:2px solid var(--rule);flex:none;align-items:center;gap:.6rem;display:flex}.app__brand{color:var(--ink);align-items:center;gap:.5rem;margin-right:auto;text-decoration:none;display:inline-flex}.app__mark{color:var(--gold);flex:none}.app__wordmark{font-size:var(--step-2);letter-spacing:-.02em;font-weight:800}.app__main{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex;overflow-y:auto}.app__pending{font-size:var(--step-2);color:var(--ink-3);text-align:center;padding:var(--gutter);margin:auto;font-weight:800}@media (width<=640px){.app__bar{padding:.7rem 1rem}}.public-footer{border-top:2px solid var(--rule);text-align:center;margin-top:3rem;padding-top:1.25rem}.public-footer__links{flex-wrap:wrap;justify-content:center;gap:.5rem 1.25rem;font-weight:700;display:flex}.public-footer__links a{color:var(--link)}.public-footer__entity{font-size:var(--step--1);color:var(--ink-3);margin-top:.75rem}.app__body{flex-direction:column;flex:auto;min-height:0;display:flex}.tabbar{border-top:2px solid var(--rule);background:var(--card);flex:none;display:flex}.tabbar__link{padding:.5rem .25rem calc(.5rem + env(safe-area-inset-bottom,0px));font-size:var(--step--2);color:var(--ink-3);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:.15rem;font-weight:800;text-decoration:none;transition:color .12s;display:flex}.tabbar__icon{flex:none}.tabbar__link:hover{color:var(--ink-2)}.tabbar__link[aria-current=page]{color:var(--link)}.sheet__scrim{z-index:30;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:2px solid var(--rule);width:100%;max-height:85vh;padding:1rem var(--gutter) calc(1.25rem + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-lift);overflow-y:auto}.sheet__grip{background:var(--rule-strong);border-radius:2px;width:2.5rem;height:4px;margin:0 auto .75rem}.sheet__title{font-size:var(--step-1);margin:0 0 .75rem}.sheet__close{margin-top:1rem}@media (width>=900px){.app__body{flex-direction:row}.tabbar{border-top:none;border-right:2px solid var(--rule);flex-direction:column;flex:none;order:-1;gap:.25rem;width:220px;padding-top:1rem}.tabbar__link{border-radius:var(--radius-lg);font-size:var(--step-0);flex-direction:row;flex:none;justify-content:flex-start;gap:.7rem;margin:0 .6rem;padding:.7rem 1rem}.tabbar__link[aria-current=page]{background:var(--primary-soft);color:var(--link)}.sheet__scrim{align-items:center}.sheet{border-radius:var(--radius-xl);width:min(30rem,90vw);max-height:80vh}}.thread{flex-direction:column;flex:auto;min-height:0;display:flex}.thread-header{padding:.75rem var(--gutter);background:var(--card);border-bottom:2px solid var(--rule);flex:none;grid-template-columns:44px 1fr 44px;align-items:center;gap:.75rem;display:grid}.thread-header__progress{grid-column:1/-1;align-items:center;gap:.6rem;margin:0;display:flex}.thread-header__progress>.progress{flex:auto}.thread-header__step{font-size:var(--step--2);color:var(--ink-2);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.thread-header__center{text-align:center;min-width:0}.thread-header__role{cursor:pointer;font-family:var(--sans);font-size:var(--step--1);color:var(--link);background:0 0;border:none;align-items:center;gap:.2rem;padding:0;font-weight:800;display:inline-flex}.thread-header__chevron{color:var(--ink-3);display:inline-flex}.thread-header__title{font-size:var(--step-0);color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:700;overflow:hidden}.thread-header__confirm-body{color:var(--ink-2);margin:0 0 1rem}.thread__scroll{min-height:0;padding:1.25rem var(--gutter) .5rem;flex:auto;overflow-y:auto}.thread__inner{width:100%;max-width:46rem;margin:0 auto}.thread__list{gap:1.1rem;margin:0;padding:0;list-style:none;display:grid}.turn{flex-direction:column;gap:.35rem;max-width:80%;animation:.26s ease-out both turn-in;display:flex}@keyframes turn-in{0%{opacity:0;transform:translateY(3px)}}.bubble--tutor{align-self:flex-start}.bubble--mine{align-self:flex-end;align-items:flex-end}.turn__head{align-items:center;margin-bottom:.35rem;display:flex}.turn__who{font-size:var(--step--2);color:var(--ink-3);padding:0 .5rem;font-weight:800}.turn--tutor .turn__text{background:var(--card);color:var(--ink);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-xl) 6px;box-shadow:var(--shadow-card);font-size:var(--step-0);padding:.9rem 1.1rem;line-height:1.55;position:relative}.turn--you .turn__text{background:var(--primary);color:var(--on-primary);border-radius:var(--radius-xl) var(--radius-xl) 6px var(--radius-xl);font-size:var(--step-0);white-space:pre-wrap;overflow-wrap:anywhere;padding:.9rem 1.1rem;line-height:1.5}.turn--tutor .turn__text p+p{margin-top:.7rem}.turn--tutor .turn__text p{white-space:pre-wrap;overflow-wrap:anywhere}.turn--live .turn__text>p:last-child:after{content:"";vertical-align:-.16em;background:var(--primary);width:.5ch;height:1.05em;margin-left:.12em;animation:1.1s steps(2,start) infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}.turn__waiting{gap:.3rem;padding-top:.45rem;display:inline-flex}.turn__waiting span{background:var(--ink-3);border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite waiting}.turn__waiting span:nth-child(2){animation-delay:.18s}.turn__waiting span:nth-child(3){animation-delay:.36s}@keyframes waiting{0%,60%,to{opacity:.25}30%{opacity:1}}.stage{border-bottom:2px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.stage__where{font-size:var(--step--1);color:var(--ink-2);font-weight:700}.stage__objectives{font-size:var(--step--2);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-weight:800}.tutor-notes{gap:.5rem;width:100%;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.tutor-note{background:var(--orange-soft);border:2px solid var(--orange);border-radius:var(--radius-lg);text-align:left;padding:.85rem 1rem}.tutor-note__who{font-size:var(--step--2);text-transform:uppercase;letter-spacing:.04em;color:var(--orange-ink);align-items:center;gap:.4rem;margin-bottom:.4rem;font-weight:800;display:flex}.tutor-note__said{color:var(--ink-2);font-size:var(--step--1)}.tutor-note__better{color:var(--ink);margin-top:.2rem;font-weight:700}.tutor-note__why{color:var(--ink-2);font-size:var(--step--1);margin-top:.35rem}.turn__controls{gap:.4rem;align-self:inherit;flex-wrap:wrap;margin-top:.15rem;display:flex}.turn__actions{flex-direction:column;gap:.3rem;display:flex}.turn__icon-action{border:2px solid var(--control-edge);background:var(--card);width:36px;height:36px;color:var(--ink-3);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:color .12s,border-color .12s;display:inline-flex}.turn__icon-action:hover:not(:disabled){color:var(--link);border-color:var(--primary-line)}.turn__icon-action:disabled{opacity:.5;cursor:not-allowed}.turn__icon-action[aria-pressed=true]{background:var(--primary-soft);color:var(--link);border-color:var(--primary-line)}.turn__translation{font-size:var(--step--1);color:var(--ink-2);max-width:40ch;padding:0 .5rem}.turn__definition{border-top:2px dotted var(--rule);font-size:var(--step--1);color:var(--ink-2);margin-top:.6rem;padding-top:.6rem}.turn__definition-span{color:var(--link)}.turn__error{margin:0}.turn__span{font:inherit;color:inherit;cursor:pointer;-webkit-text-decoration:underline dotted var(--primary-line);text-decoration:underline dotted var(--primary-line);text-underline-offset:3px;background:0 0;border:none;margin:0;padding:0;text-decoration-thickness:2px}.turn__span:hover{background:var(--primary-soft);border-radius:4px}.hint{flex-direction:column;gap:.5rem;width:100%;max-width:46rem;margin:0 auto .6rem;display:flex}.hint__button{border-radius:var(--radius-pill);align-self:flex-start;padding:.6rem 1.1rem}.hint__card{border-radius:var(--radius-lg);border:2px solid;padding:.9rem 1.1rem}.hint__card--phrase{background:var(--success-soft);border-color:var(--success)}.hint__card--scaffold{background:var(--primary-soft);border-color:var(--primary-line)}.hint__kicker{color:var(--ink-2);margin:0 0 .35rem}.hint__phrase{font-size:var(--step-1);color:var(--ink);margin:0;font-weight:800}.hint__phrase:before{content:"“"}.hint__phrase:after{content:"”"}.hint__scaffold{font-size:var(--step-0);color:var(--ink);margin:0}.hint__gloss{border-top:2px dotted var(--success);font-size:var(--step--1);color:var(--ink-2);margin:.6rem 0 0;padding-top:.6rem}.hint__error{margin:0}.quality__said{color:var(--ink-2);font-size:var(--step--1)}.quality__headline{font-size:var(--step-1);margin:.6rem 0;font-weight:800}.quality__marker{border-radius:var(--radius-lg);align-items:center;gap:.5rem;padding:.7rem .9rem;font-weight:800;display:flex}.quality__marker--clean{background:var(--success-soft);color:var(--success-ink)}.quality__marker--issues{background:var(--danger-soft);color:var(--danger-ink)}.quality__explanation{color:var(--ink-2);margin-top:.7rem}.quality__mark{width:1.5rem;height:1.5rem;font-size:var(--step--1);color:var(--card);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.quality__marker--clean .quality__mark{background:var(--success-ink)}.quality__marker--issues .quality__mark{background:var(--danger-ink)}.vocabulary__list{gap:.5rem;margin:0;display:grid}.vocabulary__item{background:var(--card-sunk);border-radius:var(--radius);padding:.7rem .9rem}.vocabulary__term{color:var(--ink);font-weight:800}.vocabulary__gloss{color:var(--ink-2);font-size:var(--step--1);margin:.15rem 0 0}.vocabulary__empty{color:var(--ink-3);font-weight:700}.thread__state{padding:1rem 0}.thread__composer{background:var(--card);border-top:2px solid var(--rule);padding:.9rem var(--gutter) 1.1rem;flex:none}.composer{flex-direction:column;gap:.5rem;width:100%;max-width:46rem;margin:0 auto;display:flex}.composer__caption{justify-content:flex-end;display:flex}.composer__count{font-size:var(--step--2);color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:700}.composer__count--near{color:var(--orange-ink)}.composer__count--full{color:var(--danger-ink)}.composer__box{background:var(--input);border:2px solid var(--control-edge);border-radius:var(--radius-xl);align-items:flex-end;gap:.6rem;padding:.5rem .5rem .5rem 1rem;transition:border-color .12s;display:flex}.composer__box:focus-within{border-color:var(--primary)}.composer__input{resize:none;min-width:0;font-family:var(--sans);font-size:var(--step-0);color:var(--ink);background:0 0;border:none;flex:auto;padding:.4rem 0;line-height:1.5}.composer__input:focus{outline:none}.composer__input::placeholder{color:var(--ink-3)}.composer__input:disabled{color:var(--ink-3);background:0 0}.composer__actions{flex:none;align-items:center;gap:.5rem;display:flex}.composer__send{border-radius:50%;width:44px;height:44px;padding:0}.thread__completed,.thread__finished{text-align:center;padding:.75rem;font-weight:800}.thread__completed{background:var(--gold-soft);border-radius:var(--radius-lg);margin-top:1rem}.thread__notice{text-align:center;min-height:1.2em;font-size:var(--step--1);color:var(--ink-3);padding:0 var(--gutter)}.thread__notice:empty{min-height:0;padding:0}@media (width<=640px){.thread-header{padding:.5rem 1rem}.thread-header__title{max-width:22ch}.thread__scroll{padding:1.25rem 1rem .5rem}.turn{max-width:88%}.thread__composer{padding:.75rem 1rem .9rem}.composer__box{flex-direction:column;align-items:stretch}.composer__actions{justify-content:flex-end}}@media (prefers-color-scheme:dark){.turn--you .turn__text{background:var(--primary-edge)}}.screen{width:100%;max-width:46rem;padding:1.75rem var(--gutter) 4rem;margin:0 auto}.screen__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:1.5rem;display:flex}.screen__lede{font-size:var(--step-0);color:var(--ink-2);max-width:44ch;margin-top:.35rem}.rows{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.row__meta{font-family:var(--sans);font-size:var(--step--2);color:var(--ink-3);white-space:nowrap}.run-card{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-card);align-items:center;gap:.9rem;padding:.9rem 1rem;text-decoration:none;transition:border-color .12s;display:flex}.run-card:hover{border-color:var(--primary-line)}.run-card__badge{background:var(--primary-soft);width:44px;height:44px;color:var(--link);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.run-card__badge--completed{background:var(--gold-soft);color:var(--gold-ink)}.run-card__body{flex:auto;gap:.4rem;min-width:0;display:grid}.run-card__title{font-size:var(--step-1);overflow-wrap:anywhere;font-weight:800}.run-card__step{font-size:var(--step--2);color:var(--ink-2);font-weight:700}.run-card__link{font-size:var(--step--1);margin:.4rem 0 0 3.4rem}.report__crown{background:var(--gold-soft);width:72px;height:72px;color:var(--gold-ink);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.report__summary{font-size:var(--step-1);color:var(--ink-2);text-align:center;max-width:56ch;margin:0 auto 1.75rem}.tiles{grid-template-columns:repeat(3,1fr);gap:.6rem;margin:0 0 2rem;padding:0;list-style:none;display:grid}.tile{border-radius:var(--radius-lg);text-align:center;justify-items:center;gap:.15rem;padding:1rem .6rem;display:grid}.tile--success{background:var(--success-soft);color:var(--success-ink)}.tile--danger{background:var(--danger-soft);color:var(--danger-ink)}.tile--orange{background:var(--orange-soft);color:var(--orange-ink)}.tile__icon{opacity:.8}.tile__number{font-size:var(--step-3);font-weight:800;line-height:1}.tile__label{font-size:var(--step--2);color:var(--ink-2);font-weight:700}.report__stage{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);gap:.5rem;padding:1rem 1.1rem;display:grid}.report__unmet{font-size:var(--step--1);color:var(--ink-2);gap:.3rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.report__unmet li{align-items:flex-start;gap:.4rem;display:flex}.report__unmet svg{color:var(--danger-ink);flex:none;margin-top:.15rem}.report__category{margin-top:1.25rem}.report__category h3{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:.5rem}.report__error{background:var(--danger-soft);border:2px solid var(--danger);border-radius:var(--radius-lg);padding:.9rem 1rem}@media (width<=480px){.tiles{grid-template-columns:1fr}}.records{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.record{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.95rem 1.1rem;display:flex}.record__key{font-size:var(--step--1);color:var(--link);margin-bottom:.2rem;font-weight:800}.record__value{font-size:var(--step-1);color:var(--ink);overflow-wrap:anywhere;font-weight:700;line-height:1.35}.record__notes{color:var(--ink-2);overflow-wrap:anywhere;margin-top:.15rem}.record__meta{font-size:var(--step--2);color:var(--ink-3);flex-wrap:wrap;gap:.75rem;margin-top:.4rem;font-weight:700;display:flex}.record__kind{font-size:var(--step--2);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);background:var(--card-sunk);border-radius:var(--radius-pill);margin-bottom:.35rem;padding:.1rem .6rem;font-weight:800;display:inline-block}.record__forget{flex:none}.record__source{font-size:var(--step--1);color:var(--link);text-align:right;flex:none;align-self:center;max-width:12rem;font-weight:700;text-decoration:none}.record__source:hover{text-decoration:underline}.counter{background:var(--primary);color:var(--on-primary);border-radius:var(--radius-xl);text-align:center;box-shadow:0 var(--edge) 0 var(--primary-edge);justify-items:center;gap:.1rem;margin-bottom:1.5rem;padding:1.25rem;display:grid}.counter__number{font-size:var(--step-4);font-weight:800;line-height:1}.counter__label{font-size:var(--step--1);font-weight:700}.option-row__lead{align-items:center;gap:.6rem;display:inline-flex}.section+.section{margin-top:2rem}.section__head{align-items:baseline;gap:.75rem;margin-bottom:.8rem;display:flex}.section__count{font-size:var(--step--2);color:var(--ink-3);font-weight:700}.centred-page{padding:2.5rem var(--gutter) 4rem;background:var(--ground-tint);flex:auto;justify-content:center;align-items:center;display:flex}.auth{width:100%;max-width:26rem}.auth__card{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-xl);box-shadow:var(--shadow-lift);text-align:center;padding:2rem 1.75rem}.auth__mark{color:var(--gold);margin-bottom:.5rem}.auth__card h1{font-size:var(--step-3);margin-top:.25rem}.auth__lede{font-size:var(--step-0);color:var(--ink-2);margin-top:.5rem}.auth__form{text-align:left;flex-direction:column;gap:.9rem;margin-top:1.5rem;display:flex}.auth__submit{width:100%;margin-top:.4rem}.auth__switch{text-align:center;font-size:var(--step--1);color:var(--ink-3);margin-top:1.1rem;font-weight:700}.notfound{text-align:center;max-width:30rem}.notfound__mark{color:var(--link);margin-bottom:1rem}.notfound p{color:var(--ink-2);margin:.75rem 0 1.5rem}.hero{background:var(--primary);color:var(--on-primary);border-radius:var(--radius-xl);box-shadow:0 var(--edge) 0 var(--primary-edge);align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 1.4rem;text-decoration:none;display:flex}.hero__body{flex:auto;gap:.5rem;min-width:0;display:grid}.hero__kicker{font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;font-weight:800}.hero__title{font-size:var(--step-2);overflow-wrap:anywhere;font-weight:800}.hero__step{font-size:var(--step--1);font-weight:700}.hero .progress{background:#ffffff4d}.hero__go{opacity:.9;flex:none}.unit-banner{border-radius:var(--radius-lg);color:#fff;justify-content:space-between;align-items:center;gap:1rem;margin:1.75rem 0 1rem;padding:.9rem 1.1rem;font-weight:800;display:flex}.unit-banner--0{background:var(--primary)}.unit-banner--1{background:var(--purple);color:#3d1259}.unit-banner--2{background:var(--orange);color:#4a2600}.unit-banner--3{background:var(--success);color:#14340a}.unit-banner__name{font-size:var(--step-1);color:inherit}.unit-banner__meta{font-size:var(--step--1)}.lesson-card{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;gap:.9rem;padding:1.1rem 1.2rem;display:flex}.lesson-card__head{align-items:flex-start;gap:.9rem;display:flex}.lesson-card__badge{border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.lesson-card__badge--scene{background:var(--primary-soft);color:var(--link)}.lesson-card__badge--topic{background:var(--purple-soft);color:var(--purple-ink)}.lesson-card__badge--done{background:var(--gold-soft);color:var(--gold-ink)}.lesson-card__text{min-width:0}.lesson-card__title{font-size:var(--step-1)}.lesson-card__summary{color:var(--ink-2);max-width:44ch;margin-top:.25rem}.lesson-card__meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.option-rows{gap:.5rem;display:grid}.field__legend{font-size:var(--step--1);color:var(--ink-2);font-weight:700}.records__language{margin-top:1.75rem}.records__language:first-of-type{margin-top:0}.records__language h2{margin-bottom:.85rem}.records__unit{margin-top:1.1rem}.records__unit:first-of-type{margin-top:0}.row__level-label{color:var(--ink-2)}.lesson-start{border-top:2px solid var(--rule);flex-direction:column;gap:.9rem;padding-top:1rem;display:flex}.lesson-start__actions{justify-content:flex-end;gap:.6rem;display:flex}.settings{width:100%;max-width:34rem;padding:1.75rem var(--gutter) 4rem;margin:0 auto}.settings__title{margin-bottom:1.5rem}.settings__form{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);flex-direction:column;gap:.6rem;padding:1.25rem;display:flex}.settings__label{font-size:var(--step--1);color:var(--ink-2);font-weight:700}.settings__select{font-family:var(--sans);font-size:var(--step-0);color:var(--ink);background:var(--input);border:2px solid var(--control-edge);border-radius:var(--radius-lg);padding:.85rem 1rem;font-weight:700}.settings__select:focus{border-color:var(--primary);background:var(--card);outline:none}.settings__hint{font-size:var(--step--1);color:var(--ink-3);max-width:44ch}.settings__danger{border-top:2px solid var(--rule);flex-direction:column;align-items:flex-start;gap:.6rem;margin-top:2.5rem;padding-top:1.5rem;display:flex}.settings__subtitle{font-size:var(--step-1)}.settings__notice{min-height:1.2em;font-size:var(--step--1);color:var(--success-ink);margin-top:1rem;font-weight:700}@media (width<=640px){.screen{padding:1.75rem 1rem 3rem}.screen__head{align-items:flex-start}.centred-page{padding:1.75rem 1rem 3rem}.auth__card{padding:1.5rem 1.25rem}}@media (prefers-color-scheme:dark){.hero,.counter{background:var(--primary-edge);box-shadow:0 var(--edge) 0 #25509e}.unit-banner--0{background:var(--primary-edge)}}.public-page{width:100%;max-width:46rem;padding:1.25rem var(--gutter) 2.5rem;margin:0 auto}.public-page__account{justify-content:flex-end;margin-bottom:.75rem;font-weight:700;display:flex}.public-page a{color:var(--link)}.legal{color:var(--ink);line-height:1.6}.legal__title{margin-bottom:.35rem}.legal__date{color:var(--ink-3);font-size:var(--step--1);margin-bottom:1.25rem}.legal p+p{margin-top:.7rem}.legal ul,.legal ol{margin:.6rem 0;padding-left:1.3rem}.legal li+li{margin-top:.3rem}.legal section{margin-top:1.75rem}.legal h2{font-size:var(--step-1);margin-bottom:.5rem}.legal__contents{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);margin:1.25rem 0;padding:.9rem 1.1rem}.legal__contents ol{margin:0}.faq{border-bottom:2px solid var(--rule);padding:.85rem 0}.faq summary{cursor:pointer;color:var(--ink);font-weight:700}.faq p{color:var(--ink-2);margin-top:.5rem}.landing__hero{padding:1.5rem 0 1rem}.landing__headline{font-size:var(--step-3);margin-bottom:.75rem;line-height:1.15}.landing__lede{font-size:var(--step-1);color:var(--ink-2);max-width:38ch}.landing__actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.landing__features,.landing__steps,.landing__pricing,.landing__faq{margin-top:2.25rem}.landing__features h2,.landing__steps h2,.landing__pricing h2,.landing__faq h2{font-size:var(--step-2);margin-bottom:.9rem}.landing__features ul{gap:.75rem;padding:0;list-style:none;display:grid}.landing__feature{background:var(--card);border:2px solid var(--rule);border-radius:var(--radius-lg);padding:1rem 1.1rem}.landing__feature h3,.landing__steps h3{font-size:var(--step-0);margin-bottom:.3rem}.landing__feature p,.landing__steps p,.landing__pricing p{color:var(--ink-2)}.landing__steps ol{gap:.75rem;padding-left:1.3rem;display:grid}.path{gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}.path__item{flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.path__item--left{padding-right:5rem}.path__item--right{padding-left:5rem}.path__item+.path__item:before{content:"";border-left:4px dotted var(--rule-strong);width:0;height:1.5rem;position:absolute;top:-1.5rem}.path__node{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;transition:transform .12s;display:inline-flex}.path__node:active{transform:translateY(var(--edge));box-shadow:none}.path__node--available{background:var(--card);color:var(--ink-3);box-shadow:0 var(--edge) 0 var(--control-edge)}.path__node--current{background:var(--primary);color:var(--on-primary);box-shadow:0 var(--edge) 0 var(--primary-edge);transform:scale(1.1)}.path__node--current:active{transform:scale(1.1) translateY(var(--edge))}.path__node--complete{background:var(--gold);color:#6b5200;box-shadow:0 var(--edge) 0 #9c7900}.path__label{font-size:var(--step--1);color:var(--ink-2);text-align:center;max-width:14ch;margin-top:.5rem;font-weight:800}.path__panel{width:100%;margin-top:1rem}.path__item--left>.path__panel{margin-right:-5rem}.path__item--right>.path__panel{margin-left:-5rem}@media (width<=480px){.path__item--left{padding-right:0}.path__item--right{padding-left:0}.path__item--left>.path__panel,.path__item--right>.path__panel{margin:1rem 0 0}}@media (prefers-color-scheme:dark){.path__node--complete{color:#1a1a1a}}
