/* Skyport: cinematic display stage, one compact race card, one invite tray. */
:root{--navy:#122b42;--gold:#ffad49;--mint:#68e5da;--panel:#122b42e8;--muted:#bacddd;font-family:'Trebuchet MS','Segoe UI',sans-serif}
.header{top:18px;left:26px;right:26px}.brand{font-style:normal;font-size:35px;letter-spacing:-1.4px;font-weight:1000;text-transform:uppercase;text-shadow:0 3px 0 #173c5755}.brand svg{width:44px;height:44px}.header-actions button{border:1px solid #c5e9ff30;border-radius:10px;background:#183751bd;font-weight:700;min-height:40px;font-size:12px;padding:10px 14px;box-shadow:none}.header-actions button:hover{background:#183751}.header-actions .soft-btn{font-size:12px}
.menu-stack{position:absolute;top:92px;left:26px;width:340px;display:flex;flex-direction:column;gap:12px;max-height:calc(100dvh - 164px);pointer-events:auto;overflow:visible;animation:menu-enter .45s ease-out both}
.race-card{border:1px solid #b6e8ff66;border-radius:19px;padding:22px;background:linear-gradient(130deg,#10273eef,#1c3645e8);box-shadow:0 8px 24px #14324733,inset 0 1px 0 #ffffff16;backdrop-filter:blur(18px)}
.race-card h1{font-size:34px;line-height:1.05;letter-spacing:-1.2px;font-weight:950;margin:0 0 7px;color:#fff}.card-subtitle{font-size:14px;line-height:1.4;color:#d0e5f4;margin:0;font-weight:600}.card-accent{width:44px;height:4px;border-radius:4px;background:#ffab47;margin:16px 0 20px}
.race-card label,.crew-heading,.mini-label{font-size:10px;letter-spacing:2.1px;font-weight:800;text-transform:uppercase;color:#bcd4e6;margin:0 0 9px}.subjects{gap:6px}.subjects button{border-radius:9px;font-size:12px;padding:11px 4px;background:#12273b70;border:1px solid #85a0b477;color:#fff}.subjects button.active{background:#176875;border-color:#65f5e9;color:#fff;box-shadow:inset 0 0 15px #61eddd15,0 0 10px #30c6bd30}.subjects button:disabled{cursor:default;opacity:.8}
.crew-heading{margin:20px 0 8px;display:flex;gap:12px}.crew-heading span{color:#dae7f0}.lobby-panel .players{margin:0;max-height:94px;scrollbar-width:thin;scrollbar-color:#7797aa transparent}.players .row{background:#10283a66;border:1px solid #7797aa66;border-radius:9px;padding:10px 11px;font-size:14px;margin-bottom:5px;min-height:40px}.players .row:last-child{margin-bottom:0}.row-name{min-width:0}.row-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag{font-size:9px;letter-spacing:.5px;color:#86ece1;flex-shrink:0}.dot{width:12px;height:12px;box-shadow:0 0 9px #70e6d533}
.watch-button{display:block;width:100%;margin:10px 0 0;padding:9px;background:transparent;border:1px solid #a0c9db;border-radius:8px;font-size:11px;color:#d9e9f3}.watch-button:hover{background:#b5dfff15}.primary.launch-button{position:static;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(#ffb746,#ff8c30);border:1px solid #ffe3a1;border-bottom:3px solid #be5a20;box-shadow:0 4px 0 #9b4c264d,inset 0 2px 0 #ffe5b64d,0 5px 20px #ff942120;color:white;text-shadow:0 2px 0 #b4622e50;border-radius:12px;font-size:24px;font-weight:950;text-transform:uppercase;letter-spacing:.2px;margin-top:20px;padding:14px 17px;transition:transform .15s,filter .15s}.launch-button:hover{transform:translateY(-2px);filter:brightness(1.07)}.launch-button:active{transform:translateY(2px)}.button-arrow{width:26px;height:26px;flex-shrink:0}.ready-count{text-align:center;font-size:11px;color:#c1d7e5;margin:10px 0 0}.waiting{padding:12px 0}.race-card .entry-foot{font-size:12px;margin:5px 0 0}.race-card input{padding:11px 13px;border-radius:9px;font-size:15px;background:#10233870}.race-card form label{margin:17px 0 8px}.race-card .tabs{margin:0;border-color:#6f93a4;border-radius:9px}.race-card .tabs button{font-size:13px;padding:12px 5px}.race-card .error:empty{display:none}.race-card .error{margin:10px 0}.entry-card .entry-foot{margin-top:16px}
.invite-tray{position:relative;display:flex;gap:17px;align-items:center;border:1px solid #b6e8ff66;border-radius:16px;background:#163044e8;padding:14px 16px 27px;box-shadow:0 8px 24px #14324733;backdrop-filter:blur(18px)}.qr-mini{border:0;background:white;border-radius:8px;padding:4px;flex:0 0 90px;box-shadow:none}.qr-mini img{display:block;width:82px;height:82px;border-radius:3px}.invite-details .mini-label{font-size:9px;margin:0 0 3px;letter-spacing:1.8px}.invite-details .room-code{font-size:27px;letter-spacing:2px;line-height:1.1;color:#fff;margin:0 0 5px;font-weight:900}.copy-invite{background:none;padding:0;color:#64d9ff;font-size:12px;font-weight:750}.copy-invite:hover{text-decoration:underline}.invite-details p{margin:7px 0 0;font-size:10px;color:#cedde9;white-space:nowrap}.invite-tray .network-picker{position:absolute;left:16px;bottom:7px;margin:0;color:#b3c8da;font-size:9px}.network-popover{position:absolute;left:0;bottom:22px;background:#142c42;border:1px solid #83a9c1;border-radius:10px;padding:12px;width:302px;box-shadow:0 10px 30px #071c3c66;z-index:5}.network-popover .join-url{font-size:11px;margin:0;padding:8px}.network-popover label{font-size:11px;margin:10px 0 5px}.network-popover select{width:100%;font:12px 'Segoe UI',sans-serif;background:#223d55;color:white;border:1px solid #7098b3;padding:7px;border-radius:5px}
.course-caption{position:absolute;right:32px;bottom:100px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-shadow:0 2px 10px #17354f88}.course-caption strong{font-size:22px;font-weight:900;font-style:italic;letter-spacing:1px}.course-caption span{font-size:14px;letter-spacing:2px}.control-strip{bottom:0;left:0;right:0;transform:none;border:0;border-top:1px solid #bddcff44;border-radius:0;box-shadow:none;background:#15314ae8;padding:13px 27px;gap:24px;font-size:11px;justify-content:center}.control-strip kbd{font-size:10px;min-height:24px;padding:3px 6px}.hud,.scoreboard{background:#122d43e8;border-radius:15px;border:1px solid #9ed8e96b}.hud{width:260px}.hud h2{font-size:20px}.health-bar{border-width:1px}.scoreboard{width:205px}.quiz.game-pop{border-radius:22px}.game-pop .challenge-heading{font-family:'Trebuchet MS','Segoe UI',sans-serif}.game-pop .primary{background:#ffac4a;color:#16334a}.connection{top:68px}
@keyframes menu-enter{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
@media(min-height:900px) and (min-width:1000px){.menu-stack{top:108px;width:370px;gap:16px}.race-card{padding:26px}.race-card h1{font-size:38px}.card-subtitle{font-size:15px}.card-accent{margin:19px 0 24px}.crew-heading{margin-top:26px}.primary.launch-button{margin-top:28px;padding:17px;font-size:27px}.invite-tray{padding:17px 19px 29px}.qr-mini{flex-basis:98px}.qr-mini img{width:90px;height:90px}.brand{font-size:41px}.header{top:23px}}
@media(max-height:730px) and (min-width:701px){.menu-stack{top:80px;gap:9px;width:318px}.race-card{padding:17px 20px}.race-card h1{font-size:30px}.card-accent{margin:12px 0 14px}.crew-heading{margin-top:14px}.primary.launch-button{margin-top:14px;padding:11px 15px;font-size:22px}.invite-tray{padding:10px 14px 24px}.qr-mini{flex-basis:76px}.qr-mini img{width:68px;height:68px}.lobby-panel .players{max-height:72px}.ready-count{margin-top:7px}.header{top:12px}.brand{font-size:30px}}
@media(max-width:850px){.menu-stack{width:320px;left:18px}.course-caption{right:20px}.course-caption strong{font-size:18px}}
@media(max-width:700px){.header{top:12px;left:16px;right:16px;gap:6px}.brand{font-size:24px;letter-spacing:-1px}.brand svg{width:30px;height:30px}.header-actions{gap:4px}.header-actions button{min-height:32px;padding:7px 8px;font-size:10px}.header-actions .soft-btn{font-size:10px}.header-actions .sound-btn{min-width:36px}.menu-stack{left:16px;right:16px;top:78px;width:auto;max-height:calc(100dvh - 94px);overflow:auto;padding-bottom:7px;gap:10px;scrollbar-width:thin}.race-card{padding:20px;background:#122b42eb}.race-card h1{font-size:32px}.card-accent{margin:13px 0 17px}.crew-heading{margin-top:18px}.primary.launch-button{font-size:24px;margin-top:18px;padding:14px 16px}.invite-tray{padding:12px 16px 25px}.qr-mini{flex-basis:82px}.qr-mini img{width:74px;height:74px}.invite-details .room-code{font-size:26px}.invite-details p{font-size:11px}.course-caption{display:none}.control-strip{display:none}.hud{top:78px;left:16px;width:210px}.connection{top:52px}.in-menu .connection{right:16px}.network-popover{width:280px}.race-card .players{max-height:88px}.game-pop h2{font-size:19px}}
@media(prefers-reduced-motion:reduce){.menu-stack,.launch-button{animation:none;transition:none}}
