/* Anime.js orchestration layer: quiet, cinematic, and safe to remove. */
/* Short title apertures: space is reserved, so the baseline never jumps. */
.kinetic-title { perspective: 900px; overflow: visible; }
.kinetic-title .type-cell { display: inline-block; overflow: clip; vertical-align: bottom; padding: .12em .025em .15em; margin: -.12em -.025em -.15em; perspective: 700px; }
.kinetic-title .type-glyph { display: inline-block; transform-origin: 50% 100%; }
.kinetic-title:not(.motion-in-view) .type-glyph { transform: translateY(108%); }
.editorial-copy:not(.motion-in-view) { opacity: .22; }
.editorial-row { position: relative; }
.editorial-row::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(171,192,212,.55); transform: scaleX(0); transform-origin: left; transition: transform 1s cubic-bezier(.16,1,.3,1); pointer-events: none; }
.editorial-row.motion-in-view::after { transform: scaleX(1); }
.editorial-caption { position: relative; }
.editorial-caption::after { content: ''; display: block; width: 28px; height: 1px; margin-top: 12px; background: #91a6ba; transform: scaleX(0); transform-origin: left; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.editorial-caption.motion-in-view::after { transform: scaleX(1); }
#contact .kinetic-title { transform-origin: left center; }
@media(prefers-reduced-motion:reduce) {
 .kinetic-title .type-glyph { transform: none !important; opacity: 1 !important; }
 .editorial-copy, .editorial-row { opacity: 1 !important; transform: none !important; }
 .editorial-row::after, .editorial-caption::after { transition: none; }
}
.hero-scroll-track { position: relative; }
.scroll-scrub-active #about { position: relative; z-index: 2; background: linear-gradient(180deg,rgba(1,5,11,.87),rgba(1,5,11,.60)); }
.hero--scrub .hero-copy { transform-origin: left center; will-change: transform, opacity; }
.hero--scrub .hero-logo-stage { transform-origin: center; }
.hero.hero--scrub { position: sticky; top: 0; }
.hero--scrub .scroll { color: #c0c9d0; }
.hero { padding: 7vh 9vw 4vh; background: linear-gradient(90deg,rgba(0,3,8,.5),rgba(0,3,8,.12)); }
.hero-main { grid-template-columns: 1.1fr 1fr; gap: 5vw; perspective: 1200px; }
.hero-copy { padding: 20px 0; }
.hero h1.hero-signature { margin: 0; line-height: 1.2; letter-spacing: -.045em; font-weight: 400; }
.signature-drawing { display: block; width: 100%; max-width: 620px; height: auto; margin: 0; color: #f3f5f7; overflow: visible; }
.signature-ink { stroke-dasharray: 1; stroke-dashoffset: 0; }
.hero-signature .signature-roman { display: block; margin: 12px 0 38px 7px; color: #bdc9d3; font: 400 11px/1.4 'DM Mono',monospace; letter-spacing: .2em; }
.signature-flourish { display: block; width: min(90%,440px); height: 35px; margin: 14px 0 30px; overflow: visible; }
.signature-flourish path { fill: none; stroke: #a2bbcd; stroke-width: 1.3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.hero .intro { max-width: 320px; margin: 0 0 24px; font-size: 13px; line-height: 2; color: #c0c9d0; }
.hero .text-link { font-size: 11px; gap: 36px; min-height: 36px; align-items: center; border-color: #667786; }
.hero .hero-logo-stage { width: min(36vw,480px); height: min(40vw,520px); margin: 0; }
.hero .build-progress-v15,.hero .logo-hint-v15 { display: none; }
.hero .hero-company-name { bottom: 9%; font-size: 10px; letter-spacing: .15em; color: #b2bec7; text-shadow: none; }
@media(max-width:760px) {
 .hero { min-height: calc(100svh - 62px); padding: 32px 7vw 24px; }
 .hero > .label { margin-bottom: 15px; font-size: 9px; }
 .hero-main { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
 .hero-copy { padding: 10px 0 0; }
 .signature-drawing { width: 100%; margin-left: 0; }
 .hero-signature .signature-roman { margin-top: 4px; font-size: 10px; letter-spacing: .4em; }
 .signature-flourish { width: 78%; height: 22px; margin: 9px 0 16px; }
 .hero .intro { font-size: 11px; margin-bottom: 12px; max-width: 300px; }
 .hero .hero-logo-stage { position: relative; top: auto; right: auto; width: 100%; height: 245px; pointer-events: auto; }
 .hero .hero-logo-stage .logo-builder-v15 { opacity: 1; --cube-size: 145px; }
 .hero .hero-company-name { bottom: 5px; font-size: 9px; opacity: 1; }
 .hero > .scroll { margin-top: 20px; font-size: 8px; }
}
body.motion-enhanced [data-motion-ready] {
  will-change: transform, opacity, filter;
}

body.motion-enhanced .motion-section-pending [data-motion-section] {
  pointer-events: none;
}

body.motion-reduced [data-motion-ready],
body.motion-reduced [data-motion-section] {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.motion-enhanced [data-motion-ready],
  body.motion-enhanced [data-motion-section] {
    will-change: auto;
  }
}
