/* Original FPS / RPG / MOBA / racing visual worlds, shared by every Music surface.
   Loaded after each surface's base styles. No gameplay or playback behavior. */
:root[data-theme="fps"] {
  --bg:#080e0c; --bg2:#141c19; --fg:#f3f6eb; --muted:#bac4b8;
  --a1:#ffc168; --a2:#9de9cf; --a3:#9cae85; --line:rgba(179,209,175,.23);
  --panel:rgba(159,183,142,.065); --display:"Orbitron"; --glow:.55;
  --world-menu-glow:#9de9cf;
  --chrome-radius:6px; --hub-radius:6px; --world-display:"Orbitron",sans-serif;
  --game-scene:radial-gradient(ellipse at 86% 8%,#4f452639,transparent 58%),linear-gradient(155deg,#080e0c,#18261e 58%,#101712);
  --game-grid:linear-gradient(#b5d8ab13 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,#b5d8ab13 1px,transparent 1px) 0 0/48px 48px;
  --world-grain:repeating-linear-gradient(0deg,#d6ffca05 0 1px,transparent 1px 5px);
  --game-world:url('edgeventure-fps-world-v1.webp'); --game-figure:url('edgeventure-fps-figure-v1.webp');
}
:root[data-theme="rpg"] {
  --bg:#081510; --bg2:#142920; --fg:#faf1dd; --muted:#c6c8ae;
  --a1:#ebc682; --a2:#9dd6ac; --a3:#e58c66; --line:rgba(224,202,145,.25);
  --panel:rgba(226,205,151,.06); --display:Georgia,serif; --glow:.48;
  --world-menu-glow:#9dd6ac;
  --chrome-radius:20px; --hub-radius:20px; --world-display:Georgia,serif;
  --game-scene:radial-gradient(ellipse at 72% 0%,#bd814225,transparent 60%),radial-gradient(ellipse at 0% 70%,#63a87120,transparent 65%),linear-gradient(152deg,#081510,#193126 55%,#19221b);
  --game-grid:radial-gradient(circle,#efcb7940 0 1px,transparent 2px) 0 0/103px 117px,radial-gradient(circle,#85caa629 0 1px,transparent 2px) 0 0/163px 173px;
  --world-grain:repeating-linear-gradient(35deg,#e9d8b206 0 1px,transparent 1px 6px);
  --game-world:url('edgeventure-rpg-world-v1.webp'); --game-figure:url('edgeventure-rpg-figure-v1.webp');
}
:root[data-theme="moba"] {
  --bg:#090e21; --bg2:#171e3b; --fg:#f2f4ff; --muted:#b6bfdf;
  --a1:#82c5ff; --a2:#ff9eac; --a3:#ebce8b; --line:rgba(151,185,241,.23);
  --panel:rgba(144,171,240,.06); --display:"Space Grotesk"; --glow:.65;
  --world-menu-glow:#ff9eac;
  --chrome-radius:12px; --hub-radius:12px; --world-display:"Space Grotesk",sans-serif;
  --game-scene:radial-gradient(ellipse at 0% 30%,#3e82f02e,transparent 60%),radial-gradient(ellipse at 100% 40%,#fc728226,transparent 60%),linear-gradient(150deg,#090e21,#1c2445 60%,#201932);
  --game-grid:linear-gradient(135deg,transparent 48%,#82c5ff16 49% 50%,transparent 51%) 0 0/126px 126px,linear-gradient(45deg,transparent 48%,#ff9eac13 49% 50%,transparent 51%) 0 0/126px 126px;
  --world-grain:linear-gradient(90deg,#82c5ff09,transparent 45%,#ff9eac09);
  --game-world:url('edgeventure-moba-world-v1.webp'); --game-figure:url('edgeventure-moba-figure-v1.webp');
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) {
  --scene:var(--game-scene); --ev-scene:var(--game-scene); --hub-scene:var(--game-scene);
  --world-grid:var(--game-grid); --hub-grid:var(--game-grid); --hub-ink:var(--fg);
  --hub-glow:color-mix(in srgb,var(--a1) 38%,transparent);
}
/* Shapes, type and materials go beyond a color swap. */
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) body {background:var(--game-scene),var(--bg);color:var(--fg)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) body::before {background:var(--game-grid)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .site-header {background:color-mix(in srgb,var(--bg) 88%,transparent)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.spotlight,.world-card,.profile-hero,.card,.panel,.artist-hero,.artist-main,.artist-tile,.side-card,.metric,.playlist-card,.xp-card,.mood-card,.studio-art,.submission,.game-stage,.system-card,.platform-card) {
  border-radius:var(--chrome-radius);
  border-color:color-mix(in srgb,var(--a1) 28%,var(--line));
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.spotlight,.profile-hero,.hub-worldbar) {
  background:linear-gradient(125deg,color-mix(in srgb,var(--a1) 13%,var(--bg2)),var(--bg2) 55%,color-mix(in srgb,var(--a2) 10%,var(--bg2)));
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.world-card h2,.worldbar-copy h2,.stage-world-copy h2,.profile-identity h1) {font-family:var(--world-display);line-height:1.14;letter-spacing:-.035em}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.artist-hero h1,.directory-head h1) {font-family:var(--world-display);letter-spacing:-.045em}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .artist-shell {position:relative;z-index:1}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.spotlight-play,.primary,.primary-cta,.pp,.world-card-action) {color:#101a18;background:linear-gradient(120deg,var(--a1),var(--a2));text-shadow:none}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .pp svg {fill:currentColor}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .stage {background:var(--game-scene),var(--bg)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .stage::before {inset:0;background:var(--game-world) center/cover no-repeat;opacity:.13;animation:none;transform:none}
:root[data-theme="fps"] :is(.eyebrow,.world-card-kicker,.stage-world-copy small,.worldbar-copy .eyebrow) {font-family:ui-monospace,monospace;letter-spacing:.16em}
:root[data-theme="fps"] :is(.spotlight-media,.world-card-media,.profile-avatar) {
  background:linear-gradient(var(--a1),var(--a1)) left top/20px 2px no-repeat,linear-gradient(var(--a1),var(--a1)) left top/2px 20px no-repeat,linear-gradient(var(--a2),var(--a2)) right bottom/20px 2px no-repeat,linear-gradient(var(--a2),var(--a2)) right bottom/2px 20px no-repeat,radial-gradient(ellipse,#9de9cf11,transparent 70%);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card{
  position:relative;
  isolation:isolate;
  transition:transform .2s cubic-bezier(.2,.85,.2,1),box-shadow .2s ease,border-color .2s ease;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card:hover,
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card:focus-within{
  transform:translateY(-2px);
  box-shadow:0 26px 70px -38px color-mix(in srgb,var(--a2) 72%,transparent),inset 0 1px rgba(255,255,255,.16);
  border-color:color-mix(in srgb,var(--a2) 45%,var(--line));
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card-media{
  position:relative;
  border-radius:calc(var(--chrome-radius) + 2px);
  border:1px solid color-mix(in srgb,var(--a2) 26%,transparent);
  background:color-mix(in srgb,var(--bg2) 84%,transparent);
  padding:10px;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card-media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:calc(var(--chrome-radius) + 2px);
  border:1px solid color-mix(in srgb,var(--a1) 22%,transparent);
  opacity:.58;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card-copy{
  text-wrap:balance;
  color:var(--fg);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card h2{
  text-wrap:balance;
  letter-spacing:-.055em;
  text-shadow:0 2px 18px rgba(0,0,0,.34);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card p{
  color:color-mix(in srgb,var(--fg) 83%,var(--muted) 17%);
  text-shadow:0 1px 10px rgba(0,0,0,.2);
  font-size:clamp(.78rem,2.2vw,.86rem);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card-tags span{
  background:color-mix(in srgb,var(--bg2) 86%,transparent);
  border-color:color-mix(in srgb,var(--a2) 34%,transparent);
  box-shadow:inset 0 1px rgba(255,255,255,.08);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card-action:focus-visible{
  outline:0;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--a2) 75%,transparent),0 0 0 4px color-mix(in srgb,var(--bg) 76%,transparent);
}
:root[data-theme="fps"] :is(.profile-avatar,.person-avatar,.worldbar-art) {border-radius:7px;outline:1px solid var(--line);outline-offset:4px}
:root[data-theme="fps"] .world-lines {display:block;opacity:.2;background:repeating-linear-gradient(90deg,transparent 0 119px,var(--a2) 120px,transparent 121px)}
:root[data-theme="fps"] .world-card-hud i {border-radius:0;background:repeating-linear-gradient(90deg,var(--a1) 0 14px,transparent 14px 18px)}
:root[data-theme="rpg"] :is(.world-card,.profile-hero,.hub-worldbar,.game-stage) {box-shadow:inset 0 0 0 4px var(--bg2),inset 0 0 0 5px #ebc68236,0 22px 50px -35px #000}
:root[data-theme="rpg"] :is(.profile-avatar,.person-avatar) {border-radius:40% 40% 48% 48%;outline:1px solid #ebc68266;outline-offset:5px}
:root[data-theme="rpg"] :is(.world-moon,.orb-a) {display:block;opacity:.16}
:root[data-theme="rpg"] .world-moon {background:radial-gradient(circle,#ebc68299,transparent 62%);box-shadow:none}
:root[data-theme="rpg"] .world-card-media {padding:7px;border:1px solid #ebc68255;border-radius:50% 50% 10px 10px}
:root[data-theme="moba"] :is(.world-card,.hub-worldbar,.game-stage) {border-top:2px solid var(--a3);box-shadow:inset 6px 0 0 #82c5ff24,inset -6px 0 0 #ff9eac24,0 24px 55px -38px #82c5ff55}
:root[data-theme="moba"] :is(.profile-avatar,.person-avatar) {border:2px solid var(--a3);border-radius:18%;box-shadow:-8px 0 25px -12px var(--a1),8px 0 25px -12px var(--a2)}
:root[data-theme="moba"] .world-lines {display:block;opacity:.2;background:linear-gradient(45deg,transparent 47%,var(--a1) 48%,transparent 49%),linear-gradient(135deg,transparent 47%,var(--a2) 48%,transparent 49%)}
:root[data-theme="moba"] .world-card-hud i {background:linear-gradient(90deg,var(--a1),var(--a3),var(--a2))}
/* Full-height original characters stay in their own layout cell. */
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .theme-crew-art,
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .profile-hero .profile-world-art {
  aspect-ratio:4/5;object-fit:contain;object-position:center;max-height:340px;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .world-card .world-card-art {aspect-ratio:3/2;max-width:100%;object-fit:cover;object-position:center;border-radius:var(--chrome-radius)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .hub-scene .scene-world {right:0;bottom:0;width:min(90vw,1200px);height:80vh;background-size:cover;opacity:.09;animation:none;mask-image:linear-gradient(120deg,transparent,#000)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .hub-scene .scene-figure {display:none}
/* Hub world banner: scenery and character are bounded, separate from its text. */
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .hub-worldbar{
  grid-template-columns:124px minmax(0,1fr) auto;min-height:148px;
  position:relative;
  isolation:isolate;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .hub-worldbar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border:1px solid color-mix(in srgb,var(--a2) 24%,transparent);
  border-radius:inherit;
  opacity:.45;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .worldbar-art {width:124px;height:112px;background:var(--game-figure) center/contain no-repeat,radial-gradient(ellipse,color-mix(in srgb,var(--a1) 18%,var(--bg2)),var(--bg2));border-radius:var(--chrome-radius);box-shadow:none}
/* Landing preview uses the environment and a separate uncut champion. */
.landing-game-figure {display:none;pointer-events:none}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .landing-game-figure {display:block;position:absolute;z-index:2;inset:14% 3% 19% auto;width:43%;background:var(--game-figure) center/contain no-repeat;filter:drop-shadow(0 15px 20px #0009)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .stage-world-art {inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.65;mask-image:linear-gradient(180deg,#000 40%,transparent 100%)}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .stage-world-copy {z-index:3;max-width:58%;text-shadow:0 2px 12px #000}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .stage-run-card {left:14px;right:auto;top:64px;width:min(132px,39%)}
/* Reach every world, including on short phones and keyboard-only navigation. */
.theme-menu[hidden],.hub-theme-menu[hidden] {display:none}
.theme-menu,.hub-theme-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:auto;
  right:0;
  width:max-content;
  max-width:min(300px,86vw);
  max-height:min(650px,calc(100dvh - 140px));
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--a2) 30%,transparent) transparent;
  border:1px solid color-mix(in srgb,var(--a2) 35%,var(--line));
  border-radius:16px;
  padding:8px;
  background:color-mix(in srgb,var(--bg2) 94%,transparent);
  box-shadow:0 25px 65px -24px rgba(0,0,0,.75),inset 0 1px rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform .2s cubic-bezier(.2,.8,.2,1),opacity .2s ease;
  transform-origin:top right;
}
.theme-menu button,.hub-theme-menu button{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
  text-align:left;
  background:none;
  border:1px solid transparent;
  border-radius:11px;
  color:var(--fg);
  cursor:pointer;
  padding:10px 11px;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
.theme-menu button:hover,.theme-menu button:focus-visible,.hub-theme-menu button:hover,.hub-theme-menu button:focus-visible{
  background:linear-gradient(135deg,color-mix(in srgb,var(--a2) 14%,transparent),color-mix(in srgb,var(--a1) 10%,transparent));
  border-color:color-mix(in srgb,var(--a2) 45%,transparent);
  box-shadow:inset 0 1px rgba(255,255,255,.1),0 12px 28px -20px var(--world-menu-glow);
  transform:translateX(-2px);
}
.theme-menu button:focus-visible,.hub-theme-menu button:focus-visible{outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--a2) 72%,transparent),inset 0 1px rgba(255,255,255,.14)}
.theme-menu button:active,.hub-theme-menu button:active{transform:translateX(-1px) scale(.995)}
.theme-menu button.on,.hub-theme-menu button.on{background:linear-gradient(135deg,color-mix(in srgb,var(--a1) 20%,var(--a2)),color-mix(in srgb,var(--a2) 12%,transparent));border-color:color-mix(in srgb,var(--a1) 52%,transparent)}
.theme-menu button+button,.hub-theme-menu button+button{margin-top:4px}
.theme-menu.open,
.hub-theme-menu.open{
  animation:world-menu-pop .2s cubic-bezier(.2,.8,.2,1) both;
}
.theme-menu-heading {display:block;padding:12px 9px 8px;margin-bottom:2px;color:var(--muted);font:800 .59rem/1.3 "Inter",sans-serif;letter-spacing:.13em;text-transform:uppercase}
.sw-fps {background:linear-gradient(135deg,#ffc168,#9de9cf)}
.sw-rpg {background:linear-gradient(135deg,#ebc682,#367855)}
.sw-moba {background:linear-gradient(135deg,#82c5ff,#ff9eac)}
.theme-menu.open::before,.hub-theme-menu.open::before{background:linear-gradient(115deg,transparent 18%,rgba(255,255,255,.12) 48%,transparent 78%);content:"";position:absolute;inset:0;pointer-events:none;border-radius:calc(16px - 1px);mask:linear-gradient(90deg,transparent 0 28%,#000 55%,transparent 100%);transform:translateX(-130%);animation:world-menu-shine 1.8s linear infinite;opacity:.4}
.theme-menu .sw{
  width:20px;height:20px;
  border-radius:7px;
  flex:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
  background-size:140% 140%;
  transition:transform .16s ease,filter .16s ease;
}
.theme-menu button:hover .sw,.theme-menu button:focus-visible .sw,
.hub-theme-menu button:hover .sw,.hub-theme-menu button:focus-visible .sw{filter:brightness(1.1);transform:scale(1.07)}
.theme-menu button i,.hub-theme-menu button i{margin-left:auto;font-style:normal;font-size:.7rem;font-weight:500;color:var(--muted);transition:color .16s ease,transform .16s ease}
.theme-menu button.on i,.hub-theme-menu button.on i{color:var(--bg);transform:translateX(2px) scale(1.08)}
.top:has(.hub-theme-menu:not([hidden])) {z-index:80}
.world-select {grid-template-columns:repeat(auto-fit,minmax(140px,1fr));overflow:visible}
.top{position:relative}
/* Native CSS companions: mechanical drone, tiny drake, faceted sentinel. */
.stage-pet[data-pet="fps"] {--pet-a:#ffc168;--pet-b:#647c67;--pet-c:#9de9cf}
.stage-pet[data-pet="fps"] .stage-pet-body {border-radius:8px;height:34%;top:38%;background:linear-gradient(145deg,#5b6e5e,#1a2820);border:2px solid var(--pet-a)}
.stage-pet[data-pet="fps"] :is(.stage-pet-ear,.stage-pet-tail,.stage-pet-feet) {display:none}
.stage-pet[data-pet="fps"] .stage-pet-wing {top:25%;width:30%;height:12%;border-radius:50%;background:var(--pet-b);border:2px solid var(--pet-c)}
.stage-pet[data-pet="fps"] .wing-left {left:4%;transform:none}
.stage-pet[data-pet="fps"] .wing-right {right:4%;transform:none}
.stage-pet[data-pet="fps"] .stage-pet-aura {border-style:dashed;animation:game-radar 18s linear infinite}
.stage-pet[data-pet="rpg"] {--pet-a:#eab566;--pet-b:#48926b;--pet-c:#f4dfa3}
.stage-pet[data-pet="rpg"] .stage-pet-body {border-radius:35% 65% 40% 60%;background:linear-gradient(135deg,#eab566,#48926b)}
.stage-pet[data-pet="rpg"] .stage-pet-wing {height:38%;top:29%;clip-path:polygon(0 0,100% 40%,70% 100%,35% 74%,0 89%);border-radius:0}
.stage-pet[data-pet="rpg"] .stage-pet-tail {border-color:var(--pet-b);height:40%;right:3%;bottom:12%;transform:rotate(65deg)}
.stage-pet[data-pet="rpg"] .stage-pet-aura {border-color:#ebc68266;background:radial-gradient(circle,#e58c6630,transparent 65%)}
.stage-pet[data-pet="moba"] {--pet-a:#82c5ff;--pet-b:#8b7ce2;--pet-c:#ff9eac}
.stage-pet[data-pet="moba"] .stage-pet-body {top:22%;height:58%;border-radius:0;clip-path:polygon(50% 0,100% 37%,72% 100%,28% 100%,0 37%);background:conic-gradient(from 45deg,#82c5ff,#414d9e,#ff9eac,#82c5ff)}
.stage-pet[data-pet="moba"] :is(.stage-pet-ear,.stage-pet-tail,.stage-pet-feet) {display:none}
.stage-pet[data-pet="moba"] .stage-pet-wing {width:12%;height:22%;top:43%;border-radius:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.stage-pet[data-pet="moba"] .stage-pet-aura {border-radius:22%;transform:rotate(45deg);border-color:#ebce8b99}
@keyframes game-radar {to{transform:rotate(344deg)}}
@media(max-width:740px) {
  .theme-menu,.hub-theme-menu{
    left:12px;
    right:12px;
    width:auto;
    max-width:none;
    max-height:calc(100dvh - 118px);
  }
  .hub-theme-menu {left:12px;right:12px}
  .theme-menu {top:calc(var(--player-header-height,100px) + 6px);max-height:calc(100dvh - var(--player-header-height,100px) - 24px)}
  .hub-theme-menu {max-height:calc(100dvh - 96px)}
  .top:has(.hub-theme-menu:not([hidden])) {backdrop-filter:none;-webkit-backdrop-filter:none}
  .world-select {grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .world-button {min-height:76px;padding:12px 8px}
  .world-button b {font-size:.85rem}
  .world-button small {font-size:.55rem}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .theme-crew-art {max-height:245px}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .profile-hero .profile-world-art {max-height:180px}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .hub-worldbar {grid-template-columns:68px minmax(0,1fr);gap:14px;min-height:0}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .worldbar-art {width:68px;height:90px}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .worldbar-copy h2 {font-size:1.15rem}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .hub-scene .scene-world {width:100%;height:60vh;opacity:.06}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .landing-game-figure {inset:15% 5% 34% auto;width:48%}
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .stage-world-copy {max-width:90%}
}
@media(prefers-reduced-motion:reduce) {
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) *,
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) *::before,
  :root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@keyframes world-menu-pop{
  from{opacity:0;transform:scale(.98) translateY(-4px)}
  to{opacity:1;transform:none}
}
@keyframes world-menu-shine{
  to{transform:translateX(130%)}
}

:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.profile-hero,.collection-hero,.profile-card,.account-panel,.session-run,.pathways){
  position:relative;
  isolation:isolate;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.profile-hero,.collection-hero,.profile-card,.session-run,.pathways){
  border-color:color-mix(in srgb,var(--a1) 31%,var(--line));
  background:linear-gradient(130deg,color-mix(in srgb,var(--bg2) 88%,transparent),color-mix(in srgb,var(--a2) 10%,var(--bg2)));
  box-shadow:inset 0 1px rgba(255,255,255,.14),0 24px 58px -40px color-mix(in srgb,var(--a1) 48%,transparent);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .profile-hero::after,
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) .collection-hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border:1px solid color-mix(in srgb,var(--a2) 26%,transparent);
  border-radius:inherit;
  opacity:.4;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.collection-note,.profile-identity h1,.pathways p,.library-stat span){
  color:color-mix(in srgb,var(--fg) 88%,var(--muted) 12%);
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.profile-nav button,.collection-hero-actions button,.profile-actions .primary,.world-select){
  border-color:color-mix(in srgb,var(--a2) 42%,transparent);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.profile-nav button,.collection-hero-actions button,.profile-actions .primary,.world-select){
  border-radius:11px;
}
:root:is([data-theme="fps"],[data-theme="rpg"],[data-theme="moba"],[data-theme="racing"]) :is(.profile-nav button:hover,.collection-hero-actions button:hover,.profile-actions .primary:hover,.world-select button:hover){
  transform:translateY(-1px);
  box-shadow:0 12px 28px -20px color-mix(in srgb,var(--a2) 50%,transparent);
}

/* September refinement: distinct materials, with a shared readable control system. */
:root[data-theme="eclipse"]{--world-radius:22px;--world-angle:145deg;--world-tint:8%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.045em}
:root[data-theme="cyber"]{--world-radius:8px;--world-angle:110deg;--world-tint:10%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.035em;--muted:#b2bfda}
:root[data-theme="anime"]{--world-radius:26px;--world-angle:155deg;--world-tint:9%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.04em}
:root[data-theme="girly"]{--world-radius:28px;--world-angle:135deg;--world-tint:11%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.045em}
:root[data-theme="miami"]{--world-radius:14px;--world-angle:175deg;--world-tint:12%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.035em}
:root[data-theme="cuban"]{--world-radius:12px;--world-angle:125deg;--world-tint:9%;--world-heading:Georgia,serif;--world-tracking:-.025em}
:root[data-theme="aurora"]{--world-radius:24px;--world-angle:165deg;--world-tint:7%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.045em}
:root[data-theme="verdant"]{--world-radius:18px;--world-angle:145deg;--world-tint:8%;--world-heading:Georgia,serif;--world-tracking:-.025em}
:root[data-theme="fps"]{--world-radius:6px;--world-angle:110deg;--world-tint:7%;--world-heading:"Orbitron",sans-serif;--world-tracking:0}
:root[data-theme="rpg"]{--world-radius:20px;--world-angle:135deg;--world-tint:9%;--world-heading:Georgia,serif;--world-tracking:-.025em}
:root[data-theme="moba"]{--world-radius:12px;--world-angle:155deg;--world-tint:11%;--world-heading:"Space Grotesk",sans-serif;--world-tracking:-.035em}
:root[data-theme]{
  --world-material:linear-gradient(var(--world-angle),color-mix(in srgb,var(--a3) var(--world-tint),var(--bg2)),var(--bg2) 64%);
}
/* Explicit surface names avoid changing track artwork or embedded page geometry. */
:root[data-theme] :is(.spotlight,.world-card,.profile-hero,.dashboard-owner,.hub-worldbar){
  border-radius:var(--world-radius);
  background:var(--world-material);
  border-color:color-mix(in srgb,var(--a2) 24%,var(--line));
  box-shadow:inset 0 1px color-mix(in srgb,var(--fg) 12%,transparent),0 20px 48px -36px #000;
}
:root[data-theme] :is(.dashboard-space,.dashboard-recent,.playlist-card,.artist-tile,.side-card){border-radius:var(--world-radius)}
:root[data-theme] :is(.world-card h2,.worldbar-copy h2,.profile-identity h1,.directory-head h1,.dashboard-heading h2){font-family:var(--world-heading);letter-spacing:var(--world-tracking);line-height:1.16;text-wrap:balance}
:root[data-theme] :is(.dashboard-space,.dashboard-personal>a,.dashboard-personal>button,.dashboard-owner-grid a){background-color:var(--bg2)}
:root[data-theme] :is(.dashboard-space,.dashboard-owner-grid a,.world-button){transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
:root[data-theme] :is(.dashboard-space,.dashboard-owner-grid a,.world-button):hover{border-color:var(--a2);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--a2) 22%,transparent)}
/* A crisp focus boundary stays legible on artwork and every accent gradient. */
:root[data-theme] :is(button,a,input,select,textarea,[role="slider"]):focus-visible{outline:2px solid var(--a2);outline-offset:3px}
:root[data-theme] :is(.eyebrow,.world-card-kicker,.profile-kicker){letter-spacing:.13em;line-height:1.5}
:root:is([data-theme="cyber"],[data-theme="fps"]) :is(.world-card-kicker,.profile-kicker){font-family:ui-monospace,monospace}
/* Selected theme uses a quiet tint and a persistent mark, not low-contrast neon text. */
.theme-menu,.hub-theme-menu{background:var(--bg2);border-radius:18px;padding:10px;scroll-padding-block:12px}
.theme-menu button,.hub-theme-menu button{min-height:48px;border-radius:10px;position:relative}
.theme-menu button.on,.hub-theme-menu button.on{background:color-mix(in srgb,var(--a2) 12%,var(--bg2));color:var(--fg);border-color:var(--a2);box-shadow:inset 3px 0 var(--a2)}
.theme-menu button.on i,.hub-theme-menu button.on i{color:var(--fg);transform:none}
.theme-menu button:hover,.theme-menu button:focus-visible,.hub-theme-menu button:hover,.hub-theme-menu button:focus-visible{transform:none}
.theme-menu .sw,.hub-theme-menu .sw{width:28px;height:28px;border-radius:8px}
.theme-menu button.on .sw,.hub-theme-menu button.on .sw{outline:2px solid var(--fg);outline-offset:2px}
.theme-menu.open::before,.hub-theme-menu.open::before{content:none;animation:none}
.theme-menu-heading{padding:14px 10px 8px;font-size:.65rem}
@media(min-width:741px){.theme-menu,.hub-theme-menu{width:300px;max-width:min(300px,86vw)}}
@media(max-width:540px){
  :root[data-theme] :is(.dashboard-heading h2,.worldbar-copy h2){text-wrap:pretty}
  :root[data-theme] body::after{opacity:.045}
  .theme-menu button,.hub-theme-menu button{padding:10px;gap:10px}
}
@media(prefers-reduced-motion:reduce){
  :root[data-theme] :is(.world-card,.profile-hero,.dashboard-space,.dashboard-owner-grid a,.theme-menu,.hub-theme-menu,.theme-menu button,.hub-theme-menu button){animation:none!important;transition:none!important;transform:none!important}
}
@media(forced-colors:active){
  .theme-menu button.on,.hub-theme-menu button.on{border:2px solid Highlight}
  :root[data-theme] :is(button,a,input,select,textarea,[role="slider"]):focus-visible{outline-color:Highlight}
}
/* Mobile menus must use the viewport, not the narrow theme-button wrapper. */
@media(max-width:740px){
  .theme-menu,.hub-theme-menu{position:fixed;left:12px;right:12px;width:auto;max-width:none}
  .hub-theme-menu{top:calc(env(safe-area-inset-top) + 124px);max-height:calc(100dvh - env(safe-area-inset-top) - 144px)}
}

/* Redline / Afterhours Garage: instrument lighting, carbon and pit-lane markings. */
:root[data-theme="racing"]{
  --bg:#080d12;--bg2:#111820;--fg:#f3f4ed;--muted:#bdc8cf;
  --a1:#ffbd69;--a2:#80dcf2;--a3:#ef775f;--line:rgba(162,193,207,.25);
  --panel:rgba(175,207,218,.055);--display:"Space Grotesk";--glow:.4;
  --world-menu-glow:#80dcf2;--chrome-radius:10px;--hub-radius:10px;
  --world-display:"Space Grotesk",sans-serif;--world-heading:"Space Grotesk",sans-serif;
  --world-radius:10px;--world-angle:115deg;--world-tint:7%;--world-tracking:-.035em;
  --game-scene:radial-gradient(ellipse at 90% 0%,#e8953620,transparent 55%),radial-gradient(ellipse at 0% 80%,#37a3c514,transparent 60%),linear-gradient(140deg,#080d12,#17212a 58%,#0d1218);
  --game-grid:repeating-linear-gradient(115deg,transparent 0 84px,#80dcf20a 85px 86px,transparent 87px 168px);
  --world-grain:repeating-linear-gradient(45deg,#ffffff03 0 1px,transparent 1px 5px);
  --game-world:url('edgeventure-racing-world-v1.webp');--game-figure:url('edgeventure-racing-figure-v1.webp');
  --share-grid:var(--game-grid);
}
.sw-racing,.artist-theme-swatch--racing{background:linear-gradient(135deg,#ffbd69 0 46%,#17212a 47% 54%,#80dcf2 55%)}
:root[data-theme="racing"] :is(.world-card,.hub-worldbar,.game-stage,.profile-hero){border-top:2px solid var(--a1);box-shadow:inset 0 1px #ffe3b524,0 24px 55px -38px #000}
:root[data-theme="racing"] :is(.world-card-kicker,.profile-kicker,.eyebrow,.stage-world-copy small){font-family:ui-monospace,monospace;letter-spacing:.13em}
:root[data-theme="racing"] .world-lines{display:block;opacity:.2;background:repeating-linear-gradient(115deg,transparent 0 78px,#ffbd6922 79px 81px,transparent 82px 155px)}
:root[data-theme="racing"] .world-card-hud i{background:linear-gradient(90deg,var(--a2) 0 68%,var(--a1) 68% 86%,var(--a3) 86%)}
:root[data-theme="racing"] :is(#hubShell,#messageInbox) :is(.profile-avatar,.person-avatar,.thread-avatar,.thread-person-avatar){border:2px solid #d1ae73;border-radius:12px;box-shadow:0 0 0 3px #080d12,inset 0 0 0 3px #304451}
:root[data-theme="racing"] :is(.dashboard-space,.artist-tile,.playlist-card){border-color:#344450}
:root[data-theme="racing"] #messageInbox .bubble{background:linear-gradient(145deg,#1b2732,#141d26)}
:root[data-theme="racing"] #messageInbox .bubble.mine{background:linear-gradient(135deg,#263b42,#1d2c34);border-color:#578591}
:root[data-theme="racing"] .stage-pet[data-pet="racing"]{--pet-a:#ffbd69;--pet-b:#344753;--pet-c:#80dcf2}
:root[data-theme="racing"] .world-card .world-card-art{object-position:50% 68%}
:root[data-theme="racing"] #landingMain .stage-world-art{opacity:.78;object-position:52% 65%}
:root[data-theme="racing"] #landingMain .landing-guide{width:40%;height:70%;right:0;bottom:65px;object-position:right bottom}
:root[data-theme="racing"] #landingMain .game-stage::before{background:linear-gradient(0deg,#080d12 4%,transparent 58%),linear-gradient(90deg,#080d1288,transparent 75%)}
:root[data-theme="racing"] #landingMain .stage-world-copy{max-width:65%}
:root[data-theme="racing"] #landingMain .world-preview{object-position:center 70%}
@media(max-width:540px){
  :root[data-theme="racing"] #landingMain .landing-guide{width:46%;height:60%;bottom:65px}
  :root[data-theme="racing"] #landingMain .stage-world-copy{max-width:70%}
}
