/* ============================================================
   SOUNDNOTE — Premium Animation System
   Cinematic motion across every page · GPU-optimised · a11y-safe
   ============================================================ */

:root {
  --sn-anim-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --sn-anim-sharp: cubic-bezier(0.16, 1, 0.3, 1);
  --sn-anim-gold: #C8A15A;
  --sn-stagger-step: 80ms;
}

/* ------------------------------------------------------------
   1. PAGE ENTRANCE — elegant curtain lift
   ------------------------------------------------------------ */
html.js-anim body {
  opacity: 0;
  transition: opacity 0.55s var(--sn-anim-ease);
}

html.js-anim body.sn-page-ready {
  opacity: 1;
}

/* Gold scroll progress — subtle luxury indicator */
.sn-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  z-index: 9999;
  background: linear-gradient(90deg, #A67C2E, var(--sn-anim-gold), #E8C989);
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
  will-change: transform;
}

/* ------------------------------------------------------------
   2. INNER PAGE HERO — Ken Burns + staggered text rise
   ------------------------------------------------------------ */
.sn-page-hero .sn-hero-media > img {
  animation: snAnimKenBurns 18s var(--sn-anim-ease) forwards;
  will-change: transform;
}

@keyframes snAnimKenBurns {
  from { transform: scale(1.12); }
  to   { transform: scale(1); }
}

.sn-page-hero .sn-breadcrumb,
.sn-page-hero .sn-eyebrow,
.sn-page-hero .sn-hero-title,
.sn-page-hero .sn-hero-subtitle {
  opacity: 0;
  transform: translateY(22px);
  animation: snAnimHeroRise 0.9s var(--sn-anim-ease) forwards;
}

.sn-page-hero .sn-breadcrumb    { animation-delay: 0.08s; }
.sn-page-hero .sn-eyebrow       { animation-delay: 0.18s; }
.sn-page-hero .sn-hero-title    { animation-delay: 0.32s; }
.sn-page-hero .sn-hero-subtitle { animation-delay: 0.48s; }

@keyframes snAnimHeroRise {
  to { opacity: 1; transform: translateY(0); }
}

/* Gold accent line draws under hero title */
.sn-page-hero .sn-hero-title::after {
  content: '';
  display: block;
  width: 0;
  height: 2px;
  margin-top: 0.85rem;
  background: linear-gradient(90deg, var(--sn-anim-gold), transparent);
  animation: snAnimLineDraw 0.8s var(--sn-anim-sharp) 0.7s forwards;
}

@keyframes snAnimLineDraw {
  to { width: 56px; }
}

/* Hero media frame reveal */
.sn-page-hero .sn-hero-media {
  clip-path: inset(0 0 0 0);
  animation: snAnimFrameReveal 1.1s var(--sn-anim-sharp) forwards;
}

@keyframes snAnimFrameReveal {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}

/* ------------------------------------------------------------
   3. GOLD DIVIDER — draws on scroll into view
   ------------------------------------------------------------ */
html.js-anim .sn-divider {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.9s var(--sn-anim-sharp);
}

html.js-anim .sn-divider-center {
  transform-origin: center center;
}

html.js-anim .sn-divider.is-drawn {
  transform: scaleX(1);
}

/* ------------------------------------------------------------
   4. STAGGER REVEAL — cascading children entrance
   ------------------------------------------------------------ */
.sn-stagger > *,
.sn-stagger > .col-lg-4,
.sn-stagger > .col-lg-6,
.sn-stagger > .col-md-6 {
  opacity: 0;
  transform: translateY(36px);
  transition:
    opacity 0.75s var(--sn-anim-ease),
    transform 0.75s var(--sn-anim-ease);
}

.sn-stagger.is-visible > *:nth-child(1),
.sn-stagger.is-visible > .col-lg-4:nth-child(1),
.sn-stagger.is-visible > .col-lg-6:nth-child(1),
.sn-stagger.is-visible > .col-md-6:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: calc(var(--sn-stagger-step) * 0); }

.sn-stagger.is-visible > *:nth-child(2),
.sn-stagger.is-visible > .col-lg-4:nth-child(2),
.sn-stagger.is-visible > .col-lg-6:nth-child(2),
.sn-stagger.is-visible > .col-md-6:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: calc(var(--sn-stagger-step) * 1); }

.sn-stagger.is-visible > *:nth-child(3),
.sn-stagger.is-visible > .col-lg-4:nth-child(3),
.sn-stagger.is-visible > .col-lg-6:nth-child(3),
.sn-stagger.is-visible > .col-md-6:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: calc(var(--sn-stagger-step) * 2); }

.sn-stagger.is-visible > *:nth-child(4),
.sn-stagger.is-visible > .col-lg-4:nth-child(4),
.sn-stagger.is-visible > .col-lg-6:nth-child(4),
.sn-stagger.is-visible > .col-md-6:nth-child(4) { opacity: 1; transform: translateY(0); transition-delay: calc(var(--sn-stagger-step) * 3); }

.sn-stagger.is-visible > *:nth-child(5),
.sn-stagger.is-visible > .col-lg-4:nth-child(5),
.sn-stagger.is-visible > .col-lg-6:nth-child(5),
.sn-stagger.is-visible > .col-md-6:nth-child(5) { opacity: 1; transform: translateY(0); transition-delay: calc(var(--sn-stagger-step) * 4); }

.sn-stagger.is-visible > *:nth-child(6),
.sn-stagger.is-visible > .col-lg-4:nth-child(6),
.sn-stagger.is-visible > .col-lg-6:nth-child(6),
.sn-stagger.is-visible > .col-md-6:nth-child(6) { opacity: 1; transform: translateY(0); transition-delay: calc(var(--sn-stagger-step) * 5); }

.sn-stagger.is-visible > *:nth-child(n+7) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(var(--sn-stagger-step) * 6);
}

/* Project grid stagger */
.pj-grid.sn-stagger > .pj-card {
  opacity: 0;
  transform: translateY(40px) scale(0.98);
  transition:
    opacity 0.8s var(--sn-anim-ease),
    transform 0.8s var(--sn-anim-ease);
}

.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(1) { opacity: 1; transform: none; transition-delay: 0ms; }
.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(2) { opacity: 1; transform: none; transition-delay: 100ms; }
.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(3) { opacity: 1; transform: none; transition-delay: 200ms; }
.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(4) { opacity: 1; transform: none; transition-delay: 300ms; }
.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(5) { opacity: 1; transform: none; transition-delay: 400ms; }
.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(6) { opacity: 1; transform: none; transition-delay: 500ms; }
.pj-grid.sn-stagger.is-visible > .pj-card:nth-child(n+7) { opacity: 1; transform: none; transition-delay: 600ms; }

/* ------------------------------------------------------------
   5. TIMELINE — progressive line draw
   ------------------------------------------------------------ */
.sn-timeline {
  position: relative;
}

.sn-timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 2px;
  height: 0;
  background: linear-gradient(180deg, var(--sn-anim-gold), rgba(200, 161, 90, 0.2));
  transition: height 1.4s var(--sn-anim-ease);
}

.sn-timeline.is-drawn::before {
  height: 100%;
}

.sn-timeline__item {
  opacity: 0;
  transform: translateX(-16px);
  transition: opacity 0.7s var(--sn-anim-ease), transform 0.7s var(--sn-anim-ease);
}

.sn-timeline.is-drawn .sn-timeline__item {
  opacity: 1;
  transform: translateX(0);
}

.sn-timeline.is-drawn .sn-timeline__item:nth-child(1) { transition-delay: 0.15s; }
.sn-timeline.is-drawn .sn-timeline__item:nth-child(2) { transition-delay: 0.3s; }
.sn-timeline.is-drawn .sn-timeline__item:nth-child(3) { transition-delay: 0.45s; }
.sn-timeline.is-drawn .sn-timeline__item:nth-child(4) { transition-delay: 0.6s; }
.sn-timeline.is-drawn .sn-timeline__item:nth-child(n+5) { transition-delay: 0.75s; }

/* ------------------------------------------------------------
   6. CARDS — 3D tilt + gold shimmer sweep
   ------------------------------------------------------------ */
.sn-media-card,
.sn-blog-card,
.sn-review-card,
.sn-editorial-service-card,
.sn-product-tile,
.sn-contact-feature,
.sn-tech-phil-card {
  transition:
    transform 0.45s var(--sn-anim-ease),
    box-shadow 0.45s var(--sn-anim-ease);
  transform-style: preserve-3d;
  will-change: transform;
}

.sn-media-card:hover,
.sn-blog-card:hover,
.sn-review-card:hover,
.sn-editorial-service-card:hover,
.sn-product-tile:hover,
.sn-contact-feature:hover,
.sn-tech-phil-card:hover {
  transform: translateY(-5px) perspective(800px) rotateX(1.5deg);
  box-shadow: 0 28px 56px -20px rgba(26, 26, 26, 0.35);
}

/* Gold shimmer sweep on card images */
.sn-media-card-img,
.sn-blog-card-img,
.sn-video-card > a {
  position: relative;
  overflow: hidden;
  display: block;
}

.sn-media-card-img::after,
.sn-blog-card-img::after,
.sn-video-card > a::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(200, 161, 90, 0.18) 50%, transparent 60%);
  transform: translateX(-120%);
  transition: transform 0.7s var(--sn-anim-ease);
  pointer-events: none;
  z-index: 2;
}

.sn-media-card:hover .sn-media-card-img::after,
.sn-blog-card:hover .sn-blog-card-img::after,
.sn-video-card:hover > a::after {
  transform: translateX(120%);
}

/* ------------------------------------------------------------
   7. VIDEO PLAY BUTTON — cinematic pulse
   ------------------------------------------------------------ */
.sn-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 64px;
  height: 64px;
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  z-index: 3;
  transition: transform 0.4s var(--sn-anim-ease), border-color 0.4s;
}

.sn-video-play::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 10px 0 10px 16px;
  border-color: transparent transparent transparent #fff;
}

.sn-video-play::after {
  content: '';
  position: absolute;
  inset: -8px;
  border: 1px solid rgba(200, 161, 90, 0.5);
  border-radius: 50%;
  animation: snAnimPlayPulse 2.4s ease-out infinite;
}

@keyframes snAnimPlayPulse {
  0%   { transform: scale(1); opacity: 0.7; }
  70%  { transform: scale(1.35); opacity: 0; }
  100% { transform: scale(1.35); opacity: 0; }
}

.sn-video-card:hover .sn-video-play {
  transform: translate(-50%, -50%) scale(1.08);
  border-color: var(--sn-anim-gold);
}

.sn-video-card > a img {
  transition: transform 1s var(--sn-anim-ease), filter 0.6s;
}

.sn-video-card:hover > a img {
  transform: scale(1.06);
  filter: brightness(0.85);
}

/* ------------------------------------------------------------
   8. REVIEW STARS — sequential gold fill
   ------------------------------------------------------------ */
.sn-stars {
  display: inline-flex;
  gap: 3px;
  letter-spacing: 0;
}

.sn-stars.sn-stars--animate {
  color: #ddd;
  animation: snAnimStarFill 0.9s var(--sn-anim-ease) forwards;
}

@keyframes snAnimStarFill {
  to { color: var(--sn-anim-gold); }
}

/* Quote mark accent */
.sn-review-quote::before {
  content: '\201C';
  display: block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 3.5rem;
  line-height: 1;
  color: var(--sn-anim-gold);
  opacity: 0;
  transform: translateY(12px);
  margin-bottom: 0.25rem;
  transition: opacity 0.6s var(--sn-anim-ease), transform 0.6s var(--sn-anim-ease);
}

.sn-review-card.is-visible .sn-review-quote::before {
  opacity: 0.45;
  transform: translateY(0);
}

/* ------------------------------------------------------------
   9. CERT STRIP + TRUST STRIP — sequential logo entrance
   ------------------------------------------------------------ */
.sn-cert-list li,
.sn-trust-strip__item {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--sn-anim-ease), transform 0.6s var(--sn-anim-ease);
}

.sn-cert-list.is-visible li:nth-child(1),
.sn-trust-strip.is-visible .sn-trust-strip__item:nth-child(1) { opacity: 1; transform: none; transition-delay: 0ms; }
.sn-cert-list.is-visible li:nth-child(2),
.sn-trust-strip.is-visible .sn-trust-strip__item:nth-child(2) { opacity: 1; transform: none; transition-delay: 80ms; }
.sn-cert-list.is-visible li:nth-child(3),
.sn-trust-strip.is-visible .sn-trust-strip__item:nth-child(3) { opacity: 1; transform: none; transition-delay: 160ms; }
.sn-cert-list.is-visible li:nth-child(4),
.sn-trust-strip.is-visible .sn-trust-strip__item:nth-child(4) { opacity: 1; transform: none; transition-delay: 240ms; }
.sn-cert-list.is-visible li:nth-child(5),
.sn-trust-strip.is-visible .sn-trust-strip__item:nth-child(5) { opacity: 1; transform: none; transition-delay: 320ms; }
.sn-cert-list.is-visible li:nth-child(n+6),
.sn-trust-strip.is-visible .sn-trust-strip__item:nth-child(n+6) { opacity: 1; transform: none; transition-delay: 400ms; }

/* ------------------------------------------------------------
   10. CTA BANNERS — parallax shimmer + text rise
   ------------------------------------------------------------ */
.sn-cta-banner,
.sn-cta-cinematic {
  position: relative;
  overflow: hidden;
}

.sn-cta-banner::before,
.sn-cta-cinematic::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 42%, rgba(200, 161, 90, 0.06) 50%, transparent 58%);
  transform: translateX(-100%);
  animation: snAnimCtaShimmer 8s var(--sn-anim-ease) infinite;
  pointer-events: none;
  z-index: 1;
}

@keyframes snAnimCtaShimmer {
  0%, 75%  { transform: translateX(-100%); }
  100%     { transform: translateX(200%); }
}

.sn-cta-banner > .container > *,
.sn-cta-cinematic-content {
  position: relative;
  z-index: 2;
}

/* ------------------------------------------------------------
   11. BUTTONS — magnetic glow + arrow slide
   ------------------------------------------------------------ */
.btn-sn-primary,
.btn-sn-secondary,
.sn-abouthero__btn,
.sn-cinehero__btn {
  position: relative;
  overflow: hidden;
  transition: transform 0.35s var(--sn-anim-ease), box-shadow 0.35s var(--sn-anim-ease);
}

.btn-sn-primary::after,
.btn-sn-secondary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--sn-mx, 50%) var(--sn-my, 50%), rgba(255, 255, 255, 0.15), transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}

.btn-sn-primary:hover,
.btn-sn-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -8px rgba(200, 161, 90, 0.35);
}

.btn-sn-primary:hover::after,
.btn-sn-secondary:hover::after {
  opacity: 1;
}

/* ------------------------------------------------------------
   12. SECTION EYEBROW — slide + gold dot
   ------------------------------------------------------------ */
.sn-eyebrow {
  position: relative;
  display: inline-block;
}

.sn-section.is-entered .sn-eyebrow,
.sn-home-section-intro.is-entered .sn-eyebrow {
  animation: snAnimEyebrowIn 0.8s var(--sn-anim-ease) forwards;
}

@keyframes snAnimEyebrowIn {
  from { opacity: 0; transform: translateX(-20px); letter-spacing: 0.1em; }
  to   { opacity: 1; transform: translateX(0); letter-spacing: 0.24em; }
}

/* ------------------------------------------------------------
   13. STAT COUNTERS — gold underline reveal
   ------------------------------------------------------------ */
.sn-stat-num {
  position: relative;
}

.sn-stat-num::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--sn-anim-gold);
  transform: translateX(-50%);
  transition: width 0.8s var(--sn-anim-sharp);
}

.sn-stat-grid .is-visible .sn-stat-num::after,
[data-count].is-counted::after {
  width: 32px;
}

/* ------------------------------------------------------------
   14. FORM FIELDS — staggered focus glow
   ------------------------------------------------------------ */
.sn-form-group {
  transition: transform 0.3s var(--sn-anim-ease);
}

.sn-form-group:focus-within {
  transform: translateX(4px);
}

.sn-form-group input:focus,
.sn-form-group textarea:focus,
.sn-form-group select:focus {
  box-shadow: 0 0 0 1px var(--sn-anim-gold), 0 4px 20px -4px rgba(200, 161, 90, 0.25);
}

   ------------------------------------------------------------ */
.sn-legal-content h2,
.sn-section .col-lg-8 h2 {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--sn-anim-ease), transform 0.6s var(--sn-anim-ease);
}

.sn-legal-content.is-visible h2,
.sn-section .col-lg-8.is-visible h2 {
  opacity: 1;
  transform: translateY(0);
}

.sn-legal-content.is-visible h2:nth-of-type(1),
.sn-section .col-lg-8.is-visible h2:nth-of-type(1) { transition-delay: 0ms; }
.sn-legal-content.is-visible h2:nth-of-type(2),
.sn-section .col-lg-8.is-visible h2:nth-of-type(2) { transition-delay: 100ms; }
.sn-legal-content.is-visible h2:nth-of-type(3),
.sn-section .col-lg-8.is-visible h2:nth-of-type(3) { transition-delay: 200ms; }
.sn-legal-content.is-visible h2:nth-of-type(4),
.sn-section .col-lg-8.is-visible h2:nth-of-type(4) { transition-delay: 300ms; }

/* ------------------------------------------------------------
   16b. HOME — Signature Installations gallery motion
   ------------------------------------------------------------ */
.page-home .sn-home-projects.sn-gallery {
  gap: 1.15rem;
}

.page-home .sn-home-projects .sn-gallery-item {
  border-radius: 2px;
  isolation: isolate;
  background: #111;
}

.page-home .sn-home-projects .sn-gallery-link {
  overflow: hidden;
}

.page-home .sn-home-projects .sn-gallery-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.04);
  transition: transform 1.1s var(--sn-anim-ease), filter 0.7s var(--sn-anim-ease);
  filter: brightness(0.92) saturate(1.05);
  will-change: transform;
}

.page-home .sn-home-projects .sn-gallery-item.is-inview .sn-gallery-link img,
.page-home .sn-home-projects.sn-stagger.is-visible .sn-gallery-link img {
  animation: snHomeProjKenBurns 14s var(--sn-anim-ease) forwards;
}

.page-home .sn-home-projects .sn-gallery-item:nth-child(2) .sn-gallery-link img {
  animation-delay: 0.15s;
}
.page-home .sn-home-projects .sn-gallery-item:nth-child(3) .sn-gallery-link img {
  animation-delay: 0.3s;
}
.page-home .sn-home-projects .sn-gallery-item:nth-child(4) .sn-gallery-link img {
  animation-delay: 0.45s;
}

@keyframes snHomeProjKenBurns {
  from { transform: scale(1.08); }
  to   { transform: scale(1); }
}

.page-home .sn-home-projects .sn-gallery-item:hover .sn-gallery-link img {
  transform: scale(1.12) !important;
  filter: brightness(1) saturate(1.08);
  animation: none;
}

.page-home .sn-home-projects .sn-gallery-overlay {
  opacity: 1 !important;
  background: linear-gradient(
    0deg,
    rgba(10, 10, 10, 0.88) 0%,
    rgba(10, 10, 10, 0.35) 48%,
    transparent 100%
  ) !important;
  transform: translateY(8px);
  transition: transform 0.55s var(--sn-anim-ease), opacity 0.55s var(--sn-anim-ease);
}

.page-home .sn-home-projects.sn-stagger.is-visible .sn-gallery-overlay {
  transform: translateY(0);
}

.page-home .sn-home-projects .sn-gallery-overlay h3 {
  transform: translateY(10px);
  opacity: 0.92;
  transition: transform 0.5s var(--sn-anim-ease) 0.05s, opacity 0.5s var(--sn-anim-ease);
}

.page-home .sn-home-projects .sn-gallery-overlay span {
  transform: translateY(8px);
  opacity: 0.75;
  transition: transform 0.5s var(--sn-anim-ease) 0.12s, opacity 0.5s var(--sn-anim-ease), color 0.35s ease;
}

.page-home .sn-home-projects .sn-gallery-item:hover .sn-gallery-overlay {
  background: linear-gradient(
    0deg,
    rgba(10, 10, 10, 0.94) 0%,
    rgba(10, 10, 10, 0.45) 55%,
    transparent 100%
  ) !important;
}

.page-home .sn-home-projects .sn-gallery-item:hover .sn-gallery-overlay h3,
.page-home .sn-home-projects .sn-gallery-item:hover .sn-gallery-overlay span {
  transform: translateY(0);
  opacity: 1;
}

.page-home .sn-home-projects .sn-gallery-item:hover .sn-gallery-overlay span {
  color: var(--sn-anim-gold) !important;
}

/* Gold frame line on hover */
.page-home .sn-home-projects .sn-gallery-item::before {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  transition: border-color 0.5s var(--sn-anim-ease);
  z-index: 5;
  pointer-events: none;
}

.page-home .sn-home-projects .sn-gallery-item:hover::before {
  border-color: rgba(200, 161, 90, 0.45);
}

.page-home .sn-home-projects.sn-stagger > .sn-gallery-item {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s var(--sn-anim-ease), transform 0.75s var(--sn-anim-ease);
}

.page-home .sn-home-projects.sn-stagger.is-visible > .sn-gallery-item:nth-child(1) {
  opacity: 1;
  transform: none;
  transition-delay: 0ms;
}
.page-home .sn-home-projects.sn-stagger.is-visible > .sn-gallery-item:nth-child(2) {
  opacity: 1;
  transform: none;
  transition-delay: 100ms;
}
.page-home .sn-home-projects.sn-stagger.is-visible > .sn-gallery-item:nth-child(3) {
  opacity: 1;
  transform: none;
  transition-delay: 200ms;
}
.page-home .sn-home-projects.sn-stagger.is-visible > .sn-gallery-item:nth-child(4) {
  opacity: 1;
  transform: none;
  transition-delay: 300ms;
}

/* ------------------------------------------------------------
   17. REDUCED MOTION — disable all custom motion
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  html.js-anim body { opacity: 1; transition: none; }
  .sn-scroll-progress { display: none; }

  .sn-page-hero .sn-hero-media > img,
  .sn-page-hero .sn-breadcrumb,
  .sn-page-hero .sn-eyebrow,
  .sn-page-hero .sn-hero-title,
  .sn-page-hero .sn-hero-subtitle,
  .sn-page-hero .sn-hero-media,
  .sn-page-hero .sn-hero-title::after {
    animation: none;
    opacity: 1;
    transform: none;
    clip-path: none;
    width: auto;
  }

  .sn-stagger > *,
  .pj-grid.sn-stagger > .pj-card,
  .sn-timeline__item,
  .sn-cert-list li,
  .sn-trust-strip__item,
  .sn-divider,
  .page-home .sn-home-projects.sn-stagger > .sn-gallery-item,
  .page-home .sn-home-projects .sn-gallery-overlay,
  .page-home .sn-home-projects .sn-gallery-overlay h3,
  .page-home .sn-home-projects .sn-gallery-overlay span {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .page-home .sn-home-projects .sn-gallery-link img {
    animation: none !important;
    filter: none;
    transform: none !important;
  }

  .sn-timeline::before { height: 100%; }
  .sn-cta-banner::before,
  .sn-cta-cinematic::before { animation: none; display: none; }
  .sn-video-play::after { animation: none; }
}
