:root{color-scheme:dark;--bg:#11142b;--card:#20264c;--text:#f5f7ff;--accent:#65e5ff}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--tg-theme-bg-color,var(--bg));color:var(--tg-theme-text-color,var(--text));font-family:system-ui,-apple-system,"Noto Sans SC",sans-serif;touch-action:none;user-select:none}body{display:flex;justify-content:center}#app{position:relative;width:min(100vw,520px);height:100dvh;overflow:hidden;background:linear-gradient(#11142b,#080b1c)}canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hud{position:absolute;z-index:2;top:max(8px,env(safe-area-inset-top));left:10px;right:10px;display:flex;justify-content:space-between;pointer-events:none}.hud div{min-width:29%;padding:7px 12px;text-align:center;border:1px solid #ffffff24;border-radius:13px;background:#090d21bb;backdrop-filter:blur(5px)}.hud small,.hud strong{display:block}.hud small{font-size:.72rem;opacity:.75}.hud strong{font-size:1.18rem;color:var(--accent)}#effects{position:absolute;z-index:2;top:76px;left:0;right:0;text-align:center;font-size:.82rem;pointer-events:none}.account{position:absolute;z-index:5;top:98px;left:10px;right:10px;max-height:118px;overflow:hidden;padding:8px 10px;border:1px solid #ffffff24;border-radius:13px;background:#090d21d9;font-size:.75rem}.account>div:first-child{display:flex;justify-content:space-between;color:var(--accent)}.competition-banner{margin-top:5px;padding:4px 7px;border-radius:7px;background:#65e5ff1c;color:#fff3a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-panels{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:5px}.mini-panels section{min-width:0}.mini-panels span,.mini-panels b{display:block}.mini-panels ol{margin:2px 0 0;padding-left:20px;max-height:45px;overflow:auto}.mini-panels li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overlay{position:absolute;z-index:4;inset:0;display:grid;place-items:start center;padding:190px 20px 20px;overflow-y:auto;background:#050819aa;backdrop-filter:blur(8px)}.overlay.hidden{display:none}.panel{width:min(100%,390px);padding:24px;border:1px solid #fff3;border-radius:24px;background:var(--tg-theme-secondary-bg-color,#20264cee);box-shadow:0 20px 70px #0008}.panel h1{margin:0 0 8px;text-align:center}.panel p{line-height:1.5}.player-name{text-align:center;margin:0;color:var(--accent);font-weight:700}.panel ul{padding-left:22px;line-height:1.8;color:#d8ddff}button{width:100%;padding:15px;border:0;border-radius:14px;background:var(--tg-theme-button-color,#35c9e8);color:var(--tg-theme-button-text-color,#07111b);font-size:1.05rem;font-weight:800;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:active:not(:disabled){transform:scale(.98)}button.small{width:auto;margin-top:3px;padding:4px 8px;border-radius:7px;font-size:.7rem}.hidden{display:none!important}@media(max-height:650px){.account{top:72px}.overlay{padding-top:170px}.panel{padding:15px}.panel ul{margin-block:5px}}@media(min-width:521px){#app{border-inline:1px solid #ffffff18}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Unified in-play focus mode */
#app.is-playing .account,#app.is-playing [data-player-state],#app.is-playing [data-settlement]{display:none!important}
#app.is-playing .hud{top:max(6px,env(safe-area-inset-top))}
#app.is-playing #effects{top:72px}
#app.is-playing canvas{filter:saturate(1.08) contrast(1.03)}

/* Moment-to-moment feedback */
#app.impact-hit .game-wrap{animation:collectorImpact .32s ease-out}
#app.impact-blocked .game-wrap{animation:collectorBlock .28s ease-out}
@keyframes collectorImpact{0%,100%{transform:translateX(0);filter:none}20%{transform:translateX(-4px);filter:saturate(1.35)}45%{transform:translateX(4px)}70%{transform:translateX(-2px)}}
@keyframes collectorBlock{0%,100%{filter:none}45%{filter:brightness(1.25) drop-shadow(0 0 10px #64e8ff)}}
@media(prefers-reduced-motion:reduce){#app.impact-hit .game-wrap,#app.impact-blocked .game-wrap{animation:none}}
