/* ===== Design Tokens ===== */
:root{
  --bg:#0B0E14; --text:#EDEDED; --muted:#A9B0BE;
  --pink:#FF3EA5; --lime:#B6FF00; --yt:#FF0033; --dc:#5865F2;
  --card:#111626; --card-alt:#0F1422;
  --radius:18px; --shadow:0 10px 30px rgba(0,0,0,.35);
  --cyan:#00F5FF; --purple:#B600FF; --orange:#FF7300;
  --header-h: 60px;
  /* Crash – Jungle / Sunset Leitpalette */
  --sunset-1:#FF7300; --sunset-2:#FF3EA5; --jungle:#0A1A16; --crate-wood:#B85C00;
}

*{box-sizing:border-box}
html {
  height: 100%;
  /* In-page anchor links landen unterhalb der fixed Navbar */
  scroll-padding-top: var(--header-h);
}
body {
  height: 100%;
  margin: 0;
  font-family: Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.5;
  /* Schiebt Inhalt unterhalb der fixed Navbar */
  padding-top: var(--header-h);
}
img{max-width:100%; height:auto}

.container{width:min(1100px, 92vw); margin-inline:auto}

/* ===== Accessibility ===== */
.skip{position:absolute; left:-9999px}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.skip:focus{left:12px; top:12px; background:#000; color:#fff; padding:.5rem 1rem; z-index:1000}

/* ===== Header – Fixed, Responsive First ===== */

.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--header-h);
  z-index: 2000;
  background: rgba(11,14,20,0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Neon-Glow beim Scrollen */
body.scrolled .header {
  border-bottom-color: rgba(255,62,165,0.35);
  box-shadow: 0 0 28px rgba(255,62,165,0.12), 0 2px 0 rgba(255,62,165,0.18);
}

.header__inner {
  display: flex;
  align-items: center;
  height: var(--header-h);
  gap: 0.75rem;
  padding: 0;
}

/* Brand */
.brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--text);
  flex-shrink: 0;
}
.brand img {
  height: 36px;
  width: auto;
  transition: transform 0.3s ease, filter 0.3s ease;
}
.brand:hover .brand img,
.brand:focus .brand img {
  transform: scale(1.06);
  filter: drop-shadow(0 0 10px rgba(255,62,165,0.6));
}
.wordmark {
  font-family: 'Audiowide', sans-serif;
  font-weight: 400;
  font-size: clamp(0.82rem, 2.4vw, 1rem);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--pink);
  text-shadow: 0 0 10px rgba(255,62,165,0.35);
  white-space: nowrap;
}

/* Desktop social icons (hidden on mobile, shown via media query) */
.header-socials {
  display: none;
  gap: 6px;
  align-items: center;
  margin-left: auto;
  flex-shrink: 0;
}
.logo_header { height: 26px; width: auto; transition: transform 0.2s, filter 0.2s; }
.logo_header:hover { transform: scale(1.15); filter: drop-shadow(0 0 8px rgba(255,62,165,0.7)); }

/* ===== Burger – mit X-Animation ===== */
.burger {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: transparent;
  border: 1.5px solid rgba(255,255,255,0.12);
  border-radius: 8px;
  padding: 0.45rem 0.5rem;
  cursor: pointer;
  margin-left: auto;
  flex-shrink: 0;
  position: relative;
  z-index: 2001; /* über dem Nav-Overlay (z-index:1999) im Header-Stacking-Context */
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.burger:hover { border-color: rgba(255,62,165,0.5); transform: scale(1.06); }
.burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  /* bouncy Overshoot-Easing für den crazy Morph */
  transition: transform 0.5s cubic-bezier(0.68,-0.55,0.27,1.55),
              opacity 0.3s ease,
              background 0.35s ease,
              box-shadow 0.35s ease;
  transform-origin: center;
}
/* === X-State – crazy Morph: Extra-Spin + Neon-Glow + Puls === */
.burger[aria-expanded="true"] {
  border-color: var(--pink);
  box-shadow: 0 0 18px rgba(255,62,165,0.6), inset 0 0 10px rgba(0,245,255,0.25);
  animation: burgerPulse 1.5s ease-in-out infinite;
}
.burger[aria-expanded="true"] span:nth-child(1) {
  /* 225° = halbe Extra-Drehung, landet auf 45° */
  transform: translateY(7px) rotate(225deg);
  background: var(--pink);
  box-shadow: 0 0 10px var(--pink);
}
.burger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0) rotate(180deg);
}
.burger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-225deg);
  background: var(--cyan);
  box-shadow: 0 0 10px var(--cyan);
}
@keyframes burgerPulse {
  0%, 100% { box-shadow: 0 0 14px rgba(255,62,165,0.5), inset 0 0 8px rgba(0,245,255,0.2); }
  50%      { box-shadow: 0 0 26px rgba(0,245,255,0.7), inset 0 0 12px rgba(255,62,165,0.35); }
}

/* ===== Nav – Crazy Fullscreen Portal-Overlay (alle Größen) ===== */
.nav {
  position: fixed;
  /* ACHTUNG: Header hat backdrop-filter → ist Containing-Block für fixed-Kinder.
     Daher KEIN inset:0/bottom (würde auf Header-Höhe begrenzt) – stattdessen
     Viewport-Höhe per dvh/vh. */
  top: 0;
  left: 0;
  right: 0;
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(0.25rem, 1.1vh, 0.85rem);
  padding: calc(var(--header-h) + 1.5rem) 1.25rem 2rem;
  z-index: 1999;
  background:
    radial-gradient(circle at 18% 20%, rgba(255,62,165,0.20), transparent 45%),
    radial-gradient(circle at 82% 28%, rgba(0,245,255,0.18), transparent 45%),
    radial-gradient(circle at 50% 90%, rgba(182,255,0,0.15), transparent 52%),
    rgba(7,9,15,0.97);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  /* Portal-Reveal: Kreis öffnet aus der Burger-Ecke (oben rechts) */
  clip-path: circle(0% at calc(100% - 2.2rem) 1.8rem);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: clip-path 0.55s cubic-bezier(0.86,0,0.07,1),
              opacity 0.4s ease,
              visibility 0s linear 0.6s;
}
/* CRT-Scanlines im Menü */
.nav::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(255,255,255,0.045) 0,
    rgba(255,255,255,0.045) 1px,
    transparent 2px,
    transparent 4px
  );
  opacity: 0.55;
  animation: navScan 7s linear infinite;
}
.nav[data-collapsed="false"] {
  clip-path: circle(160% at calc(100% - 2.2rem) 1.8rem);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: clip-path 0.65s cubic-bezier(0.16,1,0.3,1),
              opacity 0.3s ease,
              visibility 0s;
}

.nav a {
  position: relative;
  z-index: 1;
  font-family: 'Audiowide', sans-serif;
  font-size: clamp(1.45rem, 5.5vw, 2.8rem);
  line-height: 1.05;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text);
  text-decoration: none;
  padding: 0.1em 0.4em;
  border: none;
  text-shadow: 0 0 18px currentColor;
  /* Start (eingeklappt): unscharf, gedreht, von der Seite */
  opacity: 0;
  transform: translateX(var(--from, -80px)) translateY(30px) scale(0.55) rotate(var(--rot, -8deg));
  filter: blur(8px);
  transition: opacity 0.45s ease,
              transform 0.6s cubic-bezier(0.34,1.56,0.64,1),
              filter 0.4s ease;
}
/* abwechselnde Einflug-Richtung */
.nav a:nth-child(odd)  { --from: -90px; --rot: -7deg; }
.nav a:nth-child(even) { --from:  90px; --rot:  7deg; }
/* Neon-Farbzyklus pro Eintrag */
.nav a:nth-child(5n+1) { color: var(--pink); }
.nav a:nth-child(5n+2) { color: var(--cyan); }
.nav a:nth-child(5n+3) { color: var(--lime); }
.nav a:nth-child(5n+4) { color: var(--purple); }
.nav a:nth-child(5n+5) { color: var(--orange); }

/* Offen: gestaffelt einfliegen */
.nav[data-collapsed="false"] a {
  opacity: 1;
  transform: none;
  filter: none;
}
.nav[data-collapsed="false"] a:nth-child(1)  { transition-delay: 0.10s; }
.nav[data-collapsed="false"] a:nth-child(2)  { transition-delay: 0.16s; }
.nav[data-collapsed="false"] a:nth-child(3)  { transition-delay: 0.22s; }
.nav[data-collapsed="false"] a:nth-child(4)  { transition-delay: 0.28s; }
.nav[data-collapsed="false"] a:nth-child(5)  { transition-delay: 0.34s; }
.nav[data-collapsed="false"] a:nth-child(6)  { transition-delay: 0.40s; }
.nav[data-collapsed="false"] a:nth-child(7)  { transition-delay: 0.46s; }
.nav[data-collapsed="false"] a:nth-child(8)  { transition-delay: 0.52s; }
.nav[data-collapsed="false"] a:nth-child(9)  { transition-delay: 0.58s; }
.nav[data-collapsed="false"] .nav-socials    { transition-delay: 0.64s; }

/* Hover/Focus: Glitch-Pump */
.nav a:hover, .nav a:focus {
  animation: navGlitch 0.45s steps(2) infinite;
}

.nav-shop-link { color: var(--lime) !important; font-weight: 700; }

.nav-socials {
  display: flex;
  gap: 16px;
  margin-top: 0.6rem;
  padding: 0.6rem 1rem;
  align-items: center;
  position: relative;
  z-index: 1;
  opacity: 0;
  transform: translateY(24px) scale(0.7);
  transition: opacity 0.45s ease, transform 0.55s cubic-bezier(0.34,1.56,0.64,1);
}
.nav[data-collapsed="false"] .nav-socials { opacity: 1; transform: none; }
.nav-socials .logo_header { height: 34px; }
.nav-socials .logo_header:hover { transform: scale(1.25) rotate(-6deg); }

/* === Menü-Animationen === */
@keyframes navScan {
  from { background-position: 0 0; }
  to   { background-position: 0 4px; }
}
@keyframes navGlitch {
  0%   { transform: scale(1.12) translate(0,0);   text-shadow: 2px 0 var(--cyan), -2px 0 var(--pink), 0 0 20px currentColor; }
  25%  { transform: scale(1.13) translate(-3px,1px); text-shadow: -3px 0 var(--cyan), 3px 0 var(--pink), 0 0 24px currentColor; }
  50%  { transform: scale(1.12) translate(3px,-1px);  text-shadow: 3px 0 var(--lime), -3px 0 var(--purple), 0 0 20px currentColor; }
  75%  { transform: scale(1.14) translate(-2px,0);  text-shadow: -2px 0 var(--orange), 2px 0 var(--cyan), 0 0 26px currentColor; }
  100% { transform: scale(1.12) translate(0,0);   text-shadow: 2px 0 var(--cyan), -2px 0 var(--pink), 0 0 20px currentColor; }
}

/* Scroll sperren wenn Menü offen */
body.nav-open { overflow: hidden; }

/* Barrierearmes Fallback: kein Portal/Blur/Glitch, nur sanftes Einblenden */
@media (prefers-reduced-motion: reduce) {
  .nav {
    clip-path: none;
    transition: opacity 0.25s ease, visibility 0s linear 0.25s;
  }
  .nav[data-collapsed="false"] { transition: opacity 0.25s ease, visibility 0s; }
  .nav::before { animation: none; }
  .nav a, .nav-socials {
    transform: none !important;
    filter: none !important;
    transition: opacity 0.25s ease !important;
    transition-delay: 0s !important;
  }
  .nav a:hover, .nav a:focus { animation: none; transform: scale(1.05) !important; }
  .burger span { transition: transform 0.25s ease, opacity 0.2s ease; }
  .burger[aria-expanded="true"] { animation: none; }
  .burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
/* --- HERO LOGOS --- */
.logo_hero {
  height: 50px; /* vorher 35px */
  width: auto;
  transition: transform 0.3s ease, filter 0.3s ease;
  animation: heroPulse 2.8s infinite;
  filter: drop-shadow(0 0 8px rgba(255,62,165,0.5));
  cursor: pointer;
}

.logo_hero:hover {
  transform: scale(1.15);
  filter: drop-shadow(0 0 16px rgba(255,62,165,0.9));
}

/* sanftes Pulsieren */
@keyframes heroPulse {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 8px rgba(255,62,165,0.4));
  }
  50% {
    transform: scale(1.08);
    filter: drop-shadow(0 0 16px rgba(182,255,0,0.6));
  }
}


.logo-font {
  font-family: 'Audiowide', sans-serif;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #ff3ea5;
  text-shadow:
    0 0 5px #ff3ea5,
    0 0 10px #ff3ea5,
    0 0 20px #ff3ea5,
    0 0 40px #ff3ea5;
  animation: logo-flicker 3s infinite;
}

@keyframes logo-flicker {
  0%, 18%, 20%, 22%, 50%, 52%, 100% {
    opacity: 1;
    text-shadow:
      0 0 5px #ff3ea5,
      0 0 10px #ff3ea5,
      0 0 20px #ff3ea5,
      0 0 40px #ff3ea5;
  }
  19%, 21%, 51% {
    opacity: 0.4;
    text-shadow: none;
  }
}


/* ===== Buttons ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.6rem .9rem; border-radius:999px; text-decoration:none; color:#fff;
  background:#222; border:1px solid rgba(255,255,255,.08); box-shadow:var(--shadow);
  font-weight:700; white-space:nowrap;
}
.btn:hover{filter:brightness(1.05)}


/* Hero */
/* ===== Hero – Responsive First ===== */
.hero {
  /* body hat padding-top: var(--header-h), hero braucht nur eigenen Abstand */
  padding: clamp(32px, 5vw, 56px) 0 clamp(40px, 6vw, 64px);
}

/* Mobile: single column, visual on top */
.hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: center;
  text-align: center;
}
.hero__visual  { order: -1; }
.hero__content { order:  1; }

/* Tablet+ : 2 columns, text left – image right */
@media (min-width: 720px) {
  .hero__inner {
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    text-align: left;
  }
  .hero__visual  { order: 2; }
  .hero__content { order: 1; }
}

/* Eyebrow */
.hero__eyebrow {
  font-size: clamp(13px, 2.5vw, 17px);
  color: var(--muted);
  margin: 0 0 0.15rem;
  letter-spacing: 0.06em;
}

/* H1 title */
.hero__title {
  font-size: clamp(42px, 10vw, 80px);
  color: var(--pink);
  text-shadow: 0 0 30px rgba(255,62,165,0.45), 0 0 70px rgba(255,62,165,0.15);
  margin: 0 0 0.9rem;
  line-height: 1.05;
}

/* Tagline */
.hero__tagline {
  color: var(--muted);
  font-size: clamp(15px, 3.5vw, 18px);
  line-height: 1.6;
  margin: 0 0 1.1rem;
}
.hero__tagline strong { color: var(--text); }

/* Schedule badge */
.hero__schedule { margin: 0 0 0.9rem; }
.schedule-badge {
  display: inline-block;
  background: rgba(0,245,255,0.07);
  border: 1.5px solid var(--cyan);
  color: var(--cyan);
  text-shadow: 0 0 8px var(--cyan);
  padding: 0.38em 1.1em;
  border-radius: 999px;
  font-size: clamp(12px, 2.5vw, 14px);
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* Quote chip */
.hero-quotes {
  margin: 0 0 1rem;
  display: flex;
  justify-content: center;
}
@media (min-width: 720px) { .hero-quotes { justify-content: flex-start; } }

/* CTA buttons row */
.hero__ctas {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 0 1rem;
}
@media (min-width: 720px) { .hero__ctas { justify-content: flex-start; } }

/* TikTok Live button */
.btn-live {
  background: linear-gradient(135deg, var(--pink), var(--purple));
  color: #fff;
  font-weight: 800;
  font-size: clamp(0.95rem, 2.5vw, 1.05rem);
  padding: 0.82rem 1.6rem;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 0 18px rgba(255,62,165,0.5);
  transition: box-shadow 0.2s, transform 0.15s;
  white-space: nowrap;
}
.btn-live:hover { box-shadow: 0 0 35px rgba(255,62,165,0.85); transform: translateY(-2px); }

/* Social icons row */
.hero__socials {
  display: flex;
  gap: 0.65rem;
  justify-content: center;
}
@media (min-width: 720px) { .hero__socials { justify-content: flex-start; } }

/* Visual column */
.hero__visual {
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero__logo {
  width: min(460px, 84vw);
  aspect-ratio: 4/3;
  object-fit: contain;
}

/* Generic CTA row (used outside hero) */
.cta-row { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 14px; }
.btn-shop {
  background: linear-gradient(90deg, #ff3ea5, #b6ff00);
  color: #000;
  font-weight: 800;
  font-size: 1.1rem;
  padding: .8rem 1.6rem;
  border-radius: 999px;
  animation: pulseShop 2.5s infinite;
  transition: transform .3s ease;
}
.btn-shop:hover {
  transform: scale(1.08);
}
@keyframes pulseShop {
  0%, 100% { box-shadow: 0 0 10px #ff3ea5, 0 0 20px #b6ff00; }
  50% { box-shadow: 0 0 25px #b6ff00, 0 0 40px #ff3ea5; }
}

.family-intro {
  max-width: 820px;
  margin: 0 auto 28px;
  text-align: center;
  color: var(--muted);
}

.family-intro p {
  margin: 0.6rem 0;
  font-size: clamp(14px, 3.6vw, 16px);
}

.family-intro strong {
  color: var(--text);
}

.family-claim {
  margin-top: 1rem;
  font-weight: 800;
  color: var(--lime);
  text-shadow: 0 0 18px rgba(255,62,165,.45);
}

.family-intro h3 {
  margin: 1.4rem 0 .4rem;
  font-size: clamp(16px, 4vw, 20px);
  color: var(--pink);
  text-transform: uppercase;
  letter-spacing: .5px;
}


/* ===== Q&A Akkordeon ===== */
.qanda-item {
  cursor: pointer;
}

.qanda-question {
  margin: 0;
  position: relative;
  padding-right: 32px;
  cursor: pointer;
}

/* Pfeil */
.qanda-question::after {
  content: "▾";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  font-size: 1.2rem;
  opacity: 0.7;
  transition: transform .3s ease, opacity .3s ease;
}

/* geöffnet */
.qanda-item.active .qanda-question::after {
  transform: translateY(-50%) rotate(180deg);
  opacity: 1;
}


.qanda-answer-wrapper {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height .4s ease, opacity .3s ease;
}

.qanda-item.active .qanda-answer-wrapper {
  max-height: 800px; /* ausreichend groß */
  opacity: 1;
}

.qanda-answer-wrapper p,
.qanda-answer-wrapper ul {
  margin: .6rem 0;
}

.qanda-answer-wrapper ul {
  padding-left: 1.2rem;
}


/* ===== Animationen & Neon-Effekte ===== */
.neon {
  color: #ff3ea5;
  text-shadow:
    0 0 5px #ff3ea5,
    0 0 10px #ff3ea5,
    0 0 20px #ff3ea5,
    0 0 40px #ff3ea5;
  animation: flicker 2.8s infinite;
}

/* Flacker-Animation */
@keyframes flicker {
  0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { 
    opacity: 1; 
    text-shadow:
      0 0 5px #ff3ea5,
      0 0 10px #ff3ea5,
      0 0 20px #ff3ea5,
      0 0 40px #ff3ea5;
  }
  20%, 24%, 55% { 
    opacity: 0.4; 
    text-shadow: none; /* kurz "aus" wie defekte Neonröhre */
  }
  22% {
    opacity: 0.7;
    text-shadow:
      0 0 3px #ff3ea5,
      0 0 6px #ff3ea5;
  }
}

/* Flimmern (leicht unruhiges Leuchten) */
.flimmer {
  animation: flimmer 1.2s infinite;
}

@keyframes flimmer {
  0%   { opacity: 0.95; filter: brightness(1); }
  25%  { opacity: 0.85; filter: brightness(1.2); }
  50%  { opacity: 1;    filter: brightness(0.9); }
  75%  { opacity: 0.9;  filter: brightness(1.1); }
  100% { opacity: 1;    filter: brightness(1); }
}

.hero-quotes .quote {
  display: inline-block;
  padding: .4rem .8rem;
  border-radius: 999px;
  background: linear-gradient(45deg, rgba(255,62,165,.15), rgba(0,0,0,.5));
  border: 1px solid rgba(255,255,255,.15);
  color: #fff;
  font-weight: 700;
  font-size: clamp(12px, 3vw, 15px);
  white-space: normal;
  max-width: 92vw;
  box-shadow: 0 4px 16px rgba(0,0,0,.25);
  text-align: center;
}

/* ===== Sections ===== */
.section{padding:clamp(48px,7vw,72px) 0}
.section--alt{background:linear-gradient(180deg, rgba(255,62,165,.08), transparent)}
.section h2{font-size:clamp(22px,6vw,34px); margin:0 0 16px}

/* ===== Cards ===== */
.cards{display:grid; grid-template-columns:1fr; gap:12px}
.card{background:var(--card); border:3px solid #000; border-radius:var(--radius); padding:14px; box-shadow:0 0 14px rgba(255,62,165,.25), 0 6px 20px rgba(0,0,0,.6)}
.avatar{width:100%; aspect-ratio:1/1; object-fit:contain; background:var(--card-alt); border-radius:14px; padding:8px}
.role{color:var(--lime); margin:.25rem 0 .35rem; font-weight:700}
.bio{color:var(--muted); font-size:clamp(14px,3.8vw,16px)}

/* Q&A-Item-Karte (erzeugt von qanda.js) */
.news-item{background:var(--card); padding:14px; border:1px solid rgba(255,255,255,.06); border-radius:var(--radius)}

/* Quote-Chip (hero + main.js) */
.quote{text-align:center; font-weight:800; letter-spacing:.3px; margin:0; color:#fff; text-shadow:0 0 24px rgba(255,62,165,.45); font-size:clamp(16px,4.5vw,22px)}

/* Video */

.video-section {
  text-align: center;
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease, transform .8s ease;
}
.video-section.visible {
  opacity: 1;
  transform: translateY(0);
}

.video-section h2 {
  font-size: clamp(1.6rem, 5vw, 2.4rem);
  margin-bottom: 1rem;
  color: #b6ff00;
  text-shadow: 0 0 10px #ff3ea5, 0 0 20px #b6ff00;
}

.video-embed,
.tiktok-embed-wrapper {
  position: relative;
  margin: 1.5rem auto;
  max-width: 960px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #000;
  box-shadow: 0 0 25px rgba(255,62,165,0.3);
  transition: box-shadow .5s ease, transform .5s ease;
}
.video-embed:hover,
.tiktok-embed-wrapper:hover {
  transform: scale(1.02);
  box-shadow: 0 0 40px rgba(255,62,165,0.7), 0 0 60px rgba(182,255,0,0.6);
}
.video-embed iframe {
  width: 100%;
  height: 600px;
  border: 0;
  display: block;
}

.video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.2rem;
  margin-top: 2rem;
}

.video-card {
  background: var(--card);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 0 25px rgba(255,62,165,0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
}
.video-card:hover {
  transform: scale(1.03);
  box-shadow: 0 0 40px rgba(255,62,165,0.6);
}
.video-thumb {
  position: relative;
}
.video-thumb img {
  width: 100%;
  display: block;
}
.video-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.4);
  font-size: 3rem;
  color: #b6ff00;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.video-thumb:hover .video-overlay {
  opacity: 1;
}
.video-card h3 {
  font-size: 1rem;
  padding: 0.8rem;
  color: var(--text);
  text-align: center;
}

/* Modal */
.video-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.video-modal-content {
  position: relative;
  width: 90%;
  max-width: 960px;
  aspect-ratio: 16/9;
}
.video-modal-content iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.close-modal {
  position: absolute;
  top: 10px;
  right: 10px;
  background: var(--pink);
  border: none;
  color: #000;
  font-size: 1.2rem;
  font-weight: bold;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(255,62,165,0.6);
}
  
/* Neonrahmen */
.neon-border {
  animation: neonGlow 3s ease-in-out infinite alternate;
}
@keyframes neonGlow {
  0% {
    box-shadow: 0 0 10px rgba(255,62,165,0.4),
                0 0 20px rgba(182,255,0,0.4);
  }
  100% {
    box-shadow: 0 0 30px rgba(255,62,165,0.8),
                0 0 50px rgba(182,255,0,0.8);
  }
}

/* ===== TikTok Embed ===== */
.tiktok-embed-wrapper {
  position: relative;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--radius);
  background: #000;
}

/* sorgt für ausreichend Platz, damit TikTok keinen Scrollbalken erzeugt */
.tiktok-embed-wrapper .tiktok-embed {
  width: 100% !important;
  min-width: 320px !important;
  max-width: 720px !important;
  height: 500px !important;  /* Höhe anpassen – 850-950 px ist meist ideal */
  overflow: hidden !important;
}

/* verhindert Scroll Iframe */
.tiktok-embed-wrapper iframe {
  display: block;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  border: 0 !important;
}

.tiktok-embed-wrapper > * {
  overflow: hidden !important;
}

/*responsive Anpassung */
@media (max-width: 768px) {
  .tiktok-embed-wrapper .tiktok-embed {
    height: 700px !important;
  }
}


/* ===== Footer ===== */
.footer {
  padding: 3.5rem 0 0;
  margin-top: 2rem;
  background: linear-gradient(0deg, rgba(0,0,0,.35) 0%, transparent 100%);
  border-top: 2px solid rgba(255,62,165,.5);
  box-shadow: 0 -2px 30px rgba(255,62,165,.15);
}

/* 3-Spalten-Grid, mobile zuerst */
.footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-bottom: 2.5rem;
  text-align: center;
}
@media (min-width: 640px) {
  .footer__grid { grid-template-columns: 1fr 1fr; text-align: left; }
}
@media (min-width: 960px) {
  .footer__grid { grid-template-columns: 1.3fr 1fr 1fr; }
}

/* Brand-Spalte */
.footer__logo-link img {
  height: 72px;
  width: auto;
  filter: drop-shadow(0 0 14px rgba(255,62,165,.35));
  transition: filter .25s;
}
.footer__logo-link:hover img { filter: drop-shadow(0 0 24px rgba(255,62,165,.7)); }

.footer__tagline {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.7;
  margin: .7rem 0 .8rem;
}

.footer__stream-badge {
  display: inline-block;
  background: rgba(255,115,0,.1);
  border: 1.5px solid var(--orange);
  color: var(--orange);
  text-shadow: 0 0 8px rgba(255,115,0,.55);
  padding: .32em .9em;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  box-shadow: 2px 2px 0 rgba(0,0,0,.6);
}

.footer__credit {
  margin: .85rem 0 0;
  font-size: .78rem;
  color: var(--muted);
}
.footer__credit a { color: var(--muted); text-decoration: none; transition: color .2s; }
.footer__credit a:hover { color: var(--pink); }

/* Nav-Spalte */
.footer__heading {
  font-family: 'Audiowide', sans-serif;
  font-size: .75rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--orange);
  text-shadow: 0 0 10px rgba(255,115,0,.5);
  -webkit-text-stroke: .5px rgba(0,0,0,.6);
  paint-order: stroke fill;
  margin: 0 0 1rem;
}

.footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem .8rem;
}
.footer__links a {
  color: var(--muted);
  text-decoration: none;
  font-size: .86rem;
  transition: color .18s, padding-left .18s;
}
.footer__links a:hover { color: var(--pink); padding-left: 5px; }

/* Socials-Spalte */
.footer__social-links {
  display: flex;
  flex-direction: column;
  gap: .8rem;
  align-items: center;
}
@media (min-width: 640px) { .footer__social-links { align-items: flex-start; } }

.footer__social-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--muted);
  text-decoration: none;
  font-size: .86rem;
  transition: color .18s, transform .18s;
}
.footer__social-item img {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  filter: drop-shadow(0 0 4px rgba(255,62,165,.25));
  transition: filter .2s;
}
.footer__social-item:hover {
  color: var(--pink);
  transform: translateX(5px);
}
.footer__social-item:hover img { filter: drop-shadow(0 0 10px rgba(255,62,165,.75)); }

/* Bottom-Bar */
.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .4rem 1.5rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(255,255,255,.06);
  font-size: .78rem;
  color: var(--muted);
  text-align: center;
}
.footer__bottom a { color: var(--muted); text-decoration: none; transition: color .2s; }
.footer__bottom a:hover { color: var(--pink); }
.impressum-page {
  font-family: "Poppins", sans-serif;
  background: #0f0f0f;
  color: #f5f5f5;
  padding: 2rem;
}

.footer a { color: #fff; text-decoration: none; }
.footer a:hover { text-decoration: underline; }
.footer small { color: var(--muted); font-size: 0.85rem; }


/* ===== Impressum ===== */
.impressum-page h1 {
  font-size: 2.5rem;
  color: #ff0077;
  text-align: center;
  margin-bottom: 2rem;
}

.impressum-page h2 {
  color: #ff0077;
  margin-top: 1.5rem;
}

.impressum-page a {
  color: #fff;
  text-decoration: none;
}

.impressum-page a:hover {
  text-decoration: underline;
}

.impressum-page .container {
  max-width: 800px;
  margin: auto;
  line-height: 1.6;
}

/* ===== Splash-Screen ===== */
#splash {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  place-content: center;
  background: var(--bg);
  z-index: 3000; /* über Fixed-Header */
  transition: opacity .35s ease, visibility .35s ease;
  visibility: visible;
  opacity: 1;
}
#splash.hide {
  opacity: 0;
  visibility: hidden;
}

#splash .logo-font {
  animation: splashTextPop .45s cubic-bezier(.34,1.56,.64,1) both;
}

.splash-logo {
  width: min(86vw, 560px);
  animation: splashCrash .85s cubic-bezier(.34,1.56,.64,1) both;
  filter: drop-shadow(0 14px 48px rgba(255,62,165,.25));
}

/* Logo zoomt beim Ausblenden raus (Crash-Style Abgang) */
#splash.hide .splash-logo {
  animation: splashOut .35s ease-in forwards;
}

/* Crash-Bandicoot-Einschlag: Bounce + Neon-Farbwechsel + Glitch-Zucken */
@keyframes splashCrash {
  0% {
    transform: scale(0) rotate(-15deg);
    opacity: 0;
    filter: brightness(2.5) drop-shadow(0 0 34px var(--pink));
  }
  40% {
    transform: scale(1.18) rotate(4deg);
    opacity: 1;
    filter: brightness(1.4) drop-shadow(0 0 28px var(--cyan));
  }
  55% {
    transform: scale(.93) rotate(-3deg);
    filter: brightness(.8) drop-shadow(0 0 12px var(--lime));
  }
  68% {
    transform: scale(1.06) rotate(1.5deg) skewX(4deg);
    filter: brightness(1.35) drop-shadow(0 0 24px var(--purple));
  }
  78% {
    transform: scale(.99) skewX(-3deg);
    opacity: .8;
    filter: brightness(.9) drop-shadow(-8px 0 12px var(--cyan)) drop-shadow(8px 0 12px var(--pink));
  }
  88% {
    transform: scale(1.03) skewX(1deg);
    opacity: 1;
    filter: brightness(1.25) drop-shadow(0 0 22px var(--orange));
  }
  100% {
    transform: scale(1) rotate(0);
    opacity: 1;
    filter: brightness(1) drop-shadow(0 0 14px var(--pink));
  }
}

@keyframes splashTextPop {
  0%   { transform: translateY(-40px) rotate(-6deg); opacity: 0; }
  60%  { transform: translateY(6px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0); opacity: 1; }
}

@keyframes splashOut {
  0%   { transform: scale(1); opacity: 1; filter: brightness(1.6) drop-shadow(0 0 30px var(--lime)); }
  100% { transform: scale(1.5) rotate(4deg); opacity: 0; filter: brightness(2) drop-shadow(0 0 40px var(--pink)); }
}

.scrolled .brand img {
  filter: drop-shadow(0 0 8px rgba(255,62,165,0.4));
}

@media (hover:hover){
  .card:hover{transform:translateY(-4px); box-shadow:0 0 24px rgba(255,62,165,.5), 0 0 48px rgba(182,255,0,.2)}
}

/* BREAKPOINT MD ≥ 720px – Header-Layout
   (Nav bleibt auf ALLEN Größen ein Hamburger-Portal – siehe oben) */
@media (min-width:720px){
  /* Auf Desktop größere Menü-Schrift im Overlay */
  .nav a { font-size: clamp(2rem, 4vw, 3.4rem); }

  /* Burger sitzt rechts neben den Social-Icons */
  .burger { margin-left: 0.6rem; }

  /* Desktop social icons block (in der Header-Leiste) */
  .header-socials {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-left: auto;
    padding-left: 0.75rem;
    padding-right: 0.5rem;
    border-left: 1px solid rgba(255,255,255,0.08);
    flex-shrink: 0;
  }

  .cards{grid-template-columns:repeat(2,1fr)}
}

/* BREAKPOINT LG ≥ 1080px */
@media (min-width:1080px){
  .cards{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-reduced-motion: reduce){
  .splash-logo, #splash .logo-font, #splash.hide .splash-logo{animation:none}
  .brand img, .card, .btn{transition:none}
}

/* ===== Insider Strip (Chips) ===== */
.insider-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
  justify-content: center;
}

.chip {
  padding: .4rem .7rem;
  border-radius: 999px;
  background: linear-gradient(45deg, rgba(255,62,165,.15), rgba(0,0,0,.5));
  border: 1px solid rgba(255,255,255,.15);
  color: #fff;
  font-weight: 700;
  font-size: clamp(12px, 2.8vw, 14px);
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(0,0,0,.25);
}

@media (hover:hover){
  .chip { transition: transform .2s ease; }
  .chip:hover { transform: translateY(-2px) scale(1.02); }
}

/* ===== Sounds ===== */
.sound-card {
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.sound-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 25px rgba(255,62,165,0.4);
}

.btn-sound {
  margin-top: 12px;
  background: linear-gradient(90deg, #ff3ea5, #b6ff00);
  color: #000;
  font-weight: 700;
  border-radius: 999px;
  padding: 0.7rem 1.4rem;
  box-shadow: 0 0 15px rgba(255,62,165,0.4);
  transition: all 0.3s ease;
}

.btn-sound:hover {
  transform: scale(1.08);
  box-shadow: 0 0 25px rgba(255,62,165,0.7), 0 0 35px rgba(182,255,0,0.6);
}

.btn-sound.playing {
  animation: soundPulse 1.5s infinite, soundWobble 0.4s ease-in-out infinite;
  background: var(--pink);
  color: #000;
}

@keyframes soundWobble {
  0%   { transform: rotate(0deg)    scale(1); }
  20%  { transform: rotate(-4deg)   scale(1.05); }
  40%  { transform: rotate(4deg)    scale(0.97); }
  60%  { transform: rotate(-2.5deg) scale(1.04); }
  80%  { transform: rotate(2deg)    scale(0.99); }
  100% { transform: rotate(0deg)    scale(1); }
}

@keyframes soundPulse {
  0%, 100% {
    background: linear-gradient(90deg, #ff3ea5, #b6ff00);
    box-shadow: 0 0 15px rgba(255,62,165,0.4);
  }
  50% {
    background: linear-gradient(90deg, #b6ff00, #ff3ea5);
    box-shadow: 0 0 35px rgba(182,255,0,0.8), 0 0 55px rgba(255,62,165,0.8);
  }
}

/* ===== Sounds – Equalizer Hintergrund ===== */
.eq-bg {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-around;
  padding: 0 1vw 80px;
  pointer-events: none;
  z-index: 5;
  mix-blend-mode: screen;
  opacity: 0;
  transition: opacity 1.5s ease;
}
.eq-bg.playing { opacity: 1; }

.eq-bar {
  flex: 1;
  max-width: 18px;
  border-radius: 3px 3px 0 0;
  animation: eqBounce 0.5s ease-in-out infinite alternate;
  transform-origin: bottom;
}
.eq-bar:nth-child(3n)   { background: rgba(255,62,165,0.28); }
.eq-bar:nth-child(3n+1) { background: rgba(0,245,255,0.22); }
.eq-bar:nth-child(3n+2) { background: rgba(182,255,0,0.18); }

@keyframes eqBounce {
  0%   { transform: scaleY(0.05); }
  100% { transform: scaleY(1); }
}

/* ===== Sounds – Media Player ===== */
.sound-player {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(11,14,20,0.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 2px solid rgba(255,62,165,0.5);
  box-shadow: 0 -4px 30px rgba(255,62,165,0.15);
  padding: 0.6rem 1rem 0.8rem;
  z-index: 1500;
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
}
.sound-player.active { transform: translateY(0); }

.sound-player__track {
  font-size: clamp(0.78rem, 2.5vw, 0.92rem);
  font-weight: 700;
  color: var(--pink);
  text-shadow: 0 0 10px rgba(255,62,165,0.4);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  margin-bottom: 0.5rem;
}

.sound-player__controls {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
}
.sound-player__controls button {
  background: none;
  border: 1.5px solid rgba(255,255,255,0.15);
  color: var(--text);
  border-radius: 50%;
  width: 38px; height: 38px;
  font-size: 1rem;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s, transform 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sound-player__controls button:hover {
  border-color: var(--pink);
  color: var(--pink);
  transform: scale(1.1);
}
#playerPlay {
  width: 46px; height: 46px;
  font-size: 1.15rem;
  border-color: var(--pink);
  color: var(--pink);
  box-shadow: 0 0 12px rgba(255,62,165,0.3);
}
#playerPlay:hover {
  background: rgba(255,62,165,0.12);
  box-shadow: 0 0 20px rgba(255,62,165,0.55);
}

.sound-player__progress {
  height: 5px;
  background: rgba(255,255,255,0.1);
  border-radius: 3px;
  cursor: pointer;
  margin-bottom: 0.25rem;
}
.sound-player__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--pink), var(--lime));
  border-radius: 3px;
  width: 0%;
  box-shadow: 0 0 6px rgba(255,62,165,0.5);
  pointer-events: none;
}

.sound-player__time {
  display: flex;
  justify-content: space-between;
  font-size: 0.72rem;
  color: var(--muted);
}

/* Platz für Player am Seitenende */
body.player-active { padding-bottom: 115px; }

/* Sound-Card: Play + Share nebeneinander */
.sound-card-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 12px;
}
.btn-sound { margin-top: 0; } /* reset, jetzt in .sound-card-actions */

.btn-share {
  background: rgba(255,255,255,0.05);
  border: 1.5px solid rgba(255,255,255,0.12);
  color: var(--muted);
  border-radius: 999px;
  padding: 0.55rem 1rem;
  font-size: 0.82rem;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.btn-share:hover { border-color: var(--cyan); color: var(--cyan); }
.btn-share.copied { border-color: var(--lime); color: var(--lime); }

/* ===== Season Banner ===== */
#season-banner {
  display: none;
  background: rgba(11,14,20,0.92);
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  font-weight: 700;
  border-radius: 12px;
  padding: .6rem 1rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  transition: transform .3s ease, opacity .3s ease;
  z-index: 2001;
}
#season-banner.active { display: flex; align-items: center; gap: .8rem; }
#season-banner.hidden { opacity: 0; transform: translateY(-8px); pointer-events: none; }

#season-banner .season-text { font-size: .98rem; }
#season-banner .season-close {
  margin-left: auto;
  background: transparent; border: 0; color: #fff; font-size: 1.2rem; cursor: pointer;
  line-height: 1; opacity: .8;
}
#season-banner .season-close:hover { opacity: 1; }

/* Platzierungen */
#season-banner.overlay {
  position: fixed;
  bottom: 60%;                   /* fester Abstand unter dem Header */
  left: 50%;                   /* zentriert horizontal */
  transform: translateX(-50%); /* zentrieren relativ zur eigenen Breite */
  background: rgba(11,14,20,0.92);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  padding: .6rem 1.2rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  z-index: 2001;
  width: 90vw;
  max-width: fit-content;
  text-align: center;

}

#season-banner.under-header {
  position: fixed; left: 0; right: 0;
  margin: 0 auto;
  width: min(900px, 92vw);
}

/* ===== Effekte ===== */
.heart-float {
  position: fixed; bottom: -30px; font-size: 1.6rem; opacity: .85;
  animation: rise 8s linear infinite;
  z-index: 1500; pointer-events: none;
}
@keyframes rise {
  from { transform: translateY(0); opacity: .85; }
  to   { transform: translateY(-110vh); opacity: 0; }
}

.leaf-fall {
  position: fixed; top: -40px; font-size: 1.8rem; opacity: .9;
  animation: fall 10s linear infinite;
  z-index: 1500; pointer-events: none;
}
@keyframes fall {
  from { transform: translateY(0) rotate(0deg); opacity: .9; }
  to   { transform: translateY(110vh) rotate(360deg); opacity: 0; }
}

.flower-rise {
  position: fixed; bottom: -20px; font-size: 1.6rem; opacity: .9;
  animation: bloom 9s linear infinite;
  z-index: 1500; pointer-events: none;
}
@keyframes bloom {
  from { transform: translateY(0); opacity: .9; }
  to   { transform: translateY(-100vh); opacity: 0; }
}

/* 🥚 Ostern */
.egg-rise {
  position: fixed; bottom: -20px; font-size: 1.6rem; opacity: .9;
  animation: eggRise 8s linear infinite;
  z-index: 1500; pointer-events: none;
}
@keyframes eggRise {
  0%   { transform: translateY(0)      rotate(0deg);   opacity: .9; }
  50%  { transform: translateY(-50vh)  rotate(15deg);  opacity: .8; }
  100% { transform: translateY(-100vh) rotate(-10deg); opacity: 0; }
}

/* 🎃 Halloween */
.pumpkin-float {
  position: fixed; bottom: -30px; font-size: 1.8rem; opacity: .95;
  animation: pumpkinRise 7.2s linear infinite;
  z-index: 1500; pointer-events: none;
  filter: drop-shadow(0 6px 14px rgba(255, 115, 0, .35));
}
@keyframes pumpkinRise {
  from { transform: translateY(0) rotate(0deg); opacity: .95; }
  to   { transform: translateY(-105vh) rotate(360deg); opacity: 0; }
}

/* ☀️ Sommer Glow */
.sun-glow {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1400;
  background:
    radial-gradient(80vw 80vw at 50% 30%, rgba(255,215,0,.25), transparent 70%),
    radial-gradient(50vw 50vw at 20% 60%, rgba(255,165,0,.18), transparent 70%);
  animation: sunPulse 6s ease-in-out infinite;
  mix-blend-mode: screen;
}
@keyframes sunPulse {
  0%,100% { opacity: .6; }
  50%     { opacity: 1; }
}

/* ===== Adventskerzen ===== */
.advent-holder {
  position: fixed;
  bottom: 40px;
  right: 40px;
  display: flex;
  gap: 12px;
  z-index: 1600;
  pointer-events: none;
}

.candle {
  width: 14px;
  height: 38px;
  background: linear-gradient(to bottom, #f5f5dc 0%, #e0cfa9 100%);
  border-radius: 3px;
  position: relative;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.2);
}

.flame {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 14px;
  background: radial-gradient(ellipse at center, #ffeb99 0%, #ff9800 60%, transparent 80%);
  border-radius: 50%;
  animation: candleFlame 1s infinite;
  box-shadow: 0 0 8px 3px rgba(255,180,0,0.6);
}

@keyframes candleFlame {
  0%,100% { transform: translateX(-50%) scale(1); opacity: 1; }
  50% { transform: translateX(-50%) scale(0.8); opacity: 0.7; }
}

/* Mobil leicht nach oben rücken */
@media (max-width: 720px) {
  .advent-holder {
    bottom: 90px;
    right: 20px;
    gap: 10px;
  }
}



#season-overlay {
  position: fixed;
  bottom: 20px;
  left: 20px;
  background: rgba(11, 14, 20, 0.9);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 0.6rem 1rem;
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  z-index: 2000;
  box-shadow: 0 0 10px rgba(255,62,165,0.3);
  display: none;
  animation: fadeIn 1.5s ease;
}
#season-overlay.active { display: block; }

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}



/* ===== Shop Produkt-Slider ===== */
.slider {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  margin-bottom: 12px;
}

.slides {
  display: flex;
  transition: transform 0.4s ease;
}

.slides img {
  width: 100%;
  flex-shrink: 0;
  background: var(--card-alt);
  border-radius: var(--radius);
}

.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,.4);
  border: none;
  color: #fff;
  font-size: 26px;
  padding: 4px 10px;
  border-radius: 8px;
  cursor: pointer;
  z-index: 5;
}

.slider-btn.prev { left: 8px; }
.slider-btn.next { right: 8px; }

.dots {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
}

.dot {
  width: 10px;
  height: 10px;
  background: rgba(255,255,255,.4);
  border-radius: 50%;
  cursor: pointer;
}

.dot.active {
  background: var(--pink);
}

/* --- Shop Highlight Card Optimierung --- */
.product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-align: center;
  position: relative;
}

/* Bild-/Sliderbereich bekommt feste Höhe */
.product-card .slider,
.product-card .single-image {
  height: 240px;        /* anpassbar */
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  border-radius: var(--radius);
  margin-bottom: 12px;
}

.product-card .slides img,
.product-card .single-image img {
  height: 100%;
  width: auto;
  object-fit: cover;
}

/* Titel bekommt feste Höhe */
.product-card h3 {
  min-height: 48px;    /* 2 Zeilen */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Beschreibung gleich hoch halten */
.product-card .bio {
  min-height: 72px;    /* 3–4 Zeilen */
  margin-bottom: 12px;
}

/* Preis stylen */
.product-card .role {
  margin: 10px auto;
  padding: 6px 14px;
  border: 2px solid var(--pink);
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 700;
  width: fit-content;
  text-align: center;
}

/* Button-Container nach unten drücken */
.product-card .product-cta {
  margin-top: auto;              /* MAGIC: schiebt den Button nach unten */
  margin-bottom: 0;
  display: flex;
  justify-content: center;
}

/* Button selbst nur noch zentrieren, kein auto-margin mehr */
.product-card .product-cta .btn {
  margin: 12px 0 0 0;
}

/* Abstand zwischen Karten gleich halten */
.cards .product-card {
  padding-bottom: 20px;
}

/* --- Produkt Badge (Neon-Stil) --- */
/* Badge oben links */
.product-badge {
  position: absolute;
  top: 12px;
  left: 12px;

  padding: 6px 12px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;

  color: #fff;
  background: linear-gradient(45deg, #ff3ea5, #b600ff);
  border-radius: 999px;

  box-shadow:
    0 0 8px rgba(255, 62, 165, 0.7),
    0 0 16px rgba(182, 0, 255, 0.6);

  z-index: 20;
}

/* Optional: kleine Animation */
@keyframes badgePop {
  0% { transform: scale(0.6); opacity: 0; }
  80% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}

.product-badge {
  animation: badgePop 0.35s ease-out forwards;
}

/* ===== PHASE 1 – STYLING UPGRADE ===== */

/* 1.2 Scanline / CRT-Overlay */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.04) 2px,
    rgba(0,0,0,0.04) 4px
  );
  pointer-events: none;
  z-index: 9999;
}

/* 1.3 Hero-Partikel Canvas */
.hero {
  position: relative;
  overflow: hidden;
}
#heroParticles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}
.hero .container {
  position: relative;
  z-index: 1;
}

/* 1.5 Glitch-Headings */
@keyframes glitch {
  0%, 86%, 100% { transform: none; }
  87%  { transform: skew(2deg) translateX(3px);  color: var(--cyan);   text-shadow: -3px 0 var(--cyan),   3px 0 var(--pink); }
  88%  { transform: skew(-1.5deg) translateX(-2px); color: var(--lime); text-shadow: 3px 0 var(--lime), -2px 0 var(--purple); }
  89%  { transform: skew(1deg) translateX(1px); }
  90%  { transform: none; }
}
.logo-font { animation: logo-flicker 3s infinite, glitch 9s 2s infinite; }

/* 1.6 Button-Bounce (Crash-Bandicoot-Style) */
@keyframes btnBounce {
  0%   { transform: scale(1)    translateY(0); }
  20%  { transform: scale(1.12) translateY(-7px); }
  40%  { transform: scale(0.95) translateY(1px); }
  60%  { transform: scale(1.07) translateY(-3px); }
  80%  { transform: scale(0.98) translateY(0); }
  100% { transform: scale(1)    translateY(0); }
}
@keyframes shopBounce {
  0%   { transform: scale(1)    skew(0)      rotate(0); }
  20%  { transform: scale(1.16) skew(-2deg)  rotate(-1.5deg) translateY(-9px); }
  40%  { transform: scale(0.92) skew(2.5deg) rotate(1.5deg)  translateY(2px); }
  60%  { transform: scale(1.1)  skew(-1deg)  rotate(-0.5deg) translateY(-4px); }
  80%  { transform: scale(0.97) translateY(1px); }
  100% { transform: scale(1)    skew(0)      rotate(0); }
}
@media (hover:hover) {
  .btn:hover     { animation: btnBounce  0.5s  ease forwards; filter: none; }
  .btn-shop:hover { animation: shopBounce 0.55s ease forwards; }
}

/* 1.7 Section-Akzentfarben */
.hero__title.logo-font                   { color: var(--pink); }
#family h2, #family .family-intro h3     { color: var(--cyan);   text-shadow: 0 0 14px var(--cyan); }
#shop-highlights h2                      { color: var(--lime);   text-shadow: 0 0 14px var(--lime); }
#qanda h2                                { color: var(--purple); text-shadow: 0 0 16px var(--purple); }
main#main.section > .container > h1      { color: var(--orange); text-shadow: 0 0 16px var(--orange); }

/* 1.8 Hero-Logo Pseudo-3D + Schaukel */
@keyframes heroSway {
  0%, 100% { transform: rotate(-1deg) translateY(0); }
  50%       { transform: rotate(1deg)  translateY(-6px); }
}
.hero__logo {
  filter:
    drop-shadow(4px  4px 0px rgba(255,62,165,.6))
    drop-shadow(8px  8px 0px rgba(182,0,255,.4))
    drop-shadow(0 16px 40px rgba(0,0,0,.6));
  animation: flimmer 1.2s infinite, heroSway 6s ease-in-out infinite;
  max-width: 100%;
}

/* 1.9 Allgemeine Aufwertungen */
/* Social-Icons: Cartoon-Outline */
.logo_hero {
  filter: drop-shadow(0 0 5px rgba(255,62,165,.5)) drop-shadow(0 0 2px rgba(0,0,0,.8));
}

/* Navigation: Aktiver Link Neon-Underline */
.nav a.active, .nav a[aria-current="page"] {
  color: var(--pink) !important;
  position: relative;
}
.nav a.active::after, .nav a[aria-current="page"]::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--pink), var(--lime));
  border-radius: 2px;
  box-shadow: 0 0 8px var(--pink);
}

/* Chips: dickere Outline + knalligere Farben */
.chip--1 { outline: 2px solid rgba(255,62,165,.75); }
.chip--2 { outline: 2px solid rgba(182,255,0,.75); }
.chip--3 { outline: 2px solid rgba(182,0,255,.75); }

/* === Phase 3 – Interne Verlinkung === */
.back-link {
  color: var(--muted);
  font-size: 0.85rem;
  text-decoration: none;
  transition: color 0.2s;
}
.back-link:hover { color: var(--pink); }

.shop-cta-row {
  text-align: center;
  margin-top: 2rem;
}

.cross-link-row {
  text-align: center;
  margin-top: 2.5rem;
  color: var(--muted);
}
.neon-link {
  color: var(--cyan);
  text-decoration: none;
  font-weight: 700;
  text-shadow: 0 0 8px var(--cyan);
  transition: text-shadow 0.2s;
}
.neon-link:hover { text-shadow: 0 0 20px var(--cyan), 0 0 35px var(--cyan); }

/* === Phase 4.2 – Eventkalender === */
.calendar-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.calendar-nav button {
  background: none;
  border: 2px solid var(--pink);
  color: var(--pink);
  border-radius: 6px;
  padding: 0.3rem 0.9rem;
  font-size: 1.1rem;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.calendar-nav button:hover { background: var(--pink); color: #000; }
.calendar-month-label {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text);
  min-width: 180px;
  text-align: center;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  max-width: 560px;
  margin: 0 auto;
}
.cal-header {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--muted);
  padding: 0.4rem 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.cal-day {
  aspect-ratio: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 0.85rem;
  color: var(--text);
  background: var(--card);
  border: 1px solid rgba(255,255,255,0.05);
  position: relative;
  cursor: default;
  transition: transform 0.15s;
  min-height: 48px;
  min-width: 0;
  overflow: hidden;
  padding: 4px 2px;
}
.cal-day.empty { background: transparent; border-color: transparent; }
.cal-day.today { border: 2px solid var(--pink); box-shadow: 0 0 12px rgba(255,62,165,0.4); }
.cal-day.stream-day { background: rgba(0,245,255,0.07); border-color: rgba(0,245,255,0.3); }
.cal-day.stream-day::after {
  content: "🎮";
  font-size: 0.65rem;
  position: absolute;
  bottom: 3px;
}
.cal-day.special-event { background: rgba(182,255,0,0.10); border-color: var(--lime); }
.cal-day.special-event .day-number { color: var(--lime); }
.cal-day.special-event::after { content: "⭐"; font-size: 0.65rem; position: absolute; bottom: 3px; }
.cal-day:not(.empty):hover { transform: scale(1.08); z-index: 1; }

.cal-day .day-number { font-size: 0.9rem; font-weight: 600; }
.cal-day .day-label {
  display: none; /* Mobile: nur Icon sichtbar, Text via Legende */
}

@media (min-width: 720px) {
  .cal-day .day-label {
    display: block;
    font-size: 0.6rem;
    color: var(--muted);
    text-align: center;
    line-height: 1.2;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 2px;
  }
}

.calendar-legend {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1.2rem;
  font-size: 0.82rem;
  color: var(--muted);
}
.calendar-legend span { display: flex; align-items: center; gap: 0.3rem; }

/* === Phase 4.3 – Community === */
.community-discord-box {
  background: var(--card);
  border: 2px solid var(--dc);
  border-radius: 16px;
  padding: 2rem;
  text-align: center;
  box-shadow: 0 0 20px rgba(88,101,242,0.3);
  max-width: 540px;
  margin: 2rem auto;
}
.community-discord-box h2 { color: var(--dc); text-shadow: 0 0 12px var(--dc); }
.btn-discord {
  background: var(--dc);
  color: #fff;
  font-weight: 700;
  padding: 0.85rem 2rem;
  border-radius: 999px;
  text-decoration: none;
  display: inline-block;
  margin-top: 1rem;
  box-shadow: 0 0 15px rgba(88,101,242,0.5);
  transition: box-shadow 0.2s, transform 0.2s;
}
.btn-discord:hover {
  box-shadow: 0 0 30px rgba(88,101,242,0.8);
  transform: translateY(-3px);
}

/* =====================================================
   CRASH BANDICOOT VIBES
   ===================================================== */

/* 1 – Text-Stroke auf allen großen Headings */
.hero__title {
  -webkit-text-stroke: 3px #000;
  paint-order: stroke fill;
  text-shadow:
    4px 4px 0 rgba(0,0,0,.95),
    7px 7px 0 rgba(255,115,0,.45),
    0 0 50px rgba(255,62,165,.4);
}

.hero__eyebrow {
  -webkit-text-stroke: 1px rgba(0,0,0,.5);
  paint-order: stroke fill;
}

#family    h2,
#shop-highlights h2,
#qanda     h2,
main#main.section > .container > h1 {
  -webkit-text-stroke: 2px rgba(0,0,0,.85);
  paint-order: stroke fill;
}

/* 2 – Cards: Crash-Kisten-Feeling (harter Pixel-Offset) */
.card {
  border: 3px solid rgba(255,115,0,.35);
  box-shadow:
    4px 4px 0 rgba(0,0,0,.9),
    0 0 16px rgba(255,115,0,.15),
    0 0 10px rgba(255,62,165,.18);
  transition: transform .14s ease, box-shadow .14s ease;
}
@media (hover:hover) {
  .card:hover {
    transform: translate(-3px,-3px) !important;
    box-shadow:
      7px 7px 0 rgba(0,0,0,.9),
      9px 9px 0 rgba(255,115,0,.45),
      0 0 28px rgba(255,62,165,.4);
  }
}

/* 3 – Buttons: harter Offset-Schatten */
.btn {
  border: 2px solid rgba(0,0,0,.55);
  box-shadow: 3px 3px 0 rgba(0,0,0,.85);
}
.btn-live {
  box-shadow: 3px 3px 0 rgba(0,0,0,.9), 0 0 18px rgba(255,62,165,.5);
}
.btn-live:hover {
  transform: translate(-2px,-2px) !important;
  box-shadow: 5px 5px 0 rgba(0,0,0,.9), 0 0 35px rgba(255,62,165,.85);
}
.btn-shop {
  box-shadow: 3px 3px 0 rgba(0,0,0,.9), 0 0 10px #ff3ea5, 0 0 22px #b6ff00;
}
@media (hover:hover) {
  .btn-shop:hover {
    transform: translate(-2px,-2px);
    box-shadow: 5px 5px 0 rgba(0,0,0,.9), 0 0 25px #b6ff00, 0 0 40px #ff3ea5;
  }
}

/* 4 – Schedule-Badge: Crash-Orange */
.schedule-badge {
  background: rgba(255,115,0,.1);
  border-color: var(--orange);
  color: var(--orange);
  text-shadow: 0 0 10px rgba(255,115,0,.65);
  box-shadow: 2px 2px 0 rgba(0,0,0,.7);
}

/* 5 – Section-Alt: diagonale Streifentextur */
.section--alt {
  background-image:
    linear-gradient(180deg, rgba(255,62,165,.07), transparent 55%),
    repeating-linear-gradient(
      -52deg,
      transparent,
      transparent 22px,
      rgba(255,115,0,.025) 22px,
      rgba(255,115,0,.025) 23px
    );
}

/* 6 – Subtile Section-Trennlinie mit Orange */
.section + .section,
.section--alt + .section {
  border-top: 1px solid rgba(255,115,0,.1);
}

/* 7 – Hero: angeschrägte Unterkante (Crash Level-Übergang) */
.hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 56px;
  background: var(--bg);
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  pointer-events: none;
  z-index: 2;
}
.hero {
  padding-bottom: calc(clamp(40px, 6vw, 64px) + 40px);
}

/* 8 – Brand Wordmark: Orange auf Hover */
.brand:hover .wordmark,
.brand:focus .wordmark {
  color: var(--orange);
  text-shadow: 0 0 14px rgba(255,115,0,.7);
}

/* 10 – Section-Headings: Orange-Akzent Underline */
.section > .container > h2::after,
.section > .container > h1::after {
  content: '';
  display: block;
  width: 60px;
  height: 4px;
  background: linear-gradient(90deg, var(--orange), var(--pink));
  border-radius: 2px;
  margin-top: 8px;
  box-shadow: 0 0 10px rgba(255,115,0,.6);
}
@media (min-width: 720px) {
  .section > .container > h2::after,
  .section > .container > h1::after { width: 80px; }
}

/* 11 – Wumpa-Spin: Logo dreht beim Hovern */
@keyframes wumpaSpin {
  0%   { transform: scale(1) rotate(0deg); }
  25%  { transform: scale(1.1) rotate(-8deg); }
  50%  { transform: scale(.95) rotate(5deg); }
  75%  { transform: scale(1.06) rotate(-3deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@media (hover:hover) {
  .brand:hover img { animation: wumpaSpin .5s ease forwards; }
}

/* ===================================================== */

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .logo-font, .hero__eyebrow, .hero__title { animation: none; }
  .hero__logo { animation: none; }
  body::after { display: none; }
  .btn-sound.playing { animation: soundPulse 1.5s infinite; }
  .schedule-badge { animation: none; }
  .brand:hover img { animation: none; }
}

/* ===== Crash Crates – Easter Egg ===== */

.cf-crate {
  position: fixed;
  width: 52px;
  height: 52px;
  border-radius: 4px;
  border: 3px solid #1a0800;
  box-shadow: 4px 4px 0 #1a0800, inset 1px 1px 0 rgba(255,255,255,.12);
  cursor: pointer;
  z-index: 850;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  animation: cf-float 2.6s ease-in-out infinite;
  transition: filter .15s;
  background:
    repeating-linear-gradient(0deg,  transparent 0, transparent 14px, rgba(0,0,0,.28) 14px, rgba(0,0,0,.28) 16px),
    repeating-linear-gradient(90deg, transparent 0, transparent 14px, rgba(0,0,0,.18) 14px, rgba(0,0,0,.18) 16px),
    #B85C00;
}
.cf-crate:hover  { filter: brightness(1.28); }
.cf-crate:active { transform: scale(.92) !important; }

.cf-crate--question {
  background:
    repeating-linear-gradient(0deg,  transparent 0, transparent 14px, rgba(0,0,0,.28) 14px, rgba(0,0,0,.28) 16px),
    repeating-linear-gradient(90deg, transparent 0, transparent 14px, rgba(0,0,0,.18) 14px, rgba(0,0,0,.18) 16px),
    #1e0d3a;
  border-color: #B600FF;
  box-shadow: 4px 4px 0 #0a0020, 0 0 18px rgba(182,0,255,.5), inset 1px 1px 0 rgba(255,255,255,.08);
}
.cf-crate--tnt {
  background:
    repeating-linear-gradient(0deg, transparent 0, transparent 14px, rgba(0,0,0,.3) 14px, rgba(0,0,0,.3) 16px),
    #6e0000;
  border-color: #FF0033;
  box-shadow: 4px 4px 0 #300000, 0 0 20px rgba(255,0,51,.5), inset 1px 1px 0 rgba(255,255,255,.08);
  animation: cf-float 2.6s ease-in-out infinite, cf-tnt-pulse 1s ease-in-out infinite;
}

.cf-crate__lbl {
  font-family: 'Audiowide', sans-serif;
  font-size: .8rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 0 8px rgba(255,115,0,.9), 1px 1px 0 #000;
  pointer-events: none;
  line-height: 1;
}
.cf-crate--question .cf-crate__lbl {
  font-size: 1.15rem;
  color: #00F5FF;
  text-shadow: 0 0 10px rgba(0,245,255,1), 1px 1px 0 #000;
}
.cf-crate--tnt .cf-crate__lbl {
  font-size: .57rem;
  letter-spacing: 1.5px;
  color: #FFD700;
  text-shadow: 0 0 10px rgba(255,215,0,.9), 1px 1px 0 #500;
}

@keyframes cf-float {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-7px); }
}
@keyframes cf-tnt-pulse {
  0%,100% { box-shadow: 4px 4px 0 #300000, 0 0 20px rgba(255,0,51,.5); }
  50%      { box-shadow: 4px 4px 0 #300000, 0 0 44px rgba(255,115,0,.9), 0 0 10px rgba(255,215,0,.55); }
}
@keyframes cf-smash {
  0%   { transform: scale(1)   rotate(0deg);   opacity: 1; }
  30%  { transform: scale(1.5) rotate(14deg);  opacity: 1; }
  100% { transform: scale(.1)  rotate(-28deg); opacity: 0; }
}
.cf-crate--smash { animation: cf-smash .38s ease-out forwards !important; pointer-events: none; }

/* Particles */
.cf-particle {
  position: fixed;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%,-50%);
  animation: cf-particle .58s ease-out forwards;
}
@keyframes cf-particle {
  from { transform: translate(-50%,-50%) scale(1);    opacity: 1; }
  to   { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.2); opacity: 0; }
}

/* Screen shake */
@keyframes cf-shake-kf {
  0%,100% { transform: none; }
  12%  { transform: translate(-5px,-3px) rotate(-.5deg); }
  25%  { transform: translate( 5px, 3px) rotate( .5deg); }
  37%  { transform: translate(-4px, 2px) rotate(-.3deg); }
  50%  { transform: translate( 3px,-2px); }
  62%  { transform: translate(-3px, 1px); }
  75%  { transform: translate( 2px,-1px); }
  87%  { transform: translate(-1px, 1px); }
}
body.cf-shake { animation: cf-shake-kf .48s ease-out; }

/* "?" quote popup – zentriert auf dem Screen, bouncig */
.cf-quote-pop {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(.4) rotate(-7deg);
  width: min(440px, 90vw);
  max-width: 90vw;
  background: rgba(17,22,38,.97);
  border: 3px solid var(--cyan);
  border-radius: 18px;
  padding: 20px 26px;
  font-family: 'Audiowide', sans-serif;
  font-size: clamp(1rem, 4.5vw, 1.5rem);
  line-height: 1.25;
  color: var(--cyan);
  text-shadow: 0 0 14px rgba(0,245,255,.7);
  box-shadow: 0 0 40px rgba(0,245,255,.35), 6px 6px 0 rgba(0,0,0,.5);
  z-index: 9991;
  opacity: 0;
  transition: opacity .25s ease, transform .45s cubic-bezier(.2, 1.7, .4, 1);
  pointer-events: none;
  text-align: center;
}
.cf-quote-pop--on {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1) rotate(-2deg);
  animation: cf-quote-glow 1.6s ease-in-out infinite;
}
@keyframes cf-quote-glow {
  0%, 100% { box-shadow: 0 0 34px rgba(0,245,255,.3),  6px 6px 0 rgba(0,0,0,.5); }
  50%      { box-shadow: 0 0 60px rgba(0,245,255,.65), 6px 6px 0 rgba(0,0,0,.5); }
}

/* Wumpa score counter */
.cf-score {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: rgba(17,22,38,.93);
  border: 2px solid var(--orange);
  border-radius: 20px;
  padding: 5px 14px;
  font-family: 'Audiowide', sans-serif;
  font-size: .7rem;
  color: var(--orange);
  text-shadow: 0 0 8px rgba(255,115,0,.7);
  box-shadow: 0 0 14px rgba(255,115,0,.32);
  z-index: 9980;
  pointer-events: none;
}
@keyframes cf-bump {
  0%,100% { transform: scale(1); }
  50%      { transform: scale(1.38); }
}
.cf-score--bump { animation: cf-bump .28s ease-out; }

/* Crash runner */
.cf-runner {
  position: fixed;
  bottom: 0;
  right: -90px;
  width: 64px;
  height: 90px;
  z-index: 9995;
  pointer-events: none;
  animation: cf-runner-go 2.9s linear forwards;
}
/* Orange blob body */
.cf-runner::before {
  content: '';
  position: absolute;
  bottom: 20px;
  left: 7px;
  width: 50px;
  height: 56px;
  background: radial-gradient(ellipse at 40% 35%, #FF9340, var(--orange) 60%, #7a2600);
  border-radius: 52% 52% 44% 44% / 56% 56% 44% 44%;
  border: 2.5px solid #1a0800;
  box-shadow: 0 0 20px rgba(255,115,0,.7);
}
/* "!" above head */
.cf-runner::after {
  content: '!';
  position: absolute;
  bottom: 70px;
  left: 25px;
  font-family: 'Audiowide', sans-serif;
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--lime);
  text-shadow: 0 0 10px rgba(182,255,0,.95), 0 0 3px #000;
  animation: cf-exclaim .32s ease-in-out infinite alternate;
}
/* Running legs */
.cf-leg {
  position: absolute;
  bottom: 4px;
  width: 14px;
  height: 18px;
  background: #7a2600;
  border-radius: 3px 3px 6px 6px;
  border: 2px solid #1a0800;
}
.cf-leg--l { left: 12px; animation: cf-leg-l .32s ease-in-out infinite alternate; }
.cf-leg--r { left: 34px; animation: cf-leg-r .32s ease-in-out infinite alternate; }
@keyframes cf-leg-l {
  from { transform: rotate(-18deg) translateY(0); }
  to   { transform: rotate( 18deg) translateY(-4px); }
}
@keyframes cf-leg-r {
  from { transform: rotate( 18deg) translateY(-4px); }
  to   { transform: rotate(-18deg) translateY(0); }
}
@keyframes cf-runner-go {
  0%   { right: -90px;             opacity: 1; }
  82%  { opacity: 1; }
  100% { right: calc(100vw + 90px); opacity: .15; }
}
@keyframes cf-exclaim {
  from { transform: scale(1)    translateY(0); }
  to   { transform: scale(1.22) translateY(-4px); }
}

@media (prefers-reduced-motion: reduce) {
  .cf-crate, .cf-crate--tnt { animation: none !important; }
  .cf-runner, .cf-particle   { display: none !important; }
  body.cf-shake              { animation: none; }
}

/* =====================================================
   FULL CRASH OVERHAUL – Jungle / Sunset Leitlook
   ===================================================== */

/* Atmosphäre: warmer Dschungel-Sonnenuntergang hinter allem */
body {
  background:
    radial-gradient(135vw 65vh at 50% -10%,  rgba(255,115,0,.20), transparent 58%),
    radial-gradient(80vw 55vh at 86% 6%,     rgba(255,62,165,.12), transparent 55%),
    radial-gradient(110vw 80vh at 8% 110%,   rgba(0,245,255,.10), transparent 60%),
    radial-gradient(95vw 70vh at 94% 114%,   rgba(182,0,255,.14), transparent 60%),
    var(--bg);
  background-attachment: fixed;
}

/* Hero: Sunset-Glow oben + warmer Horizont-Glow hinter der Baumlinie */
.hero {
  padding-bottom: calc(clamp(40px, 6vw, 64px) + 100px);
  background:
    radial-gradient(78vw 48vh at 50% -4%,  rgba(255,115,0,.26), transparent 60%),
    radial-gradient(125vw 32vh at 50% 100%, rgba(255,115,0,.24), transparent 62%),
    linear-gradient(180deg, rgba(182,0,255,.12), transparent 42%);
}

/* Dschungel-Baumlinie als Hero-Unterkante (ersetzt den alten Dreiecks-Übergang) */
.hero::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 120px;
  background: url('/assets/images/jungle-silhouette.svg') repeat-x left bottom;
  background-size: auto 120px;
  clip-path: none;
  z-index: 2;
  pointer-events: none;
}
@media (max-width: 720px) {
  .hero::after { height: 104px; background-size: auto 104px; }
  .hero { padding-bottom: calc(clamp(40px, 6vw, 64px) + 86px); }
}

/* Hero auf Desktop: volle Bildschirmhöhe (100vh) + großes, mittiges Bild */
@media (min-width: 720px) {
  .hero {
    min-height: calc(100vh - var(--header-h));
    display: flex;
    align-items: center;
    padding-top: clamp(28px, 4vw, 52px);
    padding-bottom: 210px;                 /* Platz für die große Baumlinie */
  }
  .hero::after { height: 190px; background-size: auto 190px; }
  .hero__inner { grid-template-columns: 1fr 1.4fr; gap: 2rem; }
  .hero__visual {
    justify-content: flex-start;           /* an die Mittel-Gutter ziehen */
    transform: translate(-10px, 30px);     /* näher zur Mitte + etwas tiefer */
  }
  .hero__logo { width: min(760px, 60vw); }
}
@media (min-width: 1080px) {
  .hero { padding-bottom: 232px; }
  .hero::after { height: 212px; background-size: auto 212px; }
  .hero__inner { grid-template-columns: 1fr 1.5fr; gap: 2.4rem; }
  .hero__logo { width: min(820px, 58vw); }
  .hero__visual { transform: translate(-16px, 34px); }
}

/* Section-Alt: warme Orange/Teal-Streifentextur statt Pink */
.section--alt {
  background-image:
    linear-gradient(180deg, rgba(255,115,0,.09), transparent 55%),
    repeating-linear-gradient(
      -52deg,
      transparent, transparent 22px,
      rgba(0,245,255,.03) 22px, rgba(0,245,255,.03) 23px
    );
}

/* Footer: Dschungel-Baumlinie als Horizont über dem Footer (auf allen Seiten) */
.footer {
  padding-top: 0;
  border-top: none;
  box-shadow: none;
  background:
    radial-gradient(120vw 130px at 50% 0%, rgba(255,115,0,.13), transparent 72%),
    linear-gradient(0deg, rgba(0,0,0,.35) 0%, transparent 100%);
}
.footer::before {
  content: '';
  display: block;
  height: 96px;
  margin-bottom: 1.6rem;
  background: url('/assets/images/jungle-silhouette.svg') repeat-x left bottom;
  background-size: auto 96px;
}
@media (max-width: 720px) {
  .footer::before { height: 72px; background-size: auto 72px; }
}

/* ===== Easter Egg: Fallende Sammel-Früchte ===== */
.cf-fruit {
  position: fixed;
  top: -54px;
  font-size: 2rem;
  line-height: 1;
  z-index: 860;
  cursor: pointer;
  user-select: none;
  filter: drop-shadow(0 0 8px rgba(255,115,0,.7));
  animation: cf-fruit-fall linear forwards;
}
.cf-fruit:hover { filter: drop-shadow(0 0 16px rgba(255,215,0,1)); }
@keyframes cf-fruit-fall {
  from { transform: translateY(0)      rotate(0deg); }
  to   { transform: translateY(112vh)  rotate(340deg); }
}
.cf-fruit--pop { animation: cf-fruit-pop .3s ease-out forwards !important; }
@keyframes cf-fruit-pop {
  from { transform: scale(1)   rotate(0deg);  opacity: 1; }
  to   { transform: scale(2.1) rotate(20deg); opacity: 0; }
}

/* Frucht-Counter (zweite Pille, über dem Kisten-Counter) */
.cf-fruit-score {
  position: fixed;
  bottom: 58px;
  right: 20px;
  background: rgba(17,22,38,.93);
  border: 2px solid var(--yt);
  border-radius: 20px;
  padding: 5px 14px;
  font-family: 'Audiowide', sans-serif;
  font-size: .7rem;
  color: #FFD700;
  text-shadow: 0 0 8px rgba(255,215,0,.7);
  box-shadow: 0 0 14px rgba(255,0,51,.32);
  z-index: 9980;
  pointer-events: none;
}
.cf-fruit-score--bump { animation: cf-bump .28s ease-out; }

/* ===== Easter Egg: Steuerung (Pause / Punkte löschen) ===== */
.cf-controls {
  position: fixed;
  bottom: 96px;
  right: 20px;
  display: flex;
  gap: 8px;
  z-index: 9981;
}
.cf-ctrl {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  background: rgba(17,22,38,.93);
  border: 2px solid var(--purple);
  border-radius: 50%;
  color: var(--text);
  font-size: .95rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 0 12px rgba(182,0,255,.35);
  transition: transform .15s ease, box-shadow .2s ease, filter .15s ease;
}
.cf-ctrl:hover  { transform: translateY(-2px) scale(1.08); filter: brightness(1.2); box-shadow: 0 0 18px rgba(182,0,255,.6); }
.cf-ctrl:active { transform: scale(.92); }
.cf-ctrl--reset { border-color: var(--yt); box-shadow: 0 0 12px rgba(255,0,51,.35); }
.cf-ctrl--reset:hover { box-shadow: 0 0 18px rgba(255,0,51,.6); }
.cf-controls--paused .cf-ctrl--pause {
  border-color: var(--lime);
  color: var(--lime);
  box-shadow: 0 0 14px rgba(182,255,0,.5);
}
/* Im Pausemodus nur den Play-Button zeigen */
.cf-controls--paused .cf-ctrl--reset { display: none; }

/* ===== Easter Egg: Konfetti (Konami) ===== */
.cf-confetti {
  position: fixed;
  top: -14px;
  width: 9px;
  height: 14px;
  border-radius: 2px;
  z-index: 9997;
  pointer-events: none;
  animation: cf-confetti-fall linear forwards;
}
@keyframes cf-confetti-fall {
  0%   { transform: translateY(0)     rotate(0deg);   opacity: 1; }
  100% { transform: translateY(110vh) rotate(720deg); opacity: .2; }
}

/* ===== Easter Egg: Master-Badge Overlay ===== */
.cf-master {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9996;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s ease;
}
.cf-master.on { opacity: 1; }
.cf-master__inner {
  font-family: 'Audiowide', sans-serif;
  font-size: clamp(2rem, 9vw, 5rem);
  color: var(--orange);
  -webkit-text-stroke: 3px #000;
  paint-order: stroke fill;
  text-shadow: 0 0 32px rgba(255,115,0,.9), 6px 6px 0 rgba(0,0,0,.6);
  transform: scale(.5) rotate(-7deg);
  transition: transform .5s cubic-bezier(.2,1.6,.4,1);
  text-align: center;
  padding: 0 1rem;
}
.cf-master.on .cf-master__inner { transform: scale(1) rotate(-3deg); }

/* ===== Easter Egg: Idle-Wackler ===== */
@keyframes cf-idle-wobble {
  0%,100% { transform: translateY(0)    rotate(0deg); }
  20%     { transform: translateY(-13px) rotate(-9deg); }
  40%     { transform: translateY(0)     rotate(9deg); }
  60%     { transform: translateY(-8px)  rotate(-5deg); }
  80%     { transform: translateY(0)     rotate(4deg); }
}
.cf-crate--attention { animation: cf-idle-wobble .6s ease-in-out 2 !important; }

@media (prefers-reduced-motion: reduce) {
  .cf-fruit, .cf-confetti { display: none !important; }
  .cf-master__inner { transition: none; }
  .cf-quote-pop { transition: opacity .2s ease; }
  .cf-quote-pop--on { transform: translate(-50%, -50%); animation: none; }
}

/* ===== Phase 5.3 – Mini-Games / Fun-Zone ===== */

/* Im Spiel-Popup gewinnt das hidden-Attribut immer gegen display-Regeln */
#gamePlay [hidden] { display: none !important; }

/* ── Spiel-Auswahl (auf der Seite) ─────────────────────────── */
.games-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 1.5rem;
}
.game-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  text-align: left;
  cursor: pointer;
  background: var(--card);
  color: var(--text);
  border: 3px solid #000;
  border-radius: var(--radius);
  padding: 18px 16px;
  box-shadow: 0 0 14px rgba(255,62,165,.25), 0 6px 20px rgba(0,0,0,.6);
  transition: transform .15s ease, box-shadow .2s ease;
}
.game-tile:hover,
.game-tile:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 0 22px var(--accent, var(--pink)), 0 8px 24px rgba(0,0,0,.7);
  outline: none;
}
.game-tile__icon { font-size: 2.2rem; line-height: 1; }
.game-tile__name {
  font-family: Audiowide, system-ui, sans-serif;
  font-size: 1.15rem;
  color: var(--accent, var(--pink));
  text-shadow: 0 0 10px var(--accent, var(--pink));
}
.game-tile__desc { font-size: .85rem; color: var(--muted); }
.game-tile--snake   { --accent: var(--lime); }
.game-tile--catcher { --accent: var(--pink); }
.game-tile--smash   { --accent: var(--orange); }
.game-tile--memory  { --accent: var(--cyan); }
/* CrazyFamily Land: Link-Kachel (eigene Spielseite), über volle Breite */
.game-tile--land {
  --accent: var(--purple);
  grid-column: 1 / -1;
  text-decoration: none;
}
/* Weitere eigenständige Spielseiten (Link-Kacheln) */
.game-tile--chomp,
.game-tile--rush,
.game-tile--doom,
.game-tile--tetris,
.game-tile--survivors { text-decoration: none; }
.game-tile--chomp  { --accent: var(--orange); }
.game-tile--rush   { --accent: var(--lime); }
.game-tile--doom   { --accent: var(--yt); }
.game-tile--tetris { --accent: var(--purple); }
.game-tile--survivors { --accent: var(--cyan); }

@media (min-width: 720px) {
  .games-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 380px) {
  .games-grid { grid-template-columns: 1fr; }
}

/* ── Vollbild-Popup – füllt den Viewport, NICHT scrollbar ──── */
.game-play--active {
  position: fixed;
  inset: 0;
  z-index: 5000;            /* über fixiertem Header (2000) und Live-Banner (2001) */
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;         /* Popup selbst scrollt nie */
  background:
    radial-gradient(120% 60% at 50% -10%, rgba(255,62,165,.14), transparent 60%),
    radial-gradient(120% 60% at 50% 110%, rgba(0,245,255,.10), transparent 60%),
    var(--bg);
}

/* Hintergrund-Seite festhalten, solange das Popup offen ist */
body.cf-no-scroll { overflow: hidden; }

/* Easter-Egg-Deko im Popup ausblenden, damit das Spielfeld ruhig bleibt */
body.cf-no-scroll .cf-crate,
body.cf-no-scroll .cf-fruit,
body.cf-no-scroll .cf-runner,
body.cf-no-scroll .cf-controls,
body.cf-no-scroll .cf-score,
body.cf-no-scroll .cf-fruit-score { display: none !important; }

/* ── Top-Leiste: ✕ | Punkte/Rekord | 🏆 (nichts überlappt) ── */
.game-topbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px clamp(10px, 3vw, 20px);
  background: rgba(11,14,20,.9);
  border-bottom: 2px solid rgba(255,62,165,.3);
  box-shadow: 0 4px 18px rgba(0,0,0,.5);
}
.game-icon-btn {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 3px solid #000;
  border-radius: 50%;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .2s ease;
}
.game-icon-btn:hover,
.game-icon-btn:focus-visible { transform: scale(1.1); outline: none; }
.game-icon-btn--close {
  background: var(--pink);
  color: #0B0E14;
  box-shadow: 0 0 12px var(--pink);
}
.game-icon-btn--board {
  background: var(--card);
  box-shadow: 0 0 12px rgba(255,215,0,.5);
}

.game-hud {
  display: flex;
  gap: 8px;
  min-width: 0;
  justify-content: center;
}
.game-hud span {
  font-weight: 800;
  font-size: .88rem;
  white-space: nowrap;
  padding: .35rem .75rem;
  border-radius: 999px;
  border: 2px solid currentColor;
}
.game-hud__score { color: var(--cyan); text-shadow: 0 0 8px var(--cyan); }
.game-hud__best  { color: var(--lime); text-shadow: 0 0 8px var(--lime); }

/* ── Spielbühne: zentriert, Spiel passt immer in die Höhe ──── */
.game-play--active .cf-stage {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px clamp(8px, 3vw, 20px) 16px;
}
.cf-stage { display: flex; justify-content: center; }
.cf-game {
  position: relative;
  width: 100%;
  max-width: min(92vw, 480px);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.cf-canvas {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100vh - 150px);   /* Topbar + Abstände abgezogen */
  max-height: calc(100dvh - 150px);
  background: var(--bg);
  border: 4px solid #000;
  border-radius: 14px;
  box-shadow: 0 0 22px rgba(0,245,255,.35), 0 8px 24px rgba(0,0,0,.6);
  touch-action: none;                /* kein Page-Scroll beim Spielen */
}
.cf-canvas:focus-visible { outline: 2px solid var(--pink); outline-offset: 3px; }

/* ── Spiel-Overlay (Start / Game Over im Spielfeld) ────────── */
.cf-overlay {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(11,14,20,.84);
  border-radius: 14px;
  z-index: 3;
}
.cf-overlay--on { display: flex; }
.cf-overlay__box {
  text-align: center;
  padding: 18px;
  max-width: 88%;
}
.cf-overlay__box h3 {
  font-family: Audiowide, system-ui, sans-serif;
  color: var(--pink);
  text-shadow: 0 0 14px var(--pink);
  margin: 0 0 .5rem;
  font-size: 1.35rem;
}
.cf-overlay__box p { color: var(--text); margin: 0 0 1rem; font-size: .95rem; }
.cf-overlay__btn {
  background: linear-gradient(90deg, var(--pink), var(--lime));
  color: #0B0E14;
  border: 3px solid #000;
  font-weight: 900;
}

/* ── Kisten-Smash ──────────────────────────────────────────── */
.cf-game--smash { gap: 10px; }
.cf-smash-bar {
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: min(86vw, 340px, calc(100vh - 250px));
  max-width: min(86vw, 340px, calc(100dvh - 250px));
  font-weight: 700;
  font-size: 1.05rem;
}
.cf-smash-time { color: var(--cyan); text-shadow: 0 0 8px var(--cyan); }
.cf-smash-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  width: 100%;
  /* Quadratisches Board: Breitenlimit hält auch die Höhe im Viewport */
  max-width: min(86vw, 340px, calc(100vh - 250px));
  max-width: min(86vw, 340px, calc(100dvh - 250px));
}
.cf-hole {
  position: relative;
  aspect-ratio: 1 / 1;
  background: rgba(0,245,255,.05);
  border: 2px dashed rgba(0,245,255,.18);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cf-smash-crate {
  width: 78%;
  height: 78%;
  border: 3px solid #000;
  border-radius: 10px;
  background: linear-gradient(160deg, #FF9A3C, #B85C00);
  color: #2a1500;
  font-family: Audiowide, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 900;
  cursor: pointer;
  box-shadow: inset 0 0 0 3px rgba(0,0,0,.25), 0 0 12px rgba(255,115,0,.5);
  transform: scale(0);
  transition: transform .12s ease;
}
.cf-smash-crate--up { transform: scale(1); }
.cf-smash-crate--hit { transform: scale(1.25) rotate(8deg); opacity: 0; }
.cf-smash-crate--tnt {
  background: linear-gradient(160deg, #FF3a3a, #8B0000);
  color: #fff;
  box-shadow: inset 0 0 0 3px rgba(0,0,0,.3), 0 0 16px rgba(255,0,51,.7);
  animation: cf-tnt-pulse .7s ease-in-out infinite;
}

/* ── Memory ────────────────────────────────────────────────── */
.cf-game--memory { gap: 10px; }
.cf-mem-bar {
  width: 100%;
  text-align: center;
  font-weight: 700;
  color: var(--purple);
  text-shadow: 0 0 8px var(--purple);
}
.cf-mem-board {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  width: 100%;
  /* Karten 3:4, 4 Reihen → Höhe ≈ 4/3 der Breite; Limit hält alles im Viewport */
  max-width: min(86vw, 380px, calc((100vh - 230px) * .72));
  max-width: min(86vw, 380px, calc((100dvh - 230px) * .72));
}
.cf-mem-card {
  position: relative;
  aspect-ratio: 3 / 4;
  border: 3px solid #000;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  padding: 0;
}
.cf-mem-face {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: clamp(1.2rem, 6vw, 1.9rem);
  backface-visibility: hidden;
}
.cf-mem-face--front {
  background: linear-gradient(160deg, var(--purple), #3a006b);
  color: var(--cyan);
  font-family: Audiowide, system-ui, sans-serif;
  box-shadow: inset 0 0 14px rgba(0,245,255,.3);
}
.cf-mem-face--back { background: var(--card); opacity: 0; transform: rotateY(180deg); }
.cf-mem-card--up .cf-mem-face--front { opacity: 0; }
.cf-mem-card--up .cf-mem-face--back  { opacity: 1; transform: rotateY(0); }
.cf-mem-card--done { box-shadow: 0 0 16px var(--lime); border-color: var(--lime); }

/* ── Bestenlisten-/Ergebnis-Panel (über dem Spiel) ─────────── */
.board-panel {
  position: absolute;
  inset: 0;
  z-index: 10;              /* über Bühne und Spiel-Overlays */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  background: rgba(11,14,20,.88);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.board-panel__card {
  width: min(92vw, 420px);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px;
  background: var(--card);
  border: 3px solid #000;
  border-radius: var(--radius);
  box-shadow: 0 0 24px rgba(255,62,165,.45), 0 12px 32px rgba(0,0,0,.7);
}
.board-panel__title {
  margin: 0;
  font-family: Audiowide, system-ui, sans-serif;
  font-size: 1.15rem;
  color: var(--pink);
  text-shadow: 0 0 10px var(--pink);
  text-align: center;
}
.board-panel__result {
  margin: 0;
  text-align: center;
  font-size: 1rem;
}
.board-panel__result strong { color: var(--lime); text-shadow: 0 0 8px var(--lime); }
.board-panel__submit {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}
.games-nick {
  flex: 1 1 140px;
  min-width: 0;
  padding: .5rem .8rem;
  border-radius: 999px;
  border: 2px solid var(--cyan);
  background: var(--bg);
  color: var(--text);
  font-size: .95rem;
}
.games-nick:focus-visible { outline: none; box-shadow: 0 0 10px var(--cyan); }
.board-panel__actions {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}
.board-panel__btn { border: 3px solid #000; font-weight: 800; }
.board-panel__btn--primary {
  background: linear-gradient(90deg, var(--pink), var(--lime));
  color: #0B0E14;
}

/* Bestenliste – kompakte Neon-Liste; nur SIE scrollt im Notfall, nie das Popup */
.leaderboard {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  border: 3px solid #000;
  border-radius: 14px;
  box-shadow: 0 0 14px rgba(0,245,255,.2);
}
.leaderboard li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: .45rem .85rem;
  background: var(--card-alt);
  border-bottom: 1px solid rgba(255,255,255,.06);
  font-size: .92rem;
}
.leaderboard li:nth-child(even) { background: var(--card); }
.leaderboard li:last-child { border-bottom: none; }
.leaderboard li:first-child .leaderboard__rank { color: #FFD700; text-shadow: 0 0 8px #FFD700; }
.leaderboard__rank {
  width: 1.8rem;
  color: var(--orange);
  font-weight: 900;
  font-family: Audiowide, system-ui, sans-serif;
}
.leaderboard__name { flex: 1; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard__score { color: var(--lime); font-weight: 900; text-shadow: 0 0 6px var(--lime); }
.leaderboard__empty { justify-content: center; color: var(--muted); }

/* ── Reduced Motion ────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .cf-smash-crate { transition: none; }
  .cf-smash-crate--tnt { animation: none; }
  .game-tile:hover, .game-tile:focus-visible,
  .game-icon-btn:hover, .game-icon-btn:focus-visible { transform: none; }
}
