:root{--ink:#f7fbff;--muted:#a9b5c6;--dim:#6d7788;--panel:#080c12c7;--panel-strong:#070a0feb;--line:#ffffff29;--line-strong:#ffffff47;--cyan:#20f4ff;--pink:#ff4fd8;--lime:#9cff4a;--amber:#ffca3a;--violet:#9c7cff;--orange:#ff7a30;--shadow:0 18px 60px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--ink);letter-spacing:0;background:#05070a;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button{font:inherit;cursor:pointer}button:disabled{cursor:default}.app{width:100vw;height:100vh;touch-action:none;-webkit-user-select:none;user-select:none;background:#05070a;height:100dvh;min-height:0;position:relative;overflow:hidden}#gameCanvas{z-index:0;touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.scanline{pointer-events:none;z-index:1;opacity:.34;mix-blend-mode:screen;background:linear-gradient(#ffffff07 1px,#0000 1px) 0 0/100% 4px,radial-gradient(circle at 52% 115%,#ffffff1a,#0000 36%);position:absolute;inset:0}.topbar,.tower-dock,.inspector,.command-bar,.dock-toggle,.dock-side-toggle,.menu-panel,.level-panel,.dialog{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:8px}.topbar{z-index:20;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));grid-template-columns:minmax(190px,260px) minmax(280px,1fr) minmax(300px,380px) auto;align-items:center;gap:12px;min-height:56px;padding:8px;display:grid;position:absolute}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:radial-gradient(circle,#ff4fd861,#0000 34%),linear-gradient(135deg,#20f4ff33,#9c7cff29),#081018;border:1px solid #20f4ffd9;border-radius:8px;flex:none;width:36px;height:36px;position:relative;box-shadow:0 0 22px #20f4ff6b,inset 0 0 20px #ffffff14}.brand-mark:before,.brand-mark:after{content:"";border:2px solid var(--amber);border-radius:50%;position:absolute;inset:9px}.brand-mark:after{border-color:var(--cyan);inset:13px 3px}.brand strong,.brand span,.resource-strip span,.tower-card strong,.tower-card span,.tower-stat,.inspector span,#hintText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.brand strong{font-size:.92rem;font-weight:860;display:block}.brand span{color:var(--muted);font-size:.74rem;font-weight:720;display:block}.resource-strip{grid-template-columns:repeat(4,minmax(78px,1fr));gap:8px;min-width:0;display:grid}.resource-strip span,.tower-stat,.menu-badges span,.level-meta span{border:1px solid var(--line);min-height:34px;color:var(--ink);background:#ffffff14;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:.78rem;font-weight:820;display:inline-flex}.resource-strip span[data-stat=core]{--core-progress:100%;background:linear-gradient(90deg, #20f4ff33 0 var(--core-progress), #ffffff06 var(--core-progress) 100%), #ffffff14}.resource-strip span.is-danger{color:#fff3c4;background:linear-gradient(135deg,#ffca3a38,#ff7a301f),#ffffff14;border-color:#ffca3a94;box-shadow:inset 0 0 0 1px #ffffff14}.resource-strip span[data-stat=core].is-danger{background:linear-gradient(90deg, #ffca3a4d 0 var(--core-progress), #ff7a300f var(--core-progress) 100%), #ffffff14}.resource-strip span.is-critical{color:#ffe6ef;background:linear-gradient(135deg,#ff3f6847,#ffca3a1f),#ffffff14;border-color:#ff3f68c7;animation:1.1s ease-in-out infinite core-alert;box-shadow:0 0 18px #ff3f6833,inset 0 0 0 1px #ffffff1a}.resource-strip span[data-stat=core].is-critical{background:linear-gradient(90deg, #ff3f6857 0 var(--core-progress), #ffca3a17 var(--core-progress) 100%), #ffffff14}.combat-telemetry{min-width:0;display:none}.combat-telemetry.is-visible{border:1px solid color-mix(in srgb, var(--cyan), transparent 76%);background:linear-gradient(135deg,#20f4ff14,#ff4fd80e),#02060a5c;border-radius:8px;grid-template-columns:minmax(74px,1.1fr) repeat(4,minmax(44px,.8fr));align-items:center;gap:5px;min-width:0;padding:4px;display:grid}.combat-telemetry-latest,.combat-telemetry-chip{white-space:nowrap;background:#ffffff0e;border:1px solid #ffffff1a;border-radius:7px;place-items:center;min-width:0;min-height:28px;line-height:1;display:grid;overflow:hidden}.combat-telemetry-latest{color:var(--ink);text-overflow:ellipsis;padding:0 7px;font-size:.64rem;font-weight:900}.combat-telemetry-chip{grid-template-rows:auto auto;gap:2px;padding:3px 4px}.combat-telemetry-chip b,.combat-telemetry-chip strong{text-overflow:ellipsis;max-width:100%;overflow:hidden}.combat-telemetry-chip b{color:var(--muted);font-size:.48rem;font-weight:860}.combat-telemetry-chip strong{color:var(--ink);font-size:.64rem;font-weight:940}.combat-telemetry [data-tone=damage]{background:#ff4fd814;border-color:#ff4fd847}.combat-telemetry [data-tone=projectile]{background:#ffca3a17;border-color:#ffca3a57}.combat-telemetry [data-tone=status]{background:#37d7ff14;border-color:#37d7ff52}.combat-telemetry [data-tone=trace]{background:#9cff4a11;border-color:#9cff4a42}.app.is-core-critical .topbar{border-color:#ff3f6870;box-shadow:0 18px 60px #00000073,0 0 28px #ff3f6824}.app.is-core-critical .scanline{opacity:.46;background:linear-gradient(#ff3f680a 1px,#0000 1px) 0 0/100% 4px,radial-gradient(circle at 52% 115%,#ff3f6824,#0000 36%)}@keyframes core-alert{0%,to{filter:brightness()}50%{filter:brightness(1.22)}}.top-actions{align-items:center;gap:8px;min-width:0;display:flex}.app:not([data-screen=playing]) .resource-strip,.app:not([data-screen=playing]) .combat-telemetry,.app:not([data-screen=playing]) .top-actions{display:none}.app:not([data-screen=playing]) .topbar{grid-template-columns:auto;width:auto;min-width:226px}.difficulty-chip{border:1px solid var(--line);min-height:38px;color:var(--muted);white-space:nowrap;background:#ffffff14;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:.72rem;font-weight:860;display:inline-flex}.icon-button,.speed-button,.primary-button,.ghost-button{border:1px solid var(--line-strong);min-height:38px;color:var(--ink);background:#ffffff1a;border-radius:8px;justify-content:center;align-items:center;font-weight:840;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.icon-button:hover,.speed-button:hover,.primary-button:hover,.ghost-button:hover,.tower-card:hover,.level-card:hover{border-color:#20f4ff9e;transform:translateY(-1px);box-shadow:0 0 22px #20f4ff38,inset 0 0 0 1px #ffffff14}.icon-button:focus-visible,.speed-button:focus-visible,.primary-button:focus-visible,.ghost-button:focus-visible,.tower-card:focus-visible,.level-card:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.icon-button{width:38px;padding:0}.speed-button{min-width:48px;padding:0 10px}.pause-icon{width:14px;height:16px;position:relative}.pause-icon:before,.pause-icon:after{content:"";background:currentColor;border-radius:2px;width:4px;position:absolute;top:1px;bottom:1px}.pause-icon:before{left:1px}.pause-icon:after{right:1px}.sound-icon{width:21px;height:21px;display:block}.sound-icon svg{width:100%;height:100%;display:block;overflow:visible}.sound-speaker,.sound-wave,.sound-muted-line{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.sound-speaker{fill:color-mix(in srgb, currentColor, transparent 86%)}.sound-muted-line{opacity:0;transition:opacity .15s}.sound-wave{transition:opacity .15s}.icon-button[data-muted=true]{color:var(--amber)}.icon-button[data-muted=true] .sound-wave{opacity:0}.icon-button[data-muted=true] .sound-muted-line{opacity:1}.primary-button,.ghost-button{min-width:126px;padding:0 16px}.primary-button{background:linear-gradient(135deg,#9cff4a57,#20f4ff33),#ffffff1a;border-color:#9cff4aad}.wave-button{--wave-progress:0%;isolation:isolate;white-space:nowrap;justify-content:center;align-items:center;gap:9px;min-width:156px;display:inline-flex;position:relative;overflow:hidden}.wave-button:before{content:"";filter:drop-shadow(0 0 7px #9cff4a9e);border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:10px solid;width:0;height:0}.wave-button:after{pointer-events:none;content:"";z-index:-1;opacity:0;background:linear-gradient(100deg,#0000 0 28%,#ffffff47 43%,#0000 58% 100%);position:absolute;inset:-1px;transform:translate(-120%)}.wave-button[data-wave-state=ready],.wave-button[data-wave-state=tempo]{color:#f9ffe8;border-color:#9cff4adb;box-shadow:0 0 26px #9cff4a33,inset 0 0 0 1px #ffffff1f}.wave-button[data-wave-state=tempo]{color:#fff7d0;background:linear-gradient(135deg,#ffca3a6b,#9cff4a38),#ffffff1a;border-color:#ffca3ae0;box-shadow:0 0 28px #ffca3a38,inset 0 0 0 1px #ffffff1f}.wave-button[data-wave-state=tempo]:before{border-left-color:var(--amber);filter:drop-shadow(0 0 8px #ffca3ab8)}.wave-button[data-wave-state=running]{cursor:default;color:var(--cyan);background:linear-gradient(90deg, #20f4ff47 0 var(--wave-progress), transparent var(--wave-progress) 100%), linear-gradient(100deg, #20f4ff1a, #9c7cff57, #ff4fd833, #20f4ff24), #ffffff12;background-size:auto,240% 100%,auto;border-color:#9c7cffd1;animation:1.25s ease-in-out infinite wave-button-pulse;box-shadow:0 0 24px #20f4ff33,inset 0 0 0 1px #ffffff14}.wave-button[data-wave-state=running]:before{content:none;display:none}.wave-button[data-wave-state=running]:after{opacity:1;animation:1.15s ease-in-out infinite wave-scan}.wave-button[data-wave-state=done]{cursor:default;color:var(--muted);background:#ffffff14;border-color:#ffca3a6b;box-shadow:inset 0 0 0 1px #ffffff14}.wave-button[data-wave-state=done]:before{border:0;border-left:3px solid var(--amber);border-bottom:3px solid var(--amber);filter:drop-shadow(0 0 7px #ffca3a80);width:12px;height:7px;transform:rotate(-45deg)translateY(-1px)}.wave-button[data-wave-state=lost]{cursor:default;color:#ffd7dd;background:linear-gradient(135deg,#ff5c7a2e,#9c7cff1a),#ffffff12;border-color:#ff5c7a94;box-shadow:0 0 22px #ff5c7a24,inset 0 0 0 1px #ffffff14}.wave-button[data-wave-state=lost]:before{filter:drop-shadow(0 0 7px #ff5c7a9e);border:0;border-left:3px solid #ff5c7a;width:12px;height:12px;transform:rotate(45deg)}.wave-button:disabled{opacity:1}.wave-button:disabled:hover{transform:none}.ghost-button.is-overdrive-ready{color:#fff7d0;background:linear-gradient(135deg,#ffca3a42,#ff4fd829),#ffffff14;border-color:#ffca3ab8;box-shadow:0 0 18px #ffca3a2e,inset 0 0 0 1px #ffffff14}.ghost-button.is-wave-intel{color:#ddfff8;background:linear-gradient(135deg,#20f4ff2e,#9c7cff29),#ffffff12;border-color:#20f4ff94;box-shadow:0 0 18px #20f4ff24,inset 0 0 0 1px #ffffff14}@keyframes wave-button-pulse{0%{background-position:0%,0 0;box-shadow:0 0 18px #20f4ff2e,inset 0 0 0 1px #20f4ff1a}50%{background-position:100%,0 0;box-shadow:0 0 34px #20f4ff4d,0 0 18px #ff4fd829,inset 0 0 20px #9c7cff33,inset 0 0 0 1px #ffffff29}to{background-position:240%,0 0;box-shadow:0 0 18px #20f4ff2e,inset 0 0 0 1px #20f4ff1a}}@keyframes wave-scan{0%{transform:translate(-120%)}to{transform:translate(120%)}}.ghost-button.compact{min-width:84px;min-height:34px}.tower-dock{z-index:30;contain:layout paint;pointer-events:auto;top:92px;right:calc(12px + env(safe-area-inset-right));background:linear-gradient(180deg, #20f4ff1c, transparent 24%), var(--panel);scrollbar-width:thin;scrollbar-color:#20f4ff73 #ffffff0f;border-color:#20f4ff3d;width:232px;max-height:calc(100vh - 176px);padding:10px;transition:opacity .17s,transform .17s;position:absolute;overflow:auto;box-shadow:0 18px 60px #0000006b,inset 0 0 0 1px #20f4ff14}.app[data-dock-side=left] .tower-dock{right:auto;left:calc(12px + env(safe-area-inset-left))}.app[data-dock-side=right] .tower-dock{right:calc(12px + env(safe-area-inset-right));left:auto}.dock-toggle,.dock-side-toggle{z-index:34;min-width:54px;min-height:38px;color:var(--ink);background:linear-gradient(135deg, #20f4ff33, #9c7cff24), var(--panel);letter-spacing:.02em;border-color:#20f4ff70;padding:0 10px;font-size:.74rem;font-weight:900;transition:border-color .15s,color .15s,right .17s,bottom .17s,left .17s,opacity .17s,transform .17s;position:absolute;top:92px}.dock-toggle{right:calc(256px + env(safe-area-inset-right))}.dock-side-toggle{top:136px;right:calc(256px + env(safe-area-inset-right));min-width:58px;color:var(--muted)}.app[data-dock-side=left] .dock-toggle,.app[data-dock-side=left] .dock-side-toggle{right:auto;left:calc(256px + env(safe-area-inset-left))}.app[data-dock-side=right] .dock-toggle,.app[data-dock-side=right] .dock-side-toggle{right:calc(256px + env(safe-area-inset-right));left:auto}.dock-toggle:hover,.dock-toggle:focus-visible,.dock-side-toggle:hover,.dock-side-toggle:focus-visible{color:var(--lime);border-color:#9cff4ab8;outline:none}.app.is-dock-collapsed .tower-dock{pointer-events:none;opacity:0;transform:translate(calc(100% + 18px))}.app[data-dock-side=left].is-dock-collapsed .tower-dock{transform:translate(calc(-100% - 18px))}.app.is-dock-collapsed .dock-toggle{right:calc(12px + env(safe-area-inset-right));color:var(--lime);background:linear-gradient(135deg, #9cff4a3d, #20f4ff29), var(--panel-strong);border-color:#9cff4a9e}.app.is-dock-collapsed .dock-side-toggle{pointer-events:none;opacity:0}.app[data-dock-side=left].is-dock-collapsed .dock-toggle{right:auto;left:calc(12px + env(safe-area-inset-left))}.app[data-dock-side=right].is-dock-collapsed .dock-toggle{right:calc(12px + env(safe-area-inset-right));left:auto}@media (min-width:861px) and (min-height:561px){.app.is-dock-collapsed .dock-toggle{writing-mode:vertical-rl;text-orientation:mixed;width:42px;min-width:42px;min-height:70px;padding:0 6px}.app.is-dock-collapsed .dock-side-toggle{pointer-events:auto;opacity:1;width:42px;min-width:42px;min-height:60px;color:var(--cyan);writing-mode:vertical-rl;text-orientation:mixed;background:linear-gradient(135deg, #20f4ff33, #ff4fd81f), var(--panel-strong);padding:0 6px;top:170px}.app[data-dock-side=left].is-dock-collapsed .dock-side-toggle{right:auto;left:calc(12px + env(safe-area-inset-left))}.app[data-dock-side=right].is-dock-collapsed .dock-side-toggle{right:calc(12px + env(safe-area-inset-right));left:auto}}.tower-card{isolation:isolate;border:1px solid var(--line);width:100%;min-height:78px;color:var(--ink);text-align:left;background:radial-gradient(circle at 22% 20%, color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 80%), transparent 38%), linear-gradient(155deg, transparent 0 68%, color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 86%) 68% 100%), linear-gradient(135deg, #ffffff18, #ffffff0b), #fff1;border-radius:8px;margin-bottom:8px;padding:10px 10px 10px 68px;transition:transform .15s,border-color .15s,background .15s,opacity .15s,box-shadow .15s;position:relative;overflow:hidden}.tower-card:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(112deg, transparent 0 30%, color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 76%) 45%, transparent 60%), radial-gradient(circle at 15% 45%, color-mix(in srgb, var(--tower-color), transparent 74%), transparent 34%);opacity:.16;transition:opacity .17s,transform .17s;position:absolute;inset:0;transform:translate(-18%)}.tower-card:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg, var(--tower-color) 0 var(--afford-progress,100%), color-mix(in srgb, var(--tower-color), transparent 78%) var(--afford-progress,100%), transparent 100%);height:3px;box-shadow:0 0 12px color-mix(in srgb, var(--tower-color), transparent 62%);opacity:.58;border-radius:999px;position:absolute;bottom:7px;left:68px;right:10px}.tower-card>*{z-index:1;position:relative}.tower-card.is-selected{border-color:var(--tower-color);box-shadow:0 0 22px color-mix(in srgb, var(--tower-color), transparent 70%), inset 0 0 0 1px color-mix(in srgb, var(--tower-color), transparent 48%)}.tower-card:hover:before,.tower-card:focus-visible:before,.tower-card.is-selected:before{opacity:.36;transform:translate(10%)}.tower-card.is-selected:after{opacity:.96}.tower-card.is-disabled{opacity:.45}.tower-card.is-disabled:before{opacity:.04}.tower-card.is-disabled:after{background:linear-gradient(90deg, var(--amber) 0 var(--afford-progress,0%), #ffffff24 var(--afford-progress,0%), transparent 100%);opacity:.46;box-shadow:0 0 9px #ffca3a33}.tower-icon{box-sizing:border-box;pointer-events:none;border:1px solid color-mix(in srgb, var(--tower-color), transparent 28%);background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 70%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 82%)), #04090ec7;width:50px;height:50px;box-shadow:0 0 16px color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 70%), inset 0 0 0 1px #ffffff14;color:var(--tower-color);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--tower-color), transparent 48%));border-radius:8px;padding:2px;position:absolute;top:10px;left:10px;overflow:hidden}.tower-icon-svg{transform-box:fill-box;transform-origin:50%;width:100%;height:100%;display:block;overflow:visible}.tower-card.is-selected .tower-icon{border-color:var(--tower-color);box-shadow:0 0 20px color-mix(in srgb, var(--tower-color), transparent 54%), inset 0 0 0 1px #ffffff29}.tower-card.is-disabled .tower-icon{filter:saturate(.55)}.tower-icon-hull{fill:color-mix(in srgb, var(--tower-color), transparent 74%);stroke:var(--tower-color);stroke-width:2.2px;filter:drop-shadow(0 0 5px color-mix(in srgb, var(--tower-color), transparent 44%))}.tower-icon-shell{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--tower-color), transparent 34%))}.tower-icon-identity{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--tower-color), transparent 38%))}.tower-icon-crest{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 28%)) drop-shadow(0 0 8px color-mix(in srgb, var(--tower-color), transparent 58%))}.tower-icon-anchor{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 36%))}.tower-icon-anchor-shadow{opacity:.94}.tower-icon-identity-shadow{opacity:.92}.tower-icon-crest-shadow{opacity:.96}.tower-icon-shell-shadow{opacity:.86}.tower-card strong{font-size:.86rem;display:block}.tower-card span{color:var(--muted);margin-top:3px;font-size:.72rem;font-weight:720;display:block}.tower-card strong,.tower-card span:not(.tower-cost):not(.tower-icon):not(.tower-shortcut):not(.tower-profile):not(.tower-role-chip){padding-right:48px}.tower-card .tower-icon{color:var(--tower-color);place-items:center;margin-top:0;display:grid}.tower-profile{white-space:normal;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:7px;padding-right:46px;display:grid;overflow:visible}.tower-profile i{--meter:50%;background:#00000057;border:1px solid #ffffff1a;border-radius:999px;height:4px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 7px #00000080}.tower-profile i:before{content:"";width:var(--meter);border-radius:inherit;background:var(--tower-color);box-shadow:0 0 8px color-mix(in srgb, var(--tower-color), transparent 48%);position:absolute;top:0;bottom:0;left:0}.tower-profile i[data-stat=power]:before{background:linear-gradient(90deg, var(--tower-color), var(--amber))}.tower-profile i[data-stat=range]:before{background:linear-gradient(90deg, var(--cyan), var(--tower-accent,var(--tower-color)))}.tower-profile i[data-stat=tempo]:before{background:linear-gradient(90deg, var(--pink), var(--tower-color))}.tower-card.is-disabled .tower-profile{opacity:.46}.tower-card .tower-shortcut{border:1px solid color-mix(in srgb, var(--tower-color), transparent 38%);color:#f7fbff;text-align:center;font-variant-numeric:tabular-nums;background:linear-gradient(135deg, #000000b8, color-mix(in srgb, var(--tower-color), transparent 78%)), #05080de6;width:18px;height:18px;box-shadow:0 0 10px color-mix(in srgb, var(--tower-color), transparent 68%);border-radius:5px;place-items:center;margin:0;font-size:.66rem;font-weight:920;line-height:1;display:grid;position:absolute;top:5px;left:5px}.tower-card .tower-role-chip{border:1px solid color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 42%);width:40px;height:16px;color:var(--tower-accent,var(--tower-color));text-align:center;text-overflow:clip;white-space:nowrap;background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 72%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 84%)), #02060adb;box-shadow:0 0 10px color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 70%), inset 0 0 0 1px #ffffff0f;border-radius:5px;place-items:center;margin:0;padding:0 4px;font-size:.56rem;font-weight:940;line-height:1;display:grid;position:absolute;top:51px;left:13px;overflow:hidden}.tower-cost{border:1px solid color-mix(in srgb, var(--tower-color), transparent 56%);min-width:34px;max-width:52px;color:var(--tower-color);text-align:center;text-overflow:clip;white-space:nowrap;background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 86%), #ffffff0f), #05080d94;border-radius:999px;padding:3px 5px;font-size:.75rem;font-weight:900;line-height:1;position:absolute;top:9px;right:10px;overflow:hidden}.tower-cost[data-tone=short]{color:var(--amber);background:linear-gradient(135deg,#ffca3a33,#ffffff0e),#05080da8;border-color:#ffca3a8f;box-shadow:0 0 12px #ffca3a2e,inset 0 0 0 1px #ffffff0b}.tower-palette-preview{--tower-preview-left:50vw;--tower-preview-top:50vh;pointer-events:none;z-index:33;border:1px solid color-mix(in srgb, var(--tower-color), transparent 46%);opacity:0;max-width:min(326px,100vw - 24px);min-height:58px;color:var(--ink);background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 82%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 88%)), #05090ee6;box-shadow:0 16px 42px #0000006b, 0 0 24px color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 76%), inset 0 0 0 1px #ffffff14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:8px;grid-template-columns:44px auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 9px;transition:opacity .12s,transform .12s;display:none;position:absolute}.tower-palette-preview.is-visible{opacity:1}.tower-palette-preview-icon{border:1px solid color-mix(in srgb, var(--tower-color), transparent 35%);background:radial-gradient(circle at 48% 44%, color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 70%), transparent 68%), #02060ac7;border-radius:8px;place-items:center;width:42px;height:42px;padding:4px;display:grid}.tower-palette-preview-icon .tower-icon-svg{width:100%;height:100%}.tower-palette-preview-role{border:1px solid color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 40%);min-width:30px;max-width:38px;min-height:21px;color:var(--tower-accent,var(--tower-color));text-align:center;text-overflow:clip;white-space:nowrap;background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 74%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 86%)), #02060ab8;box-shadow:0 0 10px color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 76%);border-radius:6px;place-items:center;padding:0 5px;font-size:.58rem;font-weight:940;line-height:1;display:grid;overflow:hidden}.tower-palette-preview-copy{min-width:0}.tower-palette-preview-copy strong,.tower-palette-preview-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tower-palette-preview-copy strong{font-size:.82rem;font-weight:900}.tower-palette-preview-copy span{color:var(--muted);margin-top:2px;font-size:.68rem;font-weight:760}.tower-palette-preview em{border:1px solid color-mix(in srgb, var(--tower-color), transparent 54%);min-width:46px;color:var(--tower-color);text-align:center;white-space:nowrap;background:#ffffff12;border-radius:999px;justify-self:end;padding:4px 6px;font-size:.68rem;font-style:normal;font-weight:900;line-height:1}.tower-palette-preview em[data-tone=short]{color:var(--amber);border-color:#ffca3a8f}@media (min-width:1041px) and (min-height:621px){.app[data-screen=playing] .tower-dock{width:108px;max-height:calc(100vh - 176px);padding:8px}.app[data-screen=playing]:not(.is-dock-collapsed) .dock-toggle,.app[data-screen=playing]:not(.is-dock-collapsed) .dock-side-toggle{right:calc(128px + env(safe-area-inset-right))}.app[data-screen=playing][data-dock-side=left]:not(.is-dock-collapsed) .dock-toggle,.app[data-screen=playing][data-dock-side=left]:not(.is-dock-collapsed) .dock-side-toggle{right:auto;left:calc(128px + env(safe-area-inset-left))}.app[data-screen=playing][data-dock-side=right]:not(.is-dock-collapsed) .dock-toggle,.app[data-screen=playing][data-dock-side=right]:not(.is-dock-collapsed) .dock-side-toggle{right:calc(128px + env(safe-area-inset-right));left:auto}.app[data-screen=playing] .tower-card{min-height:90px;margin-bottom:7px;padding:7px 6px 21px}.app[data-screen=playing] .tower-card:after{height:2px;bottom:5px;left:8px;right:8px}.app[data-screen=playing] .tower-card strong,.app[data-screen=playing] .tower-card span:not(.tower-cost):not(.tower-icon):not(.tower-shortcut):not(.tower-profile):not(.tower-role-chip){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app[data-screen=playing] .tower-icon{width:44px;height:44px;top:24px;left:50%;transform:translate(-50%)}.app[data-screen=playing] .tower-profile{display:none}.app[data-screen=playing] .tower-card .tower-role-chip{border-radius:5px;width:24px;height:17px;padding:0 2px;font-size:.5rem;top:5px;left:auto;right:6px}.app[data-screen=playing] .tower-cost{place-items:center;min-width:38px;height:18px;padding:0 4px;font-size:.68rem;display:grid;top:auto;bottom:2px;right:50%;transform:translate(50%)}.app[data-screen=playing] .tower-palette-preview{top:clamp(122px, var(--tower-preview-top), calc(100vh - 86px));right:calc(128px + env(safe-area-inset-right));display:grid;transform:translateY(-50%)translate(8px)scale(.98)}.app[data-screen=playing] .tower-palette-preview.is-visible{transform:translateY(-50%)translate(0)scale(1)}.app[data-screen=playing][data-dock-side=left] .tower-palette-preview{right:auto;left:calc(128px + env(safe-area-inset-left));transform:translateY(-50%)translate(-8px)scale(.98)}.app[data-screen=playing][data-dock-side=left] .tower-palette-preview.is-visible{transform:translateY(-50%)translate(0)scale(1)}}.inspector{--inspector-progress:0%;z-index:31;isolation:isolate;top:86px;left:calc(12px + env(safe-area-inset-left));width:260px;min-height:170px;padding:12px;position:absolute}.inspector:before{content:"";pointer-events:none;z-index:0;border-radius:inherit;opacity:0;background:linear-gradient(90deg, #20f4ff33 0 var(--inspector-progress), #9cff4a14 var(--inspector-progress), transparent calc(var(--inspector-progress) + 12%));transition:opacity .16s;position:absolute;inset:0}.inspector>*{z-index:1;position:relative}.inspector[data-tower-status=building]{border-color:#20f4ff57}.inspector[data-tower-status=building]:before{opacity:1;background:linear-gradient(90deg, #20f4ff38 0 var(--inspector-progress), #9cff4a17 var(--inspector-progress), #ffffff06 calc(var(--inspector-progress) + 10%), transparent 100%), linear-gradient(180deg, #ffffff13, transparent 70%)}.inspector[data-tower-status=overdrive]{border-color:#ffca3a8c;box-shadow:0 18px 60px #00000073,0 0 24px #ffca3a24}.inspector[data-tower-status=stunned]{border-color:#ff5c7a7a}.inspector[data-tower-status=overdrive] h3{color:#fff7d0}.inspector[data-tower-status=stunned] h3{color:#ffd7dd}.app[data-dock-side=left] .inspector{right:calc(12px + env(safe-area-inset-right));left:auto}.app[data-dock-side=right] .inspector{left:calc(12px + env(safe-area-inset-left));right:auto}.inspector h3{margin:0;font-size:1.05rem}.inspector-head{align-items:center;gap:8px;min-width:0;display:flex}.inspector-tower-badge{border:1px solid color-mix(in srgb, var(--tower-color), transparent 34%);background:radial-gradient(circle at 50% 48%, color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 70%), transparent 58%), #050a10b8;width:38px;height:38px;box-shadow:0 0 18px color-mix(in srgb, var(--tower-color), transparent 76%), inset 0 0 0 1px #ffffff14;white-space:normal;border-radius:8px;flex:0 0 38px;place-items:center;display:grid;overflow:visible}.inspector-tower-badge .tower-icon-svg{width:32px;height:32px;filter:drop-shadow(0 0 8px color-mix(in srgb, var(--tower-color), transparent 50%))}.inspector[data-tower-status=building] .inspector-tower-badge{opacity:.78}.inspector[data-tower-status=overdrive] .inspector-tower-badge{border-color:#ffca3aad;box-shadow:0 0 22px #ffca3a3d,inset 0 0 0 1px #ffffff1a}.inspector[data-tower-status=stunned] .inspector-tower-badge{filter:saturate(.72);border-color:#ff5c7a9e}.inspector-head h3{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.inspector-role-chip{border:1px solid color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 42%);min-width:32px;max-width:46px;min-height:24px;color:var(--tower-accent,var(--tower-color));background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 78%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 88%)), #050a10b8;text-align:center;text-overflow:clip;white-space:nowrap;border-radius:7px;flex:none;place-items:center;padding:0 6px;font-size:.6rem;font-weight:940;line-height:1;display:grid;overflow:hidden}.inspector-status-badge{color:#dffcff;text-overflow:ellipsis;white-space:nowrap;background:#20f4ff14;border:1px solid #20f4ff52;border-radius:7px;flex:none;justify-content:center;align-items:center;min-width:44px;max-width:86px;min-height:24px;padding:0 7px;font-size:.62rem;font-weight:920;line-height:1;display:inline-flex;overflow:hidden}.inspector-status-badge[data-tone=building]{color:#d8feff;background:#20f4ff1f;border-color:#20f4ff75}.inspector-status-badge[data-tone=overdrive],.inspector-status-badge[data-tone=ready-overdrive]{color:#fff2b8;background:#ffca3a21;border-color:#ffca3a9e;box-shadow:0 0 12px #ffca3a24}.inspector-status-badge[data-tone=stunned]{color:#ffd7dd;background:#ff5c7a1f;border-color:#ff5c7a94}.inspector-status-badge[data-tone=locked]{color:#f7fbffb8;background:#ffffff0f;border-color:#ffffff29}.inspector-toggle-button{min-width:52px;min-height:26px;color:var(--cyan);background:#20f4ff14;border:1px solid #20f4ff6b;border-radius:8px;flex:none;padding:0 8px;font-size:.68rem;font-weight:900;display:none}@media (max-width:760px),(max-height:620px){.inspector-tower-badge{flex-basis:30px;width:30px;height:30px}.inspector-tower-badge .tower-icon-svg{width:26px;height:26px}.inspector-role-chip{border-radius:6px;min-width:26px;max-width:34px;min-height:20px;padding:0 3px;font-size:.5rem}}.inspector p{color:var(--muted);margin:6px 0 12px;font-size:.78rem;font-weight:710;line-height:1.4}.inspector-empty{min-height:140px;color:var(--muted);text-align:center;place-content:center;gap:6px;display:grid}.inspector-empty strong{color:var(--ink)}.inspector-empty em{max-width:100%;color:var(--dim);overflow-wrap:anywhere;font-size:.72rem;font-style:normal;font-weight:720;line-height:1.35;display:block}.wave-threat-strip{flex-wrap:wrap;justify-content:center;gap:6px;width:100%;min-width:0;display:flex}.enemy-chip{--enemy-color:var(--cyan);--enemy-accent:var(--enemy-color);border:1px solid color-mix(in srgb, var(--enemy-color), transparent 44%);min-width:0;max-width:100%;min-height:26px;color:var(--ink);background:linear-gradient(135deg, color-mix(in srgb, var(--enemy-color), transparent 84%), color-mix(in srgb, var(--enemy-accent), transparent 88%)), #ffffff0f;box-shadow:0 0 14px color-mix(in srgb, var(--enemy-accent), transparent 82%), inset 0 0 0 1px #ffffff0f;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 7px;display:inline-flex}.enemy-icon{width:18px;height:18px;color:var(--enemy-color);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--enemy-color), transparent 38%));flex:none}.enemy-icon-hull{fill:color-mix(in srgb, var(--enemy-color), transparent 74%);stroke:var(--enemy-color);stroke-width:2px;stroke-linejoin:round}.enemy-icon-anchor{fill:color-mix(in srgb, var(--enemy-accent), transparent 44%);stroke:var(--enemy-accent);filter:drop-shadow(0 0 5px color-mix(in srgb, var(--enemy-accent), transparent 42%))}.enemy-icon-anchor-shadow{opacity:.9}.enemy-icon-crest{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--enemy-accent), transparent 30%)) drop-shadow(0 0 7px color-mix(in srgb, var(--enemy-color), transparent 60%))}.enemy-icon-crest-shadow{opacity:.96}.enemy-icon-core{fill:none;stroke:#ffffffb8;stroke-width:1.5px;stroke-linejoin:round}.enemy-icon-mark{fill:none;stroke:#ffffffd1;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.enemy-icon-mark-fill{fill:#ffffffbd;stroke:var(--enemy-color);stroke-width:1px}.enemy-chip b,.enemy-chip small{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.68rem;line-height:1;overflow:hidden}.enemy-chip b{max-width:128px;font-weight:860}.enemy-chip small{color:color-mix(in srgb, var(--enemy-accent), white 24%);flex:none;font-weight:920}.enemy-chip[data-role=boss]{border-color:color-mix(in srgb, var(--enemy-accent), white 14%);box-shadow:0 0 18px color-mix(in srgb, var(--enemy-accent), transparent 70%), inset 0 0 0 1px #ffffff1a}.enemy-chip[data-role=jammer]{background:linear-gradient(135deg, #ff3f6829, color-mix(in srgb, var(--enemy-accent), transparent 86%)), #ffffff0f;border-color:#ff3f689e}.enemy-chip[data-role=support]{border-color:color-mix(in srgb, var(--enemy-accent), transparent 46%)}.enemy-chip[data-role=armor]{border-color:color-mix(in srgb, var(--enemy-accent), transparent 42%)}.enemy-chip[data-role=speed] .enemy-icon{transform:skew(-7deg)}.enemy-chip[data-role=swarm]{background:repeating-linear-gradient(135deg, #ffffff12 0 1px, transparent 1px 5px), linear-gradient(135deg, color-mix(in srgb, var(--enemy-color), transparent 86%), color-mix(in srgb, var(--enemy-accent), transparent 88%)), #ffffff0d}.tower-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.upgrade-preview{background:linear-gradient(135deg,#9cff4a1a,#20f4ff14),#ffffff0d;border:1px solid #9cff4a47;border-radius:8px;grid-template-columns:auto repeat(3,minmax(0,1fr));align-items:center;gap:6px;min-width:0;margin:-2px 0 10px;padding:6px;display:grid;box-shadow:inset 0 0 0 1px #ffffff0a}.upgrade-preview strong,.upgrade-preview span,.upgrade-preview b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.upgrade-preview strong{color:#efffde;font-size:.66rem;font-weight:900}.upgrade-preview span{color:var(--muted);justify-content:center;align-items:center;gap:4px;margin:0;font-size:.62rem;font-weight:820;display:inline-flex}.upgrade-preview b{color:var(--ink);font-size:.64rem;font-weight:900}.upgrade-preview i{border-top:3px solid #0000;border-bottom:3px solid #0000;border-left:6px solid var(--lime);filter:drop-shadow(0 0 5px #9cff4a7a);flex:none;width:8px;height:6px}.status-progress{background:linear-gradient(90deg,#20f4ff14,#ffca3a14),#00000042;border:1px solid #20f4ff57;border-radius:999px;height:12px;margin:8px 0 10px;position:relative;overflow:hidden;box-shadow:inset 0 0 12px #00000057}.status-progress span{width:var(--status-progress,0%);border-radius:inherit;background:linear-gradient(90deg, #20f4ffd6, #9cff4ac2), var(--cyan);min-width:8px;height:100%;display:block;box-shadow:0 0 14px #20f4ff5c}.status-progress strong{color:var(--ink);text-shadow:0 1px 4px #000000a6;place-items:center;font-size:.55rem;font-weight:900;line-height:1;display:grid;position:absolute;inset:0}.status-progress[data-status=overdrive]{background:linear-gradient(90deg,#ffca3a1f,#9cff4a14),#00000047;border-color:#ffca3a80}.status-progress[data-status=overdrive] span{background:linear-gradient(90deg, #ffca3aeb, #fff7d0d1), var(--amber);box-shadow:0 0 16px #ffca3a6b}.status-progress[data-status=stunned]{background:linear-gradient(90deg,#ff5c7a1f,#9c7cff1a),#0000004d;border-color:#ff5c7a80}.status-progress[data-status=stunned] span{background:linear-gradient(90deg,#ff5c7ae6,#9c7cffd1),#ff5c7a;box-shadow:0 0 16px #ff5c7a5c}.inspector-actions{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px;display:grid}.inspector-actions .primary-button,.inspector-actions .ghost-button{width:100%;min-width:0}.overdrive-button{width:100%;min-width:0;color:var(--amber);background:linear-gradient(135deg,#ffca3a29,#ff4fd81f),#ffffff14;border-color:#ffca3a94;grid-column:1/-1}.overdrive-button.is-overdrive-ready{color:#fff7d0;background:linear-gradient(135deg,#ffca3a47,#ff4fd829),#ffffff14;border-color:#ffca3ad1;box-shadow:0 0 20px #ffca3a33,inset 0 0 0 1px #ffffff1a}.target-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px;display:grid}.target-row button{border:1px solid var(--line);min-width:0;min-height:30px;color:var(--muted);background:#ffffff12;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:.72rem;font-weight:830;display:flex}.target-row.is-special{grid-template-columns:minmax(0,1fr)}.target-mode-auto{color:#fff7d0;background:linear-gradient(135deg,#ffca3a2b,#20f4ff14),#ffffff12;border:1px solid #ffca3a7a;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-width:0;min-height:30px;padding:0 10px;font-size:.72rem;font-weight:860;display:flex;box-shadow:inset 0 0 0 1px #ffffff0f}.target-mode-auto b{color:var(--muted);flex:none;font-size:.58rem;font-weight:820}.target-row button.is-active{border-color:var(--cyan);color:var(--ink)}.target-mode-icon{color:currentColor;background:#08111fad;border:1px solid;border-radius:50%;flex:0 0 18px;width:18px;height:18px;position:relative;box-shadow:inset 0 0 8px #ffffff14}.target-mode-icon:before,.target-mode-icon:after{content:"";position:absolute;top:50%;left:50%}.target-mode-icon[data-icon=front]:before{border-bottom:8px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;transform:translate(-50%,-68%)}.target-mode-icon[data-icon=front]:after{background:currentColor;border-radius:999px;width:2px;height:8px;transform:translate(-50%,-2px)}.target-mode-icon[data-icon=strong]:before{border:2px solid;border-radius:2px;width:9px;height:9px;transform:translate(-50%,-50%)rotate(45deg)}.target-mode-icon[data-icon=strong]:after{background:currentColor;border-radius:50%;width:3px;height:3px;transform:translate(-50%,-50%)}.target-mode-icon[data-icon=near]:before{background:currentColor;border-radius:50%;width:4px;height:4px;transform:translate(-50%,-50%)}.target-mode-icon[data-icon=near]:after{border:2px solid;border-color:currentColor #0000;border-radius:50%;width:11px;height:11px;transform:translate(-50%,-50%)}.target-mode-icon[data-icon=cluster]:before{background:currentColor;border-radius:50%;width:4px;height:4px;transform:translate(-50%,-78%);box-shadow:-5px 7px,5px 7px}.target-mode-icon[data-icon=cluster]:after{opacity:.72;border-bottom:2px solid;border-radius:0 0 999px 999px;width:12px;height:7px;transform:translate(-50%,-3%)}.target-mode-icon[data-icon=execute]:before{background:currentColor;border-radius:999px;width:12px;height:2px;transform:translate(-50%,-50%)}.target-mode-icon[data-icon=execute]:after{background:currentColor;border-radius:999px;width:2px;height:12px;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #ffffff0a}.target-mode-icon[data-icon=rail]:before{background:currentColor;border-radius:999px;width:13px;height:2px;transform:translate(-56%,-50%)}.target-mode-icon[data-icon=rail]:after{border-top:2px solid;border-right:2px solid;width:6px;height:6px;transform:translateY(-50%)rotate(45deg)}.target-mode-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.command-bar{z-index:32;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));grid-template-columns:auto minmax(126px,auto) auto minmax(180px,390px);align-items:center;gap:10px;width:min(900px,100vw - 28px);min-height:58px;padding:9px;display:grid;position:absolute;transform:translate(-50%)}.app.has-selection-chip .command-bar{grid-template-columns:auto minmax(112px,auto) minmax(168px,236px) auto minmax(0,1fr);width:min(1040px,100vw - 28px)}.app.has-overdrive-ready .command-bar{border-color:#ffca3a85;box-shadow:0 18px 60px #00000073,0 0 24px #ffca3a24,inset 0 0 0 1px #ffffff14}.app.has-overdrive-ready #hintText{color:#fff7d0}.app[data-screen=menu] .tower-dock,.app[data-screen=menu] .dock-toggle,.app[data-screen=menu] .dock-side-toggle,.app[data-screen=menu] .inspector,.app[data-screen=menu] .command-bar,.app[data-screen=levels] .tower-dock,.app[data-screen=levels] .dock-toggle,.app[data-screen=levels] .dock-side-toggle,.app[data-screen=levels] .inspector,.app[data-screen=levels] .command-bar,.app[data-screen=result] .tower-dock,.app[data-screen=result] .dock-toggle,.app[data-screen=result] .dock-side-toggle,.app[data-screen=result] .inspector,.app[data-screen=result] .command-bar{pointer-events:none;opacity:0}#hintText{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:720;overflow:hidden}.selection-chip{display:none}.selection-chip.is-visible{border:1px solid color-mix(in srgb, var(--tower-color), transparent 46%);min-width:0;min-height:38px;color:var(--ink);background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 82%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 88%)), #04080dbd;box-shadow:0 0 18px color-mix(in srgb, var(--tower-color), transparent 82%), inset 0 0 0 1px #ffffff12;border-radius:8px;grid-template-columns:34px auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 7px 4px 5px;display:grid}.selection-chip-icon{border:1px solid color-mix(in srgb, var(--tower-color), transparent 34%);width:32px;height:32px;color:var(--tower-color);background:radial-gradient(circle at 50% 48%, color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 68%), transparent 68%), #02060ad1;border-radius:7px;place-items:center;padding:3px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.selection-chip-icon .tower-icon-svg{width:100%;height:100%}.selection-chip-role{border:1px solid color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 42%);min-width:28px;max-width:38px;min-height:22px;color:var(--tower-accent,var(--tower-color));text-align:center;text-overflow:clip;white-space:nowrap;background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color), transparent 76%), color-mix(in srgb, var(--tower-accent,var(--tower-color)), transparent 88%)), #02060abd;border-radius:6px;place-items:center;padding:0 5px;font-size:.56rem;font-weight:940;line-height:1;display:grid;overflow:hidden}.selection-chip-copy{min-width:0}.selection-chip-copy strong,.selection-chip-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.selection-chip-copy strong{font-size:.76rem;font-weight:920;line-height:1.08}.selection-chip-copy span{color:var(--muted);margin-top:2px;font-size:.62rem;font-weight:760;line-height:1.05}.selection-chip em{border:1px solid color-mix(in srgb, var(--tower-color), transparent 54%);min-width:34px;color:var(--tower-color);text-align:center;white-space:nowrap;background:#ffffff12;border-radius:999px;justify-self:end;padding:3px 5px;font-size:.62rem;font-style:normal;font-weight:920;line-height:1}.selection-chip em[data-tone=short]{color:var(--amber);background:#ffca3a1f;border-color:#ffca3a8f}.wave-status{--wave-status-progress:0%;color:#d9fbff;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(135deg,#20f4ff24,#9c7cff1a),#ffffff12;border:1px solid #20f4ff47;border-radius:8px;justify-content:center;align-items:center;min-width:126px;min-height:34px;padding:0 10px;font-size:.72rem;font-weight:860;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0f}.wave-status[data-state=running]{background:linear-gradient(90deg, #20f4ff3d 0 var(--wave-status-progress), transparent var(--wave-status-progress) 100%), linear-gradient(135deg, #9c7cff47, #20f4ff1f), #ffffff12;color:#eef1ff;border-color:#9c7cff80}.wave-status[data-state=tempo]{color:#fff7d0;background:linear-gradient(135deg,#ffca3a3d,#9cff4a1f),#ffffff12;border-color:#ffca3a8c}.wave-status[data-state=done]{color:var(--muted);border-color:#ffca3a70}.wave-status[data-state=lost]{color:#ffd7dd;background:linear-gradient(135deg,#ff5c7a38,#9c7cff1a),#ffffff12;border-color:#ff5c7a7a}.screen,.overlay{pointer-events:none;z-index:6;opacity:0;-webkit-overflow-scrolling:touch;place-items:center;padding:92px 20px 86px;transition:opacity .18s,transform .18s;display:grid;position:absolute;inset:0;overflow:auto;transform:translateY(10px)}.screen.is-active,.overlay.is-active{pointer-events:auto;opacity:1;transform:translateY(0)}.menu-panel,.level-panel,.dialog{width:min(740px,100vw - 32px);max-width:calc(100vw - 32px);overflow:hidden}.menu-panel{padding:30px}.menu-visual{gap:8px;width:min(620px,100%);margin-top:18px;display:grid}.menu-battlefield-preview{aspect-ratio:640/210;width:100%;min-height:132px;display:block;overflow:visible}.menu-preview-grid path{fill:none;stroke:#7eb4be2b;stroke-width:1px}.menu-preview-path-shadow,.menu-preview-path{fill:none;stroke-linecap:round;stroke-linejoin:round}.menu-preview-path-shadow{stroke:#20f4ff33;stroke-width:32px;filter:url(#menuSoftGlow)}.menu-preview-path{stroke:url(#menuPathGlow);stroke-width:13px;filter:url(#menuSoftGlow)}.menu-preview-core path,.menu-preview-core circle,.menu-preview-tower path,.menu-preview-tower circle{fill:#050b11e6;stroke-width:3px;vector-effect:non-scaling-stroke}.menu-preview-core path{stroke:#ffca3a}.menu-preview-core circle{fill:#ffca3a2e;stroke:#9cff4a}.menu-preview-tower{filter:url(#menuSoftGlow)}.menu-preview-tower-prism path{stroke:#20f4ff}.menu-preview-tower-frost circle,.menu-preview-tower-frost path{stroke:#8ffcff}.menu-preview-tower-rail path{stroke:#ffca3a}.menu-preview-tower path:nth-child(n+2),.menu-preview-tower-frost path{fill:none;stroke-linecap:round;stroke-linejoin:round}.menu-preview-enemies path,.menu-preview-shots path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}.menu-preview-enemies path{stroke:#ff3f689e;stroke-width:3px}.menu-preview-enemies circle{fill:#ff3f6838;stroke:#ff3f68;stroke-width:3px;vector-effect:non-scaling-stroke}.menu-preview-shots path{stroke:#f7fbffd1;stroke-width:3px;filter:url(#menuSoftGlow)}.menu-visual-readout{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.menu-visual-readout span{color:#cbeef2;white-space:nowrap;background:#ffffff0b;border-left:2px solid #20f4ff94;min-width:0;padding:5px 8px;font-size:.68rem;font-weight:820;line-height:1.1}.kicker{color:var(--cyan);text-transform:uppercase;margin:0 0 10px;font-size:.76rem;font-weight:880}h1,h2{letter-spacing:0;margin:0}h1{font-size:clamp(2.7rem,8vw,5.2rem);line-height:.94}h1 span{display:block}h2{font-size:clamp(1.8rem,4vw,3.2rem);line-height:1}.menu-actions,.dialog-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.difficulty-selector{border:1px solid var(--line);background:#ffffff12;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(420px,100%);margin-top:14px;padding:6px;display:grid}.difficulty-selector button{min-width:0;min-height:36px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;font-size:.78rem;font-weight:880;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.difficulty-selector button:hover,.difficulty-selector button:focus-visible{color:var(--ink);border-color:#20f4ff8c;outline:none}.difficulty-selector button.is-active{color:var(--ink);background:linear-gradient(135deg,#9cff4a42,#20f4ff24),#ffffff14;border-color:#9cff4abd;box-shadow:inset 0 0 0 1px #ffffff1a}.menu-badges,.level-meta{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.menu-badges span,.level-meta span{min-width:0;max-width:100%;color:var(--muted);justify-content:flex-start}.run-review-archive{gap:10px;width:min(560px,100%);margin-top:18px;display:grid}.run-review-archive-head{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.run-review-archive-head strong{color:var(--ink);font-size:.9rem;font-weight:920}.run-review-archive-head span{min-width:0;color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:780;overflow:hidden}.run-review-archive-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.run-review-archive-stats span{background:linear-gradient(135deg,#f7fbff12,#20f4ff0a),#ffffff0b;border:1px solid #f7fbff24;border-radius:8px;align-content:center;gap:2px;min-width:0;min-height:44px;padding:7px 8px;display:grid}.run-review-archive-stats span[data-tone=victory]{border-color:#9cff4a3d}.run-review-archive-stats span[data-tone=danger]{border-color:#ff3f6847}.run-review-archive-stats span[data-tone=combat]{border-color:#20f4ff42}.run-review-archive-stats b,.run-review-archive-stats em{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.run-review-archive-stats b{color:var(--ink);font-size:.88rem;line-height:1}.run-review-archive-stats em{color:var(--muted);font-size:.58rem;font-style:normal;font-weight:820}.run-review-archive-list{gap:7px;display:grid}.run-review-diagnostic{background:linear-gradient(135deg,#f7fbff12,#20f4ff0d),#ffffff0b;border:1px solid #f7fbff26;border-radius:8px;grid-template-columns:minmax(110px,.72fr) minmax(0,1fr);align-items:center;gap:5px 10px;min-width:0;padding:9px;display:grid}.run-review-diagnostic[data-tone=stable]{border-color:#9cff4a40}.run-review-diagnostic[data-tone=watch]{border-color:#ffca3a4d}.run-review-diagnostic[data-tone=critical]{background:linear-gradient(135deg,#ff3f681a,#ffca3a0d),#ffffff0b;border-color:#ff3f6852}.run-review-diagnostic strong,.run-review-diagnostic span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.run-review-diagnostic strong{color:var(--ink);font-size:.78rem;font-weight:940}.run-review-diagnostic span{color:var(--muted);font-size:.64rem;font-weight:760}.run-review-diagnostic-tags{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.run-review-diagnostic-tags em{min-width:0;min-height:24px;color:var(--muted);white-space:nowrap;background:#ffffff0b;border:1px solid #f7fbff1f;border-radius:8px;justify-content:center;align-items:center;gap:3px;padding:0 5px;font-size:.55rem;font-style:normal;font-weight:820;display:flex;overflow:hidden}.run-review-diagnostic-tags em[data-tone=stable]{color:#ecffd0;border-color:#9cff4a38}.run-review-diagnostic-tags em[data-tone=watch]{color:#fff1c7;border-color:#ffca3a3d}.run-review-diagnostic-tags em[data-tone=critical]{color:#ffdbe2;border-color:#ff3f6847}.run-review-diagnostic-tags em[data-tone=combat]{color:#dffcff;border-color:#20f4ff3d}.run-review-diagnostic-tags b{min-width:0;color:var(--ink);text-overflow:ellipsis;overflow:hidden}.run-review-export-summary{min-width:0;color:color-mix(in srgb, var(--cyan), var(--muted) 38%);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:.58rem;font-weight:820;display:block;overflow:hidden}.run-review-archive[data-scorecard-tone=stable] .run-review-export-summary{color:color-mix(in srgb, var(--lime), var(--muted) 30%)}.run-review-archive[data-scorecard-tone=watch] .run-review-export-summary{color:color-mix(in srgb, var(--amber), var(--muted) 28%)}.run-review-archive[data-scorecard-tone=critical] .run-review-export-summary{color:#ffdbe2}.run-review-export-actions{grid-template-columns:minmax(0,.78fr) minmax(0,.7fr) minmax(0,.78fr) minmax(0,1.28fr);align-items:center;gap:6px;min-width:0;display:grid}.run-review-export-button{min-width:0;min-height:30px;color:var(--ink);font:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:linear-gradient(135deg,#20f4ff21,#9c7cff14),#ffffff0e;border:1px solid #20f4ff38;border-radius:8px;padding:0 9px;font-size:.62rem;font-weight:920;overflow:hidden}.run-review-export-button:hover:not(:disabled),.run-review-export-button:focus-visible{background:linear-gradient(135deg,#20f4ff33,#9c7cff1f),#ffffff12;border-color:#20f4ff6b}.run-review-export-button:disabled{color:color-mix(in srgb, var(--muted), transparent 16%);cursor:default;border-color:#f7fbff1f}.run-review-export-status{min-width:0;color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;font-weight:820;overflow:hidden}.run-review-export-status[data-tone=ready]{color:#ecffd0}.run-review-export-status[data-tone=error]{color:#ffdbe2}.run-review-debug-panel{background:linear-gradient(135deg,#20f4ff14,#9c7cff0f),#04080e9e;border:1px solid #20f4ff2e;border-radius:8px;gap:7px;min-width:0;max-height:136px;padding:8px;display:grid;overflow:auto;box-shadow:inset 0 0 0 1px #f7fbff0b}.run-review-debug-panel[data-tone=stable]{border-color:#9cff4a38}.run-review-debug-panel[data-tone=watch]{border-color:#ffca3a42}.run-review-debug-panel[data-tone=critical]{border-color:#ff3f6857}.run-review-debug-head{grid-template-columns:minmax(90px,.82fr) auto;gap:3px 8px;min-width:0;display:grid}.run-review-debug-head strong,.run-review-debug-head span,.run-review-debug-head em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.run-review-debug-head strong{color:var(--ink);font-size:.68rem;font-weight:940}.run-review-debug-head span{color:color-mix(in srgb, var(--cyan), var(--muted) 25%);text-align:right;font-size:.56rem;font-weight:860}.run-review-debug-head em{color:var(--muted);grid-column:1/-1;font-size:.58rem;font-style:normal;font-weight:780}.run-review-debug-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.run-review-debug-metrics span,.run-review-debug-lane span{min-width:0;min-height:24px;color:var(--muted);background:#ffffff0b;border:1px solid #f7fbff1f;border-radius:8px;align-content:center;gap:2px;padding:3px 5px;display:grid}.run-review-debug-metrics span[data-tone=stable],.run-review-debug-lane span[data-tone=stable]{border-color:#9cff4a38}.run-review-debug-metrics span[data-tone=watch],.run-review-debug-lane span[data-tone=watch]{border-color:#ffca3a3d}.run-review-debug-metrics span[data-tone=critical],.run-review-debug-lane span[data-tone=critical]{border-color:#ff3f684d}.run-review-debug-metrics span[data-tone=combat],.run-review-debug-lane span[data-tone=combat]{border-color:#20f4ff3d}.run-review-debug-metrics b,.run-review-debug-metrics em,.run-review-debug-lane b,.run-review-debug-lane em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.run-review-debug-metrics b,.run-review-debug-lane b{color:var(--ink);font-size:.62rem;line-height:1}.run-review-debug-metrics em,.run-review-debug-lane em{color:var(--muted);font-size:.5rem;font-style:normal;font-weight:800}.run-review-debug-lanes{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;min-width:0;display:grid}.run-review-debug-lane{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;min-width:0;display:grid}.run-review-debug-lane strong,.run-review-debug-lane p{text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;min-width:0;overflow:hidden}.run-review-debug-lane strong{color:var(--ink);font-size:.58rem;font-weight:900}.run-review-debug-lane p{color:var(--muted);margin:0;font-size:.52rem;font-weight:760}.run-review-playback-rail{background:linear-gradient(90deg, #20f4ff2e 0 var(--playback-progress,0%), #ffffff08 var(--playback-progress,0%) 100%), #ffffff0a;border:1px solid #20f4ff29;border-radius:8px;grid-column:1/-1;min-width:0;height:24px;position:relative;overflow:hidden}.run-review-playback-rail i{top:3px;bottom:3px;left:var(--playback-progress,0%);background:var(--cyan);border-radius:999px;width:2px;position:absolute;transform:translate(-1px);box-shadow:0 0 10px #20f4ff80}.run-review-debug-lane .run-review-playback-marker{top:50%;left:var(--marker-progress,0%);border-radius:6px;place-items:center;width:16px;height:16px;min-height:16px;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.run-review-debug-lane .run-review-playback-marker b{max-width:14px;font-size:.45rem;line-height:1}.run-review-debug-digest{min-width:0;color:color-mix(in srgb, var(--cyan), var(--muted) 32%);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.56rem;font-weight:800;display:none;overflow:hidden}.run-review-archive[data-debug-expanded=true] .run-review-archive-list{display:none}.run-review-card{background:linear-gradient(135deg,#20f4ff14,#9c7cff0f),#ffffff0b;border:1px solid #f7fbff29;border-radius:8px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:66px;padding:9px;display:grid}.run-review-card[data-outcome=victory]{border-color:#9cff4a47}.run-review-card[data-outcome=defeat]{border-color:#ffca3a47}.run-review-rating{width:44px;height:44px;color:var(--ink);background:radial-gradient(circle at 50% 42%,#ffca3a38,#0000 62%),#ffffff12;border:1px solid #ffca3a6b;border-radius:8px;place-items:center;font-size:1rem;font-weight:980;display:grid}.run-review-copy{gap:2px;min-width:0;display:grid}.run-review-copy strong{min-width:0;color:var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px;font-size:.78rem;display:grid}.run-review-copy strong,.run-review-copy span,.run-review-copy em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.run-review-copy em{color:var(--muted);font-size:.62rem;font-style:normal;font-weight:780}.run-review-copy span{color:var(--muted);font-size:.64rem;font-weight:740;line-height:1.2}.level-run-review{background:linear-gradient(135deg,#20f4ff24,#9c7cff14),#ffffff12;flex-basis:100%;color:var(--ink)!important;border-color:#20f4ff40!important}.level-run-review[data-outcome=victory]{border-color:#9cff4a47!important}.level-run-review[data-outcome=defeat]{border-color:#ffca3a47!important}.level-panel{padding:18px}.panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.level-card{border:1px solid var(--line);min-height:164px;color:var(--ink);text-align:left;background:#ffffff14;border-radius:8px;flex-direction:column;padding:14px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.level-card:before{content:"";background:linear-gradient(135deg, var(--field-a), transparent 48%), radial-gradient(circle at 82% 18%, var(--field-b), transparent 32%);opacity:.86;position:absolute;inset:0}.level-card>*{position:relative}.level-card-head{grid-template-columns:minmax(0,1fr) 38px;align-items:start;gap:10px;margin-bottom:8px;display:grid}.level-card strong{margin:0;font-size:1.02rem;line-height:1.18;display:block}.level-icon{width:38px;height:38px;color:var(--field-color);filter:drop-shadow(0 0 9px color-mix(in srgb, var(--field-color), transparent 62%))}.level-icon-hull{fill:color-mix(in srgb, var(--field-color), transparent 78%);stroke:var(--field-color);stroke-width:1.7px}.level-icon-mark{fill:none;stroke:var(--field-accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.level-icon-mark circle,.level-icon-mark polygon{fill:color-mix(in srgb, var(--field-accent), transparent 84%)}.level-card p{color:var(--muted);margin:0;font-size:.76rem;font-weight:720;line-height:1.35}.level-card .level-meta{align-items:flex-start;gap:8px;margin-top:auto;padding-top:14px}.level-meta .level-best{color:var(--field-color);flex-basis:100%;margin-top:2px;line-height:1.18}.level-meta .level-best.is-record{border-color:color-mix(in srgb, var(--field-color), white 18%);color:var(--ink);background:linear-gradient(135deg, color-mix(in srgb, var(--field-color), transparent 70%), #ffffff14), #ffffff14;box-shadow:0 0 16px color-mix(in srgb, var(--field-color), transparent 76%), inset 0 0 0 1px #ffffff14}.overlay{background:#00000038}.dialog{text-align:center;max-width:460px;padding:24px}#resultOverlay .dialog{max-width:620px;max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:linear-gradient(135deg, #20f4ff1f, #9cff4a0f 48%, #ff4fd814), var(--panel-strong);border-color:#20f4ff3d;grid-template-rows:auto auto auto minmax(0,1fr) auto;display:grid}#resultOverlay[data-outcome=defeat] .dialog{background:linear-gradient(135deg, #ff3f6821, #ffca3a0f 48%, #9c7cff14), var(--panel-strong);border-color:#ff3f6857}.dialog-actions{justify-content:center}.result-line{color:var(--muted);margin:14px 0 0;font-weight:760}.result-details{overscroll-behavior:contain;text-align:left;min-height:0;margin-top:16px;padding-right:2px;overflow:auto}.result-report{grid-template-columns:112px minmax(0,1fr) minmax(196px,.9fr);align-items:stretch;gap:10px;display:grid}.result-rating,.result-chip{border:1px solid var(--line);background:#ffffff12;border-radius:8px;min-width:0;padding:10px}.result-rating{text-align:center;background:radial-gradient(circle at 50% 42%,#ffca3a33,#0000 58%),#ffffff12;border-color:#ffca3a75;place-items:center;min-height:112px;display:grid;box-shadow:0 0 22px #ffca3a1f,inset 0 0 0 1px #ffffff14}.result-rating strong{font-size:2.25rem;line-height:.9}.result-rating span{color:var(--muted);font-size:.72rem;font-weight:860}.result-track{gap:8px;display:grid}.result-track-row{border:1px solid var(--line);background:linear-gradient(135deg,#20f4ff14,#ffffff0b),#ffffff0f;border-radius:8px;grid-template-columns:minmax(72px,1fr) auto;align-content:center;gap:8px;min-height:52px;padding:10px;display:grid}.result-track-row span,.result-track-row b{white-space:nowrap;min-width:0}.result-track-row span{color:var(--muted);font-size:.72rem;font-weight:800}.result-track-row b{color:var(--ink);font-size:.78rem;font-weight:920}.result-track-row i{background:#ffffff14;border-radius:999px;grid-column:1/-1;height:7px;overflow:hidden;box-shadow:inset 0 0 8px #00000057}.result-track-row em{height:100%;width:var(--wave-ratio);border-radius:inherit;background:linear-gradient(90deg, var(--cyan), var(--violet)), var(--cyan);display:block;box-shadow:0 0 14px #20f4ff38}.result-track-row em[data-kind=core]{width:var(--core-ratio);background:linear-gradient(90deg, var(--lime), var(--cyan)), var(--lime);box-shadow:0 0 14px #9cff4a33}.result-mvp{border-color:color-mix(in srgb, var(--tower-color,var(--cyan)), transparent 54%);background:linear-gradient(135deg, color-mix(in srgb, var(--tower-color,var(--cyan)), transparent 84%), #ffffff0f), #fff1;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;display:grid;position:relative}.result-mvp:after{content:"";background:linear-gradient(90deg, var(--tower-color,var(--cyan)) var(--mvp-share), transparent var(--mvp-share));opacity:.72;border-radius:999px;height:3px;position:absolute;bottom:8px;left:10px;right:10px}.result-mvp .tower-icon{width:38px;height:38px;position:static;transform:none}.result-mvp div{min-width:0}.result-threat{border-color:color-mix(in srgb, var(--enemy-color,var(--cyan)), transparent 52%);background:linear-gradient(135deg, color-mix(in srgb, var(--enemy-color,var(--cyan)), transparent 84%), color-mix(in srgb, var(--enemy-accent,var(--enemy-color,var(--cyan))), transparent 90%)), #fff1;min-height:62px;box-shadow:0 0 16px color-mix(in srgb, var(--enemy-accent,var(--enemy-color,var(--cyan))), transparent 86%), inset 0 0 0 1px #ffffff0f;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;display:grid}.result-threat[data-role=boss],.result-threat[data-role=jammer]{border-color:color-mix(in srgb, var(--enemy-accent,var(--enemy-color,var(--cyan))), white 10%)}.result-threat-icon{place-items:center;width:38px;height:38px;display:grid}.result-threat .enemy-icon{width:32px;height:32px}.result-threat div{min-width:0}.result-chip.is-combat{background:linear-gradient(135deg,#20f4ff1f,#9c7cff17),#fff1;border-color:#20f4ff57}.result-archive{background:linear-gradient(135deg,#f7fbff14,#20f4ff0f),#ffffff0e;border-color:#f7fbff33}.result-archive[data-outcome=victory]{border-color:#9cff4a47}.result-archive[data-outcome=defeat]{border-color:#ffca3a4d}.result-archive-list{gap:4px;margin-top:8px;display:grid}.result-archive-list em{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:#ffffff0b;border:1px solid #f7fbff21;border-radius:8px;padding:5px 7px;font-size:.62rem;font-style:normal;font-weight:780;display:block;overflow:hidden}.result-archive-list em[data-outcome=victory]{border-color:#9cff4a38}.result-archive-list em[data-outcome=defeat]{border-color:#ffca3a3d}.result-chip.is-warning{background:linear-gradient(135deg,#ffca3a21,#ff4fd814),#ffffff12;border-color:#ffca3a61}.result-chip.is-contract{background:linear-gradient(135deg,#20f4ff1f,#9cff4a17),#fff1;border-color:#9cff4a57;box-shadow:inset 0 1px #ffffff14}.result-chip strong,.result-chip span{overflow-wrap:anywhere;min-width:0;display:block}.result-chip strong{color:var(--ink);font-size:.78rem}.result-chip span{color:var(--muted);margin-top:4px;font-size:.7rem;font-weight:760;line-height:1.25}@media (max-width:1040px){.topbar{grid-template-columns:minmax(180px,1fr) auto}.combat-telemetry{display:none!important}.resource-strip{grid-area:2/1/auto/-1}.tower-dock{top:auto;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));gap:8px;width:auto;max-height:118px;display:flex;overflow:auto hidden}.app[data-dock-side=left] .tower-dock,.app[data-dock-side=right] .tower-dock{left:12px;right:12px}.dock-toggle{top:auto;left:auto;right:12px;bottom:calc(204px + env(safe-area-inset-bottom))}.app[data-dock-side=left] .dock-toggle,.app[data-dock-side=right] .dock-toggle{left:auto;right:12px}.dock-side-toggle{display:none}.app.is-dock-collapsed .tower-dock,.app[data-dock-side=left].is-dock-collapsed .tower-dock,.app[data-dock-side=right].is-dock-collapsed .tower-dock{transform:translateY(calc(100% + 18px))}.app.is-dock-collapsed .dock-toggle,.app[data-dock-side=left].is-dock-collapsed .dock-toggle,.app[data-dock-side=right].is-dock-collapsed .dock-toggle{left:auto;right:12px;bottom:calc(78px + env(safe-area-inset-bottom))}.tower-card{flex:0 0 188px;width:188px;margin-bottom:0}.app[data-screen=playing] .tower-card{flex:0 0 74px;width:74px;min-height:76px;padding:6px 5px 22px}.app[data-screen=playing] .tower-card:after{height:2px;bottom:5px;left:7px;right:7px}.app[data-screen=playing] .tower-card strong,.app[data-screen=playing] .tower-card span:not(.tower-cost):not(.tower-icon):not(.tower-shortcut):not(.tower-profile):not(.tower-role-chip){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app[data-screen=playing] .tower-icon{width:30px;height:30px;top:22px;left:50%;transform:translate(-50%)}.app[data-screen=playing] .tower-profile{display:none}.app[data-screen=playing] .tower-card .tower-shortcut{text-align:center;font-variant-numeric:tabular-nums;border-radius:5px;place-items:center;width:17px;height:17px;margin:0;font-size:.58rem;line-height:1;display:grid;top:4px;left:4px}.app[data-screen=playing] .tower-card .tower-role-chip{border-radius:5px;width:22px;height:17px;padding:0 2px;font-size:.48rem;top:4px;left:auto;right:4px}.app[data-screen=playing] .tower-cost{place-items:center;min-width:36px;max-width:46px;height:16px;padding:0 4px;font-size:.56rem;line-height:1;display:grid;inset:auto auto 4px 50%;transform:translate(-50%)}.app[data-screen=playing] .tower-palette-preview{top:max(118px, calc(var(--tower-preview-top) - 104px));left:clamp(118px, var(--tower-preview-left), calc(100vw - 118px));display:grid;transform:translate(-50%)translateY(8px)scale(.98)}.app[data-screen=playing] .tower-palette-preview.is-visible{transform:translate(-50%)translateY(0)scale(1)}.inspector{top:auto;left:auto;right:12px;bottom:calc(204px + env(safe-area-inset-bottom));width:min(340px,100vw - 24px)}.app[data-dock-side=left] .inspector,.app[data-dock-side=right] .inspector{left:auto;right:12px}}@media (max-width:760px){.topbar{top:calc(6px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));background:linear-gradient(180deg, #0a121cc7, #060a10a8), var(--panel);grid-template-columns:minmax(0,1fr) auto;gap:3px;width:calc(100vw - 12px);max-width:calc(100vw - 12px);min-height:54px;padding:4px;right:auto;overflow:hidden}.brand{gap:6px}.brand-mark{width:24px;height:24px}.brand-mark:before{inset:7px}.brand-mark:after{inset:10px 2px}.difficulty-chip{display:none}.brand strong{font-size:.72rem}.brand span{font-size:.58rem}.top-actions{gap:5px}.icon-button{width:28px;min-height:28px}.speed-button{min-width:34px;min-height:28px;padding:0 6px;font-size:.74rem}.resource-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%}.resource-strip span{min-width:0;min-height:20px;padding:0 3px;font-size:.52rem}#resultOverlay{place-items:start center;padding:76px 12px 12px}#resultOverlay .dialog{width:min(370px,100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:14px}#resultOverlay .kicker{margin-bottom:6px;font-size:.68rem}#resultOverlay h2{font-size:2rem}#resultOverlay .result-line{margin-top:8px;font-size:.88rem}.result-details{margin-top:10px}.result-report{grid-template-columns:minmax(0,1fr);gap:7px}.result-rating{grid-template-columns:auto minmax(0,1fr);place-items:center start;min-height:48px;padding:8px 12px}.result-rating strong{font-size:1.6rem}.result-track{gap:5px}.result-track-row{min-height:42px;padding:7px}.result-mvp,.result-threat{min-height:54px}.result-threat-icon{width:34px;height:34px}.result-threat .enemy-icon{width:28px;height:28px}.result-chip{padding:8px}#resultOverlay .dialog-actions{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr) minmax(0,.85fr);align-self:end;gap:7px;margin-top:12px;display:grid}#resultOverlay .dialog-actions .primary-button,#resultOverlay .dialog-actions .ghost-button{width:auto;min-width:0;min-height:34px;padding:0 8px;font-size:.84rem}#resultOverlay .result-archive-list{display:none}.tower-dock{z-index:30;width:calc(100vw - 16px);max-width:calc(100vw - 16px);top:auto;left:8px;right:8px;bottom:calc(56px + env(safe-area-inset-bottom));overscroll-behavior-x:contain;align-items:stretch;gap:7px;max-height:88px;padding:6px;display:flex;overflow:auto hidden}.app[data-dock-side=left] .tower-dock,.app[data-dock-side=right] .tower-dock{left:8px;right:8px}.dock-toggle{z-index:34;top:auto;left:auto;right:calc(8px + env(safe-area-inset-right));bottom:calc(132px + env(safe-area-inset-bottom));min-width:44px;min-height:32px;padding:0 7px;font-size:.64rem}.app.is-dock-collapsed .dock-toggle{left:auto;right:calc(8px + env(safe-area-inset-right));bottom:calc(56px + env(safe-area-inset-bottom))}.app.has-selected-tower .dock-toggle{bottom:calc(132px + env(safe-area-inset-bottom))}.app.has-selected-tower.is-dock-collapsed .dock-toggle{bottom:calc(126px + env(safe-area-inset-bottom))}.app.has-selected-tower.is-inspector-expanded.is-dock-collapsed .dock-toggle{bottom:calc(182px + env(safe-area-inset-bottom))}.app[data-dock-side=left] .dock-toggle,.app[data-dock-side=right] .dock-toggle,.app[data-dock-side=left].is-dock-collapsed .dock-toggle,.app[data-dock-side=right].is-dock-collapsed .dock-toggle{left:auto;right:calc(8px + env(safe-area-inset-right))}.app[data-dock-side=left].is-dock-collapsed .dock-toggle,.app[data-dock-side=right].is-dock-collapsed .dock-toggle{bottom:calc(56px + env(safe-area-inset-bottom))}.app[data-dock-side=left].has-selected-tower .dock-toggle,.app[data-dock-side=right].has-selected-tower .dock-toggle{bottom:calc(132px + env(safe-area-inset-bottom))}.app[data-dock-side=left].has-selected-tower.is-dock-collapsed .dock-toggle,.app[data-dock-side=right].has-selected-tower.is-dock-collapsed .dock-toggle{bottom:calc(126px + env(safe-area-inset-bottom))}.app[data-dock-side=left].has-selected-tower.is-inspector-expanded.is-dock-collapsed .dock-toggle,.app[data-dock-side=right].has-selected-tower.is-inspector-expanded.is-dock-collapsed .dock-toggle{bottom:calc(182px + env(safe-area-inset-bottom))}.tower-card{flex:0 0 146px;width:146px;min-height:74px;margin:0;padding:6px 7px 16px 43px}.tower-icon{width:30px;height:30px;top:7px;left:7px}.tower-card .tower-role-chip{border-radius:4px;width:28px;height:14px;padding:0 2px;font-size:.43rem;top:39px;left:8px}.tower-card strong{font-size:.7rem}.tower-card span{font-size:.58rem}.tower-cost{font-size:.62rem;top:7px;right:7px}.inspector{z-index:31;top:auto;left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));bottom:calc(50px + env(safe-area-inset-bottom));width:calc(100vw - 16px);max-width:calc(100vw - 16px);min-height:0;max-height:76px;padding:5px;display:none;overflow:hidden}.app.is-dock-collapsed.has-selected-tower .inspector{z-index:35;bottom:calc(94px + env(safe-area-inset-bottom));display:block}.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .inspector{max-height:96px;display:block;overflow:hidden}.app.is-dock-collapsed.is-intel-expanded .inspector{max-height:142px;display:block;overflow:auto}.app.has-selected-tower:not(.is-dock-collapsed) .inspector{display:none}.app.is-intel-expanded .inspector-empty,.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .inspector-empty{text-align:left;place-content:stretch;gap:5px;min-height:0}.app.is-intel-expanded .wave-threat-strip,.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .wave-threat-strip{justify-content:flex-start;gap:5px}.app.is-intel-expanded .enemy-chip,.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .enemy-chip{min-height:24px;padding:0 6px}.app.is-intel-expanded .enemy-chip b,.app.is-intel-expanded .enemy-chip small,.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .enemy-chip b,.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .enemy-chip small{font-size:.58rem}.app.is-intel-expanded .enemy-chip b,.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .enemy-chip b{max-width:112px}.app.is-intel-expanded .inspector-empty em{font-size:.58rem;line-height:1.22}.app.is-dock-collapsed.is-wave-running:not(.has-selected-tower):not(.has-selected-blueprint) .inspector-empty em{display:none}.app[data-dock-side=left] .inspector,.app[data-dock-side=right] .inspector{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right))}.inspector h3{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;line-height:1.1;overflow:hidden}.inspector-head{gap:5px;margin-bottom:4px}.inspector-status-badge{min-width:38px;max-width:68px;min-height:22px;padding:0 5px;font-size:.54rem}.inspector-toggle-button{justify-content:center;align-items:center;min-width:44px;min-height:24px;padding:0 6px;display:inline-flex}.inspector p{display:none}.tower-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:4px 0;display:none}.upgrade-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:4px 0;padding:4px;display:none}.upgrade-preview strong{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.upgrade-preview span{gap:3px;font-size:.54rem}.upgrade-preview b{font-size:.56rem}.tower-stat{min-height:22px;padding:0 4px;font-size:.54rem}.target-row{gap:4px;margin-bottom:4px;display:none}.target-row button{gap:3px;min-height:24px;padding:0 4px;font-size:.58rem}.target-mode-icon{flex-basis:15px;width:15px;height:15px}.inspector-actions{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1fr);gap:4px;margin:0 0 4px}.inspector-actions:has(.overdrive-button:disabled){grid-template-columns:1fr 1fr}.inspector-actions .primary-button,.inspector-actions .ghost-button{min-height:30px;padding:0 6px;font-size:.62rem}.app.is-inspector-expanded .inspector{max-height:min(210px,100dvh - 170px);overflow:auto}.app.is-inspector-expanded .inspector p{max-height:2.4em;margin:3px 0 5px;font-size:.58rem;line-height:1.2;display:block;overflow:hidden}.app.is-inspector-expanded .tower-stats,.app.is-inspector-expanded .upgrade-preview,.app.is-inspector-expanded .target-row{display:grid}.overdrive-button{grid-column:auto}.overdrive-button:disabled{display:none}.command-bar{left:calc(8px + env(safe-area-inset-left));bottom:calc(6px + env(safe-area-inset-bottom));background:linear-gradient(180deg, #070c12d1, #06090eeb), var(--panel-strong);grid-template-columns:minmax(0,1fr) minmax(78px,auto);gap:5px;width:calc(100vw - 16px);max-width:calc(100vw - 16px);min-height:44px;padding:5px;transform:none}.app.has-selection-chip .command-bar{grid-template-columns:minmax(0,1fr) minmax(78px,auto);min-height:78px}.app.has-selection-chip .wave-button{grid-area:1/1}.app.has-selection-chip .command-bar .ghost-button{grid-area:1/2}.app.has-selection-chip .selection-chip{grid-area:2/1/auto/-1}.command-bar .primary-button,.command-bar .ghost-button{min-height:32px;padding:0 8px;font-size:.68rem}.command-bar .ghost-button{min-width:78px}.wave-button{min-width:0}.wave-button[data-wave-state=running]:after{content:none;display:none}.wave-status{display:none}#hintText{min-width:0;max-height:1.24em;color:var(--muted);white-space:nowrap;grid-column:1/-1;font-size:.62rem;font-weight:760;line-height:1.2;display:none}.selection-chip.is-visible{grid-template-columns:28px auto minmax(0,1fr) auto;gap:6px;min-height:32px;padding:3px 6px 3px 4px}.selection-chip-icon{border-radius:6px;width:26px;height:26px;padding:2px}.selection-chip-role{border-radius:5px;min-width:24px;max-width:32px;min-height:18px;padding:0 3px;font-size:.49rem}.selection-chip-copy strong{font-size:.68rem}.selection-chip-copy span,.selection-chip em{font-size:.56rem}.app.has-selected-tower .command-bar{min-height:44px}.app.has-selected-tower #hintText{display:none}.screen,.overlay{place-items:start;padding:136px 12px 194px}.menu-panel{width:min(350px,100vw - 24px);max-width:calc(100vw - 24px);padding:22px}.menu-visual{gap:6px;margin-top:12px}.menu-battlefield-preview{min-height:96px}.menu-visual-readout{gap:5px}.menu-visual-readout span{text-align:center;white-space:normal;min-height:24px;padding:4px 5px;font-size:.58rem}.level-panel,.dialog{width:min(350px,100vw - 24px);max-width:calc(100vw - 24px)}h1{font-size:clamp(2.15rem,11vw,3rem);line-height:1.02}.menu-actions,.dialog-actions{grid-template-columns:1fr;display:grid}.primary-button,.ghost-button{min-width:0}.menu-actions .primary-button,.menu-actions .ghost-button,.dialog-actions .primary-button,.dialog-actions .ghost-button{width:100%}.menu-badges{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.menu-badges span{text-align:center;white-space:normal;justify-content:center;min-height:34px;padding:0 7px;font-size:.7rem;line-height:1.12}.run-review-archive{gap:8px;margin-top:14px}.run-review-archive-head{align-items:start}.run-review-archive-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.run-review-archive-stats span{min-height:34px;padding:5px 3px}.run-review-archive-stats b{font-size:.72rem}.run-review-archive-stats em{font-size:.5rem}.run-review-diagnostic{grid-template-columns:minmax(0,1fr);gap:4px;padding:8px}.run-review-diagnostic span{font-size:.6rem}.run-review-diagnostic-tags{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.run-review-diagnostic-tags em{min-height:22px;padding:0 4px;font-size:.52rem}.run-review-export-summary{display:none}.run-review-export-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.run-review-export-button{min-height:26px;padding:0 6px;font-size:.56rem}.run-review-export-status{text-align:left;grid-column:1/-1;font-size:.52rem}.run-review-export-status[data-tone=idle]{display:none}.run-review-debug-panel{gap:6px;padding:8px}.run-review-debug-head{grid-template-columns:minmax(0,1fr)}.run-review-debug-head span{text-align:left}.run-review-debug-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.run-review-debug-lanes{grid-template-columns:minmax(0,1fr);gap:6px}.run-review-debug-lane{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.run-review-debug-digest{font-size:.52rem}.run-review-archive-list{display:none}.run-review-card{grid-template-columns:38px minmax(0,1fr);gap:8px;min-height:58px;padding:8px}.run-review-rating{width:38px;height:38px;font-size:.86rem}.run-review-copy strong{grid-template-columns:minmax(0,1fr);gap:1px}.level-panel{max-height:calc(100dvh - 160px);overflow:auto}.level-grid{grid-template-columns:1fr}.level-card{min-height:130px}.level-card-head{grid-template-columns:minmax(0,1fr) 34px}.level-icon{width:34px;height:34px}}@media (max-height:560px) and (orientation:landscape){.topbar{min-height:46px}.resource-strip span{min-height:28px}.screen,.overlay{padding-top:74px}.menu-panel{padding:20px}.menu-visual{margin-top:8px}.menu-battlefield-preview{min-height:78px}.menu-visual-readout{display:none}.tower-dock{max-height:102px;bottom:calc(72px + env(safe-area-inset-bottom))}.app[data-screen=playing].has-selection-chip:not(.is-dock-collapsed) .tower-dock{bottom:calc(96px + env(safe-area-inset-bottom));max-height:92px}.dock-toggle{bottom:calc(182px + env(safe-area-inset-bottom))}.app.is-dock-collapsed .dock-toggle{bottom:calc(72px + env(safe-area-inset-bottom))}.inspector{bottom:calc(184px + env(safe-area-inset-bottom));max-height:136px}.app.is-dock-collapsed.has-selected-tower .inspector{z-index:35;bottom:calc(112px + env(safe-area-inset-bottom))}.command-bar{min-height:58px}#hintText{display:none}}@media (max-width:760px) and (orientation:portrait){.app[data-screen=playing] .topbar{top:calc(6px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#080e1694,#05090e75),#05080d8a;border-color:#20f4ff33;grid-template-columns:24px minmax(0,1fr) auto;gap:4px;width:auto;max-width:none;min-height:38px;padding:4px;box-shadow:0 10px 32px #00000038,inset 0 0 0 1px #20f4ff0f}.app[data-screen=playing] .brand{gap:0;min-width:24px}.app[data-screen=playing] .brand div{display:none}.app[data-screen=playing] .brand-mark{width:24px;height:24px}.app[data-screen=playing] .resource-strip{grid-area:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;width:auto}.app[data-screen=playing] .resource-strip span{background:#fff1;border-color:#ffffff1f;min-height:26px;padding:0 3px;font-size:.56rem}.app[data-screen=playing] .top-actions{gap:4px}.app[data-screen=playing] .icon-button,.app[data-screen=playing] .speed-button{background:#ffffff14;border-color:#ffffff29;min-height:26px}.app[data-screen=playing] .icon-button{width:28px}.app[data-screen=playing] .speed-button{min-width:34px;padding:0 5px;font-size:.68rem}.app[data-screen=playing] .tower-dock{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));bottom:calc(56px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#20f4ff21,#ff4fd80f),#05090eb8;border-color:#20f4ff42;gap:6px;width:auto;max-width:none;max-height:88px;padding:6px;box-shadow:0 12px 34px #00000052,inset 0 0 0 1px #ffffff0f}.app[data-screen=playing].has-selection-chip:not(.is-dock-collapsed) .tower-dock{bottom:calc(96px + env(safe-area-inset-bottom));max-height:88px}.app[data-screen=playing][data-dock-side=left] .tower-dock,.app[data-screen=playing][data-dock-side=right] .tower-dock{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right))}.app[data-screen=playing] .tower-card{flex:0 0 66px;width:66px;min-height:76px;padding:4px 4px 20px;overflow:hidden}.app[data-screen=playing] .tower-card:after{height:2px;bottom:5px;left:7px;right:7px}.app[data-screen=playing] .tower-card strong,.app[data-screen=playing] .tower-card span:not(.tower-cost):not(.tower-icon):not(.tower-shortcut):not(.tower-role-chip){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app[data-screen=playing] .tower-icon{width:30px;height:30px;top:23px;left:50%;transform:translate(-50%)}.app[data-screen=playing] .tower-profile{display:none}.app[data-screen=playing] .tower-card .tower-shortcut{text-align:center;font-variant-numeric:tabular-nums;border-radius:5px;place-items:center;width:16px;height:16px;margin:0;font-size:.56rem;line-height:1;display:grid;top:3px;left:3px}.app[data-screen=playing] .tower-card .tower-role-chip{border-radius:5px;width:20px;height:16px;padding:0 1px;font-size:.45rem;top:3px;left:auto;right:3px}.app[data-screen=playing] .tower-cost{place-items:center;min-width:36px;max-width:50px;height:16px;padding:0 4px;font-size:.56rem;line-height:1;display:grid;inset:auto auto 4px 50%;transform:translate(-50%)}.app[data-screen=playing] .tower-palette-preview{max-width:min(272px,100vw - 16px);min-height:48px;top:max(72px, calc(var(--tower-preview-top) - 104px));left:clamp(104px, var(--tower-preview-left), calc(100vw - 104px));grid-template-columns:34px auto minmax(0,1fr) auto;gap:7px;padding:6px 7px}.app[data-screen=playing] .tower-palette-preview-icon{width:32px;height:32px;padding:3px}.app[data-screen=playing] .tower-palette-preview-role{border-radius:5px;min-width:24px;max-width:31px;min-height:18px;padding:0 3px;font-size:.49rem}.app[data-screen=playing] .tower-palette-preview-copy strong{font-size:.72rem}.app[data-screen=playing] .tower-palette-preview-copy span,.app[data-screen=playing] .tower-palette-preview em{font-size:.58rem}.app[data-screen=playing] .dock-toggle{z-index:34;right:calc(8px + env(safe-area-inset-right));bottom:calc(118px + env(safe-area-inset-bottom));background:linear-gradient(135deg,#20f4ff33,#ff4fd81f),#05090ec2;border-color:#20f4ff6b;width:42px;min-width:42px;min-height:36px;padding:0 6px;box-shadow:0 12px 32px #0000004d,inset 0 0 0 1px #ffffff12}.app[data-screen=playing].is-dock-collapsed .tower-dock{opacity:0;transform:translateY(calc(100% + 14px))}.app[data-screen=playing].is-dock-collapsed .dock-toggle,.app[data-screen=playing][data-dock-side=left].is-dock-collapsed .dock-toggle,.app[data-screen=playing][data-dock-side=right].is-dock-collapsed .dock-toggle{right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));width:42px;min-width:42px;min-height:42px}.app[data-screen=playing] .command-bar{left:50%;bottom:calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#080e12a8,#05080cd1),#05080d94;border-color:#9cff4a42;grid-template-columns:minmax(0,1fr);gap:4px;width:min(232px,100vw - 112px);min-height:42px;padding:4px;transform:translate(-50%);box-shadow:0 10px 30px #00000047,inset 0 0 0 1px #ffffff0f}.app[data-screen=playing].has-selection-chip .command-bar{grid-template-columns:minmax(0,1fr) minmax(66px,auto);width:min(292px,100vw - 108px);min-height:78px}.app[data-screen=playing].has-command-secondary .command-bar{grid-template-columns:minmax(0,1fr) minmax(66px,auto);width:min(292px,100vw - 108px)}.app[data-screen=playing]:not(.has-command-secondary) .command-bar .ghost-button{display:none}.app[data-screen=playing] .command-bar .primary-button,.app[data-screen=playing] .command-bar .ghost-button{min-height:34px;padding:0 8px;font-size:.68rem}.app[data-screen=playing] .command-bar .ghost-button{min-width:66px}.app[data-screen=playing].has-selection-chip .selection-chip{grid-area:2/1/auto/-1;grid-template-columns:28px auto minmax(0,1fr) auto;gap:6px;min-height:32px;padding:3px 6px 3px 4px}.app[data-screen=playing].has-selection-chip:not(.is-dock-collapsed) .dock-toggle{bottom:calc(176px + env(safe-area-inset-bottom))}.app[data-screen=playing] .wave-button{width:100%;min-width:0}.app[data-screen=playing].has-selected-tower .command-bar{min-height:42px}.app[data-screen=playing] .inspector{left:calc(8px + env(safe-area-inset-left));right:auto;bottom:calc(56px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffca3a14,#20f4ff0d),#05080dbd;border-color:#ffca3a3d;width:min(318px,100vw - 72px);max-width:min(318px,100vw - 72px);max-height:74px;padding:5px;box-shadow:0 12px 34px #00000052,inset 0 0 0 1px #ffffff0f}.app[data-screen=playing].has-selection-chip .inspector{bottom:calc(94px + env(safe-area-inset-bottom))}.app[data-screen=playing][data-dock-side=left] .inspector,.app[data-screen=playing][data-dock-side=right] .inspector{left:calc(8px + env(safe-area-inset-left));right:auto}.app[data-screen=playing].is-dock-collapsed.has-selected-tower .inspector{z-index:35;bottom:calc(110px + env(safe-area-inset-bottom));display:block}.app[data-screen=playing].is-dock-collapsed.is-intel-expanded .inspector{right:calc(8px + env(safe-area-inset-right));background:linear-gradient(#20f4ff1a,#9cff4a0f),#05080dc7;border-color:#20f4ff4d;width:auto;max-width:none;max-height:144px;display:block;overflow:auto}.app[data-screen=playing].has-selected-tower:not(.is-dock-collapsed) .inspector{display:none}.app[data-screen=playing] .inspector h3{font-size:.68rem}.app[data-screen=playing] .inspector-head{margin-bottom:4px}.app[data-screen=playing] .inspector-toggle-button{min-width:42px;min-height:22px;padding:0 5px;font-size:.58rem}.app[data-screen=playing] .inspector-actions{grid-template-columns:minmax(0,1fr) minmax(58px,.72fr) minmax(0,1fr);gap:4px}.app[data-screen=playing] .inspector[data-tower-status=building]{grid-template-rows:minmax(30px,auto) minmax(28px,auto);align-content:start;gap:5px;min-height:84px;max-height:88px;padding-bottom:6px;display:grid;overflow:visible}.app[data-screen=playing] .inspector[data-tower-status=building] .inspector-head{margin-bottom:0}.app[data-screen=playing] .inspector[data-tower-status=building] p,.app[data-screen=playing] .inspector[data-tower-status=building] .status-progress,.app[data-screen=playing] .inspector[data-tower-status=building] .target-row,.app[data-screen=playing] .inspector[data-tower-status=building] .tower-stats,.app[data-screen=playing] .inspector[data-tower-status=building] .upgrade-preview{display:none}.app[data-screen=playing] .inspector[data-tower-status=building] .inspector-actions{align-self:end;margin:0}.app[data-screen=playing] .build-progress{height:10px;margin:4px 0 5px}.app[data-screen=playing] .inspector-actions:has(.overdrive-button:disabled){grid-template-columns:minmax(0,1fr) minmax(58px,.72fr)}.app[data-screen=playing] .inspector-actions .primary-button,.app[data-screen=playing] .inspector-actions .ghost-button{min-height:28px;padding:0 5px;font-size:.6rem}.app[data-screen=playing].is-inspector-expanded .inspector{right:calc(8px + env(safe-area-inset-right));width:auto;max-width:none;bottom:calc(110px + env(safe-area-inset-bottom));max-height:min(218px,100dvh - 176px);overflow:auto}.app[data-screen=playing].is-inspector-expanded.has-selected-tower.is-dock-collapsed .dock-toggle{pointer-events:none;opacity:0}.app[data-screen=playing].is-inspector-expanded .tower-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.app[data-screen=playing].is-inspector-expanded .target-row{grid-template-columns:repeat(3,minmax(0,1fr))}.app[data-screen=playing].is-inspector-expanded .inspector-actions{grid-template-columns:minmax(0,1fr) minmax(64px,.78fr) minmax(0,1fr)}}@media (max-width:380px) and (orientation:portrait){.app[data-screen=playing] .resource-strip span{font-size:.52rem}.app[data-screen=playing] .command-bar .primary-button,.app[data-screen=playing] .command-bar .ghost-button{font-size:.64rem}.app[data-screen=playing] .inspector-actions .primary-button,.app[data-screen=playing] .inspector-actions .ghost-button{font-size:.56rem}}@media (max-height:700px){#resultOverlay{align-items:start;padding-top:18px;padding-bottom:12px}#resultOverlay .dialog{max-height:calc(100dvh - 30px);padding-top:14px;padding-bottom:14px;overflow:hidden}#resultOverlay .kicker{margin-bottom:5px}#resultOverlay h2{font-size:clamp(1.9rem,5vh,2.7rem)}#resultOverlay .result-line{margin-top:7px}#resultOverlay .result-details{margin-top:9px}#resultOverlay .result-report{gap:7px}#resultOverlay .result-rating{min-height:48px;padding:8px 10px}#resultOverlay .result-rating strong{font-size:1.7rem}#resultOverlay .result-track{gap:5px}#resultOverlay .result-track-row{min-height:40px;padding:7px}#resultOverlay .result-mvp,#resultOverlay .result-threat{min-height:52px}#resultOverlay .result-chip{padding:8px}#resultOverlay .result-archive-list{margin-top:5px}#resultOverlay .dialog-actions{gap:7px;margin-top:10px}#resultOverlay .dialog-actions .primary-button,#resultOverlay .dialog-actions .ghost-button{min-height:34px}}@media (max-height:700px) and (min-width:620px){#resultOverlay .dialog{width:min(620px,100vw - 24px);max-width:calc(100vw - 24px)}#resultOverlay .result-report{grid-template-columns:92px minmax(0,1fr) minmax(150px,.82fr);gap:7px}#resultOverlay .result-rating{text-align:center;grid-template-columns:minmax(0,1fr);place-items:center;min-height:82px}#resultOverlay .result-rating strong{font-size:1.85rem}#resultOverlay .result-track-row{min-height:38px}#resultOverlay .result-mvp,#resultOverlay .result-threat{min-height:50px}#resultOverlay .result-archive-list{display:none}}@media (max-width:760px){.app[data-screen=playing] .tower-dock{min-height:92px;max-height:98px;padding:7px 6px 9px}.app[data-screen=playing].has-selection-chip:not(.is-dock-collapsed) .tower-dock{bottom:calc(100px + env(safe-area-inset-bottom));max-height:98px}.app[data-screen=playing] .tower-card{min-height:80px;padding-bottom:26px}.app[data-screen=playing] .tower-card:after{bottom:7px}.app[data-screen=playing] .tower-icon{top:19px}.app[data-screen=playing] .tower-cost{min-width:38px;height:18px;padding:0 5px;font-size:.58rem;bottom:8px}.app[data-screen=playing].is-dock-collapsed.has-selected-tower .inspector,.app[data-screen=playing].is-dock-collapsed.has-selected-tower.is-inspector-expanded .inspector{z-index:35;bottom:calc(122px + env(safe-area-inset-bottom))}.app[data-screen=playing].is-dock-collapsed.has-selected-tower.is-inspector-expanded .inspector{max-height:min(218px,100dvh - 198px)}}@media (max-height:560px) and (orientation:landscape){.app[data-screen=playing] .tower-icon{top:22px}.app[data-screen=playing].is-dock-collapsed.has-selected-tower .inspector,.app[data-screen=playing].is-dock-collapsed.has-selected-tower.is-inspector-expanded .inspector{bottom:calc(116px + env(safe-area-inset-bottom))}.app[data-screen=playing].is-dock-collapsed.has-selected-tower.is-inspector-expanded .inspector{max-height:min(190px,100dvh - 166px)}.app[data-screen=playing] .tower-palette-preview{top:max(118px, calc(var(--tower-preview-top) - 132px))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.resource-strip span.is-critical,.wave-button[data-wave-state=running]{animation:none!important}.wave-button[data-wave-state=running]:after{content:none;display:none}.screen,.overlay,.tower-card:before{transform:none}}.screen-menu{isolation:isolate;background:#02050a;place-items:stretch stretch;padding:0;overflow:hidden}.screen-menu:before,.screen-menu:after{content:"";pointer-events:none;position:absolute;inset:0}.screen-menu:before{z-index:1;background:linear-gradient(90deg,#020509d6 0%,#0205099e 28%,#02050929 60%,#02050970 100%),linear-gradient(#02050957 0%,#0205090a 42%,#020509ad 100%)}.screen-menu:after{z-index:2;opacity:.36;mix-blend-mode:screen;background:linear-gradient(#ffffff06 1px,#0000 1px) 0 0/100% 5px,radial-gradient(circle at 76% 42%,#20f4ff24,#0000 28%),radial-gradient(circle at 18% 56%,#ffca3a14,#0000 32%)}.menu-hero-art{pointer-events:none;z-index:0;width:100%;height:100%;margin:0;display:block;position:absolute;inset:0;overflow:hidden}.menu-hero-art img{object-fit:cover;object-position:center center;filter:brightness(.95)contrast(1.06)saturate(.98);width:100%;height:100%;display:block}.screen-menu .menu-panel{z-index:3;width:min(520px,100vw - 48px);max-width:calc(100vw - 48px);box-shadow:none;text-shadow:0 2px 18px #000000b8;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;place-self:center start;margin:clamp(88px,13vh,132px) 0 clamp(40px,8vh,80px) clamp(24px,7vw,116px);padding:0;position:relative;overflow:visible}.screen-menu .kicker{color:#86fbff;letter-spacing:.12em;text-shadow:0 0 16px #20f4ff6b;margin-bottom:12px;font-size:.74rem}.screen-menu h1{letter-spacing:0;text-shadow:0 0 28px #20f4ff2e,0 8px 34px #000000b8;max-width:520px;font-size:clamp(3.1rem,6.4vw,5.8rem);line-height:.96}.menu-tagline{color:#d9e7f2;max-width:430px;margin:20px 0 0;font-size:1rem;font-weight:760;line-height:1.65}.screen-menu .menu-actions{gap:12px;margin-top:30px}.screen-menu .primary-button,.screen-menu .ghost-button{min-height:46px;text-shadow:none;border-radius:8px}.screen-menu .primary-button{color:#f3fdff;background:linear-gradient(135deg,#87f4ff57,#9cff4a38),#07121394;border-color:#87f4ffb8;min-width:156px;box-shadow:0 0 28px #20f4ff2e,inset 0 0 0 1px #ffffff24}.screen-menu .ghost-button{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(135deg,#f7fbff1a,#20f4ff14),#080c1270;border-color:#f7fbff57;min-width:132px}.screen-menu .difficulty-selector{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080c1261;border-color:#f7fbff2e;width:min(430px,100%);margin-top:16px;box-shadow:inset 0 0 0 1px #20f4ff0d}.screen-menu .difficulty-selector button{min-height:34px}.screen-menu .menu-badges{margin-top:14px}.screen-menu .menu-badges span{color:#c3cfdd;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#080c1257;border-color:#f7fbff29;min-height:32px}.screen-menu .run-review-archive{width:min(460px,100%);text-shadow:none;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#20f4ff1a,#ffca3a0e),#04080d7a;border:1px solid #f7fbff29;border-radius:8px;margin-top:18px;padding:12px;box-shadow:0 20px 60px #00000047,inset 0 0 0 1px #ffffff0e}.screen-menu .run-review-archive-head strong{font-size:.78rem}.screen-menu .run-review-archive-head span{font-size:.62rem}.screen-menu .run-review-archive-stats,.screen-menu .run-review-diagnostic{display:none}.screen-menu .run-review-card{background:0 0;border:0;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:0}.screen-menu .run-review-card:not(:first-child){display:none}.screen-menu .run-review-rating{min-height:44px}.screen-menu .run-review-copy span:nth-of-type(n+3){display:none}@media (max-width:760px),(max-height:620px){.screen-menu{padding:0}.screen-menu:before{background:linear-gradient(#020509c2 0%,#02050957 42%,#020509c7 100%),linear-gradient(90deg,#0205099e,#0205093d 72%,#02050980)}.menu-hero-art img{object-position:center center;filter:brightness(.86)contrast(1.06)saturate(.96)}.screen-menu .menu-panel{width:min(360px,100vw - 24px);max-width:calc(100vw - 24px);margin:calc(116px + env(safe-area-inset-top)) auto 0;text-align:center;place-self:start center;padding:0}.app:not([data-screen=playing]) .topbar{width:min(360px,100vw - 24px);min-width:0;left:50%;right:auto;transform:translate(-50%)}.app:not([data-screen=playing]) .brand{justify-content:center;width:100%}.screen-menu h1{max-width:340px;margin-inline:auto;font-size:clamp(2.55rem,12vw,3.9rem);line-height:1}.menu-tagline{max-width:330px;margin:14px auto 0;font-size:.82rem;line-height:1.5}.screen-menu .menu-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;display:grid}.screen-menu .menu-actions .primary-button,.screen-menu .menu-actions .ghost-button{width:100%;min-width:0;min-height:42px;padding:0 10px}.screen-menu .difficulty-selector{gap:5px;width:100%;margin-top:10px;padding:5px}.screen-menu .difficulty-selector button{min-height:32px;font-size:.7rem}.screen-menu .menu-badges{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:10px;display:grid}.screen-menu .menu-badges span{text-align:center;white-space:normal;justify-content:center;min-height:30px;padding:0 5px;font-size:.6rem;line-height:1.12}.screen-menu .run-review-archive{width:100%;margin-top:10px;padding:10px}.screen-menu .run-review-archive-list{display:grid}.screen-menu .run-review-archive-stats{display:none}.screen-menu .run-review-card{grid-template-columns:38px minmax(0,1fr)}.screen-menu .run-review-rating{min-height:38px;font-size:.78rem}}@media (max-height:560px) and (orientation:landscape){.screen-menu .menu-panel{width:min(520px,100vw - 24px);margin-top:calc(76px + env(safe-area-inset-top))}.screen-menu h1{max-width:none;font-size:clamp(2.1rem,7vw,3rem)}.menu-tagline{display:none}.screen-menu .menu-actions{flex-wrap:wrap;margin-top:14px;display:flex}.screen-menu .difficulty-selector,.screen-menu .menu-badges,.screen-menu .run-review-archive{width:min(420px,100%)}.screen-menu .run-review-archive{padding:8px}.screen-menu .run-review-archive-list,.screen-menu .run-review-archive-stats{display:none}}
