/* Fixed, transparent navigation. Only the initial Logo handoff animates it. */
.navigation {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 80;
  isolation: isolate;
  background: transparent;
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.navigation::before,.navigation::after { content: none; }
html[data-hero-opening="pending"] .navigation[data-home="true"] { transform: translateY(calc(-100% - 48px)); opacity: 0; visibility: hidden; pointer-events: none; transition: none; }
.program-heading {
  font: 700 56px/1.125 'Courier Prime', 'Courier New', monospace;
  letter-spacing: .6px;
  text-align: center;
  color: var(--gold);
  -webkit-text-stroke: 3px #fff;
  paint-order: stroke fill;
  text-shadow: 1px 3px 0 #c88e4e20;
  transform: rotate(-2deg);
}
.hero-copy h1.program-heading { transform: none; }
.hero-opening-logo { position: absolute; left: 50%; top: 50%; width: var(--opening-logo-width,min(1040px,72vw,calc((100svh - 160px)*1.429895))); transform: translate(-50%,-50%); z-index: 12; pointer-events: none; }
.hero-opening-logo img { display: block; width: 100%; height: auto; opacity: 0; }
.hero-opening-logo[hidden],.layout-editing .hero-opening-logo { display: none; }
.stamp-arrival { position: absolute; display: block; inset: 0; transform-origin: center; pointer-events: none; }
.stamp-story:not([data-opening="complete"]) .stamp-arrival { opacity: 0; }
.stamp-story:not([data-opening="complete"]) .flying-stamp { pointer-events: none!important; }
.stamp-story:not([data-opening="complete"]) .stamp-field .stamp-float { animation-play-state: paused; }
@media (max-width: 1100px) { .program-heading { font-size: 46px; } }
@media (max-width: 899px) { .program-heading { font-size: 40px; } }
.hero-title-visual { display: block; transform-origin: center; touch-action: pan-y pinch-zoom; -webkit-user-select: none; user-select: none; }
.hero-title-word { display: inline-block; white-space: pre; }
.hero-title-letter { display: inline-block; transform-origin: 50% 80%; pointer-events: none; }
.hero-copy[data-title-interactive="true"] .hero-title-letter,
.section-title-motion[data-title-interactive="true"] .hero-title-letter,
.hero-copy[data-title-interactive="true"] .hero-title-visual,
.section-title-motion[data-title-interactive="true"] .hero-title-visual { pointer-events: auto; }
.section-title-motion[data-intro="pending"] .hero-title-letter { opacity: 0; }
.hero-title-glyph { display: inline-block; transform-origin: 50% 85%; pointer-events: none; }
.stamp-float { display: block; position: absolute; inset: 0; pointer-events: none; }
.stamp-field .stamp-float, .edge-stamps .stamp-float {
  animation: brew-stamp-float var(--float-duration, 5s) ease-in-out infinite;
  animation-delay: var(--float-delay, 0s);
  animation-play-state: paused;
}
.stamp-field.is-floating .stamp-float, .edge-stamps .flying-stamp.is-floating .stamp-float { animation-play-state: running; }
.edge-stamps .flying-stamp:not(.is-floating) .stamp-float { animation: none; }
/* Hover, focus and the reverse face keep the same ambient motion layer running. */
@keyframes brew-stamp-float {
  0%,100% { transform: translateY(calc(var(--float-height, 6px) * var(--float-strength, 1) * -1)); }
  50% { transform: translateY(calc(var(--float-height, 6px) * var(--float-strength, 1))); }
}
.layout-editing .navigation { position: absolute; transform: none; opacity: 1; pointer-events: auto; transition: none; }
.layout-editing .stamp-field .stamp-float { animation: none; }
