:root{--bg:#141713;--panel:#1a1e18;--border:#343a2c;--muted:#828977;--text:#e2e6d6;--accent:#dcec95;--orange:#caa373;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{opacity:.4;cursor:default}.app{max-width:1510px;margin:auto;padding:0 40px}.topbar{height:106px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);gap:20px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text)}.brand-icon{width:41px;height:43px;background:var(--accent);color:#252d21;font:900 36px/44px var(--mono);padding-left:7px;position:relative;clip-path:polygon(0 0,84% 0,100% 17%,100% 100%,0 100%)}.brand-icon span{position:absolute;font-size:16px;right:-1px;bottom:-2px}.brand strong{display:block;letter-spacing:4px;font-size:21px}.brand small{font:9px var(--mono);letter-spacing:1.9px;display:block;color:var(--muted);margin-top:7px}.header-status{color:#9ca28d;font-size:11px;display:flex;align-items:center;gap:10px}.header-status i,.live-label i,.start-footer i,.auto-note i,.arena-bottom i,.page-footer i{display:inline-block;width:5px;height:5px;background:var(--accent);box-shadow:0 0 8px #dcec9530}.divider{margin:0 8px;color:#4d5443}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn,.pause-btn{height:35px;background:transparent;color:#b7bdaa;border:1px solid var(--border)}.icon-btn{width:35px;font:18px var(--mono)}.pause-btn{display:flex;gap:10px;align-items:center;padding:0 12px;font-size:12px}.pause-btn kbd{border:0;color:var(--muted);font-size:9px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:25px;margin-top:25px}.field-top{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px;color:#a0a78f;font-size:11px;letter-spacing:1px}.field-top b{color:#4b5341;margin:0 7px;font-weight:400}.square{display:inline-block;width:6px;height:6px;background:var(--accent);margin-right:7px}.live-label{font:9px var(--mono);letter-spacing:1.7px;display:flex;align-items:center;gap:9px}.live-label i{background:#a5b878}.arena{position:relative;height:clamp(390px,calc(100vh - 270px),690px);min-height:390px;background:#292f23;border:1px solid #4a513a;overflow:hidden;isolation:isolate}#game{display:block;width:100%;height:100%;image-rendering:pixelated;cursor:crosshair}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px 20px #0b0f1680;z-index:1}.ingame-hud{position:absolute;top:22px;left:22px;right:22px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;z-index:2}.health-group{width:175px}.health-label{display:flex;justify-content:space-between;font-size:10px;color:#d1d6bb;text-shadow:0 1px #000}.health-label b{font:10px var(--mono)}.health-track{height:6px;margin-top:8px;background:#161a13;border:1px solid #404c31}.health-track>div{width:100%;height:100%;background:#b7ce7d;transition:width .15s}.timer{text-align:right}.timer>span{font-size:9px;color:#b0b69f;display:block;margin-bottom:3px}.timer strong{font:25px var(--mono);letter-spacing:1px;color:#f0f0d7}.timer small{font:10px var(--mono);margin-left:6px;color:#a0a58e}.wave-badge{position:absolute;top:20px;left:50%;transform:translateX(-50%);font-size:10px;color:#bec4a9;background:#141912aa;padding:8px 12px;border:1px solid #626b4140;z-index:2;white-space:nowrap}.arena-bottom{position:absolute;bottom:13px;left:16px;right:16px;display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1px;color:#b4bea1;z-index:2;pointer-events:none}.arena-bottom i{width:4px;height:4px;margin-right:6px}.experience{height:29px;background:#20251b;position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border:1px solid #3f4930;border-top:0;font:9px var(--mono);letter-spacing:.5px}.experience>div{position:absolute;inset:0 auto 0 0;width:0;background:#66733a77;transition:width .2s}.experience>span{z-index:1;color:var(--accent)}.experience b{font:10px -apple-system,sans-serif;font-weight:400;color:#9da48a;margin-left:13px}.experience>span:last-child{font-size:8px;color:#6d775c;letter-spacing:2px}.controls-footer{display:flex;align-items:center;gap:22px;margin-top:17px;color:#939b83;font-size:10px}.controls-footer>span{display:flex;gap:5px;align-items:center}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:18px;border:1px solid #49513c;background:#252b20;font:9px var(--mono);color:#c0c7aa;border-radius:2px}.controls-footer .auto-note{margin-left:auto;font-size:9px;gap:7px}.auto-note i{width:4px;height:4px;background:#a0b876}.sidebar{padding-top:0}.side-block{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:20px}.block-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#c3c9b2}.mono{font:8px var(--mono);letter-spacing:1px;color:#747e66}.mission-title{display:flex;align-items:center;gap:15px;margin-top:24px}.target-icon{font-size:34px;line-height:1;color:var(--accent)}.mission-title h2{margin:0;font-size:22px;letter-spacing:2px}.mission-title small{display:block;font-size:10px;font-weight:400;letter-spacing:.5px;color:#8d967f;margin-top:7px}.mission-row{display:flex;justify-content:space-between;margin-top:24px;font-size:10px;color:#a4ac94}.mission-row b{font:10px var(--mono);color:var(--accent)}.mission-track{height:3px;background:#343e28;margin-top:9px}.mission-track>div{width:0;height:100%;background:var(--accent)}.mission p{font-size:10px;color:#778368;margin:11px 0 0}.tag{font-size:9px;border:1px solid #414d30;color:#a8b884;padding:3px 6px}.weapon-block{padding-bottom:16px}#weaponArt{width:100%;height:79px;image-rendering:pixelated;margin:7px 0 0;background:radial-gradient(ellipse,#343d2940,transparent 70%)}.weapon-heading{display:flex;justify-content:space-between;align-items:center}.weapon-heading h2{font-size:17px;letter-spacing:.3px;margin:0}.weapon-heading>span{font:9px var(--mono);color:#838d70}.weapon-block p{font-size:10px;color:#8b957c;margin:8px 0 17px}.weapon-stats{display:grid;gap:8px}.weapon-stats>div{display:flex;gap:14px;align-items:center}.weapon-stats span{font-size:9px;color:#8b957c;width:24px}.weapon-stats>div>div{display:flex;gap:4px;flex:1}.weapon-stats i{height:4px;background:#343e2b;flex:1}.weapon-stats i.on{background:#a9bb7e}.ammo{margin-top:20px;display:flex;justify-content:space-between;align-items:center}.ammo>span:first-child{font:24px var(--mono);color:#e2e8d1}.ammo small{font:14px var(--mono);color:#7b8969}.ammo>span:last-child{font-size:9px;color:#8b957c}.reload-track{height:2px;margin-top:9px;background:#343e28}.reload-track>div{height:100%;width:100%;background:#91a866}.stats-block{padding-bottom:17px;margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:18px}.stat-grid>div+div{border-left:1px solid var(--border);padding-left:22px}.stat-grid strong{font:29px var(--mono);display:block}.stat-grid span{display:block;font-size:10px;color:#8c967c;margin-top:7px}.best-row{display:flex;justify-content:space-between;margin-top:20px;color:#859175;font-size:10px}.best-row b{font:10px var(--mono);color:#afb99c}.field-notes>span{font-size:8px;letter-spacing:1px;color:#768264}.field-notes p{color:#a5ae95;font-size:11px;line-height:1.9;margin:10px 0 16px}.field-notes>div{display:flex;align-items:center;font-size:8px;gap:6px;color:#7f8d6b}.legend{display:inline-block;width:5px;height:5px;margin-left:12px}.legend:first-child{margin-left:0}.supply{background:#d3af6a}.xp{background:#9fcfa8;transform:rotate(45deg)}.danger{background:#b37960}.page-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:19px 0;margin-top:27px;font:8px var(--mono);letter-spacing:1.5px;color:#606d53}.page-footer b{font-weight:400;margin:0 7px}.page-footer>span:nth-child(2){font-size:9px;letter-spacing:3px}.page-footer i{width:4px;height:4px;margin-left:7px;background:#697b4f}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#10170ed4;backdrop-filter:blur(2px)}.hidden{display:none!important}.start-panel{width:410px;max-width:90%;position:relative}.eyebrow{font:8px var(--mono);letter-spacing:1.7px;color:#b2c182;display:flex;align-items:center;gap:8px}.tiny-cross{font-size:13px}h1{font-size:59px;line-height:1.08;letter-spacing:9px;margin:22px 0 0;font-weight:900;text-shadow:3px 3px #2b3920}h1>span{color:var(--accent)}h1 small{display:block;font:900 22px/1.5 var(--mono);letter-spacing:14px;color:#a4b57a;margin-top:8px}.intro{font-size:17px;line-height:1.8;font-weight:500;letter-spacing:2px;margin:20px 0 12px}.description{font-size:11px;line-height:1.9;color:#a5b095;margin:0 0 23px}.primary{display:flex;justify-content:space-between;align-items:center;width:100%;padding:15px 20px;border:1px solid #e4efab;background:var(--accent);color:#242d1c;font-size:14px;font-weight:700;letter-spacing:2px;box-shadow:3px 3px 0 #63774455}.primary:hover{background:#eff7bc;transform:translateY(-1px)}.primary b{font-size:21px;line-height:1}.start-hint{font-size:9px;color:#8f9e7c;margin-top:16px;white-space:nowrap}.start-hint kbd{font-size:8px;width:15px;min-width:15px;height:16px;background:#26301e;border-color:#4a5539}.start-hint span>span{margin:0 7px;color:#546345}.start-footer{border-top:1px solid #52613955;margin-top:24px;padding-top:12px;display:flex;align-items:center;font-size:8px;color:#768962;gap:7px}.start-footer span{margin-left:auto}.start-footer b{font:9px var(--mono);color:#bdc99f;margin-left:5px}.start-footer i{width:4px;height:4px}.mobile-hint{display:none}.dialog-panel{width:480px;max-width:90%;padding:28px;background:#1c2418;border:1px solid #617344;box-shadow:8px 8px 0 #0003}.dialog-panel h2{font-size:30px;letter-spacing:2px;margin:18px 0 12px}.dialog-panel p{font-size:12px;line-height:1.9;color:#a8b499;white-space:pre-line;margin-bottom:24px}.upgrade-choices{display:grid;gap:9px;margin-bottom:18px}.upgrade-card{background:#29321f;border:1px solid #4c5e36;color:#e0e9cf;text-align:left;padding:14px 16px;display:grid;gap:6px}.upgrade-card:hover{background:#3d4d29;border-color:#b9ce83}.upgrade-card strong{font-size:14px}.upgrade-card span{font-size:11px;color:#a7b98a}.pickup-prompt{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);padding:10px 13px;background:#151b12ed;border:1px solid #c1a76a;z-index:4;display:flex;align-items:center;gap:15px;white-space:nowrap;font-size:11px;color:#e6cf95}.pickup-prompt button{background:#bda66b;color:#1d2617;border:0;padding:7px 10px;font-size:10px}.pickup-prompt kbd{background:#312f20;color:#e6d8b4;border-color:#605337;min-width:15px;height:15px;margin-right:4px}.toast{position:absolute;top:93px;left:50%;transform:translateX(-50%);background:#1c2719ed;border:1px solid #7c9650;color:#e4edcc;font-size:12px;padding:10px 17px;z-index:6;white-space:nowrap;pointer-events:none}.touch-controls{display:none;position:absolute;inset:0;pointer-events:none;z-index:3;touch-action:none}.stick-zone{position:absolute;width:145px;height:145px;bottom:28px;pointer-events:auto;touch-action:none;display:flex;align-items:center;justify-content:center;user-select:none}.stick-zone:first-child{left:12px}.stick-zone:last-child{right:12px}.stick-base{width:100px;height:100px;border:1px solid #c9d7a540;background:#1b271c50;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center}.stick-base>span{font-size:10px;color:#dce6bd60;transform:translateY(35px)}.stick-knob{position:absolute;width:41px;height:41px;border:1px solid #d4e7ad70;background:#a6ba8033;border-radius:50%;pointer-events:none}.stick-zone.active .stick-knob{background:#bacf8e77}.stick-zone.active .stick-base{border-color:#cedea570}
@media(min-width:1500px){.app{padding:0 50px}.layout{gap:30px;grid-template-columns:minmax(0,1fr) 280px}.start-panel{width:420px}}
@media(max-height:800px) and (min-width:901px){.topbar{height:85px}.layout{margin-top:20px}.arena{height:calc(100vh - 230px);min-height:400px}.start-panel{width:360px}h1{font-size:48px;margin-top:15px}h1 small{font-size:17px;letter-spacing:12px}.intro{font-size:15px;margin:13px 0 9px}.description{margin-bottom:16px}.start-footer{margin-top:17px}.page-footer{margin-top:20px}.side-block{padding-bottom:14px;margin-bottom:15px}.mission-title{margin-top:17px}.mission-row{margin-top:18px}.field-notes{display:none}.weapon-stats{gap:7px}#weaponArt{height:65px}.ammo{margin-top:12px}.stat-grid{margin-top:12px}.stat-grid strong{font-size:24px}}
@media(max-width:1100px){.app{padding:0 24px}.header-status{display:none}.layout{gap:18px;grid-template-columns:minmax(0,1fr) 230px}.controls-footer{gap:10px}.controls-footer .auto-note{display:none}.wave-badge{top:77px;font-size:8px}.start-panel{width:340px}h1{font-size:48px}}
@media(pointer:coarse){.touch-controls.playing{display:block}.desktop-hint{display:none}.mobile-hint{display:inline}.controls-footer{display:none}#game{cursor:default}}
@media(max-width:900px){.app{padding:0 15px}.topbar{height:77px}.brand strong{font-size:18px}.brand small{font-size:7px;letter-spacing:1.3px}.brand-icon{width:34px;height:36px;font-size:29px;line-height:36px}.layout{display:block;margin-top:16px}.sidebar{display:none}.arena{height:calc(100dvh - 194px);min-height:400px}.field-top{font-size:9px}.page-footer{margin-top:17px;padding:13px 0}.top-actions{gap:6px}.pause-btn{padding:0 10px}.pause-btn kbd{display:none}.ingame-hud{left:15px;right:15px;top:16px}.health-group{width:130px}.timer strong{font-size:22px}.wave-badge{top:70px}.start-panel{width:350px}h1{font-size:48px}.start-footer{margin-top:17px}.controls-footer{font-size:9px}.arena-bottom{font-size:7px}.experience>span:last-child{display:none}}
@media(max-width:550px){.top-actions .pause-btn span{display:none}.top-actions button{height:30px;min-width:30px}.brand{gap:9px}.app{padding:0 10px}.brand strong{font-size:16px}.brand small{font-size:6px}.arena{min-height:450px}.start-panel{max-width:84%}h1{font-size:44px;letter-spacing:4px}h1 small{letter-spacing:11px;font-size:17px}.eyebrow{font-size:6px;letter-spacing:1px}.intro{font-size:16px}.description{font-size:10px}.page-footer>span:nth-child(2){font-size:8px;letter-spacing:1px}.stick-zone{width:120px;height:130px;bottom:25px}.stick-base{width:88px;height:88px}.stick-zone:first-child{left:0}.stick-zone:last-child{right:0}.start-hint{font-size:8px}.controls-footer{flex-wrap:wrap;gap:10px}.dialog-panel{padding:20px}.dialog-panel h2{font-size:25px}}
@media(max-height:550px) and (orientation:landscape){.app{padding:0}.topbar{position:absolute;top:9px;right:10px;height:auto;z-index:8;border:0}.brand,.topbar .icon-btn,.topbar .pause-btn span{display:none}.topbar .pause-btn{height:30px;background:#1b271ce0}.layout{margin:0;display:block}.field-top,.sidebar,.page-footer,.experience,.controls-footer{display:none}.arena{height:100dvh;min-height:0;border:0}.ingame-hud{right:65px}.wave-badge{top:19px}.start-panel{width:560px;max-width:80%;display:grid;grid-template-columns:1fr 1fr;column-gap:35px;align-items:center}.start-panel>.eyebrow{grid-column:1/-1}h1{font-size:42px;margin:12px 0;grid-column:1;grid-row:2/4}h1 small{font-size:16px}.intro{grid-column:2;grid-row:2;font-size:14px;margin:12px 0 5px}.description{grid-column:2;grid-row:3;font-size:9px;margin-bottom:13px}.start-panel>.primary{grid-column:2;grid-row:4;padding:12px}.start-hint{grid-column:1;grid-row:4;line-height:1.8;white-space:normal}.start-footer{grid-column:1/-1;margin-top:17px}.dialog-panel{width:550px;padding:19px}.dialog-panel h2{font-size:24px;margin:10px 0}.dialog-panel p{margin:10px 0}.upgrade-choices{grid-template-columns:repeat(3,1fr);gap:8px}.upgrade-card{padding:12px}.upgrade-card strong{font-size:12px}.upgrade-card span{font-size:10px}.dialog-panel .primary{padding:10px 15px}.stick-zone{bottom:15px}.toast{top:67px}}
.mobile-weapon{display:none;position:absolute;top:57px;left:15px;z-index:2;font-size:8px;background:#172015a8;border:1px solid #66734a55;padding:6px 8px;gap:12px;color:#cad5b0;pointer-events:none}.mobile-weapon b{font:8px var(--mono);color:#dfebaa}@media(max-width:900px){.mobile-weapon{display:flex}.wave-badge{top:57px;right:15px;left:auto;transform:none;padding:6px;font-size:7px}}@media(max-height:550px) and (orientation:landscape){.mobile-weapon{display:flex;top:53px}.wave-badge{top:19px;left:50%;right:auto;transform:translateX(-50%)}}
@media(max-width:900px){.touch-controls.playing{display:block}.controls-footer{display:none}.desktop-hint{display:none}.mobile-hint{display:inline}}
.lan-entry{border:0;background:none;color:#dcec95;padding:3px 0;font-size:10px}.lan-entry b{font-size:8px;margin-left:8px;color:#a9bd7e}.lan-screen{position:fixed;inset:0;z-index:40;background:#0d140fef;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto;backdrop-filter:blur(5px)}.lan-panel{width:460px;max-width:100%;padding:30px;background:#1b2419;border:1px solid #596c40;max-height:100%;overflow:auto}.lan-panel h2{font-size:29px;letter-spacing:2px;margin:16px 0 10px}.lan-panel>p{font-size:12px;color:#a2b28d;line-height:1.7}.lan-panel label{display:block;font-size:11px;color:#bdcba4;margin:22px 0 15px}.lan-panel input{width:100%;padding:12px;border:1px solid #52653b;background:#111b12;color:#e0edc8;font-size:14px;border-radius:0;outline-color:#dcec95}.lan-panel label input{margin-top:9px}.lan-divider{text-align:center;color:#778b63;font-size:10px;margin:20px 0}.lan-join{display:flex;gap:10px}.lan-join input{width:50%;font-family:var(--mono);letter-spacing:3px}.lan-join button{flex:1;background:#303f26;color:#deebc3;border:1px solid #637b47;font-size:12px}.lan-back{width:100%;padding:12px;background:none;color:#acbd94;border:1px solid #415333;margin-top:8px;font-size:12px}.lan-error{color:#e9b58a!important;min-height:20px;margin:15px 0 0!important}.lan-addresses{font-size:10px;color:#8eaa7c;line-height:1.9;margin-top:19px;overflow-wrap:anywhere}.lan-addresses a{color:#d4e7ae}.room-code{background:#141e13;padding:16px;text-align:center;margin:20px 0}.room-code>span{font-size:9px;letter-spacing:2px;color:#9cb681}.room-code strong{display:block;color:#e2efab;font:36px var(--mono);letter-spacing:8px;margin:10px 0}.room-code small{font-size:10px;color:#8da678}.lan-players{display:grid;gap:7px;margin:15px 0 20px}.lan-player{border:1px solid #415632;padding:10px;display:flex;align-items:center;gap:10px;font-size:12px;color:#d2e0bc}.lan-player i{display:inline-block;width:9px;height:9px;background:var(--mate)}.lan-player small{margin-left:auto;color:#99ae80;font-size:9px}.lan-player.empty{opacity:.45}.lan-rules{font-size:10px!important;color:#92a47d!important;line-height:1.9!important;margin:16px 0 0}.team-hud{position:absolute;left:16px;top:93px;z-index:2;display:grid;gap:5px;pointer-events:none}.team-row{font-size:9px;display:flex;gap:7px;align-items:center;color:#d4dec2;text-shadow:0 1px #000;background:#16201488;padding:4px 7px}.team-row i{width:5px;height:5px;background:var(--mate)}.team-row small{color:#a2b588;font:8px var(--mono)}.coop-hint{position:absolute;bottom:33px;left:50%;transform:translateX(-50%);font-size:10px;color:#dfebbc;background:#1a2817e8;border:1px solid #718949;padding:8px 11px;z-index:4;white-space:nowrap;pointer-events:none}.revive-btn{position:absolute;left:50%;bottom:75px;transform:translateX(-50%);z-index:7;padding:12px 20px;background:#b3ce83;color:#182610;border:1px solid #d8eaa9;touch-action:none;font-size:12px;user-select:none}.revive-btn:active{background:#e2efab}.coop-active .toast{top:148px}.coop-active .pickup-prompt{bottom:65px}@media(max-width:550px){.lan-panel{padding:22px}.lan-panel h2{font-size:24px}.lan-screen{padding:12px}.team-hud{top:88px;left:9px;gap:3px}.team-row{font-size:8px;padding:3px 5px}.coop-hint{font-size:8px;max-width:95%;white-space:normal;text-align:center}.revive-btn{bottom:72px;padding:10px 18px}}@media(max-height:550px) and (orientation:landscape){.lan-screen{padding:10px}.lan-panel{width:650px;padding:20px}.lan-panel h2{font-size:22px;margin:10px 0}.team-hud{top:86px;left:12px}.team-row{font-size:8px}.coop-active .toast{top:65px}.lan-entry{font-size:10px}.revive-btn{bottom:42px}}
#startScreen{overflow-y:auto;padding:20px 0}.start-panel{margin:auto}.mode-actions{display:grid;gap:9px}.mode-actions .lan-entry{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 20px;border:1px solid #b9cc84;background:#293923;color:#e4efbc;font-size:14px;font-weight:700;letter-spacing:2px}.mode-actions .lan-entry:hover{background:#3d512e}.mode-actions .lan-entry b{font:11px var(--mono);color:#d3e49e;margin:0;letter-spacing:1px}.start-footer .build-label{margin-left:0;color:#a7b789;font-size:9px}@media(max-height:800px) and (min-width:901px){.mode-actions .primary,.mode-actions .lan-entry{padding:11px 17px}.start-panel .intro{margin:10px 0 7px}.start-panel .start-footer{margin-top:12px}.start-panel .start-hint{margin-top:10px}}@media(max-height:550px) and (orientation:landscape){.start-panel>.mode-actions{grid-column:2;grid-row:4}.mode-actions .primary,.mode-actions .lan-entry{padding:10px 14px;font-size:12px}.mode-actions{gap:7px}.start-panel .start-hint{grid-column:1;grid-row:4}}
.display-tools{position:fixed;bottom:max(6px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:60}.display-tools button{border:1px solid #798d54;background:#182417ed;color:#d7e9ae;padding:6px 12px;font-size:10px;min-height:29px;touch-action:manipulation}.display-notice{position:fixed;bottom:45px;left:50%;transform:translateX(-50%);max-width:80%;padding:9px 13px;background:#192916f5;border:1px solid #91a966;color:#e0edc4;font-size:11px;line-height:1.6;text-align:center;z-index:65;pointer-events:none}.mobile-game{overflow:hidden;overscroll-behavior:none}.mobile-game #displayRoot{position:fixed;left:0;top:0;width:var(--display-w);height:var(--display-h);overflow:hidden;background:var(--bg)}.mobile-game.landscape-fallback #displayRoot{width:var(--display-h);height:var(--display-w);transform-origin:0 0;transform:translateX(var(--display-w)) rotate(90deg)}.mobile-game .app,.mobile-game .layout,.mobile-game .field-section{width:100%;height:100%;max-width:none;padding:0;margin:0;display:block}.mobile-game .arena{width:100%;height:100%;min-height:0;border:0}.mobile-game .field-top,.mobile-game .sidebar,.mobile-game .page-footer,.mobile-game .experience,.mobile-game .controls-footer,.mobile-game .brand,.mobile-game .header-status,.mobile-game .topbar .icon-btn,.mobile-game .pause-btn span,.mobile-game .pause-btn kbd{display:none}.mobile-game .topbar{position:absolute;top:max(9px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));height:auto;border:0;z-index:8}.mobile-game .pause-btn{height:30px;background:#1b271ce0}.mobile-game .ingame-hud{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(65px,env(safe-area-inset-right))}.mobile-game .wave-badge{top:19px;left:50%;right:auto;transform:translateX(-50%);font-size:8px}.mobile-game .mobile-weapon{display:flex;top:53px}.mobile-game .team-hud{top:86px}.mobile-game .team-row{font-size:8px}.mobile-game .touch-controls.playing{display:block}.mobile-game .stick-zone{width:145px;height:140px;bottom:max(15px,env(safe-area-inset-bottom))}.mobile-game .stick-zone:first-child{left:max(8px,env(safe-area-inset-left))}.mobile-game .stick-zone:last-child{right:max(8px,env(safe-area-inset-right))}.mobile-game .stick-base{width:100px;height:100px}.mobile-game .start-panel{width:560px;max-width:80%;display:grid;grid-template-columns:1fr 1fr;column-gap:35px;align-items:center}.mobile-game .start-panel>.eyebrow{grid-column:1/-1}.mobile-game h1{font-size:42px;letter-spacing:5px;margin:12px 0;grid-column:1;grid-row:2/4}.mobile-game h1 small{font-size:16px;letter-spacing:12px}.mobile-game .intro{grid-column:2;grid-row:2;font-size:14px;margin:12px 0 5px}.mobile-game .description{grid-column:2;grid-row:3;font-size:9px;margin-bottom:13px}.mobile-game .start-panel>.mode-actions{grid-column:2;grid-row:4}.mobile-game .mode-actions{gap:7px}.mobile-game .mode-actions .primary,.mobile-game .mode-actions .lan-entry{padding:10px 14px;font-size:12px}.mobile-game .start-hint{grid-column:1;grid-row:4;line-height:1.8;white-space:normal;margin-top:0}.mobile-game .desktop-hint{display:none}.mobile-game .mobile-hint{display:inline}.mobile-game .start-footer{grid-column:1/-1;margin-top:13px}.mobile-game .dialog-panel{width:550px;padding:19px;max-height:95%;overflow:auto}.mobile-game .dialog-panel h2{font-size:24px;margin:10px 0}.mobile-game .dialog-panel p{margin:10px 0}.mobile-game .upgrade-choices{grid-template-columns:repeat(3,1fr);gap:8px}.mobile-game .upgrade-card{padding:12px}.mobile-game .upgrade-card strong{font-size:12px}.mobile-game .upgrade-card span{font-size:10px}.mobile-game .dialog-panel .primary{padding:10px 15px}.mobile-game .lan-screen{padding:12px}.mobile-game .lan-panel{width:650px;padding:20px}.mobile-game .lan-panel h2{font-size:22px;margin:10px 0}.mobile-game .lan-panel input{font-size:16px}.mobile-game .revive-btn{bottom:55px}.mobile-game .coop-hint{bottom:39px}.mobile-game .toast,.mobile-game .coop-active .toast{top:65px}
.mode-actions .internet-entry{background:#24353a;border-color:#86aeb2;color:#d0e8e8}.mode-actions .internet-entry b{color:#aed3d7}.mode-actions .internet-entry:hover{background:#314c51}.mode-actions .internet-entry:focus-visible{outline-color:#aed3d7}.mobile-game .mode-actions .primary,.mobile-game .mode-actions .lan-entry{padding:9px 14px}.mobile-game .start-footer{margin-top:9px}.mobile-game .start-panel{column-gap:26px}.lan-addresses a{display:inline-block;padding:4px 0}
/* Squad supply phase: controls stay inside the game's existing scrollable dialog. */
.dialog-panel{max-height:94%;overflow-y:auto}.upgrade-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.upgrade-stats>div{background:#111c14;border:1px solid #3b4a32;padding:8px;text-align:left;min-width:0}.upgrade-stats span{display:block;font-size:10px;color:#9cac87}.upgrade-stats b{display:block;font:11px var(--mono);color:#e1edbc;margin-top:4px;overflow-wrap:anywhere}.upgrade-card.selected,.weapon-choice.selected{background:#35482a;border-color:#d0e48c;box-shadow:inset 0 0 0 1px #d0e48c}.upgrade-card:disabled,.weapon-choice:disabled{cursor:default;opacity:.7}.upgrade-weapons{margin:12px 0;text-align:left}.upgrade-weapons p{font-size:11px}.weapon-choice{padding:8px;margin:3px;border:1px solid #697850;background:#1d2a1b;color:#dce8b6;font-size:11px}.upgrade-status{font-size:11px;color:#c2d58f;line-height:1.8;margin:12px 0;white-space:pre-line}.duration-setting{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin:15px 0;font-size:13px;color:#d9e4b7}.duration-setting select{background:#1b281c;color:#e0eac0;padding:9px;border:1px solid #6b7f4d;font-size:16px}.duration-setting small{grid-column:1/-1;color:#a2b38d;font-size:10px}.dialog-panel .primary:disabled{opacity:.6;cursor:default}.mobile-game .upgrade-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.mobile-game .upgrade-stats>div{padding:6px}.mobile-game .dialog-panel{max-width:92%;width:650px}.mobile-game .upgrade-status{margin:8px 0}@media(max-width:600px){.upgrade-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lan-panel{max-height:95dvh;overflow-y:auto}.start-panel{max-width:92%}}body:not(.mobile-game) .display-tools.phone-menu{display:none}
.supply-dialog .dialog-panel{width:760px;max-width:94%;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.supply-dialog #dialogEyebrow{grid-column:1/-1;grid-row:1;font-size:9px}.supply-dialog h2{grid-column:1/-1;grid-row:2;font-size:24px;margin:0}.supply-dialog #dialogBody{grid-column:1/-1;grid-row:3;font-size:11px;line-height:1.5;margin:0}.supply-dialog .upgrade-stats{grid-column:1;grid-row:4;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}.supply-dialog .upgrade-stats>div{padding:6px}.supply-dialog .upgrade-stats b{font-size:10px}.supply-dialog .upgrade-choices{grid-column:2;grid-row:4;grid-template-columns:1fr;gap:5px;margin:0}.supply-dialog .upgrade-card{padding:8px 10px;gap:3px}.supply-dialog .upgrade-card strong{font-size:12px}.supply-dialog .upgrade-card span{font-size:10px}.supply-dialog .upgrade-weapons{grid-column:1/-1;grid-row:5;margin:0}.supply-dialog .upgrade-weapons p{font-size:10px;margin:0 0 3px;line-height:1.4}.supply-dialog .weapon-choice{margin:2px;padding:7px;font-size:10px}.supply-dialog .upgrade-status{grid-column:1/-1;grid-row:6;margin:0;font-size:10px;line-height:1.5}.supply-dialog #dialogBtn{grid-column:1/-1;grid-row:7;padding:10px;margin:0;position:sticky;bottom:0}.mobile-game .supply-dialog .dialog-panel{width:760px;padding:12px;gap:6px 10px}.mobile-game .supply-dialog h2{font-size:20px}.mobile-game .supply-dialog .upgrade-stats span{font-size:9px}.mobile-game .supply-dialog .upgrade-stats b{font-size:9px}.mobile-game .supply-dialog .upgrade-stats>div{padding:4px}.mobile-game .supply-dialog .upgrade-card{padding:7px}.mobile-game .supply-dialog #dialogBtn{padding:8px}@media(max-width:500px){body:not(.mobile-game) .supply-dialog .dialog-panel{grid-template-columns:1fr}body:not(.mobile-game) .supply-dialog .upgrade-choices{grid-column:1;grid-row:5}body:not(.mobile-game) .supply-dialog .upgrade-weapons{grid-row:6}body:not(.mobile-game) .supply-dialog .upgrade-status{grid-row:7}body:not(.mobile-game) .supply-dialog #dialogBtn{grid-row:8}}
.supply-dialog .upgrade-leave{grid-column:1/-1;grid-row:8;border:0;background:transparent;color:#a1b08b;font-size:10px;padding:3px;text-decoration:underline;justify-self:center}@media(max-width:500px){body:not(.mobile-game) .supply-dialog .upgrade-leave{grid-row:9}}
/* Allow menu/dialog scrolling, but keep app gestures from zooming the page. */
#displayRoot{touch-action:pan-x pan-y;overscroll-behavior:contain}#displayRoot button{touch-action:manipulation}#displayRoot input,#displayRoot select{font-size:16px}.upgrade-recover{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9;padding:14px 20px;border:1px solid #e4efab;background:#dcec95;color:#24321d;font-weight:bold;touch-action:manipulation}#game,.stick-zone,.touch-controls{touch-action:none}
.bomb-btn{position:absolute;right:18px;bottom:47px;z-index:4;display:flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid #c9a16e;background:#3d3022e8;color:#f0d7a7;font-size:12px;touch-action:manipulation;user-select:none}.bomb-btn b{font:16px var(--mono)}.bomb-btn kbd{font-size:9px}.bomb-btn:disabled{opacity:.5}.mobile-game .bomb-btn{right:max(18px,env(safe-area-inset-right));bottom:172px;padding:10px 13px;font-size:11px}.mobile-game .bomb-btn kbd{display:none}.mobile-game .bomb-btn b{font-size:14px}@media(pointer:coarse){.bomb-btn{bottom:180px}.bomb-btn kbd{display:none}}.supply-dialog .weapon-choice{min-height:30px}

/* Mobile battle viewport follows Safari's visible area, including its browser bars. */
#displayRoot{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#displayRoot input,#displayRoot textarea{ -webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
#displayRoot button{transition:background-color 70ms,box-shadow 70ms,filter 70ms;box-shadow:0 3px 0 #070d08; -webkit-user-select:none;user-select:none}
#displayRoot button:enabled:active,#displayRoot button.is-pressed:enabled{filter:brightness(1.3);box-shadow:inset 0 3px 6px #0009,0 0 0 2px #dcec9570;background-color:#657c3d;color:#f1facf}
.mobile-game{--game-safe-top:env(safe-area-inset-top,0px);--game-safe-right:env(safe-area-inset-right,0px);--game-safe-bottom:env(safe-area-inset-bottom,0px);--game-safe-left:env(safe-area-inset-left,0px)}
.mobile-game.landscape-fallback{--game-safe-top:env(safe-area-inset-right,0px);--game-safe-right:env(safe-area-inset-bottom,0px);--game-safe-bottom:env(safe-area-inset-left,0px);--game-safe-left:env(safe-area-inset-top,0px)}
.mobile-game #displayRoot{left:var(--display-x,0px);top:var(--display-y,0px)}
.mobile-game .topbar{top:calc(var(--game-safe-top) + 8px);right:calc(var(--game-safe-right) + 10px)}
.mobile-game .pause-btn{min-width:44px;height:44px;font-size:19px;justify-content:center}
.mobile-game .display-tools{position:absolute;top:calc(var(--game-safe-top) + 8px);right:calc(var(--game-safe-right) + 64px);bottom:auto;left:auto;transform:none;z-index:8}
.mobile-game .display-tools button{width:44px;height:44px;padding:0;font-size:21px}
.mobile-game .display-tools span{display:none}
.mobile-game .ingame-hud{top:calc(var(--game-safe-top) + 12px);left:calc(var(--game-safe-left) + 14px);right:calc(var(--game-safe-right) + 124px)}
.mobile-game .health-group{width:140px}.mobile-game .timer strong{font-size:21px}
.mobile-game .mobile-weapon{left:calc(var(--game-safe-left) + 14px);top:calc(var(--game-safe-top) + 47px)}
.mobile-game .wave-badge{top:calc(var(--game-safe-top) + 18px);max-width:30%;overflow:hidden;text-overflow:ellipsis}
.mobile-game .team-hud{left:calc(var(--game-safe-left) + 14px);top:calc(var(--game-safe-top) + 76px);grid-template-columns:repeat(2,minmax(0,1fr));max-width:300px;gap:3px}
.mobile-game .team-row{min-width:0;padding:3px 5px;font-size:8px}.mobile-game .team-row small{white-space:nowrap}
.mobile-game .stick-zone{width:120px;height:120px;bottom:calc(var(--game-safe-bottom) + 12px)}
.mobile-game .stick-zone:first-child{left:calc(var(--game-safe-left) + 12px)}
.mobile-game .stick-zone:last-child{right:calc(var(--game-safe-right) + 12px)}
.mobile-game .stick-base{width:94px;height:94px;background:#17231988;border-width:2px}
.mobile-game .stick-zone.active .stick-base{background:#627e3d77;box-shadow:0 0 0 5px #dcec9522}
.mobile-game .stick-zone.active .stick-knob{background:#c8df98bb;box-shadow:0 3px 9px #0008}
.mobile-game .bomb-btn{right:calc(var(--game-safe-right) + 27px);bottom:calc(var(--game-safe-bottom) + 144px);min-width:90px;min-height:48px;justify-content:center;z-index:6;border-width:2px;background:#483624f2}
.mobile-game .pickup-prompt,.mobile-game .coop-active .pickup-prompt{left:50%;bottom:calc(var(--game-safe-bottom) + 12px);width:min(260px,calc(100% - 310px - var(--game-safe-left) - var(--game-safe-right)));min-width:150px;padding:7px;gap:5px;display:grid;white-space:normal;text-align:center;z-index:6}
.mobile-game #pickupName{font-size:10px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-game #pickupBtn{min-height:44px;width:100%;font-size:14px;font-weight:700;border:1px solid #eddb9e;touch-action:manipulation}
.mobile-game #pickupBtn kbd{display:none}
.mobile-game .revive-btn{bottom:calc(var(--game-safe-bottom) + 104px);min-height:44px;max-width:260px;padding:10px 16px;z-index:6}
.mobile-game .coop-hint{bottom:calc(var(--game-safe-bottom) + 160px);max-width:45%;white-space:normal;text-align:center;font-size:9px}
.mobile-game .toast,.mobile-game .coop-active .toast{top:calc(var(--game-safe-top) + 65px);max-width:45%;white-space:normal;text-align:center;font-size:10px}
.mobile-game .arena-bottom{display:none}
.mobile-game .display-notice{position:absolute;bottom:calc(var(--game-safe-bottom) + 100px);max-width:45%;font-size:10px}
@media(max-height:340px){.mobile-game:not(.landscape-fallback) .stick-zone{width:104px;height:104px}.mobile-game:not(.landscape-fallback) .stick-base{width:80px;height:80px}.mobile-game:not(.landscape-fallback) .bomb-btn{bottom:calc(var(--game-safe-bottom) + 122px)}}

.mobile-game .mobile-displaced{left:var(--control-x)!important;top:var(--control-y)!important;right:auto!important;bottom:auto!important;transform:none!important}
/* Personal graphics preference is separate from the host's room difficulty. */
.game-options{margin:12px 0;padding:10px;border:1px solid #53623d;background:#182315;text-align:left;display:grid;gap:8px;font-size:12px}.game-options>label:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-options select{background:#26351f;color:#e4efc0;border:1px solid #768759;padding:8px;font-size:16px}.gore-option{display:flex!important;align-items:center;gap:9px;min-height:44px;font-size:12px;color:#d5dfbe;cursor:pointer;flex-wrap:wrap}.gore-option input{accent-color:#d2e396;width:21px!important;height:21px;padding:0!important;margin:0!important;flex:none}.gore-option small{color:#9ba98c;font-size:10px}.game-options p{margin:0;color:#aebc94;font-size:11px}.start-panel .start-footer{margin-top:12px}.mobile-game .game-options{grid-column:1/-1;margin:8px 0;grid-template-columns:1fr 1fr;gap:4px 14px}.mobile-game .game-options p{grid-column:1/-1}.mobile-game .game-options select{padding:5px}.dialog-panel>.gore-option{justify-content:center;margin:6px 0}.supply-dialog #dialogPreferences{display:none!important}@media(max-height:550px) and (orientation:landscape){.game-options{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:4px 14px;margin:8px 0}.game-options p{grid-column:1/-1}.start-panel{padding:10px 0}.game-options select{padding:5px}}

.field-notes .xp-legend{display:flex;gap:10px;margin-top:10px;font:10px var(--mono);flex-wrap:wrap}

/* Optional squad actions stay small, with touch-size targets and no modal battle pause. */
.event-hud{position:absolute;left:50%;top:55px;transform:translateX(-50%);max-width:50%;padding:5px 8px;background:#17231ae0;color:#c8e0ce;font-size:10px;text-align:center;pointer-events:none;z-index:3}
.ping-btn{position:absolute;right:18px;bottom:98px;z-index:6;min-height:44px;min-width:90px;background:#253b39ed;color:#cde5dc;border:1px solid #90b4a3;padding:8px;font-size:12px}
.ping-btn kbd{font-size:9px}.ping-menu,.airdrop-choices{position:absolute;z-index:8;background:#15251af5;border:1px solid #9caf78;padding:6px;display:flex;gap:6px;max-width:calc(100% - 20px)}
.ping-menu{right:115px;bottom:98px}.airdrop-choices{left:50%;bottom:110px;transform:translateX(-50%);flex-wrap:wrap;justify-content:center;width:310px}.airdrop-choices>span{width:100%;text-align:center;font-size:10px;color:#d9dfa9}
.ping-menu button,.airdrop-choices button{min-height:44px;padding:8px;background:#344a30;color:#ebf1cf;border:1px solid #798f5d;font-size:12px;flex:1;white-space:nowrap}
.result-stats{overflow-x:auto;margin:12px 0;border:1px solid #576942;background:#172216;padding:8px}.result-stats p{font-size:10px!important;line-height:1.5!important;margin:0 0 8px!important}.result-stats table{width:100%;border-collapse:collapse;color:#d8e6b9;font-size:11px;white-space:nowrap}.result-stats th,.result-stats td{padding:8px 5px;border-bottom:1px solid #3c4e32;text-align:right}.result-stats th:first-child,.result-stats td:first-child{text-align:left;max-width:100px;overflow:hidden;text-overflow:ellipsis}.result-stats th{color:#9eaf8b;font-weight:400}
.mobile-game .ping-btn{right:calc(var(--game-safe-right) + 27px);bottom:calc(var(--game-safe-bottom) + 198px);min-height:44px;min-width:90px}.mobile-game .ping-btn kbd{display:none}
.mobile-game .ping-menu{right:calc(var(--game-safe-right) + 128px);bottom:calc(var(--game-safe-bottom) + 198px)}
.mobile-game .event-hud{top:calc(var(--game-safe-top) + 111px);max-width:44%;font-size:9px;padding:4px 6px}
.mobile-game .airdrop-choices{bottom:calc(var(--game-safe-bottom) + 92px);width:300px;max-width:calc(100% - 285px);min-width:190px}
.mobile-game .airdrop-choices button{font-size:11px;padding:6px}.mobile-game .airdrop-choices button:first-of-type{flex-basis:100%}
@media(max-height:340px){.mobile-game:not(.landscape-fallback) .ping-btn,.mobile-game:not(.landscape-fallback) .ping-menu{bottom:calc(var(--game-safe-bottom) + 176px)}}

.mobile-game .airdrop-choices{bottom:calc(var(--game-safe-bottom) + 12px)}

/* Desktop actions leave the bottom-right minimap clear; touch layout stays unchanged. */
@media (pointer:fine){
 body:not(.mobile-game) .ping-btn,body:not(.mobile-game) .bomb-btn{left:18px;right:auto}
 body:not(.mobile-game) .ping-menu{left:115px;right:auto}
}

/* One pre-game profession selector, no extra mobile battle buttons. */
.game-options .class-setting{display:flex;align-items:center;justify-content:space-between;gap:10px}.class-description{font-size:10px!important;color:#c6d3a5!important;line-height:1.6!important}.duration-setting.class-setting small{line-height:1.6}.mobile-game .mobile-weapon{max-width:45%;font-size:10px}.mobile-game #mobileGunName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lan-player small{white-space:normal;text-align:right;line-height:1.5;max-width:55%}.game-options .gore-option{margin:0}@media(max-height:550px) and (orientation:landscape){.game-options .class-description{margin:0;grid-column:1/-1}}

.solo-return{display:block;width:100%;min-height:44px;margin-top:10px;border:1px solid #627749;background:#22321d;color:#cfdfad;font-size:12px}

@media(max-width:550px) and (orientation:portrait){body:not(.mobile-game) #startScreen .start-panel{max-width:92%;width:340px}body:not(.mobile-game) #startScreen h1{font-size:32px;margin:8px 0}body:not(.mobile-game) #startScreen h1 small{font-size:12px;letter-spacing:9px;margin-top:4px}body:not(.mobile-game) #startScreen .intro{display:none}body:not(.mobile-game) #startScreen .description{font-size:10px;line-height:1.5;margin:6px 0 8px}body:not(.mobile-game) #startScreen .game-options{margin:6px 0 10px;padding:8px;gap:5px}body:not(.mobile-game) #startScreen .game-options select{min-height:44px;padding:7px}body:not(.mobile-game) #startScreen .start-hint{display:none}body:not(.mobile-game) #startScreen .mode-actions .primary,body:not(.mobile-game) #startScreen .mode-actions .lan-entry{min-height:44px;padding:10px 14px;font-size:12px}body:not(.mobile-game) #startScreen .start-footer{font-size:8px;margin-top:10px}}
.mobile-game .supply-dialog #dialogBtn,.mobile-game .supply-dialog .weapon-choice,.mobile-game .supply-dialog .upgrade-leave{min-height:44px}

/* Compact field settings: aligned pairs, restrained borders, native touch-size menus. */
#startScreen .game-options{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 14px;padding:10px 0;margin:12px 0;border:0;border-top:1px solid #52613966;border-bottom:1px solid #52613966;background:transparent}
#startScreen .game-options>label.difficulty-setting,#startScreen .game-options>label.class-setting{display:grid;grid-template-columns:1fr;gap:3px;align-content:start;font:9px var(--mono);letter-spacing:1px;color:#8e9d7e}
#startScreen .difficulty-setting{grid-column:1;grid-row:1}#startScreen .class-setting{grid-column:2;grid-row:1}
#displayRoot .game-options select,#displayRoot .duration-setting select{appearance:none;-webkit-appearance:none;border:1px solid #52613c;border-radius:0;background-color:#1d271a;background-image:linear-gradient(45deg,transparent 50%,#b9ca91 50%),linear-gradient(135deg,#b9ca91 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 11px) 50%;background-size:4px 4px;background-repeat:no-repeat;color:#d9e5b7;font-family:var(--mono);font-size:16px;letter-spacing:0;min-width:0;width:100%;min-height:38px;padding:6px 27px 6px 10px;box-shadow:inset 2px 0 #849b5255;cursor:pointer}
#displayRoot select:focus-visible{outline:1px solid #d7e991;outline-offset:2px}#displayRoot select:disabled{opacity:.55;cursor:default}
#startScreen .game-options p{font-size:9px!important;line-height:1.5!important;color:#95a581!important;letter-spacing:0;margin:0;min-width:0}
#startScreen #difficultyDesc{grid-column:1;grid-row:2}#startScreen #soloClassDesc{grid-column:2;grid-row:2}
#startScreen .game-options .gore-option{grid-column:1/-1;grid-row:3;min-height:32px;font-size:10px;gap:7px;margin:2px 0 0;color:#b4c19d}
#startScreen .gore-option input{width:15px!important;height:15px}#startScreen .gore-option small{font-size:9px}
#lanLobby .duration-setting{display:grid;margin:10px 0;padding:8px 10px;gap:5px 12px;font-size:11px;border:1px solid #455236;background:#182016;grid-template-columns:minmax(0,1fr) minmax(110px,42%)}
#lanLobby .duration-setting small{font-size:9px;line-height:1.5;color:#95a581}#lanLobby .duration-setting select{min-height:36px}
@media(pointer:coarse){#displayRoot .game-options select,#displayRoot .duration-setting select{min-height:44px}#startScreen .game-options .gore-option{min-height:44px}}
@media(max-width:550px) and (orientation:portrait){body:not(.mobile-game) #startScreen .game-options{padding:8px 0;gap:4px 12px;margin:6px 0 10px}body:not(.mobile-game) #startScreen .game-options select{padding:6px 27px 6px 9px}}
/* Mobile XP reuses the existing HUD updates and sits clear of movement and pickup controls. */
.mobile-game .experience{display:flex;position:absolute;top:calc(var(--game-safe-top) + 43px);left:50%;transform:translateX(-50%);width:28%;min-width:130px;max-width:220px;height:24px;margin:0;padding:0 5px 7px;border:0;background:linear-gradient(#52613c,#52613c) bottom/100% 3px no-repeat,#111a12cc;justify-content:center;font-size:9px;letter-spacing:0;pointer-events:none;z-index:2}
.mobile-game .experience>div{top:auto;bottom:0;height:3px;background:#d2e396;max-width:100%;transition:width .2s}
.mobile-game .experience:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:#a5bc6b26;z-index:-1}
.mobile-game .experience b{font:9px var(--mono);margin-left:5px;color:#b5c2a0}.mobile-game .experience>span:last-child{display:none}

/* A third setting without another full-height block in the portrait menu. */
#startScreen .game-options .solo-duration{grid-column:1;grid-row:3;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;font:9px var(--mono);color:#95a581;letter-spacing:0}
#displayRoot #soloDuration{min-height:36px;padding-left:8px}
#startScreen .game-options .gore-option{grid-column:2;grid-row:3;gap:6px;margin:0;align-content:center}
#startScreen .game-options .gore-option small{display:block;font-size:8px}
@media(pointer:coarse){#displayRoot #soloDuration{min-height:44px}}
@media(max-width:550px) and (orientation:portrait){body:not(.mobile-game) #startScreen #soloDuration{min-height:44px}}
/* The victory is already secured; the scene only renders a bounded pixel tableau. */
.extraction-screen{position:absolute;inset:0;z-index:12;pointer-events:none;text-align:center;color:#dcebaf}
.extraction-caption{position:absolute;left:8px;right:8px;top:18px}.extraction-caption>span{font:8px var(--mono);letter-spacing:3px;color:#97b88f}
.extraction-caption h2{font-size:23px;letter-spacing:4px;margin:8px 0}.extraction-caption p{font-size:10px;margin:0;color:#becda8}
#extractionSkip{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);min-height:44px;padding:10px 18px;background:#18291be8;border:1px solid #829a60;color:#dceab9;font-size:11px;white-space:nowrap;pointer-events:auto}
#displayRoot.extracting .experience,#displayRoot.extracting .topbar,#displayRoot.extracting .display-tools{visibility:hidden}
.arena.extracting .ingame-hud,.arena.extracting .mobile-weapon,.arena.extracting .wave-badge,.arena.extracting .team-hud,.arena.extracting .coop-hint,.arena.extracting .event-hud,.arena.extracting .revive-btn,.arena.extracting .bomb-btn,.arena.extracting .ping-btn,.arena.extracting .arena-bottom,.arena.extracting .upgrade-recover{visibility:hidden}
.mobile-game .extraction-caption{top:calc(var(--game-safe-top) + 12px)}.mobile-game .extraction-caption h2{font-size:20px;margin:6px 0}.mobile-game .extraction-caption p{font-size:10px}
.mobile-game #extractionSkip{bottom:calc(var(--game-safe-bottom) + 12px)}

.mission-hud{position:absolute;left:50%;top:49px;transform:translateX(-50%);width:44%;max-width:380px;padding:7px 9px;background:#232b1de8;border:1px solid #8c935955;color:#f1e5a9;font-size:10px;line-height:1.5;text-align:center;pointer-events:none;z-index:3}
.arena.extracting .mission-hud{visibility:hidden}
.mobile-game .mission-hud{top:calc(var(--game-safe-top) + 76px);width:36%;max-width:320px;padding:4px 6px;font-size:9px;line-height:1.45}
.mobile-game .team-hud{max-width:min(220px,28%)}.mobile-game .team-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-game .event-hud{top:calc(var(--game-safe-top) + 130px);max-width:36%;font-size:8px}
.mobile-game .experience .xp-caption{display:none}
@media(max-width:650px){.mobile-game .timer strong{font-size:18px}.mobile-game .timer small{font-size:8px;margin-left:4px}}

/* Field manual: independent scroll surface keeps portrait menus usable. */
.armory-entry{min-height:44px;border:1px solid #75834a;background:#293323;color:#d4e5a8;padding:10px 14px;text-align:left;font:inherit;font-size:12px;cursor:pointer}.armory-entry span{float:right;font-size:10px;color:#a5b78a}.start-panel>.armory-entry{width:100%;margin-top:9px}.armory-entry:active,#armoryClose:active{transform:translateY(2px);background:#455338}.armory-screen{position:fixed;inset:0;z-index:90;background:#0c120fed;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:20px;box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.armory-panel{max-width:920px;margin:0 auto;color:#d8dfc6}.armory-panel>header{position:sticky;top:-20px;background:#141d15;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #586441}.armory-panel h2{font-size:24px;margin:5px 0}.armory-panel button{min-width:70px;min-height:44px;color:#e1e7cb;background:#2c3824;border:1px solid #819357;font:inherit;cursor:pointer}.armory-note{color:#a6b395;font-size:11px;line-height:1.8}.armory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.armory-card{background:#1e281c;border:1px solid #53613e;padding:16px;min-width:0}.armory-card h3{font-size:16px;margin:0 0 6px;color:#dfebbb}.armory-card .armory-role{font-size:11px;color:#c3aa74}.armory-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.armory-card dl div{border-bottom:1px solid #465136;padding-bottom:7px}.armory-card dt{font-size:10px;color:#9aab85}.armory-card dd{margin:4px 0 0;font:16px monospace;color:#e2ebc8}.armory-card p{font-size:11px;line-height:1.8;color:#bdc9a9;margin:6px 0}.armory-note,.armory-card{touch-action:pan-y}.armory-screen.hidden{display:none}.mobile-game .armory-screen{padding:max(12px,var(--game-safe-top)) 16px max(12px,var(--game-safe-bottom))}.mobile-game .armory-panel>header{top:-12px}.mobile-game .armory-panel h2{font-size:20px}#roomArmoryOpen{width:100%;margin:8px 0}.mission-hud strong,.mission-hud>span{display:block;font-weight:normal}.mission-hud>span{font-size:9px;color:#c1cca5;margin-top:2px}.mission-track{height:4px;margin-top:5px;background:#121b12;border:1px solid #5c7040}.mission-track i{display:block;height:100%;background:#d8e69a;width:0}.mission-hud.working{border-color:#c1d17c}.mobile-game .mission-hud{width:36%;padding:4px 6px}.mobile-game .mission-hud>span{font-size:8px;line-height:1.4}.mobile-game .event-hud{top:calc(var(--game-safe-top) + 148px)}
@media(max-width:550px){.armory-screen{padding:12px}.armory-grid{grid-template-columns:1fr}.armory-panel>header{top:-12px}.armory-card{padding:13px}.armory-entry span{font-size:9px}}

.ranked-settings{margin:8px 0 10px;display:grid;gap:6px;font-size:11px;color:#bdcaa4}.ranked-choice{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-height:44px}.ranked-choice input{accent-color:#dcec95;width:19px;height:19px;margin:0}.ranked-choice small{font-size:10px;color:#95a882}.ranked-name{display:flex;gap:10px;align-items:center}.ranked-name input{flex:1;min-width:0;max-width:230px;background:#202c1d;border:1px solid #596d40;color:#e0e9c3;padding:8px;min-height:36px;font-size:16px}.ranked-settings p{font-size:10px;margin:0;color:#e4ba87;min-height:0}.mobile-game .ranked-settings{grid-column:1/-1;margin:4px 0}.board-filters{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.board-filters label{display:grid;gap:6px;color:#b6c39e;font-size:11px;min-width:110px;flex:1}.board-filters select{min-height:44px;background:#24311f;border:1px solid #65784b;color:#e2e9cd;padding:7px;font-size:16px;max-width:100%}.board-filters button{align-self:end}.board-rows{display:grid;gap:10px}.board-row{padding:14px;background:#202b1d;border:1px solid #4b5f36}.board-row header{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}.board-row strong{font-size:16px;font-weight:600;color:#d8e7ac}.board-row .board-time{font:18px monospace;color:#eee9c0}.board-row p{color:#b9c6a4;font-size:12px;line-height:1.7;margin:7px 0}.board-row small{color:#96a88a;font-size:10px}#leaderboardOpen,#roomLeaderboardOpen{width:100%;margin:8px 0}.ranked-settings input:disabled{opacity:.5}.ranked-settings .ranked-name.hidden{display:none}

.menu-guides{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.start-panel .menu-guides #armoryOpen,.start-panel .menu-guides #leaderboardOpen{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:44px;min-height:44px;margin:0;text-align:center;padding:8px;font-size:12px}.menu-guides .armory-entry span{display:none}@media(pointer:coarse){.ranked-name input{min-height:44px}}
