/* A quiet co-brand signature lets the hero introduce the event title once. */
.page-entry {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  overflow: hidden;
  background: var(--color-canvas, #0c0e13);
  color: var(--color-text-primary);
  pointer-events: none;
  /* A failed startup must never leave the visitor behind the cover. */
  animation: page-entry-safety 0s 3000ms forwards;
}
html[data-page-entry='loading'] .page-entry,
html[data-page-entry='revealing'] .page-entry {
  display: grid;
}
.page-entry-brand {
  position: relative;
  display: grid;
  justify-items: center;
  gap: var(--space-6);
  width: min(100%, 26rem);
  min-width: 0;
  max-width: 100%;
  padding: min(var(--space-6), 5vw);
  opacity: 0;
}
.page-entry-mark {
  display: block;
  width: clamp(15rem, 25vw, 20rem);
  max-width: 100%;
  height: auto;
}
[data-theme='light'] .page-entry-polymarket {
  filter: invert(1);
}
.page-entry-ink {
  position: relative;
  width: 5rem;
  max-width: 100%;
  height: var(--space-1);
  /* Fine round dots echo the authored print, rather than block pixels. */
  mask: radial-gradient(circle, #000 0.65px, transparent 0.9px) center / 2.5px 2.5px;
}
.page-entry-ink::before,
.page-entry-ink::after {
  position: absolute;
  inset: 0;
  content: '';
}
.page-entry-ink::before {
  background: var(--color-text-secondary);
  opacity: 0.2;
}
.page-entry-ink::after {
  background: var(--color-action);
  /* Reveal equally on both sides so the visible ink stays on the logo's axis. */
  clip-path: inset(0 50% 0 50%);
}
.page-entry-brand[data-ready] {
  animation: page-entry-mark-enter 520ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.page-entry-brand[data-ready] .page-entry-ink::after {
  animation: page-entry-ink-print 900ms cubic-bezier(0.35, 0, 0.2, 1) 180ms both;
}
html[data-page-entry='revealing'] .page-entry-brand[data-ready] {
  animation: page-entry-mark-leave 300ms ease-in-out both;
}
html[data-page-entry='revealing'] .page-entry {
  animation: page-entry-leave 820ms cubic-bezier(0.45, 0, 0.2, 1) both;
}
@keyframes page-entry-mark-enter {
  to {
    opacity: 1;
  }
}
@keyframes page-entry-mark-leave {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes page-entry-leave {
  0%,
  14% {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes page-entry-ink-print {
  to {
    clip-path: inset(0);
  }
}
@keyframes page-entry-safety {
  to {
    visibility: hidden;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-entry {
    display: none !important;
  }
}
