.dev-labs{max-width:960px;color:var(--text,#e8eef5);margin:0 auto;padding:1rem 1.25rem 3rem}.dev-labs__eyebrow{letter-spacing:.12em;text-transform:uppercase;opacity:.65;margin:0 0 .35rem;font-size:.7rem}.dev-labs__title{margin:0;font-size:1.6rem}.dev-labs__sub{opacity:.8;margin:.35rem 0 .75rem;font-size:.95rem}.dev-labs__nav{gap:1rem;margin-bottom:1.25rem;display:flex}.dev-labs__nav a{color:var(--accent,#7eb6ff)}.dev-labs__list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.dev-labs__list{grid-template-columns:1fr 1fr}}.dev-labs__card{background:#00000040;border:1px solid #ffffff1f;border-radius:8px;padding:.85rem 1rem 1rem}.dev-labs__card-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.dev-labs__card-head h2{margin:0;font-size:1.05rem}.dev-labs__topo{letter-spacing:.04em;text-transform:uppercase;opacity:.7;white-space:nowrap;font-size:.7rem}.dev-labs__purpose{opacity:.85;margin:.45rem 0 .65rem;font-size:.88rem;line-height:1.35}.dev-labs__stats{grid-template-columns:1fr 1fr;gap:.35rem .75rem;margin:0 0 .75rem;font-size:.78rem;display:grid}.dev-labs__stats dt{opacity:.55}.dev-labs__stats dd{font-variant-numeric:tabular-nums;margin:0}.dev-labs__play{color:#fff;letter-spacing:.04em;cursor:pointer;background:#2d6cdf;border:0;border-radius:6px;width:100%;padding:.55rem .75rem;font-weight:600}.dev-labs__play:hover{background:#3a7aef}.dev-visuals{color:#f1f5f9;max-width:720px;margin:0 auto;padding:1rem 1rem 2rem}.dev-visuals__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#94a3b8;margin:0;font-size:.7rem}.dev-visuals__title{margin:.35rem 0 .25rem;font-size:1.45rem;font-weight:700}.dev-visuals__sub{color:#94a3b8;margin:0 0 .75rem;font-size:.9rem}.dev-visuals__nav{gap:1rem;margin-bottom:1rem;display:flex}.dev-visuals__nav a{color:#5bb8e8;font-size:.9rem}.dev-visuals__canvas{background:#0b1220;border:1px solid #2a3b55;border-radius:12px;width:100%;max-width:390px;min-height:640px;max-height:min(80vh,900px);margin:0 auto;overflow:auto}.dev-visuals__canvas canvas{display:block;width:100%!important;height:auto!important}.dev-visuals__notes{background:#152033;border:1px solid #2a3b55;border-radius:10px;margin-top:1rem;padding:.75rem 1rem}.dev-visuals__notes h2{margin:0 0 .5rem;font-size:.95rem}.dev-visuals__notes ul{color:#94a3b8;margin:0;padding-left:1.1rem;font-size:.85rem}@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,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration: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;--color-red-400:oklch(70.4% .191 22.216);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-400:oklch(75% .183 55.934);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-blue-400:oklch(70.7% .165 254.624);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--blur-sm:8px;--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,::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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;max-width:100%;height:100%;overflow:hidden}body{background:var(--std-background);color:var(--std-text);--std-background:#0b1220;--std-surface:#152033;--std-surface-elevated:#1c2a40;--std-surface-sunken:#0f172a;--std-surface-overlay:#0b1220eb;--std-text:#f1f5f9;--std-text-muted:#94a3b8;--std-text-faint:#64748b;--std-border:#334155;--std-border-strong:#475569;--std-border-accent:#38bdf8;--std-radius-xs:.3rem;--std-radius-sm:.4rem;--std-radius-md:.5rem;--std-radius-lg:.65rem;--std-radius-xl:.75rem;--std-shadow-sm:0 2px 8px #00000038;--std-shadow-md:0 8px 24px #00000059;--std-shadow-lg:0 16px 40px #00000073;--std-focus-ring:#fbbf24;--std-focus-glow:#fbbf2459;--std-btn-primary-bg:#16a34a;--std-btn-primary-bg-hover:#15803d;--std-btn-primary-fg:#f0fdf4;--std-btn-secondary-bg:#1e293b;--std-btn-secondary-fg:#e2e8f0;--std-btn-secondary-border:#475569;--std-chip-bg:#1e293bbf;--std-chip-fg:#e2e8f0;--std-badge-bg:#0f172ae6;--std-badge-border:#334155;--std-seg-bg:#1e293b;--std-seg-border:#475569;--std-seg-active-bg:#166534;--std-seg-active-fg:#f0fdf4;--std-seg-active-ring:#22c55e;--std-locked-opacity:.58;--std-board:#1a2740;--std-grass:#3d6b2e;--std-path:#7a5a3a;--std-path-edge:#5c4228;--std-grid:#1e3a28;--std-selection:#fbbf24;--std-valid:#34d399;--std-invalid:#f87171;--std-fire:#e85d4c;--std-frost:#4b8fd9;--std-cannon:#2a3344;--std-poison:#9ccc3c;--std-aa:#2ec4d9;--std-mage:#b57ae8;--std-gold:#4ade80;--std-danger:#f87171;--std-success:#34d399;--std-warning:#fbbf24;--std-hp:#34d399;--std-shield:#e2e8f0;--std-exit:#f5d78a;--std-spawn:#f8fafc;font-family:Inter,system-ui,-apple-system,sans-serif}:focus{outline:none}:focus-visible{outline:2px solid var(--std-focus-ring);outline-offset:2px;box-shadow:0 0 0 3px var(--std-focus-glow)}#root{flex-direction:column;min-height:100dvh;display:flex}button{touch-action:manipulation}}@layer components{.app-shell{background:linear-gradient(180deg, var(--std-background) 0%, #121c2e 55%, var(--std-surface) 100%);flex-direction:column;width:100%;min-width:0;max-width:100%;height:100dvh;display:flex;overflow:hidden}.app-shell--desktop.app-shell--match{border-inline:1px solid #1e293b;max-width:min(1440px,100%);margin-inline:auto}html:has(.app-shell--desktop.app-shell--match){background:#020617}.app-shell__main{flex-direction:column;flex:auto;gap:.35rem;min-width:0;min-height:0;padding:.35rem .5rem;display:flex;position:relative;overflow:hidden}.match-workspace{flex-direction:column;flex:auto;gap:.35rem;min-width:0;min-height:0;display:flex}.match-workspace__stage{flex-direction:column;flex:auto;gap:.25rem;min-width:0;min-height:0;display:flex;position:relative}.match-workspace__rail{flex:none;min-width:0}.app-shell--portrait .match-workspace{flex-direction:column}.app-shell--landscape.app-shell--match .global-topbar{min-height:1.75rem;padding:.1rem .45rem}.app-shell--landscape.app-shell--match .global-topbar__tag{display:none}.app-shell--landscape .app-shell__main{gap:.15rem;padding:.15rem .35rem}.app-shell--landscape .match-workspace{flex-direction:row;align-items:stretch;gap:.35rem;min-height:0}.app-shell--landscape .match-workspace__stage{flex:1;min-width:0;min-height:0}.app-shell--landscape .match-workspace__rail{flex-direction:column;flex:0 0 5.25rem;width:5.25rem;min-height:0;display:flex}.app-shell--landscape .match-bar{flex:none;gap:.2rem;padding:.1rem .25rem}.app-shell--landscape .match-stat__label{display:none}.app-shell--landscape .match-stat{min-height:1.35rem;padding:.05rem .25rem}.app-shell--landscape .wave-intel{display:none}.app-shell--landscape .tower-bar,.app-shell--landscape .tower-tray{flex-direction:column;align-items:stretch;height:100%}.app-shell--landscape .tower-tray{flex:auto;gap:.2rem}.app-shell--landscape .tower-tray__item{flex-direction:column;flex:1 1 0;justify-content:center;width:100%;min-height:0;padding:.2rem .15rem}.app-shell--landscape .tower-tray__name{display:none}.app-shell--landscape .tower-bar--inspect{flex-direction:column;align-items:stretch;height:100%;overflow:auto}.app-shell--landscape .tower-inspect{flex-direction:column;align-items:stretch;gap:.25rem}.app-shell--landscape .tower-inspect__identity{min-width:0}.app-shell--landscape .tower-inspect__stats,.app-shell--landscape .tower-inspect__combat{font-size:.65rem}.app-shell--desktop .app-shell__main{padding:.5rem .75rem}.app-shell--desktop .match-workspace{flex-direction:row;align-items:stretch;gap:.65rem;min-height:0}.app-shell--desktop .match-workspace__stage{flex:1;min-width:0}.app-shell--desktop .match-workspace__rail{background:#0f172ab8;border:1px solid #334155;border-radius:.55rem;flex-direction:column;flex:0 0 clamp(14rem,22vw,17rem);width:clamp(14rem,22vw,17rem);min-height:0;padding:.35rem;display:flex}.app-shell--desktop .tower-bar,.app-shell--desktop .tower-tray{flex-direction:column;align-items:stretch;height:100%}.app-shell--desktop .tower-tray{gap:.35rem}.app-shell--desktop .tower-tray__item{flex:none;justify-content:flex-start;width:100%;min-height:2.75rem}.app-shell--desktop .tower-tray__name{display:inline}.app-shell--desktop .tower-bar--inspect{flex-direction:column;height:100%}.app-shell--desktop .tower-inspect{flex-direction:column;align-items:stretch}.app-shell--desktop .game-viewport--match .game-viewport__canvas,.app-shell--landscape .game-viewport--match .game-viewport__canvas,.app-shell--portrait .game-viewport--match .game-viewport__canvas{flex:auto;width:100%;height:100%}.global-topbar{border-bottom:1px solid var(--std-border);background:var(--std-surface-overlay);flex:none;justify-content:space-between;align-items:center;gap:.5rem;min-width:0;min-height:2.35rem;padding:.25rem .6rem;display:flex}.global-topbar__brand{align-items:baseline;gap:.45rem;min-width:0;display:flex}.global-topbar__title{letter-spacing:.02em;white-space:nowrap;font-size:1.05rem;font-weight:700}.global-topbar__tag{color:#94a3b8;text-transform:uppercase;font-size:.7rem}.global-topbar__slots{flex:none;align-items:center;gap:.4rem;display:flex}.topbar-slot{border-radius:var(--std-radius-sm);background:var(--std-chip-bg);min-width:2rem;min-height:2rem;color:var(--std-text-muted);border:1px solid #0000;justify-content:center;align-items:center;padding:0 .5rem;font-size:.78rem;display:inline-flex}.topbar-slot--muted{color:#64748b;background:0 0;border:1px dashed #334155}.audio-controls{align-items:center;gap:.2rem;display:inline-flex;position:relative}.audio-controls__mute,.audio-controls__gear{cursor:pointer;color:#cbd5e1;background:#1e293bd9}.audio-controls__mute[aria-pressed=true]{color:#94a3b8}.audio-controls__popover{z-index:40;background:#0f172afa;border:1px solid #334155;border-radius:.45rem;flex-direction:column;gap:.45rem;min-width:10rem;padding:.55rem .65rem;display:flex;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 8px 24px #00000059}.audio-controls__row{color:#94a3b8;justify-content:space-between;align-items:center;gap:.5rem;font-size:.72rem;display:flex}.audio-controls__row input[type=range]{width:5.5rem}.home-menu{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:1rem;width:100%;min-width:0;min-height:0;padding:.75rem .5rem;display:flex;overflow:hidden auto}.home-menu__hero{flex-direction:column;gap:.25rem;max-width:100%;display:flex}.home-menu__title{letter-spacing:.04em;color:#f8fafc;font-size:clamp(1.75rem,8vw,3.25rem);font-weight:800;line-height:1.1}.home-menu__subtitle{color:#94a3b8;font-size:clamp(.85rem,3.2vw,1.15rem)}.home-menu__maps{flex-direction:column;gap:.5rem;width:min(100%,22rem);display:flex}.home-menu__section-label{color:#94a3b8;font-size:.85rem;font-weight:600}.home-menu__chapter-title{color:#e2e8f0;margin:0 0 .65rem;font-size:1.15rem;font-weight:700}.home-menu__meta-row{color:#cbd5e1;flex-wrap:wrap;justify-content:center;align-items:center;gap:.55rem .85rem;width:min(28rem,100%);margin:.35rem 0 .75rem;font-size:.85rem;display:flex}.home-menu__ingots{color:#fbbf24;font-weight:700}.home-menu__stars-total{color:#fde68a;font-weight:600}.home-menu__chapter-done{color:#86efac;font-weight:600}.home-menu__chapter-hint{color:#94a3b8;margin:0 0 .55rem;font-size:.8rem}.home-menu__stage-stars{letter-spacing:.02em;color:#64748b;gap:.12rem;font-size:.95rem;display:inline-flex}.home-menu__star--filled{color:#fbbf24}.home-menu__map-card--locked{opacity:.55;cursor:not-allowed;border-style:dashed}.home-menu__difficulty{width:min(28rem,100%);margin:.75rem 0 0}.home-menu__difficulty-grid{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.home-menu__difficulty-card{color:#e2e8f0;text-align:left;cursor:pointer;background:#334155;border:2px solid #475569;border-radius:.55rem;flex-direction:column;align-items:flex-start;gap:.15rem;min-height:3.5rem;padding:.55rem .7rem;display:flex}.home-menu__difficulty-card--active{background:#1e3a2f;border-color:#22c55e}.home-menu__difficulty-name{font-size:.95rem;font-weight:700}.home-menu__difficulty-meta{color:#94a3b8;font-size:.72rem}.home-menu__difficulty-summary{color:#cbd5e1;margin:.45rem 0 0;font-size:.8rem}.home-menu__difficulty-seg{border-radius:var(--std-radius-sm);border:2px solid var(--std-seg-border);background:var(--std-seg-bg);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.home-menu__difficulty-seg-btn{border:none;border-right:1px solid var(--std-seg-border);color:var(--std-text-muted);letter-spacing:.02em;cursor:pointer;background:0 0;min-height:2.6rem;margin:0;padding:.55rem .2rem;font-size:.78rem;font-weight:700}.home-menu__difficulty-seg-btn:last-child{border-right:none}.home-menu__difficulty-seg-btn--active{background:var(--std-seg-active-bg);color:var(--std-seg-active-fg);box-shadow:inset 0 0 0 1px var(--std-seg-active-ring);font-weight:800}.home-menu__difficulty-seg-btn--active:after{content:"";background:var(--std-seg-active-fg);border-radius:999px;width:.35rem;height:.35rem;margin:.2rem auto 0;display:block}.home-menu__difficulty-info{color:#cbd5e1;margin:.4rem 0 0;font-size:.78rem;line-height:1.35}.home-menu__mastery{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.home-menu__mastery-label{letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;font-size:.72rem;font-weight:700}.home-menu__mastery-slots{gap:.35rem;display:inline-flex}.home-menu__mastery-slot{color:#64748b;border:1px solid #0000;border-radius:.3rem;flex-direction:column;align-items:center;gap:.05rem;min-width:1.7rem;padding:.15rem .2rem;display:inline-flex}.home-menu__mastery-slot--filled{color:#fbbf24}.home-menu__mastery-slot--focus{background:#38bdf81a;border-color:#38bdf8}.home-menu__mastery-diff{letter-spacing:.04em;font-size:.62rem;font-weight:800}.home-menu__mastery-star{font-size:.85rem;line-height:1}.home-menu__play-intent{text-align:center;letter-spacing:.06em;color:#e0f2fe;margin:.15rem 0 0;font-size:.95rem;font-weight:800}.match-bar__identity{letter-spacing:.06em;color:#7dd3fc;text-align:left;margin:0 0 .25rem;padding:0 .15rem;font-size:.72rem;font-weight:700}.home-menu__admin-link{text-align:center;margin:1rem 0 0;font-size:.75rem}.home-menu__admin-link a{color:#64748b;text-decoration:underline}.home-menu__admin-link a:hover{color:#94a3b8}.home-menu__map-list{flex-direction:column;gap:.45rem;width:100%;list-style:none;display:flex}.home-menu__map-card{color:#e2e8f0;cursor:pointer;background:#334155;border:2px solid #475569;border-radius:.65rem;flex-direction:column;align-items:center;gap:.15rem;width:100%;min-height:3.25rem;padding:.65rem .85rem;display:flex}.home-menu__map-card--active{background:#3f4f63;border-color:#22c55e}.home-menu__map-name{color:#86efac;font-size:1.05rem;font-weight:700}.home-menu__map-meta{color:#94a3b8;font-size:.75rem}.home-menu__map-selected{letter-spacing:.04em;text-transform:uppercase;color:#86efac;margin-top:.2rem;font-size:.7rem;font-weight:700}.home-menu__map-card--completed{border-color:#64748b}.home-menu__map-status{color:#86efac;margin-top:.15rem;font-size:.72rem;font-weight:600}.home-menu__map-status--open{color:#94a3b8;font-weight:500}.home-menu__reset-progress{color:#64748b;cursor:pointer;background:0 0;border:none;margin-top:.35rem;padding:0;font-size:.72rem;text-decoration:underline}.home-menu__reset-progress:hover,.home-menu__reset-progress:focus-visible{color:#94a3b8}.defeat-panel__campaign{letter-spacing:.06em;color:#86efac;margin:0 0 .35rem;font-size:.85rem;font-weight:700}.defeat-panel__meta--bests{color:#cbd5e1}.home-menu__start{border-radius:var(--std-radius-lg);background:var(--std-btn-primary-bg);width:min(100%,16rem);min-height:3rem;color:var(--std-btn-primary-fg);letter-spacing:.04em;cursor:pointer;box-shadow:var(--std-shadow-sm);border:none;font-size:1.05rem;font-weight:800}.home-menu__start:hover,.home-menu__start:focus-visible{background:var(--std-btn-primary-bg-hover)}.home-menu__start:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.home-menu__editor-link{color:#cbd5e1;letter-spacing:.06em;background:#1e293b;border:1px solid #475569;border-radius:.55rem;justify-content:center;align-items:center;width:min(100%,16rem);min-height:2.5rem;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.home-menu__editor-link:hover,.home-menu__editor-link:focus-visible{color:#f8fafc;border-color:#94a3b8}.home-menu__hints{color:#64748b;flex-direction:column;gap:.25rem;width:min(100%,26rem);font-size:clamp(.7rem,2.6vw,.82rem);line-height:1.35;list-style:none;display:flex}.match-bar{border-bottom:1px solid var(--std-border);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:.3rem .65rem;min-width:0;padding:.3rem .55rem;display:flex}@supports (color:color-mix(in lab, red, red)){.match-bar{border-bottom:1px solid color-mix(in srgb, var(--std-border) 70%, transparent)}}.match-bar{background:var(--std-surface-overlay);border-radius:0 0 var(--std-radius-sm) var(--std-radius-sm)}.match-bar__hud{flex-wrap:nowrap;align-items:baseline;gap:.55rem .85rem;min-width:0;display:flex}.match-bar__stats{flex-wrap:nowrap;align-items:baseline;gap:.45rem .65rem;min-width:0;display:flex}.match-bar__stats--secondary{opacity:.78}.match-stat{white-space:nowrap;background:0 0;border:none;border-radius:0;align-items:baseline;gap:.28rem;min-height:1.6rem;padding:0;display:inline-flex}.match-stat--wave{cursor:pointer;font:inherit;color:inherit}.match-stat__value{font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:.95rem;font-weight:800}.match-stat__value--lives{color:#f87171}.match-stat__value--gold{color:#4ade80}.match-stat__value--wave{color:#facc15}.match-stat__value--time{color:#94a3b8;font-size:.82rem;font-weight:650}.match-stat__value--defeated{color:#fb923c;font-size:.82rem;font-weight:650}.match-stat--secondary .match-stat__value{font-size:.82rem}.wave-intel{flex-direction:column;flex:100%;gap:.2rem;min-width:0;padding:.05rem 0 0;display:flex}.wave-intel__row{flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;min-width:0;display:flex}.wave-intel__title{color:#cbd5e1;letter-spacing:.01em;font-size:.72rem;font-weight:700}.wave-intel__reward,.wave-intel__meta,.wave-intel__clear{color:#94a3b8;font-size:.68rem;font-weight:600}.wave-intel__clear{color:#86efac}.wave-intel__chips{flex-wrap:nowrap;gap:.35rem;min-width:0;padding-bottom:.1rem;display:flex;overflow-x:auto}.wave-chip{color:#e2e8f0;white-space:nowrap;background:#1e293bbf;border:none;border-radius:.3rem;flex:none;align-items:center;gap:.25rem;padding:.08rem .3rem;font-size:.65rem;font-weight:700;display:inline-flex}.wave-chip--air{background:#0e749047;border:1px solid #38bdf873}.wave-chip__air{letter-spacing:.04em;color:#7dd3fc;font-size:.55rem;font-weight:800;line-height:1}.wave-chip__lane{letter-spacing:.04em;color:#fcd34d;text-align:center;min-width:.7rem;font-size:.55rem;font-weight:800;line-height:1}.wave-chip--lane{border:1px solid #fcd34d59}.wave-chip__dot{border-radius:999px;flex:none;width:.55rem;height:.55rem}.match-stat__label{color:#64748b;font-size:.68rem}.match-stat__icon{font-size:.7rem;line-height:1;display:none}.match-stat__icon--lives{color:#f87171}.match-stat__icon--gold{color:#4ade80}.match-stat__icon--wave{color:#facc15}.match-stat__icon--time{color:#60a5fa}.match-stat__icon--defeated{color:#fb923c}.match-stat__value--wave-compact{display:none}.match-bar__controls{flex-wrap:nowrap;flex:none;align-items:center;gap:.25rem;display:flex}.match-prep{color:#94a3b8;white-space:nowrap;align-items:baseline;gap:.25rem;padding:0 .35rem;font-size:.72rem;font-weight:700;display:inline-flex}.match-prep__value{color:#e2e8f0;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:800}.match-control--start{color:#bbf7d0;background:#166534;border-color:#0000;align-items:center;gap:.35rem;padding:0 .7rem;font-weight:800;display:inline-flex}.match-control__start-bonus{color:#fef08a;font-size:.68rem;font-weight:800}.match-control__start-full{display:none}.match-control__start-compact{display:inline}.match-speed{background:#1e293b;border-radius:.45rem;gap:0;display:inline-flex;overflow:hidden}.match-control{color:#cbd5e1;cursor:pointer;background:#1e293b;border:none;border-radius:.45rem;min-width:2.25rem;min-height:2.25rem;padding:0 .45rem;font-size:.8rem;font-weight:700}.match-control--speed{border-radius:0;min-width:2.1rem}.match-control:hover,.match-control:focus-visible{background:#334155}.match-control--active{color:#0f172a;background:#eab308}.match-control--pause{min-width:2.5rem}.match-control__pause-icon,.match-control--speed-cycle,.tower-bar__cancel-icon{display:none}.game-viewport{flex:auto;width:100%;min-width:0;min-height:0;display:flex}.game-viewport--match{flex:auto;justify-content:stretch;align-items:stretch;min-height:0}.game-viewport__canvas{background:#0f172a;border:1px solid #334155;border-radius:.5rem;flex:auto;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.game-viewport--match .game-viewport__canvas{flex:auto}.game-viewport__canvas canvas{display:block;width:100%!important;height:100%!important}.game-viewport__loading{z-index:2;background:#1e293b;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.tower-bar{flex-wrap:nowrap;flex:none;align-items:center;gap:.35rem;min-width:0;padding:.15rem 0;display:flex}.tower-tray{flex-wrap:nowrap;flex:auto;align-items:center;gap:.25rem;min-width:0;display:flex}.tower-tray__item{border-radius:var(--std-radius-md);border:2px solid var(--std-border-strong);background:var(--std-surface);min-width:0;min-height:2.65rem;color:var(--std-text);cursor:pointer;flex:1 1 0;align-items:center;gap:.3rem;padding:.15rem .35rem .15rem .2rem;display:inline-flex;position:relative}.tower-tray__item:hover:not(:disabled),.tower-tray__item:focus-visible:not(:disabled){border-color:var(--tower-color,#94a3b8)}.tower-tray__item--selected{border-color:var(--tower-color,var(--std-warning));box-shadow:0 0 0 1px var(--tower-color,var(--std-warning)), inset 0 -2px 0 0 var(--std-selection)}.tower-tray__item--locked{opacity:var(--std-locked-opacity);border-style:dashed}.tower-tray__item:disabled{cursor:not-allowed}.tower-tray__selected-mark{color:var(--std-selection);font-size:.45rem;line-height:1;position:absolute;top:.2rem;right:.25rem}.tower-tray__swatch{background:#0f172a;border:1px solid #ffffff59;border-radius:.35rem;flex:none;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;font-weight:800;display:inline-flex}.tower-glyph{background:var(--tower-color,#94a3b8);width:62%;height:62%;display:block}.tower-glyph--fire{clip-path:polygon(50% 6%,6% 94%,94% 94%)}.tower-glyph--frost{clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%)}.tower-glyph--cannon{background:radial-gradient(circle at 50% 50%, #0b1220 22%, transparent 24%), radial-gradient(circle at 50% 50%, #64748b 34%, transparent 36%), var(--tower-color,#94a3b8);border-radius:.14rem;box-shadow:inset 0 0 0 1.5px #f8fafc59}.tower-glyph--poison{clip-path:polygon(50% 0%,82% 42%,50% 100%,18% 42%)}.tower-glyph--aa{clip-path:polygon(18% 100%,38% 100%,32% 42%,22% 8%,38% 8%,44% 38%,50% 28%,56% 38%,62% 8%,78% 8%,68% 42%,62% 100%,82% 100%,82% 62%,50% 48%,18% 62%)}.tower-glyph--mage{clip-path:polygon(50% 0%,98% 36%,80% 100%,20% 100%,2% 36%)}.tower-tray__meta{flex-direction:column;align-items:flex-start;min-width:0;line-height:1.1;display:flex}.tower-tray__name{font-size:.75rem;font-weight:700}.tower-tray__cost{color:#86efac;font-size:.7rem}.tower-bar__cancel{color:#fecaca;cursor:pointer;background:#7f1d1d;border:1px solid #b91c1c;border-radius:.5rem;flex:none;min-width:4rem;min-height:2.65rem;padding:0 .65rem;font-size:.8rem;font-weight:700}.tower-bar--inspect{flex-wrap:wrap}.tower-inspect{flex-wrap:nowrap;align-items:center;gap:.35rem;width:100%;min-width:0;min-height:2.65rem;display:flex}.tower-inspect__swatch{background:#0f172a;border:1px solid #ffffff59;border-radius:.35rem;flex:none;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;font-weight:800;display:inline-flex}.tower-inspect__identity{flex-direction:column;flex:auto;align-items:flex-start;min-width:0;line-height:1.1;display:flex}.tower-inspect__title{color:#f8fafc;white-space:nowrap;font-size:.78rem;font-weight:800}.tower-inspect__stats{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.68rem;overflow:hidden}.tower-inspect__combat{color:#fbbf24;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.66rem;font-weight:700;overflow:hidden}.tower-inspect__targeting{color:#e2e8f0;letter-spacing:.02em;white-space:nowrap;cursor:pointer;background:#1e293b;border:1px solid #64748b;border-radius:.4rem;flex:none;min-height:2.2rem;padding:0 .45rem;font-size:.68rem;font-weight:800}.tower-inspect__actions{flex-wrap:nowrap;flex:none;align-items:center;gap:.25rem;display:flex}.tower-inspect__btn{cursor:pointer;white-space:nowrap;border-radius:.4rem;min-height:2.2rem;padding:0 .45rem;font-size:.72rem;font-weight:700}.tower-inspect__btn--upgrade{color:#fef08a;background:#713f12;border:1px solid #ca8a04}.tower-inspect__btn--sell{color:#86efac;background:#14532d;border:1px solid #15803d}.tower-inspect__btn--close{color:#e2e8f0;background:#334155;border:1px solid #64748b;min-width:2.2rem}.tower-inspect__btn--locked,.tower-inspect__btn:disabled{opacity:.45;cursor:not-allowed}.game-footer,.global-footer{background:#0f172af5;border-top:1px solid #334155;flex-wrap:nowrap;flex:none;justify-content:center;align-items:center;gap:.3rem;min-width:0;min-height:2.15rem;padding:.2rem .45rem;display:flex}.footer-slot{color:#475569;letter-spacing:.02em;cursor:not-allowed;white-space:nowrap;text-overflow:ellipsis;opacity:.55;pointer-events:none;background:0 0;border:1px dashed #334155;border-radius:.4rem;flex:1 1 0;min-width:0;min-height:1.75rem;padding:0 .4rem;font-size:.65rem;font-weight:500;overflow:hidden}.footer-slot:disabled{opacity:.45}.shell-overlay{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000094;justify-content:center;align-items:center;padding:.85rem;display:flex;position:fixed;inset:0}.defeat-panel{background:var(--std-surface-elevated);border:1px solid var(--std-border);border-radius:var(--std-radius-xl);text-align:center;box-shadow:var(--std-shadow-lg);width:100%;max-width:min(22rem,100% - 1.5rem);padding:1.35rem 1.5rem 1.25rem}.defeat-panel--compact{padding:1.1rem 1.25rem 1rem}.defeat-panel__title{letter-spacing:.06em;color:var(--std-danger);margin-bottom:.55rem;font-size:1.45rem;font-weight:800}.defeat-panel__title--victory{color:var(--std-success)}.defeat-panel--victory{border-color:var(--std-success)}@supports (color:color-mix(in lab, red, red)){.defeat-panel--victory{border-color:color-mix(in srgb, var(--std-success) 45%, var(--std-border))}}.defeat-panel--victory{box-shadow:var(--std-shadow-lg), inset 0 0 0 1px var(--std-success)}@supports (color:color-mix(in lab, red, red)){.defeat-panel--victory{box-shadow:var(--std-shadow-lg), inset 0 0 0 1px color-mix(in srgb, var(--std-success) 22%, transparent)}}.defeat-panel--compact:not(.defeat-panel--victory){border-color:var(--std-danger)}@supports (color:color-mix(in lab, red, red)){.defeat-panel--compact:not(.defeat-panel--victory){border-color:color-mix(in srgb, var(--std-danger) 40%, var(--std-border))}}.defeat-panel__meta{color:var(--std-text-muted);margin:0 0 .28rem;font-size:.88rem;line-height:1.35}.defeat-panel__actions{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:.85rem;display:flex}.defeat-panel__restart{border-radius:var(--std-radius-md);min-width:7.5rem;min-height:2.5rem;margin-top:0}.btn-primary{background:var(--std-btn-primary-bg);color:var(--std-btn-primary-fg);border-radius:var(--std-radius-md);box-shadow:var(--std-shadow-sm);cursor:pointer;border:1px solid #0000;padding:.5rem 1rem;font-weight:700;transition:background-color .15s}.btn-primary:hover:not(:disabled),.btn-primary:focus-visible:not(:disabled){background:var(--std-btn-primary-bg-hover)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--std-btn-secondary-bg);color:var(--std-btn-secondary-fg);border-radius:var(--std-radius-md);border:1px solid var(--std-btn-secondary-border);box-shadow:var(--std-shadow-sm);cursor:pointer;padding:.5rem 1rem;font-weight:700;transition:border-color .15s,color .15s}.btn-secondary:hover:not(:disabled),.btn-secondary:focus-visible:not(:disabled){border-color:var(--std-text-muted);color:var(--std-text)}.hud-element{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-slate-700);background-color:#1d293de6}@supports (color:color-mix(in lab, red, red)){.hud-element{background-color:color-mix(in oklab, var(--color-slate-800) 90%, transparent)}}.hud-element{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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);--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-6{height:calc(var(--spacing) * 6)}.h-10{height:calc(var(--spacing) * 10)}.w-6{width:calc(var(--spacing) * 6)}.w-10{width:calc(var(--spacing) * 10)}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.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,)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-primary-500{border-color:#3b82f6}.border-slate-700{border-color:var(--color-slate-700)}.bg-green-600{background-color:var(--color-green-600)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-slate-800\/95{background-color:#1d293df2}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/95{background-color:color-mix(in oklab, var(--color-slate-800) 95%, transparent)}}.bg-slate-900\/50{background-color:#0f172b80}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/50{background-color:color-mix(in oklab, var(--color-slate-900) 50%, transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-black{color:var(--color-black)}.text-blue-400{color:var(--color-blue-400)}.text-green-400{color:var(--color-green-400)}.text-orange-400{color:var(--color-orange-400)}.text-red-400{color:var(--color-red-400)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.lowercase{text-transform:lowercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--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)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media (hover:hover){.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-500:hover{background-color:var(--color-slate-500)}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:shadow-green-600\/25:hover{--tw-shadow-color:#00a54440}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-green-600\/25:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-600) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:shadow-red-600\/25:hover{--tw-shadow-color:#e4001440}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-red-600\/25:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-600) 25%, transparent) var(--tw-shadow-alpha), transparent)}}}}@media (width<=720px){.global-topbar{min-height:2.35rem;padding:.2rem .5rem}.global-topbar__title{font-size:.95rem}.global-topbar__tag{display:none}.topbar-slot{min-width:1.75rem;min-height:1.75rem;padding:0 .45rem;font-size:.72rem}.app-shell__main{gap:.2rem;padding:.2rem .35rem}.match-bar{gap:.25rem;padding:.15rem .35rem}.match-stat{min-height:1.6rem;padding:.08rem .28rem}.match-stat__icon{display:inline}.match-stat__label{display:none}.match-stat__value{font-size:.78rem}.match-stat__value--wave-full{display:none}.match-stat__value--wave-compact{display:inline}.match-speed--desktop{display:none}.match-control--speed-cycle{color:#0f172a;background:#eab308;border-color:#ca8a04;justify-content:center;align-items:center;min-width:2rem;min-height:1.75rem;display:inline-flex}.match-control--pause{min-width:1.75rem;min-height:1.75rem;padding:0 .3rem}.match-control__pause-label{display:none}.match-control__pause-icon{letter-spacing:-.04em;font-size:.6rem;display:inline}.tower-tray__item{flex-direction:column;justify-content:center;gap:.05rem;min-height:2.75rem;padding:.12rem .1rem}.tower-tray__meta{align-items:center}.tower-tray__name{display:none}.tower-tray__swatch{width:1.45rem;height:1.45rem;font-size:.7rem}.tower-bar__cancel{min-width:2.2rem;min-height:2.75rem;padding:0 .35rem}.tower-bar__cancel-label{display:none}.tower-bar__cancel-icon{display:inline}.global-footer,.game-footer{min-height:1.9rem;padding:.12rem .3rem}.footer-slot{min-height:1.45rem;font-size:.62rem}.home-menu{justify-content:flex-start;gap:.75rem;padding:.5rem .25rem}}@media (height<=480px){.global-topbar{min-height:1.4rem;padding:.05rem .4rem}.global-topbar__title{font-size:.82rem}.global-topbar__tag{display:none}.topbar-slot{min-width:1.25rem;min-height:1.25rem;padding:0 .3rem;font-size:.62rem}.app-shell__main{gap:.1rem;padding:.1rem .3rem}.match-bar{padding:.05rem .3rem}.match-stat{min-height:1.2rem;padding:.02rem .2rem}.match-stat__icon{font-size:.6rem;display:inline}.match-stat__label{display:none}.match-stat__value{font-size:.68rem}.match-stat__value--wave-full{display:none}.match-stat__value--wave-compact{display:inline}.match-speed--desktop{display:none}.match-control--speed-cycle{min-width:1.6rem;min-height:1.2rem;font-size:.65rem;display:inline-flex}.match-control--pause{min-width:1.4rem;min-height:1.2rem}.match-control__pause-label{display:none}.match-control__pause-icon{font-size:.5rem;display:inline}.tower-tray__item{flex-direction:row;min-height:1.45rem;padding:.05rem .2rem}.tower-tray__name{display:none}.tower-tray__swatch{width:1.1rem;height:1.1rem;font-size:.55rem}.tower-tray__cost{font-size:.58rem}.tower-bar__cancel{min-width:1.6rem;min-height:1.45rem}.tower-bar__cancel-label{display:none}.tower-bar__cancel-icon{display:inline}.global-footer,.game-footer{min-height:1.1rem;padding:.02rem .25rem}.footer-slot{min-height:1rem;font-size:.55rem}.home-menu{justify-content:flex-start;gap:.4rem;padding:.25rem}.home-menu__title{font-size:1.35rem}.home-menu__map-card{min-height:2.4rem;padding:.35rem .55rem}.home-menu__start{min-height:2.25rem}.home-menu__hints{display:none}}@media (width>=900px){.app-shell__main{padding:.5rem .75rem}.global-topbar__title{font-size:1.15rem}.match-control__start-full{display:inline}.match-control__start-compact{display:none}.tower-tray__item{flex:0 auto;min-width:6rem}.home-menu{gap:1.25rem}}.app-shell--editor .app-shell__main--editor{padding:0;overflow:auto}.map-editor{color:#e2e8f0;flex-direction:column;gap:.45rem;width:100%;min-width:0;min-height:0;padding:.45rem .55rem .75rem;display:flex}.map-editor__header-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.map-editor__back{color:#94a3b8;font-size:.8rem;font-weight:600;text-decoration:none}.map-editor__title{letter-spacing:.04em;flex:auto;font-size:1rem;font-weight:800}.map-editor__badge{text-transform:uppercase;color:#94a3b8;border:1px solid #334155;border-radius:.35rem;padding:.2rem .45rem;font-size:.7rem;font-weight:700}.map-editor__badge--dirty{color:#fbbf24;border-color:#f59e0b}.map-editor__dev-note{color:#64748b;font-size:.7rem}.map-editor__meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}@media (width>=720px){.map-editor__meta{grid-template-columns:repeat(6,minmax(0,1fr))}}.map-editor__field{text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;flex-direction:column;gap:.15rem;min-width:0;font-size:.65rem;display:flex}.map-editor__field input{color:#f1f5f9;text-transform:none;letter-spacing:normal;background:#0f172a;border:1px solid #475569;border-radius:.4rem;width:100%;min-height:2.25rem;padding:.25rem .45rem;font-size:.9rem}.map-editor__actions,.map-editor__tools{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.map-editor__btn,.map-editor__tool{color:#e2e8f0;letter-spacing:.03em;cursor:pointer;background:#1e293b;border:1px solid #475569;border-radius:.45rem;min-width:3.2rem;min-height:2.4rem;padding:0 .65rem;font-size:.72rem;font-weight:700}.map-editor__btn:disabled{opacity:.4;cursor:not-allowed}.map-editor__btn--play{background:#166534;border-color:#22c55e}.map-editor__btn--play:disabled{background:#1e293b;border-color:#475569}.map-editor__tool--active{color:#f8fafc;background:#334155;border-color:#f8fafc}.map-editor__hover{color:#94a3b8;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}.map-editor__grid-scroll{-webkit-overflow-scrolling:touch;background:#020617;border:1px solid #334155;border-radius:.5rem;flex:auto;min-height:12rem;max-height:min(62dvh,640px);overflow:auto}.map-editor__grid{background:#0f172a;gap:1px;width:max-content;min-width:100%;padding:2px;display:grid}.map-editor__cell{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;border:none;border-radius:2px;width:clamp(14px,4.2vw,22px);height:clamp(14px,4.2vw,22px);padding:0;font-size:.55rem;font-weight:800;line-height:1}.map-editor__cell--grass{background:var(--std-grass,#4d7c0f);color:#0000}.map-editor__cell--path{background:var(--std-path,#8a5a32);color:#0000}.map-editor__cell--spawn{box-shadow:inset 0 0 0 2px var(--std-selection,#fbbf24);color:#eff6ff;background:#1d4ed8}.map-editor__cell--exit{box-shadow:inset 0 0 0 2px var(--std-exit,#fde68a);color:#fffbeb;background:#b45309}.map-editor__cell--orphan{background:#7f1d1d;box-shadow:inset 0 0 0 1px #fca5a5}.map-editor__status{border:1px solid #334155;border-radius:.5rem;padding:.45rem .55rem;font-size:.8rem}.map-editor__status--ok{background:#16a34a1f;border-color:#16a34a}.map-editor__status--bad{background:#dc26261f;border-color:#dc2626}.map-editor__errors{color:#fecaca;margin-top:.35rem;padding-left:1rem;font-size:.75rem}.map-editor__ok-meta{color:#86efac;margin-top:.25rem;font-size:.75rem}.map-editor__sections{flex-wrap:wrap;gap:.3rem;display:flex}.map-editor__section{color:#cbd5e1;letter-spacing:.04em;cursor:pointer;background:#0f172a;border:1px solid #475569;border-radius:.45rem;min-height:2.35rem;padding:0 .75rem;font-size:.75rem;font-weight:800}.map-editor__section--active{color:#f8fafc;background:#334155;border-color:#f8fafc}.wave-editor{flex-direction:column;gap:.55rem;min-width:0;display:flex}.wave-editor__totals{color:#cbd5e1;border:1px solid #334155;border-radius:.45rem;padding:.45rem .55rem;font-size:.78rem;line-height:1.4}.wave-editor__list{flex-direction:column;gap:.65rem;list-style:none;display:flex}.wave-editor__wave{background:#0f172a8c;border:1px solid #334155;border-radius:.5rem;flex-direction:column;gap:.4rem;padding:.5rem;display:flex}.wave-editor__wave-head{flex-direction:column;gap:.15rem;font-size:.78rem;display:flex}.wave-editor__wave-head span{color:#94a3b8}.wave-editor__wave-meta,.wave-editor__wave-actions,.wave-editor__group-actions{flex-wrap:wrap;align-items:end;gap:.35rem;display:flex}.wave-editor__groups{flex-direction:column;gap:.4rem;list-style:none;display:flex}.wave-editor__group{border:1px dashed #475569;border-radius:.4rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.4rem;display:grid}@media (width>=720px){.wave-editor__group{grid-template-columns:repeat(4,minmax(0,1fr))}}.wave-editor__group select{color:#f1f5f9;background:#0f172a;border:1px solid #475569;border-radius:.4rem;width:100%;min-height:2.25rem;padding:.25rem .45rem;font-size:.9rem}.wave-editor__group-actions{grid-column:1/-1}.map-editor__drafts{flex-direction:column;gap:.35rem;display:flex}.map-editor__draft-row{flex-wrap:wrap;gap:.35rem;display:flex}.map-editor__io-msg{color:#fbbf24;font-size:.75rem}.match-tutorial{left:.5rem;right:.5rem;bottom:calc(4.5rem + env(safe-area-inset-bottom,0px));z-index:30;pointer-events:none;flex-direction:column;gap:.35rem;display:flex;position:absolute}.match-tutorial__card,.match-tutorial__enemy{pointer-events:auto;color:#e2e8f0;background:#0f172aeb;border:1px solid #334155;border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .7rem;display:flex;box-shadow:0 8px 24px #00000059}.match-tutorial__message,.match-tutorial__enemy-text{flex:12rem;margin:0;font-size:.82rem;line-height:1.35}.match-tutorial__actions{gap:.35rem;margin-left:auto;display:flex}.match-tutorial__btn{color:#f8fafc;letter-spacing:.02em;cursor:pointer;background:#1e293b;border:1px solid #475569;border-radius:.35rem;padding:.3rem .55rem;font-size:.72rem;font-weight:700}.match-tutorial__btn--skip{color:#cbd5e1;background:0 0;border-color:#64748b}body[data-tutorial-highlight=fire] [data-tutorial-target=fire],body[data-tutorial-highlight=start] [data-tutorial-target=start],body[data-tutorial-highlight=upgrade] [data-tutorial-target=upgrade],body[data-tutorial-highlight=targeting] [data-tutorial-target=targeting]{outline-offset:2px;outline:2px solid #fbbf24;box-shadow:0 0 0 3px #fbbf2459}.home-menu__replay-tutorial{color:#cbd5e1;letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #475569;border-radius:.5rem;width:min(100%,20rem);margin:.5rem auto 0;padding:.55rem 1rem;font-weight:700;display:block}@media (width>=900px){.match-tutorial{width:min(22rem,40vw);bottom:5.5rem;left:auto;right:1rem}}.research-lab{text-align:left;width:100%;max-width:56rem;min-height:0;color:var(--std-text);flex-direction:column;flex:auto;gap:.5rem;margin:0 auto;padding:.5rem .65rem .7rem;display:flex;overflow:hidden auto}.app-shell__main--research{flex-direction:column;min-height:0;display:flex}.research-lab--v2{gap:.5rem}.research-lab__header{flex-direction:column;gap:.2rem;display:flex}.research-lab__title-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.research-lab__title{letter-spacing:.04em;color:#f8fafc;margin:0;font-size:clamp(1.2rem,4.5vw,1.65rem);font-weight:800}.research-lab__back{color:#93c5fd;font-size:.85rem;font-weight:600;text-decoration:none}.research-lab__back:hover{text-decoration:underline}.research-lab__meta-row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;display:flex}.research-lab__advanced{border:1px solid #0000;border-radius:.35rem;margin:0;padding:.2rem .5rem;font-size:.72rem;font-weight:700;line-height:1.25}.research-lab__advanced--locked{color:#fbbf24;background:#fbbf2414;border-color:#fbbf2459}.research-lab__advanced--open{color:#7dd3fc;background:#0ea5e91f;border-color:#7dd3fc66}.research-lab__tower-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.research-lab__tower-chip{border-radius:var(--std-radius-sm);border:1px solid var(--std-border);background:var(--std-surface);width:100%;color:var(--std-text);cursor:pointer;box-shadow:var(--std-shadow-sm);flex-direction:column;align-items:center;gap:.2rem;padding:.4rem .25rem;display:flex;position:relative}.research-lab__tower-chip--active{border-color:var(--std-border-accent);background:#0ea5e9}@supports (color:color-mix(in lab, red, red)){.research-lab__tower-chip--active{background:color-mix(in srgb, #0ea5e9 16%, var(--std-surface))}}.research-lab__tower-chip--active{box-shadow:0 0 0 1px var(--std-border-accent), inset 0 -2px 0 0 var(--std-border-accent)}@supports (color:color-mix(in lab, red, red)){.research-lab__tower-chip--active{box-shadow:0 0 0 1px color-mix(in srgb, var(--std-border-accent) 40%, transparent), inset 0 -2px 0 0 var(--std-border-accent)}}.research-lab__tower-chip-name{letter-spacing:.02em;font-size:.68rem;font-weight:700}.research-lab__tower-chip-badge{color:var(--std-warning);font-size:.65rem;position:absolute;top:.15rem;right:.25rem}.research-lab__tower-chip-selected{color:var(--std-border-accent);font-size:.4rem;line-height:1;position:absolute;top:.15rem;left:.25rem}.research-lab__glyph{color:#0f172a;border:1px solid #f8fafc1f;border-radius:.35rem;flex-shrink:0;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.85rem;font-weight:800;display:inline-flex}.research-lab__glyph--lg{width:2.25rem;height:2.25rem;font-size:1.05rem}.research-lab__detail{border-radius:var(--std-radius-md);border:1px solid var(--std-border);background:var(--std-surface);min-height:0;box-shadow:var(--std-shadow-sm);flex-direction:column;gap:.4rem;padding:.55rem .6rem;display:flex}.research-lab__selected-head{align-items:center;gap:.55rem;display:flex}.research-lab__detail-title{color:#f8fafc;margin:0;font-size:1.05rem;font-weight:800}.research-lab__detail-role{color:#94a3b8;margin:0;font-size:.78rem}.research-lab__branches{grid-template-columns:1fr;gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.research-lab__branch{border-radius:var(--std-radius-sm);border:1px solid var(--std-border);background:var(--std-surface-sunken);flex-direction:column;gap:.28rem;padding:.5rem .55rem;display:flex}.research-lab__branch--advanced{border-color:#0ea5e9}.research-lab__branch--flash{animation:.42s research-flash}@keyframes research-flash{0%{background:#0ea5e959}to{background:var(--std-surface-sunken)}}.research-lab__branch-head{justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.research-lab__branch-name{color:#f8fafc;margin:0;font-size:.92rem;font-weight:800}.research-lab__branch-rank{color:#94a3b8;margin:0;font-size:.72rem;font-weight:600}.research-lab__progress{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.research-lab__pip-sep{opacity:.7;background:#64748b;flex:none;width:1px;height:.7rem;margin:0 .1rem}.research-lab__pips{gap:.18rem;display:inline-flex}.research-lab__pip{background:0 0;border:1px solid #64748b;border-radius:999px;width:.55rem;height:.55rem}.research-lab__pips--base .research-lab__pip--on{background:#38bdf8;border-color:#38bdf8}.research-lab__pips--advanced .research-lab__pip{border-radius:.12rem;width:.48rem;height:.48rem;transform:rotate(45deg)}.research-lab__pips--advanced .research-lab__pip--on{background:#fbbf24;border-color:#fbbf24}.research-lab__adv-lock-hint{color:#64748b;font-size:.68rem;font-weight:600}.research-lab__branch-effect{color:#cbd5e1;flex-wrap:wrap;align-items:center;gap:.3rem;margin:0;font-size:.78rem;display:flex}.research-lab__eff-now{color:#e2e8f0;font-weight:600}.research-lab__eff-arrow{color:#64748b}.research-lab__eff-next{color:#7dd3fc}.research-lab__buy{color:#0f172a;letter-spacing:.04em;cursor:pointer;background:#0ea5e9;border:1px solid #38bdf8;border-radius:.35rem;align-self:stretch;margin-top:.1rem;padding:.45rem .65rem;font-size:.78rem;font-weight:800}.research-lab__buy:disabled{color:#94a3b8;cursor:not-allowed;background:#334155;border-color:#475569}.research-lab__buy--need:disabled{color:#fbbf24;background:#1e293b;border-color:#64748b;font-weight:700}.global-topbar__title{color:inherit;font-weight:800;text-decoration:none}@media (width>=480px){.research-lab__branches{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.research-lab--v2{grid-template-columns:minmax(14rem,18rem) minmax(0,1fr);grid-template-areas:"head head""grid detail";align-content:start;gap:.75rem 1.1rem;display:grid;overflow:hidden}.research-lab__header{grid-area:head}.research-lab__tower-grid{grid-area:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-self:start}.research-lab__detail{grid-area:detail}.research-lab__branches{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1440px){.research-lab{max-width:64rem;padding-top:.85rem}}@media (orientation:landscape) and (height<=480px){.research-lab--v2{grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);grid-template-areas:"head head""grid detail";gap:.4rem .75rem;display:grid}.research-lab__header{grid-area:head}.research-lab__tower-grid{grid-area:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.research-lab__detail{grid-area:detail}.research-lab__branches{grid-template-columns:repeat(3,minmax(0,1fr))}}.home-menu__research-link{color:#e0f2fe;letter-spacing:.06em;background:#0ea5e926;border:1px solid #38bdf8;border-radius:.5rem;justify-content:center;align-items:center;width:min(100%,20rem);margin:.35rem auto 0;padding:.65rem 1rem;font-weight:800;text-decoration:none;display:inline-flex}.home-menu__research-link:hover{background:#0ea5e947}.home-menu--hub,.home-menu--chapters,.home-menu--stages{justify-content:flex-start;padding-top:1rem}.home-menu__hub-actions{flex-direction:column;align-items:stretch;gap:.5rem;width:min(100%,22rem);display:flex}.home-menu__continue{width:100%;margin:0}.home-menu__continue--primary{border:1px solid var(--std-success);flex-direction:column;justify-content:center;align-items:center;gap:.12rem;width:100%;min-height:3.35rem;padding:.65rem 1rem;display:flex}@supports (color:color-mix(in lab, red, red)){.home-menu__continue--primary{border:1px solid color-mix(in srgb, var(--std-success) 55%, transparent)}}.home-menu__continue--primary{box-shadow:var(--std-shadow-md), inset 0 1px 0 #ffffff1f;letter-spacing:.05em}.home-menu__continue-label{letter-spacing:.08em;font-size:1.05rem;font-weight:800}.home-menu__continue-meta{letter-spacing:.04em;color:var(--std-btn-primary-fg);font-size:.72rem;font-weight:650}@supports (color:color-mix(in lab, red, red)){.home-menu__continue-meta{color:color-mix(in srgb, var(--std-btn-primary-fg) 82%, transparent)}}.home-menu__hub-btn{border-radius:var(--std-radius-md);border:1px solid var(--std-btn-secondary-border);background:var(--std-btn-secondary-bg);width:100%;color:var(--std-btn-secondary-fg);letter-spacing:.06em;cursor:pointer;justify-content:center;align-items:center;padding:.62rem 1rem;font-weight:800;text-decoration:none;display:inline-flex}.home-menu__hub-btn--secondary{opacity:.96;min-height:2.55rem}.home-menu__hub-btn:hover,.home-menu__hub-btn:focus-visible{border-color:var(--std-border-accent);color:var(--std-text)}.home-menu__hub-btn--link{box-sizing:border-box}.home-menu__nav-row{justify-content:space-between;align-items:center;gap:.75rem;width:min(100%,40rem);display:flex}.home-menu__back{color:#7dd3fc;cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-weight:700}.home-menu__back:hover{color:#e0f2fe}.home-menu__section-heading{color:#f8fafc;letter-spacing:.03em;margin:.35rem 0 0;font-size:clamp(1.35rem,5vw,2rem);font-weight:800}.home-menu__chapter-list{flex-direction:column;gap:.65rem;width:min(100%,28rem);margin:.5rem 0 0;padding:0;list-style:none;display:flex}.home-menu__chapter-card{border-radius:var(--std-radius-md);border:1px solid var(--std-border);background:linear-gradient(160deg, var(--std-surface-sunken) 0%, var(--std-surface) 100%);width:100%;color:var(--std-text);text-align:left;cursor:pointer;box-shadow:var(--std-shadow-sm);flex-direction:column;align-items:flex-start;gap:.2rem;padding:.8rem .95rem;display:flex}.home-menu__chapter-card-top{justify-content:space-between;align-items:center;gap:.55rem;width:100%;display:flex}.home-menu__chapter-badge{letter-spacing:.06em;border-radius:var(--std-radius-xs);border:1px solid var(--std-badge-border);background:var(--std-badge-bg);color:var(--std-text-muted);flex:none;padding:.15rem .4rem;font-size:.62rem;font-weight:800}.home-menu__chapter-badge--locked{color:var(--std-text-faint);border-style:dashed}.home-menu__chapter-badge--complete{border-color:var(--std-success)}@supports (color:color-mix(in lab, red, red)){.home-menu__chapter-badge--complete{border-color:color-mix(in srgb, var(--std-success) 55%, var(--std-border))}}.home-menu__chapter-badge--complete{color:var(--std-success)}.home-menu__chapter-badge--progress{border-color:var(--std-border-accent)}@supports (color:color-mix(in lab, red, red)){.home-menu__chapter-badge--progress{border-color:color-mix(in srgb, var(--std-border-accent) 50%, var(--std-border))}}.home-menu__chapter-badge--progress{color:#7dd3fc}.home-menu__chapter-card:hover:not(:disabled),.home-menu__chapter-card:focus-visible:not(:disabled){border-color:var(--std-border-accent)}.home-menu__chapter-card--locked,.home-menu__chapter-card:disabled{opacity:var(--std-locked-opacity);cursor:not-allowed;border-style:dashed;border-color:var(--std-border-strong);box-shadow:none}.home-menu__chapter-card--complete{border-color:var(--std-success)}@supports (color:color-mix(in lab, red, red)){.home-menu__chapter-card--complete{border-color:color-mix(in srgb, var(--std-success) 40%, var(--std-border))}}.home-menu__chapter-card--progress{border-left:3px solid var(--std-border-accent)}.home-menu__chapter-card-title{letter-spacing:.04em;font-size:1.1rem;font-weight:800}.home-menu__chapter-card-stars{color:var(--std-warning);font-size:.95rem;font-weight:700}.home-menu__chapter-card-status{color:var(--std-text-muted);font-size:.8rem;line-height:1.35}.home-menu__stage-header{text-align:left;width:min(100%,40rem)}.home-menu__stage-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;width:min(100%,40rem);margin:.5rem 0 0;padding:0;list-style:none;display:grid}.home-menu__stage-tile{border-radius:var(--std-radius-sm);border:1px solid var(--std-border);background:var(--std-surface);min-height:2.85rem;color:var(--std-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;padding:.3rem .15rem;display:flex;position:relative}.home-menu__stage-tile--available{border-style:solid}.home-menu__stage-tile--cleared{border-color:var(--std-warning)}@supports (color:color-mix(in lab, red, red)){.home-menu__stage-tile--cleared{border-color:color-mix(in srgb, var(--std-warning) 45%, var(--std-border))}}.home-menu__stage-tile--cleared{background:var(--std-surface-elevated)}@supports (color:color-mix(in lab, red, red)){.home-menu__stage-tile--cleared{background:color-mix(in srgb, var(--std-surface-elevated) 88%, #3b2f12)}}.home-menu__stage-tile--mastery{border-color:var(--std-success)}@supports (color:color-mix(in lab, red, red)){.home-menu__stage-tile--mastery{border-color:color-mix(in srgb, var(--std-success) 55%, var(--std-border))}}.home-menu__stage-tile--mastery{background:var(--std-surface-elevated)}@supports (color:color-mix(in lab, red, red)){.home-menu__stage-tile--mastery{background:color-mix(in srgb, var(--std-surface-elevated) 85%, #12301f)}}.home-menu__stage-tile--mastery{box-shadow:inset 0 0 0 1px var(--std-success)}@supports (color:color-mix(in lab, red, red)){.home-menu__stage-tile--mastery{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--std-success) 25%, transparent)}}.home-menu__stage-tile--active{border-color:var(--std-border-accent);background:#0ea5e9}@supports (color:color-mix(in lab, red, red)){.home-menu__stage-tile--active{background:color-mix(in srgb, #0ea5e9 18%, var(--std-surface))}}.home-menu__stage-tile--active{box-shadow:inset 0 -2px 0 0 var(--std-border-accent)}.home-menu__stage-tile--locked,.home-menu__stage-tile:disabled{opacity:var(--std-locked-opacity);cursor:not-allowed;border-style:dashed}.home-menu__stage-tile-label{letter-spacing:.02em;font-size:.75rem;font-weight:800}.home-menu__stage-tile-stars{color:var(--std-warning);font-size:.68rem;font-weight:700}.home-menu__stage-tile-selected{color:var(--std-border-accent);font-size:.4rem;line-height:1;position:absolute;top:.15rem;right:.2rem}.home-menu__stage-detail{border:1px solid var(--std-border);border-radius:var(--std-radius-md);background:var(--std-surface);width:min(100%,40rem);box-shadow:var(--std-shadow-sm);text-align:left;flex-direction:column;gap:.4rem;margin-top:.65rem;padding:.7rem .75rem;display:flex}.home-menu__detail-title{color:#f8fafc;margin:0;font-size:1.15rem;font-weight:800}.home-menu__detail-line{color:#cbd5e1;margin:0;font-size:.88rem}.home-menu__tower-glyphs{vertical-align:middle;align-items:center;gap:.22rem;margin-left:.15rem;display:inline-flex}.home-menu__tower-glyph{background:#0f172a8c;border:1px solid #94a3b859;border-radius:.18rem;justify-content:center;align-items:center;width:.95rem;height:.95rem;display:inline-flex}.home-menu__tower-glyph .tower-glyph{width:58%;height:58%}.home-menu__detail-stars{justify-content:flex-start}.home-menu--stages .home-menu__difficulty{width:100%;margin-top:.25rem}.home-menu--stages .home-menu__start{width:100%;margin-top:.15rem}@media (width<=767px){.home-menu--stages{flex-direction:column;display:flex}.home-menu--stages .home-menu__nav-row{order:0}.home-menu--stages .home-menu__stage-header{order:1}.home-menu--stages .home-menu__stage-detail{order:2;margin-top:.35rem;padding-top:.55rem}.home-menu--stages .home-menu__stage-grid{order:3;margin-top:.65rem}}@media (width<=429px){.home-menu__stage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=768px){.home-menu__stage-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.home-menu--stages{grid-template-columns:minmax(0,1.1fr) minmax(16rem,20rem);grid-template-areas:"nav nav""head head""grid detail";align-items:start;gap:.75rem 1.25rem;max-width:58rem;margin:0 auto;display:grid}.home-menu--stages .home-menu__nav-row{grid-area:nav;width:100%}.home-menu--stages .home-menu__stage-header{grid-area:head;width:100%}.home-menu--stages .home-menu__stage-grid{grid-area:grid;width:100%}.home-menu--stages .home-menu__stage-detail{border-left:1px solid var(--std-border);border-radius:var(--std-radius-md);grid-area:detail;width:100%;margin-top:0}}@media (width>=1024px){.home-menu__stage-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (orientation:landscape) and (height<=500px){.home-menu--hub{justify-content:flex-start;gap:.55rem}.home-menu__hub-actions{flex-flow:wrap;width:min(100%,40rem)}.home-menu__hub-actions>*{flex:10rem}}.home-menu--hub{gap:.85rem;padding-top:1.15rem}.home-menu--hub .home-menu__meta-row{margin:.15rem 0 .25rem}.home-menu--hub .home-menu__replay-tutorial,.home-menu--hub .home-menu__reset-progress,.home-menu--hub .home-menu__admin-link{opacity:.85}.home-menu--chapters,.home-menu--stages{padding-top:.75rem;overflow-y:auto}.home-menu--stages{overflow-x:hidden}.match-control{border-radius:var(--std-radius-sm);background:var(--std-surface-elevated);color:var(--std-text);border:1px solid #0000}.match-control--start{background:var(--std-seg-active-bg);color:#bbf7d0;border-color:var(--std-success)}@supports (color:color-mix(in lab, red, red)){.match-control--start{border-color:color-mix(in srgb, var(--std-success) 40%, transparent)}}.match-control--active{background:var(--std-warning);color:var(--std-background);box-shadow:inset 0 -2px #92400eb3}.match-speed{border-radius:var(--std-radius-sm);background:var(--std-seg-bg);border:1px solid var(--std-border);overflow:hidden}.wave-chip{border-radius:var(--std-radius-xs);background:var(--std-chip-bg);color:var(--std-chip-fg)}.app-shell--desktop .match-workspace__rail{border:1px solid var(--std-border);border-radius:var(--std-radius-md);background:var(--std-surface)}@supports (color:color-mix(in lab, red, red)){.app-shell--desktop .match-workspace__rail{background:color-mix(in srgb, var(--std-surface) 88%, transparent)}}.app-shell--desktop .match-workspace__rail{box-shadow:var(--std-shadow-sm)}.game-viewport__canvas{border:1px solid var(--std-border);border-radius:var(--std-radius-md);background:var(--std-background)}.defeat-panel__campaign{color:var(--std-success);letter-spacing:.05em}@media (width>=768px) and (height>=640px){.home-menu--stages{padding-bottom:.5rem;overflow:hidden}.research-lab--v2,.app-shell__main--research{overflow:hidden}}@media (width>=1024px) and (height>=700px){.research-lab{padding-top:.65rem;padding-bottom:.65rem}.research-lab__detail{min-height:0;overflow:auto}}@media (prefers-reduced-motion:reduce){.research-lab__branch--flash{animation:none}.btn-primary,.btn-secondary,.home-menu__start,.home-menu__hub-btn,.match-control{transition:none}.shell-overlay{-webkit-backdrop-filter:none;backdrop-filter: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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
