:root{--page: #16213f;--panel: #22305a;--panel-2: #2b3b6b;--ink: #f4f0e4;--muted: #a8b4d4;--sun: #ffc940;--sun-ink: #2a2410;--good: #58b86a;--bad: #e5534b;--line: rgba(255, 255, 255, .13);--paper: #fffdf6;--paper-ink: #22305a;--display: Sniglet, "Trebuchet MS", "Arial Rounded MT Bold", sans-serif;--body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--page);color:var(--ink);font:15px/1.4 var(--body);overflow:hidden}button{font:inherit}button:focus-visible,canvas:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.app{height:100%;display:flex;flex-direction:column;gap:8px;padding-inline:max(12px,env(safe-area-inset-left,0px));padding-block:max(10px,env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-bottom,0px));max-width:1600px;margin-inline:auto}.bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}.brand{display:flex;align-items:baseline;gap:10px;flex:1 1 auto;min-width:0}.logo{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.6vw,30px);color:var(--sun);line-height:1;white-space:nowrap}.chip{font-family:var(--display);font-size:14px;color:var(--muted);background:var(--panel);border-radius:999px;padding:3px 11px;white-space:nowrap}.clock{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums;min-width:96px}.clock-dot{width:14px;height:14px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 4px #ffc94040}.stars{display:flex;align-items:center;gap:5px;font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}.stars svg{width:26px;height:26px}.stars.bump{animation:bump .5s cubic-bezier(.2,1.8,.4,1)}.buttons{display:flex;gap:6px;flex-wrap:wrap}.btn{font-family:var(--display);font-size:15px;color:var(--ink);background:var(--panel);border:2px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--panel-2)}.btn[aria-pressed=true]{background:var(--sun);color:var(--sun-ink);border-color:var(--sun)}.btn.primary{background:var(--sun);color:var(--sun-ink);border-color:var(--sun);font-size:19px;padding:10px 26px}.btn.primary:hover{filter:brightness(1.06)}.btn.quiet{background:transparent}.timeline{position:relative;height:34px;background:var(--panel);border-radius:12px;overflow:hidden;flex:none}.tl-tick{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}.tl-label{position:absolute;bottom:2px;transform:translate(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.tl-seg{position:absolute;height:11px;border-radius:6px;opacity:.9}.tl-seg .tl-ic{position:absolute;left:-4px;top:-3px;width:17px;height:17px;background:#fffdf6;border-radius:50%;padding:1px;box-shadow:0 0 0 2px #141e3c59}.tl-seg.done{opacity:.35}.tl-seg.missed{opacity:.2}.tl-now{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--sun);box-shadow:0 0 8px var(--sun)}.tl-sun{position:absolute;left:50%;bottom:1px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px #ffc9404d}.tl-night{position:absolute;top:0;bottom:0;background:#0000002e}.stage{position:relative;flex:1 1 auto;min-height:260px;border-radius:20px;overflow:hidden;background:#5fb4ef;box-shadow:0 0 0 2px var(--line)}canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:pointer}.toast,.coach{position:absolute;left:50%;transform:translate(-50%);font-family:var(--display);text-align:center;pointer-events:none;width:max-content;max-width:calc(100% - 24px)}.toast{top:12px;background:#16213feb;color:var(--ink);padding:8px 18px;border-radius:18px;font-size:17px}.toast b{color:var(--sun)}.coach{top:12px;background:var(--paper);color:var(--paper-ink);padding:10px 18px 10px 14px;border-radius:16px;font-size:18px;box-shadow:0 4px #141e3c40;display:flex;align-items:center;gap:10px;text-align:left}.coach svg{width:30px;height:30px;flex:none}.toast:not([hidden])~.coach{top:62px}.pop{animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.tv{position:absolute;left:12px;bottom:12px;max-width:min(460px,calc(100% - 24px));display:flex;align-items:center;gap:10px;background:var(--paper);color:var(--paper-ink);border-radius:14px;padding:8px 14px 8px 8px;box-shadow:0 4px #141e3c40;pointer-events:none}.tv .av{width:46px;height:46px;border-radius:10px;background:#fde2dc;flex:none}.tv .who{font-family:var(--display);font-size:12px;color:#d9534f;letter-spacing:.03em;text-transform:uppercase}.tv .line{font-family:var(--display);font-size:17px;line-height:1.2}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#0e16308c;padding:16px;overflow:auto}.card{background:var(--paper);color:var(--paper-ink);border-radius:22px;padding:22px 24px;width:min(560px,100%);max-height:100%;overflow:auto;box-shadow:0 8px #0e163059;display:flex;flex-direction:column;gap:14px}.card h2{font-family:var(--display);font-weight:800;font-size:30px;margin:0;line-height:1.05;text-wrap:balance}.card h3{font-family:var(--display);font-size:17px;margin:0;color:#5a6690}.card p{margin:0}.card .eyebrow{font-family:var(--display);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#d9534f}.card .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.card .actions .btn{color:var(--paper-ink);background:#eef0f6;border-color:#dfe3ee}.card .actions .btn.primary{background:var(--sun);color:var(--sun-ink);border-color:var(--sun)}.presenter{display:flex;gap:12px;align-items:flex-start}.presenter .av{width:58px;height:58px;border-radius:14px;background:#fde2dc;flex:none}.presenter .speech{background:#f1f3f9;border-radius:4px 16px 16px;padding:10px 14px;font-size:16px}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.list li{display:flex;align-items:center;gap:10px;background:#f4f5fa;border-radius:12px;padding:6px 10px}.list .av{width:34px;height:34px;flex:none}.list .ic{width:24px;height:24px;flex:none}.list .txt{flex:1;min-width:0}.list .txt b{font-family:var(--display);font-weight:400;font-size:16px;display:block}.list .txt small{color:#6a7596;font-size:13px}.list .res{font-family:var(--display);font-size:15px;white-space:nowrap}.list .res.ok{color:#2f8a45}.list .res.no{color:#b8453e}.power{display:flex;gap:12px;align-items:center;background:#fff3cc;border:2px dashed #f2b134;border-radius:14px;padding:10px 14px}.power b{font-family:var(--display);font-size:18px;display:block}.power svg{width:40px;height:40px;flex:none}.bigstars{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.bigstars svg{width:44px;height:44px}.bigstars .off path{fill:#d9dde8}.bigstars .on{animation:pop .5s cubic-bezier(.2,1.7,.4,1) both}.unlock{background:#e7f5e9;border-radius:12px;padding:10px 14px;font-family:var(--display);font-size:17px}.progress-note{color:#6a7596;font-size:14px}.list .rowarc{width:54px;height:32px;flex:none}.sun-tip{display:flex;align-items:center;gap:10px;background:#fff6dc;border-radius:12px;padding:8px 12px;font-size:15px}.sun-tip svg{width:54px;height:32px;flex:none}.howto{margin:0;padding-left:20px;display:grid;gap:4px;font-size:15px}.stickers{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.sticker{background:#f4f5fa;border-radius:14px;padding:10px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.sticker svg{width:44px;height:44px}.sticker b{font-family:var(--display);font-weight:400;font-size:14px}.sticker small{font-size:12px;color:#6a7596}.sticker.locked svg{filter:grayscale(1) brightness(1.5);opacity:.35}.sticker.locked b{color:#8a93ad}.wishes{display:flex;gap:8px;overflow-x:auto;flex:none;padding-bottom:2px;scrollbar-width:thin}.wish{--c: #888;flex:1 0 236px;max-width:330px;min-width:226px;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:4px 10px;background:var(--panel);border:2px solid var(--line);border-radius:14px;padding:7px 10px}.wish .av{width:40px;height:40px;grid-row:span 2;background:#ffffff14;border-radius:12px}.wish .what{font-family:var(--display);font-size:16px;line-height:1.15;display:flex;align-items:center;gap:6px;min-width:0}.wish .what svg{width:20px;height:20px;flex:none}.wish .when{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.wish .state{grid-row:span 2;font-family:var(--display);font-size:12.5px;color:var(--muted);text-align:right;min-width:44px;line-height:1.2}.wish .state svg{width:28px;height:28px;display:block;margin-inline:auto}.wish .state .sunarc{width:58px;height:34px}.wish .state .word{display:block;font-size:14px}.wish{cursor:pointer}.wish.active.hurry{border-color:var(--bad);animation:hurry 1s ease-in-out infinite}.wish.hurry .state{color:#ff9a8f}@keyframes hurry{50%{box-shadow:0 0 0 5px #e5534b73}}.wish .meter{grid-column:2 / 3;height:7px;border-radius:4px;background:#ffffff1f;overflow:hidden}.wish .meter span{display:block;height:100%;width:0;background:var(--c);border-radius:4px;transition:width .2s linear}.wish.upcoming{opacity:.62}.wish.active{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 35%,transparent)}.wish.active .state{color:var(--sun)}.wish.done{background:#24442f;border-color:#3f7a4f}.wish.done .meter span{background:var(--good)}.wish.missed{opacity:.55}.wish.guard .meter span{background:var(--c)}.wish.guard.danger .meter span{background:var(--bad)}.wish.flash{animation:bump .6s cubic-bezier(.2,1.8,.4,1)}.home-title{font-family:var(--display);font-weight:800;font-size:clamp(34px,5vw,46px);color:#e5a31b;line-height:1;text-shadow:0 3px 0 rgba(20,30,60,.12)}.home-sub{font-size:16px}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card .btn.big{font-size:19px;padding:14px 12px;border-radius:16px;color:var(--paper-ink);background:#eef0f6;border-color:#dfe3ee}.card .btn.big.primary{background:var(--sun);color:var(--sun-ink);border-color:var(--sun)}.card .btn.big.glow{border-color:#f2b134;box-shadow:0 0 0 3px #f2b13459}.inline-star{width:1em;height:1em;vertical-align:-.12em}.facts{margin:0;padding-left:20px;display:grid;gap:3px;color:#4a5680}.install{background:#eef4ff;border-radius:12px;padding:10px 14px;font-size:14px}.festival-banner{display:flex;gap:12px;align-items:center;background:#fdeef5;border:2px solid #f3b6d2;border-radius:14px;padding:10px 14px}.festival-banner svg{width:44px;height:44px;flex:none}.festival-banner b{font-family:var(--display);font-weight:400;font-size:18px;display:block}.shop li{padding:10px 12px}.shop li.owned{opacity:.7}.shop .btn{white-space:nowrap}.shop .btn[disabled]{opacity:.45;cursor:not-allowed}.season-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wish.info{flex:1 1 auto;max-width:none;grid-template-columns:1fr}.wish.info .what{font-size:15px;color:var(--muted)}.skip{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:17px;color:var(--sun-ink);background:var(--sun);border:none;border-radius:999px;padding:10px 18px;cursor:pointer;box-shadow:0 4px #141e3c40;animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.skip svg{width:22px;height:22px}.skip.going{background:#fff6dc}.pan{position:absolute;bottom:22%;width:46px;height:76px;border:none;border-radius:16px;background:#16213f8c;color:#fff;cursor:pointer;display:grid;place-items:center;touch-action:none}.pan svg{width:26px;height:26px}.pan:hover{background:#16213fbf}.pan-left{left:8px}.pan-right{right:8px}@keyframes pop{0%{transform:translate(var(--tx, 0)) scale(.6)}to{transform:translate(var(--tx, 0)) scale(1)}}.toast,.coach{--tx: -50%}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@media(max-width:760px){.buttons .btn{font-size:13px;padding:5px 10px}.logo{font-size:20px}.clock,.stars{font-size:18px}.wish{flex-basis:200px;min-width:200px}.coach{font-size:15px}}@media(max-height:560px){.app{gap:5px;padding-block:max(6px,env(safe-area-inset-top,0px)) max(6px,env(safe-area-inset-bottom,0px))}.timeline,.chip{display:none}.bar{flex-wrap:nowrap;gap:8px}.logo{font-size:18px}.clock,.stars{font-size:16px;min-width:0}.stars svg{width:20px;height:20px}.buttons{flex-wrap:nowrap}.buttons .btn{font-size:12px;padding:4px 9px}.stage{min-height:150px;border-radius:14px}.wish{padding:4px 8px;grid-template-columns:30px 1fr auto}.wish .av{width:30px;height:30px}.wish .what{font-size:14px}.wish .when{display:none}.wish .meter{height:5px}.tv{padding:5px 10px 5px 5px;left:8px;bottom:8px}.tv .av{width:32px;height:32px}.tv .line{font-size:14px}.coach,.toast{font-size:14px;padding:6px 12px;top:8px}.coach svg{width:22px;height:22px}.card{padding:14px 16px;gap:10px}.card h2{font-size:24px}.pan{width:36px;height:56px;border-radius:12px}.skip{font-size:14px;padding:7px 12px;right:8px;bottom:8px}.home-title{font-size:30px}.card .btn.big{padding:10px;font-size:16px}}@media(prefers-reduced-motion:reduce){.wish.hurry,.pop,.stars.bump,.wish.flash,.bigstars .on{animation:none}}
