/* Version 2.5.1. Speed x2. Automatic motion regardless of the OS preference, with a manual pause. */
.hero-scene{position:relative;isolation:isolate;overflow:hidden}
.hero-scene>.hero,.hero-scene>.hero-bottom{position:relative;z-index:1}
.hero-scene .hero:before{content:none}
.hero-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero-atmosphere:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#22212642,transparent 68%)}
.ambient-orb{position:absolute;left:0;top:0;width:640px;height:640px;border-radius:50%;filter:blur(36px);background:radial-gradient(circle,#ab175cb8 0%,#99184f8a 24%,#8b31503d 46%,transparent 70%);transform:translate3d(-80px,70px,0);will-change:transform;animation:arc-orb-fallback 9s linear -2s infinite alternate}
.orb-colour{position:absolute;inset:0;border-radius:inherit;will-change:opacity}
.orb-colour--warm{background:radial-gradient(circle at 42% 43%,#da764666,transparent 65%);opacity:.45;animation:arc-glow 6.5s ease-in-out infinite alternate}
.orb-colour--rose{background:radial-gradient(circle at 58% 57%,#c7277355,transparent 68%);opacity:.5;animation:arc-glow 8.5s ease-in-out -3s infinite alternate-reverse}
.hero-scene[data-motion-engine=frames] .ambient-orb,.hero-scene[data-motion-engine=frames] .orb-colour{animation:none!important}
.hero-scene[data-motion=paused] .ambient-orb,.hero-scene[data-motion=paused] .orb-colour{animation-play-state:paused!important}
.hero-copy .motion-controls{display:flex;justify-content:flex-start;margin-top:12px;padding:0}
.motion-toggle{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:5px 9px;border:1px solid #ffffff35;border-radius:7px;background:#22212645;color:#d1d1d4;font-size:11px;line-height:1.5}
.motion-toggle:hover{background:#ffffff12;color:#fff;border-color:#ffffff70}.motion-toggle .icon{width:14px;height:14px}
@keyframes arc-orb-fallback{from{transform:translate3d(-130px,30px,0) scale(.94)}to{transform:translate3d(390px,220px,0) scale(1.08)}}
@keyframes arc-glow{from{opacity:.15}to{opacity:.8}}
@media(max-width:760px){.ambient-orb{width:500px;height:500px;filter:blur(28px);animation-name:arc-orb-mobile}.motion-toggle{font-size:10px}.hero-copy .motion-controls{margin-top:10px}}
@keyframes arc-orb-mobile{from{transform:translate3d(-240px,20px,0) scale(.95)}to{transform:translate3d(70px,285px,0) scale(1.05)}}
/* Specific fallback overrides the site's general reduced-motion rule when JS is unavailable. */
@media(prefers-reduced-motion:reduce){
 .hero-atmosphere .ambient-orb{animation:arc-orb-fallback 9s linear -2s infinite alternate!important}
 .hero-atmosphere .orb-colour--warm{animation:arc-glow 6.5s ease-in-out infinite alternate!important}
 .hero-atmosphere .orb-colour--rose{animation:arc-glow 8.5s ease-in-out -3s infinite alternate-reverse!important}
}
@media(prefers-reduced-motion:reduce) and (max-width:760px){.hero-atmosphere .ambient-orb{animation-name:arc-orb-mobile!important}}
@media print{.hero-atmosphere,.motion-controls{display:none!important}}
