/* Transient child overlays leave every illustrated button pseudo-element and
   its actual layout intact. Only genuinely static targets need a containing box. */
.ui-shine-positioned{position:relative!important}
.ui-shine-target>.ui-shine-overlay{
 position:absolute!important;inset:auto!important;left:var(--ui-shine-left,0)!important;top:var(--ui-shine-top,0)!important;display:block!important;visibility:visible!important;
 width:var(--ui-shine-width,100%)!important;height:var(--ui-shine-height,100%)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
 z-index:50!important;margin:0!important;padding:0!important;border:0!important;border-radius:var(--ui-shine-radius,inherit)!important;
 overflow:hidden!important;clip-path:var(--ui-shine-clip,none)!important;mask-mode:alpha;mask-origin:border-box;mask-clip:border-box;
 pointer-events:none!important;user-select:none!important;background:none!important;box-shadow:none!important;
 transform:var(--ui-shine-transform,none)!important;transform-origin:var(--ui-shine-transform-origin,50% 50%)!important;translate:var(--ui-shine-translate,none)!important;rotate:var(--ui-shine-rotate,none)!important;scale:var(--ui-shine-scale,none)!important;filter:none!important;opacity:1!important;animation:none!important;transition:none!important;
 contain:paint;isolation:isolate;font-size:0!important;text-shadow:none!important;
}
.ui-shine-target>.ui-shine-overlay>.ui-shine-band{
 position:absolute!important;display:block!important;visibility:visible!important;top:-18%!important;bottom:-18%!important;left:0!important;right:auto!important;
 width:45%!important;height:auto!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
 background:linear-gradient(105deg,transparent 3%,#24cfff08 22%,#77eaff35 39%,#edffff85 49%,#ffffff9c 52%,#79eaff45 61%,#22cfff08 78%,transparent 94%)!important;
 box-shadow:none!important;pointer-events:none!important;filter:none!important;clip-path:none!important;
 opacity:0;transform:translateX(-170%) skewX(-13deg);animation:ui-neon-hover-sweep 700ms cubic-bezier(.15,.45,.3,1) both!important;
 transition:none!important;will-change:transform,opacity;
}
@keyframes ui-neon-hover-sweep{0%{opacity:0;transform:translateX(-170%) skewX(-13deg)}17%{opacity:.8}55%{opacity:.66}100%{opacity:0;transform:translateX(290%) skewX(-13deg)}}
@media(prefers-reduced-motion:reduce){.ui-shine-overlay{display:none!important}.ui-shine-band{animation:none!important}}
[data-reduced-motion="true"] .ui-shine-overlay,[inert] .ui-shine-target>.ui-shine-overlay{display:none!important}

/* These opaque reference crops include scenery around the painted controls.
   Constrain only the moving light; keep the approved artwork and hit boxes. */
@media(max-width:900px) and (orientation:portrait){
 #app.setup-reference[data-screen="garage"] #setup-back::before{--ui-shine-art-clip:polygon(22% 2%,80% 2%,100% 50%,80% 98%,22% 98%,0 50%)}
 #app.setup-reference[data-screen="garage"] #select-course::after{--ui-shine-art-clip:polygon(7% 1%,93% 1%,99% 27%,99% 73%,93% 99%,7% 99%,1% 73%,1% 27%)}
 #app.setup-reference[data-screen="garage"] #guide-button::before{--ui-shine-art-clip:polygon(10% 5%,91% 5%,98% 28%,98% 73%,91% 95%,10% 95%,2% 73%,2% 28%)}
 #app.setup-reference[data-screen="tracks"] :is(#sound-button,#settings-button)::before{--ui-shine-art-clip:polygon(12% 1%,88% 1%,99% 13%,99% 87%,88% 99%,12% 99%,1% 87%,1% 13%)}
 #result-screen:not([data-outcome="wreck"]) .results-action::before{--ui-shine-art-clip:polygon(4% 1%,96% 1%,99% 27%,99% 73%,96% 99%,4% 99%,1% 73%,1% 27%)}
}
