/* ============================================================
   Atelier Obskur, Bausteine der Startseite
   Buehne, Tueren, Manifest, Eindruecke, Ticketleiste, Reihen im
   Menue. Baut auf den Token des Themes auf (ao-tokens.css).
   Alle Klassen beginnen mit aos-, damit nichts mit dem Theme
   kollidiert.
   ============================================================ */

/* Hinweis: Elementor setzt fuer alle Bilder auf seinen Seiten
   ".elementor img { height: auto; max-width: 100% }". Bildregeln hier
   beginnen deshalb mit body.ao, damit sie staerker sind. */

/* ---------- Knopffarben je Reihe ---------------------------------
   Das Theme liefert --ao-akzent und --ao-akzent-hell. Fuer den
   glaenzenden Knopf braucht es dazu einen tiefen Ton, einen Glanz
   und die Schriftfarbe auf dem Knopf. */
:root,
.ao-akzent--gold    { --aos-tief: #6E520F; --aos-glanz: #FFF4DC; --aos-tinte: #1A1206; }
.ao-akzent--bonbon  { --aos-tief: #7A1742; --aos-glanz: #FFF1F8; --aos-tinte: #2A0A18; }
.ao-akzent--pink    { --aos-tief: #7A1742; --aos-glanz: #FFE3F1; --aos-tinte: #2A0A18; }
.ao-akzent--flamme  { --aos-tief: #8A2E0C; --aos-glanz: #FFE9C2; --aos-tinte: #1F0A04; }
.ao-akzent--rubin   { --aos-tief: #4A0814; --aos-glanz: #FFE1E6; --aos-tinte: #1F0408; }
.ao-akzent--eis     { --aos-tief: #1C2A52; --aos-glanz: #F2F7FF; --aos-tinte: #0B1224; }
.ao-akzent--limette { --aos-tief: #3A4A12; --aos-glanz: #F7FFE0; --aos-tinte: #141A04; }

/* Deckhouse ohne Ausgleich zwischen T und Ae. Falls irgendwann die
   Schriftdatei mit eigenem Umlaut-Kerning eingesetzt wird (siehe
   Theme, assets/fonts/LIESMICH.txt), diese Regel entfernen. */
.aov-kern { margin-inline-start: -.14em; }

/* ---------- Gemeinsames ------------------------------------------ */
.aos-marke {
  margin: 0; display: flex; align-items: center; gap: 14px;
  font-family: var(--ao-schrift-daten); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ao-gold);
}
.aos-marke::before { content: ""; flex: 0 0 36px; height: 1px; background: linear-gradient(to right, transparent, var(--ao-gold)); }

body.ao .aos-titel {
  margin: 16px 0 0; font-family: var(--ao-schrift-haus); font-weight: 400;
  font-size: clamp(2.6rem, 5.6vw, 5.6rem); line-height: .95; color: var(--ao-pergament);
}
.aos-titel__zweite { display: block; color: rgba(237, 225, 203, .42); }

.aos-kopf {
  padding: 0 var(--ao-seite); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end;
  gap: 18px 40px; margin-bottom: clamp(30px, 5vh, 54px);
}
.aos-kopf__text {
  margin: 0; max-width: 20rem; font-family: var(--ao-schrift-display); font-style: italic;
  font-size: clamp(1.1rem, 1.4vw, 1.3rem); line-height: 1.35; color: rgba(237, 225, 203, .7);
}

body.ao a.aos-knopf, body.ao .aos-knopf {
  display: inline-flex; align-items: center; gap: 12px; padding: 16px 28px; border: 0; border-radius: 999px;
  font-family: var(--ao-schrift-daten); font-size: 12px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase;
  line-height: 1.2; text-decoration: none; white-space: nowrap;
  color: var(--aos-tinte);
  background: linear-gradient(115deg, var(--aos-tief) 0%, var(--ao-akzent) 35%, var(--aos-glanz) 50%, var(--ao-akzent) 65%, var(--aos-tief) 100%);
  background-size: 220% 100%; animation: aos-glanz 6s ease-in-out infinite;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 0 26px color-mix(in srgb, var(--ao-akzent) 45%, transparent);
}
body.ao a.aos-knopf:hover { color: var(--aos-tinte); }
body.ao .aos-knopf--aus {
  padding: 15px 24px; background: none; animation: none; box-shadow: none;
  border: 1px solid color-mix(in srgb, var(--ao-akzent) 45%, transparent); color: var(--ao-akzent-hell);
}
body.ao a.aos-knopf--klein, body.ao .aos-knopf--klein { padding: 13px 22px; font-size: 11.5px; letter-spacing: .2em; gap: 10px; }
@keyframes aos-glanz { 0%, 100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }

body.ao a.aos-link {
  font-family: var(--ao-schrift-daten); font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ao-pergament); padding-bottom: 4px; border-bottom: 1px solid color-mix(in srgb, var(--ao-akzent) 55%, transparent);
  text-decoration: none; transition: color .2s ease, border-color .2s ease;
}
body.ao a.aos-link:hover { color: var(--ao-akzent-hell); border-bottom-color: var(--ao-akzent-hell); }

/* ---------- Buehne ----------------------------------------------- */
.aos-buehne {
  /* Abstand oben fuer den Header, der ueber der Buehne liegt */
  --aos-kopf: clamp(104px, 15vh, 140px);
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 100vh; min-height: 100svh;
  display: flex; flex-direction: column; background: #000;
}
/* Header steht ueber der Buehne statt auf ihr: oben weniger Luft, die
   Buehne fuellt den Rest des Bildschirms */
.aos-buehne--unter-kopf {
  --aos-kopf: clamp(24px, 4vh, 40px);
  min-height: calc(100vh - var(--aos-kopfhoehe, 150px)); min-height: calc(100svh - var(--aos-kopfhoehe, 150px));
}
@media (max-width: 767px) { .aos-buehne--unter-kopf { --aos-kopfhoehe: 110px; } }
.aos-buehne__bilder { position: absolute; top: -6%; bottom: -6%; left: 0; right: 0; will-change: transform; z-index: -3; }
.aos-buehne__bild { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.3s ease; }
body.ao .aos-buehne__bild img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(1.08); transition: transform 9s linear;
}
.aos-buehne__bild.ist-aktiv { opacity: 1; }
body.ao .aos-buehne__bild.ist-aktiv img { transform: scale(1); }
.aos-buehne__nebel { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: -2; }
.aos-buehne__schleier {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(to top, var(--ao-tinte) 0%, rgba(9, 6, 8, .78) 26%, rgba(9, 6, 8, .06) 62%, rgba(9, 6, 8, .6)),
    linear-gradient(to right, rgba(9, 6, 8, .62), rgba(9, 6, 8, 0) 58%);
}
@media (max-width: 899px) {
  /* Text und Liste stehen untereinander ueber dem Bild, deshalb
     unten kraeftiger abdunkeln */
  .aos-buehne__schleier {
    background: linear-gradient(to top, var(--ao-tinte) 0%, rgba(9, 6, 8, .9) 42%, rgba(9, 6, 8, .4) 72%, rgba(9, 6, 8, .62));
  }
}
.aos-buehne__inhalt {
  position: relative; flex: 1 1 auto; display: flex; flex-direction: column;
  padding: var(--aos-kopf) var(--ao-seite) clamp(28px, 5vh, 52px);
  pointer-events: none;
}
.aos-buehne__kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
body.ao .aos-buehne__h1 {
  margin: 0; font-family: var(--ao-schrift-daten); font-weight: 400; font-size: 11px; letter-spacing: .3em;
  text-transform: uppercase; line-height: 1.6; color: rgba(237, 225, 203, .74);
}
.aos-buehne__zahl { margin: 0; font-family: var(--ao-schrift-daten); font-size: 11px; letter-spacing: .2em; color: rgba(237, 225, 203, .5); white-space: nowrap; }
.aos-buehne__zahl b { font-weight: 400; color: var(--ao-pergament); }
.aos-buehne__unten {
  margin-top: auto; padding-top: 48px; display: flex; flex-wrap: wrap; align-items: flex-end;
  gap: 44px clamp(40px, 6vw, 96px);
}

.aos-folien { flex: 1 1 420px; min-width: 0; display: grid; container-type: inline-size; }
.aos-folie {
  grid-area: 1 / 1; align-self: end; min-width: 0;
  opacity: 0; visibility: hidden; transform: translateY(18px);
  transition: opacity .55s ease, transform .9s cubic-bezier(.2, .7, .2, 1), visibility 0s linear .55s;
}
.aos-folie.ist-aktiv { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.aos-folie__wann {
  margin: 0; display: flex; align-items: center; gap: 12px;
  font-family: var(--ao-schrift-daten); font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--ao-akzent);
}
.aos-folie__wann .ao-zeichen { flex: 0 0 auto; width: 14px; height: 14px; }
body.ao .aos-folie__titel {
  margin: 16px 0 0; font-family: var(--ao-schrift-haus); font-weight: 400;
  font-size: clamp(2.6rem, 14.5cqi, 9.4rem); line-height: .9; letter-spacing: .005em;
  color: var(--ao-pergament); text-shadow: 0 0 50px rgba(9, 6, 8, .85);
}
.aos-wort { display: inline-block; white-space: nowrap; }
.aos-wort [data-sl] { display: inline-block; }
/* Logo an Stelle des Titels */
body.ao .aos-folie__titel--logo { text-shadow: none; margin-top: 22px; }
.aos-logo-rahmen { display: block; }
.aos-logo-rahmen svg {
  display: block; width: min(100%, 760px); height: auto; max-height: clamp(120px, 34cqi, 340px); overflow: visible;
}
.aos-logo [data-sl], .aos-logo [data-aos-flaeche] { transform-box: fill-box; transform-origin: 50% 100%; }
.aos-logo__wischer { transform-box: fill-box; transform-origin: 0 50%; }
.aos-glanzlogo { position: relative; display: inline-block; max-width: 100%; }
body.ao .aos-glanzlogo__bild {
  display: block; width: auto; height: auto; max-width: 100%;
  max-height: clamp(150px, 32cqi, 330px);
}
.aos-glanzlogo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, .95) 50%, transparent 62%) no-repeat;
  background-size: 260% 100%; background-position: 130% 0;
  -webkit-mask: var(--aos-logo) center / contain no-repeat; mask: var(--aos-logo) center / contain no-repeat;
  mix-blend-mode: screen;
}
.aos-glanzlogo.ist-an .aos-glanzlogo__bild { animation: aos-aufleuchten 1.3s steps(7, end) both; }
.aos-glanzlogo.ist-glanz::after { animation: aos-glanz-wisch 1.7s cubic-bezier(.4, 0, .2, 1) .35s both; }
@keyframes aos-aufleuchten {
  0%   { opacity: 0; filter: brightness(2.6) drop-shadow(0 0 30px var(--ao-akzent)); }
  30%  { opacity: 1; }
  45%  { opacity: .25; }
  62%  { opacity: 1; filter: brightness(1.6) drop-shadow(0 0 18px var(--ao-akzent)); }
  78%  { opacity: .6; }
  100% { opacity: 1; filter: brightness(1) drop-shadow(0 0 0 transparent); }
}
@keyframes aos-glanz-wisch {
  0%   { opacity: 1; background-position: 130% 0; }
  85%  { opacity: 1; }
  100% { opacity: 0; background-position: -30% 0; }
}
.aos-folie__zusatz {
  display: block; margin-top: .25em; font-size: clamp(1.8rem, 8cqi, 4.4rem); line-height: 1;
  color: var(--ao-akzent-hell); text-shadow: 0 0 40px rgba(9, 6, 8, .85);
}
@media (prefers-reduced-motion: reduce) {
  .aos-glanzlogo.ist-an .aos-glanzlogo__bild, .aos-glanzlogo.ist-glanz::after { animation: none; }
}
.aos-folie__zeile {
  margin: 18px 0 0; font-family: var(--ao-schrift-display); font-style: italic;
  font-size: clamp(1.3rem, 2.1vw, 1.9rem); line-height: 1.2; color: var(--ao-akzent-hell);
}
.aos-folie__ort { margin: 8px 0 0; font-size: 15.5px; color: rgba(237, 225, 203, .7); }
.aos-folie__knoepfe { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.aos-folie__knoepfe a, .aos-folie__knoepfe span { pointer-events: auto; }

.aos-liste { flex: 0 1 360px; min-width: min(100%, 290px); pointer-events: auto; }
.aos-liste__kopf {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 10px;
  font-family: var(--ao-schrift-daten); font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: rgba(237, 225, 203, .6);
}
body.ao .aos-liste__kopf a { color: var(--ao-gold-hell); text-decoration: none; }
.aos-liste ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(201, 162, 39, .24); }
.aos-liste li { margin: 0; padding: 0; }
.aos-liste li::before { display: none; }
body.ao .aos-liste__eintrag {
  position: relative; width: 100%; display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 0 15px; margin: 0; text-align: left; cursor: pointer;
  background: none; border: 0; border-bottom: 1px solid rgba(201, 162, 39, .24); border-radius: 0; box-shadow: none;
  color: rgba(237, 225, 203, .62); font: inherit; text-transform: none; letter-spacing: 0;
  opacity: .6; transition: opacity .4s ease;
}
body.ao .aos-liste__eintrag:hover, body.ao .aos-liste__eintrag:focus { background: none; color: rgba(237, 225, 203, .62); }
body.ao .aos-liste__eintrag.ist-aktiv, body.ao .aos-liste__eintrag:hover { opacity: 1; }
.aos-liste__datum { flex: 0 0 58px; padding-top: 4px; font-family: var(--ao-schrift-daten); font-size: 12.5px; letter-spacing: .08em; color: var(--ao-akzent); }
.aos-liste__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.aos-liste__name {
  display: flex; align-items: baseline; gap: 9px;
  font-family: var(--ao-schrift-haus); font-size: 1.3rem; line-height: 1.1; color: var(--ao-pergament); transition: color .3s ease;
}
.aos-liste__name .ao-zeichen { flex: 0 0 auto; width: 12px; height: 12px; color: var(--ao-akzent); }
.ist-aktiv > .aos-liste__text .aos-liste__name { color: var(--ao-akzent-hell); }
.aos-liste__ort { padding-left: 21px; font-size: 14px; line-height: 1.4; }
.aos-liste__balken {
  position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--ao-akzent);
  transform-origin: left center; transform: scaleX(0);
}

/* ---------- Intro: das Auge oeffnet sich ------------------------- */
.aos-intro {
  position: fixed; inset: 0; z-index: 100; background: #050304; display: grid; place-items: center;
  overflow: hidden; cursor: pointer; user-select: none;
}
.aos-intro::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(50% 40% at 50% 50%, rgba(201, 162, 39, .08), transparent 70%);
}
.aos-intro__auge { position: relative; width: min(66vw, 700px); transform-origin: 50% 50%; will-change: transform; }
.aos-intro__auge svg { display: block; width: 100%; overflow: visible; }
.aos-intro__zeile {
  position: absolute; left: 0; right: 0; bottom: 12vh; margin: 0; text-align: center;
  font-family: var(--ao-schrift-daten); font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: rgba(237, 225, 203, .5);
}

/* ---------- Tueren ----------------------------------------------- */
.aos-tueren { position: relative; padding: clamp(96px, 15vh, 160px) 0 clamp(70px, 10vh, 110px); }
.aos-tueren__reihe {
  display: flex; gap: 12px; height: clamp(500px, 76vh, 760px);
  padding: 0 var(--ao-seite); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.aos-tueren__reihe::-webkit-scrollbar { display: none; }
body.ao a.aos-tuer {
  position: relative; display: block; flex: 0 0 min(80vw, 360px); min-width: 0; height: 100%;
  scroll-snap-align: center; overflow: hidden; isolation: isolate; text-decoration: none;
  border-radius: 50% 50% 4px 4px / 170px 170px 4px 4px; background: #0b0709; color: var(--ao-pergament);
  transition: flex-grow .85s cubic-bezier(.7, 0, .2, 1), box-shadow .7s ease;
}
body.ao .aos-tuer__bild {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(1.08) brightness(.9); transform: scale(1.02);
  transition: filter .9s ease, transform 1.6s cubic-bezier(.2, .7, .2, 1);
}
.aos-tuer__dunkel { position: absolute; inset: 0; background: linear-gradient(to top, rgba(9, 6, 8, .95) 0%, rgba(9, 6, 8, .5) 36%, rgba(9, 6, 8, .08) 66%, rgba(9, 6, 8, .55)); }
.aos-tuer__schein {
  position: absolute; inset: 0; mix-blend-mode: screen; transition: opacity .8s ease;
  background: radial-gradient(130% 55% at 50% 104%, color-mix(in srgb, var(--ao-akzent) 55%, transparent), transparent 72%);
}
.aos-tuer__rahmen {
  position: absolute; inset: 9px; pointer-events: none; transition: border-color .7s ease;
  border: 1px solid color-mix(in srgb, var(--ao-akzent) 70%, transparent);
  border-radius: 50% 50% 2px 2px / 162px 162px 2px 2px;
}
.aos-tuer__oben {
  position: absolute; left: 0; right: 0; top: clamp(46px, 8vh, 70px);
  display: flex; flex-direction: column; align-items: center; gap: 10px; pointer-events: none;
}
.aos-tuer__zeichen { display: block; filter: drop-shadow(0 0 12px var(--ao-akzent)); transform: scale(1.25); transition: opacity .6s ease, transform .7s cubic-bezier(.2, .9, .2, 1); }
.aos-tuer__zeichen .ao-zeichen { display: block; width: 22px; height: 22px; color: var(--ao-akzent); }
.aos-tuer__nr { font-family: var(--ao-schrift-daten); font-size: 10px; letter-spacing: .3em; color: rgba(237, 225, 203, .55); }
.aos-tuer__zu {
  position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%) rotate(180deg); writing-mode: vertical-rl;
  white-space: nowrap; font-family: var(--ao-schrift-haus); font-size: clamp(1.5rem, 2.1vw, 2.1rem); line-height: 1;
  color: var(--ao-pergament); opacity: 0; transition: opacity .35s ease; pointer-events: none;
}
.aos-tuer__offen {
  position: absolute; left: 0; bottom: 0; width: min(100%, 460px); box-sizing: border-box;
  padding: 0 clamp(22px, 2.4vw, 36px) clamp(26px, 4vh, 40px);
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px; pointer-events: none;
  transition: opacity .5s ease, transform .8s cubic-bezier(.2, .7, .2, 1);
}
.aos-tuer__naechst { font-family: var(--ao-schrift-daten); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--ao-akzent); }
.aos-tuer__name { font-family: var(--ao-schrift-haus); font-size: clamp(2.1rem, 3.3vw, 3.4rem); line-height: .95; color: var(--ao-pergament); text-wrap: balance; }
.aos-tuer__logo { display: block; margin: 4px 0 2px; }
body.ao .aos-tuer__logo img {
  display: block; width: auto; height: auto; max-width: min(100%, 360px);
  max-height: clamp(96px, 17vh, 180px); filter: drop-shadow(0 4px 18px rgba(9, 6, 8, .7));
}
.aos-tuer__kurz { font-family: var(--ao-schrift-display); font-style: italic; font-size: 1.2rem; line-height: 1.3; color: var(--ao-akzent-hell); }
.aos-tuer__los {
  margin-top: 8px; font-family: var(--ao-schrift-daten); font-size: 11px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--ao-pergament); padding-bottom: 4px; border-bottom: 1px solid var(--ao-akzent);
}

/* Breite Bildschirme: Tueren nebeneinander, eine steht offen */
@media (min-width: 900px) {
  .aos-tueren__reihe { overflow: visible; scroll-snap-type: none; }
  body.ao a.aos-tuer { flex: 1 1 0px; }
  body.ao a.aos-tuer.ist-offen { flex-grow: 3.6; box-shadow: 0 0 80px -20px color-mix(in srgb, var(--ao-akzent) 85%, transparent); }
  .aos-tuer:not(.ist-offen) .aos-tuer__bild { filter: grayscale(.85) brightness(.4) contrast(1.05); transform: scale(1.12); }
  .aos-tuer:not(.ist-offen) .aos-tuer__schein { opacity: 0; }
  .aos-tuer:not(.ist-offen) .aos-tuer__rahmen { border-color: rgba(201, 162, 39, .2); }
  .aos-tuer:not(.ist-offen) .aos-tuer__zeichen { opacity: .5; transform: scale(1); }
  .aos-tuer:not(.ist-offen) .aos-tuer__zu { opacity: 1; }
  .aos-tuer:not(.ist-offen) .aos-tuer__offen { opacity: 0; transform: translateY(18px); transition-delay: 0s; }
  .aos-tuer.ist-offen .aos-tuer__offen { transition-delay: .3s; }
}

/* ---------- Manifest --------------------------------------------- */
.aos-manifest { position: relative; overflow: hidden; padding: clamp(100px, 17vh, 190px) var(--ao-seite) clamp(80px, 12vh, 130px); }
.aos-manifest__glut {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle 380px at var(--lx, 30%) var(--ly, 50%), rgba(255, 150, 60, .13), rgba(255, 120, 40, .04) 45%, transparent 72%);
}
.aos-manifest__innen { position: relative; max-width: 1240px; margin: 0 auto; }
.aos-manifest__satz { position: relative; margin-top: 30px; }
.aos-manifest__dunkel, .aos-manifest__licht {
  margin: 0; font-family: var(--ao-schrift-haus); font-weight: 400; font-size: clamp(2.3rem, 5.8vw, 6rem);
  line-height: 1.02; text-wrap: balance;
}
.aos-manifest__dunkel { color: rgba(237, 225, 203, .14); }
.aos-manifest__licht {
  /* Rand rundherum, damit der Schein nicht an der Kante der Maske
     abgeschnitten wird */
  position: absolute; inset: -80px; padding: 80px; pointer-events: none;
  color: #FFF1D6; text-shadow: 0 0 34px rgba(255, 160, 70, .6);
  -webkit-mask-image: radial-gradient(circle var(--lr, 260px) at var(--lx, 30%) var(--ly, 50%), #000 0%, rgba(0, 0, 0, .62) 42%, transparent 100%);
          mask-image: radial-gradient(circle var(--lr, 260px) at var(--lx, 30%) var(--ly, 50%), #000 0%, rgba(0, 0, 0, .62) 42%, transparent 100%);
}
.aos-manifest__fuss {
  margin-top: clamp(44px, 7vh, 76px); padding-top: 22px; border-top: 1px solid rgba(201, 162, 39, .22);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 40px;
}
.aos-manifest__punkte {
  list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 34px;
  font-family: var(--ao-schrift-daten); font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: rgba(237, 225, 203, .74);
}
.aos-manifest__punkte li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; }
.aos-manifest__punkte li::before { display: none; }
.aos-manifest__punkte .ao-zeichen { width: 13px; height: 13px; color: var(--ao-akzent); }
.aos-manifest__links { display: flex; flex-wrap: wrap; gap: 12px 28px; }

/* Ruhige Bildschirme: der Satz steht hell, ohne Laterne */
@media (prefers-reduced-motion: reduce) {
  .aos-manifest__dunkel { color: var(--ao-pergament); }
  .aos-manifest__licht { display: none; }
}

/* ---------- Eindruecke ------------------------------------------- */
.aos-eindruecke { position: relative; overflow: hidden; padding: clamp(20px, 4vh, 40px) 0 clamp(100px, 15vh, 160px); }
.aos-eindruecke .aos-kopf { margin-bottom: clamp(36px, 6vh, 60px); }
.aos-rollen { display: flex; flex-direction: column; gap: 12px; transform: rotate(-2.4deg) scale(1.06); transform-origin: 50% 50%; }
.aos-rolle { display: flex; gap: 12px; width: max-content; animation: aos-rolle 80s linear infinite; }
.aos-rolle--zurueck { animation-name: aos-rolle-zurueck; animation-duration: 95s; }
.aos-rolle:hover { animation-play-state: paused; }
body.ao .aos-rolle__bild {
  flex: 0 0 auto; height: clamp(200px, 31vh, 330px); width: auto; max-width: none; display: block;
  filter: saturate(.55) brightness(.6) sepia(.18); transition: filter .5s ease;
}
body.ao .aos-rolle--zurueck .aos-rolle__bild { height: clamp(170px, 25vh, 270px); }
body.ao .aos-rolle__bild:hover { filter: saturate(1.1) brightness(1) sepia(0); }
@keyframes aos-rolle { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes aos-rolle-zurueck { from { transform: translateX(-50%); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .aos-rolle { animation: none; } }

/* ---------- Ticketleiste ----------------------------------------- */
.aos-leiste {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--ao-z-leiste, 60);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px var(--ao-seite) calc(12px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(to top, rgba(9, 6, 8, .98), rgba(9, 6, 8, .86));
  border-top: 1px solid color-mix(in srgb, var(--ao-akzent) 28%, transparent);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transform: translateY(120%); transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}
body.ao a.aos-leiste__info { display: flex; align-items: center; gap: 14px; min-width: 0; color: inherit; text-decoration: none; }
.aos-leiste__info .ao-zeichen { flex: 0 0 auto; width: 16px; height: 16px; color: var(--ao-akzent); }
.aos-leiste__text { min-width: 0; line-height: 1.3; }
.aos-leiste__text b { display: block; font-family: var(--ao-schrift-haus); font-weight: 400; font-size: 1.25rem; color: var(--ao-pergament); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aos-leiste__text > span { display: block; font-family: var(--ao-schrift-daten); font-size: 11px; letter-spacing: .12em; color: rgba(237, 225, 203, .62); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aos-leiste .aos-knopf { flex: 0 0 auto; }
/* Platz am Seitenende, damit die Leiste nichts verdeckt */
.aos-leiste-platz { height: 84px; }
@media (max-width: 40rem) {
  .aos-leiste { gap: 12px; }
  .aos-leiste__vor { display: none; }
  .aos-leiste__text b { font-size: 1.05rem; }
  body.ao a.aos-knopf--klein { padding: 12px 16px; letter-spacing: .14em; }
}

/* ---------- Reihen im Menue und im Footer ------------------------ */
.ao-menue-reihe > a { display: flex !important; align-items: center; gap: 14px; }
.ao-menue-reihe .ao-zeichen { flex: 0 0 auto; width: 15px; height: 15px; color: var(--ao-akzent); }
.ao-menue__name { flex: 1 1 auto; }
.ao-menue__datum { margin-left: auto; padding-left: 12px; font-family: var(--ao-schrift-daten); font-size: 10px; letter-spacing: .12em; color: rgba(237, 225, 203, .5); }
ul.ao-reihenliste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
ul.ao-reihenliste li { margin: 0; padding: 0; }
ul.ao-reihenliste li::before { display: none; }
body.ao ul.ao-reihenliste a { display: flex; align-items: center; gap: 10px; color: var(--ao-pergament); text-decoration: none; }
body.ao ul.ao-reihenliste a:hover { color: var(--ao-gold-hell); }
ul.ao-reihenliste .ao-zeichen { flex: 0 0 auto; width: 12px; height: 12px; color: var(--ao-akzent); }

/* ---------- Eventseite: Logo der Reihe als H1 -------------------- */
.ao-titel--logo { text-shadow: none; }
body.ao .ao-titel__logo {
  display: block; width: auto; height: auto; margin-top: .4rem;
  max-height: clamp(110px, 18vw, 260px); max-width: min(100%, 640px);
  filter: drop-shadow(0 6px 30px rgba(9, 6, 8, .8));
}
.ao-titel--logo .ao-titel__zusatz {
  display: block; margin-top: .3em; font-size: clamp(1.8rem, 1rem + 3.4vw, 4rem); line-height: 1;
  color: var(--ao-akzent-hell); text-shadow: 0 0 40px rgba(9, 6, 8, .9);
}

/* ---------- Schmale Bildschirme ---------------------------------- */
@media (max-width: 40rem) {
  body.ao .aos-buehne__h1 { font-size: 10px; letter-spacing: .14em; }
  .aos-buehne__zahl { display: none; }
  .aos-folie__wann { font-size: 11px; letter-spacing: .16em; }
  body.ao .aos-folie__knoepfe a.aos-knopf { padding: 14px 22px; }
}
