:root{
  color-scheme:dark;--ink:#0b141c;--panel:#15232e;--text:#fff4d8;--muted:#b3bfc1;
  --accent:#ffc250;--line:#ffffff29;--button-scale:1;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  font-synthesis:none
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--ink);color:var(--text);overflow:hidden}
button,select,input{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation}
button:disabled{cursor:not-allowed;opacity:.46}
button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
button,select{border:1px solid var(--line);border-radius:4px;background:#192731}
#app{position:fixed;inset:0;height:100dvh;overflow:hidden;isolation:isolate}
#field,#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
#field{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}
#scene:focus{outline:none}
#bar{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) 10px max(22px,env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#0c151ee8,#0c151e00)}
.brand,.bar-right{pointer-events:auto}
.brand{display:inline-flex;align-items:center;gap:9px;letter-spacing:.14em;font-size:12px;font-weight:850;color:#fef0d2}
.brand img{width:28px;height:28px}
.bar-right{display:flex;align-items:center;gap:6px}
.bar-right>button,.close,#pause{width:44px;min-height:44px;font-weight:800;background:#101d28e8;color:var(--text)}
#sound[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
#panels{position:absolute;z-index:2;inset:0;display:grid;align-items:center;overflow:auto;overscroll-behavior:contain;padding:74px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));touch-action:pan-y}
#panels:empty{display:none}
body[data-screen=menu] #panels{background:linear-gradient(90deg,#07111be8 0%,#08152094 46%,#101b2657 66%,#101a26be 100%)}
body:not([data-screen=menu]):not([data-screen=fight]) #panels{background:#0a131bc9;backdrop-filter:blur(4px)}
.menu-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.85fr);align-items:center;gap:clamp(24px,5vw,78px);width:min(1180px,100%);margin:auto}
.hero{padding:clamp(10px,2.8vw,46px) 0}
.eyebrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:750 .71rem/1.25 ui-monospace,monospace;letter-spacing:.14em;color:var(--accent)}
.eyebrow i{display:block;width:9px;height:9px;background:var(--accent);transform:rotate(45deg);box-shadow:0 0 12px #ffc25066}
.eyebrow span{color:var(--muted);border-left:1px solid #fff4;padding-left:8px}
.logo{color:#fff2cc;font:1000 clamp(72px,11.6vw,166px)/.77 Impact,"Arial Black","PingFang SC",sans-serif;letter-spacing:-.033em;transform:skew(-6deg);text-shadow:5px 6px 0 #10212e,8px 10px 0 #0008;margin:.14em 0 .16em}
.logo em{display:inline-block;color:var(--accent);font-style:normal}
:lang(zh-CN) .logo{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;line-height:.88;font-weight:1000;letter-spacing:.02em}
.lead{color:#e1e4d6;max-width:34ch;font-size:clamp(13px,1.3vw,17px);line-height:1.6}
.hero-cta{margin:23px 0 0;max-width:390px}
.primary,.secondary,.quiet,.seg{font-weight:800}
.primary{padding:12px 17px;min-height:46px;background:var(--accent);color:#13202a;border-color:var(--accent);box-shadow:0 4px 0 #080f16;transition:filter .13s,transform .13s}
.primary:hover:not(:disabled){filter:brightness(1.09)}
.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 #080f16}
.primary.big{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:56px;font-size:clamp(16px,2vw,23px)}
.primary.big span{font:850 25px system-ui}
.secondary{padding:10px 15px;min-height:43px;background:#253443;border-color:#ffffff38}
.secondary:hover,.seg:hover:not(:disabled){border-color:var(--accent)}
.hero-tools,.button-row,.backup-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.hero-tools .secondary{flex:0 1 auto;background:#142432df}
.quiet{background:none;border:0;text-decoration:underline;color:var(--muted);min-height:40px;padding:0 8px}
.resume-meta{font-size:.78rem;color:#f0dfb9;display:flex;align-items:center;justify-content:space-between}
.dispatch{position:relative;padding:20px;border:1px solid #b7c9d155;background:#0e1a24ee;box-shadow:0 22px 50px #0007;clip-path:polygon(0 0,calc(100% - 17px) 0,100% 17px,100% 100%,0 100%)}
.dispatch::before,.modal::before{content:"";display:block;position:absolute;top:0;left:0;width:132px;height:4px;background:repeating-linear-gradient(130deg,var(--accent) 0 7px,#15212b 7px 13px)}
.dispatch-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;gap:6px}
.dispatch h2{font-size:1.15rem;line-height:1.15}
.coins{display:inline-block;color:#ffdc73;font:850 .92rem ui-monospace,monospace;white-space:nowrap}
.maps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.map-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;gap:4px;padding:12px;min-height:90px;background:linear-gradient(143deg,#2d4658,#152531);color:#fff1d7;font-weight:850}
.map-tile.map-sorting{background:linear-gradient(143deg,#414270,#201e3b)}
.map-tile.map-magnetic{background:linear-gradient(143deg,#305a55,#132c2b)}
.map-tile.map-smelter{background:linear-gradient(143deg,#67484f,#351f2c)}
.map-tile[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}
.map-tile small{color:#d6d9d6;font-size:.67rem;line-height:1.25;font-weight:600}
.map-num{position:absolute;top:4px;right:7px;font:950 28px/1 ui-monospace,monospace;color:#fff3;pointer-events:none}
.section-line,.loadout-line,.dispatch-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:13px;font-size:.82rem;color:#e4e1cf}
.section-line>span,.loadout-line>span{font-weight:750}
.seg-group{display:flex;gap:4px}
.seg{padding:7px 10px;min-height:37px;line-height:1.2;color:#e9e9de;background:#202d3b}
.seg[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.fine{font-size:.75rem;color:var(--muted);line-height:1.45;margin-top:7px}
.loadout-line select, .setting select{max-width:75%;padding:8px 9px;min-height:40px}
.dispatch-foot{border-top:1px solid var(--line);padding-top:11px;color:var(--muted);font-size:.72rem}
.modal{position:relative;width:min(550px,100%);margin:auto;background:#14232e;border:1px solid #91a6b16b;box-shadow:0 25px 65px #000b;border-radius:4px}
.modal.wide{width:min(800px,100%)}
.modal.compact{width:min(440px,100%)}
.modal>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.modal>header h2{font-size:clamp(18px,4vw,24px)}
.modal-body{padding:19px}
.modal-body h2{font-size:clamp(28px,5vw,48px);line-height:1.03;margin:9px 0 16px}
.modal-body h3{font-size:1rem;margin:12px 0 7px;color:#ffeecc}
.modal-body p{color:#d6dcd7;line-height:1.58;font-size:.9rem}
.modal-body>.primary{margin-top:14px}
.shop-head,.setting{display:flex;align-items:center;justify-content:space-between;gap:12px}
.shop-head{margin-bottom:10px;font-weight:800}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:8px}
.shop-card{position:relative;padding:12px;background:#1d2e3c;border:1px solid var(--line);border-radius:4px}
.shop-card h3{margin:0 0 5px;padding-right:18px}
.shop-card p{font-size:.78rem;min-height:2.5em}
.shop-card small{display:block;color:#b5c5cc;font-size:.7rem;margin:5px 0}
.shop-card div,.shop-card button{margin-top:5px}
.serial{position:absolute;right:7px;top:8px;font:750 10px ui-monospace,monospace;color:#b7c9d3}
.setting{border-bottom:1px solid var(--line);min-height:49px;padding:6px 0;font-size:.87rem}
.setting input{accent-color:var(--accent);max-width:43%}
.setting input[type=checkbox]{width:19px;height:19px}
.record-wrap{overflow:auto}
table{border-collapse:collapse;width:100%;font-size:.82rem}
th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px}
td small{display:block;font-size:.68rem;color:#b8c6ce}
.upgrades{display:grid;gap:8px;margin-top:11px}
.upgrade{position:relative;text-align:left;display:flex;flex-direction:column;gap:4px;min-height:56px;padding:11px 34px 11px 13px;background:#283947;border-left:4px solid var(--accent);color:#ffefcf}
.upgrade:hover{background:#344e5e}
.upgrade small{font-size:.76rem;color:#e0e2cf;line-height:1.3}
.upgrade i{position:absolute;right:13px;top:15px;font-style:normal;color:var(--accent)}
.supply-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 13px}
.supply-summary span{font:760 .82rem ui-monospace,monospace;background:#263747;padding:8px 10px;color:#ffd68a;border-radius:3px}
#hud{position:absolute;inset:0;pointer-events:none;font-weight:800;text-shadow:0 1px 3px #000,0 2px 6px #000}
.hud-top{display:grid;grid-template-columns:1fr auto 44px;align-items:start;gap:8px;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}
.vitals{position:relative;width:min(170px,100%);height:40px;background:#111b26e5;border:1px solid #e6e2bd48;border-radius:4px;overflow:hidden;padding:6px 8px;font:800 12px ui-monospace,monospace}
.vitals i{position:absolute;bottom:0;left:0;height:4px;background:#78f2b9}
#armour{color:#9fe6fd;margin-left:5px}
#wave{padding:9px 8px;border:1px solid #fff4;border-radius:4px;background:#111b26e3;text-align:center;white-space:nowrap;font:850 12px/1.3 ui-monospace,monospace}
#pause{pointer-events:auto;margin-left:auto;background:#121e2aeb;min-height:39px;font-size:19px}
#boss{max-width:min(450px,82%);margin:8px auto;text-align:center;font-size:.78rem;color:#fff0c5;letter-spacing:.06em}
#boss>div{height:7px;overflow:hidden;background:#2d1518;border:1px solid #fff5;border-radius:3px;margin-top:5px}
#boss-health{display:block;height:100%;background:linear-gradient(90deg,#f5575d,#ff9d49)}
#reticle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:29px;height:29px}
#reticle i{position:absolute;background:#fff8cf;box-shadow:0 1px 2px #070c13;border-radius:2px}
#reticle i:nth-child(1){width:2px;height:7px;left:calc(50% - 1px);top:0}
#reticle i:nth-child(2){width:2px;height:7px;left:calc(50% - 1px);bottom:0}
#reticle i:nth-child(3){height:2px;width:7px;top:calc(50% - 1px);left:0}
#reticle i:nth-child(4){height:2px;width:7px;top:calc(50% - 1px);right:0}
#reticle.hit{transform:translate(-50%,-50%) rotate(45deg)}
#reticle.hit i{background:#ffc250}
#hit-edge{position:absolute;inset:0;box-shadow:inset 0 0 75px 19px #ff492d;opacity:0}
#threat{position:absolute;left:50%;top:50%;height:16px;width:16px;margin-top:-8px;margin-left:-8px;transform:rotate(var(--threat-angle));color:#ff9a3d;font:900 13px system-ui;text-align:center;text-shadow:0 1px 5px #000;filter:drop-shadow(0 0 2px #351b06)}
#notice{position:absolute;top:24%;left:50%;transform:translateX(-50%);text-align:center;font-size:clamp(.72rem,2.7vw,.93rem);border-radius:4px;padding:7px 9px;background:#10202ce0;border:1px solid #ffffff2d;color:#ffe6ad;max-width:85%;min-width:175px}
#weapon-hud{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));background:#111e29e8;border:1px solid #fff4;border-radius:4px;padding:8px 12px;text-align:right}
#weapon-hud b{display:block;font:850 24px ui-monospace,monospace;color:var(--accent)}
#weapon-hud small{display:block;color:#eee2c9}
#gun-name{font-size:.78rem}
#touch{position:absolute;inset:0;pointer-events:none;--touch-size:calc(clamp(70px,19vw,103px)*var(--button-scale));--small-size:calc(clamp(44px,10vw,57px)*var(--button-scale))}
#touch .movement,#touch .attack{position:absolute;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;gap:8px;bottom:max(13px,env(safe-area-inset-bottom))}
#touch .movement{left:max(13px,env(safe-area-inset-left))}
#touch .attack{right:max(13px,env(safe-area-inset-right))}
#touch .attack>div{display:flex;gap:5px}
#touch button,#stick{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;background:#152533b8;border:1px solid #fff7;color:#fff1d2;box-shadow:0 1px 3px #0008}
#touch button{min-width:var(--small-size);min-height:var(--small-size);padding:4px 7px;font-size:clamp(11px,2.75vw,14px);font-weight:850}
#touch button:active{background:#34465de5}
#touch #fire,#stick{width:var(--touch-size);height:var(--touch-size);border-radius:50%;display:grid;place-items:center}
#stick{position:relative}
#stick::before{content:"";position:absolute;inset:13%;border:1px dashed #fffa;border-radius:50%;pointer-events:none}
#stick i{pointer-events:none;width:42%;height:42%;border:2px solid #e4f6e7bc;border-radius:50%;background:#7fb4babc;transform:translate(var(--jx,0),var(--jy,0))}
#touch #fire{width:calc(var(--touch-size)*.87);height:calc(var(--touch-size)*.87);background:#68391ac2;border:2px solid #ffcb78da;color:#ffe4af}
#fire svg{width:49%;fill:none;stroke:currentColor;stroke-width:2.3;pointer-events:none}
#touch #dash.cooling{color:#acc3ce}
.touch-device #weapon-hud{right:max(13px,env(safe-area-inset-right));bottom:calc(max(13px,env(safe-area-inset-bottom)) + clamp(139px,37vw,198px)*var(--button-scale));background:#111b259f;padding:5px 8px}
.touch-device #weapon-hud b{display:none}
.touch-device #weapon-hud small:empty{display:none}
.lefty #touch .movement{left:auto;right:max(13px,env(safe-area-inset-right))}
.lefty #touch .attack{right:auto;left:max(13px,env(safe-area-inset-left))}
#toast{position:absolute;z-index:9;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:90%;width:max-content;background:#101c27;border:1px solid var(--accent);padding:10px 13px;border-radius:4px;color:#fff0c7;text-align:center;font-size:.85rem}
#orientation,#loading{position:absolute;inset:0;z-index:12;display:grid;place-content:center;text-align:center;padding:24px;background:#101d29;color:#fff1d1;line-height:1.6}
#orientation p{max-width:28ch}
#loading strong{font-size:1.3rem;color:var(--accent)}
#game-seo-info{margin:0;position:relative;inset:auto;z-index:7}
#game-seo-info summary{min-width:44px;height:44px;display:grid;place-items:center}
#game-seo-info[open]{position:fixed;top:max(12px,env(safe-area-inset-top));right:12px;left:auto;width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto}
@media(max-width:760px){
  #bar{padding-inline:12px}
  #panels{padding:70px 12px max(14px,env(safe-area-inset-bottom))}
  .menu-layout{grid-template-columns:1fr;gap:15px;max-width:510px;align-content:start}
  body[data-screen=menu] #panels{background:linear-gradient(#0b172179 0,#0a1721c7 51%,#081521f0 100%)}
  .hero{padding:5px 4px 0}
  .hero-cta{margin-top:13px}
  .logo{font-size:clamp(68px,18vw,118px);margin:.12em 0 .15em}
  .lead{font-size:.83rem;line-height:1.42;max-width:39ch}
  .dispatch{padding:13px}
  .dispatch-top{margin-bottom:8px}
  .map-tile{min-height:61px;padding:7px 9px;font-size:.88rem}
  .map-tile small{font-size:.63rem}
  .map-num{font-size:22px}
  .primary.big{min-height:48px}
  .hero-tools{margin-top:8px}
  .section-line,.loadout-line,.dispatch-foot{margin-top:9px}
  .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-card h3{font-size:.87rem}
  .modal-body{padding:14px}
  .hud-top{gap:5px;grid-template-columns:minmax(0,1fr) auto 42px}
  #wave,.vitals{font-size:clamp(9px,2.8vw,12px)}
}
@media(max-height:620px) and (min-width:761px){
  .logo{font-size:clamp(74px,12vh,120px)}
  .hero{padding:0}
  .map-tile{min-height:61px}
  #panels{padding-top:64px}
}
@media(max-width:350px){
  .logo{font-size:62px}
  .seg{padding-inline:6px;font-size:.77rem}
  .eyebrow{font-size:.59rem}
  .shop-grid{grid-template-columns:1fr}
}

.lefty.touch-device #weapon-hud{right:auto;left:max(13px,env(safe-area-inset-left));text-align:left}

#sound svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;vertical-align:middle}
