:root{--bg:#05060f;--bg-2:#0d1024;--panel:#0d1024f5;--panel-soft:#6366f11a;--border:#818cf866;--border-soft:#818cf82e;--indigo:#6366f1;--indigo-mid:#818cf8;--indigo-lite:#a5b4fc;--cyan:#22d3ee;--amber:#fbbf24;--text:#e6e9ff;--text-dim:#9aa0c8;--text-faint:#5a5f86;--danger:#f87171;--ok:#4ade80;--shadow:0 18px 60px #000000a6;--glow:0 0 34px #6366f166}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none;font-family:Space Grotesk,system-ui,sans-serif;overflow:hidden}#app{background:radial-gradient(900px 600px at 20% 10%,#6366f12e,#0000 70%),radial-gradient(800px 700px at 84% 90%,#22d3ee1f,#0000 70%),linear-gradient(160deg,#0d1024 0%,#05060f 60%,#04040c 100%);place-items:center;width:100%;height:100dvh;display:grid}.game{width:100%;height:100dvh;position:relative;overflow:hidden}.stage{min-width:0;height:100%;min-height:0;padding:calc(env(safe-area-inset-top) + 8px) calc(env(safe-area-inset-right) + 10px) calc(env(safe-area-inset-bottom) + 8px) calc(env(safe-area-inset-left) + 10px);flex-direction:column;gap:8px;display:flex}.hud{flex:none;align-items:center;gap:10px;display:flex}.hud-brand{letter-spacing:1.5px;color:var(--text-dim);white-space:nowrap;font-size:clamp(13px,3.6vw,19px);font-weight:700}.hud-brand b{color:var(--indigo-lite);font-weight:700}.hud-stats{flex:1;justify-content:center;gap:6px;min-width:0;display:flex}.stat{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;min-width:52px;padding:4px 10px;display:flex}.stat-val{color:var(--text);font-variant-numeric:tabular-nums;font-size:clamp(14px,3.6vw,20px);font-weight:700;line-height:1}.stat-label{letter-spacing:1.2px;text-transform:uppercase;color:var(--text-faint);margin-top:2px;font-size:9px}.stat-score .stat-val{color:#fff}.stat-level .stat-val{color:var(--indigo-lite)}.stat-lines .stat-val{color:var(--cyan)}.stat-time .stat-val{color:var(--amber)}.stat-val.pop{animation:.34s pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}.hud-actions{align-items:center;gap:7px;display:flex}.icon-btn{border:1px solid var(--border);background:var(--panel-soft);width:42px;height:42px;color:var(--indigo-lite);cursor:pointer;border-radius:12px;place-items:center;transition:transform .12s;display:grid}.icon-btn:active{transform:scale(.92)}.icon-pause{border-left:5px solid;border-right:5px solid;width:13px;height:14px}.btn-double{color:var(--amber);cursor:pointer;background:#fbbf2429;border:1px solid #fbbf2499;border-radius:12px;flex-direction:column;align-items:center;padding:5px 12px;line-height:1;transition:transform .12s,box-shadow .2s;animation:1.8s ease-in-out infinite pulseGlow;display:flex}.btn-double b{font-size:16px;font-weight:700}.btn-double span{letter-spacing:.5px;opacity:.8;margin-top:2px;font-size:9px}.btn-double:active{transform:scale(.93)}.btn-double.is-active{border-color:var(--amber);background:#fbbf2452;animation:none;box-shadow:0 0 18px #fbbf2480}@keyframes pulseGlow{0%,to{box-shadow:0 0 #fbbf2400}50%{box-shadow:0 0 18px #fbbf248c}}.play{flex:auto;justify-content:center;align-items:stretch;gap:8px;min-width:0;min-height:0;display:flex}.rail{flex-direction:column;flex:none;gap:8px;width:clamp(64px,14vw,156px);min-height:0;display:flex}.panel{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:8px 7px;display:flex}.panel-station{flex:1;min-height:0}.panel-label{letter-spacing:1.6px;text-transform:uppercase;color:var(--text-faint);font-size:9.5px}.piece-box{aspect-ratio:1;background:#00000052;border-radius:9px;place-items:center;width:100%;padding:5px;display:grid}.next-list{flex-direction:column;gap:6px;width:100%;display:flex}.next-list .piece-box:first-child{outline:1px solid var(--border-soft)}.mini{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:2px;width:100%;height:100%;display:grid}.mc{border-radius:2.5px}.mc.on{box-shadow:inset 0 0 0 1px #ffffff38}.station{flex-direction:column-reverse;flex:1;justify-content:center;gap:5px;width:100%;min-height:0;display:flex}.module{border:1px solid var(--border-soft);background:#00000057;border-radius:7px;flex:none;place-items:center;height:clamp(20px,4.6vh,44px);min-height:16px;transition:border-color .2s;display:grid;position:relative;overflow:hidden}.module>i{background:var(--text-faint);opacity:.5;z-index:1;border-radius:50%;width:42%;height:42%;transition:background .25s,box-shadow .25s}.module[data-state=active]{border-color:var(--border)}.module[data-state=active]:before{content:"";height:var(--fill,0%);background:linear-gradient(#6366f18c,#6366f147);transition:height .25s;position:absolute;bottom:0;left:0;right:0}.module[data-state=built]{border-color:var(--indigo);background:#6366f138;box-shadow:inset 0 0 14px #6366f166}.module[data-state=built]>i{background:var(--indigo-lite);opacity:1;box-shadow:0 0 10px var(--indigo-mid)}.station.complete .module{animation:.6s stationPulse}@keyframes stationPulse{0%,to{box-shadow:inset 0 0 14px #6366f166}50%{box-shadow:inset 0 0 22px #a5b4fce6,0 0 16px #6366f199}}.station-sub{letter-spacing:.5px;color:var(--text-faint);font-size:9.5px}.pow-tray{flex-direction:column;gap:6px;width:100%;display:flex}.pow-slot{aspect-ratio:2.6;border:1px dashed var(--border-soft);width:100%;color:var(--text-faint);cursor:pointer;touch-action:manipulation;background:#0000004d;border-radius:9px;place-items:center;font-family:inherit;font-size:clamp(16px,3.6vw,22px);transition:transform .1s,box-shadow .2s;display:grid}.pow-slot.filled{border-style:solid;border-color:var(--pc,var(--indigo));background:color-mix(in srgb, var(--pc,var(--indigo)) 18%, transparent);color:var(--pc,var(--indigo-lite));box-shadow:0 0 14px color-mix(in srgb, var(--pc,var(--indigo)) 40%, transparent)}.pow-slot.filled:active{transform:scale(.93)}.pow-slot:disabled{cursor:default}.well-wrap{flex:auto;place-items:center;min-width:0;min-height:0;display:grid;position:relative}#well{touch-action:none;aspect-ratio:1/2;width:100%;height:auto;max-height:100%;display:block}.banner{pointer-events:none;text-align:center;white-space:nowrap;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.banner.show{animation:1.7s forwards bannerPop}.banner-text{letter-spacing:1px;color:#fff;text-shadow:0 0 26px #6366f1f2,0 2px 10px #000c;font-size:clamp(20px,6vw,40px);font-weight:700}.banner.tetris .banner-text{color:var(--cyan);text-shadow:0 0 26px #22d3eef2}.banner.station .banner-text{color:var(--amber);text-shadow:0 0 26px #fbbf24f2}@keyframes bannerPop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}16%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}26%{transform:translate(-50%,-50%)scale(1)}74%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.1)}}.controls{flex:none;justify-content:space-between;align-items:center;gap:10px;display:flex}.cluster{gap:8px;display:flex}.ctl{width:clamp(54px,14vw,76px);height:clamp(50px,12vw,64px);color:var(--indigo-lite);background:var(--panel-soft);border:1px solid var(--border);cursor:pointer;touch-action:none;border-radius:14px;place-items:center;font-family:inherit;font-size:22px;transition:transform 70ms,background .1s;display:grid}.ctl:active,.ctl.is-down{background:#6366f166;transform:scale(.92)}.ctl-rotate{color:var(--cyan)}.ctl-hard{color:var(--amber)}body:not(.is-touch) .controls{display:none}.screens{z-index:20;display:none;position:absolute;inset:0}.screens.active{display:block}.screen{-webkit-backdrop-filter:blur(8px);background:#04040ccc;justify-content:center;align-items:center;padding:22px;display:none;position:absolute;inset:0}.screen.active{animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel-screen{background:var(--panel);border:1px solid var(--border);width:min(420px,100%);max-height:100%;box-shadow:var(--shadow), var(--glow);text-align:center;border-radius:24px;flex-direction:column;gap:13px;padding:26px 24px;animation:.26s cubic-bezier(.2,.9,.3,1.2) panelIn;display:flex;overflow:hidden auto}@keyframes panelIn{0%{opacity:0;transform:translateY(18px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.panel-title{color:var(--indigo-lite);font-size:25px;font-weight:700}.panel-title.is-loss{color:var(--danger)}.logo{margin-bottom:2px}.logo-title{letter-spacing:2px;color:#fff;text-shadow:0 0 28px #6366f1b3;font-size:clamp(34px,10vw,50px);font-weight:700;line-height:1}.logo-title span{color:var(--indigo-lite);display:block}.logo-sub{letter-spacing:4.5px;text-transform:uppercase;color:var(--text-faint);margin-top:8px;font-size:12px}.menu-best{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:14px;flex-direction:column;gap:2px;padding:9px;display:flex}.menu-best-label{letter-spacing:2px;text-transform:uppercase;color:var(--text-faint);font-size:10.5px}.menu-best-val{color:var(--amber);font-size:32px;font-weight:700}.field{flex-direction:column;gap:8px;display:flex}.field-label{letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);font-size:10.5px}.segmented{border:1px solid var(--border-soft);background:#0000004d;border-radius:13px;gap:4px;padding:4px;display:flex}.seg{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:9px 4px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s}.seg.is-active{color:#fff;background:linear-gradient(140deg, var(--indigo), var(--indigo-mid));box-shadow:0 4px 14px #6366f180}.mode-desc{min-height:34px;color:var(--text-dim);font-size:12.5px;line-height:1.45}.menu-foot{gap:10px;display:flex}.menu-foot .btn{flex:1}.btn{border:1px solid var(--border);background:var(--panel-soft);color:var(--text);cursor:pointer;border-radius:13px;padding:12px 18px;font-family:inherit;font-size:15px;font-weight:600;transition:transform .1s,box-shadow .2s}.btn:active{transform:scale(.96)}.btn-primary{color:#fff;background:linear-gradient(140deg, var(--indigo), var(--indigo-mid));border:none;box-shadow:0 8px 24px #6366f180}.btn-primary:hover{box-shadow:0 8px 32px #818cf8b3}.btn-play{letter-spacing:4px;padding:16px;font-size:22px;font-weight:700}.btn-ghost{border-color:var(--border-soft);color:var(--text-dim);background:0 0}.btn-ghost:hover{color:var(--text);border-color:var(--border)}.btn-danger{color:var(--danger);background:#f871711f;border-color:#f8717180}.howto-intro{color:var(--text-dim);font-size:13px;line-height:1.5}.howto-list{text-align:left;flex-direction:column;gap:7px;list-style:none;display:flex}.howto-list li{background:var(--panel-soft);border:1px solid var(--border-soft);color:var(--text-dim);border-radius:11px;align-items:center;gap:11px;padding:8px 11px;font-size:12.5px;display:flex}.howto-list b{color:var(--text)}.howto-dot{color:var(--c);text-align:center;width:18px;font-size:16px}.howto-controls{text-align:left;flex-direction:column;gap:7px;display:flex}.howto-controls>div{color:var(--text-dim);background:#00000040;border-radius:11px;flex-direction:column;gap:3px;padding:8px 11px;font-size:12px;display:flex}.howto-controls b{color:var(--indigo-lite);letter-spacing:1px}.setting-row{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:12px;justify-content:space-between;align-items:center;padding:11px 13px;font-size:14px;font-weight:500;display:flex}.toggle{border:1px solid var(--border-soft);cursor:pointer;background:#0006;border-radius:999px;width:50px;height:29px;padding:3px;transition:background .18s}.toggle-knob{background:var(--text-faint);border-radius:50%;width:21px;height:21px;transition:transform .18s,background .18s;display:block}.toggle[aria-checked=true]{background:linear-gradient(140deg, var(--indigo), var(--indigo-mid));border-color:#0000}.toggle[aria-checked=true] .toggle-knob{background:#fff;transform:translate(21px)}.pause-score{color:var(--text-dim);font-size:15px}.pause-score b{color:var(--text);font-size:22px}.over-score{flex-direction:column;gap:2px;display:flex}.over-score-val{color:#fff;text-shadow:0 0 30px #6366f199;font-size:66px;font-weight:700;line-height:1}.over-score-label{letter-spacing:2px;text-transform:uppercase;color:var(--text-faint);font-size:12px}.over-meta{color:var(--text-dim);justify-content:center;gap:18px;font-size:13px;display:flex}.over-meta b{color:var(--indigo-lite)}.over-badge{letter-spacing:1.5px;color:#0b1022;background:linear-gradient(140deg, var(--amber), #fb923c);border-radius:999px;align-self:center;padding:6px 16px;font-size:13px;font-weight:700;animation:.5s cubic-bezier(.2,.9,.3,1.4) badgePop}@keyframes badgePop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.continue-ring{align-self:center;width:128px;height:128px;position:relative}.continue-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#6366f133;stroke-width:9px}.ring-fill{fill:none;stroke:var(--indigo-mid);stroke-width:9px;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:0;filter:drop-shadow(0 0 6px #818cf8b3);transition:stroke-dashoffset .25s linear}.continue-secs{color:#fff;place-items:center;font-size:50px;font-weight:700;display:grid;position:absolute;inset:0}.continue-text{color:var(--text-dim);font-size:14px}.continue-text b{color:var(--text);font-size:17px}.ad-overlay{z-index:40;color:var(--text-dim);background:#03030af5;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.ad-overlay p{color:var(--indigo-lite);letter-spacing:1px;font-size:18px;font-weight:600}.ad-sub{color:var(--text-faint);font-size:12px}.ad-spinner{border:4px solid #6366f140;border-top-color:var(--indigo-mid);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}@media (aspect-ratio<=1){.rail{width:clamp(46px,14vw,96px)}.hud-brand{display:none}.panel{gap:5px;padding:7px 5px}.next-list .piece-box:nth-child(3){display:none}}@media (height<=620px){.next-list .piece-box:nth-child(2){display:none}.stat{min-width:44px;padding:3px 7px}}@media (aspect-ratio>=1){.stage{padding:calc(env(safe-area-inset-top) + 12px) 20px calc(env(safe-area-inset-bottom) + 12px);gap:12px}.play{gap:16px}.hud-brand{letter-spacing:2.5px;font-size:22px}#well{width:auto;max-width:100%;height:100%}}
