.menu-music-controls{position:fixed;bottom:12px;right:12px;z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;max-width:340px;padding:10px 12px;color:#fff;background:#06254ff2;border:1px solid #9fdefc;border-radius:10px;box-shadow:0 3px 10px #0008;font:12px/1.4 Arial,sans-serif}.menu-music-controls button{min-height:36px;cursor:pointer;background:#0756ab;color:white;border:1px solid #c6edff;border-radius:5px;padding:8px;font:bold 11px/1.3 Arial,sans-serif}.menu-music-controls button:focus-visible,.menu-music-controls input:focus-visible{outline:3px solid #ffe775;outline-offset:3px}.menu-music-controls label{display:flex;align-items:center;gap:6px}.menu-music-controls input{width:80px;accent-color:#ffd536}.music-status:empty{display:none}.music-status{width:100%;color:#ffe775}body{padding-bottom:88px}@media(max-width:450px){.menu-music-controls{bottom:8px;right:8px;left:8px;max-width:none;justify-content:space-between}}
.menu-sfx-toggle{min-height:40px;padding:9px 14px;border:1px solid #c6edff;border-radius:7px;background:#0756ab;color:#fff;font:bold 12px/1.3 Arial,sans-serif;cursor:pointer}.menu-sfx-toggle[aria-pressed="false"]{background:#15314c;color:#d8e4ee}.menu-sfx-toggle:focus-visible{outline:3px solid #ffe775;outline-offset:3px}.menu-music-controls .menu-sfx-toggle{min-height:36px;padding:8px}
.secret-song-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2147483647}
.mario-remix{position:fixed;right:12px;bottom:12px;z-index:90;width:320px;max-width:calc(100vw - 24px);padding:8px;background:#06254ff5;border:2px solid #b8eaff;border-radius:10px;color:white;font:12px/1.4 Arial,sans-serif;box-shadow:0 4px 18px #0009}.mario-remix iframe{display:block;width:100%;height:200px;border:0}.mario-remix p{margin:7px 0}.mario-remix a{color:#ffe775}.mario-remix button{float:right;background:#b90715;color:white;border:1px solid white;padding:5px;cursor:pointer}.mario-kart-icon{display:block;width:95px;height:auto;margin:0 auto 4px}.mario-remix button:focus-visible{outline:3px solid #ffe775;outline-offset:3px}

.mario-remix-dance{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:clamp(95px,23vw,190px);height:auto;max-height:30vh;object-fit:contain;pointer-events:none;user-select:none;z-index:89;image-rendering:pixelated}

.sonic-remix-scene{position:fixed;inset:0;z-index:92;pointer-events:none;user-select:none;overflow:hidden}
.sonic-remix-scene::before{content:"";position:absolute;inset:0;backdrop-filter:blur(.75px);-webkit-backdrop-filter:blur(.75px);opacity:var(--sonic-effects-opacity,0)}
.sonic-remix-runner{position:absolute;left:0;bottom:0;width:clamp(180px,25vw,320px);height:auto;image-rendering:pixelated;transform:translateX(-100%);will-change:transform,opacity}
.sonic-remix-dashes{position:absolute;inset:0;overflow:hidden;opacity:var(--sonic-effects-opacity,0);transition:opacity .1s linear}
.sonic-remix-dash{position:absolute;left:0;width:100%;display:block;background-image:linear-gradient(90deg,transparent 0%,#ffffffdc 4%,#edf6ff9c 18%,#d9efff55 42%,transparent 72%);background-repeat:repeat-x;background-size:var(--dash-period) 100%;filter:blur(.25px);will-change:background-position}


/* Distant lines sit below interface surfaces; foreground lines mask out controls. */
body{isolation:isolate}
.site-distant-speedlines,.sonic-remix-world-dashes{position:fixed;inset:0;z-index:-1;pointer-events:none;user-select:none;overflow:hidden}
.sonic-remix-runner{height:auto;overflow:hidden}
.sonic-remix-sprite{display:block;width:100%;height:auto;image-rendering:pixelated}
.sonic-remix-front-dashes{position:absolute;inset:0;overflow:hidden;z-index:1;opacity:var(--sonic-effects-opacity,0);mask-mode:luminance;mask-repeat:no-repeat;mask-size:100% 100%}
.mario-remix{z-index:95}

@media(max-width:700px){
 .mario-remix{width:210px;max-width:calc(100vw - 16px);right:max(8px,env(safe-area-inset-right));bottom:calc(112px + env(safe-area-inset-bottom));padding:6px;font-size:10px}
 .mario-remix iframe{height:auto;aspect-ratio:16/9}
 .mario-remix p{margin:5px 0}
 .mario-remix button{min-height:32px;font-size:10px}
 .mario-remix-dance{z-index:2002}
 .sonic-remix-scene{z-index:2001}
 .sonic-remix-scene::before{display:none}
 .sonic-remix-runner{width:clamp(160px,42vw,220px)}
}

.secret-song-confetti[popover]{margin:0;padding:0;border:0;background:transparent;max-width:none;max-height:none;overflow:hidden}.secret-song-confetti::backdrop{background:transparent;pointer-events:none}

.sonic-remix-distant-runner{position:fixed;left:0;bottom:22vh;width:clamp(72px,10vw,128px);z-index:-1;pointer-events:none;user-select:none;will-change:transform,opacity}.sonic-remix-distant-runner img{display:block;width:100%;height:auto;image-rendering:pixelated;transform:scaleX(-1)}

@media(max-width:700px){.sonic-remix-dash{width:calc(100% + var(--dash-period));filter:none;will-change:transform}.mario-remix-dance,.sonic-remix-sprite,.sonic-remix-distant-runner img{backface-visibility:hidden}.mario-remix-dance{transform:translateZ(0)}}

/* Small frame snapshots form a fading trail without decoding extra animated images. */
.sonic-remix-runner{overflow:visible}.remix-runner-afterimage{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated;transform:translateX(calc(var(--trail-step) * -9%))}.sonic-remix-sprite,.sonic-remix-distant-runner img{position:relative;z-index:1}.sonic-remix-distant-runner .remix-runner-afterimage{transform:translateX(calc(var(--trail-step) * 9%)) scaleX(-1)}

.decoded-runner-sprite{display:block;position:relative;z-index:1;width:100%;height:auto;image-rendering:pixelated}.sonic-remix-distant-runner .decoded-runner-sprite{transform:scaleX(-1)}.remix-runner-fallback{position:absolute!important;inset:0;width:100%;height:auto;pointer-events:none;z-index:0!important;image-rendering:pixelated;animation:runner-echo .18s linear infinite;--trail-direction:-1}.sonic-remix-distant-runner .remix-runner-fallback{--trail-direction:1}@keyframes runner-echo{from{opacity:.24;translate:calc(var(--trail-direction) * var(--trail-step) * 5%) 0}to{opacity:0;translate:calc(var(--trail-direction) * (var(--trail-step) * 5% + 12%)) 0}}

.remix-companion{position:absolute;inset:0;width:100%;transform:translateX(60%)}.sonic-remix-distant-runner .remix-companion{transform:translateX(-60%)}.remix-runner-fallback{animation-duration:.3s}@keyframes runner-echo{from{opacity:.24;translate:calc(var(--trail-direction) * var(--trail-step) * 7%) 0}to{opacity:0;translate:calc(var(--trail-direction) * (var(--trail-step) * 7% + 28%)) 0}}

/* Move streak layers with compositor transforms rather than repainting backgrounds. */
.sonic-remix-dash{width:calc(100% + var(--dash-period));will-change:transform}.sonic-remix-dash[hidden]{display:none!important}html[data-effects=low] .sonic-remix-scene::before{display:none}html[data-effects=low] .sonic-remix-dash{filter:none}.performance-option select{max-width:55%}.game-settings-dialog .performance-help{font-size:13px;line-height:1.5}

.mario-remix-dance{transition:opacity .4s ease}.mario-remix-dance.runner-present{opacity:0}.remix-runner-hit{position:absolute;inset:0;z-index:4;pointer-events:auto;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;cursor:pointer;touch-action:manipulation}.remix-runner-hit:focus-visible{outline:2px solid #ffdf40;outline-offset:-8px}.sonic-remix-runner>.remix-runner-hit{right:18%;left:18%}.remix-companion>.remix-runner-hit{right:18%;left:18%}
