:root{color-scheme:light dark;--apricot: #ED8B33;--apricot-deep: #C96D1C;--apricot-soft: #FDF0E2;--indigo: #2B3A8F;--green: #2E9E6B;--green-soft: #E4F5ED;--red: #D6455D;--red-soft: #FDEAED;--bg: #FDFBF6;--surface: #FFFFFF;--surface-2: #F6F2EA;--ink: #1B1720;--ink-2: #4A4353;--muted: #7A7285;--line: #E7E0D5;--line-strong: #D6CCBC;--lip: 3px;--radius: 14px;--radius-lg: 20px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(27, 23, 32, .06);--shadow-md: 0 6px 20px rgba(27, 23, 32, .1);--display: "Bricolage Grotesque", system-ui, -apple-system, sans-serif;--body: "Instrument Sans", system-ui, -apple-system, sans-serif;--hy: "Noto Serif Armenian", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, monospace;--gutter: clamp(1rem, 5vw, 2rem);--header-h: 56px;--footer-h: 88px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--apricot: #F5A055;--apricot-deep: #ED8B33;--apricot-soft: #33251A;--indigo: #8AA0E8;--green: #45C489;--green-soft: #16281F;--red: #FF7085;--red-soft: #2E1A1E;--bg: #14121A;--surface: #1D1A24;--surface-2: #262230;--ink: #F2EDE6;--ink-2: #C9C2BC;--muted: #948C9C;--line: #322D3C;--line-strong: #443E50;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .5)}}:root[data-theme=dark]{--apricot: #F5A055;--apricot-deep: #ED8B33;--apricot-soft: #33251A;--indigo: #8AA0E8;--green: #45C489;--green-soft: #16281F;--red: #FF7085;--red-soft: #2E1A1E;--bg: #14121A;--surface: #1D1A24;--surface-2: #262230;--ink: #F2EDE6;--ink-2: #C9C2BC;--muted: #948C9C;--line: #322D3C;--line-strong: #443E50;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}#root{height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}input{font-size:16px}:focus-visible{outline:2px solid var(--apricot);outline-offset:3px;border-radius:4px}:focus:not(:focus-visible){outline:none}.hy{font-family:var(--hy);line-height:1.45;letter-spacing:0;font-variant-ligatures:none}.scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none}.scroll::-webkit-scrollbar{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.screen{display:flex;flex-direction:column;height:100%;min-height:0}.scroll-tail{height:2rem}.screen,.gate{animation:screen-in .26s cubic-bezier(.2,.8,.2,1)}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ex{animation:question-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes question-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.verdict-ok,.verdict-miss{animation:verdict-in .2s ease-out}@keyframes verdict-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.splash{display:grid;place-items:center;height:100%}.splash-mark{font-size:4rem;color:var(--apricot);animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.35;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem var(--gutter);min-height:var(--header-h);border-bottom:1px solid var(--line);background:var(--bg)}.stats{display:flex;gap:.5rem}.topbar-actions{display:flex;gap:.15rem;flex:0 0 auto}.stat{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;background:var(--surface-2);font-size:.9rem;font-variant-numeric:tabular-nums}.stat strong{font-weight:700}.stat-apricot{color:var(--apricot-deep)}.stat-indigo{color:var(--indigo)}.stat-red{color:var(--red)}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;color:var(--muted);font-size:1.1rem}.icon-btn:active{background:var(--surface-2)}.path{flex:1;padding:0 var(--gutter)}.path-intro{padding:1.5rem 0 .5rem}.path-title{font-family:var(--hy);font-size:1.8rem;margin:0 0 .25rem;letter-spacing:-.01em}.path-sub{margin:0 0 .9rem;color:var(--muted);font-size:.95rem}.progress{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--apricot),var(--apricot-deep));transition:width .5s cubic-bezier(.2,.8,.2,1)}.unit{padding:1.75rem 0 .5rem}.unit-head{display:flex;align-items:center;gap:.75rem}.unit-index{font-family:var(--mono);font-size:.75rem;color:var(--muted);padding-top:.2rem}.unit-titles{flex:1;min-width:0}.unit-title{font-size:1.3rem;margin:0}.unit-sub{margin:0;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.unit-done{color:var(--green);font-weight:700}.unit-blurb{margin:.6rem 0 1rem;color:var(--ink-2);font-size:.95rem}.tips-btn{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .9rem;padding:.5rem .9rem;border-radius:999px;background:var(--apricot-soft);color:var(--apricot-deep);border:1px solid color-mix(in srgb,var(--apricot) 30%,transparent);font-size:.85rem;font-weight:600;min-height:40px}.tips-btn:active{transform:translateY(1px)}.lessons{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.sheet-backdrop{position:fixed;inset:0;z-index:60;background:#0a080e80;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .18s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:640px;max-height:85dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-md);animation:sheet-up .28s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.sheet-handle{align-self:center;width:40px;height:5px;margin:.7rem 0 .3rem;border-radius:999px;background:var(--line-strong);flex:0 0 auto}.sheet-body{padding:.5rem var(--gutter) 0}.sheet-eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem}.tip{padding:.9rem 0;border-top:1px solid var(--line)}.tip:first-of-type{border-top:0}.tip-heading{font-family:var(--display);font-size:1.1rem;margin:0 0 .5rem}.tip-body{margin:0 0 .6rem;color:var(--ink-2);line-height:1.6}.tip-body:last-child{margin-bottom:0}.tip-body strong{color:var(--apricot-deep);font-weight:700}.lesson{width:100%;display:flex;align-items:center;gap:.85rem;text-align:left;padding:.9rem 1rem;min-height:64px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-bottom-width:var(--lip);box-shadow:var(--shadow-sm);transition:transform .12s ease,border-color .12s ease}.lesson:active:not(:disabled){transform:translateY(2px);border-bottom-width:1px}.lesson-open{border-color:var(--line-strong)}.lesson-done{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 35%,transparent)}.lesson-locked{opacity:.5;box-shadow:none}.lesson-badge{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:999px;background:var(--surface-2);font-size:.9rem}.lesson-done .lesson-badge{background:var(--green);color:#fff}.lesson-open .lesson-badge{background:var(--apricot);color:#fff}.lesson-body{display:grid;gap:.15rem;min-width:0}.lesson-title{font-size:1.05rem}.lesson-meta{font-size:.78rem;color:var(--muted)}.lesson-top{display:flex;align-items:center;gap:.75rem;padding:.5rem var(--gutter);min-height:var(--header-h)}.band{flex:1;display:flex;gap:3px}.pip{flex:1;height:6px;border-radius:999px;background:var(--surface-2);transition:background .25s ease}.pip-ok{background:var(--green)}.pip-miss{background:var(--red)}.pip-now{background:var(--apricot)}.hearts-mini{color:var(--red);font-variant-numeric:tabular-nums;font-size:.95rem;min-width:2.5rem;text-align:right}.stage{flex:1;padding:.5rem var(--gutter) 0}.ex{display:grid;gap:1.5rem;padding-top:.75rem;align-content:start}.ex>.prompt+.subject{margin-top:-.9rem}.ex>.eyebrow+.letter-card{margin-top:-.6rem}.ex>.options{margin-top:.25rem}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}.prompt{font-family:var(--display);font-size:clamp(1.45rem,5.5vw,1.75rem);line-height:1.28;margin:0;letter-spacing:-.015em;text-wrap:balance;max-width:22ch}.subject{display:grid;gap:.2rem;justify-items:start}.subject-word{font-size:2rem;text-align:left;color:var(--ink)}.subject-speaker{font-size:1rem;opacity:.5}.subject-roman{color:var(--muted);font-family:var(--mono);font-size:.85rem}.letter-card{display:grid;justify-items:center;gap:.5rem;padding:1.75rem 1rem 1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.glyph{font-size:clamp(4.5rem,26vw,7rem);line-height:1;color:var(--apricot);font-weight:700}.glyph-pair{display:inline-flex;align-items:baseline;gap:.12em}.glyph-lower{color:var(--apricot-deep)}.glyph-play{display:grid;justify-items:center}.glyph-play:after{content:"🔊";font-size:.9rem;opacity:.5;margin-top:.4rem}.glyph-play:active{transform:scale(.97)}.roman-big{font-family:var(--mono);font-size:1.2rem;color:var(--ink-2)}.hint{margin:0;color:var(--muted);text-align:center;font-size:.95rem}.example-row{width:100%;margin-top:.75rem}.example{width:100%;display:grid;gap:.15rem;justify-items:center;padding-top:.9rem;border-top:1px solid var(--line)}.example-word{font-size:1.5rem}.example-gloss{color:var(--muted);font-size:.88rem}.options{display:grid;gap:.6rem}@media(min-width:520px){.options{grid-template-columns:1fr 1fr}}.option{text-align:left;padding:1rem 1.1rem;min-height:56px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-bottom-width:var(--lip);transition:transform .1s ease,border-color .12s ease,background .12s ease}.option:active:not(:disabled){transform:translateY(2px);border-bottom-width:1px}.option-on{border-color:var(--apricot);background:var(--apricot-soft)}.option-hy{font-size:1.25rem}.play-inline{align-self:start;display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;min-height:40px;border-radius:999px;background:var(--surface-2);color:var(--indigo);font-size:.85rem;font-weight:600}.play-inline:active{transform:translateY(1px)}.play-row{display:flex;gap:.6rem;flex-wrap:wrap}.play-big{display:inline-flex;align-items:center;gap:.6rem;padding:1rem 1.4rem;min-height:56px;border-radius:var(--radius);background:var(--indigo);color:#fff;font-weight:600}.play-big:active{transform:translateY(2px)}.play-slow{padding:1rem 1.1rem;min-height:56px;border-radius:var(--radius);border:1px solid var(--line-strong);color:var(--ink-2);font-size:.9rem}.answer-input{width:100%;padding:1rem 1.1rem;min-height:56px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.answer-input:focus{border-color:var(--apricot)}.match{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.match-col{display:grid;gap:.6rem;align-content:start}.chip{padding:.9rem .75rem;min-height:52px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-bottom-width:var(--lip);font-size:1rem}.chip-on{border-color:var(--apricot);background:var(--apricot-soft)}.chip-done{opacity:.35}.match-count{margin:0;color:var(--muted);font-size:.85rem;text-align:center}.assembly{display:flex;flex-wrap:wrap;gap:.5rem;min-height:76px;padding:.75rem;border-radius:var(--radius);background:var(--surface-2);border:1px dashed var(--line-strong);align-content:flex-start}.assembly-hint{color:var(--muted);font-size:.9rem;align-self:center}.bank{display:flex;flex-wrap:wrap;gap:.5rem}.tile{padding:.7rem .95rem;min-height:48px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);border-bottom-width:var(--lip);font-size:1.1rem}.tile:active:not(:disabled){transform:translateY(2px);border-bottom-width:1px}.tile-on{background:var(--apricot-soft);border-color:var(--apricot)}.verdict{padding:.9rem var(--gutter) 1.1rem;border-top:1px solid var(--line);background:var(--surface);display:grid;gap:.7rem;padding-bottom:max(1.1rem,env(safe-area-inset-bottom))}.verdict-ok{background:var(--green-soft);border-top-color:transparent}.verdict-miss{background:var(--red-soft);border-top-color:transparent}.verdict-note{display:grid;gap:.15rem}.verdict-ok .verdict-note strong{color:var(--green)}.verdict-miss .verdict-note strong{color:var(--red)}.verdict-answer{font-size:1.1rem;color:var(--ink)}.btn{width:100%;min-height:54px;padding:.9rem 1.25rem;border-radius:var(--radius);font-weight:700;font-size:1rem;letter-spacing:.01em;transition:transform .1s ease,opacity .12s ease;box-shadow:0 var(--lip) 0 #0000002e}.btn:active:not(:disabled){transform:translateY(var(--lip));box-shadow:none}.btn:disabled{opacity:.45;box-shadow:none}.btn-primary{background:var(--apricot);color:#fff}.btn-ok{background:var(--green);color:#fff}.btn-miss{background:var(--red);color:#fff}.gate{height:100%;display:grid;place-items:center;padding:var(--gutter)}.gate-inner{width:100%;max-width:380px;display:grid;gap:1.5rem}.gate-head{text-align:center;display:grid;gap:.3rem;justify-items:center}.gate-mark{font-size:3.5rem;color:var(--apricot);line-height:1}.gate-title{font-family:var(--display);font-size:1.9rem;margin:0}.gate-sub{margin:0;color:var(--muted);font-size:.95rem}.gate-form{display:grid;gap:.9rem}.field{display:grid;gap:.35rem}.field-label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.field input{padding:.9rem 1rem;min-height:52px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.field input:focus{border-color:var(--apricot)}.field-hint{color:var(--muted);font-size:.8rem}.field-error{margin:0;color:var(--red);font-size:.9rem;animation:rise .2s ease-out}.gate-switch{color:var(--indigo);font-size:.95rem;text-align:center;min-height:44px}.gate-note{text-align:center;color:var(--muted);font-size:.85rem;margin:0}.summary{height:100%}.summary-body{flex:1;display:grid;justify-items:center;align-content:center;gap:.5rem;padding:var(--gutter);text-align:center}.summary-mark{width:88px;height:88px;display:grid;place-items:center;border-radius:999px;background:var(--green);color:#fff;font-size:2.4rem;animation:pop .45s cubic-bezier(.2,.9,.2,1)}.summary-mark-perfect{background:var(--apricot)}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.summary-title{font-family:var(--hy);font-size:1.9rem;margin:.75rem 0 0}.summary-sub{margin:0;color:var(--muted)}.score-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;width:100%;max-width:380px;margin:1.25rem 0 .5rem}.score-card{padding:.9rem .5rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.score-value{font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums}.score-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.score-apricot .score-value{color:var(--apricot-deep)}.score-indigo .score-value{color:var(--indigo)}.score-green .score-value{color:var(--green)}.summary-line{margin:.5rem 0 0;color:var(--muted);font-size:.9rem}.summary-streak{margin:.4rem 0 0;color:var(--apricot-deep);font-weight:600}.summary-foot{padding:0 var(--gutter);padding-bottom:max(1.1rem,env(safe-area-inset-bottom))}.lesson-empty{display:grid;place-content:center;gap:1rem;padding:var(--gutter);text-align:center;color:var(--muted)}.toast-host{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 5.5rem);display:grid;justify-items:center;pointer-events:none;z-index:50;padding:0 var(--gutter)}.toast{background:var(--ink);color:var(--bg);padding:.7rem 1.1rem;border-radius:999px;font-size:.9rem;box-shadow:var(--shadow-md);animation:rise .22s ease-out;max-width:100%}@keyframes rise{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
