:root{--bg-top: #0e1326;--bg-bottom: #1b1037;--panel: rgba(255, 255, 255, .06);--panel-border: rgba(255, 255, 255, .12);--text: #eef2ff;--text-dim: rgba(238, 242, 255, .55);--accent: #5eead4;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none}html{min-height:calc(100% + env(safe-area-inset-top));background:var(--bg-bottom)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);min-height:100vh;min-height:100dvh;background:linear-gradient(160deg,var(--bg-top),var(--bg-bottom));user-select:none;-webkit-user-select:none;touch-action:none}#app{display:flex;flex-direction:column;justify-content:flex-start;height:100vh;height:100dvh;max-width:560px;margin:0 auto;padding:max(var(--safe-top),8px) 0 max(calc(var(--safe-bottom) - 12px),4px)}#stage{position:relative;flex:1 1 auto;width:100%;aspect-ratio:5 / 7;max-height:100%;min-height:0}#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#topbar{display:flex;flex-direction:column;padding:8px 16px 6px;gap:4px}@font-face{font-family:Space Grotesk;font-weight:700;font-display:swap;src:url(../fonts/space-grotesk-700.woff2) format("woff2")}#topbar{font-family:Space Grotesk,system-ui,-apple-system,sans-serif}.tb-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);font-variant-numeric:tabular-nums}.tb-mode{flex-shrink:0}#topbar{cursor:pointer}.tb-fold-pill{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.tb-erabar{position:relative;height:5px;border-radius:999px;background:#262e54e6;overflow:hidden;cursor:pointer;margin-top:2px}.tb-erafill{position:absolute;top:0;bottom:0;left:0;border-radius:999px;width:100%;background:linear-gradient(90deg,#2ea290,var(--accent));transition:width .25s ease}.tb-erafill.warn{background:linear-gradient(90deg,#b0813d,#f0b268)}.tb-erafill.danger{background:linear-gradient(90deg,#b0483d,#ff6b6b)}.tb-eraflash{position:absolute;inset:0;border-radius:999px;background:var(--accent);opacity:0;pointer-events:none}.tb-eraflash.go{animation:eraflash .7s ease}.tb-eraflash.bad{background:#ff6b6b}@keyframes eraflash{0%{opacity:0}25%{opacity:.6}to{opacity:0}}.tb-eralegend{display:flex;justify-content:space-between;font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);cursor:pointer;font-variant-numeric:tabular-nums}.tb-eralegend .tb-eracost{color:var(--text)}.tb-eralegend .ann-bad{color:#ff6b6b}.tb-eralegend .ann-good{color:var(--accent)}.air-vignette{position:fixed;inset:0;z-index:40;pointer-events:none;opacity:0}.air-vignette.thin{background:linear-gradient(180deg,rgba(240,178,104,.28),transparent 22%),linear-gradient(0deg,rgba(240,178,104,.18),transparent 18%),linear-gradient(90deg,rgba(240,178,104,.14),transparent 12%),linear-gradient(270deg,rgba(240,178,104,.14),transparent 12%);animation:airexhale 2.4s ease}.air-vignette.thick{background:linear-gradient(180deg,rgba(94,234,212,.22),transparent 20%),linear-gradient(0deg,rgba(94,234,212,.14),transparent 16%),linear-gradient(90deg,rgba(94,234,212,.1),transparent 11%),linear-gradient(270deg,rgba(94,234,212,.1),transparent 11%);animation:airinhale 1.2s ease}@keyframes airexhale{0%{opacity:0}18%{opacity:1}45%{opacity:.45}62%{opacity:.85}to{opacity:0}}@keyframes airinhale{0%{opacity:0}30%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.air-vignette.thin,.air-vignette.thick,.fab-badge.gain,.tb-best.pop,.tb-eraflash.go{animation:none}}.tb-main{display:flex;align-items:center;gap:8px}.tb-scorewrap{display:flex;flex-direction:column;line-height:1;min-width:0;flex-shrink:1}.tb-score{font-size:clamp(20px,6.5vw,24px);font-weight:700;letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums}.tb-score.bump{animation:bump .28s ease}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.14);color:var(--accent)}to{transform:scale(1)}}.tb-best{white-space:nowrap}.tb-spacer{flex:1}.tb-crowns{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:22px;color:var(--accent)}.tb-chain{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:22px;color:var(--text)}.tb-chain-glyph{color:var(--accent);display:inline-flex}.tb-chain.slow{animation:chainPulse 1.6s ease-in-out infinite}.tb-chain.fast{animation:chainPulse .55s ease-in-out infinite;color:#ffd479}.tb-chain.fast .tb-chain-glyph{color:#ffd479}@keyframes chainPulse{50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.tb-chain.slow,.tb-chain.fast{animation:none}}.tb-best.newbest{color:var(--accent)}.tb-best.pop{animation:newbestpop .45s cubic-bezier(.2,1.6,.4,1)}@keyframes newbestpop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1)}}.tb-right{display:flex;gap:8px;flex-shrink:0}.icon-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:transform .1s ease,background .2s}.icon-btn:active{transform:scale(.92)}.icon-btn .slash{display:none}.icon-btn.muted{color:var(--text-dim)}.icon-btn.muted .wave{display:none}.icon-btn.muted .slash{display:block}#bottombar{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:8px 16px 6px;position:relative}.relic-row{display:flex;gap:6px;min-height:28px;flex-wrap:wrap;justify-content:center;align-items:center}.relic-chip{width:28px;height:28px;border-radius:9px;background:var(--panel);border:1px solid var(--panel-border);display:grid;place-items:center;font-size:15px;color:var(--accent)}.orbit-row{display:flex;align-items:center;gap:10px;min-height:60px}.orbit-row .relic-row{flex:1;cursor:pointer;min-height:44px}.relic-info{display:flex;flex-direction:column;gap:12px}.relic-info h2{margin:0;font-size:18px;letter-spacing:.08em}.relic-info-empty{color:var(--text-dim);font-size:14px;margin:0}.relic-info-row{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:10px 12px}.relic-info-glyph{font-size:22px;color:var(--accent);line-height:1.3}.relic-info-body{flex:1;display:flex;flex-direction:column;gap:2px}.relic-info-name{font-weight:700;font-size:14px}.relic-info-row .relic-up,.relic-info-row .relic-down{font-size:12px}.fab{--p: 0;width:52px;height:52px;border-radius:50%;position:relative;flex:0 0 auto;border:1px solid var(--panel-border);background:#ffffff05;color:var(--text);font-size:20px;display:grid;place-items:center;touch-action:none;transition:opacity .2s}.fab.primary{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent)}.fab:disabled{opacity:.35}.fab:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p) * 360deg),transparent 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));pointer-events:none}.fab-glyph{position:relative;z-index:1;line-height:1;display:inline-flex}.fab.fired .fab-glyph{animation:fab-pop .35s ease}.fab.fired{animation:fab-glow .35s ease}@keyframes fab-pop{30%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes fab-glow{30%{box-shadow:0 0 26px color-mix(in srgb,var(--accent) 65%,transparent)}}.fab-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:9px;padding:0 4px;background:var(--accent);color:#0b1020;font-size:11px;font-weight:800;display:grid;place-items:center;z-index:2}.fab-badge.gain{animation:badgegain 1s cubic-bezier(.2,1.6,.4,1)}@keyframes badgegain{0%{transform:scale(1);box-shadow:0 0 0 0 var(--accent)}25%{transform:scale(1.55);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 30%,transparent)}60%{transform:scale(1.15);box-shadow:0 0 0 10px transparent}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}.fab-cost{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);white-space:nowrap;font-size:13px;font-weight:800;color:#f0a5a5;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:3}.fab.charging .fab-cost{opacity:1;transform:translate(-50%) translateY(0)}@media (prefers-reduced-motion: reduce){.fab:before{display:none}.fab.fired,.fab.fired .fab-glyph{animation:none}.fab:active{opacity:.7}.fab-cost{transition:none}}#modal-root{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:calc(var(--safe-top) + 16px) 18px calc(var(--safe-bottom) + 16px);z-index:50}#modal-root.open{display:flex}#modal-root.solid{background:color-mix(in srgb,var(--bg-bottom) 80%,black);backdrop-filter:blur(6px)}#modal-root:not(.solid){background:#00000073;backdrop-filter:blur(3px)}.modal-card{width:100%;max-width:460px;max-height:100%;overflow-y:auto;background:linear-gradient(160deg,var(--bg-top),var(--bg-bottom));border:1px solid var(--panel-border);border-radius:24px;padding:10px 14px;opacity:0;transform:translateY(16px) scale(.98);transition:opacity .28s ease,transform .28s cubic-bezier(.2,.8,.2,1)}.modal-card.in{opacity:1;transform:translateY(0) scale(1)}.menu{display:flex;flex-direction:column;gap:12px;text-align:center}.logo{display:flex;justify-content:center;gap:6px;margin:8px 0 0}.logo span{font-size:52px;font-weight:900;letter-spacing:.04em;background:linear-gradient(180deg,var(--text),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;animation:drop .5s cubic-bezier(.2,.9,.2,1) backwards}.logo span:nth-child(2){animation-delay:.06s}.logo span:nth-child(3){animation-delay:.12s}.logo span:nth-child(4){animation-delay:.18s}@keyframes drop{0%{transform:translateY(-24px) rotate(-8deg);opacity:0}}.tagline{color:var(--text-dim);font-size:14px;margin-bottom:10px}.menu-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:14px 18px;border-radius:16px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);cursor:pointer;transition:transform .1s ease,background .2s}.menu-btn:active{transform:scale(.98)}.menu-btn.primary{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.menu-btn.danger{background:color-mix(in srgb,#ff6b6b 16%,transparent);border-color:color-mix(in srgb,#ff6b6b 55%,transparent)}.menu-btn.danger .menu-btn-title{color:#ff6b6b}.menu-btn-title{font-size:18px;font-weight:700}.menu-btn-sub{font-size:12px;color:var(--text-dim)}.menu-secondary{display:flex;justify-content:center;gap:22px;margin-top:6px}.text-btn{background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:8px;text-decoration:underline;text-underline-offset:3px}.text-btn.danger{color:#fb7185}.menu-foot{font-size:11px;color:var(--text-dim);margin-top:0}h2{text-align:center;font-size:20px;margin:2px 0 12px}.subtle{text-align:center;color:var(--text-dim);font-size:12px;margin-bottom:10px}.relic-skip-btn{flex-shrink:0;width:100%;height:44px;border-radius:14px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text-dim);font-size:15px;font-weight:600;cursor:pointer;margin-top:10px;transition:transform .1s ease,opacity .2s}.relic-skip-btn:active{transform:scale(.97)}.tut-list{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.tut-item{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:12px 14px}.tut-h{font-weight:700;margin-bottom:3px}.tut-b{font-size:13px;color:var(--text-dim);line-height:1.4}.relic-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;margin-bottom:10px;overflow-y:auto}.relic-card{min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px;border-radius:16px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);cursor:pointer;transition:transform .1s ease,border-color .2s}.relic-card:active{transform:scale(.98)}.relic-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.relic-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.relic-glyph{font-size:18px;color:var(--accent);flex-shrink:0}.relic-name{font-weight:700;font-size:13px;line-height:1.2;overflow-wrap:anywhere}.over{display:flex;flex-direction:column;gap:12px;text-align:center}.over-title{font-size:22px;font-weight:800;letter-spacing:.04em;color:var(--accent)}.over-score{font-size:56px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.over-scorelbl{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);margin-top:4px;font-variant-numeric:tabular-nums}.over-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:10px 0 4px}.over-stat{padding:2px 0;border-left:1px solid rgba(255,255,255,.1)}.over-stat:first-child{border-left:none}.over-stat-val{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;min-height:24px;color:var(--text)}.over-stat-label{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-top:4px;white-space:nowrap}.over-actions{display:flex;gap:9px}.over-actions .menu-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:12px 6px}.over-actions .menu-btn-title{font-size:14px}.over-stat-val svg{color:var(--accent)}.set-row{display:flex;align-items:center;justify-content:space-between;padding:6px 4px;font-size:16px}.theme-row{cursor:pointer;padding:6px 4px}.theme-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.set-row-value{display:flex;align-items:center;gap:4px;font-size:15px;color:var(--text-dim)}.set-row-value .chevron{font-size:17px;line-height:1}.switch{width:52px;height:30px;border-radius:999px;border:1px solid var(--panel-border);background:var(--panel);position:relative;cursor:pointer;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--text-dim);transition:transform .2s,background .2s}.switch.on{background:color-mix(in srgb,var(--accent) 35%,transparent)}.switch.on:after{transform:translate(22px);background:var(--accent)}.set-label{margin:14px 0 6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.theme-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.theme-row-btn{display:flex;align-items:center;gap:12px;width:100%;border-radius:14px;border:2px solid var(--panel-border);background:var(--panel);padding:10px 12px;cursor:pointer;color:var(--text);text-align:left}.theme-row-btn.sel{border-color:var(--accent)}.theme-row-btn.locked{opacity:.6;cursor:not-allowed}.theme-ramp{display:flex;gap:3px;flex-shrink:0}.theme-dot{width:12px;height:12px;border-radius:3px}.theme-name{font-size:14px;white-space:nowrap}.theme-tick,.theme-lock{margin-left:auto;display:flex;align-items:center;gap:3px;flex-shrink:0}.theme-tick{color:var(--accent)}.theme-lock{font-size:11px;color:var(--text-dim);white-space:nowrap}.toast{position:fixed;left:50%;top:calc(max(var(--safe-top),8px) + 88px);translate:-50% -10px;background:var(--panel);border:1px solid var(--panel-border);backdrop-filter:blur(8px);color:var(--text);padding:10px 18px;border-radius:999px;font-size:14px;opacity:0;transition:opacity .3s,translate .3s;z-index:100;pointer-events:none}.toast.in{opacity:1;translate:-50% 0}.tb-breaths{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:22px;color:var(--text);cursor:pointer}.tb-breaths-glyph,.tb-crowns-glyph{color:var(--accent);display:inline-flex}.tb-breaths.low .tb-breaths-n{color:#ff6b6b}.tb-breaths-glyph.capglow svg{fill:currentColor;filter:drop-shadow(0 0 6px currentColor)}.tb-breaths,.tb-crowns,.tb-chain{font-variant-numeric:tabular-nums}.breath-info{display:flex;flex-direction:column;gap:8px;margin:4px 0 16px;text-align:left}.breath-info-line{font-size:14px;color:var(--text-dim);line-height:1.4}.relic-up,.relic-down{display:flex;align-items:flex-start;gap:6px;font-size:.8rem;line-height:1.3;margin-top:4px;overflow-wrap:anywhere}.relic-up{color:#7ee7c7}.relic-down{color:#ff9b9b;margin-top:2px}.relic-mark{font-size:9px;line-height:1.6;flex:0 0 auto}.relic-notice{background:color-mix(in srgb,#ff9b9b 12%,transparent);border:1px solid color-mix(in srgb,#ff9b9b 35%,transparent);border-radius:10px;color:#ff9b9b;font-size:12px;font-weight:600;padding:7px 12px;margin-bottom:8px;text-align:center}.relic-actions{display:flex;gap:10px;margin-top:10px;flex-shrink:0}.relic-actions .relic-skip-btn{flex:1;width:auto;margin-top:0}.relic-undo-btn{flex:1;height:44px;border-radius:14px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text-dim);font-size:15px;font-weight:600;cursor:pointer;transition:transform .1s ease,opacity .2s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.relic-undo-btn:active{transform:scale(.97)}.over-reason,.go-hint{font-size:13px;color:var(--text-dim);text-align:center;margin-top:-6px}.exp-opt{width:100%;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 14px;border-radius:14px;border:2px solid var(--panel-border);background:var(--panel);color:var(--text);cursor:pointer;transition:transform .1s ease,border-color .2s}.exp-opt:active{transform:scale(.98)}.exp-opt.sel{border-color:var(--accent)}.seg-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.exp-opt.seg{position:relative}.exp-opt.locked{opacity:.4;cursor:default}.exp-soon{position:absolute;top:8px;right:10px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--panel-border);border-radius:6px;padding:1px 6px}.set-hint.live{color:var(--accent)}.exp-name{font-size:14px;font-weight:700}.set-hint{font-size:11px;color:var(--text-dim);margin-bottom:2px;line-height:1.4}.set-hint.blurb{margin-top:12px;min-height:2.8em;font-size:12px;color:var(--text)}@media (max-width: 389px){.tb-score{font-size:clamp(18px,6vw,21px)}.tb-meta,.tb-eralegend{font-size:9px}.tb-breaths,.tb-crowns,.tb-chain{font-size:19px}}
