@media(prefers-reduced-motion:no-preference) {
  .hero-copy { animation:hero-arrive .8s cubic-bezier(.2,.7,.2,1) both; }
  .hero-art { animation:hero-arrive .95s .08s cubic-bezier(.2,.7,.2,1) both; }
  .reveal-pending { opacity:0; transform:translateY(22px); }
  .reveal-ready { transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1); transition-delay:var(--reveal-delay,0ms); }
  .reveal-ready.is-visible { opacity:1; transform:none; }
  .hero-photo>img { transform:translateY(var(--photo-shift,0px)) scale(1.045); }
  .button-primary { position:relative; overflow:hidden; }
  .button-primary::after { content:""; position:absolute; inset:-100% auto -100% -60%; width:35%; background:linear-gradient(90deg,transparent,#FFF8E923,transparent); transform:rotate(20deg); transition:left .6s ease; pointer-events:none; }
  .button-primary:hover::after { left:125%; }
}
@keyframes hero-arrive { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
@keyframes gold-drift { from { transform:translate3d(0,0,0) rotate(-7deg); } to { transform:translate3d(10px,12px,0) rotate(-3deg); } }
@media(max-width:800px) {
  .hero-photo>img { transform:none; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .reveal-pending,.reveal-ready { opacity:1!important; transform:none!important; }
  .hero-photo>img { transform:none!important; }
}

@media(prefers-reduced-motion:no-preference) {
  .fold-section {
    transform-origin:50% 0;
    transform:perspective(1800px) rotateX(calc(var(--fold,0) * -38deg));
    backface-visibility:hidden;
    box-shadow:none;
  }
  .fold-section::after {
    content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:5;
    background:linear-gradient(180deg,#FFFFFF25,transparent 25%,#584A4030);
    opacity:calc(var(--fold,0) * .45);
  }
}
@media(prefers-reduced-motion:reduce) { .fold-section { transform:none!important; box-shadow:none; } .fold-section::after { content:none; } }
