@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap');
@font-face{font-family:"BG Battle";src:url("assets/BlackOpsOne-Regular.ttf") format("truetype");font-weight:400;font-display:swap}:root{color-scheme:dark;--gold:#dfc48a;--ink:#0b1417;--muted:#9ba9a8;--line:#75664166}*{box-sizing:border-box}body{margin:0;background:#101a1b;color:#f5edda;font:14px Inter,system-ui,sans-serif}button{font:inherit;cursor:pointer;color:inherit;transition:background .15s,border-color .15s,transform .15s}button:focus-visible{outline:2px solid #fff0bc;outline-offset:4px}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}#battlefield{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#070e13c9;backdrop-filter:blur(9px);overflow:auto;padding:28px}.lobby{width:min(1120px,100%);margin:auto;background:linear-gradient(140deg,#17262aeF,#10191ff5 55%,#181b23f5);border:1px solid var(--line);box-shadow:0 30px 100px #000a;position:relative;padding:30px 38px 20px}.lobby:before,.lobby:after{content:'';position:absolute;width:30px;height:30px;border-color:var(--gold);pointer-events:none}.lobby:before{top:-1px;left:-1px;border-left:2px solid;border-top:2px solid}.lobby:after{bottom:-1px;right:-1px;border-right:2px solid;border-bottom:2px solid}.masthead{text-align:center;margin-bottom:25px}.eyebrow{color:#cfb67a;font-size:9px;font-weight:700;letter-spacing:4px}.masthead h1{font:800 48px/1.05 Cinzel,Georgia,serif;letter-spacing:6px;color:#efdfb4;margin:12px 0 14px;text-shadow:0 3px 0 #422f19}.masthead h1 span{display:block;font-size:17px;letter-spacing:10px;margin-top:9px}.masthead p{color:#acb9b7;font-size:12px;margin:0}.lobby-layout{display:grid;grid-template-columns:250px 1fr;gap:32px}.map-preview{position:relative;height:360px;border:1px solid #9a85545c;overflow:hidden}.map-preview img{width:100%;height:100%;object-fit:cover}.map-preview:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 30px #0006;pointer-events:none}.map-preview button{position:absolute;bottom:0;left:0;width:100%;padding:12px 4px;background:#101a1bea;border:0;border-top:1px solid var(--line);font-size:9px;letter-spacing:1px;color:#e8d198;z-index:1}.briefing-copy{padding:18px 0 0}.briefing-copy b{font:600 13px Cinzel,Georgia;color:#dec68e}.briefing-copy p{font-size:11px;line-height:1.9;color:var(--muted);margin:8px 0}h2{font:600 15px Cinzel,Georgia;margin:0}.selection-top,.class-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.muted,.class-heading span{font-size:9px;color:var(--muted)}.factions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}.factions button{position:relative;text-align:left;padding:12px 12px 12px 50px;background:#17242e;border:1px solid #41687f70;font-weight:700;font-size:12px;letter-spacing:2px}.factions button span{position:absolute;left:18px;top:10px;font-size:28px;color:#9cc9ff}.factions button small{display:block;font-size:9px;font-weight:400;letter-spacing:0;margin-top:4px;color:#8faabd}.factions button[data-team=horde]{background:#2a2124;border-color:#79514770}.factions button[data-team=horde] span{color:#fba491}.factions button[aria-pressed=true]{border-color:#e9cd88;box-shadow:inset 0 0 25px #f4d58b10}.class-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.class-card{background:radial-gradient(ellipse at 50% 60%,#37464966,#101b2099);border:1px solid #64706c40;position:relative;min-width:0;padding:6px 4px 9px;overflow:hidden}.class-card:hover{background-color:#43515744;transform:translateY(-2px)}.class-card[aria-pressed=true]{border-color:var(--gold);background:radial-gradient(ellipse at 50% 60%,#a0804044,#172228);box-shadow:inset 0 0 0 1px #e8c68130}.class-card canvas{display:block;margin:auto;width:65px;height:120px;pointer-events:none}.class-card strong{font-size:10px;color:var(--class-color);display:block;margin:4px 0 3px}.class-card small{display:block;text-transform:uppercase;font-size:8px;color:#a5afac;letter-spacing:1px}.class-card[aria-pressed=true]:after{content:'◆';position:absolute;right:7px;top:6px;color:var(--gold);font-size:9px}.class-detail{min-height:66px;margin-top:14px;border-left:2px solid var(--gold);padding-left:12px}.class-detail b{font:600 13px Cinzel;color:#edddb5}.class-detail p{font-size:11px;line-height:1.5;margin:5px 0;color:#a6b4b0}.primary{width:100%;background:linear-gradient(#d3b56a,#9b793a);border:1px solid #ecd89d;color:#171c1b;font:800 14px Cinzel,Georgia;letter-spacing:2px;padding:14px 18px;box-shadow:0 4px 14px #0004}.primary:hover{background:linear-gradient(#edcf84,#bd9650)}.control-hint{font-size:9px;color:#8e9d9b;text-align:center;line-height:1.6;margin:10px 0 0}.lobby-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #5c62593b;margin-top:23px;padding-top:14px;font-size:8px;letter-spacing:.5px;color:#788c8d}.scoreboard{position:fixed;top:15px;left:50%;transform:translateX(-50%);width:min(570px,75%);display:grid;grid-template-columns:1fr 90px 1fr;text-align:center;background:#101a21ed;border:1px solid #ac915e88;box-shadow:0 5px 25px #0005;padding:10px 14px;pointer-events:none}.team-score{font:700 12px Cinzel,Georgia;letter-spacing:1px}.team-score b{font:700 28px Cinzel;margin:0 10px}.team-score small{display:block;font:8px Inter;margin-top:3px;letter-spacing:1px}.alliance{color:#8dc7ff}.horde{color:#ff998a}.match-clock strong{display:block;font:600 20px Cinzel}.match-clock span{display:block;font-size:8px;color:#b5aa8b;margin-top:6px}.pause{position:fixed;top:22px;right:18px;padding:10px 14px;border:1px solid var(--line);background:#101a21e8;color:var(--gold)}.pause span{font-size:9px}.objective{position:fixed;top:98px;left:50%;transform:translateX(-50%);max-width:60%;text-align:center;background:#101a21d9;border:1px solid #a8905e55;padding:8px 14px;font-size:11px;color:#eedbac}.feed{position:fixed;top:90px;left:18px;width:240px;font-size:10px;line-height:1.6;pointer-events:none}.feed div{padding:5px 8px;background:#0f1b22c9;margin-bottom:4px;border-left:2px solid currentColor}.player-hud{position:fixed;bottom:22px;left:24px;width:300px;background:#101a21ef;border:1px solid var(--line);padding:13px 15px;pointer-events:none}.vitals{display:flex;justify-content:space-between;font-size:11px;margin-bottom:8px}.vitals b{font-family:Cinzel}.vitals span{color:#b9cbac;font-size:10px}.bar{height:7px;background:#050e11;overflow:hidden}.bar i{height:100%;display:block;background:linear-gradient(90deg,#679849,#b3da75);transition:width .15s}.xp-row{display:flex;align-items:center;gap:10px;margin-top:9px;font-size:9px;color:#c9b391}.xp{flex:1;height:3px}.xp i{background:#8a9edb}.powers{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:12px}.powers div{border:1px solid #bc9c5840;background:#263232;text-align:center;padding:5px 2px;font-size:8px;line-height:1.5;min-height:38px}.powers .empty{color:#536462;border-style:dashed}.powers b{display:block;color:#eed4a0;font-size:9px}.player-hud>small{display:block;color:#b7dbec;font-size:9px;min-height:10px;margin-top:8px}.desktop-controls{position:fixed;bottom:22px;right:25px;color:#e5d7b9;font-size:9px;background:#101a21ba;padding:8px}.desktop-controls span{color:#9ca9a6;margin:0 6px}.modal-content{background:linear-gradient(130deg,#17292e,#141b22);border:1px solid var(--line);width:min(680px,100%);padding:35px;text-align:center;box-shadow:0 20px 80px #000a}.modal-content h2{font-size:27px;color:#ebd5a1;margin:10px 0}.modal-content p{color:#aebdb8;line-height:1.7;font-size:12px}.modal-content .eyebrow{font-size:9px}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0}.choice{border:1px solid #8d784d;background:#253336;padding:20px 12px;min-height:160px;text-align:left}.choice:hover{border-color:#f2d8a1;background:#354342}.choice small{font-size:9px;color:#ae9a70}.choice b{display:block;color:#f0d69c;font:600 16px Cinzel;margin:15px 0 10px}.choice span{font-size:11px;line-height:1.5;color:#bac8bf}.secondary{padding:12px 20px;background:#1a2b31;border:1px solid #64706c;color:#e0d8bb;margin-top:10px}.build-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left;margin:20px 0}.build-list div{background:#203034;border:1px solid #58665a66;padding:12px;font-size:11px}.build-list b{display:block;color:#dec58b;margin-bottom:5px}.result-score{font:700 55px Cinzel;color:var(--gold);margin:25px 0}.respawn{position:fixed;top:46%;left:50%;transform:translate(-50%,-50%);padding:25px;background:#111e29e8;border:1px solid #8ca7be77;text-align:center;font-size:16px;pointer-events:none}.respawn small{display:block;font-size:11px;margin-top:8px;color:#a9b9c9}#joystick{display:none;position:fixed;left:24px;bottom:max(26px,env(safe-area-inset-bottom));width:112px;height:112px;border:1px solid #e3d09866;border-radius:50%;background:#15243177;touch-action:none;user-select:none}#joystick i{display:block;position:absolute;left:34px;top:34px;width:42px;height:42px;background:#cfbd8e88;border:1px solid #f2e1b3aa;border-radius:50%;pointer-events:none}#joystick span{position:absolute;bottom:10px;width:100%;text-align:center;font-size:8px;color:#e1d0aa;pointer-events:none}#close-map{position:fixed;left:50%;top:20px;transform:translateX(-50%);padding:13px 20px;background:#14252a;border:1px solid var(--gold);font-size:10px;white-space:nowrap}
@media(pointer:coarse){#joystick{display:block}.desktop-controls{display:none}.player-hud{left:auto;right:18px;bottom:22px;width:220px}}
@media(max-width:700px){.overlay{padding:12px}.lobby{padding:24px 18px 16px}.masthead h1{font-size:36px}.masthead h1 span{font-size:13px}.masthead p{font-size:10px;line-height:1.6}.eyebrow{font-size:8px;letter-spacing:2px}.lobby-layout{grid-template-columns:1fr;gap:15px}.briefing{display:none}.masthead{margin-bottom:20px}.selection-top h2,.class-heading h2{font-size:12px}.class-heading span{font-size:8px}.factions{margin-bottom:18px}.factions button{padding:10px 8px 10px 40px;font-size:10px}.factions button span{left:12px;top:10px;font-size:23px}.class-grid{gap:6px}.class-card canvas{width:47px;height:86px}.class-card strong{font-size:9px}.class-card small{font-size:7px;letter-spacing:.5px}.class-detail{min-height:72px}.class-detail b{font-size:11px}.class-detail p{font-size:10px}.lobby-footer{display:block;font-size:7px;line-height:1.8;margin-top:16px}.lobby-footer span{display:block}.control-hint{font-size:8px}.scoreboard{top:max(10px,env(safe-area-inset-top));left:12px;transform:none;width:calc(100% - 65px);grid-template-columns:1fr 60px 1fr;padding:8px 4px}.team-score{font-size:9px;letter-spacing:0}.team-score b{font-size:23px;margin:0 4px}.team-score small{font-size:7px;letter-spacing:0}.match-clock strong{font-size:17px}.match-clock span{font-size:7px}.pause{top:20px;right:9px;padding:9px}.pause span{display:none}.objective{top:81px;left:12px;transform:none;max-width:calc(100% - 130px);text-align:left;padding:7px;font-size:9px}.feed{top:145px;left:12px;width:calc(100% - 140px);font-size:8px}.player-hud{left:auto;right:12px;bottom:max(18px,env(safe-area-inset-bottom));width:210px;padding:10px}.vitals{font-size:9px}.vitals span{font-size:9px}.powers{gap:3px;margin-top:8px}.powers div{font-size:7px}.player-hud>small{font-size:8px}.desktop-controls{display:none}#joystick{display:block;left:14px;width:100px;height:100px}#joystick i{left:28px;top:28px}.modal-content{padding:24px 16px}.modal-content h2{font-size:23px}.choices{grid-template-columns:1fr;margin:20px 0;gap:8px}.choice{min-height:0;padding:12px}.choice b{font-size:13px;margin:5px 0}.choice span{font-size:10px}.build-list{font-size:10px}.respawn{width:260px;font-size:14px}}
@media(max-height:550px) and (orientation:landscape){.lobby{max-width:850px}.masthead{margin-bottom:10px}.masthead h1{font-size:28px}.lobby-layout{grid-template-columns:180px 1fr;gap:20px}.map-preview{height:280px}.class-card canvas{height:75px;width:40px}.scoreboard{top:8px;width:390px}.objective{top:85px}.feed{top:15px;width:180px}.player-hud{bottom:12px;right:14px;left:auto;width:230px}#joystick{width:94px;height:94px;bottom:14px}.powers{margin-top:7px}}
.map-link{padding:3px 0;background:none;border:0;color:#ddc386;font-size:9px;letter-spacing:1px}.class-heading>span{display:none}

#mode-picker{margin-bottom:22px}#mode-picker h2{margin-bottom:10px}
