/* ============================================================
   Baustein-Seite: Videoproduktion — „Filmstreifen-Drehtag"
   Eigenständige Sektionen (Hero-Gerüst/Naht/Buttons/FAQ/Brücke
   kommen aus main.css). Signature: der dunkle Akt als Filmstreifen
   mit CSS-Perforation, Timecodes und REC-Chip.
   ============================================================ */

/* ---------- Hero-Sucher: Produktionsfoto in Kamera-Optik ----------
   Kein Fake-Play (die Quellseite referenziert kein Video): stattdessen
   Eckmarken wie im Kamera-Sucher und ein Timecode-Chip in Standby. */

.sucher img,
.sucher-clip {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* ---------- Video-Hero: Showcase als 16:9-Vollflächen-Hintergrund ----------
   Das Video liegt hinter dem Hero (kino-Muster), ein Scrim macht die Typo
   lesbar. Ein Overlay-Button fängt Klicks im freien Bereich (Text und CTAs
   bleiben klickbar) und öffnet bei Klick Vollbild mit Ton; ein Play-Cue folgt
   dem Cursor (JS setzt Position + .cue-an). */
.video-hero { min-height: 90svh; }

.video-hero .kino-video { object-position: center; }

/* Typo in der linken, gut abgedeckten Hälfte halten (sonst läuft die H1 in den
   dunklen/bewegten Video-Teil rechts und wird unlesbar) */
.video-hero h1 { max-width: 14ch; }
.video-hero .hero-lead { max-width: 30rem; }

.video-hero-scrim {
  background:
    radial-gradient(760px 420px at 88% 0%, rgba(20, 120, 124, 0.16), transparent 65%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.82) 32%, rgba(255, 255, 255, 0.36) 60%, rgba(255, 255, 255, 0.06) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.45) 0%, transparent 20%, transparent 66%, #ffffff 100%);
}

.video-hover {
  position: absolute;
  inset: 0;
  z-index: 1;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

/* Text-Layer klickdurchlässig, nur Links/Buttons darin fangen Klicks —
   so öffnet ein Klick auf den freien Video-Bereich das Vollbild */
.video-hero .kino-inhalt { pointer-events: none; }
.video-hero .kino-inhalt a,
.video-hero .kino-inhalt button { pointer-events: auto; }

/* Play-Cue folgt dem Cursor (JS: left/top + .cue-an) */
.video-hover-cue {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.9);
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: left, top;
}
.video-hover.cue-an .video-hover-cue {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.video-hover-play {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  padding-left: 3px;
  border-radius: 50%;
  color: #ffffff;
  background: var(--shimmer);
  background-size: 200% 100%;
  box-shadow: 0 12px 30px rgba(6, 23, 25, 0.45);
}

.video-hover-text {
  padding: 6px 15px;
  border-radius: 999px;
  background: rgba(6, 23, 25, 0.6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
}

/* Timecode-Zeile unter den CTAs: REC-Punkt + echter, mitlaufender Timecode */
.video-hero-tc {
  margin-top: clamp(22px, 3.5vh, 34px);
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink-leise);
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
}
.video-hero-rec {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #e5484d;
  animation: rec-puls 2s ease-out infinite;
}
@keyframes rec-puls {
  0% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0.5); }
  70% { box-shadow: 0 0 0 7px rgba(229, 72, 77, 0); }
  100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0); }
}

/* Mobil: das Video erbt vom kino-Muster einen eigenen Block unter dem Text
   (kein Vollflächen-Hintergrund mehr, Text steht auf weißer Bühne). Statt der
   fixen kino-Höhe hier echtes 16:9, damit der volle Frame zu sehen ist. */
@media (max-width: 720px) {
  .video-hero .kino-medien {
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 18px;
    box-shadow: var(--karte-schatten);
  }
  .video-hero h1 { max-width: none; }
}

/* Touch-Geräte: kein Hover-Cursor, deshalb ein fester Play-Hinweis unten.
   Dasselbe im tap-modus (main.js): mobil lädt das Video erst auf Tap, dann ist
   der Cue der einzige Hinweis, dass hinter dem Poster ein Video liegt. */
@media (hover: none) {
  .video-hover-cue {
    left: 50%;
    top: auto;
    bottom: clamp(20px, 5vh, 40px);
    opacity: 1;
    transform: translateX(-50%);
  }
  .video-hover.cue-an .video-hover-cue { transform: translateX(-50%); }
}

.video-hover.tap-modus .video-hover-cue,
.video-hover.tap-modus.cue-an .video-hover-cue {
  left: 50%;
  top: auto;
  bottom: clamp(20px, 5vh, 40px);
  opacity: 1;
  transform: translateX(-50%);
}

/* Vier Eckmarken aus je zwei Gradient-Strichen — kein Bild, kein SVG */
.sucher-marken {
  position: absolute;
  inset: 14px;
  pointer-events: none;
  --strich: rgba(255, 255, 255, 0.92);
  background:
    linear-gradient(var(--strich), var(--strich)) left top / 22px 2px,
    linear-gradient(var(--strich), var(--strich)) left top / 2px 22px,
    linear-gradient(var(--strich), var(--strich)) right top / 22px 2px,
    linear-gradient(var(--strich), var(--strich)) right top / 2px 22px,
    linear-gradient(var(--strich), var(--strich)) left bottom / 22px 2px,
    linear-gradient(var(--strich), var(--strich)) left bottom / 2px 22px,
    linear-gradient(var(--strich), var(--strich)) right bottom / 22px 2px,
    linear-gradient(var(--strich), var(--strich)) right bottom / 2px 22px;
  background-repeat: no-repeat;
  filter: drop-shadow(0 1px 4px rgba(6, 23, 25, 0.45));
}

.sucher-tc {
  position: absolute;
  top: 24px;
  right: 24px;
  padding: 6px 12px;
  border-radius: 8px;
  background: rgba(6, 23, 25, 0.62);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-variant-numeric: tabular-nums;
}

/* ---------- Filmakt: der EINE dunkle Akt der Seite ---------- */

.filmakt {
  background: var(--bg-deep);
  color: var(--dunkel-ink);
  padding-block: clamp(64px, 9vh, 112px);
  overflow: clip;
}

.filmakt-aurora {
  position: absolute;
  inset: -10% -20%;
  z-index: var(--z-orb);
  background:
    radial-gradient(760px 420px at 12% 10%, rgba(20, 120, 124, 0.32), transparent 65%),
    radial-gradient(900px 500px at 88% 85%, rgba(103, 205, 198, 0.13), transparent 60%);
  filter: blur(10px);
  animation: orb-drift 30s ease-in-out infinite alternate;
}

.filmakt-kopf {
  position: relative;
  z-index: var(--z-inhalt);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px 40px;
  margin-bottom: clamp(30px, 4.5vh, 52px);
}

.filmakt h2 {
  font-size: var(--fs-h2);
  color: #ffffff;
}

.filmakt h2 em { color: var(--mint-hell); }

.filmakt-note {
  color: var(--dunkel-soft);
  font-size: 0.9rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

/* REC-Chip in der Ecke des Akts; der Punkt blinkt (steht im ist-static-
   Modus automatisch still, weil main.css dort alle Animationen killt) */
.rec-chip {
  position: absolute;
  top: clamp(20px, 3.5vh, 32px);
  right: clamp(20px, 4vw, 48px);
  z-index: var(--z-inhalt);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 15px;
  border-radius: 999px;
  border: 1px solid rgba(255, 106, 106, 0.4);
  background: rgba(6, 23, 25, 0.55);
  color: #ffb4ab;
  font-weight: 700;
  font-size: 0.76rem;
  letter-spacing: 0.16em;
}

.rec-punkt {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #ff5449;
  box-shadow: 0 0 12px rgba(255, 84, 73, 0.8);
  animation: rec-blink 1.2s steps(2, jump-none) infinite;
}

@keyframes rec-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}

/* ---------- Der Filmstreifen ----------
   Vollbreiter horizontaler Scroller; der Streifen selbst trägt die
   Perforation als repeating-linear-gradient oben und unten. Der
   Scrollbalken ist als Timeline-Scrubber gestaltet (Schnittprogramm). */

.film-rolle {
  position: relative;
  z-index: var(--z-inhalt);
  overflow-x: auto;
  padding-bottom: 14px;
  scroll-snap-type: x proximity;
  scrollbar-color: var(--mint) rgba(233, 244, 243, 0.1); /* Firefox */
}

/* Auto-Lauf (JS setzt .laeuft): kein manuelles Scrollen mehr, zwei Sätze
   laufen als Endlosband durch */
.film-rolle.laeuft {
  overflow: hidden;
  scroll-snap-type: none;
}

.film-rolle.laeuft::-webkit-scrollbar { display: none; }

.film-bahn {
  display: flex;
  width: max-content;
  will-change: transform;
}

.film-rolle.laeuft .filmstreifen { min-width: 0; }

.film-rolle::-webkit-scrollbar { height: 9px; }

.film-rolle::-webkit-scrollbar-track {
  background: rgba(233, 244, 243, 0.08);
  border-radius: 999px;
  margin-inline: clamp(20px, 4vw, 48px);
}

.film-rolle::-webkit-scrollbar-thumb {
  background: linear-gradient(90deg, var(--petrol-hell), var(--mint-hell));
  border-radius: 999px;
}

.filmstreifen {
  display: flex;
  gap: clamp(14px, 1.8vw, 24px);
  width: max-content;
  min-width: 100%;
  padding: 42px clamp(20px, 4vw, 48px);
  /* Filmbasis mit Perforation: zwei Lochreihen (16px Loch, 36px Raster)
     als repeat-x-Bänder 14px vom oberen und unteren Rand */
  background:
    repeating-linear-gradient(90deg, rgba(103, 205, 198, 0.3) 0 16px, transparent 16px 36px) left 10px top 15px / auto 12px repeat-x,
    repeating-linear-gradient(90deg, rgba(103, 205, 198, 0.3) 0 16px, transparent 16px 36px) left 10px bottom 15px / auto 12px repeat-x,
    linear-gradient(180deg, #040c0d, #081a1d 55%, #040c0d);
  border-block: 1px solid rgba(103, 205, 198, 0.16);
}

.film-frame {
  margin: 0;
  position: relative;
  flex: none;
  width: clamp(240px, 27vw, 370px);
  scroll-snap-align: center;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(233, 244, 243, 0.04);
  border: 1px solid rgba(233, 244, 243, 0.12);
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.35s ease;
  will-change: transform;
}

/* Frames heben sich beim Überfahren: leichtes Wachsen + Mint-Glow.
   Bleibt innerhalb der Perforations-Bänder (max ~5px pro Seite). */
.film-frame:hover {
  transform: scale(1.035);
  border-color: rgba(103, 205, 198, 0.55);
  box-shadow:
    0 18px 44px rgba(0, 0, 0, 0.5),
    0 0 34px rgba(103, 205, 198, 0.22);
  z-index: 2;
}

.frame-bild { display: block; }

.film-frame img {
  width: 100%;
  height: auto; /* height-Attribut neutralisieren, sonst gewinnt es gegen aspect-ratio */
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

/* Frame-Leiste: Mono-Ziffern (Frame-Nummer + Timecode aus der Copy) */
.frame-leiste {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 9px 13px 11px;
  font-size: 0.79rem;
  font-variant-numeric: tabular-nums;
  border-top: 1px solid rgba(233, 244, 243, 0.1);
  background: rgba(4, 12, 13, 0.6);
}

.frame-nr {
  color: var(--mint-hell);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.frame-tc {
  color: var(--dunkel-ink);
  font-weight: 600;
  white-space: nowrap;
}

/* ---------- Drehtag-Schritte: weiße Bühne, Countdown-Leader ---------- */

.drehtag-schritte {
  background: var(--bg);
  padding-block: clamp(56px, 8vh, 96px);
}

@media (min-width: 1025px) {
  .drehtag-schritte .schritte { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Nummern als Film-Vorlauf-Zähler: Kreis mit Fadenkreuz hinter der Ziffer
   (der Hover aus main.css flutet den Kreis dann in Petrol) */
.drehtag-schritte .schritt-nr {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  font-variant-numeric: tabular-nums;
  background:
    linear-gradient(var(--linie), var(--linie)) center / 100% 1px no-repeat,
    linear-gradient(var(--linie), var(--linie)) center / 1px 100% no-repeat,
    #ffffff;
  box-shadow:
    0 0 0 5px rgba(14, 94, 99, 0.06),
    0 10px 26px rgba(14, 94, 99, 0.16);
}

/* Verbindungslinie aus main.css auf die größeren Kreise zentrieren */
.drehtag-schritte .schritte::before { top: 31px; }

/* ---------- Warum ein Baustein: getönte Bühne, editorialer Split ---------- */

.warum-baustein {
  background:
    radial-gradient(820px 420px at 88% -8%, rgba(103, 205, 198, 0.14), transparent 62%),
    var(--bg-tint);
  padding-block: clamp(60px, 8.5vh, 104px);
}

.warum-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(28px, 4vw, 72px);
  align-items: start;
}

.warum-grid h2 {
  font-size: var(--fs-h2);
  max-width: 18ch;
}

.warum-grid p {
  color: var(--ink-soft);
  max-width: 58ch;
  font-size: clamp(1.02rem, 1.3vw, 1.14rem);
  line-height: 1.7;
  border-top: 1px solid var(--linie);
  padding-top: clamp(18px, 2.5vh, 28px);
}

/* ---------- Brücke zu den Motoren: schlichte getönte Zeile ---------- */

.bruecke {
  background: var(--bg-tint);
  padding-block: clamp(40px, 6vh, 72px);
}

.bruecke-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 40px;
}

.bruecke-zeile {
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--ink);
  max-width: 30ch;
}

.bruecke-links {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 3vw, 44px);
}

.bruecke-links .motor-link { margin-top: 0; }

/* ---------- Responsive ---------- */

@media (max-width: 1024px) {
  .warum-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .film-frame { width: min(78vw, 300px); }

  .filmstreifen { padding-block: 36px; }

  .sucher-tc { top: 16px; right: 16px; }

  .sucher-marken { inset: 10px; }

  .bruecke-inner { flex-direction: column; align-items: flex-start; }
}

/* ---------- Platzhalter-Frames im Filmstreifen (Welle 12) ---------- */

.frame-platz {
  aspect-ratio: 16 / 9;
  display: grid;
  place-items: center;
  position: relative;
  color: var(--mint-hell);
  background:
    linear-gradient(155deg, rgba(103, 205, 198, 0.14), rgba(6, 23, 25, 0.5));
  border: 1px dashed rgba(103, 205, 198, 0.35);
  border-radius: 8px;
}

.frame-platz-tag {
  position: absolute;
  bottom: 10px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--mint-hell);
  opacity: 0.8;
}
