:root{
  --hell:#F5F5F7; --weiss:#FFFFFF; --tinte:#1D1D1F; --leise:#6E6E73; --linie:#D2D2D7;
  --nacht:#000000; --nacht-text:#F5F5F7; --nacht-leise:#A1A1A6;
  --link:#0A5BD6; --verlauf:linear-gradient(90deg,#4F8BFF 0%,#8F6BFF 55%,#C86BFF 100%);
  --breite:61rem; --lese:42rem; color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{--hell:#000000;--weiss:#1C1C1E;--tinte:#F5F5F7;--leise:#A1A1A6;--linie:#38383A;--link:#6CA6FF;color-scheme:dark}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--hell);color:var(--tinte);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible{outline:2px solid #4F8BFF;outline-offset:3px;border-radius:4px}
.huelle{max-width:var(--breite);margin:0 auto;padding:0 1.5rem}
.lesen{max-width:var(--lese);margin:0 auto;padding:0 1.5rem}

/* Kopfzeile: dunkel, durchscheinend */
header.kopf{position:sticky;top:0;z-index:10;background:rgba(22,22,23,.78);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);color:#F5F5F7}
header.kopf .huelle{display:flex;flex-wrap:wrap;gap:.25rem 1.75rem;align-items:center;justify-content:space-between;min-height:3.25rem}
.marke{color:#F5F5F7;font-weight:600;font-size:1.05rem;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem}
.marke:hover{text-decoration:none;opacity:.85}
nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 1.6rem}
nav a{color:rgba(245,245,247,.8);font-size:.85rem;display:inline-flex;align-items:center;min-height:2.75rem}
nav a:hover{color:#FFF;text-decoration:none}
nav a[aria-current="page"]{color:#FFF}

/* Bühne: der dunkle, weite Bereich */
.buehne{position:relative;overflow:hidden;background:var(--nacht);color:var(--nacht-text);text-align:center;padding:clamp(5rem,12vw,9rem) 0 clamp(4.5rem,10vw,7.5rem)}
.buehne::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(1px 1px at 12% 22%,rgba(255,255,255,.55),transparent 60%),
  radial-gradient(1px 1px at 27% 68%,rgba(255,255,255,.35),transparent 60%),
  radial-gradient(1.5px 1.5px at 41% 14%,rgba(255,255,255,.5),transparent 60%),
  radial-gradient(1px 1px at 58% 38%,rgba(255,255,255,.3),transparent 60%),
  radial-gradient(1px 1px at 69% 81%,rgba(255,255,255,.4),transparent 60%),
  radial-gradient(1.5px 1.5px at 83% 27%,rgba(255,255,255,.45),transparent 60%),
  radial-gradient(1px 1px at 91% 59%,rgba(255,255,255,.35),transparent 60%),
  radial-gradient(1px 1px at 6% 84%,rgba(255,255,255,.3),transparent 60%),
  radial-gradient(1px 1px at 50% 92%,rgba(255,255,255,.25),transparent 60%),
  radial-gradient(1px 1px at 76% 9%,rgba(255,255,255,.4),transparent 60%)}
.buehne::after{content:"";position:absolute;left:50%;bottom:-38%;width:120%;height:80%;transform:translateX(-50%);pointer-events:none;background:radial-gradient(ellipse at center,rgba(91,110,255,.32) 0%,rgba(150,95,255,.14) 35%,transparent 68%)}
.buehne > *{position:relative;z-index:1}
.buehne h1{font-size:clamp(2.6rem,8vw,5.25rem);line-height:1.04;font-weight:700;letter-spacing:-.045em;margin:0 auto .35em;max-width:12em}
.buehne .unterzeile{font-size:clamp(1.15rem,2.4vw,1.5rem);line-height:1.45;color:var(--nacht-leise);max-width:32em;margin:0 auto;font-weight:400;letter-spacing:-.01em}
.buehne .klein{color:var(--nacht-leise);font-size:.95rem;margin-top:.75rem}
.auftritt{animation:auftritt 1.1s cubic-bezier(.2,.7,.2,1) both}
.auftritt.spaeter{animation-delay:.25s}
.auftritt.zuletzt{animation-delay:.5s}
@keyframes auftritt{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Messleiste (Regula = Lineal) */
.messung{max-width:38rem;margin:clamp(3rem,7vw,4.5rem) auto 0;text-align:left}
.messung-zahl{display:flex;align-items:baseline;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1.6rem;text-align:center}
.messung-zahl strong{font-size:clamp(3.2rem,10vw,5.5rem);font-weight:700;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.messung-zahl span{font-size:clamp(1.1rem,2.5vw,1.4rem);color:var(--nacht-leise)}
.skala{position:relative;height:16px;margin-bottom:6px;border-right:1px solid rgba(245,245,247,.55)}
.skala::before,.skala::after{content:"";position:absolute;left:0;right:0;bottom:0}
.skala::before{height:7px;background:repeating-linear-gradient(to right,rgba(245,245,247,.35) 0 1px,transparent 1px 5%)}
.skala::after{height:16px;background:repeating-linear-gradient(to right,rgba(245,245,247,.75) 0 1px,transparent 1px 25%)}
.spur{height:8px;border-radius:999px;background:rgba(245,245,247,.12);overflow:hidden}
.fuellung{height:100%;width:0;border-radius:999px;background:var(--verlauf);box-shadow:0 0 18px rgba(130,110,255,.65);transition:width 1.4s cubic-bezier(.2,.7,.2,1) .6s}
.beschriftung{position:relative;height:1.4rem;margin-top:.55rem;font-size:.8rem;color:var(--nacht-leise);font-variant-numeric:tabular-nums}
.beschriftung span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.beschriftung span:first-child{transform:none}
.beschriftung span:last-child{transform:translateX(-100%)}
@media (prefers-reduced-motion:reduce){.auftritt{animation:none}.fuellung{transition:none}html{scroll-behavior:auto}}

/* Helle Bereiche */
.abschnitt{padding:clamp(4rem,9vw,6.5rem) 0}
.abschnitt.weiss{background:var(--weiss)}
.abschnitt h2{font-size:clamp(1.9rem,4.5vw,2.75rem);font-weight:700;letter-spacing:-.035em;line-height:1.1;margin:0 0 .4em;text-align:center}
.abschnitt .zentriert{text-align:center;color:var(--leise);font-size:1.15rem;max-width:34em;margin:0 auto 2.75rem}
.kennzahlen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:2.5rem 1.5rem;text-align:center}
.kennzahlen strong{display:block;font-size:clamp(2.6rem,6vw,3.5rem);font-weight:700;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums;background:var(--verlauf);-webkit-background-clip:text;background-clip:text;color:transparent}
.kennzahlen span{color:var(--leise);font-size:1.05rem}

.karten{list-style:none;margin:0 auto;padding:0;display:grid;gap:1.25rem;max-width:var(--lese)}
.karte{display:block;background:var(--weiss);border-radius:22px;padding:1.75rem 2rem;color:var(--tinte);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.abschnitt.weiss .karte{background:var(--hell)}
.karte:hover{text-decoration:none;transform:scale(1.012);box-shadow:0 12px 40px rgba(0,0,0,.08)}
.karte time{color:var(--leise);font-size:.9rem}
.karte h3{font-size:1.5rem;letter-spacing:-.025em;line-height:1.2;margin:.3rem 0 .4rem}
.karte p{color:var(--leise);margin:0}
.karte .weiter{display:inline-block;margin-top:.9rem;color:var(--link);font-weight:500}

/* Lesetext: Beiträge, Über mich, Rechtliches */
.seitenkopf{padding:clamp(4rem,9vw,6.5rem) 0 clamp(1.5rem,4vw,2.5rem);text-align:center}
.seitenkopf h1{font-size:clamp(2.4rem,7vw,4rem);font-weight:700;letter-spacing:-.045em;line-height:1.05;margin:0 0 .35em}
.seitenkopf p{color:var(--leise);font-size:1.2rem;margin:0 auto;max-width:30em}
.text{padding-bottom:clamp(4rem,9vw,6rem);font-size:1.15rem;line-height:1.7}
.text h2{font-size:1.6rem;letter-spacing:-.03em;line-height:1.2;margin:2.4em 0 .6em}
.text p{margin:0 0 1.1em}
.text ul{padding-left:1.25rem;margin:0 0 1.1em}
.text li{margin-bottom:.35em}
.hinweis{background:var(--weiss);border-radius:18px;padding:1.4rem 1.6rem;margin:2rem 0}
.hinweis p:last-child{margin:0}

.tabelle{background:var(--weiss);border-radius:22px;padding:.5rem 1.5rem;overflow-x:auto;max-width:var(--lese);margin:0 auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:1rem .5rem;border-bottom:1px solid var(--linie);white-space:nowrap}
tr:last-child td{border-bottom:0}
th{font-weight:600;color:var(--leise);font-size:.9rem}
td.zahl,th.zahl{text-align:right}

footer.fuss{border-top:1px solid var(--linie);padding:1.5rem 0 2.5rem;color:var(--leise);font-size:.8rem}
footer.fuss .huelle{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}
footer.fuss a{color:var(--leise)}

/* Fotos */
.autor{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.5rem 2rem;max-width:var(--lese);margin:0 auto;text-align:left}
.autor img{width:132px;height:132px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 4px var(--weiss),0 0 0 5px var(--linie)}
.autor div{flex:1 1 18rem}
.autor h2{text-align:left;margin-bottom:.3em}
.autor p{color:var(--leise);margin:0 0 .6rem}
.titelbild{max-width:var(--breite);margin:0 auto clamp(2.5rem,6vw,4rem);padding:0 1.5rem}
.titelbild img{display:block;width:100%;height:auto;aspect-ratio:4/3;max-height:34rem;object-fit:cover;object-position:30% 40%;border-radius:28px}
.galerie{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0 0;padding:0;list-style:none}
.galerie figure{margin:0}
.galerie img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:20px}
.galerie figcaption{color:var(--leise);font-size:.9rem;margin-top:.5rem}
@media (max-width:30rem){.galerie{grid-template-columns:1fr}}
.text ul.galerie{padding-left:0}

/* Sternbild Stier: 20 Sterne = 20 € */
.sternbild{max-width:32rem;margin:clamp(2rem,5vw,3rem) auto 0}
.sternbild svg{display:block;width:100%;height:auto;overflow:visible}
.sternbild .messung-zahl{margin:1.25rem 0 .4rem}
.sternbild-text{color:var(--nacht-leise);font-size:.95rem;margin:0}
.st-aus{fill:rgba(245,245,247,.38);animation:funkeln 4.5s ease-in-out infinite}
.st-an{fill:#F5F5F7}
.st-name{fill:rgba(245,245,247,.42);font-size:9px;letter-spacing:.04em}
@keyframes funkeln{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.st-aus{animation:none}}
.text h3{font-size:1.2rem;letter-spacing:-.02em;margin:1.6em 0 .5em}
.text ul.index{columns:2 16rem;column-gap:2rem}
.text .glossary li,.text .m-elements li{margin-bottom:.7em}
.text .seal{font-size:.9rem;color:var(--leise);margin-top:2.5rem}
.text{overflow-wrap:anywhere}
.text ul.index li{break-inside:avoid}
