/* Deliberate timing, restrained travel and static content as the default. */
:root { --motion-ease: cubic-bezier(.16,1,.3,1); }
.motion-word { display: inline-block; transform-origin: 50% 100%; }
.motion-section { position: relative; }
.motion-rule { position: absolute; bottom: 0; left: var(--pad); right: var(--pad); height: 1px; background: var(--line); pointer-events: none; transform-origin: left; }
.motion-rule::before { content: ''; display: block; width: 56px; height: 1px; background: var(--coral); }
.mentorship-teaser > .motion-rule { left: 0; right: 0; }
.hero__motion-rail { position: absolute; z-index: 4; right: var(--pad); bottom: 56px; width: clamp(60px, 9vw, 140px); height: 2px; background: rgba(255,255,255,.25); overflow: hidden; pointer-events: none; }
.hero__motion-rail > span { display: block; height: 100%; background: var(--white); transform: scaleX(0); transform-origin: left; }
.motion-arrow { display: inline-block; transition: transform .5s var(--motion-ease); }
.btn:focus-visible .btn__fill { transform: translateY(0); }
.btn:focus-visible { color: var(--black); }
.motion-enabled .btn:is(:hover,:focus-visible) .motion-arrow,
.motion-enabled .text-link:is(:hover,:focus-visible) .motion-arrow { transform: translate(3px, -3px); }
.text-link { position: relative; }
.text-link::after { content: ''; position: absolute; left: 0; bottom: 5px; height: 1px; width: 100%; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .55s var(--motion-ease); }
.text-link:is(:hover,:focus-visible)::after { transform: scaleX(1); transform-origin: left; }
.header__nav a { position: relative; }
.header__nav a::after { content: ''; position: absolute; bottom: 5px; left: 20px; right: 20px; height: 1px; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--motion-ease); }
.header__nav a:is(:hover,:focus-visible)::after { transform: scaleX(1); }
.top-panel__caption, .gallery__cap, .process-list > li { position: relative; }
.top-panel__caption::after, .gallery__cap::after, .process-list > li::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--motion-ease); }
.process-list > li::after { bottom: auto; top: -1px; }
.top-panel:is(:hover,:focus-visible) .top-panel__caption::after,
.gallery__item:is(:hover,:focus-visible) .gallery__cap::after,
.process-list > li:hover::after { transform: scaleX(1); }
.card-arrow { transition: transform .65s var(--motion-ease), background .35s, color .35s; }
.top-panel:is(:hover,:focus-visible) .card-arrow { transform: translate(-4px,-4px); background: var(--coral); color: var(--black); }
.motion-media-frame > img, .motion-media-frame > video { translate: 0 var(--media-drift,0px); scale: 1.045; }
.top-panel__bg > .project-preview__poster, .top-panel__bg > video { transition: transform .9s var(--motion-ease); }
.motion-enabled .top-panel:is(:hover,:focus-visible) .top-panel__bg > img,
.motion-enabled .top-panel:is(:hover,:focus-visible) .top-panel__bg > video { transform: scale(1.035); }
.topic { position: relative; overflow: hidden; }
.topic::before { content: ''; position: absolute; inset: 0; background: rgba(255,107,74,.045); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--motion-ease); pointer-events: none; }
.topic > span { position: relative; transition: transform .5s var(--motion-ease); }
.topic:is(:hover,:focus-visible)::before { transform: scaleX(1); }
.motion-enabled .topic:is(:hover,:focus-visible) > span:nth-child(2) { transform: translateX(8px); }
.motion-enabled .topic:is(:hover,:focus-visible) > span:last-child { transform: translate(-4px,-4px); }
.faq-list summary { transition: color .3s; }
.faq-list summary:hover, .faq-list details[open] summary { color: var(--coral); }
.faq-list summary::after { content: '+'; transition: transform .38s var(--motion-ease); }
.faq-list details[open] summary::after { content: '+'; transform: rotate(45deg); }
@media (max-width: 700px) {
  .hero__motion-rail { bottom: 40px; width: 60px; }
  .motion-media-frame > img, .motion-media-frame > video { translate: none; scale: 1; }
  .motion-rule::before { width: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-word, .motion-arrow, .motion-media-frame > img, .motion-media-frame > video { transform: none !important; translate: none !important; scale: 1 !important; }
  .hero__motion-rail { display: none; }
  .cursor { display: none; }
}
