/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.shadow,.shadow\/profile{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--navy:#0e1930;--navy-2:#16233d;--paper:#f4f2eb;--muted:#98a8c4;--line:#d6e2ff26;--gold:#f8c56a;--mint:#8dd8d1;--coral:#ef6f6c;--font-body:Inter, "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Trebuchet MS", "Arial Rounded MT Bold", "Segoe UI", sans-serif;--surface-raised:#192f50e0;--surface-deep:#0811236b}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--navy);color:var(--paper);font-family:var(--font-body);text-rendering:optimizelegibility;margin:0}button{font:inherit}.game-shell{background:var(--navy);isolation:isolate;min-height:100svh;position:relative;overflow:hidden}.game-canvas{z-index:0;touch-action:none;cursor:grab;position:absolute;inset:0}.game-canvas:active{cursor:grabbing}.canvas-glow{pointer-events:none;z-index:1;background:radial-gradient(circle at 54% 42%,#0000 0 43%,#080f1f33 76%,#080f1fc7 100%);position:absolute;inset:0}.game-hud{z-index:4;background:linear-gradient(#0b1428f7,#0b1428c7 76%,#0000);align-items:center;gap:26px;min-height:86px;padding:16px 25px;display:flex;position:absolute;top:0;left:0;right:0}.brand-lockup{align-items:center;gap:12px;min-width:244px;display:flex}.brand-mark{width:38px;height:38px;color:var(--gold);letter-spacing:.12em;border:1px solid #f8c56ab3;border-radius:11px;place-items:center;font-size:12px;font-weight:800;display:grid;box-shadow:0 0 0 4px #f8c56a14}.eyebrow,.start-badge,.mission-kicker,.hud-label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:800}.brand-lockup h1{letter-spacing:.02em;margin:3px 0 0;font-size:15px;font-weight:700}.hud-stats{flex:1;align-items:center;gap:14px;display:flex}.hud-stat{border:1px solid var(--line);background:#16233db3;border-radius:10px;min-width:82px;padding:7px 10px}.hud-stat strong{letter-spacing:.02em;margin-top:4px;font-size:17px;display:block}.hud-stat strong small{color:var(--muted);font-size:11px;font-weight:600}.coins-value{color:var(--gold)}.coins-stat{position:relative;overflow:visible}.coins-stat.is-pulsing{animation:.42s ease-out coins-hud-pulse}.coin-flight{color:var(--gold);pointer-events:none;text-shadow:0 0 12px #f8c56ab8;font-size:11px;font-weight:900;animation:.9s cubic-bezier(.2,.75,.25,1) both coin-flight-to-hud;position:absolute;top:-17px;right:10px}@keyframes coins-hud-pulse{0%{transform:scale(1)}35%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes coin-flight-to-hud{0%{opacity:0;transform:translate(24px,18px)scale(.65)}18%{opacity:1}to{opacity:0;transform:translateY(-22px)scale(1)}}.health-stat{min-width:118px}.health-bar{background:#ef6f6c33;border-radius:999px;height:4px;margin-top:7px;overflow:hidden}.health-bar span{border-radius:inherit;background:linear-gradient(90deg,#ef6f6c,#f8c56a);height:100%;transition:width .2s;display:block}.hud-actions{align-items:center;gap:8px;display:flex}.settings-panel{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0e1930e6;border:1px solid #d6e2ff2e;border-radius:12px;width:min(312px,100% - 32px);position:absolute;bottom:26px;right:25px;box-shadow:0 18px 42px #040a184d}.settings-toggle{min-height:44px;color:var(--paper);cursor:pointer;align-items:center;gap:9px;padding:6px 10px;list-style:none;display:flex}.settings-toggle::-webkit-details-marker{display:none}.settings-toggle:after{content:"⌄";color:var(--mint);margin-left:4px;font-size:15px;line-height:1;transition:transform .2s;transform:rotate(0)}.settings-panel[open] .settings-toggle:after{transform:rotate(180deg)}.settings-toggle:hover{background:#233556b8}.settings-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}.settings-toggle-mark{width:27px;height:27px;color:var(--mint);border:1px solid #8dd8d180;border-radius:8px;place-items:center;font-size:14px;display:grid}.settings-toggle-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.settings-toggle-copy strong{letter-spacing:.08em;text-transform:uppercase;font-size:11px}.settings-toggle-copy small{color:var(--muted);font-size:9px}.settings-toggle-state{color:var(--mint);letter-spacing:.12em;text-transform:uppercase;margin-left:auto;font-size:8px;font-weight:800}.settings-panel-body{border-top:1px solid var(--line);gap:8px;padding:0 10px 10px;display:grid}.audio-control{gap:7px;padding:10px 0 0;display:grid}.audio-control-row{align-items:center;gap:7px;min-height:30px;display:flex}.settings-subheading{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.audio-toggle{min-width:70px;margin-left:auto}.audio-volume{align-items:center;width:86px;padding:0 3px;display:flex}.audio-volume input{width:100%;accent-color:var(--mint);cursor:pointer}.quality-control{align-items:center;gap:7px;min-height:34px;padding:0;display:flex}.quality-heading{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.quality-options{flex:1;justify-content:flex-end;gap:3px;display:flex}.quality-option{min-height:44px;color:var(--muted);cursor:pointer;background:#16233dc7;border:1px solid #0000;border-radius:7px;padding:5px 7px;font-size:10px;font-weight:800}.quality-option:focus-visible{z-index:1;position:relative}@media (min-width:701px) and (pointer:fine){.quality-option{min-height:27px}}.quality-option:hover,.quality-option.is-selected{border-color:var(--mint);color:var(--paper);background:#8dd8d129}.quality-note{color:var(--gold);font-size:8px;font-weight:700}.credits-disclosure{border-top:1px solid var(--line);padding-top:7px}.credits-disclosure summary{color:var(--paper);cursor:pointer;font-size:10px;font-weight:800;list-style:none}.credits-disclosure summary::-webkit-details-marker{display:none}.credits-disclosure summary:before{content:"+";width:15px;height:15px;color:var(--gold);border:1px solid #f8c56a8c;border-radius:5px;place-items:center;margin-right:5px;display:inline-grid}.credits-disclosure[open] summary:before{content:"−"}.credits-list{gap:7px;padding-top:7px;display:grid}.credits-list p{color:var(--muted);gap:2px;margin:0;font-size:9px;line-height:1.35;display:grid}.credits-list strong{color:var(--paper);font-size:10px}.credits-list a{color:var(--mint);text-underline-offset:2px;text-decoration:underline}.hud-button,.wave-button,.primary-cta,.manage-button{cursor:pointer;border:0;transition:transform .2s,background .2s,opacity .2s}.hud-button:hover,.wave-button:hover,.primary-cta:hover,.manage-button:hover{transform:translateY(-2px)}.hud-button:disabled,.wave-button:disabled,.manage-button:disabled{cursor:not-allowed;opacity:.4;transform:none}.hud-button{border:1px solid var(--line);color:var(--paper);background:#16233dcc;border-radius:9px;padding:10px 12px;font-size:12px}.hud-button.is-active{color:var(--navy);background:var(--mint)}.wave-button{background:var(--gold);color:var(--navy);border-radius:9px;padding:11px 14px;font-size:12px;font-weight:800}.boss-hud{z-index:5;pointer-events:none;background:#0e1930f0;border:1px solid #eac85b94;border-radius:13px;flex-direction:column;gap:6px;width:min(470px,100% - 34px);padding:10px 14px 9px;display:flex;position:absolute;top:94px;left:50%;transform:translate(-50%);box-shadow:0 14px 38px #040a1857,0 0 0 1px #eac85b14}.boss-hud.phase-enraged{border-color:#ef6f6cc7}.boss-hud.phase-critical{border-color:#ff5d5de6;box-shadow:0 14px 38px #040a1857,0 0 20px #ff5d5d33}.boss-hud.is-pulsing{animation:.9s ease-in-out boss-hud-pulse}.boss-hud-heading,.boss-hud-health-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.boss-hud-heading>div{flex-direction:column;gap:2px;min-width:0;display:flex}.boss-hud-kicker{color:var(--gold);letter-spacing:.16em;font-size:8px;font-weight:900}.boss-hud-heading strong{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.boss-hud-phase{color:#ffb8a8;letter-spacing:.08em;flex:none;font-size:9px;font-weight:900}.boss-hud-health{background:#ef6f6c33;border:1px solid #eac85b3d;border-radius:999px;flex:1;height:8px;overflow:hidden}.boss-hud-health span{border-radius:inherit;background:linear-gradient(90deg,#ef6f6c,#eac85b);height:100%;transition:width .22s;display:block}.boss-hud-health-row>strong{min-width:92px;color:var(--paper);text-align:right;font-size:12px}.boss-hud-health-row small{color:var(--muted);font-size:9px}.boss-hud-status{color:var(--muted);letter-spacing:.12em;align-items:center;gap:6px;font-size:8px;font-weight:900;display:flex}.boss-hud-status i{background:var(--gold);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #eac85b21}.boss-hud.is-pulsing .boss-hud-status{color:#ffb8a8}.boss-hud.is-pulsing .boss-hud-status i{background:#ff5d5d;box-shadow:0 0 0 5px #ff5d5d2e}.boss-roster{z-index:5;pointer-events:none;background:#0e1930e6;border:1px solid #eac85b52;border-radius:11px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(470px,100% - 34px);padding:7px;display:grid;position:absolute;top:205px;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #040a1842}.boss-roster-item{background:#1d345680;border:1px solid #c6d3ea29;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;gap:3px 6px;min-width:0;padding:5px 6px;display:grid}.boss-roster-item>span{flex-direction:column;gap:1px;min-width:0;display:flex}.boss-roster-item b{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:8px}.boss-roster-item small{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.boss-roster-item strong{color:var(--paper);text-align:right;font-size:10px}.boss-roster-health{background:#ef6f6c38;border-radius:999px;grid-column:1/-1;height:4px;overflow:hidden}.boss-roster-health i{border-radius:inherit;background:linear-gradient(90deg,#ef6f6c,#eac85b);height:100%;display:block}@keyframes boss-hud-pulse{0%,to{transform:translate(-50%)scale(1)}45%{transform:translate(-50%)scale(1.018)}}.mission-card{z-index:3;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0e1930d1;border:1px solid #d6e2ff29;border-radius:15px;width:252px;padding:17px;position:absolute;top:111px;left:25px;box-shadow:0 18px 50px #040a183d}.mission-card.is-collapsed{width:auto;padding:10px 12px}.mission-card-toggle{width:100%;color:var(--paper);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;padding:0;display:flex}.mission-card-toggle>span:last-child{color:var(--gold);font-size:20px;line-height:1}.mission-card-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.mission-kicker{color:#8ed9c8;align-items:center;gap:7px;display:flex}.live-dot{background:#8ed9c8;border-radius:99px;width:6px;height:6px;box-shadow:0 0 0 4px #8ed9c81f}.mission-card h2{margin:14px 0 7px;font-size:17px}.mission-card p{color:#b2c1d8;margin:0;font-size:12px;line-height:1.65}.mission-route{color:var(--gold);gap:7px;margin-top:17px;font-size:10px;font-weight:800;display:grid}.mission-route-path{align-items:center;gap:5px;min-width:0;display:flex}.mission-route-path span{white-space:nowrap;background:#f8c56a29;border-radius:6px;align-items:center;min-height:20px;padding:0 6px;display:inline-flex}.mission-route-path span:first-child{color:#8bb8ff;background:#8bb8ff29}.mission-route-path span:last-child{color:#ffb6a8;background:#ef6f6c29}.mission-route-path i{color:var(--gold);font-style:normal}.mission-route strong{color:var(--muted);font-size:9px}.mission-tip{border-top:1px solid var(--line);justify-content:space-between;gap:10px;margin-top:13px;padding-top:12px;font-size:10px;display:flex}.mission-tip span{color:var(--paper);font-weight:700}.mission-tip em{color:var(--muted);text-align:right;font-style:normal;line-height:1.35}.map-legend{z-index:3;border:1px solid var(--line);color:#c6d2e4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e1930b8;border-radius:10px;gap:12px;padding:10px 12px;font-size:10px;display:flex;position:absolute;top:112px;right:25px}.map-legend span{white-space:nowrap;align-items:center;gap:5px;display:flex}.legend-dot{background:var(--gold);border-radius:50%;width:8px;height:8px}.legend-dot.rooftop{background:var(--mint)}.legend-dot.route{background:#f4a261}.tower-dock{z-index:4;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0e1930eb;border:1px solid #d6e2ff33;border-radius:15px;width:min(720px,100% - 32px);transition:opacity .18s,transform .18s,visibility 0s linear .18s;position:absolute;bottom:20px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 22px 70px #040a186b}.tower-dock.is-placement-active{opacity:0;visibility:hidden;pointer-events:none;transition-delay:0s,0s,.18s;transform:translate(-50%,10px)}.tower-dock.is-collapsed{width:max-content;min-width:196px}.tower-dock.is-collapsed.has-manager{width:min(560px,100% - 32px)}.tower-dock-toggle{width:100%;min-height:44px;color:var(--paper);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:7px 12px;display:flex}.tower-dock-toggle:hover{background:#233556b8}.tower-dock-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}.tower-dock-toggle-mark{width:27px;height:27px;color:var(--gold);border:1px solid #f8c56ab3;border-radius:8px;place-items:center;font-size:20px;line-height:1;display:grid}.tower-dock-toggle-copy{flex-direction:column;gap:1px;display:flex}.tower-dock-toggle-copy strong{letter-spacing:.04em;text-transform:uppercase;font-size:12px}.tower-dock-toggle-copy small{color:var(--muted);font-size:9px}.tower-dock-toggle-state{color:var(--mint);letter-spacing:.12em;text-transform:uppercase;margin-left:auto;font-size:9px;font-weight:800}.tower-dock-panel{max-height:232px;padding:12px;overflow:auto}.tower-dock-panel[hidden]{display:none}.dock-heading{justify-content:space-between;align-items:center;gap:15px;margin:0 3px 12px;display:flex}.dock-heading h2{color:var(--paper);margin:4px 0 0;font-size:13px}.selected-tower-stats{color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.selected-tower-stats span{border:1px solid var(--line);border-radius:7px;padding:6px 8px}.selected-tower-stats small{color:var(--mint);font-size:9px}.tower-cards{touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-color:#8dd8d18c transparent;grid-template-columns:repeat(8,minmax(192px,1fr));gap:6px;padding-bottom:3px;display:grid;overflow-x:auto}.tower-card{border:1px solid var(--line);min-width:192px;min-height:111px;color:var(--paper);text-align:left;cursor:pointer;touch-action:pan-x;-webkit-user-select:none;user-select:none;background:#16233ddb;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:5px 7px;padding:6px;transition:transform .2s,border-color .2s,background .2s;display:grid}.tower-card:hover:not(:disabled){border-color:var(--tower-color);background:#233556f0;transform:translateY(-3px)}.tower-card.is-selected{border-color:var(--tower-color);background:var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.tower-card.is-selected{background:color-mix(in srgb, var(--tower-color) 16%, #16233df5)}}.tower-card.is-selected{box-shadow:inset 0 0 0 1px var(--tower-color), 0 0 18px var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.tower-card.is-selected{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tower-color) 55%, transparent), 0 0 18px color-mix(in srgb, var(--tower-color) 18%, transparent)}}:is(.tower-card:focus-visible,.cancel-placement:focus-visible,.manage-button:focus-visible,.tower-specialization-option:focus-visible,.prep-start:focus-visible,.prep-new:focus-visible,.hud-button:focus-visible,.wave-button:focus-visible,.primary-cta:focus-visible,.quality-option:focus-visible){outline:2px solid var(--gold);outline-offset:2px}.tower-card:disabled{cursor:not-allowed;opacity:.62}.tower-card:disabled .tower-card-portrait{opacity:.75}.tower-card:disabled .tower-card-copy small{color:#b9c8df}.tower-card-portrait{border:1px solid var(--tower-color);grid-row:1/span 2;width:60px;height:72px;display:block}@supports (color:color-mix(in lab, red, red)){.tower-card-portrait{border:1px solid color-mix(in srgb, var(--tower-color) 55%, var(--line))}}.tower-card-portrait{object-fit:contain;object-position:center;background:#395b9057;border-radius:8px}.tower-card-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.tower-card-copy strong{overflow-wrap:anywhere;white-space:normal;text-overflow:clip;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.4em;font-size:14px;line-height:1.2;display:-webkit-box;overflow:hidden}.tower-card-copy small{overflow-wrap:anywhere;white-space:normal;text-overflow:clip;-webkit-line-clamp:2;min-height:2.4em;color:var(--muted);-webkit-box-orient:vertical;font-size:11px;line-height:1.2;display:-webkit-box;overflow:hidden}.tower-card-effect{background:var(--tower-color);border-radius:4px;align-self:flex-start;max-width:100%;padding:2px 4px}@supports (color:color-mix(in lab, red, red)){.tower-card-effect{background:color-mix(in srgb, var(--tower-color) 18%, transparent)}}.tower-card-effect{color:var(--tower-color);white-space:normal;font-size:9px;font-weight:800;line-height:1.2}.tower-card-coverage,.loadout-card-coverage{border:1px solid var(--tower-color);align-self:flex-start;max-width:100%;padding:2px 4px}@supports (color:color-mix(in lab, red, red)){.tower-card-coverage,.loadout-card-coverage{border:1px solid color-mix(in srgb, var(--tower-color) 38%, transparent)}}.tower-card-coverage,.loadout-card-coverage{color:#c7d9f6;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:4px;font-size:8px;font-weight:800;line-height:1.15}.tower-cost{color:var(--gold);white-space:normal;grid-column:2;align-self:end;font-size:10px;font-weight:800;line-height:1.2}.tower-cost.not-enough{color:var(--coral)}.placement-status{color:var(--mint);text-align:right;align-items:center;gap:8px;font-size:10px;display:flex}.cancel-placement{color:#ffaaa2;cursor:pointer;background:#ef6f6c1f;border:1px solid #ef6f6c73;border-radius:7px;padding:6px 9px;font-size:10px;font-weight:800}.placement-feedback{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin:-3px 3px 9px;font-size:9px;display:flex}.placement-legend{align-items:center;gap:8px;display:flex}.placement-legend-item{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.placement-legend-item i{border-radius:50%;width:7px;height:7px}.placement-legend-item.is-valid{color:#9af2b4}.placement-legend-item.is-valid i{background:#5ee58a;box-shadow:0 0 0 3px #5ee58a24}.placement-legend-item.is-invalid{color:#ffaaa2}.placement-legend-item.is-invalid i{background:#ff5d5d;box-shadow:0 0 0 3px #ff5d5d24}.placement-legend-item.is-coverage{color:var(--mint);letter-spacing:.04em;text-transform:uppercase;border:1px solid #8dd8d157;border-radius:999px;padding:2px 5px;font-weight:800}.placement-legend-item.is-rooftop{color:var(--gold);border:1px solid #f8c56a66;border-radius:999px;padding:2px 5px;font-weight:800}.placement-ghost-caption{text-align:right}.placement-ghost-caption.is-valid{color:#9af2b4}.placement-ghost-caption.is-invalid{color:#ffaaa2}.tower-manage-row{grid-template-columns:minmax(155px,.95fr) minmax(205px,1.2fr) minmax(155px,.9fr);align-items:stretch;gap:8px;margin-top:9px;display:grid}.tower-manage-summary{border:1px solid var(--line);border-radius:9px;align-items:center;gap:8px;min-width:0;padding:7px 9px;display:flex}.tower-manage-summary img{object-fit:contain;background:#395b9057;border-radius:5px;width:42px;height:50px}.tower-manage-summary span{flex-direction:column;gap:2px;min-width:0;display:flex}.tower-manage-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.tower-manage-summary small{color:var(--muted);font-size:10px}.tower-manage-stats{margin-left:auto;flex-direction:row!important;gap:5px!important}.tower-manage-stats small{color:var(--muted);white-space:normal;font-size:9px;line-height:1.25}.tower-manage-panel{flex-direction:column;gap:7px;margin-top:9px;display:flex}.enemy-inspector{z-index:30;border:1px solid var(--mint);width:220px;padding:10px 12px;position:fixed}@supports (color:color-mix(in lab, red, red)){.enemy-inspector{border:1px solid color-mix(in srgb, var(--mint) 55%, var(--line))}}.enemy-inspector{pointer-events:none;background:#0d192ef5;border-radius:10px;box-shadow:0 10px 28px #00000052}.enemy-inspector.is-pinned{border-color:var(--gold)}.enemy-inspector-heading,.enemy-inspector-health,.enemy-inspector-stats{justify-content:space-between;align-items:center;gap:6px;display:flex}.enemy-inspector-heading strong{color:var(--paper);font-size:13px}.enemy-inspector-heading span,.enemy-inspector-stats span{color:var(--mint);text-transform:uppercase;font-size:9px}.enemy-inspector-health{color:var(--paper);margin-top:7px;font-size:10px;display:block}.enemy-inspector-health i{background:#ffffff29;border-radius:999px;height:6px;margin-top:4px;display:block;overflow:hidden}.enemy-inspector-health b{border-radius:inherit;background:var(--mint);height:100%;transition:width .15s linear;display:block}.enemy-inspector-stats{flex-direction:column;align-items:flex-start;margin-top:7px}.enemy-inspector-hint{color:var(--gold);margin-top:8px;font-size:9px;display:block}.tower-targeting-control{border:1px solid var(--line);background:#16233d94;border-radius:9px;align-items:center;gap:10px;padding:7px 9px;display:flex}.tower-targeting-heading{flex-direction:column;gap:2px;min-width:145px;display:flex}.tower-targeting-heading .eyebrow{color:var(--mint);font-size:8px}.tower-targeting-heading small{color:var(--muted);font-size:9px}.tower-targeting-options{flex:1;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;display:grid}.tower-target-option{border:1px solid var(--line);min-height:28px;color:var(--muted);cursor:pointer;background:#101b30e6;border-radius:6px;padding:4px 5px;font-size:9px;font-weight:700}.tower-target-option:hover{border-color:var(--mint);color:var(--paper)}.tower-target-option.is-active{border-color:var(--gold);background:var(--gold)}@supports (color:color-mix(in lab, red, red)){.tower-target-option.is-active{background:color-mix(in srgb, var(--gold) 22%, #101b30f0)}}.tower-target-option.is-active{color:var(--paper);box-shadow:0 0 0 1px var(--gold)}@supports (color:color-mix(in lab, red, red)){.tower-target-option.is-active{box-shadow:0 0 0 1px color-mix(in srgb, var(--gold) 35%, transparent)}}.tower-manage-panel .tower-manage-row{margin-top:0}.tower-specialization-choices{border:1px solid var(--gold);flex-direction:column;gap:6px;padding:7px;display:flex}@supports (color:color-mix(in lab, red, red)){.tower-specialization-choices{border:1px solid color-mix(in srgb, var(--gold) 48%, var(--line))}}.tower-specialization-choices{background:#f8c56a14;border-radius:10px}.tower-specialization-heading{flex-direction:column;gap:2px;display:flex}.tower-specialization-heading .eyebrow{color:var(--gold);font-size:8px}.tower-specialization-heading strong{font-size:11px}.tower-specialization-heading small{color:var(--muted);font-size:9px}.tower-specialization-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.tower-specialization-option{border:1px solid var(--tower-color,var(--mint));flex-direction:column;gap:4px;min-width:0;padding:8px;display:flex}@supports (color:color-mix(in lab, red, red)){.tower-specialization-option{border:1px solid color-mix(in srgb, var(--tower-color,var(--mint)) 45%, var(--line))}}.tower-specialization-option{color:var(--paper);text-align:left;cursor:pointer;background:#16233de0;border-radius:8px}.tower-specialization-option:hover:not(:disabled){border-color:var(--gold);background:#233556f5}.tower-specialization-option:disabled{cursor:not-allowed;opacity:.48}.tower-specialization-option span,.tower-specialization-option em{flex-direction:column;gap:2px;display:flex}.tower-specialization-option b{font-size:10px}.tower-specialization-option span small{color:var(--muted);font-size:8px;line-height:1.25}.tower-specialization-option em{color:var(--mint);font-size:8px;font-style:normal;line-height:1.2}.tower-specialization-option>strong{color:var(--gold);font-size:8px}.tower-dock-manager-surface{border-top:1px solid var(--line);background:#16233d94;padding:8px 12px 10px}.tower-dock-manager-surface .tower-manage-row{margin-top:0}.manage-button{min-width:0;color:var(--navy);border-radius:10px;justify-content:space-between;align-items:center;padding:13px 15px;font-weight:800;display:flex}.manage-button small{opacity:.7;font-size:10px}.manage-button span{text-align:left;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.manage-button b{font-size:14px;line-height:1.12}.manage-button span small{color:#0e1930b8;font-weight:600;line-height:1.2}.manage-button.upgrade{background:var(--gold)}.manage-button.sell{background:#a9b7c9}.start-overlay,.result-overlay,.run-start-overlay{z-index:6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080f1f61;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.run-start-overlay{z-index:9}.start-panel,.result-panel{text-align:center;background:linear-gradient(145deg,#16233df7,#0e1930f5);border:1px solid #d6e2ff3d;border-radius:22px;width:min(455px,100%);padding:35px;box-shadow:0 25px 100px #0308157a}.run-start-panel{text-align:center;background:linear-gradient(145deg,#16233dfa,#0e1930fa);border:1px solid #8dd8d161;border-radius:22px;width:min(470px,100%);padding:32px;box-shadow:0 25px 100px #03081585}.start-badge{color:var(--gold)}.start-panel h2,.result-panel h2{letter-spacing:-.03em;margin:15px 0 10px;font-size:clamp(25px,4vw,36px);line-height:1.12}.run-start-panel h2{color:var(--paper);letter-spacing:-.03em;margin:14px 0 9px;font-size:clamp(25px,4vw,36px);line-height:1.12}.start-panel p,.result-panel p{color:#b2c1d8;max-width:345px;margin:0 auto;font-size:13px;line-height:1.7}.run-start-panel p{color:#c3cee0;max-width:370px;margin:0 auto;font-size:13px;line-height:1.7}.run-start-actions{justify-content:center;gap:8px;margin-top:24px;display:flex}.run-start-primary,.run-start-secondary{cursor:pointer;border-radius:9px;min-height:44px;padding:10px 14px;font-size:12px;font-weight:850}.run-start-primary{background:var(--gold);color:var(--navy);border:0}.run-start-primary span{margin-left:8px;font-size:16px}.run-start-secondary{border:1px solid var(--line);color:var(--paper);background:#16233de6}.run-start-primary:hover,.run-start-secondary:hover{transform:translateY(-2px)}.run-start-panel>small{color:var(--muted);margin-top:15px;font-size:10px;line-height:1.45;display:block}.primary-cta{background:var(--gold);color:var(--navy);border-radius:10px;align-items:center;gap:18px;margin-top:25px;padding:13px 17px 13px 19px;font-size:13px;font-weight:800;display:inline-flex}.primary-cta span{font-size:18px;line-height:1}.start-meta{color:var(--muted);letter-spacing:.12em;justify-content:center;gap:15px;margin-top:25px;font-size:9px;font-weight:800;display:flex}.loadout-screen{z-index:8;background:linear-gradient(145deg,#0e1930 0%,#13233e 54%,#0e1930 100%);flex-direction:column;gap:28px;padding:28px clamp(18px,4vw,50px) 34px;display:flex;position:absolute;inset:0;overflow:auto}.loadout-topline{justify-content:space-between;align-items:flex-start;gap:20px;width:min(1100px,100%);margin:0 auto;display:flex}.loadout-topline h1{color:#f2f6ff;letter-spacing:-.045em;margin:7px 0 5px;font-size:clamp(35px,5vw,62px);line-height:.98}.loadout-topline p{color:#cad6e9;margin:0;font-size:14px}.loadout-eyebrow{color:var(--mint);letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:900}.loadout-tokens{color:#f2f6ff;white-space:nowrap;flex:none;padding-top:40px;font-size:15px}.loadout-tokens strong{color:var(--gold);font-size:17px}.loadout-test-mode{color:var(--mint);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;flex:none;padding-top:40px;font-size:12px;font-weight:900}.loadout-panel{background:#14243dd6;border:1px solid #8dd8d157;border-radius:20px;width:min(1100px,100%);margin:0 auto;padding:24px;box-shadow:0 24px 90px #03081559}.loadout-heading{justify-content:space-between;align-items:end;gap:18px;display:flex}.loadout-heading h2{color:#f2f6ff;letter-spacing:-.025em;margin:7px 0 6px;font-size:clamp(25px,3vw,35px)}.loadout-heading p{color:#d0d9e9;margin:0;font-size:14px}.loadout-start{background:var(--gold);color:var(--navy);cursor:pointer;border:0;border-radius:10px;flex:none;padding:12px 16px;font-size:13px;font-weight:900;transition:transform .2s,opacity .2s}.loadout-start:hover:not(:disabled){transform:translateY(-2px)}.loadout-start:disabled{cursor:not-allowed;opacity:.45}:is(.loadout-start:focus-visible,.loadout-card:focus-visible){outline:2px solid var(--gold);outline-offset:3px}.loadout-slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:25px 0 20px;display:grid}.loadout-slot{color:#f2f6ff;border:1px dashed #c6d3eaa6;border-radius:14px;align-items:center;gap:9px;min-height:72px;padding:10px 12px;display:flex}.loadout-slot.is-filled{border-style:solid;border-color:var(--mint)}@supports (color:color-mix(in lab, red, red)){.loadout-slot.is-filled{border-color:color-mix(in srgb, var(--mint) 60%, transparent)}}.loadout-slot.is-filled{background:#8dd8d114}.loadout-slot img{object-fit:contain;background:#395b9057;border-radius:8px;width:48px;height:52px}.loadout-slot span:not(.loadout-slot-plus){flex-direction:column;gap:3px;min-width:0;display:flex}.loadout-slot strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.loadout-slot small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.loadout-slot.is-empty strong{color:#d9e2f0;font-size:12px}.loadout-card-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.loadout-card{color:#f2f6ff;cursor:pointer;text-align:left;background:#1d3456db;border:1px solid #c6d3ea47;border-radius:13px;grid-template-rows:1fr auto;grid-template-columns:58px minmax(0,1fr);align-items:start;gap:8px;min-height:136px;padding:12px;transition:transform .2s,border-color .2s,background .2s,opacity .2s;display:grid;position:relative}.loadout-card:hover:not(:disabled){border-color:var(--tower-color);background:#2b4974f0;transform:translateY(-3px)}.loadout-card.is-selected{border-color:var(--tower-color);background:var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.loadout-card.is-selected{background:color-mix(in srgb, var(--tower-color) 17%, #1d3456f0);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tower-color) 60%, transparent)}}.loadout-card-selected-mark{background:var(--tower-color);width:21px;height:21px;color:var(--navy);box-shadow:0 0 0 2px #0a1730b8, 0 0 14px var(--tower-color);border-radius:50%;place-items:center;font-size:14px;font-weight:950;line-height:1;display:grid;position:absolute;top:8px;right:8px}@supports (color:color-mix(in lab, red, red)){.loadout-card-selected-mark{box-shadow:0 0 0 2px #0a1730b8, 0 0 14px color-mix(in srgb, var(--tower-color) 45%, transparent)}}.loadout-card.is-locked,.loadout-card:disabled:not(.is-selected){opacity:.58;cursor:not-allowed}.loadout-card-portrait{border:1px solid var(--tower-color);grid-row:1/span 2;width:64px;height:76px}@supports (color:color-mix(in lab, red, red)){.loadout-card-portrait{border:1px solid color-mix(in srgb, var(--tower-color) 65%, var(--line))}}.loadout-card-portrait{object-fit:contain;background:#395b9057;border-radius:9px}.loadout-card-copy{flex-direction:column;gap:5px;min-width:0;display:flex}.loadout-card-copy strong{min-height:2.4em;font-size:13px;line-height:1.2;overflow:hidden}.loadout-card-copy small{color:#c0cee4;min-height:2.4em;font-size:10px;line-height:1.25;overflow:hidden}.loadout-card-effect{background:var(--tower-color);border-radius:5px;align-self:flex-start;padding:3px 5px}@supports (color:color-mix(in lab, red, red)){.loadout-card-effect{background:color-mix(in srgb, var(--tower-color) 20%, transparent)}}.loadout-card-effect{color:var(--tower-color);font-size:9px;font-weight:900;line-height:1.15}.loadout-card-status{color:var(--gold);grid-column:2;font-size:10px;font-weight:900;line-height:1.2}.loadout-card-status.is-locked{color:#ffc2ad}.difficulty-selector{background:#080f1f38;border:1px solid #c6d3ea38;border-radius:14px;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:14px;margin:18px 0 2px;padding:14px;display:grid}.difficulty-selector-copy{flex-direction:column;justify-content:center;gap:5px;display:flex}.difficulty-selector-copy strong{color:var(--paper);font-size:14px}.difficulty-selector-copy small{color:var(--muted);font-size:10px;line-height:1.4}.difficulty-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.difficulty-option{min-height:78px;color:var(--paper);cursor:pointer;text-align:left;background:#1d3456b8;border:1px solid #c6d3ea4d;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:9px;padding:11px 12px;transition:border-color .2s,background .2s,transform .2s;display:flex}.difficulty-option:hover{border-color:var(--mint);transform:translateY(-2px)}.difficulty-option span{flex-direction:column;gap:5px;min-width:0;display:flex}.difficulty-option strong{font-size:12px}.difficulty-option em{color:var(--gold);text-transform:uppercase;flex:none;font-size:9px;font-style:normal;font-weight:900}.difficulty-option:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.loadout-unlock{background:var(--gold);min-height:34px;color:var(--navy);cursor:pointer;border-radius:7px;grid-column:2;padding:6px 8px;font-size:10px;font-weight:900;line-height:1.1}.loadout-unlock:disabled{cursor:not-allowed;opacity:.45}.loadout-footer{color:var(--muted);justify-content:space-between;gap:15px;margin-top:16px;font-size:12px;display:flex}.loadout-footer strong{color:var(--mint)}.loadout-screen{overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-color:#8dd8d1a6 transparent;touch-action:pan-y;background:radial-gradient(circle at 12% 8%,#8dd8d121,#0000 26%),radial-gradient(circle at 90% 18%,#f8c56a1f,#0000 24%),linear-gradient(145deg,#0b162d 0%,#142746 52%,#0c1830 100%);gap:30px;padding-top:clamp(28px,5vh,58px);overflow:hidden auto}.loadout-screen::-webkit-scrollbar{width:11px}.loadout-screen::-webkit-scrollbar-track{background:0 0}.loadout-screen::-webkit-scrollbar-thumb{background:#8dd8d180 padding-box padding-box;border:3px solid #0000;border-radius:999px}.loadout-screen::-webkit-scrollbar-thumb:hover{background:#f8c56abf padding-box padding-box}.loadout-screen:before{pointer-events:none;content:"";opacity:.28;background-image:linear-gradient(#a4cceb14 1px,#0000 1px),linear-gradient(90deg,#a4cceb14 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 82%);mask-image:linear-gradient(#000,#0000 82%)}.loadout-screen:after{pointer-events:none;content:"";border:1px solid #8dd8d124;border-radius:50%;width:240px;height:240px;position:absolute;top:24%;right:4%;box-shadow:0 0 0 22px #8dd8d106,0 0 0 44px #8dd8d105}.loadout-screen>*{z-index:1;position:relative}.loadout-topline h1{font-family:var(--font-display);letter-spacing:-.055em;-webkit-text-fill-color:transparent;filter:drop-shadow(0 8px 24px #030a1947);background:linear-gradient(108deg,#fff8e5 8%,#f2f6ff 46%,#a9e7df 100%);-webkit-background-clip:text;background-clip:text;margin-top:10px;font-size:clamp(38px,5.5vw,68px);font-weight:900;line-height:.96}.loadout-tagline{max-width:460px;line-height:1.5;margin-top:10px!important;font-size:15px!important}.loadout-test-mode{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f233ca8;border:1px solid #8dd8d147;border-radius:999px;align-items:center;gap:7px;margin-top:10px;padding:9px 12px;display:inline-flex;box-shadow:0 10px 24px #02081429}.loadout-test-mode>span{background:var(--mint);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #8dd8d11c,0 0 12px #8dd8d18c}.loadout-test-mode b{color:#f2f6ff7a;font-weight:500}.loadout-panel{background:linear-gradient(145deg,#162b49eb,#0d1b32e6);border-color:#8dd8d16b;border-radius:24px;flex:none;padding:clamp(20px,3vw,30px);position:relative;overflow:visible;box-shadow:0 28px 100px #0107146b,inset 0 1px #ffffff0d}.loadout-panel:before{content:"";background:linear-gradient(90deg, transparent, var(--mint), var(--gold), transparent);opacity:.8;height:2px;position:absolute;top:0;left:8%;right:8%}.loadout-heading{align-items:center}.loadout-heading h2{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(27px,3.2vw,39px);font-weight:900}.loadout-heading p{max-width:640px;line-height:1.55}.loadout-eyebrow{align-items:center;gap:7px;display:flex}.step-number{min-width:25px;height:20px;color:var(--mint);letter-spacing:.06em;background:#8dd8d11a;border:1px solid #8dd8d15c;border-radius:6px;place-items:center;padding:0 5px;font-size:9px;display:inline-grid}.loadout-start{background:linear-gradient(135deg, #ffe09b, var(--gold));min-height:48px;font-family:var(--font-display);letter-spacing:-.01em;border:1px solid #fff8e580;border-radius:12px;justify-content:center;align-items:center;gap:16px;padding:12px 17px 12px 19px;font-size:14px;display:inline-flex;box-shadow:0 10px 24px #f8c56a2e}.loadout-start span:last-child{font-size:20px;line-height:1;transition:transform .2s}.loadout-start:hover:not(:disabled){box-shadow:0 14px 28px #f8c56a42}.loadout-start:hover:not(:disabled) span:last-child{transform:translate(3px)}.loadout-slots{gap:10px;margin:24px 0 21px}.loadout-slot{background:#0811234d;border-color:#c6d3ea52;min-height:80px;padding:11px 12px 10px 15px;transition:border-color .2s,background .2s;position:relative}.loadout-slot:hover{border-color:#8dd8d194}.loadout-slot.is-filled{border-color:var(--mint)}@supports (color:color-mix(in lab, red, red)){.loadout-slot.is-filled{border-color:color-mix(in srgb, var(--mint) 70%, transparent)}}.loadout-slot.is-filled{background:linear-gradient(145deg,#8dd8d126,#0d223994);box-shadow:inset 0 0 0 1px #8dd8d114}.loadout-slot-index{color:#dcecff8c;letter-spacing:.08em;min-width:18px;font-size:8px;font-weight:900;position:absolute;top:8px;left:9px}.loadout-slot img{background:#395b9057;border:1px solid #ffffff14;border-radius:9px;width:48px;height:54px;margin-left:8px}.loadout-slot-copy{flex-direction:column;gap:3px;min-width:0!important;display:flex!important}.loadout-slot-empty-copy{align-items:center;gap:5px;margin-left:9px;min-width:0!important;display:flex!important}.loadout-slot strong{font-size:11px;font-weight:800}.loadout-slot small{color:#afc2dc}.loadout-slot-plus{color:var(--gold);font-size:19px}.loadout-card-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.loadout-card{background:linear-gradient(145deg,#243d63eb,#192d4ce0);border-color:#c6d3ea40;border-radius:16px;grid-template-columns:72px minmax(0,1fr);min-height:154px;padding:13px;overflow:hidden;box-shadow:inset 0 1px #ffffff09,0 8px 18px #0208141f}.loadout-card:before{content:"";background:var(--tower-color);opacity:.35;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.loadout-card:hover:not(:disabled){border-color:var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.loadout-card:hover:not(:disabled){border-color:color-mix(in srgb, var(--tower-color) 76%, white)}}.loadout-card:hover:not(:disabled){box-shadow:0 12px 25px #030a183d, 0 0 22px var(--tower-color);background:linear-gradient(145deg,#2f4f7cfa,#1c3456f5)}@supports (color:color-mix(in lab, red, red)){.loadout-card:hover:not(:disabled){box-shadow:0 12px 25px #030a183d, 0 0 22px color-mix(in srgb, var(--tower-color) 15%, transparent)}}.loadout-card.is-selected{background:linear-gradient(145deg, var(--tower-color), #192d4cf5)}@supports (color:color-mix(in lab, red, red)){.loadout-card.is-selected{background:linear-gradient(145deg, color-mix(in srgb, var(--tower-color) 25%, #243d63f5), #192d4cf5)}}.loadout-card.is-selected{box-shadow:inset 0 0 0 1px var(--tower-color), 0 10px 24px var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.loadout-card.is-selected{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tower-color) 68%, transparent), 0 10px 24px color-mix(in srgb, var(--tower-color) 12%, transparent)}}.loadout-card.is-selected:before{opacity:1;box-shadow:0 0 18px var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.loadout-card.is-selected:before{box-shadow:0 0 18px color-mix(in srgb, var(--tower-color) 55%, transparent)}}.loadout-card-selected-mark{width:23px;height:23px;font-size:15px;top:10px;right:10px}.loadout-card-portrait{background:radial-gradient(circle at 50% 28%,#ffffff1f,#395b9061);border-radius:11px;width:72px;height:88px;box-shadow:inset 0 0 0 1px #ffffff0a}.loadout-card.is-selected .loadout-card-portrait{box-shadow:inset 0 0 0 1px var(--tower-color), 0 0 18px var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.loadout-card.is-selected .loadout-card-portrait{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tower-color) 55%, transparent), 0 0 18px color-mix(in srgb, var(--tower-color) 18%, transparent)}}.loadout-card-copy{gap:6px;padding-right:10px}.loadout-card-copy strong{overflow-wrap:anywhere;white-space:normal;text-overflow:clip;-webkit-line-clamp:2;min-height:2.4em;font-family:var(--font-display);letter-spacing:-.015em;-webkit-box-orient:vertical;font-size:14px;font-weight:900;line-height:1.15;display:-webkit-box;overflow:hidden}.loadout-card-copy small{overflow-wrap:anywhere;white-space:normal;text-overflow:clip;-webkit-line-clamp:2;color:#c7d6eb;-webkit-box-orient:vertical;min-height:2.4em;font-size:10.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.loadout-card-effect{letter-spacing:.02em;border-radius:6px;padding:4px 6px;font-size:9px}.loadout-card-coverage{margin-top:auto}.loadout-card-status{grid-column:2;min-height:20px;padding-top:2px;font-size:10px}.loadout-card-status.is-selected{color:#b9f1e7}.difficulty-selector{background:linear-gradient(135deg,#0710227a,#162e4d57);border-color:#c6d3ea42;border-radius:16px;gap:18px;margin-top:20px;padding:16px}.difficulty-selector-copy{gap:7px}.difficulty-selector-copy strong{font-family:var(--font-display);font-size:16px}.difficulty-selector-copy small{max-width:180px;line-height:1.5}.difficulty-options{gap:10px}.difficulty-option{background:#1f395eb8;border-color:#c6d3ea47;border-radius:12px;min-height:86px;padding:13px 14px}.difficulty-option:hover{border-color:var(--mint);background:#2f507cdb;box-shadow:0 8px 18px #0208142e}.difficulty-option.is-selected{border-color:var(--gold);background:linear-gradient(135deg,#f8c56a33,#42434c94);box-shadow:inset 0 0 0 1px #f8c56a57,0 8px 20px #f8c56a17}.difficulty-option-copy{flex-direction:column;align-items:flex-start;gap:6px;min-width:0!important;display:flex!important}.difficulty-option strong{font-family:var(--font-display);font-size:13px;font-weight:900}.difficulty-option small{color:#c8d7ea;font-size:9.5px;line-height:1.4}.difficulty-option-side{flex-direction:column;flex:none;align-items:flex-end;gap:8px;min-width:30px!important;display:flex!important}.difficulty-option em{color:var(--gold);letter-spacing:.08em;font-size:8px}.difficulty-meter{align-items:flex-end;gap:3px;height:18px;display:flex}.difficulty-meter b{background:#c6d3ea4d;border-radius:4px 4px 2px 2px;width:5px;display:block}.difficulty-meter b:first-child{height:6px}.difficulty-meter b:nth-child(2){height:10px}.difficulty-meter b:nth-child(3){height:14px}.difficulty-meter b:nth-child(4){height:18px}.difficulty-option[data-difficulty=easy] .difficulty-meter b:nth-child(-n+1),.difficulty-option[data-difficulty=normal] .difficulty-meter b:nth-child(-n+2),.difficulty-option[data-difficulty=hard] .difficulty-meter b:nth-child(-n+3),.difficulty-option[data-difficulty=inferno] .difficulty-meter b:nth-child(-n+4){background:var(--mint)}.difficulty-option[data-difficulty=normal] .difficulty-meter b:nth-child(-n+2){background:var(--gold)}.difficulty-option[data-difficulty=hard] .difficulty-meter b:nth-child(-n+3),.difficulty-option[data-difficulty=inferno] .difficulty-meter b:nth-child(-n+4){background:var(--coral)}.loadout-footer{border-top:1px solid #c6d3ea29;align-items:center;margin-top:19px;padding-top:14px;font-size:11px}.loadout-footer strong{align-items:center;gap:7px;font-size:12px;display:inline-flex}.loadout-footer strong:before{background:var(--mint);content:"";border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #8dd8d11a}.result-mark{width:54px;height:54px;color:var(--gold);background:#f8c56a26;border-radius:17px;place-items:center;margin:0 auto 18px;font-size:26px;display:grid}.result-panel.defeat .result-mark{color:var(--coral);background:#ef6f6c26}.result-panel.victory h2{color:var(--gold)}.result-stats{text-align:left;grid-template-columns:repeat(2,1fr);gap:7px;margin:18px 0;display:grid}.result-stats span{color:var(--paper);border:1px solid #d6e2ff29;border-radius:8px;padding:8px 10px;font-size:11px}.result-stats strong{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:8px;display:block}.result-actions{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.secondary-cta{color:var(--paper);cursor:pointer;background:#8dd8d11a;border:1px solid #8dd8d16b;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800}.status-toast{z-index:10;max-width:calc(100% - 40px);color:var(--paper);opacity:0;pointer-events:none;background:#16233df2;border:1px solid #f8c56a66;border-radius:999px;padding:10px 15px;font-size:12px;transition:opacity .2s,transform .2s;position:absolute;bottom:166px;left:50%;transform:translate(-50%,10px)}.status-toast.is-visible{opacity:1;transform:translate(-50%)}.selection-caption{z-index:4;color:#f4f2eb94;font-size:10px;position:absolute;bottom:28px;right:25px}.placement-caption{color:var(--mint)}.threat-indicator{z-index:4;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e1930e0;border:1px solid #f8c56a75;border-radius:999px;align-items:center;gap:8px;width:min(300px,100% - 40px);padding:7px 10px;display:flex;position:absolute;top:101px;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #040a1838}.threat-indicator.is-front-line{border-color:#ef6f6c94}.threat-indicator-arrow{width:22px;height:22px;color:var(--gold);background:#f8c56a29;border-radius:50%;place-items:center;font-size:16px;font-weight:900;display:grid}.threat-indicator.is-front-line .threat-indicator-arrow{color:#ffaaa2;background:#ef6f6c2e}.threat-indicator-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.threat-indicator-copy strong{color:var(--paper);letter-spacing:.14em;font-size:9px}.threat-indicator-copy small{color:#c4d0e2;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.prep-banner{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#0e1930db;border:1px solid #8dd8d157;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;width:min(560px,100% - 590px);min-width:360px;padding:11px 13px;display:flex;position:absolute;top:111px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #040a1838}.wave-prep-banner{font-family:inherit}.prep-banner>div:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.prep-banner .start-badge{color:var(--mint)}.prep-banner strong{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.wave-prep-copy{gap:3px!important}.wave-enemy-mix{display:block}.wave-threat{color:var(--gold);letter-spacing:.04em;font-size:9px;font-weight:800}.boss-arrival{border-bottom:1px solid #ef6f6c47;flex-direction:column;gap:2px;margin:-2px 0 2px;padding-bottom:4px;display:flex}.boss-arrival span{color:#ff9c83;letter-spacing:.16em;font-size:8px;font-weight:900;animation:1.2s ease-in-out infinite boss-arrival-signal}.boss-arrival strong{letter-spacing:.03em;text-shadow:0 0 16px #ff5d5d59;color:#fff5d7!important;font-size:13px!important}.boss-arrival small{color:#ffc2ad;font-size:8px;line-height:1.3}@keyframes boss-arrival-signal{0%,to{opacity:.7}50%{opacity:1}}.prep-actions{pointer-events:auto;flex:none;gap:6px;display:flex}.prep-start,.prep-new{cursor:pointer;border:0;border-radius:8px;font-size:10px;font-weight:800}.prep-start{background:var(--gold);color:var(--navy);padding:9px 11px}.prep-start span{margin-left:5px;font-size:14px}.prep-new{border:1px solid var(--line);color:var(--paper);background:#16233de6;padding:8px 10px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:980px){.game-hud{flex-wrap:wrap;gap:10px;padding:12px 15px}.brand-lockup{min-width:180px}.hud-stats{order:3;width:100%;overflow-x:auto}.hud-actions{margin-left:auto}.mission-card{width:220px;top:150px;left:15px}.map-legend{top:150px;right:15px}.tower-dock{width:calc(100% - 30px);bottom:12px}.tower-dock.is-collapsed{width:max-content}.tower-dock.is-collapsed.has-manager{width:calc(100% - 30px)}.settings-panel{bottom:74px;right:15px}.prep-banner{width:min(520px,100% - 470px);top:150px}.threat-indicator{top:150px}.boss-hud{width:min(460px,100% - 30px);top:116px}.boss-roster{width:min(460px,100% - 30px);top:226px}.loadout-screen{gap:20px;padding:22px 20px 28px}.loadout-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:700px){.game-hud{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;min-height:0;padding:10px 10px 8px;display:grid}.brand-lockup{grid-area:1/1;gap:8px;min-width:0}.brand-mark{border-radius:9px;width:32px;height:32px}.brand-lockup h1{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.brand-lockup .eyebrow{font-size:7px}.hud-actions{grid-area:1/2;gap:4px}.hud-button{padding:8px 7px;font-size:10px}.audio-volume{width:46px}.audio-toggle{min-width:48px}.wave-button{white-space:nowrap;max-width:102px;padding:9px 8px;font-size:10px}.hud-stats{grid-area:2/1/auto/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;display:grid;overflow:visible}.hud-stat,.health-stat{border-radius:7px;min-width:0;padding:5px 6px}.hud-stat strong{margin-top:3px;font-size:13px}.hud-label{letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;font-size:7px;display:block;overflow:hidden}.health-bar{height:3px;margin-top:5px}.mission-card{display:none}.map-legend{max-width:calc(100% - 30px);top:145px;left:15px;right:auto;overflow:hidden}.map-legend span:nth-child(2){display:none}.tower-dock{width:calc(100% - 16px);max-height:176px;bottom:8px}.tower-dock.is-collapsed{width:max-content;min-width:186px}.tower-dock.is-collapsed.has-manager{width:calc(100% - 16px)}.settings-panel{width:min(312px,100% - 20px);bottom:192px;right:10px}.quality-control{flex-wrap:wrap;align-items:flex-start}.quality-options{flex-wrap:wrap;justify-content:flex-end}.tower-dock-panel{max-height:132px;padding:9px}.dock-heading{margin-bottom:7px}.tower-cards{grid-template-columns:repeat(8,192px);padding-bottom:3px;overflow-x:auto}.tower-card{min-height:92px}.tower-manage-row{grid-template-columns:1fr 1fr}.tower-manage-summary{grid-column:1/-1;min-height:38px}.tower-specialization-options{grid-template-columns:1fr}.placement-status{max-width:180px;font-size:9px}.placement-feedback{margin-bottom:6px}.status-toast{bottom:154px}.selection-caption{display:none}.prep-banner{gap:8px;width:auto;min-width:0;padding:9px 10px;top:185px;left:10px;right:10px;transform:none}.threat-indicator{width:calc(100% - 20px);top:185px;left:10px;transform:none}.prep-banner strong{white-space:normal;max-width:180px;font-size:10px}.prep-actions{flex-direction:column;gap:4px}.prep-start,.prep-new{padding:7px 8px;font-size:9px}.boss-hud{width:calc(100% - 20px);padding:8px 10px;top:112px}.boss-roster{grid-template-columns:1fr;width:calc(100% - 20px);top:214px}.boss-hud-heading strong{font-size:12px}.boss-hud-phase{font-size:8px}.boss-hud-health-row>strong{min-width:78px;font-size:11px}.run-start-panel{padding:24px 18px}.run-start-actions{flex-direction:column}.run-start-primary,.run-start-secondary{width:100%}.loadout-screen{gap:16px;padding:18px 12px 24px}.loadout-topline{align-items:end}.loadout-topline h1{font-size:34px}.loadout-topline p{font-size:11px}.loadout-tokens{padding-top:0;font-size:11px}.loadout-tokens strong{font-size:13px}.loadout-test-mode{text-align:right;white-space:normal;padding-top:0;font-size:9px;line-height:1.3}.loadout-panel{border-radius:15px;padding:15px}.loadout-heading{flex-direction:column;align-items:stretch;gap:14px}.loadout-heading h2{font-size:25px}.loadout-heading p{font-size:11px;line-height:1.45}.loadout-start{width:100%;min-height:44px}.difficulty-selector{grid-template-columns:1fr;gap:10px}.loadout-slots{grid-template-columns:repeat(5,minmax(92px,1fr));gap:6px;margin:16px 0 13px;padding-bottom:3px;overflow-x:auto}.loadout-slot{gap:4px;min-height:58px;padding:6px}.loadout-slot img{width:25px;height:34px}.loadout-slot strong{font-size:8px}.loadout-slot small{display:none}.loadout-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.loadout-card{grid-template-columns:44px minmax(0,1fr);gap:6px;min-height:116px;padding:8px}.loadout-card-portrait{width:44px;height:60px}.loadout-card-copy strong{font-size:11px}.loadout-card-copy small,.loadout-card-status{font-size:8px}.loadout-footer{flex-direction:column;align-items:flex-start;gap:4px;font-size:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:700px),(pointer:coarse){.hud-button,.hud-speed-button,.wave-button,.prep-start,.prep-new,.audio-toggle,.audio-volume,.audio-volume input,.quality-option,.credits-disclosure summary,.credits-list a{min-height:44px}.hud-button,.wave-button,.prep-start,.prep-new{justify-content:center;align-items:center;display:inline-flex}.hud-actions{min-width:0}.hud-button{flex:none;min-width:44px}.wave-button{min-width:0}.audio-control-row{min-height:44px}.hud-speed-button{min-width:44px;padding-inline:8px}.audio-volume{flex:0 0 44px;width:44px;min-width:44px;padding-inline:0}.audio-volume input{flex:0 0 44px;width:44px;min-width:44px;display:block}.quality-option{min-width:44px;min-height:44px}.credits-disclosure summary{align-items:center;padding:0 4px;display:flex}.credits-list{gap:3px}.credits-list a{align-items:center;padding-inline:4px;display:inline-flex}}.loadout-screen[data-loadout-visual=v2]{--loadout-card-surface:#1b3150f0;--loadout-card-surface-strong:#234065f5;--loadout-card-muted:#c6d3eabd;--loadout-card-border:#bed3ee3d;--loadout-focus:#8ed9d0;background:radial-gradient(circle at 8% 3%,#8dd8d129,#0000 27%),radial-gradient(circle at 96% 18%,#f8c56a1a,#0000 24%),linear-gradient(145deg,#0a152b 0%,#142947 54%,#0b1730 100%)}.loadout-screen[data-loadout-visual=v2] .loadout-topline{align-items:center;gap:28px}.loadout-brand-block{align-items:center;gap:14px;min-width:0;display:flex}.loadout-brand-block>div{min-width:0}.loadout-brand-mark{color:#fff4d1;width:48px;height:48px;font-family:var(--font-display);letter-spacing:.08em;background:linear-gradient(145deg,#f8c56a33,#8dd8d121);border:1px solid #f8c56ab3;border-radius:14px;flex:none;place-items:center;font-size:13px;font-weight:950;display:grid;box-shadow:inset 0 0 0 4px #07122566,0 10px 22px #02081433}.loadout-screen[data-loadout-visual=v2] .loadout-test-mode{color:#b8ece4;background:#0a1b30b8;border-color:#8dd8d161;margin-top:0}.loadout-screen[data-loadout-visual=v2] .loadout-panel{background:linear-gradient(145deg,#172e4df2,#0c1b33f0);border-color:#8dd8d17a;box-shadow:0 30px 100px #01071470,inset 0 1px #ffffff0f}.loadout-screen[data-loadout-visual=v2] .loadout-heading{border-bottom:1px solid #c6d3ea24;padding-bottom:20px}.loadout-screen[data-loadout-visual=v2] .loadout-heading p{color:#cfdaeb;max-width:680px}.loadout-screen[data-loadout-visual=v2] .difficulty-selector{background:linear-gradient(135deg,#08122594,#17315070);border-color:#c6d3ea38;margin-top:20px}.loadout-screen[data-loadout-visual=v2] .difficulty-option{background:#223d61b8;border-color:#c6d3ea4d}.loadout-screen[data-loadout-visual=v2] .difficulty-option:hover{background:#2d4f7adb;border-color:#8dd8d1c7}.loadout-screen[data-loadout-visual=v2] .difficulty-option.is-selected{border-color:var(--gold);background:linear-gradient(135deg,#f8c56a33,#264366c7);box-shadow:inset 0 0 0 1px #f8c56a57,0 8px 20px #f8c56a1a}.loadout-slots-heading{justify-content:space-between;align-items:baseline;gap:12px;margin:22px 3px 9px;display:flex}.loadout-slots-heading span{color:var(--mint);letter-spacing:.16em;font-size:10px;font-weight:950}.loadout-slots-heading small{color:#cddcefb3;text-align:right;font-size:10px;line-height:1.35}.loadout-screen[data-loadout-visual=v2] .loadout-slots{gap:10px;margin:0 0 24px}.loadout-screen[data-loadout-visual=v2] .loadout-slot{background:#07122561;border-color:#c6d3ea4d;min-width:0;min-height:78px;padding:11px 10px 10px 14px}.loadout-screen[data-loadout-visual=v2] .loadout-slot.is-filled{background:linear-gradient(145deg,#8dd8d124,#102a44b3);border-color:#8dd8d1b3;box-shadow:inset 0 0 0 1px #8dd8d11a,0 7px 15px #0208141f}.loadout-screen[data-loadout-visual=v2] .loadout-slot img{background:#2f4f7a73;border-color:#ffffff1f;border-radius:10px;width:48px;height:48px}.loadout-screen[data-loadout-visual=v2] .loadout-slot strong{font-family:var(--font-display);font-size:11px;font-weight:900}.loadout-screen[data-loadout-visual=v2] .loadout-card-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:12px}.loadout-screen[data-loadout-visual=v2] .loadout-card{border-color:var(--loadout-card-border);background:linear-gradient(145deg, var(--loadout-card-surface-strong), var(--loadout-card-surface));border-radius:15px;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:76px minmax(0,1fr);min-height:174px;padding:12px;transition:transform .22s,border-color .22s,background .22s,box-shadow .22s,opacity .22s;box-shadow:inset 0 1px #ffffff0b,0 8px 18px #02081426}.loadout-screen[data-loadout-visual=v2] .loadout-card:before{background:linear-gradient(90deg, var(--tower-color), var(--mint), var(--gold));opacity:.72;height:3px}.loadout-screen[data-loadout-visual=v2] .loadout-card:hover:not(:disabled){background:linear-gradient(145deg,#2c527f,#1d3c62);border-color:#8dd8d1cc;box-shadow:0 13px 26px #02081440,0 0 20px #8dd8d11a}.loadout-screen[data-loadout-visual=v2] .loadout-card.is-selected{background:linear-gradient(145deg,#2c527f,#1d3c62);border-color:#8dd8d1d1;box-shadow:inset 0 0 0 1px #8dd8d170,0 10px 24px #0711233d}.loadout-screen[data-loadout-visual=v2] .loadout-card.is-selected:before{opacity:1}.loadout-screen[data-loadout-visual=v2] .loadout-card:disabled:not(.is-selected){opacity:.74;filter:saturate(.76)}.loadout-screen[data-loadout-visual=v2] .loadout-card-selected-mark{background:var(--loadout-focus);color:#0b2035;border:2px solid #071225c2;width:24px;height:24px;top:9px;right:9px;box-shadow:0 0 0 1px #8dd8d15c,0 0 16px #8dd8d13d}.loadout-card-portrait-frame{aspect-ratio:1;border:1px solid var(--tower-color);grid-row:1/span 2;place-items:center;width:76px;height:76px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.loadout-card-portrait-frame{border:1px solid color-mix(in srgb, var(--tower-color) 58%, #c6d3ea61)}}.loadout-card-portrait-frame{background:radial-gradient(circle at 50% 25%,#ffffff24,#2a486f8f 70%);border-radius:12px;box-shadow:inset 0 0 0 1px #ffffff0d}.loadout-screen[data-loadout-visual=v2] .loadout-card-portrait{object-fit:contain;background:0 0;border:0;border-radius:0;width:100%;height:100%;padding:2px}.loadout-screen[data-loadout-visual=v2] .loadout-card-portrait-frame[data-portrait-treatment=pe-teacher] .loadout-card-portrait{transform:scale(.96)}.loadout-screen[data-loadout-visual=v2] .loadout-card-portrait-frame[data-portrait-treatment=particle-cannon] .loadout-card-portrait{transform:scale(1.18)}.loadout-screen[data-loadout-visual=v2] .loadout-card.is-selected .loadout-card-portrait-frame{box-shadow:inset 0 0 0 1px var(--tower-color), 0 0 16px #8dd8d124}@supports (color:color-mix(in lab, red, red)){.loadout-screen[data-loadout-visual=v2] .loadout-card.is-selected .loadout-card-portrait-frame{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tower-color) 62%, transparent), 0 0 16px #8dd8d124}}.loadout-screen[data-loadout-visual=v2] .loadout-card-copy{gap:5px;padding:1px 10px 0 0}.loadout-screen[data-loadout-visual=v2] .loadout-card-copy strong{color:#f4f7ff;min-height:2.35em;font-family:var(--font-display);font-size:14px;font-weight:900;line-height:1.17}.loadout-screen[data-loadout-visual=v2] .loadout-card-copy small{min-height:2.55em;color:var(--loadout-card-muted);font-size:10.5px;line-height:1.3}.loadout-screen[data-loadout-visual=v2] .loadout-card-effect,.loadout-screen[data-loadout-visual=v2] .loadout-card-coverage{font-size:10px}.loadout-screen[data-loadout-visual=v2] .loadout-card-status{color:#f2ca7a;border-top:1px solid #c6d3ea29;grid-column:2;align-items:center;gap:6px;min-height:26px;padding-top:7px;font-size:10px;font-weight:900;line-height:1.22;display:flex}.loadout-screen[data-loadout-visual=v2] .loadout-card-status i{background:var(--gold);border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 0 3px #f8c56a1f}.loadout-screen[data-loadout-visual=v2] .loadout-card-status.is-selected{color:#b9f1e7}.loadout-screen[data-loadout-visual=v2] .loadout-card-status.is-selected i{background:var(--mint);box-shadow:0 0 0 3px #8dd8d11f}.loadout-screen[data-loadout-visual=v2] .loadout-footer{border-top-color:#c6d3ea33;margin-top:22px;padding-top:15px}.loadout-screen[data-loadout-visual=v2] .loadout-footer strong{color:#b9f1e7}@media (min-width:701px) and (max-width:980px){.loadout-screen[data-loadout-visual=v2] .loadout-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.loadout-screen[data-loadout-visual=v2] .loadout-card{grid-template-columns:68px minmax(0,1fr)}.loadout-screen[data-loadout-visual=v2] .loadout-card-copy,.loadout-screen[data-loadout-visual=v2] .loadout-card-effect,.loadout-screen[data-loadout-visual=v2] .loadout-card-coverage,.loadout-screen[data-loadout-visual=v2] .loadout-card-status{overflow-wrap:anywhere;white-space:normal;min-width:0;max-width:100%}.loadout-card-portrait-frame{width:68px;height:68px}}@media (max-width:700px){.loadout-screen[data-loadout-visual=v2] .loadout-topline{flex-direction:column;align-items:flex-start;gap:14px}.loadout-screen[data-loadout-visual=v2] .loadout-test-mode{margin-left:62px;padding-top:8px}.loadout-screen[data-loadout-visual=v2] .loadout-panel{padding:16px}.loadout-slots-heading{flex-direction:column;align-items:flex-start;gap:3px}.loadout-slots-heading small{text-align:left}.loadout-screen[data-loadout-visual=v2] .loadout-slots{grid-template-columns:repeat(5,minmax(110px,1fr));gap:7px;padding-bottom:3px;overflow-x:auto}.loadout-screen[data-loadout-visual=v2] .loadout-slot{min-height:64px;padding:7px}.loadout-screen[data-loadout-visual=v2] .loadout-slot img{width:36px;height:36px}.loadout-screen[data-loadout-visual=v2] .loadout-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.loadout-screen[data-loadout-visual=v2] .loadout-card{grid-template-columns:56px minmax(0,1fr);gap:7px;min-height:166px;padding:10px}.loadout-card-portrait-frame{border-radius:10px;width:56px;height:56px}.loadout-screen[data-loadout-visual=v2] .loadout-card-copy strong{font-size:12px}.loadout-screen[data-loadout-visual=v2] .loadout-card-copy small,.loadout-screen[data-loadout-visual=v2] .loadout-card-status{font-size:10px}}.tower-dock.is-open .tower-dock-panel{max-height:min(330px,100vh - 170px)}.tower-menu{grid-template-columns:minmax(158px,.72fr) minmax(0,1.45fr);align-items:stretch;gap:10px;min-width:0;display:grid}.tower-menu-options{scrollbar-color:#8dd8d18c transparent;grid-template-columns:1fr;align-content:start;gap:6px;min-width:0;max-height:212px;padding-right:2px;display:grid;overflow-y:auto}.tower-menu-option{width:100%;min-width:0;min-height:44px;color:var(--paper);text-align:left;cursor:pointer;touch-action:manipulation;background:#16233dd1;border:1px solid #d6e2ff29;border-radius:10px;grid-template-rows:1fr auto;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:2px 7px;padding:5px 7px;transition:border-color .2s,background .2s,box-shadow .2s;display:grid}.tower-menu-option:hover:not(:disabled){border-color:var(--tower-color);background:#233556f0}.tower-menu-option:focus-visible{border-color:var(--tower-color);background:#233556f0}.tower-menu-option:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.tower-menu-option.is-menu-selected{border-color:var(--tower-color);box-shadow:inset 0 0 0 1px var(--tower-color), 0 0 14px var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.tower-menu-option.is-menu-selected{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tower-color) 55%, transparent), 0 0 14px color-mix(in srgb, var(--tower-color) 16%, transparent)}}.tower-menu-option.is-selected{background:var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.tower-menu-option.is-selected{background:color-mix(in srgb, var(--tower-color) 18%, #16233df0)}}.tower-menu-option:disabled{cursor:not-allowed;opacity:.62}.tower-menu-option .tower-card-portrait{border:1px solid var(--tower-color);grid-row:1/span 2;width:42px;height:42px}@supports (color:color-mix(in lab, red, red)){.tower-menu-option .tower-card-portrait{border:1px solid color-mix(in srgb, var(--tower-color) 56%, var(--line))}}.tower-menu-option .tower-card-portrait{object-fit:contain;object-position:center;background:#395b9047;border-radius:8px}.tower-menu-option-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.tower-menu-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:11px;line-height:1.1;overflow:hidden}.tower-menu-option-copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px;line-height:1.1;overflow:hidden}.tower-menu-option-copy .tower-card-effect{align-self:flex-start;max-width:100%;padding:1px 4px;font-size:8px}.tower-menu-option-cost{min-width:0;color:var(--gold);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:9px;font-weight:800;line-height:1.1;overflow:hidden}.tower-menu-detail{background:linear-gradient(145deg,#1d314ff5,#0f1c33f5);border:1px solid #8dd8d152;border-radius:13px;flex-direction:column;gap:9px;min-width:0;padding:12px;display:flex;box-shadow:inset 0 1px #ffffff0d,0 12px 28px #040a1838}.tower-menu-detail-heading{align-items:center;gap:10px;min-width:0;display:flex}.tower-menu-detail-portrait{border:1px solid var(--tower-color);flex:0 0 58px;place-items:center;width:58px;height:58px;display:grid}@supports (color:color-mix(in lab, red, red)){.tower-menu-detail-portrait{border:1px solid color-mix(in srgb, var(--tower-color) 62%, var(--line))}}.tower-menu-detail-portrait{box-shadow:0 0 18px var(--tower-color);background:#395b905c;border-radius:11px}@supports (color:color-mix(in lab, red, red)){.tower-menu-detail-portrait{box-shadow:0 0 18px color-mix(in srgb, var(--tower-color) 16%, transparent)}}.tower-menu-detail-portrait img{object-fit:contain;width:100%;height:100%}.tower-menu-detail-title{min-width:0}.tower-menu-detail-title h3{overflow-wrap:anywhere;color:var(--paper);font-family:var(--font-display);margin:2px 0;font-size:18px;line-height:1.05}.tower-menu-detail-title p{overflow-wrap:anywhere;color:var(--muted);text-transform:uppercase;margin:0;font-size:10px;line-height:1.25}.tower-menu-description{color:#d6e0f2;min-height:2.5em;margin:0;font-size:11px;line-height:1.35}.tower-menu-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;min-width:0;display:grid}.tower-menu-stats span{background:#080f1f4d;border:1px solid #d6e2ff21;border-radius:8px;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:40px;padding:5px 6px;display:flex}.tower-menu-stats small{color:var(--muted);letter-spacing:.08em;font-size:8px;font-weight:800}.tower-menu-stats strong{overflow-wrap:anywhere;color:var(--paper);font-size:11px;line-height:1.1}.tower-menu-detail-footer{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-top:auto;display:flex}.tower-menu-cost{color:var(--muted);font-size:10px}.tower-menu-cost b{color:var(--gold);font-size:14px}.tower-menu-action{background:var(--gold);color:#17223b;cursor:pointer;letter-spacing:.02em;border:1px solid #f8c56aa3;border-radius:9px;max-width:100%;min-height:44px;padding:8px 11px;font-size:10px;font-weight:900}.tower-menu-action:hover:not(:disabled){filter:brightness(1.04);box-shadow:0 0 18px #f8c56a2e}.tower-menu-action:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.tower-menu-action:disabled{cursor:not-allowed;opacity:.55}@media (prefers-reduced-motion:reduce){.tower-menu-option,.tower-menu-action{transition:none}}@media (max-width:700px){.tower-dock.is-open .tower-dock-panel{max-height:min(420px,100vh - 96px)}.tower-menu{grid-template-columns:1fr}.tower-menu-options{grid-template-columns:repeat(5,minmax(132px,1fr));max-height:none;padding-bottom:3px;overflow:auto hidden}.tower-menu-detail{padding:10px}.tower-menu-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.loadout-tower-menu{grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr);align-items:stretch;gap:12px;min-width:0;margin-top:14px;display:grid}.loadout-card-grid[data-loadout-tower-options=true]{scrollbar-color:#8dd8d18c transparent;min-width:0;max-height:510px;padding:2px 3px 3px 2px;overflow-y:auto}.loadout-tower-option{min-height:44px}.loadout-tower-detail{background:linear-gradient(145deg,#1d314ffa,#0e1a30fa);border:1px solid #8dd8d157;border-radius:16px;flex-direction:column;align-self:start;gap:12px;min-width:0;min-height:286px;padding:17px;display:flex;box-shadow:inset 0 1px #ffffff0d,0 16px 34px #040a1833}.loadout-screen[data-loadout-visual=v2] .loadout-tower-menu{grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr)}.loadout-screen[data-loadout-visual=v2] .loadout-card-grid[data-loadout-tower-options=true]{grid-template-columns:1fr;align-content:start;gap:7px;display:grid}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option{border-radius:11px;grid-template-rows:1fr auto;grid-template-columns:46px minmax(0,1fr);gap:3px 8px;width:100%;min-height:60px;padding:7px;display:grid}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-portrait-frame{border-radius:9px;grid-row:1/span 2;width:46px;height:46px}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-copy{flex-direction:column;align-self:center;gap:2px;min-width:0;display:flex}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.12;overflow:hidden}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-copy small{text-overflow:ellipsis;white-space:nowrap;min-height:0;font-size:10px;line-height:1.15;overflow:hidden}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-effect,.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-coverage{text-overflow:ellipsis;white-space:nowrap;align-self:flex-start;max-width:100%;font-size:8px;overflow:hidden}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-status{text-overflow:ellipsis;white-space:nowrap;border-top:0;grid-column:2;min-height:0;padding:3px 0 0;font-size:9px;line-height:1.15;display:block;overflow:hidden}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option .loadout-card-status i{display:none}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option.is-focused{box-shadow:0 0 0 1px var(--tower-color), 0 0 18px var(--tower-color)}@supports (color:color-mix(in lab, red, red)){.loadout-screen[data-loadout-visual=v2] .loadout-tower-option.is-focused{box-shadow:0 0 0 1px var(--tower-color), 0 0 18px color-mix(in srgb, var(--tower-color) 17%, transparent)}}.loadout-tower-detail-heading{align-items:center;gap:12px;min-width:0;display:flex}.loadout-tower-detail-portrait{border:1px solid var(--tower-color);flex:0 0 82px;place-items:center;width:82px;height:82px;display:grid}@supports (color:color-mix(in lab, red, red)){.loadout-tower-detail-portrait{border:1px solid color-mix(in srgb, var(--tower-color) 62%, var(--line))}}.loadout-tower-detail-portrait{box-shadow:0 0 22px var(--tower-color);background:#395b9061;border-radius:13px}@supports (color:color-mix(in lab, red, red)){.loadout-tower-detail-portrait{box-shadow:0 0 22px color-mix(in srgb, var(--tower-color) 18%, transparent)}}.loadout-tower-detail-portrait img{object-fit:contain;width:100%;height:100%}.loadout-tower-detail-title{min-width:0}.loadout-tower-detail-title h3{overflow-wrap:anywhere;color:var(--paper);font-family:var(--font-display);margin:3px 0 4px;font-size:23px;line-height:1.05}.loadout-tower-detail-title p{overflow-wrap:anywhere;color:var(--muted);text-transform:uppercase;margin:0;font-size:11px;line-height:1.3}.loadout-tower-description{color:#dce6f7;margin:0;font-size:14px;line-height:1.5}.loadout-tower-tags{flex-wrap:wrap;gap:6px;display:flex}.loadout-tower-tags span{color:#b9f1e7;letter-spacing:.04em;text-transform:uppercase;background:#8dd8d114;border:1px solid #8dd8d142;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900}.loadout-tower-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0;display:grid}.loadout-tower-stats span{background:#080f1f47;border:1px solid #d6e2ff24;border-radius:9px;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:48px;padding:6px 7px;display:flex}.loadout-tower-stats small{color:var(--muted);letter-spacing:.08em;font-size:8px;font-weight:900}.loadout-tower-stats strong{overflow-wrap:anywhere;color:var(--paper);font-size:12px;line-height:1.12}.loadout-tower-detail-footer{justify-content:space-between;align-items:center;gap:9px;min-width:0;margin-top:auto;display:flex}.loadout-tower-cost{color:var(--muted);font-size:11px}.loadout-tower-cost b{color:var(--gold);font-size:17px}.loadout-tower-action{background:var(--gold);color:#17223b;cursor:pointer;white-space:nowrap;border:1px solid #f8c56aa3;border-radius:10px;min-height:44px;padding:9px 13px;font-size:11px;font-weight:900}.loadout-tower-action:hover:not(:disabled){filter:brightness(1.04);box-shadow:0 0 18px #f8c56a2e}.loadout-tower-action:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.loadout-tower-action:disabled{cursor:not-allowed;opacity:.55}@media (max-width:700px){.loadout-tower-menu,.loadout-screen[data-loadout-visual=v2] .loadout-tower-menu{grid-template-columns:1fr}.loadout-screen[data-loadout-visual=v2] .loadout-card-grid[data-loadout-tower-options=true]{max-height:310px}.loadout-screen[data-loadout-visual=v2] .loadout-tower-option{min-height:58px}.loadout-tower-detail{min-height:0;padding:14px}.loadout-tower-detail-title h3{font-size:20px}.loadout-tower-description{font-size:13px}.loadout-tower-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.loadout-tower-detail-footer{flex-direction:column;align-items:stretch}.loadout-tower-action{width:100%}}@media (prefers-reduced-motion:reduce){.loadout-tower-option,.loadout-tower-action{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
/* Defend Our School — production polish pass
 * Loaded after the captured production stylesheet. Keep this file small and
 * reversible: it only owns layout, readability, and interaction affordances.
 */

:root {
  --polish-surface: rgba(10, 20, 40, .88);
  --polish-border: rgba(141, 216, 209, .38);
  --polish-focus: #f8c56a;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

button,
a,
[role="button"] {
  -webkit-tap-highlight-color: transparent;
}

/* Prevent the lower deployment dock and selected-tower manager from becoming
   a horizontal scroll trap on small windows. */
.tower-dock,
.tower-dock-panel,
.tower-dock-manager-surface,
.tower-menu,
.tower-menu-detail,
.tower-manage-row,
.tower-targeting-control {
  min-width: 0;
  max-width: 100%;
}

.tower-dock-panel,
.tower-dock-manager-surface {
  overflow-x: hidden;
}

.tower-menu-detail,
.tower-manage-summary,
.tower-manage-panel,
.tower-targeting-control {
  overflow: hidden;
}

.tower-card-copy,
.tower-card-copy strong,
.tower-card-copy small,
.tower-menu-option-copy,
.tower-menu-option-copy strong,
.tower-menu-option-copy small,
.tower-menu-description,
.tower-menu-detail-title,
.tower-manage-summary span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.tower-manage-stats {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tower-manage-stats span {
  min-width: 0;
}

/* A quieter, clearer range/placement treatment: the canvas owns the actual
   circle; these labels make its meaning legible without adding a second ring. */
.placement-feedback {
  background: rgba(6, 15, 31, .48);
  border: 1px solid rgba(141, 216, 209, .18);
  border-radius: 8px;
  padding: 5px 7px;
}

.placement-legend-item.is-coverage {
  background: rgba(141, 216, 209, .08);
}

.tower-menu-action,
.loadout-tower-action,
.prep-start,
.wave-button {
  box-shadow: 0 8px 18px rgba(248, 197, 106, .16);
}

.tower-menu-action:focus-visible,
.loadout-tower-action:focus-visible,
.prep-start:focus-visible,
.wave-button:focus-visible,
.hud-button:focus-visible {
  outline: 2px solid var(--polish-focus);
  outline-offset: 3px;
}

/* Keep enemy information readable when the pointer is close to the edge. */
.enemy-inspector {
  max-width: min(220px, calc(100vw - 20px));
  max-height: min(220px, calc(100vh - 20px));
  overflow: auto;
}

/* Compact gameplay HUD. The desktop composition remains unchanged; below
   700px, action controls get an intentional two-row layout instead of
   squeezing into the title and creating internal scrollbars. */
@media (max-width: 700px) {
  .game-shell {
    width: 100vw;
    max-width: 100vw;
    overflow: hidden;
  }

  .game-hud {
    grid-template-columns: minmax(0, 1fr) minmax(174px, 46vw);
    grid-template-rows: auto auto;
    width: 100%;
    max-width: 100%;
    padding: 8px 9px 7px;
    gap: 7px;
    overflow: visible;
  }

  .brand-lockup {
    gap: 7px;
    max-width: 100%;
  }

  .brand-lockup .brand-mark {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 10px;
    font-size: 10px;
  }

  .brand-lockup h1 {
    max-width: 100%;
    font-size: clamp(12px, 3.8vw, 16px);
  }

  .brand-lockup .eyebrow {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 7px;
  }

  .hud-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: 42px 42px;
    align-items: stretch;
    gap: 4px;
    width: 100%;
    max-width: 100%;
  }

  .hud-actions .hud-button {
    min-width: 0;
    min-height: 42px;
    padding: 5px 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 9px;
  }

  .hud-actions .early-wave-button {
    grid-column: 1 / span 2;
  }

  .hud-actions .wave-button {
    grid-column: 3;
    min-width: 0;
    min-height: 42px;
    padding: 5px 4px;
    overflow: hidden;
    white-space: normal;
    line-height: 1.1;
    font-size: 9px;
  }

  .hud-stats {
    grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, .8fr));
    gap: 4px;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  .hud-stat,
  .health-stat {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  .hud-stat strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .health-bar {
    max-width: 100%;
    overflow: hidden;
  }

  .map-legend {
    top: 173px;
    left: 10px;
    right: 10px;
    max-width: none;
    justify-content: center;
    gap: 8px;
    padding: 7px 8px;
    font-size: 9px;
  }

  .map-legend span {
    min-width: 0;
  }

  .prep-banner {
    top: 213px;
    left: 9px;
    right: 9px;
    width: auto;
    max-width: none;
  }

  .tower-dock {
    width: calc(100% - 14px);
    max-width: calc(100% - 14px);
    bottom: 7px;
  }

  .tower-dock.is-collapsed.has-manager {
    width: calc(100% - 14px);
    max-width: calc(100% - 14px);
  }

  .tower-dock-panel {
    max-height: min(360px, calc(100vh - 230px));
  }

  .tower-menu {
    grid-template-columns: 1fr;
  }

  .tower-menu-options {
    grid-template-columns: repeat(5, minmax(118px, 1fr));
    max-height: none;
    padding-bottom: 3px;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .tower-menu-detail {
    min-height: 0;
  }

  .tower-menu-detail-footer {
    flex-wrap: wrap;
  }

  .tower-menu-action {
    flex: 1 1 140px;
  }

  .tower-targeting-options {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .tower-target-option {
    min-height: 44px;
    padding: 7px 5px;
    font-size: 10px;
  }

  .tower-manage-stats span {
    flex: 1 1 74px;
  }
}

@media (max-width: 380px) {
  .game-hud {
    grid-template-columns: minmax(0, 1fr) minmax(154px, 45vw);
  }

  .hud-actions .hud-button,
  .hud-actions .wave-button {
    font-size: 8px;
  }

  .hud-label {
    font-size: 6px;
  }

  .hud-stat strong {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tower-menu-action,
  .loadout-tower-action,
  .prep-start,
  .wave-button,
  .hud-button {
    transition: none;
  }
}

/* Narrow tablets and small laptop windows previously stayed on the wrapped
   desktop HUD until 700px. Use the same deliberate two-row control treatment
   from 701–760px so status cards and wave actions never compete horizontally. */
@media (min-width: 701px) and (max-width: 760px) {
  .game-hud {
    grid-template-columns: minmax(0, 1fr) minmax(190px, 43vw);
    grid-template-rows: auto auto;
    align-items: start;
    min-height: 0;
    gap: 8px;
    padding: 10px 10px 8px;
    display: grid;
  }

  .brand-lockup {
    grid-area: 1 / 1;
    gap: 8px;
    min-width: 0;
  }

  .brand-lockup h1 {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
  }

  .hud-actions {
    grid-area: 1 / 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: 42px 42px;
    align-items: stretch;
    gap: 4px;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin-left: 0;
  }

  .hud-actions .hud-button,
  .hud-actions .wave-button {
    min-width: 0;
    min-height: 42px;
    padding: 5px 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 9px;
  }

  .hud-actions .early-wave-button {
    grid-column: 1 / span 2;
  }

  .hud-actions .wave-button {
    grid-column: 3;
    white-space: normal;
    line-height: 1.1;
  }

  .hud-stats {
    grid-area: 2 / 1 / auto / -1;
    grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, .8fr));
    gap: 4px;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    display: grid;
    overflow: hidden;
  }

  .hud-stat,
  .health-stat {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    padding: 5px 6px;
    border-radius: 7px;
  }

  .hud-stat strong {
    min-width: 0;
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
  }

  .hud-label {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 7px;
  }

  .health-bar {
    max-width: 100%;
    height: 3px;
    margin-top: 5px;
    overflow: hidden;
  }

  .mission-card {
    display: none;
  }

  .map-legend {
    top: 173px;
    left: 10px;
    right: 10px;
    max-width: none;
    justify-content: center;
    gap: 8px;
    padding: 7px 8px;
    font-size: 9px;
  }

  .prep-banner {
    top: 213px;
    left: 9px;
    right: 9px;
    width: auto;
    max-width: none;
    min-width: 0;
    transform: none;
  }

  .tower-dock {
    width: calc(100% - 14px);
    max-width: calc(100% - 14px);
    bottom: 7px;
  }
}

