/* One matching night-canvas pass; header anchored, official chevron in the sweep. */
#site-page-curtain {
  position: fixed;
  inset: -2px;
  z-index: 2147483000;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  contain: strict;
  isolation: isolate;
}
#site-page-curtain[data-phase="covering"],
#site-page-curtain[data-phase="covered"],
#site-page-curtain[data-phase="revealing"] {
  visibility: visible;
  pointer-events: auto;
  touch-action: none;
}
.cf-curtain-strip {
  position: absolute;
  top: calc(var(--shell-height, 96px) + env(safe-area-inset-top, 0px) + 2px);
  left: 0;
  width: calc(100% + 168px);
  height: calc(100% - var(--shell-height, 96px) - env(safe-area-inset-top, 0px) - 2px);
  transform: translateX(calc(-100vw - 100%));
  /* Every pixel of the central sheet is opaque. The glass boundary is cosmetic. */
  background: var(--cf-night, #080b12);
}
.cf-curtain-strip::before,
.cf-curtain-strip::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 168px;
  pointer-events: none;
  /* Only the sheet is composited; never re-blur a live WebGL page as it moves. */
}
/* A soft dark boundary conceals the content immediately ahead of the cover. */
.cf-curtain-strip::after {
  right: -168px;
  background: linear-gradient(90deg, var(--cf-night, #080b12), #080b12d9 24%, #080b124d 70%, transparent);
}
/* The clearing edge lets the destination come into focus in its final position. */
.cf-curtain-strip::before {
  left: -168px;
  background: linear-gradient(90deg, transparent, #080b124d 30%, #080b12d9 76%, var(--cf-night, #080b12));
}
.cf-curtain-edge {
  position: absolute;
  inset: 0 -168px 0 auto;
  width: 1px;
  background: linear-gradient(180deg, transparent, #019edb66 35%, #67ddff99 54%, transparent);
}
.cf-curtain-chevron {
  position: absolute;
  left: calc((100% - 168px) / 2);
  top: 50%;
  width: clamp(88px, 9vw, 180px);
  aspect-ratio: 25.911 / 38.858;
  height: auto;
  display: block;
  transform: translate(-50%, -50%);
  fill: #019edb;
  pointer-events: none;
}
#site-page-curtain[data-phase="revealing"] .cf-curtain-edge { left: -168px; right: auto; }
#site-page-curtain[data-phase="covering"] .cf-curtain-strip::before,
#site-page-curtain[data-phase="covered"] .cf-curtain-strip::before,
#site-page-curtain[data-phase="revealing"] .cf-curtain-strip::after { display: none; }
#site-page-curtain[data-phase="covered"] .cf-curtain-strip,
#site-page-curtain[data-phase="revealing"] .cf-curtain-strip { transform: translateX(0); }
#site-page-curtain:not([data-phase="idle"]) .cf-curtain-strip { will-change: transform; }
#site-page-curtain .cf-curtain-header {
  position: absolute;
  inset: 2px 2px auto;
  z-index: 2;
  pointer-events: none;
  /* Shared header selectors provide its exact material, type and breakpoints. */
}
@media (max-width: 600px) {
  .cf-curtain-strip::before, .cf-curtain-strip::after { width: 80px; }
  .cf-curtain-strip::before { left: -80px; }
  .cf-curtain-strip::after { right: -80px; }
  .cf-curtain-edge { right: -80px; }
  #site-page-curtain[data-phase="revealing"] .cf-curtain-edge { left: -80px; }
}
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  #site-page-curtain { display: none !important; }
}
html[data-motion="off"] #site-page-curtain { display: none !important; }
