/* A consistent motion layer; all effects obey the existing motion preference. */
.hero-word { display:inline-block; }
html[data-motion=on] .hero-title-block { animation:none; }
html[data-motion=on] .hero-word { animation:word-rise 1.55s cubic-bezier(.16,1,.3,1) both; animation-delay:calc(.12s + var(--word-order) * .16s); }
html[data-motion=on] .hero-kicker { animation:label-enter 1.1s .25s both; }
html[data-motion=on] .hero-caption { animation:label-enter 1.1s .6s both; }
html[data-motion=on] .hero-caption .cross { animation:cross-open 1.4s .5s both; }
html[data-motion=on] .hero-topline { animation:label-enter 1.2s .25s both; }
html[data-motion=on] .site-header > * { animation:nav-enter .95s .2s both; }
html[data-motion=on] .hero-grid i { transform-origin:top; animation:line-draw 1.8s cubic-bezier(.16,1,.3,1) both; }
html[data-motion=on] .hero-grid i:nth-child(2) { animation-delay:.15s; }
html[data-motion=on] .hero-grid i:nth-child(3) { animation-delay:.3s; }
html[data-motion=on] .hero-grid i:nth-child(4) { animation-delay:.45s; }
html[data-motion=on] .hero-image { animation:camera-breathe 13s ease-in-out infinite alternate; animation-play-state:paused; }
html[data-motion=on] .hero.scene-active .hero-image { animation-play-state:running; }
.hero-wash::after { content:''; position:absolute; inset:-20% -100%; background:linear-gradient(105deg,transparent 38%,#fff5 49%,transparent 61%); opacity:0; pointer-events:none; }
html[data-motion=on] .hero.scene-active .hero-wash::after { animation:light-passage 14s ease-in-out infinite; }
html[data-motion=on] .hero-title-block { translate:0 var(--hero-title-drift,0px); }
html[data-motion=on] .detail-photo { translate:0 var(--hero-inset-drift,0px); }
@keyframes word-rise { from { opacity:0; transform:translateY(75px) rotate(5deg); filter:blur(12px); } to { opacity:1; transform:translateY(0) rotate(0); filter:blur(0); } }
@keyframes label-enter { from { opacity:0; translate:0 18px; filter:blur(3px); } to { opacity:1; translate:0 0; filter:blur(0); } }
@keyframes cross-open { from { opacity:0; scale:0; rotate:-90deg; } to { opacity:1; scale:1; rotate:0deg; } }
@keyframes nav-enter { from { opacity:0; translate:0 -15px; } to { opacity:1; translate:0 0; } }
@keyframes line-draw { from { transform:scaleY(0); opacity:0; } to { transform:scaleY(1); opacity:1; } }
@keyframes camera-breathe { from { scale:1; } to { scale:1.045; } }
@keyframes light-passage { 0%,100% { translate:-22% 0; opacity:0; } 35% { opacity:.3; } 65% { translate:22% 0; opacity:0; } }

html[data-motion=on] .motion-pending { opacity:0; }
.section-heading { position:relative; }
.section-heading::after { content:''; position:absolute; bottom:-22px; left:0; right:0; height:1px; background:var(--line); transform:scaleX(0); transform-origin:left; pointer-events:none; }
html[data-motion=on] .section-heading.motion-visited::after { animation:rule-open 1.5s cubic-bezier(.16,1,.3,1) both; }
@keyframes rule-open { to { transform:scaleX(1); } }

html[data-motion=on] .product-image-button { transform:perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transform-style:preserve-3d; box-shadow:0 12px 35px #333b2000; transition:box-shadow .4s; }
.product-image-button::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,30%),#fff7,transparent 65%); opacity:0; pointer-events:none; mix-blend-mode:soft-light; transition:opacity .3s; }
@media(hover:hover) and (pointer:fine) {
  html[data-motion=on] .product-image-button:hover { box-shadow:0 16px 30px #31391e19; }
  html[data-motion=on] .product-image-button:hover::after { opacity:1; }
  html[data-motion=on] .magnetic-link > span { translate:var(--magnet-x,0px) var(--magnet-y,0px); }
  html[data-motion=on] .desktop-nav a { transition:translate .3s; }
  html[data-motion=on] .desktop-nav a:hover { translate:0 -3px; }
}
html[data-motion=on] .save-button[aria-pressed=true] svg { animation:bookmark-pop .4s cubic-bezier(.2,.8,.2,1.3); }
@keyframes bookmark-pop { 50% { scale:1.35; } }

html[data-motion=on] .campaign-art img { translate:0 var(--campaign-photo-drift,0px); animation:camera-breathe 12s ease-in-out infinite alternate; animation-play-state:paused; }
html[data-motion=on] .campaign.scene-active .campaign-art img { animation-play-state:running; }
html[data-motion=on] .campaign-art-grid { rotate:var(--campaign-frame-angle,0deg); }
html[data-motion=on] .campaign-copy h2 { translate:0 var(--campaign-title-drift,0px); }
.material-highlight::before { content:''; position:absolute; inset:-50% -100%; background:linear-gradient(115deg,transparent 40%,#ffedc43b 50%,transparent 60%); opacity:0; }
html[data-motion=on] .material-lab.scene-active .material-highlight::before { animation:surface-passage 9s ease-in-out infinite; }
@keyframes surface-passage { 0%,100% { translate:-35% 0; opacity:0; } 20% { opacity:.9; } 70% { translate:35% 0; opacity:0; } }
html[data-motion=on] .anatomy-product { scale:var(--anatomy-zoom,1); }
html[data-motion=on] .sequence-card .sequence-image > img { scale:var(--film-zoom,1); translate:var(--film-drift,0px) 0; }

.motion-statement-line { display:block; }
html[data-motion=on] .philosophy-statement .motion-statement-line:first-child { translate:calc(var(--statement-drift,0px) * -1) 0; }
html[data-motion=on] .philosophy-statement .motion-statement-line:last-child { translate:var(--statement-drift,0px) 0; }
html[data-motion=on] .philosophy.scene-active .axis-symbol > span { animation:axis-orbit 24s linear infinite; }
html[data-motion=on] .philosophy.scene-active .axis-symbol > span:nth-child(2) { animation-delay:-6s; }
@keyframes axis-orbit { from { rotate:0deg; } to { rotate:360deg; } }
html[data-motion=on] .closing-statement h2 { scale:var(--closing-zoom,1); translate:0 var(--closing-text-drift,0px); }
html[data-motion=on] .closing-link > span:last-child { animation:arrow-nudge 3.8s ease-in-out infinite; animation-play-state:paused; }
html[data-motion=on] .closing-statement.scene-active .closing-link > span:last-child { animation-play-state:running; }
@keyframes arrow-nudge { 0%,55%,100% { transform:translate(0,0); } 70% { transform:translate(5px,-5px); } }
html[data-motion=on] .footer-wordmark { transform:translate3d(0,var(--footer-drift,0px),0) scaleX(var(--footer-stretch,1)); transform-origin:center bottom; }
html[data-motion=on] .footer-wordmark > span { rotate:var(--footer-star,0deg); }

html[data-motion=on] .mobile-menu:not([hidden]) > a { animation:menu-link-enter .75s cubic-bezier(.16,1,.3,1) both; }
html[data-motion=on] .mobile-menu > a:nth-of-type(2) { animation-delay:.07s; }
html[data-motion=on] .mobile-menu > a:nth-of-type(3) { animation-delay:.14s; }
html[data-motion=on] .mobile-menu > a:nth-of-type(4) { animation-delay:.21s; }
@keyframes menu-link-enter { from { opacity:0; translate:35px 0; filter:blur(5px); } to { opacity:1; translate:0 0; filter:blur(0); } }
html[data-motion=on] .saved-dialog[open] { animation:drawer-arrive .65s cubic-bezier(.16,1,.3,1) both; }
html[data-motion=on] .product-dialog[open], html[data-motion=on] .story-dialog[open] { animation:object-arrive .7s cubic-bezier(.16,1,.3,1) both; }
html[data-motion=on] .product-dialog[open] .dialog-product-art { animation:photo-arrive 1s cubic-bezier(.16,1,.3,1) both; }
@keyframes drawer-arrive { from { translate:100% 0; opacity:.7; } to { translate:0 0; opacity:1; } }
@keyframes object-arrive { from { opacity:0; transform:translateY(45px) scale(.96); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes photo-arrive { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0 0 0 0); } }
html[data-motion=on] .dialog-close { transition:rotate .3s; }
html[data-motion=on] .dialog-close:hover { rotate:90deg; }

html[data-motion=off] .motion-pending { opacity:1; }
html[data-motion=off] .hero-word, html[data-motion=off] .hero-kicker, html[data-motion=off] .hero-caption, html[data-motion=off] .hero-topline { opacity:1; transform:none; translate:none; filter:none; }
html[data-motion=off] .hero-wash::after, html[data-motion=off] .material-highlight::before { opacity:0; }
html[data-motion=off] .product-image-button::after { opacity:0; }
html[data-motion=off] .section-heading::after { transform:scaleX(1); }
@media(max-width:760px) {
  .hero-word { letter-spacing:-.078em; }
  html[data-motion=on] .product-image-button { transform:none; }
  .section-heading::after { bottom:-15px; }
}
@media(prefers-reduced-motion:reduce) {
  html .hero-word, html .hero-kicker, html .hero-caption, html .hero-topline { animation:none !important; opacity:1 !important; transform:none !important; translate:none !important; }
  html .motion-pending { opacity:1 !important; }
}
