/* mckechneay.com — Marineblau und Silber, abgeleitet vom Wappen.
   Schriften lokal (Gloock, Instrument Sans, SIL OFL). Keine fremden Server. */

@font-face{font-family:"Gloock";src:url("../fonts/gloock.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-italic.woff") format("woff");font-weight:400;font-style:italic;font-display:swap}

:root{
  --n950:#040c1d;--n900:#07142d;--n850:#0a1b3d;--n800:#0d2250;--n700:#143272;--n600:#1c4a9e;--royal:#2a63c7;
  --s50:#f6f8fb;--s100:#e9eef4;--s200:#d6dde8;--s300:#b9c4d4;--s400:#93a1b7;--s500:#6c7c96;
  --silber:linear-gradient(115deg,#fbfcfe 0%,#cdd5e1 26%,#8f9bb0 46%,#eef2f7 64%,#b3bdcd 82%,#f4f6fa 100%);
  --rand:rgba(185,196,212,.18);--glas:rgba(255,255,255,.045);
  --bahn:1120px;--lese:68ch;--r:18px;
  --kopf:4.25rem;
}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--kopf) + 1rem);background:var(--n900)}
body{margin:0;min-height:100dvh;overflow-x:clip;background:var(--n900);color:var(--s200);
  font:400 1.0625rem/1.72 "Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(1100px 720px at 80% -8%,rgba(42,99,199,.30),transparent 62%),
  radial-gradient(900px 640px at 2% 32%,rgba(28,74,158,.24),transparent 62%),
  radial-gradient(1000px 720px at 62% 112%,rgba(20,50,114,.40),transparent 62%),
  linear-gradient(180deg,#07142d 0%,#050f24 100%)}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.045;background:
  repeating-linear-gradient(45deg,rgba(255,255,255,.9) 0 1px,transparent 1px 30px),
  repeating-linear-gradient(-45deg,rgba(255,255,255,.9) 0 1px,transparent 1px 30px)}
img{max-width:100%;height:auto;display:block}
a{color:var(--s100);text-decoration-color:rgba(185,196,212,.45);text-underline-offset:.2em;text-decoration-thickness:1px;transition:color .2s,text-decoration-color .2s}
a:hover{color:#fff;text-decoration-color:#fff}
:focus-visible{outline:2px solid #9ec0ff;outline-offset:3px;border-radius:6px}
::selection{background:rgba(42,99,199,.55);color:#fff}
.nur-leser{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sprung{position:absolute;left:1rem;top:-4rem;z-index:10000;background:var(--s50);color:var(--n900);padding:.6rem 1rem;border-radius:10px;font-weight:700;text-decoration:none}
.sprung:focus{top:.75rem}

h1,h2,h3,h4{font-family:"Gloock","Times New Roman",serif;font-weight:400;line-height:1.1;letter-spacing:.004em;margin:0 0 .55em;color:var(--s50)}
h1{font-size:clamp(2.1rem,5.4vw,4.1rem);hyphens:auto;overflow-wrap:break-word;-webkit-hyphens:auto}
h1.gross{font-size:clamp(2.7rem,7.4vw,5.6rem)}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
h3{font-size:clamp(1.3rem,2.2vw,1.6rem)}
h4{font-size:1.1rem}
p{margin:0 0 1.1em}
strong{color:var(--s50);font-weight:700}
.silber{color:var(--s50)}
@supports (background-clip:text) or (-webkit-background-clip:text){
  .silber{background:var(--silber);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:glanz 11s ease-in-out infinite}
}
@keyframes glanz{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.gedaempft{color:var(--s400)}
.klein{font-size:.9rem}
.lese{max-width:var(--lese)}
.augenbraue{display:inline-flex;align-items:center;gap:.7rem;margin:0 0 1.1rem;font-size:.8rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--s300)}
.augenbraue::before{content:"";width:2.4rem;height:1px;background:linear-gradient(90deg,transparent,var(--s300))}

.huelle{width:min(100% - 2rem,var(--bahn));margin-inline:auto}
section{padding-block:clamp(3.2rem,8vw,6rem)}
.hero+section{padding-top:0}
.abschnitt-kopf{max-width:46rem;margin-bottom:2.2rem}
.trenner{height:1px;border:0;margin:0;background:linear-gradient(90deg,transparent,rgba(185,196,212,.5),transparent)}

/* ——— Kopf ——— */
.kopf{position:sticky;top:0;z-index:50;height:var(--kopf);display:flex;align-items:center;
  background:linear-gradient(180deg,rgba(5,14,32,.92),rgba(5,14,32,.68));
  -webkit-backdrop-filter:blur(14px) saturate(1.25);backdrop-filter:blur(14px) saturate(1.25);border-bottom:1px solid var(--rand)}
.kopf .huelle{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.marke{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--s50);font-family:"Gloock",serif;font-size:1.2rem;white-space:nowrap}
.marke img{width:34px;height:34px;border-radius:9px;box-shadow:0 0 0 1px var(--rand),0 4px 14px rgba(0,0,0,.5)}
.nav{display:flex;align-items:center;gap:.15rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nav::-webkit-scrollbar{display:none}
.nav a{padding:.5rem .8rem;border-radius:999px;font-size:.95rem;text-decoration:none;color:var(--s300);white-space:nowrap}
.nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav a[aria-current="page"]{color:var(--n900);background:var(--silber);font-weight:700}
.nav .sprache{margin-left:.4rem;border:1px solid var(--rand);color:var(--s100);font-weight:700;letter-spacing:.06em}
@media (max-width:860px){
  .nav .sprache{order:-1;margin:0 .4rem 0 0}
  .marke span{display:none}
  .kopf .huelle{width:calc(100% - 1rem)}
}

/* ——— Hero ——— */
.hero{padding-block:clamp(2.2rem,6vw,5rem) clamp(3rem,7vw,6rem);position:relative}
.hero-gitter{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(1.5rem,5vw,4.5rem);align-items:center}
.hero h1{margin-bottom:.35em}
.hero h1 .zeile{display:block}
.lede{font-size:clamp(1.12rem,1.6vw,1.32rem);line-height:1.62;color:var(--s100);max-width:40rem}
.aktionen{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.knopf{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.4rem;border-radius:999px;font-weight:700;font-size:1rem;text-decoration:none;border:1px solid var(--rand);color:var(--s50);background:var(--glas);transition:transform .2s,box-shadow .2s,background .2s}
.knopf:hover{transform:translateY(-2px);background:rgba(255,255,255,.1);box-shadow:0 10px 30px rgba(0,0,0,.35);color:#fff}
.knopf.haupt{background:var(--silber);color:var(--n900);border-color:transparent}
.knopf.haupt:hover{color:var(--n900);box-shadow:0 12px 36px rgba(160,190,255,.28)}
.stand{margin-top:1.6rem;font-size:.88rem;color:var(--s400)}

.buehne{position:relative;width:100%;max-width:520px;margin-inline:auto;aspect-ratio:1198/1313;isolation:isolate}
.buehne::before{content:"";position:absolute;inset:6% 4% 0;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(60,120,230,.42),rgba(28,74,158,.16) 55%,transparent 72%);filter:blur(10px)}
.buehne img{position:absolute;inset:0;width:100%;height:100%}
.buehne canvas{position:absolute;inset:-5%;width:110%;height:110%}
.buehne img{object-fit:contain;filter:drop-shadow(0 26px 30px rgba(0,0,0,.55));transition:opacity .6s}
.buehne canvas{opacity:0;transition:opacity .6s;touch-action:pan-y;cursor:grab}
.buehne.ist-3d img{opacity:0}
.buehne.ist-3d canvas{opacity:1}
.buehne.zieht canvas{cursor:grabbing}
.buehne-gross{max-width:640px}
.buehne-hinweis{margin-top:.8rem;text-align:center;font-size:.85rem;color:var(--s400)}
@media (max-width:900px){
  .hero-gitter{grid-template-columns:1fr}
  .buehne{max-width:min(78vw,420px);order:-1}
}

/* ——— Laufband ——— */
.band{overflow:hidden;border-block:1px solid var(--rand);background:rgba(255,255,255,.025);padding-block:.9rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.band-spur{display:flex;gap:2.6rem;width:max-content;animation:lauf 46s linear infinite}
.band-spur span{font-family:"Gloock",serif;font-size:1.35rem;color:var(--s300);white-space:nowrap;display:inline-flex;align-items:center;gap:2.6rem}
.band-spur span::after{content:"◆";font-size:.6rem;color:var(--s500)}
@keyframes lauf{to{transform:translateX(-50%)}}
.band:hover .band-spur{animation-play-state:paused}

/* ——— Karten ——— */
.raster{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15.5rem),1fr))}
.karte{position:relative;border-radius:var(--r);padding:1.5rem 1.5rem 1.4rem;background:var(--glas);border:1px solid var(--rand);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 40px rgba(0,0,0,.28)}
.karte h3{margin-bottom:.4em}
.karte p:last-child{margin-bottom:0}
.karte .etikett{display:inline-block;margin-bottom:.8rem}
.karte-link{display:block;text-decoration:none;color:inherit}
.karte-link:hover{color:inherit}
.karte-link .mehr{display:inline-flex;gap:.4rem;margin-top:.9rem;font-weight:700;color:var(--s50)}
.karte-link:hover .mehr{gap:.8rem}
.mehr{transition:gap .2s}
.etikett{display:inline-block;padding:.18rem .65rem;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.01em;line-height:1.5;border:1px solid var(--rand);color:var(--s300);background:rgba(255,255,255,.04);white-space:nowrap}
.tilt{--rx:0deg;--ry:0deg;--go:0;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .28s ease-out,box-shadow .28s;will-change:transform}
.tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.16),transparent 62%);opacity:var(--go);transition:opacity .28s}
.tilt:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 26px 56px rgba(0,0,0,.42)}

.fakten{display:grid;grid-template-columns:minmax(9rem,13rem) 1fr;margin:0;border:1px solid var(--rand);border-radius:var(--r);overflow:hidden;background:var(--glas)}
.fakten dt,.fakten dd{margin:0;padding:.95rem 1.2rem;border-top:1px solid var(--rand)}
.fakten dt:first-of-type,.fakten dt:first-of-type+dd{border-top:0}
.fakten dt{font-weight:700;color:var(--s50);background:rgba(255,255,255,.03)}
.fakten dd{color:var(--s200)}
@media (max-width:640px){.fakten{grid-template-columns:1fr}.fakten dt{border-top:1px solid var(--rand);padding-bottom:.2rem;background:transparent}.fakten dd{border-top:0;padding-top:.1rem}.fakten dt:first-of-type{border-top:0}}

.zweispaltig{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media (max-width:860px){.zweispaltig{grid-template-columns:1fr}}

/* ——— Zeitleiste ——— */
.zeit{list-style:none;margin:0;padding:0;position:relative}
.zeit::before{content:"";position:absolute;left:1.05rem;top:.4rem;bottom:.4rem;width:2px;background:linear-gradient(180deg,transparent,var(--s400) 8%,var(--s400) 92%,transparent)}
.zeit li{position:relative;padding:0 0 2rem 3.4rem}
.zeit li::before{content:"";position:absolute;left:.55rem;top:.55rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--n900);border:2px solid var(--s200);box-shadow:0 0 0 5px rgba(42,99,199,.22)}
.zeit h3{margin-bottom:.3em}
.zeit .etikett{margin-left:.5rem;vertical-align:middle}

/* ——— Tabellen ——— */
.tabelle{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--rand);border-radius:var(--r);overflow:hidden;background:var(--glas);font-size:1rem}
.tabelle caption{caption-side:top;text-align:left;padding:0 0 .7rem;color:var(--s300);font-size:.92rem}
.tabelle th,.tabelle td{padding:.8rem 1.1rem;text-align:left;vertical-align:top;border-top:1px solid var(--rand)}
.tabelle thead th{border-top:0;background:rgba(255,255,255,.05);color:var(--s50);font-size:.92rem;font-weight:700}
.tabelle tbody th{color:var(--s50);font-weight:700;font-family:"Instrument Sans",sans-serif}
.tabellen-huelle{overflow-x:auto;margin:1.2rem 0 2.4rem}
.lese h2,.prosa h2{margin-top:2.1em}
.lese h2:first-child,.prosa h2:first-child,.abschnitt-kopf h2{margin-top:0}
.lese .tabellen-huelle+h2,.lese .hinweis+h2{margin-top:2.1em}

/* ——— FAQ ——— */
.fragen details{border:1px solid var(--rand);border-radius:14px;background:var(--glas);margin-bottom:.8rem;transition:background .2s,border-color .2s}
.fragen details[open]{background:rgba(255,255,255,.07);border-color:rgba(185,196,212,.34)}
.fragen summary{list-style:none;cursor:pointer;padding:1.05rem 3.2rem 1.05rem 1.3rem;position:relative;font-weight:700;color:var(--s50);font-size:1.06rem}
.fragen summary::-webkit-details-marker{display:none}
.fragen summary::after{content:"+";position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--s300);transition:transform .25s}
.fragen details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.fragen .antwort{padding:0 1.3rem 1.2rem}
.fragen .antwort p:last-child{margin-bottom:0}

/* ——— Wappen-Elemente ——— */
.symbole{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:0;padding:0;list-style:none}
.symbole li{padding:1.2rem 1.3rem;border-radius:var(--r);border:1px solid var(--rand);background:var(--glas)}
.symbole h3{font-size:1.2rem;margin-bottom:.35em}
.symbole p{margin:0;color:var(--s300);font-size:.98rem;line-height:1.6}
.farben{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;margin:1rem 0 0;padding:0;list-style:none}
.farben li{display:inline-flex;align-items:center;gap:.6rem;font-size:.95rem;color:var(--s200)}
.farben i{width:1.5rem;height:1.5rem;border-radius:50%;border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.farben .f-blau{background:#1d56b8}.farben .f-silber{background:linear-gradient(135deg,#f3f6fa,#9aa7ba)}.farben .f-gold{background:#f0b92e}.farben .f-rot{background:#d62b2b}

.hinweis{padding:1.1rem 1.3rem;border-radius:14px;border:1px solid rgba(130,160,255,.4);background:rgba(60,100,220,.12);color:var(--s100)}
.hinweis strong{color:#fff}

/* ——— Fuss ——— */
.fuss{margin-top:2rem;border-top:1px solid var(--rand);background:linear-gradient(180deg,transparent,rgba(2,7,18,.6));padding-block:3rem 2.4rem;font-size:.95rem}
.fuss-gitter{display:grid;gap:2rem;grid-template-columns:1.3fr 1fr 1fr 1fr}
.fuss h2{font-size:1.05rem;font-family:"Instrument Sans",sans-serif;font-weight:700;color:var(--s300);margin-bottom:.8rem}
.fuss ul{list-style:none;margin:0;padding:0}
.fuss li{margin-bottom:.4rem}
.fuss a{color:var(--s200);text-decoration:none}
.fuss a:hover{color:#fff;text-decoration:underline}
.fuss .klein{margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--rand);color:var(--s400)}
@media (max-width:860px){.fuss-gitter{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fuss-gitter{grid-template-columns:1fr}}

/* ——— Einblenden (nur mit JS; ohne JS bleibt alles sichtbar) ——— */
.js .blende{opacity:0;transform:perspective(900px) translate3d(0,26px,0) rotateX(9deg);transform-origin:50% 100%;transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--vz,0s)}
.js .blende.sichtbar{opacity:1;transform:none}
.js .hero-text>*{opacity:0;transform:translate3d(0,18px,0);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.js.hero-bereit .hero-text>*{opacity:1;transform:none}
.js.hero-bereit .hero-text>*:nth-child(2){transition-delay:.08s}.js.hero-bereit .hero-text>*:nth-child(3){transition-delay:.16s}
.js.hero-bereit .hero-text>*:nth-child(4){transition-delay:.24s}.js.hero-bereit .hero-text>*:nth-child(5){transition-delay:.32s}

/* ——— Einstieg: Wappen-Animation ——— */
#intro{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,#12356f 0%,#08183a 52%,#030a18 100%);
  transition:opacity .9s ease,visibility 0s linear .9s;animation:intro-notfall 0s linear 12s forwards}
#intro canvas{position:absolute;inset:0;width:100%;height:100%}
#intro .intro-text{position:absolute;left:0;right:0;bottom:clamp(1.1rem,4vh,3rem);text-align:center;padding-inline:1rem;opacity:0;transform:translateY(14px);transition:opacity 1s ease,transform 1s ease}
#intro.zeigt-text .intro-text{opacity:1;transform:none}
#intro .intro-name{display:block;font-family:"Gloock",serif;font-size:clamp(1.6rem,4.4vw,2.6rem);color:var(--s50);letter-spacing:.02em}
#intro .intro-zeile{display:block;margin-top:.3rem;font-size:1rem;letter-spacing:.04em;color:var(--s300)}
#intro .intro-weiter{margin-top:1.4rem;font:inherit;font-weight:700;cursor:pointer;padding:.8rem 1.8rem;border-radius:999px;border:1px solid rgba(207,224,255,.5);background:rgba(255,255,255,.08);color:var(--s50);letter-spacing:.06em;transition:background .2s,transform .2s}
#intro .intro-weiter:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}
#intro .intro-skip{position:absolute;top:1.1rem;right:1.2rem;font:inherit;font-size:.9rem;cursor:pointer;padding:.5rem .95rem;border-radius:999px;border:1px solid var(--rand);background:rgba(5,14,32,.5);color:var(--s300)}
#intro .intro-skip:hover{color:#fff;border-color:var(--s300)}
#intro.geht{opacity:0;visibility:hidden;pointer-events:none}
#intro.weg{display:none}
html.intro-aktiv{overflow:hidden}
@keyframes intro-notfall{to{opacity:0;visibility:hidden;pointer-events:none}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js .blende,.js .hero-text>*{opacity:1;transform:none}
  .band-spur{animation:none}
}
@media print{
  body::before,body::after,.kopf,#intro,.band{display:none}
  body{background:#fff;color:#000}h1,h2,h3,strong{color:#000}
  .js .blende{opacity:1;transform:none}
}

/* ——— Kurzantwort und Zitierweise (AEO) ——— */
.portraet{float:right;margin:0 0 1rem 1.6rem;width:min(320px,42%);text-align:center}
.portraet img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--rand);border-radius:var(--r);background:var(--glas)}
.portraet figcaption{margin-top:.5rem;font-size:.85rem;color:var(--s300)}
@media (max-width:600px){.portraet{float:none;margin:0 auto 1.2rem;width:min(300px,78%)}}
.kurzantwort{margin:1.4rem 0 0;padding:1rem 1.2rem;border-left:3px solid var(--s300);border-radius:0 12px 12px 0;background:rgba(255,255,255,.045);color:var(--s100);max-width:var(--lese)}
.kurzantwort strong{color:var(--s50)}
.zitatbox{margin:2.4rem 0 1rem;padding:1.3rem 1.4rem;border:1px solid var(--rand);border-radius:var(--r);background:var(--glas)}
.zitatbox h2{font-size:1.4rem;margin-bottom:.5rem}
.zitatbox p{margin-bottom:.6rem}

/* ——— Verweislisten ——— */
.sites{list-style:none;margin:0;padding:0;display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.sites li{margin:0}
.sites a{display:block;padding:1rem 1.15rem;border-radius:var(--r);border:1px solid var(--rand);background:var(--glas);text-decoration:none;color:var(--s200);height:100%}
.sites a:hover{border-color:rgba(190,206,238,.5);background:rgba(255,255,255,.07);color:#fff}
.sites strong{display:block;font-family:"Gloock",serif;font-weight:400;font-size:1.12rem;color:var(--s50);margin-bottom:.3rem;word-break:break-word}
.sites span{font-size:.95rem;color:var(--s300);line-height:1.5}
.sites-klein a{padding:.8rem 1rem}
.sites-klein strong{font-size:1rem}

/* ═══ mckechneay.com: Familienarchiv ═══ */
[hidden]{display:none!important}
.huelle.breit{width:min(100% - 2rem,1240px)}
.hero-klein{padding-block:clamp(2rem,5vw,3.4rem) clamp(1.2rem,3vw,2rem)}
.hero-klein h1{font-size:clamp(2.1rem,5vw,3.6rem)}
.js-nur{display:none}
.js .js-nur{display:flex}
.js .w-knoepfe{display:flex}
.gedaempft a{color:var(--s200)}

/* Kenntnisstand und Zweig als Etiketten */
.etikett.s-familie{color:#cdd9ff;border-color:rgba(130,160,255,.5);background:rgba(60,100,220,.2)}
.etikett.s-grab{color:#d6e6d9;border-color:rgba(160,205,175,.45);background:rgba(80,150,110,.14)}
.etikett.s-index{color:#e8d9b4;border-color:rgba(220,190,120,.45);background:rgba(200,160,60,.12)}
.etikett.s-baum{color:#d9d0ea;border-color:rgba(180,160,220,.42);background:rgba(130,100,190,.14)}
.etikett.s-kandidat{color:var(--s200);border-style:dashed;border-color:rgba(185,196,212,.6);background:transparent}
.etikett.z-haupt{color:#e5efff;border-color:rgba(190,206,238,.6);background:rgba(42,99,199,.3)}
.etikett.z-index{color:var(--s200);border-style:dashed}
.etikett.z-quebec{color:var(--s50);background:rgba(214,221,232,.13);border-color:rgba(214,221,232,.5)}
.etikett.z-forschung{color:#e8d9b4;border-style:dashed}
.etikett.klein{font-size:.74rem;padding:.08rem .5rem;margin-left:.5rem}
.kopf-etiketten{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0}

/* Start: Suche, Kette, Linien */
.suche-start{display:flex;gap:.6rem;margin-top:1.6rem;max-width:36rem}
.suche-start input{flex:1}
input[type="search"],input[type="text"],input[type="email"],select,textarea{font:inherit;color:var(--s50);width:100%;padding:.75rem 1rem;border-radius:12px;border:1px solid rgba(185,196,212,.34);background:rgba(4,12,29,.55);-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--s300) 50%),linear-gradient(135deg,var(--s300) 50%,transparent 50%);background-position:calc(100% - 1.3rem) 55%,calc(100% - .95rem) 55%;background-size:.35rem .35rem;background-repeat:no-repeat;padding-right:2.4rem}
input::placeholder,textarea::placeholder{color:var(--s500)}
input:focus,select:focus,textarea:focus{outline:2px solid #9ec0ff;outline-offset:2px;border-color:#9ec0ff}
.kette{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.2rem}
.kettenglied{position:relative;display:flex;flex-direction:column;gap:.3rem;padding:1.3rem 1.2rem;border-radius:var(--r);border:1px solid rgba(190,206,238,.5);background:linear-gradient(180deg,rgba(60,110,210,.3),rgba(30,70,160,.12))}
.kettenglied+.kettenglied::before{content:"";position:absolute;right:100%;top:50%;width:2.2rem;height:2px;background:linear-gradient(90deg,var(--s500),var(--s200))}
.kettenglied+.kettenglied::after{content:"";position:absolute;right:calc(100% - 2px);top:calc(50% - 4px);border:5px solid transparent;border-left:7px solid var(--s200);border-right:0}
.kettenglied.ich{border-color:#cfe0ff;box-shadow:0 0 0 1px rgba(207,224,255,.4),0 0 44px rgba(80,140,255,.34)}
.k-rolle{font-size:.92rem;color:var(--s300)}
.k-name{font-family:"Gloock",serif;font-weight:400;font-size:1.3rem;line-height:1.2;color:var(--s50)}
.k-hinweis{font-size:.85rem;color:var(--s400)}
.kette-fuss{margin-top:1.4rem}
@media (max-width:820px){
  .kette{grid-template-columns:1fr;gap:1.9rem}
  .kettenglied+.kettenglied::before{right:auto;left:50%;top:auto;bottom:100%;width:2px;height:1.9rem;background:linear-gradient(180deg,var(--s500),var(--s200))}
  .kettenglied+.kettenglied::after{right:auto;left:calc(50% - 4px);top:auto;bottom:calc(100% - 2px);border:5px solid transparent;border-top:7px solid var(--s200);border-bottom:0}
}
.raster.zwei{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.karte.z-haupt{border-left:4px solid #8fb2f0}
.karte.z-quebec{border-left:4px solid var(--s200)}
.verbindung-offen{margin:1.6rem auto 0;padding:1rem 1.3rem;max-width:44rem;text-align:center;border:1px dashed rgba(185,196,212,.5);border-radius:14px;color:var(--s200)}
.stufen{list-style:none;margin:1rem 0 0;padding:0}
.stufe{border-left:4px solid var(--s500)}
.stufe.s-familie{border-left-color:#8fb2f0}.stufe.s-grab{border-left-color:#8cc4a0}.stufe.s-index{border-left-color:#dcbe78}.stufe.s-baum{border-left-color:#b6a0dc}.stufe.s-kandidat{border-left-style:dashed;border-left-color:var(--s300)}
.stufe h3{font-size:1.15rem}
.stufe p{font-size:.97rem;color:var(--s300)}

/* Werkzeugleiste, Chips, Zoom */
.werkzeug{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin:0 0 1rem}
.w-suche{flex:1 1 15rem;max-width:24rem}
.w-knoepfe{align-items:center;gap:.8rem;margin-left:auto}
.chips,.umschalter,.zoom{display:flex;flex-wrap:wrap;gap:.45rem}
.chip,.zoom button{font:inherit;font-size:.95rem;cursor:pointer;padding:.5rem 1rem;border-radius:999px;border:1px solid var(--rand);background:var(--glas);color:var(--s200);transition:background .2s,color .2s,border-color .2s}
.chip:hover,.zoom button:hover{background:rgba(255,255,255,.1);color:#fff}
.chip[aria-pressed="true"]{background:var(--silber);color:var(--n900);font-weight:700;border-color:transparent}
.zoom button{min-width:2.6rem;padding:.5rem .8rem}
.zoom button:disabled{opacity:.4;cursor:default}

/* Stammbaum */
.baum-bereich{padding-top:.6rem}
.baum-buehne{position:relative;overflow:hidden;border:1px solid var(--rand);border-radius:calc(var(--r) + 6px);background:radial-gradient(900px 500px at 50% 0%,rgba(42,99,199,.12),transparent 70%),linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}
.baum-viewport{position:relative;overflow:hidden;outline-offset:-3px}
.baum-svg{display:block;width:100%;height:auto}
.baum-js .baum-viewport{height:clamp(440px,74vh,800px);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}
.baum-js .baum-viewport.zieht{cursor:grabbing}
.baum-js .baum-svg{width:100%;height:100%}
.hilfe{margin:.8rem 0 0}
.baum-svg text{font-family:"Instrument Sans",system-ui,sans-serif}
.baum-svg .flaeche{fill:rgba(255,255,255,.028);stroke:rgba(185,196,212,.22);stroke-width:1.2}
.baum-svg .gz-haupt .flaeche{fill:rgba(42,99,199,.1);stroke:rgba(150,185,255,.4)}
.baum-svg .gz-index .flaeche{stroke-dasharray:9 8}
.baum-svg .g-titel{font-family:"Gloock",serif;font-size:21px;fill:#f6f8fb}
.baum-svg .g-unter{font-size:13.5px;fill:#a7b3c6}
.baum-svg .knoten{cursor:pointer;outline:none}
.baum-svg .kasten{fill:rgba(255,255,255,.07);stroke:rgba(185,196,212,.5);stroke-width:1.3;transition:stroke .15s}
.baum-svg .z-haupt .kasten{fill:rgba(42,99,199,.36);stroke:#bed0ee}
.baum-svg .z-index .kasten{fill:rgba(120,135,160,.14);stroke:#93a1b7;stroke-dasharray:6 5}
.baum-svg .z-quebec .kasten{fill:rgba(214,221,232,.11);stroke:#cbd5e4}
.baum-svg .ich .kasten{stroke:#e5efff;stroke-width:2.4;fill:rgba(60,120,240,.52)}
.baum-svg .verborgen .kasten{stroke-dasharray:3 4;fill:rgba(255,255,255,.035)}
.baum-svg .k-name{font-family:"Gloock",serif;font-size:16px;fill:#f6f8fb}
.baum-svg .k-daten{font-size:13px;fill:#dbe2ec}
.baum-svg .k-status{font-size:11.5px;fill:#a7b3c6}
.baum-svg .knoten:hover .kasten,.baum-svg .knoten:focus-visible .kasten{stroke:#fff;stroke-width:2.4}
.baum-svg .knoten.gewaehlt .kasten{stroke:#fff;stroke-width:3.2}
.baum-svg .knoten.treffer .kasten{stroke:#ffe9a8;stroke-width:3.2}
.baum-svg .gedimmt{opacity:.2}
.baum-svg path{fill:none;stroke:#b9c4d4;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.baum-svg path.paar{stroke:#9ec0ff;stroke-dasharray:2 5}
.baum-svg path.vorlaeufig{stroke:#e8d9b4;stroke-dasharray:7 6}
.baum-svg .ring{fill:#07142d;stroke:#9ec0ff;stroke-width:1.5}
.personenkarte{position:absolute;top:1rem;right:1rem;width:min(24rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto;padding:1.3rem 1.3rem 1.4rem;border-radius:var(--r);border:1px solid rgba(190,206,238,.45);background:rgba(7,20,45,.96);box-shadow:0 24px 60px rgba(0,0,0,.55)}
.personenkarte h2{font-size:1.5rem;margin-bottom:.2rem;padding-right:2rem}
.personenkarte .k-rolle{margin:0;color:var(--s300)}
.karte-zu{position:absolute;top:.6rem;right:.7rem;width:2.2rem;height:2.2rem;font:inherit;font-size:1.5rem;line-height:1;cursor:pointer;border-radius:50%;border:1px solid var(--rand);background:var(--glas);color:var(--s100)}
.karte-zu:hover{background:rgba(255,255,255,.14);color:#fff}
.k-hinweis{font-size:.95rem;color:var(--s200)}
.k-claims{margin:1rem 0;display:grid;gap:.15rem}
.k-claims dt{margin-top:.6rem;font-weight:700;color:var(--s50);font-size:.92rem}
.k-claims dd{margin:0;font-size:.95rem;color:var(--s200)}
.k-claims .k-nr{display:block;margin-top:.15rem;font-size:.85rem;color:var(--s400)}
.k-quellen-titel{font-family:"Instrument Sans",sans-serif;font-size:1rem;font-weight:700;margin:1rem 0 .3rem}
.k-quellen{margin:0 0 1rem;padding-left:1.3rem;font-size:.88rem;color:var(--s300)}
.k-quellen li{margin:.3rem 0;word-break:break-word}
.personenkarte .knopf{margin-top:.6rem}
@media (max-width:760px){
  .personenkarte{top:auto;bottom:0;left:0;right:0;width:auto;max-height:62%;border-radius:var(--r) var(--r) 0 0}
  .baum-js .baum-viewport{height:min(78vh,620px)}
}
.legende{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:1rem 0 0;padding:0;list-style:none;font-size:.9rem;color:var(--s300)}
.legende li{display:inline-flex;align-items:center;gap:.5rem}
.legende i{display:inline-block;width:1.7rem;height:.9rem;border-radius:5px;border:1px solid var(--s300);background:rgba(255,255,255,.08)}
.legende i.l-fam{background:rgba(42,99,199,.5);border-color:#bed0ee}
.legende i.l-grab{background:rgba(214,221,232,.16);border-color:#cbd5e4}
.legende i.l-kand{border-style:dashed;background:rgba(120,135,160,.14)}
.legende i.l-priv{border:1px dashed var(--s400);background:transparent;border-style:dotted}
.legende i.l-linie,.legende i.l-paar,.legende i.l-vorl{height:0;border:0;border-radius:0;background:none;border-top:2px solid #b9c4d4}
.legende i.l-paar{border-top:2px dotted #9ec0ff}
.legende i.l-vorl{border-top:2px dashed #e8d9b4}
.baum-liste{margin-top:2rem}
.baum-liste h2{font-size:1.7rem}
.l-gruppe{margin:1.6rem 0}
.l-gruppe h3{margin-bottom:.2em}
.l-baum,.l-baum ul{list-style:none;margin:0;padding:0}
.l-baum ul{margin:.45rem 0 .2rem .5rem;padding-left:1.2rem;border-left:2px solid var(--s500)}
.l-baum li{margin:.5rem 0}
.l-name{font-weight:700;color:var(--s50)}
.l-name a{color:var(--s50)}
.l-zusatz{color:var(--s400);font-size:.93rem}
.l-und{color:var(--s400)}

/* Person, Zeitstrahl, Quellen */
.bez h3{font-family:"Instrument Sans",sans-serif;font-size:1rem;font-weight:700;margin:1.2rem 0 .3rem;color:var(--s100)}
.bez ul{margin:.2rem 0 0;padding-left:1.2rem}
.quellen{margin:.4rem 0 1rem;padding-left:1.2rem}
.quellen li{margin:.35rem 0;word-break:break-word}
.varianten{list-style:none;margin:1rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.varianten li{padding:.35rem .9rem;border-radius:999px;border:1px solid var(--rand);background:var(--glas);font-family:"Gloock",serif;color:var(--s100)}
.wid{margin:.8rem 0}
.zeit .jahr{display:inline-block;margin-right:.4rem;color:var(--s300);font-family:"Instrument Sans",sans-serif;font-size:.95rem;font-weight:700}
.zeit-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}
.zeit h3{font-size:1.3rem}
.hinweis.wid{margin:1rem 0}
.prosa ul,.prosa ol{padding-left:1.3rem}
.prosa li{margin:.4rem 0}
.prosa .raster{padding-left:0}
.prosa .tabelle td,.prosa .tabelle th{font-size:.97rem}

/* Formular */
.formular{display:grid;gap:1.1rem;align-content:start}
.feld label{display:block;margin-bottom:.35rem;font-weight:700;color:var(--s50)}
.feld .gedaempft{font-weight:400}
.feld-paar{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:620px){.feld-paar{grid-template-columns:1fr}.suche-start{flex-direction:column}}
.honig{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.haken{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start}
.haken input{width:1.3rem;height:1.3rem;margin-top:.2rem;accent-color:#8fb2f0}
.haken label{font-weight:400;margin:0;color:var(--s200)}
.meldung{margin:0;padding:.9rem 1.1rem;border-radius:12px;border:1px solid var(--rand)}
.meldung.erfolg{border-color:rgba(130,210,170,.5);background:rgba(60,160,110,.14);color:#dff3e8}
.meldung.fehler{border-color:rgba(255,160,160,.5);background:rgba(200,70,70,.14);color:#ffe0e0}
.formular .knopf{justify-self:start;cursor:pointer;font:inherit;font-weight:700}
.formular .knopf:disabled{opacity:.6;cursor:wait}
.formular .knopf.haupt{border:0}
@media print{.baum-buehne,.werkzeug,.zoom{display:none}}

.kopf-breit .lede,.kopf-breit h1{max-width:52rem}

.hero-klein h1{hyphens:manual;-webkit-hyphens:manual}
@media (max-width:620px){
  .hero-klein h1{font-size:clamp(1.8rem,8.2vw,2.4rem)}
  .werkzeug{gap:.6rem}
  .w-suche{flex:1 1 100%;max-width:none}
  .chips{gap:.35rem}
  .chip,.zoom button{font-size:.88rem;padding:.4rem .75rem}
  .w-knoepfe{width:100%;justify-content:space-between;margin-left:0}
  .zoom button#zoom-fit{padding-inline:.7rem}
}
.k-name.k-privat{font-family:"Instrument Sans",sans-serif;font-size:1rem;color:var(--s300)}

/* Brotkrumen, Nachschlagewerk-Etikett, Listen */
.krumen{width:min(100% - 2rem,var(--bahn));margin:1.1rem auto 0;font-size:.92rem}
.krumen ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .55rem;color:var(--s400)}
.krumen li+li::before{content:"›";margin-right:.55rem;color:var(--s500)}
.krumen a{color:var(--s300)}
.krumen li[aria-current]{color:var(--s200)}
.krumen+.hero-klein{padding-top:clamp(1rem,3vw,1.8rem)}
.etikett.s-lexikon{color:#cfe4ea;border-color:rgba(150,200,215,.45);background:rgba(70,150,175,.14)}
.mehr-liste{columns:2;column-gap:2rem;padding-left:1.2rem}
.mehr-liste li{break-inside:avoid}
@media (max-width:620px){.mehr-liste{columns:1}}

/* Sieben Generationen auf der Startseite */
.generationen{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;max-width:46rem}
.generationen li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;align-items:center;padding:.9rem 1.2rem;border:1px solid var(--rand);border-radius:14px;background:var(--glas)}
.generationen li:first-child{border-color:#cfe0ff;box-shadow:0 0 0 1px rgba(207,224,255,.35),0 0 36px rgba(80,140,255,.25)}
.g-nr{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(190,206,238,.55);font-family:"Gloock",serif;font-size:1.25rem;color:var(--s50);background:rgba(42,99,199,.3)}
.g-rolle{display:block;font-size:.9rem;color:var(--s400)}
.g-namen{display:block;font-family:"Gloock",serif;font-size:1.2rem;line-height:1.35;color:var(--s50)}
.g-namen a{color:var(--s50)}
.g-namen .gedaempft{font-family:"Instrument Sans",sans-serif;font-size:.9rem}
.g-und{font-family:"Instrument Sans",sans-serif;font-size:.95rem;color:var(--s400)}
