/* ==========================================================================
   EXECUTIVE PR V2 — animations.css
   Keyframes + animated luxury accents (loader, shimmer, gold borders).
   ========================================================================== */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes gateLeft{to{transform:translateX(-100%)}}
@keyframes gateRight{to{transform:translateX(100%)}}
@keyframes drawLine{from{width:0}to{width:100%}}
@keyframes crestPulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.05);opacity:1}}
@keyframes pulseDot{0%,100%{opacity:.4}50%{opacity:1}}

/* staggered hero entrance */
.anim-in > *{opacity:0;animation:fadeUp .9s ease forwards}
.anim-in > *:nth-child(1){animation-delay:.05s}
.anim-in > *:nth-child(2){animation-delay:.2s}
.anim-in > *:nth-child(3){animation-delay:.35s}
.anim-in > *:nth-child(4){animation-delay:.5s}
.anim-in > *:nth-child(5){animation-delay:.65s}

/* shimmer gold text accent */
.shimmer{background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft),var(--gold-deep));
  background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 6s linear infinite}

/* animated gold underline on headings */
.u-line{position:relative;display:inline-block}
.u-line::after{content:"";position:absolute;left:0;bottom:-.25em;height:2px;width:100%;
  background:linear-gradient(90deg,var(--gold-soft),transparent);transform-origin:left}

/* page loader */
.loader{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:var(--gate-bg);
  transition:opacity .6s ease,visibility .6s}
.loader.done{opacity:0;visibility:hidden}
.loader-inner{text-align:center;color:var(--gold-soft)}
.loader-crest{width:74px;height:74px;margin:0 auto 1.4rem;border:1.5px solid var(--gold);border-radius:50%;
  display:grid;place-items:center;font-family:var(--font-display);font-size:2.4rem;color:var(--gold);
  animation:crestPulse 2s ease-in-out infinite}
.loader-ring{position:absolute;width:104px;height:104px;border:1px solid transparent;border-top-color:var(--gold);
  border-radius:50%;animation:spinSlow 1.4s linear infinite}
.loader-txt{font-family:var(--font-eyebrow);font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-soft)}
.loader-bar{width:180px;height:1px;background:rgba(201,162,75,.25);margin:1.1rem auto 0;position:relative;overflow:hidden}
.loader-bar::after{content:"";position:absolute;inset:0;width:40%;background:var(--gold);animation:drawLine 1.2s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.anim-in>*{opacity:1;animation:none}.loader-crest,.loader-ring,.loader-bar::after,.shimmer{animation:none}}
