@layer reset,tokens,base,components,layouts,responsive,motion;@layer base{.boot-screen,.fatal-screen{display:grid;width:100%;min-height:100dvh;padding:32px;place-content:center;place-items:center;gap:10px;color:#f3ecd9;background:radial-gradient(circle at 50% 42%,#183d40,#071216 62%);font-family:Inter,Dusk Sans SC,Noto Sans SC,Microsoft YaHei,sans-serif;text-align:center}.boot-screen__seal{width:48px;height:48px;border:5px double #c58a42;border-radius:14px 14px 20px 20px;box-shadow:0 0 24px #58b9b059;transform:rotate(45deg)}.boot-screen strong,.fatal-screen h1{margin:12px 0 0;font-family:Georgia,Dusk Sans SC,"Noto Serif SC",serif;font-size:1.65rem;letter-spacing:.12em}.boot-screen small,.fatal-screen p{color:#9ab3ad}.fatal-screen button{min-height:44px;padding:0 18px;color:#071216;background:#78cbc2;border:0;border-radius:8px;font:inherit;font-weight:700}}@layer reset{*,*:before,*:after{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button{border:0}fieldset,legend,dl,dd,p,h1,h2,h3{min-width:0;margin:0;padding:0;border:0}}@layer tokens{:root{color-scheme:dark;--ink-0: #071115;--ink-1: #0b161a;--ink-2: #102126;--ink-3: #142a30;--ink-4: #1c373d;--panel: rgba(16, 34, 39, .96);--panel-soft: rgba(20, 42, 48, .9);--line: #2a4b51;--line-bright: #3a6468;--paper: #f3ecd9;--paper-warm: #dfd2b6;--muted: #9eb3af;--muted-dim: #718985;--road: #d6c29a;--road-edge: #655744;--copper: #c58a42;--copper-light: #e0a758;--copper-dark: #855722;--teal: #58b9b0;--teal-light: #7fe0d7;--coral: #ef6a5b;--violet: #9a72d8;--lock-base: #496873;--lock-base-light: #9bc4ca;--lock-gold: #6f4729;--lock-gold-light: #c8874d;--green: #8fbf6b;--frost: #69c9d0;--gold: #efc368;--shadow-1: 0 10px 30px rgba(0, 0, 0, .22);--shadow-2: 0 24px 72px rgba(0, 0, 0, .44);--inner-line: inset 0 1px 0 rgba(255, 255, 255, .045);--radius-s: 8px;--radius-m: 14px;--radius-l: 22px;--radius-xl: 30px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ui-font: "Dusk Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--display-font: Georgia, "Dusk Sans SC", "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", serif}}@layer base{body{color:var(--paper);background:radial-gradient(circle at 18% -10%,rgba(39,97,96,.18),transparent 34rem),radial-gradient(circle at 105% 115%,rgba(125,75,31,.16),transparent 38rem),var(--ink-0);font-family:var(--ui-font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{position:fixed;z-index:-1;inset:0;content:"";opacity:.22;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:24px 24px;mask-image:radial-gradient(circle at center,black 30%,transparent 90%)}button,label,input[type=radio],input[type=checkbox]{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}:focus-visible{outline:2px solid var(--paper);outline-offset:2px;box-shadow:0 0 0 5px #58b9b0c7!important}::selection{color:var(--ink-0);background:var(--teal-light)}.app-shell{width:100%;height:100dvh;min-height:100dvh;overflow:hidden;isolation:isolate}.sr-only{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sr-only-control{position:absolute;width:1px;height:1px;opacity:.001;pointer-events:none}.sr-only-control:focus-visible+label{outline:2px solid var(--paper);outline-offset:2px;box-shadow:0 0 0 5px #58b9b0c7}.skip-link{position:fixed;z-index:999;top:8px;left:50%;min-height:44px;padding:11px 18px;color:var(--ink-0);background:var(--paper);border-radius:var(--radius-s);transform:translate(-50%,-150%);transition:transform .16s var(--ease-out)}.skip-link:focus{transform:translate(-50%)}.ui-icon,.tower-glyph{display:block;width:1.35rem;height:1.35rem;flex:0 0 auto}.panel-eyebrow,.map-select__overline{color:var(--muted);font-size:.72rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.panel-copy{color:var(--muted);font-size:.86rem}.primary-button,.secondary-button,.text-button,.icon-button{min-width:44px;min-height:44px;color:inherit;border-radius:var(--radius-s);transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .16s var(--ease-out),opacity .16s ease}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;padding:0 17px;color:#17150f;background:linear-gradient(145deg,var(--copper-light),#b97730);border:1px solid #e5ac5b;box-shadow:var(--inner-line),0 8px 24px #9b5c1b33;font-size:.9rem;font-weight:760}.primary-button:not(:disabled):hover{background:linear-gradient(145deg,#ebba6a,#c68637);transform:translateY(-1px)}.primary-button:disabled{color:#78837d;background:#203237;border-color:#31484d;box-shadow:none;opacity:.72}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 14px;color:var(--paper-warm);background:#0a191d8f;border:1px solid var(--line)}.secondary-button:not(:disabled):hover{color:var(--paper);background:#1e3d42b8;border-color:var(--line-bright)}.secondary-button:disabled{opacity:.45}.text-button{min-height:44px;min-width:52px;color:var(--muted);background:transparent}.text-button:hover{color:var(--paper)}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;color:var(--muted);background:#12272ca8;border:1px solid var(--line)}.icon-button:hover,.icon-button.is-active{color:var(--teal-light);background:#204245d1;border-color:var(--teal)}.icon-button:disabled{opacity:.4}}@layer components{.brand{display:inline-flex;align-items:center;gap:11px;flex:0 0 auto}.brand__seal{position:relative;display:grid;width:42px;height:42px;place-items:center;color:var(--teal-light);border:1px solid var(--copper-light);border-radius:50%;box-shadow:inset 0 0 0 4px var(--ink-1),inset 0 0 0 5px #c58a4294}.brand__asset{display:block;padding:0;object-fit:contain;box-shadow:none}.brand__seal:before,.brand__seal:after,.brand__seal i{position:absolute;content:""}.brand__seal:before{width:13px;height:17px;border:2px solid currentColor;transform:rotate(45deg)}.brand__seal:after{width:5px;height:5px;background:var(--copper-light);border-radius:50%}.brand__seal i{inset:3px;border:1px dotted rgba(243,236,217,.28);border-radius:50%}.brand__name{font-family:var(--display-font);font-size:clamp(1.2rem,2vw,1.6rem);letter-spacing:.08em}.brand__sub{align-self:flex-end;margin:0 0 3px -2px;color:var(--muted-dim);font-size:.56rem;letter-spacing:.18em}.map-screen{position:relative;width:100%;height:100dvh;overflow:auto;background:radial-gradient(ellipse at 15% 25%,rgba(56,107,96,.2),transparent 35%),radial-gradient(ellipse at 85% 90%,rgba(181,116,52,.11),transparent 42%),linear-gradient(145deg,#061115fa,#0a181cf5)}.map-header{position:relative;z-index:2;display:flex;width:min(1320px,calc(100% - 48px));min-height:82px;margin:0 auto;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(70,108,109,.32)}.map-header__tools{display:flex;align-items:center;gap:8px}.map-header__tools .import-label{min-width:44px;width:44px;padding:0;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-s);background:#12272ca8}.map-header__tools .import-label>span{display:none}.map-select{position:relative;z-index:1;width:min(1320px,calc(100% - 48px));margin:0 auto;padding:clamp(28px,5vh,62px) 0 44px}.map-select__intro{display:grid;grid-template-columns:1fr minmax(260px,.55fr);align-items:end;gap:16px 40px;margin-bottom:30px}.map-select__intro .map-select__overline{grid-column:1 / -1;color:var(--copper-light)}.map-select__intro h1{font-family:var(--display-font);font-size:clamp(2.25rem,5vw,4.3rem);font-weight:540;line-height:.98;letter-spacing:.04em}.map-select__intro>p:last-child{max-width:33rem;justify-self:end;color:var(--muted);font-size:.95rem;text-align:right}.map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}.map-card-wrap{position:relative;min-width:0}.map-card{position:relative;display:flex;height:100%;min-height:446px;overflow:hidden;flex-direction:column;color:var(--paper);background:linear-gradient(180deg,#162c31f7,#0c1b20fa);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--inner-line),var(--shadow-1);transition:transform .22s var(--ease-out),border-color .22s ease,box-shadow .22s ease}.map-card:after{position:absolute;inset:0;content:"";pointer-events:none;border:1px solid transparent;border-radius:inherit;background:linear-gradient(145deg,rgba(255,255,255,.055),transparent 34%) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude}.map-card:hover{border-color:var(--line-bright);transform:translateY(-3px)}.map-card.is-selected{border-color:var(--copper-light);box-shadow:inset 0 0 0 1px #e0a75857,0 18px 48px #00000052}.map-card__selection{position:absolute;z-index:3;top:14px;right:14px;display:grid;width:38px;height:38px;place-items:center;color:var(--muted);background:#08171bd1;border:1px solid rgba(160,188,182,.3);border-radius:50%;backdrop-filter:blur(8px)}.map-card.is-selected .map-card__selection{color:#10201c;background:var(--teal-light);border-color:var(--teal-light)}.map-card__art{position:relative;height:224px;overflow:hidden;border-bottom:1px solid rgba(103,139,138,.28)}.map-card__art:after{position:absolute;inset:auto 0 0;height:45%;content:"";pointer-events:none;background:linear-gradient(transparent,#0c1b209e)}.map-card__asset{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out),filter .22s ease}.map-card:hover .map-card__asset,.map-card.is-selected .map-card__asset{filter:saturate(1.08) contrast(1.04);transform:scale(1.025)}.map-preview{display:block;width:100%;height:100%;color:#eee8d46b}.map-card--moss .map-preview__ground,.game-screen--moss .map-preview__ground{fill:#345346}.map-card--salt .map-preview__ground,.game-screen--salt .map-preview__ground{fill:#704839}.map-card--night .map-preview__ground,.game-screen--night .map-preview__ground{fill:#243e48}.map-preview__grid{color:#ffffff47}.map-preview__road-edge{stroke:var(--road-edge)}.map-preview__road{stroke:var(--road)}.map-preview__slot{stroke-width:.1}.map-preview__slot--open{fill:var(--teal);stroke:#c3f0e9}.map-preview__slot--base{fill:var(--lock-base);stroke:var(--lock-base-light)}.map-preview__slot--gold{fill:var(--lock-gold);stroke:var(--lock-gold-light)}.map-preview__entry{fill:var(--coral)}.map-preview__core{fill:#163137;stroke:var(--teal-light);stroke-width:.14}.map-card__copy{display:flex;min-height:0;padding:22px 22px 18px;flex:1;flex-direction:column}.map-card__heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.map-card__heading h2{font-family:var(--display-font);font-size:clamp(1.3rem,2vw,1.68rem);font-weight:550;letter-spacing:.03em}.difficulty{flex:0 0 auto;padding:4px 8px;color:var(--paper-warm);border:1px solid var(--line-bright);border-radius:5px;font-size:.7rem;letter-spacing:.08em}.difficulty--简单{color:var(--teal-light);border-color:#58b9b0a8}.difficulty--标准{color:var(--gold);border-color:#c58a42b3}.difficulty--困难{color:#c7a5f0;border-color:#9a72d8b8}.map-card__copy>p{min-height:42px;margin-top:9px;color:var(--muted);font-size:.86rem}.map-card__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:18px 0 16px;overflow:hidden;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-s)}.map-card__stats div{display:flex;min-width:0;padding:9px 7px;flex-direction:column;background:#07161acc;text-align:center}.map-card__stats dt{color:var(--muted-dim);font-size:.66rem}.map-card__stats dd{margin-top:2px;color:var(--paper-warm);font-size:.79rem;font-weight:680}.map-card__modifiers{display:flex;min-width:0;min-height:32px;margin:-4px 0 12px;padding:7px 9px;align-items:center;gap:7px;overflow:hidden;color:var(--teal-light);background:#2a4c4f47;border:1px solid rgba(88,185,176,.2);border-radius:7px;font-size:.69rem;line-height:1}.map-card__modifiers .ui-icon{width:.92rem;height:.92rem;flex:0 0 auto}.map-card__modifiers span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-card__progress{display:flex;min-height:28px;margin-top:auto;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.76rem}.map-card__cleared{display:inline-flex;align-items:center;gap:4px;color:var(--teal-light)}.map-card__cleared .ui-icon{width:1rem;height:1rem}.map-select__footer{display:flex;min-height:94px;margin-top:22px;padding:18px 22px;align-items:center;justify-content:space-between;gap:18px;background:#0e2126cc;border:1px solid rgba(52,86,90,.78);border-radius:var(--radius-m);box-shadow:var(--inner-line);backdrop-filter:blur(12px)}.selected-map-summary{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 12px}.selected-map-summary>span{color:var(--copper-light);font-size:.76rem;font-weight:720;letter-spacing:.1em}.selected-map-summary>strong{font-size:1.05rem}.selected-map-summary>small{grid-column:1 / -1;color:var(--muted)}.primary-button--enter{min-width:190px;min-height:56px;border-radius:12px;font-size:1rem}.primary-button--enter .ui-icon{width:1.1rem;height:1.1rem}.map-atmosphere{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none}.map-atmosphere__ring{position:absolute;width:420px;height:420px;border:1px solid rgba(88,185,176,.1);border-radius:50%}.map-atmosphere__ring:after{position:absolute;inset:24px;content:"";border:1px dashed rgba(197,138,66,.1);border-radius:50%}.map-atmosphere__ring--one{top:-250px;right:10%}.map-atmosphere__ring--two{bottom:-330px;left:4%;width:580px;height:580px}.map-atmosphere__current{position:absolute;top:28%;left:-10%;width:54%;height:1px;background:linear-gradient(90deg,transparent,rgba(104,177,172,.2),transparent);transform:rotate(-7deg)}.game-screen{display:grid;width:100%;height:100dvh;grid-template-rows:auto minmax(0,1fr);background:var(--ink-0)}.game-header{position:relative;z-index:30;display:grid;min-height:72px;padding:10px 18px max(10px,env(safe-area-inset-top));grid-template-columns:minmax(220px,.8fr) minmax(540px,1.5fr) auto;align-items:center;gap:18px;background:#071216fa;border-bottom:1px solid rgba(55,91,94,.6);box-shadow:0 9px 30px #00000038}.game-header:after{position:absolute;right:0;bottom:-1px;left:0;height:1px;content:"";background:linear-gradient(90deg,transparent,rgba(88,185,176,.5),rgba(197,138,66,.25),transparent)}.game-header__identity{display:flex;min-width:0;align-items:center;gap:13px}.game-header .brand__seal{width:40px;height:40px}.header-rule{width:1px;height:30px;flex:0 0 auto;background:var(--line)}.map-identity{display:flex;min-width:0;flex-direction:column}.map-identity strong{overflow:hidden;font-family:var(--display-font);font-size:.95rem;font-weight:560;text-overflow:ellipsis;white-space:nowrap}.map-identity span{color:var(--muted);font-size:.67rem}.hud-stats{display:grid;grid-template-columns:repeat(4,minmax(104px,1fr));gap:9px}.stat-chip{display:flex;min-width:0;min-height:50px;padding:7px 12px;align-items:center;gap:10px;background:#142a30d1;border:1px solid rgba(50,81,85,.72);border-radius:12px;box-shadow:var(--inner-line)}.stat-chip>.ui-icon{width:1.25rem;height:1.25rem;color:var(--muted)}.stat-chip--coins>.ui-icon{color:var(--copper-light)}.stat-chip--core>.ui-icon{color:var(--coral)}.stat-chip--wave>.ui-icon{color:var(--teal)}.stat-chip>span{display:flex;min-width:0;flex-direction:column}.stat-chip small{color:var(--muted);font-size:.62rem;line-height:1.1}.stat-chip strong{overflow:hidden;margin-top:2px;font-size:.91rem;font-weight:630;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:7px}.game-main{position:relative;display:grid;min-width:0;min-height:0;padding:14px;grid-template:"battle inspector" minmax(0,1fr) "dock action" auto / minmax(0,1fr) minmax(278px,308px);gap:12px 14px;overflow:hidden}.command-rail{display:contents}.battle-stage{position:relative;grid-area:battle;min-width:0;min-height:0;overflow:hidden;contain:layout paint size;background:#18343a;border:1px solid var(--line-bright);border-radius:var(--radius-l);box-shadow:inset 0 0 0 6px #0b1b20,inset 0 0 0 7px #58b9b040,var(--shadow-1)}.battle-stage:focus-visible{outline-offset:-6px}.battle-stage__ambient,.battlefield-canvas,.battlefield-canvas canvas,.hotspot-layer{position:absolute;inset:0;width:100%!important;height:100%!important}.battle-stage__ambient{z-index:0;overflow:hidden;background:radial-gradient(circle at 16% 18%,rgba(88,185,176,.17),transparent 28%),linear-gradient(160deg,#315044,#19373e 65%)}.game-screen--salt .battle-stage__ambient{background:radial-gradient(circle at 82% 14%,rgba(229,163,87,.15),transparent 30%),linear-gradient(160deg,#72483a,#3b3030 65%)}.game-screen--night .battle-stage__ambient{background:radial-gradient(circle at 62% 18%,rgba(104,214,208,.13),transparent 26%),linear-gradient(160deg,#243e48,#102a34 66%)}.battle-route-fallback{width:100%;height:100%;opacity:.96;filter:saturate(.9) contrast(1.03)}.battle-route-fallback .map-preview__slot{opacity:.22}.battlefield-canvas{z-index:1;overflow:hidden;border-radius:inherit}.battlefield-canvas canvas{object-fit:contain}.hotspot-layer{--battle-scale: .85;z-index:4;pointer-events:none}.slot-hotspot{--slot-feedback: var(--teal-light);position:absolute;display:grid;width:44px;height:44px;padding:0;place-items:center;color:transparent;background:transparent;border:0;border-radius:50%;box-shadow:none;transform:translate(-50%,-50%);pointer-events:auto}.slot-hotspot:before{position:absolute;top:50%;left:50%;width:52px;height:52px;content:"";opacity:0;border:2px solid var(--slot-feedback);border-radius:50%;box-shadow:0 0 0 3px #08171bc2,0 0 12px color-mix(in srgb,var(--slot-feedback) 56%,transparent);transform:translate(-50%,-50%) scale(var(--battle-scale));transition:opacity .14s ease,border-color .14s ease,box-shadow .14s ease}.slot-hotspot:hover,.slot-hotspot.is-selected{z-index:2;transform:translate(-50%,-50%)}.slot-hotspot:hover:before,.slot-hotspot.is-selected:before,.slot-hotspot:focus-visible:before{opacity:1}.slot-hotspot:focus-visible{outline:0;box-shadow:none!important}.slot-hotspot>.tower-glyph,.slot-hotspot>.ui-icon,.slot-hotspot__plus{opacity:0;pointer-events:none}.slot-hotspot.is-locked{--slot-feedback: var(--muted)}.slot-hotspot.is-locked--base{--slot-feedback: var(--lock-base-light)}.slot-hotspot.is-locked--gold{--slot-feedback: var(--lock-gold-light)}.slot-hotspot.has-tower{--slot-feedback: var(--copper-light)}.slot-hotspot.has-tower--frost{--slot-feedback: var(--frost)}.slot-hotspot.has-tower--venom{--slot-feedback: #9bd272}.slot-hotspot.has-tower--ember{--slot-feedback: #ff7665}.slot-hotspot.has-tower--mortar{--slot-feedback: #f1a766}.slot-hotspot__plus{font-size:1.35rem;font-weight:300;line-height:1}.slot-hotspot__price,.slot-hotspot__level{position:absolute;top:calc(100% + 3px);left:50%;min-width:28px;padding:1px 4px;color:var(--paper);background:#061115e6;border-radius:4px;font-size:.58rem;line-height:1.4;transform:translate(-50%)}.slot-hotspot.is-tutorial-target:before{border-color:var(--teal-light);opacity:1;animation:slot-target-pulse 1.45s ease-in-out infinite}.is-tutorial-target:after{border-color:var(--teal-light);animation:target-pulse 1.45s ease-in-out infinite}.battle-frame{position:absolute;z-index:6;width:26px;height:26px;pointer-events:none}.battle-frame--tl{top:13px;left:13px;border-top:2px solid rgba(224,167,88,.62);border-left:2px solid rgba(224,167,88,.62);border-radius:6px 0 0}.battle-frame--br{right:13px;bottom:13px;border-right:2px solid rgba(224,167,88,.62);border-bottom:2px solid rgba(224,167,88,.62);border-radius:0 0 6px}.tutorial-prompt{position:absolute;z-index:8;top:18px;left:18px;display:flex;max-width:min(320px,calc(100% - 36px));min-height:56px;padding:8px 12px 8px 8px;align-items:center;gap:10px;color:#15201d;background:#f6edd7f5;border:1px solid #fff5df;border-radius:12px;box-shadow:0 10px 28px #00000040}.tutorial-prompt__step{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;color:#173c3d;background:#a6ddd4;border-radius:50%;font-size:.72rem;font-weight:760}.tutorial-prompt>div{display:flex;min-width:0;flex:1;flex-direction:column}.tutorial-prompt small{color:#63736c;font-size:.64rem}.tutorial-prompt strong{font-size:.87rem;line-height:1.2}.tutorial-prompt>.ui-icon{color:#29776f}.combat-ribbon{position:absolute;z-index:7;top:18px;left:50%;display:flex;min-height:40px;padding:8px 14px;align-items:center;gap:9px;color:var(--paper);background:#08181ddb;border:1px solid var(--line-bright);border-radius:999px;box-shadow:var(--shadow-1);transform:translate(-50%);backdrop-filter:blur(9px)}.combat-ribbon__pulse{width:8px;height:8px;background:var(--coral);border-radius:50%;box-shadow:0 0 0 5px #ef6a5b24}.combat-ribbon strong{font-size:.78rem}.combat-ribbon>span:last-child{color:var(--muted);font-size:.72rem}.orientation-hint{display:none}.tower-dock{grid-area:dock;min-width:0;padding:9px 11px;background:#0f2227f7;border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--inner-line),var(--shadow-1)}.tower-dock fieldset{display:grid;grid-template-columns:66px minmax(0,1fr);align-items:stretch;gap:8px}.tower-dock legend{display:flex;width:66px;padding:4px 8px 0 1px;float:left;flex-direction:column;color:var(--muted);font-size:.72rem}.tower-dock legend small{margin-top:auto;color:var(--copper-light);font-size:.62rem}.tower-list{display:grid;min-width:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tower-card-wrap{position:relative;min-width:0}.tower-card{position:relative;display:grid;height:64px;min-width:0;padding:7px;grid-template-columns:40px minmax(0,1fr) auto;grid-template-rows:1fr auto;align-items:center;gap:0 8px;color:var(--paper-warm);background:#12292ee6;border:1px solid var(--line);border-radius:10px;transition:border-color .15s ease,background-color .15s ease,transform .15s var(--ease-out)}.tower-card:hover{background:#193338fa;border-color:var(--line-bright);transform:translateY(-1px)}.tower-card.is-selected{color:var(--paper);background:#243b3afa;border-color:var(--copper-light);box-shadow:inset 0 0 0 1px #e0a75838}.tower-card[aria-disabled=true]{opacity:.46}.tower-card__glyph{display:grid;width:38px;height:38px;grid-row:1 / 3;place-items:center;color:var(--teal-light);background:#102b30;border:1px solid #3e7774;border-radius:50%}.tower-card--mortar .tower-card__glyph{color:#efaa67;border-color:#976339}.tower-card--frost .tower-card__glyph{color:var(--frost);border-color:#39747b}.tower-card--venom .tower-card__glyph{color:#a0d677;border-color:#56733e}.tower-card--ember .tower-card__glyph{color:#ff7967;border-color:#91463e}.tower-card__copy{display:flex;min-width:0;align-self:end;flex-direction:column}.tower-card__copy strong{overflow:hidden;font-size:.79rem;font-weight:640;text-overflow:ellipsis;white-space:nowrap}.tower-card__copy small{display:none;overflow:hidden;color:var(--muted);font-size:.59rem;text-overflow:ellipsis;white-space:nowrap}.tower-card__price{display:inline-flex;grid-column:2;align-items:center;gap:3px;color:var(--copper-light);font-size:.68rem}.tower-card__price .ui-icon{width:.78rem;height:.78rem}.tower-card__range{margin-left:4px;color:var(--teal-light);font-size:.58rem;white-space:nowrap}.tower-card kbd{position:absolute;top:5px;right:6px;color:var(--muted-dim);background:transparent;font-family:inherit;font-size:.58rem}.inspector{position:relative;grid-area:inspector;display:flex;min-width:0;min-height:0;overflow:hidden;flex-direction:column;background:linear-gradient(180deg,#142a30fc,#0d1d22fc);border:1px solid var(--line-bright);border-radius:var(--radius-l);box-shadow:var(--inner-line),var(--shadow-1)}.inspector__header{display:flex;min-height:58px;padding:7px;align-items:center;gap:6px;border-bottom:1px solid var(--line)}.inspector-tabs{display:grid;min-width:0;flex:1;grid-template-columns:repeat(3,1fr);gap:4px}.inspector-tab{display:flex;min-width:44px;min-height:44px;padding:4px;align-items:center;justify-content:center;gap:5px;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-s);font-size:.7rem}.inspector-tab .ui-icon{width:1rem;height:1rem}.inspector-tab:hover,.inspector-tab.is-active{color:var(--paper);background:#2a4c4f80;border-color:var(--line-bright)}.inspector-tab.is-active{color:var(--teal-light)}.inspector__close{display:none;flex:0 0 auto}.inspector__body{min-height:0;padding:18px;flex:1;overflow-y:auto;scrollbar-color:var(--line-bright) transparent;scrollbar-width:thin}.inspector__body h2{margin-top:3px;font-family:var(--display-font);font-size:1.38rem;font-weight:550;letter-spacing:.03em}.empty-selection{display:flex;min-height:100%;padding:16px;align-items:center;justify-content:center;flex-direction:column;text-align:center}.empty-selection__mark{display:grid;width:58px;height:58px;margin-bottom:17px;place-items:center;color:var(--teal-light);border:1px solid var(--teal);border-radius:50%;box-shadow:inset 0 0 0 5px #58b9b014;font-size:1.7rem;font-weight:260}.empty-selection p{max-width:13rem;margin-top:8px;color:var(--muted);font-size:.82rem}.empty-selection small{margin-top:18px;color:var(--muted-dim);font-size:.68rem}.wave-intel{display:flex;min-height:100%;flex-direction:column}.wave-intel__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wave-intel__heading>div{min-width:0}.wave-intel__count{min-width:48px;margin-top:1px;padding:5px 8px;flex:0 0 auto;color:var(--teal-light);background:#58b9b01a;border:1px solid rgba(88,185,176,.36);border-radius:999px;font-size:.63rem;font-weight:720;text-align:center}.wave-intel__count.is-boss{color:var(--gold-light);background:#c58a421f;border-color:#e0a75875}.wave-intel__roster{display:grid;margin:18px 0;padding:0;grid-template-columns:1fr;gap:7px;list-style:none}.wave-intel__enemy{display:flex;min-width:0;min-height:51px;padding:7px 9px;align-items:center;gap:9px;background:#07161a85;border:1px solid var(--line);border-radius:9px}.wave-intel__enemy-mark{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;color:var(--paper-warm);background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.16),transparent 42%),#274a4c;border:1px solid rgba(127,224,215,.34);border-radius:50% 50% 45% 55%;font-family:var(--display-font);font-size:.78rem}.wave-intel__enemy--carapace .wave-intel__enemy-mark,.wave-intel__enemy--warder .wave-intel__enemy-mark,.wave-intel__enemy--colossus .wave-intel__enemy-mark{color:var(--gold-light);background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.14),transparent 42%),#624730;border-color:#e0a7587a;border-radius:9px 14px}.wave-intel__enemy--skimmer .wave-intel__enemy-mark,.wave-intel__enemy--tidecaller .wave-intel__enemy-mark{color:#c9ecf4;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.14),transparent 42%),#285068;border-color:#7bbcd87a;border-radius:65% 35%}.wave-intel__enemy>span:last-child{display:flex;min-width:0;flex-direction:column}.wave-intel__enemy strong{overflow:hidden;color:var(--paper-warm);font-size:.76rem;font-weight:680;text-overflow:ellipsis;white-space:nowrap}.wave-intel__enemy small{overflow:hidden;margin-top:2px;color:var(--muted);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.wave-intel__footer{display:grid;margin-top:auto;padding:11px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;background:linear-gradient(135deg,#c58a421f,#2a4c4f47);border:1px solid rgba(197,138,66,.26);border-radius:10px}.wave-intel__reward{display:flex;min-height:32px;padding-right:10px;align-items:center;gap:6px;color:var(--gold-light);border-right:1px solid var(--line);white-space:nowrap}.wave-intel__reward .ui-icon{width:1rem;height:1rem}.wave-intel__reward strong{font-size:.71rem}.wave-intel__condition{display:flex;min-width:0;flex-direction:column}.wave-intel__condition small{color:var(--muted-dim);font-size:.58rem}.wave-intel__condition strong{margin-top:2px;color:var(--teal-light);font-size:.65rem;font-weight:650;line-height:1.25}.wave-intel__hint{margin-top:10px;color:var(--muted-dim);font-size:.62rem;text-align:center}.wave-intel--complete{align-items:center;justify-content:center;text-align:center}.wave-intel__complete-mark{display:grid;width:58px;height:58px;margin-bottom:16px;place-items:center;color:var(--teal-light);background:#58b9b014;border:1px solid rgba(88,185,176,.46);border-radius:50%}.wave-intel--complete .panel-copy{max-width:14rem;margin:8px 0 22px}.wave-intel--complete .wave-intel__condition{padding:9px 12px;background:#2a4c4f47;border:1px solid var(--line);border-radius:9px}.slot-detail,.locked-slot,.tower-detail,.fortress-panel,.archive-panel{display:flex;min-height:100%;flex-direction:column}.slot-detail>.panel-copy{margin-top:9px}.selected-blueprint{display:flex;margin-top:18px;padding:12px;align-items:center;gap:12px;background:#07181c94;border:1px solid var(--line);border-radius:var(--radius-m)}.selected-blueprint__glyph{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;color:var(--teal-light);border:1px solid var(--teal);border-radius:50%}.selected-blueprint__glyph--mortar{color:#efaa67;border-color:#a76a38}.selected-blueprint__glyph--frost{color:var(--frost)}.selected-blueprint__glyph--venom{color:#a0d677;border-color:#678948}.selected-blueprint__glyph--ember{color:#ff7967;border-color:#b34d43}.selected-blueprint>div{display:flex;min-width:0;flex-direction:column}.selected-blueprint strong{font-size:.81rem}.selected-blueprint small{color:var(--muted);font-size:.7rem}.build-button,.unlock-button{width:100%;min-height:58px;margin-top:auto}.build-button>span:last-child,.unlock-button>span:last-child,.tower-upgrade>span:last-child,.fortress-upgrade>span:last-child{display:inline-flex;align-items:center;gap:5px}.build-button .ui-icon,.unlock-button .ui-icon,.tower-upgrade .ui-icon,.fortress-upgrade .ui-icon{width:.95rem;height:.95rem}.locked-slot{align-items:stretch}.locked-slot__seal{display:grid;width:74px;height:74px;margin-bottom:18px;place-items:center;color:var(--lock-gold-light);background:#4a2d1833;border:1px dashed var(--lock-gold);border-radius:50%;box-shadow:inset 0 0 0 7px #6f472917}.locked-slot--base .locked-slot__seal{color:var(--lock-base-light);background:#364e5733;border-color:var(--lock-base)}.locked-slot__seal .ui-icon{width:1.8rem;height:1.8rem}.locked-slot>p:not(.panel-eyebrow){margin-top:10px;color:var(--muted);font-size:.84rem}.locked-slot>.secondary-button,.locked-slot>.primary-button{width:100%;min-height:56px;margin-top:auto}.tower-detail__title,.fortress-panel__title{display:flex;align-items:center;gap:13px}.tower-detail__portrait,.fortress-emblem{display:grid;width:54px;height:54px;flex:0 0 auto;place-items:center;color:var(--teal-light);background:#102c31;border:1px solid var(--copper);border-radius:50%;box-shadow:inset 0 0 0 4px #051418a8}.tower-detail--mortar .tower-detail__portrait{color:#efaa67}.tower-detail--frost .tower-detail__portrait{color:var(--frost)}.tower-detail--venom .tower-detail__portrait{color:#9fd374}.tower-detail--ember .tower-detail__portrait{color:#ff7967}.tower-stats,.fortress-stats{display:grid;margin:16px 0 18px;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;background:var(--line);border:1px solid var(--line);border-radius:12px}.tower-stats div,.fortress-stats div{display:flex;min-width:0;padding:10px 7px;flex-direction:column;background:#07181cd6}.tower-stats dt,.fortress-stats dt{color:var(--muted);font-size:.63rem}.tower-stats dd,.fortress-stats dd{margin-top:3px;color:var(--paper);font-size:.86rem;font-weight:680}.section-label,.plugin-inventory h3,.slot-strip h3{color:var(--muted);font-size:.68rem;font-weight:650;letter-spacing:.08em}.plugin-slots{display:grid;margin-top:7px;gap:6px}.plugin-slot{display:grid;min-height:50px;padding:6px 6px 6px 8px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;background:#0a1d21a3;border:1px solid var(--line);border-radius:9px}.plugin-slot__index{display:grid;width:28px;height:28px;place-items:center;color:var(--muted);border:1px dashed var(--line-bright);border-radius:50%;font-size:.67rem}.plugin-slot__item{display:flex;min-width:0;flex-direction:column}.plugin-slot__item strong{overflow:hidden;color:var(--teal-light);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.plugin-slot__item--power strong{color:#f18f70}.plugin-slot__item--scope strong{color:var(--gold)}.plugin-slot__item--fission strong{color:#c0a2ef}.plugin-slot__item small,.plugin-slot__empty{color:var(--muted);font-size:.62rem}.plugin-inventory{display:grid;margin-top:14px;gap:6px}.plugin-item{display:grid;min-height:48px;padding:5px 8px;grid-template-columns:30px minmax(0,1fr) 22px;align-items:center;gap:8px;color:var(--paper);background:#0f2b2ebf;border:1px solid #36706d;border-radius:9px;text-align:left}.plugin-item:hover{background:#1a3d3ed6;border-color:var(--teal)}.plugin-item>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.plugin-item strong{font-size:.72rem}.plugin-item small{color:var(--muted);font-size:.59rem}.plugin-item__gem{display:grid;width:28px;height:28px;place-items:center;color:var(--teal-light);background:#58b9b021;border-radius:50%}.plugin-item__gem .ui-icon{width:1rem;height:1rem}.plugin-item--power .plugin-item__gem{color:#f18f70;background:#f08b6721}.plugin-item--scope .plugin-item__gem{color:var(--gold);background:#f0cd7821}.plugin-item--fission .plugin-item__gem{color:#c0a2ef;background:#a882e821}.plugin-item__add{color:var(--teal-light);font-size:1.1rem}.plugin-empty{margin:11px 0;color:var(--muted-dim);font-size:.67rem}.tower-actions{display:grid;margin-top:auto;padding-top:16px;grid-template-columns:minmax(0,1fr) auto;gap:8px}.tower-upgrade{min-height:54px}.sell-button{min-width:86px}.fortress-emblem{color:var(--coral);border-color:var(--coral)}.fortress-next{display:flex;padding:12px;flex-direction:column;background:#07181ca6;border:1px solid var(--line);border-radius:10px}.fortress-next>span{color:var(--copper-light);font-size:.68rem}.fortress-next strong{margin-top:3px;font-size:.77rem}.fortress-next small{margin-top:4px;color:var(--muted);font-size:.65rem}.fortress-next.is-max{flex-direction:row;align-items:center;gap:8px;color:var(--teal-light)}.fortress-next.is-max .ui-icon{width:1rem;height:1rem}.fortress-upgrade{width:100%;min-height:56px;margin-top:auto}.fortress-note{margin-top:10px;color:var(--muted);font-size:.67rem;text-align:center}.archive-panel>.panel-copy{margin-top:6px}.archive-actions{display:grid;margin-top:17px;gap:7px}.archive-action{display:flex;width:100%;min-height:58px;padding:8px 11px;align-items:center;gap:11px;color:var(--paper);background:#081c20b8;border:1px solid var(--line);border-radius:10px;text-align:left}.archive-action:not(:disabled):hover{background:#1c3b3eb8;border-color:var(--line-bright)}.archive-action:disabled,.archive-action.is-disabled{opacity:.42}.archive-action>.ui-icon{width:1.4rem;height:1.4rem;color:var(--teal)}.archive-action>span{display:flex;min-width:0;flex-direction:column}.archive-action strong{font-size:.78rem}.archive-action small{margin-top:2px;color:var(--muted);font-size:.63rem}.import-control{position:relative}.import-label{cursor:pointer}.settings-list{margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}.setting-toggle{position:relative;display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:10px}.setting-toggle>span{display:flex;flex-direction:column}.setting-toggle strong{font-size:.75rem}.setting-toggle small{color:var(--muted);font-size:.62rem}.setting-toggle input{position:absolute;opacity:0}.setting-toggle>i{position:relative;width:43px;height:24px;flex:0 0 auto;background:#233a3f;border:1px solid var(--line-bright);border-radius:999px}.setting-toggle>i:after{position:absolute;top:3px;left:3px;width:16px;height:16px;content:"";background:var(--muted);border-radius:50%;transition:transform .16s ease,background-color .16s ease}.setting-toggle input:checked+i{background:#58b9b04d;border-color:var(--teal)}.setting-toggle input:checked+i:after{background:var(--teal-light);transform:translate(19px)}.setting-toggle input:focus-visible+i{outline:2px solid var(--paper);outline-offset:2px;box-shadow:0 0 0 5px #58b9b0b8}.map-return{width:100%;margin-top:auto}.slot-strip{display:none;padding:10px;border-top:1px solid var(--line)}.slot-strip__list{display:flex;margin-top:7px;gap:7px;overflow-x:auto;scrollbar-width:none}.slot-strip__list::-webkit-scrollbar{display:none}.slot-strip button{position:relative;display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;color:var(--teal-light);background:#102b30;border:1px solid var(--line-bright);border-radius:50%}.slot-strip button.is-locked{color:var(--muted);border-style:dashed}.slot-strip button.is-selected{border-color:var(--paper);box-shadow:0 0 0 3px #58b9b05c}.slot-strip button .tower-glyph,.slot-strip button .ui-icon{width:1rem;height:1rem}.slot-strip button small{position:absolute;right:-1px;bottom:-2px;display:grid;min-width:16px;height:16px;place-items:center;color:var(--paper);background:var(--ink-1);border-radius:50%;font-size:.52rem}.action-dock{grid-area:action;min-height:84px}.action-dock--planning{display:grid;grid-template-columns:1fr}.wave-button{position:relative;display:flex;min-width:0;min-height:84px;padding:12px 15px;align-items:center;justify-content:space-between;gap:12px;overflow:hidden;color:#17150f;background:radial-gradient(circle at 100% 0,rgba(255,224,154,.26),transparent 46%),linear-gradient(145deg,#d79a49,#aa672d);border:1px solid #e5a858;border-radius:var(--radius-m);box-shadow:var(--inner-line),0 12px 30px #6a3d1647;text-align:left}.wave-button:before{position:absolute;right:-22px;bottom:-32px;width:110px;height:110px;content:"";border:1px solid rgba(47,35,19,.17);border-radius:50%}.wave-button:not(:disabled):hover{filter:brightness(1.06);transform:translateY(-1px)}.wave-button:disabled{color:var(--muted);background:#1c3338;border-color:var(--line)}.wave-button>span:first-child{display:flex;min-width:0;flex-direction:column}.wave-button small{display:block;max-width:100%;overflow:hidden;font-size:.64rem;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap}.wave-button strong{overflow:hidden;margin-top:2px;font-family:var(--display-font);font-size:1.26rem;font-weight:580;text-overflow:ellipsis;white-space:nowrap}.wave-button__play{position:relative;z-index:1;display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;color:var(--paper);background:#17231f;border:1px solid rgba(255,245,218,.28);border-radius:50%}.action-dock__minor{display:none}.action-dock--combat{display:grid;padding:8px;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:7px;background:#0f2227f7;border:1px solid var(--line);border-radius:var(--radius-m)}.action-dock--combat .action-dock__minor,.action-dock--combat .action-dock__primary{display:flex;min-width:44px;min-height:58px;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:var(--muted);background:#081a1eb8;border:1px solid var(--line);border-radius:9px;font-size:.64rem}.action-dock--combat .action-dock__primary{color:var(--teal-light);border-color:#58b9b094}.action-dock--combat .ui-icon{width:1.15rem;height:1.15rem}.game-dialog{position:fixed;z-index:100;inset:50% auto auto 50%;width:min(430px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:0;padding:0;overflow:auto;color:var(--paper);background:linear-gradient(160deg,#173138,#0d2025);border:1px solid var(--line-bright);border-radius:var(--radius-l);box-shadow:var(--shadow-2),inset 0 1px #ffffff0f;transform:translate(-50%,-50%)}.game-dialog::backdrop{background:#020a0db8;backdrop-filter:blur(5px)}.game-dialog form{padding:22px}.game-dialog form>header{display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:center;gap:12px}.dialog-emblem{display:grid;width:48px;height:48px;place-items:center;color:var(--teal-light);border:1px solid var(--teal);border-radius:50%}.game-dialog h2{margin-top:2px;font-family:var(--display-font);font-size:1.35rem;font-weight:570}.import-summary{display:grid;margin-top:20px;grid-template-columns:repeat(2,1fr);gap:1px;overflow:hidden;background:var(--line);border:1px solid var(--line);border-radius:10px}.import-summary div{display:flex;min-height:54px;padding:8px 11px;flex-direction:column;background:#08191ddb}.import-summary dt{color:var(--muted);font-size:.65rem}.import-summary dd{margin-top:3px;font-size:.83rem;font-weight:680}.dialog-note{margin-top:14px;color:var(--muted);font-size:.73rem}.game-dialog footer{display:grid;margin-top:20px;grid-template-columns:1fr 1.4fr;gap:8px}.result-dialog{padding:30px 28px 27px;text-align:center}.result-dialog__halo{position:absolute;top:-100px;left:50%;width:240px;height:240px;pointer-events:none;border:1px solid rgba(88,185,176,.14);border-radius:50%;transform:translate(-50%)}.result-dialog__emblem{position:relative;display:grid;width:72px;height:72px;margin:0 auto 18px;place-items:center;color:var(--teal-light);background:#15383b;border:1px solid var(--teal);border-radius:50%;box-shadow:0 0 0 8px #58b9b012}.result-dialog--defeat .result-dialog__emblem{color:#ff8577;border-color:var(--coral);box-shadow:0 0 0 8px #ef6a5b14}.result-dialog__emblem .ui-icon{width:2rem;height:2rem}.result-dialog>p:not(.panel-eyebrow){margin:9px 0 22px;color:var(--muted)}.result-dialog>.primary-button{width:100%;min-height:54px;justify-content:center}.fatal-panel{display:flex;width:min(520px,calc(100% - 32px));min-height:100dvh;margin:0 auto;align-items:center;justify-content:center;flex-direction:column;text-align:center}.fatal-panel h1{margin-top:28px;font-family:var(--display-font)}.fatal-panel p{margin:8px 0 24px;color:var(--muted)}}@layer responsive{@media(min-width:1380px){.game-main{padding:16px 20px 20px;gap:14px 16px;grid-template-columns:minmax(0,1fr) 318px}.tower-card__copy small{display:block}}@media(min-width:1024px)and (max-width:1199px)and (min-height:560px){.game-header{grid-template-columns:195px minmax(470px,1fr) auto;gap:10px}.game-header .brand__name{display:none}.hud-stats{grid-template-columns:repeat(4,minmax(95px,1fr));gap:6px}.stat-chip{padding-inline:9px}.game-main{grid-template:"battle" minmax(0,1fr) "dock" auto / minmax(0,1fr);padding-right:14px}.inspector{position:fixed;z-index:60;top:86px;right:14px;bottom:14px;width:310px;visibility:hidden;opacity:0;pointer-events:none;transform:translate(calc(100% + 30px));transition:visibility 0s linear .22s,transform .22s var(--ease-out),opacity .18s ease}.command-rail.is-open .inspector{visibility:visible;opacity:1;pointer-events:auto;transform:translate(0);transition-delay:0s}.inspector__close{display:inline-flex}.action-dock{position:fixed;z-index:20;right:28px;bottom:118px;width:276px;filter:drop-shadow(0 14px 24px rgba(0,0,0,.3))}.tower-list{padding-right:300px}}@media(max-width:1100px)and (min-width:1024px)and (min-height:560px){.tower-dock fieldset{grid-template-columns:56px minmax(0,1fr)}.tower-dock legend{width:56px}.tower-card{grid-template-columns:38px minmax(0,1fr) auto}.tower-card__glyph{width:36px;height:36px}}@media(max-width:1023px),(max-height:559px)and (orientation:landscape){.game-screen{grid-template-rows:auto minmax(0,1fr)}.game-header{min-height:54px;padding:max(5px,env(safe-area-inset-top)) max(7px,env(safe-area-inset-right)) 5px max(7px,env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr) auto;gap:7px}.game-header__identity{gap:7px}.game-header .brand__seal{width:36px;height:36px}.game-header .brand__name,.header-rule,.map-identity span{display:none}.map-identity strong{max-width:8.5rem;font-size:.8rem}.hud-stats{display:flex;min-width:0;justify-content:center;gap:5px}.stat-chip{min-width:0;min-height:40px;padding:4px 7px;gap:5px;border-radius:8px}.stat-chip>.ui-icon{width:.9rem;height:.9rem}.stat-chip small{display:none}.stat-chip strong{margin:0;font-size:.72rem}.stat-chip--capacity{display:none}.header-actions{gap:4px}.header-actions .icon-button{display:none;width:44px;min-width:44px;min-height:44px;padding:0}.header-actions .icon-button:last-child,.header-actions .icon-button:nth-last-child(2){display:inline-flex}.tower-card kbd{display:none}.slot-strip{display:block}.inspector__close{display:inline-flex}.action-dock__minor{display:flex}}@media(max-height:559px)and (orientation:landscape){.game-header{min-height:48px;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:4px}.game-header .brand__seal{width:32px;height:32px;box-shadow:inset 0 0 0 3px var(--ink-1),inset 0 0 0 4px #c58a4294}.game-header .brand__seal:before{width:10px;height:13px}.stat-chip{min-height:36px}.game-main{display:grid;padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));grid-template-columns:minmax(0,1fr) clamp(216px,29vw,264px);grid-template-rows:minmax(0,1fr);gap:7px;overflow:hidden}.battle-stage{grid-area:auto;border-radius:15px;box-shadow:inset 0 0 0 4px #0b1b20,inset 0 0 0 5px #58b9b040}.command-rail{display:flex;min-width:0;min-height:0;grid-column:2;grid-row:1;flex-direction:column;gap:6px;overflow-y:auto;scrollbar-width:none}.command-rail::-webkit-scrollbar{display:none}.tower-dock{grid-area:auto;padding:6px;flex:0 0 auto;border-radius:10px}.tower-dock fieldset{display:block}.tower-dock legend{display:flex;width:100%;padding:0 2px 5px;float:none;flex-direction:row;justify-content:space-between}.tower-dock legend small{margin:0}.tower-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.tower-card{height:48px;padding:4px;grid-template-columns:34px minmax(0,1fr);gap:3px 5px;border-radius:8px}.tower-card__glyph{width:32px;height:32px}.tower-card__glyph .tower-glyph{width:1.05rem;height:1.05rem}.tower-card__copy strong{font-size:.66rem}.tower-card__price{grid-column:2;font-size:.58rem}.inspector{position:static;display:none;min-height:180px;flex:1 0 220px;border-radius:10px}.command-rail.is-open .inspector{display:flex}.command-rail.is-open .tower-dock{display:none}.inspector__header{min-height:46px;padding:3px}.inspector-tab,.inspector__close{min-height:44px;min-width:44px}.inspector__body{padding:10px}.inspector__body h2{font-size:1.05rem}.wave-intel__roster{margin:10px 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.wave-intel__enemy{min-height:44px;padding:5px 6px;gap:6px}.wave-intel__enemy-mark{width:30px;height:30px}.wave-intel__footer{margin-top:4px;padding:7px}.wave-intel__hint{display:none}.slot-strip{padding:7px}.inspector--intel .slot-strip,.slot-strip h3{display:none}.slot-strip__list{margin:0}.action-dock{position:sticky;z-index:10;right:auto;bottom:0;width:auto;min-height:54px;grid-area:auto;flex:0 0 auto}.action-dock--planning{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:5px}.wave-button{min-height:54px;padding:6px 9px;border-radius:10px}.wave-button small{font-size:.55rem}.wave-button strong{font-size:.9rem}.wave-button__play{display:none}.action-dock__minor{display:flex;min-width:44px;min-height:54px;padding:3px;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:var(--muted);background:#0f2227fa;border:1px solid var(--line);border-radius:9px;font-size:.54rem}.action-dock__minor .ui-icon{width:1rem;height:1rem}.action-dock--combat{min-height:54px;padding:4px}.action-dock--combat .action-dock__minor,.action-dock--combat .action-dock__primary{min-height:46px}.tutorial-prompt{top:10px;left:10px;min-height:44px;padding:5px 9px 5px 5px}.tutorial-prompt__step{width:32px;height:32px}.tutorial-prompt strong{font-size:.72rem}.tutorial-prompt>.ui-icon{display:none}.combat-ribbon{top:9px;min-height:34px;padding:5px 9px}.slot-hotspot{width:44px;height:44px}}@media(max-width:1023px)and (orientation:portrait){.game-screen{height:100dvh}.map-identity{display:none}.game-header{grid-template-columns:36px minmax(0,1fr) auto}.game-header__identity{width:36px}.stat-chip{padding-inline:6px}.stat-chip--wave{display:none}.game-main{display:block;min-height:0;padding:8px max(8px,env(safe-area-inset-right)) calc(102px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.battle-stage{width:100%;min-height:0;aspect-ratio:12 / 7;border-radius:15px;box-shadow:inset 0 0 0 4px #0b1b20,inset 0 0 0 5px #58b9b040,var(--shadow-1)}.command-rail{display:block}.tower-dock{margin-top:8px;padding:9px;border-radius:12px}.tower-dock fieldset{display:block}.tower-dock legend{display:flex;width:100%;padding:0 2px 8px;float:none;flex-direction:row;justify-content:space-between}.tower-dock legend small{margin:0}.tower-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.tower-card{height:58px;grid-template-columns:38px minmax(0,1fr)}.tower-card__glyph{width:36px;height:36px}.tower-card__price{grid-column:2}.inspector{position:fixed;z-index:70;right:max(8px,env(safe-area-inset-right));bottom:calc(82px + env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));display:flex;max-height:min(68dvh,590px);visibility:hidden;border-radius:18px 18px 12px 12px;box-shadow:var(--shadow-2);opacity:0;pointer-events:none;transform:translateY(calc(100% + 104px));transition:visibility 0s linear .24s,transform .24s var(--ease-out),opacity .18s ease}.command-rail.is-open .inspector{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition-delay:0s}.inspector:before{position:absolute;top:5px;left:50%;width:44px;height:4px;content:"";background:var(--line-bright);border-radius:999px;transform:translate(-50%)}.inspector__header{padding-top:11px}.inspector__body{padding:16px}.slot-strip{flex:0 0 auto}.inspector--intel .slot-strip{display:none}.action-dock{position:fixed;z-index:80;right:0;bottom:0;left:0;width:auto;min-height:calc(74px + env(safe-area-inset-bottom));padding:7px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#071216f7;border-top:1px solid var(--line-bright);box-shadow:0 -10px 30px #00000052;backdrop-filter:blur(14px)}.action-dock--planning{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:7px}.action-dock__minor{display:flex;min-width:44px;min-height:58px;padding:4px;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:var(--muted);background:#12272cdb;border:1px solid var(--line);border-radius:10px;font-size:.58rem}.action-dock__minor .ui-icon{width:1.1rem;height:1.1rem}.wave-button{min-height:58px;padding:7px 12px;border-radius:11px}.wave-button small{font-size:.56rem}.wave-button strong{font-size:1rem}.wave-button__play{width:38px;height:38px}.action-dock--combat{display:grid;grid-template-columns:repeat(3,1fr)}.action-dock--combat .action-dock__minor,.action-dock--combat .action-dock__primary{min-height:58px}.orientation-hint{display:none}.slot-hotspot{width:44px;height:44px;border-width:1.5px}.slot-hotspot__price,.slot-hotspot__level{display:none}.tutorial-prompt{top:9px;left:9px;max-width:calc(100% - 18px);min-height:44px;padding:5px 9px 5px 5px}.tutorial-prompt__step{width:32px;height:32px}.tutorial-prompt strong{font-size:.72rem}.tutorial-prompt>.ui-icon{width:1rem;height:1rem}.combat-ribbon{top:8px;right:8px;left:auto;min-height:34px;padding:5px 9px;transform:none}}@media(max-width:720px){.map-header{width:calc(100% - 28px);min-height:70px}.map-header .brand__sub{display:none}.map-select{width:calc(100% - 28px);padding:26px 0 calc(24px + env(safe-area-inset-bottom))}.map-select__intro{display:block;margin-bottom:20px}.map-select__intro h1{margin-top:6px;font-size:2.35rem}.map-select__intro>p:last-child{margin-top:10px;text-align:left}.map-grid{grid-template-columns:1fr;gap:12px}.map-card{min-height:0;display:grid;grid-template-columns:42% minmax(0,1fr)}.map-card__art{height:auto;min-height:190px;border-right:1px solid rgba(103,139,138,.28);border-bottom:0}.map-card__copy{padding:16px 14px 13px}.map-card__heading{align-items:flex-start;flex-direction:column;gap:4px}.map-card__heading h2{font-size:1.16rem}.map-card__copy>p{min-height:0;font-size:.74rem}.map-card__stats{margin:10px 0;grid-template-columns:1fr}.map-card__stats div{padding:4px 6px;align-items:center;justify-content:space-between;flex-direction:row}.map-card__modifiers{min-height:27px;margin:-2px 0 8px;padding:5px 6px;gap:5px;font-size:.62rem}.map-card__progress{font-size:.66rem}.map-card__cleared{display:none}.map-select__footer{position:sticky;z-index:5;bottom:max(8px,env(safe-area-inset-bottom));min-height:82px;padding:12px;border-color:var(--line-bright)}.selected-map-summary>small{display:none}.selected-map-summary{display:flex;flex-direction:column}.primary-button--enter{min-width:158px;min-height:54px}}@media(max-width:430px){.map-card{grid-template-columns:38% minmax(0,1fr)}.map-card__art{min-height:178px}.map-card__stats div:nth-child(3){display:none}.map-card__modifiers .ui-icon{display:none}.selected-map-summary strong{font-size:.82rem}.primary-button--enter{min-width:148px;padding-inline:13px;font-size:.87rem}}}@layer motion{@keyframes slot-target-pulse{0%,to{opacity:.55;box-shadow:0 0 0 2px #08171bb3,0 0 8px #7fe0d74d}50%{opacity:1;box-shadow:0 0 0 3px #08171bc2,0 0 15px #7fe0d7ad}}@keyframes target-pulse{0%,to{opacity:.62;transform:scale(.94)}50%{opacity:1;transform:scale(1.1)}}@keyframes combat-pulse{0%,to{opacity:.62;transform:scale(.78)}50%{opacity:1;transform:scale(1)}}.combat-ribbon__pulse{animation:combat-pulse 1.1s ease-in-out infinite}.map-atmosphere__ring--one{animation:slow-drift 18s ease-in-out infinite alternate}@keyframes slow-drift{to{transform:translate3d(-22px,16px,0) rotate(4deg)}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}}
