/* =====================================================================
   ORBIT & US — Motion layer
   Animation only: no layout or content changes. Everything here is
   switched off for visitors who ask their device for reduced motion.
   ===================================================================== */

/* ---------- intro splash (first page of a visit) ---------- */
.m-splash{position:fixed;inset:0;z-index:999;display:grid;place-items:center;background:var(--navy);
  transition:transform .9s cubic-bezier(.77,0,.18,1),opacity .9s ease}
.m-splash.out{transform:translateY(-100%)}
.m-splash .mk{width:132px;height:132px;overflow:visible}
.m-splash .planet{stroke-dasharray:44;stroke-dashoffset:44;animation:m-draw .9s .1s cubic-bezier(.65,0,.35,1) forwards}
.m-splash .ring{transform-origin:24px 24px;stroke-dasharray:96;stroke-dashoffset:96;
  animation:m-draw 1s .35s cubic-bezier(.65,0,.35,1) forwards,spin 9s 1.3s linear infinite}
.m-splash .moon,.m-splash .spark{opacity:0;transform-origin:center;transform-box:fill-box;animation:m-pop .5s 1s cubic-bezier(.34,1.56,.64,1) forwards}
.m-splash .spark{animation-delay:1.15s}
.m-splash .word{margin-top:18px;font-family:var(--font-display);font-size:2.1rem;font-weight:600;color:var(--ivory);
  letter-spacing:.01em;text-align:center;clip-path:inset(0 100% 0 0);animation:m-wipe .8s .75s cubic-bezier(.65,0,.35,1) forwards}
.m-splash .word i{color:var(--gold);font-weight:600}
@keyframes m-draw{to{stroke-dashoffset:0}}
@keyframes m-pop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
@keyframes m-wipe{to{clip-path:inset(0 0 0 0)}}

/* ---------- scroll progress ---------- */
.m-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:120;pointer-events:none;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),#C8C4E8);transform-origin:0 50%;transform:scaleX(0)}

/* ---------- hero entrance ---------- */
.m-line{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.m-line > span{display:inline-block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.m-ready .m-line > span{transform:none}
.m-fade{opacity:0;transform:translateY(16px);filter:blur(6px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1),filter .9s ease}
.m-ready .m-fade{opacity:1;transform:none;filter:none}
.hero-figure.m-fade{transform:translateY(30px) scale(.96)}
.m-ready .hero-figure.m-fade{transform:none}

/* gold shimmer on "Our Orbit." */
.hero .h-hero .em.m-shine{background:linear-gradient(100deg,var(--gold) 0%,var(--gold) 38%,#fff3d6 50%,var(--gold) 62%,var(--gold) 100%);
  background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:m-shine 5.5s 1.8s ease-in-out infinite;background-position:100% 0}
@keyframes m-shine{0%{background-position:100% 0}45%,100%{background-position:-60% 0}}

/* hero artwork: constellation draws itself */
.m-con line{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.4s cubic-bezier(.65,0,.35,1)}
.m-ready .m-con line{stroke-dashoffset:0}
.m-con circle{opacity:0;transition:opacity .6s ease}
.m-ready .m-con circle{opacity:1}
.hero-figure{transition:transform .6s cubic-bezier(.19,1,.22,1)}
.hero-canvas{transition:transform .8s cubic-bezier(.19,1,.22,1)}

/* ---------- shooting stars ---------- */
.m-shoot{position:absolute;z-index:2;width:140px;height:1.5px;pointer-events:none;border-radius:2px;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,243,214,.95));
  transform:rotate(var(--a)) translateX(0);opacity:0;animation:m-shoot 1.3s cubic-bezier(.4,0,.6,1) forwards}
.m-shoot::after{content:"";position:absolute;right:-2px;top:-2px;width:5px;height:5px;border-radius:50%;background:#fff3d6;box-shadow:0 0 10px 2px rgba(212,175,127,.9)}
@keyframes m-shoot{0%{opacity:0;transform:rotate(var(--a)) translateX(0)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateX(520px)}}

/* ---------- staggered grids ---------- */
.m-rise{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .9s cubic-bezier(.19,1,.22,1)}
.m-rise.m-in{opacity:1;transform:none}

/* ---------- product cards: tilt + light sweep ---------- */
.pcard-media{transform-style:preserve-3d;transition:transform .5s cubic-bezier(.19,1,.22,1)}
.pcard-media::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),rgba(255,255,255,0) 55%)}
.pcard:hover .pcard-media::after{opacity:1}

/* ---------- buttons: magnetic pull + sparkle ---------- */
.btn{will-change:transform}
.btn.btn-gold,.btn.btn-orbit{position:relative;overflow:hidden}
.btn.btn-gold::before,.btn.btn-orbit::before{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .7s ease}
.btn.btn-gold:hover::before,.btn.btn-orbit:hover::before{left:130%}

/* ---------- zodiac wheel ---------- */
.zwheel .ring2{animation:spin 70s linear infinite}
.zwheel .ring::after{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 12px 2px rgba(212,175,127,.7)}
.zwheel .ring{animation:spin 24s linear infinite}
.zw-item.on .g{animation:m-glow 2.4s ease-in-out infinite}
@keyframes m-glow{0%,100%{text-shadow:0 0 0 rgba(212,175,127,0)}50%{text-shadow:0 0 14px rgba(212,175,127,.9)}}

/* ---------- eyebrow ✦ spins in ---------- */
.eyebrow::before{display:inline-block}
.js-reveal .reveal .eyebrow::before{transform:scale(0) rotate(-180deg);transition:transform .9s .25s cubic-bezier(.34,1.56,.64,1)}
.js-reveal .reveal.in .eyebrow::before{transform:none}

/* ---------- reduced motion: switch it all off ---------- */
@media (prefers-reduced-motion:reduce){
  .m-splash,.m-progress,.m-shoot{display:none!important}
  .m-line > span,.m-fade,.m-rise,.m-con line,.m-con circle{transform:none!important;opacity:1!important;filter:none!important;stroke-dashoffset:0!important}
  .zwheel .ring,.zwheel .ring2,.hero .h-hero .em.m-shine{animation:none!important}
  .hero .h-hero .em.m-shine{color:var(--gold);background:none}
}
