:root{--bg-obsidian:#0a0d10;--surface-tac:#0e1216c7;--surface-tac-strong:#0c0f13eb;--brass-gold:#c89d54;--brass-gold-soft:#c89d546b;--text-primary:#eef2f5;--text-muted:#a6b1ba;--hp-healthy:#e8eef2;--hp-warn:#e09f3e;--hp-crit:#d64045;--ally-blue:#4da8da;--enemy-red:#df4b4b;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background-color:var(--bg-obsidian);width:100%;height:100%;color:var(--text-primary);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:0;font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}#game-root{touch-action:none;background:var(--bg-obsidian);width:100dvw;height:100dvh;position:relative;overflow:hidden}#webgl-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.overlay-screen{z-index:30;padding:calc(16px + var(--safe-top)) calc(20px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(20px + var(--safe-left));flex-direction:column;justify-content:space-between;display:none;position:absolute;inset:0}.overlay-screen.active{display:flex}#loading-screen{z-index:50;background:radial-gradient(circle at 50% 42%,#182028 0%,#090c0f 75%);justify-content:center;align-items:center}.loader-panel{text-align:center;width:min(440px,88vw)}.loader-kicker{letter-spacing:.28em;color:var(--brass-gold);margin-bottom:6px;font-family:Oswald,sans-serif;font-size:.78rem}.loader-title{letter-spacing:.16em;margin-bottom:18px;font-size:clamp(1.9rem,5vw,2.7rem);font-weight:900}.loader-track{background:#ffffff24;width:100%;height:4px;overflow:hidden}.loader-fill{background:var(--brass-gold);width:12%;height:100%;transition:width .22s ease-out}.loader-status{color:var(--text-muted);margin-top:12px;font-size:.82rem}.title-hero-bg{filter:contrast(1.05)saturate(.95);z-index:-2;background-image:url(/assets/faction_hero_tainan.jpg);background-position:50% 38%;background-size:cover;animation:18s ease-in-out infinite alternate subtleCameraBreath;position:absolute;inset:0;transform:scale(1.02)}@keyframes subtleCameraBreath{0%{transform:scale(1.01)translateY(0)}to{transform:scale(1.05)translateY(-6px)}}.title-vignette{z-index:-1;background:linear-gradient(#080b0ebd 0%,#080b0e2e 38%,#080b0e59 64%,#07090ce6 100%),radial-gradient(circle,#0000 40%,#06080ba6 100%);position:absolute;inset:0}.title-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.location-tag{color:#d6dde3;border-left:3px solid var(--brass-gold);letter-spacing:.06em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c1014ad;padding:6px 12px;font-size:clamp(.72rem,1.8vw,.85rem)}.utility-btn{color:var(--text-primary);letter-spacing:.06em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e1216c2;border:1px solid #ffffff3d;padding:7px 14px;font-family:inherit;font-size:.8rem;font-weight:600;transition:background .15s,border-color .15s}.utility-btn:hover,.utility-btn:active{border-color:var(--brass-gold);background:#c89d543d}.title-header{text-align:center;margin-top:clamp(2px,2vh,18px);margin-bottom:auto}.title-ornament-row{justify-content:center;align-items:center;gap:clamp(12px,3vw,28px);display:flex}.ornament-line{background:var(--brass-gold);opacity:.85;width:clamp(36px,9vw,115px);height:1px}.main-title{letter-spacing:.14em;color:#f3f5f7;text-shadow:0 4px 22px #000000d9;margin:0;font-size:clamp(2.1rem,6.2vw,4.1rem);font-weight:900}.title-subtitle{letter-spacing:.36em;color:#dce2e8;text-shadow:0 2px 10px #000000d9;margin:8px 0 0;font-size:clamp(.95rem,2.2vw,1.3rem);font-weight:500}.faction-cards-row{justify-content:space-between;align-items:stretch;gap:clamp(12px,4vw,48px);width:min(980px,100%);margin:0 auto clamp(10px,2.2vh,22px);display:flex}.faction-btn{border:1px solid var(--brass-gold-soft);clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);max-width:360px;color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c0f12d1;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:5px;padding:clamp(13px,2.2vh,20px) 18px;font-family:inherit;transition:transform .16s,background .16s,border-color .16s;display:flex;position:relative}.faction-btn:after{content:"";background:var(--brass-gold);width:44px;height:3px;position:absolute;bottom:-1px}.faction-btn:hover,.faction-btn:active{border-color:var(--brass-gold);background:#1c2228e6;transform:translateY(-2px)}.faction-flag{width:28px;height:4px;margin-bottom:2px}.roc-stripe{background:linear-gradient(90deg,#1d4e89 0 45%,#f5f7fa 45% 55%,#c83e37 55% 100%)}.pla-stripe{background:linear-gradient(90deg,#b83227 0 72%,#e0b145 72% 100%)}.faction-name{letter-spacing:.16em;font-size:clamp(1.08rem,2.6vw,1.48rem);font-weight:700}.faction-meta{color:var(--text-muted);letter-spacing:.04em;font-size:clamp(.72rem,1.6vw,.82rem)}.title-footer{text-align:center;flex-direction:column;gap:8px;display:flex}.controls-hint{color:#e2e8eec7;letter-spacing:.04em;font-size:clamp(.7rem,1.5vw,.78rem)}.fictional-disclaimer{color:#d2d8deb8;letter-spacing:.22em;justify-content:center;align-items:center;gap:14px;font-size:.76rem;display:flex}.disclaimer-line{background:#ffffff3d;width:clamp(40px,8vw,96px);height:1px}.hud-layer{z-index:15;pointer-events:none;display:none;position:absolute;inset:0}.hud-layer.active{display:block}.damage-vignette{pointer-events:none;opacity:0;background:radial-gradient(circle,#0000 48%,#a81818ad 100%);transition:opacity .12s ease-out;position:absolute;inset:0}.damage-arc{opacity:0;pointer-events:none;border-top:5px solid #e43a3aeb;border-radius:50%;width:220px;height:220px;margin-top:-110px;margin-left:-110px;transition:opacity .18s ease-out;position:absolute;top:50%;left:50%}.hud-top-left{top:calc(14px + var(--safe-top));left:calc(16px + var(--safe-left));flex-direction:column;gap:6px;max-width:calc(100vw - 185px);display:flex;position:absolute}.street-header{text-shadow:0 2px 8px #000000e6;border-bottom:1px solid #ffffff47;align-items:center;gap:9px;padding-bottom:5px;display:flex}.street-accent-bar{background:#f2f5f7;width:3px;height:20px}.street-name{letter-spacing:.1em;font-size:clamp(.95rem,2.2vw,1.18rem);font-weight:700}.tactical-subrow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tac-chip{letter-spacing:.08em;color:#dfe6ec;background:#0c1014a8;border:1px solid #ffffff2e;padding:2px 8px;font-family:Oswald,Noto Sans TC,sans-serif;font-size:.75rem}.tac-sector-wrap{background:#0c1014a8;border:1px solid #ffffff2e;align-items:center;gap:5px;padding:2px 7px;display:inline-flex}.sector-badge{color:var(--brass-gold);font-family:Oswald,sans-serif;font-size:.72rem;font-weight:700}.capture-track{background:#ffffff2e;width:56px;height:5px;overflow:hidden}.capture-fill{background:var(--ally-blue);width:50%;height:100%;transition:width .2s linear,background-color .2s;display:block}.hud-quick-actions{pointer-events:auto;gap:6px;display:flex}.hud-icon-btn{width:36px;height:36px;color:var(--text-primary);cursor:pointer;background:#0c1014b8;border:1px solid #ffffff38;justify-content:center;align-items:center;font-size:.86rem;display:inline-flex}.hud-icon-btn:active{background:#c89d5459}.hud-top-right{top:calc(12px + var(--safe-top));right:calc(14px + var(--safe-right));position:absolute}.minimap-shell{background:#0e1316d1;border:2px solid #e2e8ee6b;border-radius:50%;width:clamp(106px,18vw,152px);height:clamp(106px,18vw,152px);overflow:hidden;box-shadow:0 4px 18px #000000a6}#minimap-canvas{width:100%;height:100%;display:block}.wave-banner{top:calc(88px + var(--safe-top));border-top:2px solid var(--brass-gold);letter-spacing:.12em;color:#f4f6f8;opacity:0;text-align:center;white-space:nowrap;background:#0c1014d6;border-bottom:1px solid #fff3;padding:7px 18px;font-size:clamp(.82rem,2vw,1rem);font-weight:700;transition:opacity .25s;position:absolute;left:50%;transform:translate(-50%)}.wave-banner.visible{opacity:1}.killfeed{top:calc(174px + var(--safe-top));right:calc(16px + var(--safe-right));flex-direction:column;align-items:flex-end;gap:4px;font-size:.74rem;display:flex;position:absolute}.killfeed-item{border-right:2px solid var(--brass-gold);color:#e5ebf0;letter-spacing:.04em;background:#0a0e12b8;padding:3px 9px}.crosshair{--spread-px:8px;width:0;height:0;position:absolute;top:50%;left:50%}.ch-tick{background:#f2f6fae6;position:absolute;box-shadow:0 0 3px #000000e6}.ch-top{width:2px;height:7px;left:-1px;bottom:var(--spread-px)}.ch-bottom{width:2px;height:7px;left:-1px;top:var(--spread-px)}.ch-left{width:7px;height:2px;top:-1px;right:var(--spread-px)}.ch-right{width:7px;height:2px;top:-1px;left:var(--spread-px)}.ch-dot{background:#ffffffd9;border-radius:50%;width:3px;height:3px;position:absolute;top:-1.5px;left:-1.5px}.crosshair.ads-mode .ch-tick{opacity:.22}.crosshair.ads-mode .ch-dot{background:#ff4242;width:4px;height:4px;top:-2px;left:-2px;box-shadow:0 0 6px #ff4242f2}.hitmarker{opacity:0;width:22px;height:22px;margin-top:-11px;margin-left:-11px;transition:opacity 80ms ease-out,transform 80ms ease-out;position:absolute;top:50%;left:50%;transform:scale(.85)}.hitmarker.active{opacity:1;transform:scale(1)}.hitmarker span{background:#fff;width:7px;height:2px;position:absolute;box-shadow:0 0 3px #000000e6}.hitmarker.headshot span{background:#ff4d4d}.hitmarker span:first-child{top:3px;left:2px;transform:rotate(45deg)}.hitmarker span:nth-child(2){top:3px;right:2px;transform:rotate(-45deg)}.hitmarker span:nth-child(3){bottom:3px;left:2px;transform:rotate(-45deg)}.hitmarker span:nth-child(4){bottom:3px;right:2px;transform:rotate(45deg)}.desktop-lock-hint{letter-spacing:.08em;color:#dce3ea;background:#0c1014c7;border:1px solid #ffffff38;padding:5px 14px;font-size:.78rem;position:absolute;bottom:78px;left:50%;transform:translate(-50%)}#game-root.touch-active .desktop-lock-hint,#game-root.pointer-locked .desktop-lock-hint{display:none}.hud-bottom-left{left:calc(18px + var(--safe-left));bottom:calc(18px + var(--safe-bottom));flex-direction:column;gap:4px;display:flex;position:absolute}.hp-row{background:#0a0e12ad;border:1px solid #ffffff38;align-items:center;gap:8px;padding:5px 11px;display:flex}.hp-plus{color:#f2f6fa;font-size:.92rem}.hp-value{letter-spacing:.04em;min-width:32px;font-family:Oswald,sans-serif;font-size:1.25rem;font-weight:700}.hp-bar-outer{background:#ffffff2e;width:clamp(92px,14vw,136px);height:9px}.hp-bar-inner{background:var(--hp-healthy);width:100%;height:100%;transition:width .15s ease-out,background-color .2s}.stance-tag{color:#dee5ecbf;text-shadow:0 1px 4px #000000e6;font-size:.7rem}.hud-bottom-right{right:calc(18px + var(--safe-right));bottom:calc(16px + var(--safe-bottom));text-shadow:0 2px 8px #000000e6;flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute}.weapon-silhouette-row{align-items:center;gap:10px;display:flex}.grenade-readout{color:#dce4ec;background:#0c1014ad;border:1px solid #fff3;padding:2px 7px;font-size:.74rem}.weapon-svg{color:#f2f6faeb;filter:drop-shadow(0 2px 6px #000000d9);width:clamp(92px,14vw,126px);height:auto}.ammo-counter-row{align-items:baseline;gap:5px;font-family:Oswald,sans-serif;display:flex}.ammo-mag{color:#f5f7fa;font-size:clamp(1.65rem,3.6vw,2.25rem);font-weight:700;line-height:1}.ammo-sep,.ammo-reserve{color:#e2e8eed1;font-size:clamp(1rem,2vw,1.25rem)}.touch-controls{pointer-events:none;display:none;position:absolute;inset:0}@media (pointer:coarse){.touch-controls{display:block}.desktop-lock-hint{display:none}}#game-root.touch-active .touch-controls{display:block}.touch-left-zone{pointer-events:auto;width:46%;height:52%;position:absolute;bottom:0;left:0}.touch-right-zone{pointer-events:auto;width:54%;height:82%;position:absolute;bottom:0;right:0}.joystick-base{left:calc(34px + var(--safe-left));bottom:calc(38px + var(--safe-bottom));pointer-events:none;background:radial-gradient(circle,#10161c7a 0%,#0c101433 100%);border:2px solid #ebf1f652;border-radius:50%;width:112px;height:112px;transition:opacity .15s;position:absolute}.sprint-chevron{white-space:nowrap;color:#e6ecf29e;letter-spacing:.04em;font-size:.65rem;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.joystick-knob{background:#ecf2f873;border:2px solid #ffffffb8;border-radius:50%;width:46px;height:46px;margin-top:-23px;margin-left:-23px;position:absolute;top:50%;left:50%;transform:translate(0)}.joystick-base.sprinting{border-color:var(--brass-gold)}.joystick-base.sprinting .sprint-chevron{color:var(--brass-gold);font-weight:700}.touch-action-cluster{right:calc(16px + var(--safe-right));bottom:calc(22px + var(--safe-bottom));pointer-events:none;width:196px;height:186px;position:absolute}.touch-btn{color:#eef3f8;pointer-events:auto;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e1318ad;border:1.5px solid #ebf1f66b;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-family:inherit;display:flex;position:absolute}.touch-btn.active-toggle,.touch-btn:active{border-color:var(--brass-gold);background:#c89d5475}.tb-icon{font-size:1rem;line-height:1}.tb-label{font-size:.65rem;font-weight:600;line-height:1.1}.touch-btn-fire{background:#ba38308f;border:2px solid #ffd6c4c7;width:82px;height:82px;bottom:14px;right:12px}.touch-btn-fire.firing{background:#e0483ad9;transform:scale(.95)}.fire-ring{border:1px dashed #ffffff8c;border-radius:50%;position:absolute;inset:6px}.tb-fire-text{letter-spacing:.08em;font-size:.88rem;font-weight:900}.touch-btn-ads{width:56px;height:56px;top:4px;right:16px}.touch-btn-reload{width:52px;height:52px;top:22px;left:26px}.touch-btn-crouch{width:52px;height:52px;bottom:22px;left:4px}.touch-btn-grenade{width:50px;height:50px;bottom:84px;left:62px}@media (aspect-ratio<=1){.faction-cards-row{flex-direction:column;align-items:center;gap:10px}.faction-btn{width:100%;max-width:340px;padding:12px 16px}.hud-bottom-left{left:calc(12px + var(--safe-left));bottom:calc(208px + var(--safe-bottom))}.stance-tag{display:none}.hud-bottom-right{right:calc(12px + var(--safe-right));bottom:calc(214px + var(--safe-bottom))}.weapon-svg{width:84px}.killfeed{top:calc(132px + var(--safe-top))}.wave-banner{top:calc(152px + var(--safe-top));white-space:normal;max-width:88vw;padding:5px 12px;font-size:.8rem}}@media (height<=480px) and (orientation:landscape){.title-header{margin-top:0}.main-title{font-size:2.15rem}.faction-cards-row{margin-bottom:4px}.faction-btn{padding:10px 14px}.controls-hint{display:none}.hud-bottom-left{left:calc(158px + var(--safe-left));bottom:calc(12px + var(--safe-bottom))}.stance-tag{display:none}.hud-bottom-right{right:calc(214px + var(--safe-right));bottom:calc(10px + var(--safe-bottom))}}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#06090cc7;justify-content:center;align-items:center;padding:20px;display:none;position:absolute;inset:0}.modal-backdrop.active{display:flex}.tactical-modal{background:var(--surface-tac-strong);border:1px solid var(--brass-gold-soft);text-align:center;width:min(440px,92vw);padding:24px 22px}.debrief-kicker{letter-spacing:.22em;color:var(--brass-gold);margin-bottom:4px;font-family:Oswald,sans-serif;font-size:.76rem}.modal-title{letter-spacing:.1em;margin:0 0 8px;font-size:1.65rem;font-weight:900}.modal-desc{color:var(--text-muted);margin:0 0 18px;font-size:.85rem}.debrief-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0 20px;display:grid}.stat-cell{background:#ffffff0a;border:1px solid #ffffff1f;padding:10px 8px}.stat-label{color:var(--text-muted);font-size:.74rem}.stat-val{color:#f4f6f8;margin-top:2px;font-family:Oswald,sans-serif;font-size:1.38rem;font-weight:700}.modal-actions{flex-direction:column;gap:10px;display:flex}.modal-btn{width:100%;color:var(--text-primary);letter-spacing:.1em;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff3d;padding:12px 16px;font-family:inherit;font-size:.95rem;font-weight:700}.modal-btn.primary{border-color:var(--brass-gold);background:#c89d5442}.modal-btn:hover,.modal-btn:active{background:#c89d546b}.title-top-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.footer-links-row{color:#dce4ecc7;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:6px;font-size:.75rem;display:flex}.footer-text-btn,.footer-ext-link{color:#e4c07a;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:.75rem;text-decoration:underline}.footer-text-btn:hover,.footer-ext-link:hover{color:#fff2d2}.debrief-ad-wrap{background:#ffffff06;border:1px solid #ffffff1a;margin:0 0 22px;padding:8px 10px}.debrief-ad-wrap:has(ins[data-ad-status=unfilled]){display:none}.ad-slot-label{letter-spacing:.16em;color:#c8d2dc8c;text-transform:uppercase;margin-bottom:4px;font-size:.65rem}.debrief-adsense-unit{width:100%;min-height:50px;max-height:120px;display:block;overflow:hidden}body.is-combat-active ins.adsbygoogle:not(#debrief-adsense-unit),body.is-combat-active iframe[id^=aswift_],body.is-combat-active div[id^=google_ads_iframe]{pointer-events:none!important;display:none!important}.info-modal-card{text-align:left;flex-direction:column;width:min(680px,94vw);max-height:min(82dvh,720px);padding:22px 24px;display:flex}.info-modal-header{border-bottom:1px solid #c89d5459;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;display:flex}.info-modal-header .modal-title{margin:0;font-size:clamp(1.15rem,3vw,1.45rem)}.info-close-btn{color:var(--text-primary);cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;padding:6px 12px;font-family:inherit;font-size:.82rem;font-weight:700}.info-scroll-body{color:#d7dfe7;padding-right:6px;font-size:.86rem;line-height:1.72;overflow-y:auto}.info-scroll-body h3{color:#ecc983;letter-spacing:.06em;margin:16px 0 6px;font-size:.96rem}.info-scroll-body h3:first-child{margin-top:2px}.info-scroll-body p,.info-scroll-body ul{margin:0 0 10px}.info-scroll-body ul{padding-left:20px}.info-scroll-body a{color:#ecc983}
