/* ==========================================================================
   Page transition curtain - shared by every public marketing page.

   One sheet of the intro's warm ink, nothing on it. Leaving a page it rises
   from the bottom; the next page paints with it already closed (html.pt-in,
   set by the inline boot script in <head>), then it lifts away upward - the
   same motion the intro's ink makes as it lifts off the home page. The home
   page skips the lift: its intro starts on the same ink.

   Markup lives at the top of <body>; transition.js drives it.
   ========================================================================== */

:root {
  --pt-ink: oklch(0.17 0.012 62);
  --pt-ink-deep: oklch(0.13 0.01 62);
  --pt-paper: oklch(0.93 0.014 88);
  --pt-gold: oklch(0.75 0.088 80);
  --pt-gold-dim: oklch(0.75 0.088 80 / 0.28);
}

.pt {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  background:
    radial-gradient(120% 80% at 50% 45%, var(--pt-ink) 0%, var(--pt-ink-deep) 100%);
  clip-path: inset(100% 0 0 0);
  visibility: hidden;
  pointer-events: none;
  contain: strict;
}

/* Painted closed on arrival so there is never a frame of the bare page. */
html.pt-in .pt,
.pt.is-active {
  visibility: visible;
  pointer-events: auto;
}

html.pt-in .pt {
  clip-path: inset(0 0 0 0);
}

@media (prefers-reduced-motion: reduce) {
  .pt {
    clip-path: none;
    opacity: 0;
  }

  html.pt-in .pt {
    clip-path: none;
    opacity: 1;
  }
}
