/* Identity bookends: the existing VentCap mark, ink and open space. */
.brand-intro {
  position: fixed; inset: 0; margin: 0; padding: 0; border: 0;
  width: 100%; height: 100%; max-width: none; max-height: none;
  background: transparent; color: #f5f5f5; overflow: hidden;
}
.brand-intro:not([open]) { display: none; }
.brand-intro::backdrop { background: transparent; }
html.brand-intro-open { overflow: hidden; }
.brand-intro-sheet {
  position: absolute; inset: 0; display: grid; place-items: center;
  background: #202020; transform-origin: center top;
}
.brand-intro-lockup { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 42px); }
.brand-intro-mark { width: clamp(56px, 8.2vw, 126px); height: auto; flex: none; }
.brand-intro-type { padding-bottom: .03em; }
.brand-intro-name { font-size: clamp(64px, 10.3vw, 154px); line-height: 1.08; letter-spacing: -.07em; overflow: hidden; padding-right: .05em; }
.brand-intro-name span { display: block; }
.brand-intro[open] .intro-mark-bar { animation: brand-bar-in 720ms cubic-bezier(.16,1,.3,1) both; transform-origin: center; }
.brand-intro[open] .intro-mark-dot { animation: brand-dot-in 700ms cubic-bezier(.16,1,.3,1) both; transform-box: fill-box; transform-origin: center; }
.brand-intro[open] .intro-mark-dot-one { animation-delay: 120ms; }
.brand-intro[open] .intro-mark-dot-two { animation-delay: 230ms; }
.brand-intro[open] .brand-intro-name span { animation: brand-type-in 850ms 240ms cubic-bezier(.16,1,.3,1) both; }
.brand-sound, .brand-replay { background: transparent; color: inherit; font: inherit; cursor: pointer; }
.brand-sound { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid currentColor; border-radius: 50%; opacity: .75; flex: none; }
.brand-sound svg { width: 19px; height: 19px; }
.brand-sound:hover { opacity: 1; }
.brand-sound-muted { display: none; }
[data-site-sound="muted"] .brand-sound-waves { display: none; }
[data-site-sound="muted"] .brand-sound-muted { display: block; }
.brand-sound[hidden], .brand-replay[hidden] { display: none; }
.brand-sound:focus-visible, .brand-replay:focus-visible { outline: 2px solid currentColor; outline-offset: 7px; }
.brand-intro.is-leaving .brand-intro-sheet { animation: brand-sheet-out 900ms cubic-bezier(.76,0,.24,1) both; }
.brand-intro.is-leaving .brand-intro-lockup { animation: brand-lockup-out 400ms cubic-bezier(.4,0,1,1) both; }
@keyframes brand-bar-in { from { clip-path: inset(100% 0 0); } to { clip-path: inset(0); } }
@keyframes brand-dot-in { from { opacity: 0; transform: translateY(5px) scale(.65); } to { opacity: 1; transform: none; } }
@keyframes brand-type-in { from { transform: translateY(115%); } to { transform: translateY(0); } }
@keyframes brand-sheet-out { from { transform: translateY(0); } to { transform: translateY(-101%); } }
@keyframes brand-lockup-out { to { opacity: 0; transform: translateY(-28px) scale(.975); } }

/* The contact card has a short natural scroll hold, then yields to the footer. */
.contact-stage::after { content: ""; display: block; height: 28svh; }
.contact.contact-finale {
  position: sticky; top: 104px; min-height: calc(100svh - 128px);
  margin-bottom: 0; background: #202020; color: #f5f5f5;
  border-color: #202020; align-items: center; gap: 4%;
  padding-top: clamp(40px, 6svh, 72px); padding-bottom: clamp(40px, 6svh, 72px);
}
.contact-finale .eyebrow { color: #b2b2a8; margin-bottom: clamp(24px, 4svh, 48px); }
.contact-finale h2 { font-size: clamp(72px, 8.2vw, 128px); line-height: .93; letter-spacing: -.065em; }
.contact-finale .contact-copy > p:not(.eyebrow) { color: #c3c3ba; font-size: clamp(16px, 1.4vw, 21px); margin-top: 26px; }
.contact-finale .contact-actions { margin-top: 30px; gap: 17px; }
.contact-finale .contact-actions .button { background: #f5f5f5; color: #202020; border-color: #f5f5f5; min-width: 230px; min-height: 60px; font-size: 16px; justify-content: space-between; gap: 44px; }
.contact-finale .contact-actions .button:hover { background: #e1dccf; border-color: #e1dccf; }
.contact-finale .contact-email { color: #c3c3ba; font-size: 16px; }
.contact-finale .contact-film-wrap { width: 100%; min-width: 0; }
.contact-finale .service-film { transform: rotateY(-4deg) rotateX(2deg); transition: transform 900ms cubic-bezier(.16,1,.3,1); }
.contact-finale.is-settled .service-film { transform: none; }
.contact-finale.is-arriving .contact-copy { animation: contact-arrival 700ms cubic-bezier(.16,1,.3,1) both; }
.contact-finale.is-settled .contact-actions .button .arrow-icon { animation: contact-arrow-settle 700ms cubic-bezier(.16,1,.3,1) both; }
.contact-finale.is-settled .contact-actions .button { animation: contact-action-settle 1000ms ease-out both; }
.contact-finale::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: #b5a172; transform: scaleX(0); transform-origin: left; transition: transform 1100ms cubic-bezier(.16,1,.3,1); }
.contact-finale.is-settled::after { transform: scaleX(1); }
.brand-replay { font-size: 11px; min-height: 44px; }
@keyframes contact-arrival { from { transform: translateY(18px); opacity: .55; } to { transform: none; opacity: 1; } }
@keyframes contact-arrow-settle { 0% { transform: translateX(-7px); opacity: .4; } 100% { transform: none; opacity: 1; } }
@keyframes contact-action-settle { 0% { box-shadow: 0 0 0 0 #f5f5f53d; } 100% { box-shadow: 0 0 0 16px #f5f5f500; } }
@media (max-width: 900px) {
  .contact.contact-finale { top: 94px; min-height: calc(100svh - 114px); grid-template-columns: 1fr 1fr; padding: 36px 26px; gap: 24px; }
  .contact-finale h2 { font-size: clamp(64px, 9vw, 88px); }
  .contact-finale .eyebrow { margin-bottom: 24px; }
  .contact-finale .contact-actions .button { min-width: 190px; }
}
@media (max-width: 650px) {
  .brand-intro-lockup { gap: 15px; }
  .brand-intro-mark { width: 51px; }
  .brand-intro-name { font-size: 63px; }
  .contact-stage::after { height: 56px; }
  .contact.contact-finale { position: relative; top: auto; grid-template-columns: 1fr; min-height: calc(100svh - 104px); gap: 38px; padding: 32px 24px; }
  .contact-finale h2 { font-size: clamp(68px, 20vw, 100px); }
  .contact-finale h2 br { display: none; }
  .contact-finale h2 span { display: block; max-width: 5em; }
  .contact-finale .contact-copy > p:not(.eyebrow) { margin-top: 20px; }
  .contact-finale .contact-actions { margin-top: 24px; }
  .contact-finale .contact-actions .button { min-height: 54px; min-width: 214px; }
  .contact-finale .contact-film-wrap { align-self: end; }
  .site-footer .footer-bottom > div { flex-wrap: wrap; gap: 12px 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .brand-intro *, .contact.contact-finale * { animation: none !important; transition: none !important; }
  .brand-intro.is-leaving .brand-intro-sheet { opacity: 0; }
  .contact-stage::after { height: 56px; }
  .contact.contact-finale { position: relative; top: auto; }
  .contact-finale .service-film { transform: none; }
}
html[data-motion="paused"] .brand-intro *, html[data-motion="paused"] .contact.contact-finale * { animation: none !important; transition: none !important; }
html[data-motion="paused"] .contact-finale .service-film { transform: none; }
