/* Cohesive, construction-inspired motion language for the homepage. */
.rs-motion-ready .rs-hero-copy > * { transition-delay: 0ms !important; }

.rs-motion-ready .rs-hero-eyebrow,
.rs-motion-ready .rs-hero-summary,
.rs-motion-ready .rs-hero-actions {
  opacity: 0;
  transform: translateY(18px);
  filter: blur(3px);
  transition: opacity 540ms var(--rs-ease), transform 680ms var(--rs-ease), filter 540ms ease;
}

.rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-eyebrow,
.rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-summary,
.rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-actions {
  opacity: 1;
  transform: none;
  filter: none;
}

.rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-summary { transition-delay: var(--rs-hero-follow-delay, 760ms) !important; }
.rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-actions { transition-delay: calc(var(--rs-hero-follow-delay, 760ms) + 120ms) !important; }

.rs-hero-word { display: inline-block; white-space: nowrap; }
.rs-hero-letter { display: inline-block; }

.rs-motion-ready .rs-hero-letter {
  opacity: 0;
  transform: translateY(.34em);
  filter: blur(5px);
  transition: opacity 520ms var(--rs-ease), transform 700ms var(--rs-ease), filter 580ms ease;
}

.rs-motion-ready .rs-slide-entered .rs-hero-letter {
  opacity: 1;
  transform: none;
  filter: none;
  transition-delay: calc(90ms + (var(--rs-char-index) * 24ms));
}

.rs-motion-ready .rs-hero-slide .rs-hero-media img { transform: scale(1.03); }
.rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-media img { animation: rsHeroDrift 8s linear both; }

@keyframes rsHeroDrift {
  from { transform: scale(1.03) translate3d(0,0,0); }
  to { transform: scale(1.078) translate3d(-.45%, -.2%, 0); }
}

.rs-hero-page span { display: none; }
.rs-hero-page { width: clamp(34px, 4vw, 62px); height: 16px; padding: 0; }
.rs-hero-page::before { top: 7px; right: 0; left: 0; width: auto; height: 1px; border: 0; border-radius: 0; background: rgba(255,255,255,.38); }
.rs-hero-page::after { top: 6px; left: 0; width: 0; height: 3px; border-radius: 0; background: var(--rs-red); transition: width 380ms var(--rs-ease); }
.rs-hero-page.is-active::after { width: 100%; }

.rs-purpose-segment { display: inline-block; }
.rs-about .rs-editorial-head h2 .rs-purpose-segment--accent { position: relative; color: var(--rs-red); font-style: italic; }
.rs-purpose-segment--accent::after { position: absolute; right: 0; bottom: -.1em; left: 0; height: 3px; background: var(--rs-red); content: ""; transform: scaleX(0); transform-origin: left; }

.rs-motion-ready .rs-purpose-segment {
  opacity: 0;
  transform: translateY(28px);
  clip-path: inset(0 0 100% 0);
  transition: opacity 520ms var(--rs-ease), transform 740ms var(--rs-ease), clip-path 740ms var(--rs-ease);
}

.rs-motion-ready [data-rs-purpose].is-visible .rs-purpose-segment { opacity: 1; transform: none; clip-path: inset(0); }
.rs-motion-ready [data-rs-purpose].is-visible .rs-purpose-segment--accent { transition-delay: 140ms; }
.rs-motion-ready [data-rs-purpose].is-visible .rs-purpose-segment--closing { transition-delay: 340ms; }
.rs-motion-ready [data-rs-purpose].is-visible .rs-purpose-segment--accent::after { animation: rsPurposeLine 640ms 390ms var(--rs-ease) both; }

@keyframes rsPurposeLine { to { transform: scaleX(1); } }

.rs-motion-ready [data-rs-reveal]:not(.rs-is-visible) { will-change: opacity, transform; }
.rs-motion-ready figure[data-rs-reveal] picture,
.rs-motion-ready figure[data-rs-reveal] > img,
.rs-motion-ready .rs-film-frame[data-rs-reveal] .rs-film-poster,
.rs-motion-ready .rs-transformation-stage[data-rs-reveal] .rs-compare {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 920ms var(--rs-ease);
}

.rs-motion-ready figure[data-rs-reveal].rs-is-visible picture,
.rs-motion-ready figure[data-rs-reveal].rs-is-visible > img,
.rs-motion-ready .rs-film-frame[data-rs-reveal].rs-is-visible .rs-film-poster,
.rs-motion-ready .rs-transformation-stage[data-rs-reveal].rs-is-visible .rs-compare { clip-path: inset(0); }

.rs-motion-ready figure[data-rs-reveal] img,
.rs-motion-ready .rs-film-frame[data-rs-reveal] img { transform: scale(1.045); transition: transform 1080ms var(--rs-ease), filter 420ms var(--rs-ease); }
.rs-motion-ready figure[data-rs-reveal].rs-is-visible img,
.rs-motion-ready .rs-film-frame[data-rs-reveal].rs-is-visible img { transform: scale(1); }

.rs-motion-ready .rs-project-slide[data-rs-reveal] { opacity: 1; transform: none; }
.rs-motion-ready .rs-project-slide[data-rs-reveal] > a { clip-path: inset(0 0 100% 0); transition: clip-path 850ms var(--rs-ease); }
.rs-motion-ready .rs-project-slide[data-rs-reveal].rs-is-visible > a { clip-path: inset(0); transition-delay: var(--rs-reveal-delay, 0ms); }
.rs-motion-ready .rs-project-slide .rs-project-caption > * { opacity: 0; transform: translateY(16px); transition: opacity 450ms var(--rs-ease), transform 560ms var(--rs-ease); }
.rs-motion-ready .rs-project-slide.rs-is-visible .rs-project-caption > p { opacity: 1; transform: none; transition-delay: calc(var(--rs-reveal-delay, 0ms) + 420ms); }
.rs-motion-ready .rs-project-slide.rs-is-visible .rs-project-caption > h3 { opacity: 1; transform: none; transition-delay: calc(var(--rs-reveal-delay, 0ms) + 510ms); }
.rs-project-slide > a:hover img,
.rs-project-slide > a:focus-visible img { transform: scale(1.035) !important; }
.rs-project-slide > a:hover .rs-project-open,
.rs-project-slide > a:focus-visible .rs-project-open { transform: translate(3px,-3px); }

.rs-motion-ready .rs-service-list.rs-is-visible .rs-service-item { opacity: 1; transform: none; }
.rs-motion-ready .rs-service-list .rs-service-item { opacity: 0; transform: translateY(18px); transition: opacity 500ms var(--rs-ease), transform 620ms var(--rs-ease), background var(--rs-fast), color var(--rs-fast); }
.rs-motion-ready .rs-service-list.rs-is-visible .rs-service-item:nth-child(2) { transition-delay: 55ms; }
.rs-motion-ready .rs-service-list.rs-is-visible .rs-service-item:nth-child(3) { transition-delay: 110ms; }
.rs-motion-ready .rs-service-list.rs-is-visible .rs-service-item:nth-child(4) { transition-delay: 165ms; }
.rs-motion-ready .rs-service-list.rs-is-visible .rs-service-item:nth-child(5) { transition-delay: 220ms; }
.rs-motion-ready .rs-service-list.rs-is-visible .rs-service-item:nth-child(6) { transition-delay: 275ms; }

.rs-motion-ready .rs-compare-divider { opacity: 0; transform: translateX(-12px); transition: opacity 430ms var(--rs-ease), transform 560ms var(--rs-ease); }
.rs-motion-ready .rs-transformation-stage.rs-is-visible .rs-compare-divider { opacity: 1; transform: none; transition-delay: 510ms; }
.rs-motion-ready .rs-compare-label { opacity: 0; transform: translateY(8px); transition: opacity 380ms var(--rs-ease), transform 480ms var(--rs-ease); }
.rs-motion-ready .rs-transformation-stage.rs-is-visible .rs-compare-label { opacity: 1; transform: none; transition-delay: 620ms; }

.rs-motion-ready .rs-pattern-layer { animation: rsPatternDrift 24s linear infinite alternate; }
@keyframes rsPatternDrift { to { transform: translate3d(8px, -6px, 0); } }

.rs-nav-link::after { transform-origin: left; transition: transform 320ms var(--rs-ease); }
.rs-button svg,
.rs-project-cta svg,
.rs-text-link span { transition: transform 260ms var(--rs-ease); }
.rs-button:hover svg,
.rs-project-cta:hover svg,
.rs-text-link:hover span { transform: translateX(4px); }
.rs-button:active,
.rs-project-cta:active { transform: scale(.985); }

.rs-transformation-selector { grid-template-columns: 112px minmax(0, 1fr); }

@media (max-width: 767.98px) {
  .rs-motion-ready .rs-slide-entered .rs-hero-letter { transition-delay: calc(60ms + (var(--rs-char-index) * 17ms)); }
  .rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-media img { animation-name: rsHeroDriftMobile; }
  @keyframes rsHeroDriftMobile { from { transform: scale(1.02); } to { transform: scale(1.045); } }
  .rs-motion-ready [data-rs-reveal] { transform: translateY(18px); }
  .rs-motion-ready [data-rs-reveal].rs-is-visible { transform: none; }
  .rs-purpose-segment--accent::after { height: 2px; }
  .rs-transformation-selector { grid-template-columns: 82px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .rs-motion-ready .rs-hero-eyebrow,
  .rs-motion-ready .rs-hero-summary,
  .rs-motion-ready .rs-hero-actions,
  .rs-motion-ready .rs-hero-letter,
  .rs-motion-ready .rs-purpose-segment,
  .rs-motion-ready .rs-service-list .rs-service-item,
  .rs-motion-ready .rs-project-slide .rs-project-caption > *,
  .rs-motion-ready .rs-compare-divider,
  .rs-motion-ready .rs-compare-label { opacity: 1; transform: none; filter: none; clip-path: none; }
  .rs-motion-ready figure[data-rs-reveal] picture,
  .rs-motion-ready figure[data-rs-reveal] > img,
  .rs-motion-ready .rs-film-frame[data-rs-reveal] .rs-film-poster,
  .rs-motion-ready .rs-transformation-stage[data-rs-reveal] .rs-compare,
  .rs-motion-ready .rs-project-slide[data-rs-reveal] > a { clip-path: none; }
  .rs-motion-ready .rs-hero-slide.rs-slide-entered .rs-hero-media img,
  .rs-motion-ready .rs-pattern-layer,
  .rs-motion-ready [data-rs-purpose].is-visible .rs-purpose-segment--accent::after { animation: none; }
  .rs-purpose-segment--accent::after { transform: scaleX(1); }
}
