/* AGGRO v31.18 — stable first screen + lightweight cinematic intro */

/* Page reveal: opacity only, no expensive whole-page blur/scale. */
body.intro-active > .header,
body.intro-active > main,
body.intro-active > .footer,
body.intro-active > .scroll-progress,
body.intro-active > .skip-link{
  opacity:0!important;
  transform:none!important;
  filter:none!important;
}
body.intro-revealing > .header,
body.intro-revealing > main,
body.intro-revealing > .footer,
body.intro-revealing > .scroll-progress,
body.intro-revealing > .skip-link{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  transition:opacity .52s ease!important;
}

/* New intro scene. Only transform and opacity are animated for stable FPS. */
.brand-intro.brand-intro--v18{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  overflow:hidden;
  isolation:isolate;
  contain:strict;
  background:
    radial-gradient(circle at 50% 43%,rgba(255,255,255,.98) 0 8%,rgba(249,235,218,.96) 31%,rgba(238,210,177,.96) 73%,#e7c093 100%);
  color:#17130f;
  opacity:1;
  transform:translateZ(0);
}
.brand-intro.brand-intro--v18::before{
  content:"";
  position:absolute;
  inset:-24%;
  pointer-events:none;
  background:
    repeating-radial-gradient(circle at center,rgba(54,180,174,.14) 0 1px,transparent 1px 72px);
  opacity:.38;
  transform:scale(.92);
}
.brand-intro.brand-intro--v18::after{
  content:"";
  position:absolute;
  left:8%;right:8%;top:50%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(54,180,174,.28),rgba(197,45,71,.30),transparent);
  opacity:.65;
  pointer-events:none;
}
.brand-intro-v18__stage{
  position:relative;
  z-index:3;
  width:min(82vw,620px);
  text-align:center;
  transform:translate3d(0,10px,0);
}
.brand-intro-v18__eyebrow{
  margin-bottom:24px;
  color:#328f89;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.28em;
  text-transform:uppercase;
  opacity:0;
  transform:translate3d(0,8px,0);
}
.brand-intro-v18__logo{
  position:relative;
  width:100%;
  aspect-ratio:493/92;
  margin:auto;
  transform:translateZ(0);
}
.brand-intro-v18__mark{
  position:absolute;
  left:0;top:0;
  width:26.572%;height:100%;
  object-fit:contain;
  opacity:0;
  transform:rotate(-132deg) scale(.66) translateZ(0);
  transform-origin:center;
  will-change:transform,opacity;
}
.brand-intro-v18__wordmark{
  position:absolute;
  inset:0;
  display:block;
  clip-path:inset(0 100% 0 27.5%);
  opacity:0;
  will-change:clip-path,opacity;
}
.brand-intro-v18__wordmark img{
  display:block;
  width:100%;height:100%;
  object-fit:contain;
}
.brand-intro-v18__shine{
  position:absolute;
  top:-18%;bottom:-18%;
  left:17%;width:10%;
  opacity:0;
  transform:translate3d(-180%,0,0) skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent);
  pointer-events:none;
}
.brand-intro-v18__descriptor{
  margin-top:28px;
  color:#a51f38;
  font-size:11px;
  line-height:1.3;
  font-weight:900;
  letter-spacing:.32em;
  text-transform:uppercase;
  opacity:0;
  transform:translate3d(0,10px,0);
}
.brand-intro-v18__line{
  width:min(68%,390px);
  height:2px;
  margin:20px auto 0;
  overflow:hidden;
  background:rgba(54,180,174,.12);
}
.brand-intro-v18__line span{
  display:block;
  width:100%;height:100%;
  background:linear-gradient(90deg,#36b4ae,#c52d47);
  transform:translate3d(-101%,0,0);
}
.brand-intro-v18__rings{
  position:absolute;
  left:50%;top:50%;
  width:min(78vw,720px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  pointer-events:none;
  opacity:.34;
}
.brand-intro-v18__rings i{
  position:absolute;
  inset:0;
  border:1px solid rgba(54,180,174,.20);
  border-radius:50%;
}
.brand-intro-v18__rings i:nth-child(2){inset:13%;border-color:rgba(197,45,71,.13)}
.brand-intro-v18__rings i:nth-child(3){inset:27%;border-color:rgba(54,180,174,.22)}
.brand-intro-v18__glow{
  position:absolute;
  width:42vw;height:42vw;
  border-radius:50%;
  opacity:.18;
  pointer-events:none;
}
.brand-intro-v18__glow--mint{left:-24vw;top:-24vw;background:radial-gradient(circle,#36b4ae,transparent 68%)}
.brand-intro-v18__glow--red{right:-24vw;bottom:-24vw;background:radial-gradient(circle,#c52d47,transparent 68%)}
.brand-intro-v18__skip{
  position:absolute;
  right:24px;top:22px;
  z-index:5;
  padding:9px 14px;
  border:1px solid rgba(23,19,15,.20);
  border-radius:999px;
  background:rgba(255,248,239,.72);
  color:#65574b;
  font-size:10px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.brand-intro--v18.is-playing .brand-intro-v18__eyebrow{animation:v18FadeUp .48s ease-out .08s both}
.brand-intro--v18.is-playing .brand-intro-v18__mark{animation:v18Mark .82s cubic-bezier(.17,.88,.22,1) .16s both}
.brand-intro--v18.is-playing .brand-intro-v18__wordmark{animation:v18Word .86s cubic-bezier(.17,.82,.22,1) .62s both}
.brand-intro--v18.is-playing .brand-intro-v18__shine{animation:v18Shine .72s ease-out .92s both}
.brand-intro--v18.is-playing .brand-intro-v18__descriptor{animation:v18FadeUp .55s ease-out 1.30s both}
.brand-intro--v18.is-playing .brand-intro-v18__line span{animation:v18Line .72s cubic-bezier(.2,.8,.2,1) 1.36s both}
.brand-intro--v18.is-playing .brand-intro-v18__rings{animation:v18Rings 1.55s cubic-bezier(.18,.78,.2,1) .04s both}
.brand-intro--v18.is-closing{
  opacity:0;
  transform:scale(1.012) translateZ(0);
  transition:opacity .56s ease,transform .62s cubic-bezier(.2,.75,.2,1);
}
.brand-intro--v18.is-closing-fast{opacity:0;transition:opacity .22s ease}
@keyframes v18Mark{
  0%{opacity:0;transform:rotate(-132deg) scale(.66) translateZ(0)}
  62%{opacity:1;transform:rotate(9deg) scale(1.035) translateZ(0)}
  100%{opacity:1;transform:rotate(0) scale(1) translateZ(0)}
}
@keyframes v18Word{
  0%{opacity:0;clip-path:inset(0 100% 0 27.5%);transform:translate3d(-10px,0,0)}
  100%{opacity:1;clip-path:inset(0 0 0 27.5%);transform:none}
}
@keyframes v18Shine{
  0%{opacity:0;transform:translate3d(-180%,0,0) skewX(-18deg)}
  22%{opacity:.8}
  100%{opacity:0;transform:translate3d(700%,0,0) skewX(-18deg)}
}
@keyframes v18FadeUp{to{opacity:1;transform:none}}
@keyframes v18Line{to{transform:none}}
@keyframes v18Rings{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.72) rotate(-10deg)}
  100%{opacity:.34;transform:translate(-50%,-50%) scale(1) rotate(0)}
}

/* Geometry-safe first-screen entrance. No vertical translation for text or photos. */
body.page-home .hero-copy,
body.page-home .badge-323,
body.page-home .hero-photo,
body.page-about .about-hero-v2__copy,
body.page-about .about-hero-v2__visual,
body:not(.page-home):not(.page-about) .page-hero-grid > :first-child,
body:not(.page-home):not(.page-about) .page-hero-image{
  filter:none!important;
  transition:none!important;
}
body.page-home:not(.first-screen-ready) .hero-copy,
body.page-about:not(.first-screen-ready) .about-hero-v2__copy,
body:not(.page-home):not(.page-about):not(.first-screen-ready) .page-hero-grid > :first-child{
  opacity:0!important;
  transform:translate3d(-20px,0,0)!important;
}
body.page-home:not(.first-screen-ready) .badge-323,
body.page-about:not(.first-screen-ready) .about-hero-v2__visual,
body:not(.page-home):not(.page-about):not(.first-screen-ready) .page-hero-image{
  opacity:0!important;
  transform:translate3d(20px,0,0)!important;
}
body.page-home:not(.first-screen-ready) .hero-photo{opacity:0!important}
body.page-home.first-screen-ready .hero-copy,
body.page-about.first-screen-ready .about-hero-v2__copy,
body:not(.page-home):not(.page-about).first-screen-ready .page-hero-grid > :first-child{
  opacity:1!important;
  transform:none!important;
  transition:opacity .82s ease,transform .90s cubic-bezier(.18,.78,.22,1)!important;
}
body.page-home.first-screen-ready .badge-323,
body.page-about.first-screen-ready .about-hero-v2__visual,
body:not(.page-home):not(.page-about).first-screen-ready .page-hero-image{
  opacity:1!important;
  transform:none!important;
  transition:opacity .90s ease .12s,transform 1s cubic-bezier(.18,.78,.22,1) .12s!important;
}
body.page-home.first-screen-ready .hero-photo{
  opacity:1!important;
  transition:opacity 1.05s ease!important;
}

/* Never let the generic media system alter first-screen image geometry. */
.hero-photo img,
.page-hero-image img,
.about-hero-v2__visual img{
  opacity:1!important;
}
.hero-photo[data-premium-media] img,
.page-hero-image[data-premium-media] img,
.about-hero-v2__visual [data-premium-media] img{
  opacity:1!important;
  filter:none!important;
}

@media(max-width:600px){
  .brand-intro-v18__stage{width:min(88vw,520px)}
  .brand-intro-v18__eyebrow{font-size:8px;letter-spacing:.20em;margin-bottom:18px}
  .brand-intro-v18__descriptor{font-size:8px;letter-spacing:.20em;margin-top:19px}
  .brand-intro-v18__line{margin-top:15px}
  .brand-intro-v18__skip{right:12px;top:12px;padding:8px 11px}
  body.page-home:not(.first-screen-ready) .hero-copy,
  body.page-about:not(.first-screen-ready) .about-hero-v2__copy,
  body:not(.page-home):not(.page-about):not(.first-screen-ready) .page-hero-grid > :first-child{
    transform:translate3d(-12px,0,0)!important;
  }
  body.page-home:not(.first-screen-ready) .badge-323,
  body.page-about:not(.first-screen-ready) .about-hero-v2__visual,
  body:not(.page-home):not(.page-about):not(.first-screen-ready) .page-hero-image{
    transform:translate3d(12px,0,0)!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .brand-intro--v18{display:none!important}
  body .hero-copy,body .badge-323,body .hero-photo,
  body .about-hero-v2__copy,body .about-hero-v2__visual,
  body .page-hero-grid > :first-child,body .page-hero-image{
    opacity:1!important;transform:none!important;transition:none!important
  }
}
