
/* Premium motion pack for v18 (no layout changes) */
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(18px);filter:blur(2px);transition:opacity .75s ease, transform .75s ease, filter .75s ease}
.reveal.in{opacity:1;transform:none;filter:none}
.reveal[data-reveal="fade"]{transform:none;filter:none}
.reveal[data-reveal="fade"].in{opacity:1}
.reveal[data-reveal="zoom"]{transform:scale(.98);filter:none}
.reveal[data-reveal="zoom"].in{transform:scale(1)}

/* Stagger children */
.stagger > *{opacity:0;transform:translateY(12px);transition:opacity .7s ease, transform .7s ease}
.stagger.in > *{opacity:1;transform:none}
.stagger.in > *:nth-child(1){transition-delay:.05s}
.stagger.in > *:nth-child(2){transition-delay:.10s}
.stagger.in > *:nth-child(3){transition-delay:.15s}
.stagger.in > *:nth-child(4){transition-delay:.20s}
.stagger.in > *:nth-child(5){transition-delay:.25s}
.stagger.in > *:nth-child(6){transition-delay:.30s}

/* Card hover polish */
.card, .feature-card, .service-card{transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}
.card:hover, .feature-card:hover, .service-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.card:active, .feature-card:active, .service-card:active{transform:translateY(-2px)}

/* Button sheen */
a.button, button, .btn, .cta, .pill-btn{
  position:relative;overflow:hidden;
}
a.button::after, button::after, .btn::after, .cta::after, .pill-btn::after{
  content:"";position:absolute;top:-120%;left:-60%;
  width:55%;height:320%;
  transform:rotate(18deg);
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.22) 50%, rgba(255,255,255,0) 100%);
  opacity:0;transition:opacity .25s ease;
}
a.button:hover::after, button:hover::after, .btn:hover::after, .cta:hover::after, .pill-btn:hover::after{
  opacity:1;animation:sheen 1.15s ease forwards;
}
@keyframes sheen{
  from{left:-60%}
  to{left:130%}
}

/* Nav underline slide */
.nav a, header a, .topnav a{
  position:relative;
}
.nav a::after, header a::after, .topnav a::after{
  content:"";position:absolute;left:10%;right:10%;bottom:-10px;height:2px;
  background:currentColor;opacity:0;transform:scaleX(.2);
  transition:opacity .25s ease, transform .25s ease;
}
.nav a:hover::after, header a:hover::after, .topnav a:hover::after{opacity:.65;transform:scaleX(1)}
.nav a.active::after, header a.active::after{opacity:.85;transform:scaleX(1)}

/* Scroll progress bar */
#scrollProgress{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg, rgba(191,161,90,1) 0%, rgba(255,215,140,1) 50%, rgba(191,161,90,1) 100%);
  z-index:9999;box-shadow:0 6px 18px rgba(0,0,0,.35);
}

/* Subtle ambient glow (non-intrusive) */
.ambient-glow{
  position:fixed;inset:-30% -30% auto -30%;height:60vh;pointer-events:none;z-index:0;
  background:radial-gradient(closest-side, rgba(191,161,90,.10), rgba(0,0,0,0));
  filter:blur(20px);
  animation:ambient 9s ease-in-out infinite;
}
@keyframes ambient{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(0,18px,0)}
}

/* Back to top */
#backToTop{
  position:fixed;right:18px;bottom:18px;z-index:9999;
  opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease;
}
#backToTop.show{opacity:1;pointer-events:auto;transform:none}

/* Scroll reveal */
.reveal{opacity:0;transform:translate3d(0,14px,0);filter:blur(1px);
  transition:opacity .6s ease, transform .6s ease, filter .6s ease;
  will-change:opacity,transform,filter;
}
.reveal.is-visible{opacity:1;transform:none;filter:none}
.reveal.delay-1{transition-delay:.08s}
.reveal.delay-2{transition-delay:.16s}
.reveal.delay-3{transition-delay:.24s}

/* Gentle float for brand mark & hero badge */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.brand img, .brand .logo, .hero-pill{animation:floaty 5.5s ease-in-out infinite}

/* Button shine */
.btn, button, .button, a.btn{
  position:relative;
  overflow:hidden;
}
.btn::before, button::before, .button::before, a.btn::before{
  content:"";
  position:absolute;
  top:-120%;
  left:-60%;
  width:50%;
  height:320%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 100%);
  transform:rotate(18deg);
  transition:transform .45s ease, left .45s ease;
  pointer-events:none;
}
.btn:hover::before, button:hover::before, .button:hover::before, a.btn:hover::before{
  left:120%;
}

/* Card hover lift */
.card, .panel, .glass, .tile{
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover, .panel:hover, .glass:hover, .tile:hover{
  transform:translateY(-4px);
}

/* Scroll progress bar */
.scroll-progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:9999;
  transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg, rgba(215,183,90,.2), rgba(242,223,155,.95), rgba(215,183,90,.2));
  box-shadow:0 0 18px rgba(242,223,155,.35);
}

/* Back-to-top */
.to-top{position:fixed;right:18px;bottom:18px;z-index:9998;
  width:42px;height:42px;border-radius:999px;border:1px solid rgba(215,183,90,.22);
  background:rgba(0,0,0,.55);color:#f2df9b;font-weight:700;
  box-shadow:0 10px 26px rgba(0,0,0,.45);
  opacity:0;transform:translate3d(0,10px,0);pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, background .25s ease;
}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:rgba(0,0,0,.72)}
