/* A continuous curtain across native documents. No competing native snapshot animation. */
html::after {
  content: ''; position: fixed; inset: -1px; z-index: 2147483647;
  background: #071b2b; pointer-events: none; visibility: hidden;
  transform: translateY(101%);
}
html.pp-cover::after, html.pp-enter::after, html.pp-reveal::after {
  visibility: visible; pointer-events: auto; will-change: transform;
}
html.pp-cover::after { animation: pp-cover 340ms cubic-bezier(.65,0,.25,1) both, pp-curtain-safety 0s 4s forwards; }
html.pp-enter::after { transform: translateY(0); animation: pp-curtain-safety 0s 3800ms forwards; }
/* Fade against the brand ink, never the browser's default white canvas. */
html.pp-enter, html.pp-reveal { background: #071b2b; }
html.pp-enter body { opacity: 0; animation: pp-content-safety 0s 3800ms forwards; }
html.pp-reveal::after { animation: pp-reveal 680ms cubic-bezier(.22,1,.36,1) both, pp-curtain-safety 0s 1s forwards; }
html.pp-reveal body { animation: pp-content-in 760ms ease-out both; }
@keyframes pp-cover { from { transform: translateY(101%); } to { transform: translateY(0); } }
@keyframes pp-reveal { from { transform: translateY(0); } to { transform: translateY(-101%); } }
@keyframes pp-content-in { from { opacity: .18; } to { opacity: 1; } }
@keyframes pp-curtain-safety { to { visibility: hidden; pointer-events: none; } }
@keyframes pp-content-safety { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  html::after { display: none !important; animation: none !important; }
  html.pp-enter body, html.pp-reveal body { opacity: 1; animation: none !important; }
}

.pp-nojs-nav { display: none; }
@media (max-width: 850px) {
  .pp-nojs-nav { display: flex; position: relative; z-index: 1001; flex-wrap: wrap; gap: 14px; padding: 84px 20px 20px; background: #071b2b; color: #fff; font: 14px sans-serif; }
  .pp-nojs-nav a { color: inherit; }
}

/* Brand introduction: only enabled by the early startup script. */
.pp-startup { display: none; }
html.pp-starting .pp-startup,
html.pp-start-reveal .pp-startup {
  display: grid;
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  place-items: center;
  background: #071b2b;
  color: #edf2f1;
  animation: pp-start-safety 0s 3s forwards;
}
.pp-startup-mark { width: min(280px, 72vw); text-align: center; }
.pp-startup-name { font: 600 clamp(13px, 3.8vw, 17px)/1.5 Arial, sans-serif; letter-spacing: .23em; white-space: nowrap; }
.pp-startup-name span { font-weight: 400; }
.pp-startup-track { display: block; height: 1px; margin: 26px auto 0; width: 144px; overflow: hidden; background: #a5d5ef26; }
.pp-startup-track::after { content: ''; display: block; width: 48%; height: 100%; background: #a5d5ef; animation: pp-start-line 1.1s ease-in-out infinite; }
html.pp-start-reveal .pp-startup { animation: pp-start-exit 450ms cubic-bezier(.33,0,.2,1) both, pp-start-safety 0s 1s forwards; }
@keyframes pp-start-line { from { transform: translateX(-110%); } to { transform: translateX(320%); } }
@keyframes pp-start-exit { to { transform: translateY(-101%); } }
@keyframes pp-start-safety { to { visibility: hidden; pointer-events: none; } }
@media (prefers-reduced-motion: reduce) {
  .pp-startup-track::after { animation: none; width: 100%; }
  html.pp-start-reveal .pp-startup { display: none; }
}

/* First-visit home reveal. Base content always remains visible without JS. */
.hero h1 .pp-title-line { display: block; }
@media (prefers-reduced-motion: no-preference) {
  html.pp-home-enter .hero h1 .pp-title-line {
    /* Keep accents and descenders inside the reveal, without changing layout. */
    overflow: visible;
    clip-path: inset(-.25em -.15em -.35em);
  }
  html.pp-home-enter .pp-title-line > span {
    display: block;
    animation: pp-title-enter 620ms cubic-bezier(.22,1,.36,1) 180ms both;
  }
  html.pp-home-enter .pp-title-line:nth-child(2) > span { animation-delay: 260ms; }
  html.pp-home-enter .hero-lead { animation: pp-copy-enter 500ms ease-out 320ms both; }
  html.pp-home-enter .hero-copy > .eyebrow { animation: pp-entry-fade 400ms ease-out 140ms both; }
  html.pp-home-enter .pp-main-nav { animation: pp-entry-fade 360ms ease-out 90ms both; }
  html.pp-home-enter .hero-bottom { animation: pp-entry-fade 450ms ease-out 480ms both; }
}
@keyframes pp-title-enter {
  from { opacity: 0; transform: translate3d(0,20px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes pp-copy-enter {
  from { opacity: 0; transform: translate3d(0,10px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes pp-entry-fade { from { opacity: 0; } to { opacity: 1; } }
