:root{--bg: #071015;--bg-deep: #04090d;--bg-surface: rgba(9, 18, 24, .92);--bg-surface-strong: rgba(8, 14, 20, .97);--bg-panel: rgba(13, 24, 33, .92);--bg-panel-soft: rgba(16, 29, 39, .72);--line: rgba(117, 183, 214, .2);--line-strong: rgba(126, 231, 255, .34);--text: #f2fbff;--muted: #96b8c6;--accent: #7ee7ff;--accent-strong: #3dc9ec;--accent-soft: rgba(126, 231, 255, .12);--accent-warm: #ffc96b;--accent-good: #8df2a8;--accent-danger: #ff8e87;--shadow-lg: 0 28px 80px rgba(0, 0, 0, .42);--shadow-md: 0 18px 40px rgba(0, 0, 0, .3);--radius-xl: 28px;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 12px;--font-display: "Sora", sans-serif;--font-body: "Space Grotesk", sans-serif}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(61,201,236,.16),transparent 28%),radial-gradient(circle at 82% 0%,rgba(255,201,107,.13),transparent 22%),linear-gradient(180deg,#10202b 0%,#081118 28%,var(--bg-deep) 100%);color:var(--text);font-family:var(--font-body);letter-spacing:.01em}body:before,body:after{content:"";position:fixed;inset:0;pointer-events:none}body:before{background:linear-gradient(120deg,rgba(126,231,255,.03),transparent 24%,transparent 76%,rgba(255,201,107,.04)),radial-gradient(circle at center,#fff0 56%,#00000038)}body:after{background:repeating-linear-gradient(to bottom,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 2px,transparent 5px);opacity:.25;mix-blend-mode:screen}[hidden]{display:none!important}h1,h2,h3,p,ul{margin-top:0}ul{margin-bottom:0;padding-left:1.15rem}button,input{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid transparent;border-radius:999px;padding:.95rem 1.2rem;color:#031117;background:linear-gradient(180deg,#fff0b0,var(--accent-warm));box-shadow:0 10px 24px #ffc96b2e,inset 0 1px #ffffff8c;font-family:var(--font-display);font-size:clamp(.68rem,.8vw,.8rem);font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:transform .14s ease,filter .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.03)}button:active:not(:disabled){transform:translateY(1px)}button.primary{color:#031117;background:linear-gradient(180deg,#b9ffd0,var(--accent-good));box-shadow:0 10px 24px #8df2a829,inset 0 1px #ffffff8c}button.secondary{color:var(--text);border-color:#7ee7ff26;background:linear-gradient(180deg,#162532f5,#0b141bf5);box-shadow:0 10px 22px #00000038,inset 0 1px #ffffff0f}button.mode-toggle.active{color:#fff5f1;border-color:#ff8e8747;background:linear-gradient(180deg,#ff8e87f0,#d1545df0);box-shadow:0 10px 24px #ff8e872e,inset 0 1px #ffffff47}button:disabled{transform:none;opacity:.5;cursor:not-allowed;box-shadow:none;filter:saturate(.8)}input{border:1px solid rgba(126,231,255,.14);border-radius:18px;background:linear-gradient(180deg,#060e14fa,#0a1219f0),radial-gradient(circle at top left,rgba(126,231,255,.08),transparent 32%);color:var(--text);box-shadow:inset 0 0 0 1px #ffffff08}input::placeholder{color:#86a7b4;opacity:1}#menu-root,#app{padding:clamp(.85rem,1.5vw,1.3rem)}#menu-root{min-height:100vh;display:grid;place-items:center}.menu-screen{width:min(100%,1320px)}.menu-panel,#battlefield-shell{position:relative;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:linear-gradient(180deg,#0c151cf5,#050a0ffa),radial-gradient(circle at top left,rgba(126,231,255,.1),transparent 34%);box-shadow:inset 0 0 0 1px #ffffff08,var(--shadow-lg)}.menu-panel:before,#battlefield-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,rgba(126,231,255,.09),transparent 24%,transparent 72%,rgba(255,201,107,.08)),radial-gradient(circle at top right,rgba(255,201,107,.09),transparent 22%)}.menu-panel{padding:clamp(1.4rem,2vw,2rem)}.menu-panel--hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.8fr);gap:1.2rem}.hero-copy,.hero-sidecar{position:relative;z-index:1}.hero-sidecar{display:grid;gap:.9rem;align-content:start}.hero-card,.difficulty-card,.run-chip,.run-brief,.drawer-card,.dock-panel,.panel,.mini-card,.leaderboard-entry{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#0e1a23f0,#091016eb),radial-gradient(circle at top left,rgba(126,231,255,.06),transparent 34%);box-shadow:inset 0 0 0 1px #ffffff08,0 0 20px #7ee7ff0a}.hero-card{padding:1rem 1.05rem}.hero-card-label,.menu-kicker,.deck-title,.settings-label,.hud-label,.game-over-kicker,.game-over-label,.active-word-label{margin:0 0 .6rem;color:var(--accent);font-family:var(--font-display);font-size:clamp(.64rem,.76vw,.78rem);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero-card strong,.panel-title,.loadout-name{display:block;font-family:var(--font-display);font-size:clamp(1rem,1.4vw,1.35rem);font-weight:700;line-height:1.25}.hero-card p,.menu-copy,.menu-copy--compact,.loadout-meta,.loadout-tip,.input-caption,.status-subtext,.tower-action-empty,.leaderboard-empty,.control-note,.rules-list li,.leaderboard-sub,.leaderboard-main,.game-over-detail,.game-over-feedback,.hud-sub,.helper-copy,.run-brief p,.mini-card span{color:var(--muted);font-size:clamp(.98rem,1.25vw,1.1rem);line-height:1.45}.hero-title{margin:0 0 1rem;max-width:13ch;color:#f7fffb;font-family:var(--font-display);font-size:clamp(2.2rem,5vw,4.5rem);font-weight:800;line-height:.98;letter-spacing:-.04em}.menu-copy{max-width:42rem}.menu-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}.menu-button{min-width:11rem}.panel-header,.run-brief-header,.bank-header{display:flex;justify-content:space-between;gap:.9rem}.panel-header{align-items:start;margin-bottom:.85rem}.panel-header--menu{align-items:center}.panel-title{margin:0;color:var(--text)}.panel-kicker,.run-badge{display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.45rem .8rem;border-radius:999px;color:#d7f8ff;background:#7ee7ff14;border:1px solid rgba(126,231,255,.16);font-family:var(--font-display);font-size:clamp(.62rem,.72vw,.75rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.4rem}.difficulty-card{display:grid;gap:.65rem;width:100%;padding:1.2rem;text-align:left;color:var(--text)}.difficulty-name{color:var(--text);font-family:var(--font-display);font-size:clamp(1rem,1.2vw,1.15rem);font-weight:700}.difficulty-stats{color:var(--accent-warm);font-family:var(--font-display);font-size:clamp(1.1rem,1.5vw,1.35rem);font-weight:700}.difficulty-desc{color:var(--muted);font-size:clamp(.98rem,1.2vw,1.06rem);line-height:1.45}#app{min-height:100vh}#game-layout{max-width:1600px;margin:0 auto}#battlefield-shell{padding:clamp(.8rem,1.1vw,1rem)}#run-bar{position:relative;z-index:1;display:grid;grid-template-columns:minmax(220px,.68fr) minmax(0,1.55fr) minmax(280px,.8fr);align-items:start;gap:.85rem;margin-bottom:.7rem}.run-summary{display:grid;align-content:start;gap:.7rem}.run-chip,.run-brief,.drawer-card,.dock-panel,.panel,.mini-card{padding:1rem}.run-chip{display:flex;align-items:center;gap:.8rem;min-height:4.25rem;padding:.65rem .8rem}.run-chip-copy{min-width:0}.run-chip-icon{display:grid;place-items:center;flex:0 0 auto;width:2.4rem;height:2.4rem;border-radius:14px;border:1px solid rgba(126,231,255,.12);background:linear-gradient(180deg,#13222cf5,#0a1218f0),radial-gradient(circle at top left,rgba(126,231,255,.1),transparent 40%);box-shadow:inset 0 1px #ffffff0d}.run-chip-icon svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.run-chip--credits .run-chip-icon{color:var(--accent-warm)}.run-chip--integrity .run-chip-icon{color:var(--accent-good)}.run-chip--sector .run-chip-icon{color:var(--accent)}.run-chip .hud-label{margin-bottom:.16rem}.run-chip strong{display:block;margin-bottom:.05rem;color:var(--text);font-family:var(--font-display);font-size:clamp(.94rem,1.04vw,1.06rem);font-weight:700;line-height:1.1}.run-chip:nth-child(1) strong{color:var(--accent-warm)}.run-chip:nth-child(2) strong{color:var(--accent-good)}.run-chip:nth-child(3) strong{color:var(--accent)}.run-chip .hud-sub{font-size:clamp(.82rem,.88vw,.88rem)}.run-brief{border-color:#7ee7ff3d;background:linear-gradient(180deg,#0d1922fa,#080f15f0),radial-gradient(circle at top right,rgba(126,231,255,.12),transparent 34%)}.run-brief .active-word-card{margin-top:.55rem;margin-bottom:0}.run-control-panel{display:flex;flex-direction:column}.run-control-panel .panel-header{margin-bottom:.75rem}#phase-label{color:var(--text);font-family:var(--font-display);font-size:clamp(1rem,1.3vw,1.28rem);font-weight:700;line-height:1.2}#phase-helper{margin:0 0 .5rem}.strong-feedback{border:1px solid rgba(126,231,255,.12);border-radius:16px}#status-text{min-height:0;margin-bottom:.5rem;padding:.72rem .9rem;color:var(--text);font-size:clamp(.93rem,.98vw,.98rem);line-height:1.35;background:linear-gradient(180deg,#14232dd1,#0b131aeb)}.status-callout{padding:.72rem .9rem;border-radius:18px;border:1px solid rgba(255,201,107,.14);color:#e8f4f8;background:linear-gradient(180deg,#121c24f5,#0a0f15f5),radial-gradient(circle at top right,rgba(255,201,107,.1),transparent 34%);font-size:clamp(.94rem,1vw,.98rem);line-height:1.4}.status-callout strong{color:var(--accent-warm);font-family:var(--font-display);font-size:.82em;font-weight:700;letter-spacing:.05em;text-transform:uppercase}#combat-stage{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.68fr);gap:.8rem;align-items:start}#game-shell{position:relative;overflow:hidden;border-radius:28px;border:1px solid rgba(126,231,255,.22);background:radial-gradient(circle at top,rgba(126,231,255,.08),transparent 32%),linear-gradient(180deg,#0a1117fa,#04080cfa);box-shadow:inset 0 0 0 1px #ffffff08,var(--shadow-md)}#game-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(126,231,255,.07),transparent 8%,transparent 92%,rgba(126,231,255,.07)),linear-gradient(180deg,rgba(255,255,255,.03),transparent 16%,transparent 84%,rgba(255,255,255,.03))}#game-container{position:relative;z-index:0;width:100%;aspect-ratio:900 / 560;min-height:min(62vw,560px);display:flex;align-items:center;justify-content:center}#game-container canvas{display:block;width:100%!important;height:auto!important;max-width:100%;border-radius:26px}#control-drawer{display:grid;gap:.95rem}#utility-drawer{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#0e1a23f0,#091016eb),radial-gradient(circle at top left,rgba(126,231,255,.06),transparent 34%);box-shadow:inset 0 0 0 1px #ffffff08,0 0 20px #7ee7ff0a}#utility-drawer summary{position:relative;padding:1rem;cursor:pointer;list-style:none;color:var(--accent);font-family:var(--font-display);font-size:clamp(.72rem,.82vw,.8rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase}#utility-drawer summary::-webkit-details-marker{display:none}#utility-drawer summary:after{content:"+";position:absolute;top:50%;right:1rem;transform:translateY(-50%);color:var(--accent-warm);font-size:1rem}#utility-drawer[open] summary:after{content:"-"}.utility-grid{display:grid;gap:.85rem;padding:0 1rem 1rem;border-top:1px solid rgba(126,231,255,.12)}.leaderboard-list{list-style:none;padding-left:0;display:grid;gap:.7rem}.leaderboard-entry{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.9rem .95rem}.leaderboard-rank{color:var(--accent-warm);font-family:var(--font-display);font-size:clamp(.72rem,.8vw,.78rem);font-weight:700;letter-spacing:.08em}.leaderboard-main{color:var(--text);font-size:clamp(.98rem,1.12vw,1.05rem);font-weight:500}.leaderboard-sub{font-size:clamp(.92rem,1vw,.98rem)}.rules-list{display:grid;gap:.5rem}.mini-card{background:linear-gradient(180deg,#0f1c26f0,#091016e6),radial-gradient(circle at top right,rgba(255,201,107,.08),transparent 34%)}.mini-card strong{display:block;margin-bottom:.35rem;color:var(--text);font-family:var(--font-display);font-size:clamp(.98rem,1.15vw,1.05rem);font-weight:700}.archive-action-row{margin-top:.8rem}.tower-action-stack{display:grid;gap:.75rem}#command-dock{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);gap:.8rem;margin-top:.8rem}.dock-panel--build,.dock-panel--forge{min-width:0}.loadout-name{margin-bottom:.35rem}.loadout-meta,.loadout-tip{margin-bottom:.45rem}.loadout-tip{margin-bottom:.9rem}.tower-pick-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.tower-pick{display:grid;justify-items:start;gap:.35rem;min-height:7rem;padding:.95rem;text-align:left;color:var(--text);border-radius:20px;border-color:#7ee7ff1f;background:linear-gradient(180deg,#1a2833fa,#0d151cf5),radial-gradient(circle at top left,rgba(126,231,255,.08),transparent 38%);box-shadow:0 12px 24px #0000002e,inset 0 1px #ffffff0d;text-transform:none}.tower-pick.active{color:#031117;border-color:#7ee7ff47;background:linear-gradient(180deg,#c4f8ff,#7ee7ff),radial-gradient(circle at top left,rgba(255,255,255,.3),transparent 38%)}.tower-pick-name{font-family:var(--font-display);font-size:clamp(.86rem,.96vw,.94rem);font-weight:700}.tower-pick-stats{font-size:clamp(.98rem,1.05vw,1.02rem);font-weight:500;line-height:1.35}.build-footer{display:grid;gap:.75rem;margin-top:.9rem}.bank-header{align-items:start;margin-bottom:.8rem}.count-pill,.hint-chip{display:inline-flex;align-items:center;min-height:2.15rem;padding:.35rem .78rem;border-radius:999px}.count-pill{color:var(--accent);background:#7ee7ff14;border:1px solid rgba(126,231,255,.16);font-family:var(--font-display);font-size:clamp(.66rem,.76vw,.75rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase}#letter-bank{display:flex;flex-wrap:wrap;gap:.55rem;min-height:3rem}.letter-chip{min-width:2.85rem;min-height:2.85rem;padding:.55rem .7rem;border-radius:14px;border:1px solid rgba(126,231,255,.22);background:linear-gradient(180deg,#223d4ffa,#101d27f5),radial-gradient(circle at top left,rgba(126,231,255,.12),transparent 38%);color:var(--text);font-family:var(--font-display);font-size:clamp(1.05rem,1.2vw,1.15rem);font-weight:700;letter-spacing:.04em;text-align:center;text-transform:uppercase;box-shadow:inset 0 1px #ffffff0f}.letter-chip.special{border-color:#ffc96b47;background:linear-gradient(180deg,#4e3a15fa,#271c0bf5),radial-gradient(circle at top left,rgba(255,201,107,.16),transparent 38%);color:#fff5d8}.forge-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;margin:.75rem 0}#word-input,#nickname-input{width:100%;padding:.95rem 1rem;font-size:clamp(1.05rem,1.35vw,1.22rem);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.hint-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:.8rem}.hint-chip{color:#ffe7bd;background:#ffc96b14;border:1px solid rgba(255,201,107,.16);font-family:var(--font-display);font-size:clamp(.64rem,.72vw,.72rem);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.forge-feedback-panel{min-height:3.4rem;padding:.9rem 1rem;color:var(--accent-danger);background:linear-gradient(180deg,#2416186b,#110b0d4d),radial-gradient(circle at top left,rgba(255,142,135,.08),transparent 36%);border-color:#ff8e8729;font-size:clamp(.98rem,1.05vw,1.02rem);line-height:1.4}.active-word-card{margin-bottom:.7rem;padding:.85rem .95rem;border-radius:16px;border:1px solid rgba(126,231,255,.14);background:linear-gradient(180deg,#0d1922f5,#080f15f5),radial-gradient(circle at top left,rgba(141,242,168,.12),transparent 34%)}#active-word{margin-bottom:.25rem;color:var(--accent-good);font-family:var(--font-display);font-size:clamp(1rem,1.15vw,1.12rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase}#active-buffs{color:var(--muted);font-size:clamp(.9rem,.96vw,.96rem);line-height:1.38;white-space:pre-line}.ops-grid{display:grid;gap:.65rem}.ops-card{padding:.75rem .85rem;border-radius:16px;border:1px solid rgba(126,231,255,.12);background:linear-gradient(180deg,#0e1820f5,#091016e6),radial-gradient(circle at top left,rgba(126,231,255,.06),transparent 34%)}.speed-row,.wave-actions,.button-row{display:flex;gap:.7rem;flex-wrap:wrap}.wave-actions{margin-top:.65rem}#game-over-overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:1rem;background:#02080cb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-over-card{width:min(100%,500px);padding:1.35rem;border-radius:24px;border:1px solid rgba(126,231,255,.22);background:linear-gradient(180deg,#0f1a22fa,#070d12fa),radial-gradient(circle at top,rgba(255,201,107,.08),transparent 38%);box-shadow:inset 0 0 0 1px #ffffff08,0 24px 44px #00000047;text-align:center}.game-over-title{margin:0;color:var(--text);font-family:var(--font-display);font-size:clamp(1.25rem,1.75vw,1.5rem);font-weight:700}.game-over-summary{margin:.8rem 0 0;color:var(--text);font-family:var(--font-display);font-size:clamp(1.4rem,1.9vw,1.7rem);font-weight:700}.game-over-form{display:grid;gap:.75rem;margin-top:1rem}.game-over-input-row{display:flex;gap:.7rem;align-items:stretch;justify-content:center;flex-wrap:wrap}#nickname-input{max-width:11rem;text-align:center}@media(max-width:1300px){#run-bar{grid-template-columns:minmax(0,1fr) minmax(300px,.82fr)}.run-summary{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr))}#combat-stage{grid-template-columns:1fr}#control-drawer{grid-template-columns:minmax(0,1fr)}#command-dock{grid-template-columns:1fr 1fr}}@media(max-width:960px){.menu-panel--hero,.difficulty-grid,#command-dock,.utility-grid,.tower-pick-row,.forge-input-row{grid-template-columns:1fr}.wave-actions>*{flex:1 1 100%}#run-bar{grid-template-columns:1fr}.run-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){#menu-root,#app{padding:.75rem}.menu-panel,#battlefield-shell{padding:.85rem}#run-bar,.run-summary{grid-template-columns:1fr}.run-chip{min-height:4.65rem}.game-over-input-row,.button-row,.speed-row,.wave-actions{flex-direction:column}button,.menu-button{width:100%}#nickname-input{max-width:none}}@media(max-width:560px){#game-container{min-height:220px}.count-pill{align-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
