@font-face{font-family:Russo;src:url('../assets/fonts/RussoOne-Regular.ttf') format('truetype');font-display:swap}
html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body{background:radial-gradient(ellipse at 50% 40%,#354e65 0,#122032 52%,#090f18 100%)}
#shell{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#game{font-family:Russo,Arial,sans-serif;color:#f4faff;font-synthesis:none}
:where(#game) *{box-sizing:border-box}
:where(#game) button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:where(#game) button:focus-visible{outline:none}
:where(#game) button:disabled{cursor:default;filter:saturate(.4);opacity:.65}
:where(#game) button:active:not(:disabled){transform:translateY(4px);filter:brightness(1.2)}
#game [hidden]{display:none!important}
#shell{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
#game{width:720px;height:1280px;position:relative;flex-shrink:0;overflow:hidden;transform-origin:center center;box-shadow:0 0 140px #000b;background:#111d2d}
#game #world{width:720px;height:1280px;display:block;touch-action:none;outline:none}
#game #vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #07121b88}
#game #hud{position:absolute;inset:0;pointer-events:none}
#game #hud button{pointer-events:auto}
#game .zone-panel{position:absolute;top:24px;left:24px;width:270px;padding:17px 20px 15px;background:linear-gradient(135deg,#172b3eed,#182737dd);border:2px solid #54738a;border-radius:18px;box-shadow:0 7px 0 #07121b88}
#game .zone-panel small{display:block;font-size:23px;color:#d1e7f4}
#game .zone-panel strong{display:block;font-size:28px;color:#ffbd45;margin:5px 0 12px}
#game .zone-panel span{display:block;font-size:18px;margin-top:8px;letter-spacing:1px}
#game .meter{background:#0b1721;border:2px solid #425b6b;border-radius:12px;overflow:hidden;height:16px}
#game .meter i{display:block;height:100%;width:0;background:linear-gradient(#a4fb58,#53cf3d);border-radius:8px;transition:width .25s}
#game .wallet-panel{position:absolute;right:23px;top:22px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
#game .square{width:66px;height:63px;background:linear-gradient(#3a5265,#1c2f41);border:2px solid #6688a2;border-bottom:6px solid #0d1e2c;border-radius:16px;font-size:36px}
#game .currency{display:flex;gap:13px;align-items:center;background:#132638eb;border:2px solid #3e5b70;border-radius:12px;padding:9px 15px;font-size:29px;min-width:142px;justify-content:space-between}
#game .currency.gold{font-size:24px;color:#ffdc78}
#game .scrap-dot,#game .gold-dot{display:inline-block;width:29px;height:23px;transform:skewY(-12deg) rotate(-10deg);border:2px solid #e4f7ff;background:linear-gradient(135deg,#e4f2f3,#789eaf 50%,#b8d9e9);box-shadow:4px 4px 0 #344757}
#game .gold-dot{border-color:#ffeaa5;background:linear-gradient(135deg,#ffffb1,#ffb219 60%);box-shadow:4px 4px 0 #875d16}
#game .bottom-hud{position:absolute;bottom:16px;left:22px;right:22px}
#game .integrity{padding:12px 16px;background:#0b1725e8;border:2px solid #466276;border-radius:15px;font-size:18px;color:#b9d1de}
#game .integrity b{float:right;color:#fafbff}
#game .integrity .meter{height:13px;margin-top:9px}
#game .integrity .meter i{width:100%;background:linear-gradient(90deg,#39c8ec,#8ffff5)}
#game #stats{display:flex;gap:6px;margin-top:9px}
#game #stats>div{flex:1;text-align:center;padding:11px 2px;background:#0a1826e8;border:1px solid #415d72;border-radius:10px;font-size:15px;color:#b6cbd8}
#game #stats strong{display:block;font-size:22px;color:#ffe293;margin-top:5px}
#game #combo{position:absolute;top:263px;right:29px;transform:rotate(-7deg);text-shadow:3px 4px 0 #07121b;text-align:center;color:#ffca44}
#game #combo b{display:block;font-size:57px}
#game #combo span{font-size:18px}
#game #combo i{display:block;height:5px;background:#ffd448;margin-top:8px}
#game #mega-label{position:absolute;top:226px;width:100%;text-align:center;color:#ffdc5f;font-size:21px;text-shadow:2px 3px #112331}
#game #boosts{position:absolute;left:25px;top:238px;display:flex;flex-direction:column;gap:6px}
#game #boosts span{font-size:18px;background:#16304aee;border:1px solid #64cbe4;border-radius:8px;padding:8px 12px;color:#b8f7ff}
#game #tutorial{position:absolute;left:140px;right:140px;bottom:190px;background:#122b3be8;padding:22px 10px;text-align:center;border-radius:22px;border:2px solid #8cbed1;box-shadow:0 6px 0 #091721;pointer-events:none}
#game #tutorial b{display:block;font-size:27px}
#game #tutorial small{font-size:20px;color:#abcbdf;display:block;margin-top:8px}
#game .hand{display:block;color:#ffbf4d;font-size:55px;animation:hand 1.7s infinite}
#game #joystick{position:absolute;width:144px;height:144px;border:3px solid #a8d7eb75;background:#16384855;border-radius:50%;transform:translate(-50%,-50%)}
#game #joystick div{position:absolute;top:43px;left:43px;width:52px;height:52px;border:2px solid #caeaff;border-radius:50%;background:#87cfe98c}
#game #feedback{position:absolute;inset:0;pointer-events:none;overflow:hidden}
#game .float{position:absolute;white-space:nowrap;font-size:30px;text-shadow:3px 3px 0 #0d1a24,-2px -2px 0 #0d1a24;will-change:transform,opacity}
#game .coin-flight{position:absolute;width:21px;height:17px;background:#c8e8f8;border:2px solid white;box-shadow:3px 3px #436878;transform:rotate(20deg)}
#game #celebration{position:absolute;top:370px;left:20px;right:20px;text-align:center;pointer-events:none;opacity:0;transform:scale(.8);transition:opacity .15s,transform .22s}
#game #celebration.visible{opacity:1;transform:scale(1)}
#game #celebration strong{display:block;font-size:49px;color:#ffd051;text-shadow:4px 5px 0 #162633,-2px -2px 0 #162633}
#game #celebration span{display:inline-block;background:#172c3eef;color:#d4f6ff;padding:10px 23px;font-size:24px;border:2px solid #6a9aad;border-radius:14px;margin-top:12px}
#game #damage-flash{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 170px #ff2f31;opacity:0;transition:opacity .15s}
#game .screen{position:absolute;inset:0}
#game .splash-art{width:720px;height:1080px;object-fit:contain;display:block}
#game .splash-bottom{position:absolute;bottom:0;left:0;right:0;padding:105px 38px 26px;background:linear-gradient(transparent,#111d2e 29%,#101c2b 100%);text-align:center}
#game .play-button{position:relative;width:100%;padding:26px 10px 21px;background:linear-gradient(#ffe27a,#ffc128 44%,#ee9415);border:3px solid #ffeb9c;border-bottom:10px solid #9c510c;box-shadow:0 0 0 5px #352817,0 10px 30px #0008,inset 0 4px #fff5;border-radius:23px;color:#42270d;text-shadow:0 2px #ffe59a;font-size:29px;letter-spacing:.4px}
#game .play-button span{display:block;font-size:16px;letter-spacing:2px;margin-top:9px}
#game .splash-nav{display:flex;gap:11px;margin-top:23px}
#game .splash-nav button{flex:1;font-size:18px;padding:17px 4px;border:2px solid #577994;border-bottom:6px solid #081422;border-radius:12px;background:linear-gradient(#304b62,#152b40)}
#game .mapi{display:block;width:172px;height:auto;max-height:95px;object-fit:contain;margin:28px auto 0}
#game #loading{position:absolute;bottom:340px;left:0;width:100%;text-align:center;font-size:21px;background:#132437b8;padding:8px;color:#d7eff9}
#game .overlay{background:#0b1625d9;backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:35px 25px}
#game #panel{width:100%;max-height:1175px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:25px 8px;scrollbar-width:thin}
#game #panel h1{text-align:center;font-size:52px;margin:0 0 8px;color:#f6fbff;text-shadow:0 4px #42586a}
#game #panel .eyebrow{text-align:center;letter-spacing:4px;font-size:20px;color:#ffcb5e;margin:0 0 13px}
#game #panel .subtitle{text-align:center;font-size:23px;line-height:1.5;color:#b9d3e5;margin:15px 8px 32px}
#game .menu-stack{max-width:540px;margin:auto;display:grid;gap:17px}
#game .big-button{width:100%;display:flex;align-items:center;justify-content:center;gap:18px;padding:21px 18px;border:3px solid #78a9ca;border-bottom:9px solid #12354f;border-radius:20px;background:linear-gradient(#36749b,#174267);font-size:31px;box-shadow:0 5px 0 #07182a,inset 0 3px #ffffff26}
#game .big-button svg{width:57px;height:57px}
#game .big-button.orange{color:#4f2a0d;border-color:#ffdf8a;border-bottom-color:#934812;background:linear-gradient(#ffd75d,#f4a125)}
#game .big-button.green{border-color:#b3f379;border-bottom-color:#245720;background:linear-gradient(#72b943,#398430)}
#game .big-button.secondary{font-size:25px;background:linear-gradient(#32485e,#1b2d42);border-color:#647d92;border-bottom-color:#0d1c2f}
#game .menu-two{display:grid;grid-template-columns:1fr 1fr;gap:15px}
#game .menu-two .big-button{font-size:23px}
#game .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:40px 0}
#game .upgrade-card{--accent:#61cfff;position:relative;background:linear-gradient(#1b3b55,#122333);border:3px solid var(--accent);border-bottom:10px solid color-mix(in srgb,var(--accent),black 55%);border-radius:22px;padding:19px 12px 23px;box-shadow:0 0 24px color-mix(in srgb,var(--accent),transparent 80%),inset 0 0 28px #ffffff09;min-height:390px;display:flex;align-items:center;flex-direction:column;justify-content:flex-start}
#game .upgrade-card svg{width:125px;height:125px;filter:drop-shadow(0 6px 4px #0009);margin:4px auto 22px}
#game .upgrade-card h2{font-size:24px;line-height:1.23;margin:0 0 17px}
#game .upgrade-card p{font:20px/1.4 Russo;margin:0;color:#c8dbe8}
#game .upgrade-card .select{display:block;margin-top:auto;padding-top:22px;font-size:18px;color:var(--accent)}
#game .panel-wallet{display:flex;align-items:center;justify-content:center;gap:14px;font-size:29px;color:#f6e6b7;padding:15px;margin:15px auto 24px}
#game .garage-list{display:grid;gap:13px}
#game .garage-row{display:grid;grid-template-columns:68px 1fr 164px;gap:14px;align-items:center;background:linear-gradient(100deg,#273e54,#142637);border:2px solid #56738a;border-radius:18px;padding:17px}
#game .garage-row svg{width:64px;height:64px}
#game .garage-row h3{font-size:23px;margin:0 0 6px}
#game .garage-row p{font-size:17px;color:#b9cfde;margin:0}
#game .garage-row button{background:linear-gradient(#ffc856,#e78b23);border:2px solid #ffe1a3;border-bottom:6px solid #79431b;border-radius:12px;color:#4c2c14;font-size:24px;padding:15px 5px}
#game .garage-row button small{display:block;font-size:15px;margin-top:5px}
#game .back{margin-top:26px}
#game .collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
#game .collectible{position:relative;background:radial-gradient(ellipse at 50% 20%,#476074,#1b2c3e 75%);border:2px solid #55738d;border-radius:20px;text-align:center;padding:12px 12px 21px;overflow:hidden}
#game .collectible img{width:100%;height:175px;object-fit:contain}
#game .collectible h3{font-size:23px;margin:5px 0 9px}
#game .collectible p{font-size:17px;line-height:1.45;color:#b3cad9;margin:0}
#game .collectible.locked img{filter:brightness(.65) saturate(.4)}
#game .badge{position:absolute;top:13px;left:13px;font-size:16px;background:#112536de;border:1px solid #607b91;padding:6px 9px;border-radius:7px;color:#badae9}
#game .trophy-row{display:flex;gap:22px;align-items:center;background:#24394de8;border:2px solid #607b93;border-radius:17px;padding:22px;margin-bottom:15px}
#game .trophy-row svg{width:78px;height:78px;flex-shrink:0}
#game .trophy-row h3{margin:0 0 9px;font-size:24px}
#game .trophy-row p{font-size:20px;color:#b8d0e0;margin:0}
#game .trophy-row.locked{opacity:.6}
#game .setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#23394be6;border:2px solid #49697f;border-radius:17px;padding:20px;margin-bottom:15px;font-size:26px}
#game .setting-row button{min-width:170px;border:2px solid #8dd4ef;border-radius:10px;padding:13px;background:#266386;font-size:23px}
#game .result-hero{text-align:center;padding:30px 0}
#game .result-hero strong{font-size:79px;color:#ffcf59;display:block;text-shadow:0 6px #865a26}
#game .result-hero span{font-size:21px;color:#c5dce9}
#game .results-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:12px 0 26px}
#game .results-grid div{background:#23394be6;border:2px solid #49697f;border-radius:16px;padding:18px;text-align:center}
#game .results-grid b{font-size:34px;display:block;color:#f7daa1;margin-bottom:7px}
#game .results-grid span{font-size:17px;color:#bdd3e2}
#game .zone-clear{text-align:center}
#game .zone-clear svg{width:185px;height:185px;margin:25px auto}
#game .zone-clear .big-button{max-width:510px;margin:35px auto 0}
#game #toast{position:absolute;left:40px;right:40px;bottom:175px;z-index:12;background:#0c2238f5;border:2px solid #a9d6ee;color:#e9f9ff;padding:18px;border-radius:14px;font-size:22px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s}
#game #toast.visible{opacity:1}
@keyframes hand{0%,100%{transform:translateX(-24px)}50%{transform:translateX(24px)}}
@media(prefers-reduced-motion:reduce){#game .hand{animation:none}}
#game #action-controls{position:absolute;bottom:191px;left:25px;right:25px;display:flex;align-items:center;justify-content:flex-end;gap:20px;pointer-events:none}
#game .action-hint{font-size:15px;line-height:1.7;color:#d9ecf4;text-shadow:0 2px 4px #00121d;flex:1;align-self:flex-end;padding-bottom:10px}
#game .action-hint span{color:#ffbf69;font-size:12px}
#game .action-button{pointer-events:auto;position:relative;isolation:isolate;overflow:hidden;min-height:128px;border:3px solid #b6edff;border-bottom:9px solid #124c6e;border-radius:26px;background:linear-gradient(#62d4f1,#168dce 54%,#156591);box-shadow:0 6px 0 #061e2ad9,0 9px 20px #00172680,inset 0 3px #ffffff65;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 12px;color:white;text-shadow:0 2px #0a4058;touch-action:none}
#game .action-button b{font-size:23px;white-space:nowrap;position:relative}
#game .action-button small{font-size:14px;margin-top:7px;white-space:nowrap;position:relative}
#game .action-symbol{font-family:Arial,sans-serif;font-size:42px;line-height:40px;font-weight:900;position:relative}
#game .jump-button{width:132px}
#game .burst-button{width:253px;border-color:#ffb293;border-bottom-color:#811e20;background:linear-gradient(#ff7961,#e33632 52%,#a52435);text-shadow:0 2px #742128;box-shadow:0 6px 0 #391625,0 0 24px #ff693333,inset 0 3px #ffffff65}
#game .burst-button .action-symbol{color:#fff1ad}
#game .burst-button.ready{animation:burst-ready 2.5s ease-in-out infinite}
#game .action-button.cooldown{background:linear-gradient(#445a6b,#253d51);border-color:#718d9c;border-bottom-color:#142634;box-shadow:0 6px #0c1c2b;color:#cee0e9;text-shadow:0 2px #132331}
#game .action-button.cooldown small{color:#b3d4e3}
#game .burst-button.cooldown:before{content:'';position:absolute;bottom:0;left:0;height:5px;width:var(--cooldown);background:#ffb559}
#game .charge-fill{position:absolute;bottom:0;left:0;width:100%;height:var(--charge,0%);background:linear-gradient(#ffdd59,#ff7d22);opacity:0;transition:height .05s}
#game .charging .charge-fill{opacity:.9}
#game .burst-button.charging{border-color:#fff0b1;box-shadow:0 0 40px #ff9b5990,inset 0 0 25px #fff3;animation:charge-rattle .07s linear infinite alternate}
#game .charging b,#game .charging small{color:#fffbe0;text-shadow:0 2px #9d3f12}
#game #tutorial{bottom:357px;left:125px;right:125px;padding:16px 9px}
#game #tutorial small{font-size:17px}
#game .hand{font-size:42px}
#game #toast{bottom:345px}
#game #impact-flash,#game #speed-lines,#game #scene-fade{position:absolute;inset:0;pointer-events:none;opacity:0}
#game #impact-flash{background:radial-gradient(ellipse at 50% 53%,#fff4b815,transparent 48%);box-shadow:inset 0 0 155px #ffd07e}
#game #speed-lines{background:repeating-conic-gradient(from 4deg at 50% 55%,transparent 0deg 12deg,#ffd76cbb 12.2deg 12.6deg,transparent 12.9deg 27deg);mask-image:radial-gradient(ellipse at 50% 55%,transparent 24%,#000 86%);-webkit-mask-image:radial-gradient(ellipse at 50% 55%,transparent 24%,#000 86%)}
#game #scene-fade{background:radial-gradient(ellipse,#214158,#0b1726)}
#game .overlay{background:#0b1625cc}
#game .overlay[data-kind=zone]{background:radial-gradient(ellipse at 50% 42%,#334644bb,#091a2cec 80%)}
#game .overlay[data-kind=upgrade]{background:radial-gradient(ellipse at 50% 45%,#234154ce,#091725e8 75%)}
#game #panel{position:relative}
#game .upgrade-card{animation:card-arrive .55s both cubic-bezier(.16,1,.3,1)}
#game .upgrade-card:nth-child(2){animation-delay:.09s}
#game .upgrade-card:nth-child(3){animation-delay:.18s}
#game .upgrade-card:hover{background:linear-gradient(#315978,#172f46);box-shadow:0 0 30px color-mix(in srgb,var(--accent),transparent 50%)}
#game .upgrade-card:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffffff26 48%,transparent 62%);transform:translateX(-130%);animation:card-sheen .9s .6s both}
#game .zone-clear{position:relative;z-index:1}
#game .zone-clear>svg{filter:drop-shadow(0 0 28px #ffb63188);animation:trophy-arrive .85s cubic-bezier(.2,1.3,.3,1) both}
#game .zone-clear .big-button svg{width:57px;height:57px;margin:0}
#game .zone-clear .big-button{min-height:99px}
#game .zone-clear h1{animation:reward-title .65s both cubic-bezier(.16,1,.3,1)}
#game .reward-rays{position:absolute;width:980px;height:980px;left:50%;top:50%;margin:-490px;pointer-events:none;background:repeating-conic-gradient(#ffd56b10 0deg 12deg,transparent 12deg 30deg);mask-image:radial-gradient(#000,transparent 65%);animation:reward-rays 35s linear infinite}
#game .reward-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
#game .reward-confetti i{position:absolute;top:-30px;left:var(--x);width:10px;height:23px;background:#ffd258;box-shadow:0 0 10px #ffb44355;animation:confetti-fall calc(2s + var(--n)*.043s) calc(var(--n)*.026s) both ease-out}
#game .reward-confetti i:nth-child(3n){background:#7feaff}
#game .reward-confetti i:nth-child(2n){width:15px;height:9px}
#game .garage-row.purchased{animation:purchase-pop .55s ease-out}
#game .garage-row.purchased svg{animation:trophy-arrive .5s ease-out}
#game .result-hero strong{animation:reward-title .7s ease-out}
@keyframes burst-ready{0%,75%,100%{filter:brightness(1)}85%{filter:brightness(1.22)}}
@keyframes charge-rattle{from{transform:translateX(-1px)}to{transform:translateX(1px)}}
@keyframes card-arrive{from{opacity:0;transform:translateY(60px) scale(.84) rotateX(12deg)}to{opacity:1;transform:none}}
@keyframes card-sheen{to{transform:translateX(130%)}}
@keyframes trophy-arrive{0%{opacity:0;transform:scale(.25) rotate(-25deg)}65%{opacity:1;transform:scale(1.12) rotate(6deg)}100%{transform:none}}
@keyframes reward-title{from{opacity:0;transform:scale(1.22)}to{opacity:1;transform:none}}
@keyframes reward-rays{to{transform:rotate(360deg)}}
@keyframes confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0deg)}15%{opacity:1}100%{opacity:0;transform:translateY(1050px) rotate(var(--r))}}
@keyframes purchase-pop{0%,100%{box-shadow:none}25%{border-color:#fff3a4;box-shadow:0 0 30px #ffc34870;background:#5b5334}}
@media(max-height:600px){#game #action-controls{bottom:116px}
#game .action-hint{display:none}
#game .action-button{min-height:132px}
#game #tutorial{bottom:283px}
#game #toast{bottom:278px}}
@media(prefers-reduced-motion:reduce){#game .action-button,#game .upgrade-card,#game .upgrade-card:after,#game .zone-clear>svg,#game .zone-clear h1,#game .reward-rays,#game .reward-confetti i,#game .garage-row.purchased,#game .result-hero strong{animation:none}
#game .reward-confetti{display:none}}
#game #tutorial{bottom:auto;top:356px;left:125px;right:125px}
#game #tutorial .hand{font-size:34px}
#game #tutorial b{font-size:25px}
#game #tutorial small{font-size:16px}
#game #control-dock{position:absolute;top:1000px;left:0;right:0;height:280px;padding:12px 18px 10px;background:linear-gradient(#243b4f,#142434 50%,#101d2e);border-top:4px solid #78a5bc;box-shadow:0 -8px 0 #091722,0 -15px 24px #09172277;pointer-events:auto;z-index:2}
#game #control-dock .integrity{padding:7px 12px;border-radius:10px;font-size:17px;line-height:20px;height:50px}
#game .integrity .meter{margin-top:4px;height:9px}
#game #action-controls{position:relative;inset:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 11px;height:114px}
#game .dock-message{width:205px;height:108px;position:relative;padding:7px 0 0 4px;color:#dfedf8}
#game .dock-message small{font-size:15px;color:#80b6d2}
#game .dock-message strong{display:block;font-size:23px;line-height:1.3;margin-top:7px;position:relative;z-index:1}
#game .dock-message svg{position:absolute;right:1px;bottom:4px;width:53px;height:53px;opacity:.55}
#game .action-button{min-height:0;height:106px;padding:7px 10px;border-radius:20px;border-bottom-width:7px}
#game .jump-button{width:117px;flex-shrink:0}
#game .action-button b{font-size:22px}
#game .action-symbol{font-size:32px;line-height:28px}
#game .action-button small{font-size:14px;margin-top:5px}
#game .burst-button{width:313px;flex-shrink:0;gap:3px}
#game .burst-button b{font-size:24px}
#game .burst-button small{font-size:15px}
#game .burst-button.charging{animation:none}
#game .burst-button.perfect-hit{border-color:#ddffae;background:linear-gradient(#82d756,#3a9849);box-shadow:0 0 25px #8cff8270}
#game #precision-track{position:relative;width:100%;height:25px;background:#341d29;border:2px solid #ffd3a2;border-radius:7px;overflow:hidden;pointer-events:none;margin:1px 0}
#game #precision-track .perfect-window{position:absolute;top:0;bottom:0;left:44.5%;width:11%;background:#63b957;opacity:.65;box-shadow:0 0 0 1px #b9fd89}
#game #precision-track.armed .perfect-window{background:#6afa55;opacity:1;box-shadow:0 0 13px #b6ff73}
#game #precision-cursor{position:absolute;top:0;bottom:0;width:5px;left:8%;background:#fff9dc;transform:translateX(-50%);box-shadow:0 0 8px #fff}
#game #precision-track:not(.live) #precision-cursor{opacity:.55}
#game #precision-track em{position:absolute;right:7px;top:5px;font-size:11px;color:#ffdfb4;font-style:normal}
#game .cooldown #precision-track{opacity:.5}
#game #control-dock #stats{display:flex;margin:0;gap:6px}
#game #control-dock #stats>div{font-size:14px;padding:6px 2px;height:64px}
#game #control-dock #stats strong{font-size:21px;margin-top:4px}
#game #achievement-toast{position:absolute;left:15px;top:70px;width:208px;height:116px;padding:9px;border:2px solid #ffd969;border-bottom:5px solid #906529;border-radius:16px;background:linear-gradient(135deg,#67461d,#302939);box-shadow:0 0 22px #ffc34b44;color:#fff1ad;z-index:5}
#game #achievement-toast svg{float:left;width:33px;height:33px;margin-right:5px}
#game #achievement-toast small{font-size:12px;line-height:1.1;display:block;min-height:29px}
#game #achievement-toast strong{display:block;clear:both;font-size:22px;line-height:1.15;margin-top:8px}
#game #feedback,#game #damage-flash,#game #impact-flash,#game #speed-lines{bottom:auto;height:1000px}
#game #celebration{top:215px}
#game #celebration strong{font-size:42px}
#game #celebration span{font-size:21px}
#game #toast{bottom:292px}
#game #tutorial{top:410px;left:155px;right:155px;padding:12px 7px}
#game #tutorial b{font-size:25px}
#game #tutorial small{font-size:16px}
#game #hazard-alert{position:absolute;top:194px;left:204px;right:158px;text-align:center;border:2px solid #ff9e9b;border-radius:9px;background:#5d153feb;color:#fff0b1;font-size:18px;padding:8px 4px;pointer-events:none;animation:danger-alert .32s alternate infinite}
#game #mega-label{top:258px;font-size:19px}
#game #boosts{top:302px}
#game #combo{top:300px}
#game .splash-nav{display:grid;grid-template-columns:1fr 1fr}
#game .splash-nav button{font-size:25px;padding:12px 4px}
#game .splash-bottom{padding-top:88px}
#game .collection-label{margin:33px 0 20px!important}
#game .collection-progress{height:9px;border:1px solid #68899a;background:#112030;border-radius:8px;margin:13px 0 6px;overflow:hidden}
#game .collection-progress i{display:block;height:100%;background:linear-gradient(90deg,#63bcea,#b9f47d)}
#game .progress-value{font-size:17px;color:#d5e9f5}
#game .equip-button{display:block;width:100%;margin-top:12px;padding:12px 3px;border-radius:10px;border:2px solid #7edaf0;border-bottom:5px solid #153950;background:linear-gradient(#3a8fac,#1c597d);font-size:20px}
#game .trophy-row>div{flex:1}
#game .earned{display:block;font-size:18px;color:#ffdc7b;margin-top:10px}
#game .guide-grid{display:grid;gap:18px}
#game .guide-grid article{display:grid;grid-template-columns:105px 1fr;align-items:center;gap:20px;background:linear-gradient(110deg,#29465a,#173044);border:2px solid #64869c;border-radius:20px;padding:21px 19px}
#game .guide-grid svg{width:94px;height:94px}
#game .guide-grid h2{font-size:27px;color:#ffda7e;margin:0 0 7px}
#game .guide-grid p{font-size:22px;line-height:1.4;margin:0;color:#d0e4ef}
#game .guide-jump{position:relative}
#game .guide-jump b{position:absolute;right:0;top:-18px;font-size:44px;color:#9bf6fa;animation:guide-hop 1s ease-in-out infinite alternate}
#game .guide-timing{position:relative;height:38px;background:#402035;border:3px solid #ffb271;border-radius:10px;overflow:hidden}
#game .guide-timing i{position:absolute;left:44.5%;width:11%;height:100%;background:#79f763}
#game .guide-timing b{position:absolute;width:5px;height:100%;background:#fff;animation:guide-cursor 1.1s ease-in-out infinite alternate}
@keyframes guide-cursor{from{left:4%}to{left:96%}}
@keyframes guide-hop{to{transform:translateY(-12px)}}
@keyframes danger-alert{to{filter:brightness(1.45)}}
@media(max-height:600px){#game #control-dock #stats{display:none}
#game #control-dock .integrity{font-size:24px;height:57px}
#game #action-controls{height:168px;margin-top:14px}
#game .action-button{height:146px}
#game .action-button b{font-size:29px}
#game .action-button small{font-size:22px}
#game .burst-button small{font-size:20px}
#game #precision-track{height:35px;margin:5px 0}
#game .burst-button b{font-size:28px}
#game .dock-message strong{font-size:27px}
#game .dock-message small{font-size:20px}
#game .dock-message{height:125px}
#game #achievement-toast{top:84px;height:154px}
#game #achievement-toast strong{font-size:27px}
#game #achievement-toast small{font-size:17px}
#game .splash-nav button{font-size:29px}
#game .guide-grid article{grid-template-columns:95px 1fr;padding:16px}
#game .guide-grid h2{font-size:29px}
#game .guide-grid p{font-size:26px;line-height:1.25}
#game .collectible p{font-size:23px}
#game .progress-value{font-size:22px}
#game .equip-button{font-size:27px}
#game .trophy-row p{font-size:25px}}
@media(prefers-reduced-motion:reduce){#game .guide-jump b,#game .guide-timing b,#game #hazard-alert{animation:none}}
#game #celebration{top:31px;left:309px;right:182px}
#game #celebration strong{font-size:28px;line-height:1.15}
#game #celebration span{font-size:18px;line-height:1.3;margin-top:9px;padding:7px 6px;max-width:100%}
#game #mega-label{top:247px}
#game #hud{z-index:1}
#game #feedback{z-index:2}
#game #celebration,#game #hazard-alert,#game #damage-flash,#game #impact-flash,#game #speed-lines{z-index:3}
#game #scene-fade{z-index:4}
#game #splash,#game #overlay{z-index:10}
/* ===== MAPI GAMES additions ===== */
#game .back-gap{margin-top:26px}
/* splash */
#game #splash{z-index:20;background:#05080d;overflow:hidden;cursor:pointer}
#game #splash .splash-art{position:absolute;inset:0;width:720px;height:1280px;object-fit:cover;object-position:50% 35%;animation:splashZoom 14s ease-in-out infinite alternate}
#game #splash:after{content:'';position:absolute;left:0;right:0;bottom:0;height:460px;background:linear-gradient(transparent,#05080dcc 55%,#05080df2);pointer-events:none}
#game #splash .tap-panel{position:absolute;z-index:2;left:80px;right:80px;bottom:235px;padding:28px 10px 26px;border-radius:30px;background:rgba(10,16,28,.62);border:3px solid rgba(255,206,110,.75);box-shadow:0 0 34px rgba(255,150,40,.35),inset 0 0 24px rgba(255,170,60,.18);text-align:center;font-size:40px;letter-spacing:1px;color:#ffe39a;text-shadow:0 3px 0 #5b2a00,0 0 18px #ff9a2a;opacity:0;transition:opacity .3s}
#game #splash.ready .tap-panel{opacity:1;animation:tapPulse .95s ease-in-out infinite alternate}
#game #splash.leaving .tap-panel{animation:none;opacity:0}
#game #splash .mapi{position:absolute;z-index:2;left:50%;bottom:48px;width:260px;height:auto;max-height:none;margin:0;transform:translateX(-50%);filter:drop-shadow(0 6px 10px #000c)}
#game #splash #loading{z-index:3;bottom:258px;background:none;color:#ffe39a;font-size:28px;text-shadow:0 2px 0 #000}
@keyframes tapPulse{from{opacity:1}to{opacity:.22}}
@keyframes splashZoom{from{transform:scale(1)}to{transform:scale(1.06)}}
/* main menu over the live 3D arena */
#game .overlay[data-kind=main]{background:linear-gradient(#060d17e6,#0a162433 34%,#0a162444 58%,#060d17f0);backdrop-filter:none;align-items:flex-start;padding-top:30px}
#game .overlay[data-kind=main] #panel{overflow:visible}
#game .menu-logo{text-align:center;margin:6px 0 18px;line-height:.86;user-select:none}
#game .menu-logo .l1,#game .menu-logo .l2{display:block;font-size:152px;letter-spacing:-3px;-webkit-text-stroke:5px #151a21;paint-order:stroke fill}
#game .menu-logo .l1{background:linear-gradient(#ffffff,#b8c1ca 48%,#6b747e 52%,#a9b2bb);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 0 #151a21) drop-shadow(0 16px 18px #000c)}
#game .menu-logo .l2{background:linear-gradient(#ffe36a,#ff9a1f 50%,#e0560d 54%,#ff8a1a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 0 #2a1205) drop-shadow(0 16px 20px #000c) drop-shadow(0 0 22px #ff7a1a66)}
#game .menu-logo .l2 b{display:inline-block;width:112px;height:112px;margin:0 2px;border-radius:50%;vertical-align:-4px;background:radial-gradient(circle,#fffbd0 0,#ffd23a 18%,#ff8a12 34%,#a33a06 46%,#3a3f47 50%,#59616b 66%,#2a2f36 70%);border:7px solid #151a21;box-shadow:0 0 40px #ff9a2acc,inset 0 0 18px #000a;animation:coreGlow 1.6s ease-in-out infinite alternate}
#game .menu-logo em{display:block;font-style:normal;font-size:22px;letter-spacing:6px;color:#ffe2a1;margin-top:18px;text-shadow:0 2px 0 #000,0 0 12px #000}
@keyframes coreGlow{from{box-shadow:0 0 22px #ff9a2a88,inset 0 0 18px #000a}to{box-shadow:0 0 60px #ffb84aff,inset 0 0 10px #0006}}
#game .menu-best{display:flex;justify-content:center;gap:12px;margin:0 0 22px;font-size:19px;color:#cfe3ef}
#game .menu-best span{background:#0b1726d9;border:2px solid #4a6a82;border-radius:12px;padding:9px 14px;display:flex;align-items:center;gap:8px}
#game .menu-best b{color:#ffd56a}
#game .menu-best .scrap-dot{transform:skewY(-12deg) rotate(-10deg) scale(.8)}
#game .big-button.huge{font-size:50px;padding:28px 18px;border-width:4px;border-bottom-width:12px}
#game .big-button.huge svg{width:70px;height:70px}
#game .menu-mapi{display:block;width:210px;height:auto;margin:30px auto 0;filter:drop-shadow(0 5px 8px #000c)}
/* keyboard / joypad selection: yellow */
#game.kbd button.kb-sel{outline:6px solid #ffe14d!important;outline-offset:4px;box-shadow:0 0 0 3px #1a1400,0 0 38px #ffd84dcc!important;filter:brightness(1.18)}
#game .key-hint{display:none;position:absolute;top:10px;left:12px;width:34px;height:34px;line-height:30px;border-radius:8px;border:2px solid #ffffff99;background:#0009;font-size:20px;color:#fff}
#game.desk-ui .key-hint{display:block}
/* touch controls only on touch devices; on PC the dock shows gauges, not buttons */
#game.desk-ui .t-touch,#game.touch-ui .t-desk{display:none!important}
#game.desk-ui .action-button{pointer-events:none!important;background:linear-gradient(#182b3c,#0e1b29)!important;border:2px solid #4d6c84!important;border-bottom-width:2px!important;border-radius:16px!important;box-shadow:inset 0 0 18px #0008!important;color:#d8ecf7;text-shadow:none!important;animation:none!important}
#game.desk-ui .action-button .action-symbol{color:#8fdcff}
#game.desk-ui .burst-button b{color:#ffb39a}
#game.desk-ui .burst-button.charging{border-color:#ffd56a!important;box-shadow:0 0 22px #ff9b4a88,inset 0 0 18px #0008!important}
#game.desk-ui .action-button.cooldown{opacity:.75}
#game.desk-ui .action-button small{font-size:13px;color:#ffe08a}
#game #joystick{pointer-events:none}
/* score + celebration at the top, never over the core */
#game .score-panel{position:absolute;top:24px;left:310px;width:220px;padding:9px 6px 8px;text-align:center;background:linear-gradient(#172b3ef0,#122233e6);border:2px solid #54738a;border-radius:16px;box-shadow:0 6px 0 #07121b88}
#game .score-panel small{display:block;font-size:15px;letter-spacing:3px;color:#9fc4da}
#game .score-panel b{display:block;font-size:34px;color:#fff3c4;text-shadow:0 3px 0 #3b2a10}
#game #celebration{top:112px;left:300px;right:178px}
#game #celebration strong{font-size:31px;color:#ffd84a;text-shadow:0 0 16px #ff8a1a,3px 4px 0 #162633,-2px -2px 0 #162633}
/* run stats bar with level pips */
#game #control-dock #stats{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:0}
#game #control-dock #stats .stat{height:66px;padding:5px 6px;display:grid;grid-template-columns:26px 1fr;grid-template-rows:26px 1fr;column-gap:4px;align-items:center;text-align:left;background:linear-gradient(#0f2032f2,#09141ff2);border:2px solid color-mix(in srgb,var(--c),#0a1520 55%);border-radius:11px;color:#d7e8f2;font-size:12px}
#game #stats .stat-icon{grid-row:1;grid-column:1;width:26px;height:26px}
#game #stats .stat-icon svg{width:26px;height:26px}
#game #stats .stat-name{grid-row:1;grid-column:2;font-size:12px;color:var(--c);letter-spacing:.3px;white-space:nowrap;overflow:hidden}
#game #stats .pips{grid-row:2;grid-column:1/3;display:flex;gap:3px;align-items:center;padding-right:44px;position:relative}
#game #stats .pips i{flex:1;height:10px;border-radius:2px;background:#22313f;box-shadow:inset 0 0 0 1px #0007}
#game #stats .pips i.on{background:var(--c);box-shadow:0 0 6px var(--c)}
#game #control-dock #stats .stat strong{position:absolute;right:6px;bottom:5px;margin:0;font-size:14px;color:#fff}
#game #control-dock #stats .stat{position:relative}
/* upgrade choice: bottom panel over the frozen arena */
#game .overlay[data-kind=upgrade]{align-items:flex-end;padding:0 16px 300px;background:linear-gradient(#07101b00 25%,#07101bb3 62%,#07101be6);backdrop-filter:none}
#game .overlay[data-kind=upgrade] #panel{background:linear-gradient(#173049f4,#0d1b2cf4);border:3px solid #3f8fc0;border-radius:28px;padding:16px 14px 20px;box-shadow:0 0 0 4px #06101a,0 20px 60px #000c,inset 0 0 40px #4fb7ff22;max-height:none;overflow:visible}
#game .upgrade-head{text-align:center}
#game .upgrade-head .eyebrow{margin:0 0 4px}
#game .upgrade-head h1{font-size:46px!important;color:#7fe2ff!important;text-shadow:0 0 18px #3ab8ff,0 4px 0 #0b2a44!important;margin:0!important}
#game .overlay[data-kind=upgrade] .cards{margin:14px 0 0}
#game .overlay[data-kind=upgrade] .upgrade-card{min-height:318px;padding-top:24px}
#game .overlay[data-kind=upgrade] .upgrade-card svg{width:104px;height:104px;margin:2px auto 14px}
/* frenzy */
#game.frenzy #vignette{box-shadow:inset 0 0 170px #ff2fd0b0;animation:frenzyPulse .35s ease-in-out infinite alternate}
#game.frenzy .dock-message strong{color:#ff7ae6;text-shadow:0 0 12px #ff2fd0}
@keyframes frenzyPulse{from{opacity:.65}to{opacity:1}}
/* rotate notice (portrait game) */
#game #rotate{position:absolute;inset:0;z-index:60;background:#070d16f7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:#ffe39a;font-size:44px;text-align:center}
#game #rotate span{font-size:24px;color:#bcd6e6}
#game #rotate .phone{width:120px;height:200px;border:8px solid #ffe39a;border-radius:22px;animation:rot 1.6s ease-in-out infinite}
@keyframes rot{0%,30%{transform:rotate(90deg)}60%,100%{transform:rotate(0)}}
#game .float{font-size:32px}

#game .callout{position:absolute;left:360px;transform:translateX(-50%);white-space:nowrap;font-size:34px;letter-spacing:1px;text-shadow:0 0 14px currentColor,3px 4px 0 #0d1a24,-2px -2px 0 #0d1a24;pointer-events:none;display:none;z-index:3}
