/* Schriften lokal eingebunden (DSGVO: keine Verbindung zu Google-Servern) */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  src:url('/fonts/archivo-latin-wght-normal.woff2') format('woff2-variations');
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-display:swap;
  font-weight:200 800;
  src:url('/fonts/newsreader-latin-opsz-normal.woff2') format('woff2-variations');
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-display:swap;
  font-weight:200 800;
  src:url('/fonts/newsreader-latin-opsz-italic.woff2') format('woff2-variations');
}
  :root{
    --accent:#E89610;
    --accent-soft:rgba(232,150,16,0.12);
    --bg:#26241F;
    --panel:#211F1B;
    --paper:#E8E3DA;
    --paper-ink:#26241F;
    --line:rgba(240,235,225,0.13);
    --line-strong:rgba(240,235,225,0.26);
    --ink:#F0EBE1;
    --body:#BDB5A7;
    --sub:#948C7E;
    --muted:#6E6759;
    --sans:'Archivo',-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
    --serif:'Newsreader',Georgia,"Times New Roman",serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:84px;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
  body{
    background:var(--bg); color:var(--ink);
    font-family:var(--sans);
    -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }
  ::selection{background:var(--accent);color:#1A1815;}
  a{color:inherit;}

  #progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--accent);z-index:100;}

  /* ---------- Nav ---------- */
  nav{
    position:sticky;top:0;z-index:50;
    display:flex;align-items:center;justify-content:space-between;gap:20px;
    padding:18px clamp(20px,5vw,64px);
    background:rgba(38,36,31,0.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
  }
  nav .brand{font-weight:500;font-size:13px;letter-spacing:0.26em;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap;}
  nav .brand em{font-style:normal;color:var(--accent);}
  nav .links{display:flex;align-items:center;gap:clamp(14px,2vw,26px);overflow-x:auto;scrollbar-width:none;}
  nav .links::-webkit-scrollbar{display:none;}
  nav .links a{
    font-size:10.5px;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;
    color:var(--sub);text-decoration:none;white-space:nowrap;transition:color .3s;
  }
  nav .links a:hover{color:var(--ink);}
  nav .links a.cta{color:var(--accent);}

  /* ---------- Layout ---------- */
  section{position:relative;border-top:1px solid var(--line);padding:clamp(84px,13vh,160px) clamp(20px,6vw,96px);}
  .wrap{max-width:1240px;margin:0 auto;}
  .wrap-narrow{max-width:1040px;margin:0 auto;}

  .kicker{
    display:flex;align-items:center;gap:14px;
    font-size:10.5px;font-weight:400;letter-spacing:0.32em;text-transform:uppercase;
    color:var(--accent);margin-bottom:34px;
  }
  .kicker::before{content:"";width:26px;height:1px;background:var(--accent);flex:none;}

  h2{
    font-weight:300;font-size:clamp(26px,3.6vw,52px);line-height:1.16;
    letter-spacing:0.11em;text-transform:uppercase;margin-bottom:36px;
  }
  .lead{font-family:var(--serif);font-weight:300;font-size:clamp(19px,1.9vw,26px);line-height:1.58;color:#D8D0C2;max-width:780px;}
  .body{font-family:var(--serif);font-weight:300;font-size:clamp(17px,1.4vw,20px);line-height:1.72;color:var(--body);}
  .body b{color:var(--ink);font-weight:400;}
  .statement{
    font-family:var(--serif);font-style:italic;font-weight:300;
    font-size:clamp(22px,3vw,38px);line-height:1.3;letter-spacing:0;
  }

  /* ---------- Paper sections ---------- */
  .paper{background:var(--paper);color:var(--paper-ink);}
  .paper h2,.paper .statement{color:var(--paper-ink);}
  .paper .lead{color:#4A463E;}
  .paper .body{color:#4A463E;}
  .paper .body b{color:var(--paper-ink);}
  .paper .kicker{color:#9A6A0C;}
  .paper .kicker::before{background:#9A6A0C;}
  .paper .these{border-color:rgba(38,36,31,0.16);}
  .paper .these:last-of-type{border-bottom-color:rgba(38,36,31,0.16);}
  .paper .these h3{color:var(--paper-ink);}
  .paper .these p{color:#4A463E;}
  .paper .these p b{color:var(--paper-ink);}
  .paper .these .no{-webkit-text-stroke:1px #9A6A0C;}
  .paper .wide-photo{border-color:rgba(38,36,31,0.2);}

  /* ---------- Reveal ---------- */
  [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,.7,.3,1),transform .9s cubic-bezier(.16,.7,.3,1);}
  [data-reveal].in{opacity:1;transform:none;}
  h1 .w, h2[data-words] .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:0.14em;margin-bottom:-0.14em;}
  h1 .w > span, h2[data-words] .w > span{display:inline-block;transform:translateY(110%);transition:transform .9s cubic-bezier(.16,.8,.26,1);}
  h1.in .w > span, h2[data-words].in .w > span{transform:none;}
  @media (prefers-reduced-motion: reduce){
    [data-reveal]{opacity:1;transform:none;transition:none;}
    h1 .w > span, h2[data-words] .w > span{transform:none;transition:none;}
  }

  /* ---------- Hero ---------- */
  header#top{position:relative;overflow:hidden;border-top:none;}
  #flow{position:absolute;inset:0;width:100%;height:100%;opacity:.28;pointer-events:none;}
  .hero-grid{
    position:relative;max-width:1240px;margin:0 auto;
    padding:clamp(64px,12vh,140px) clamp(20px,6vw,96px) clamp(56px,9vh,110px);
    display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:clamp(40px,6vw,84px);align-items:center;
  }
  .hero-label{font-size:10.5px;font-weight:400;letter-spacing:0.34em;text-transform:uppercase;color:var(--accent);margin-bottom:34px;}
  h1{
    font-weight:300;font-size:clamp(30px,4.6vw,62px);line-height:1.14;
    letter-spacing:0.1em;text-transform:uppercase;margin-bottom:12px;
  }
  h1 .accent{color:var(--accent);}
  .hero-sub{font-family:var(--serif);font-weight:300;font-size:clamp(19px,1.85vw,25px);line-height:1.6;color:#D8D0C2;max-width:600px;margin:34px 0 0;}
  .hero-photo{justify-self:center;width:100%;max-width:430px;}
  .hero-photo .frame{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line-strong);}
  .hero-photo img{width:100%;height:112%;object-fit:cover;object-position:center 28%;display:block;will-change:transform;}
  .hero-photo .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 72%,rgba(26,24,21,.5));pointer-events:none;}
  .hero-meta{
    display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;
    border-top:1px solid var(--line);
    font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--sub);
  }
  .hero-meta span:first-child{color:var(--ink);}
  .scroll-hint{position:relative;display:flex;justify-content:center;padding-bottom:34px;}
  .scroll-hint span{width:1px;height:52px;background:linear-gradient(180deg,var(--accent),transparent);display:block;animation:drop 2.2s ease-in-out infinite;}
  @keyframes drop{0%{transform:scaleY(0);transform-origin:top;}45%{transform:scaleY(1);transform-origin:top;}55%{transform:scaleY(1);transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

  /* ---------- Marquee ---------- */
  .marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:18px 0;background:var(--panel);}
  .marquee .track{display:flex;width:max-content;animation:scrollx 44s linear infinite;}
  .marquee:hover .track{animation-play-state:paused;}
  .marquee .item{
    font-weight:400;font-size:clamp(11px,1.1vw,13px);letter-spacing:0.28em;text-transform:uppercase;
    color:var(--muted);white-space:nowrap;padding:0 22px;
  }
  .marquee .item b{color:var(--accent);font-weight:400;padding-right:44px;}
  @keyframes scrollx{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  @media (prefers-reduced-motion: reduce){.marquee .track{animation:none;}}

  /* ---------- Stats ---------- */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
  .stat{background:var(--bg);padding:clamp(28px,3.5vw,48px);}
  .stat .num{font-family:var(--serif);font-weight:200;font-size:clamp(42px,5vw,72px);letter-spacing:-0.01em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;}
  .stat .num small{font-size:0.38em;font-weight:300;color:var(--accent);letter-spacing:0.04em;}
  .stat .lbl{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:10.5px;line-height:1.9;letter-spacing:0.13em;text-transform:uppercase;color:var(--sub);}

  /* ---------- Haltung ---------- */
  .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(28px,4vw,56px);}
  .wide-photo{width:100%;aspect-ratio:16/7;overflow:hidden;border:1px solid var(--line-strong);margin-top:clamp(40px,6vw,72px);}
  .wide-photo img{width:100%;height:118%;object-fit:cover;object-position:center 30%;display:block;will-change:transform;}
  .caption{
    display:flex;justify-content:space-between;gap:14px;margin-top:10px;padding-top:9px;
    border-top:1px solid var(--line);
    font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--sub);
  }
  .paper .caption{border-top-color:rgba(38,36,31,0.2);color:#6E6759;}
  .caption span:first-child{color:var(--ink);}
  .paper .caption span:first-child{color:var(--paper-ink);}

  /* ---------- Cards ---------- */
  .grouphead{display:flex;align-items:center;gap:14px;margin:0 0 24px;}
  .grouphead span.bar{width:22px;height:1px;background:var(--accent);}
  .grouphead span.t{font-size:10.5px;font-weight:400;letter-spacing:0.3em;text-transform:uppercase;color:var(--ink);}
  .grouphead span.n{font-size:10.5px;color:var(--muted);letter-spacing:0.2em;}
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:clamp(48px,7vw,80px);}
  .card{background:var(--bg);padding:clamp(28px,3.5vw,46px);display:flex;flex-direction:column;position:relative;overflow:hidden;transition:background .4s;}
  .card::before{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.3,1);}
  .card:hover{background:#2E2B24;}
  .card:hover::before{transform:scaleX(1);}
  .card h3{font-weight:400;font-size:15px;letter-spacing:0.2em;text-transform:uppercase;margin-bottom:8px;}
  .card .role{font-size:10px;font-weight:400;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;}
  .card p{font-family:var(--serif);font-weight:300;font-size:17px;line-height:1.68;color:var(--body);margin-bottom:26px;flex:1;}
  .card p b{color:var(--ink);font-weight:400;}
  .linkbtn{align-self:flex-start;display:inline-flex;align-items:center;gap:11px;text-decoration:none;}
  .linkbtn .circ{
    width:32px;height:32px;flex:none;border:1px solid var(--accent);border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;color:var(--accent);font-size:13px;
    transition:background .3s,color .3s,transform .3s;
  }
  .linkbtn:hover .circ{background:var(--accent);color:#1A1815;transform:translate(2px,-2px);}
  .linkbtn .t{font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);font-weight:400;}

  /* ---------- Thesen ---------- */
  .these{
    display:grid;grid-template-columns:minmax(64px,96px) 1fr;gap:clamp(20px,4vw,56px);
    padding:clamp(30px,3.5vw,46px) 0;border-top:1px solid var(--line);align-items:start;
  }
  .these:last-of-type{border-bottom:1px solid var(--line);}
  .these .no{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.4vw,46px);line-height:1;color:transparent;-webkit-text-stroke:1px var(--accent);}
  .these h3{font-weight:400;font-size:clamp(15px,1.5vw,19px);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:18px;}
  .these p{font-family:var(--serif);font-weight:300;font-size:clamp(17px,1.5vw,21px);line-height:1.68;color:var(--body);max-width:720px;}
  .these p b{color:var(--ink);font-weight:400;}

  /* ---------- Reisen ---------- */
  .trips{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(28px,3vw,44px);}
  .trip{border-top:1px solid var(--accent);padding-top:24px;transition:transform .45s cubic-bezier(.2,.7,.3,1);}
  .trip:hover{transform:translateY(-5px);}
  .trip .head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:20px;}
  .trip h3{font-weight:400;font-size:15px;letter-spacing:0.2em;text-transform:uppercase;}
  .trip .yr{font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--sub);white-space:nowrap;}
  .trip p{font-family:var(--serif);font-weight:300;font-size:17px;line-height:1.68;color:var(--body);margin-bottom:16px;}
  .trip .q{font-family:var(--serif);font-style:italic;font-weight:300;font-size:17.5px;line-height:1.5;color:var(--ink);}

  /* ---------- Ultra ---------- */
  #ultra{background:var(--panel);overflow:hidden;}
  .ultra-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(30px,5vw,70px);align-items:end;margin-bottom:clamp(40px,6vw,70px);}
  .ultra-big{font-weight:300;font-size:clamp(34px,5.4vw,74px);line-height:1.1;letter-spacing:0.09em;text-transform:uppercase;}
  .ultra-big .accent{color:var(--accent);}
  #route{width:100%;height:auto;display:block;margin:clamp(30px,5vw,60px) 0;}
  #route path.line{stroke:var(--accent);stroke-width:1.5;fill:none;stroke-linecap:round;}
  #route path.ghost{stroke:rgba(240,235,225,0.12);stroke-width:1.5;fill:none;stroke-linecap:round;}
  #route text{fill:var(--sub);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-family:var(--sans);}
  .races{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
  .race{background:var(--panel);padding:clamp(28px,3.5vw,46px);}
  .race .yr{font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
  .race h3{font-weight:400;font-size:15px;letter-spacing:0.2em;text-transform:uppercase;margin-bottom:20px;}
  .race ul{list-style:none;}
  .race li{font-family:var(--serif);font-weight:300;font-size:16.5px;line-height:1.75;color:var(--body);padding-left:20px;position:relative;}
  .race li::before{content:"—";position:absolute;left:0;color:var(--accent);}
  .race li b{color:var(--ink);font-weight:400;}

  /* ---------- Bühnen ---------- */
  .rows{display:flex;flex-direction:column;}
  .row{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:14px clamp(24px,4vw,48px);padding:clamp(24px,3vw,36px) 0;
    border-top:1px solid var(--line);align-items:center;
  }
  .rows .row:last-child{border-bottom:1px solid var(--line);}
  .row h3{font-weight:400;font-size:14px;letter-spacing:0.2em;text-transform:uppercase;}
  .row p{font-family:var(--serif);font-weight:300;font-size:17px;line-height:1.66;color:var(--body);}
  .row p b{color:var(--ink);font-weight:400;}
  .row .linkbtn{justify-self:start;}

  /* ---------- Kontakt ---------- */
  #kontakt{background:var(--panel);}
  .contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(28px,4vw,48px);margin-bottom:64px;}
  .contact-grid .lbl{font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:var(--sub);margin-bottom:14px;}
  .contact-grid .val{font-family:var(--serif);font-weight:300;font-size:clamp(19px,1.8vw,24px);color:var(--ink);line-height:1.4;}
  .contact-grid a.val{text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;transition:color .3s;}
  .contact-grid a.val:hover{color:var(--accent);}
  footer{
    max-width:1040px;margin:clamp(60px,9vh,110px) auto 0;padding-top:26px;border-top:1px solid var(--line);
    display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
    font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);
  }