:root{--ft-font-display: "Aldrich", "Segoe UI", system-ui, sans-serif;--ft-font-body: "Rajdhani", "Segoe UI", system-ui, sans-serif;--ft-bg-0: #05070c;--ft-bg-1: #0a1020;--ft-steel-hi: #7a90b8;--ft-steel-lo: #0b111d;--ft-well: #04060a;--ft-well-line: #1b2434;--ft-rust-hi: #8a6250;--ft-rust-mid: #57362a;--ft-rust-lo: #2b1710;--ft-text: #e6ecf5;--ft-text-dim: #9aa8bd;--ft-text-faint: #64738a;--ft-cream: #e8d9a8;--ft-cream-dim: #b3a678;--ft-accent: #ff7a1c;--ft-accent-bright: #ffa04d;--ft-accent-dim: rgba(255, 122, 28, .35);--ft-steel: #8fb3d9;--ft-good: #7ce764;--ft-warn: #ffb02e;--ft-bad: #ff5252;--ft-info: #4d9fff;--ft-team-1: #4d9fff;--ft-team-2: #ff5252;--ft-team-3: #3ddc74;--ft-team-4: #ffc93d;--ft-radius: 4px;--ft-radius-sm: 3px}.ft-screen{position:fixed;inset:0;z-index:10;overflow-y:auto;color:var(--ft-text);font-family:var(--ft-font-body);font-size:16px;line-height:1.4;background:radial-gradient(1100px 640px at 50% -12%,rgba(38,66,120,.3),transparent 62%),radial-gradient(820px 480px at 88% 108%,rgba(122,54,20,.16),transparent 60%),linear-gradient(180deg,var(--ft-bg-1) 0%,var(--ft-bg-0) 100%);-webkit-font-smoothing:antialiased;user-select:none}.ft-screen:before{content:"";position:fixed;inset:0;pointer-events:none;background:url(/assets/ui/lobby/steel_tile.png);background-size:320px;opacity:.06;mix-blend-mode:luminosity}.ft-screen *{box-sizing:border-box}.ft-content{position:relative;max-width:1060px;margin:0 auto;padding:0 32px 40px}.ft-screen ::-webkit-scrollbar{width:12px;height:12px}.ft-screen ::-webkit-scrollbar-track{background:var(--ft-well)}.ft-screen ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#56637a,#333e52);border:2px solid var(--ft-well);border-radius:6px}.ft-screen ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#6b7a94,#45526b)}.ft-wordmark{font-family:var(--ft-font-display);font-weight:400;font-style:italic;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(180deg,#fff,#d3dce6 34%,#8494a6 48%,#eef4fa 54%,#aab8c8 72%,#5c6b7c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.85)) drop-shadow(0 0 10px rgba(10,16,28,.8))}.ft-tagline{font-family:var(--ft-font-display);letter-spacing:.42em;text-transform:uppercase;color:var(--ft-cream-dim)}.ft-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:10px 24px;margin-bottom:26px;background:linear-gradient(180deg,#1018286b,#080c149e),url(/assets/ui/lobby/steel_tile.png);background-size:auto,192px;border-bottom:2px solid var(--ft-steel-lo);box-shadow:inset 0 1px #a0b9dc59,inset 0 -1px #000000b3,0 4px 14px #0000008c}.ft-topbar-logo{width:40px;height:40px;filter:drop-shadow(0 2px 5px rgba(0,0,0,.7))}.ft-topbar .ft-wordmark{font-size:25px}.ft-topbar-spacer{flex:1}.ft-topbar-user{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ft-text-dim)}.ft-topbar-user b{color:var(--ft-cream);font-weight:600}.ft-link{background:none;border:none;padding:0;font:inherit;font-family:var(--ft-font-body);color:var(--ft-steel);cursor:pointer;transition:color .15s}.ft-link:hover{color:#fff}.ft-link.danger:hover{color:var(--ft-bad)}.ft-options-link{font-family:var(--ft-font-display);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ft-cream-dim)}.ft-back-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--ft-font-display);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ft-cream-dim)}.ft-back-link:before{content:"‹";font-size:20px;line-height:1;transform:translateY(-1px)}.ft-back-link:hover{color:var(--ft-cream)}.ft-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--ft-font-display);font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:10px 30px;border-radius:var(--ft-radius-sm);border:2px solid;border-color:var(--ft-rust-hi) var(--ft-rust-lo) var(--ft-rust-lo) var(--ft-rust-hi);background:linear-gradient(180deg,#ffd2aa1a,#00000038),linear-gradient(180deg,#6b4434 0%,var(--ft-rust-mid) 55%,#3c2318 100%);color:var(--ft-cream);text-shadow:0 -1px 0 rgba(0,0,0,.9),0 1px 1px rgba(255,240,200,.18);box-shadow:inset 0 0 0 1px #00000073,0 3px 8px #00000080;cursor:pointer;transition:filter .12s,box-shadow .15s;white-space:nowrap}.ft-btn:before,.ft-btn:after{content:"";position:absolute;top:50%;width:7px;height:7px;transform:translateY(-50%) rotate(45deg);background:linear-gradient(135deg,#9db8d8,#46608a 55%,#1c2a44);box-shadow:0 0 3px #000c}.ft-btn:before{left:9px}.ft-btn:after{right:9px}.ft-btn:hover:not(:disabled){filter:brightness(1.18);box-shadow:inset 0 0 0 1px #00000073,0 3px 10px #0000008c,0 0 12px #ff963c2e}.ft-btn:active:not(:disabled){border-color:var(--ft-rust-lo) var(--ft-rust-hi) var(--ft-rust-hi) var(--ft-rust-lo);filter:brightness(.85);box-shadow:inset 0 2px 6px #0009}.ft-btn:disabled{cursor:default;filter:brightness(.55) saturate(.5);color:#e8d9a880}.ft-btn.primary{color:#ffe9c4;border-color:#a3765c var(--ft-rust-lo) var(--ft-rust-lo) #a3765c;background:linear-gradient(180deg,#ffbe7838,#0003),linear-gradient(180deg,#85513a,#64392a 55%,#46251a);box-shadow:inset 0 0 0 1px #00000073,0 3px 10px #00000080,0 0 14px #ff7a1c38}.ft-btn.good{color:#eaffdd;border-color:#6f9a58 #17300f #17300f #6f9a58;background:linear-gradient(180deg,#c8ffaa24,#0000003d),linear-gradient(180deg,#4a7034,#35521f 55%,#223816);box-shadow:inset 0 0 0 1px #00000073,0 3px 10px #00000080,0 0 14px #7ce76433}.ft-btn.big{font-size:17px;padding:13px 44px}.ft-btn.small{font-size:12px;padding:6px 20px}.ft-btn.small:before,.ft-btn.small:after{width:5px;height:5px}.ft-field{display:flex;flex-direction:column;gap:7px}.ft-field label{font-family:var(--ft-font-display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ft-cream-dim)}.ft-input{font-family:var(--ft-font-body);font-size:17px;font-weight:600;color:var(--ft-text);background:var(--ft-well);border:2px solid;border-color:#020304 #303c52 #303c52 #020304;border-radius:var(--ft-radius-sm);padding:10px 14px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;user-select:text;box-shadow:inset 0 2px 6px #000000b3}.ft-input::placeholder{color:var(--ft-text-faint);font-weight:500}.ft-input:focus{border-color:#1c1208 var(--ft-accent-dim) var(--ft-accent-dim) #1c1208;box-shadow:inset 0 2px 6px #000000b3,0 0 10px #ff7a1c38}.ft-input.invalid{border-color:#1c0808 rgba(255,82,82,.55) rgba(255,82,82,.55) #1c0808;box-shadow:inset 0 2px 6px #000000b3,0 0 10px #ff52524d}.ft-panel{position:relative;background:linear-gradient(180deg,#0a0f1a61,#060a128c),url(/assets/ui/lobby/steel_tile.png);background-size:auto,192px;border:2px solid;border-color:var(--ft-steel-hi) var(--ft-steel-lo) var(--ft-steel-lo) var(--ft-steel-hi);border-radius:var(--ft-radius);box-shadow:inset 0 0 0 1px #0000008c,0 8px 22px #0000008c}.ft-panel:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background-image:radial-gradient(circle 4px at 10px 10px,#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%),radial-gradient(circle 4px at calc(100% - 10px) 10px,#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%),radial-gradient(circle 4px at 10px calc(100% - 10px),#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%),radial-gradient(circle 4px at calc(100% - 10px) calc(100% - 10px),#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%)}.ft-section-title{display:flex;align-items:center;gap:14px;font-family:var(--ft-font-display);font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--ft-cream-dim);text-shadow:0 1px 0 rgba(0,0,0,.8);margin:26px 0 14px}.ft-section-title:after{content:"";flex:1;height:3px;border-top:1px solid rgba(0,0,0,.8);border-bottom:1px solid rgba(150,175,210,.25);background:linear-gradient(90deg,rgba(90,110,140,.5),transparent)}.ft-section-title .num{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:0 4px;color:#eaf1fa;font-size:12px;line-height:1;text-shadow:none}.ft-section-title .num:before{content:"";position:absolute;inset:2px;transform:rotate(45deg);background:linear-gradient(135deg,#7d94b5,#3d5378 55%,#172436);box-shadow:0 0 4px #000c;z-index:-1}.ft-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--ft-font-display);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:2px;border:1px solid;white-space:nowrap;text-shadow:0 1px 0 rgba(0,0,0,.8);background:#00000059}.ft-badge.waiting{color:var(--ft-good);border-color:#7ce76473}.ft-badge.starting,.ft-badge.opening{color:var(--ft-warn);border-color:#ffb02e73}.ft-badge.in_progress{color:var(--ft-info);border-color:#4d9fff73}.ft-badge.ended{color:var(--ft-text-faint);border-color:var(--ft-well-line)}.ft-badge.waiting:before,.ft-badge.opening:before,.ft-badge.starting:before,.ft-badge.in_progress:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 5px currentColor;animation:ft-pulse 1.6s ease-in-out infinite}@keyframes ft-pulse{0%,to{opacity:1}50%{opacity:.35}}.ft-chip{display:inline-flex;align-items:center;font-family:var(--ft-font-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:2px;border:1px solid;border-color:#5a6c88 #10161f #10161f #5a6c88;background:linear-gradient(180deg,#33415c,#1e2838);color:#c6d4e6;text-shadow:0 1px 0 rgba(0,0,0,.8);white-space:nowrap}.ft-chip.accent{border-color:var(--ft-rust-hi) var(--ft-rust-lo) var(--ft-rust-lo) var(--ft-rust-hi);background:linear-gradient(180deg,#6b4434,#46251a);color:var(--ft-cream)}.ft-select-card{position:relative;background:linear-gradient(180deg,#0a0f1a73,#060a129e),url(/assets/ui/lobby/steel_tile.png);background-size:auto,192px;border:2px solid;border-color:#4d5f7c var(--ft-steel-lo) var(--ft-steel-lo) #4d5f7c;border-radius:var(--ft-radius);box-shadow:inset 0 0 0 1px #0000008c,0 4px 12px #00000073;cursor:pointer;transition:border-color .15s,box-shadow .18s,filter .15s;overflow:hidden;text-align:center}.ft-select-card:hover{filter:brightness(1.15);box-shadow:inset 0 0 0 1px #0000008c,0 6px 16px #0000008c}.ft-select-card.selected{border-color:var(--ft-accent-bright) #7a3a08 #7a3a08 var(--ft-accent-bright);box-shadow:inset 0 0 0 1px #0000008c,0 0 0 1px #ff7a1c99,0 0 18px #ff7a1c4d}.ft-select-card.selected:after{content:"✓";position:absolute;top:6px;right:6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--ft-accent-bright),#c85a08);border:1px solid #2b1710;color:#1c0d00;font-size:12px;font-weight:700}.ft-select-card.disabled{opacity:.5;pointer-events:none}.ft-modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#020407c7;animation:ft-fade-in .18s ease-out}.ft-modal{position:relative;width:min(440px,calc(100vw - 48px));background:linear-gradient(180deg,#0a0f1a4d,#060a1273),url(/assets/ui/lobby/steel_tile.png);background-size:auto,192px;border:3px solid;border-color:var(--ft-steel-hi) var(--ft-steel-lo) var(--ft-steel-lo) var(--ft-steel-hi);border-radius:6px;padding:30px 34px;text-align:center;box-shadow:inset 0 0 0 1px #0009,0 24px 70px #000c}.ft-modal:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle 4px at 12px 12px,#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%),radial-gradient(circle 4px at calc(100% - 12px) 12px,#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%),radial-gradient(circle 4px at 12px calc(100% - 12px),#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%),radial-gradient(circle 4px at calc(100% - 12px) calc(100% - 12px),#a8bdd8 0%,#5a6c88 40%,#131c2c 78%,transparent 80%)}.ft-modal h2{font-family:var(--ft-font-display);font-size:20px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px;text-shadow:0 2px 0 rgba(0,0,0,.8)}.ft-modal p{color:var(--ft-text-dim);margin:0 0 22px}.ft-audio-options-modal{width:min(520px,calc(100vw - 48px));text-align:left}.ft-audio-options-modal h2,.ft-audio-options-subtitle{text-align:center}.ft-audio-mix{display:flex;flex-direction:column;gap:18px;padding:20px 18px;background:#03060acc;border:2px solid;border-color:#020304 #303c52 #303c52 #020304;box-shadow:inset 0 3px 10px #000000b8}.ft-audio-channel{display:grid;grid-template-columns:90px minmax(120px,1fr) 52px;align-items:center;gap:14px}.ft-audio-channel .label{font-family:var(--ft-font-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ft-cream-dim)}.ft-audio-channel .value{color:var(--ft-cream);font-family:var(--ft-font-display);font-size:12px;text-align:right}.ft-audio-channel input[type=range]{width:100%;accent-color:var(--ft-accent);cursor:pointer}.ft-audio-options-actions{display:flex;justify-content:center;margin-top:24px}@keyframes ft-fade-in{0%{opacity:0}to{opacity:1}}.ft-spinner{width:30px;height:30px;margin:0 auto;border-radius:50%;border:3px solid rgba(255,122,28,.2);border-top-color:var(--ft-accent);animation:ft-spin .9s linear infinite}@keyframes ft-spin{to{transform:rotate(360deg)}}.ft-rise{animation:ft-rise .32s cubic-bezier(.2,.9,.3,1) both}@keyframes ft-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.ft-auth-wrap{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px}.ft-auth-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:30px}.ft-auth-brand img{width:104px;height:104px;margin-bottom:18px;filter:drop-shadow(0 10px 26px rgba(0,0,0,.8))}.ft-auth-brand .ft-wordmark{font-size:46px}.ft-auth-brand .ft-tagline{font-size:12px;margin-top:10px}.ft-auth-card{width:min(410px,100%);padding:26px 28px 28px}.ft-auth-card.ft-panel{background:linear-gradient(180deg,#060a129e,#060a12c7),url(/assets/ui/lobby/steel_plate_emblem.png);background-size:auto,cover;background-position:center}.ft-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:var(--ft-well);border:2px solid;border-color:#020304 #303c52 #303c52 #020304;border-radius:var(--ft-radius-sm);padding:5px;margin-bottom:22px;box-shadow:inset 0 2px 6px #000000b3}.ft-auth-tab{font-family:var(--ft-font-display);font-size:12px;letter-spacing:.09em;text-transform:uppercase;padding:9px 0;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--ft-text-faint);cursor:pointer;transition:background .15s,color .15s}.ft-auth-tab:hover{color:var(--ft-cream)}.ft-auth-tab.active{border-color:var(--ft-rust-hi) var(--ft-rust-lo) var(--ft-rust-lo) var(--ft-rust-hi);background:linear-gradient(180deg,#6b4434 0%,var(--ft-rust-mid) 55%,#3c2318 100%);color:var(--ft-cream);text-shadow:0 -1px 0 rgba(0,0,0,.9)}.ft-auth-form{display:flex;flex-direction:column;gap:16px}.ft-auth-error{min-height:20px;font-size:14px;font-weight:600;color:var(--ft-bad);text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-auth-guest{margin-top:26px;font-size:14px;color:var(--ft-text-faint)}.ft-menu-screen{display:flex;flex-direction:column;overflow:hidden}.ft-menu-screen>.ft-topbar{position:relative;flex:0 0 auto}.ft-menu-screen>.ft-content{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-height:0;max-width:1380px}.ft-browser-head{display:flex;align-items:baseline;gap:14px;margin-bottom:14px}.ft-browser-head h1{font-family:var(--ft-font-display);font-size:26px;letter-spacing:.12em;text-transform:uppercase;margin:0;color:var(--ft-cream);text-shadow:0 2px 0 rgba(0,0,0,.8)}.ft-browser-head .count{font-size:15px;color:var(--ft-text-faint)}.ft-browser-actions{margin-left:auto;display:flex;gap:12px}.ft-browser-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;flex:1 1 auto;gap:18px;min-height:0}.ft-lobby-table{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.ft-player-roster{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.ft-player-roster-head{display:flex;align-items:center;gap:12px;min-height:59px;padding:9px 15px 9px 18px;color:#10151d;text-shadow:0 1px 0 rgba(255,255,255,.22);background:linear-gradient(180deg,#b8c2ce,#8b96a4 45%,#6a7482 55%,#4d5560);border-bottom:2px solid #05070c;box-shadow:inset 0 1px #ffffff80}.ft-player-roster-head h2{margin:0;font-family:var(--ft-font-display);font-size:14px;letter-spacing:.1em;text-transform:uppercase}.ft-player-roster-head .subtitle{margin-top:1px;font-size:11px;font-weight:700;opacity:.72}.ft-player-roster-head .count{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;margin-left:auto;border:2px solid #202a37;border-radius:50%;color:var(--ft-good);background:#111824;font-family:var(--ft-font-display);font-size:12px;text-shadow:0 1px 0 #000;box-shadow:inset 0 2px 5px #000c}.ft-player-roster-list{flex:1 1 auto;min-height:0;overflow-y:auto;background:var(--ft-well);box-shadow:inset 0 3px 10px #000c}.ft-roster-empty{display:flex;min-height:150px;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--ft-text-faint);text-align:center;font-size:14px}.ft-roster-empty .signal{color:var(--ft-good);font-family:var(--ft-font-display);font-size:22px;letter-spacing:.14em;text-shadow:0 0 12px rgba(124,231,100,.5)}.ft-player-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;padding:14px 14px 13px 13px;border-bottom:1px solid rgba(27,36,52,.85);box-shadow:inset 3px 0 0 var(--ft-good)}.ft-player-row.in_lobby{box-shadow:inset 3px 0 0 var(--ft-warn)}.ft-player-row.in_game{background:linear-gradient(90deg,rgba(77,159,255,.09),transparent 72%);box-shadow:inset 3px 0 0 var(--ft-info)}.ft-player-row.current{background:linear-gradient(90deg,rgba(255,122,28,.1),transparent 76%)}.ft-player-avatar{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:2px solid #4e607a;border-radius:3px;color:var(--ft-cream);background:linear-gradient(145deg,#5a739b73,#0a0f19bf),url(/assets/ui/lobby/steel_tile.png);background-size:auto,110px;font-family:var(--ft-font-display);font-size:13px;letter-spacing:.04em;text-shadow:0 2px 0 #000;box-shadow:inset 0 0 0 1px #0b111d,0 2px 5px #0000008c}.ft-player-body{min-width:0}.ft-player-identity{display:flex;align-items:center;gap:7px;min-width:0}.ft-player-identity .name{min-width:0;overflow:hidden;color:var(--ft-text);font-size:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.ft-player-identity .you{color:var(--ft-accent-bright);font-family:var(--ft-font-display);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.ft-presence-badge{flex:0 0 auto;margin-left:auto;padding:2px 6px;border:1px solid rgba(124,231,100,.42);border-radius:8px;color:var(--ft-good);background:#7ce76417;font-family:var(--ft-font-display);font-size:8px;letter-spacing:.05em;text-transform:uppercase}.ft-presence-badge.in_lobby{border-color:#ffb02e73;color:var(--ft-warn);background:#ffb02e17}.ft-presence-badge.in_game{border-color:#4d9fff7a;color:#82bcff;background:#4d9fff1a}.ft-player-context{margin-top:1px;overflow:hidden;color:var(--ft-text-faint);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.ft-player-stats{display:grid;grid-template-columns:1.35fr .9fr .9fr;gap:7px;margin-top:8px;padding-top:7px;border-top:1px solid rgba(100,115,138,.22);color:var(--ft-text-faint);font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.ft-player-stats b{display:block;color:var(--ft-text-dim);font-family:var(--ft-font-display);font-size:11px;font-weight:400;letter-spacing:0}.ft-player-stats span{min-width:0;white-space:nowrap}@media (max-width: 1050px){.ft-menu-screen{overflow-y:auto}.ft-menu-screen>.ft-content{flex:0 0 auto;min-height:720px}.ft-browser-layout{grid-template-columns:1fr;grid-template-rows:minmax(360px,1fr) minmax(270px,auto)}.ft-player-roster-list{max-height:360px}}.ft-lobby-cols{display:grid;grid-template-columns:minmax(200px,2.2fr) 1.4fr 1.2fr .9fr 130px;gap:16px;align-items:center;padding:8px 22px;font-family:var(--ft-font-display);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#10151d;text-shadow:0 1px 0 rgba(255,255,255,.25);background:linear-gradient(180deg,#b8c2ce,#8b96a4 45%,#6a7482 55%,#4d5560);border-bottom:2px solid #05070c;box-shadow:inset 0 1px #ffffff80}.ft-lobby-rows{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow-y:auto;background:var(--ft-well);box-shadow:inset 0 3px 10px #000c}.ft-menu-screen .ft-lobby-rows>.ft-empty{flex:1 0 auto;justify-content:center;min-height:100%;padding:20px}.ft-lobby-row{display:grid;grid-template-columns:minmax(200px,2.2fr) 1.4fr 1.2fr .9fr 130px;gap:16px;align-items:center;padding:12px 22px;border-bottom:1px solid rgba(27,36,52,.7);transition:background .12s}.ft-lobby-row:last-child{border-bottom:none}.ft-lobby-row.joinable{cursor:pointer}.ft-lobby-row.joinable:hover{background:linear-gradient(90deg,#ff7a1c24,#ff7a1c0a);box-shadow:inset 3px 0 0 var(--ft-accent)}.ft-lobby-row .name{font-weight:600;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-lobby-row .host{font-size:13px;color:var(--ft-text-faint)}.ft-lobby-row .map{color:var(--ft-text-dim);font-weight:600}.ft-lobby-row .players{font-family:var(--ft-font-display);font-size:15px}.ft-lobby-row .players small{display:block;font-size:11px;color:var(--ft-text-faint);font-family:var(--ft-font-body);font-weight:600}.ft-lobby-row .score{font-family:var(--ft-font-display);font-size:14px;color:var(--ft-text-dim);margin-left:8px}.ft-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:64px 20px;text-align:center}.ft-empty img{width:74px;height:74px;opacity:.3;filter:grayscale(.35);margin-bottom:8px}.ft-empty .title{font-family:var(--ft-font-display);font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--ft-text-dim)}.ft-empty .hint{font-size:14px;color:var(--ft-text-faint)}.ft-version{position:fixed;left:14px;bottom:10px;font-size:12px;color:var(--ft-text-faint);opacity:.7;z-index:30}.ft-create-name-row{display:flex;align-items:flex-end;gap:14px}.ft-create-name-row .ft-field{flex:1;max-width:460px}.ft-mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.ft-mode-card{padding:16px 16px 14px;text-align:left}.ft-mode-card .glyph{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:30px;padding:0 8px;margin-bottom:12px;font-family:var(--ft-font-display);font-size:14px;letter-spacing:.06em;border:2px solid;border-color:var(--ft-rust-hi) var(--ft-rust-lo) var(--ft-rust-lo) var(--ft-rust-hi);background:linear-gradient(180deg,#6b4434 0%,var(--ft-rust-mid) 55%,#3c2318 100%);color:var(--ft-cream);text-shadow:0 -1px 0 rgba(0,0,0,.9)}.ft-mode-card .name{font-family:var(--ft-font-display);font-size:16px;letter-spacing:.07em;text-transform:uppercase;margin-bottom:6px;color:var(--ft-text);text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-mode-card .desc{font-size:14px;font-weight:500;line-height:1.4;color:var(--ft-text-dim)}.ft-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.ft-map-card .thumb{position:relative;aspect-ratio:16 / 9;background:var(--ft-well);overflow:hidden;border-bottom:2px solid var(--ft-steel-lo)}.ft-map-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.ft-map-card:hover .thumb img{transform:scale(1.05)}.ft-map-card .thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(4,6,10,.8) 100%)}.ft-map-card .meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 11px}.ft-map-card .name{font-family:var(--ft-font-display);font-size:15px;letter-spacing:.04em;text-align:left;text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-map-card .size{font-family:var(--ft-font-display);font-size:12px;color:var(--ft-accent-bright);white-space:nowrap;text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-create-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:16px 0 4px;margin-top:26px;background:linear-gradient(180deg,transparent,var(--ft-bg-0) 40%)}.ft-create-footer .summary{font-size:14px;font-weight:600;color:var(--ft-text-faint);margin-right:auto}.ft-quickplay-note{font-family:var(--ft-font-display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:var(--ft-text-faint);text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-pregame-screen{display:flex;flex-direction:column;overflow:hidden}.ft-pregame-screen>.ft-topbar{position:relative;flex:0 0 auto;margin-bottom:0}.ft-pregame-screen>.ft-content{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-height:0;padding:16px 32px 0;overflow:hidden}.ft-pregame-scroll{flex:1 1 auto;min-height:0;padding:0 8px 24px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges}.ft-pregame-head{text-align:center;margin-bottom:24px}.ft-pregame-head h1{font-family:var(--ft-font-display);font-size:30px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;color:var(--ft-cream);text-shadow:0 3px 0 rgba(0,0,0,.85),0 0 24px rgba(255,170,80,.18)}.ft-pregame-chips{display:flex;justify-content:center;gap:10px;margin-bottom:12px}.ft-pregame-status{font-family:var(--ft-font-display);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--ft-good);text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-pregame-status.countdown-banner{display:inline-block;padding:8px 14px;border:1px solid rgba(255,170,80,.48);border-radius:2px;background:linear-gradient(180deg,#68361275,#1d140fb3);color:var(--ft-cream);box-shadow:inset 0 0 10px #ff7a1c1a,0 2px 8px #00000073}.ft-team-area{display:flex;justify-content:center;align-items:stretch;gap:18px;flex-wrap:wrap}.ft-team-panel{flex:1;min-width:230px;max-width:340px;border-radius:var(--ft-radius);border:2px solid;overflow:hidden;box-shadow:0 6px 16px #00000080}.ft-team-panel .head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-family:var(--ft-font-display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 0 rgba(0,0,0,.85);border-bottom:2px solid rgba(0,0,0,.6)}.ft-team-panel .head .slots{font-size:12px;opacity:.85}.ft-team-panel .body{padding:8px;display:flex;flex-direction:column;gap:5px;background:var(--ft-well);box-shadow:inset 0 3px 10px #000c;min-height:150px}.ft-player-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:2px;background:linear-gradient(180deg,#5a6c8838,#28344838);border:1px solid rgba(90,108,136,.25)}.ft-player-row.me{border-color:#ff7a1c80;box-shadow:inset 0 0 8px #ff7a1c1f}.ft-player-row.npc{border-color:#66ccff6b;box-shadow:inset 0 0 8px #66ccff1a}.ft-player-row.npc .pname,.ft-player-row.npc .pchar{color:#80d8ff}.ft-npc-kick{flex-shrink:0;border:1px solid rgba(255,102,102,.55);border-radius:2px;background:#5c141499;color:#faa;font-family:var(--ft-font-display);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;cursor:pointer}.ft-npc-kick:hover{border-color:#f99;color:#fff}.ft-player-row .pname{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-player-row .pchar{margin-left:auto;font-family:var(--ft-font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ft-text-faint)}.ft-player-row .pready{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.ft-player-row .pready.yes{background:#7ce76429;color:var(--ft-good);border:1px solid rgba(124,231,100,.5);text-shadow:0 0 6px rgba(124,231,100,.8)}.ft-player-row .pready.no{border:1px dashed #38455c;color:transparent}.ft-player-row.disconnected{opacity:.55}.ft-player-row.disconnected .pchar{color:var(--ft-warn)}.ft-player-row.empty{background:transparent;border:1px dashed rgba(56,69,92,.6)}.ft-player-row.empty .pname{color:var(--ft-text-faint);font-weight:500;font-size:13px;font-style:italic}.ft-switch-row{display:flex;justify-content:center;gap:12px;margin:16px 0 0}.ft-char-grid{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.ft-char-card{width:200px;text-align:left}.ft-char-card .portrait{position:relative;height:150px;background:radial-gradient(120px 90px at 50% 30%,rgba(143,179,217,.14),transparent 70%),var(--ft-well);display:flex;align-items:flex-start;justify-content:center;overflow:hidden;border-bottom:2px solid var(--ft-steel-lo)}.ft-char-card .portrait img{height:210px;margin-top:6px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(0,0,0,.7));transition:transform .25s}.ft-char-card:hover .portrait img{transform:translateY(-4px) scale(1.03)}.ft-char-card .portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,6,10,.95) 100%)}.ft-char-card .info{padding:10px 14px 13px}.ft-char-card .name{font-family:var(--ft-font-display);font-size:15px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;text-shadow:0 1px 0 rgba(0,0,0,.8)}.ft-char-card .weapon{font-size:13px;font-weight:600;color:var(--ft-cream-dim);margin-bottom:9px}.ft-stat{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;margin-bottom:4px}.ft-stat .label{font-family:var(--ft-font-display);font-size:10px;letter-spacing:.1em;color:var(--ft-text-faint)}.ft-stat .bar{height:6px;background:var(--ft-well);border:1px solid var(--ft-well-line);overflow:hidden}.ft-stat .bar>div{height:100%;background:linear-gradient(90deg,#5a7ca8,var(--ft-steel));box-shadow:0 0 6px #8fb3d966}.ft-char-card.selected .ft-stat .bar>div{background:linear-gradient(90deg,#c85a08,var(--ft-accent-bright));box-shadow:0 0 6px #ff7a1c80}.ft-char-card.locked{pointer-events:none;filter:saturate(.6) brightness(.8)}.ft-pregame-footer{position:relative;z-index:15;display:grid;flex:0 0 auto;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:18px;min-height:78px;padding:12px 8px 14px;border-top:2px solid var(--ft-steel-lo);background:linear-gradient(180deg,#121c2ef0,#070b13fa),url(/assets/ui/lobby/steel_tile.png);background-size:auto,192px;box-shadow:inset 0 1px #a0b9dc3d,0 -8px 18px #00000073}.ft-pregame-footer .ft-switch-row{justify-self:end;margin:0}.ft-countdown-overlay{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#020407cc;animation:ft-fade-in .2s ease-out;pointer-events:none;user-select:none}.ft-countdown-overlay .label{font-family:var(--ft-font-display);font-size:16px;letter-spacing:.3em;text-transform:uppercase;color:var(--ft-cream-dim)}.ft-countdown-overlay .value{font-family:var(--ft-font-display);font-size:110px;line-height:1;color:var(--ft-accent);text-shadow:0 0 44px rgba(255,122,28,.5),0 4px 0 rgba(0,0,0,.8)}
