/* Keep one compositing path across open, close and rapid reversals. */
html{scrollbar-gutter:stable}
.header,.header.scrolled,.header.menu-active,.header.scrolled.menu-active{height:86px;backdrop-filter:none;-webkit-backdrop-filter:none;filter:none;transform:none}
.header .nav,.header .nav.open{
 clip-path:none;transform:none;background:#292622;
 transition:opacity .28s ease,visibility 0s linear .28s;
}
.header .nav{opacity:0;visibility:hidden;pointer-events:none}
.header .nav.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.header .nav .menu-heading,.header .nav .menu-group,.header .nav .nav-bottom{
 transform:translateY(8px);transition:opacity .3s ease,transform .4s cubic-bezier(.16,1,.3,1);transition-delay:0s;
}
.header .nav.open .menu-heading,.header .nav.open .menu-group,.header .nav.open .nav-bottom{transform:translateY(0);opacity:1;transition-delay:.06s}
.header>.menu,body:has(.signature-photos) .header>.menu{animation:none;opacity:1;visibility:visible;transform:none;pointer-events:auto}
/* Share the curtain's duration; this animation stays attached across menu states. */
body:has(.hero .opening-message){--intro-curtain-duration:3.5s}
.hero .opening-message{animation-duration:var(--intro-curtain-duration,3.5s)}
body:has(.hero .opening-message) .header>.menu{
 animation:menu-after-intro .18s ease var(--intro-curtain-duration) both!important;
}
@keyframes menu-after-intro{
 from{opacity:0;visibility:hidden;pointer-events:none}
 to{opacity:1;visibility:visible;pointer-events:auto}
}
@media(prefers-reduced-motion:reduce){
 body:has(.hero .opening-message) .header>.menu{animation:none!important;opacity:1;visibility:visible;pointer-events:auto}
 .header .nav,.header .nav .menu-heading,.header .nav .menu-group,.header .nav .nav-bottom{transition:none;transform:none}
}
