@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap";:root{color-scheme:dark;--ink: #0d0f0d;--ink-2: #141713;--ink-3: #1c201a;--line: rgba(225, 237, 216, .17);--line-strong: rgba(225, 237, 216, .34);--text: #f0f3eb;--muted: #9ba394;--signal: #c9f263;--signal-dark: #283415;--warning: #ffad42;--danger: #ed5d4a;--cool: #65b8c5;--panel: rgba(13, 15, 13, .88);--sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display: "Barlow Condensed", "Arial Narrow", sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--ink);color:var(--text);font-family:var(--sans);letter-spacing:0}body{overscroll-behavior:none;touch-action:none}button,input,select{color:inherit;font:inherit;letter-spacing:0}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--signal);outline-offset:3px}[hidden]{display:none!important}#app{position:relative;width:100%;height:100%;min-width:320px;overflow:hidden;isolation:isolate;background:var(--ink)}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-3}#app[data-state=menu] #game-canvas{filter:saturate(.8) brightness(.57)}.scene-vignette{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,#080a08f2,#080a08b3 38%,#080a0814 68%,#080a0880),linear-gradient(0deg,rgba(6,8,6,.9) 0%,transparent 34%)}#app[data-state=playing] .scene-vignette{opacity:.34;background:linear-gradient(0deg,rgba(5,7,5,.72),transparent 22%,transparent 80%,rgba(5,7,5,.62))}.topbar{position:absolute;z-index:20;top:0;left:0;right:0;height:76px;padding:max(14px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) 12px max(22px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0a0c0ab3;backdrop-filter:blur(16px)}#app[data-state=playing] .topbar{display:none}.brand,.device-chip{border:0;background:transparent;display:flex;align-items:center;gap:11px;padding:0;text-align:left}.brand-mark{position:relative;width:42px;height:42px;display:grid;place-items:center;color:var(--ink);background:var(--signal);clip-path:polygon(0 0,76% 0,100% 24%,100% 100%,24% 100%,0 76%);font:700 24px/1 var(--display)}.brand-mark i{position:absolute;width:8px;height:8px;right:2px;top:2px;border:2px solid var(--ink)}.brand strong,.brand small,.device-chip strong,.device-chip small{display:block}.brand strong{font:700 20px/.9 var(--display)}.brand small{margin-top:5px;color:var(--muted);font:500 10px/1 var(--sans)}.top-actions{display:flex;align-items:center;gap:12px}.connection-status{min-height:34px;padding:0 12px;display:flex;align-items:center;gap:8px;color:var(--muted);border:1px solid var(--line);font:500 11px/1 var(--sans);text-transform:uppercase}.connection-status i,.lobby-status i,.team-dot{width:7px;height:7px;flex:0 0 auto;background:var(--muted);border-radius:50%}.connection-status[data-state=online] i,.lobby-status.is-online i,.team-dot{background:var(--signal);box-shadow:0 0 12px #c9f263bf}.connection-status[data-state=connecting] i,.lobby-status.is-busy i{background:var(--warning);animation:pulse 1s ease-in-out infinite}.icon-button{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);background:#131612cc}.icon-button:hover{color:var(--signal);border-color:var(--line-strong);background:var(--ink-3)}.icon-button svg,.server-note svg,.lobby-footer svg,.plain-action svg{width:17px;height:17px}.device-chip{min-width:146px;border-left:1px solid var(--line);padding-left:12px}.device-avatar{width:36px;height:36px;display:grid;place-items:center;color:var(--signal);border:1px solid var(--line-strong);font:600 13px/1 var(--display)}.device-chip small{color:var(--muted);font-size:9px;text-transform:uppercase}.device-chip strong{max-width:130px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 12px/1 var(--sans)}.menu-screen{position:absolute;inset:76px 0 0;z-index:4;display:grid;grid-template-columns:minmax(480px,780px) 280px;justify-content:space-between;gap:48px;padding:clamp(28px,5vh,64px) clamp(22px,5vw,84px) clamp(24px,5vh,56px)}#app[data-state=playing] .menu-screen{display:none}.menu-main{width:min(100%,710px);align-self:center}.eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 8px;color:var(--signal);font:600 10px/1 var(--sans)}.eyebrow span{width:24px;height:2px;background:var(--signal)}.menu-main h1{margin:0;font:700 clamp(62px,8vw,116px)/.76 var(--display);text-transform:uppercase}.menu-main h1 em{color:var(--signal);font-style:normal}.title-cn{margin:12px 0 28px;color:var(--muted);font:600 17px/1 var(--sans);letter-spacing:0}.mode-switch{width:min(100%,540px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:#0c0e0cb8}.mode-option{position:relative;min-height:62px;padding:10px 16px;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--muted);text-align:left}.mode-option+.mode-option{border-left:1px solid var(--line)}.mode-option.is-active{color:var(--text);background:var(--signal-dark)}.mode-option.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--signal)}.mode-option svg{width:20px;height:20px;color:var(--signal)}.mode-option strong,.mode-option small{display:block}.mode-option strong{font:600 13px/1.1 var(--sans)}.mode-option small{margin-top:4px;color:var(--muted);font:500 9px/1 var(--sans)}.mission-block{margin-top:26px}.mission-heading{margin-bottom:9px;display:flex;justify-content:space-between;color:var(--muted);font:600 10px/1 var(--sans);text-transform:uppercase}.level-track{display:grid;grid-template-columns:repeat(10,minmax(34px,1fr));gap:4px}.level-button{position:relative;height:44px;padding:0;border:1px solid var(--line);color:var(--muted);background:#0e110ebd;font:600 13px/1 var(--display)}.level-button:hover,.level-button.is-active{color:var(--ink);border-color:var(--signal);background:var(--signal)}.level-button.is-cleared:before{content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;background:var(--signal);border-radius:50%}.level-button.is-active.is-cleared:before{background:var(--ink)}.level-button.is-locked{opacity:.45}.mission-detail{min-height:112px;margin-top:10px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:3px solid var(--signal);background:#0d100dc2;backdrop-filter:blur(10px)}.mission-index{margin:0 0 4px;color:var(--signal);font:600 9px/1 var(--sans)}.mission-detail h2{margin:0;font:600 27px/1 var(--display)}.mission-detail>div>p:last-child{max-width:340px;margin:7px 0 0;color:var(--muted);font-size:12px}.mission-detail dl,.result-stats{margin:0;display:grid;grid-template-columns:repeat(3,minmax(62px,1fr));gap:1px;background:var(--line)}.mission-detail dl div{min-width:72px;padding:10px 12px;background:var(--ink-2)}.mission-detail dt,.mission-detail dd,.result-stats dt,.result-stats dd{margin:0}.mission-detail dt{color:var(--muted);font:500 9px/1 var(--sans)}.mission-detail dd{margin-top:7px;font:600 14px/1 var(--display)}.launch-row{margin-top:18px;display:flex;gap:10px}.primary-action,.secondary-action,.plain-action{min-height:54px;border:0;display:flex;align-items:center}.primary-action{min-width:260px;padding:0 18px;gap:14px;justify-content:space-between;color:var(--ink);background:var(--signal);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%)}.primary-action:hover{background:#defb97}.primary-action svg{width:18px;height:18px}.primary-action span{flex:1;text-align:left}.primary-action strong,.primary-action small{display:block}.primary-action strong{font:700 14px/1 var(--sans)}.primary-action small{margin-top:4px;font:600 9px/1 var(--sans);opacity:.62}.primary-action.compact{min-width:0;width:100%}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;filter:grayscale(.72);opacity:.42}.secondary-action,.plain-action{padding:0 18px;gap:10px;color:var(--text);border:1px solid var(--line);background:#101310cc;font-weight:600;font-size:12px}.secondary-action:hover,.plain-action:hover{color:var(--signal);border-color:var(--line-strong);background:var(--ink-3)}.menu-side{width:280px;align-self:center;border-top:2px solid var(--line-strong);background:#0b0d0bbd;backdrop-filter:blur(12px)}.side-label{padding:13px 14px 10px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font:600 9px/1 var(--sans)}.side-label button{padding:0;border:0;color:var(--signal);background:transparent;font-size:10px}.mini-board,.full-board{padding:0;margin:0;list-style:none}.mini-board li{min-height:48px;padding:0 14px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;border-top:1px solid var(--line);font-size:11px}.mini-board .rank{color:var(--signal);font:600 11px/1 var(--display)}.mini-board .pilot{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.mini-board strong{font:600 12px/1 var(--display)}.sector-visual{position:relative;height:190px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background-image:linear-gradient(rgba(201,242,99,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(201,242,99,.05) 1px,transparent 1px);background-size:24px 24px}.sector-visual:before,.sector-visual:after{content:"";position:absolute;background:#c9f26324}.sector-visual:before{width:1px;top:0;bottom:0;left:50%}.sector-visual:after{height:1px;left:0;right:0;top:50%}.radar-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(201,242,99,.24);border-radius:50%;transform:translate(-50%,-50%)}.ring-a{width:142px;height:142px}.ring-b{width:82px;height:82px}.radar-sweep{position:absolute;left:50%;top:50%;width:65px;height:1px;transform-origin:0 50%;background:var(--signal);box-shadow:0 0 12px #c9f2638c;animation:radar 5s linear infinite}.blip{position:absolute;width:6px;height:6px;background:var(--warning);border-radius:50%;box-shadow:0 0 10px var(--warning)}.blip-a{left:38%;top:30%}.blip-b{right:29%;bottom:34%}.sector-visual p{position:absolute;left:12px;bottom:10px;margin:0;color:var(--muted);font:500 8px/1.4 var(--sans)}.sector-visual strong{color:var(--signal);font:600 17px/1 var(--display)}.server-note{padding:13px 14px;display:flex;align-items:center;gap:10px}.server-note svg{color:var(--cool)}.server-note strong,.server-note small{display:block}.server-note strong{font:600 9px/1 var(--sans)}.server-note small{margin-top:4px;color:var(--muted);font-size:9px}.hud,.mobile-controls{display:none}#app[data-state=playing] .hud{position:absolute;inset:0;z-index:10;display:block;pointer-events:none}.hud-left{position:absolute;top:max(18px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));width:290px}.hud-id{display:flex;align-items:center;gap:10px;margin-bottom:10px;font:600 12px/1 var(--sans)}.hud-id span{padding:5px 8px;color:var(--ink);background:var(--signal);font:700 11px/1 var(--display)}.status-bars{padding:10px 12px;border-left:2px solid var(--signal);background:#0a0c0ab3}.bar{height:16px;display:grid;grid-template-columns:36px 1fr 28px;align-items:center;gap:8px;font-size:8px;color:var(--muted)}.bar+.bar{margin-top:4px}.bar>div{height:5px;background:#f0f3eb26;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:var(--signal);transform-origin:left center}.bar.armor i{width:50%;background:var(--cool)}.bar b{color:var(--text);text-align:right;font:600 10px/1 var(--display)}.hud-objective{position:absolute;top:max(18px,env(safe-area-inset-top));left:50%;min-width:270px;padding:9px 18px 10px;border-top:1px solid var(--signal);text-align:center;background:#0a0c0a9e;transform:translate(-50%)}.hud-objective small,.hud-objective strong,.hud-objective span{display:block}.hud-objective small{color:var(--signal);font:600 8px/1 var(--sans)}.hud-objective strong{margin-top:5px;font:600 13px/1 var(--sans)}.hud-objective span{margin-top:4px;color:var(--muted);font:600 9px/1 var(--display)}.hud-right{position:absolute;top:max(18px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));display:flex;align-items:center;gap:1px;background:var(--line);pointer-events:auto}.hud-right>div{min-width:84px;height:44px;padding:8px 10px;background:#0a0c0ab8}.hud-right small,.hud-right strong{display:block}.hud-right small{color:var(--muted);font:500 7px/1 var(--sans)}.hud-right strong{margin-top:5px;font:600 12px/1 var(--display)}.hud-right .icon-button{width:44px;height:44px;border:0}.crosshair{position:absolute;left:50%;top:50%;width:48px;height:48px;transform:translate(-50%,-50%)}.scope-overlay{position:absolute;inset:0;display:none;background:radial-gradient(circle at center,transparent 0 27%,rgba(0,0,0,.92) 27.5% 100%);pointer-events:none}.scope-overlay.is-active{display:block}.scope-overlay i,.scope-overlay b{position:absolute;left:50%;top:50%;display:block;background:#e1f1eb8f;transform:translate(-50%,-50%)}.scope-overlay i{width:54%;height:1px}.scope-overlay b{width:1px;height:54%}.scope-overlay span{position:absolute;left:50%;top:50%;width:min(54vw,54vh);aspect-ratio:1;border:1px solid rgba(225,241,235,.34);border-radius:50%;transform:translate(-50%,-50%)}#app.is-aiming .crosshair{transform:translate(-50%,-50%) scale(.72)}.crosshair i,.crosshair b{position:absolute;display:block;background:#f0f3ebe6;box-shadow:0 0 2px var(--ink)}.crosshair i:nth-child(1),.crosshair i:nth-child(4){width:8px;height:1px;top:24px}.crosshair i:nth-child(1){left:3px}.crosshair i:nth-child(4){right:3px}.crosshair i:nth-child(2),.crosshair i:nth-child(5){width:1px;height:8px;left:24px}.crosshair i:nth-child(2){top:3px}.crosshair i:nth-child(5){bottom:3px}.crosshair b{width:3px;height:3px;left:23px;top:23px;background:var(--signal);border-radius:50%}.hit-marker{position:absolute;left:50%;top:50%;width:34px;height:34px;opacity:0;transform:translate(-50%,-50%) rotate(45deg)}.hit-marker.is-visible{animation:hit .18s ease-out}.hit-marker i{position:absolute;width:8px;height:2px;background:var(--signal)}.hit-marker i:nth-child(1){left:0;top:0}.hit-marker i:nth-child(2){right:0;top:0}.hit-marker i:nth-child(3){left:0;bottom:0}.hit-marker i:nth-child(4){right:0;bottom:0}.damage-indicator{position:absolute;inset:0;border:0 solid rgba(237,93,74,0);transition:border-width .12s,border-color .18s}.damage-indicator.is-visible{border-width:15px;border-color:#ed5d4a73}.ammo-panel{position:absolute;right:max(26px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px;padding:12px 14px 10px 18px;border-right:3px solid var(--signal);background:#0a0c0ab8}.ammo-panel small,.ammo-panel strong{display:block}.ammo-panel small{color:var(--muted);text-align:right;font:500 8px/1 var(--sans)}.ammo-panel strong{margin-top:4px;font:600 30px/.9 var(--display)}.ammo-panel strong em{margin:0 5px;color:var(--muted);font-style:normal;font-size:15px}.ammo-panel strong b{color:var(--muted);font-size:16px}.ammo-panel>svg{width:24px;height:24px;color:var(--signal)}.team-panel{position:absolute;left:max(22px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;padding:10px 13px;background:#0a0c0ab8}.team-panel small,.team-panel strong{display:block}.team-panel small{color:var(--muted);font:500 7px/1 var(--sans)}.team-panel strong{margin-top:4px;font:600 10px/1 var(--sans)}.duel-panel{position:absolute;left:50%;top:max(84px,calc(env(safe-area-inset-top) + 66px));width:min(280px,44vw);padding:8px 12px;text-align:center;background:#0a0c0ac7;border-bottom:2px solid #ff535f;transform:translate(-50%)}.duel-panel small,.duel-panel strong,.duel-panel span{display:block}.duel-panel small{color:#ff8b93;font:600 7px/1 var(--sans)}.duel-panel strong{margin-top:3px;font:600 11px/1 var(--sans)}.duel-panel>div{height:5px;margin-top:6px;overflow:hidden;background:#f0f3eb29}.duel-panel i{display:block;width:100%;height:100%;background:#ff535f;transition:width 80ms linear}.duel-panel span{margin-top:4px;color:var(--muted);font:600 8px/1 var(--display)}.fullscreen-button{display:none}.modal-backdrop{position:absolute;inset:0;z-index:100;display:grid;place-items:center;padding:22px;background:#050705b8;backdrop-filter:blur(12px)}.modal-panel{width:min(100%,500px);max-height:min(760px,calc(100vh - 44px));overflow-y:auto;border:1px solid var(--line-strong);border-top:3px solid var(--signal);background:#121511;box-shadow:0 24px 70px #0000007a}.modal-panel>header{min-height:78px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-panel header small,.modal-panel header h2{display:block;margin:0}.modal-panel header small{color:var(--signal);font:600 8px/1 var(--sans)}.modal-panel header h2{margin-top:6px;font:600 27px/1 var(--display)}.modal-tabs{display:grid;grid-template-columns:repeat(2,1fr);border-bottom:1px solid var(--line)}.modal-tabs button{position:relative;min-height:46px;border:0;color:var(--muted);background:transparent;font-size:12px;font-weight:600}.modal-tabs button+button{border-left:1px solid var(--line)}.modal-tabs button.is-active{color:var(--text);background:var(--signal-dark)}.modal-tabs button.is-active:after{content:"";position:absolute;left:22%;right:22%;bottom:-1px;height:2px;background:var(--signal)}.lobby-server-status{min-height:58px;padding:10px 14px 10px 18px;display:grid;grid-template-columns:20px minmax(0,1fr) 36px;align-items:center;gap:10px;border-bottom:1px solid var(--line);background:#ffffff05}.lobby-server-status>svg{width:18px;height:18px;color:var(--warning)}.lobby-server-status span{min-width:0}.lobby-server-status strong,.lobby-server-status small{display:block;overflow-wrap:anywhere}.lobby-server-status strong{font:600 10px/1.2 var(--sans)}.lobby-server-status small{margin-top:4px;color:var(--muted);font:500 9px/1.3 var(--sans)}.lobby-server-status[data-state=online]>svg{color:var(--signal)}.lobby-server-status[data-state=unavailable]>svg{color:var(--danger)}.lobby-server-status[data-state=checking]>svg{animation:pulse 1s ease-in-out infinite}.lobby-view{padding:24px}.room-code-block{position:relative;min-height:98px;padding:18px 62px 16px 18px;border:1px solid var(--line);background-image:linear-gradient(90deg,rgba(201,242,99,.05) 1px,transparent 1px);background-size:12px 100%}.room-code-block small,.room-code-block strong{display:block}.room-code-block small{color:var(--muted);font:500 8px/1 var(--sans)}.room-code-block strong{margin-top:9px;font:600 40px/1 var(--display)}.room-code-block .icon-button{position:absolute;right:16px;top:29px}.lobby-status{min-height:42px;margin:14px 0;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.lobby-status.is-error i{background:var(--danger);box-shadow:0 0 10px #ff5c506b}.lobby-view label{display:block;margin-bottom:8px;color:var(--muted);font:500 10px/1 var(--sans)}.lobby-view input{width:100%;height:62px;padding:0 16px;border:1px solid var(--line-strong);outline:0;color:var(--signal);background:var(--ink);text-align:center;text-transform:uppercase;font:600 28px/1 var(--display)}.lobby-view input:focus{border-color:var(--signal)}.lobby-view input:disabled{cursor:not-allowed;opacity:.42}.lobby-footer{padding:12px 18px;display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);color:var(--muted);font:500 8px/1 var(--sans)}.lobby-footer span{display:flex;align-items:center;gap:6px}.board-panel{width:min(100%,720px)}.board-filters{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.board-filters .modal-tabs{width:220px;border:1px solid var(--line)}.board-filters label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.board-filters select{min-width:110px;height:36px;padding:0 28px 0 10px;border:1px solid var(--line);background:var(--ink-2);font-size:11px}.board-head,.full-board li{display:grid;grid-template-columns:56px minmax(120px,1fr) 100px 100px;align-items:center;gap:12px}.board-head{padding:11px 18px;color:var(--muted);font:500 8px/1 var(--sans)}.full-board{min-height:260px;max-height:min(430px,52vh);overflow-y:auto}.full-board li{min-height:49px;padding:0 18px;border-top:1px solid var(--line);font-size:11px}.full-board li>span:first-child{color:var(--signal);font:600 13px/1 var(--display)}.full-board li>span:nth-child(3),.full-board li>strong{text-align:right;font-family:var(--display)}.full-board .board-empty{display:grid;place-items:center;min-height:250px;color:var(--muted)}.my-ranking{min-height:48px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--signal);background:var(--signal-dark);font-size:10px}.pause-panel{width:min(100%,340px);padding:28px;text-align:center}.pause-panel>small{color:var(--signal);font:600 8px/1 var(--sans)}.pause-panel>h2{margin:8px 0 24px;font:600 34px/1 var(--display)}.pause-panel .plain-action{width:100%;margin-top:9px;justify-content:center}.pause-panel .danger{color:var(--danger)}.result-backdrop{background:#050705db}.result-panel{width:min(100%,600px);padding:clamp(24px,5vw,54px);border-top:3px solid var(--signal);background:#121511}.result-panel h2{margin:6px 0 8px;font:700 clamp(40px,7vw,72px)/.9 var(--display)}.result-panel>p:nth-of-type(2){margin:0;color:var(--muted);font-size:11px}.result-score{margin:28px 0 14px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-score small,.result-score strong{display:block}.result-score small{color:var(--muted);font:500 8px/1 var(--sans)}.result-score strong{margin-top:8px;color:var(--signal);font:600 52px/.9 var(--display)}.result-stats{grid-template-columns:repeat(4,1fr)}.result-stats div{padding:12px;background:var(--ink-2)}.result-stats dt{color:var(--muted);font-size:9px}.result-stats dd{margin-top:7px;font:600 15px/1 var(--display)}.submit-state{min-height:20px;margin:18px 0;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.submit-state svg{width:14px;height:14px}.submit-state.is-loading svg{animation:spin 1s linear infinite}.submit-state.is-success{color:var(--signal)}.submit-state.is-error{color:var(--warning)}.result-actions{display:flex;gap:10px}.toast{position:absolute;z-index:300;left:50%;bottom:max(28px,env(safe-area-inset-bottom));max-width:min(90vw,460px);padding:11px 16px;opacity:0;pointer-events:none;color:var(--text);border-left:3px solid var(--signal);background:#0b0d0bf0;font-size:11px;transform:translate(-50%,12px);transition:opacity .18s,transform .18s}.toast.is-visible{opacity:1;transform:translate(-50%)}.toast.is-error{border-left-color:var(--danger)}.rotate-device{display:none}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 7px);width:max-content;max-width:180px;padding:6px 8px;opacity:0;pointer-events:none;color:var(--text);border:1px solid var(--line);background:var(--ink-2);font-size:9px;transform:translate(-50%) translateY(-2px);transition:.13s ease}[data-tooltip]:hover:after{opacity:1;transform:translate(-50%) translateY(0)}@keyframes radar{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@keyframes hit{0%{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(1.4)}45%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1100px){.menu-screen{grid-template-columns:minmax(460px,1fr) 240px;gap:24px;padding-left:28px;padding-right:28px}.menu-side{width:240px}.menu-main h1{font-size:78px}}@media(max-width:820px){.topbar{height:62px;padding-top:max(10px,env(safe-area-inset-top))}.brand-mark{width:34px;height:34px;font-size:19px}.brand strong{font-size:17px}.connection-status,.device-chip small,.device-chip span:not(.device-avatar){display:none}.device-chip{min-width:0;border-left:0;padding-left:0}.menu-screen{inset-top:62px;top:62px;grid-template-columns:1fr;padding:24px;overflow-y:auto}.menu-main{align-self:start;margin:auto}.menu-side{width:100%;display:none}.menu-main h1{font-size:clamp(58px,16vw,84px)}.title-cn{margin-bottom:20px}}@media(hover:none),(pointer:coarse),(max-width:900px){[data-tooltip]:after{display:none}#app[data-state=playing] .mobile-controls{display:block;position:absolute;inset:0;z-index:14;pointer-events:none}.joystick-zone{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));width:190px;height:190px;pointer-events:auto}.joystick-base{position:absolute;left:20px;bottom:10px;width:118px;height:118px;border:1px solid rgba(240,243,235,.28);border-radius:50%;background:#0a0c0a57}.joystick-base:before,.joystick-base:after{content:"";position:absolute;background:#f0f3eb24}.joystick-base:before{left:50%;top:9px;bottom:9px;width:1px}.joystick-base:after{top:50%;left:9px;right:9px;height:1px}.joystick-knob{position:absolute;left:35px;top:35px;width:48px;height:48px;border:2px solid var(--signal);border-radius:50%;background:#c9f2631f;box-shadow:0 0 20px #c9f26329}.look-zone{position:absolute;inset:80px 0 0 42%;pointer-events:auto}.touch-button{position:absolute;display:grid;place-items:center;width:50px;height:50px;padding:0;border:1px solid rgba(240,243,235,.3);border-radius:50%;color:var(--text);background:#0a0c0a7a;backdrop-filter:blur(4px);pointer-events:auto}.touch-button:active,.touch-button.is-active{color:var(--ink);border-color:var(--signal);background:var(--signal)}.touch-button svg{width:20px;height:20px}.fullscreen-button{display:grid}.fire-button{right:max(24px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));width:76px;height:76px;border-color:#c9f2639e}.fire-button svg{width:29px;height:29px}.reload-button{right:max(116px,calc(env(safe-area-inset-right) + 94px));bottom:max(34px,calc(env(safe-area-inset-bottom) + 6px))}.interact-button{right:max(29px,calc(env(safe-area-inset-right) + 5px));bottom:max(121px,calc(env(safe-area-inset-bottom) + 93px))}.sprint-button{left:max(208px,calc(env(safe-area-inset-left) + 194px));bottom:max(30px,calc(env(safe-area-inset-bottom) + 2px))}.weapon-button{right:max(240px,calc(env(safe-area-inset-right) + 216px));bottom:max(92px,calc(env(safe-area-inset-bottom) + 64px))}.aim-button{right:max(29px,calc(env(safe-area-inset-right) + 5px));bottom:max(181px,calc(env(safe-area-inset-bottom) + 153px))}}@media(max-width:760px)and (orientation:landscape){.hud-left{top:max(8px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));width:215px}.hud-id{margin-bottom:5px;font-size:10px}.status-bars{padding:6px 8px}.bar{height:12px;grid-template-columns:28px 1fr 22px}.hud-objective{top:max(7px,env(safe-area-inset-top));min-width:180px;padding:6px 10px}.hud-objective strong{font-size:10px}.hud-right{top:max(7px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}.hud-right>div{min-width:62px;height:36px;padding:6px 8px}.hud-right .icon-button{width:36px;height:36px}.ammo-panel{right:max(20px,env(safe-area-inset-right));bottom:max(104px,calc(env(safe-area-inset-bottom) + 76px));padding:8px 9px 7px 12px}.ammo-panel strong{font-size:22px}.team-panel{bottom:auto;top:69px;padding:7px 9px}.fire-button{right:max(24px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom))}.reload-button{right:max(112px,calc(env(safe-area-inset-right) + 88px));bottom:max(30px,calc(env(safe-area-inset-bottom) + 10px))}.interact-button{right:max(29px,calc(env(safe-area-inset-right) + 5px));bottom:max(111px,calc(env(safe-area-inset-bottom) + 91px))}.menu-screen{padding-top:14px}.menu-main h1{font-size:58px}.title-cn{margin:7px 0 12px}.mode-option{min-height:50px}.fullscreen-button{display:grid}.duel-panel{top:max(51px,calc(env(safe-area-inset-top) + 44px));width:190px;padding:5px 8px}.mission-block{margin-top:12px}.mission-detail{min-height:80px;padding:10px 13px}.mission-detail h2{font-size:22px}.launch-row{margin-top:10px}.primary-action,.secondary-action{min-height:48px}}@media(max-width:900px)and (orientation:landscape){.modal-backdrop{padding:10px}.lobby-panel{width:min(100%,680px);max-height:calc(100vh - 20px);display:grid;grid-template-columns:168px minmax(0,1fr);grid-template-rows:auto auto 1fr auto}.lobby-panel>header{grid-column:1;grid-row:1 / span 2;min-height:116px;align-items:flex-start}.lobby-panel>.modal-tabs{grid-column:2;grid-row:1}.lobby-panel>.lobby-server-status{grid-column:2;grid-row:2}.lobby-panel>.lobby-view{grid-column:1 / -1;grid-row:3}.lobby-panel>.lobby-footer{grid-column:1 / -1;grid-row:4}.lobby-view{padding:12px 18px}.lobby-view label{margin-bottom:6px}.lobby-view input{height:48px;font-size:24px}.lobby-status{min-height:24px;margin:6px 0}.room-code-block{min-height:70px;padding-top:11px;padding-bottom:10px}.room-code-block strong{margin-top:5px;font-size:30px}.room-code-block .icon-button{top:15px}.lobby-footer{padding-top:8px;padding-bottom:8px}.ammo-panel{right:max(16px,env(safe-area-inset-right));bottom:max(112px,calc(env(safe-area-inset-bottom) + 92px));padding:8px 9px 7px 12px}.ammo-panel strong{font-size:22px}.fire-button{right:max(24px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom))}.reload-button{right:max(112px,calc(env(safe-area-inset-right) + 88px));bottom:max(30px,calc(env(safe-area-inset-bottom) + 10px))}.interact-button{right:max(158px,calc(env(safe-area-inset-right) + 134px));bottom:max(116px,calc(env(safe-area-inset-bottom) + 96px))}}@media(max-width:520px){.top-actions{gap:7px}.topbar{padding-left:14px;padding-right:14px}.menu-screen{padding:20px 14px 32px}.mode-switch{width:100%}.level-track{grid-template-columns:repeat(5,1fr)}.level-button{height:38px}.mission-detail{align-items:flex-start;flex-direction:column}.mission-detail dl{width:100%}.launch-row{flex-direction:column}.primary-action,.secondary-action{width:100%}.secondary-action{justify-content:center}.board-head,.full-board li{grid-template-columns:42px minmax(90px,1fr) 70px 72px;gap:6px}.board-head,.full-board li{padding-left:12px;padding-right:12px}.board-filters{align-items:stretch;flex-direction:column}.board-filters .modal-tabs{width:100%}.result-stats{grid-template-columns:repeat(2,1fr)}.result-actions{flex-direction:column}}@media(max-width:700px)and (orientation:portrait){#app[data-state=playing] .rotate-device{position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:var(--ink)}.rotate-device svg{width:34px;height:34px;color:var(--signal);animation:turn-phone 1.8s ease-in-out infinite}.rotate-device strong{margin-top:8px;font:600 22px/1 var(--display)}.rotate-device span{color:var(--muted);font:500 9px/1 var(--sans)}}@keyframes turn-phone{50%{transform:rotate(90deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
