/* Ankunft auf den Stationsseiten (06.10.2026, raum3), Gegenstück zu start-v2/uebergang.css.
   Wirkt nur, wenn ankunft.js einen Übergang von der Startseite erkannt hat (Klasse .ankunft am html).
   Helle Zielseiten (Digitale Präsenz, Bausteine) bekommen .ankunft--hell: Grund und Brücke in warmem Weiß
   statt Nachtblau, damit nichts von dunkel auf hell springt. */
html.ankunft { background: #070e16; }
html.ankunft.ankunft--hell { background: #f8f3ea; }
/* der eigene Hero-Auftakt (b-ankommen, hero-auf) entfällt, die Kamerafahrt und das Aufblenden übernimmt ankunft.js */
html.ankunft .b-hero__bild, html.ankunft .b-hero h1, html.ankunft .b-hero__satz, html.ankunft .b-hero__knoepfe,
html.ankunft .b-hero .eyebrow { animation: none; }
/* Startzustand = Endbild des Ausgangs auf der Startseite */
html.ankunft-start .b-hero__bild, html.ankunft-start .b-hero__film {
  transform-origin: var(--ank-ox, 50%) var(--ank-oy, 50%); transform: scale(var(--ank-z, 1)); filter: var(--ank-f, none); }
html.ankunft-start .kopf, html.ankunft-start .b-hero__inhalt, html.ankunft-start .chat-knopf { opacity: 0; }

/* Ruhe-Modus: nur ein Schleier in der Grundfarbe der Seite, der kurz aufblendet */
.ank-schleier { position: fixed; inset: 0; z-index: 400; background: #070e16; pointer-events: none; }
html.ankunft--hell .ank-schleier { background: #f8f3ea; }

/* Brücke: Poster im Startzustand samt Hero-Verlauf der Seite, bis der Hero geparst und dekodiert ist.
   Liegt als Kind von <html> (nicht von body) – Seitenregeln wie ".seite-hell .ank-bruecke" greifen deshalb nicht;
   alles Nötige steht hier zentral. object-position und Bildhöhe setzt ankunft.js je Seite. */
.ank-bruecke { position: fixed; inset: 0; z-index: 45; overflow: hidden; background: #070e16; pointer-events: none; }
.ank-bruecke--hell { background: #f8f3ea; }
.ank-bruecke__bild { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: hidden; }
.ank-bruecke__bild img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ank-bruecke__bild::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(7, 14, 22, .92) 0%, rgba(7, 14, 22, .55) 38%, rgba(7, 14, 22, 0) 70%),
              linear-gradient(0deg, #070e16 0%, rgba(7, 14, 22, 0) 45%); }
/* Hero-Verläufe der Zielseiten (Werte aus bereiche/<slug>/seite.css .b-hero::after; dort geändert -> hier nachziehen) */
.ank-bruecke--web .ank-bruecke__bild::after { background:
  linear-gradient(90deg, rgba(248, 243, 235, .9) 0%, rgba(248, 243, 235, .72) 26%, rgba(248, 243, 235, .18) 48%, rgba(248, 243, 235, 0) 60%),
  linear-gradient(180deg, rgba(248, 243, 235, .55) 0%, rgba(248, 243, 235, 0) 16%),
  linear-gradient(0deg, #f8f3eb 0%, rgba(248, 243, 235, 0) 22%); }
.ank-bruecke--bausteine .ank-bruecke__bild::after { background:
  linear-gradient(90deg, rgba(248, 243, 234, .9) 0%, rgba(248, 243, 234, .62) 30%, rgba(248, 243, 234, 0) 58%),
  linear-gradient(0deg, #f8f3ea 0%, rgba(248, 243, 234, 0) 30%),
  linear-gradient(180deg, rgba(248, 243, 234, .55) 0%, rgba(248, 243, 234, 0) 16%); }
.ank-bruecke--assistenten .ank-bruecke__bild::after { background:
  linear-gradient(90deg, rgba(7, 14, 22, .9) 0%, rgba(7, 14, 22, .62) 30%, rgba(7, 14, 22, 0) 50%),
  linear-gradient(180deg, rgba(7, 14, 22, .45) 0%, rgba(7, 14, 22, 0) 22%),
  linear-gradient(0deg, #070e16 0%, rgba(7, 14, 22, 0) 24%); }
@media (max-width: 600px) {
  .ank-bruecke__bild::after { background: linear-gradient(0deg, #070e16 0%, rgba(7, 14, 22, .7) 50%, rgba(7, 14, 22, .25) 100%); }
  .ank-bruecke--web .ank-bruecke__bild::after { background: linear-gradient(180deg, rgba(248, 243, 235, .84) 0%, rgba(248, 243, 235, .72) 42%, rgba(248, 243, 235, .1) 64%, rgba(248, 243, 235, 0) 82%, #f8f3eb 100%); }
  .ank-bruecke--bausteine .ank-bruecke__bild::after { background: linear-gradient(0deg, #f8f3ea 0%, rgba(248, 243, 234, .55) 45%, rgba(248, 243, 234, .82) 100%); }
  .ank-bruecke--assistenten .ank-bruecke__bild::after { background: linear-gradient(180deg, rgba(7, 14, 22, .65) 0%, rgba(7, 14, 22, 0) 24%), linear-gradient(0deg, #070e16 0%, rgba(7, 14, 22, 0) 34%); }
}

/* Lichtfigur (alte Assistenten-Ankunft bis 06.10.): wird von ankunft.js nicht mehr erzeugt, Regel bleibt harmlos */
.ank-figur { display: none; }

/* Nachtlicht-Platzhalter: start-v2/atmosphaere.js (defer) legt .atmo-nachtlicht erst nach dem Parsen an. Ohne Ersatz
   zeigt die Zielseite beim Seitenwechsel ein, zwei Bilder ungefiltert (sichtbarer Hell-Blitz). Gleiche Werte wie
   atmosphaere.css; verschwindet, sobald die echte Schicht da ist. */
html.ankunft::after { content: ""; position: fixed; inset: 0; z-index: 2147483000; pointer-events: none; mix-blend-mode: multiply;
  background: color-mix(in srgb, var(--atmo-nachtlicht-voll, rgb(255, 176, 104)) calc(var(--atmo-nachtlicht-staerke, 1) * 100%), #fff); }
/* helle Seiten haben ein schwächeres Nachtlicht (atmosphaere.css: body.seite-hell 0,4) */
/* 07.10.2026: Brücke und Schleier hängen an <html>, die echte Folie (.atmo-nachtlicht) liegt im isolierten body und
   färbt sie NICHT. Deshalb bleibt der Platzhalter, bis die Brücke weg ist (gemessen: sonst 1–3 Bilder ungefiltert
   = Hell-Blitz beim Seitenwechsel). Der body liegt in der Zeit vollständig unter der deckenden Brücke. */
html.ankunft:has(.atmo-nachtlicht):not(:has(> .ank-bruecke))::after { content: none; }
/* Der Schleier (Ruhe-Modus) blendet halbtransparent aus; er bekommt die Folie selbst, sobald die echte Schicht da ist
   (sonst läge der Platzhalter doppelt über der durchscheinenden Seite). */
html:has(.atmo-nachtlicht) .ank-schleier::after { content: ""; position: absolute; inset: 0; mix-blend-mode: multiply;
  background: color-mix(in srgb, var(--atmo-nachtlicht-voll, rgb(255, 176, 104)) calc(var(--atmo-nachtlicht-staerke, 1) * 100%), #fff); }
@media print { html.ankunft::after { content: none; } }

/* Exakter Verlauf des gemessenen Heros, ausschließlich auf der Übergangsschicht. */
.ank-bruecke__bild[style*="--zoom-verlauf"]::after { background-image: var(--zoom-verlauf); }
