/* V40: pale sage cloth. The same colour grade lives in the GPU fragment shader. */
.curtain-stage{position:absolute;inset:0 0 auto;height:100vh;height:100svh;max-height:100%;z-index:12;overflow:hidden;pointer-events:none;contain:paint}
.curtain-stage[hidden]{display:none!important}
.curtain-stage .curtain-wave-surface{position:absolute;inset:0;display:block;width:100%;height:100%;visibility:hidden;pointer-events:none}
.curtain-stage.wave-active .curtain-wave-surface{visibility:visible}
.curtain-stage.wave-active .curtain-panel{visibility:hidden}
.curtain-loading .curtain-stage[hidden]{display:block!important}
.curtain-stage .curtain-panel{position:absolute;top:-1px;bottom:-1px;width:calc(50% + 2px);background:none;box-shadow:none;transition:none;backface-visibility:hidden;transform:translate3d(0,0,0)}
.curtain-stage .curtain-panel::before{content:'';position:absolute;inset:calc(-1 * (8vw + 2px)) 0 -12vh;background-color:#c3ceb5;background-image:linear-gradient(rgba(224,234,207,.72),rgba(224,234,207,.72)),url('assets/sage-curtains.webp');background-repeat:no-repeat;background-size:200% 100%;backface-visibility:hidden;transform:rotate(0deg)}
.curtain-stage .curtain-left{left:0}
.curtain-stage .curtain-right{right:0}
.curtain-stage .curtain-left::before{background-position:left top;transform-origin:0 calc(8vw + 2px)}
.curtain-stage .curtain-right::before{background-position:right top;transform-origin:100% calc(8vw + 2px)}
.curtain-stage.curtain-opening .curtain-panel{will-change:transform;animation-duration:1800ms;animation-delay:80ms;animation-timing-function:cubic-bezier(.4,0,.2,1);animation-fill-mode:both;animation-iteration-count:1}
.curtain-stage.curtain-opening .curtain-left{animation-name:bds-curtain-left-v32}
.curtain-stage.curtain-opening .curtain-right{animation-name:bds-curtain-right-v32}
.curtain-stage.curtain-opening .curtain-panel::before{will-change:transform;animation-duration:1800ms;animation-delay:80ms;animation-timing-function:cubic-bezier(.4,0,.2,1);animation-fill-mode:both;animation-iteration-count:1}
.curtain-stage.curtain-opening .curtain-left::before{animation-name:bds-curtain-hem-left-v35}
.curtain-stage.curtain-opening .curtain-right::before{animation-name:bds-curtain-hem-right-v35}
/* The bottom leads the opening; the rail follows. Rotation gently returns as the fabric clears. */
@keyframes bds-curtain-left-v32{
  0%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-118%,0,0)}
}
@keyframes bds-curtain-right-v32{
  0%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(118%,0,0)}
}
@keyframes bds-curtain-hem-left-v35{
  0%{transform:rotate(0deg)}
  42%{transform:rotate(11deg)}
  76%{transform:rotate(3deg)}
  100%{transform:rotate(0deg)}
}
@keyframes bds-curtain-hem-right-v35{
  0%{transform:rotate(0deg)}
  42%{transform:rotate(-11deg)}
  76%{transform:rotate(-3deg)}
  100%{transform:rotate(0deg)}
}
.curtain-stage.curtain-paused .curtain-panel,.curtain-stage.curtain-paused .curtain-panel::before{animation-play-state:paused!important}
.curtain-loading .masthead{color:#203a31;border-color:#203a3133}
.curtain-loading .masthead>a:first-child img{filter:none;opacity:1}
.curtain-stage .curtain-skip{pointer-events:auto;position:absolute;left:50%;top:150px;translate:-50% 0;z-index:2;min-height:44px;padding:10px 17px;border-radius:50px;border:1px solid #f5f0de99;background:#f4f3e5e8;color:#294332;box-shadow:0 5px 18px #122b1d22;font:600 13px/1.3 'DM Sans',Arial,sans-serif;cursor:pointer;opacity:1;transition:none}
.curtain-stage .curtain-skip:focus-visible{outline:3px solid #c5f58c;outline-offset:4px}
.curtain-opening .curtain-skip{animation:bds-curtain-skip-v32 300ms 760ms ease-out both}
@keyframes bds-curtain-skip-v32{to{opacity:0;visibility:hidden}}
@media(max-width:700px){.curtain-stage .curtain-skip{top:162px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.curtain-stage,.curtain-loading .curtain-stage[hidden]{display:none!important}}

.curtain-loading .hero-art,.curtain-loading .hero-art *{animation-play-state:paused!important}
