/* Animated existing artwork; all movement remains outside document layout. */
.hero{isolation:isolate;overflow:hidden}
.hero-art{animation:exchange-pan 12s ease-in-out infinite alternate;transform-origin:68% 50%}
.hero-title-art img{animation:exchange-title-glow 4s ease-in-out infinite}
.hero-sparks{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}
.hero-spark{position:absolute;bottom:-35px;width:var(--size);height:var(--size);object-fit:contain;opacity:0;animation:exchange-rise var(--duration) linear var(--delay) infinite;filter:drop-shadow(0 0 6px #69bdff)}
.hero-spark.warm{filter:sepia(1) saturate(3) drop-shadow(0 0 7px #efb856)}
.hero-inner{position:relative;z-index:2}
.hero.motion-paused .hero-art,.hero.motion-paused .hero-title-art img,.hero.motion-paused .hero-spark{animation-play-state:paused}
@keyframes exchange-pan{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.08) translate3d(-1%,.6%,0)}}
@keyframes exchange-title-glow{0%,100%{transform:translateY(-50%);filter:brightness(1) drop-shadow(0 0 2px #5fa7d633)}50%{transform:translateY(calc(-50% - 4px));filter:brightness(1.22) drop-shadow(0 0 11px #5fa7d677)}}
@keyframes exchange-rise{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}12%{opacity:.85}75%{opacity:.6}100%{transform:translate3d(var(--drift),-540px,0) rotate(100deg);opacity:0}}
@media(max-width:760px){.hero-spark:nth-child(n+7){display:none}.hero-title-art img{animation-duration:8s}}
@media(prefers-reduced-motion:reduce){.hero:not(.motion-enabled) .hero-art,.hero:not(.motion-enabled) .hero-title-art img,.hero:not(.motion-enabled) .hero-spark{animation:none!important}.hero:not(.motion-enabled) .hero-sparks{display:none}}

.hero:not(.motion-enabled) .hero-art,.hero:not(.motion-enabled) .hero-title-art img,.hero:not(.motion-enabled) .hero-spark{animation:none!important}
.hero:not(.motion-enabled) .hero-sparks{display:none}

/* Mobile compositor-only motion avoids animated filter repaints. */
@media(max-width:760px){.hero-title-art img{animation-name:exchange-title-float;filter:none}.hero-spark{filter:none!important}.hero-spark:nth-child(n+5){display:none}.hero-art{animation-duration:20s}}
@keyframes exchange-title-float{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 3px))}}
