/* All art, typography and sound are local; no network assets. */
:root{font-family:Arial,'Malgun Gothic',sans-serif;color:#f0f1e9;--amber:#ffba68;--muted:#b5c0c4;--navy:#101e29}*{box-sizing:border-box}body{margin:0;background:#182f3c;overflow:hidden}button,input{font:inherit}button{cursor:pointer}#game{position:fixed;inset:0;width:100vw;height:100vh;display:block;outline:none}button:focus-visible,input:focus-visible{outline:2px solid white;outline-offset:5px}[hidden]{display:none!important}.screen{position:fixed;inset:0;background:linear-gradient(90deg,rgba(7,19,29,.94) 0%,rgba(7,19,29,.88) 30%,rgba(7,19,29,.2) 72%,rgba(7,19,29,.1));z-index:20}.menu-rail{position:absolute;top:40px;bottom:70px;left:40px;width:110px;border-right:1px solid #ffffff26;display:flex;flex-direction:column;gap:34px}.brand-mark{font-size:30px;font-weight:900;letter-spacing:-3px}.brand-mark span{color:var(--amber)}.menu-rail>span:nth-child(2){writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;color:#a3b0b9}.rail-bottom{margin-top:auto;font-size:9px;line-height:1.8;color:#7f959f;letter-spacing:1px}.menu-content{position:absolute;left:190px;top:13vh;width:450px}.eyebrow{letter-spacing:3px;font-size:10px;color:var(--amber);font-weight:700}.live-dot{display:inline-block;width:6px;height:6px;background:var(--amber);border-radius:50%;margin-right:9px;box-shadow:0 0 16px #ffbf67}h1{font-size:82px;line-height:.88;font-weight:900;letter-spacing:-6px;margin:36px 0 24px}h1>span{display:block;color:var(--amber)}h1>i{display:block;font-style:normal;font-size:18px;letter-spacing:10px;font-weight:400;margin-top:24px}.tagline{font-size:20px;letter-spacing:-.8px;margin-top:32px}.intro{font-size:12px;color:var(--muted);line-height:1.9;margin:15px 0 28px}.primary{background:var(--amber);color:#182430;border:0;padding:17px 22px;display:flex;justify-content:space-between;align-items:center;width:310px;font-weight:800;text-align:left;transition:.2s}.primary:hover{background:#ffce93;transform:translateX(3px)}.primary span{font-size:18px}.menu-bottom{display:flex;width:310px;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;color:#a0afb9;margin:18px 0}.menu-bottom input{background:transparent;color:#dbe4e7;border:0;border-bottom:1px solid #ffffff30;width:68px;font-size:11px;padding:3px}.menu-stamp{position:absolute;right:6%;bottom:15%;width:140px;border-left:2px solid var(--amber);padding-left:18px;text-shadow:0 1px 10px #183645}.menu-stamp span{display:block;font-size:10px;letter-spacing:3px}.menu-stamp b{display:block;font-size:100px;font-weight:300;line-height:1.1}.menu-stamp small{font-size:8px;letter-spacing:2px}footer{position:absolute;bottom:24px;left:40px;right:40px;border-top:1px solid #ffffff20;padding-top:14px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#9aadb6}details{font-size:10px;color:#a8b7be;line-height:1.9}summary{cursor:pointer;letter-spacing:1px}details p{background:#102330e6;padding:12px;position:relative;z-index:2;margin-top:6px}.overlay{position:fixed;inset:0;background:#05121db8;backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:30}.panel,.result-panel{padding:40px;background:#112632ed;border:1px solid #ffffff20;box-shadow:0 30px 100px #0005;width:470px}.panel h2{font-size:32px;letter-spacing:-1.5px;margin:20px 0 8px}.panel p{font-size:12px;color:var(--muted);line-height:1.7}.panel>label{display:flex;align-items:center;font-size:12px;margin:22px 0;gap:10px}.panel input{margin-left:auto;width:160px;accent-color:var(--amber)}.panel output{font:11px monospace;width:34px}.panel .primary,.result-panel .primary{width:100%;margin-top:25px}.secondary{width:100%;background:transparent;border:1px solid #ffffff25;padding:12px;color:#bac7cd;margin-top:10px;font-size:11px}.fine{font-size:10px!important;opacity:.7}#hud{position:fixed;inset:0;pointer-events:none;text-shadow:0 2px 5px #0009;z-index:5}#vignette{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #06152670;z-index:2}#damage-flash{position:fixed;inset:0;pointer-events:none;z-index:3;box-shadow:inset 0 0 160px #cf283d;opacity:0}.top-left{position:absolute;left:30px;top:27px}.small-logo{font-size:18px;letter-spacing:-.4px}.small-logo span{color:var(--amber);margin:0 3px}.sector{font-size:8px;letter-spacing:2px;color:#bdccd4;margin-top:8px}.sector span{margin-left:12px;letter-spacing:1px;color:#e2e9e8}.top-right{position:absolute;right:30px;top:25px;text-align:right}.alive{display:flex;gap:9px;align-items:baseline;justify-content:flex-end}.alive strong{font-size:33px;line-height:1}.alive b{font-size:20px;margin-left:16px;color:var(--amber)}.alive span{font-size:10px;color:#dbe3e7}#zone-label{margin-top:13px;letter-spacing:2px;font-size:9px;color:#cddce1}#zone-clock{font-size:22px;font-family:monospace;font-weight:bold;margin-top:4px}#compass{position:absolute;left:50%;top:27px;transform:translateX(-50%);width:460px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#dbe4e8}#compass::after{content:'';position:absolute;left:50%;top:22px;border:4px solid transparent;border-top-color:var(--amber)}#compass span{font-size:9px;opacity:.65}#compass b{font-size:15px;color:#fff}#killfeed{position:absolute;right:30px;top:145px;width:300px;text-align:right;font-size:10px;line-height:2.6}#killfeed>div{margin-bottom:2px;background:linear-gradient(90deg,transparent,#0b213388);padding:0 10px}#killfeed b{color:var(--amber)}#crosshair{position:absolute;top:50%;left:50%;--gap:9px}#crosshair i{position:absolute;width:7px;height:2px;background:#fff;box-shadow:0 0 2px #000}#crosshair i:nth-child(1){left:calc(-7px - var(--gap));top:-1px}#crosshair i:nth-child(2){left:var(--gap);top:-1px}#crosshair i:nth-child(3){left:-1px;top:calc(-7px - var(--gap));width:2px;height:7px}#crosshair i:nth-child(4){left:-1px;top:var(--gap);width:2px;height:7px}#crosshair b{position:absolute;left:-1px;top:-1px;width:2px;height:2px;background:#fff}#blocked{position:absolute;color:#ff574f;left:50%;top:50%;transform:translate(-50%,-50%);font-size:25px;text-align:center}#blocked small{position:absolute;font-size:9px;white-space:nowrap;left:50%;transform:translateX(-50%);top:30px}#hitmarker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:38px;line-height:1;font-weight:200;opacity:0;color:#fff}#hit-label{position:absolute;top:calc(50% + 32px);left:50%;transform:translateX(-50%);font-size:11px;color:var(--amber)}#damage-direction{position:absolute;top:50%;left:50%;width:170px;height:170px;margin:-85px;border-top:5px solid #ff535e;border-radius:50%;opacity:0}#banner{position:absolute;left:50%;top:15%;transform:translateX(-50%);text-align:center;opacity:0;transition:opacity .3s;min-width:400px}#banner span{display:block;font-size:9px;letter-spacing:3px;color:var(--amber);margin-bottom:8px}#banner b{font-size:24px;letter-spacing:1px;font-weight:500}#zone-warning{position:absolute;top:23%;left:50%;transform:translateX(-50%);color:#ff9c95;background:#7f162488;border:1px solid #ff778d70;padding:10px 20px;font-size:12px}#interact{position:absolute;left:50%;top:66%;transform:translateX(-50%);padding:9px 14px;background:#142b37ce;border:1px solid #ffd89c70;font-size:12px;display:flex;gap:14px;align-items:center}kbd{font:9px Arial;border:1px solid #d1dee24d;background:#0c20345a;display:inline-flex;justify-content:center;align-items:center;min-width:19px;height:19px;padding:2px 4px;color:#e1e9ee}#action{position:absolute;left:50%;top:61%;transform:translateX(-50%);width:160px;text-align:center;font-size:10px}#action>div{height:3px;background:#0005;margin-top:10px}#action i{height:100%;display:block;background:var(--amber);width:0}#toast{position:absolute;left:50%;bottom:24%;transform:translateX(-50%);font-size:12px;letter-spacing:1px;color:var(--amber)}.bottom-left{position:absolute;left:30px;bottom:40px;width:255px}.status-title{font-size:8px;letter-spacing:1px;display:flex;justify-content:space-between;color:#c1ccd2}.status-title b{color:#fff;margin-left:7px}#stance{font-size:8px;color:var(--amber)}.hp-row{display:flex;gap:10px;align-items:center;margin-top:10px}.health{width:220px;height:8px;background:#071926a8;box-shadow:0 0 0 1px #ffffff28;padding:2px}.health i{display:block;height:100%;background:#edf1e3;width:100%;transition:width .1s}.hp-row>strong{font-family:monospace;font-size:18px}.armor-row{display:flex;gap:6px;align-items:center;font-size:8px;margin-top:9px;color:#cad7da}.armor-row>div{width:65px;height:3px;background:#071926af}.armor-row i{display:block;width:0;height:100%;background:#87d8ed}.armor-row>b{font-family:monospace}.medkit{margin-left:auto}.medkit b{color:#f1efdb;margin-left:4px}#echo-charge{margin-top:19px;display:flex;align-items:center;gap:8px;font-size:10px}#echo-charge>div{flex:1;height:3px;background:#071926b0}#echo-charge i{display:block;background:var(--amber);height:100%;width:100%}#echo-charge b{font-size:8px;font-weight:400;color:var(--amber)}.bottom-center{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);display:flex;gap:17px;font-size:9px;color:#c9d2d4;opacity:.7}.bottom-center kbd{margin-right:4px}.bottom-right{position:absolute;right:30px;bottom:40px;text-align:right;width:245px}#weapon-type{font-size:8px;color:#b6c8ce;letter-spacing:2px}#weapon-name{font-size:18px;letter-spacing:2px;margin-top:4px;font-weight:700}.ammo{display:flex;align-items:baseline;justify-content:flex-end;gap:8px}.ammo>strong{font-size:46px;line-height:1.25;font-weight:800}.ammo>span{font-size:16px;color:#b6c8ce}.ammo i{font-style:normal;font-size:7px;border:1px solid #bccbdc55;padding:3px;margin-left:10px}.weapon-slots{display:flex;gap:8px;justify-content:flex-end;margin-top:5px;font-size:9px}.weapon-slots>span{background:#08192890;padding:5px 9px;border-top:2px solid #c0cbd02a;color:#a7bac3}.weapon-slots>span.selected{border-top-color:var(--amber);color:white}.weapon-slots kbd{border:0;background:none;color:var(--amber);height:14px;min-width:12px}#minimap-wrap{position:absolute;bottom:218px;left:30px;width:160px;background:#0d2437d4;border:1px solid #bfd5db50;box-shadow:0 6px 20px #0003}#minimap{width:158px;height:158px;display:block}#minimap-wrap>div{padding:4px 7px;display:flex;justify-content:space-between;align-items:center;font-size:7px;letter-spacing:1px;color:#b0c8d3}#minimap-wrap kbd{width:14px;height:14px;font-size:8px}#minimap-wrap.expanded{width:360px;bottom:200px}#minimap-wrap.expanded canvas{width:358px;height:358px}#fps{position:absolute;right:30px;bottom:15px;font:8px monospace;color:#bdc8ca90}#opening-hint{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);text-align:center;background:#0d243880;padding:12px 20px;border-left:2px solid var(--amber)}#opening-hint b{display:block;font-size:12px;margin-bottom:6px}#opening-hint span{font-size:10px;color:#c7d4d9}.result-panel{width:650px;text-align:center;padding:50px}.result-panel h2{font-size:60px;letter-spacing:-4px;margin:24px 0 10px}.result-panel>p{font-size:12px;color:#c4d2d7}.result-stats{display:flex;justify-content:space-between;border-top:1px solid #ffffff22;border-bottom:1px solid #ffffff22;padding:24px 0;margin:28px 0 16px}.result-stats strong{display:block;font-size:30px}.result-stats span{display:block;font-size:10px;color:#acc0c9;margin-top:8px}.result-detail{font-size:11px;line-height:1.8;color:#c5d3d8}.result-panel.won{border-color:#ffbd6b77}.result-panel.won h2{color:var(--amber)}#fatal{position:absolute;inset:20px;background:#251921;color:#ffc7c7;z-index:100;padding:35px;white-space:pre-wrap}
@media(max-height:780px){.menu-content{top:10vh}h1{font-size:70px;margin:24px 0 20px}.tagline{margin-top:24px;font-size:18px}.intro{margin:12px 0 21px}.menu-content{left:170px}.menu-rail{left:30px;width:95px}.menu-bottom{margin:12px 0}.panel{padding:28px}.panel>label{margin:16px 0}.result-panel h2{font-size:52px}}
#hud{background:linear-gradient(180deg,rgba(8,25,39,.42),transparent 21%,transparent 74%,rgba(8,25,39,.52))}.top-left,.top-right,#compass{filter:drop-shadow(0 1px 2px #071726)}.bottom-left,.bottom-right{text-shadow:0 1px 4px #061521}
/* V2 art direction and tactical hierarchy. DOM remains separate from shot input. */
:root{--gold:#ffc482;--panel:rgba(12,26,35,.9)}
#vignette{background:radial-gradient(ellipse at 50% 40%,transparent 45%,rgba(9,18,26,.35) 100%)}
#menu{background:linear-gradient(90deg,rgba(8,20,29,.97) 0%,rgba(8,20,29,.83) 34%,rgba(8,20,29,.1) 75%)}
.menu-content{max-width:640px}.menu-content h1{font-size:clamp(65px,7.3vw,118px);letter-spacing:-.07em}.menu-content h1 i{font-size:17px;letter-spacing:.48em;color:#ffcc8d;margin-top:20px}.tagline{font-size:19px!important;color:#f3d6b0!important}.intro{font-size:14px!important;line-height:1.85!important;color:#a6bbc6!important}.primary{background:#edb478!important;color:#152c37!important;border:1px solid #ffd3a2!important;box-shadow:0 5px 30px #e19a3d1c}.primary:hover{background:#ffcb8e!important}.menu-stamp{color:#ecc296!important}.menu-stamp b{font-size:120px!important}
.top-left{top:24px!important;left:28px!important}.small-logo{font-size:18px!important;letter-spacing:.16em}.sector{font-size:10px!important;margin-top:6px!important}.top-right{top:21px!important;right:28px!important;background:linear-gradient(110deg,#102a37d9,#12222e85);padding:13px 18px;border-right:2px solid #e7bb7b}.alive strong{font-size:31px!important}#zone-clock{font-size:20px!important}#zone-label{font-size:10px!important}
#banner{top:20%!important}#banner b{font-size:26px!important}#banner span{font-size:9px!important;letter-spacing:.27em}#opening-hint{display:none!important}#killfeed{top:160px!important;right:28px!important;font-size:10px!important}#fps{opacity:.45;font-size:8px!important}.bottom-center{display:none!important}#minimap-wrap{width:158px!important;height:174px!important;bottom:164px!important;right:28px!important}#minimap-wrap canvas{width:158px!important;height:158px!important}#minimap-wrap.expanded{width:320px!important;height:338px!important}#minimap-wrap.expanded canvas{width:320px!important;height:320px!important}.bottom-left{left:28px!important;bottom:39px!important;width:300px!important}.bottom-right{right:28px!important;bottom:36px!important}#weapon-name{font-size:24px!important}.ammo strong{font-size:46px!important}#compass{opacity:.85}
#v2-layer{position:absolute;inset:0;pointer-events:none;font-family:Arial,'Malgun Gothic',sans-serif;color:#eef1e8}
#mission-card{position:absolute;top:108px;left:28px;width:247px;padding:13px 15px 12px;background:linear-gradient(105deg,#122831e8,#152c356c);border-left:2px solid #e1b076;border-top:1px solid #bbd0d021;box-shadow:0 6px 24px #05111a18}.mission-eyebrow{font-size:8px;font-weight:bold;letter-spacing:1.5px;color:#d3b484;margin-bottom:9px}#mission-title{font-size:17px;font-weight:700}#mission-detail{font-size:11px;color:#bdd0d5;margin:8px 0 7px;line-height:1.5}#mission-reward{font-size:9px;color:#f0c593}#mission-card.contested{border-color:#ff7763;background:#472d28db}#mission-progress{height:3px;background:#101f2b;margin:9px 0}#mission-progress i{display:block;height:100%;background:#ffc685}
#gear-card{position:absolute;bottom:173px;left:28px;width:280px;padding:9px 10px;background:linear-gradient(90deg,#162b36df,#152b3377);border:1px solid #e6bb762c}#gear-tier{font-size:11px;color:#ffd292}#gear-text{float:right;font-size:10px;color:#acbec7}#gear-card>div{height:2px;background:#43565b;margin-top:7px}#gear-progress{display:block;background:#f6c485;height:100%;transition:width .2s}
#radio{position:absolute;bottom:57px;left:50%;transform:translateX(-50%);width:390px;padding:10px 17px;border-left:2px solid #96bfc5;background:linear-gradient(90deg,#10232fef,#10232fa1);transition:opacity .5s}#radio>span{font-size:9px;letter-spacing:1px;color:#82b4bf}#radio p{font-size:12px;line-height:1.6;margin:6px 0 0;color:#d4e0e1}
#combat-reward{position:absolute;top:64%;left:50%;transform:translateX(-50%);font-size:14px;font-weight:700;color:#ffdc9d;text-shadow:0 2px 5px #08121f;transition:opacity .22s;white-space:nowrap}
#noise-meter{position:absolute;bottom:218px;left:28px;width:143px;height:22px;border-top:2px solid #879ba633;background:#11273699}#noise-meter i{position:absolute;top:-2px;left:0;height:2px;background:#94bbc2;transition:width .2s}#noise-meter span{font-size:9px;line-height:22px;padding:0 8px;color:#b5c6cb}#v2-help{position:absolute;bottom:13px;left:28px;font-size:9px;color:#a2b4bc}#v2-help span{padding:0 8px}#v2-help kbd{font-size:9px}
.relay-marker{position:absolute;transform:translate(-50%,-100%);text-align:center;filter:drop-shadow(0 2px 3px #000)}.relay-marker b{font-size:33px;font-weight:400;color:#ffd294;display:block;line-height:32px}.relay-marker span{font-size:10px;color:#ffe0b6;background:#122732c9;padding:5px 8px;white-space:nowrap}
.enemy-tag{position:absolute;transform:translate(-50%,-100%);width:70px;text-align:center;filter:drop-shadow(0 1px 2px #001)}.enemy-tag span{font-size:9px;background:#172638d9;padding:3px 6px;color:#a8d7e6}.enemy-tag>div{height:3px;background:#20364de8;margin-top:5px}.enemy-tag i{display:block;height:100%;background:#abe4e7}.enemy-tag.windup span{background:#542c30ee;color:#ffb290;box-shadow:0 0 10px #ef725033}.damage-number{position:absolute;transform:translate(-50%,-100%);font-size:17px;color:#d8f4f8;text-shadow:0 2px 3px #162130;pointer-events:none}.damage-number.head{color:#ffd18a;font-size:21px}
@media(max-width:1000px){#mission-card{width:210px;top:90px}#radio{width:310px;bottom:235px}.menu-content h1{font-size:70px}#v2-help{font-size:8px}.bottom-left{width:260px!important}#gear-card{width:240px}}
#minimap-wrap{left:auto!important} #mission-detail{font-size:12px} #mission-reward{font-size:10px} #gear-tier{font-size:12px} #gear-text{font-size:11px}
.relay-edge{position:absolute;color:#ffcf93;font-size:11px;background:#182a34d9;border-top:1px solid #ddad7170;padding:8px 10px;max-width:190px}
#sound-caption{position:absolute;left:50%;bottom:202px;transform:translateX(-50%);font-size:10px;color:#b5d5df;letter-spacing:1px;text-shadow:0 2px 4px #00151f}
#gear-card.upgraded{border-color:#ffe0a9;box-shadow:0 0 24px #f4b2674a;background:#533e29d9}

/* V3: weapon remains visible; reaction signals keep the sight line clear. */
#hitmarker{font-size:42px;font-weight:900;filter:drop-shadow(0 0 7px #b5e6ef);line-height:1;transition:opacity .045s}
#hit-label{font-size:12px;font-weight:800;letter-spacing:1px;top:calc(50% + 32px)}
#damage-flash{box-shadow:inset 0 0 90px 22px #b82a31;background:radial-gradient(ellipse at center,transparent 52%,#d34a4325 85%,#ac162866)}
#damage-direction{width:13px;height:13px;border:2px solid #ff8172;border-radius:2px;background:#dc3c35;transform-origin:50% 110px}
#kill-confirm{position:absolute;left:50%;top:calc(50% + 90px);transform:translateX(-50%);font-size:18px;font-weight:800;color:#ffdfae;letter-spacing:.5px;text-shadow:0 2px 5px #111,0 0 14px #a4642a;opacity:0;white-space:nowrap}
#kill-confirm.pop{animation:kill-arrive .2s ease-out}@keyframes kill-arrive{from{transform:translateX(-50%) scale(1.25)}to{transform:translateX(-50%) scale(1)}}
.first-person #vignette{box-shadow:inset 0 0 110px #14221936}
.first-person .bottom-right{right:28px;bottom:48px}.first-person #weapon-name{font-size:20px}.first-person .ammo strong{font-size:46px}
.weapon-slots{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex!important;gap:6px!important;white-space:nowrap}.weapon-slots>span{font-size:10px;padding:8px 11px;background:#10232dbd;border-bottom:2px solid #607077}.weapon-slots>span.selected{border-color:#ffd18f;background:#67472ccc;color:#ffe3b9}.weapon-slots>span.locked:after{content:' · 탐색';font-size:8px;color:#b9bec1}
#radio{left:28px;bottom:267px;transform:none;width:286px;padding:8px 11px}#radio p{font-size:11px;line-height:1.5}#combat-reward{top:calc(50% + 126px);font-size:12px}
.damage-number{font-size:22px;font-weight:900;text-shadow:0 2px 3px #04121b,0 0 9px #649bac}.damage-number.head{font-size:27px}.enemy-tag{width:86px}.enemy-tag span{font-size:10px}.enemy-tag.windup span{border:1px solid #ff9777;background:#482e2ee8}
#minimap-wrap{width:132px;height:132px;right:28px;bottom:192px}#minimap-wrap canvas{width:100%;height:100%}#minimap-wrap.expanded{width:330px;height:330px}
#v2-help{bottom:18px;max-width:260px;font-size:8px}#sound-caption{bottom:170px;font-size:12px;color:#d7e4e6}
@media(max-width:1000px){.weapon-slots{left:auto;right:15px;transform:none}.weapon-slots>span{padding:5px;font-size:9px}.weapon-slots>span.locked:after{content:''}#radio{width:235px;bottom:277px}#minimap-wrap{width:108px;height:108px}}
