:root{--ui-bg:#fafbfdeb;--ui-bg-solid:#fafbfd;--ui-fg:#1f2a37;--ui-muted:#5b6878;--ui-border:#1f2a371f;--ui-accent:#2f6fde;--ui-accent-fg:#fff;--ui-danger:#c43d3d;--ui-shadow:0 4px 18px #141e3229;--ui-radius:14px;--ui-btn-radius:12px;--ui-pill:999px;--hud-bg:#0e141ed1;--hud-fg:#d9e3ee;--hud-dim:#8ea0b4;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);color:var(--ui-fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--ui-bg:#181e28eb;--ui-bg-solid:#181e28;--ui-fg:#e4eaf2;--ui-muted:#9aa8b8;--ui-border:#e4eaf224;--ui-accent:#5b93f0}}*{box-sizing:border-box}html,body{height:100%;overscroll-behavior:none;background:#cfe0ec;height:100dvh;margin:0;overflow:hidden}#app{position:fixed;inset:0}canvas.world{touch-action:none;outline:none;width:100%;height:100%;display:block}.label-layer{pointer-events:none;z-index:5;position:fixed;inset:0;overflow:hidden}.ui-layer{pointer-events:none;z-index:10;position:fixed;inset:0}.ui-layer>*{pointer-events:auto}.ui-panel{background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(8px)}.ui-button,.ui-select{font:inherit;color:var(--ui-fg);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:var(--ui-btn-radius);cursor:pointer;height:36px;box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(8px);white-space:nowrap;-webkit-tap-highlight-color:transparent;padding:0 14px;font-weight:600;transition:border-color .15s,background-color .15s,transform 80ms,filter .15s}.ui-button:hover,.ui-select:hover{border-color:var(--ui-accent)}.ui-button:active{transform:scale(.97)}.ui-button.primary{color:var(--ui-accent-fg);background:var(--ui-accent);box-shadow:0 6px 22px #2f6fde59, var(--ui-shadow);box-shadow:0 6px 22px color-mix(in srgb, var(--ui-accent) 40%, transparent), var(--ui-shadow);border-color:#0000}.ui-button.primary:hover{filter:brightness(1.08);border-color:#0000}.ui-button:focus-visible,.ui-select:focus-visible,.search input:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}.ui-button.active{background:var(--ui-accent);color:var(--ui-accent-fg);border-color:var(--ui-accent)}.toolbar{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right));max-width:calc(100vw - 24px - var(--safe-left) - var(--safe-right));flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:absolute}.search{top:calc(12px + var(--safe-top));left:calc(12px + var(--safe-left));width:min(340px, calc(100vw - 24px - var(--safe-left) - var(--safe-right)));z-index:20;position:absolute}.ui-layer:has(>.toolbar) .search{width:min(340px, calc(100vw - 24px - 68px - var(--safe-left) - var(--safe-right)))}.search form{height:40px;display:flex;overflow:hidden}.search input{min-width:0;font:inherit;color:var(--ui-fg);background:0 0;border:none;outline:none;flex:1;padding:0 12px;font-size:15px}.search input::placeholder{color:var(--ui-muted)}.search form button{font:inherit;color:var(--ui-muted);cursor:pointer;background:0 0;border:none;padding:0 12px}.search form button:hover{color:var(--ui-accent)}.search .search-panel{flex-direction:column;max-height:min(60vh,520px);margin-top:6px;display:flex;overflow:hidden}.search .search-panel[hidden]{display:none}.search .search-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:4px;overflow-y:auto}.search .search-group+.search-group{border-top:1px solid var(--ui-border);margin-top:4px;padding-top:4px}.search .search-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted);padding:6px 10px 2px;font-size:11px;font-weight:600}.search .search-option{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:7px 10px;display:block}.search .search-option[aria-selected=true]{background:#2f6fde1f;background:color-mix(in srgb, var(--ui-accent) 15%, transparent)}.search .search-option .name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.search .search-option mark{color:inherit;background:0 0;font-weight:700}.search .search-option.online .name{color:var(--ui-accent);font-weight:600}.search .search-option .detail{color:var(--ui-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.search .search-status{color:var(--ui-muted);padding:7px 10px;font-size:13px}.search .search-credit{color:var(--ui-muted);border-top:1px solid var(--ui-border);flex:none;padding:5px 12px 6px;font-size:11px}.search .search-credit[hidden]{display:none}.search .search-credit a{color:var(--ui-accent);text-decoration:none}.search .search-credit a:hover{text-decoration:underline}.search .search-live{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (pointer:coarse){.search input{font-size:16px}.search .search-option{padding:10px}}.in-menu>.label-layer,.in-menu>.ui-layer>:not(.main-menu):not(.rotate-overlay){visibility:hidden}.loading{left:calc(12px + var(--safe-left));bottom:calc(12px + var(--safe-bottom));color:var(--ui-fg);align-items:center;gap:8px;padding:7px 12px;font-size:13px;transition:opacity .3s;display:flex;position:absolute}.loading.hidden{opacity:0;pointer-events:none}.spinner{border:2px solid var(--ui-border);border-top-color:var(--ui-accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toasts{top:calc(64px + var(--safe-top));pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(440px,100vw - 24px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-left:4px solid var(--ui-accent);border-radius:var(--ui-btn-radius);max-width:100%;padding:9px 16px;font-size:13px;font-weight:500;animation:.2s ease-out toast-in}.toast.error{border-left-color:var(--ui-danger)}.toast.leaving{opacity:0;transition:opacity .3s}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.hint{left:50%;bottom:calc(12px + var(--safe-bottom));color:var(--hud-dim);background:var(--hud-bg);border-radius:var(--ui-pill);white-space:nowrap;border-color:#0000;padding:6px 14px;font-size:12px;transition:opacity .4s;position:absolute;transform:translate(-50%)}.hint.hidden{opacity:0;pointer-events:none}.hint kbd{border:1px solid #ffffff2e;border:1px solid color-mix(in srgb, var(--hud-fg) 22%, transparent);color:var(--hud-fg);background:color-mix(in srgb, var(--hud-fg) 10%, transparent);border-radius:6px;margin-right:2px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700}.hud{top:calc(60px + var(--safe-top));right:calc(12px + var(--safe-right));width:280px;max-height:calc(100vh - 110px - var(--safe-top) - var(--safe-bottom));color:var(--hud-fg);background:var(--hud-bg);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.5;position:absolute;overflow-y:auto}.hud.hidden{display:none}.hud-settings .row{align-items:center;margin-bottom:6px}.hud-settings .ui-select{max-width:150px;height:28px;font-size:12px}.hud h3{letter-spacing:.08em;text-transform:uppercase;color:var(--hud-dim);margin:8px 0 4px;font-size:10.5px;font-weight:600}.hud h3:first-child{margin-top:0}.hud .row{justify-content:space-between;gap:8px;display:flex}.hud .row span:first-child{color:var(--hud-dim)}.hud .row span:last-child{text-align:right;font-variant-numeric:tabular-nums}.hud label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.hud input[type=checkbox]{accent-color:#5b93f0;margin:0}.hud .buttons{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.hud .buttons button{font:inherit;color:var(--hud-fg);cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:5px;padding:3px 8px;font-size:11px}.hud .buttons button:hover{background:#ffffff29}.touch-fly{pointer-events:none;position:absolute;inset:0}.touch-fly.hidden{display:none}.joystick{left:calc(24px + var(--safe-left));bottom:calc(56px + var(--safe-bottom));pointer-events:auto;touch-action:none;background:#ffffff40;border:2px solid #ffffff8c;border-radius:50%;width:120px;height:120px;position:absolute}.joystick .knob{background:#fffc;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0003}.fly-buttons{right:calc(20px + var(--safe-right));bottom:calc(56px + var(--safe-bottom));pointer-events:auto;flex-direction:column;gap:10px;display:flex;position:absolute}.fly-buttons button{color:#1f2a37;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffffb3;border:2px solid #ffffffe6;border-radius:50%;width:56px;height:56px;font-size:13px;font-weight:600}.fly-buttons button.held{background:#fffffff2}@media (max-width:780px){.hud{top:calc(60px + var(--safe-top));width:min(280px,100vw - 24px)}.hint{display:none}.ui-button,.ui-select{height:34px;padding:0 10px}}.game-loading,.game-prompt,.game-speed{color:var(--hud-fg);background:var(--hud-bg);border-color:#0000}.game-loading{border-radius:var(--ui-pill);padding:12px 20px;font-size:15px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.game-prompt{left:50%;bottom:calc(64px + var(--safe-bottom));letter-spacing:.01em;white-space:nowrap;border-radius:var(--ui-pill);align-items:center;gap:8px;padding:6px 16px 6px 7px;font-size:14px;font-weight:700;display:flex;position:absolute;transform:translate(-50%)}.game-prompt kbd{text-align:center;min-width:1.9em;color:var(--ui-accent-fg);background:var(--ui-accent);border-radius:var(--ui-pill);border:0;flex:none;margin:0;padding:3px 9px;font:700 12px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-block}.game-flash{color:var(--hud-fg);background:var(--hud-bg);border-radius:var(--ui-pill);pointer-events:none;padding:8px 18px;font-size:16px;font-weight:800;position:absolute;top:38%;left:50%;transform:translate(-50%)}.game-speed{right:calc(16px + var(--safe-right));bottom:calc(40px + var(--safe-bottom));font-variant-numeric:tabular-nums;border-radius:var(--ui-btn-radius);box-shadow:inset 0 -3px 0 var(--ui-accent), var(--ui-shadow);align-items:baseline;gap:4px;padding:4px 16px 6px;display:flex;position:absolute}.game-speed .value{text-align:right;min-width:2.2ch;font-size:30px;font-weight:800}.game-speed .unit{color:var(--hud-dim);font-size:12px;font-weight:600}.game-loading.hidden,.game-prompt.hidden,.game-flash.hidden,.game-speed.hidden{display:none}.compass{--bearing:0deg;top:calc(12px + var(--safe-top));right:calc(60px + var(--safe-right));pointer-events:none;border-radius:50%;width:64px;height:64px;padding:0;position:absolute}.compass.hidden{display:none}.compass-dial{border:1px solid var(--ui-border);transform:rotate(calc(-1 * var(--bearing)));border-radius:50%;position:absolute;inset:5px}.compass-mark{color:var(--ui-muted);font-size:11px;font-weight:700;line-height:1;position:absolute;top:50%;left:50%}.compass-mark.north{color:var(--ui-danger);transform:translate(-50%, -50%) translateY(-21px) rotate(var(--bearing))}.compass-mark.east{transform:translate(-50%, -50%) translateX(21px) rotate(var(--bearing))}.compass-mark.south{transform:translate(-50%, -50%) translateY(21px) rotate(var(--bearing))}.compass-mark.west{transform:translate(-50%, -50%) translateX(-21px) rotate(var(--bearing))}.compass-caret{border-left:5px solid #0000;border-right:5px solid #0000;border-top:7px solid var(--ui-accent);position:absolute;top:-1px;left:50%;transform:translate(-50%)}.compass-label{color:var(--ui-fg);place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;inset:0}.fs-toggle{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right));border-radius:var(--ui-btn-radius);place-items:center;width:40px;height:40px;padding:0;display:grid;position:absolute}.fs-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.ui-layer:has(>.fs-toggle)>.toolbar{right:calc(60px + var(--safe-right))}.ui-layer:has(>.fs-toggle) .search{width:min(340px, calc(100vw - 24px - 48px - var(--safe-left) - var(--safe-right)))}.ui-layer:not(.touch-play):has(>.fs-toggle):has(>.toolbar) .search{width:min(340px, calc(100vw - 24px - 116px - var(--safe-left) - var(--safe-right)))}.minimap{--minimap-size:170px;top:calc(12px + var(--safe-top));right:calc(60px + var(--safe-right));width:var(--minimap-size);height:var(--minimap-size);border:3px solid var(--ui-bg-solid);box-shadow:var(--ui-shadow);background:var(--ui-bg-solid);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;padding:0;position:absolute;overflow:hidden}.minimap.hidden{display:none}.minimap:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.minimap-canvas,.map-overlay-canvas{width:100%;height:100%;display:block}@media (max-width:780px){.minimap{--minimap-size:120px}}.ui-layer:has(>.minimap):has(>.fs-toggle)>.toolbar{top:calc(60px + var(--safe-top));right:calc(12px + var(--safe-right))}.ui-layer:has(>.minimap)>.toolbar .ui-button{width:40px;padding:0}.ui-layer:not(.touch-play):has(>.minimap)>.hud{top:calc(194px + var(--safe-top));max-height:calc(100vh - 244px - var(--safe-top) - var(--safe-bottom))}.ui-layer:not(.touch-play):has(>.minimap):has(>.fs-toggle) .search{width:min(340px, calc(100vw - 254px - var(--safe-left) - var(--safe-right)))}.ui-layer:not(.touch-play):has(>.minimap)>.toasts{width:min(440px, max(180px, calc(100vw - 484px - 2 * var(--safe-right))))}@media (max-width:780px){.ui-layer:not(.touch-play):has(>.minimap)>.hud{top:calc(144px + var(--safe-top));max-height:calc(100vh - 194px - var(--safe-top) - var(--safe-bottom))}.ui-layer:not(.touch-play):has(>.minimap):has(>.fs-toggle) .search{width:min(340px, calc(100vw - 204px - var(--safe-left) - var(--safe-right)))}.ui-layer:not(.touch-play):has(>.minimap)>.toasts{width:min(440px, max(180px, calc(100vw - 384px - 2 * var(--safe-right))))}}.map-overlay{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right));bottom:calc(12px + var(--safe-bottom));left:calc(12px + var(--safe-left));z-index:900;touch-action:none;background:var(--ui-bg-solid);padding:0;position:absolute;overflow:hidden}.map-overlay[hidden]{display:none}.map-overlay-canvas{touch-action:none;cursor:grab}.map-overlay-canvas:active{cursor:grabbing}.map-overlay-btn{place-items:center;width:44px;height:44px;padding:0;font-size:22px;font-weight:600;line-height:1;display:grid}.map-overlay-btn.close{position:absolute;top:10px;right:10px}.map-overlay-zoom{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:10px;right:10px}.fs-tip{top:calc(92px + var(--safe-top));left:calc(12px + var(--safe-left));width:min(340px, calc((100vw - var(--safe-left) - var(--safe-right)) * .36));border-left:4px solid var(--ui-accent);border-radius:var(--ui-btn-radius);align-items:center;gap:6px;min-width:200px;padding:7px 6px 7px 12px;font-size:13px;line-height:1.35;animation:.2s ease-out toast-in;display:flex;position:absolute}.fs-tip[hidden]{display:none}.fs-tip span{flex:1}.fs-tip-close{width:32px;height:32px;font:inherit;color:var(--ui-muted);cursor:pointer;background:0 0;border:none;flex:none;font-size:20px;line-height:1}.rotate-overlay{z-index:2000;text-align:center;color:var(--hud-fg);background:linear-gradient(var(--hud-bg), var(--hud-bg)), #0b0f18;touch-action:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:none;position:absolute;inset:0}.rotate-overlay.shown{display:flex}.rotate-phone{width:54px;height:92px;box-shadow:0 0 0 3px var(--ui-accent);border:4px solid;border-radius:12px;margin-bottom:18px;animation:2.4s ease-in-out infinite rotate-phone;position:relative}.rotate-phone:after{content:"";background:currentColor;border-radius:2px;width:14px;height:3px;margin-left:-7px;position:absolute;bottom:6px;left:50%}.rotate-title{font-size:18px;font-weight:700}.rotate-sub{color:var(--hud-dim);font-size:13px}@keyframes rotate-phone{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.rotate-phone{animation:none;transform:rotate(-90deg)}}.touch-play-controls .joystick{left:calc(20px + var(--safe-left));bottom:calc(24px + var(--safe-bottom));background:#ffffff38;background:color-mix(in srgb, var(--ui-bg-solid) 26%, transparent);border-color:#ffffff8c;border-color:color-mix(in srgb, var(--ui-bg-solid) 60%, transparent);transition:opacity .25s}.touch-play-controls .joystick .knob{background:color-mix(in srgb, var(--ui-bg-solid) 88%, transparent);box-shadow:inset 0 0 0 3px var(--ui-accent), 0 2px 8px #0003}.touch-cluster{right:calc(16px + var(--safe-right));bottom:calc(30px + var(--safe-bottom));pointer-events:none;position:absolute}.touch-cluster[hidden]{display:none}.touch-btn{font:inherit;color:var(--ui-fg);background:#fffc;background:color-mix(in srgb, var(--ui-bg-solid) 82%, transparent);border:2px solid #fffffff2;border:2px solid color-mix(in srgb, var(--ui-bg-solid) 96%, transparent);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-size:10.5px;font-weight:700;line-height:1;transition:opacity .25s,transform 80ms,background-color .15s;display:flex;position:absolute;box-shadow:0 2px 10px #0a142340}.touch-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.touch-btn.primary{color:var(--ui-accent-fg);background:#2f6fdee0;background:color-mix(in srgb, var(--ui-accent) 90%, transparent);border-color:color-mix(in srgb, var(--ui-bg-solid) 70%, transparent);font-size:12px}.touch-btn.primary svg{width:30px;height:30px}.touch-btn.pressed,.touch-btn.held{background:#fff;background:var(--ui-bg-solid);transform:scale(.93)}.touch-btn.primary.pressed,.touch-btn.primary.held{background:#2458b8;background:color-mix(in srgb, var(--ui-accent) 78%, #000)}.touch-btn.active{color:var(--ui-accent-fg);background:#2f6fdee0;background:color-mix(in srgb, var(--ui-accent) 90%, transparent)}.touch-btn.cue{animation:1.1s ease-in-out infinite touch-cue;box-shadow:0 0 0 3px #ffc428f2,0 2px 10px #0a142340}@keyframes touch-cue{50%{transform:scale(1.08)}}.touch-fly.faded .joystick,.touch-fly.faded .touch-btn:not(.held):not(.pressed):not(.cue){opacity:.35}.ui-layer.touch-play{--touch-search-w:min(340px, calc((100vw - var(--safe-left) - var(--safe-right)) * .36));--touch-band-left:calc(152px + var(--safe-left));--touch-band-right:calc(28px + var(--touch-cluster-w,214px) + var(--safe-right))}.ui-layer.touch-play .search{width:var(--touch-search-w)}.ui-layer.touch-play>.compass{top:calc(12px + var(--safe-top));right:calc(60px + var(--safe-right))}.ui-layer.touch-play>.minimap{--minimap-reserve:241.5px;--minimap-size:clamp(72px, calc(100dvh - var(--safe-top) - var(--safe-bottom) - var(--minimap-reserve)), 120px);top:calc(12px + var(--safe-top));right:calc(60px + var(--safe-right))}.ui-layer.touch-play>.toasts{top:calc(12px + var(--safe-top));left:calc(24px + var(--touch-search-w) + var(--safe-left));right:calc(192px + var(--safe-right));width:auto;transform:none}.ui-layer.touch-play>.toasts>.toast:nth-last-child(n+3){display:none}.ui-layer.touch-play>.game-speed,.ui-layer.touch-play>.game-prompt{left:var(--touch-band-left);right:var(--touch-band-right);width:-moz-fit-content;width:fit-content;max-width:calc(100vw - var(--touch-band-left) - var(--touch-band-right));margin-inline:auto;transform:none}.ui-layer.touch-play>.game-speed{bottom:calc(30px + var(--safe-bottom))}.ui-layer.touch-play>.game-prompt{bottom:calc(86px + var(--safe-bottom));overflow:hidden}.ui-layer.touch-play>.game-prompt>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.ui-layer.touch-play>.hint{display:none}.ui-layer.touch-play>.loading{bottom:auto;top:calc(92px + var(--safe-top))}.ui-layer.touch-play>.toolbar{top:calc(60px + var(--safe-top));right:calc(12px + var(--safe-right))}.ui-layer.touch-play>.hud{top:calc(104px + var(--safe-top))}.map-credit{max-width:100%;color:var(--ui-muted);background:var(--ui-bg);white-space:nowrap;text-overflow:ellipsis;pointer-events:auto;border-radius:999px;padding:2px 8px;font-size:10.5px;line-height:1.5;display:inline-block;overflow:hidden}.map-credit[hidden]{display:none}.map-credit a{color:inherit;text-decoration:none}.map-credit a:hover,.map-credit a:focus-visible{color:var(--ui-accent);text-decoration:underline}.main-menu{z-index:1500;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(36px + var(--safe-bottom)) calc(clamp(20px, 7vw, 96px) + var(--safe-left));color:var(--hud-fg);background:linear-gradient(90deg,#0e141ee6 0%,#0e141e99 42%,#0e141e14 80%);background:linear-gradient(90deg, color-mix(in srgb, var(--hud-bg) 98%, transparent) 0%, color-mix(in srgb, var(--hud-bg) 66%, transparent) 42%, color-mix(in srgb, var(--hud-bg) 10%, transparent) 82%);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;transition:opacity .4s,background .3s;display:flex;position:absolute;inset:0;overflow:hidden}.main-menu[data-page=settings],.main-menu[data-page=info]{background:#0e141eb8;background:color-mix(in srgb, var(--hud-bg) 78%, transparent)}.main-menu.closing{opacity:0;pointer-events:none}.main-menu[hidden],.main-menu [hidden]{display:none!important}.menu-shell{flex-direction:column;gap:clamp(14px,4vh,32px);width:min(440px,100%);min-height:0;max-height:100%;display:flex}.main-menu[data-page=settings] .menu-shell,.main-menu[data-page=info] .menu-shell{gap:12px;width:min(620px,100%)}.menu-title{letter-spacing:-.035em;color:var(--hud-fg);text-shadow:0 2px 24px #00000059;margin:0;font-size:clamp(34px,min(8vw,13vh),76px);font-weight:900;line-height:.95}.menu-title:after{content:"";background:var(--ui-accent);background:linear-gradient(90deg, var(--ui-accent), color-mix(in srgb, var(--ui-accent) 35%, #fff));border-radius:3px;width:64px;height:6px;margin-top:clamp(8px,2vh,14px);display:block}.menu-tagline{color:var(--hud-dim);margin:clamp(6px,1.6vh,12px) 0 0;font-size:15px}.main-menu[data-page=settings] .menu-title,.main-menu[data-page=info] .menu-title{font-size:clamp(24px,5vh,34px)}.main-menu[data-page=settings] .menu-title:after,.main-menu[data-page=info] .menu-title:after,.main-menu[data-page=settings] .menu-tagline,.main-menu[data-page=info] .menu-tagline{display:none}.menu-home{flex-direction:column;gap:10px;width:min(300px,100%);display:flex}.ui-button.menu-btn{letter-spacing:.01em;border-radius:14px;height:48px;padding:0 22px;font-size:16px;font-weight:700}.ui-button.menu-btn.primary{letter-spacing:.04em;text-transform:uppercase;height:58px;font-size:20px;font-weight:800}.menu-loading{width:min(340px,100%)}.menu-loading-label{justify-content:space-between;gap:12px;margin-bottom:10px;font-size:15px;font-weight:600;display:flex}.menu-progress-value{font-variant-numeric:tabular-nums;color:var(--hud-dim)}.menu-progress{background:#ffffff29;background:color-mix(in srgb, var(--hud-fg) 18%, transparent);border-radius:999px;height:10px;overflow:hidden}.menu-progress-fill{border-radius:inherit;background:var(--ui-accent);background:linear-gradient(90deg, var(--ui-accent), color-mix(in srgb, var(--ui-accent) 45%, #fff));width:0;height:100%;transition:width .25s}.menu-panel{min-height:0;color:var(--ui-fg);border-radius:18px;flex-direction:column;gap:10px;padding:16px 18px 14px;display:flex}.menu-panel h2{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:800}.menu-panel p{margin:0;font-size:14px;line-height:1.45}.menu-panel h3{letter-spacing:.08em;text-transform:uppercase;color:var(--ui-muted);margin:14px 0 8px;font-size:11px;font-weight:700}.menu-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;margin:0 -6px;padding:0 6px;overflow-y:auto}.menu-scroll>:first-child,.menu-scroll>.menu-section:first-child h3{margin-top:0}.menu-panel .ui-button.menu-back{align-self:flex-start;height:40px;font-size:14px}.menu-note{color:var(--ui-muted);margin-top:6px!important;font-size:12.5px!important}.ui-button.menu-toggle{border-radius:12px;height:38px;font-weight:600}.menu-controls{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 20px;display:grid}.menu-controls-group h3{letter-spacing:0!important;text-transform:none!important;color:var(--ui-fg)!important;margin:4px 0 6px!important;font-size:12px!important}.controls-list{margin:0;padding:0;list-style:none}.controls-list li{align-items:baseline;gap:10px;padding:3px 0;font-size:13px;display:flex}.controls-list .keys{flex:none;min-width:96px}.controls-list kbd{text-align:center;min-width:1.9em;color:var(--ui-fg);background:#1f2a370f;background:color-mix(in srgb, var(--ui-fg) 7%, transparent);border:1px solid var(--ui-border);border-bottom-width:2px;border-radius:6px;margin:0 3px 2px 0;padding:2px 6px;font:700 11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-block}.controls-list .action{color:var(--ui-muted)}.ui-segment{background:#1f2a3712;background:color-mix(in srgb, var(--ui-fg) 8%, transparent);border-radius:13px;flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.ui-segment-btn{height:34px;font:inherit;color:var(--ui-fg);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 14px;font-weight:600}.ui-segment-btn:hover{background:color-mix(in srgb, var(--ui-accent) 12%, transparent)}.ui-segment-btn.active{color:var(--ui-accent-fg);background:var(--ui-accent)}.ui-segment-btn:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}.credits{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:13px;line-height:1.4;display:grid}.credits dt{color:var(--ui-muted);font-weight:600}.credits dd{margin:0}.credits a,.menu-panel a{color:var(--ui-accent);text-decoration:none}.credits a:hover,.menu-panel a:hover{text-decoration:underline}.credit-licence{color:var(--ui-muted)}.menu-foot{left:calc(clamp(20px, 7vw, 96px) + var(--safe-left));right:calc(16px + var(--safe-right));bottom:calc(10px + var(--safe-bottom));color:var(--hud-dim);margin:0;font-size:11.5px;position:absolute}.menu-foot .menu-credit{margin:0}.menu-foot a{color:var(--hud-fg);text-decoration:none}.menu-foot a:hover{text-decoration:underline}@media (max-height:460px){.ui-button.menu-btn{height:42px}.ui-button.menu-btn.primary{height:50px}.menu-home{gap:8px}.main-menu[data-page=settings] .menu-brand,.main-menu[data-page=info] .menu-brand{display:none}.menu-panel{padding:12px 14px 10px}.menu-foot{font-size:10.5px}}@media (max-width:520px){.credits{grid-template-columns:1fr;gap:2px}.credits dd{margin-bottom:6px}}@media (prefers-reduced-motion:reduce){.main-menu,.menu-progress-fill{transition:none}}
