@charset "UTF-8";
:root {
  --bg-900: #07090b;
  --bg-850: #0b1014;
  --bg-800: #0f151a;
  --surface-700: #121b21;
  --surface-650: #15212a;
  --surface-600: #17232b;
  --surface-500: #1b2933;
  --text-primary: #f3f5f6;
  --text-secondary: #b8c2c8;
  --text-muted: #8fa0a8;
  --border-soft: rgba(255, 255, 255, 0.09);
  --border-strong: rgba(255, 255, 255, 0.25);
  --accent-red: #a30d14;
  --accent-red-hover: #c3131c;
  --accent-red-press: #81080f;
  --accent-cyan: #67d6e3;
  --accent-cyan-soft: rgba(103, 214, 227, 0.18);
  --shadow-soft: 0 0.625rem 2rem rgba(0, 0, 0, 0.28);
  --shadow-card: 0 1.25rem 3rem rgba(0, 0, 0, 0.28);
}

:root {
  --font-heading: "Sora", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-size-900: clamp(2.5rem, 7vw, 5rem);
  --font-size-800: clamp(2rem, 4vw, 3.5rem);
  --font-size-700: clamp(1.5rem, 2.4vw, 2.25rem);
  --font-size-600: clamp(1.25rem, 1.8vw, 1.5rem);
  --font-size-500: 1.125rem;
  --font-size-400: 1rem;
  --font-size-300: 0.9375rem;
  --line-tight: 1.05;
  --line-copy: 1.6;
}

:root {
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
}

:root {
  --ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
  --duration-fast: 140ms;
  --duration-base: 220ms;
  --duration-slow: 420ms;
}

:root {
  --z-skip-link: 1000;
  --z-header: 900;
  --z-overlay: 800;
  --z-sticky-cta: 850;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.visually-hidden {
  position: absolute !important;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  white-space: nowrap;
  border: 0;
  clip-path: inset(50%);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  min-block-size: 100vh;
}

img,
picture,
svg,
video {
  display: block;
  max-inline-size: 100%;
  height: auto;
}

button,
input,
textarea,
select {
  font: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

ul[role=list],
ol[role=list] {
  list-style: none;
  padding: 0;
}

html {
  background: var(--bg-900);
}

body {
  background: radial-gradient(circle at top right, rgba(103, 214, 227, 0.08), transparent 30%), radial-gradient(circle at top left, rgba(163, 13, 20, 0.1), transparent 24%), linear-gradient(180deg, var(--bg-850), var(--bg-900));
  color: var(--text-primary);
  font-family: var(--font-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

@font-face {
  font-family: "Sora";
  src: url("/assets/fonts/sora-vf.ttf") format("truetype");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}
/* inter-100 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 100;
  src: url("/assets/fonts/inter-v20-latin-100.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-100italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 100;
  src: url("/assets/fonts/inter-v20-latin-100italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-200 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 200;
  src: url("/assets/fonts/inter-v20-latin-200.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-200italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 200;
  src: url("/assets/fonts/inter-v20-latin-200italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  src: url("/assets/fonts/inter-v20-latin-300.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-300italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 300;
  src: url("/assets/fonts/inter-v20-latin-300italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/fonts/inter-v20-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 400;
  src: url("/assets/fonts/inter-v20-latin-italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  src: url("/assets/fonts/inter-v20-latin-500.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-500italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 500;
  src: url("/assets/fonts/inter-v20-latin-500italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  src: url("/assets/fonts/inter-v20-latin-600.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 600;
  src: url("/assets/fonts/inter-v20-latin-600italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  src: url("/assets/fonts/inter-v20-latin-700.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 700;
  src: url("/assets/fonts/inter-v20-latin-700italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 800;
  src: url("/assets/fonts/inter-v20-latin-800.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-800italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 800;
  src: url("/assets/fonts/inter-v20-latin-800italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  src: url("/assets/fonts/inter-v20-latin-900.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-900italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: italic;
  font-weight: 900;
  src: url("/assets/fonts/inter-v20-latin-900italic.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* fredericka-the-great-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Fredericka the Great";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/fonts/fredericka-the-great-v23-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* allison-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Allison";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/fonts/allison-v13-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
::selection {
  background: rgba(163, 13, 20, 0.45);
  color: var(--text-primary);
}

body[data-nav-open=true] {
  overflow: hidden;
}

.skip-link {
  position: absolute;
  inset-block-start: var(--space-2);
  inset-inline-start: var(--space-2);
  z-index: var(--z-skip-link);
  padding: var(--space-3) var(--space-4);
  color: var(--text-primary);
  background: var(--surface-600);
  border-radius: 0.5rem;
  transform: translateY(-200%);
}

.skip-link:focus {
  transform: translateY(0);
}

body {
  font-size: var(--font-size-400);
  line-height: var(--line-copy);
}

h1, h2, h3, h4 {
  font-family: var(--font-heading);
  line-height: var(--line-tight);
  letter-spacing: -0.02em;
}

p, li, dd {
  color: var(--text-secondary);
}

.section-heading {
  margin-block-end: var(--space-10);
}
.section-heading--tight {
  margin-block-end: var(--space-8);
}
.section-heading__eyebrow {
  margin-block-end: var(--space-3);
  color: var(--accent-cyan);
  font-size: var(--font-size-300);
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.section-heading__title {
  font-size: clamp(1.9rem, 4vw, 3rem);
  margin-block-end: var(--space-4);
}
.section-heading__text {
  max-inline-size: 42rem;
}

.section-note {
  margin-block-start: var(--space-6);
  color: var(--text-muted);
  text-align: center;
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-primary);
  font-weight: 600;
}

.link-arrow::after {
  content: "→";
  transition: transform var(--duration-base) var(--ease-standard);
}

.link-arrow:hover::after,
.link-arrow:focus-visible::after {
  transform: translateX(0.2rem);
}

img.responsive {
  width: 100%;
  height: auto;
}
img.max600 {
  max-width: 600px;
}

.container.centered h1 {
  text-align: center;
}
.container.centered img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.container.centered p {
  text-align: center;
}

.h1Simple {
  font-size: var(--font-size-900);
  position: relative;
  padding-block: var(--space-10);
}

.h2Simple {
  font-size: var(--font-size-800);
  position: relative;
  padding-block: var(--space-8);
}

.pSimple {
  position: relative;
  color: var(--text-primary);
  font-size: var(--font-size-500);
  margin-block-end: var(--space-10);
}

.videoBox {
  border: 1px solid var(--border-soft);
  border-radius: 1.5rem;
  overflow: hidden;
}

.simpleGap {
  margin-block: var(--space-10);
}

.parkplanBanner {
  display: grid;
  gap: var(--space-6);
}
.parkplanBanner__banner {
  width: 100%;
  height: auto;
  border-radius: 1.5rem;
  border: 1px solid var(--border-soft);
  overflow: hidden;
}
.parkplanBanner__banner a {
  display: block;
  position: relative;
}
.parkplanBanner__index {
  background-color: #ffffff;
  color: #cc0000;
  font-weight: 900;
  font-size: var(--font-size-600);
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-card);
}

@media (min-width: 48rem) {
  .parkplanBanner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64rem) {
  .parkplanBanner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.paper {
  display: block;
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 250px auto;
  padding: 64px;
  color: #5d271a;
  background-image: url(/assets/images/backgrounds/papier_kachel.webp);
  background-position: top center;
  background-size: 1000px 1337px;
  background-repeat: repeat-y;
  transform: translate(0, 90px);
}
.paper h2 {
  font-family: "Fredericka the Great", serif;
  font-size: 3.5em;
  text-align: center;
  margin: 0;
  transform: translate(0, -50px);
}
.paper p {
  color: #3f1a12;
  font-family: "Allison", serif;
  font-size: 3em;
  line-height: 1;
}
.paper::after {
  bottom: 0;
  background-image: url(/assets/images/backgrounds/papier_unten.webp);
  background-position: bottom center;
  transform: translate(0, 90px);
}
.paper::before, .paper::after {
  content: "";
  display: block;
  width: 100%;
  height: 183px;
  position: absolute;
  left: 0;
  background-size: 1000px 183px;
  background-repeat: no-repeat;
  pointer-events: none;
}
.paper::before {
  top: 0;
  background-image: url(/assets/images/backgrounds/papier_oben.webp);
  background-position: top center;
  transform: translate(0, -90px);
}
@media (max-width: 64rem) {
  .paper {
    padding: 24px 24px 64px 24px;
  }
  .paper p {
    font-size: 2.5em;
  }
}

.all-attractions-box {
  text-align: center;
  max-width: 800px;
  margin: var(--space-20) auto;
}
.all-attractions-box h2 {
  font-size: var(--font-size-700);
}
.all-attractions-box p {
  font-size: var(--font-size-500);
  margin: var(--space-5) auto;
}

.buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

.page--landing {
  position: relative;
  isolation: isolate;
  background: transparent;
}

.page--landing .site-main,
.page--landing .site-footer {
  position: relative;
}

.page-background {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: clip;
  pointer-events: none;
  background: #05080b;
}

.page-background__still,
.page-background__video,
.page-background__overlay {
  position: absolute;
  inset: 0;
}

.page-background__still {
  background: url("/assets/images/backgrounds/spooky-fog-poster.webp") center/cover no-repeat;
  transform: scale(1.03);
}

.page-background__video {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.75;
  display: none;
}

/* Mobile und kleinere Tablets: nur Still */
@media (max-width: 63.99rem) {
  .page-background__video {
    display: none;
  }
  .page-background__still {
    transform: scale(1.015);
  }
}
/* Desktop: Video als Enhancement */
@media (min-width: 64rem) {
  .page-background__video {
    display: block;
  }
}
/* Bewegungsreduktion */
@media (prefers-reduced-motion: reduce) {
  .page-background__video {
    display: none !important;
  }
  .page-background__still {
    filter: saturate(0.94) brightness(0.74);
  }
}
.container {
  inline-size: min(100% - 2rem, 80rem);
  margin-inline: auto;
}

.container--wide {
  inline-size: min(100% - 2rem, 92rem);
  margin-inline: auto;
}

.benefit-grid,
.ticket-grid,
.notice-grid,
.attraction-grid {
  display: grid;
  gap: var(--space-6);
}

.benefit-grid--compact,
.notice-grid--compact {
  gap: var(--space-4);
}

@media (min-width: 48rem) {
  .benefit-grid--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .notice-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ticket-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }
  .attraction-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64rem) {
  .attraction-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .attraction-grid--addons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.site-header {
  position: sticky;
  inset-block-start: 0;
  z-index: var(--z-header);
  background: linear-gradient(180deg, rgba(11, 16, 20, 0.88), rgba(11, 16, 20, 0.74));
  backdrop-filter: blur(1rem);
  border-block-end: 1px solid var(--border-soft);
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.18);
  --header-mobile-height: 4.75rem;
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-block-size: 4.75rem;
  transition: min-block-size var(--duration-base) var(--ease-standard);
}
.site-header__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--text-primary);
  font-weight: 700;
}
.site-header__logo {
  inline-size: 2.5rem;
  block-size: 2.5rem;
  transition: block-size var(--duration-base) var(--ease-standard), inline-size var(--duration-base) var(--ease-standard);
}
.site-header__brand-text {
  font-size: 1rem;
  transition: font-size var(--duration-base) var(--ease-standard);
}
.site-header__nav-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border: 1px solid var(--border-strong);
  background: transparent;
  color: var(--text-primary);
  border-radius: 999px;
  padding: 0.75rem 1rem;
  position: relative;
  z-index: 10;
}
.site-header__nav-toggle:focus-visible, .site-header__cta:focus-visible, .site-header__nav-list a:focus-visible {
  outline: 2px solid var(--accent-cyan);
  outline-offset: 2px;
}
.site-header__nav-panel {
  position: fixed;
  z-index: calc(var(--z-header) + 1);
  inset-inline: 1rem;
  inset-block-start: calc(var(--header-mobile-height) + 0.5rem);
  padding: 1rem;
  background: linear-gradient(180deg, rgba(11, 16, 20, 0.98), rgba(11, 16, 20, 0.94));
  border: 1px solid var(--border-soft);
  border-radius: 1rem;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(1rem);
  max-block-size: calc(100dvh - var(--header-mobile-height) - 1.75rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.site-header__nav-list {
  display: grid;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-5);
}
.site-header__nav-list a {
  display: flex;
  align-items: center;
  min-block-size: 3.25rem;
  padding-block: 0.75rem;
  color: var(--text-primary);
  font-weight: 650;
  border-block-end: 1px solid rgba(255, 255, 255, 0.08);
  transition: color var(--duration-base) var(--ease-standard), opacity var(--duration-base) var(--ease-standard);
}
.site-header__nav-list a:hover {
  color: var(--text-primary);
}
.site-header__nav-list li:last-child a {
  border-block-end: 0;
}
.site-header__cta {
  inline-size: 100%;
  justify-content: center;
}
@media (min-width: 64rem) {
  .site-header__nav-toggle {
    display: none;
  }
  .site-header__inner {
    min-block-size: 6rem;
    --header-mobile-height: 6rem;
    gap: var(--space-8);
  }
  .site-header__brand {
    gap: var(--space-4);
  }
  .site-header__logo {
    inline-size: 4.75rem;
    block-size: 4.75rem;
  }
  .site-header__brand-text {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.02em;
  }
  .site-header__nav-panel {
    position: static;
    display: flex !important;
    align-items: center;
    gap: var(--space-6);
    justify-content: space-between;
    flex: 1;
    padding: 0;
    background: transparent;
    max-block-size: none;
    overflow: visible;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
  }
  .site-header__nav-list {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin: 0;
  }
  .site-header__nav-list a {
    font-size: 0.98rem;
    font-weight: 650;
    letter-spacing: 0.01em;
    border-block-end: 0;
  }
  .site-header__cta {
    min-block-size: 3.25rem;
    padding-inline: 1.25rem;
    font-size: 0.95rem;
    white-space: nowrap;
    inline-size: auto;
    justify-content: center;
  }
}

.page-menu-overlay {
  position: fixed;
  inset-inline: 0;
  inset-block-start: 4.75rem;
  inset-block-end: 0;
  z-index: calc(var(--z-header) - 1);
  background: rgba(5, 8, 11, 0.15);
  backdrop-filter: blur(0.45rem);
  -webkit-backdrop-filter: blur(0.45rem);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--duration-base) var(--ease-standard), visibility 0s linear var(--duration-base);
}

body[data-nav-open=true] .page-menu-overlay {
  opacity: 1;
  visibility: visible;
  transition: opacity var(--duration-base) var(--ease-standard), visibility 0s linear 0s;
}

@media (min-width: 64rem) {
  .page-menu-overlay {
    display: none;
  }
}
.site-footer {
  padding-block: var(--space-12);
}
.site-footer__social {
  display: grid;
  justify-items: center;
  gap: var(--space-5);
  padding-block: var(--space-10) var(--space-12);
  margin-block-end: var(--space-10);
  border-block-end: 1px solid var(--border-soft);
  text-align: center;
}
.site-footer__social-title {
  color: var(--text-primary);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
}
.site-footer__social-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
}
.site-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-inline-size: 4rem;
  min-block-size: 4rem;
  border-radius: 999px;
  transition: transform var(--duration-fast) var(--ease-standard), opacity var(--duration-base) var(--ease-standard);
}
.site-footer__social-link:hover {
  transform: translateY(-2px);
}
.site-footer__social-link:focus-visible {
  outline: 2px solid var(--accent-cyan);
  outline-offset: 4px;
}
.site-footer__social-icon {
  inline-size: 3.5rem;
  block-size: 3.5rem;
  object-fit: contain;
}
.site-footer__sponsors {
  padding-block: var(--space-10) var(--space-12);
  border-block-end: 1px solid var(--border-soft);
  text-align: center;
}
.site-footer__sponsors .container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-10);
  margin: 0 auto;
  width: 100%;
  max-width: 800px;
}
.site-footer__sponsors img {
  height: 4rem;
  width: auto;
}
.site-footer__sponsors img.xxl {
  height: 6rem;
}
.site-footer__sponsors img.xl {
  height: 5.5rem;
}
.site-footer__sponsors img.l {
  height: 5rem;
}
.site-footer__sponsors img.sm {
  height: 3rem;
}
.site-footer__sponsors img.xs {
  height: 2.5rem;
}
.site-footer__sponsors-title {
  color: var(--text-primary);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: var(--space-10);
}
.site-footer__sponsors-text {
  margin-top: var(--space-10);
}
.site-footer__sponsors-text a {
  text-decoration: underline !important;
}
.site-footer__grid {
  display: grid;
  gap: var(--space-8);
}
.site-footer__brand {
  display: grid;
  gap: var(--space-4);
  align-content: start;
}
.site-footer__logo {
  inline-size: min(100%, 10rem);
  block-size: auto;
}
.site-footer__claim {
  max-inline-size: 24rem;
}
.site-footer__links {
  list-style: none;
  display: grid;
  gap: var(--space-3);
  padding: 0;
}
.site-footer__links a {
  color: var(--text-secondary);
}
.site-footer__links a:hover, .site-footer__links a:focus-visible {
  color: var(--text-primary);
}
.site-footer__meta {
  margin-block-start: var(--space-8);
  padding-block-start: var(--space-4);
  border-block-start: 1px solid var(--border-soft);
}
@media (min-width: 48rem) {
  .site-footer__grid {
    grid-template-columns: 1.5fr 1fr 1fr;
  }
}

.section {
  padding-block: var(--space-16);
}

.section-actions {
  margin-block-start: var(--space-8);
}

section[id] {
  scroll-margin-top: 3.5rem;
}

@media (min-width: 64rem) {
  section[id] {
    scroll-margin-top: 6rem;
  }
}
#rxSubliminalFlash {
  position: fixed;
  inset: 0;
  background: #000 center/cover no-repeat;
  visibility: hidden;
  opacity: 0;
  z-index: 2147483647;
  pointer-events: none;
  will-change: opacity, visibility;
}

.body-scroll-locked {
  position: fixed;
  inset-inline: 0;
  inset-block-start: 0;
  width: 100%;
  overflow: hidden;
}

#rxSubliminalFlash.flash--grain {
  background-blend-mode: normal;
}

[data-reveal=true] {
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 560ms cubic-bezier(0.2, 0.8, 0.2, 1), transform 560ms cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}

[data-reveal=true].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal=true] {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 3rem;
  padding-inline: 1.125rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 700;
  transition: background-color var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);
}
.button:hover {
  transform: translateY(-1px);
}
.button:focus-visible {
  outline: 2px solid var(--accent-cyan);
  outline-offset: 2px;
}
.button--lg {
  min-block-size: 3.5rem;
  padding-inline: 1.375rem;
}
.button--sm {
  min-block-size: 2.5rem;
  padding-inline: 0.875rem;
  font-size: var(--font-size-400);
}
.button--primary {
  background: linear-gradient(180deg, var(--accent-red-hover), var(--accent-red));
  color: var(--text-primary);
  box-shadow: 0 0.75rem 1.5rem rgba(163, 13, 20, 0.24);
}
.button--primary:hover {
  background: linear-gradient(180deg, #da1620, var(--accent-red-hover));
}
.button--secondary, .button--ghost {
  border-color: var(--border-strong);
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.1);
}
.button--secondary:hover, .button--ghost:hover {
  border-color: var(--accent-cyan);
  background: rgba(103, 214, 227, 0.08);
}

.benefit-card,
.notice-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  border-radius: 1.25rem;
  padding: var(--space-6);
}

.benefit-card__title,
.notice-card__title {
  margin-block-end: var(--space-3);
  font-size: var(--font-size-600);
}

.badge {
  display: inline-flex;
  align-items: center;
  min-block-size: 2rem;
  padding-inline: 0.75rem;
  border-radius: 0.5em;
  background: rgba(103, 214, 227, 0.1);
  color: var(--text-primary);
  font-size: 0.875rem;
  font-weight: 650;
}
.badge.badge--warning {
  background: rgba(163, 13, 20, 0.5);
}

.fact-bar {
  display: grid;
  gap: var(--space-4);
  padding: 0;
  margin: 0;
}

.fact-bar__item {
  padding: var(--space-4);
  border: 1px solid var(--border-soft);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
}

.fact-bar__term {
  margin-block-end: var(--space-2);
  color: var(--text-muted);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.fact-bar__value {
  color: var(--text-primary);
  font-weight: 700;
}

@media (min-width: 48rem) {
  .fact-bar {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.ticket-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  border-radius: 1.5rem;
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.ticket-card--featured {
  border-color: rgba(163, 13, 20, 0.55);
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(163, 13, 20, 0.25) inset;
}
.ticket-card__eyebrow {
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  font-weight: 650;
  margin-block-end: var(--space-2);
}
.ticket-card__title {
  font-size: var(--font-size-700);
}
.ticket-card__summary {
  color: var(--text-secondary);
}
.ticket-card__highlight {
  color: var(--accent-cyan);
  font-weight: 600;
}
.ticket-card__list {
  display: grid;
  gap: var(--space-2);
  padding-inline-start: 1.25rem;
  font-weight: 500;
}
.ticket-card__type {
  color: var(--text-muted);
  font-size: 0.95em;
  font-weight: 400;
}
.ticket-card__note {
  color: var(--text-muted);
}
.ticket-card__cta {
  margin-block-start: auto;
}

.attraction-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  display: flex;
  flex-direction: column;
  border-radius: 1.5rem;
  overflow: hidden;
}
.attraction-card--premium {
  border-color: rgba(163, 13, 20, 0.4);
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(163, 13, 20, 0.18) inset;
}
.attraction-card__logo-wrap {
  position: relative;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at top, rgba(103, 214, 227, 0.1), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  border-block-end: 1px solid var(--border-soft);
}
.attraction-card__logo {
  object-fit: contain;
}
.attraction-card__tag {
  position: absolute;
  inset-inline-end: 0.75rem;
  inset-block-start: 0.75rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.125rem 0.5rem;
  border-radius: 0.5em;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: color-mix(in srgb, var(--accent-cyan) 67%, transparent 33%);
  color: var(--text-primary);
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5), 0px 0px 5px rgba(0, 0, 0, 0.5);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 0.75rem 1.5rem rgba(163, 13, 20, 0.28);
  -webkit-backdrop-filter: blur(0.5rem);
  backdrop-filter: blur(0.5rem);
}
.attraction-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-5);
}
.attraction-card__title {
  font-size: 1.25rem;
}
.attraction-card__title.visually-hidden {
  position: absolute !important;
}
.attraction-card__text {
  font-size: 0.95rem;
}
.attraction-card__meta {
  display: inline-flex;
  gap: 1em;
  padding: 0;
}

.component__scare {
  display: grid;
  gap: 0.45rem;
  margin-block-start: 0.125rem;
  padding-block-start: 0.125rem;
}
.component__scare-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.component__scare-label {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.component__scare-value {
  color: var(--text-primary);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
}
.component__scare-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.component__scare-meter {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-block-size: 1.375rem;
  flex: 0 0 auto;
}
.component__scare-skull {
  inline-size: 1.125rem;
  block-size: 1.125rem;
  object-fit: contain;
  object-position: center;
  flex: 0 0 auto;
}
.component__scare-text {
  color: var(--text-primary);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.1;
  text-align: right;
  white-space: nowrap;
  margin-left: 0.5em;
}
.component__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  list-style: none;
  padding: 0;
}
.component__actions {
  padding-block-start: 0.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-block-start: auto;
}

.accordion {
  display: grid;
  gap: var(--space-4);
}
.accordion__item {
  border: 1px solid var(--border-soft);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
  -webkit-backdrop-filter: blur(1rem);
  backdrop-filter: blur(1rem);
}
.accordion__trigger {
  inline-size: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5);
  border: 0;
  border-radius: 1rem;
  background: transparent;
  color: var(--text-primary);
  text-align: start;
  font-weight: 700;
  cursor: pointer;
}
.accordion__trigger::after {
  content: "+";
  font-size: 1.25rem;
  color: var(--accent-cyan);
}
.accordion__trigger[aria-expanded=true]::after {
  content: "–";
}
.accordion__trigger:focus-visible {
  outline: 2px solid var(--accent-cyan);
  outline-offset: 2px;
}
.accordion__panel {
  padding: 0 var(--space-5) var(--space-5);
}
.accordion__panel a {
  font-weight: 600;
  text-decoration: underline;
}

.filter-tabs {
  display: grid;
  gap: var(--space-6);
}
.filter-tabs__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.filter-tabs__tab {
  min-block-size: 2.75rem;
  padding-inline: 1rem;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: rgba(255, 255, 255, 0.03);
  color: var(--text-primary);
  font-weight: 650;
}
.filter-tabs__tab[aria-selected=true] {
  background: rgba(163, 13, 20, 0.16);
  border-color: rgba(163, 13, 20, 0.6);
}
.filter-tabs__tab:focus-visible {
  outline: 2px solid var(--accent-cyan);
  outline-offset: 2px;
}

.embed-gate {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  border-radius: 1.5rem;
  overflow: hidden;
}
.embed-gate__preview {
  position: relative;
  min-block-size: 20rem;
}
.embed-gate__image {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
.embed-gate__content {
  position: absolute;
  inset: auto 1rem 1rem 1rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  border-radius: 1rem;
  padding: var(--space-5);
}

.sticky-cta {
  position: fixed;
  inset-inline: 1rem;
  inset-block-end: 1rem;
  z-index: var(--z-sticky-cta);
}

@media (min-width: 64rem) {
  .sticky-cta {
    display: none;
  }
}
.media-block {
  display: grid;
  gap: var(--space-6);
}

.hero {
  position: relative;
  isolation: isolate;
  padding-block: clamp(5rem, 10vw, 9rem);
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hero__video {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.95) brightness(0.88);
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 9, 11, 0.12), rgba(7, 9, 11, 0.14)), linear-gradient(90deg, rgba(7, 9, 11, 0.28) 0%, rgba(7, 9, 11, 0.1) 42%, rgba(7, 9, 11, 0.15) 100%), radial-gradient(circle at top right, rgba(103, 214, 227, 0.14), transparent 30%), radial-gradient(circle at bottom left, rgba(163, 13, 20, 0.14), transparent 28%);
}
.hero__content {
  position: relative;
  z-index: 1;
  display: grid;
  gap: var(--space-6);
}
.hero__eyebrow {
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.85rem;
  font-weight: 650;
}
.hero__title {
  font-size: var(--font-size-900);
  max-inline-size: 11ch;
}
.hero__lead {
  max-inline-size: 14ch;
  font-size: clamp(1.65rem, 5vw, 3rem);
  line-height: 1;
  color: var(--text-primary);
  font-weight: 700;
}
.hero__subcopy {
  max-inline-size: 26rem;
  font-size: var(--font-size-500);
  color: rgba(243, 245, 246, 0.86);
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.hero__facts {
  max-inline-size: 70rem;
  margin-block-start: var(--space-2);
}
@media (max-width: 47.99rem) {
  .hero__overlay {
    background: linear-gradient(180deg, rgba(7, 9, 11, 0.18), rgba(7, 9, 11, 0.42)), linear-gradient(90deg, rgba(7, 9, 11, 0.38) 0%, rgba(7, 9, 11, 0.16) 48%, rgba(7, 9, 11, 0.3) 100%), radial-gradient(circle at top right, rgba(103, 214, 227, 0.12), transparent 28%), radial-gradient(circle at bottom left, rgba(163, 13, 20, 0.12), transparent 24%);
  }
}

.tour-feature {
  padding-block-start: 0;
}
.tour-feature__panel {
  display: grid;
  gap: var(--space-6);
  border-radius: 1.75rem;
  overflow: hidden;
  border: 1px solid rgba(163, 13, 20, 0.28);
  background: radial-gradient(circle at top right, rgba(103, 214, 227, 0.08), transparent 35%), linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  box-shadow: var(--shadow-card);
}
.tour-feature__panel2 {
  margin-top: var(--space-6);
}
.tour-feature__media {
  min-block-size: 16rem;
}
.tour-feature__image {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
.tour-feature__content {
  padding: var(--space-8);
}
.tour-feature__eyebrow {
  margin-block-end: var(--space-3);
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.85rem;
  font-weight: 650;
}
.tour-feature__title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  max-inline-size: 12ch;
  margin-block-end: var(--space-4);
}
.tour-feature__lead {
  max-inline-size: 40rem;
  margin-block-end: var(--space-6);
  color: var(--text-primary);
  font-size: var(--font-size-500);
}
.tour-feature__facts {
  display: grid;
  gap: var(--space-3);
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-6);
}
.tour-feature__facts li {
  position: relative;
  padding-inline-start: 1.1rem;
}
.tour-feature__facts li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.6rem;
  inline-size: 0.4rem;
  block-size: 0.4rem;
  border-radius: 999px;
  background: var(--accent-red);
  box-shadow: 0 0 1rem rgba(163, 13, 20, 0.45);
}
.tour-feature__actions {
  margin-block-start: var(--space-6);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}
@media (min-width: 64rem) {
  .tour-feature__panel {
    grid-template-columns: 0.95fr 1.05fr;
    align-items: stretch;
  }
  .tour-feature__media {
    min-block-size: 100%;
  }
}

#attraktionen .section-heading {
  margin-block-end: calc(-1 * var(--space-4));
}

.attraction-group {
  margin-block-start: var(--space-16);
}

.attraction-group__header {
  margin-block-end: var(--space-6);
}

.attraction-group__title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin-block-end: var(--space-3);
}

.process-steps {
  display: grid;
  gap: var(--space-4);
  list-style: none;
  padding: 0;
}

.process-steps__item {
  padding: var(--space-5);
  border-radius: 1.25rem;
  border: 1px solid var(--border-soft);
  background: rgba(255, 255, 255, 0.03);
  -webkit-backdrop-filter: blur(1rem);
  backdrop-filter: blur(1rem);
}

.process-steps__title {
  margin-block-end: var(--space-2);
  font-size: 1.1rem;
}

.final-cta {
  padding-block: var(--space-20);
}
.final-cta__inner {
  display: grid;
  gap: var(--space-8);
  padding: var(--space-8);
  border-radius: 1.75rem;
  border: 1px solid rgba(163, 13, 20, 0.4);
  background: radial-gradient(circle at top right, rgba(103, 214, 227, 0.1), transparent 35%), linear-gradient(180deg, rgba(163, 13, 20, 0.18), rgba(255, 255, 255, 0.02));
  box-shadow: var(--shadow-card);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
}
.final-cta__eyebrow {
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.85rem;
  font-weight: 650;
  margin-block-end: var(--space-2);
}
.final-cta__title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  max-inline-size: 12ch;
  margin-block-end: var(--space-4);
}
.final-cta__text {
  max-inline-size: 26rem;
  color: var(--text-primary);
  font-size: var(--font-size-500);
}
.final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
}
@media (min-width: 64rem) {
  .final-cta__inner {
    grid-template-columns: 1.5fr auto;
    align-items: center;
  }
  .final-cta__actions {
    justify-content: flex-end;
  }
}

.promo-banner {
  padding-block: 0 var(--space-12);
  margin-top: var(--space-24);
}
.promo-banner__panel {
  display: block;
  gap: var(--space-6);
  padding: var(--space-6);
  border-radius: 1.5rem;
  border: 1px solid rgba(163, 13, 20, 0.26);
  background: radial-gradient(circle at top right, rgba(103, 214, 227, 0.08), transparent 36%), linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  box-shadow: var(--shadow-card);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
}
.promo-banner__content {
  display: grid;
  gap: var(--space-4);
  align-content: start;
}
.promo-banner__eyebrow {
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  font-weight: 700;
}
.promo-banner__title {
  font-size: clamp(1.6rem, 4vw, 2.75rem);
  max-inline-size: 16ch;
}
.promo-banner__title-graphic {
  inline-size: min(100%, 28rem);
  block-size: auto;
  object-fit: contain;
}
.promo-banner__text {
  max-inline-size: 42rem;
  color: var(--text-secondary);
}
.promo-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.promo-banner__media {
  margin-top: var(--space-6);
  overflow: hidden;
  border-radius: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01));
}
.promo-banner__image {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center;
}
.promo-banner__meta {
  display: grid;
  align-content: start;
  gap: var(--space-3);
}
.promo-banner__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 2rem;
  width: fit-content;
  padding-inline: 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(163, 13, 20, 0.34);
  background: rgba(163, 13, 20, 0.16);
  color: var(--text-primary);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.promo-banner__hint {
  color: var(--text-muted);
  font-size: 0.95rem;
}
@media (min-width: 48rem) {
  .promo-banner__content {
    grid-area: content;
  }
  .promo-banner__media {
    grid-area: media;
  }
  .promo-banner__meta {
    grid-area: meta;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
  }
}
@media (min-width: 64rem) {
  .promo-banner__panel {
    display: grid;
    grid-template-columns: 1.15fr 0.75fr;
    grid-template-areas: "content media meta";
    padding: var(--space-8);
    align-items: center;
  }
  .promo-banner__media {
    margin-top: 0;
  }
  .promo-banner__meta {
    display: grid;
    justify-items: end;
    text-align: right;
    align-content: center;
    gap: var(--space-3);
  }
  .promo-banner__badge {
    justify-self: end;
  }
}

.page--subpage .site-main {
  padding-block-start: var(--space-8);
}

.subpage-hero {
  padding-block: var(--space-10) var(--space-14);
  margin-block-end: var(--space-10);
}
.subpage-hero__panel {
  display: grid;
  gap: var(--space-6);
  border-radius: 1.75rem;
  overflow: hidden;
  border: 1px solid var(--border-soft);
  background: radial-gradient(circle at top right, rgba(103, 214, 227, 0.08), transparent 35%), linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  box-shadow: var(--shadow-card);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
}
.subpage-hero__content {
  display: grid;
  gap: var(--space-4);
  padding: var(--space-6);
  align-content: center;
}
.subpage-hero__eyebrow {
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  font-weight: 700;
}
.subpage-hero__title {
  font-size: clamp(2rem, 5vw, 4rem);
  max-inline-size: 10ch;
}
.subpage-hero__title .subline {
  display: block;
  font-size: clamp(1.5rem, 4vw, 3rem);
}
.subpage-hero__lead {
  max-inline-size: 42rem;
  color: var(--text-secondary);
  font-size: var(--font-size-500);
}
.subpage-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.subpage-hero__media {
  min-block-size: 18rem;
}
.subpage-hero__image {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center;
}
@media (min-width: 64rem) {
  .subpage-hero__panel {
    grid-template-columns: 1.05fr 0.95fr;
    align-items: stretch;
  }
  .subpage-hero__content {
    padding: var(--space-8);
  }
  .subpage-hero__media {
    min-block-size: 100%;
  }
}

.subpage-content {
  margin-block-end: var(--space-10);
}

.subpage-contentgrid {
  display: grid;
  grid-template-columns: 1fr minmax(12.5rem, 0.35fr);
  align-items: start;
  gap: var(--space-10);
  margin-block-end: var(--space-10);
}
@media (max-width: 48rem) {
  .subpage-contentgrid {
    grid-template-columns: 1fr;
  }
  .subpage-contentgrid .rightColumn {
    order: -1;
  }
}
.subpage-contentgrid .leftColumn {
  font-size: var(--font-size-500);
}
.subpage-contentgrid .leftColumn h2 {
  margin-bottom: var(--space-2);
}
.subpage-contentgrid .leftColumn p {
  margin-block-end: var(--space-5);
}
.subpage-contentgrid .rightColumn h2 {
  margin-top: var(--space-10);
  margin-bottom: var(--space-2);
  line-height: 1.2;
}
.subpage-contentgrid .rightColumn h2:first-child {
  margin-block-start: 0;
}
.subpage-contentgrid .rightColumn .component__scare {
  margin-block-end: var(--space-2);
}
.subpage-contentgrid .rightColumn .button {
  margin-block-start: var(--space-2);
}

.subpage-responsive-cover-image {
  border-radius: 1.75rem;
  overflow: hidden;
  border: 1px solid var(--border-soft);
  background: radial-gradient(circle at top right, rgba(103, 214, 227, 0.08), transparent 35%), linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  box-shadow: var(--shadow-card);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
  height: 729px;
  margin-bottom: var(--space-10);
  background-size: cover;
  background-position: center center;
}
@media (max-width: 640px) {
  .subpage-responsive-cover-image {
    height: 500px;
  }
}
@media (max-width: 420px) {
  .subpage-responsive-cover-image {
    height: 450px;
  }
}
@media (max-width: 360px) {
  .subpage-responsive-cover-image {
    height: 400px;
  }
}

.ripper-poster {
  background-image: url("/assets/images/grimm-ripper-poster.webp");
}

.freak-ride-poster {
  background-image: url("/assets/images/freak-ride.webp");
}

.story-facts__grid {
  display: grid;
  gap: var(--space-5);
}
.story-facts__card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  border-radius: 1.25rem;
  padding: var(--space-6);
}
.story-facts__card-title {
  margin-block-end: var(--space-3);
  font-size: var(--font-size-600);
}
@media (min-width: 48rem) {
  .story-facts__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.story-chronicle__panel {
  display: grid;
  gap: var(--space-8);
}
.story-chronicle__media {
  display: grid;
}
.story-chronicle__video-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  border-radius: 1.25rem;
  padding: var(--space-5);
}
.story-chronicle__media-label {
  margin-block-end: var(--space-4);
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  font-weight: 700;
}
.story-chronicle__video-link {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.story-chronicle__video-poster {
  inline-size: 100%;
  block-size: auto;
  display: block;
}
.story-chronicle__play {
  position: absolute;
  inset: 50% auto auto 50%;
  inline-size: 4.5rem;
  block-size: 4.5rem;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: rgba(5, 8, 11, 0.6);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.24);
}
.story-chronicle__play::before {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-40%, -50%);
  inline-size: 0;
  block-size: 0;
  border-inline-start: 1.1rem solid var(--text-primary);
  border-block-start: 0.7rem solid transparent;
  border-block-end: 0.7rem solid transparent;
}
.story-chronicle__paper {
  position: relative;
  padding: clamp(1.75rem, 4vw, 3rem);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), url("/assets/images/story/paper-texture.webp") center/cover no-repeat;
  color: rgba(59, 38, 24, 0.94);
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(80, 53, 31, 0.08) inset;
}
.story-chronicle__paper::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 1rem;
  background: radial-gradient(circle at top left, rgba(255, 255, 255, 0.16), transparent 18%), radial-gradient(circle at bottom right, rgba(80, 53, 31, 0.08), transparent 24%);
  pointer-events: none;
  mix-blend-mode: multiply;
}
.story-chronicle__kicker {
  position: relative;
  z-index: 1;
  margin-block-end: var(--space-3);
  color: rgba(92, 56, 36, 0.86);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  font-weight: 700;
}
.story-chronicle__title {
  position: relative;
  z-index: 1;
  margin-block-end: var(--space-6);
  color: rgba(72, 42, 28, 0.96);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.05;
}
.story-chronicle__body {
  position: relative;
  z-index: 1;
  display: grid;
  gap: var(--space-5);
  max-inline-size: 44rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.8;
  color: rgba(66, 41, 27, 0.96);
}
@media (min-width: 64rem) {
  .story-chronicle__panel {
    grid-template-columns: 0.7fr 1.3fr;
    align-items: start;
  }
  .story-chronicle__video-card {
    position: sticky;
    top: 7rem;
  }
}

.story-outlook__panel {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(0.625rem);
  display: grid;
  gap: var(--space-5);
  border-radius: 1.5rem;
  padding: var(--space-6);
}
.story-outlook__eyebrow {
  color: var(--accent-cyan);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  font-weight: 700;
  margin-block-end: var(--space-2);
}
.story-outlook__title {
  margin-block-end: var(--space-4);
  font-size: clamp(1.8rem, 4vw, 3rem);
  max-inline-size: 14ch;
}
.story-outlook__text {
  max-inline-size: 40rem;
}
.story-outlook__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

/* Fullscreen overlay that blocks the page until threshold reached */
#rxScratchOff-overlay {
  position: fixed;
  inset: 0;
  z-index: 999997;
  display: grid;
  place-items: center;
  background: #33251a; /* opaque while JS/canvas is not painted */
  transition: opacity 0.6s ease; /* fade-out when done */
  touch-action: none;
}

#rxScratchOff-overlay.rxScratchOff-ready {
  background: transparent; /* becomes transparent after first canvas paint */
}

#rxScratchOff-overlay[hidden] {
  display: none;
}

body.rxScratchOff-body-locked {
  overflow: hidden;
} /* prevent scrolling while overlay is active */
/* Disable text selection and callouts while scratching */
body.rxScratchOff-noselect,
body.rxScratchOff-noselect * {
  user-select: none !important;
  -webkit-user-select: none !important;
  -ms-user-select: none !important;
  -moz-user-select: none !important;
  -webkit-touch-callout: none !important;
}

body.rxScratchOff-noselect img,
body.rxScratchOff-noselect a,
body.rxScratchOff-noselect button {
  -webkit-user-drag: none;
}

body.rxScratchOff-noselect #rxScratchOff-content {
  user-select: none !important;
}

/* Canvas fills the viewport */
#rxScratchOff-canvas {
  width: 100vw;
  height: 100vh;
  display: block;
  touch-action: none;
  pointer-events: none;
}

/* Progress indicator (optional) */
.rxScratchOff-progress {
  display: inline-block;
  font-size: 14px;
  line-height: 1;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  padding: 8px 10px;
  border-radius: 999px;
  user-select: none;
  pointer-events: none;
  letter-spacing: 0.2px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

/* Accessible skip button */
#rxScratchOff-skip {
  position: fixed;
  bottom: 16px;
  right: 16px;
  font-size: 14px;
  border: 0;
  padding: 10px 14px;
  border-radius: 12px;
  cursor: pointer;
  color: #ffffff;
  background: #e30613;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.25);
  z-index: 999999;
  pointer-events: auto;
}

#rxScratchOff-skip:focus {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

#rxScratchOff-content {
  position: fixed;
  inset: 0;
  z-index: 999998;
  text-align: center;
}
#rxScratchOff-content p {
  text-align: center;
  font-size: 2em;
  line-height: 1.2;
  font-weight: 700;
  margin-top: 1em;
  margin-bottom: 0.125em;
  text-shadow: 0 0 16px rgb(0, 0, 0), 0 0 48px rgb(0, 0, 0);
}

/* Prefer reduced motion: shorten / remove transitions */
@media (prefers-reduced-motion: reduce) {
  #rxScratchOff-overlay {
    transition: opacity 0.2s linear;
  }
}
.rx-ca {
  --rx-ca-bg: rgba(10, 10, 12, 0.94);
  --rx-ca-panel: rgba(18, 18, 22, 0.96);
  --rx-ca-border: rgba(255, 255, 255, 0.08);
  --rx-ca-text: rgba(255, 255, 255, 0.90);
  --rx-ca-muted: rgba(255, 255, 255, 0.70);
  --rx-ca-accent: rgba(196, 18, 48, 0.95);
  --rx-ca-accent2: rgba(255, 80, 110, 0.85);
  --rx-ca-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: block;
  pointer-events: none;
  opacity: 0;
  transition: opacity 200ms ease;
}
.rx-ca.rx-ca--visible {
  pointer-events: auto;
  opacity: 1;
}
.rx-ca.rx-ca--visible .rx-ca__panel {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

.rx-ca__backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(1200px 600px at 10% 90%, rgba(196, 18, 48, 0.12), transparent 60%), radial-gradient(900px 500px at 90% 20%, rgba(255, 80, 110, 0.08), transparent 55%), linear-gradient(180deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.7));
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.rx-ca__panel {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  width: clamp(340px, 100vw - 48px, 1240px);
  max-height: calc(100vh - 28px);
  overflow: auto;
  padding: clamp(18px, 1.2vw, 28px) clamp(18px, 1.6vw, 32px);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), var(--rx-ca-panel);
  border: 1px solid var(--rx-ca-border);
  border-radius: 14px;
  box-shadow: var(--rx-ca-shadow);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: clamp(16px, 1.1vw, 20px);
  align-items: start;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.98);
  transition: transform 220ms ease, opacity 220ms ease;
}
@media (min-width: 1400px) {
  .rx-ca__panel {
    border-radius: 16px;
    box-shadow: 0 26px 80px rgba(0, 0, 0, 0.6);
  }
}
@media (max-width: 720px) {
  .rx-ca__panel {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.rx-ca__badge {
  width: clamp(52px, 3.2vw, 72px);
  height: clamp(52px, 3.2vw, 72px);
  border-radius: 16px;
  display: grid;
  place-items: center;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.95);
  background: radial-gradient(18px 18px at 30% 30%, rgba(255, 255, 255, 0.25), transparent 60%), linear-gradient(135deg, var(--rx-ca-accent), rgba(120, 10, 30, 0.95));
  border: 1px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 720px) {
  .rx-ca__badge {
    width: 52px;
    height: 52px;
  }
}

.rx-ca__content {
  min-width: 0;
}

.rx-ca__title {
  margin: 0 0 6px;
  font-size: clamp(16px, 1.05vw, 20px);
  font-weight: 750;
  color: var(--rx-ca-text);
}
@media (max-width: 720px) {
  .rx-ca__title {
    font-size: 15px;
  }
}

.rx-ca__text {
  margin: 0;
  font-size: clamp(14px, 0.95vw, 17px);
  line-height: 1.45;
  color: var(--rx-ca-muted);
}

.rx-ca__links {
  margin-top: 10px;
  display: inline-flex;
  flex-wrap: wrap;
  gap: clamp(10px, 0.9vw, 14px);
  align-items: center;
}

.rx-ca__link {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding-bottom: 1px;
}
.rx-ca__link:hover {
  color: rgba(255, 255, 255, 0.98);
  border-bottom-color: rgba(255, 80, 110, 0.65);
}
.rx-ca__link:focus-visible {
  outline: 2px solid rgba(255, 80, 110, 0.75);
  outline-offset: 3px;
  border-bottom-color: transparent;
}

.rx-ca__sep {
  color: rgba(255, 255, 255, 0.35);
}

.rx-ca__actions {
  display: inline-flex;
  gap: clamp(10px, 0.9vw, 14px);
  align-items: center;
  justify-content: flex-end;
  padding-top: 2px;
}
@media (max-width: 720px) {
  .rx-ca__actions {
    justify-content: flex-start;
  }
}

.rx-ca__btn {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  padding: clamp(10px, 0.9vw, 14px) clamp(12px, 1.1vw, 16px);
  font-size: clamp(14px, 0.95vw, 16px);
  line-height: 1;
  cursor: pointer;
  user-select: none;
  transition: transform 120ms ease, background-color 120ms ease, border-color 120ms ease;
}
.rx-ca__btn:active {
  transform: translateY(1px);
}
.rx-ca__btn:focus-visible {
  outline: 2px solid rgba(255, 80, 110, 0.75);
  outline-offset: 3px;
}

.rx-ca__btn--primary {
  color: rgba(255, 255, 255, 0.96);
  background: linear-gradient(135deg, rgba(196, 18, 48, 0.95), rgba(120, 10, 30, 0.95));
  border-color: rgba(255, 80, 110, 0.25);
}
.rx-ca__btn--primary:hover {
  border-color: rgba(255, 80, 110, 0.45);
}

.rx-ca__btn--ghost {
  color: rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.04);
}
.rx-ca__btn--ghost:hover {
  background: rgba(255, 255, 255, 0.06);
}

.rx-ca__btn--danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.92);
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 80, 110, 0.35);
}
.rx-ca__btn--danger:hover {
  background: rgba(255, 80, 110, 0.08);
  border-color: rgba(255, 80, 110, 0.55);
}
.rx-ca__btn--danger:focus-visible {
  outline: 2px solid rgba(255, 80, 110, 0.75);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .rx-ca,
  .rx-ca__panel {
    transition: none !important;
  }
}
html.rx-ca--lock,
body.rx-ca--lock {
  overflow: hidden;
}

/*# sourceMappingURL=styles.css.map */
