/* ============================================================
   ANIMATION ENHANCEMENT LAYER (anim.v1)
   Premium motion for client-facing demos.
   Respects prefers-reduced-motion (handled in JS).
   ============================================================ */

/* scroll progress bar (injected by anim.v1.js) */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:9999;
  background:linear-gradient(90deg,var(--accent,#3a6f50),var(--accent-2,#ded2aa));
  transition:width .08s linear;pointer-events:none}

/* staggered reveal: delay siblings so cards cascade in */
.reveal.in{transition-delay:calc(var(--i,0)*90ms)}

/* image zoom-on-enter */
[data-zoom]{overflow:hidden}
[data-zoom] img{transform:scale(1.06);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
[data-zoom].in img{transform:scale(1)}

/* premium hover lift for cards/glass/bento */
.card,.glass,.bento > *,.listing .card,.grid .card,.build-wrap{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.card:hover,.glass:hover,.bento > *:hover,.listing .card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(0,0,0,.45)}
.glass:hover{box-shadow:0 30px 60px -30px rgba(120,40,90,.35)}

/* button pop on hover */
.btn--primary,.btn--cta,.btn--lime,.nav-cta,button.submit,.nl-cta{transition:transform .2s,box-shadow .25s,filter .2s}
.btn--primary:hover,.btn--cta:hover,.btn--lime:hover,.nav-cta:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(0,0,0,.5);filter:saturate(1.1)}
button.submit:hover,.nl-cta:hover{transform:translateY(-2px)}

/* section heading slide-in polish */
.section h2{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.section h2.in{transform:translateY(0)}

/* soft entrance for hero copy lines */
.hero h1,.hero .lead,.hero-actions,.hero .stats{animation:heroIn .9s both}
.hero .lead{animation-delay:.08s}.hero .hero-actions{animation-delay:.16s}.hero .stats{animation-delay:.24s}
@keyframes heroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

/* gentle float for logo marks */
.nav-logo img{animation:floaty 6s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* marquee already in site.css; add a subtle divider shine */
.eyebrow{position:relative}

/* pill/CTA pulse for nav cta */
@keyframes ctaPulse{0%,100%{box-shadow:0 0 0 0 rgba(58,111,80,.0)}50%{box-shadow:0 0 0 6px rgba(58,111,80,.12)}}
.nav-cta{animation:ctaPulse 3.2s ease-in-out infinite}

/* gallery image hover zoom */
.gallery-grid img{transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .4s}
.gallery-grid img:hover{transform:scale(1.05);filter:saturate(1.08)}

/* smooth anchor scroll */
html{scroll-behavior:smooth}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
  .hero h1,.hero .lead,.hero-actions,.hero .stats{opacity:1;transform:none}
}
