/* =========================================================
   Die Alte Ordnung · gemeinsames Design
   Eingebunden von allen Seiten im neuen Design:
   <link rel="stylesheet" href="/dao-design.css">
   ========================================================= */

/* =========================================================
   Tokens
   ========================================================= */
:root{
  --bg:#fbf8f1; --surface:#f1eadb; --ink:#191210; --ink-soft:#57493e;
  --gold:#8a7426; --gold-hi:#ccb454; --oxblood:#7a1f1f; --err:#8a2323;
  --line:rgba(120,98,40,.28); --dust-rgb:90,70,50;
  --bar-bg:rgba(251,248,241,.86);

  --f-display:"IM Fell English","Iowan Old Style",Georgia,serif;
  --f-body:"News Cycle","Arial Narrow","Helvetica Neue",Arial,sans-serif;

  --ease-staub:cubic-bezier(.16,.84,.24,1);
  --ease-glut:cubic-bezier(.55,.05,.35,1);
  --ease-klinge:cubic-bezier(.7,0,.2,1);
  --t-kurz:.24s; --t-mittel:.9s; --t-lang:2.2s;

  --wrap:70rem;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#12100e; --surface:#191210; --ink:#ece3cf; --ink-soft:#b6aa93;
    --gold:#ccb454; --gold-hi:#ccb454; --oxblood:#a3302b; --err:#e48a7e;
    --line:rgba(204,180,84,.24); --dust-rgb:170,150,120; --bar-bg:rgba(18,16,14,.84);
  }
}
:root[data-theme="dark"]{
  --bg:#12100e; --surface:#191210; --ink:#ece3cf; --ink-soft:#b6aa93;
  --gold:#ccb454; --gold-hi:#ccb454; --oxblood:#a3302b; --err:#e48a7e;
  --line:rgba(204,180,84,.24); --dust-rgb:170,150,120; --bar-bg:rgba(18,16,14,.84);
}

*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(4.5rem + env(safe-area-inset-top,0px));scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:1.125rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .4s ease,color .4s ease}
a{color:inherit}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.1;margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.2rem,5vw,3rem)}
.eyebrow{display:block;font-family:var(--f-display);font-style:italic;font-size:1.15rem;color:var(--gold)}
.term,.church .nm{color:var(--gold)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* =========================================================
   Kopfzeile
   ========================================================= */
header.bar{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:calc(.85rem + env(safe-area-inset-top,0px)) clamp(1rem,4vw,2.5rem) .85rem;
  transition:background-color .35s ease,box-shadow .35s ease}
header.bar.scrolled{background:var(--bar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.brand{display:flex;gap:.65rem;align-items:center;text-decoration:none}
.brand .mark{width:20px;height:26px;background:url(/sor-symbol.png) center/contain no-repeat}
.brand .name{font-family:var(--f-display);font-size:1.3rem}
.navwrap{display:flex;align-items:center;gap:1.2rem}
nav.links{display:flex;gap:1.5rem;font-size:1rem}
nav.links a{text-decoration:none;color:var(--ink-soft);position:relative;transition:color var(--t-kurz) ease}
nav.links a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform var(--t-kurz) var(--ease-klinge)}
nav.links a:hover,nav.links a:focus-visible{color:var(--ink)}
nav.links a:hover::after,nav.links a:focus-visible::after{transform:scaleX(1)}

.theme,.burger{width:40px;height:40px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:50%;
  color:var(--ink-soft);cursor:pointer;transition:color var(--t-kurz) ease,border-color var(--t-kurz) ease}
.theme:hover,.burger:hover,.theme:focus-visible,.burger:focus-visible{color:var(--ink);border-color:var(--line)}
.theme svg{width:20px;height:20px;grid-area:1/1;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;
  transition:transform .5s var(--ease-staub),opacity .3s ease}
.theme .sonne circle{fill:currentColor;stroke:none}
.theme .mond{fill:currentColor;stroke:none}
:root[data-theme="dark"] .theme .sonne{opacity:0;transform:rotate(-90deg) scale(.6)}
:root:not([data-theme="dark"]) .theme .mond{opacity:0;transform:rotate(90deg) scale(.6)}

.menubox{position:relative}
.burger span{display:block;width:18px;height:1.5px;background:currentColor;grid-area:1/1;transition:transform .3s var(--ease-klinge),opacity .2s ease}
.burger span:nth-child(1){transform:translateY(-6px)} .burger span:nth-child(3){transform:translateY(6px)}
.burger[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}
.menu{position:absolute;right:0;top:calc(100% + .6rem);min-width:13rem;padding:.6rem 0;background:var(--surface);
  border:1px solid var(--line);box-shadow:0 18px 40px rgba(0,0,0,.25);display:flex;flex-direction:column}
.menu[hidden]{display:none}
.menu.open{animation:menuIn .28s var(--ease-staub)}
@keyframes menuIn{from{opacity:0;transform:translateY(-6px)}}
.menu a{padding:.5rem 1.2rem;text-decoration:none;color:var(--ink-soft)}
.menu a:hover,.menu a:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--gold) 12%,transparent);outline:none}
.menu .sep{height:1px;background:var(--line);margin:.4rem 1.2rem}
.menu .m-only{display:none}
@media (max-width:820px){
  nav.links{display:none}
  .menu .m-only{display:block}
  .brand .name{font-size:1.15rem}
}

/* =========================================================
   Startseite · Hero
   ========================================================= */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  text-align:center;padding:0 1.2rem 7rem;overflow:hidden;--s:0}
#dust{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.orbit{position:absolute;left:50%;top:-6vh;width:min(96vw,80vh);aspect-ratio:1;translate:-50% 0;z-index:1;
  transform:translateY(calc(var(--s) * 90px));opacity:calc(1 - var(--s) * .55)}
.orbit svg{display:block;width:100%;height:100%;overflow:visible}
.ring-outer,.ring-inner{transform-origin:400px 400px}
.ring-outer{transform:rotate(calc(var(--s) * 38deg))}
.ring-inner{transform:rotate(calc(var(--s) * -24deg))}

.sun{opacity:.08;transform-origin:400px 400px}
.sun-glow{opacity:0}
.rays{clip-path:inset(0 0 39% 0)}
.play .sun{animation:kindle var(--t-lang) var(--ease-glut) .2s forwards}
.play .sun-glow{animation:glow 3.2s var(--ease-staub) .6s forwards}
.play .rays{animation:rays 2.4s var(--ease-staub) .9s forwards}
@keyframes kindle{0%{opacity:.08;transform:scale(.94)}60%{opacity:.8}100%{opacity:1;transform:scale(1)}}
@keyframes glow{to{opacity:1}}
@keyframes rays{to{clip-path:inset(0 0 0 0)}}

.draw{fill:none;stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.play .draw{animation:draw 1.8s var(--ease-staub) var(--d,.8s) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.tick{opacity:0}
.play .tick{animation:fadein .5s ease var(--d) forwards}
@keyframes fadein{to{opacity:var(--o,1)}}

.hero .inner{position:relative;z-index:3;max-width:62rem}
.hero .inner::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;translate:-50% -50%;width:130%;height:125%;pointer-events:none;
  background:radial-gradient(ellipse at center,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,transparent) 42%,transparent 70%)}
.hero .eyebrow{margin-top:.9rem;font-size:1.25rem;opacity:0}
.play .hero .eyebrow{animation:fadein 1s ease 2.3s forwards}
.title{font-size:clamp(3rem,8.2vw,7.2rem);line-height:1;letter-spacing:.005em}
.title .row{display:inline}
.title .row + .row::before{content:"\a0"}
@media (max-width:620px){.title .row{display:block}.title .row + .row::before{content:none}}
@media (max-width:620px){
  .hero{padding-bottom:3.5rem}.orbit{top:-10vh;width:min(104vw,80vh)}
  .hero .cta-row{margin-top:1.8rem}
  .hero .scrollcue{display:none}
}
.title .ch{display:inline-block;opacity:0;filter:blur(10px);transform:translate(var(--x,0),var(--y,-18px))}
.play .title .ch{animation:settle 1.3s var(--ease-staub) var(--d) forwards}
@keyframes settle{to{opacity:1;filter:blur(0);transform:none}}

.tagline{font-family:var(--f-display);font-style:italic;font-size:clamp(1.15rem,2.6vw,1.65rem);color:var(--ink-soft);
  margin:1.1rem auto 0;max-width:40ch;opacity:0}
.play .tagline{animation:fadein .9s ease 2.6s forwards}
.x{position:relative;white-space:nowrap;display:inline-block}
.x::after{content:"";position:absolute;left:-.08em;right:-.08em;top:56%;height:.085em;min-height:2px;background:var(--oxblood);border-radius:2px;
  transform:scaleX(0) rotate(-2deg);transform-origin:left center}
.play .hero .x::after{animation:strike .38s var(--ease-klinge) var(--d) forwards}
@keyframes strike{to{transform:scaleX(1) rotate(-2deg)}}
.play .hero .x.last{animation:nudge .5s var(--ease-klinge) 4.35s}
@keyframes nudge{40%{transform:translateX(3px)}70%{transform:translateX(-2px)}}

.hero .lede{max-width:46ch;margin:1.3rem auto 0;color:var(--ink-soft);opacity:0;transform:translateY(8px)}
.hero .cta-row{opacity:0;transform:translateY(8px)}
.play .hero .lede{animation:settle var(--t-mittel) var(--ease-staub) 4.7s forwards}
.play .hero .cta-row{animation:settle var(--t-mittel) var(--ease-staub) 4.9s forwards}
.cta-row{margin-top:2.2rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

.scrollcue{position:absolute;bottom:1.4rem;left:50%;translate:-50% 0;z-index:3;display:flex;flex-direction:column;align-items:center;gap:.5rem;
  font-size:.95rem;color:var(--ink-soft);opacity:0}
.play .scrollcue{animation:fadein 1s ease 5.6s forwards}
.scrollcue .line{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:drop 2.6s ease-in-out infinite}
@keyframes drop{0%,100%{transform:scaleY(.35);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* Schaltflächen */
.btn{position:relative;overflow:hidden;display:inline-block;padding:.8rem 1.6rem;border:1px solid var(--gold);color:var(--ink);
  text-decoration:none;font-size:1.05rem;border-radius:2px;isolation:isolate;cursor:pointer;background:none;font-family:inherit;
  transition:color .3s ease}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold-hi);transform:translateY(101%);
  transition:transform .45s var(--ease-staub)}
.btn:hover,.btn:focus-visible{color:#191210}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn:active{transform:translateY(1px)}
.btn.ghost{border-color:transparent;color:var(--ink-soft);padding-left:.4rem;padding-right:.4rem}
.btn.ghost::before{background:transparent;border-bottom:1px solid var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease-klinge)}
.btn.ghost:hover,.btn.ghost:focus-visible{color:var(--ink)}
.btn.ghost:hover::before,.btn.ghost:focus-visible::before{transform:scaleX(1)}

/* =========================================================
   Startseite · Ein Anfang
   ========================================================= */
.awaken{padding:clamp(6rem,18vh,10rem) 0}
.awaken .wrap{max-width:46rem;text-align:center}
.awaken .kicker{font-family:var(--f-display);font-style:italic;color:var(--gold);font-size:1.2rem;margin:0 0 1.4rem}
.awaken blockquote{margin:0;font-family:var(--f-display);font-size:clamp(1.45rem,3.4vw,2.2rem);line-height:1.42}
.awaken .w{opacity:.14;filter:blur(2px);transition:opacity .6s var(--ease-staub),filter .6s var(--ease-staub)}
.awaken .w.on{opacity:1;filter:none}
.awaken .cta-row{margin-top:2rem}

/* =========================================================
   Startseite · Chronik
   ========================================================= */
.chronicle{padding:clamp(5rem,12vh,8rem) 0;--p:0}
.chronicle.alt{background:var(--surface)}
.chronicle .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:clamp(2rem,6vw,5rem)}
.act-label{position:sticky;top:7rem;align-self:start}
.act-label h2{font-size:clamp(2.2rem,4.6vw,3.6rem);margin-top:.4rem}
.act-label .rule{display:block;width:3rem;height:1px;background:var(--gold);margin:1.2rem 0 0;order:3}
.stream{position:relative;padding-left:clamp(1.4rem,3vw,2.4rem)}
.stream::before,.stream::after{content:"";position:absolute;left:0;top:.5rem;bottom:.5rem;width:1px}
.stream::before{background:var(--line)}
.stream::after{background:linear-gradient(var(--gold-hi),var(--gold) 70%,transparent);transform-origin:top;transform:scaleY(var(--p))}
.chronicle:not(.alt) .stream::after{background:linear-gradient(var(--gold-hi),color-mix(in srgb,var(--gold) 40%,transparent) 60%,transparent)}
.beat + .beat{margin-top:clamp(2.4rem,5vh,3.4rem)}
.beat h3{font-size:clamp(1.6rem,2.8vw,2.1rem);margin-bottom:.7rem;position:relative}
.beat h3::before{content:"";position:absolute;left:calc(-1 * clamp(1.4rem,3vw,2.4rem) - 4px);top:.45em;width:9px;height:9px;border-radius:50%;
  background:var(--bg);border:1px solid var(--gold);transition:background-color .5s ease}
.chronicle.alt .beat h3::before{background:var(--surface)}
.beat.lit h3::before{background:var(--gold-hi)}
.beat p{margin:0 0 1rem;max-width:62ch;color:var(--ink-soft)}
.beat p:last-child{margin-bottom:0}
@media (max-width:860px){
  .chronicle .wrap{grid-template-columns:1fr}
  .act-label{position:static}
}

/* =========================================================
   Startseite · Das Besondere
   ========================================================= */
.creed{padding:clamp(5rem,14vh,9rem) 0}
.creed h2{font-size:clamp(2.2rem,4.6vw,3.6rem);margin:.4rem 0 clamp(2.5rem,6vh,4rem);max-width:20ch}
.negations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.4rem,5vw,4rem) clamp(2rem,6vw,5rem)}
@media (max-width:720px){.negations{grid-template-columns:1fr}}
.neg .x{font-family:var(--f-display);font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin-bottom:.7rem}
.neg .x::after{height:.06em}
.neg.on .x::after{animation:strike .45s var(--ease-klinge) .25s forwards}
.neg p{margin:0;color:var(--ink-soft);max-width:44ch}
.neg p b{color:var(--ink);font-weight:700}

/* =========================================================
   Startseite · Kirche des Sor
   ========================================================= */
.church{padding:clamp(5rem,14vh,9rem) 0;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.church .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,5rem);align-items:center}
@media (max-width:860px){.church .wrap{grid-template-columns:1fr}}
.church h2{font-size:clamp(1.9rem,3.8vw,3rem);margin:.4rem 0 1.4rem;max-width:22ch}
.church p{color:var(--ink-soft);max-width:56ch;margin:0 0 1rem}
.scripture{position:relative;padding:2.4rem 2rem;text-align:center;border:1px solid var(--line);font-family:var(--f-display)}
.scripture::before,.scripture::after{content:"";position:absolute;width:22px;height:22px;border:1px solid var(--gold)}
.scripture::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.scripture::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.scripture .line{display:block;font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.35}
.scripture .line + .line{margin-top:.6rem}
.scripture .sig{display:block;margin-top:1.4rem;font-style:italic;color:var(--gold);font-size:1.05rem}

/* =========================================================
   Aufruf: Sor erhebt sich
   ========================================================= */
.call{position:relative;overflow:hidden;padding:clamp(6rem,16vh,10rem) 1.2rem clamp(6rem,14vh,9rem);text-align:center;--r:0}
.call .rise{position:relative;width:clamp(120px,18vw,180px);aspect-ratio:800/1035;margin:0 auto 2.4rem;
  transform:translateY(calc((1 - var(--r)) * 120px));opacity:calc(.15 + var(--r) * .85)}
.call .rise img{display:block;width:100%;height:100%;
  -webkit-mask-image:linear-gradient(#000 55%,transparent 98%);mask-image:linear-gradient(#000 55%,transparent 98%)}
.call .glow{position:absolute;left:50%;top:clamp(6rem,16vh,10rem);translate:-50% -30%;width:min(110vw,900px);aspect-ratio:1;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--gold-hi) 26%,transparent),transparent 60%);opacity:var(--r)}
.call .inner{position:relative;max-width:40rem;margin:0 auto}
.call h2{font-size:clamp(2.6rem,6vw,4.6rem)}
.call p{color:var(--ink-soft);margin:1.4rem auto 2rem;max-width:46ch}

/* =========================================================
   Fuß
   ========================================================= */
footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
  padding:2rem clamp(1.2rem,5vw,3rem) calc(2rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);
  color:var(--ink-soft);font-size:.95rem}
.fnav{display:flex;gap:1.4rem;flex-wrap:wrap}
.fnav a{text-decoration:none}
.fnav a:hover,.fnav a:focus-visible{color:var(--ink)}

/* =========================================================
   Unterseiten · Seitenkopf
   ========================================================= */
.pagehead{position:relative;overflow:hidden;padding:calc(9rem + env(safe-area-inset-top,0px)) 0 clamp(3.5rem,8vh,5rem);border-bottom:1px solid var(--line)}
.pagehead .wrap{position:relative;z-index:1}
.pagehead h1{font-size:clamp(3rem,8vw,6rem);margin:.3rem 0 1.2rem;letter-spacing:.005em}
.pagehead .lede{margin:0;max-width:46ch;color:var(--ink-soft);font-size:1.2rem}
.emblem{position:absolute;right:max(-6rem,calc(50% - 46rem));top:50%;width:min(52vw,440px);aspect-ratio:1;translate:0 -54%;pointer-events:none;opacity:.9}
.emblem svg{width:100%;height:100%;overflow:visible}
.emblem{-webkit-mask-image:linear-gradient(#000 55%,transparent 88%);mask-image:linear-gradient(#000 55%,transparent 88%)}
.emblem image{opacity:.16}
.play .emblem image{animation:kindle-faint 2.2s var(--ease-glut) .3s both}
@keyframes kindle-faint{from{opacity:0}to{opacity:.16}}
.pagehead .ch{display:inline-block}
.wd{display:inline-block;white-space:nowrap}
.play .pagehead .ch{animation:settle-in 1.1s var(--ease-staub) var(--d) both}
@keyframes settle-in{from{opacity:0;filter:blur(8px);transform:translateY(-14px)}}
.play .pagehead .lede,.play .pagehead .eyebrow{animation:fade-from .9s ease both}
.play .pagehead .eyebrow{animation-delay:.1s}.play .pagehead .lede{animation-delay:1.1s}
@keyframes fade-from{from{opacity:0}}
@media (max-width:720px){.emblem{right:-30vw;width:80vw;opacity:.6}}

/* =========================================================
   Unterseiten · Rechtstext mit Inhaltsverzeichnis
   ========================================================= */
.legal{padding:clamp(3.5rem,9vh,6rem) 0 clamp(4rem,10vh,7rem)}
.legal .wrap{display:grid;grid-template-columns:15rem minmax(0,44rem);gap:clamp(2.5rem,6vw,5.5rem);justify-content:center}
.toc{position:sticky;top:6.5rem;align-self:start}
.toc h2{font-size:1.35rem;margin:0 0 1rem;color:var(--gold);font-style:italic}
.toc ol{list-style:none;margin:0;padding:0 0 0 1.1rem;position:relative;counter-reset:n}
.toc ol::before{content:"";position:absolute;left:3px;top:.6rem;bottom:.6rem;width:1px;background:var(--line)}
.toc li{counter-increment:n}
.toc a{display:block;position:relative;padding:.32rem 0 .32rem .4rem;text-decoration:none;color:var(--ink-soft);font-size:.98rem;line-height:1.35;
  transition:color var(--t-kurz) ease}
.toc a::before{content:counter(n) ". ";color:var(--gold);opacity:.8}
.toc .dot{position:absolute;left:calc(-1.1rem - 1px);top:.72rem;width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:var(--bg);
  transition:background-color .35s ease,transform .35s var(--ease-staub)}
.toc a:hover,.toc a:focus-visible{color:var(--ink)}
.toc a[aria-current="true"]{color:var(--ink)}
.toc a[aria-current="true"] .dot{background:var(--gold-hi);transform:scale(1.15)}
@media (max-width:960px){
  .legal .wrap{grid-template-columns:minmax(0,44rem)}
  .toc{position:static;padding-bottom:2rem;border-bottom:1px solid var(--line)}
}

.article [id]{scroll-margin-top:6.5rem}
.clause + .clause{margin-top:clamp(3rem,7vh,4.5rem)}
.article h2{font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 1rem}
.article h2 + p{margin-top:0}
.article p,.article li{color:var(--ink-soft)}
.article p{margin:0 0 1rem}
.article strong,.article b{color:var(--ink);font-weight:700}
.article ul{margin:0 0 1.2rem;padding:0;list-style:none}
.article li{position:relative;padding-left:1.4rem;margin:.35rem 0}
.article li::before{content:"";position:absolute;left:.1rem;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.article a{color:var(--ink);text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color var(--t-kurz) ease}
.article a:hover{text-decoration-color:var(--ink)}

.article .facts{position:relative;margin:1.4rem 0 1.6rem;padding:1.5rem 1.6rem;border:1px solid var(--line);background:var(--surface)}
.article .facts::before,.facts::after{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--gold)}
.article .facts::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.article .facts::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.article .facts dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.6rem}
.article .facts dt{font-family:var(--f-display);font-style:italic;color:var(--gold);font-size:1.1rem}
.article .facts dd{margin:0}
.article .facts address{font-style:normal}
@media (max-width:520px){.article .facts dl{grid-template-columns:1fr;gap:.15rem}.facts dd{margin-bottom:.7rem}}

.article .note{margin:1.4rem 0;padding:1rem 1.3rem;border-left:2px solid var(--gold);background:color-mix(in srgb,var(--gold-hi) 8%,transparent);color:var(--ink-soft)}
.article .note b{color:var(--ink)}
.article .warn{margin:1.4rem 0;padding:1rem 1.3rem;border-left:2px solid var(--oxblood);background:color-mix(in srgb,var(--oxblood) 8%,transparent)}

.call.ruled{border-top:1px solid var(--line)}

/* =========================================================
   Unterseiten · Kontaktformular
   ========================================================= */
.contact{padding:clamp(3.5rem,9vh,6rem) 0 clamp(4rem,10vh,7rem)}
.contact .formwrap{display:grid;grid-template-columns:minmax(0,40rem) 18rem;gap:clamp(2.5rem,6vw,5.5rem);justify-content:center}
@media (max-width:960px){.contact .formwrap{grid-template-columns:minmax(0,40rem)}}

.contact .field{margin-bottom:1.8rem}
.contact .field > label{display:block;font-weight:700;margin-bottom:.45rem}
.contact .req{color:var(--err)}
.contact .hint{display:block;font-weight:400;color:var(--ink-soft);font-size:.95rem}
.contact .ctl{position:relative;display:block}
.contact .ctl input,.contact .ctl select,.contact .ctl textarea{display:block;width:100%;font:inherit;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-bottom-color:color-mix(in srgb,var(--gold) 60%,transparent);border-radius:2px;
  padding:.75rem .9rem;-webkit-appearance:none;appearance:none;transition:border-color .2s ease}
.contact .ctl textarea{min-height:11rem;resize:vertical;line-height:1.6}
.contact .ctl input:focus,.contact .ctl select:focus,.contact .ctl textarea:focus{outline:none;border-color:var(--gold)}
.contact .ctl::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold-hi);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-staub);pointer-events:none}
.contact .ctl:focus-within::after{transform:scaleX(1)}
.contact .ctl.sel select{padding-right:2.6rem;cursor:pointer}
.contact .ctl.sel::before{content:"";position:absolute;right:1.1rem;top:50%;width:.5rem;height:.5rem;margin-top:-.4rem;
  border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);pointer-events:none}
.contact .ctl select option{color:#191210;background:#fbf8f1}
.contact .counter{text-align:right;font-size:.9rem;color:var(--ink-soft);margin-top:.35rem;font-variant-numeric:tabular-nums}
.contact .err{display:none;color:var(--err);font-size:.95rem;margin-top:.4rem}
.contact .invalid .err{display:block;animation:fade-from .3s ease}
.contact .invalid .ctl::after{background:var(--err);transform:scaleX(1)}
.contact .invalid .ctl input,.contact .invalid .ctl select,.contact .invalid .ctl textarea{border-color:color-mix(in srgb,var(--err) 60%,transparent)}

.contact .pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.contact .check{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;margin:.4rem 0 2rem;color:var(--ink-soft)}
.contact .check input{-webkit-appearance:none;appearance:none;width:1.25rem;height:1.25rem;margin:.22rem 0 0;border:1px solid var(--gold);border-radius:2px;
  background:var(--surface);display:grid;place-content:center;cursor:pointer;transition:background-color .25s ease,border-color .25s ease}
.contact .check input::before{content:"";width:.62rem;height:.32rem;margin-top:-.15rem;border-left:2px solid #191210;border-bottom:2px solid #191210;
  transform:rotate(-45deg) scale(0);transition:transform .25s var(--ease-klinge)}
.contact .check input:checked{background:var(--gold-hi);border-color:var(--gold-hi)}
.contact .check input:checked::before{transform:rotate(-45deg) scale(1)}
.contact .check.invalid input{border-color:var(--err);box-shadow:0 0 0 1px var(--err)}

.contact .actions{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.contact .status{color:var(--ink-soft);font-size:1rem}
.contact .btn:disabled{opacity:.6;cursor:progress}
.contact .btn:disabled::before{transform:translateY(101%)}

.contact .sent{display:none;position:relative;text-align:center;padding:clamp(2.5rem,6vh,3.5rem) 2rem;border:1px solid var(--line);background:var(--surface)}
.contact .sent.show{display:block;animation:fade-from .6s ease}
.contact .sent::before,.contact .sent::after{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--gold)}
.contact .sent::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.contact .sent::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.contact .sent .sun-mini{width:72px;aspect-ratio:800/1035;margin:0 auto 1.4rem;background:url(/sor-symbol.png) center/contain no-repeat;
  -webkit-mask-image:linear-gradient(#000 55%,transparent 98%);mask-image:linear-gradient(#000 55%,transparent 98%)}
.contact .sent.show .sun-mini{animation:kindle-up 1.6s var(--ease-glut) .15s both}
@keyframes kindle-up{from{opacity:0;transform:translateY(26px);filter:brightness(.35)}}
.contact .sent h3{font-size:clamp(1.7rem,3vw,2.2rem);margin-bottom:.8rem}
.contact .sent p{color:var(--ink-soft);max-width:40ch;margin:0 auto}

.contact .aside .block + .block{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.contact .aside h3{font-size:1.5rem;margin-bottom:.5rem}
.contact .aside p{color:var(--ink-soft);margin:0}
.contact .aside .big{font-family:var(--f-display);font-size:1.45rem}
.contact .check a,.contact .aside a,.contact .sent a,.contact .status a{color:var(--ink);text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-thickness:1px;
  transition:text-decoration-color var(--t-kurz) ease}
.contact .check a:hover,.contact .aside a:hover,.contact .sent a:hover,.contact .status a:hover{text-decoration-color:var(--ink)}

/* =========================================================
   Unterseiten · Anleitung (IniTracker)
   ========================================================= */
.pagehead.tool{padding-bottom:clamp(3rem,7vh,4.5rem)}
.pagehead .cta-row{justify-content:flex-start;margin-top:1.8rem}
.play .pagehead .cta-row{animation:fade-from .9s ease 1.2s both}

/* Lebender Zeitstrahl im Seitenkopf */
.ini-demo{margin-top:clamp(3rem,7vh,4.5rem);max-width:56rem}
.ini-track{position:relative;height:10.5rem;margin:0 .6rem}
.ini-track .axis{position:absolute;left:0;right:0;bottom:1.9rem;height:1px;background:var(--line)}
.ini-track .tickmark{position:absolute;bottom:1.9rem;width:1px;height:7px;background:var(--line);translate:-50% 0;transition:left .9s var(--ease-staub)}
.ini-track .ticklabel{position:absolute;bottom:0;translate:-50% 0;font-size:.85rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;
  transition:left .9s var(--ease-staub)}
.tok{position:absolute;bottom:1.9rem;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:.35rem;
  transition:left .9s var(--ease-staub)}
.tok .pin{width:11px;height:11px;border-radius:50%;border:1px solid var(--gold);background:var(--bg);margin-bottom:-5.5px;
  transition:background-color .3s ease,transform .3s var(--ease-staub)}
.tok .lbl{font-size:.95rem;white-space:nowrap;color:var(--ink-soft);transition:color .3s ease}
.tok.timer .pin{border-radius:2px;transform:rotate(45deg)}
.tok.act .pin{background:var(--gold-hi);transform:scale(1.3)}
.tok.timer.act .pin{transform:rotate(45deg) scale(1.3)}
.tok.act .lbl{color:var(--ink)}
.tok .vz{position:absolute;top:-1.5rem;font-size:.85rem;color:var(--gold);opacity:0;white-space:nowrap}
.tok.moved .vz{animation:vz-up 1.1s var(--ease-staub) both}
@keyframes vz-up{0%{opacity:0;transform:translateY(6px)}25%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}
.tok[data-row="1"] .lbl{margin-bottom:1.6rem}.tok[data-row="2"] .lbl{margin-bottom:3.2rem}.tok[data-row="3"] .lbl{margin-bottom:4.8rem}
.ini-cap{margin:.9rem 0 0;color:var(--ink-soft);font-size:1rem;max-width:52ch}

/* Inhalt der Anleitung */
.article h3{font-size:clamp(1.35rem,2.2vw,1.6rem);margin:2.2rem 0 .8rem}
.article h4{font-family:var(--f-body);font-weight:700;font-size:1.05rem;margin:1.8rem 0 .5rem;color:var(--ink)}
.article figure{margin:1.6rem 0 1.8rem}
.article figure img{display:block;max-width:100%;height:auto;border:1px solid var(--line);background:var(--surface)}
.article figcaption{margin-top:.6rem;font-family:var(--f-display);font-style:italic;color:var(--gold);font-size:1.05rem}
.article em{font-style:italic}
ol.steps{list-style:none;margin:0 0 1.2rem;padding:0;counter-reset:st}
ol.steps li{counter-increment:st;position:relative;padding:0 0 0 2.6rem;margin:.75rem 0;color:var(--ink-soft)}
.article ol.steps li::before{background:none;content:counter(st);position:absolute;left:0;top:.05rem;width:1.75rem;height:1.75rem;border-radius:50%;
  border:1px solid var(--gold);display:grid;place-items:center;font-size:.9rem;color:var(--gold);font-variant-numeric:tabular-nums}
ol.steps li + li::after{content:"";position:absolute;left:.875rem;top:-.75rem;height:.75rem;width:1px;background:var(--line)}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:1.6rem 0 1.4rem}
@media (max-width:720px){.roles{grid-template-columns:1fr}}
.role{padding:1.2rem 1.2rem 1.3rem;border:1px solid var(--line);border-top:2px solid var(--gold);background:var(--surface)}
.role h3{margin:0 0 .5rem;font-size:1.4rem}
.role p{margin:0;font-size:1rem}

/* =========================================================
   Unterseiten · Teaser
   ========================================================= */
.pagehead .tagline{margin:1.2rem 0 0;max-width:44ch;opacity:1;text-align:left}
.play .pagehead .tagline{animation:fade-from .9s ease .9s both}
.play .pagehead .x::after{animation:strike .38s var(--ease-klinge) var(--d) forwards}
.play .pagehead .x.last{animation:nudge .5s var(--ease-klinge) calc(var(--d) + .1s)}
.awaken.long .wrap{max-width:42rem;text-align:left}
.awaken.long blockquote{font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.55}
.awaken .q{font-style:italic;color:var(--gold)}
.church .sig{line-height:1.45}

/* =========================================================
   Unterseiten · Impressum
   ========================================================= */
.toc.unnumbered a::before{content:none}
.article .warn{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.3rem;align-items:start;padding:1.3rem 1.4rem}
.article .warn .tag{grid-column:1 / -1;font-family:var(--f-display);font-style:italic;color:var(--err);font-size:1.1rem}
.article .warn p{display:contents}
.article .warn .age{grid-row:2;display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:50%;border:1.5px solid var(--oxblood);
  font-family:var(--f-display);font-size:1.8rem;line-height:1;color:var(--ink)}
@media (max-width:520px){.article .warn{grid-template-columns:1fr}.article .warn .age{grid-row:auto}}

/* =========================================================
   Bewegung reduzieren
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .sun,.sun-glow,.tick,.tagline,.hero .lede,.hero .cta-row,.scrollcue,.hero .eyebrow,.title .ch{opacity:1!important;filter:none!important;transform:none!important}
  .draw{stroke-dashoffset:0!important}
  .rays{clip-path:none!important}
  .x::after{transform:scaleX(1) rotate(-2deg)!important}
  .awaken .w{opacity:1;filter:none}
  .orbit,.ring-outer,.ring-inner{transform:none!important;opacity:1!important}
  .stream::after{transform:none}
  .emblem image{opacity:.16}
  .tok,.ini-track .tickmark,.ini-track .ticklabel{transition:none}
  .call .rise{transform:none;opacity:1}
  .call .glow{opacity:1}
}
