/**
 * Homepage motion — scoped to body.home .sn-homepage
 * Transform/opacity only. No layout property animations.
 */

:root {
  --sn-motion-fast: 160ms;
  --sn-motion-normal: 480ms;
  --sn-motion-slow: 900ms;
  --sn-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --sn-perspective: 1400px;
  --sn-hero-tilt-x: 0deg;
  --sn-hero-tilt-y: 0deg;
  --sn-hero-glow-x: 50%;
  --sn-hero-glow-y: 50%;
  --sn-hero-scene-x: 0px;
  --sn-hero-scene-y: 0px;
  --sn-hero-scroll-y: 0px;
  --sn-hero-scroll-fade: 1;
  --sn-hero-shadow-x: 0px;
  --sn-hero-shadow-y: 36px;
  --sn-card-tilt-x: 0deg;
  --sn-card-tilt-y: 0deg;
  --sn-card-glow-x: 50%;
  --sn-card-glow-y: 50%;
  --sn-card-shine: 50%;
  --sn-card-lift: 0px;
  --sn-eco-glow-x: 50%;
  --sn-eco-glow-y: 50%;
  --sn-cta-glow-x: 50%;
  --sn-cta-glow-y: 40%;
  --sn-spot-x: 50%;
  --sn-spot-y: 28%;
}

body.home .sn-homepage.sn-has-spotlight::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 40;
  opacity: 0.55;
  background: radial-gradient(
    560px circle at var(--sn-spot-x) var(--sn-spot-y),
    rgba(255, 255, 255, 0.14) 0%,
    rgba(122, 184, 72, 0.05) 28%,
    transparent 55%
  );
  mix-blend-mode: soft-light;
}

/* Why SafetyNet / Enterprise Advantage motion accents */
.js-enabled body.home .sn-home-advantages__grid .sn-adv-card.sn-reveal {
  transition-delay: calc(var(--sn-adv-i, 0) * 75ms);
}

body.home .sn-homepage .sn-adv-card.is-tilting {
  border-color: rgba(255, 255, 255, 0.3);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.06) 100%);
}

body.home .sn-homepage .sn-adv-card.is-tilting::before {
  opacity: 1;
}

body.home .sn-homepage .sn-adv-card.is-tilting::after {
  opacity: 0.75;
}

body.home .sn-homepage .sn-adv-card .sn-adv-card__index {
  transition: color 240ms ease, border-color 240ms ease, background 240ms ease;
}

body.home .sn-homepage .sn-adv-card.is-tilting .sn-adv-card__index,
body.home .sn-homepage .sn-adv-card:hover .sn-adv-card__index {
  color: #ffb199;
  border-color: rgba(240, 89, 43, 0.35);
  background: rgba(240, 89, 43, 0.12);
  transform: none;
}

body.home .sn-homepage .sn-section-depth > .sn-container,
body.home .sn-homepage .sn-section-depth > .sn-home-mission__inner,
body.home .sn-homepage .sn-section-depth > .sn-stats {
  transform: translate3d(0, var(--sn-section-y, 0px), 0);
  transition: transform 100ms linear;
}

body.home .sn-homepage .sn-section-depth.is-in-view {
  --sn-section-glow: 1;
}

/* -------------------------------------------------------------------------- */
/* Reveal system (progressive enhancement)                                     */
/* -------------------------------------------------------------------------- */
.js-enabled body.home .sn-homepage .sn-reveal {
  opacity: 0;
  transform: translate3d(var(--sn-reveal-x, 0), var(--sn-reveal-y, 40px), 0) scale(var(--sn-reveal-scale, 0.97));
  filter: blur(4px);
  transition:
    opacity 900ms var(--sn-motion-ease),
    transform 900ms var(--sn-motion-ease),
    filter 900ms var(--sn-motion-ease);
  will-change: opacity, transform, filter;
}

.js-enabled body.home .sn-homepage .sn-reveal-up { --sn-reveal-y: 44px; }
.js-enabled body.home .sn-homepage .sn-reveal-left { --sn-reveal-x: -40px; --sn-reveal-y: 0; }
.js-enabled body.home .sn-homepage .sn-reveal-right { --sn-reveal-x: 40px; --sn-reveal-y: 0; }
.js-enabled body.home .sn-homepage .sn-reveal-scale { --sn-reveal-y: 22px; --sn-reveal-scale: 0.9; }

.js-enabled body.home .sn-homepage .sn-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
  will-change: auto;
}

/* -------------------------------------------------------------------------- */
/* Hero entrance + 3D stage                                                    */
/* -------------------------------------------------------------------------- */
body.home .sn-home-hero {
  perspective: var(--sn-perspective);
}

body.home .sn-home-hero__stage {
  transform-style: preserve-3d;
  transform: translate3d(0, var(--sn-hero-scroll-y, 0px), 0);
  opacity: var(--sn-hero-scroll-fade, 1);
  transition: opacity 160ms linear;
}

body.home .sn-home-hero__content {
  transition: transform var(--sn-motion-normal) var(--sn-motion-ease);
}

body.home .sn-home-hero__frame {
  transform-style: preserve-3d;
  transition:
    transform var(--sn-motion-normal) var(--sn-motion-ease),
    box-shadow var(--sn-motion-normal) var(--sn-motion-ease);
  position: relative;
}

body.home .sn-home-hero__frame::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--sn-motion-normal) var(--sn-motion-ease);
  background: radial-gradient(
    circle at var(--sn-hero-glow-x) var(--sn-hero-glow-y),
    rgba(255, 255, 255, 0.34) 0%,
    rgba(255, 255, 255, 0.08) 28%,
    rgba(255, 255, 255, 0) 58%
  );
  z-index: 5;
  mix-blend-mode: soft-light;
}

body.home .sn-home-hero.is-parallax-active .sn-home-hero__frame::before {
  opacity: 1;
}

body.home .sn-home-hero.is-parallax-active .sn-home-hero__scene {
  /* Keep zoom loop running; only shift with parallax vars */
  animation-play-state: running;
  /* translate layered via CSS vars without killing GSAP scale when inactive */
}

body.home .sn-home-hero.is-parallax-active .sn-home-hero__frame {
  transform:
    rotateX(var(--sn-hero-tilt-x, 0deg))
    rotateY(var(--sn-hero-tilt-y, 0deg))
    translateZ(16px)
    scale(1.015);
  box-shadow:
    var(--sn-hero-shadow-x, 0px) var(--sn-hero-shadow-y, 36px) 72px rgba(34, 68, 28, 0.28),
    0 2px 0 rgba(255, 255, 255, 0.55) inset;
}

body.home .sn-home-hero.is-parallax-active .sn-home-hero__billboard-copy {
  /* Brand + headline stay locked; only the photo zooms/shifts */
  transform: none !important;
}

body.home .sn-home-hero__billboard-copy {
  transition: transform var(--sn-motion-normal) var(--sn-motion-ease);
}

body.home .sn-home-hero.is-parallax-active .sn-home-hero__content {
  transform: none;
}

body.home .sn-home-hero__split .sn-home-hero__content {
  transform: none !important;
}

/* Staggered hero typography entrance */
.js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__keep,
.js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__title-line {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
}

.js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__frame {
  opacity: 0;
}

.js-enabled body.home .sn-homepage.sn-hero-entered .sn-home-hero__frame {
  animation: sn-hero-frame-in 1100ms var(--sn-motion-ease) both;
}

.js-enabled body.home .sn-homepage.sn-hero-entered .sn-home-hero__keep {
  animation: sn-hero-line-in 900ms var(--sn-motion-ease) 140ms both;
}

.js-enabled body.home .sn-homepage.sn-hero-entered .sn-home-hero__title-line--env {
  animation: sn-hero-line-in 900ms var(--sn-motion-ease) 260ms both;
}

.js-enabled body.home .sn-homepage.sn-hero-entered .sn-home-hero__title-line--clean {
  animation: sn-hero-line-in 900ms var(--sn-motion-ease) 380ms both;
}

.js-enabled body.home .sn-homepage.sn-hero-entered .sn-home-hero__title-line--healthy {
  animation: sn-hero-line-in 900ms var(--sn-motion-ease) 500ms both;
}

@keyframes sn-hero-frame-in {
  from {
    opacity: 0;
    filter: blur(2px);
  }
  to {
    opacity: 1;
    filter: blur(0);
  }
}

@keyframes sn-hero-line-in {
  from {
    opacity: 0;
    transform: translate3d(0, 28px, 0) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* -------------------------------------------------------------------------- */
/* Card tilt + specular                                                        */
/* -------------------------------------------------------------------------- */
body.home .sn-homepage .sn-tilt {
  transform-style: preserve-3d;
  perspective: 1100px;
  transition:
    transform var(--sn-motion-normal) var(--sn-motion-ease),
    box-shadow var(--sn-motion-normal) var(--sn-motion-ease);
  position: relative;
  overflow: hidden;
}

body.home .sn-homepage .sn-tilt.is-tilting {
  transform:
    rotateX(var(--sn-card-tilt-x))
    rotateY(var(--sn-card-tilt-y))
    translateZ(var(--sn-card-lift, 10px))
    scale(1.035);
  will-change: transform;
  box-shadow:
    0 28px 60px rgba(15, 23, 42, 0.18),
    0 2px 0 rgba(255, 255, 255, 0.5) inset;
  z-index: 2;
}

body.home .sn-homepage .sn-tilt::before {
  content: "";
  position: absolute;
  inset: -40% -60%;
  pointer-events: none;
  opacity: 0;
  z-index: 4;
  background: linear-gradient(
    115deg,
    transparent 35%,
    rgba(255, 255, 255, 0.22) var(--sn-card-shine, 50%),
    transparent 65%
  );
  transform: translateX(-18%) rotate(8deg);
  transition: opacity var(--sn-motion-fast) ease;
}

body.home .sn-homepage .sn-tilt.is-tilting::before {
  opacity: 1;
}

body.home .sn-homepage .sn-tilt::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--sn-motion-fast) ease;
  background: radial-gradient(
    circle at var(--sn-card-glow-x) var(--sn-card-glow-y),
    rgba(255, 255, 255, 0.22) 0%,
    rgba(255, 255, 255, 0) 55%
  );
  z-index: 3;
}

body.home .sn-homepage .sn-tilt.is-tilting::after {
  opacity: 1;
}

body.home .sn-homepage .sn-tilt__layer-bg,
body.home .sn-homepage .sn-env-card__bg,
body.home .sn-homepage .sn-portfolio-card__media img,
body.home .sn-homepage .sn-case-card__media img,
body.home .sn-homepage .sn-article-card__media img {
  transition: transform var(--sn-motion-slow) var(--sn-motion-ease), filter var(--sn-motion-slow) ease;
}

body.home .sn-homepage .sn-tilt:hover .sn-env-card__bg,
body.home .sn-homepage .sn-tilt:hover .sn-portfolio-card__media img {
  transform: scale(1.08);
  filter: brightness(1.02) saturate(1.1);
}

body.home .sn-homepage .sn-tilt:hover .sn-article-card__media img {
  transform: scale(1.035);
}

body.home .sn-homepage .sn-tilt:hover .sn-case-card__media img {
  transform: scale(1.03);
}

body.home .sn-homepage .sn-tilt .sn-env-card__content,
body.home .sn-homepage .sn-tilt .sn-portfolio-card__body,
body.home .sn-homepage .sn-tilt .sn-case-card__body,
body.home .sn-homepage .sn-tilt .sn-article-card__body,
body.home .sn-homepage .sn-tilt.sn-adv-card h3,
body.home .sn-homepage .sn-tilt.sn-adv-card p {
  transform: translateZ(18px);
  transform-style: preserve-3d;
}

body.home .sn-homepage .sn-tilt .sn-env-card__dot,
body.home .sn-homepage .sn-tilt .sn-portfolio-card__icon,
body.home .sn-homepage .sn-tilt .sn-adv-card__icon {
  transform: translateZ(28px);
}

body.home .sn-homepage .sn-tilt.sn-adv-card.is-tilting {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.06) 100%);
}

body.home .sn-homepage .sn-article-card:hover .sn-link svg,
body.home .sn-homepage .sn-article-card:hover .sn-link {
  transform: translateX(3px);
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease);
}

/* -------------------------------------------------------------------------- */
/* Ecosystem orbit motion                                                      */
/* -------------------------------------------------------------------------- */
body.home .sn-eco-orbit__hub-pulse {
  animation: sn-eco-breathe 4.5s ease-in-out infinite;
}

body.home .sn-eco-orbit__hub-icon {
  animation: sn-eco-icon-shield 3.2s ease-in-out infinite;
}

body.home .sn-eco-orbit__ring {
  animation: sn-eco-ring-pulse 5.5s ease-in-out infinite;
}

body.home .sn-eco-orbit__aura {
  position: absolute;
  inset: 8%;
  pointer-events: none;
  z-index: 0;
}

body.home .sn-eco-orbit__aura span {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(147, 197, 253, 0.35) 0%, rgba(147, 197, 253, 0) 70%);
  filter: blur(1px);
  animation: sn-eco-orb-float 7s ease-in-out infinite;
}

body.home .sn-eco-orbit__aura span:nth-child(1) {
  width: 88px;
  height: 88px;
  top: 12%;
  left: 18%;
  animation-delay: 0s;
}

body.home .sn-eco-orbit__aura span:nth-child(2) {
  width: 64px;
  height: 64px;
  top: 58%;
  right: 16%;
  background: radial-gradient(circle, rgba(134, 239, 172, 0.32) 0%, rgba(134, 239, 172, 0) 70%);
  animation-delay: -2.2s;
}

body.home .sn-eco-orbit__aura span:nth-child(3) {
  width: 50px;
  height: 50px;
  bottom: 18%;
  left: 42%;
  background: radial-gradient(circle, rgba(253, 186, 116, 0.28) 0%, rgba(253, 186, 116, 0) 70%);
  animation-delay: -4s;
}

body.home .sn-eco-orbit:hover .sn-eco-orbit__spinner,
body.home .sn-eco-orbit:hover .sn-eco-orbit__node-upright,
body.home .sn-eco-orbit.is-paused .sn-eco-orbit__spinner,
body.home .sn-eco-orbit.is-paused .sn-eco-orbit__node-upright {
  animation-play-state: paused;
}

body.home .sn-eco-orbit.is-paused .sn-eco-orbit__node-inner {
  transition: transform 280ms var(--sn-motion-ease), box-shadow 280ms var(--sn-motion-ease);
}

body.home .sn-eco-orbit__arm--wind .sn-eco-orbit__node-icon svg { animation: sn-eco-icon-wind 3.4s ease-in-out infinite; }
body.home .sn-eco-orbit__arm--shield .sn-eco-orbit__node-icon svg { animation: sn-eco-icon-shield 3.2s ease-in-out infinite; }
body.home .sn-eco-orbit__arm--droplet .sn-eco-orbit__node-icon svg { animation: sn-eco-icon-droplet 2.8s ease-in-out infinite; }
body.home .sn-eco-orbit__arm--robot .sn-eco-orbit__node-icon svg { animation: sn-eco-icon-robot 2.6s ease-in-out infinite; }
body.home .sn-eco-orbit__arm--sparkle .sn-eco-orbit__node-icon svg { animation: sn-eco-icon-sparkle 2.4s ease-in-out infinite; }
body.home .sn-eco-orbit__arm--bolt .sn-eco-orbit__node-icon svg { animation: sn-eco-icon-bolt 2.2s ease-in-out infinite; }

body.home .sn-eco-orbit__arm[data-eco-node="1"] .sn-eco-orbit__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out infinite; }
body.home .sn-eco-orbit__arm[data-eco-node="2"] .sn-eco-orbit__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 0.4s infinite; }
body.home .sn-eco-orbit__arm[data-eco-node="3"] .sn-eco-orbit__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 0.8s infinite; }
body.home .sn-eco-orbit__arm[data-eco-node="4"] .sn-eco-orbit__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 1.2s infinite; }
body.home .sn-eco-orbit__arm[data-eco-node="5"] .sn-eco-orbit__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 1.6s infinite; }
body.home .sn-eco-orbit__arm[data-eco-node="6"] .sn-eco-orbit__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 2s infinite; }

body.home .sn-eco-orbit__connector::after {
  opacity: 0.62;
  filter: drop-shadow(0 0 4px rgba(147, 197, 253, 0.35));
}

/* Legacy SVG motion (fallback) */
body.home .sn-eco-map__connectors path {
  stroke-dasharray: 6 4;
  animation: sn-eco-flow 12s linear infinite;
}

body.home .sn-eco-map__connectors path:nth-child(1) { animation-delay: 0s; }
body.home .sn-eco-map__connectors path:nth-child(2) { animation-delay: -2.4s; }
body.home .sn-eco-map__connectors path:nth-child(3) { animation-delay: -4.8s; }
body.home .sn-eco-map__connectors path:nth-child(4) { animation-delay: -7.2s; }
body.home .sn-eco-map__connectors path:nth-child(5) { animation-delay: -9.6s; }

body.home .sn-eco-map__hub-pulse {
  transform-origin: 720px 4271.55px;
  animation: sn-eco-breathe 4.5s ease-in-out infinite;
}

body.home .sn-eco-map__hub-icon {
  transform-origin: 720px 4251.3px;
  animation: sn-eco-icon-shield 3.2s ease-in-out infinite;
}

body.home .sn-eco-map__group {
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease), filter var(--sn-motion-fast) ease;
}

body.home .sn-eco-map__group:hover {
  transform: translateY(-4px);
}

body.home .sn-eco-map__group:hover .sn-eco-map__node-badge {
  transform: scale(1.08);
}

body.home .sn-eco-map__node-badge {
  transform-origin: center;
  transform-box: fill-box;
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease);
}

body.home .sn-eco-map__node-icon svg {
  transform-origin: center;
}

body.home .sn-eco-map__group--wind .sn-eco-map__node-icon svg {
  animation: sn-eco-icon-wind 3.4s ease-in-out infinite;
}

body.home .sn-eco-map__group--shield .sn-eco-map__node-icon svg {
  animation: sn-eco-icon-shield 3.2s ease-in-out infinite;
}

body.home .sn-eco-map__group--droplet .sn-eco-map__node-icon svg {
  animation: sn-eco-icon-droplet 2.8s ease-in-out infinite;
}

body.home .sn-eco-map__group--robot .sn-eco-map__node-icon svg {
  animation: sn-eco-icon-robot 2.6s ease-in-out infinite;
}

body.home .sn-eco-map__group--sparkle .sn-eco-map__node-icon svg {
  animation: sn-eco-icon-sparkle 2.4s ease-in-out infinite;
}

body.home .sn-eco-map__group--bolt .sn-eco-map__node-icon svg {
  animation: sn-eco-icon-bolt 2.2s ease-in-out infinite;
}

body.home .sn-eco-map__group[data-eco-node="1"] .sn-eco-map__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out infinite; }
body.home .sn-eco-map__group[data-eco-node="2"] .sn-eco-map__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 0.4s infinite; }
body.home .sn-eco-map__group[data-eco-node="3"] .sn-eco-map__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 0.8s infinite; }
body.home .sn-eco-map__group[data-eco-node="4"] .sn-eco-map__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 1.2s infinite; }
body.home .sn-eco-map__group[data-eco-node="5"] .sn-eco-map__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 1.6s infinite; }
body.home .sn-eco-map__group[data-eco-node="6"] .sn-eco-map__node-badge { animation: sn-eco-badge-pulse 4.2s ease-in-out 2s infinite; }

body.home .sn-eco-mobile__node-icon--wind svg { animation: sn-eco-icon-wind 3.4s ease-in-out infinite; }
body.home .sn-eco-mobile__node-icon--shield svg { animation: sn-eco-icon-shield 3.2s ease-in-out infinite; }
body.home .sn-eco-mobile__node-icon--droplet svg { animation: sn-eco-icon-droplet 2.8s ease-in-out infinite; }
body.home .sn-eco-mobile__node-icon--robot svg { animation: sn-eco-icon-robot 2.6s ease-in-out infinite; }
body.home .sn-eco-mobile__node-icon--sparkle svg { animation: sn-eco-icon-sparkle 2.4s ease-in-out infinite; }
body.home .sn-eco-mobile__node-icon--bolt svg { animation: sn-eco-icon-bolt 2.2s ease-in-out infinite; }

body.home .sn-home-ecosystem {
  position: relative;
}

body.home .sn-home-ecosystem::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--sn-motion-normal) ease;
  background: radial-gradient(
    circle at var(--sn-eco-glow-x) var(--sn-eco-glow-y),
    rgba(96, 165, 250, 0.12) 0%,
    rgba(96, 165, 250, 0) 48%
  );
  z-index: 0;
}

body.home .sn-home-ecosystem.is-glow-active::before {
  opacity: 1;
}

@keyframes sn-eco-flow {
  from { stroke-dashoffset: 0; }
  to { stroke-dashoffset: -40; }
}

@keyframes sn-eco-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

@keyframes sn-eco-ring-pulse {
  0%, 100% { opacity: 0.45; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
}

@keyframes sn-eco-orb-float {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.45; }
  50% { transform: translate3d(18px, -22px, 0) scale(1.25); opacity: 1; }
}

@keyframes sn-eco-badge-pulse {
  0%, 100% { opacity: 0.88; filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0)); }
  50% { opacity: 1; filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.22)); }
}

@keyframes sn-eco-icon-wind {
  0%, 100% { transform: translateX(0); opacity: 1; }
  50% { transform: translateX(2px); opacity: 0.88; }
}

@keyframes sn-eco-icon-droplet {
  0%, 100% { transform: translateY(0) scale(1); }
  45% { transform: translateY(2px) scale(0.96); }
  70% { transform: translateY(-1px) scale(1.04); }
}

@keyframes sn-eco-icon-shield {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

@keyframes sn-eco-icon-robot {
  0%, 100% { transform: translateY(0); }
  35% { transform: translateY(-1.5px); }
  70% { transform: translateY(1px); }
}

@keyframes sn-eco-icon-sparkle {
  0%, 100% { transform: rotate(0deg) scale(1); opacity: 1; }
  50% { transform: rotate(8deg) scale(1.1); opacity: 0.82; }
}

@keyframes sn-eco-icon-bolt {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0)); }
  40% { transform: scale(1.12); filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.35)); }
  55% { transform: scale(0.96); }
}

/* -------------------------------------------------------------------------- */
/* Stats + final CTA                                                           */
/* -------------------------------------------------------------------------- */
body.home .sn-homepage .sn-stat__value {
  transition: transform 420ms var(--sn-motion-ease), filter 420ms var(--sn-motion-ease);
}

body.home .sn-homepage .sn-stat__value.is-animating {
  transform: scale(1.04);
  filter: drop-shadow(0 6px 16px rgba(15, 23, 42, 0.12));
}

body.home .sn-homepage .sn-stat__value.is-complete {
  animation: sn-stat-settle 520ms var(--sn-motion-ease) both;
}

body.home .sn-home-stats.is-counting .sn-stat {
  animation: sn-stat-card-in 680ms var(--sn-motion-ease) both;
}

body.home .sn-home-stats.is-counting .sn-stat:nth-child(2) { animation-delay: 80ms; }
body.home .sn-home-stats.is-counting .sn-stat:nth-child(3) { animation-delay: 160ms; }
body.home .sn-home-stats.is-counting .sn-stat:nth-child(4) { animation-delay: 240ms; }

@keyframes sn-stat-settle {
  0% { transform: scale(1.06); }
  60% { transform: scale(0.985); }
  100% { transform: scale(1); }
}

@keyframes sn-stat-card-in {
  from { opacity: 0.65; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

body.home .sn-home-final-cta {
  position: relative;
  overflow: hidden;
}

body.home .sn-home-final-cta::before {
  content: "";
  position: absolute;
  inset: -20%;
  pointer-events: none;
  opacity: 0.55;
  background:
    radial-gradient(circle at var(--sn-cta-glow-x) var(--sn-cta-glow-y), rgba(255, 255, 255, 0.18) 0%, transparent 42%),
    radial-gradient(circle at 20% 80%, rgba(56, 189, 248, 0.16) 0%, transparent 40%),
    radial-gradient(circle at 80% 20%, rgba(250, 146, 84, 0.14) 0%, transparent 38%);
  animation: sn-cta-drift 12s ease-in-out infinite alternate;
  z-index: 0;
  transition: opacity var(--sn-motion-normal) ease;
}

body.home .sn-home-final-cta.is-glow-active::before {
  opacity: 0.9;
  animation-play-state: paused;
}

body.home .sn-home-final-cta > .sn-container {
  position: relative;
  z-index: 1;
}

@keyframes sn-cta-drift {
  from { transform: translate3d(-2%, -1%, 0) scale(1); }
  to { transform: translate3d(2%, 1.5%, 0) scale(1.04); }
}

/* -------------------------------------------------------------------------- */
/* Magnetic buttons                                                            */
/* -------------------------------------------------------------------------- */
body.home .sn-magnetic {
  position: relative;
  overflow: hidden;
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease), box-shadow var(--sn-motion-fast) var(--sn-motion-ease);
}

body.home .sn-magnetic__inner {
  display: inline-flex;
  align-items: center;
  gap: inherit;
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease);
}

body.home .sn-magnetic::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.28) 48%, transparent 66%);
  transform: translateX(-40%);
  transition: opacity var(--sn-motion-fast) ease, transform 480ms var(--sn-motion-ease);
}

body.home .sn-magnetic.is-magnetic::after {
  opacity: 1;
  transform: translateX(30%);
}

body.home .sn-magnetic:active {
  transform: scale(0.985);
}

body.home .sn-magnetic:hover .sn-magnetic__inner svg {
  transform: translateX(3px);
}

/* -------------------------------------------------------------------------- */
/* Header scroll state                                                         */
/* -------------------------------------------------------------------------- */
body.home .sn-header.is-scrolled {
  background: rgba(255, 255, 255, 0.96);
  border-bottom-color: rgba(226, 232, 240, 0.95);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  transition:
    background var(--sn-motion-normal) var(--sn-motion-ease),
    border-color var(--sn-motion-normal) var(--sn-motion-ease),
    box-shadow var(--sn-motion-normal) var(--sn-motion-ease);
}

body.home .sn-menu > li > a {
  position: relative;
}

body.home .sn-menu > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 2px;
  background: var(--sn-orange);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease);
}

body.home .sn-menu > li > a:hover::after,
body.home .sn-menu > li.current-menu-item > a::after {
  transform: scaleX(1);
}

body.home .sn-header .sn-btn--primary:hover,
body.home .sn-header .sn-btn--outline:hover {
  transform: translateY(-1px);
  transition: transform var(--sn-motion-fast) var(--sn-motion-ease);
}

/* -------------------------------------------------------------------------- */
/* Reduced motion                                                              */
/* -------------------------------------------------------------------------- */
body.sn-motion-paused .sn-eco-orbit__spinner,
body.sn-motion-paused .sn-eco-orbit__node-upright,
body.sn-motion-paused .sn-eco-orbit__hub-pulse,
body.sn-motion-paused .sn-eco-orbit__hub-icon,
body.sn-motion-paused .sn-eco-orbit__node-badge,
body.sn-motion-paused .sn-eco-orbit__node-icon svg,
body.sn-motion-paused .sn-eco-orbit__connector::after,
body.sn-motion-paused .sn-eco-orbit__ring,
body.sn-motion-paused .sn-eco-orbit__aura span,
body.sn-motion-paused .sn-home-final-cta::before,
body.sn-motion-paused .sn-eco-map__connectors path,
body.sn-motion-paused .sn-eco-map__hub-pulse,
body.sn-motion-paused .sn-eco-map__hub-icon,
body.sn-motion-paused .sn-eco-map__node-badge,
body.sn-motion-paused .sn-eco-map__node-icon svg,
body.sn-motion-paused .sn-eco-mobile__node-icon svg {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  .js-enabled body.home .sn-homepage .sn-reveal,
  .js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__keep,
  .js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__title-line,
  .js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__lede,
  .js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__actions .sn-btn,
  .js-enabled body.home .sn-homepage:not(.sn-hero-entered) .sn-home-hero__frame {
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 767px), (pointer: coarse) {
  body.home .sn-home-hero.is-parallax-active .sn-home-hero__content,
  body.home .sn-home-hero.is-parallax-active .sn-home-hero__frame,
  body.home .sn-home-hero.is-parallax-active .sn-home-hero__billboard-copy,
  body.home .sn-homepage .sn-tilt.is-tilting,
  body.home .sn-magnetic {
    transform: none !important;
  }

  body.home .sn-home-hero__frame::before,
  body.home .sn-home-ecosystem::before,
  body.home .sn-homepage .sn-tilt::before,
  body.home .sn-homepage .sn-tilt::after,
  body.home .sn-magnetic::after,
  body.home .sn-eco-orbit__aura,
  body.home .sn-homepage.sn-has-spotlight::after {
    display: none;
  }

  body.home .sn-homepage .sn-section-depth > .sn-container,
  body.home .sn-homepage .sn-section-depth > .sn-home-mission__inner,
  body.home .sn-homepage .sn-section-depth > .sn-stats {
    transform: none !important;
  }

}
