:root{--bg:#1b1646;--text:#f4f2ff;--text-soft:#bdb7ea;--panel:#ffffff14;--panel-strong:#ffffff24;--panel-line:#ffffff24;--track:#ffffff29;--stop:#2b2175;--card:#fff;--card-ink:#1e2145;--card-soft:#5b5f85;--card-tint:#f4f1ff;--edge:#cfc8ff;--accent:#ffb627;--accent-deep:#d98e00;--accent-ink:#1e2145;--reward:#ffe2a1;--reward-drop:#ffb627;--focus:#ffb627;--ship-turn:90deg;--violet:#6f5cf1;--violet-deep:#5a48d6;--amber:#ffb627;--coral:#ff6f61;--teal:#18b8a2;--teal-deep:#0e9a87;--font-display:"Baloo 2 Variable", "Baloo 2", ui-rounded, system-ui, sans-serif;--font-body:"Nunito Variable", "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html,body{min-height:100%}body{color:var(--text);background-color:var(--bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;font-size:18px;font-weight:600;line-height:1.45}h1,h2,p,ul,ol{margin:0;padding:0}ul,ol{list-style:none}h1,h2{font-family:var(--font-display);text-wrap:balance;font-weight:800;line-height:1.1}h1:focus{outline:none}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:14px}#app{width:100%;max-width:560px;min-height:100dvh;padding:max(12px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));flex-direction:column;margin-inline:auto;display:flex}.bar{align-items:center;gap:10px;min-height:52px;display:flex}.bar-space{flex:1}.pill-link,.chip-btn{background:var(--panel);border:1.5px solid var(--panel-line);min-height:44px;color:var(--text);border-radius:999px;align-items:center;padding:0 16px;font-size:16px;font-weight:800;text-decoration:none;display:inline-flex}.pill-link:hover,.chip-btn:hover{background:var(--panel-strong)}.icon-btn{background:var(--panel);border:1.5px solid var(--panel-line);border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.fuel{font-family:var(--font-display);color:var(--reward);align-items:center;gap:7px;font-size:20px;font-weight:800;display:inline-flex}.drop{background:var(--reward-drop);border-radius:0 50% 50%;width:14px;height:14px;rotate:45deg}.screen{flex-direction:column;flex:1;gap:18px;padding-top:8px;display:flex}.is-entering .screen{animation:.3s both enter}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}.sub{color:var(--text-soft)}.btn{background:var(--accent);min-height:64px;color:var(--accent-ink);font-family:var(--font-display);box-shadow:0 6px 0 var(--accent-deep);border-radius:22px;justify-content:center;align-items:center;padding:0 28px;font-size:24px;font-weight:800;transition:transform .1s,box-shadow .1s;display:inline-flex}.btn:active{box-shadow:0 2px 0 var(--accent-deep);transform:translateY(4px)}.btn:disabled{opacity:.45;cursor:default}.btn-quiet{background:var(--panel);color:var(--text);border:1.5px solid var(--panel-line);box-shadow:none}.gate{text-align:center;align-items:center}.hero-art{width:116px;height:116px;margin-top:4px;animation:3.6s ease-in-out infinite hover}.hero-art svg{width:100%;height:100%;display:block}@keyframes hover{50%{transform:translateY(-10px)}}.gate h1{font-size:clamp(27px,7vw,36px)}.stage-list{gap:10px;width:100%;display:grid}.stage-btn{background:var(--card);min-height:72px;color:var(--card-ink);text-align:left;box-shadow:0 5px 0 var(--edge);border-radius:22px;align-items:center;gap:14px;padding:10px 16px 10px 12px;transition:transform .1s,box-shadow .1s;display:flex}.stage-btn:active{box-shadow:0 2px 0 var(--edge);transform:translateY(3px)}.stage-btn.is-current{outline:3px solid var(--violet);outline-offset:2px}.stage-no{background:var(--stage-no,var(--amber));width:48px;height:48px;font-family:var(--font-display);border-radius:16px;flex:none;place-items:center;font-size:26px;font-weight:800;line-height:1;display:grid}.stage-text{display:grid}.stage-text b{font-family:var(--font-display);font-size:22px;font-weight:800;line-height:1.15}.stage-text small{color:var(--violet-deep);font-size:16px;font-weight:800}.home h1{text-align:center;font-size:clamp(36px,10vw,48px)}.route{background:var(--panel);border:1.5px solid var(--panel-line);border-radius:26px;padding:16px 18px 26px}.route-head{color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 14px;font-size:15.5px;display:flex}.route-head b{color:var(--text)}.route-track{background:var(--track);border-radius:999px;height:12px;margin:38px 14px 0;position:relative}.route-fill{background:linear-gradient(90deg, var(--coral), var(--amber));border-radius:999px;height:100%}.route-stops{justify-content:space-between;padding-left:12.5%;display:flex;position:absolute;inset:0}.route-stops li{width:0;position:relative}.route-stops li:after{content:"";background:var(--stop);border:3px solid var(--track);border-radius:50%;width:18px;height:18px;position:absolute;top:-3px;left:-9px}.route-stops li.is-reached:after{background:var(--amber);border-color:#fff}.route-ship{width:40px;height:40px;rotate:var(--ship-turn);margin-left:-20px;transition:left .6s;position:absolute;top:-40px}.route-ship svg{width:100%;height:100%;display:block}.modes{gap:12px;display:grid}.mode{background:var(--card);min-height:92px;color:var(--card-ink);text-align:left;box-shadow:0 6px 0 var(--mode-edge,var(--edge));border-radius:26px;align-items:center;gap:16px;padding:12px 18px 12px 12px;transition:transform .1s,box-shadow .1s;display:flex}.mode:active{box-shadow:0 2px 0 var(--mode-edge,var(--edge));transform:translateY(4px)}.mode-art{background:var(--mode-tint,#e9e5ff);width:92px;height:68px;color:var(--mode-deep,var(--violet-deep));font-family:var(--font-display);white-space:nowrap;border-radius:18px;flex:none;place-items:center;font-size:25px;font-weight:800;display:grid}.mode-text{display:grid}.mode-text b{font-family:var(--font-display);font-size:25px;font-weight:800;line-height:1.15}.mode-text small{color:var(--card-soft);font-size:15.5px}.home-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.note{text-align:center;color:var(--text-soft);font-size:15px}.note b{color:var(--text)}.steps{gap:6px;display:flex}.steps i{background:var(--track);border-radius:999px;flex:1;height:8px}.steps i.is-done{background:var(--amber)}.steps i.is-now{background:var(--text)}.timer{background:var(--track);border-radius:999px;height:8px;overflow:hidden}.timer-fill{background:linear-gradient(90deg, var(--coral), var(--amber));transform-origin:0;height:100%;animation:linear forwards drain}@keyframes drain{to{transform:scaleX(0)}}.question{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:150px;display:flex}.q-label{color:var(--text-soft);font-size:17px}.q-big{font-family:var(--font-display);white-space:nowrap;font-size:clamp(54px,17vw,84px);font-weight:800;line-height:1}.q-hole{background:var(--amber);color:#1e2145;border-radius:.24em;place-items:center;min-width:1.15em;padding:0 .12em;display:inline-grid}.choices{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.choices-3 .choice:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 7px)}.choices-wide{grid-template-columns:1fr}.choices-wide.choices-3 .choice:last-child{width:100%}.choice{background:var(--card);min-height:84px;color:var(--card-ink);font-family:var(--font-display);box-shadow:0 7px 0 var(--edge);animation:4s ease-in-out infinite bob;animation-delay:calc(var(--i) * -.9s);border-radius:26px;font-size:40px;font-weight:800;line-height:1;transition:transform .1s,box-shadow .1s,opacity .2s}.choices-wide .choice{min-height:68px;font-size:30px}@keyframes bob{50%{translate:0 -5px}}.choice:active:not(:disabled){box-shadow:0 2px 0 var(--edge);transform:translateY(5px)}.choice:disabled{cursor:default;animation:none}.choice.is-right{background:var(--teal);color:#fff;box-shadow:0 7px 0 var(--teal-deep);animation:.4s pop}.choice.is-wrong{background:var(--coral);color:#fff;animation:.35s shake;box-shadow:0 7px #d94b3d}.choice.is-dim{opacity:.35}@keyframes pop{40%{transform:scale(1.08)}}@keyframes shake{25%{transform:translate(-7px)}75%{transform:translate(7px)}}.cheer{text-align:center;min-height:40px}.cheer span{font-family:var(--font-display);color:var(--reward);font-size:26px;font-weight:800;animation:.9s both rise;display:inline-block}@keyframes rise{0%{opacity:0;transform:translateY(14px)scale(.8)}30%{opacity:1;transform:none}}.explain{background:var(--card);color:var(--card-ink);text-align:center;box-shadow:0 6px 0 var(--edge);border-radius:26px;flex-direction:column;align-items:center;gap:10px;padding:18px;animation:.25s both enter;display:flex}.explain-title{color:var(--card-soft);font-weight:800}.explain-eq{font-family:var(--font-display);font-size:38px;font-weight:800;line-height:1}.explain-add{color:var(--card-soft);overflow-wrap:anywhere;font-weight:700}.explain .btn{width:100%;margin-top:4px}.end{text-align:center;align-items:center}.end h1{font-size:clamp(40px,11vw,56px)}.stars{gap:8px;margin-top:12px;font-size:68px;line-height:1;display:flex}.star{color:var(--track)}.star.is-on{color:var(--amber);text-shadow:0 4px #d98e00;animation:.5s cubic-bezier(.2,1.6,.4,1) both pop-in;animation-delay:calc(var(--i) * .18s)}.star:nth-child(2){translate:0 -12px}@keyframes pop-in{0%{opacity:0;transform:scale(.2)rotate(-40deg)}}.unlock{text-align:left;background:linear-gradient(120deg,#ffb6273d,#ff6f6133);border:1.5px solid #ffb62780;border-radius:24px;align-items:center;gap:14px;width:100%;padding:14px 18px;display:flex}.unlock .sticker{flex:none;width:72px}.missed{background:var(--panel);border:1.5px solid var(--panel-line);border-radius:24px;width:100%;padding:16px 18px}.missed h2{margin-bottom:10px;font-size:21px}.missed ul{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.missed li{background:var(--panel-strong);font-family:var(--font-display);border-radius:14px;padding:6px 14px;font-size:22px;font-weight:700}.missed li b{color:var(--reward)}.end-actions{gap:12px;width:100%;margin-top:auto;padding-top:8px;display:grid}.album h1{font-size:clamp(32px,9vw,42px)}.album-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;display:grid}.album-grid li{background:var(--panel);border:1.5px dashed var(--panel-line);text-align:center;border-radius:22px;justify-items:center;gap:2px;padding:14px 8px 12px;display:grid}.album-grid li.is-open{background:var(--panel-strong);border-style:solid}.album-grid b{font-family:var(--font-display);font-size:20px}.album-grid small{color:var(--text-soft);font-size:14px}.sticker{aspect-ratio:1;width:84px}.sticker.is-locked{filter:var(--locked-filter,brightness(0) invert(1));opacity:.14}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
