:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#101418;color:#f4f7fb;--theme-accent: #ff8f6b;--theme-accent-soft: rgba(255, 143, 107, .18);--theme-accent-strong: rgba(255, 143, 107, .38);--theme-accent-alt: #7de0a6;--theme-accent-alt-soft: rgba(125, 224, 166, .18);--theme-glow-a: rgba(255, 143, 107, .22);--theme-glow-b: rgba(125, 224, 166, .16);--theme-surface-top: #221a1d;--theme-surface-bottom: #11171d;--theme-panel-top: #191d20;--theme-panel-bottom: #12171c;--theme-topbar-sheen: rgba(255, 143, 107, .09);--theme-border: #31404c;--theme-banner-image: url(/art/backgrounds/board-bg-gpt.png)}html{height:100%}*{box-sizing:border-box}body{margin:0;height:100%;min-width:320px;overflow:hidden}button,select,input{font:inherit}button{min-width:44px;height:40px;border:1px solid var(--theme-border);border-radius:6px;background:#182027f5;color:#f4f7fb;cursor:pointer;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}button:hover{background:#1f2b34fa;border-color:var(--theme-accent-strong);box-shadow:0 0 0 1px var(--theme-accent-soft)}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.52}#app{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 16% 12%,var(--theme-glow-a),transparent 30%),radial-gradient(circle at 84% 4%,var(--theme-glow-b),transparent 22%),linear-gradient(140deg,#1a252ff5,#101418f5),#101418}.topbar{min-height:64px;padding:12px max(16px,env(safe-area-inset-left)) 10px max(16px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--theme-border);background:linear-gradient(90deg,var(--theme-topbar-sheen),transparent 45%),linear-gradient(180deg,rgba(255,255,255,.02),transparent)}.brand{display:grid;gap:3px;min-width:0}.brand strong{font-size:18px}.brand span{color:#9db0c0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar{display:flex;gap:8px;flex:0 0 auto}.game-layout{flex:1;min-height:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 272px}.playfield{min-height:0;min-width:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 24% 16%,var(--theme-glow-a),transparent 32%),radial-gradient(circle at 82% 12%,var(--theme-glow-b),transparent 24%),linear-gradient(180deg,var(--theme-surface-top) 0%,var(--theme-surface-bottom) 100%)}#game-canvas{width:100%;height:100%;min-width:0;overflow:hidden}#game-canvas canvas{display:block;width:100%!important;height:100%!important;max-width:100%;touch-action:none}.side-panel{min-width:0;min-height:0;padding:18px 16px;display:grid;align-content:start;gap:14px;overflow:auto;border-left:1px solid var(--theme-border);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 28%),linear-gradient(180deg,var(--theme-panel-top),var(--theme-panel-bottom))}.stage-hero{display:grid;align-content:end;gap:10px;min-height:118px;padding:16px 14px;border-bottom:1px solid var(--theme-border);background:linear-gradient(135deg,#070a0d2e,#070a0dad),linear-gradient(120deg,var(--theme-accent-soft),transparent 56%),linear-gradient(220deg,var(--theme-accent-alt-soft),transparent 48%),var(--theme-banner-image) center / cover no-repeat}.stage-chip-row{display:flex;flex-wrap:wrap;gap:8px}.stage-chip{min-height:28px;padding:0 10px;display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#080c0f8a;color:#f4f7fb;font-size:12px;font-weight:700;letter-spacing:0}.stage-chip-goal{border-color:var(--theme-accent-strong);color:var(--theme-accent)}.stage-chip-metric{border-color:#ffffff2e;color:var(--theme-accent-alt)}.stage-strategy-tip{max-width:100%;margin:0;padding:9px 10px;border-left:3px solid var(--theme-accent);border-radius:6px;background:#080c0f94;color:#dce8f2;font-size:13px;font-weight:600;line-height:1.35}.metric{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--theme-border)}.metric span,.stage-picker span,.auto-speed span{color:#9db0c0;font-size:13px}.metric strong{font-size:26px;color:var(--theme-accent-alt)}.campaign-panel{display:grid;gap:10px;padding:2px 0 12px;border-bottom:1px solid var(--theme-border)}.campaign-route-panel{display:grid;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--theme-border)}.campaign-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.campaign-heading strong{font-size:14px}.campaign-heading span,.campaign-stage-detail{color:#9db0c0;font-size:12px}.campaign-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.campaign-stat{min-height:52px;display:grid;align-content:center;gap:2px;padding:8px;border:1px solid var(--theme-border);border-radius:6px;background:#18232cc7}.campaign-stat span{color:#9db0c0;font-size:11px}.campaign-stat strong{color:#f4f7fb;font-size:18px}.campaign-meter{height:8px;border-radius:999px;overflow:hidden;background:#ffffff14}.campaign-meter-fill{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--theme-accent),var(--theme-accent-alt));box-shadow:0 0 14px var(--theme-accent-soft)}.campaign-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.campaign-node{min-width:0;min-height:72px;height:auto;padding:8px 7px;display:grid;align-content:center;justify-items:start;gap:3px;text-align:left;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 42%),#182027f5}.campaign-node-index{font-size:18px;color:#f4f7fb}.campaign-node-status,.campaign-node-meta{display:block;width:100%;font-size:11px;color:#9db0c0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaign-node.is-current{border-color:var(--theme-accent-strong);box-shadow:0 0 0 1px var(--theme-accent-soft),inset 0 0 0 1px #ffffff0a}.campaign-node.is-cleared .campaign-node-status{color:var(--theme-accent-alt)}.campaign-node.is-locked{opacity:.56}.result-panel{display:grid;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--theme-border)}.result-panel[hidden]{display:none}.result-title{font-size:18px;font-weight:700;color:#f4f7fb}.result-summary,.result-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.result-spend-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.result-spend-actions[hidden]{display:none}.result-spend-actions button{font-size:12px;padding:6px 8px;border-radius:8px;border:1px solid var(--theme-border);background:#ffffff0a;color:#f4f7fb;cursor:pointer}.result-spend-actions button:disabled{opacity:.45;cursor:not-allowed}.result-rewards{font-size:12px;color:#cdd5dc;min-height:14px;padding:4px 8px;border-radius:6px;border:1px solid transparent;transition:background .32s ease-out,border-color .32s ease-out}#result-mission-claim{width:100%;padding:6px 10px;border-radius:8px;border:1px solid rgba(125,224,166,.55);background:#7de0a62e;color:#f1fbf3;cursor:pointer;font-size:12px}#result-mission-claim[hidden]{display:none}.result-rewards:empty{display:none}.result-rewards.is-pulsing{background:#7de0a629;border-color:#7de0a673;color:#f1fbf3;animation:reward-pulse .72s ease-out 1}@keyframes reward-pulse{0%{transform:scale(.92);opacity:.45}55%{transform:scale(1.06);opacity:1}to{transform:scale(1);opacity:1}}.result-failure{display:grid;gap:6px;padding:8px 10px;border-radius:10px;background:#e849491f;border:1px solid rgba(232,73,73,.32);color:#f4d2d2;font-size:12px}.result-failure[hidden]{display:none}.result-failure-headline{font-weight:600;color:#fbe5e5}.result-failure-detail{list-style:disc;margin:0;padding-left:18px;display:grid;gap:2px}.result-panel[data-result-status=lost] #result-restart{background:#e8494952;border-color:#e849498c;color:#fff5f5;font-weight:700}.result-panel[data-result-status=won] #result-next{background:#7de0a647;border-color:#7de0a68c;color:#f1fbf3;font-weight:700}.goals{display:grid;gap:10px}.goal-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--theme-border);color:#d7e1ea}.goal-dot{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 2px #ffffff73}.goal-copy{min-width:0;display:grid;gap:6px}.goal-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-meter{height:6px;border-radius:999px;overflow:hidden;background:#ffffff14}.goal-fill{display:block;width:0;height:100%;border-radius:999px;background:var(--theme-accent);box-shadow:0 0 12px var(--theme-accent-soft)}.goal-row.is-complete .goal-fill{background:var(--theme-accent-alt);box-shadow:0 0 14px var(--theme-accent-alt-soft)}.goal-row strong{font-size:13px}.stage-picker{display:grid;gap:8px}.auto-player{display:grid;gap:10px;padding:10px 0 12px;border-bottom:1px solid var(--theme-border)}.auto-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.auto-controls button{width:100%}.auto-controls button[aria-pressed=true]{border-color:var(--theme-accent-strong);background:var(--theme-accent-soft);color:#f4fffb}#hint-button{background:#fff36a29;border:1px solid rgba(255,243,106,.45);color:#fff7c2}#hint-button:disabled{opacity:.45;cursor:not-allowed}#hint-button[aria-pressed=true]{background:#fff36a52;border-color:#fff36ab3;color:#fffce4}#bomb-shuffle-button{background:#ff5c5c29;border:1px solid rgba(255,92,92,.5);color:#ffd0cb}#bomb-shuffle-button:disabled{opacity:.45;cursor:not-allowed}#stars-pass-button{margin-top:6px;width:100%;padding:6px 10px;background:#7de0a62e;border:1px solid rgba(125,224,166,.45);color:#f1fbf3;border-radius:8px;cursor:pointer;font-size:12px}#stars-pass-button:disabled{opacity:.45;cursor:not-allowed}.campaign-star-gate-row{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:#cdd5dc;margin-top:6px}.campaign-star-gate-row strong{color:#f4f7fb}.campaign-meter-stars .campaign-meter-fill{background:#ffd560c7}#ad-reward-button{margin-top:6px;width:100%;padding:6px 10px;background:#6ad3ff29;border:1px solid rgba(106,211,255,.45);color:#d8f4ff;border-radius:8px;cursor:pointer;font-size:12px}#ad-reward-button:disabled{opacity:.5;cursor:not-allowed}.ad-reward-status{font-size:11px;color:#cdd5dc;margin-top:4px;min-height:14px}.ad-reward-status:empty{display:none}.weekly-challenge-panel{display:grid;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid rgba(243,199,106,.34);background:#f3c76a14}#weekly-challenge-jump{width:100%;padding:6px 10px;background:#f3c76a2e;border:1px solid rgba(243,199,106,.5);color:#fff7d8;border-radius:8px;cursor:pointer;font-size:12px}#weekly-challenge-jump:disabled{opacity:.45;cursor:not-allowed}#locale-toggle,#mute-toggle,#contrast-toggle{margin-left:8px;padding:4px 10px;border-radius:6px;border:1px solid var(--theme-border);background:#ffffff0a;color:#f4f7fb;cursor:pointer;font-size:12px}#mute-toggle[aria-pressed=true],#contrast-toggle[aria-pressed=true]{background:#7de0a62e;border-color:#7de0a68c;color:#f1fbf3}body.high-contrast{--tile-red: #ff2a2a;--tile-yellow: #ffe600;--tile-green: #00d24c;--tile-blue: #1a7bff;--tile-pink: #ff45b1;--tile-orange: #ff8400;--tile-white: #f8f8f8;--tile-brown: #6b3a1a}.performance-overlay{position:fixed;bottom:12px;right:12px;padding:4px 10px;border-radius:6px;background:#080c12b3;border:1px solid rgba(125,224,166,.4);color:#f1fbf3;font-size:11px;z-index:70;font-family:monospace}.performance-overlay[hidden]{display:none}.contextual-tip{position:fixed;top:14px;left:50%;transform:translate(-50%);padding:8px 14px;border-radius:999px;background:#080c12d9;border:1px solid rgba(125,224,166,.5);color:#f1fbf3;font-size:13px;z-index:60;box-shadow:0 12px 32px #0006}.contextual-tip[hidden]{display:none}.leaderboard-panel,.pvp-panel,.cloud-save-panel{display:grid;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--theme-border);background:#6ad3ff0f}.pvp-panel{background:#db5ca814}.cloud-save-panel{background:#7de0a614}.cloud-save-input{display:grid;gap:4px;font-size:12px;color:#cdd5dc}.cloud-save-input input{padding:4px 8px;border-radius:6px;border:1px solid var(--theme-border);background:#ffffff0a;color:#f4f7fb;font-size:12px}.cloud-save-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cloud-save-actions button{padding:6px 8px;border-radius:8px;border:1px solid var(--theme-border);background:#ffffff0a;color:#f4f7fb;cursor:pointer;font-size:12px}#analytics-opt-in-toggle{grid-column:1 / -1}#daily-checkin-claim,#pvp-find{width:100%;padding:6px 10px;border-radius:8px;border:1px solid var(--theme-border);background:#ffffff0a;color:#f4f7fb;cursor:pointer;font-size:12px}#daily-checkin-claim:disabled,#pvp-find:disabled{opacity:.45;cursor:not-allowed}#daily-checkin-panel{background:#f3c76a14}#daily-missions-panel,#achievements-panel,#stage-best-panel,#lifetime-stats-panel,#replay-panel,#favorites-panel{background:#9fdd6814}.achievement-row{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto!important;align-items:center;gap:8px!important}.achievement-bar{position:relative;width:100%;height:6px;border-radius:999px;background:#ffffff14;overflow:hidden}.achievement-bar-fill{display:block;height:100%;background:#7de0a6c7;transition:width .22s ease-out}.daily-mission-row{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;padding:4px 6px;border-radius:6px;background:#ffffff0a;font-size:12px}.daily-mission-row.is-claimed{opacity:.45}.daily-mission-row button{padding:2px 8px;border-radius:6px;border:1px solid var(--theme-border);background:#7de0a62e;color:#f1fbf3;cursor:pointer;font-size:11px}.daily-mission-row button:disabled{opacity:.45;cursor:not-allowed}#settings-modal[hidden]{display:none}.settings-body{display:grid;gap:8px}.settings-body .settings-row{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:6px;background:#ffffff0a;font-size:13px}.settings-body button{padding:4px 10px;border-radius:6px;border:1px solid var(--theme-border);background:#ffffff0f;color:#f4f7fb;cursor:pointer;font-size:12px}#settings-open,#copy-replay-link,#install-app{margin-left:6px;padding:4px 10px;border-radius:6px;border:1px solid var(--theme-border);background:#ffffff0a;color:#f4f7fb;cursor:pointer;font-size:12px}:focus-visible{outline:2px solid rgba(125,224,166,.85);outline-offset:2px}@media(prefers-reduced-motion:reduce){.reward-pulse,.result-rewards.is-pulsing,.tutorial-spotlight,.contextual-tip,.result-rewards{animation:none!important;transition:none!important}}body.reduced-motion .result-rewards.is-pulsing,body.reduced-motion .tutorial-spotlight,body.reduced-motion .contextual-tip,body.reduced-motion .result-rewards{animation:none!important;transition:none!important}#analytics-opt-in-toggle[aria-pressed=false]{background:#e849492e;border-color:#e8494980;color:#ffd0cb}.leaderboard-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:12px;color:#d7e1ea}.leaderboard-list li{display:grid;grid-template-columns:28px 1fr auto;gap:6px;align-items:baseline;padding:2px 6px;border-radius:6px}.leaderboard-list li.is-player{background:#7de0a629;color:#f1fbf3}.tutorial-overlay{position:fixed;inset:0;display:grid;place-items:center;background:#080c12c7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50}.tutorial-spotlight{position:fixed;border-radius:14px;border:2px solid rgba(125,224,166,.92);box-shadow:0 0 0 9999px #080c12c7,0 0 32px #7de0a673;pointer-events:none;transition:all .22s ease-out}.tutorial-spotlight[hidden],.tutorial-overlay[hidden]{display:none}.tutorial-card{max-width:min(420px,88vw);display:grid;gap:12px;padding:22px 24px;border-radius:14px;border:1px solid var(--theme-border);background:linear-gradient(160deg,var(--theme-panel-top),var(--theme-panel-bottom));color:#f4f7fb;box-shadow:0 24px 48px #00000080}.tutorial-title{font-size:18px;margin:0}.tutorial-body{font-size:13px;line-height:1.5;margin:0;color:#d7e1ea}.tutorial-actions{display:flex;justify-content:flex-end;gap:8px}.tutorial-actions button{padding:6px 14px;border-radius:8px;border:1px solid var(--theme-border);background:#ffffff0d;color:#f4f7fb;cursor:pointer;font-size:12px}.tutorial-actions button:first-child{background:transparent;color:#cdd5dc}.auto-speed{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.auto-speed input{width:100%;accent-color:var(--theme-accent)}.auto-speed strong{min-width:56px;color:#d7e1ea;font-size:12px;text-align:right}.auto-status{min-height:20px;color:var(--theme-accent);font-size:13px;font-weight:700}.stage-picker select{width:100%;min-height:42px;border:1px solid var(--theme-border);border-radius:6px;background:#182027f5;color:#f4f7fb;padding:0 10px}.qa-dashboard{display:grid;gap:10px;padding:2px 0 12px;border-bottom:1px solid var(--theme-border)}.qa-dashboard[hidden]{display:none}.qa-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.qa-heading strong{font-size:14px}.qa-heading span{color:#9db0c0;font-size:12px;text-align:right}.qa-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.qa-stat{min-height:52px;display:grid;align-content:center;gap:2px;padding:8px;border:1px solid var(--theme-border);border-radius:6px;background:#18232cc7}.qa-stat span{color:#9db0c0;font-size:11px}.qa-stat strong{color:#f4f7fb;font-size:18px}.qa-controls{display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:8px;align-items:stretch}.qa-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.qa-filter{min-width:0;height:32px;padding:0 4px;font-size:11px}.qa-filter[aria-pressed=true]{border-color:var(--theme-accent-strong);background:var(--theme-accent-soft)}#qa-sort{min-width:0;min-height:32px;border:1px solid var(--theme-border);border-radius:6px;background:#182027f5;color:#f4f7fb;padding:0 6px;font-size:12px}.qa-stage-list{display:grid;gap:6px}.qa-stage-row{min-height:42px;width:100%;height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border-color:var(--theme-border);background:#17212ae0;text-align:left}.qa-stage-row:hover{background:#20303bf0}.qa-stage-row strong,.qa-stage-row span{min-width:0}.qa-stage-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.qa-stage-row span{color:#9db0c0;font-size:11px;text-align:right}.qa-stage-row.is-fast{border-color:#8c6a2d}.qa-stage-row.is-heavy{border-color:#5e7ea0}.qa-stage-row.is-failed{border-color:#a95757}.status-banner{min-height:24px;color:var(--theme-accent-alt);font-weight:700}@media(max-width:760px){body{overflow:auto}.topbar{min-height:58px}.game-layout{grid-template-columns:1fr;grid-template-rows:minmax(420px,64vh) auto;width:100%;overflow-x:hidden}.side-panel{border-left:0;border-top:1px solid var(--theme-border);grid-template-columns:1fr 1fr;width:100%}.stage-hero,.campaign-panel,.campaign-route-panel,.leaderboard-panel,.pvp-panel,.cloud-save-panel,#daily-checkin-panel,#daily-missions-panel,#achievements-panel,#stage-best-panel,#lifetime-stats-panel,#replay-panel,#favorites-panel,.weekly-challenge-panel,.result-panel,.result-spend-actions,.result-failure,.goals,.auto-player,.qa-dashboard,.stage-picker,.status-banner{grid-column:1 / -1}.campaign-route{grid-template-columns:repeat(2,minmax(0,1fr))}.result-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
