.cta-track { height: 440svh; overflow-x: clip; }
.cta-pin { --cta-room: calc(100svh - var(--cta-top, var(--space-96)) - var(--space-24)); position: sticky; top: 0; height: 100svh; padding-top: var(--cta-top, var(--space-96)); padding-bottom: var(--space-24); box-sizing: border-box; align-content: center; }
.cta-track.is-still { height: auto; }
.cta-track.is-still .cta-pin { position: static; height: auto; padding: 0; }
.contact { --g: 1; --bg: 1; --on-pic: calc(var(--bg) * 100%); grid-column: 1 / -1; position: relative; overflow: hidden; aspect-ratio: 1472 / 816; max-height: var(--cta-room); min-height: min(var(--cta-min-h), var(--cta-room)); width: 100%; border-radius: var(--radius-l); -webkit-user-select: none; user-select: none; }
.contact.is-open { overflow: visible; }
.contact__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; border-radius: var(--radius-l); opacity: var(--bg); filter: grayscale(var(--g)) contrast(calc(1 - var(--g) * .16)); pointer-events: none; }
.contact__parts { position: absolute; inset: 0; }
.contact__parts .contact__box { z-index: 1; }
.contact__text { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; gap: var(--space-16); justify-items: center; width: min(34em, calc(100% - var(--space-48))); text-align: center; color: color-mix(in srgb, var(--paper) var(--on-pic), var(--ink)); pointer-events: none; }
.contact__text .btn { pointer-events: auto; margin-top: var(--space-12); }
.contact__text .btn--light:not(:hover, :focus-visible) { border-color: color-mix(in srgb, var(--paper) var(--on-pic), var(--ink)); }
.contact h2 { margin: 0; max-width: 10em; font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h2); line-height: var(--lh-solid); letter-spacing: var(--tracking-tight); text-shadow: 0 1px 24px color-mix(in srgb, var(--ink-a25) var(--on-pic), transparent); }
.contact__text p { margin: 0; max-width: 22em; font-size: var(--fs-text-l); line-height: var(--lh-text); text-shadow: 0 1px 16px color-mix(in srgb, var(--ink-a35) var(--on-pic), transparent); }
.contact__hint { position: absolute; z-index: 2; left: 0; right: 0; bottom: var(--space-24); text-align: center; margin: 0; font-size: var(--fs-text-s); letter-spacing: var(--tracking-caps-s); text-transform: uppercase; color: var(--paper); text-shadow: 0 1px 12px var(--ink-a35); pointer-events: none; opacity: 0; transition: opacity var(--dur-450); }
.contact.is-live .contact__hint { opacity: 1; }
.contact.is-live.is-touched .contact__hint { opacity: 0; }
.contact__box { position: absolute; border: 1px solid var(--signal); opacity: 0; transition: opacity var(--dur-300); pointer-events: none; }
.contact__box.is-on { opacity: 1; }
.contact__part { position: absolute; left: 0; top: 0; max-width: none; height: auto; transform-origin: 0 0; pointer-events: none; cursor: grab; touch-action: none; will-change: transform; transition: filter var(--dur-200); }
.contact.is-live .contact__part { pointer-events: auto; }
@media (hover: hover) { .contact__part:hover { filter: drop-shadow(var(--shadow-lift)); } }
.contact__part.is-dragging { cursor: grabbing; filter: drop-shadow(var(--shadow-drag)); z-index: 1; }
.cta-tag { position: absolute; left: 0; top: 0; z-index: 1; border: 1px solid var(--signal); pointer-events: none; will-change: transform, opacity; }
.cta-tag span { position: absolute; left: -1px; bottom: 100%; padding: var(--space-2) var(--space-6); background: var(--signal); color: var(--paper); font-family: var(--font-mono); font-size: var(--fs-text-xs); font-style: normal; line-height: var(--lh-ui); letter-spacing: var(--tracking-label); text-transform: uppercase; white-space: nowrap; }

@media (max-width: 767.98px) {
  .cta-track { height: auto; }
  .cta-pin { position: static; height: auto; padding: 0; }
  .contact { aspect-ratio: auto; height: calc(100svh - var(--bar-h) - var(--mnav-h) - 2 * var(--space-16)); max-height: none; min-height: 0; }
  .contact__text { justify-items: stretch; }
  .contact__text .btn { width: 100%; }
}
