/* Variant A — Grand Entrance (adds to style.css) */
@media (prefers-reduced-motion: no-preference) {

/* choreographed hero build-in: blur-to-focus cascade */
.js .hero .reveal {
  filter: blur(16px);
  transform: translateY(38px);
  transition-property: opacity, transform, clip-path, filter;
  transition-duration: .9s;
}
.js .hero .reveal.in { filter: blur(0); transform: none; }
.js .hero .eyebrow.reveal { transition-delay: .05s; }
.js .hero h1.reveal { transition-delay: .25s; transition-duration: 1.4s; transform: translateY(.5em); }
.js .hero .hero-sub.reveal { transition-delay: .55s; }
.js #inquiry-module.reveal { transition-delay: .75s; transition-duration: 1.2s; transform: translateY(56px) scale(.96); }
.js #inquiry-module.reveal.in { transform: none; }
.js .hero-proof.reveal { transition-delay: 1.15s; }

/* gold sheen sweeps across primary buttons on hover */
.btn-gold { position: relative; overflow: hidden; }
.btn-gold::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 55%;
  background: linear-gradient(100deg, rgba(255,255,255,0), rgba(255,251,240,.5), rgba(255,255,255,0));
  transform: translateX(-140%) skewX(-18deg);
  pointer-events: none;
}
.btn-gold:hover::after { animation: aSheen .9s ease; }
@keyframes aSheen { to { transform: translateX(340%) skewX(-18deg); } }

/* the gem's sparkles twinkle */
.hero-art > g[fill="#B89B5E"] path {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  animation: aTwinkle 4.5s ease-in-out infinite;
}
.hero-art > g[fill="#B89B5E"] path:nth-child(2) { animation-delay: 1.4s; animation-duration: 5.5s; }
.hero-art > g[fill="#B89B5E"] path:nth-child(3) { animation-delay: 2.6s; animation-duration: 3.8s; }
@keyframes aTwinkle {
  0%, 100% { scale: .8; opacity: .35; }
  50% { scale: 1.15; opacity: .9; }
}

/* the section divider breathes */
.divider span { display: inline-block; animation: aDiamond 5s ease-in-out infinite; }
@keyframes aDiamond {
  0%, 100% { transform: scale(1); opacity: .75; }
  50% { transform: scale(1.3); opacity: 1; }
}

/* service icons draw themselves in when their card arrives */
.anim-ready .svc-icon path, .anim-ready .svc-icon circle {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.anim-ready .svc-card.in .svc-icon path, .anim-ready .svc-card.in .svc-icon circle {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.3s var(--ease-out) .3s;
}

/* perk lines follow their card in, one by one */
.anim-ready .svc-card .perk-list li {
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity .5s ease, transform .5s var(--ease-out);
}
.anim-ready .svc-card.in .perk-list li { opacity: 1; transform: none; }
.anim-ready .svc-card.in .perk-list li:nth-child(1) { transition-delay: .45s; }
.anim-ready .svc-card.in .perk-list li:nth-child(2) { transition-delay: .58s; }
.anim-ready .svc-card.in .perk-list li:nth-child(3) { transition-delay: .71s; }

/* every scroll reveal rises further and takes longer */
.js .reveal { transform: translateY(30px); transition-duration: .85s; }
.js h1.reveal, .js h2.reveal { transition-duration: 1.1s; }

/* a gold hairline draws itself under each section heading */
.anim-ready .section h2.reveal, .anim-ready .final-cta h2.reveal { position: relative; padding-bottom: .35em; }
.anim-ready .section h2.reveal::after, .anim-ready .final-cta h2.reveal::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 120px; height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.2s var(--ease-out) .45s;
}
.anim-ready .section h2.reveal.in::after, .anim-ready .final-cta h2.reveal.in::after { transform: scaleX(1); }

/* destination photos ease closer on hover */
.dest-face.dest-front { overflow: hidden; }
.dest-photo { transition: transform 1.4s var(--ease-out); }
.dest-card:hover .dest-photo { transform: scale(1.12); }

/* the compass's dashed ring turns, slowly */
.compass-visual circle[stroke-dasharray] {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  animation: aSpin 70s linear infinite;
}
@keyframes aSpin { to { rotate: 360deg; } }

}

/* phones: heavy blur filters are the costly part of the cascade */
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  .js .hero .reveal { filter: blur(8px); }
}
