@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;700;900&display=swap";#boss-hud{z-index:4;pointer-events:none;background:#17211bf2;border:1px solid #fc9474;border-radius:8px;width:min(330px,42%);padding:10px 12px;font-size:12px;position:absolute;top:18px;left:50%;transform:translate(-50%)}#boss-hud>div{justify-content:space-between;gap:8px;display:flex}#boss-health{accent-color:#fa896a;width:100%;height:10px;margin:6px 0;display:block}#boss-stage{color:#ffd391;margin-right:8px}#boss-countdown{font-size:11px;line-height:1.5;display:block}#wave-intel{white-space:normal;text-align:left;background:#142018f2;border:1px solid #63754e;border-radius:6px;width:min(360px,80vw);font-size:12px}#wave-intel summary{cursor:pointer;box-sizing:border-box;color:#e0f58b;min-height:44px;padding:12px}#wave-intel>div{touch-action:pan-y;max-height:110px;padding:0 12px 10px;overflow:auto}#wave-intel p{margin:4px 0;line-height:1.6}#intel-tips{color:#c0cfb7}#overlay .dialog:has(#battle-report:not([hidden])){box-sizing:border-box;touch-action:pan-y;width:min(580px,100% - 24px);max-width:580px;max-height:90%;margin:10px;padding:22px;overflow:auto}#battle-report{text-align:left;margin:16px 0}#battle-report h3{font-size:16px}#battle-report p{margin:8px 0;font-size:12px;line-height:1.6}#battle-report table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}#battle-report th,#battle-report td{text-align:right;overflow-wrap:anywhere;border-bottom:1px solid #43513a;padding:7px 4px}#battle-report th:first-child,#battle-report td:first-child{text-align:left;width:43%}#battle-report small{color:#becbb6;margin-top:8px;font-size:11px;display:block}@media (width<=760px),(pointer:coarse){#boss-hud{box-sizing:border-box;width:calc(100% - 130px);max-width:280px;padding:7px 9px;font-size:11px;top:98px;left:10px;transform:none}#boss-countdown{font-size:10px}#wave-intel{width:min(340px,86vw)}.wave-action:has(#wave-intel){gap:6px}#battle-report table{font-size:11px}}@media (height<=520px) and (orientation:landscape){#boss-hud{max-width:250px;top:56px}#wave-intel>div{max-height:65px}#wave-intel{width:310px}#overlay .dialog:has(#battle-report:not([hidden])){max-height:94%}}#report-wave{color:#e0f58b;background:#1b291f;border:1px solid #63754e;width:100%;min-height:44px;padding:8px;font-size:16px;display:block}#report-advice{padding-left:20px;font-size:12px;line-height:1.7}#report-advice li{margin:8px 0}#report-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}#report-highlights>div{text-align:center;background:#253422;border:1px solid #63754e;border-radius:6px;padding:10px 6px}#report-highlights dt{color:#c0cfb7;font-size:11px}#report-highlights dd{color:#e0f58b;overflow-wrap:anywhere;margin:5px 0 0;font-size:21px;font-weight:700}#report-details{border-top:1px solid #63754e;margin-top:14px}#report-details summary{box-sizing:border-box;cursor:pointer;color:#e0f58b;min-height:44px;padding:12px 0;font-size:13px}#last-wave-report{color:#e0f58b;background:#17251d;border:1px solid #91a86c;border-radius:4px;min-height:44px;padding:8px 14px;font-size:12px}#last-wave-report:hover{background:#314529}#app .wave-action{white-space:normal;grid-template-columns:repeat(2,minmax(0,1fr));width:min(420px,92%)}.wave-action:has(#last-wave-report){white-space:normal;grid-template-columns:repeat(2,minmax(0,1fr));width:min(420px,92%)}.wave-action #wave-intel,.wave-action #next-wave{box-sizing:border-box;grid-column:1/-1;width:100%;min-width:0}.wave-action #last-wave-report,.wave-action #open-cosmetics{white-space:normal;min-width:0}:root{--bg:#101511;--surface:#171e18;--raised:#20291f;--brand:#d8f36a;--ink:#eff2e5;--muted:#98a38e;--line:#313c2b;--cold:#8bd9e5;--hot:#edab6c;--danger:#ee7865;--font:"Noto Sans TC", system-ui, sans-serif;--display:Impact, "Arial Narrow", sans-serif;--mono:"Consolas", monospace;--radius:4px;--space:24px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font);margin:0;font-size:13px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:4px}button:disabled{opacity:.4;cursor:not-allowed}button{transition:background .18s,border-color .18s,transform .18s}button:hover:not(:disabled){filter:brightness(1.16)}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}#app{max-width:1920px;margin:auto}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;height:92px;padding:0 32px;display:flex}.brand{color:var(--ink);align-items:center;gap:13px;text-decoration:none;display:flex}.brand-mark{background:var(--brand);width:40px;height:45px;color:var(--bg);font-size:43px;font-family:var(--display);clip-path:polygon(15% 0,100% 0,100% 85%,85% 100%,0 100%,0 15%);place-items:center;display:grid}.brand strong{font-family:var(--display);letter-spacing:2px;font-size:29px;font-weight:400}.brand strong span{font:10px var(--mono);vertical-align:top;margin-top:5px;margin-left:4px;display:inline-block}.brand small{color:var(--muted);letter-spacing:2px;margin-top:1px;font-size:8px;display:block}.sector{color:var(--muted);letter-spacing:1px;align-items:center;gap:10px;font-size:11px;display:flex}.divider{color:var(--line);padding:0 9px}.status-dot{background:var(--brand);border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 9px #d8f33444}.top-actions{align-items:center;gap:10px;display:flex}.icon-button,.outline-button{border:1px solid var(--line);border-radius:var(--radius);background:0 0;height:34px}.icon-button{width:34px;color:var(--muted)}.outline-button{padding:0 18px;font-size:11px}.layout{grid-template-columns:minmax(0,1fr) 292px;gap:20px;padding:22px 24px 0;display:grid}.battlefield{border:1px solid var(--line);border-radius:var(--radius);background:#222d24;height:calc(100vh - 286px);min-height:490px;position:relative;overflow:hidden}#game{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.vignette{pointer-events:none;background:linear-gradient(#111b1988,#0000 30% 75%,#0b140e88);position:absolute;inset:0;box-shadow:inset 0 0 90px #0b110d7a}.field-heading{pointer-events:none;position:absolute;top:27px;left:28px}.eyebrow{font:9px var(--mono);letter-spacing:2px;color:var(--brand)}h1{letter-spacing:2px;margin:10px 0 6px;font-size:clamp(20px,2vw,30px);font-weight:700}.field-heading p{color:#b2bcac;margin:0;font-size:11px}.map-coordinates{font:22px var(--mono);color:var(--brand);text-align:right;pointer-events:none;position:absolute;top:28px;right:24px}.map-coordinates span{letter-spacing:1px;color:var(--muted);margin-top:8px;font-size:8px;display:block}.wave-info{background:#141f17c9;border:1px solid #45513a;border-radius:3px;align-items:center;gap:9px;padding:9px 13px;font-size:10px;display:flex;position:absolute;top:134px;left:28px}.live-mark{background:var(--brand);width:5px;height:5px}.wave-info b{font:17px var(--mono);color:var(--brand)}.wave-info small{color:var(--muted)}.wave-separator{color:var(--muted);margin:0 4px}.field-tag{font:9px var(--font);letter-spacing:2px;color:var(--danger);pointer-events:none;position:absolute}.entry-tag{top:48%;left:6%}.wave-action{text-align:center;white-space:nowrap;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:49px;left:50%;transform:translate(-50%)}.wave-action>span{color:#cbd4c1;text-shadow:0 2px 4px #000;font-size:10px}.primary-button{background:var(--brand);color:#202616;border:0;border-radius:2px;min-width:178px;padding:13px 23px;font-size:12px;font-weight:700;box-shadow:0 4px 20px #0509044d}.primary-button span{margin-left:26px}.field-bottom{color:var(--muted);justify-content:space-between;align-items:center;padding:14px 22px;font-size:9px;display:flex;position:absolute;bottom:0;left:0;right:0}.field-bottom>span{align-items:center;gap:7px;display:flex}.field-bottom i{background:var(--brand);border-radius:50%;width:5px;height:5px}.field-bottom>div{align-items:center;gap:16px;display:flex}.field-bottom button{border:1px solid var(--line);font:10px var(--mono);background:#192119;border-radius:2px;padding:4px 9px}.command-panel{flex-direction:column;min-width:0;display:flex}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:5px 0 16px;font-size:14px;font-weight:700;display:flex}.panel-heading small{font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.core-status{padding-top:20px}.section-label{color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.section-label strong{font:24px var(--mono);color:var(--brand)}.section-label strong span{font-size:13px}.meter{background:#2f3829;height:5px;margin-top:10px;overflow:hidden}.meter i{background:var(--brand);width:100%;height:100%;transition:width .15s;display:block}.core-status p{color:var(--muted);margin:9px 0 18px;font-size:9px}.resource-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1.2fr 1fr;padding:17px 0;display:grid}.resource-row>div+div{border-left:1px solid var(--line);padding-left:25px}.resource-row span{color:var(--muted);font-size:10px}.resource-row strong{font:27px var(--mono);margin-top:7px;display:block}.energy-number i{color:var(--brand);font-size:24px;font-style:normal}.energy-number b{font-weight:400}.section-title{justify-content:space-between;align-items:center;margin:21px 0 7px;display:flex}.section-title h2{margin:0;font-size:13px}.section-title>span{font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.muted{color:var(--muted);margin:0 0 13px;font-size:10px}.tower-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;align-items:center;gap:11px;width:100%;margin-bottom:7px;padding:13px 11px;display:flex}.tower-card.selected{background:#252e1d;border-color:#879b48}.tower-symbol{width:29px;color:var(--brand);place-items:center;font-size:30px;display:grid}.tower-symbol.cryo{color:var(--cold);font-size:25px}.tower-symbol.plasma{color:var(--hot)}.tower-card strong{font-size:11px;font-weight:500;display:block}.tower-card small{color:var(--muted);margin-top:5px;font-size:9px;display:block}.tower-card b{font:11px var(--mono);color:var(--brand);white-space:nowrap;margin-left:auto}.tower-detail{border-left:2px solid var(--brand);background:var(--surface);margin-top:12px;padding:12px 13px}.detail-label{justify-content:space-between;font-size:10px;display:flex}.detail-label span{color:var(--brand)}.tower-detail p{color:var(--muted);margin:6px 0 0;font-size:10px;line-height:1.8}.tower-detail button{background:var(--raised);border:1px solid var(--line);margin:9px 6px 0 0;padding:6px 10px;font-size:10px}.mission{padding:20px 0 12px}.mission .eyebrow{color:var(--muted);font-size:8px}.mission h3{margin:6px 0 12px;font-size:12px;font-weight:500}.mission>div{color:var(--muted);justify-content:space-between;margin-top:7px;font-size:10px;display:flex}.mission b{font-family:var(--mono);color:var(--ink);font-weight:400}.panel-bottom{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:13px 0 3px;font-size:9px}.panel-bottom .status-dot{width:5px;height:5px;margin-right:6px}.panel-bottom>span:last-child{float:right;font-family:var(--mono)}.arsenal{border-top:1px solid var(--line);grid-template-columns:150px repeat(5,minmax(0,1fr)) 174px;align-items:center;gap:12px;margin:22px 24px 20px;padding-top:20px;display:grid}.arsenal-heading h2{margin:6px 0 10px;font-size:15px}.arsenal-heading>span:last-child{color:var(--muted);font-size:9px}kbd{border:1px solid var(--line);font:9px var(--mono);border-radius:2px;padding:1px 4px}.weapon{border:1px solid var(--line);border-radius:var(--radius);text-align:left;background:var(--surface);--weapon-color:var(--brand);height:118px;padding:9px 13px;position:relative;overflow:hidden}.weapon[data-weapon=plasma]{--weapon-color:var(--hot)}.weapon[data-weapon=cryo]{--weapon-color:var(--cold)}.weapon.selected{border-color:var(--weapon-color);background:radial-gradient(ellipse at 65% 30%, #42532c45, transparent 70%), var(--surface)}.weapon-key{font:10px var(--mono);color:var(--muted);position:absolute;top:10px;left:12px}.weapon svg{filter:drop-shadow(0 6px 4px #0006);width:82%;height:59px;margin:-4px 0 -1px 16%}.gun-body{fill:#87917c;stroke:#adb6a0;stroke-width:1px}.gun-dark{fill:#353f32;stroke:#9aa38d;stroke-width:1px}.gun-light{fill:var(--weapon-color)}.gun-line{fill:none;stroke:#afb99c;stroke-width:4px}.weapon-copy strong{font-size:11px;font-weight:500;display:block}.weapon-copy small{color:var(--muted);margin-top:3px;font-size:9px;display:block}.weapon-copy i{vertical-align:middle;margin:0 4px;font-size:5px}.equipped{color:var(--weapon-color);font-size:8px;display:none;position:absolute;bottom:16px;right:11px}.selected .equipped{display:inline}.heat-status{padding-left:11px}.heat-status>div:first-child{justify-content:space-between;font-size:10px;display:flex}.heat-status b{font:12px var(--mono);color:var(--brand)}.heat-status small{color:var(--muted);margin-top:10px;font-size:9px;display:block}#heat-bar{width:0}#toast{pointer-events:none;opacity:0;white-space:nowrap;z-index:8;background:#10180feb;border:1px solid #889a50;border-radius:3px;padding:11px 20px;font-size:12px;transition:opacity .2s,transform .2s;position:absolute;top:23px;left:50%;transform:translate(-50%)translateY(-8px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.overlay{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:10;background:#0c140dcc;place-items:center;display:grid;position:absolute;inset:0}.dialog{border:1px solid var(--line);background:var(--surface);max-width:440px;margin:24px;padding:38px;box-shadow:0 20px 70px #0004}.dialog h2{letter-spacing:2px;font-size:26px}.dialog p{color:var(--muted);white-space:pre-line;margin-bottom:24px;font-size:12px;line-height:2}@media (height>=960px){.tower-card{padding:17px 11px}.mission{padding-top:25px}.battlefield{min-height:650px}}@media (width<=1150px){.layout{grid-template-columns:minmax(0,1fr) 258px;gap:14px;padding:16px 16px 0}.topbar{padding:0 20px}.arsenal{grid-template-columns:130px repeat(5,minmax(0,1fr));margin:16px}.heat-status{grid-column:1/-1;align-items:center;gap:20px;padding:0;display:flex}.heat-status>div:first-child{gap:20px}.heat-status .meter{width:150px;margin:0}.heat-status small{margin:0}.battlefield{height:calc(100vh - 303px);min-height:585px}.sector{display:none}.arsenal-heading h2{font-size:13px}.equipped{font-size:7px;bottom:17px}.weapon{padding:9px}.field-heading{left:20px}.map-coordinates span{display:none}}@media (width<=760px){.topbar{height:74px;padding:0 14px}.brand strong{font-size:24px}.brand small{font-size:6px}.brand-mark{width:31px;height:38px;font-size:34px}.top-actions{gap:5px}.outline-button{padding:0 9px}.layout{flex-direction:column;gap:13px;padding:10px 10px 0;display:flex}.battlefield{height:58vh;min-height:400px}.field-heading{top:19px;left:18px}.field-heading h1{font-size:21px}.field-heading p{font-size:9px}.eyebrow{font-size:8px}.map-coordinates{font-size:17px;top:20px;right:15px}.wave-info{font-size:9px;top:112px;left:18px}.command-panel{grid-template-columns:1fr 1fr;gap:10px 16px;padding:0 5px;display:grid}.panel-heading{grid-column:1/-1;padding:5px 0 10px}.core-status{padding:0}.resource-row{border-top:0;padding:0 0 8px}.resource-row strong{font-size:22px}.resource-row>div+div{padding-left:15px}.build-section{grid-column:1/-1}.section-title{margin:0 0 6px}.tower-card{vertical-align:top;flex-wrap:wrap;gap:3px;width:calc(50% - 4px);margin-bottom:0;padding:9px 5px;display:inline-flex}.tower-card strong{font-size:10px}.tower-card small{display:none}.tower-symbol{width:23px;font-size:20px}.tower-symbol.cryo{font-size:18px}.tower-card b{width:100%;margin-left:26px;font-size:10px}.tower-detail{margin-top:0}.mission{padding:0}.mission h3{font-size:11px}.mission>div{margin-top:4px}.panel-bottom{grid-column:1/-1;padding:8px 0 0}.arsenal{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 10px}.arsenal-heading{grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.arsenal-heading h2{margin:0 8px}.arsenal-heading>.eyebrow{font-size:7px}.weapon{height:105px;padding:8px}.weapon svg{width:93%;height:52px;margin-left:7%}.weapon-key{font-size:8px;left:8px}.weapon-copy strong{font-size:10px}.weapon-copy small{font-size:8px}.equipped{font-size:6px;bottom:29px;right:7px}.field-bottom{padding:11px 14px}.desktop-hint{display:none}.heat-status{gap:12px}.heat-status small{font-size:8px}.heat-status .meter{flex:1}.wave-action{bottom:42px}.wave-action>span{font-size:8px}.primary-button{padding:11px 18px;font-size:11px}.dialog{padding:22px}.dialog h2{font-size:21px}#toast{white-space:normal;text-align:center;width:max-content;max-width:94%;font-size:10px}.entry-tag{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.weapon-preview{object-fit:contain;filter:drop-shadow(0 5px 5px #0005);width:86%;height:64px;margin:-7px 0 -3px 12%}@media (width>=761px){.battlefield{height:auto;min-height:calc(100vh - 286px)}.core-status{padding-top:14px}.core-status p{margin:7px 0 13px}.resource-row{padding:12px 0}.section-title{margin-top:16px}.tower-card{padding:11px 10px}.tower-detail{margin-top:8px;padding:10px 12px}.mission{padding:15px 0 12px}.mission h3{margin-bottom:9px}.mission>div{margin-top:5px}.panel-bottom{padding-top:10px}.panel-heading{padding-bottom:12px}.arsenal{margin-top:16px;padding-top:16px}}@media (width>=761px) and (height<=900px){.topbar{height:78px}.layout{padding-top:15px}.battlefield{min-height:580px}.core-status{padding-top:10px}.core-status p{margin-bottom:10px}.resource-row{padding:9px 0}.section-title{margin-top:12px}.tower-card{padding:9px}.tower-detail{padding:8px 10px}.mission{padding:10px 0}.mission .eyebrow{display:none}.panel-bottom{padding-top:8px}.arsenal{margin-top:12px;padding-top:12px}.weapon{height:108px}}@media (width<=760px){.weapon-preview{width:96%;height:56px;margin:-3px 0 -2px 4%}}@media (width>=761px){.layout{height:calc(100vh - 258px);min-height:540px}.battlefield{height:100%;min-height:0}.command-panel{scrollbar-width:thin;scrollbar-color:var(--line) transparent;height:100%;padding-right:3px;overflow-y:auto}.arsenal{margin-bottom:12px}.tower-card strong{font-size:12px}.tower-card small{font-size:10px}.section-label,.muted{font-size:11px}.core-status p{font-size:10px}}@media (width>=761px) and (height<=900px){.layout{height:calc(100vh - 232px)}}.weapon[data-weapon=arc]{--weapon-color:#b66aff}.loading-panel{border:1px solid var(--brand);z-index:14;background:#172118f5;width:min(390px,90%);padding:20px;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 50px #0007}.loading-panel>div:first-child{justify-content:space-between;gap:15px;display:flex}.loading-panel progress{width:100%;height:6px;accent-color:var(--brand);margin:16px 0}.loading-panel b{color:var(--brand);font-family:var(--mono)}.loading-actions{flex-wrap:wrap;gap:8px;display:flex}.loading-panel button{border:1px solid var(--line);background:var(--raised);padding:8px 10px;font-size:11px}.loading-actions>button:last-child{background:var(--brand);color:var(--bg)}#asset-failures{max-height:130px;color:var(--muted);font-size:11px;overflow-y:auto}.asset-failure{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.settings-dialog label{align-items:center;gap:10px;margin:20px 0;font-size:12px;display:flex}.settings-dialog input[type=range]{min-width:50px;accent-color:var(--brand);flex:1}.settings-dialog output{font:11px var(--mono);min-width:30px}.settings-dialog input[type=checkbox]{accent-color:var(--brand)}.settings-dialog p{font-size:11px}.settings-dialog{width:min(430px,92%)}#hit-confirm{pointer-events:none;color:var(--brand);opacity:0;text-shadow:0 1px 5px #000;font-weight:700;position:absolute;top:46%;left:50%;transform:translate(-50%)}#hit-confirm.active{opacity:1}.reduced-motion *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.combat-tools{z-index:4;gap:6px;display:flex;position:absolute;top:16px;right:16px}.combat-tools button,.weapon-dock button{border:1px solid var(--line);background:#172118ee;border-radius:4px;min-height:40px;padding:9px 12px;font-size:12px}.combat-tools button[aria-pressed=true],.weapon-dock .selected{background:var(--brand);color:var(--bg)}.map-coordinates,.field-tag,.field-heading p{display:none}.field-heading{top:18px!important;left:20px!important}.field-heading h1{margin-top:8px!important;font-size:23px!important}.wave-info{top:101px!important;left:20px!important}#minimap{pointer-events:none;background:#101a13dd;border:1px solid #647253;width:132px;height:80px;position:absolute;top:68px;right:16px}#tutorial{border-left:2px solid var(--brand);z-index:3;background:#172118e8;align-items:center;gap:10px;max-width:min(410px,100% - 175px);padding:9px 11px;font-size:11px;display:flex;position:absolute;top:142px;left:20px}#tutorial button{white-space:nowrap;color:var(--brand);background:0 0;border:0;min-height:32px}.touch-controls,.weapon-dock,#compact-hud{display:none}#checkpoint-panel{z-index:18}#checkpoint-panel .outline-button{margin:15px auto 0;padding:10px;display:block}#settings-overlay{z-index:20}.settings-dialog{max-height:95%;overflow:auto}.settings-dialog select{background:var(--raised);color:var(--ink);border:1px solid var(--line);padding:8px}.field-bottom{pointer-events:none}.field-bottom button{pointer-events:auto}.vignette{pointer-events:none}.core-danger .battlefield{box-shadow:inset 0 0 40px #ff38264d}.core-danger #compact-hud{color:#ffa58b}#sprint{display:none}.weapon.selected{border-color:var(--brand)}@media (width<=1000px),(pointer:coarse){body{overscroll-behavior:none;overflow:hidden}#app{width:100%;height:100dvh}.topbar{height:58px!important;padding:0 10px!important}.brand-mark{width:30px!important;height:34px!important}.brand strong{font-size:20px!important}.brand small,.sector{display:none!important}.top-actions{gap:5px!important}.top-actions button{min-height:38px!important;padding:7px!important}.layout{height:calc(100dvh - 58px)!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important}.battlefield{border:0;border-radius:0;height:100%!important;min-height:0!important}.arsenal,.field-heading,.field-bottom,.map-coordinates{display:none!important}.wave-info{padding:8px!important;font-size:11px!important;top:10px!important;left:10px!important}.combat-tools{gap:5px;top:50px;left:10px;right:auto}.combat-tools button{min-height:38px;padding:7px 9px}#sprint{display:block}#compact-hud{font:12px var(--mono);color:var(--brand);display:block;position:absolute;top:18px;right:10px}#minimap{width:105px;height:64px;top:98px;right:10px}#tutorial{max-width:calc(100% - 130px);padding:6px 8px;font-size:10px;line-height:1.5;top:98px;left:10px}#tutorial button{padding:3px}.weapon-dock{bottom:max(10px, env(safe-area-inset-bottom));z-index:4;align-items:center;gap:5px;display:flex;position:absolute;left:10px;right:10px}.weapon-dock button{white-space:nowrap;flex:1;padding:9px 5px;font-size:11px}.weapon-dock span{width:42px;font:11px var(--mono);color:var(--brand)}.touch-controls{pointer-events:none;z-index:4;justify-content:space-between;display:flex;position:absolute;bottom:74px;left:18px;right:18px}.joystick{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#13211788;border:1px solid #a6b88d77;border-radius:50%;justify-content:center;align-items:center;width:104px;height:104px;display:flex;position:relative}.joystick i{pointer-events:none;background:#bace9b66;border:1px solid #d8f36a88;border-radius:50%;width:40px;height:40px}.joystick span{pointer-events:none;color:#dce4d0;font-size:10px;position:absolute;bottom:-20px}.joystick:active{border-color:var(--brand)}.wave-action{z-index:3;max-width:92%;bottom:202px!important}.wave-action .primary-button{padding:9px 20px}.wave-action>span{font-size:10px!important}.command-panel{border:1px solid var(--line);z-index:8;background:#141e16f5;width:min(295px,100% - 20px);display:none;position:absolute;top:146px;bottom:68px;left:10px;height:auto!important;padding:14px!important;overflow:auto!important}.build-open .command-panel{display:block}.command-panel .mission,.command-panel .core-status,.command-panel .resource-row,.command-panel .panel-bottom{display:none}.command-panel .section-title{margin-top:8px}.command-panel .tower-card{padding:10px}.command-panel .muted{font-size:10px}.build-open .touch-controls{visibility:hidden}#toast{z-index:12;max-width:90%;top:46%!important}.dialog{max-height:94%;overflow:auto}.overlay{padding:10px}.settings-dialog label{margin:12px 0}}@media (height<=520px) and (orientation:landscape){.topbar{height:44px!important}.layout{height:calc(100dvh - 44px)!important}.wave-info{top:5px!important}.combat-tools{top:5px;left:190px}#compact-hud{top:16px;right:10px}#minimap{width:99px;height:60px;top:57px}#tutorial{width:380px;max-width:calc(100% - 155px);top:51px}.touch-controls{bottom:65px;left:18px;right:18px}.joystick{width:78px;height:78px}.weapon-dock{bottom:10px;left:130px;right:130px}.wave-action{bottom:64px!important}.wave-action>span{display:none}.command-panel{width:300px;top:100px;bottom:55px}.field-heading{display:none!important}.settings-dialog{padding:14px!important}.settings-dialog h2{font-size:20px}.settings-dialog label{margin:8px 0}}.tower-detail label{margin:10px 0 6px;display:block}#tower-strategy{color:#edf4df;background:#17221a;border:1px solid #76855d;border-radius:4px;width:100%;min-height:44px;padding:8px;font-size:16px}.tower-detail #strategy-help,.tower-detail .upgrade-note{margin:8px 0;font-size:11px;line-height:1.6}.upgrade-preview{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.upgrade-preview th,.upgrade-preview td{text-align:right;border-bottom:1px solid #596447;padding:7px 3px}.upgrade-preview th:first-child{text-align:left}.upgrade-preview td:last-child{color:#d8f36a}#upgrade-budget{font-size:12px;line-height:1.6}.save-transfer{border:1px solid #61734d;min-width:0;margin:16px 0;padding:12px}.save-transfer p{font-size:12px;line-height:1.6}.save-transfer input{max-width:100%;min-height:44px;font-size:16px}.save-transfer input::file-selector-button{color:#edf4df;background:#20301f;border:1px solid #76855d;min-height:44px}.save-transfer button{color:#edf4df;background:#20301f;border:1px solid #76855d;min-height:44px;margin:4px 4px 4px 0;padding:8px}#close-settings{min-height:44px}#emp{min-width:64px}#tower-branch{color:#edf4df;background:#17221a;width:100%;min-height:44px;font-size:16px}.tower-detail button{min-height:44px}#map-choice,#change-map{max-width:100%;min-height:44px;font-size:16px}@media (width<=760px){.weapon-dock button{min-width:0;padding:9px 2px;font-size:10px}.weapon-dock span{width:30px;font-size:10px}}html,body,#app,#update-card,#cosmetics-overlay{touch-action:manipulation}html{-ms-touch-action:manipulation}html.browser-zoomed,.browser-zoomed .battlefield,.browser-zoomed #game,.browser-zoomed .joystick{touch-action:manipulation!important}#zoom-recovery{display:none}#reset-viewport{pointer-events:auto;color:#142127;background:#d8f36a;border:1px solid #d8f36a;min-height:44px;margin-left:8px;padding:8px 12px;font-size:16px}.browser-zoomed #zoom-recovery{top:var(--visible-top);left:var(--visible-left);width:var(--visible-width);box-sizing:border-box;z-index:100;color:#fff;text-align:center;pointer-events:none;background:#142127;margin:0;padding:8px;font-size:14px;display:block;position:fixed}.battlefield{touch-action:pan-x pan-y}button,a,select,input{touch-action:manipulation}#aim-stick i{color:#e8ff90;place-items:center;font-size:28px;font-style:normal;display:grid}#aim-stick.is-held{background:#37502c;outline:2px solid #d8f36a}#aim-stick.is-held i{color:#fff}@media (pointer:coarse){input,select,textarea{font-size:16px!important}}.site-credit{border-top:1px solid var(--line);color:#b7c1ad;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 14px;min-height:56px;padding:12px 20px;font-size:12px;line-height:1.5;display:flex}.site-credit a{color:var(--brand);text-underline-offset:3px;text-decoration:underline}.site-credit__heart{letter-spacing:normal;text-transform:none}#app-version{font-family:var(--mono)}#update-card{bottom:max(16px, env(safe-area-inset-bottom));z-index:100;color:#eff2e5;background:#172118;border:1px solid #d8f36a;border-radius:10px;width:min(420px,100vw - 28px);padding:18px;font-size:14px;line-height:1.5;position:fixed;right:16px;box-shadow:0 12px 48px #0009}#update-card strong{font-size:18px}#update-card p{margin:8px 0}#update-card small{color:#c3cdb8;display:block}.update-actions{gap:10px;margin-top:12px;display:flex}.update-actions button{border:1px solid var(--brand);background:0 0;border-radius:4px;min-height:44px;padding:10px 14px}#apply-update{background:var(--brand);color:#101713;font-weight:700}@media (width<=1000px),(pointer:coarse){#app{flex-direction:column;display:flex}.topbar{flex-shrink:0;gap:8px;padding-left:max(10px, env(safe-area-inset-left))!important;padding-right:max(10px, env(safe-area-inset-right))!important}.layout{flex:1;height:auto!important;min-height:0!important}.site-credit{min-height:48px;padding:4px max(10px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));flex-shrink:0;gap:0 8px;font-size:11px}.site-credit .credit-title{display:none}.site-credit a{align-items:center;min-height:34px;display:inline-flex}.top-actions button,.combat-tools button,.weapon-dock button{min-height:44px!important}.joystick span,#tutorial{font-size:12px}#tutorial{max-width:calc(100% - 135px)}.weapon-dock{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.wave-action .primary-button{min-height:44px}#update-card{right:14px;bottom:calc(70px + env(safe-area-inset-bottom))}}@media (width<=360px){.brand strong{font-size:17px!important}.brand{gap:5px}.top-actions{gap:2px!important}.top-actions button{padding:5px!important}.wave-info{gap:5px!important;font-size:10px!important}#compact-hud{font-size:11px;right:8px}}@media (height<=520px) and (orientation:landscape){.topbar{height:48px!important}.site-credit{min-height:30px;font-size:10px}.site-credit a{min-height:22px}#tutorial{max-width:calc(100% - 160px);font-size:11px;top:54px}.combat-tools{left:180px}.touch-controls{bottom:65px}}.music-credit a{color:var(--brand);text-underline-offset:3px}#music-status{min-height:2.8em;line-height:1.5}#enable-music,#retry-music{min-height:44px}.wave-action{grid-template-columns:auto auto;gap:8px;display:grid}.wave-action>span{grid-column:1/-1}#open-cosmetics{color:#dcf2fa;background:#14242bf2;border:1px solid #94bcc2;border-radius:3px;min-height:44px;padding:10px 16px}#cosmetics-overlay{z-index:80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040b10db;place-items:center;padding:20px;display:grid;position:fixed;inset:0}#cosmetics-overlay[hidden]{display:none}.cosmetic-dialog{color:#e3eef1;background:#142127;border:1px solid #46636b;border-radius:10px;flex-direction:column;width:min(960px,100%);max-height:calc(100dvh - 40px);display:flex;overflow:hidden;box-shadow:0 24px 80px #0008}.cosmetic-header{border-bottom:1px solid #35474d;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.cosmetic-header h2{margin:3px 0;font-size:24px}.cosmetic-header small{color:#a4c4cd;font:10px var(--mono);letter-spacing:2px}.cosmetic-dialog button{border-radius:4px;min-height:44px}.cosmetic-header button,.skin-targets button,#rotate-cosmetic,#retry-cosmetic,#reset-cosmetics{color:#e3eef1;background:#1c3038;border:1px solid #52717a;padding:10px 14px}.cosmetic-content{overscroll-behavior:contain;padding:22px 24px;overflow:auto}.skin-targets{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.skin-targets button[aria-pressed=true]{color:#162016;background:#d8f36a;border-color:#d8f36a}.cosmetic-columns{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:24px;display:grid}.cosmetic-preview-stage{background:radial-gradient(#29434d,#101c23);border:1px solid #334b55;border-radius:8px;place-items:center;min-height:240px;display:grid;overflow:hidden}#cosmetic-preview{object-fit:contain;width:100%;max-height:360px}#rotate-cosmetic{margin-top:10px}#cosmetic-name{margin:0 0 16px;font-size:21px;line-height:1.35}#skin-choices{gap:10px;display:grid}.skin-choice{text-align:left;color:#edf5f8;background:#182b32;border:1px solid #52656b;grid-template-columns:40px 1fr;gap:4px 10px;padding:16px;display:grid}.skin-choice[aria-pressed=true]{border-color:#d8f36a;box-shadow:inset 3px 0 #d8f36a}.skin-choice i{background:linear-gradient(125deg,#627349 50%,#d8f36a 50%);border:2px solid #ffffff40;border-radius:50%;grid-row:1/3;align-self:center;width:32px;height:32px}.skin-choice.polar i{background:linear-gradient(125deg,#b4cfde 50%,#233a46 50%)}.skin-choice small{color:#aac0c7;font-size:11px}#cosmetic-status{color:#c8dce2;min-height:4.5em;font-size:13px;line-height:1.6}#cosmetic-source{color:#b7d3de;overflow-wrap:anywhere;text-underline-offset:3px;font-size:11px}.cosmetic-actions{background:#142127;border-top:1px solid #35474d;justify-content:space-between;gap:12px;padding:16px 24px;display:flex}.cosmetic-dialog button:disabled{opacity:.45;cursor:wait}@media (width<=650px){#cosmetics-overlay{padding:10px}.cosmetic-dialog{max-height:calc(100dvh - 20px)}.cosmetic-header,.cosmetic-content,.cosmetic-actions{padding:14px}.cosmetic-header h2{font-size:21px}.cosmetic-columns{grid-template-columns:1fr;gap:18px}.cosmetic-preview-stage{min-height:150px}#cosmetic-preview{max-height:220px}.skin-targets{gap:5px}.skin-targets button{flex:1;padding:8px 6px;font-size:12px}.cosmetic-actions .primary-button{flex:1;min-width:0}#open-cosmetics{padding:9px}}@media (height<=520px) and (orientation:landscape){.cosmetic-header,.cosmetic-actions{padding:8px 16px}.cosmetic-columns{grid-template-columns:1fr 1fr}#cosmetic-preview{max-height:220px}}
