/* Scroll reveal base */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal-left{opacity:0;transform:translateX(-36px);transition:opacity .7s ease,transform .7s ease}
.reveal-right{opacity:0;transform:translateX(36px);transition:opacity .7s ease,transform .7s ease}
.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .7s ease,transform .7s ease}
.reveal.visible,.reveal-left.visible,.reveal-right.visible,.reveal-scale.visible{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

/* Hero entrance */
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
.hero-anim-1{animation:fadeUp .8s .1s both}
.hero-anim-2{animation:fadeUp .8s .25s both}
.hero-anim-3{animation:fadeUp .8s .4s both}
.hero-anim-4{animation:slideInRight .9s .35s both}
.page-hero h1,.page-hero p,.page-hero .crumbs{animation:fadeUp .7s both}
.page-hero p{animation-delay:.12s}

/* Page transition */
body.page-fade main{opacity:0;transform:translateY(14px);transition:opacity .35s,transform .35s}
main{transition:opacity .45s,transform .45s}

/* Image overlay reveal */
.img-reveal{position:relative;overflow:hidden}
.img-reveal::after{content:'';position:absolute;inset:0;background:var(--secondary);transform:scaleX(1);transform-origin:right;transition:transform .9s ease;z-index:1}
.img-reveal.visible::after{transform:scaleX(0)}

/* Counter pop */
.stat strong.pop{animation:pop .5s ease}
@keyframes pop{0%{transform:scale(.8)}60%{transform:scale(1.08)}100%{transform:scale(1)}}

/* Button sheen */
.btn-primary,.btn-gold{position:relative;overflow:hidden}
.btn-primary::after,.btn-gold::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .5s}
.btn-primary:hover::after,.btn-gold:hover::after{left:130%}

/* Card shimmer border */
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.card:hover::before{transform:scaleX(1)}

/* Ticker slide */
.ticker{animation:fadeIn .6s both}

/* Gallery item entrance */
.gal-item{animation:fadeUp .5s both}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none}
  .hero-bg img{animation:none}
}
