:root{font-family:Noto Sans TC,system-ui,sans-serif;color:#edf3ed;background:#09131b;font-synthesis:none;--ink:#09131b;--deep:#0e1b24;--gold:#f4bd63;--gold-bright:#ffd38c;--cyan:#6ad7c7;--red:#ed7765}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}button,select{font:inherit}button{cursor:pointer}#game-root{position:relative;width:100vw;height:100dvh;overflow:hidden;background:radial-gradient(circle at 70% 50%,#203544,#0a131b 72%)}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 72% at 50% 45%,transparent 32%,rgba(0,7,11,.25) 75%,rgba(0,4,8,.64) 100%)}.grain{position:absolute;inset:0;pointer-events:none;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E")}#damage-flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 35%,rgba(241,67,46,.6) 100%);transition:opacity .25s}.hidden{display:none!important}.brand-corner{position:absolute;z-index:5;top:24px;left:28px;letter-spacing:.16em;font:700 15px Rajdhani,sans-serif;color:#ebdbc3;text-shadow:0 1px 8px #0009}.brand-glyph{font-size:24px;vertical-align:-2px;color:var(--gold);margin-right:7px}.brand-thin{color:#7f968c;padding:0 4px}.panel{position:absolute;z-index:15;color:#f4f0e8;backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}.menu-panel{left:0;top:0;height:100%;width:min(930px,80vw);padding:30px clamp(30px,5vw,92px) 25px;background:linear-gradient(90deg,#071119fa,#0b1820f5 71%,#0a171fc9);border-right:1px solid #d2aa614c;box-shadow:28px 0 80px #020b10b8;display:flex;flex-direction:column}.panel-overline,.eyebrow,.modal-overline,.panel-bottom,.intel-top,.label-mini,.hud-keyhint,.hud-top small,.top-label,.mission-prompt,.modal-hint,.menu-footnote{font-family:Rajdhani,Noto Sans TC,sans-serif;letter-spacing:.14em}.panel-overline{display:flex;align-items:center;gap:13px;margin-top:5px;color:#d1b68a;font-size:13px;font-weight:700}.live-dot,.status-dot{width:7px;height:7px;display:inline-block;background:var(--gold);box-shadow:0 0 11px var(--gold);border-radius:50%}.overline-rule{width:34px;height:1px;background:#9c815b80}.menu-grid{display:grid;grid-template-columns:minmax(0,1fr) 238px;align-items:center;gap:34px;flex:1;min-height:0}.menu-copy{padding-top:20px}.eyebrow{color:var(--cyan);font-size:13px;font-weight:700;margin-bottom:18px}h1{font-size:clamp(68px,7.2vw,112px);line-height:.94;letter-spacing:-.07em;margin:0;font-weight:900;white-space:nowrap;text-shadow:0 4px 35px #0005}h1 span{color:var(--gold)}.english-title{font:700 clamp(28px,2.9vw,42px) Rajdhani,sans-serif;letter-spacing:.13em;color:#ecf3ef;margin:12px 0 29px;white-space:nowrap}.menu-lead{font-size:14px;line-height:2.1;color:#b5c4c5;margin:0 0 30px;letter-spacing:.05em}.mission-stats{display:flex;border-top:1px solid #94a9a63b;border-bottom:1px solid #94a9a63b;padding:16px 0;margin-bottom:26px;gap:0}.mission-stats>div{flex:1;display:flex;flex-direction:column;gap:2px;padding-left:17px;border-left:1px solid #94a9a62c}.mission-stats>div:first-child{padding-left:0;border:0}.mission-stats strong{font:700 28px Rajdhani,sans-serif;letter-spacing:.04em;color:#f4d09c}.mission-stats .unit{font-size:18px}.mission-stats span:not(.unit){font-size:11px;color:#91a3a7;letter-spacing:.1em}.difficulty-block label{font-size:11px;color:#a8b3b5;letter-spacing:.14em;display:block;margin-bottom:10px}.difficulty-options{display:flex;gap:7px}.difficulty{border:1px solid #61747a7e;background:#192a32a8;color:#c7d0cb;padding:9px 11px;text-align:left;min-width:0;flex:1;font-size:13px;font-weight:700;transition:.18s}.difficulty small{display:block;color:#8fa19f;font-size:10px;font-weight:400;margin-top:3px;white-space:nowrap}.difficulty.selected,.difficulty:hover{border-color:var(--gold);background:#7154314d;color:#ffe2ae}.difficulty.selected small{color:#ddc397}.primary-button{margin-top:25px;width:100%;height:56px;padding:0 18px;border:1px solid #ffce82;background:linear-gradient(120deg,#f5bb60,#e5a94c);color:#142027;font-size:16px;letter-spacing:.14em;font-weight:800;display:flex;justify-content:space-between;align-items:center;box-shadow:0 0 0 4px #d6a35226,inset 0 1px #fff5;transition:transform .15s,filter .15s,box-shadow .15s}.primary-button:hover{filter:brightness(1.09);transform:translateY(-2px);box-shadow:0 8px 24px #b9833659,0 0 0 4px #d6a35226}.primary-button:active{transform:translateY(0)}.button-arrow{font:700 25px Rajdhani,sans-serif}.menu-footnote{margin-top:15px;color:#80969a;font-size:11px}.menu-footnote span{color:var(--gold);padding:0 5px}.panel-bottom{display:flex;justify-content:space-between;color:#75898d;border-top:1px solid #84979832;padding-top:15px;font-size:11px;font-weight:600}.intel-card{position:relative;margin-top:50px;border:1px solid #7e98957b;background:#101f28d9;box-shadow:0 16px 40px #0006,inset 0 0 0 4px #b8a16b0d}.intel-top{display:flex;justify-content:space-between;padding:12px 13px;border-bottom:1px solid #a5bcb03c;font:700 12px Rajdhani;color:#e6c58d}.intel-top span{color:#819ba0}.intel-map{height:225px;position:relative;overflow:hidden;background:linear-gradient(135deg,#192d36,#10222b)}.map-grid{position:absolute;inset:0;background-image:linear-gradient(#7192941c 1px,transparent 1px),linear-gradient(90deg,#7192941c 1px,transparent 1px);background-size:18px 18px;transform:rotate(-8deg) scale(1.3)}.map-path{position:absolute;background:#baae8050;border:2px solid #d2c1986b;box-shadow:0 0 0 2px #172931}.path-a{width:29px;height:150px;left:33px;top:37px;transform:rotate(-12deg)}.path-b{width:42px;height:170px;left:104px;top:24px;transform:rotate(14deg)}.path-c{width:33px;height:130px;right:35px;top:45px;transform:rotate(-17deg)}.map-pin{position:absolute;z-index:1;font-size:22px;text-shadow:0 0 12px currentColor}.pin-player{color:#67d4c5;left:44px;bottom:25px}.pin-enemy{color:#ea8265;right:43px;top:24px}.map-scan{position:absolute;inset:0;background:linear-gradient(0deg,transparent 47%,#90dbba4a 50%,transparent 53%);animation:scan 4s linear infinite}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.intel-bottom{padding:15px 13px 18px;display:grid;gap:5px}.intel-bottom strong{font-size:14px;color:#ebd6b2}.intel-bottom span{font-size:11px;color:#9cb0ae;line-height:1.6}.modal{top:50%;left:50%;transform:translate(-50%,-50%);width:min(450px,calc(100vw - 32px));padding:32px 34px;background:linear-gradient(142deg,#13252df5,#09161df2);border:1px solid #d5b47694;box-shadow:0 24px 90px #02080bd9,inset 0 0 0 5px #c8ad6712}.modal:before{content:"";position:absolute;width:38px;height:3px;left:34px;top:0;background:var(--gold)}.modal-overline{font-size:12px;font-weight:700;color:var(--gold);margin-bottom:17px}.modal h2{margin:0 0 8px;font-size:36px;letter-spacing:.04em}.modal p{margin:0 0 18px;color:#aabbb9;font-size:14px;line-height:1.7}.modal .primary-button{margin-top:22px}.text-button{background:none;border:0;color:#a8b9b4;display:block;margin:21px auto 0;letter-spacing:.1em;font-size:13px}.text-button:hover{color:#f6d19a}.modal-hint{text-align:center;margin-top:22px;font-size:11px;color:#678086}.result-stats{display:flex;border-top:1px solid #819b9252;border-bottom:1px solid #819b9252;margin:20px 0;padding:16px 0}.result-stats>div{flex:1;border-left:1px solid #819b9252;padding-left:17px}.result-stats>div:first-child{border:0;padding:0}.result-stats span{display:block;font-size:11px;color:#8da5a5}.result-stats strong{display:block;font:700 27px Rajdhani;color:#f5cf91;margin-top:4px}.modal.failure .modal-overline,.modal.failure h2{color:#f18b75}.hud{position:absolute;z-index:10;inset:0;pointer-events:none}.hud-top{position:absolute;top:19px;left:50%;transform:translate(-50%);width:min(760px,calc(100vw - 200px));display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.top-label{font-size:13px;font-weight:700;color:#f2e8d5;padding-top:8px;white-space:nowrap;text-shadow:0 2px 6px #000}.top-label small{display:block;font-size:10px;color:#8ca5a5;margin:2px 0 0 17px}.tiny-mark{display:inline-block;width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg);margin-right:7px}.score-box{min-width:144px;text-align:center;padding:3px 12px 8px;background:#07141bbd;border:1px solid #c6ae7e8c;box-shadow:0 5px 23px #0008;font:700 29px Rajdhani,sans-serif;color:#f3d09b;line-height:1}.score-box span:first-child{color:var(--cyan)}.score-box span:nth-child(3){color:var(--red)}.score-divider{color:#8a9895;padding:0 10px}.score-box small{display:block;font-size:10px;color:#aab9ac;margin-top:4px}.top-right{text-align:right;min-width:138px}.top-right>div{font:700 32px Rajdhani;color:#f2e8d5;line-height:1;text-shadow:0 2px 9px #000}.top-right small{font-size:11px;color:#bac7bd}.top-right .status-dot{width:5px;height:5px;background:var(--red);box-shadow:0 0 8px var(--red);margin-right:7px;vertical-align:2px}.crosshair{position:absolute;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 2px #06100c)}.crosshair i{position:absolute;background:#ecf4db}.crosshair i:nth-child(1),.crosshair i:nth-child(2){width:2px;height:7px;left:14px}.crosshair i:nth-child(1){top:0}.crosshair i:nth-child(2){bottom:0}.crosshair i:nth-child(3),.crosshair i:nth-child(4){height:2px;width:7px;top:14px}.crosshair i:nth-child(3){left:0}.crosshair i:nth-child(4){right:0}.crosshair b{position:absolute;width:2px;height:2px;left:14px;top:14px;background:#f6d28f}.hit-marker{position:absolute;left:50%;top:50%;width:36px;height:36px;transform:translate(-50%,-50%);opacity:0;transition:opacity .14s}.hit-marker.active{opacity:1}.hit-marker i{position:absolute;width:7px;height:2px;background:#f8d583;box-shadow:0 0 8px #ffac49}.hit-marker i:nth-child(1){left:3px;top:6px;transform:rotate(45deg)}.hit-marker i:nth-child(2){right:3px;top:6px;transform:rotate(-45deg)}.hit-marker i:nth-child(3){left:3px;bottom:6px;transform:rotate(-45deg)}.hit-marker i:nth-child(4){right:3px;bottom:6px;transform:rotate(45deg)}.hud-bottom{position:absolute;bottom:35px;left:44px;right:44px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.health-wrap,.ammo-wrap{padding:11px 14px 9px;background:linear-gradient(90deg,#06131bc9,#06131b65);border-left:2px solid #90d7bb;min-width:173px}.ammo-wrap{text-align:right;border-left:0;border-right:2px solid var(--gold);background:linear-gradient(270deg,#06131bc9,#06131b65)}.label-mini{font-size:10px;color:#9db9b3;font-weight:700}.health-number,.ammo-number{font:700 38px Rajdhani;color:#e7f3e6;line-height:1.05}.health-icon{font:700 21px Rajdhani;color:var(--cyan);margin-right:9px}.health-track{height:3px;background:#769a9170;margin-top:7px}.health-track>div{height:100%;width:100%;background:var(--cyan);box-shadow:0 0 10px var(--cyan);transition:width .2s}.ammo-number>span:first-child{color:var(--gold-bright)}.ammo-number em{font:500 20px Rajdhani;color:#748e91;font-style:normal;margin:0 6px}.ammo-number>span:last-child{font-size:24px;color:#a0b7b8}.mission-prompt{font-size:13px;color:#dfebdf;text-shadow:0 2px 7px #000;white-space:nowrap;margin-bottom:9px}.mission-prompt span{color:var(--gold);padding:0 5px}.reload-indicator{height:3px;margin-top:7px}.reload-indicator.active{background:linear-gradient(90deg,var(--gold) var(--reload-progress,0%),#84684588 var(--reload-progress,0%))}.hud-keyhint{position:absolute;bottom:8px;left:50%;transform:translate(-50%);font-size:11px;white-space:nowrap;color:#b2c3be;text-shadow:0 1px 5px #000}.hud-keyhint span{color:#d7a45a;padding:0 5px}.announcement{position:absolute;top:27%;left:50%;transform:translate(-50%);font-size:17px;letter-spacing:.16em;font-weight:800;color:#ffe2a8;padding:9px 26px;background:#0c1d24d9;border-top:1px solid #dcb56d80;border-bottom:1px solid #dcb56d80;text-shadow:0 2px 8px #000}.kill-feed{position:absolute;right:26px;top:103px;display:grid;gap:7px;text-align:right;font:600 12px Rajdhani;color:#e8daba;text-shadow:0 1px 4px #000}.kill-feed>div{background:#07151ab8;padding:5px 9px;border-right:2px solid var(--gold)}.touch-controls{position:absolute;z-index:12;inset:0;pointer-events:none}.joystick{pointer-events:auto;position:absolute;width:110px;height:110px;bottom:38px;left:32px;border:1px solid #c3d9ce8f;border-radius:50%;background:#0c202684;touch-action:none}.joystick:before,.joystick:after{content:"";position:absolute;background:#c3d9ce50}.joystick:before{width:1px;height:100%;left:50%}.joystick:after{height:1px;width:100%;top:50%}#joystick-knob{position:absolute;z-index:1;width:46px;height:46px;border-radius:50%;left:31px;top:31px;background:#c3ddca9c;border:2px solid #e6f5dd}.look-zone{position:absolute;right:0;top:15%;width:53%;height:70%;pointer-events:auto;touch-action:none}.touch-action{position:absolute;pointer-events:auto;touch-action:none;border:1px solid #e5cd9faa;border-radius:50%;background:#162a32c9;color:#f8dfab;font-weight:800;box-shadow:0 0 0 4px #0d1c227a;text-shadow:0 1px 2px #000}.touch-action:active,.touch-action.pressed{background:#dca958;color:#10212a}.touch-action.fire{right:31px;bottom:55px;width:76px;height:76px;font-size:16px}.touch-action.reload{right:126px;bottom:45px;width:49px;height:49px;font-size:30px}.touch-action.sprint{left:156px;bottom:42px;width:53px;height:53px;font-size:12px}.touch-action.pause{right:23px;top:23px;width:39px;height:39px;font-size:17px}.orientation-warning{position:absolute;z-index:30;bottom:15px;left:50%;transform:translate(-50%);white-space:nowrap;background:#111e23e8;color:#f6dfa8;padding:8px 14px;font-size:12px;border:1px solid #d1b06a6b}@media(max-width:1000px){.menu-panel{width:min(800px,87vw)}.menu-grid{grid-template-columns:minmax(0,1fr) 185px;gap:25px}.intel-map{height:175px}.menu-copy{padding-top:0}.menu-lead{margin-bottom:20px}.mission-stats{margin-bottom:18px}}@media(max-width:700px){.brand-corner{top:13px;left:17px;font-size:12px}.menu-panel{width:100%;padding:15px 22px 18px;overflow-y:auto}.menu-grid{display:block;margin:auto 0}.intel-card{display:none}.panel-overline{font-size:10px;margin:26px 0 22px}.menu-copy{padding:0}.eyebrow{font-size:10px;margin-bottom:10px}h1{font-size:clamp(57px,13vw,83px)}.english-title{font-size:27px;margin:7px 0 14px}.menu-lead{font-size:12px;margin-bottom:15px;line-height:1.7}.mission-stats{padding:10px 0;margin-bottom:16px}.mission-stats strong{font-size:23px}.difficulty-block label{margin-bottom:7px}.difficulty{padding:7px;font-size:12px}.difficulty small{font-size:9px}.primary-button{height:48px;margin-top:16px}.menu-footnote{font-size:10px;margin-top:11px}.panel-bottom{font-size:9px;margin-top:20px}.hud-top{width:calc(100vw - 70px);top:9px}.top-label{display:none}.score-box{min-width:99px;font-size:22px;padding:4px 5px}.score-box small{font-size:8px}.top-right{min-width:90px}.top-right>div{font-size:26px}.top-right small{font-size:9px}.hud-bottom{left:12px;right:12px;bottom:9px}.health-wrap,.ammo-wrap{min-width:94px;padding:6px 7px 5px}.health-number,.ammo-number{font-size:27px}.health-icon{font-size:15px;margin-right:2px}.ammo-number>span:last-child{font-size:17px}.ammo-number em{margin:0 2px;font-size:14px}.label-mini{font-size:8px}.mission-prompt,.hud-keyhint{display:none}.kill-feed{top:67px;right:9px}.announcement{top:21%;font-size:13px;white-space:nowrap}.modal{padding:24px}.modal h2{font-size:28px}.result-stats strong{font-size:22px}}@media(max-height:630px)and (min-width:701px){.menu-panel{padding-top:18px;padding-bottom:16px}.menu-grid{gap:20px}.menu-copy{padding-top:0}.eyebrow{margin-bottom:8px}.english-title{margin:4px 0 9px}.menu-lead{margin-bottom:12px;line-height:1.5}.mission-stats{padding:9px 0;margin-bottom:12px}.primary-button{margin-top:14px;height:47px}.intel-card{margin-top:0}.intel-map{height:150px}.panel-bottom{padding-top:8px}}.settings-row{display:flex;gap:17px;margin-top:17px}.settings-row label{font-size:10px;letter-spacing:.08em;color:#aabbb7;flex:1}.settings-row input{display:block;width:100%;height:14px;margin-top:5px;accent-color:#e8b05a;cursor:pointer}.modal-settings{padding:14px 0;margin-top:16px;border-top:1px solid #819b9252;border-bottom:1px solid #819b9252}.modal #drag-button,.modal #restart-button{margin-top:14px}@media(max-width:700px){.settings-row{margin-top:11px}.settings-row label{font-size:9px}}@media(min-width:701px)and (max-height:800px){.menu-panel{padding-top:18px;padding-bottom:15px}.menu-grid{gap:22px}.menu-copy{padding-top:0}.eyebrow{margin-bottom:9px}h1{font-size:clamp(58px,6.1vw,82px)}.english-title{font-size:clamp(25px,2.5vw,34px);margin:6px 0 12px}.menu-lead{line-height:1.55;margin-bottom:15px}.mission-stats{padding:10px 0;margin-bottom:15px}.mission-stats strong{font-size:25px}.difficulty-block label{margin-bottom:6px}.difficulty{padding:7px 8px}.settings-row{margin-top:10px}.primary-button{margin-top:14px;height:48px}.menu-footnote{margin-top:8px}.panel-bottom{padding-top:8px}.intel-card{margin-top:0}.intel-map{height:170px}}.webgl-error{position:absolute;z-index:100;left:50%;top:50%;transform:translate(-50%,-50%);max-width:500px;padding:25px 30px;background:#10232de8;border:1px solid #edba70;color:#ffe8bd;text-align:center;line-height:1.8;font-size:16px;box-shadow:0 20px 80px #000a}.control-selection{margin-top:12px}.control-selection>span{display:block;font-size:10px;letter-spacing:.12em;color:#a8b3b5;margin-bottom:5px}.control-options{display:flex;gap:6px}.control-options button{flex:1;min-width:0;height:31px;border:1px solid #61747a7e;background:#152730c7;color:#a8bdba;font-size:11px;letter-spacing:.02em}.control-options button.selected,.control-options button:hover{border-color:#eabb70;color:#ffe3ae;background:#674c2c75}.pause-controls{margin-top:16px}.pause-controls .control-options button{font-size:11px}.menu-panel{overflow-y:auto;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#a77b48 #10222b}.menu-grid{flex:1 0 auto;min-height:auto}.panel-bottom{flex-shrink:0}#game-root{user-select:none;-webkit-user-select:none}body.in-touch .hud-bottom{bottom:153px}@media(max-width:700px){.brand-corner{display:none}.control-selection{margin-top:8px}.control-options button{height:29px;font-size:10px}body.in-touch .hud-bottom{bottom:145px}.menu-grid{margin:auto 0}}@media(max-height:500px){.menu-panel{display:block;padding-top:10px}.panel-overline{margin:4px 0 10px}.menu-copy{max-width:560px}.menu-lead{display:none}.mission-stats{margin-bottom:8px;padding:5px 0}.difficulty-options{gap:4px}.difficulty{padding:4px 6px}.control-selection{margin-top:7px}.settings-row{margin-top:5px}.primary-button{margin-top:9px;height:42px}.menu-footnote{margin-top:6px}.intel-card{display:none}.panel-bottom{margin-top:12px}.modal{max-height:calc(100dvh - 18px);overflow-y:auto}.touch-controls .joystick{bottom:14px}.touch-action.fire,.touch-action.reload{bottom:19px}.touch-action.sprint{bottom:15px}body.in-touch .hud-bottom{bottom:118px}}@media(max-width:700px){.touch-action.pause{top:76px;right:17px}}body.in-touch .brand-corner,body.in-touch .hud-keyhint{display:none}
