.home-page > .shell { opacity: 1; transition: opacity 1.25s ease-in-out; }
.intro-pending, .intro-playing, .intro-leaving { background: #000; }
.intro-pending body, .intro-playing body, .intro-leaving body { overflow: hidden; }
.intro-pending #site-content, .intro-playing #site-content { opacity: 0; visibility: hidden; }
.site-intro {
  position: fixed;
  inset: 0;
  z-index: 100;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: #000;
  opacity: 1;
  transition: opacity 1.25s ease-in-out;
}
.site-intro[hidden], .site-intro [hidden] { display: none !important; }
.site-intro.is-leaving { opacity: 0; pointer-events: none; }
.site-intro video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.site-intro.is-black video { visibility: hidden; }
.intro-controls {
  position: absolute;
  inset-inline: max(24px, 4.3vw);
  bottom: max(24px, env(safe-area-inset-bottom));
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
.intro-control {
  appearance: none;
  border: 1px solid rgba(208,197,180,.38);
  border-radius: 0;
  background: rgba(0,0,0,.5);
  color: #d0c5b4;
  font: 400 .875rem/1.4 var(--font-body);
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 12px 16px;
  min-height: 44px;
  cursor: pointer;
}
.intro-control:hover { background: rgba(0,0,0,.8); border-color: #d0c5b4; }
.intro-control:focus-visible { outline: 2px solid #d0c5b4; outline-offset: 5px; }
.intro-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 16px 24px; }
@media (prefers-reduced-motion: reduce) {
  .home-page > .shell, .site-intro { transition: none; }
}
