/* ============================================================
   OMNITHEISMUS · Gemeinsames Stylesheet
   Helles, buchhaftes Design nach Vorbild der PDF-Fassung.
   Farbwelt: Elfenbein-Papier, dunkle Tinte, Gold-Akzente.
   Animationen: bewusst zurückhaltend — Atem, Linien und
   Hintergrund-Zeichnungen, die sich beim Lesen aufbauen.
   ============================================================ */

/* Cormorant Garamond, selbst gehostet (Light bis SemiBold) */
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300;font-display:swap;src:url("assets/fonts/cormorant-garamond-300-italic.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url("assets/fonts/cormorant-garamond-400-italic.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;src:url("assets/fonts/cormorant-garamond-300.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/cormorant-garamond-400.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/cormorant-garamond-500.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/cormorant-garamond-600.woff2") format("woff2")}

:root{
  --paper:#fdfcf8;
  --paper-warm:#f8f4ea;
  --ink:#2b2620;
  --ink-soft:#57503f;
  --ink-faint:#9a8f7c;
  --gold:#b08d3f;
  --gold-deep:#8a6b2a;
  --gold-bright:#d4af37;
  --hairline:rgba(138,107,42,.28);
  --hairline-soft:rgba(138,107,42,.16);
  --serif:"Cormorant Garamond","Hoefler Text",Baskerville,"Baskerville Old Face",Garamond,"Times New Roman",Georgia,serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-weight:400;
  font-size:20px;
  line-height:1.8;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
}
::selection{background:rgba(212,175,55,.25)}

/* ---------- Fortschritt & Navigation ---------- */
#progress{
  position:fixed;top:0;left:0;height:2px;width:0;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright));
  z-index:100;
}
nav{
  position:fixed;top:0;left:0;right:0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 2rem;
  background:rgba(253,252,248,.9);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transform:translateY(-110%);
  transition:transform .45s ease,border-color .45s ease;
}
nav.visible{transform:translateY(0);border-bottom-color:var(--hairline-soft)}
nav .brand{
  display:flex;align-items:center;gap:.6rem;
  font-size:.78rem;letter-spacing:.4em;
  text-transform:uppercase;color:var(--ink-soft);text-decoration:none;
  white-space:nowrap;
}
nav .brand img{height:22px;width:auto;display:block}
nav ul{display:flex;gap:.2rem;list-style:none;flex-wrap:wrap;justify-content:flex-end}
nav a.chap{
  display:block;padding:.22rem .55rem;
  font-size:.78rem;letter-spacing:.14em;
  color:var(--ink-faint);text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .25s,border-color .25s;
}
nav a.chap:hover{color:var(--ink)}
nav a.chap.active{color:var(--gold-deep);border-bottom-color:var(--gold)}
/* Der goldene Weiser: Kapitel-Menue fuer schmale Bildschirme */
.menue{display:none}
@media(max-width:900px){
  nav{padding:.6rem 1rem}
  nav ul{display:none}
  .menue{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:42px;height:36px;padding:0 9px;flex-shrink:0;
    background:none;border:1px solid var(--hairline);border-radius:2px;cursor:pointer;
  }
  .menue span{
    display:block;height:1.5px;width:100%;
    background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright));
    transition:transform .35s ease,opacity .25s ease;
  }
  nav.offen .menue span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  nav.offen .menue span:nth-child(2){opacity:0}
  nav.offen .menue span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  nav.offen ul{
    display:flex;flex-direction:column;align-items:center;gap:.15rem;
    position:absolute;top:100%;left:0;right:0;
    padding:1rem 1.5rem 1.6rem;
    background:rgba(253,252,248,.97);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--hairline-soft);
  }
  nav.offen ul a.chap{font-size:.95rem;padding:.4rem 1.2rem}
}

/* ---------- Hintergrund-Zeichnungen ----------
   Feine Liniengrafiken hinter den Kapiteln. Sie zeichnen sich
   langsam selbst, sobald das Kapitel ins Bild kommt, und bleiben
   so hell, dass der Text ungestört lesbar ist. */
header.titelblatt,section.book{position:relative;isolation:isolate}
.zeichnung{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:min(820px,96vw);height:auto;
  z-index:-1;pointer-events:none;
  opacity:0;transition:opacity 2.5s ease;
}
.zeichnung.in{opacity:1}
.titelblatt .zeichnung{top:46%;width:min(660px,88vw)}
.zeichnung path,.zeichnung circle,.zeichnung line,.zeichnung rect{
  stroke-dasharray:1;stroke-dashoffset:1;
  transition:stroke-dashoffset 5s ease .4s;
}
.zeichnung.in path,.zeichnung.in circle,.zeichnung.in line,.zeichnung.in rect{
  stroke-dashoffset:0;
}

/* ---------- Hero / Titelblatt ---------- */
header.titelblatt{
  min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:5rem 1.5rem 4rem;
  background:
    radial-gradient(ellipse 55% 40% at 50% 34%,rgba(212,175,55,.10),transparent 70%),
    var(--paper);
}
.logo-haupt{
  width:clamp(130px,20vw,190px);height:auto;
  margin-bottom:2.6rem;
  filter:drop-shadow(0 6px 22px rgba(138,107,42,.25));
  animation:atmen 9s ease-in-out infinite;
}
@keyframes atmen{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.025)}
}
.hero-kicker{
  font-size:.8rem;letter-spacing:.55em;
  text-transform:uppercase;color:var(--gold-deep);
  margin-bottom:1.8rem;
}
h1.hero-title{
  font-weight:300;
  font-size:clamp(2.6rem,8vw,5.6rem);
  letter-spacing:.16em;
  line-height:1.08;
  text-transform:uppercase;
  /* Bewusst schlicht, wie die übrigen Überschriften:
     das Gold gehört dem Zeichen, nicht dem Wort. */
  color:var(--ink);
}
.titel-linien{
  display:flex;align-items:center;gap:1.2rem;
  width:min(34rem,80vw);margin:1.8rem auto;
}
.titel-linien::before,.titel-linien::after{
  content:"";flex:1;height:1px;background:var(--hairline);
  transform:scaleX(0);
  transition:transform 1.4s ease .35s;
}
.titel-linien::before{transform-origin:100% 50%}
.titel-linien::after{transform-origin:0% 50%}
.titel-linien.in::before,.titel-linien.in::after{transform:scaleX(1)}
.titel-linien span{color:var(--gold);font-size:1rem;letter-spacing:.3em}
.hero-sub{
  font-size:clamp(1.05rem,2.2vw,1.4rem);
  font-style:italic;color:var(--ink-soft);
}
.hero-quote{
  margin:2.8rem auto 0;max-width:32rem;
  font-size:clamp(1rem,2vw,1.2rem);
  font-style:italic;line-height:2;color:var(--ink);
}
.hero-quote .om{color:var(--gold-deep);font-style:normal;letter-spacing:.05em;font-weight:400}
.hero-attrib{
  margin-top:2.4rem;
  font-size:.7rem;letter-spacing:.42em;
  text-transform:uppercase;color:var(--ink-faint);
}

/* ---------- Kapitel ---------- */
main{position:relative}
section.book{
  max-width:44rem;margin:0 auto;
  padding:6.5rem 1.5rem 3rem;
  scroll-margin-top:3.2rem;
}
.book-kopf{text-align:center;margin-bottom:2.8rem}
/* Kurze Linie unter dem Untertitel: verankert ihn am Titel,
   statt ihn zwischen Kopf und Text schweben zu lassen */
.book-kopf::after{
  content:"";display:block;width:54px;height:1px;
  background:var(--hairline);
  margin:1.5rem auto 0;
}
.book-label{
  font-size:clamp(1.1rem,2.6vw,1.5rem);letter-spacing:.34em;
  text-transform:uppercase;color:var(--gold-deep);
  margin-bottom:1.2rem;
}
h2.book-title{
  font-weight:300;font-size:clamp(2rem,5vw,3rem);
  letter-spacing:.03em;line-height:1.15;color:var(--ink);
  margin-bottom:.4rem;
}
.book-kopf .book-subtitle{
  text-align:center;
  font-style:italic;color:var(--ink-soft);
  font-size:clamp(1.35rem,2.8vw,1.55rem);
  line-height:1.5;
}
/* Kopfzeilen treten sanft nacheinander ein */
.book-kopf .book-title.reveal.in{transition-delay:.12s}
.book-kopf .book-subtitle.reveal.in{transition-delay:.24s}
.book p{
  margin-bottom:1.35rem;color:var(--ink);
  text-align:justify;hyphens:auto;-webkit-hyphens:auto;
}
.book h3{
  font-weight:500;font-size:.8rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-deep);margin:2.8rem 0 1.2rem;
  display:flex;align-items:center;gap:1rem;
}
.book h3::after{
  content:"";flex:1;height:1px;background:var(--hairline-soft);
  transform:scaleX(0);transform-origin:0% 50%;
  transition:transform 1.2s ease .3s;
}
.book h3.reveal.in::after{transform:scaleX(1)}
.book .lead::first-letter{
  initial-letter:3;-webkit-initial-letter:3;
  color:var(--gold-deep);font-weight:500;margin-right:.14em;
}

blockquote{
  margin:2.8rem auto;padding:1.8rem 0;max-width:36rem;
  position:relative;
  font-style:italic;font-size:1.12em;line-height:2;
  color:var(--ink-soft);text-align:center;
}
/* Die Hairlines wachsen aus der Mitte, wenn das Zitat erscheint */
blockquote::before,blockquote::after{
  content:"";position:absolute;left:12%;right:12%;height:1px;
  background:var(--hairline);
  transform:scaleX(.2);opacity:0;
  transition:transform 1.4s ease .25s,opacity 1s ease .25s;
}
blockquote::before{top:0}
blockquote::after{bottom:0}
blockquote.reveal.in::before,blockquote.reveal.in::after{
  transform:scaleX(1);opacity:1;
}
blockquote .q-attrib{
  display:block;margin-top:1rem;font-style:normal;
  font-size:.66rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--gold-deep);
}
.verse{
  margin:2.4rem auto;text-align:center;font-style:italic;
  line-height:2.15;color:var(--ink-soft);font-size:1.06em;
}

/* ---------- Ornament-Trenner ---------- */
.ornament{
  display:flex;align-items:center;gap:1.4rem;justify-content:center;
  max-width:30rem;margin:2.5rem auto 0;padding:0 1.5rem;
}
.ornament::before,.ornament::after{
  content:"";flex:1;height:1px;
  transform:scaleX(0);
  transition:transform 1.3s ease .15s;
}
.ornament::before{
  background:linear-gradient(90deg,transparent,var(--hairline));
  transform-origin:100% 50%;
}
.ornament::after{
  background:linear-gradient(90deg,var(--hairline),transparent);
  transform-origin:0% 50%;
}
.ornament.in::before,.ornament.in::after{transform:scaleX(1)}
.ornament svg{
  display:block;width:54px;height:18px;flex:none;
  opacity:0;transition:opacity 1s ease .7s;
}
.ornament.in svg{opacity:1}

/* ---------- Bindeglieder ----------
   Symbolische Zeichnungen zwischen den Büchern. Jede kündigt
   das kommende Kapitel an und zeichnet sich Strich für Strich,
   sobald sie ins Bild kommt. */
.bindeglied{
  display:flex;align-items:center;gap:1.8rem;justify-content:center;
  max-width:38rem;margin:4.5rem auto 0;padding:0 1.5rem;
}
.bindeglied::before,.bindeglied::after{
  content:"";flex:1;height:1px;
  transform:scaleX(0);
  transition:transform 1.4s ease .2s;
}
.bindeglied::before{
  background:linear-gradient(90deg,transparent,var(--hairline));
  transform-origin:100% 50%;
}
.bindeglied::after{
  background:linear-gradient(90deg,var(--hairline),transparent);
  transform-origin:0% 50%;
}
.bindeglied.in::before,.bindeglied.in::after{transform:scaleX(1)}
.bindeglied svg{
  flex:none;width:clamp(150px,26vw,230px);height:auto;display:block;
}
.bindeglied path,.bindeglied circle,.bindeglied line{
  stroke:#a8843b;stroke-opacity:.75;stroke-width:1.7;
  stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;
  transition:stroke-dashoffset 2.6s ease .35s;
}
.bindeglied.in path,.bindeglied.in circle,.bindeglied.in line{
  stroke-dashoffset:0;
}
.bindeglied .punkt{opacity:0;transition:opacity 1.2s ease 2.2s}
.bindeglied.in .punkt{opacity:1}
/* Breite Zwei-Kreis-Symbole hinter der Schwelle: gleiche Render-Groesse
   wie die Stadt-Symbole (r70 im 200er-Raster mal Faktor 380/200). */
.bindeglied.breit svg{width:clamp(285px,49.4vw,437px)}
/* Buch X: die zwei Kreise der Symmetrie naehern sich und beruehren sich:
   die liegende Acht. Der Beruehrungspunkt liegt exakt in der Mitte. */
.bindeglied.acht circle{stroke-dasharray:none;stroke-dashoffset:0;opacity:0;transition:opacity .9s ease}
.bindeglied.acht.in circle{opacity:1}
.bindeglied.acht .kreis-l{transform:translateX(-16px);transition:opacity .9s ease,transform 2.4s cubic-bezier(.55,0,.3,1) .7s}
.bindeglied.acht .kreis-r{transform:translateX(16px);transition:opacity .9s ease,transform 2.4s cubic-bezier(.55,0,.3,1) .7s}
.bindeglied.acht.in .kreis-l,.bindeglied.acht.in .kreis-r{transform:translateX(0)}
@media (prefers-reduced-motion: reduce){
  .bindeglied.acht .kreis-l,.bindeglied.acht .kreis-r{transition:opacity .4s ease;transform:translateX(0)}
}


/* ---------- Grafik-Rahmen (Platzhalter für finale Bilder) ---------- */
figure.tafel{
  margin:3.2rem auto;text-align:center;
  padding:2.2rem 1.6rem 1.8rem;
  border:1px solid var(--hairline);
  outline:1px solid var(--hairline-soft);
  outline-offset:5px;
  background:var(--paper-warm);
  transition:box-shadow .5s ease;
}
figure.tafel:hover{box-shadow:0 14px 40px rgba(138,107,42,.10)}
figure.tafel svg,figure.tafel img{max-width:100%;height:auto;display:block;margin:0 auto}
figure.tafel figcaption{
  margin-top:1.6rem;font-size:.85rem;line-height:1.7;
  color:var(--ink-faint);font-style:italic;
  max-width:30rem;margin-left:auto;margin-right:auto;
  text-align:center;
}
figure.tafel .vorlaeufig{
  display:block;margin-top:.5rem;
  font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;
  font-style:normal;color:var(--gold);
}

/* ---------- Die Acht Säulen ---------- */
.saeulen{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;
  margin:3rem auto 1rem;
}
@media(max-width:760px){.saeulen{grid-template-columns:repeat(2,1fr)}}
@media(max-width:430px){.saeulen{grid-template-columns:1fr}}

/* Die Säulen: schmale, hohe Elemente mit Kapitell (oben) und Basis
   (unten), die an eine Säule erinnern. Text zentriert im Schaft. */
.saeule{
  position:relative;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
  min-height:15rem;
  padding:1.4rem 1rem 1.3rem;
  background:var(--paper-warm);
  border:1px solid var(--hairline-soft);
  border-top:2px solid var(--gold);      /* Kapitell */
  border-bottom:2px solid var(--gold);   /* Basis */
  transition:box-shadow .35s,transform .35s,background .35s,opacity .9s ease;
}
/* Verlinkung des Säulen-Elements: niemals unterstrichen, niemals blau */
a.saeule,a.saeule:link,a.saeule:visited,a.saeule:hover,a.saeule:active{
  color:inherit;text-decoration:none;cursor:pointer;
}
a.saeule h4,a.saeule p,a.saeule .num{text-decoration:none}
a.saeule:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(138,107,42,.12);
  background:#faf6ec;
}
a.saeule:hover h4{color:var(--gold-deep)}
.saeule .num{
  font-size:.72rem;letter-spacing:.32em;
  color:var(--gold-deep);margin-bottom:.7rem;
}
.saeule h4{
  font-weight:500;font-size:1rem;letter-spacing:.02em;line-height:1.35;
  color:var(--ink);margin-bottom:.65rem;
}
.saeule p{font-size:.8rem;line-height:1.65;color:var(--ink-soft);margin:0;text-align:center;hyphens:auto}

/* ---------- Einblendung ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- Apokryphon-Pforte ---------- */
.pforte{
  max-width:40rem;margin:6rem auto;
  padding:3.5rem 2.5rem;text-align:center;
  border:1px solid var(--hairline);
  outline:1px solid var(--hairline-soft);
  outline-offset:6px;
  background:var(--paper-warm);
  position:relative;overflow:hidden;
}
.pforte::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(212,175,55,.14),transparent 70%);
  animation:glut 8s ease-in-out infinite alternate;
}
@keyframes glut{
  0%{opacity:.35}
  100%{opacity:.85}
}
.pforte>*{position:relative}
.pforte img{width:74px;height:auto;margin-bottom:1.6rem;opacity:.9}
.pforte .p-kicker{
  font-size:.7rem;letter-spacing:.5em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:1.2rem;
}
.pforte h2{
  font-weight:300;font-size:clamp(1.6rem,4vw,2.2rem);
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
  margin-bottom:1.2rem;
}
.pforte p{font-style:italic;color:var(--ink-soft);line-height:2}
.pforte a.eintritt{
  display:inline-block;margin-top:2rem;
  padding:.6rem 2rem;
  border:1px solid var(--gold);
  color:var(--gold-deep);text-decoration:none;
  font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;
  transition:background .3s,color .3s;
}
.pforte a.eintritt:hover{background:var(--gold);color:var(--paper)}
@media(max-width:640px){.pforte{margin:4rem 1rem;padding:2.5rem 1.4rem}}

/* ---------- Formel 0/1/10 ---------- */
.formel{display:flex;flex-direction:column;gap:.9rem;margin:2.8rem 0}
.formel .row{
  display:grid;grid-template-columns:4.5rem 1fr;gap:1.4rem;align-items:baseline;
  border-bottom:1px solid var(--hairline-soft);padding-bottom:.9rem;
}
.formel .z{font-size:2.3rem;font-weight:500;color:var(--gold-deep);text-align:right;line-height:1}
.formel .d{font-size:.95em;color:var(--ink-soft);text-align:left}
.formel .d b{color:var(--ink);font-weight:600}

/* ---------- Große Worte (Ich bin / Finale) ---------- */
.grosse-worte{
  min-height:76svh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:6rem 1.5rem;
  background:radial-gradient(ellipse 55% 45% at 50% 52%,rgba(212,175,55,.12),transparent 65%);
}
.grosse-worte .pre{
  font-style:italic;color:var(--ink-soft);max-width:30rem;
  margin-bottom:3rem;line-height:2;
}
.grosse-worte .worte{
  font-size:clamp(3rem,11vw,7rem);
  font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  line-height:1.15;
  color:var(--gold-deep);
}
.grosse-worte .zeilen{
  font-size:clamp(1.5rem,5vw,3rem);
  letter-spacing:.22em;text-transform:uppercase;line-height:2.1;
  font-weight:500;
}
.grosse-worte .zeilen .war{color:var(--ink-faint)}
.grosse-worte .zeilen .bin{color:var(--ink)}
.grosse-worte .zeilen .werde{color:var(--gold-deep)}

/* ---------- Fuß ---------- */
footer{
  text-align:center;padding:4rem 1.5rem 4.5rem;
  border-top:1px solid var(--hairline-soft);
  color:var(--ink-faint);
  background:var(--paper-warm);
}
footer img{width:56px;height:auto;margin-bottom:1.4rem;opacity:.85}
footer .f-line{font-style:italic;font-size:.95rem;line-height:2;color:var(--ink-soft)}
footer .f-attrib{
  margin-top:1.8rem;font-size:.64rem;
  letter-spacing:.42em;text-transform:uppercase;
}
footer a{color:var(--gold-deep);text-decoration:none}

/* ---------- Rückkehr-Leiste (Apokryphon-Seite) ---------- */
.zurueck{
  position:fixed;top:0;left:0;right:0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 2rem;
  background:rgba(253,252,248,.9);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline-soft);
}
.zurueck a{
  font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-deep);text-decoration:none;
}

/* ---------- Reduzierte Bewegung ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .logo-haupt,.pforte::before{animation:none}
  .titel-linien::before,.titel-linien::after,
  .ornament::before,.ornament::after,.ornament svg,
  blockquote::before,blockquote::after,
  .book h3::after,.saeule{transition:none;transform:none;opacity:1}
  blockquote::before,blockquote::after{transform:scaleX(1);opacity:1}
  .zeichnung{opacity:1;transition:none}
  .zeichnung path,.zeichnung circle,.zeichnung line,.zeichnung rect{
    stroke-dashoffset:0;transition:none;
  }
  .bindeglied::before,.bindeglied::after{transform:scaleX(1);transition:none}
  .bindeglied path,.bindeglied circle,.bindeglied line{
    stroke-dashoffset:0;transition:none;
  }
  .bindeglied .punkt{opacity:1;transition:none}
  .stadttor path,.stadttor line{stroke-dashoffset:0;transition:none}
  .stadttor .punkt{opacity:1;transition:none}
  .karte line,.karte rect{stroke-dashoffset:0;transition:none}
  .karte .punkt{opacity:1;transition:none}
}


/* ============ DIE SCHWELLE (schwelle.html) ============ */
.schwelle-intro{font-style:italic;color:var(--ink-soft);text-align:center;max-width:44rem;margin:0 auto 3rem}
.schwelle-buehne{max-width:40rem;margin:0 auto;text-align:center}
.punkte{display:flex;justify-content:center;gap:.7rem;margin-bottom:2.6rem}
.punkte span{width:7px;height:7px;border-radius:50%;border:1px solid var(--gold);opacity:.5;transition:all .4s}
.punkte span.voll{background:var(--gold);opacity:1}
.frage{transition:opacity .3s ease,transform .3s ease}
.frage.weg{opacity:0;transform:translateY(10px)}
.wahl{
  display:block;width:100%;padding:1.5rem 1.8rem;margin:0 auto;
  background:var(--paper-warm);border:1px solid var(--hairline);
  font-family:var(--serif);font-size:1.15rem;font-weight:400;line-height:1.7;
  color:var(--ink);font-style:italic;cursor:pointer;border-radius:2px;
  transition:border-color .3s,box-shadow .3s,transform .2s;
}
.wahl:hover,.wahl:focus-visible{border-color:var(--gold);box-shadow:0 2px 18px rgba(138,107,42,.12);transform:translateY(-1px);outline:none}
.oder{margin:1.1rem 0;color:var(--gold-deep);font-size:.75rem;letter-spacing:.4em;text-transform:uppercase}
.spiegel{max-width:40rem;margin:0 auto;text-align:center}
.book h3.spiegel-titel{font-weight:300;font-size:clamp(1.5rem,3.4vw,2rem);letter-spacing:.04em;margin:1.4rem 0 .9rem;color:var(--ink);text-transform:none;justify-content:center;text-align:center}
.book h3.spiegel-titel::before,.book h3.spiegel-titel::after{display:none}
.spiegel-text{font-style:italic;color:var(--ink-soft);line-height:2;margin-bottom:2.6rem}
.ring-halten{position:relative;width:170px;height:170px;margin:0 auto;
  touch-action:none;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;}
.ring-halten svg{width:100%;height:100%;display:block;pointer-events:none}
.ring-knopf{
  position:absolute;inset:14px;border-radius:50%;border:none;cursor:pointer;
  background:radial-gradient(circle,rgba(176,141,63,.10),rgba(176,141,63,0) 70%);
  -webkit-tap-highlight-color:transparent;touch-action:none;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;
}
.ring-knopf:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
.ring-hinweis{margin-top:1.2rem;font-size:.8rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint)}
.umkehren{display:inline-block;margin-top:2.2rem;color:var(--ink-faint);font-style:italic;font-size:.95rem;text-decoration:none;border-bottom:1px solid var(--hairline)}
.umkehren:hover{color:var(--gold-deep);border-color:var(--gold-deep)}

/* ============ TOR-UEBERGANG UND ANKUNFT ============
   Schwelle: alles blendet aus, der geschlossene Kreis bleibt und teilt
   sich in die Zwei. Apokryphon: die Zwei stehen in der Mitte, wandern
   nach unten, das Titelblatt erscheint. */
.tor-uebergang{
  position:fixed;inset:0;z-index:9998;background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
}
.tor-uebergang svg{width:clamp(285px,49.4vw,437px);height:auto}
.tor-uebergang.los{animation:torDecke 1s ease forwards}
@keyframes torDecke{from{opacity:0}to{opacity:1}}
html.ankunft body{overflow:hidden}
.ankunft-schleier{
  position:fixed;inset:0;z-index:9998;background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  opacity:1;pointer-events:none;
}
.ankunft-schleier svg{width:clamp(285px,49.4vw,437px);height:auto}
.ankunft-schleier.zieht{animation:ankunftHebt 1.2s ease 1.8s forwards}
@keyframes ankunftHebt{to{opacity:0}}
.ankunft-schleier.zieht svg{animation:ankunftWandert 2s cubic-bezier(.5,0,.6,1) .7s forwards}
@keyframes ankunftWandert{to{transform:translateY(72vh)}}
/* Heimkehr auf der Startseite: der Schleier hebt sich ueber dem Urfeld-Symbol */
html.heimkehr::before{
  content:"";position:fixed;inset:0;background:var(--paper);z-index:9999;pointer-events:none;
  animation:heimSchleier 4s ease forwards;
}
@keyframes heimSchleier{0%{opacity:1}35%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion: reduce){
  .ankunft-schleier.zieht svg{animation-duration:.6s}
  html.heimkehr::before{animation-duration:1.2s}
}


/* ============ DIE BLAUPAUSE (Apokryphon-Epilog) ============ */
#blaupause .book-kopf.bp-dim{margin-top:5rem}
#blaupause .book-kopf.bp-dim .book-title{font-size:clamp(1.7rem,4vw,2.4rem)}
/* Dimensions-Zeichnungen: Punkt, Linie, Fläche, Raum (zeichnen sich selbst) */
.bp-dim-symbol{width:clamp(58px,9vw,82px);margin:0 auto 1.4rem}
.bp-dim-symbol svg{width:100%;height:auto;display:block;overflow:visible}
.bp-dim-symbol line,.bp-dim-symbol path,.bp-dim-symbol circle,.bp-dim-symbol ellipse,.bp-dim-symbol .aura{
  fill:none;stroke:var(--gold);stroke-opacity:.85;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s ease .3s;
}
.bp-dim-symbol .aura{stroke-opacity:.24;stroke-width:1.5}
.bp-dim-symbol polygon{
  stroke:var(--gold);stroke-opacity:.85;stroke-width:2.2;fill:var(--gold);fill-opacity:.09;
  stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s ease .3s;
}
.bp-dim-symbol.in line,.bp-dim-symbol.in path,.bp-dim-symbol.in circle,.bp-dim-symbol.in ellipse,.bp-dim-symbol.in polygon,.bp-dim-symbol.in .aura{stroke-dashoffset:0}
.bp-dim-symbol .punkt{fill:var(--gold);stroke:none;opacity:0;transition:opacity 1s ease .35s}
.bp-dim-symbol.in .punkt{opacity:1}
/* Komplexere Dimensionsformen (Globus, Torus, Mandala …): feiner Strich */
.bp-dim-symbol.filigran{width:clamp(66px,10vw,94px)}
.bp-dim-symbol.filigran line,.bp-dim-symbol.filigran path,.bp-dim-symbol.filigran circle,.bp-dim-symbol.filigran ellipse{stroke-width:1.4;stroke-opacity:.75}
.bp-dim-symbol.filigran .flaeche{fill:var(--gold);fill-opacity:.06;stroke:none}
.book h3.bp-kapitel{font-weight:300;font-size:clamp(1.5rem,3.2vw,1.9rem);letter-spacing:.05em;text-align:center;justify-content:center;color:var(--ink);margin:3.4rem 0 1.2rem;text-transform:none}
.book h3.bp-kapitel::before,.book h3.bp-kapitel::after{display:none}
.bp-omni{font-style:italic;color:var(--gold-deep);border-left:2px solid var(--hairline);padding-left:1.1rem;margin:1.4rem 0 1.6rem;line-height:1.9;text-align:left;hyphens:none;-webkit-hyphens:none}
.bp-formel{text-align:center;font-weight:500;font-size:1.25rem;letter-spacing:.06em;margin:1.5rem 0 1.7rem;color:var(--ink)}
.bp-tafel{width:100%;border-collapse:collapse;margin:1.6rem 0 2.2rem;font-size:.92rem;line-height:1.55}
.bp-tafel th{text-align:left;font-weight:500;color:var(--gold-deep);border-bottom:1px solid var(--gold);padding:.45rem .7rem .45rem 0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.bp-tafel td{vertical-align:top;border-bottom:1px solid var(--hairline-soft);padding:.55rem .7rem .55rem 0}
@media(max-width:640px){.bp-tafel{font-size:.8rem}}


/* ============ DIE HEIMKEHR (scroll-gesteuertes Finale im Apokryphon) ============ */
#ewigkeit{height:280vh;position:relative}
.bp-dim{scroll-margin-top:3.6rem}
.ewig-buehne{
  position:sticky;top:0;height:100vh;
  display:flex;align-items:center;justify-content:center;
  transition:background 1.2s ease;
}
.ewig-buehne svg{width:clamp(285px,49.4vw,437px);height:auto;display:block}
.ewig-buehne .ew-46,.ewig-buehne .ew-23,.ewig-buehne .ew-punkt{opacity:0}
/* Vollendet: alles blendet aus, nur das Symbol bleibt */
.ewig-buehne.heim{background:var(--paper);z-index:9000}


/* ============ DIE BUCHSTABEN-TAFEL (OMNI, Zeichen fuer Zeichen) ============ */
.buchstaben-tafel .bt-reihe{
  display:flex;justify-content:center;align-items:flex-start;
  gap:clamp(1.1rem,6vw,3.2rem);
}
.buchstaben-tafel .bt{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:0}
.buchstaben-tafel .bt-l{
  font-weight:300;font-size:clamp(2.6rem,9vw,4.2rem);line-height:1;color:var(--ink);
}
.buchstaben-tafel .bt:first-child .bt-l,
.buchstaben-tafel .bt:last-child .bt-l{color:var(--gold-deep)}
.buchstaben-tafel .bt-w{font-style:italic;font-size:.95rem;color:var(--ink-soft);white-space:nowrap}
.buchstaben-tafel .bt-b{
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-faint);line-height:1.5;max-width:9rem;
}
.buchstaben-tafel .bt-rahmen{
  display:flex;align-items:center;gap:1.2rem;
  margin-top:1.6rem;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);
}
.buchstaben-tafel .bt-rahmen::before,.buchstaben-tafel .bt-rahmen::after{
  content:"";flex:1;height:1px;background:var(--hairline);
}
@media(max-width:560px){
  .buchstaben-tafel .bt-b{display:none}
  .buchstaben-tafel .bt-w{font-size:.8rem}
}


/* ============ DAS STADTTOR (die Stadt von aussen) ============
   Weiterentwicklung des Blaupausen-Zeichens Punkt/Linie/Quadrat:
   die Haeuser der Stadt, die Mauer, das Tor, der Weg. Und der
   Punkt davor ist der Rufer. */
.stadttor{display:flex;justify-content:center;margin:0 auto 1.4rem}
.stadttor svg{width:clamp(230px,42vw,330px);height:auto;display:block}
.stadttor path,.stadttor line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s ease .2s}
.stadttor.in path,.stadttor.in line{stroke-dashoffset:0}
.stadttor .punkt{opacity:0;transition:opacity 1.1s ease 3s}
.stadttor.in .punkt{opacity:1}
.titelblatt .stadttor{margin-bottom:2.2rem}
/* Footer-Logo als stiller Heimweg nach oben */
footer .f-logo{display:inline-block;line-height:0}
footer .f-logo img{transition:transform .4s ease}
footer .f-logo:hover img{transform:scale(1.06)}


/* ============ DIE LANDKARTE (Punkt, Linie, Quadrat der Blaupause) ============
   Das Original-Bindeglied der Blaupause, als Karte gefasst:
   aus dem Punkt hebt sich die Linie, aus der Linie die Flaeche. */
.karte{display:flex;justify-content:center;margin:0 auto 1.4rem}
.karte svg{width:clamp(150px,24vw,190px);height:auto;display:block}
.karte.gross{margin-bottom:2rem}
.karte.gross svg{width:clamp(200px,30vw,260px)}
.karte line,.karte rect{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s ease .2s}
.karte.in line,.karte.in rect{stroke-dashoffset:0}
.karte .punkt{opacity:0;transition:opacity 1s ease 2.2s}
.karte.in .punkt{opacity:1}
