:root { --v8-cyan: #6cf1da; }
.world-selection { max-width: 1150px; }
.world-selection-header h2 { font-size: clamp(26px,4vw,44px); letter-spacing: -1.5px; margin: 8px 0; }
.v8-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin: 18px 0; }
.v8-toolbar label { color:#a8bfc7; font-size:12px; }
.v8-toolbar select { width:auto; min-width:150px; padding:10px; background:#17252c; color:#eaf7f4; border:1px solid #37505a; border-radius:7px; }
.v8-filters { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.v8-filters button[aria-pressed="true"] { background:#164d47; border-color:#6cf1da; }
.world-grid { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; }
.world-card { display:flex; flex-direction:column; align-items:stretch; padding:0; overflow:hidden; text-align:left; min-height:240px; background:#142027; }
.world-card .v8-art { height:108px; width:100%; display:block; position:relative; overflow:hidden; background:linear-gradient(165deg,var(--sky),var(--land)); }
.world-card .v8-world-image { object-fit:cover; object-position:center; flex-shrink:0; }
.v8-art::before { content:""; position:absolute; inset:30% -10% -20%; background:var(--ridge); clip-path:polygon(0 100%,0 70%,15% 28%,25% 55%,42% 0,58% 58%,78% 20%,100% 70%,100% 100%); }
.v8-art.city::before { clip-path:polygon(0 100%,0 40%,10% 40%,10% 10%,23% 10%,23% 60%,32% 60%,32% 25%,47% 25%,47% 0,60% 0,60% 45%,76% 45%,76% 15%,88% 15%,88% 50%,100% 50%,100% 100%); }
.v8-art.weird::before { transform:rotate(-18deg); background:repeating-linear-gradient(60deg,#ed45d3 0 12px,#7843ca 12px 24px,#45ecd9 24px 30px); border-radius:50%; clip-path:none; inset:42% -20% -60%; }
.v8-art.tunnel::before { clip-path:none; inset:5% 30%; border:8px solid #54ebec; background:#18222e; box-shadow:0 0 0 12px #754acb,0 0 0 25px #293961; transform:rotate(10deg); }
.v8-art::after { content:"◇"; position:absolute; font-size:64px; right:30px; top:14px; color:#dbfff5; text-shadow:0 0 25px #53e1d3; }
.world-card .v8-card-copy { padding:14px 16px 17px; }
.world-card strong { font-size:18px; margin:5px 0 7px; }
.world-card .world-card-tag { padding:0; color:var(--v8-cyan); font-size:10px; letter-spacing:1.5px; }
.world-card small { display:block; margin-top:10px; color:#b9cbc9; }
#v8Hud { display:none; position:fixed; left:20px; bottom:22px; z-index:25; width:min(390px,calc(100vw - 40px)); padding:14px 17px; border:1px solid #49645f; border-left:3px solid #6cf1da; border-radius:10px; background:rgba(9,22,27,.9); backdrop-filter:blur(8px); }
body.sim-mode #v8Hud { display:block; }
#v8Hud strong { display:block; color:#8dffe0; margin-bottom:5px; font-size:15px; }
#v8Objective { color:#e0ebe9; font-size:13px; line-height:1.5; }
#v8Stats { font-size:12px; color:#9fb9bc; margin:8px 0; font-variant-numeric:tabular-nums; }
#v8Hud button { min-height:28px; padding:5px 9px; font-size:11px; }
#v8Reticle { display:none; position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:20px; height:20px; border:1px solid #a4ffee; border-radius:50%; z-index:21; pointer-events:none; }
#v8Reticle::after { content:"+"; position:absolute; inset:-2px; text-align:center; color:#d9fff5; }
body.sim-mode.crosshair-on #v8Reticle { display:block; }
#v8Target { display:none; position:fixed; pointer-events:none; z-index:22; transform:translate(-50%,-50%); border:2px solid #f8e782; color:#fff1a1; border-radius:5px; min-width:54px; height:45px; text-align:center; padding-top:46px; font-size:11px; white-space:nowrap; }
#v8Overlay { position:fixed; inset:0; z-index:120; background:#07131bce; display:grid; place-items:center; padding:20px; }
#v8Overlay[hidden] { display:none; }
.v8-dialog { max-width:520px; width:100%; padding:32px; border:1px solid #477c78; border-radius:16px; background:#13252c; box-shadow:0 28px 100px #0009; }
.v8-dialog h2 { font-size:28px; margin:10px 0; }
.v8-dialog p { color:#bfd5d4; line-height:1.7; }
.v8-dialog .v8-eyebrow { color:#6cf1da; font-size:11px; letter-spacing:3px; }
#v8BindPanel { margin:14px 0; padding:13px; border:1px solid #44605e; border-radius:8px; background:#132a2b; }
#v8BindPanel p { font-size:12px; color:#b8d5ce; }
.v8-key-help { font-size:12px; color:#a0bfba; }
body.sim-mode.v8-hud-hidden #v8Hud { display:none; }
body.sim-mode.clean-flight #v8Hud,
body.sim-mode.clean-flight #v8Reticle,
body.sim-mode.clean-flight #v8Target,
body.sim-mode.clean-flight #raceArrow,
body.sim-mode.clean-flight #raceFinishOverlay,
body.sim-mode.clean-flight #v8Overlay,
body.sim-mode.clean-flight #presenceBadge,
body.sim-mode.clean-flight #simHud,
body.sim-mode.clean-flight #flightPanel,
body.sim-mode.clean-flight .panel-toggle,
body.sim-mode.clean-flight .hud-toggle { display:none !important; }
#v8Restore { display:none; position:fixed; right:12px; top:12px; z-index:150; font-size:11px; min-height:28px; opacity:.5; }
body.sim-mode.clean-flight #v8Restore { display:block; }
#v8Restore:hover,#v8Restore:focus { opacity:1; }
#hideMissionPanel { float:right; margin:-5px -5px 0 6px; font-size:18px !important; }
.v8-choice { display:flex; align-items:center; gap:10px; padding:10px 0; }
.v8-choice input { width:18px; height:18px; accent-color:#66e1ca; }
.hud-toggle { position:fixed; top:12px; }
.sim-hud { left:128px; max-width:calc(100vw - 160px); }
#v8FireDialog { position:fixed; inset:0; z-index:180; display:grid; place-items:center; background:#07131beb; padding:20px; }
#v8FireDialog[hidden] { display:none; }
#v8FireDialog .v8-dialog { max-height:90vh; overflow:auto; }
@media(max-width:600px) { #v8Hud { bottom:10px; left:10px; width:calc(100vw - 20px); padding:10px; } .v8-dialog { padding:22px; } .world-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .sim-hud { top:66px; left:10px; max-width:calc(100vw - 20px); } }
#combatStatus { position:fixed; top:62px; right:18px; z-index:30; width:min(285px,calc(100vw - 36px)); padding:14px; background:#101c2eed; border:1px solid #567083; border-radius:10px; }
#combatStatus[hidden],#raceProgress[hidden] { display:none; }
#combatStatus>div { display:flex; justify-content:space-between; color:#ff8fab; font-size:13px; }
#playerHealth { display:block; width:100%; height:17px; margin:9px 0; accent-color:#ff5286; }
#playerHealth::-webkit-progress-bar { background:#392a39; border-radius:5px; }
#playerHealth::-webkit-progress-value { background:#ff5286; border-radius:5px; }
#combatStatus p { font-size:12px; color:#b9ffe6; margin:8px 0; }
#combatStatus small { font-size:11px; color:#b4c5cf; }
#combatStatus[data-hit="true"] { border:2px solid #ff385b; background:#571b2ceb; }
#fireAssignment { font-weight:700; color:#a5ffcd!important; }
#fireInputTest[data-pressed="true"] { color:#fff!important; background:#186b51; padding:8px; }
#raceProgress { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); z-index:28; padding:9px 15px; border:1px solid #c9df77; border-radius:7px; background:#13202deb; color:#eaffab; font-size:13px; text-align:center; pointer-events:none; }
body.clean-flight #combatStatus,body.clean-flight #raceProgress { display:none; }
.world-card.world-current { border: 3px solid #6cf1da; box-shadow: 0 0 22px #6cf1da66; animation: currentWorldGlow 2.4s ease-in-out infinite; }
.current-world-badge { display: inline-block; color: #092721; background: #6cf1da; padding: 4px 9px; border-radius: 6px; font-weight: 900; font-size: 12px; letter-spacing: .08em; }
@keyframes currentWorldGlow { 50% { border-color: #d98cff; box-shadow: 0 0 27px #d98cff77; } }
@media (prefers-reduced-motion: reduce) { .world-card.world-current { animation: none; } }
#networkMouseEntry{margin-top:8px;padding:12px 16px;border:1px solid #a390e5;border-radius:10px;background:#241c3b;color:#e9dcff;cursor:pointer}
#networkMouse{margin-top:8px;color:#c4fff0;border-color:#659e95}
#networkMouseHelp{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:70;max-width:min(720px,94vw);padding:12px 16px;border:1px solid #537b8c;border-radius:12px;background:#07111feb;color:#d8efee;font:13px/1.5 system-ui;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
#networkMouseHelp[hidden]{display:none}#networkMouseHelp span{flex-basis:100%}#networkMouseHelp button{padding:7px 12px;border:1px solid #7a9ba7;border-radius:7px;background:#183046;color:#e5fff5;cursor:pointer}
.network-mouse #v8Target,.network-mouse #raceProgress,.network-mouse #simHud,.network-mouse #v8Hud,.network-mouse #presenceBadge{display:none!important}
.network-mouse:not(.settings-open) #networkMouseHelp{display:none}
.world-card[data-world="networkGalaxy"] .v8-art{background:radial-gradient(circle at 30% 35%,#94379477,transparent 35%),radial-gradient(circle at 74% 60%,#276f8466,transparent 34%),#050916}
.world-card[data-world="networkGalaxy"] .v8-art::before{inset:12px;transform:none;border-radius:0;background:repeating-linear-gradient(28deg,transparent 0 21px,#a782dc66 22px 23px,transparent 24px 38px),repeating-linear-gradient(-35deg,transparent 0 26px,#5bdbd966 27px 28px,transparent 29px 42px)}
.world-card[data-world="networkGalaxy"] .v8-art::after{content:'✦ · ✦';font-size:42px;left:30px;right:auto;top:24px;color:#c2a5ff}
#navigationChoice{padding:18px;margin-bottom:20px;border:1px solid #557d8f;border-radius:12px;background:#102631}
#navigationChoice h3{margin:0 0 8px;color:#d4fff4;font-size:20px}#navigationChoice p{margin:8px 0;color:#c0d6dd;font-size:13px;line-height:1.5}
.navigation-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.navigation-buttons button{flex:1 1 160px;margin:0!important;min-height:48px;padding:10px!important;border:1px solid #698391!important;border-radius:9px;background:#1b3341!important;color:#edfff9!important;font-weight:700;cursor:pointer}
.navigation-buttons button[aria-pressed="true"]{border-color:#78f5d6!important;background:#20514e!important;box-shadow:0 0 0 1px #78f5d6}
#navigationChoiceStatus{min-height:22px;color:#9cead5!important}
body.network-mouse #combatStatus:not([hidden]){display:block;top:14px;width:min(230px,calc(100vw - 120px));padding:10px 12px;pointer-events:none}
.network-mouse #combatFireStatus{display:none}
