:root{
  --paper:      #ECE8E0;
  --ink:        #1B1815;
  --ink-soft:   #4B453C;
  --line:       #C6BEAE;
  --umber:      #6B4A34;
  --umber-soft: #8A6A4E;
  --near-black: #14110D;
  --overlay:    rgba(20,17,13,.62);
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--paper); color:var(--ink);
  font-family:'Source Serif 4', serif; font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hero-frame img{ animation:none; transform:scale(1.06); }
  .card img{ transition:none; }
  .card .caption{ transition:none; }
}
a{ color:inherit; }
img{ display:block; max-width:100%; }
.eyebrow{
  font-family:'Inter', sans-serif; font-size:.7rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-soft);
}

/* ---------- Header / Nav (auf jeder Seite gleich) ---------- */
header.site{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem clamp(1.25rem, 4vw, 3.5rem);
  background:rgba(20,17,13,.32);
  backdrop-filter:blur(10px) saturate(1.1);
  -webkit-backdrop-filter:blur(10px) saturate(1.1);
  border-bottom:1px solid rgba(237,234,227,.08);
}
header.site .wordmark{
  font-family:'Libre Caslon Text', serif; font-size:1.05rem;
  letter-spacing:.04em; color:#EDEAE3; text-decoration:none;
}
header.site nav{ display:flex; gap:clamp(1rem,3vw,2.2rem); }
header.site nav a{
  font-family:'Inter', sans-serif; font-size:.82rem; letter-spacing:.12em;
  text-transform:uppercase; text-decoration:none; color:#EDEAE3;
  padding-bottom:2px; border-bottom:1px solid transparent;
  transition:border-color .3s ease;
}
header.site nav a[aria-current="page"]{ border-color:currentColor; }
header.site nav a:hover{ border-color:currentColor; }
header.site nav a:focus-visible, header.site .wordmark:focus-visible{
  outline:2px solid currentColor; outline-offset:4px;
}

/* Hamburger-Menü für schmale Bildschirme */
.nav-toggle{
  display:none; background:none; border:none; cursor:pointer;
  width:2.75rem; height:2.75rem; padding:0; position:relative; z-index:60;
}
.nav-toggle span{
  display:block; position:absolute; left:50%; top:50%; width:1.4rem; height:1px;
  background:#EDEAE3; transform:translate(-50%,-50%); transition:transform .25s ease, opacity .25s ease;
}
.nav-toggle span:first-child{ margin-top:-6px; }
.nav-toggle span:last-child{ margin-top:6px; }
.nav-toggle[aria-expanded="true"] span:first-child{ margin-top:0; transform:translate(-50%,-50%) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:last-child{ margin-top:0; transform:translate(-50%,-50%) rotate(-45deg); }

@media (max-width:680px){
  .nav-toggle{ display:block; }
  header.site nav{
    position:fixed; inset:0; z-index:55;
    flex-direction:column; align-items:center; justify-content:center; gap:2rem;
    background:var(--near-black);
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .25s ease, transform .25s ease, visibility .25s;
  }
  header.site nav.open{ opacity:1; visibility:visible; transform:translateY(0); }
  header.site nav a{ font-size:1rem; }
}

/* Anker-Ziele: Platz für den fixierten Header lassen, sonst verschwindet
   die Überschrift beim Hin-Springen dahinter. */
.hero, #gallery, .page-hero{ scroll-margin-top:5.5rem; }

/* ---------- Hero (Startseite) ---------- */
.hero{ position:relative; height:100svh; overflow:hidden; isolation:isolate; }
.hero-frame{ position:absolute; inset:0; opacity:0; animation:hero-cycle var(--cycle,14s) infinite; animation-delay:var(--d, 0s); }
.hero-frame img{
  width:100%; height:100%; object-fit:cover; filter:saturate(.9) contrast(1.02);
  animation:hero-drift var(--cycle,14s) infinite; animation-delay:var(--d, 0s);
}
@keyframes hero-cycle{ 0%{opacity:0;} 4%{opacity:1;} 24%{opacity:1;} 32%{opacity:0;} 100%{opacity:0;} }
@keyframes hero-drift{ 0%{transform:scale(1.06) translate(0,0);} 100%{transform:scale(1.22) translate(-2.4%,-3%);} }
.hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, var(--overlay) 0%, rgba(20,17,13,.32) 42%, rgba(20,17,13,.55) 100%);
  z-index:1;
}
.hero-content{
  position:relative; z-index:2; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:0 1.5rem; color:#F3F0E9;
}
.hero-content .eyebrow{ color:#D8CFBD; margin-bottom:1.4rem; }
.hero-content h1{
  font-family:'Libre Caslon Text', serif; font-weight:400;
  font-size:clamp(2.1rem, 5.4vw, 4.1rem); line-height:1.14; max-width:16ch;
}
.hero-content .subtitle{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic;
  font-size:clamp(1.4rem, 3vw, 2.1rem); color:#EDEAE3; margin-top:.6rem;
}
.hero-content .thesis{
  margin-top:1.8rem; max-width:44ch; font-style:italic;
  font-size:clamp(.98rem, 1.3vw, 1.15rem); color:#DCD5C8; line-height:1.6;
}
.scroll-cue{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%); z-index:2;
  width:1px; height:2.6rem; background:linear-gradient(180deg, rgba(243,240,233,.7), transparent);
}

/* ---------- Intro / Zitat ---------- */
.intro{ max-width:640px; margin:0 auto; padding:clamp(2.5rem,5vw,3.5rem) 1.5rem clamp(2rem,4vw,3rem); text-align:center; }
.intro p{ font-size:clamp(1.05rem,1.6vw,1.25rem); line-height:1.75; color:var(--ink-soft); }
.intro cite{
  display:block; margin-top:1.6rem; font-family:'Inter', sans-serif; font-style:normal;
  font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--umber);
}

/* ---------- Galerie ---------- */
.gallery-section{ padding:clamp(2.5rem,5vw,3.5rem) clamp(1.25rem,4vw,3.5rem) clamp(3rem,6vw,4rem); }
/* Durchgehende feine Trennlinie zwischen den großen Seitenbereichen */
.section-divider{
  border:none; border-top:1px solid var(--line);
  margin:clamp(2rem,4vw,2.5rem) clamp(1.25rem,4vw,3.5rem);
}
.category-heading{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic;
  font-size:clamp(1.15rem,2vw,1.4rem); color:var(--ink);
  border-bottom:1px solid var(--line); padding-bottom:1rem; margin:0 0 2rem;
}
.category-heading:not(:first-child){ margin-top:clamp(4rem,7vw,5.5rem); }
.category-heading .en{
  font-family:'Inter', sans-serif; font-style:normal; font-size:.72rem;
  letter-spacing:.05em; text-transform:none; color:var(--ink-soft); margin-left:.3rem;
}
.grid{ column-count:4; column-gap:clamp(.6rem,1.2vw,1.1rem); }
@media (min-width:640px){ .grid{ column-count:6; } }
@media (min-width:1000px){ .grid{ column-count:8; } }
.card{
  position:relative; cursor:pointer; background:var(--near-black); overflow:hidden;
  border:none; padding:0; display:block; width:100%; text-align:left;
  break-inside:avoid; margin-bottom:clamp(.6rem,1.2vw,1.1rem);
}
.card .frame{ overflow:hidden; }
.card img{
  width:100%; height:auto; display:block; filter:saturate(.85); transform:scale(1.02);
  transition:transform .7s cubic-bezier(.16,.8,.24,1), filter .5s ease;
}
.card:hover img, .card:focus-visible img{ transform:scale(1.08); filter:saturate(1.05); }
.card .caption{
  position:absolute; left:0; right:0; bottom:0; padding:.9rem 1rem 1rem;
  background:linear-gradient(0deg, rgba(20,17,13,.88) 0%, rgba(20,17,13,0) 100%);
  opacity:0; transform:translateY(6px); transition:opacity .35s ease, transform .35s ease;
}
.card:hover .caption, .card:focus-visible .caption{ opacity:1; transform:translateY(0); }
.card .caption .title{ font-family:'Libre Caslon Text', serif; font-style:italic; font-size:1rem; color:#F3F0E9; }
.card .caption .meta{
  margin-top:.2rem; font-family:'Inter', sans-serif; font-size:.68rem;
  letter-spacing:.08em; text-transform:uppercase; color:#C9BFA8;
}
.card:focus-visible{ outline:2px solid var(--umber-soft); outline-offset:3px; }

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:100; background:#161616;
  display:flex; align-items:center; justify-content:center; padding:clamp(1rem,3vw,2rem);
  opacity:0; visibility:hidden; transition:opacity .35s ease;
}
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox figure{ max-width:90vw; text-align:center; }
.lightbox img{ max-height:88svh; max-width:90vw; width:auto; margin:0 auto; box-shadow:0 30px 70px rgba(0,0,0,.5); display:block; }
.lightbox figcaption{ margin-top:1.1rem; font-family:'Libre Caslon Text', serif; font-style:italic; color:#F3F0E9; font-size:1.05rem; transition:opacity .25s ease; }
.lightbox figcaption .meta{
  display:block; margin-top:.35rem; font-family:'Inter', sans-serif; font-style:normal;
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:#B7AC93;
}
.lb-btn{
  position:absolute; top:50%; transform:translateY(-50%); background:none; border:none; color:#EDEAE3;
  font-family:'Inter', sans-serif; font-size:1.9rem; line-height:1; cursor:pointer; padding:.6rem 1rem; opacity:.75;
  transition:opacity .2s ease;
}
.lb-btn:hover, .lb-btn:focus-visible{ opacity:1; }
.lb-prev{ left:clamp(.25rem,2vw,1.5rem); }
.lb-next{ right:clamp(.25rem,2vw,1.5rem); }
.lb-top-actions{
  position:absolute; top:1.2rem; right:clamp(1rem,3vw,2rem); z-index:1;
  display:flex; align-items:center; gap:clamp(1rem,2.5vw,1.8rem);
}
.lb-close{
  background:none; border:none; color:#EDEAE3;
  font-family:'Inter', sans-serif; font-size:.95rem; letter-spacing:.08em; cursor:pointer; opacity:.75; text-transform:uppercase;
  white-space:nowrap;
}
.lb-close:hover, .lb-close:focus-visible{ opacity:1; }
.lb-maximize{
  background:none; border:none; color:#EDEAE3;
  font-family:'Inter', sans-serif; font-size:.95rem; letter-spacing:.08em; cursor:pointer; opacity:.75; text-transform:uppercase;
  display:flex; align-items:center; gap:.4rem; white-space:nowrap;
}
.lb-maximize:hover, .lb-maximize:focus-visible{ opacity:1; }
.lb-maximize .icon{ font-size:1rem; }

/* Maximierter Zustand: Bild füllt die Fläche, Bildunterschrift blendet aus */
.lightbox.maximized{ padding:0; }
.lightbox.maximized figure{ max-width:100vw; }
.lightbox.maximized img{ max-height:100svh; max-width:100vw; box-shadow:none; }
.lightbox.maximized figcaption{ opacity:0; pointer-events:none; }
.lightbox.maximized .lb-prev, .lightbox.maximized .lb-next{ opacity:0; }
.lightbox.maximized .lb-prev:hover, .lightbox.maximized .lb-next:hover,
.lightbox.maximized:hover .lb-prev, .lightbox.maximized:hover .lb-next{ opacity:.6; }
.lightbox.maximized .lb-close, .lightbox.maximized .lb-maximize{ opacity:0; }
.lightbox.maximized:hover .lb-close, .lightbox.maximized:hover .lb-maximize{ opacity:.75; }

.note{
  max-width:640px; margin:0 auto; padding:0 1.5rem 6rem;
  font-family:'Inter', sans-serif; font-size:.82rem; line-height:1.7; color:var(--ink-soft); text-align:center;
}
.note strong{ color:var(--umber); }

/* ---------- Unterseiten (Biografie, Kontakt) ---------- */
.page-hero{
  padding:clamp(6rem,9vw,7rem) clamp(1.25rem,4vw,3.5rem) clamp(2rem,4vw,2.5rem);
  max-width:760px; margin:0 auto; text-align:center;
}
.page-hero .section-divider{
  width:calc(100vw - 2*clamp(1.25rem,4vw,3.5rem)); max-width:calc(100vw - 2*clamp(1.25rem,4vw,3.5rem));
  margin-left:calc(50% - 50vw + clamp(1.25rem,4vw,3.5rem)); margin-right:calc(50% - 50vw + clamp(1.25rem,4vw,3.5rem));
  margin-top:0; margin-bottom:clamp(2.75rem,5.5vw,3.5rem);
}
.page-hero h1{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic;
  font-size:clamp(1.9rem,4vw,2.6rem);
}
.page-content{
  max-width:640px; margin:0 auto; padding:0 1.5rem clamp(3rem,6vw,4rem);
}
.bio-portrait{
  width:100%; display:block; margin:0 auto 3rem; border:1px solid var(--line);
}
.bio-block{ margin-bottom:2.6rem; }
.bio-block:last-child{ margin-bottom:0; }
.bio-block .lang-label{ margin-bottom:.7rem; }
.bio-block p{ font-size:1.05rem; line-height:1.85; color:var(--ink-soft); }

.contact-card{
  display:grid; gap:1.4rem; padding:2.4rem clamp(1.5rem,4vw,2.6rem);
  border:1px solid var(--line); background:var(--paper);
}
.contact-row{ display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.contact-row dt{
  font-family:'Inter', sans-serif; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--umber);
  min-width:5.5rem;
}
.contact-row dd{ font-size:1.1rem; }
.contact-row a{ text-decoration:none; border-bottom:1px solid var(--line); transition:border-color .25s ease; }
.contact-row a:hover{ border-color:var(--umber); }
.contact-map{ margin-top:2.6rem; border:1px solid var(--line); }
.contact-map figcaption{ margin-top:.6rem; }

footer.site{
  border-top:1px solid var(--line);
  padding:2.4rem clamp(1.25rem,4vw,3.5rem) 3rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
}
footer.site .legal{ display:flex; gap:1.6rem; }
footer.site a{
  font-family:'Inter', sans-serif; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  text-decoration:none; color:var(--ink-soft);
}
footer.site a:hover{ color:var(--umber); }

/* ---------- Texte-Seite ---------- */
.texte-statement{
  max-width:640px; margin:0 auto clamp(2.5rem,5vw,3rem); padding:0 1.5rem;
}
.texte-statement h2{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic;
  font-size:1.4rem; margin-bottom:1.6rem; text-align:center;
}
.texte-statement p{ font-size:1.03rem; line-height:1.85; color:var(--ink-soft); margin-bottom:1.2rem; }
.texte-statement p:last-of-type{ margin-bottom:0; }
.texte-statement .footnotes{
  margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid var(--line);
  font-family:'Inter', sans-serif; font-size:.78rem; line-height:1.8; color:var(--ink-soft);
}
.texte-statement .footnotes p{ font-size:.78rem; margin-bottom:.7rem; }

.text-list-heading{
  max-width:720px; margin:0 auto 1.4rem; padding:0 1.5rem 1rem;
  border-bottom:1px solid var(--line); text-align:center;
}
.text-list-heading.no-line{ border-bottom:none; padding-bottom:0; }
.text-list-heading .heading-text{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic; color:var(--ink);
  font-size:1.4rem; letter-spacing:normal; text-transform:none; display:block;
}
.text-list{
  max-width:720px; margin:0 auto clamp(3rem,6vw,4rem); padding:0 1.5rem;
  display:flex; flex-direction:column; gap:1px; background:var(--line);
  border:1px solid var(--line);
}
.text-item{ background:var(--paper); }
.text-item summary{
  cursor:pointer; padding:1.3rem 1.5rem; list-style:none;
  display:flex; justify-content:space-between; align-items:flex-start; gap:1.2rem;
}
.text-item summary::-webkit-details-marker{ display:none; }
.text-item summary .summary-text{ flex:1; }
.text-item summary .title{
  font-family:'Libre Caslon Text', serif; font-style:italic; font-size:1.05rem; display:block;
}
.text-item summary .text-meta{
  display:block; margin-top:.35rem; font-family:'Inter', sans-serif; font-size:.68rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft);
}
.text-item summary .toggle-icon{
  font-family:'Inter', sans-serif; color:var(--umber); font-size:1.1rem; line-height:1;
  flex-shrink:0; margin-top:.15rem;
}
.text-item[open] summary .toggle-icon{ transform:rotate(45deg); display:inline-block; }
.text-item .text-body{ padding:0 1.5rem 1.8rem; font-size:1rem; line-height:1.85; color:var(--ink-soft); }
.text-item .text-body p{ margin-bottom:1.1rem; }
.text-item .text-body p:last-child{ margin-bottom:0; }
.text-item .text-body .source-note{
  margin-top:1.2rem; font-family:'Inter', sans-serif; font-size:.75rem; color:var(--ink-soft); font-style:italic;
}

/* ---------- Rechtstexte (Impressum, Datenschutz) ---------- */
.legal-content{
  max-width:680px; margin:0 auto; padding:0 1.5rem clamp(3rem,5vw,3.5rem);
  font-size:.9rem; line-height:1.55; color:var(--ink-soft);
}
.legal-content h2{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic; color:var(--ink);
  font-size:1.1rem; margin:1.8rem 0 .6rem;
}
.legal-content h2:first-child{ margin-top:0; }
.legal-content h3{
  font-family:'Inter', sans-serif; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--umber); margin:1.1rem 0 .5rem;
}
.legal-content p{ margin-bottom:.6rem; }
.legal-content ul{ margin:0 0 .6rem 1.1rem; }
.legal-content li{ margin-bottom:.2rem; }
.legal-content .placeholder{
  background:rgba(107,74,52,.12); padding:.05rem .4rem; border-radius:3px; color:var(--umber);
}
.legal-content a{ text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:2px; }
.legal-content a:hover{ text-decoration-color:var(--umber); }

/* ---------- Video (nativer Player) ---------- */
.film-feature{ margin-top:clamp(2.5rem,5vw,3rem); padding-top:clamp(2.5rem,5vw,3rem); border-top:1px solid var(--line); }
.film-feature h2{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic;
  font-size:1.4rem; margin-bottom:1rem; text-align:center;
}
.film-feature p{ font-size:1.03rem; line-height:1.8; color:var(--ink-soft); margin-bottom:1.4rem; text-align:center; }
.site-video{
  width:100%; aspect-ratio:16/9; background:var(--near-black);
  border:1px solid var(--line); display:block;
}

/* ---------- News-Seite ---------- */
.book-feature{
  max-width:820px; margin:0 auto clamp(2.5rem,5vw,3rem); padding:0 1.5rem;
  display:grid; grid-template-columns:minmax(220px,320px) 1fr; gap:clamp(1.6rem,4vw,3rem);
  align-items:center;
}
@media (max-width:640px){ .book-feature{ grid-template-columns:1fr; } }
.book-feature img{ border:1px solid var(--line); }
.book-feature h2{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic;
  font-size:1.5rem; margin-bottom:1rem;
}
.book-feature p{ font-size:1rem; line-height:1.8; color:var(--ink-soft); margin-bottom:1rem; }
.book-feature .book-meta{
  font-family:'Inter', sans-serif; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--umber); margin-bottom:1.2rem; display:block;
}
.book-feature a.book-link{
  font-family:'Inter', sans-serif; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none; border-bottom:1px solid var(--umber); color:var(--umber); padding-bottom:2px;
}

.news-list{ max-width:720px; margin:0 auto; padding:0 1.5rem clamp(5rem,9vw,7rem); }
.news-item{ padding:1.6rem 0; border-top:1px solid var(--line); }
.news-item:last-child{ border-bottom:1px solid var(--line); }
.news-item .news-date{
  font-family:'Inter', sans-serif; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--umber);
  display:block; margin-bottom:.4rem;
}
.news-item h3{
  font-family:'Libre Caslon Text', serif; font-weight:400; font-style:italic; font-size:1.1rem; margin-bottom:.4rem;
}
.news-item p{ font-size:.98rem; line-height:1.75; color:var(--ink-soft); }

/* ---------- Sprach-Umschalter (DE/EN) ---------- */
.lang-toggle{
  display:flex; justify-content:center; margin:0 auto 2rem; border:1px solid var(--line); border-radius:999px;
  overflow:hidden; font-family:'Inter', sans-serif; width:fit-content;
}
.lang-btn{
  background:none; border:none; cursor:pointer; padding:.45rem 1.1rem;
  font-family:'Inter', sans-serif; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); transition:background .2s ease, color .2s ease;
}
.lang-btn + .lang-btn{ border-left:1px solid var(--line); }
.lang-btn[aria-pressed="true"]{ background:var(--line); color:var(--ink); }
.lang-btn:focus-visible{ outline:2px solid var(--umber-soft); outline-offset:2px; }
[data-lang-content][hidden]{ display:none; }
