@keyframes buttonSheen { from { transform: translateX(145%) skewX(-18deg); } to { transform: translateX(-190%) skewX(-18deg); } }
@keyframes pageEnter { from { opacity: 0; } to { opacity: 1; } }
@keyframes heroKenBurns { 0% { transform: scale(1.035) translate3d(0,0,0); } 100% { transform: scale(1.09) translate3d(-1.2%,.7%,0); } }
@keyframes scrollDot { 0% { opacity: 0; transform: translate(-50%,0); } 25% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%,13px); } }
@keyframes lineDrift { 0%,100% { opacity: .16; transform: translateY(-4%); } 50% { opacity: .4; transform: translateY(4%); } }
@keyframes orbitSpin { to { transform: rotate(360deg); } }
@keyframes logoIntro { 0% { opacity: 0; transform: scale(.84) translateY(-8px); } 100% { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes digitReveal { from { opacity: 0; transform: translateY(60%) rotateX(-35deg); } to { opacity: 1; transform: translateY(0) rotateX(0); } }

.js body { animation: pageEnter 460ms ease both; }
.hero__media img { animation: heroKenBurns 24s ease-in-out infinite alternate; }
.hero__scroll-cue span::after { animation: scrollDot 1.8s ease-in-out infinite; }
.hero__lines span { animation: lineDrift 9s ease-in-out infinite; }
.hero__lines span:nth-child(2) { animation-delay: -3s; }
.hero__lines span:nth-child(3) { animation-delay: -6s; }
.quality-orbit__ring--two { animation: orbitSpin 34s linear infinite; }
.js [data-brand] .brand__logo-frame { animation: logoIntro 720ms var(--ease-corporate) 120ms both; }

/* Visible by default; JavaScript opts elements into motion. */
.js [data-motion] {
  opacity: 0;
  transform: translate3d(0,24px,0);
  transition: opacity 760ms var(--ease-corporate), transform 760ms var(--ease-corporate), clip-path 820ms var(--ease-corporate), filter 760ms var(--ease-corporate);
  transition-delay: var(--motion-delay,0ms);
  will-change: transform,opacity;
}
.js [data-motion="fade-up"] { transform: translate3d(0,30px,0); }
.js [data-motion="scale-in"] { transform: scale(.955); filter: blur(3px); }
.js [data-motion="mask-reveal"] { opacity: 1; transform: scale(1.025); clip-path: inset(0 0 100% 0 round var(--radius-lg)); }
.js [data-motion="band-right"] { opacity: 1; transform: translate3d(58px,0,0); clip-path: inset(0 100% 0 0 round 14px); }
.js [data-motion="band-left"] { opacity: 1; transform: translate3d(-58px,0,0); clip-path: inset(0 0 0 100% round 14px); }
.js [data-motion="hero-kicker"] { transform: translate3d(32px,0,0); }
.js [data-motion="hero-title"] { opacity: 1; transform: translate3d(0,0,0); }
.js [data-motion="hero-title"] > span { display: inline-block; clip-path: inset(0 100% 0 0); transform: translate3d(34px,0,0); transition: clip-path 860ms var(--ease-corporate), transform 860ms var(--ease-corporate); }
.js [data-motion="hero-title"].is-visible > span { clip-path: inset(0 0 0 0); transform: translate3d(0,0,0); }
.js [data-motion="hero-copy"] { transform: translate3d(0,22px,0); }
.js [data-motion="heading-reveal"] { transform: translate3d(0,18px,0); }
.js [data-motion="card-reveal"] { transform: translate3d(0,34px,0) scale(.985); }
.js [data-motion].is-visible { opacity: 1; transform: translate3d(0,0,0) scale(1); clip-path: inset(0 0 0 0 round 0); filter: blur(0); }

.js [data-motion="heading-reveal"] .section-heading__eyebrow > span { transform: scaleX(0); transition: transform 620ms var(--ease-corporate) 180ms; }
.js [data-motion="heading-reveal"].is-visible .section-heading__eyebrow > span { transform: scaleX(1); }
.js [data-motion="heading-reveal"] h2 > span { clip-path: inset(0 100% 0 0); transition: clip-path 820ms var(--ease-corporate) 90ms; }
.js [data-motion="heading-reveal"].is-visible h2 > span { clip-path: inset(0 0 0 0); }

.js [data-motion="card-reveal"] [data-card-part] { opacity: 0; transform: translateY(14px); transition: opacity 520ms var(--ease-corporate),transform 520ms var(--ease-corporate); }
.js [data-motion="card-reveal"].is-visible [data-card-part] { opacity: 1; transform: translateY(0); }
.js [data-motion="card-reveal"] [data-card-part="icon"] { transition-delay: 160ms; }
.js [data-motion="card-reveal"] [data-card-part="title"] { transition-delay: 230ms; }
.js [data-motion="card-reveal"] [data-card-part="copy"] { transition-delay: 300ms; }

.js [data-year].is-visible i,.js [data-motion].is-visible [data-year] i { animation: digitReveal 620ms var(--ease-corporate) both; animation-delay: calc(var(--digit-index) * 80ms + 180ms); }

.motion-lite .hero__media img { animation: none; transform: scale(1.025); }
.motion-lite .hero__lines span,.motion-lite .quality-orbit__ring--two { animation: none; }
.motion-lite [data-motion] { transition-duration: 520ms; }

@media (max-width: 720px) {
  .js [data-motion] { transition-duration: 620ms; }
  .js [data-motion="band-right"] { transform: translate3d(34px,0,0); }
  .js [data-motion="band-left"] { transform: translate3d(-34px,0,0); }
  .hero__media img { animation-duration: 30s; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__media img,.hero__scroll-cue span::after,.hero__lines span,.quality-orbit__ring--two,.brand__logo-frame { animation: none !important; }
  .hero__media { transform: none !important; }
  .js [data-motion],.js [data-motion] * { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; transition: none !important; animation: none !important; }
  .button::before { display: none; }
}
