/* ROTOR Stadium Final v33 · final09-hotspots.css — hotspot menu on the rotor screen. Loads after final08-ui.css. Palette: black glass,
   #ffcf00 yellow, #b6ef3c lime (interaction only), white type. No overlap at any size: the lane owns the bottom, the pills sit above it. */
/* 1 · the button bands go away on the rotor screen (dock, rail, CREATE PLAYER / PLAYER VS PLAYER, learning row). They stay in the tour. */
html body.f8-home:not(#f9a):not(#f9b):not(#f9c) #mainMenu#mainMenu#mainMenu#mainMenu :is(.cm-primary,.cm-learning,.cm-angles-toggle,h1,.cm-kicker,.cm-intro){display:none!important}
/* VIEW SETTINGS: the rail is only its settings sheet, centred above the lane, while open */
html body.f8-home.f9-settings nav.cm-view-rail.cm-view-rail.cm-view-rail.cm-view-rail{display:flex!important;left:50%!important;right:auto!important;bottom:152px!important;translate:-50% 0!important;transform:none!important;width:max-content!important;max-width:calc(100vw - 32px)!important}
html body.f8-home.f9-settings nav.cm-view-rail > :not(#cmViewSettings){display:none!important}
html body.f8-home.f9-settings nav.cm-view-rail #cmViewSettings > summary{display:none}
/* 2 · fixes found in the v33 audit */
html body #mainMenu#mainMenu#mainMenu :is(a,button,summary,select){pointer-events:auto} /* the menu block is pointer-events:none (stadium36 design); its links were dead */
html body #rotorWorldView#rotorWorldView #f11PipHome{pointer-events:auto!important} /* WATCH FULL TOUR sat inside a pointer-events:none window */
html body.f8-home #rotorWorldView .pip-close{display:none!important} /* the PiP could be closed with no way back on the rotor screen */
html body:is(.club-center-open,.rotor-access-panel-open,.emblem-editor-open) #final02Lane#final02Lane#final02Lane{visibility:hidden!important} /* the lane sat under the panels */
html body:is(.club-center-open,.rotor-access-panel-open) :is(#f9Hot,#freeCamToggle,#f11Ring,#f11Sticks){display:none!important}
/* 3 · the pills (lime dot + word + sub on black glass), anchored at --x/--y; data-side says which way the label hangs */
html body #f9Hot{position:fixed;inset:0;width:0;height:0;z-index:1450;pointer-events:none}
html body #f9Hot[hidden]{display:none}
html body #f9Hot .f9-pill{position:absolute;left:var(--x);top:var(--y);display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 16px 0 12px;margin:0;border-radius:999px;border:1px solid #ffffff2e;background:linear-gradient(165deg,#15181cf0,#000000f8);box-shadow:inset 0 1px 0 #ffffff3a,0 10px 26px #000b;color:#fff;font:800 11px/1 Inter,system-ui,sans-serif;letter-spacing:.16em;text-align:left;white-space:nowrap;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;outline:none;translate:0 -50%;transition:transform 180ms cubic-bezier(.22,.61,.36,1),border-color 180ms,box-shadow 180ms;transform-origin:left center}
html body #f9Hot .f9-pill[data-side=left]{translate:-100% -50%;flex-direction:row-reverse;padding:0 12px 0 18px;text-align:right;transform-origin:right center} /* a dot in the left half hangs its label OUTWARD, off the court */
html body #f9Hot .f9-pill[data-side=centre]{translate:-50% -50%;transform-origin:center}
html body #f9Hot .f9-pill::after{content:"";position:absolute;inset:-10px;border-radius:999px} /* ≥ 64 px hit area */
html body #f9Hot .f9-pill i{width:14px;height:14px;border-radius:50%;background:#b6ef3c;box-shadow:0 0 0 3px #b6ef3c33,0 0 14px #b6ef3caa;flex:none;transition:background 160ms,transform 160ms}
html body #f9Hot .f9-pill b{font:inherit;color:#fff}
html body #f9Hot .f9-pill small{display:none;margin-top:4px;font:700 7.5px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;color:#b6ef3c}
html body #f9Hot .f9-pill > b{display:grid}
html body #f9Hot .f9-pill:is(:hover,:focus-visible) small{display:block}
html body #f9Hot .f9-pill:is(:hover,:focus-visible){border-color:#b6ef3c;box-shadow:inset 0 1px 0 #ffffff3a,0 0 0 1px #b6ef3c66,0 12px 30px #000c;transform:scale(1.04)}
html body #f9Hot .f9-pill:is(:active,.fire){transform:scale(.96);border-color:#fff}
html body #f9Hot .f9-pill:is(:active,.fire) i{background:#fff;transform:scale(1.3)}
html body #f9Hot .f9-pill:focus-visible{box-shadow:0 0 0 3px #000,0 0 0 5px #fff}
html body #f9Hot .f9-pill[aria-expanded=true]{border-color:#b6ef3c;background:linear-gradient(165deg,#1d2a10f0,#000000f8)}
@media(prefers-reduced-motion:no-preference){
  html body #f9Hot .f9-pill i{animation:f9dot 2.6s cubic-bezier(.22,.61,.36,1) infinite}
  @keyframes f9dot{0%,100%{box-shadow:0 0 0 3px #b6ef3c33,0 0 14px #b6ef3caa}50%{box-shadow:0 0 0 7px #b6ef3c14,0 0 22px #b6ef3ccc}}
}
@media(max-width:999px),(max-height:639px){html body #f9Hot .f9-pill{height:42px;padding:0 14px 0 10px;font-size:10px}html body #f9Hot .f9-pill small{display:none}html body #f9Hot .f9-pill i{width:12px;height:12px}}
@media(max-width:760px) and (orientation:portrait){html body #f9Hot .f9-pill{height:38px;font-size:9px;letter-spacing:.12em}}
/* 4 · the three primaries carry the hotspot dot too (Joey: "but also make those hotspots") — PLAY DUEL stays yellow */
html body #final02Lane :is(#rotorSceneEnterArena,#f11HomeBig,#rotorSceneTraining){position:relative}
html body #final02Lane .f9-dot{position:absolute;left:12px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#b6ef3c;box-shadow:0 0 0 3px #b6ef3c33,0 0 12px #b6ef3caa;pointer-events:none}
html body #final02Lane #rotorSceneEnterArena .f9-dot{background:#000;box-shadow:0 0 0 3px #00000022}
@media(prefers-reduced-motion:no-preference){html body #final02Lane .f9-dot{animation:f9dot 2.6s cubic-bezier(.22,.61,.36,1) infinite}}
/* 5 · FREE CAM: a hotspot pill at the right edge, middle; the HUD while flying */
html body #freeCamToggle{position:fixed;right:26px;top:46%;z-index:1452;display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 12px 0 18px;margin:0;border-radius:999px;border:1px solid #ffffff2e;background:linear-gradient(165deg,#15181cf0,#000000f8);box-shadow:inset 0 1px 0 #ffffff3a,0 10px 26px #000b;color:#fff;font:800 11px/1 Inter,system-ui,sans-serif;letter-spacing:.16em;white-space:nowrap;cursor:pointer;flex-direction:row-reverse;text-align:right;translate:0 -50%;transition:transform 180ms,border-color 180ms}
html body #freeCamToggle[hidden]{display:none}
html body #freeCamToggle i{width:14px;height:14px;border-radius:50%;background:#b6ef3c;box-shadow:0 0 0 3px #b6ef3c33,0 0 14px #b6ef3caa;flex:none}
html body #freeCamToggle b{display:grid;font:inherit}
html body #freeCamToggle small{display:none;margin-top:4px;font:700 7.5px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;color:#b6ef3c}
html body #freeCamToggle:is(:hover,:focus-visible) small{display:block}
html body #freeCamToggle:is(:hover,:focus-visible){border-color:#b6ef3c;transform:scale(1.04)}
html body #freeCamToggle:focus-visible{box-shadow:0 0 0 3px #000,0 0 0 5px #fff}
html body #freeCamToggle[aria-pressed=true]{background:#b6ef3c;color:#0a0f05}
html body #freeCamToggle[aria-pressed=true] i{background:#000}
html body #freeCamToggle[aria-pressed=true] small{color:#0a0f05}
@media(max-width:999px),(max-height:639px){html body #freeCamToggle{height:42px;font-size:10px;top:56%}html body #freeCamToggle small{display:none}}
html body.stadium-arena #freeCamToggle{top:auto;bottom:112px;right:24px}
html body.stadium-arena.playing #freeCamToggle{display:none!important}
html body #freeCamHud{position:fixed;inset:0;z-index:1453;pointer-events:none;display:none}
html body.free-cam #freeCamHud{display:block}
html body.free-cam:not(#f9a):not(#f9b):not(#f9c):not(#f9d) :is(#f9Hot,#final02Lane,#mainMenu,#f11Ring,#f11Sticks,#f11Hints,.rotor-view-pip,#f11Venue,.rotor-view-toggle){visibility:hidden!important}
html body #freeCamHud .fc-top{position:absolute;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;font:800 10px Inter,system-ui,sans-serif;letter-spacing:.3em;color:#fff;background:#000000d9;border:1px solid #ffffff2a;border-radius:999px;padding:10px 18px}
html body #freeCamHud .fc-top i{width:8px;height:8px;border-radius:50%;background:#b6ef3c;box-shadow:0 0 10px #b6ef3c}
html body #freeCamHud .fc-reticle{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px;border:1px solid #b6ef3c99;border-radius:50%}
html body #freeCamHud .fc-speed{position:absolute;right:26px;top:18px;font:800 10px Inter,system-ui,sans-serif;letter-spacing:.2em;color:#b6ef3c;background:#000000d9;border:1px solid #ffffff2a;border-radius:999px;padding:10px 14px}
html body #freeCamHud .fc-keys{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:92vw}
html body #freeCamHud .fc-keys span{font:700 9px Inter,system-ui,sans-serif;letter-spacing:.14em;color:#e8eef2;background:#000000d9;border:1px solid #ffffff22;border-radius:999px;padding:8px 10px}
html body #freeCamHud .fc-keys b{color:#b6ef3c;margin-right:6px}
/* 6 · smooth leave: the court eases out before the next page loads (320 ms) */
html body.f9-leaving canvas{transition:filter 320ms cubic-bezier(.22,.61,.36,1),opacity 320ms;filter:brightness(.35) blur(6px);opacity:.6}
html body.f9-leaving :is(#f9Hot,#final02Lane,#mainMenu,#f11Ring,#f11Sticks,#f11Hints,.rotor-view-pip,#f11Venue,#freeCamToggle,.rotor-access-dock,nav.cm-view-rail){transition:opacity 260ms;opacity:0!important}
/* 7 · portrait phones (v33 audit at 375×812): the lane kept its translateX(-50%) under §51's left/right 12px, so PLAY DUEL sat off-screen
   and the WATCH TOUR twin was hidden; the controller chip sat on the music chip. */
@media(max-width:760px) and (orientation:portrait){
  html body.f8-home:not(#f9a):not(#f9b):not(#f9c):not(#f9d) #final02Lane{transform:none!important;translate:none!important;left:12px!important;right:12px!important;width:auto!important}
  html body.f8-home:not(#f9a):not(#f9b):not(#f9c):not(#f9d) #final02Lane #f11HomeBig{display:inline-flex!important}
  html body.f8-home:not(#f9a):not(#f9b):not(#f9c):not(#f9d) #final02Lane #rotorSceneTraining{min-width:0;width:auto}
  html body #f11PadChip{top:auto!important;bottom:calc(100% - 96px)!important;left:12px!important;right:12px!important;transform:none!important;max-width:none!important}
  html body #f9Hot .f9-pill[data-k=green]{bottom:auto}
}
/* the rail is gone on the rotor screen, so the WATCH TOUR twin shows in the lane at every size */
html body.f8-home:not(#f9a):not(#f9b):not(#f9c):not(#f9d) #final02Lane #f11HomeBig{display:inline-flex!important}
/* 8 · each place has its own glyph (Joey: "make them look different, unique, not all the same") */
html body #f9Hot .f9-pill i{position:relative}
html body #f9Hot .f9-pill[data-shape="1"] i{border-radius:3px;transform:rotate(45deg) scale(.86)}
html body #f9Hot .f9-pill[data-shape="2"] i{background:none;border:2px solid #b6ef3c;box-shadow:0 0 0 4px #000,0 0 0 5px #b6ef3c,0 0 14px #b6ef3caa}
html body #f9Hot .f9-pill[data-shape="3"] i{background:none;border:2px solid #b6ef3c;border-right-color:transparent;animation:f9orbit 2.4s linear infinite}
html body #f9Hot .f9-pill[data-shape="3"] i::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:#b6ef3c}
html body #f9Hot .f9-pill[data-shape="4"] i{background:none;border:2px solid #b6ef3c}
html body #f9Hot .f9-pill[data-shape="4"] i::before,html body #f9Hot .f9-pill[data-shape="4"] i::after{content:"";position:absolute;background:#b6ef3c;left:50%;top:-4px;width:2px;height:18px;margin-left:-1px}
html body #f9Hot .f9-pill[data-shape="4"] i::after{transform:rotate(90deg)}
html body #f9Hot .f9-pill[data-shape="5"] i{border-radius:2px;background:repeating-linear-gradient(180deg,#b6ef3c 0 3px,transparent 3px 5.5px);box-shadow:none}
html body #f9Hot .f9-pill[data-shape="6"] i{background:none;border:3px dotted #b6ef3c;animation:f9orbit 6s linear infinite}
@keyframes f9orbit{to{transform:rotate(360deg)}}
html body #f9Hot .f9-pill[data-shape="2"] i,html body #f9Hot .f9-pill[data-shape="3"] i,html body #f9Hot .f9-pill[data-shape="4"] i,html body #f9Hot .f9-pill[data-shape="5"] i,html body #f9Hot .f9-pill[data-shape="6"] i{animation-name:f9orbit}
html body #f9Hot .f9-pill[data-shape="2"] i,html body #f9Hot .f9-pill[data-shape="4"] i,html body #f9Hot .f9-pill[data-shape="5"] i{}
/* 9 · v34 · Spline-authored glass icons in the pills (same PNG as the 3D marker); the CSS glyph stays as the fallback */
html body #f9Hot .f9-pill.has-icon i{width:30px;height:30px;margin:-8px -6px -8px -6px;border:0!important;border-radius:50%;background:none!important;box-shadow:0 0 14px #b6ef3c66;transform:none!important;overflow:hidden}
html body #f9Hot .f9-pill.has-icon i canvas{display:block;width:30px;height:30px}
html body #f9Hot .f9-pill.has-icon i::before,html body #f9Hot .f9-pill.has-icon i::after{display:none}
html body #f9Hot .f9-pill.has-icon:is(:active,.fire) i{filter:brightness(1.5)}
/* v34 · arena: FREE CAM only in the lobby, never over the VS draw or the match */
html body.stadium-arena:is(.searching,.playing,.rotor-draw-open) #freeCamToggle,html body.stadium-arena:has(#searchOverlay:not([hidden])) #freeCamToggle,html body.stadium-arena:has(.f02-pull:not([hidden])) #freeCamToggle{display:none!important}
/* v34 · the cursor bead shows the live Spline CURSOR glass (Joey: "same for improved cursor", "no fallbacks, fully 3D Spline") */
html body #rotorCursor.spline{width:28px!important;height:28px!important;background:none!important;box-shadow:none!important;overflow:visible}
html body #rotorCursor.spline::after{display:none}
html body #rotorCursor.spline canvas{display:block;width:28px;height:28px;border-radius:50%;filter:drop-shadow(0 0 6px #b6ef3c88)}
html body #rotorCursor.spline.hover{width:38px!important;height:38px!important}
html body #rotorCursor.spline.hover canvas{width:38px;height:38px}

/* v52 (Joey 02:08 "improve all buttons responsiveness"): every pill answers at once — 70 ms hover, pressed scale, no tap delay */
html body :is(#f9Hot .f9-pill,#freeCamToggle,.rotor-access-dock button,.final02-pill,nav.cm-view-rail button,#f11Ring .f10-cap){transition-duration:70ms!important;touch-action:manipulation;will-change:transform}
html body :is(#f9Hot .f9-pill,#freeCamToggle,.rotor-access-dock button,.final02-pill):active{transform:translate(-50%,-50%) scale(.95)!important;transition-duration:40ms!important}
html body :is(.rotor-access-dock button,.final02-pill):active{transform:scale(.95)!important}

/* v63 (Joey 03:49 "hotspot black and green items → much simpler bright green ring LED hotspots and silver writing"): no black pill body,
   no per-place glyph. Each hotspot is one bright lime LED ring with a silver label beside it; hover = ring brighter + wider bloom, label white. */
html body #f9Hot .f9-pill{background:none;border-color:transparent;box-shadow:none;color:#e9eef2;text-shadow:0 1px 2px #000e,0 0 10px #000a;padding:0 10px}
html body #f9Hot .f9-pill b{color:#e9eef2}
html body #f9Hot .f9-pill small{color:#e9eef2;opacity:.75}
html body #f9Hot .f9-pill i,html body #f9Hot .f9-pill[data-shape] i{width:18px;height:18px;border-radius:50%;background:none;border:2.5px solid #c7fc68;box-shadow:0 0 0 2px #c7fc6826,0 0 14px #c7fc68cc,inset 0 0 5px #c7fc6880;transform:none}
html body #f9Hot .f9-pill[data-shape] i::before,html body #f9Hot .f9-pill[data-shape] i::after{display:none}
html body #f9Hot .f9-pill:is(:hover,:focus-visible){border-color:transparent;box-shadow:none;color:#fff;transform:scale(1.04)}
html body #f9Hot .f9-pill:is(:hover,:focus-visible) b{color:#fff}
html body #f9Hot .f9-pill:is(:hover,:focus-visible) i{border-color:#e4ffb0;box-shadow:0 0 0 3px #c7fc6833,0 0 22px #c7fc68,inset 0 0 7px #c7fc68cc}
html body #f9Hot .f9-pill:is(:active,.fire){border-color:transparent}
html body #f9Hot .f9-pill:is(:active,.fire) i{background:#c7fc68;border-color:#fff;transform:scale(1.15)}
html body #f9Hot .f9-pill[aria-expanded=true]{border-color:transparent;background:none}
html body #f9Hot .f9-pill:focus-visible{box-shadow:0 0 0 3px #000,0 0 0 5px #fff}
html body #f9Hot .f9-pill.has-icon i{width:18px;height:18px;margin:0;border:2.5px solid #c7fc68!important;box-shadow:0 0 0 2px #c7fc6826,0 0 14px #c7fc68cc,inset 0 0 5px #c7fc6880;overflow:visible}
html body #f9Hot .f9-pill.has-icon i canvas{display:none}
/* v63 (Joey 03:55 "move … the green room button below the court"): the OLED row already carries a GREEN ROOM cell, so the flank pill is a duplicate while the row is up */
html body.f10-oled #f9Hot .f9-pill[data-k=green]{display:none}
/* v63 (Joey 03:59 "remove anything blocking the court"; 03:46 crop of the RISE / TURN THE FACE callouts over the far display): the §42 control
   ring and its five callouts leave the rotor screen while the OLED row is up — the controls now play as captions in the LEARN THE GAME clip
   cell. The ring still shows in keyboard-help mode (.f8-kbd) and in the arena. */
html body.f10-oled:not(.f8-kbd) #f11Ring{display:none!important}
/* v63 (Joey 04:02 crop: the DOM "VOLT · ROOKIE · 1000 · YOUR CLUB PASS" line sat across the bottom of the PLAYER STUDIO card; DESIGN-RULE
   "one element per job"): while the OLED row is up the ident lives on the PLAYER STUDIO card and the PLAYERS slab, so the DOM twin steps
   aside. The headline block under it (NIGHT COURT · ROTOR IN HAND / THIS IS YOUR RETURN) stays. */
html body.f10-oled #mainMenu#mainMenu .rotor25-player-line{display:none!important}
/* v63 (measured at 1440×900: FREE CAM at 46 % sat on top of the ONLINE hotspot pill and the ONLINE board's title band): the two tool
   hotspots pair up — VIEW SETTINGS left at 24 %, FREE CAM right at 24 % — above the flank boards, below the top slabs. Same v63 look as
   the place pills: one lime LED ring, silver word, no black body. */
html body.f10-oled #freeCamToggle{top:24%;background:none;border-color:transparent;box-shadow:none;color:#e9eef2;text-shadow:0 1px 2px #000e,0 0 10px #000a;padding:0 10px}
html body.f10-oled #freeCamToggle i{width:18px;height:18px;background:none;border:2.5px solid #c7fc68;box-shadow:0 0 0 2px #c7fc6826,0 0 14px #c7fc68cc,inset 0 0 5px #c7fc6880}
html body.f10-oled #freeCamToggle:is(:hover,:focus-visible){border-color:transparent;color:#fff}
html body.f10-oled #freeCamToggle:is(:hover,:focus-visible) i{border-color:#e4ffb0;box-shadow:0 0 0 3px #c7fc6833,0 0 22px #c7fc68,inset 0 0 7px #c7fc68cc}
html body.f10-oled #freeCamToggle[aria-pressed=true]{background:none;color:#c7fc68}
html body.f10-oled #freeCamToggle[aria-pressed=true] i{background:#c7fc68;border-color:#fff}
/* The bottom OLED rail is the route system. Remove the scattered duplicate
   hotspots and the overlapping poster copy once that 3D replacement is live. */
html body.f10-oled.f10-oled.f10-oled #f9Hot,
html body.f10-oled #mainMenu :is(.cm-primary,.cm-learning,.cm-angles-toggle,.rotor25-player-line){display:none!important}
/* Keep the proven GTA-style chapter hit from the earlier main screen, but
   make it one aligned read-only block in the empty left margin. */
html body.f10-oled #mainMenu#mainMenu#mainMenu#mainMenu#mainMenu{
  display:block!important;position:fixed!important;left:clamp(18px,2.2vw,42px)!important;top:31%!important;
  width:clamp(220px,18vw,300px)!important;margin:0!important;padding:0!important;background:none!important;border:0!important;
  pointer-events:none!important;transform:none!important;z-index:36!important;text-align:left!important
}
html body.f10-oled #mainMenu .cm-kicker{margin:0 0 10px!important;color:#e9eef2!important;font:700 9px/1 Inter,sans-serif!important;letter-spacing:.18em!important}
html body.f10-oled #mainMenu h1{margin:0!important;color:#e9eef2!important;font:900 clamp(36px,3.6vw,58px)/.84 "Barlow Condensed",Inter,sans-serif!important;letter-spacing:-.025em!important;text-shadow:0 5px 22px #000!important}
html body.f10-oled #mainMenu h1 em{color:#ffcf00!important;font-style:normal!important}
html body.f10-oled #mainMenu .cm-intro{max-width:250px!important;margin:13px 0 0!important;color:#e9eef2!important;font:600 10px/1.45 Inter,sans-serif!important;letter-spacing:.025em!important;text-shadow:0 2px 10px #000!important}
/* Compact black/lime controls stay around the held rotor; the route labels do
   not. This is instruction, not navigation, so lime is semantically correct. */
html body.f10-oled.f10-oled.f10-oled #f11Ring{display:block!important;opacity:.88!important}
html body.f10-oled #f11Ring .r-arc{border-color:#c7fc6855;border-top-color:#c7fc68;border-bottom-color:#c7fc68;box-shadow:0 0 18px #c7fc6833}
html body.f10-oled #f11Ring .r-tag{padding:4px 7px 4px 4px;border:1px solid #c7fc6866;background:#000;color:#e9eef2;box-shadow:0 0 12px #000,inset 0 0 8px #c7fc6814;font-size:8px;letter-spacing:.1em}
html body.f10-oled #f11Ring .r-tag b{min-width:21px;height:21px;padding:0 4px;border-radius:50%;background:#c7fc68;color:#000;box-shadow:0 0 10px #c7fc68}
html body.f10-oled #f11Ring .r-tag small{display:none}
/* Persistent corner signature: the blue 3D coin sits at x=left edge; this
   black OLED wordmark follows it with white ROTR and the yellow rotor O. */
html body:not(.playing):not(.in-power-court):not(.three-hero-opening) .cm-header.cm-header.cm-header.cm-header{
  display:flex!important;visibility:visible!important;position:fixed!important;left:82px!important;top:14px!important;
  width:auto!important;padding:8px 12px!important;border:1px solid #e9eef24d!important;border-radius:10px!important;
  background:#000e!important;box-shadow:inset 0 1px #fff4,0 10px 28px #000b!important;z-index:80!important
}
html body:not(.playing):not(.in-power-court):not(.three-hero-opening) .cm-header nav{display:none!important}
html body .cm-header .cm-brand{display:block!important;color:#e9eef2!important;font:800 27px/1 "Barlow Condensed",Inter,sans-serif!important;letter-spacing:.035em!important;text-decoration:none!important}
html body .cm-header .cm-brand>span{color:#ffcf00!important}
html body .cm-header .cm-brand small{display:block!important;margin-top:4px;color:#e9eef2!important;font:600 8px/1 Inter,sans-serif!important;letter-spacing:.22em!important}
@media(max-width:760px){
  html body.f10-oled #mainMenu#mainMenu#mainMenu#mainMenu#mainMenu{top:17%!important;width:170px!important}
  html body.f10-oled #mainMenu h1{font-size:31px!important}
  html body.f10-oled #mainMenu .cm-intro{display:none!important}
  html body:not(.playing):not(.in-power-court):not(.three-hero-opening) .cm-header.cm-header.cm-header.cm-header{left:66px!important;top:10px!important;padding:6px 9px!important}
  html body .cm-header .cm-brand{font-size:21px!important}
  html body .cm-header .cm-brand small{display:none!important}
  html body.f10-oled #f11Ring{display:block!important;transform:scale(.68);transform-origin:center}
  html body.f10-oled #f11Ring .r-tag{font-size:0;padding:3px;border-radius:50%}
  html body.f10-oled #f11Ring .r-tag b{font-size:8px}
  html body.f10-oled #f11Ring .r-turn{display:none}
}
/* The 3D glass UI owns the home view; the legacy DOM menu layer stays off while the stadium loads and on home. */
/* playrotor-angle-01 (Joey: 'missing the best UI bottom and left · TAKE THE ROTOR should be a permanent thing like in other versions'):
   the bottom lane (#final02Lane) and the view rail (nav.cm-view-rail with #cmRacketControl = TAKE THE ROTOR / WATCH TOUR) show on the
   home screen again; only the legacy #mainMenu, #cmTravel and the f3 home court stay off while the stadium loads and on home. */
html body:is(:not(.scene-ready),.f8-home):not(.playing):not(.in-power-court) :is(#mainMenu#mainMenu#mainMenu#mainMenu#mainMenu,#cmTravel#cmTravel,.f3-home-court.f3-home-court.f3-home-court){display:none!important}
html body:not(.scene-ready):not(.playing):not(.in-power-court) :is(#final02Lane#final02Lane#final02Lane,nav.cm-view-rail.cm-view-rail.cm-view-rail){display:none!important}

/* ---- circuit-05 (Jarak): BLINKING NEON-GREEN BULBS. Each hotspot dot is a glass-dome neon bulb: hot filament core,
   ball-green #9aff00 gas, silver rim, 1.9 s blink with mains flicker ticks. Hover = lock-on flare (UI lime, interaction
   only), :active = white-hot flash. Motion curve cubic-bezier(.22,.61,.36,1); off under prefers-reduced-motion. */
html body #f9Hot .f9-pill i,html body #f9Hot .f9-pill[data-shape] i,
html body #freeCamToggle i,html body #f11Hot .h-spot i:nth-child(1){
  background:
    radial-gradient(circle at 34% 28%,rgba(255,255,255,.95) 0 9%,rgba(255,255,255,0) 28%),
    radial-gradient(circle at 50% 54%,#eaffd0 0 16%,#9aff00 44%,#2f6100 74%,#0c1a06 100%)!important;
  border:2px solid rgba(233,238,242,.55)!important;
  box-shadow:0 0 6px #9aff00,0 0 16px #9aff00cc,0 0 32px #9aff0066,inset 0 -2px 4px rgba(0,0,0,.5)!important;
  animation:f9neon 1.9s cubic-bezier(.22,.61,.36,1) infinite!important;
}
@keyframes f9neon{
  0%,100%{filter:brightness(1)}
  30%{filter:brightness(1.22)}
  48%{filter:brightness(.5)}
  52%{filter:brightness(1.3)}
  58%{filter:brightness(.68)}
  62%{filter:brightness(1.34)}
  82%{filter:brightness(1.04)}
}
html body #f9Hot .f9-pill:is(:hover,:focus-visible) i,html body #freeCamToggle:is(:hover,:focus-visible) i{
  animation-duration:.9s!important;border-color:#fff!important;
  box-shadow:0 0 8px #c7fc68,0 0 26px #c7fc68,0 0 52px #9aff0088,inset 0 -2px 4px rgba(0,0,0,.5)!important;
}
html body #f9Hot .f9-pill:is(:active,.fire) i,html body #freeCamToggle:active i{
  background:radial-gradient(circle at 50% 50%,#fff 0 38%,#c7fc68 68%,#9aff00 100%)!important;
  box-shadow:0 0 12px #fff,0 0 30px #c7fc68,0 0 60px #9aff00!important;
  animation:none!important;
}
@media(prefers-reduced-motion:reduce){
  html body #f9Hot .f9-pill i,html body #f9Hot .f9-pill[data-shape] i,html body #freeCamToggle i,html body #f11Hot .h-spot i:nth-child(1){animation:none!important}
}
