/* A compositor-driven fabric reveal: no canvas, texture decode or frame-paint loop. */
.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-loading .curtain-stage[hidden]{display:block!important}
.curtain-stage .curtain-panel{position:absolute;top:-1px;bottom:-4%;width:calc(50% + 2px);background-color:#21402b;background-image:url('assets/sage-curtains.webp');background-size:200% 100%;background-repeat:no-repeat;backface-visibility:hidden;transform:translate3d(0,0,0);box-shadow:0 0 22px #071b1755}
.curtain-stage .curtain-left{left:0;background-position:left top;transform-origin:0 0}
.curtain-stage .curtain-right{right:0;background-position:right top;transform-origin:100% 0}
.curtain-stage.curtain-opening .curtain-panel{will-change:transform;animation-duration:2300ms;animation-timing-function:linear;animation-fill-mode:both;animation-iteration-count:1}
.curtain-stage.curtain-opening .curtain-left{animation-name:bds-curtain-left-v32;animation-delay:280ms}
.curtain-stage.curtain-opening .curtain-right{animation-name:bds-curtain-right-v32;animation-delay:360ms}
/* The rail moves first; the lower edge lags, swings out, then settles offstage. */
@keyframes bds-curtain-left-v32{
  0%{transform:translate3d(0,0,0) rotate(0) scaleX(1)}
  14%{transform:translate3d(-9%,0,0) rotate(-1.6deg) scaleX(.97);animation-timing-function:cubic-bezier(.35,0,.26,1)}
  43%{transform:translate3d(-43%,-1%,0) rotate(-2.8deg) scaleX(.83);animation-timing-function:cubic-bezier(.2,.65,.22,1)}
  72%{transform:translate3d(-88%,-3%,0) rotate(9deg) scaleX(.64);animation-timing-function:cubic-bezier(.22,1,.36,1)}
  86%{transform:translate3d(-108%,-2%,0) rotate(12deg) scaleX(.59);animation-timing-function:ease-out}
  100%{transform:translate3d(-128%,0,0) rotate(6deg) scaleX(.58)}
}
@keyframes bds-curtain-right-v32{
  0%{transform:translate3d(0,0,0) rotate(0) scaleX(1)}
  14%{transform:translate3d(9%,0,0) rotate(1.6deg) scaleX(.97);animation-timing-function:cubic-bezier(.35,0,.26,1)}
  43%{transform:translate3d(43%,-1%,0) rotate(2.8deg) scaleX(.83);animation-timing-function:cubic-bezier(.2,.65,.22,1)}
  72%{transform:translate3d(88%,-3%,0) rotate(-9deg) scaleX(.64);animation-timing-function:cubic-bezier(.22,1,.36,1)}
  86%{transform:translate3d(108%,-2%,0) rotate(-12deg) scaleX(.59);animation-timing-function:ease-out}
  100%{transform:translate3d(128%,0,0) rotate(-6deg) scaleX(.58)}
}
.curtain-stage.curtain-paused .curtain-panel{animation-play-state:paused!important}
.curtain-loading .masthead{color:#f6f4e9;border-color:#f6f4e94d}
.curtain-loading .masthead>a:first-child img{filter:brightness(0) invert(1);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}}
