/* The same curtain in Chrome, Safari and Firefox; no native transition dependency. */
.page-transition-curtain,
html.page-arriving::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background: #1d1d1d;
  pointer-events: none;
  transform: translateY(101%);
}
html.page-arriving::after { transform: none; }
html.page-travelling .page-transition-curtain { pointer-events: auto; }
@font-face { font-family:SatoshiTransition;src:url('../fonts/Satoshi-Black.woff2') format('woff2');font-weight:900;font-style:normal;font-display:block; }
.page-transition-curtain { display:grid;place-items:center; }
.page-transition-message { position:fixed;inset:0 24px;z-index:2147483647;display:flex;align-items:center;justify-content:center;pointer-events:none;margin:0;color:#fff;text-align:center;white-space:nowrap;font:900 clamp(24px,4.583333vw,66px)/1 SatoshiTransition,SatoshiMenu,Helvetica,Arial,sans-serif;letter-spacing:-.05em; }
/* The destination tool normalises p/span weight with !important. Keep only
   this shared overlay isolated from that reset across both pages. */
.page-transition-message,.page-transition-message span { font-weight:900!important; }
.page-transition-message[hidden] { display:none; }
.page-transition-word { display:inline-block;position:relative; }
.page-transition-word-measure { visibility:hidden; }
.page-transition-word-text { position:absolute;inset:0;text-align:left; }
html.page-create-arriving .page-transition-curtain { transform:none; }
html.page-create-arriving::after { display:none; }
@media(max-width:699px) { .page-transition-message { font-size:clamp(24px,8.2vw,40px); } }
@media (prefers-reduced-motion: reduce) {
  .page-transition-curtain, html.page-arriving::after { display: none; }
}

/* Header remains stationary underneath the full-screen curtain. */
html.page-arriving .landing-header,
html.page-travelling .landing-header { background: #fff; }

/* First landing visit: no curtain, scale or layout movement. */
@keyframes landing-first-entry {
  from { opacity:0;transform:translateY(-8px); }
  to { opacity:1;transform:none; }
}
@keyframes landing-first-header { from { opacity:0; } to { opacity:1; } }
html.page-first-entry :is(#landing-content,.landing-footer) { animation:landing-first-entry 1100ms cubic-bezier(.16,1,.3,1) both; }
html.page-first-entry .landing-header { animation:landing-first-header 850ms ease-out both; }
@media (prefers-reduced-motion: reduce) {
  html.page-first-entry :is(#landing-content,.landing-footer,.landing-header) { animation:none; }
}
