/* EPIC's shared motion signature: quiet mauve orbits, not pointer tracking. */
.epic-motion-stage{position:relative;isolation:isolate;overflow:hidden}
.epic-motion-stage>.wrap,.epic-motion-stage>.hero-copy{position:relative;z-index:1}
.epic-ambient{position:absolute;z-index:0;right:-140px;top:50%;width:min(56vw,720px);aspect-ratio:1;transform:translateY(-50%);color:#c6abc0;opacity:.36;pointer-events:none}
.epic-orbit{position:absolute;inset:13% 0;border:1px solid currentColor;border-radius:50%;animation:epic-orbit-turn 46s linear infinite}
.epic-orbit:nth-child(2){inset:3% 17%;opacity:.6;animation-duration:59s;animation-direction:reverse}
.epic-orbit:nth-child(3){inset:28% -8%;opacity:.45;animation-duration:72s}
.epic-satellite{position:absolute;left:48%;top:-3px;width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 12px #c6abc048}
.epic-orbit:nth-child(2) .epic-satellite{width:4px;height:4px;top:-2px}
.epic-ambient:after{content:'';position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,#b18ba316,transparent 70%);animation:epic-halo-drift 12s ease-in-out infinite alternate}
.epic-motion-stage:has(.hero-layout){--epic-control-ink:#756075;--epic-control-line:#76587344}
.epic-motion-stage:has(.hero-layout) .hero-orbit{animation:epic-orbit-turn 54s linear infinite}
.epic-motion-stage:has(.hero-layout) .hero-orbit-two{animation-duration:42s;animation-direction:reverse}
.epic-motion-stage:has(.hero-layout) .hero-orbit:after{content:'';position:absolute;left:49%;top:-3px;width:6px;height:6px;border-radius:50%;background:#9b7295}
.epic-float{animation:epic-gentle-float 9s ease-in-out infinite}
.epic-float.hero-year{animation-duration:7.5s;--epic-float-distance:-5px}
.epic-float.hero-detail{animation-delay:-3s;animation-duration:10s}
.epic-motion-stage .ix-detail-photo{position:relative;z-index:1}
.epic-motion-stage .hero-scroll i{transform-origin:left;animation:epic-scroll-line 2.8s ease-in-out infinite}
.epic-motion-group .future-orbits{animation:epic-horizon-drift 18s ease-in-out infinite alternate}

.epic-motion-control{position:absolute;z-index:6;right:max(28px,calc((100% - 1280px)/2));bottom:22px;display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:7px 12px;border:1px solid var(--epic-control-line,#c7aec037);border-radius:99px;background:transparent;color:var(--epic-control-ink,#c6b4c2);font:10px/1.5 Arial,sans-serif;letter-spacing:.025em;cursor:pointer;transition:background .2s,border-color .2s}
.epic-motion-control:before{content:'';width:5px;height:9px;border-inline:1px solid currentColor}
.epic-motion-control[aria-pressed="true"]:before{width:0;height:0;border:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid currentColor}
.epic-motion-control:hover{background:#bda4b415;border-color:#bda4b477}
.epic-motion-control:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.epic-motion-control[hidden]{display:none}
.epic-motion-control,.motion-toggle{display:none!important}

/* Content stays available without JS. Only successfully observed elements hide. */
.epic-reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--epic-reveal-delay,0ms)}
.epic-reveal-ready.epic-revealed{opacity:1;transform:none}
.epic-reveal-ready:focus-within{opacity:1;transform:none;transition:none}
.epic-title-reveal{animation:epic-title-enter 1s cubic-bezier(.2,.7,.2,1) both}

/* Pause decoration when off screen or hidden; entrance effects stay finite. */
.epic-motion-idle .epic-orbit,.epic-motion-idle .epic-ambient:after,
.epic-motion-idle .epic-float,.epic-motion-idle .hero-orbit,
.epic-motion-idle .hero-scroll i,.epic-motion-idle .future-orbits,
.site-motion-paused .epic-orbit,.site-motion-paused .epic-ambient:after,
.site-motion-paused .epic-float,.site-motion-paused .hero-orbit,
.site-motion-paused .hero-scroll i,.site-motion-paused .future-orbits,
.site-motion-hidden .epic-orbit,.site-motion-hidden .epic-ambient:after,
.site-motion-hidden .epic-float,.site-motion-hidden .hero-orbit,
.site-motion-hidden .hero-scroll i,.site-motion-hidden .future-orbits{animation-play-state:paused!important}
.site-motion-paused .epic-reveal-ready{opacity:1;transform:none;transition:none}

@keyframes epic-orbit-turn{from{transform:rotate(-24deg)}to{transform:rotate(336deg)}}
@keyframes epic-gentle-float{0%,100%{transform:translateY(0)}50%{transform:translateY(var(--epic-float-distance,-7px))}}
@keyframes epic-halo-drift{from{transform:translate(-14px,12px);opacity:.5}to{transform:translate(14px,-12px);opacity:1}}
@keyframes epic-horizon-drift{from{transform:translate(-10px,8px)}to{transform:translate(12px,-10px)}}
@keyframes epic-scroll-line{0%,100%{transform:scaleX(.55);opacity:.5}50%{transform:scaleX(1);opacity:1}}
@keyframes epic-title-enter{from{clip-path:inset(0 0 100%);transform:translateY(18px);opacity:.4}to{clip-path:inset(0);transform:translateY(0);opacity:1}}

@media(max-width:800px){.epic-ambient{width:580px;right:-350px;opacity:.25}.epic-motion-control{right:28px;bottom:16px}}
@media(max-width:650px){.epic-motion-control{right:20px;bottom:12px;font-size:9px;min-height:32px;padding:6px 10px}.epic-float{--epic-float-distance:-4px}.epic-ambient{right:-380px}.epic-motion-stage:has(.hero-layout) .epic-motion-control{bottom:22px}}
@media(prefers-reduced-motion:reduce){
  .epic-orbit,.epic-ambient:after,.epic-float,.epic-motion-group .future-orbits,
  .epic-motion-stage .hero-orbit,.epic-motion-stage .hero-scroll i,
  .epic-title-reveal{animation:none!important}
  .epic-motion-control{display:none}
  .epic-reveal-ready{opacity:1;transform:none;transition:none}
}
