*{box-sizing:border-box;margin:0;padding:0;user-select:none}body,html{width:100%;height:100%;overflow:hidden;background:#050911;font-family:Segoe UI,Noto Sans TC,Meiryo,sans-serif;color:#e9edf2}#app{position:relative;width:100vw;height:100vh}#webgl-canvas{width:100%;height:100%;display:block}.hidden{display:none!important}#damage-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 110px #dc191400;transition:box-shadow .15s ease-out}#hud{position:absolute;inset:0;pointer-events:none}.hud-minimap-card{position:absolute;top:18px;left:18px;width:174px;background:#0a0e14e0;border:1.5px solid rgba(255,255,255,.18);border-radius:4px;overflow:hidden;box-shadow:0 6px 20px #000000a6}#minimap-canvas{display:block;width:170px;height:170px}.minimap-footer{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;background:#06090df2;font-size:11px;font-weight:700;letter-spacing:1px;color:#cbd5e1}.hazard-stripe-mini{display:inline-block;width:48px;height:7px;background:repeating-linear-gradient(-45deg,#eab308,#eab308 5px,#111827 5px 10px)}.hud-compass-wrap{position:absolute;top:14px;left:50%;transform:translate(-50%);text-align:center}.compass-strip{display:flex;gap:22px;align-items:center;padding:4px 24px;background:linear-gradient(90deg,transparent,rgba(10,15,24,.78) 20%,rgba(10,15,24,.78) 80%,transparent);border-bottom:1px solid rgba(255,255,255,.16);font-size:12px;font-weight:600;color:#e2e8f0cc}.compass-heading{color:#facc15;font-size:14px;font-weight:800;padding:1px 8px;border-top:2px solid #facc15}.objective-banner{margin-top:6px;display:inline-flex;align-items:center;gap:8px;padding:4px 14px;background:#0c121cd1;border-left:3px solid #facc15;font-size:12.5px;color:#f8fafc}.obj-diamond{color:#facc15;font-size:14px}.obj-dist{color:#facc15;font-weight:700}.hud-top-right{position:absolute;top:18px;right:18px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.perf-badge{background:#080c12d1;border:1px solid rgba(148,163,184,.25);padding:4px 10px;font-size:11px;font-family:Consolas,monospace;color:#93c5fd;border-radius:3px}.killfeed{display:flex;flex-direction:column;gap:5px}.killfeed-item{background:#0c1017e0;border-right:3px solid #ef4444;padding:4px 12px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px #00000080}.kf-killer{color:#60a5fa}.kf-weapon{color:#f8fafc;font-family:monospace}.kf-victim{color:#f87171}.reticle-wrap{position:absolute;top:50%;left:50%;width:32px;height:32px;transform:translate(-50%,-50%)}.reticle-line{position:absolute;background:#ffffffe0;box-shadow:0 0 3px #000000e6}.ret-top{width:2px;height:8px;left:15px;top:0}.ret-bottom{width:2px;height:8px;left:15px;bottom:0}.ret-left{width:8px;height:2px;left:0;top:15px}.ret-right{width:8px;height:2px;right:0;top:15px}.hitmarker{position:absolute;inset:4px;border:2px solid #ef4444;transform:rotate(45deg)}.reload-box{position:absolute;top:63%;left:50%;transform:translate(-50%);width:165px;background:#0c1016e0;border:1px solid rgba(250,204,21,.45);padding:6px 10px;text-align:center}.reload-title{font-size:11px;font-weight:700;color:#fef08a;margin-bottom:4px}.reload-bar-bg{width:100%;height:4px;background:#ffffff26}.reload-bar-fill{width:0%;height:100%;background:#facc15}.kill-banner{position:absolute;top:57%;left:50%;transform:translate(-50%);text-align:center}.kill-skull{display:inline-block;padding:2px 8px;background:#14100ae6;border:1.5px solid #facc15;color:#facc15;font-size:16px;margin-bottom:4px}.kill-banner-text{background:#0e1014e6;border-left:2px solid #facc15;border-right:2px solid #facc15;padding:4px 16px;font-size:13px;font-weight:800;letter-spacing:1.2px;color:#fef08a}.hud-status-card{position:absolute;bottom:18px;left:18px;width:280px;background:#0a0e14e0;border:1px solid rgba(255,255,255,.16);padding:10px 14px;border-radius:3px}.status-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.status-icon{width:18px;text-align:center;font-weight:900}.hp-plus{color:#f8fafc;font-size:18px}.armor-shield{color:#38bdf8;font-size:14px}.status-num{width:38px;font-size:20px;font-weight:800}.armor-num{font-size:15px;color:#38bdf8}.status-bar-bg{flex:1;height:7px;background:#ffffff24;overflow:hidden}.status-bar-fill{height:100%;transition:width .15s ease}.hp-fill{background:#f8fafc}.armor-fill{background:#38bdf8}.status-unit{font-size:10px;color:#94a3b8;width:34px;text-align:right}.stance-indicator{margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:2px;font-size:10px;color:#94a3b8}.hud-weapon-wrap{position:absolute;bottom:18px;right:18px;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.weapon-slots{display:flex;gap:6px}.weapon-slot{background:#0a0e14d9;border:1px solid rgba(255,255,255,.16);padding:4px 12px;font-size:11px;font-weight:700;color:#94a3b8;display:flex;gap:6px}.weapon-slot.active{border-color:#facc15;color:#facc15;background:#231e0ce0}.ammo-card{width:285px;background:#0a0e14e6;border:1px solid rgba(255,255,255,.18);padding:10px 14px;display:flex;justify-content:space-between;align-items:center}.weapon-silhouette{font-size:20px;font-weight:900;color:#f8fafc;letter-spacing:-1px}.weapon-title{font-size:11px;color:#cbd5e1;margin:2px 0 4px}.ammo-numbers{text-align:right}.ammo-mag{font-size:32px;font-weight:900;color:#f8fafc}.ammo-sep,.ammo-reserve{font-size:16px;font-weight:700;color:#94a3b8}.fire-mode-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:2px}.fire-mode-badge{border:1px solid #facc15;color:#facc15;font-size:9px;font-weight:800;padding:1px 5px}.ammo-ticks{font-size:9px;letter-spacing:1px;color:#cbd5e1}#sniper-scope{position:absolute;inset:0;pointer-events:none;z-index:5}.scope-vignette{position:absolute;inset:0;background:radial-gradient(circle at center,#28415514 33%,#06080cf5 36.5%)}.scope-crosshair-h{position:absolute;top:50%;left:16%;right:16%;height:1.5px;background:#facc15a6}.scope-crosshair-v{position:absolute;left:50%;top:10%;bottom:10%;width:1.5px;background:#facc15a6}.scope-range-box{position:absolute;bottom:115px;left:18px;background:#0a0e14eb;border:1px solid rgba(250,204,21,.4);padding:6px 14px;width:145px}.scope-range-label{font-size:10px;color:#94a3b8}.scope-range-val{font-size:22px;font-weight:800;color:#f8fafc;border-bottom:2px solid #facc15}.scope-code{position:absolute;bottom:115px;right:24px;font-size:12px;font-weight:700;color:#94a3b8;letter-spacing:1.5px}.modal-overlay{position:absolute;inset:0;background:#060a1059;display:flex;align-items:center;justify-content:center;z-index:20}.loadout-panel{width:90%;height:84%;border:1.5px solid rgba(255,255,255,.24);background:linear-gradient(90deg,#080c12eb,#0c121c38 42%,#0c121c2e 78%,#080c12d9);display:flex;flex-direction:column;justify-content:space-between;padding:24px 32px}.loadout-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:14px}.loadout-title{font-size:24px;font-weight:900;letter-spacing:1.5px;white-space:nowrap}.sub-tag{font-size:12px;color:#94a3b8}.loadout-code{font-size:11px;font-weight:700;color:#94a3b8;white-space:nowrap}.loadout-tabs{display:flex;gap:6px}.loadout-tab{background:#0f141ce6;border:1px solid rgba(255,255,255,.2);color:#cbd5e1;padding:6px 11px;font-size:11.5px;font-weight:700;white-space:nowrap;cursor:pointer}.loadout-tab.active{border-color:#facc15;color:#facc15;background:#2d260ee6}.loadout-info{max-width:360px;margin-top:auto}.loadout-cat{color:#facc15;font-size:12px;font-weight:700;margin-bottom:4px}.loadout-info h2{font-size:32px;margin-bottom:8px}.loadout-info p{font-size:13px;color:#cbd5e1;margin-bottom:16px;line-height:1.5}.stats-box{background:#080b10e6;border:1px solid rgba(255,255,255,.16);padding:12px 16px}.stats-header{display:inline-block;background:#facc15;color:#0f172a;font-size:11px;font-weight:900;padding:2px 8px;margin-bottom:10px}.stat-row{display:flex;align-items:center;gap:10px;font-size:12px;margin-bottom:6px}.stat-row span{width:125px;color:#cbd5e1}.stat-bar{flex:1;height:6px;background:#ffffff1f}.stat-bar div{height:100%;background:#facc15}.stat-row b{width:28px;text-align:right}.loadout-footer{display:flex;justify-content:flex-end;gap:24px;font-size:12px;color:#94a3b8;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}.mission-card{width:680px;background:#0a0d12f2;border:1.5px solid rgba(255,255,255,.22);padding:32px 38px;position:relative}.mission-h1{font-size:46px;font-weight:900;letter-spacing:3px;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:10px}.mission-sub-row{display:flex;justify-content:space-between;margin:12px 0 24px}.mission-sub-gold{color:#facc15;font-size:16px;font-weight:800}.mission-code{color:#94a3b8;font-size:12px;font-weight:700}.mission-grid{display:flex;gap:28px;align-items:center;margin-bottom:28px}.mission-stats{flex:1}.m-stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px}.mission-rank-box{width:190px;height:190px;border:2px solid #facc15;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#18140a99}.rank-label{font-size:12px;color:#facc15;letter-spacing:2px}.rank-letter{font-size:110px;font-weight:900;color:#facc15;line-height:1}.mission-actions{display:flex;gap:16px}.btn-gold{background:#eab308;color:#0f172a;border:none;padding:12px 36px;font-size:16px;font-weight:900;cursor:pointer}.btn-dark{background:#19202ce6;color:#f8fafc;border:1px solid rgba(255,255,255,.25);padding:12px 32px;font-size:15px;font-weight:700;cursor:pointer}.top-tactical-bar{margin-top:6px;display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;pointer-events:auto}.gyro-btn{background:#0a101ae6;border:1.5px solid rgba(148,163,184,.38);color:#e2e8f0;padding:5px 11px;font-size:11.5px;font-weight:800;border-radius:16px;cursor:pointer;transition:all .15s ease;box-shadow:0 3px 10px #00000073}.gyro-pill-main{border-color:#facc15a6;color:#fef08a;background:#18160aeb}.gyro-btn:hover{border-color:#facc15;color:#fef08a}.gyro-btn.active{background:#14532deb;border-color:#4ade80;color:#dcfce7;box-shadow:0 0 12px #4ade8073}.autofire-btn.active{background:#0e7490eb;border-color:#38bdf8;color:#e0f2fe;box-shadow:0 0 12px #38bdf873}.gyro-sub-btn{padding:4px 8px;font-size:10.5px}#hud.hud-minimal .hud-compass-wrap .compass-strip,#hud.hud-minimal .perf-badge,#hud.hud-minimal .stance-indicator,#hud.hud-minimal .tactical-gadget-row,#hud.hud-minimal .touch-look-hint{display:none!important}.damage-dir-arc{position:absolute;inset:-38px;border-radius:50%;border:4px solid transparent;border-top-color:#ef4444eb;filter:drop-shadow(0 0 8px rgba(239,68,68,.85));pointer-events:none;transition:opacity .15s ease}.tactical-gadget-row{display:flex;align-items:center;gap:8px;margin-top:2px}.grenade-badge{background:#1e293be6;border:1px solid rgba(250,204,21,.45);color:#fef08a;font-size:9.5px;font-weight:800;padding:1px 5px;border-radius:2px;cursor:pointer;pointer-events:auto}.stim-badge{border-color:#4ade808c;color:#86efac}.light-badge{border-color:#94a3b866;color:#94a3b8}.light-badge.active{background:#0e7490d9;border-color:#38bdf8;color:#e0f2fe;box-shadow:0 0 8px #38bdf866}.nvg-badge{border-color:#4ade8066;color:#86efac}.nvg-badge.active{background:#14532de6;border-color:#4ade80;color:#dcfce7;box-shadow:0 0 10px #4ade8080}.nvg-overlay{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,#22c55e29,#16a34a47 62%,#04180cc7 92%,#020a05f5);mix-blend-mode:screen;z-index:2}.nvg-scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0px,rgba(0,0,0,.18) 1px,transparent 1px,transparent 3px)}.nvg-tubes-mask{position:absolute;inset:0;box-shadow:inset 0 0 120px #041209eb;border:2px solid rgba(74,222,128,.22)}.nvg-hud-tag{position:absolute;top:66px;left:50%;transform:translate(-50%);font-family:Consolas,monospace;font-size:11px;font-weight:800;letter-spacing:1.5px;color:#4ade80;background:#061c0ed1;border:1px solid rgba(74,222,128,.45);padding:2px 12px;border-radius:2px}.weapon-slot{cursor:pointer;pointer-events:auto;padding:4px 9px}.mobile-touch-controls{display:none;position:absolute;inset:0;pointer-events:none}@media(pointer:coarse),(max-width:1024px){.mobile-touch-controls{display:block}}.mobile-touch-controls.force-visible{display:block}.touch-look-hint{position:absolute;top:22%;right:18px;background:#0a101aa6;border:1px dashed rgba(250,204,21,.45);color:#fef08ad9;padding:4px 10px;border-radius:12px;font-size:10.5px;font-weight:700;pointer-events:none;transition:opacity .4s ease}.touch-joystick-zone{position:absolute;bottom:128px;left:24px;width:114px;height:114px;border-radius:50%;background:radial-gradient(circle,#0f172a85,#0f172a40);border:2px solid rgba(255,255,255,.28);pointer-events:auto;touch-action:none}.joy-sprint-tag{position:absolute;top:-18px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:9.5px;font-weight:800;color:#facc15d1;text-shadow:0 1px 3px rgba(0,0,0,.9);pointer-events:none}.touch-joystick-knob{position:absolute;top:50%;left:50%;width:44px;height:44px;margin-left:-22px;margin-top:-22px;border-radius:50%;background:#facc15d1;border:2px solid #fef08a;box-shadow:0 2px 10px #0000008c}.touch-action-cluster{position:absolute;bottom:126px;right:18px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:auto;touch-action:none}.touch-sub-row,.touch-main-row{display:flex;align-items:center;gap:8px}.touch-btn{background:#0f172ac7;border:1.5px solid rgba(255,255,255,.32);color:#f8fafc;border-radius:20px;padding:8px 13px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 3px 10px #00000073;touch-action:none}.touch-btn-drawer{background:#1e293be0;border-color:#eab308;color:#fef08a}.touch-btn-drawer.active{background:#eab308eb;color:#0f172a}.touch-btn-stim-quick{border-color:#4ade80a6;color:#86efac}.touch-btn-sm{padding:7px 10px;font-size:11px;border-radius:8px}.touch-btn-ads{border-color:#38bdf8;background:#0c4a6ec7;color:#bae6fd;padding:12px 16px;font-size:13px;border-radius:26px}.touch-btn-ads.active{background:#0284c7eb;color:#fff;box-shadow:0 0 12px #38bdf880}.touch-btn-fire{background:#b91c1cd9;border:2px solid #f87171;color:#fef2f2;padding:15px 22px;font-size:14px;border-radius:30px;box-shadow:0 0 14px #dc262673}.touch-tactical-drawer{position:absolute;bottom:242px;right:18px;width:248px;background:#090e17f0;border:1.5px solid rgba(250,204,21,.55);border-radius:12px;padding:10px;pointer-events:auto;box-shadow:0 10px 28px #000000c7;z-index:15}.drawer-title{font-size:11px;font-weight:800;color:#facc15;margin-bottom:8px;text-align:center;border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:4px}.drawer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}@media(max-width:920px),(pointer:coarse){.controls-hint,.tactical-gadget-row{display:none!important}}@media(max-width:680px){.hud-minimap-card{top:10px;left:10px;width:96px}#minimap-canvas{width:96px;height:96px}.minimap-footer{padding:2px 5px;font-size:9px}.hazard-stripe-mini{width:24px;height:5px}.hud-compass-wrap{top:8px;left:114px;right:8px;transform:none;text-align:left}.compass-strip{display:none}.objective-banner{margin-top:0;padding:3px 8px;font-size:10.5px;width:100%;justify-content:space-between}.top-tactical-bar{margin-top:5px;justify-content:flex-start;gap:4px}.gyro-btn{padding:4px 8px;font-size:10.5px}.hud-top-right{top:124px;left:10px;right:auto;align-items:flex-start}.perf-badge{font-size:9.5px;padding:2px 6px}.killfeed-item{font-size:10px;padding:2px 7px;gap:5px}.nvg-hud-tag{top:98px;font-size:9.5px}.hud-status-card{bottom:10px;left:10px;width:152px;padding:6px 8px}.status-row{margin-bottom:3px;gap:5px}.status-num{width:28px;font-size:14px}.armor-num{font-size:13px}.status-unit,.stance-indicator{display:none}.hud-weapon-wrap{bottom:10px;right:10px;gap:4px}.weapon-slots{gap:3px}.weapon-slot{padding:3px 5px;font-size:9.5px;gap:3px}.ammo-card{width:196px;padding:6px 9px}.weapon-silhouette{font-size:15px}.weapon-title{font-size:9.5px;margin:1px 0}.ammo-mag{font-size:22px}.ammo-sep,.ammo-reserve{font-size:12px}.ammo-ticks{display:none}.touch-joystick-zone{bottom:94px;left:16px;width:104px;height:104px}.touch-action-cluster{bottom:94px;right:12px}.touch-tactical-drawer{bottom:204px;right:12px;width:236px}.touch-look-hint{top:155px;right:10px;font-size:9.5px}}.reticle-shotgun-ring{position:absolute;inset:-14px;border-radius:50%;border:1.8px dashed rgba(250,204,21,.85);box-shadow:0 0 6px #000000d9;pointer-events:none;transition:transform .08s ease-out}.terminal-box{position:absolute;top:69%;left:50%;transform:translate(-50%);width:260px;background:#08141ceb;border:1.5px solid rgba(56,189,248,.65);padding:7px 12px;text-align:center;box-shadow:0 4px 16px #000000b3}.terminal-title{font-size:11px;font-weight:800;color:#7dd3fc;margin-bottom:5px;letter-spacing:.5px}.terminal-bar-fill{width:0%;height:100%;background:linear-gradient(90deg,#0284c7,#38bdf8,#4ade80);transition:width .08s linear}
