.intro-active {
overflow: hidden;
}

.site-intro {
position: fixed;
inset: 0;
z-index: 80;
background: #f4efe8;
display: flex;
align-items: center;
justify-content: center;
isolation: isolate;
contain: layout paint style;
}

.site-intro.is-exit {
animation: site-intro-fadeout 700ms ease-in forwards;
}

.site-intro-loading {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
pointer-events: none;
font-family: 'Cormorant Garamond', serif;
font-size: clamp(18px, 3vw, 28px);
letter-spacing: 0.22em;
text-transform: uppercase;
color: #8a6d46;
animation: intro-blink 1.4s ease-in-out infinite;
}

.site-intro-video {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}

.site-intro-skip {
position: absolute;
right: 24px;
bottom: 28px;
border: 1px solid rgba(255,255,255,0.35);
background: rgba(0,0,0,0.38);
color: #fff;
border-radius: 999px;
padding: 11px 20px;
font: inherit;
font-size: 15px;
cursor: pointer;
z-index: 2;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
transition: transform .2s ease, background-color .2s ease;
}

.site-intro-skip:hover,
.site-intro-skip:focus-visible {
transform: translateY(-2px);
background: rgba(0,0,0,0.56);
outline: none;
}

@keyframes intro-blink {
0%, 100% { opacity: 1; }
50%       { opacity: 0.25; }
}

@keyframes site-intro-fadeout {
from { opacity: 1; }
to   { opacity: 0; visibility: hidden; }
}

@media (max-width: 768px) {
.site-intro-skip {
  right: 16px;
  bottom: 20px;
  padding: 10px 16px;
  font-size: 14px;
}
}

@media (prefers-reduced-motion: reduce) {
.site-intro,
.site-intro * {
  animation-duration: .001ms !important;
  transition-duration: .001ms !important;
}
}
