:root{--bg:#0b1130;--panel:#161c4d;--chip:#242c6e;--chip-hover:#434a82;--chip-soft:#242c6ecc;--muted:#3a4380;--dot:#3a4380;--frame:#5a64b8;--accent:#ffd24d;--accent-ink:#382e11;--ink:#e9edff;--dim:#8089c7;--scrim:#0b1130d8;--shape:#5fe08c99;--coin:#ffc94d;--coin-hi:#ffd97a;--coin-ink:#3d2b00;--heart:#ff6b7a;--shift:.28s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{overscroll-behavior:none;background:var(--bg);height:100%;color:var(--ink);transition:background-color var(--shift) ease, color var(--shift) ease;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;margin:0;font:500 16px/1.4 ui-rounded,SF Pro Rounded,system-ui,sans-serif;overflow:hidden}#app{height:100%;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);flex-direction:column;align-items:center;gap:5px;display:flex}header{align-items:center;gap:8px;width:100%;max-width:560px;padding-top:3px;display:flex}.lvl{background:var(--chip);letter-spacing:.04em;color:var(--ink);text-align:left;border-radius:12px;padding:4px 12px;font-weight:700}.lvl small{color:var(--dim);letter-spacing:.12em;font-size:10px;line-height:1.1;display:block}.lvl .stage-name{text-transform:uppercase;color:var(--accent);transition:color var(--shift) ease;font-style:normal;font-weight:800}.spacer{flex:1}button{font:inherit;color:var(--ink);background:var(--chip);cursor:pointer;border:0;border-radius:12px;padding:9px 14px;font-weight:700;transition:transform .1s,background .15s}button:active{transform:scale(.94)}button:hover{background:var(--chip-hover)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.nav{padding:9px 12px;font-size:18px;line-height:1}#stage{touch-action:none;flex:1;place-items:center;width:100%;max-width:560px;min-height:0;padding:10px 0;display:grid;position:relative}svg{touch-action:none;outline:2px solid var(--frame);outline-offset:2px;width:100%;height:100%;transition:outline-color var(--shift) ease;border-radius:4px}.zoom-reset{color:var(--dim);background:var(--chip-soft);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:10px;padding:6px 10px;font-size:13px;line-height:1;position:absolute;bottom:6px;right:6px}.dot{fill:var(--dot);transition:fill var(--shift) ease}.powerbar{justify-content:center;gap:12px;display:flex}.power{border-radius:14px;padding:7px 14px;line-height:1;position:relative}.power .icon{font-size:24px}.power .badge{background:var(--accent);min-width:20px;color:var(--accent-ink);text-align:center;border-radius:10px;padding:2px 5px;font-size:12px;font-weight:800;position:absolute;top:-6px;right:-6px}.power.zero .badge{background:var(--muted);color:var(--dim)}.power.zero .icon{filter:grayscale()opacity(.55)}.power.armed{outline:3px solid var(--accent);background:var(--chip-hover)}.shop-coins{margin-left:auto;margin-right:12px;font-weight:700}#shopList{gap:10px;display:grid;overflow-y:auto}.shop-row{background:var(--chip);border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.shop-icon{text-align:center;width:34px;font-size:26px}.shop-info{flex:1;gap:2px;display:grid}.shop-info small{color:var(--dim);font-size:12px}.shop-buy{background:var(--coin);color:var(--coin-ink);white-space:nowrap;padding:8px 12px}.shop-buy:hover{background:var(--coin-hi)}.shop-buy:disabled{background:var(--muted);color:var(--dim);cursor:default;transform:none}#selectGrid button.shape:not(.locked){background:var(--chip-hover);box-shadow:inset 0 0 0 1.5px var(--shape)}.stats{width:100%;max-width:560px;color:var(--dim);letter-spacing:.06em;justify-content:center;gap:14px;padding-bottom:2px;font-size:12px;line-height:1.2;display:flex}.stats b{color:var(--ink);font-weight:700}.hearts b{color:var(--heart);letter-spacing:.1em}.hearts b span{display:inline-block}.hearts b .lost{color:var(--muted)}.hearts b .part{background:linear-gradient(to top, var(--heart) var(--fill,50%), var(--muted) var(--fill,50%));color:#0000;-webkit-background-clip:text;background-clip:text}.hearts b .breaking{animation:.55s ease-out both heart-break}@keyframes heart-break{0%{color:var(--heart);transform:scale(1)}35%{color:var(--heart);transform:scale(1.7)rotate(-14deg)}65%{transform:scale(1.2)rotate(9deg)}to{color:var(--muted);transform:scale(1)}}.heart-loss{z-index:4;color:var(--heart);pointer-events:none;text-shadow:0 2px 10px #000a;font-size:28px;font-weight:800;animation:.85s ease-out forwards heart-loss;position:fixed}@keyframes heart-loss{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}20%{opacity:1;transform:translate(-50%,-70%)scale(1.35)}to{opacity:0;transform:translate(-50%,-220%)scale(1)}}@media (prefers-reduced-motion:reduce){.hearts b .breaking{animation:none}}.coins,.coins b{color:var(--coin)}.card .row{gap:10px;display:flex}.coin-award{justify-items:center;gap:7px;padding:12px 30px 6px;display:grid;position:relative}.coin-big{align-items:center;gap:12px;animation:.55s cubic-bezier(.2,1.6,.4,1) both coin-pop;display:flex}.coin-big .num{color:var(--coin);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:48px;font-weight:800}.coin-icon{background:radial-gradient(circle at 35% 30%,#ffe9ae,#ffc94d 55%,#c8912f);border-radius:50%;width:40px;height:40px;box-shadow:0 3px 14px #ffc94d66}@keyframes coin-pop{0%{opacity:0;transform:scale(.2)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.coin-breakdown{color:var(--dim);font-size:13px;font-weight:700}.coin-total{color:var(--ink);opacity:.85;font-size:13px}.coin-burst{pointer-events:none;position:absolute;inset:0}.coin-burst span{opacity:0;width:13px;height:13px;animation:coin-fly .95s ease-out var(--delay,0s) both;background:radial-gradient(circle at 35% 30%,#ffe9ae,#ffc94d 60%,#c8912f);border-radius:50%;position:absolute;top:42%;left:50%}@keyframes coin-fly{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}15%{opacity:1}to{transform:translate(calc(-50% + var(--dx,0px)), calc(-50% + var(--dy,-60px))) scale(1);opacity:0}}@media (prefers-reduced-motion:reduce){.coin-big{animation:none}.coin-burst{display:none}}.toggles{gap:14px;margin-left:auto;margin-right:10px;display:flex}.toggle{color:var(--dim);letter-spacing:.04em;cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.toggle input{accent-color:var(--accent);width:18px;height:18px}#selectGrid button .star{color:var(--accent);font-size:10px;line-height:1;display:block}.overlay{background:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;place-items:center;display:none;position:fixed;inset:0}.overlay.on{display:grid}.panel{background:var(--panel);border-radius:20px;flex-direction:column;gap:12px;width:min(92vw,420px);max-height:76vh;padding:18px;display:flex;box-shadow:0 18px 50px #0008}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel-head h2{letter-spacing:-.01em;margin:0;font-size:20px}.stage-bar{align-items:center;gap:8px;display:flex}.stage-bar button{padding:6px 12px;font-size:17px;line-height:1}.stage-bar button:disabled{opacity:.3;cursor:default;transform:none}.stage-title{text-align:center;flex:1;line-height:1.15}.stage-title b{letter-spacing:.08em;text-transform:uppercase;color:var(--stage-accent,var(--accent));font-size:17px;font-weight:800;display:block}.stage-title small{letter-spacing:.06em;color:var(--dim);font-size:11px;display:block}.stage-pips{gap:5px;display:flex}.stage-pips button{border-bottom:3px solid var(--pip,var(--muted));border-radius:9px;flex:1;padding:5px 0;font-size:12px;line-height:1}.stage-pips button.now{background:var(--chip-hover);color:var(--pip,var(--accent))}.stage-pips button.locked{opacity:.4}.page-bar{letter-spacing:.06em;color:var(--dim);justify-content:center;align-items:center;gap:12px;font-size:12px;font-weight:700;display:flex}.page-bar button{padding:4px 12px;font-size:15px;line-height:1}.page-bar button:disabled{opacity:.3;cursor:default;transform:none}.stage-lock{text-align:center;color:var(--dim);margin:0;padding:22px 8px;font-size:13px}#selectGrid{grid-template-columns:repeat(5,1fr);gap:8px;min-height:0;padding:2px;display:grid;overflow-y:auto}#selectGrid button{aspect-ratio:1;border-radius:14px;padding:0;font-size:15px}#selectGrid button.now{outline:2px solid var(--accent)}#selectGrid button.locked{opacity:.35;cursor:default}.card{text-align:center;justify-items:center;gap:16px;display:grid}.card h1{letter-spacing:-.02em;margin:0;font-size:34px}.card h1.stage-up{color:var(--stage-accent,var(--accent));font-size:30px}.card p{color:var(--dim);margin:0;font-size:14px}@media (prefers-reduced-motion:reduce){button{transition:none}:root{--shift:0s}}
