:root{--concrete: #2b2b2e;--concrete-light: #3d3d42;--void: #0d0d0f;--neon: #00f5c8;--neon-dim: #00a88a;--danger: #ff3d5c;--text: #e8e6e3;--font-display: "Archivo Black", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--void);color:var(--text);font-family:var(--font-mono);-webkit-tap-highlight-color:transparent;touch-action:manipulation;overflow:hidden}button{font-family:var(--font-display);cursor:pointer;border:3px solid var(--text);background:var(--concrete);color:var(--text);text-transform:uppercase;letter-spacing:.06em;padding:.75rem 1.25rem;transition:transform .08s ease,box-shadow .08s ease,color .15s ease}button:active{transform:translate(2px,2px)}button:focus-visible{outline:2px solid var(--neon);outline-offset:3px}button.primary{border-color:var(--neon);color:var(--void);background:var(--neon);box-shadow:4px 4px 0 var(--concrete-light)}button.ghost{background:transparent;border-color:var(--concrete-light)}a{color:var(--neon)}.app-root{display:flex;flex-direction:column;height:100%}.top-bar{flex-shrink:0;padding:.55rem max(.85rem,env(safe-area-inset-right)) .55rem max(.85rem,env(safe-area-inset-left));border-bottom:2px solid var(--concrete-light);background:var(--concrete)}.top-bar-inner{width:min(100%,1000px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:.8rem}.top-bar nav{display:flex;align-items:center;gap:.9rem;margin-left:auto}.top-bar nav a{text-decoration:none;font-family:var(--font-display);font-size:.8rem;letter-spacing:.03em}.brand{font-family:var(--font-display);font-size:1rem;letter-spacing:.04em;color:var(--text);text-decoration:none}.main{flex:1;min-height:0;position:relative}.page{height:100%;overflow:auto;width:min(100%,1000px);margin:0 auto;padding:1rem max(1rem,env(safe-area-inset-right)) 1.25rem max(1rem,env(safe-area-inset-left));padding-bottom:max(1.25rem,env(safe-area-inset-bottom))}.page h1{font-family:var(--font-display);font-size:clamp(1.35rem,4vw,1.75rem);margin:0 0 1rem;letter-spacing:.02em}@media(max-width:520px){.top-bar-inner{gap:.55rem}.brand{font-size:.9rem}.top-bar nav a{font-size:.72rem}.page{padding:.75rem max(.75rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.page h1{line-height:1.15}}.landing-page{display:grid;gap:1rem;background:linear-gradient(180deg,#0a0a0f,#050508)}.hero-shell{display:grid;grid-template-columns:.92fr .9fr .98fr;gap:1rem;border:1px solid rgba(232,230,227,.14);border-radius:14px;background:#0a0c10d1;box-shadow:0 20px 44px #00000057,inset 0 0 28px #00f5c80a;padding:1rem 1rem 1.05rem;position:relative;overflow:hidden}.hero-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 12% 10%,rgba(0,245,200,.12),transparent 36%)}.hero-shell:after{content:"";position:absolute;top:.45rem;right:.45rem;bottom:.45rem;left:.45rem;border:1px solid rgba(90,214,255,.22);border-radius:10px;pointer-events:none}.landing-account{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:space-between;gap:.45rem;padding:.3rem .4rem;width:100%;max-width:100%;border-radius:10px;border:1px solid rgba(232,230,227,.17);background:#080b0fc2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:hidden}.landing-account-info{min-width:0;display:inline-flex;flex-direction:column;gap:.08rem}.landing-account-user{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing-account-meta{color:#e8e6e3cc;font-size:.62rem;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;min-height:18rem;padding:1.25rem .15rem .45rem}.hero-kicker{margin:0;color:var(--neon-dim);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}.landing-page h1{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.2rem);margin:.35rem 0 .6rem;letter-spacing:.03em;color:var(--text);text-shadow:0 0 20px rgba(0,245,200,.25)}.hero-description{margin:0;max-width:36ch;line-height:1.5;color:#e8e6e3e6}.landing-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.1rem;align-items:center}.landing-actions .primary,.landing-actions .ghost{min-height:44px;padding:.65rem 1.1rem;font-size:clamp(.75rem,2.5vw,.9rem);border-radius:9px}.play-cta{box-shadow:0 0 18px #00f5c880,0 10px 24px #00000059!important;transition:transform .16s ease,box-shadow .2s ease}.play-cta:hover{transform:translateY(-1px) scale(1.04);box-shadow:0 0 26px #00f5c8a3,0 14px 28px #0006!important}.hero-preview{position:relative;z-index:1;min-height:18rem;display:flex;align-items:stretch}.hero-preview-frame{width:100%;border:1px solid rgba(0,245,200,.28);border-radius:12px;background:linear-gradient(165deg,#0a1219f5,#070b10f2),repeating-linear-gradient(115deg,rgba(83,103,129,.1) 0,rgba(83,103,129,.1) 2px,transparent 2px,transparent 14px);position:relative;overflow:hidden;box-shadow:inset 0 0 30px #00f5c81a,inset 0 -48px 80px #00000047}.hero-preview-float{position:absolute;background:#cbd9e438;border:1px solid rgba(213,227,236,.25);box-shadow:0 10px 22px #00000059}.hero-preview-float--a{width:56px;height:56px;top:12%;left:8%}.hero-preview-float--b{width:42px;height:42px;top:28%;right:12%}.hero-preview-float--c{width:46px;height:46px;top:42%;left:22%}.hero-sprite{position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none}.hero-sprite--enemy1{width:clamp(5.5rem,24%,7rem);top:13%;left:9%;transform:rotate(-10deg)}.hero-sprite--enemy2{width:clamp(5rem,22%,6.4rem);top:26%;right:11%;transform:rotate(9deg)}.hero-sprite--bonus{width:clamp(4.2rem,18%,5.6rem);top:40%;right:22%;transform:rotate(-7deg);filter:drop-shadow(0 0 16px rgba(0,245,200,.28))}.hero-sprite--player{width:clamp(6.4rem,30%,8.2rem);bottom:10%;left:50%;transform:translate(-50%);filter:drop-shadow(0 10px 24px rgba(0,0,0,.5))}.hero-preview-caption{position:absolute;left:.7rem;bottom:.65rem;font-size:.68rem;letter-spacing:.12em;color:#e8e6e3b3;text-transform:uppercase}.hero-preview-meter{position:absolute;right:.55rem;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font-size:.62rem;letter-spacing:.08em;color:#00f5c8d9;text-transform:uppercase;padding:.3rem .2rem;border:1px solid rgba(0,245,200,.35);border-radius:7px;background:#080c11a6}.landing-error{color:var(--danger);margin:.7rem 0 0;font-size:.84rem;max-width:50ch;line-height:1.4}.leaderboard-card{position:relative;z-index:1;border:1px solid rgba(232,230,227,.14);border-radius:12px;background:linear-gradient(180deg,#0c1219e0,#080c11e0);box-shadow:0 18px 38px #00000047;padding:.7rem;display:flex;flex-direction:column;min-height:18rem}.leaderboard-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.55rem;margin-top:.55rem;padding:0 .3rem}.leaderboard-header h2{margin:0;font-family:var(--font-display);font-size:1rem;letter-spacing:.04em}.leaderboard-header span{color:var(--neon-dim);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.score-preview{list-style:none;padding:0;margin:0;flex:1;border:1px solid rgba(61,61,66,.9);border-radius:10px;overflow:hidden;background:#090b0fe0}.score-preview li{display:flex;align-items:center;justify-content:space-between;padding:.58rem .75rem;border-bottom:1px solid rgba(61,61,66,.9);font-size:.85rem}.score-preview li:last-child{border-bottom:none}.leader-medal{width:2.05rem;text-align:center;flex-shrink:0;font-size:.95rem}.leader-row--rank-1 .leader-medal{filter:drop-shadow(0 0 6px rgba(255,215,90,.45))}.leader-row--rank-2 .leader-medal{filter:drop-shadow(0 0 6px rgba(198,209,220,.45))}.leader-row--rank-3 .leader-medal{filter:drop-shadow(0 0 6px rgba(209,136,80,.45))}.leader-apy{color:var(--neon);font-family:var(--font-display);letter-spacing:.03em}@media(max-width:1180px){.hero-shell{grid-template-columns:1fr 1fr}.leaderboard-card{grid-column:1 / -1;min-height:0}}@media(max-width:860px){.hero-shell{grid-template-columns:1fr;gap:.75rem;padding-top:3.35rem}.hero-copy,.hero-preview{min-height:12.5rem}}@media(max-width:520px){.landing-actions{flex-direction:column;align-items:stretch}.landing-actions a,.landing-actions button{width:100%;text-align:center}.landing-account{max-width:none}.landing-account-meta{display:none}}.play-shell{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--void);padding-bottom:env(safe-area-inset-bottom);isolation:isolate}.play-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(0,245,200,.08),transparent 45%),linear-gradient(to bottom,rgba(255,255,255,.02),transparent 16%)}.play-shell .phaser-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.hud-stack{position:absolute;top:max(.45rem,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:.45rem;max-width:min(22rem,92vw);pointer-events:none}.play-shell .hud{display:flex;gap:clamp(.75rem,3vw,1.25rem);font-family:var(--font-display);font-size:clamp(.78rem,2.8vw,.95rem);color:var(--neon);text-shadow:0 0 12px rgba(0,245,200,.35);background:#070a0e9e;border:1px solid rgba(0,245,200,.28);border-radius:999px;padding:.35rem .85rem;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 10px 24px #00000047,inset 0 0 24px #00f5c814}.shield-hud{width:100%;max-width:11rem;display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.58rem;color:#e8e6e3d9;background:#070a0e9e;border:1px solid rgba(0,168,138,.42);border-radius:999px;padding:.28rem .5rem;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.shield-hud-label{flex-shrink:0;color:var(--neon-dim);text-transform:uppercase;letter-spacing:.08em}.shield-hud-label--danger{color:#ff6a79}.shield-hud-track{flex:1;height:6px;border-radius:3px;background:#3d3d42e6;border:1px solid var(--concrete-light);overflow:hidden}.shield-hud-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#ff7b6b,#ff3d5c);transition:width .08s linear}.play-shell .hud span{color:var(--text);font-family:var(--font-mono);font-size:.8rem}.play-auth-status{position:absolute;top:max(.45rem,env(safe-area-inset-top));left:max(.45rem,env(safe-area-inset-left));z-index:4;max-width:min(14rem,46vw);display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border:1px solid rgba(232,230,227,.2);border-radius:10px;background:#090b0ec7;font-family:var(--font-mono);font-size:.62rem;line-height:1.25;pointer-events:auto;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 10px 24px #00000052}.play-auth-status.play-auth-status--ok{border-color:var(--neon-dim)}.play-auth-status.play-auth-status--warn{border-color:#ff3d5c8c}.play-auth-status .play-auth-dot{width:.45rem;height:.45rem;border-radius:50%;flex-shrink:0;background:var(--concrete-light)}.play-auth-status.play-auth-status--ok .play-auth-dot{background:var(--neon);box-shadow:0 0 6px #00f5c873}.play-auth-status.play-auth-status--warn .play-auth-dot{background:var(--danger)}.play-auth-status .play-auth-avatar{width:20px;height:20px;border-radius:2px;object-fit:cover;flex-shrink:0;border:1px solid var(--concrete-light)}.play-auth-status a{color:var(--neon);text-decoration:underline;text-underline-offset:2px}.play-auth-meta{flex-basis:100%;color:#e8e6e3bf;font-size:.58rem;line-height:1.2}.play-controls{position:absolute;top:max(2.5rem,calc(env(safe-area-inset-top) + 1.75rem));right:max(.45rem,env(safe-area-inset-right));z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;max-width:46%}.play-control-btn{font-size:clamp(.62rem,2.2vw,.72rem)!important;padding:.45rem .6rem!important;min-height:40px;min-width:72px;border-radius:8px;background:#0b0f14c7!important;border-color:#e8e6e33d!important;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 8px 18px #0000004d}@media(pointer:coarse){button{min-height:44px}.tabs button{min-height:44px;padding:.5rem .75rem}}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:.25rem}.modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#080a0db8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);padding:1rem}.modal-inner{max-width:min(22rem,calc(100vw - 1.5rem));width:100%;border:1px solid rgba(0,245,200,.35);border-radius:14px;padding:1.25rem max(1rem,env(safe-area-inset-right)) 1.25rem max(1rem,env(safe-area-inset-left));background:linear-gradient(180deg,#151b23f5,#0e1218f2);box-shadow:0 24px 60px #00000073,inset 0 0 22px #00f5c80f}.modal-inner h2{font-family:var(--font-display);margin:0 0 .75rem;font-size:1.3rem;letter-spacing:.02em}.modal-inner--gameover{border-color:#00f5c873;background:radial-gradient(circle at 16% 14%,rgba(0,245,200,.14),transparent 42%),linear-gradient(180deg,#111822f5,#0b1018f2)}.gameover-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.55rem}.gameover-coin{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.42))}.gameover-kicker{margin:0 0 .12rem;color:var(--neon-dim);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem}.gameover-stats{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.35rem 0 .55rem}.gameover-stat{border:1px solid rgba(232,230,227,.18);border-radius:10px;padding:.45rem .55rem;background:#080b0f99}.gameover-stat span{display:block;font-size:.67rem;color:#e8e6e3c7;text-transform:uppercase;letter-spacing:.09em}.gameover-stat strong{display:block;font-family:var(--font-display);font-size:1.08rem;color:var(--text);margin-top:.18rem}.gameover-rank{margin:.35rem 0 .2rem;font-size:.84rem;color:var(--neon)}.gameover-error{margin:.45rem 0 0;color:#ff536f;font-size:.82rem;line-height:1.35}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.modal-actions .primary,.modal-actions .ghost{border-radius:8px;min-height:42px}@media(max-width:520px){.gameover-stats{grid-template-columns:1fr}}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tabs button{font-size:.75rem;padding:.45rem .65rem}.tabs button.active{border-color:var(--neon);color:var(--neon)}.leaderboard-page{max-width:1000px;margin:0 auto}.leaderboard-subtitle{opacity:.82;font-size:.84rem;margin:.1rem 0 .9rem}.leaderboard-tabs{margin-bottom:.9rem}.leaderboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:.9rem;align-items:start}.leaderboard-main{border:1px solid rgba(232,230,227,.16);border-radius:12px;background:linear-gradient(180deg,#0e141ce6,#0a0e14e0);box-shadow:0 16px 32px #0000004d;padding:.6rem}.leaderboard-error{color:var(--danger);font-size:.84rem;margin:0 0 .8rem;line-height:1.4;max-width:46rem}table.lb{width:100%;border-collapse:collapse;font-size:.8rem}table.lb th,table.lb td{text-align:left;padding:.45rem .35rem;border-bottom:1px solid var(--concrete-light)}table.lb th{color:var(--neon-dim);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.67rem}table.lb tbody tr:nth-child(odd){background:#ffffff03}table.lb td:last-child{width:92px}.trend{font-family:var(--font-mono);font-size:.74rem}.trend--up{color:#10b981}.trend--down{color:#ef4444}.trend--flat{color:#e8e6e38c}.my-standing-card{position:sticky;top:max(.65rem,env(safe-area-inset-top));border:1px solid rgba(0,245,200,.34);border-radius:12px;background:radial-gradient(circle at 14% 16%,rgba(0,245,200,.12),transparent 44%),linear-gradient(180deg,#111720f2,#0d121af2);box-shadow:0 18px 36px #00000052,inset 0 0 24px #00f5c80f;padding:.8rem .75rem}.my-standing-card h2{margin:0 0 .7rem;font-size:.95rem;font-family:var(--font-display);letter-spacing:.04em}.my-standing-row{border:1px solid rgba(232,230,227,.14);border-radius:10px;background:#080c11a3;padding:.52rem .56rem;margin-bottom:.45rem}.my-standing-row:last-child{margin-bottom:0}.my-standing-row span{display:block;font-size:.68rem;color:#e8e6e3bd;text-transform:uppercase;letter-spacing:.08em}.my-standing-row strong{display:block;margin-top:.18rem;font-size:1rem;letter-spacing:.02em}.avatar{width:28px;height:28px;border-radius:2px;object-fit:cover;vertical-align:middle;margin-right:.35rem;border:1px solid var(--concrete-light)}@media(max-width:900px){.leaderboard-layout{grid-template-columns:1fr}.my-standing-card{position:static}}
