:root:has(.deck) {
  scroll-snap-type: y mandatory;
}
.deck-cover {
  min-block-size: 100svh;
  display: grid;
  align-content: center;
  padding-block: clamp(4.5rem, 12svh, 8rem);
  padding-inline: clamp(1rem, 6vw, 8rem);
}
.deck-panel {
  min-inline-size: 0;
  max-inline-size: min(48rem, 100%);
  padding: clamp(1.25rem, 4vw, 3rem);
  border: 1px solid var(--deck-glass-edge);
  border-radius: var(--deck-glass-radius);
  background: var(--deck-scrim);
  box-shadow: inset 0 1px 0 var(--deck-glass-sheen), var(--deck-paper-shadow);
  scroll-snap-align: center;
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .deck-panel {
    background: var(--deck-glass);
    -webkit-backdrop-filter: var(--deck-glass-backdrop);
    backdrop-filter: var(--deck-glass-backdrop);
  }
}
.deck-eyebrow {
  margin: 0;
  color: var(--deck-accent);
}
.deck-title {
  margin-block: calc(var(--rhythm) * 0.25) var(--rhythm);
}
.deck-standfirst {
  margin: 0;
}
.deck-more {
  margin: var(--rhythm) 0 0;
}
.deck-more-link {
  display: inline-flex;
  gap: 0.5em;
  align-items: baseline;
  padding-block: 0.25em;
  color: var(--deck-accent);
  font-family: var(--font-meta);
  font-size: var(--step-0);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.3em;
}
.deck-more-link::after {
  content: "↓"/"";
}
.deck-more-link:hover {
  text-decoration-thickness: 0.15em;
}
.deck-more-link:focus-visible {
  outline: 2px solid var(--deck-accent);
  outline-offset: 0.35em;
  border-radius: 0.25em;
}
@media (prefers-reduced-motion: no-preference) {
  :root:has(.deck) {
    scroll-behavior: smooth;
  }
}
.deck-rest {
  display: none;
}
:root.waves-reveal:has(.deck) {
  scroll-snap-type: none;
}
:root.waves-reveal .deck {
  overflow-x: clip;
}
:root.waves-reveal .deck-cover {
  position: relative;
  min-block-size: calc(var(--reveal-length) * 100svh);
  align-content: start;
  padding-block: 0;
}
:root.waves-reveal .deck-panel {
  position: sticky;
  inset-block-start: 50%;
  translate: var(--waves-tuck, 0px) -50%;
  margin-block: 50svh 0;
  scroll-snap-align: none;
}
:root.waves-reveal .deck-rest {
  display: block;
  position: absolute;
  inset-block-start: 50%;
  inset-inline: 0;
  block-size: 1px;
  scroll-snap-align: center;
}
.deck-tour-stop {
  position: fixed;
  inset-block-start: calc(var(--site-header-size) + 1rem);
  inset-inline-end: clamp(1rem, 6vw, 8rem);
  z-index: 2;
  padding: 0.5em 1em;
  border: 1px solid var(--deck-glass-edge);
  border-radius: 999px;
  background: var(--deck-scrim);
  color: var(--deck-ink);
  font: inherit;
  font-family: var(--font-meta);
  font-size: var(--step--1);
  cursor: pointer;
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .deck-tour-stop {
    background: var(--deck-glass);
    -webkit-backdrop-filter: var(--deck-glass-backdrop);
    backdrop-filter: var(--deck-glass-backdrop);
  }
}
.deck-tour-stop:hover {
  color: var(--deck-accent);
}
.deck-tour-stop:focus-visible {
  outline: 2px solid var(--deck-accent);
  outline-offset: 0.2em;
}
.deck-tour-progress {
  position: absolute;
  inset-block-end: 0;
  inset-inline: var(--deck-glass-radius);
  block-size: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--deck-accent);
  transform-origin: left;
  animation: deck-tour-progress var(--tour-wait, 10s) linear both;
}
@keyframes deck-tour-progress {
  from {
    scale: 0 1;
  }
}