*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
/* Layout: Menagerie-Plakat als Kopf, danach ruhige Lesespalte; Chronik als Zeitstrahl 1907–2032 */
:root{
  --bg:#f3f1f4;          /* kühles Elefantengrau-Weiß */
  --paper:#ffffff;
  --ink:#1f1b22;
  --muted:#5f5866;
  --line:#d8d2dc;
  --beet:#9b1e4b;        /* Runkelrübe */
  --beet-soft:#f6e3ea;
  --hide:#6f6a72;        /* Elefantenhaut */
  --f-display:Rockwell,"Rockwell Nova","Roboto Slab","Bookman Old Style","DejaVu Serif",Georgia,serif;
  --f-body:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --f-label:"Avenir Next Condensed","Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#17141a;--paper:#211d25;--ink:#ece7ef;--muted:#a69fad;--line:#3a3340;
  --beet:#e46a93;--beet-soft:#3a1b28;--hide:#9c96a2;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#17141a;--paper:#211d25;--ink:#ece7ef;--muted:#a69fad;--line:#3a3340;
  --beet:#e46a93;--beet-soft:#3a1b28;--hide:#9c96a2;color-scheme:dark}

body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:1.0625rem;line-height:1.65}
.wrap{max-width:68rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--f-display);font-weight:800;line-height:1.1;text-wrap:balance;margin:0}
p{margin:0}
a{color:var(--beet);text-underline-offset:3px}
a:focus-visible{outline:2px solid var(--beet);outline-offset:3px;border-radius:2px}
.label{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;color:var(--beet)}

/* Kopf: Plakat */
.navbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 6px 16px -12px rgba(0,0,0,.35)}
.navbar .wrap{max-width:68rem}
html{scroll-padding-top:5rem}
.nav{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;justify-content:space-between;align-items:center;padding-block:.8rem}
.nav .brand{font-family:var(--f-display);font-size:1.1rem}
.nav ul{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;list-style:none;margin:0;padding:0;font-family:var(--f-label);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.95rem}
.nav a{color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--beet)}

.poster{padding-block:clamp(2.5rem,7vw,5rem) clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2.5rem;align-items:end}
.poster .kicker{margin-bottom:1rem}
.poster h1{font-size:clamp(3rem,11vw,7.5rem);letter-spacing:-.01em}
.poster h1 span{display:block;color:var(--beet)}
.poster .sub{margin-top:1.25rem;max-width:34rem;font-size:1.2rem;color:var(--muted)}
.next{background:var(--paper);border:2px solid var(--ink);padding:1.5rem 1.5rem 1.25rem;display:grid;gap:.5rem}
.next .year{font-family:var(--f-display);font-size:clamp(3.5rem,9vw,5.5rem);line-height:1;color:var(--beet);font-variant-numeric:tabular-nums}
.next .meta{font-family:var(--f-label);font-size:1.1rem;font-weight:500;letter-spacing:.04em}
.next .note{font-size:.95rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.6rem}

.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.facts div{padding:1rem .75rem;display:grid;gap:.15rem}
.facts div+div{border-left:1px solid var(--line)}
.facts b{font-family:var(--f-display);font-weight:400;font-size:1.6rem;font-variant-numeric:tabular-nums}
.facts span{font-family:var(--f-label);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;color:var(--muted)}

section{padding-block:clamp(3rem,7vw,5rem)}
.head{display:grid;gap:.6rem;margin-bottom:2rem;max-width:44rem}
.head h2{font-size:clamp(2rem,5vw,3rem)}
.lead{font-size:1.15rem;color:var(--muted)}

/* Geschichte: Ablauf Februar 1857 */
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem;counter-reset:s}
.steps li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:1rem}
.steps .when{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;color:var(--beet);padding-top:.2rem}
.steps h3{font-size:1.25rem;margin-bottom:.3rem}
.steps p{color:var(--ink)}
.who{display:grid;gap:1.25rem;align-content:start}
.who p{max-width:36rem}
.trial{background:var(--beet-soft);padding:1.5rem;display:grid;gap:.6rem}
.trial h3{font-size:1.35rem}

/* Kitzelbach */
.kitzel{background:var(--ink);color:var(--bg)}
.kitzel .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2.5rem;align-items:center}
.kitzel .big{font-family:var(--f-display);font-size:clamp(2.6rem,9vw,6rem);line-height:1;color:var(--bg)}
.kitzel .big em{font-style:normal;color:var(--beet)}
.kitzel p{font-size:1.15rem;max-width:32rem}
.kitzel .label{color:var(--beet)}

/* Chronik: Zeitstrahl */
.timeline{overflow-x:auto;padding-bottom:.5rem}
.tl{display:grid;grid-template-columns:repeat(6,minmax(9.5rem,1fr));min-width:58rem;position:relative}
.tl::before{content:"";position:absolute;left:0;right:0;top:calc(4rem - 1.5px);height:3px;background:var(--ink)}
.tl li{list-style:none;display:grid;grid-template-rows:auto 2.2rem auto;gap:.5rem;padding-right:1rem}
.tl .yr{font-family:var(--f-display);font-size:2.4rem;line-height:1;font-variant-numeric:tabular-nums}
.tl .dot{width:1.1rem;height:1.1rem;border-radius:50%;background:var(--paper);border:3px solid var(--ink);align-self:center;position:relative;z-index:1}
.tl .jub{font-family:var(--f-label);text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;font-weight:600;color:var(--muted)}
.tl p{font-size:.98rem}
.tl .future .yr{color:var(--beet)}
.tl .future .dot{background:var(--beet);border-color:var(--beet)}
.tl ol{display:contents}
ol.tl{margin:0;padding:0}

/* Erinnerungsorte */
.places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.places article{padding:1.5rem 1.25rem 1.5rem 0;display:grid;gap:.5rem;align-content:start;border-bottom:1px solid var(--line)}
.places article:not(:nth-child(3n+1)){padding-left:1.25rem;border-left:1px solid var(--line)}
.places h3{font-size:1.3rem}
.places .label{color:var(--hide)}

/* Filme */
.videos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.video{display:grid;gap:.6rem;align-content:start;text-decoration:none;color:var(--ink)}
.screen{position:relative;aspect-ratio:16/9;max-width:100%;background:var(--ink);display:grid;place-items:center;overflow:hidden}
.screen::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.04) 3px 4px)}
.play{width:4rem;height:4rem;border-radius:50%;background:var(--beet);display:grid;place-items:center;transition:transform .2s}
.play::before{content:"";border-style:solid;border-width:.7rem 0 .7rem 1.15rem;border-color:transparent transparent transparent #fff;margin-left:.3rem}
.tag{position:absolute;left:.75rem;bottom:.6rem;font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--bg)}
.vt{font-family:var(--f-display);font-size:1.15rem;line-height:1.25;text-wrap:balance}
.vm{font-family:var(--f-label);font-size:.95rem;letter-spacing:.04em;color:var(--muted)}
.video:hover .vt,.video:focus-visible .vt{color:var(--beet)}
.video:focus-visible{outline:2px solid var(--beet);outline-offset:4px}
@media (prefers-reduced-motion:no-preference){.video:hover .play{transform:scale(1.08)}}
@media (max-width:820px){.videos{grid-template-columns:minmax(0,1fr)}}

/* Links */
.more{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;margin-top:.25rem}
.more::after{content:" ↗"}
.linkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;border-top:2px solid var(--ink);padding-top:1.5rem}
.lgroup h3{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.95rem;color:var(--muted);margin-bottom:.75rem}
.lgroup ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.lgroup li{display:grid;gap:.1rem}
.lgroup li a{font-weight:600;overflow-wrap:anywhere}
.lgroup li a::after{content:" ↗";font-weight:400}
.lgroup li span{font-size:.92rem;color:var(--muted)}
@media (max-width:820px){.linkgrid{grid-template-columns:minmax(0,1fr)}}

/* Karte */
.mapwrap{margin-top:2.5rem;display:grid;gap:.75rem}
.map{position:relative;aspect-ratio:16/7;max-width:100%;background:var(--paper);border:2px solid var(--ink);overflow:hidden;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px}
.map-ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:.6rem;text-align:center;padding:1.25rem}
.map-addr{font-family:var(--f-display);font-size:1.15rem;line-height:1.35;background:var(--paper);padding:.5rem .9rem}
.map-note{font-size:.92rem;color:var(--muted);background:var(--paper);padding:.2rem .6rem;max-width:30rem}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.maplinks{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.9rem}
.maplinks a::after{content:" ↗"}
@media (max-width:600px){.map{aspect-ratio:4/5}}

/* Fest 2032 */
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem}
.visit dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem 1.5rem;align-content:start}
.visit dt{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.95rem;color:var(--muted);padding-top:.15rem}
.visit dd{margin:0}
.callout{border:2px solid var(--ink);padding:1.5rem;display:grid;gap:.6rem;align-content:start;background:var(--paper)}
.callout h3{font-size:1.4rem}

footer{border-top:2px solid var(--ink);padding-block:2rem 3rem;font-size:.95rem;color:var(--muted)}
footer .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}
footer ul{margin:.5rem 0 0;padding-left:1.1rem;display:grid;gap:.3rem}

/* Videos mit Einwilligung */
.screen{border:0;padding:0;cursor:pointer;width:100%;font:inherit}
.screen:focus-visible{outline:2px solid var(--beet);outline-offset:4px}
.consent-note{position:absolute;left:.75rem;right:.75rem;top:.6rem;font-family:var(--f-label);font-size:.8rem;color:var(--bg);opacity:.8;text-align:left}
.screen iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:2}
.video .vm a{color:var(--muted)}
.video:hover .vt{color:var(--ink)}

/* Einwilligungs-Hinweis */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--paper);border-top:2px solid var(--ink);
  padding-block:1rem calc(1rem + env(safe-area-inset-bottom,0px));
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  box-shadow:0 -8px 24px rgba(0,0,0,.12)}
.cookie .in{max-width:68rem;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}
.cookie p{max-width:44rem;font-size:.95rem}
.cookie .btns{display:flex;gap:.75rem;flex-wrap:wrap}
.btn{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.95rem;padding:.65rem 1.25rem;border:2px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.btn.primary{background:var(--beet);border-color:var(--beet);color:#fff}
.btn:focus-visible{outline:2px solid var(--beet);outline-offset:3px}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--beet);cursor:pointer;text-transform:inherit;letter-spacing:inherit}

/* Unterseiten */
.page{padding-block:3rem 4rem}
.page .legal-body{max-width:44rem;display:grid;gap:.6rem}
.page h1{font-size:clamp(2.2rem,6vw,3.5rem);margin-bottom:1rem}
.page h2{font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:1rem;color:var(--muted);margin-top:1.25rem}
.sel{user-select:all}

.footlinks{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;font-family:var(--f-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.9rem}
.sel{user-select:all}
footer h3{font-family:var(--f-label);text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;color:var(--ink)}

@media (max-width:820px){
  .poster,.story,.kitzel .wrap,.visit,footer .wrap{grid-template-columns:minmax(0,1fr)}
  .places{grid-template-columns:minmax(0,1fr)}
  .places article,.places article:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts div:nth-child(3){border-left:0}
  .facts div:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:600px){.nav{flex-wrap:nowrap;gap:1rem}.nav ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav ul::-webkit-scrollbar{display:none}.nav li{white-space:nowrap}}
@media (max-width:460px){.steps li{grid-template-columns:minmax(0,1fr);gap:.25rem}}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
