@import url('/brand-tokens.css');
@font-face{font-family:Source;src:url('/assets/source-sans.ttf')}@font-face{font-family:Franklin;src:url('/assets/franklin.ttf')}@font-face{font-family:Plex;src:url('/assets/plex.ttf')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#091c26;color:#eaf3ed;font-family:Source,Arial,sans-serif}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #cab7e9;outline-offset:4px}[hidden]{display:none!important}canvas{display:block;width:100%;height:100%;outline:none}.menu{position:absolute;inset:0;background:#091c26}.menu-art{position:absolute;inset:0;background:url('/assets/arena-keyart.png') center top/cover no-repeat}.menu-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,21,29,.97),rgba(5,21,29,.78) 30%,rgba(5,21,29,.12) 65%),linear-gradient(0deg,#061721 0%,transparent 24%,transparent 82%,rgba(4,19,27,.8))}.masthead{position:absolute;top:28px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:17px;color:#dcece5;text-decoration:none;font-family:Plex,monospace;font-size:11px;letter-spacing:2px}.brand img{width:61px;height:61px;object-fit:contain}.brand i{font-style:normal;color:#7d969c;margin:0 9px}.build-label{display:flex;align-items:center;gap:9px;color:#bbc9c7;letter-spacing:1.4px;font:10px Plex,monospace}.build-label>span{padding:5px 7px;border:1px solid #637571;border-radius:3px}.status-dot{width:5px;height:5px;background:#a7d8c2;border-radius:50%;box-shadow:0 0 8px #92d4b8}.menu-main{position:absolute;left:6.8%;top:22%;width:560px;max-width:45%}.eyebrow{font:10px Plex,monospace;letter-spacing:2px;color:#a8c2bf;display:flex;gap:12px;align-items:center}.slashes{color:#b0dec3;font-family:Franklin,sans-serif;font-weight:900;font-size:23px;letter-spacing:-4px;padding-right:5px}h1{font:850 clamp(38px,4.5vw,72px)/1.02 Franklin,Arial,sans-serif;letter-spacing:-3px;margin:21px 0 18px}h1 em,h2 em{font-style:normal;color:#b5dfbe}h1 em{color:#c7b2e5}.intro{font-size:17px;line-height:1.55;color:#b6c5c7;margin:0 0 28px}.deploy-card{width:355px;max-width:100%;padding:20px;background:#0a202ae8;border:1px solid #3b555e;border-radius:6px;box-shadow:0 16px 50px #0002}.deploy-heading{display:flex;justify-content:space-between;font:9px Plex,monospace;letter-spacing:1px;margin-bottom:20px;color:#93a9ae}.mint{color:#a9d9c0}.deploy-card label{display:block;font:9px Plex,monospace;letter-spacing:1px;margin-bottom:7px;color:#bdcece}.deploy-card input{width:100%;padding:11px 12px;border:1px solid #36525d;border-radius:3px;color:#e8f3ec;background:#0b1b24;font-size:15px;outline:none}.deploy-card input:focus{border-color:#a8d6c0}.primary{display:flex;align-items:center;justify-content:space-between;border:0;border-radius:3px;background:#a6d7c4;color:#123b38;padding:14px 16px;width:100%;font-size:13px;font-weight:800;letter-spacing:.6px;transition:background .15s,transform .15s}.primary:hover{background:#c2ead4;transform:translateY(-1px)}.deploy-card .primary{margin-top:10px}.arrow{font-size:22px;line-height:1}.load-track{height:2px;background:#253c45;margin-top:16px}.load-track i{display:block;width:0;height:100%;background:#c9b5e5;transition:width .2s}.deploy-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font:8px Plex,monospace;color:#8ca6ad}#error{color:#f4a18d;font-size:12px;margin:8px 0 0}.secondary{border:1px solid #a2c1bc;background:transparent;color:#d4e9df;padding:7px 12px}.match-facts{display:flex;gap:28px;margin-top:21px;color:#869fa4;font:8px Plex,monospace;letter-spacing:1px}.match-facts strong{font:600 18px Franklin,sans-serif;color:#e1e9e5;margin-right:6px}.operator-caption{position:absolute;bottom:13%;right:7%;display:flex;gap:16px}.operator-caption small{font:9px Plex;letter-spacing:3px;color:#b4c3c2;display:block;margin:5px 0 8px}.operator-caption strong{font:800 23px/1.1 Franklin}.menu-footer{position:absolute;bottom:26px;left:42px;right:42px;display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid #b6d4ce25;color:#9eb1b4;font:9px Plex,monospace;letter-spacing:.6px}kbd{display:inline-block;border:1px solid #78928d66;border-radius:3px;font:9px Plex,monospace;padding:3px 5px;margin-right:5px;color:#d5e4dc}.menu-footer kbd:not(:first-child){margin-left:15px}.menu-footer i{font-style:normal;margin:0 8px}#hud{position:absolute;inset:0;pointer-events:none;text-shadow:0 2px 7px #0008}.hud-brand{position:absolute;top:28px;left:30px;display:flex;gap:13px;align-items:center;font:800 13px Franklin;letter-spacing:1px}.hud-brand small{display:block;font:8px Plex;letter-spacing:1.5px;color:#bfd0cf;margin-top:5px}.match-clock{position:absolute;top:20px;left:50%;transform:translateX(-50%);text-align:center;padding:8px 27px 14px;background:linear-gradient(#081b24b0,#081b2400);min-width:220px}.match-clock small{font:8px Plex;letter-spacing:2px;color:#c1d2d1}.match-clock>strong{display:block;font:650 30px Franklin;letter-spacing:1px;margin:3px 0 5px}.match-clock>div{display:flex;align-items:center;justify-content:center;gap:9px;font:9px Plex}.match-clock i{font-style:normal;color:#8ca5a6}.clock-divider{height:10px;width:1px;background:#8caba266;margin:0 3px}#rank{color:#b9e9c5}#goal{color:#d4deda;font-size:8px}.kill-feed{position:absolute;right:28px;top:34px;width:320px;display:grid;gap:5px}.kill-feed>div{margin-left:auto;padding:8px 11px;background:#061922b0;border-right:2px solid #b0d9bd;font:11px Source;border-radius:2px;animation:feed-in .2s ease-out}.kill-feed b{color:#c9b6e7;margin:0 8px;font:8px Plex}.phase-banner{position:absolute;top:25%;left:50%;transform:translateX(-50%);text-align:center;font:800 60px Franklin;text-shadow:0 4px 20px #0008}.phase-banner small{font:10px Plex;letter-spacing:3px;display:block;margin-bottom:12px}.crosshair{position:absolute;top:50%;left:50%;width:0;height:0;--gap:6px;filter:drop-shadow(0 1px 1px #000)}.crosshair i{position:absolute;background:#ebfff2}.crosshair i:nth-child(1){width:6px;height:2px;right:var(--gap);top:-1px}.crosshair i:nth-child(2){width:6px;height:2px;left:var(--gap);top:-1px}.crosshair i:nth-child(3){width:2px;height:6px;top:var(--gap);left:-1px}.crosshair i:nth-child(4){width:2px;height:6px;bottom:var(--gap);left:-1px}.crosshair b{width:2px;height:2px;position:absolute;top:-1px;left:-1px;background:#fff}.hit-marker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:300 44px Arial;color:#c8efd9;opacity:0}.hit-marker.active{animation:hit .2s ease-out}.hit-marker.kill{color:#f1937c}.damage-number{position:absolute;top:calc(50% - 36px);left:calc(50% + 23px);font:600 14px Plex;color:#c7ebd1;opacity:0}.damage-number.active{animation:damage .6s ease-out}.notice{position:absolute;top:66%;left:50%;transform:translateX(-50%);font:11px Plex;letter-spacing:1px;padding:9px 15px;background:#071b25ad;border-left:2px solid #bdd6b9;opacity:0}.notice.active{animation:notice 2.4s ease-out}#damage-vignette{position:absolute;inset:0;box-shadow:inset 0 0 110px 25px #df5a3860;opacity:0}#damage-vignette.active{animation:hit .6s ease-out}.health-panel{position:absolute;bottom:65px;left:38px;display:flex;align-items:center;gap:16px}.health-symbol{font:300 45px Source;color:#b4dec5}.hud-label{font:8px Plex;letter-spacing:2px;color:#bed1cc}.health-value{display:flex;gap:10px;align-items:baseline}.health-value strong{font:750 55px/.95 Franklin;letter-spacing:-2px}.health-value span{font:10px Plex;color:#afc7c1}.health-track{width:135px;height:3px;background:#a2c5b637;margin-top:12px}.health-track i{display:block;height:100%;width:100%;background:#b7e1c6;transition:width .15s}.health-panel.low strong{color:#f59480}.weapon-panel{position:absolute;right:36px;bottom:60px;width:278px;text-align:right}.weapon-info{position:relative;padding-right:103px;height:62px;display:flex;flex-direction:column;justify-content:center;gap:4px}.weapon-info>strong{font:750 25px Franklin;letter-spacing:1px}.ammo{position:absolute;right:0;top:4px;display:flex;align-items:baseline;gap:6px}.ammo b{font:750 44px Franklin;letter-spacing:-2px}.ammo>span{font:10px Plex;color:#b4c6c1}.weapon-slots{display:flex;justify-content:flex-end;gap:6px}.weapon-slot{position:relative;width:86px;height:36px;background:#0b20294d;border-bottom:2px solid #76928b38;display:flex;align-items:center;justify-content:center;color:#8aa09e}.weapon-slot.selected{color:#c2e9ce;border-color:#c2e9ce;background:#112f369c}.weapon-slot svg{width:55px;height:22px}.weapon-slot small{position:absolute;left:5px;top:5px;font:8px Plex}.weapon-charge{height:2px;background:#425b5b55;margin-top:8px}.weapon-charge i{height:100%;display:block;background:#c4afe9;transition:width .1s}.weapon-panel>small{font:8px Plex;letter-spacing:1.5px;color:#bad0cd;display:block;margin-top:6px}.hud-bottom{position:absolute;bottom:17px;left:30px;right:30px;display:flex;justify-content:space-between;font:8px Plex;color:#adbfbc;letter-spacing:.5px}.hud-bottom kbd{font-size:8px}.modal-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0411198a;backdrop-filter:blur(7px);padding:24px}.pause-card{width:440px;background:linear-gradient(145deg,#102a35f5,#071923fa);border:1px solid #48646a;border-radius:6px;box-shadow:0 30px 100px #0006;padding:32px}.pause-card h2{font:850 35px/1.03 Franklin;letter-spacing:-1.5px;margin:21px 0 14px}.pause-card>p{font-size:14px;color:#a6bec0;margin:0 0 20px}.pause-card .capture-hint{font-size:12px;color:#e4c296;margin:9px 0 0}.settings{margin-top:24px;border-top:1px solid #829b982b;padding-top:17px;display:grid;gap:15px}.settings label{font:9px Plex;letter-spacing:1px;color:#a9bfbe}.settings output{float:right;color:#dcebdc}.settings input{display:block;width:100%;height:3px;margin:14px 0 3px;accent-color:#a9d9c0}.controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px;color:#a9bfc0;font:8px Plex;align-items:center}.controls kbd{font-size:8px}.external{display:block;margin-top:20px;color:#b6d8c9;font:9px Plex;text-decoration:none}.score-card{width:min(800px,94vw);padding:30px;background:#0b202bf5;border:1px solid #426169;border-radius:6px}.score-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.score-top h2{font:800 30px Franklin;letter-spacing:-1px;margin:14px 0 25px}#next-round{font:10px Plex;color:#badbc7;text-align:right}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:right;color:#91aeb4;font:8px Plex;letter-spacing:1px;padding:12px 9px;border-bottom:1px solid #4c6869}th:nth-child(1),th:nth-child(2),td:nth-child(1),td:nth-child(2){text-align:left}td{text-align:right;padding:12px 9px;border-bottom:1px solid #81989120;font-variant-numeric:tabular-nums}td:first-child{font:11px Plex;color:#a7bcb9;width:40px}td:nth-child(2){font-weight:600}tr.self{background:#9acdb417;color:#c4ebd0}tr.offline{opacity:.4}.score-footer{display:flex;justify-content:space-between;align-items:center;font:8px Plex;letter-spacing:1px;color:#94acb0;margin-top:19px}.score-footer .slashes{font-size:15px;margin-left:9px}@keyframes hit{0%,50%{opacity:1}100%{opacity:0}}@keyframes damage{0%{opacity:1;transform:translateY(5px)}100%{opacity:0;transform:translateY(-16px)}}@keyframes notice{0%,80%{opacity:1}100%{opacity:0}}@keyframes feed-in{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}@media(max-height:760px){.menu-main{top:18%;}.masthead{top:15px}.menu-main h1{font-size:45px;margin:15px 0}.intro{margin-bottom:17px;font-size:14px}.deploy-card{padding:14px 17px}.deploy-heading{margin-bottom:12px}.menu-footer{bottom:14px;padding-top:12px}.match-facts{margin-top:14px}.pause-card{padding:23px}.pause-card h2{font-size:28px;margin:14px 0}.settings{margin-top:15px}.controls{margin-top:16px}.score-card{max-height:90vh;overflow:auto}}@media(max-width:850px){.menu-main{left:5%;max-width:65%}.menu-art{background-position:62% center}.operator-caption{display:none}.masthead{left:25px;right:25px}.brand span{font-size:9px}.build-label{font-size:8px}.menu-footer{left:25px;right:25px;font-size:8px}.menu-footer>span:last-child{display:none}.hud-brand{top:22px;left:18px;font-size:10px}.hud-brand small{font-size:7px}.kill-feed{width:220px;right:14px;top:105px}.health-panel{left:22px}.weapon-panel{right:20px;width:240px}.weapon-slot{width:74px}.hud-bottom #connection{display:none}.match-clock{top:12px}.score-top h2{font-size:22px}.score-card{padding:20px}}@media(max-height:600px){.menu-main{top:15%;}.menu-main h1{font-size:35px}.intro{display:none}.match-facts{display:none}.masthead img{width:42px;height:42px}.deploy-card{width:320px}.operator-caption{display:none}.pause-card{padding:18px}.pause-card h2{font-size:24px}.pause-card>p{margin-bottom:10px}.settings{gap:9px;padding-top:10px}.external{margin-top:10px}.controls{gap:4px}.health-value strong{font-size:42px}}

/* Round two: readable combat labels and restrained, directional feedback. */
.hit-marker.headshot{color:#ffda74}.kill-feed>div{font-size:13px;font-weight:650}.kill-feed b{font-size:10px}
#nameplates{position:absolute;inset:0;pointer-events:none}#nameplates span{position:absolute;transform:translate(-50%,-100%);padding:3px 7px;background:#081b24aa;border-bottom:2px solid #b4dec5;color:#e3f3e9;font:600 11px Source;white-space:nowrap;text-shadow:0 1px 3px #000}
#damage-direction{position:absolute;left:50%;top:50%;width:140px;height:140px;margin:-70px;border:5px solid transparent;border-top-color:#ed806e;border-radius:50%;transform:rotate(var(--angle,0deg));opacity:0}#damage-direction.active{animation:hit .45s ease-out}
#banter{top:72%;border-color:#c7b2e5;font-family:Source;font-size:15px;letter-spacing:0}
.settings select{float:right;color:#d8e8df;background:#102b35;border:1px solid #4e6a70;padding:4px}.settings .check-setting{display:flex;align-items:center;gap:9px}.settings .check-setting input{display:inline-block;width:14px;height:14px;margin:0}
.health-panel.critical{filter:drop-shadow(0 0 9px #ef806260)}
@media(max-height:760px){.pause-card{max-height:94vh;overflow:auto}.settings{gap:10px}}
@media(prefers-reduced-motion:reduce){.damage-number.active{animation:hit .5s ease-out}.primary{transition:none}}
/* Keep wardrobe controls and Deploy in document flow at every window height. */
#menu{overflow-y:auto}
#menu .menu-main{position:relative;top:auto;padding-top:max(110px,13vh);padding-bottom:32px;min-height:calc(100% - 80px)}
#menu .menu-footer{position:relative;left:auto;right:auto;bottom:auto;margin:0 42px 26px}
.weapon-slot:nth-child(1).selected{color:#f0cf98;border-color:#f0cf98}.weapon-slot:nth-child(2).selected{color:#a6e8c8;border-color:#a6e8c8}.weapon-slot:nth-child(3).selected{color:#c6b3f0;border-color:#c6b3f0}

/* Round three: portal-style cards and compact state pills. */
.deploy-card,.pause-card,.score-card{border-radius:var(--radius-card);background:var(--panel);border-color:var(--line)}
.primary,.secondary,.deploy-card input{border-radius:var(--radius-btn)}.primary{background:var(--yes);color:var(--yes-ink)}
.hud-brand,.match-clock,.health-panel,.weapon-panel{background:#0d2631e8;border:1px solid var(--line);border-radius:var(--radius-card);backdrop-filter:blur(8px)}
.hud-brand{padding:13px 17px}.match-clock{padding:14px 24px}.health-panel{padding:18px 22px}.weapon-panel{padding:16px 20px;min-width:280px}
.health-value strong,.ammo b,.match-clock>strong{font-variant-numeric:tabular-nums;color:var(--ink)}
.weapon-slot{border-radius:8px}.kill-feed>div{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:9px 12px}.kill-feed .killer{color:var(--yes)}.kill-feed .victim{color:var(--no)}
#spawn-shield{position:absolute;left:50%;bottom:23%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--panel);border:1px solid var(--yes);border-radius:12px;color:var(--ink)}
#spawn-shield strong{display:block;font:700 14px Franklin}#spawn-shield small{display:block;font:9px Plex;color:var(--muted);margin-top:4px}#shield-count{font:800 23px Franklin;border:3px solid var(--yes);border-radius:50%;width:42px;height:42px;display:grid;place-items:center}
.hit-marker.shield{color:var(--muted)}#hit.headshot{color:var(--gold)}#score-rows td:nth-child(2){border-left:3px solid var(--swatch,transparent)}
@media(max-width:850px){.weapon-panel{min-width:220px;padding:10px}.health-panel{padding:10px}.hud-brand{padding:8px}#spawn-shield{bottom:27%;max-width:90%}}

.identity-options{display:flex;gap:12px;margin:8px 0}.identity-options label{flex:1;min-width:0}.identity-options input,.identity-options select{width:100%;box-sizing:border-box;background:#102c35;color:#edf4f1;border:1px solid #36535b;padding:8px;font:inherit}.weapon-slots{grid-template-columns:repeat(7,1fr)}#armour{font-size:13px;color:#c2addf}#death-recap{position:absolute;top:62%;left:20%;width:60%;text-align:center;color:#edf4f1;font-size:16px;text-shadow:0 2px 4px #000}#scope{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 0 29vmin,#020b10 30vmin);pointer-events:none}#scope i{position:absolute;left:calc(50% - 29vmin);top:calc(50% - 29vmin);width:58vmin;height:58vmin;border:1px solid #c2addf88;border-radius:50%;background:linear-gradient(transparent calc(50% - .5px),#a4d9c3 50%,transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),#a4d9c3 50%,transparent calc(50% + .5px))}#scope b,#scope small{position:absolute;left:50%;transform:translateX(-50%);top:calc(50% + 20vmin);font:12px monospace;color:#a4d9c3}#scope small{top:calc(50% + 24vmin)}

.weapon-slots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weapon-slot{width:auto;min-width:0;height:34px}.weapon-slot svg{width:90%;height:19px}.weapon-slot small{top:2px;left:3px}#scope i:before,#scope i:after{content:"";position:absolute;background:#a4d9c3;opacity:.8}#scope i:before{width:100%;height:1px;top:50%;left:0}#scope i:after{height:100%;width:1px;left:50%;top:0}

/* Scale only panels; reticles and nameplates stay in viewport coordinates. */
.hud-brand,.health-panel,.weapon-panel,.kill-feed{transform:scale(var(--hud-scale,1))}.hud-brand{transform-origin:top left}.health-panel{transform-origin:bottom left}.weapon-panel{transform-origin:bottom right}.kill-feed{transform-origin:top right}.match-clock{transform:translateX(-50%) scale(var(--hud-scale,1));transform-origin:top center}.health-panel,.weapon-panel{bottom:42px}#death-recap{font-size:clamp(11px,1.2vw,16px)}
@media(max-width:1000px){.weapon-slot:not(.selected){display:none}.weapon-slots{display:block}.weapon-slot.selected{display:inline-flex;width:70px}.hud-brand small{display:none}.health-panel{left:14px}.weapon-panel{right:14px}.kill-feed{top:18px}.match-clock{min-width:180px}}
.hit-marker{color:#fff}.hit-marker.headshot{font-size:58px}.hit-marker.kill{color:#ed665c}.hit-marker.active{animation:hit-accent .20s ease-out}@keyframes hit-accent{0%,25%{opacity:1;color:#fff;filter:brightness(2)}100%{opacity:0;filter:brightness(1)}}

.weapon-slot{height:44px;padding-bottom:10px}.slot-ammo{position:absolute;bottom:2px;left:0;right:0;font:7px Plex;font-style:normal;text-align:center}.weapon-slot.unowned{opacity:.28}.weapon-slot.unowned svg{filter:grayscale(1)}

.hit-marker i{position:absolute;width:10px;height:2px;background:currentColor;transform-origin:0 50%}.hit-marker i:nth-child(1){transform:rotate(45deg) translateX(6px)}.hit-marker i:nth-child(2){transform:rotate(135deg) translateX(6px)}.hit-marker i:nth-child(3){transform:rotate(225deg) translateX(6px)}.hit-marker i:nth-child(4){transform:rotate(315deg) translateX(6px)}.hit-marker.headshot{transform:translate(-50%,-50%) scale(1.35)}

/* Round six: team objectives remain legible without covering the reticle. */
#my-team{color:var(--team)}.health-panel{border-left:3px solid var(--team)}
#ctf-status{position:absolute;left:50%;top:calc(28px + 105px * var(--hud-scale));transform:translateX(-50%);display:flex;gap:8px;white-space:nowrap;font:9px Plex}
#ctf-status span{padding:7px 10px;border:1px solid #45636a;border-radius:20px;background:#0b202bdd}#your-lily{color:var(--team)}#their-lily{color:#e6dcb3}
#compass{position:absolute;top:calc(63px + 105px * var(--hud-scale));left:50%;transform:translateX(-50%);font:10px Plex;letter-spacing:3px;color:#bfd3ce}
#objectives{position:absolute;inset:0}.objective{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;color:#c2addf;filter:drop-shadow(0 2px 3px #000)}.objective.own{color:#a4d9c3}.objective b{font:30px Arial}.objective span{font:9px Plex;padding:4px 7px;background:#061c26bb;border-radius:4px}.objective.offscreen b{font-size:22px}
#spawn-shield{top:calc(50% + 25px);bottom:auto}
#ctf-tip{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);width:350px;max-width:44vw;padding:12px 16px;border:1px solid var(--team);border-radius:10px;background:#0b202bee;text-align:center;font-size:13px}#ctf-tip strong{display:block;margin-top:5px;color:var(--team)}
.team-board h3{font:12px Plex;letter-spacing:1px;padding:12px 0 3px;margin:0;color:#a4d9c3}.team-2 h3{color:#c2addf}.team-board td{padding:7px}.team-board th{padding:8px}.team-board td:nth-child(2){border-left:3px solid var(--swatch)}.score-card{max-height:90vh;overflow:auto}
@media(max-width:850px){#ctf-status{font-size:8px;gap:4px}#ctf-status span{padding:5px}.objective span{font-size:8px}.hud-brand small{display:block;font-size:8px}.team-board table{font-size:11px}.team-board td,.team-board th{padding:5px}}

/* Carry status is screen space only; never attached to the camera or character. */
#lily-carry{position:absolute;left:50%;top:calc(85px + 105px * var(--hud-scale));transform:translateX(-50%);display:flex;gap:10px;align-items:center;padding:10px 16px;border:1px solid var(--team);background:#0b202bee;border-radius:12px;color:var(--team)}#lily-carry svg{width:32px;height:32px}#lily-carry strong{display:block;font:700 12px Franklin;letter-spacing:.6px}#lily-carry small{display:block;font:8px Plex;margin-top:4px;color:#e5ece6}.team-board tr:has(td:nth-child(2)) td:nth-child(2){white-space:normal}

#spawn-shield{top:auto;bottom:calc(50% + 30px);padding:7px 12px;gap:8px}#shield-count{width:30px;height:30px;font-size:17px;border-width:2px}#spawn-shield strong{font-size:12px}#spawn-shield small{font-size:8px}#lily-carry:not([hidden])~#spawn-shield{display:none}

/* Keep the concept face inside wide displays and make identity choices explicit. */
#identity-help{font:12px/1.4 Source;color:#aec3c5;margin:9px 0 14px;letter-spacing:0}#accent-preview{display:flex;align-items:center;gap:8px;font:11px Source;color:#d7e7dc}#accent-preview i{display:block;width:28px;height:16px;border:1px solid #ffffff80;border-radius:3px;background:var(--accent)}.deploy-card{width:390px}.menu-main{top:13%}.identity-options{gap:10px}.identity-options select{font:12px Source;min-height:34px}.identity-options input{font:12px Source}
.objective b{font-size:15px;font-weight:400}.objective.offscreen b{font-size:14px}.objective span{display:none}.objective.occluded{opacity:.35}.objective.combat{opacity:.12}.objective.details:not(.combat) span{display:block}.objective.focus:not(.occluded):not(.combat) span{display:block}.objective.focus span{background:#061c2699}.objective span{font-size:9px}#lily-carry{max-width:360px}#lily-carry small{line-height:1.5}
@media(min-aspect-ratio:2/1){.menu-art{background-size:auto 125%;background-position:right top}.menu-main{top:12%;max-width:46%}.operator-caption{bottom:14%}}
@media(max-height:820px){.menu{overflow-y:auto}.menu-main{position:relative;top:auto;padding-top:110px;padding-bottom:95px}.menu-main h1{font-size:42px;margin:14px 0}.intro{margin-bottom:16px;font-size:15px}.deploy-card{padding:15px}.deploy-heading{margin-bottom:12px}.match-facts{margin-top:14px}.menu-footer{position:fixed;bottom:12px;pointer-events:none}.operator-caption{bottom:14%}}
@media(max-width:700px){.menu-art{background-position:70% top;opacity:.45}.menu-main{max-width:88%;width:390px}.operator-caption{display:none}}

@media(min-width:851px) and (min-height:821px){.menu-main h1{font-size:clamp(38px,4.5vw,64px);margin:16px 0}.intro{margin-bottom:20px}.menu-main{padding-bottom:65px}.match-facts{margin-top:15px}}
@media(max-height:820px){.menu-footer{display:none}}

/* CTF navigation stays out of the combat view. Arrows are relative to the camera. */
#compass{top:auto;left:38px;bottom:calc(56px + 145px * var(--hud-scale,1));transform:scale(var(--hud-scale,1));transform-origin:bottom left;width:212px;padding:10px 12px;border:1px solid #54707780;border-radius:8px;background:#0b202bdf;letter-spacing:.6px;font:9px Plex;color:#c5d8d5;backdrop-filter:blur(6px)}
#compass header{display:flex;justify-content:space-between;gap:10px;font-size:8px;padding-bottom:5px;color:#a9c0c1}#compass header small{font-size:8px;color:#8da6a8}
.lily-direction{display:flex;align-items:center;gap:9px;padding-top:8px;color:var(--lily-color)}.lily-direction>span{flex:1;font-size:9px}.lily-direction small{display:block;font-size:7px;line-height:1.4;margin-top:3px;color:#aebfc0}.lily-direction>strong{font-size:10px;font-weight:400;color:#e2ede8}.lily-dial{width:29px;height:29px;flex:none;display:grid;place-items:center;border:1px solid #829e9955;border-radius:50%;font-style:normal;background:#06161e80}.lily-dial b{display:block;font:22px/1 Arial}.lily-direction.dropped .lily-dial{border-color:#e9be73}.lily-direction.dropped small{color:#e9be73}
@media(max-width:1000px){#compass{left:14px}}

.quality-help{display:block;font-size:10px;line-height:1.5;color:var(--muted);letter-spacing:0;text-transform:none;margin-top:6px}#network-warning{position:absolute;top:18%;left:50%;transform:translateX(-50%);padding:12px 22px;background:#30251bef;border:1px solid #d5ae71;color:#ffe0a0;font:600 13px monospace;z-index:25;pointer-events:none}#reconnect{margin-top:10px}.primary:disabled{opacity:.45;cursor:wait}

/* Playtest readability and an explicit exit, including short laptop viewports. */
.match-clock{min-width:330px;max-width:calc(100vw - 32px);border-radius:10px;background:linear-gradient(#081b24ed,#081b2499);padding:10px 22px 14px}
.match-clock small{font-size:12px;letter-spacing:1px;color:#e1ece7}.match-clock>strong{font-size:36px}.match-clock>div{font-size:12px;flex-wrap:wrap;row-gap:6px}
#goal{font:600 15px/1.4 Source,sans-serif;color:#eef9f0;flex-basis:100%}.phase-banner small{font-size:16px;letter-spacing:1.5px}.hud-brand small,.hud-label{font-size:11px}
.pause-card{max-height:calc(100dvh - 32px);overflow-y:auto}.pause-card>p{font-size:16px;line-height:1.45}.settings label,.controls,.controls kbd,.external{font-size:12px;letter-spacing:0}.settings select{font-size:13px}.controls{line-height:1.5}.primary{font-size:15px}
.leave-match{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;margin-top:10px;padding:11px 14px;border:1px solid #68817f;border-radius:6px;background:#162f37;color:#f0f5ee;font-size:15px;font-weight:600}.leave-match span{color:#b9ccc8;font-size:12px;font-weight:400}.leave-match:hover{background:#24434b;border-color:#adc9c0}.leave-match:disabled{cursor:wait}
@media(max-width:1000px){.match-clock{top:12px}.hud-brand{max-width:160px}.kill-feed{top:140px}.match-clock small{font-size:11px}}

.match-clock{transform:translateX(-50%)}
#next-round{font:600 16px/1.4 Source,sans-serif;color:#dcebe1}.score-footer{font-size:11px;letter-spacing:.4px}.score-card th{font-size:12px}.hud-bottom{font-size:11px}

#ctf-status{position:static;transform:none;margin-top:8px;font:11px/1.3 Source,sans-serif;gap:8px}#ctf-status span{padding:5px 9px}

#lily-carry{top:214px}

/* Equipment stays alongside weapon slots, with a persistent per-spawn grenade count. */
#smoke-stock{display:flex;align-items:center;justify-content:flex-end;gap:7px;font:12px Source,sans-serif;margin:0 0 9px;color:#e3ecdf}#smoke-stock strong{font-size:17px;color:#bdddc5}#smoke-stock small{font-size:10px;color:#a9bcb4}#smoke-stock.empty{opacity:.65}.weapon-slots{gap:4px}.weapon-slot{min-width:0;flex:1}#smoke-stock kbd{font-size:11px}

/* Ready settings remain reachable in short windows. */
#pause{overflow-y:auto;align-items:flex-start;padding:24px 12px}.pause-card{margin:auto;max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.other-rooms{display:inline-block;margin-top:10px;color:#b8d7ca;font-size:14px}#room-availability{font-size:14px;color:#e6bf95;line-height:1.4}#room-availability:empty{display:none}
@media(max-width:1000px){.match-clock{min-width:0!important;width:260px;max-width:52vw;padding:10px 12px!important}.match-clock #timer{font-size:28px!important;line-height:1.1}.match-clock #mode{font-size:10px!important}.match-clock #goal{font-size:12px!important;line-height:1.25;white-space:normal}.match-clock .positions{display:none}.match-clock #rank,.match-clock #player-count{font-size:11px!important}}
#photo-help{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);padding:12px 18px;background:#09212de0;border:1px solid #46616b;border-radius:6px;font:13px Source,sans-serif;white-space:nowrap}.photo-clean #hud,.photo-clean #scoreboard,.photo-clean #scope,.photo-clean #phase,.photo-clean #photo-help{display:none!important}

.pause-card{scrollbar-width:thin;scrollbar-color:#536b71 #102932}
/* Head feedback stays gold throughout its flash, including lethal head hits. */
.hit-marker.headshot.active{animation:head-accent .24s ease-out}
@keyframes head-accent{0%,25%{opacity:1;color:var(--gold);filter:brightness(1.5)}100%{opacity:0;color:var(--gold);filter:brightness(1)}}
