#contract-status{color:#87e1d5;font-size:12px;max-width:330px}#offline-status{font-size:11px;color:#9ac8b7;margin:10px 0}#install-dialog{max-width:620px;max-height:88dvh;overflow:auto;background:#173139;color:#e9dfc8;border:1px solid #a8bb9f;border-radius:8px;padding:20px;font:14px/1.8 system-ui}#install-dialog::backdrop{background:#081a23d9}#install-dialog a{color:#b4e6cc}#touch-controls,#rotate-hint{display:none}.touch-device #touch-controls:not([hidden]){display:block;position:fixed;inset:0;z-index:15;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none}#touch-look{position:absolute;inset:0 0 0 33%;pointer-events:auto}#touch-stick{position:absolute;left:max(28px,env(safe-area-inset-left));bottom:38px;width:122px;height:122px;border:2px solid #b9dbcc77;background:#17383d55;border-radius:50%;pointer-events:auto}#touch-stick i{position:absolute;left:36px;top:36px;width:46px;height:46px;background:#d4e2cc88;border:1px solid #eff9dcaa;border-radius:50%;pointer-events:none}.touch-actions{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:22px;display:grid;grid-template-columns:repeat(5,52px);gap:7px;pointer-events:none}.touch-actions button{height:46px;padding:0;border:1px solid #a7ccc088;border-radius:12px;background:#163238b8;color:#f7f3df;font:600 12px system-ui;pointer-events:auto;touch-action:none}.touch-actions button[hidden]{display:none}.touch-actions button.pressed{background:#b7d8bc;color:#152e34}.touch-actions [data-touch=fire]{grid-column:4 / 6;background:#a06943cc;font-size:17px}.touch-actions [data-touch=pause]{position:fixed;right:max(18px,env(safe-area-inset-right));top:12px;width:48px;height:36px}.touch-device #hud footer,.touch-device #radar-label{display:none}.touch-device #hud .topline{left:16px;right:80px;top:12px;font-size:10px}.touch-device #mission{left:16px;top:43px;max-width:270px}.touch-device #mission h2{font-size:17px;margin:3px 0}.touch-device #mission p{font-size:10px;margin:4px 0}.touch-device #vitals{left:16px;bottom:175px;width:150px}.touch-device .health-row{gap:6px;white-space:nowrap}.touch-device .health-row strong{font-size:16px}.touch-device #supplies{font-size:10px;margin-top:8px}.touch-device #weapon-hud{right:18px;bottom:205px;transform:scale(.8);transform-origin:right bottom}.touch-device #radar{width:85px;height:85px;inset:52px 80px auto auto}.touch-device #prompt{bottom:185px;font-size:12px}.touch-device #banner{top:22%;pointer-events:none}.touch-device .screen{overflow-y:auto;padding:max(12px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 20px max(20px,env(safe-area-inset-left));align-items:flex-start}.touch-device .boot-content{padding:16px 0}.touch-device .boot-content h1{font-size:44px;margin:8px 0}.touch-device .boot-copy{font-size:13px;margin:8px 0}.touch-device .boot-number{display:none}.touch-device .boot-actions{gap:8px}.touch-device .boot-actions button{padding:10px 14px}.touch-device .boot-tags{margin:10px 0}.touch-device .modal-card{margin:auto;max-height:none;padding:18px;width:min(900px,100%)}.touch-device #modal-actions{gap:7px}.touch-device #modal-actions button{padding:9px 12px}.touch-device .wardrobe-layout{grid-template-columns:minmax(220px,1fr) minmax(260px,1.2fr)}.touch-device #costume-preview{height:260px}.touch-device .costume-grid{gap:6px}.touch-device canvas{touch-action:none}@media(orientation:portrait){.touch-device #rotate-hint{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;background:#142c36f2;color:#f4e4c3;padding:32px;text-align:center;z-index:100;font:18px system-ui}}@media(max-height:450px){.touch-device #mission{top:43px;width:220px;padding:8px}.touch-device #mission h2{font-size:14px}.touch-device #sector-name{font-size:8px}.touch-device #vitals{bottom:172px;padding:7px}.touch-device #weapon-hud{bottom:190px;padding:8px}.touch-device .ammunition strong{font-size:32px}.touch-device #weapon-slots{display:none}.touch-device #radar{width:65px;height:65px;top:48px}.touch-device #banner{min-width:0;width:55%;padding:10px}.touch-device #banner strong{font-size:13px}.touch-device #notifications{top:47px;width:210px}.touch-device #danger{font-size:10px}.touch-device .boot-content{margin-left:2vw}.touch-device #difficulty{margin-top:12px}}*{box-sizing:border-box}html,body,#app,#game-shell{margin:0;width:100%;height:100%;overflow:hidden;background:#15242c;color:#e9eee6;font-family:Microsoft YaHei,system-ui,sans-serif}button{font:inherit;cursor:pointer;border:1px solid #81958a66;color:#e8e8d9;background:#243a3c;padding:13px 22px;transition:background .15s,transform .15s;border-radius:3px}button:hover{background:#426058;transform:translateY(-1px)}button:focus-visible{outline:2px solid #eed5a5;outline-offset:4px}button:disabled{opacity:.4;cursor:default}.hidden{display:none!important}#game{display:block;width:100%;height:100%}.screen{position:fixed;inset:0;z-index:20;display:flex;align-items:center;background:linear-gradient(90deg,#0d2029f5,#10252cdf 42%,#132a333d)}.boot-content{margin-left:9vw;width:min(650px,80vw);position:relative}.eyebrow{font-size:11px;letter-spacing:3px;color:#a1c7b7}.boot-content h1{font-size:clamp(56px,7vw,100px);line-height:1.12;letter-spacing:7px;margin:24px 0;color:#f1e6ce;font-weight:800}.boot-content h1 span{color:#e8a77e;display:block}.boot-copy{color:#b6c8c7;line-height:2.1;font-size:15px;margin-top:25px}.boot-tags{display:flex;gap:16px;color:#a8c4b4;font-size:11px;margin:27px 0}.boot-tags span{padding-left:12px;border-left:2px solid #c4ac80}#difficulty{display:flex;gap:8px;margin:34px 0 15px}#difficulty button{font-size:12px;padding:10px 16px;background:transparent}#difficulty button.selected{background:#48665c66;border-color:#b6c8a3;color:#d8e8ca}.boot-actions{display:flex;gap:12px}.primary{background:#d9bf8e!important;color:#182c30;border:1px solid #e5d3ac;min-width:210px;display:flex;justify-content:space-between;font-weight:700}.primary:hover{background:#f0d5a0!important}.boot-content small{display:block;color:#839d9d;font-size:11px;line-height:2;margin-top:25px}#record{font-size:11px;color:#acc4b5}.boot-number{position:absolute;right:10vw;bottom:13vh;font-size:150px;letter-spacing:-12px;font-weight:200;color:#cee1ce29}.boot-number span{font-size:12px;display:block;letter-spacing:7px;color:#d5dfcd80;text-align:center}#hud{position:fixed;inset:0;z-index:3;pointer-events:none;text-shadow:0 1px 3px #0006}.topline{position:absolute;top:20px;left:25px;right:25px;display:flex;align-items:center;gap:35px;font-size:12px}.brand{color:#ddd8bc;letter-spacing:2px}.brand b{font-weight:400;letter-spacing:1px;font-size:10px;color:#a2b8b5;border-left:1px solid #d0c8b955;margin-left:12px;padding-left:12px}#score{margin-left:auto;color:#efd8a5;font-family:Consolas,monospace;letter-spacing:2px;font-size:15px}#timer{color:#c4d3d0;font-family:Consolas,monospace}#mission{position:absolute;top:80px;left:26px;width:290px;padding:17px 19px;background:linear-gradient(90deg,#10272de8,#10272d9c);border-left:2px solid #d5bb8f;border-radius:2px}#sector-name{font-size:10px;color:#bbd3c2;letter-spacing:2px}#mission h2{font-size:20px;font-weight:500;margin:12px 0 9px;color:#ede2c8}#mission-copy{font-size:11px;line-height:1.8;color:#b6c7bf;margin:0 0 12px}.track{height:3px;background:#748f8338;overflow:hidden}.track i{display:block;width:0;height:100%;background:#debd81;transition:width .1s linear}#vitals{position:absolute;left:26px;bottom:70px;width:260px;background:#10272de8;padding:17px 19px;border:1px solid #75958a35}.health-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#acbfb7}.health-row strong{font-family:Consolas,monospace;color:#e9e2c9;font-size:20px;letter-spacing:1px}.track.health{height:5px;margin:10px 0}.track.health i{background:#a9c89b}.track.stamina{height:2px;width:75%}.track.stamina i{background:#e5c47d}#supplies{font-size:11px;color:#c6d2bd;margin:15px 0 0;white-space:pre}#weapon-hud{position:absolute;right:26px;bottom:70px;min-width:280px;text-align:right;background:linear-gradient(270deg,#10272df2,#10272d77);padding:16px 20px;border-right:2px solid #d5bb8f}#weapon-name{font-size:12px;color:#d4ddc8;letter-spacing:1px}.ammunition{display:flex;align-items:baseline;justify-content:flex-end;gap:10px;margin:3px 0}.ammunition strong{font:54px/1.1 Consolas,monospace;color:#f1e3bd}.ammunition span{font:19px Consolas,monospace;color:#9eafa6}#reload-label{height:18px;color:#dbbd8a;font-size:10px}#weapon-slots{display:flex;gap:10px;font-size:10px;margin-top:12px;color:#7d9690}#weapon-slots .selected{color:#e8d6b0}footer{position:absolute;left:50%;transform:translate(-50%);bottom:18px;width:max-content;max-width:95vw;font-size:10px;color:#bbcfc6;background:#10272de6;padding:9px 17px;line-height:1.6}footer b{font-weight:400;color:#6c8d80;margin:0 9px}#crosshair{--spread:10px;position:absolute;left:50%;top:50%;width:0;height:0}#crosshair i{position:absolute;background:#f4e9cf;box-shadow:0 0 2px #000a}#crosshair i:nth-child(1){width:7px;height:2px;left:calc(-1 * var(--spread) - 7px);top:-1px}#crosshair i:nth-child(2){width:7px;height:2px;left:var(--spread);top:-1px}#crosshair i:nth-child(3){width:2px;height:7px;top:calc(-1 * var(--spread) - 7px);left:-1px}#crosshair i:nth-child(4){width:2px;height:7px;top:var(--spread);left:-1px}#crosshair b{position:absolute;left:-1px;top:-1px;width:2px;height:2px;background:#fff}#crosshair.aim i{opacity:.6}#hitmarker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#f7d69c;font-size:35px;opacity:0;font-family:monospace}#hit-label{position:absolute;left:50%;top:calc(50% + 40px);transform:translate(-50%);font-size:11px;letter-spacing:2px;color:#f2ca8e;opacity:0}.show{opacity:1!important}#damage-direction{position:absolute;left:50%;top:50%;width:160px;height:160px;text-align:center;color:#ed8d71;font-size:22px;opacity:0}#damage-vignette{position:fixed;inset:0;z-index:4;pointer-events:none;box-shadow:inset 0 0 150px #a53622;opacity:0;transition:opacity .1s}#damage-vignette.hurt{opacity:.65}#danger{position:absolute;top:26%;left:50%;transform:translate(-50%);font-size:12px;letter-spacing:2px;color:#ffd39e;text-shadow:0 2px 6px #000}#prompt{position:absolute;left:50%;bottom:24%;transform:translate(-50%);background:#142b32e8;border:1px solid #c5b58177;color:#eed4a1;padding:10px 18px;font-size:12px;opacity:0}#notifications{position:absolute;right:27px;top:70px;display:flex;flex-direction:column;gap:7px;width:290px}.toast{background:#122930e8;border-left:2px solid #afc8a2;padding:10px 13px;color:#d2ddcd;font-size:11px;line-height:1.8;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}}#radar{position:absolute;width:150px;height:150px;left:27px;top:245px}#radar-label{position:absolute;left:35px;top:401px;font-size:9px;letter-spacing:1px;color:#afc4b9}#enemy-labels,#floating-damage{position:fixed;inset:0;pointer-events:none;z-index:2}.enemy-label{position:absolute;transform:translate(-50%,-100%);width:65px;text-align:center;color:#e6c6a5;font-size:9px;text-shadow:0 1px 3px #000}.enemy-label i{display:block;height:3px;background:#1b2a2ac9;margin-top:5px}.enemy-label b{display:block;height:100%;background:#d48c75}#floating-damage span{position:absolute;color:#dbe7c9;font:600 18px Consolas,monospace;text-shadow:0 1px 3px #17232a;animation:damage-rise .65s forwards}#floating-damage span.critical{color:#ffe0a2;font-size:24px}@keyframes damage-rise{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%,-50px);opacity:0}}#banner{position:fixed;z-index:6;pointer-events:none;left:50%;top:18%;transform:translate(-50%);padding:16px 35px;text-align:center;background:linear-gradient(90deg,transparent,#152c34e6,transparent);opacity:0;transition:opacity .3s;min-width:450px}#banner span{display:block;font-size:10px;letter-spacing:4px;color:#b8ceb6;margin-bottom:10px}#banner strong{font-size:17px;font-weight:500;color:#f1ddbb;letter-spacing:2px}#modal{justify-content:center;background:#0c1d29b5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{width:min(780px,92vw);max-height:90vh;overflow:auto;border:1px solid #8aa4916b;background:#152c33fa;padding:35px 38px;box-shadow:0 30px 100px #0005;border-radius:4px}.modal-card h2{font-size:28px;letter-spacing:1px;font-weight:500;color:#eedab5;margin:18px 0}.modal-card p{color:#afc4be;line-height:1.9;font-size:13px}.modal-card .fine{font-size:11px;color:#8da69e}#modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}#modal-actions button:first-child{background:#d9bf8e;color:#182c30;border-color:#d9bf8e}.help-grid,.stats,.upgrade-grid{display:grid;gap:12px;margin:25px 0}.help-grid{grid-template-columns:1fr 1fr}.help-grid p{border:1px solid #78918144;background:#83a39008;margin:0;padding:13px;font-size:12px}.help-grid b{display:block;color:#e7cea5;font-size:12px;margin-bottom:5px}.stats{grid-template-columns:repeat(4,1fr);border-block:1px solid #698a754d;padding-block:25px}.stats b{font:32px Consolas,monospace;color:#efdbb4}.stats span{display:block;font-size:10px;color:#8fa99b;margin-top:8px}.upgrade-grid{grid-template-columns:repeat(3,1fr)}.upgrade-grid article{padding:18px;border:1px solid #b6a17a77;background:#a9bb8e0a}.upgrade-grid span{font:9px Consolas,monospace;color:#9caf9b;letter-spacing:3px}.upgrade-grid h3{font-size:17px;font-weight:500;color:#f0d6a6}.upgrade-grid p{font-size:11px}@media(max-width:900px){.boot-content{margin-left:6vw}.boot-number{display:none}#mission{top:65px;width:245px;padding:12px}#mission h2{font-size:17px}#radar{top:215px;width:120px;height:120px}#radar-label{top:340px;font-size:8px}#vitals{width:210px;padding:12px;bottom:80px}#weapon-hud{min-width:235px;padding:12px;bottom:80px}footer{white-space:normal;width:90vw;text-align:center;font-size:9px}footer b{margin:0 3px}.brand b{display:none}.modal-card{padding:24px}.stats b{font-size:23px}.boot-content h1{font-size:60px}#notifications{width:220px}.upgrade-grid{gap:7px}.upgrade-grid article{padding:12px}}.boot-actions{flex-wrap:wrap;max-width:650px}.boot-actions button{font-size:13px}.room-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}.room-form label,.invite-label{font-size:12px;color:#c8d4c7;display:block}.room-form input,.invite-label input{display:block;width:100%;margin-top:9px;padding:12px 14px;font:14px Consolas,Microsoft YaHei,sans-serif;border:1px solid #799582;background:#0d2028;color:#eee3c4;outline:none;border-radius:3px}.room-form input:focus,.invite-label input:focus{border-color:#ebce9b}#room-code{text-transform:uppercase;letter-spacing:4px}#room-error{color:#e9c18d;min-height:24px}.room-players{margin:20px 0}.room-players p{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;margin:5px 0;background:#789b8012;border:1px solid #77917f33}.room-players b{font-size:13px;font-weight:500;color:#e3dbbb}.room-players span{font-size:11px;color:#a8c9b4}#weapon-preview{height:280px;width:100%;background:radial-gradient(ellipse,#60707755,#12242b);border:1px solid #7f9b854d;border-radius:4px;overflow:hidden;cursor:grab}#weapon-preview canvas{width:100%!important;height:280px!important;touch-action:none}#weapon-preview:active{cursor:grabbing}#net-status{position:fixed;top:55px;left:50%;transform:translate(-50%);z-index:5;color:#f3d4a4;font-size:12px;background:#142a32dd;padding:8px 16px;pointer-events:none}@media(max-width:700px){.room-form{grid-template-columns:1fr}.boot-actions .primary{min-width:170px}.boot-content{width:90vw}#net-status{font-size:10px;max-width:90vw;white-space:nowrap}.boot-content h1{font-size:48px;margin:15px 0}.boot-copy{margin-top:12px}.boot-tags{margin:14px 0}#difficulty{margin-top:18px}}.loadout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}.loadout-card{text-align:left;padding:13px 16px;background:#102b32;border-color:#55766e66;display:flex;flex-direction:column;gap:6px}.loadout-card span{font:9px Consolas,monospace;letter-spacing:2px;color:#7ea99f}.loadout-card b{font-size:16px;color:#e9debd}.loadout-card small{font-size:10px;line-height:1.7;color:#aec7bb}.loadout-card em{font:10px Consolas,monospace;color:#cfb782}.loadout-card.selected{background:#38534c;border-color:#edcf96;box-shadow:inset 3px 0 #edcf96}.modal-card{max-height:94vh;overflow-y:auto}#modal-actions{flex-wrap:wrap}#sight-view{position:fixed;inset:0;z-index:2;pointer-events:none}.scope-lens{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:82vmin;height:82vmin;border-radius:50%;border:12px solid #172127;outline:3px solid #4b5959;box-shadow:0 0 0 150vmax #060b0e,inset 0 0 35px 15px #0d1f2d99;overflow:hidden;color:#0b161d}.sniper .scope-lens,.launcher .scope-lens{display:block}.scope-lens svg{position:absolute;inset:0;width:100%;height:100%}.lens-glint{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 28% 20%,#92c1c914,transparent 40%,#1a496922 80%);box-shadow:inset 0 0 18px #061319aa}.launcher-grid{display:none}.launcher .launcher-grid{display:block}.launcher .scope-cross{display:none}.launcher .scope-lens{color:#c3f1ad;background:#86be3f08}.reflex-dot{display:none;position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;transform:translate(-50%,-50%);background:#ff513c;box-shadow:0 0 6px #ff402acc}.reflex .reflex-dot{display:block}.sight-readout{position:absolute;left:50%;top:calc(50% + 32vmin);transform:translate(-50%);text-align:center;font:11px Consolas,Microsoft YaHei,monospace;color:#d8dfca;text-shadow:0 1px 4px #000;background:#0a1b22a6;padding:8px 18px;border:1px solid #7a959255}.sight-readout b,.sight-readout span{display:block;margin:3px}.sight-readout span{font-size:10px;color:#aabdb1}.reflex .sight-readout,.iron .sight-readout{top:auto;bottom:22%}.cycling .lens-glint{background:#0b151e66}body:has(#sight-view.sniper) #mission,body:has(#sight-view.sniper) #radar,body:has(#sight-view.sniper) #radar-label,body:has(#sight-view.launcher) #mission{opacity:.15}@media(max-width:800px){.loadout-grid{grid-template-columns:1fr 1fr}.loadout-card{padding:9px}.loadout-card b{font-size:13px}}.modal-card:has(.wardrobe-layout){width:min(1100px,95vw);max-width:1100px}.wardrobe-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}#costume-preview{height:350px;background:radial-gradient(ellipse at 50% 70%,#52726a,#172e38 72%);border:1px solid #55716f;border-radius:6px;overflow:hidden;touch-action:none}#costume-preview canvas{display:block;width:100%;height:100%;cursor:grab}.pose-buttons{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.pose-buttons button{padding:6px 12px;font-size:12px}#costume-detail{min-height:50px;font-size:13px;line-height:1.6;color:#bcd2c6}.costume-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:470px;overflow:auto;padding-right:4px}.costume-card{display:grid;grid-template-columns:66px 1fr;gap:2px 10px;align-items:center;text-align:left;padding:9px;border:1px solid #45605d;border-radius:4px;background:#1a343b}.costume-card img,.operator-icon{width:66px;height:77px;object-fit:contain;background:#ecede1;border-radius:3px;grid-row:span 2}.operator-icon{display:grid;place-items:center;font-size:30px;color:#31524c}.costume-card b{font-size:13px;line-height:1.5}.costume-card small{font-size:11px;color:#a3bdb3}.costume-card.selected{border-color:#e5ca91;background:#38564e}.costume-card.selected b{color:#ffe1a0}.costume-label{display:flex;align-items:center;gap:14px;font-size:13px;margin:10px 0 16px;color:#c8d9ce}.costume-label select{font:inherit;color:#ecdfbf;border:1px solid #526d68;padding:8px 12px;background:#1b333b;border-radius:4px;min-width:220px}@media(max-width:760px){.wardrobe-layout{grid-template-columns:1fr}#costume-preview{height:280px}.costume-grid{max-height:250px}}#modal-actions.weapon-choices button{background:#243a3c;color:#e8e8d9;border-color:#81958a66}#modal-actions.weapon-choices button.selected{background:#d9bf8e;color:#182c30;border-color:#d9bf8e}.costume-card img{object-fit:contain;background:radial-gradient(ellipse,#4d6b67,#193039)}
