.story{display:flex;flex-direction:column;gap:12px;max-width:520px;margin:0 auto;padding-bottom:20px}.story-splash{text-align:center;align-items:stretch}.story-art{width:100%;aspect-ratio:16/10;border-radius:20px;overflow:hidden;box-shadow:var(--sh);border:1px solid var(--bd);background:#eee}.scene-svg{width:100%;height:100%;display:block}.story-dots{display:flex;gap:6px;justify-content:center}.story-dots span{flex:1;max-width:44px;height:6px;border-radius:3px;background:var(--bd)}.story-dots span.done{background:var(--pr)}.story-dots span.on{background:var(--g)}.story-sub{min-height:5.6em;margin:0;padding:12px 14px;background:var(--cd);border:1px solid var(--bd);border-radius:16px;font-size:1.02em;line-height:1.45;text-align:center}.story-ctl{display:flex;justify-content:center;gap:10px}.story-ctl button{min-width:54px}.story-go{animation:gm-pulse 1.4s ease-in-out infinite}@keyframes gm-pulse{50%{transform:scale(1.03)}}@keyframes sc-bob{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes sc-float{0%{transform:translateY(0)}to{transform:translateY(-5px)}}@keyframes sc-pulse{0%{opacity:.55}to{opacity:1}}@keyframes sc-timer{to{stroke-dashoffset:176}}@keyframes sc-slide{0%{transform:translate(120px);opacity:0}to{transform:none;opacity:1}}@keyframes sc-in{0%{opacity:0}to{opacity:1}}@keyframes sc-door{to{transform:scaleX(0)}}@keyframes sc-walk{0%{transform:translate(190px)}to{transform:none}}@keyframes sc-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes sc-twinkle{0%{opacity:.25}to{opacity:1}}@keyframes sc-day{0%{fill:#dfe9e1}to{fill:#5cc489}}@keyframes sc-fall{0%{transform:translateY(0)}to{transform:translateY(215px)}}@keyframes sc-dash{to{stroke-dashoffset:-48}}@keyframes sc-step{0%,to{transform:translateY(0) rotate(-2.5deg)}50%{transform:translateY(-5px) rotate(2.5deg)}}@keyframes sc-cross{0%{transform:translate(-14px)}to{transform:translate(26px)}}@keyframes sc-hills{to{transform:translate(-120px)}}.sc-step{transform-box:fill-box;transform-origin:bottom center;animation:sc-step .34s ease-in-out infinite}.sc-cross{animation:sc-cross 1.6s ease-in-out both}.sc-hills{animation:sc-hills 1.6s linear both}@keyframes sc-grow{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.sc-bob{animation:sc-bob 2.2s ease-in-out infinite alternate}.sc-float{animation:sc-float 2.6s ease-in-out infinite alternate}.sc-pulse{animation:sc-pulse 1.8s ease-in-out infinite alternate}.sc-timer{stroke-dashoffset:0;animation:sc-timer 6s linear forwards}.sc-slide{animation:sc-slide .6s ease-out backwards}.sc-late{animation:sc-in .5s ease-out 6s backwards}.sc-door{transform-box:fill-box;transform-origin:right center;animation:sc-door 1.2s ease-in .2s forwards}.sc-walk{animation:sc-walk 2.2s ease-out backwards}.sc-pop{transform-box:fill-box;transform-origin:center;animation:sc-pop .5s cubic-bezier(.3,1.5,.5,1) backwards}.sc-twinkle{animation:sc-twinkle 1.4s ease-in-out infinite alternate}.sc-day{fill:#5cc489;animation:sc-day .4s ease-out backwards}.sc-fade1{animation:sc-in .6s ease-out .3s backwards}.sc-fade2{animation:sc-in .6s ease-out 2.4s backwards}.sc-fade3{animation:sc-in .6s ease-out 4.6s backwards}.sc-ghost{opacity:.3}.sc-grow{transform-box:fill-box;transform-origin:bottom center;animation:sc-grow 1.2s ease-out .6s backwards}.sc-confetti{animation:sc-fall 3s linear infinite}.sc-path{animation:sc-dash 2s linear infinite}.sweat{animation:sc-pulse 1s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.sc-step,.sc-cross,.sc-hills,.sc-bob,.sc-float,.sc-pulse,.sc-timer,.sc-slide,.sc-late,.sc-door,.sc-walk,.sc-pop,.sc-twinkle,.sc-day,.sc-fade1,.sc-fade2,.sc-fade3,.sc-grow,.sc-confetti,.sc-path,.sweat,.story-go{animation:none}.sc-door{transform:scaleX(.1)}.sc-confetti{opacity:.5}}.gm-auth{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto}.gm-mail{font-size:64px;text-align:center;animation:sc-float 2s ease-in-out infinite alternate}.gm-err{color:var(--bad);font-weight:600;margin:6px 0}.gm-ok{color:var(--ok);font-weight:600;margin:6px 0}.gm-fs{border:0;padding:0;margin:12px 0 4px}.gm-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--bd);border-radius:12px;margin:6px 0;cursor:pointer}.gm-opt.on{border-color:var(--pr);background:color-mix(in srgb,var(--pr) 10%,var(--cd))}.gm-opt input{margin-top:5px;width:18px;height:18px}.gm-show{display:flex;gap:8px;align-items:center;margin:8px 0}.gm-teachers{display:flex;gap:10px;justify-content:center;margin:8px 0}.gm-teacher-pick{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;max-width:170px;padding:10px}.gm-teacher-pick.on{border-color:var(--pr);background:color-mix(in srgb,var(--pr) 12%,var(--cd));font-weight:700}.gm-goals{display:flex;flex-direction:column;gap:12px;max-width:520px;margin:0 auto}.gm-say{display:flex;gap:10px;align-items:flex-end}.gm-bubble{flex:1;margin:0;padding:12px 14px;background:var(--cd);border:1px solid var(--bd);border-radius:16px 16px 16px 4px;box-shadow:var(--sh);font-size:.96em}.gm-steps{padding-left:28px}.gm-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.gm-chips.col{flex-direction:column}.gm-chips.col button{text-align:left}.gm-diag{display:flex;flex-direction:column;gap:12px;max-width:480px;margin:0 auto}.gm-prog{height:8px;border-radius:4px;background:var(--bd);overflow:hidden}.gm-prog i{display:block;height:100%;background:var(--g);transition:width .3s}.gm-prog i.bad{background:var(--wa)}.gm-clock{text-align:center;padding:10px;border-radius:16px;border:2px solid var(--bd);background:var(--cd)}.gm-clock.fast{border-color:var(--ok)}.gm-clock.mid{border-color:var(--wa)}.gm-clock.slow{border-color:var(--bad)}.gm-clock-n{font-size:2.6em;font-weight:800;font-variant-numeric:tabular-nums}.gm-clock-u{font-size:1.2em}.gm-q{font-size:2.6em;font-weight:800;text-align:center;padding:22px 8px;background:var(--cd);border-radius:20px;border:1px solid var(--bd);box-shadow:var(--sh);letter-spacing:.02em;font-variant-numeric:tabular-nums}.gm-ans{font-size:1.6em;text-align:center;padding:12px}.gm-result{display:flex;flex-direction:column;gap:12px;max-width:520px;margin:0 auto}.gm-score{text-align:center;padding:18px;border-radius:22px;color:#fff;background:var(--g)}.gm-score.win{background:linear-gradient(135deg,#10a36a,#3b9bff)}.gm-score.lose{background:linear-gradient(135deg,#8a4dff,#e0454b)}.gm-score,.gm-score *{color:#fff}.gm-score .mu{color:#ffffffd9}.gm-score-n{font-size:3.2em;font-weight:900;line-height:1}.gm-score-n span{font-size:.4em;opacity:.8}.gm-score-p{font-size:1.3em;font-weight:700}.gm-morph{display:flex;align-items:flex-end;justify-content:center;gap:10px;flex-wrap:wrap}.gm-morph p{flex-basis:100%;margin:0}.gm-arrow{font-size:2em;align-self:center;color:var(--pr)}.gm-skill{margin:10px 0}.gm-good{color:var(--ok);font-weight:600}.gm-bad{color:var(--bad);font-weight:600}.gm-list{padding-left:20px;margin:8px 0}.gm-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--bd);font-size:.9em}.gm-map{display:flex;flex-direction:column;gap:12px;max-width:520px;margin:0 auto}.gm-hero-card{display:flex;gap:12px;align-items:flex-end;padding:12px 14px;border-radius:20px;background:linear-gradient(135deg,#fff3cf,#ffe0a8);color:#2b2a63;box-shadow:var(--sh)}.gm-hero-card .mu{color:#6a5a3a}.gm-chipsline{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.gm-chip{background:#ffffffb8;border-radius:999px;padding:3px 10px;font-size:.82em;font-weight:700}.gm-note{margin:0;text-align:center}.gm-milestone{margin:0;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--ok) 16%,var(--cd));text-align:center;font-weight:700}.gm-worlds{display:flex;flex-direction:column;gap:0;position:relative;padding-left:4px}.gm-world{display:flex;gap:12px;align-items:center;padding:10px 12px;margin:6px 0;border:1px solid var(--bd);border-radius:16px;background:var(--cd);position:relative}.gm-world-n{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:var(--bd);flex:none}.gm-world.cleared .gm-world-n{background:var(--ok);color:#fff}.gm-world.current{border-color:var(--pr);box-shadow:0 0 0 3px color-mix(in srgb,var(--pr) 22%,transparent)}.gm-world.current .gm-world-n{background:var(--g);color:#fff}.gm-world.locked{opacity:.65}.gm-plan{margin:6px 0;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--wa) 14%,var(--cd));font-size:.92em}.gm-link{border:0;background:none;color:var(--pr);padding:0 4px;min-height:0;text-decoration:underline}.gm-skill-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left}.gm-skill-card.assigned{border-color:var(--wa);background:color-mix(in srgb,var(--wa) 10%,var(--cd))}.gm-stars{color:#f2b400;letter-spacing:2px;white-space:nowrap}.gm-card{display:flex;flex-direction:column;gap:12px;max-width:520px;margin:0 auto}.gm-skills,.gm-analytics{max-width:520px;margin:0 auto}.gm-week{display:flex;gap:8px;align-items:flex-end;height:76px;margin:10px 0 4px}.gm-week div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;font-size:.75em}.gm-week i{width:100%;border-radius:6px;background:var(--bd);display:block}.gm-week i.on{background:var(--g)}.gm-statgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;font-size:.82em;color:var(--mu)}.gm-statgrid b{display:block;color:var(--tx);font-size:1.15em}.gm-finale{position:relative;display:flex;flex-direction:column;gap:12px;max-width:560px;margin:0 auto;overflow:hidden}.gm-congrats{background:linear-gradient(90deg,#d9a441,#e4572e,#7a4fa3);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.5em}.gm-hero{display:flex;justify-content:center;animation:sc-float 2.4s ease-in-out infinite alternate}.gm-cert{padding:6px}.gm-cert svg{width:100%;height:auto;display:block}.gm-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.gm-confetti i{position:absolute;top:-12px;width:8px;height:12px;animation:gm-fall 3.2s linear infinite}@keyframes gm-fall{to{transform:translateY(900px) rotate(540deg)}}@media (prefers-reduced-motion:reduce){.gm-confetti i,.gm-hero,.gm-mail{animation:none}}body.gm-focus nav.tabs{display:none}nav.tabs{overflow-x:auto;scrollbar-width:none}nav.tabs::-webkit-scrollbar{display:none}nav.tabs button{padding-left:3px;padding-right:3px;flex:1 0 50px;font-size:9.5px;white-space:nowrap}:root{color-scheme:light dark;--bg: #f3f5fb;--cd: #ffffff;--tx: #14213D;--mu: #6b7592;--pr: #2563EB;--ok: #10a36a;--bad: #e0454b;--wa: #e39400;--bd: #e3e7f2;--sh: 0 6px 20px rgba(40, 55, 120, .08);--g: linear-gradient(135deg, #14213D, #2563EB);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0e1220;--cd: #181e32;--tx: #eef1fb;--mu: #98a2c3;--pr: #8aa0ff;--bd: #2a3250;--sh: 0 6px 20px rgba(0, 0, 0, .35)}}:root[data-theme=dark]{--bg: #0e1220;--cd: #181e32;--tx: #eef1fb;--mu: #98a2c3;--pr: #8aa0ff;--bd: #2a3250;--sh: 0 6px 20px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);font-size:16px;line-height:1.5;-webkit-tap-highlight-color:transparent}body.big{font-size:19px}main.app{max-width:720px;margin:0 auto;padding:14px 14px 120px}main.app.wide{max-width:860px}h1{font-size:1.5em;margin:.1em 0}h2{font-size:1.25em;margin:.5em 0}h3{margin:.3em 0;font-size:1.05em}p{margin:.5em 0}a{color:var(--pr)}.cd{background:var(--cd);border-radius:18px;padding:16px;margin:12px 0;box-shadow:var(--sh);border:1px solid var(--bd)}.mu{color:var(--mu);font-size:.86em}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:6px 0}.sp{justify-content:space-between}.fx{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:10px}.center{text-align:center}button{font:inherit;border:1px solid var(--bd);background:var(--cd);color:var(--tx);border-radius:12px;padding:10px 16px;cursor:pointer;min-height:46px;transition:transform .1s,box-shadow .15s}button:active:not(:disabled){transform:scale(.97)}button:hover:not(:disabled){box-shadow:var(--sh)}button.p{background:#2563eb;border:0;color:#fff;font-weight:700;box-shadow:0 6px 16px #2563eb4d}button.big{width:100%;min-height:54px;font-size:1.02em;margin-top:10px}button.on{background:color-mix(in srgb,var(--pr) 14%,var(--cd));border-color:var(--pr);color:var(--pr);font-weight:700}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:none}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,.ch:focus-visible{outline:3px solid var(--pr);outline-offset:2px}nav.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--cd);border-top:1px solid var(--bd);z-index:20}nav.tabs button{flex:1;border:0;border-radius:0;font-size:.7em;padding:6px 0;display:flex;flex-direction:column;align-items:center;color:var(--mu);box-shadow:none;min-height:58px}nav.tabs button i{font-style:normal;font-size:1.5em;line-height:1.2}nav.tabs button.on{background:none;color:var(--pr)}.tag{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.75em;background:color-mix(in srgb,var(--pr) 10%,var(--cd));font-weight:600}.tag.ok{background:color-mix(in srgb,var(--ok) 14%,var(--cd));color:var(--ok)}.tag.bad{background:color-mix(in srgb,var(--bad) 14%,var(--cd));color:var(--bad)}.tag.wa{background:color-mix(in srgb,var(--wa) 16%,var(--cd));color:var(--wa)}.ok{color:var(--ok)}.bad{color:var(--bad)}.wa{color:var(--wa)}.hero{background:var(--g);color:#fff;border-radius:22px;padding:18px;margin:6px 0 12px;box-shadow:0 10px 26px #14213d33}.hero .mu2{opacity:.85;font-size:.9em}.chip2{background:#fff3;padding:6px 12px;border-radius:99px;font-weight:700}.bar{height:10px;background:var(--bd);border-radius:9px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:var(--g);border-radius:9px;transition:width .5s}.bar.w{background:#ffffff4d}.bar.w i{background:#fff}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.tiles button{display:flex;flex-direction:column;align-items:center;padding:14px 4px;font-weight:700;border-radius:16px;box-shadow:var(--sh);line-height:1.3}.tiles span{font-size:1.6em}.tiles small{color:var(--mu);font-weight:400}.sh{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px}.ch{display:flex;gap:12px;align-items:center;cursor:pointer;border-left:5px solid var(--bd);width:100%;text-align:left}.ch.ps{border-left-color:var(--wa)}.ch.ms{border-left-color:var(--ok)}.ch.lk{cursor:default;opacity:.62}.ic{font-size:1.5em;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--pr) 10%,var(--cd));display:grid;place-items:center;flex:none}.dots{color:var(--pr);letter-spacing:2px}.lb{font-weight:700;margin:12px 0 4px;font-size:.9em;text-transform:uppercase;letter-spacing:.04em;color:var(--mu)}.q{font-size:2.4em;text-align:center;margin:18px 0;font-weight:800;word-break:break-word;letter-spacing:.01em}input.a{width:100%;font-size:1.9em;text-align:center;padding:12px;border:2px solid var(--bd);border-radius:16px;background:var(--bg);color:var(--tx)}input.a:focus{border-color:var(--pr);outline:0}input.a:disabled{opacity:.7}input.n{width:90px;padding:10px;border:1px solid var(--bd);border-radius:10px;background:var(--cd);color:var(--tx);font:inherit}.tb{position:sticky;top:0;background:var(--bg);padding:6px 0;z-index:4}.tm{font-size:1.7em;font-weight:800;font-variant-numeric:tabular-nums}.tm.lo{color:var(--bad)}.fok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,var(--cd))}.fbad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--cd))}.pal{display:flex;gap:6px;flex-wrap:wrap}.pal button{min-width:42px;padding:6px;min-height:42px}.pal .an{background:var(--pr);color:#fff;border-color:var(--pr)}.pal .mk{border-color:var(--wa);border-width:3px}.pal .cur{outline:3px solid var(--tx)}.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;margin-top:10px}.stat{text-align:center;background:var(--bg);border-radius:14px;padding:10px 4px;font-size:.82em;color:var(--mu)}.stat b{display:block;font-size:1.45em;color:var(--tx)}.lk{opacity:.55}details summary{cursor:pointer;font-weight:600}.rf{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:4px;font-size:.85em}.au{min-height:calc(100vh - 220px);display:flex;flex-direction:column;justify-content:center}.logo{width:76px;height:76px;border-radius:24px;background:var(--g);display:grid;place-items:center;font-size:2.2em;margin:0 auto 10px;box-shadow:0 12px 28px #2563eb59}.seg{display:flex;background:var(--bg);border-radius:14px;padding:4px;margin-bottom:8px}.seg button{flex:1;border:0;background:none;box-shadow:none;font-weight:600}.seg button.on{background:var(--cd);box-shadow:var(--sh);color:var(--pr)}.f{display:block;margin:12px 0 4px;font-size:.85em;font-weight:600;color:var(--mu)}.fi{width:100%;padding:13px;border:2px solid var(--bd);border-radius:14px;background:var(--bg);color:var(--tx);font:inherit}.fi:focus{border-color:var(--pr);outline:0}textarea.fi{min-height:96px;resize:vertical}.feat{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:6px 0;font-size:.85em;color:var(--mu)}.sbar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:10px;padding:10px 14px;background:var(--bg);border-top:1px solid var(--bd);z-index:10;max-width:720px;margin:0 auto}.sbar .p{flex:1}table.skill{width:100%;border-collapse:collapse;font-size:.85em}table.skill td{padding:6px 4px;border-top:1px solid var(--bd)}table.skill tr:first-child td{border-top:0;color:var(--mu)}.mis-item{border-left:4px solid var(--wa)}.mis-item.wrong{border-left-color:var(--bad)}.shortcut{background:var(--bg);border-left:3px solid var(--pr);border-radius:8px;padding:10px 12px;margin:8px 0;display:flex;flex-direction:column;gap:4px;font-size:.92em}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.road{position:relative;list-style:none;margin:0;padding:6px 0}.road:before{content:"";position:absolute;left:50%;top:10px;bottom:10px;width:4px;margin-left:-2px;border-radius:4px;background:repeating-linear-gradient(to bottom,var(--bd) 0 9px,transparent 9px 17px)}.road-row{display:grid;grid-template-columns:1fr 64px 1fr;align-items:center;min-height:96px}.road-marker{grid-column:2;display:flex;justify-content:center;position:relative;z-index:1}.road-card{grid-column:1;margin:6px 0;text-align:left;padding:10px 12px;border-radius:16px;border:1px solid var(--bd);background:var(--cd);box-shadow:var(--sh);min-height:0}.road-row.rev .road-card{grid-column:3}.road-card b{font-size:.95em;display:block}.road-card:hover:not(:disabled){box-shadow:var(--sh);transform:translateY(-1px)}.line-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.road-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:4px}.road-meta .tag{font-size:.68em}.orb{position:relative;width:58px;height:58px;border-radius:50%;border:3px solid var(--bd);background:var(--cd);display:grid;place-items:center;font-size:1.4em;padding:0;min-height:0;box-shadow:var(--sh)}.road-row.ms .orb{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,var(--cd))}.road-row.ps .orb{border-color:var(--wa)}.road-row.cur .orb{border-color:var(--pr);box-shadow:0 0 0 7px color-mix(in srgb,var(--pr) 16%,transparent);animation:orbPulse 2.4s ease-in-out infinite}.orb-stars{position:absolute;bottom:-9px;font-size:.42em;letter-spacing:1px;color:var(--wa);white-space:nowrap;text-shadow:0 1px 0 var(--cd)}@keyframes orbPulse{50%{box-shadow:0 0 0 13px color-mix(in srgb,var(--pr) 8%,transparent)}}@media (prefers-reduced-motion: reduce){.road-row.cur .orb{animation:none}}.signpost{margin:20px 0 4px;padding:10px 14px;border-radius:14px;color:#fff;background:var(--g);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--sh);font-size:.95em}.signpost.int{background:linear-gradient(135deg,#ff8a3d,#ff4d8d)}.signpost.champ{background:linear-gradient(135deg,#f5b301,#e0454b)}@media (max-width: 520px){.road:before{left:28px;margin-left:0}.road-row,.road-row.rev{grid-template-columns:56px 1fr}.road-marker{grid-column:1}.road-card,.road-row.rev .road-card{grid-column:2;margin-left:10px}.orb{width:50px;height:50px;font-size:1.2em}}.lesson-top{position:sticky;top:0;z-index:5;background:var(--bg);padding:8px 0 4px}.lesson-close{min-width:48px;min-height:48px;padding:0;font-size:1.15em;line-height:1}.lesson-body{padding-bottom:12px}.lesson-q{font-size:2.6em;text-align:center;font-weight:800;margin:16px 0;word-break:break-word}.lesson-mascot{display:flex;justify-content:center;align-items:center;gap:10px;margin:4px 0 8px}.lesson-notes{padding-left:1.15em;margin:8px 0}.lesson-notes li{margin:6px 0}.lesson-timer{margin:0 0 6px}.lesson-hint{border-left:3px solid var(--wa);background:color-mix(in srgb,var(--wa) 9%,var(--cd));border-radius:10px;padding:10px 12px;margin:10px 0}.lesson-teaser{border-left:4px solid var(--pr)}.lesson-actions button{min-height:52px;width:100%}.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.opt-grid button{min-height:56px;font-weight:700;font-variant-numeric:tabular-nums}.conf{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.conf button{flex:1 1 96px;min-height:48px}.rv-wrap{text-align:center;margin:14px 0 6px}.rv-row{display:inline-flex;align-items:stretch;font-size:2em;font-weight:800;font-variant-numeric:tabular-nums}.rv-chip{display:inline-grid;place-items:center;padding:6px 12px;border-radius:12px;background:color-mix(in srgb,var(--pr) 12%,var(--cd))}.rv-front{animation:rvSlide .6s ease-out both}.rv-back{margin-left:2px;color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,var(--cd));animation:rvSnap .4s cubic-bezier(.2,.9,.3,1.5) .35s both}.rv-final{margin-top:8px;font-size:1.5em;font-weight:800;animation:rvFade .35s ease-out .85s both}@keyframes rvSlide{0%{transform:translate(26px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes rvSnap{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes rvFade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.rv-front,.rv-back,.rv-final{animation:none}}@media (max-width: 380px){.lesson-q{font-size:2.1em}.rv-row{font-size:1.7em}.opt-grid button{font-size:.95em;padding:8px}}.lesson-results button{min-height:48px}.tc-stage{display:flex;align-items:center;gap:8px;margin:4px 0 8px}.tc{flex:none;display:block;overflow:visible}.tc *{transform-box:view-box}.tc-all{transform-origin:70px 140px;animation:tcBreath 3.6s ease-in-out infinite}.tc-head{transform-origin:70px 84px}.tc-eyes{transform-origin:70px 56px;animation:tcBlink 4.6s infinite}.tc-enter{animation:tcIn .5s cubic-bezier(.2,.8,.3,1) both}.tc-m-cheer .tc-all{animation:tcJump .5s ease-out 2}.tc-m-oops .tc-head{animation:tcTilt .6s ease-out both}.tc-m-think .tc-head{animation:tcMuse 2.8s ease-in-out infinite}.tc-m-hurry .tc-head{animation:tcShake .22s linear 4}.tc-wave{transform-origin:96px 104px;animation:tcWave .55s ease-in-out infinite alternate}.tc-pointer{transform-origin:127px 90px;animation:tcTap .7s ease-in-out 3}.tc-star{transform-origin:center;animation:tcStar .9s ease-out var(--d, 0s) both}.tc-drop{animation:tcDrop 1.1s ease-in infinite}.tc-bubble{position:relative;flex:1;min-width:0;background:var(--cd);border:1px solid var(--bd);border-radius:16px;padding:9px 12px;font-weight:600;font-size:.95em;line-height:1.35;box-shadow:var(--sh);animation:tcPop .25s ease-out both}.tc-bubble:before{content:"";position:absolute;left:-7px;top:50%;width:12px;height:12px;background:var(--cd);border-left:1px solid var(--bd);border-bottom:1px solid var(--bd);transform:translateY(-50%) rotate(45deg)}.tc-b-cheer{border-color:var(--ok)}.tc-b-cheer:before{border-color:var(--ok)}.tc-b-oops{border-color:var(--wa)}.tc-b-oops:before{border-color:var(--wa)}@keyframes tcBreath{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes tcBlink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes tcIn{0%{transform:translate(-26px) scale(.94);opacity:0}60%{transform:translate(3px) scale(1.02);opacity:1}to{transform:none;opacity:1}}@keyframes tcJump{0%,to{transform:translateY(0)}45%{transform:translateY(-9px)}}@keyframes tcTilt{0%{transform:rotate(0)}55%{transform:rotate(-8deg)}to{transform:rotate(-5deg)}}@keyframes tcMuse{0%,to{transform:rotate(0)}50%{transform:rotate(3deg)}}@keyframes tcShake{0%,to{transform:translate(0)}25%{transform:translate(-1.6px)}75%{transform:translate(1.6px)}}@keyframes tcWave{0%{transform:rotate(-10deg)}to{transform:rotate(12deg)}}@keyframes tcTap{0%,to{transform:rotate(0)}50%{transform:rotate(-9deg)}}@keyframes tcStar{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.25) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes tcDrop{0%{transform:translateY(0);opacity:0}20%{opacity:1}to{transform:translateY(10px);opacity:0}}@keyframes tcPop{0%{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.tc,.tc *,.tc-bubble{animation:none!important}}@media (max-width: 380px){.tc-bubble{font-size:.9em;padding:8px 10px}}.map{position:relative;list-style:none;margin:4px 0 0;padding:4px 0}.map:before{content:"";position:absolute;left:45px;top:18px;bottom:18px;width:4px;margin-left:-2px;border-radius:4px;background:repeating-linear-gradient(to bottom,var(--bd) 0 9px,transparent 9px 17px)}.map-step{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0}.map-step.alt .map-node{margin-left:22px}.map-node{position:relative;z-index:1;width:64px;height:64px;padding:0;border-radius:50%;border:3px solid var(--bd);background:var(--cd);display:grid;place-items:center;font-size:1.05em;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:var(--sh)}.map-step.locked .map-node{opacity:.55;background:var(--bg)}.map-step.unlocked .map-node{border-color:var(--pr);color:var(--pr)}.map-step.in_progress .map-node{border-color:var(--wa);color:var(--wa)}.map-step.mastered .map-node{border-color:var(--ok);color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,var(--cd))}.map-step.next .map-node{border-color:var(--pr);animation:mapPulse 2.2s ease-in-out infinite}@keyframes mapPulse{0%{box-shadow:0 0 color-mix(in srgb,var(--pr) 35%,transparent)}70%{box-shadow:0 0 0 12px transparent}to{box-shadow:0 0 0 0 transparent}}.map-card{min-width:0;border:1px solid var(--bd);border-radius:16px;padding:10px 12px;background:var(--cd);box-shadow:var(--sh)}.map-card b{font-size:.95em;min-width:0;overflow-wrap:anywhere}.map-card .mu{overflow-wrap:anywhere}.map-step.locked .map-card{opacity:.72}.pips{display:flex;gap:4px;margin:6px 0 4px}.pips i{width:16px;height:5px;border-radius:3px;background:var(--bd)}.pips i.on{background:var(--ok)}.map-notice{margin:10px 2px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--bad) 10%,var(--cd))}@media (prefers-reduced-motion: reduce){.map-step.next .map-node{animation:none;box-shadow:0 0 0 7px color-mix(in srgb,var(--pr) 16%,transparent)}}@media (max-width: 380px){.map-step{grid-template-columns:72px minmax(0,1fr);gap:8px}.map:before{left:37px}.map-node{width:54px;height:54px;font-size:.95em}.map-step.alt .map-node{margin-left:16px}.map-card{padding:9px 10px}}.road-map-freeze{margin:10px 2px}.road-map-freeze .row{margin:0 0 6px}.map-notice.ok{background:color-mix(in srgb,var(--ok) 10%,var(--cd));border-color:var(--ok);color:var(--ok)}.review-card{cursor:pointer}.review-card .p.big{margin-top:10px}.review-card-none{opacity:.75}.skill-node{min-width:0;overflow-wrap:anywhere}.skill-node.locked{opacity:.72}.skill-node.in_progress{border-color:var(--wa)}.skill-node.mastered{border-color:var(--ok)}.reset-confirm{margin:10px 0 0;padding:12px}.reset-confirm .row{margin-bottom:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation:none!important;transition:none!important}.opts5{display:flex;flex-direction:column;gap:8px;margin:12px 0}.opt5{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px;text-align:left;font-size:1.08em;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.opt5 .k{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--pr) 12%,var(--cd));color:var(--pr);font-weight:800;font-size:.9em}.opt5 .v{min-width:0;overflow-wrap:anywhere}.opt5.on{border-color:var(--pr);background:color-mix(in srgb,var(--pr) 12%,var(--cd));color:var(--pr)}.opt5.on .k{background:var(--pr);color:#fff}@media (max-width:380px){.opt5{font-size:1em;padding:9px 11px;gap:10px}}.opt-list{display:flex;flex-direction:column;gap:4px;margin:8px 0}.ol-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 10px;border-radius:10px;background:var(--bg);border-left:3px solid transparent;font-size:.92em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ol-row.pick{border-left-color:var(--wa)}.ol-row.right{border-left-color:var(--ok)}.ol-row b{min-width:14px}.ol-row .tag{margin-left:auto}.cal{display:grid;gap:6px;margin:8px 0}.cal-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-head span{text-align:center;font-size:.75em;color:var(--mu)}.cal-cell{aspect-ratio:1;min-height:30px;border-radius:8px;background:var(--bd);display:block}.cal-cell.l1{background:color-mix(in srgb,var(--pr) 30%,var(--bd))}.cal-cell.l2{background:color-mix(in srgb,var(--pr) 60%,var(--bd))}.cal-cell.l3{background:var(--pr)}.cal-cell.today{outline:3px solid var(--tx);outline-offset:1px}.cal-cell.future{opacity:.35}.plan-item{border-top:1px solid var(--bd);padding-top:8px;margin-top:8px}.plan-item:first-of-type{border-top:0;margin-top:0;padding-top:0}.duel-code{font-size:2.4em;font-weight:800;letter-spacing:.18em;text-align:center;font-variant-numeric:tabular-nums;margin:8px 0;overflow-wrap:anywhere}.duel-code-input{text-transform:uppercase;letter-spacing:.14em;text-align:center;font-weight:700}.duel-status{margin:10px 0;font-weight:600}.push-hint{margin:8px 0 0;padding:10px 12px;border-radius:10px;background:var(--bg);border-left:3px solid var(--wa);font-size:.92em}.brand-lockup{text-align:center;margin:4px auto 10px;line-height:0}.brand-lockup img{display:inline-block;width:min(260px,72vw);height:auto}.brand-lockup-dark{display:none!important}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .brand-lockup-light{display:none!important}:root:not([data-theme=light]) .brand-lockup-dark{display:inline-block!important}}:root[data-theme=dark] .brand-lockup-light{display:none!important}:root[data-theme=dark] .brand-lockup-dark{display:inline-block!important}.brand-lockup.brand-primary img{width:min(220px,62vw)}.home-brand{display:flex;align-items:center;margin:0 0 10px;padding:2px 0;min-height:40px}.home-brand img{width:min(160px,45vw);height:auto}main.app{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.tabs{padding-bottom:env(safe-area-inset-bottom)}
