
  :root{
    --ink:#0d0d0f;
    --charcoal:#161619;
    --charcoal-2:#1e1e22;
    --charcoal-3:#26262b;
    --line:#34343a;
    --paper:#f4f2ee;
    --white:#ffffff;
    --muted:#a9a9b2;
    --crimson:#c43e45;
    --crimson-bright:#e14e56;
    --brass:#c9a24b;
    --brass-dim:#8a7233;
    --radius:12px;
    --radius-sm:8px;
    --radius-lg:20px;
    --radius-xl:28px;
    --radius-pill:999px;
    --ease-bounce:cubic-bezier(.34,1.56,.64,1);
    --ease-soft:cubic-bezier(.4,0,.2,1);
    --maxw:1200px;
    --pad:clamp(1.25rem,4vw,3rem);
    --serif:"Source Serif 4",Georgia,serif;
    --display:"Oswald",Impact,sans-serif;
    --mono:"IBM Plex Mono",monospace;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  }

  body{
    background:var(--ink);
    color:var(--white);
    font-family:var(--serif);
    font-size:1.0625rem;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }

  a{color:inherit}
  img{max-width:100%;display:block}

  /* Skip link – accessibility */
  .skip{
    position:absolute;left:.5rem;top:-4rem;z-index:200;
    background:var(--crimson);color:#fff;padding:.65rem 1.1rem;
    font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
    text-decoration:none;border-radius:var(--radius);
    transition:top .18s ease;
  }
  .skip:focus{top:.5rem}

  :focus-visible{
    outline:3px solid var(--brass);
    outline-offset:3px;
  }

  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}

  .eyebrow,
  .sec-head p.eyebrow,
  .ueber-copy p.eyebrow,
  .ueber-copy p.eyebrow:first-of-type,
  .ueber-text p.eyebrow,
  .join p.eyebrow{
    font-family:var(--display);
    text-transform:uppercase;
    letter-spacing:.28em;
    font-size:.72rem;
    font-weight:500;
    color:var(--crimson);
    max-width:none;
    margin:0 0 .2rem;
    display:inline-flex;align-items:center;gap:.7rem;
  }
  /* Instrument-Linien-Akzent vor dem Eyebrow-Text */
  .eyebrow .tch-instrument{
    width:2.6rem;height:1.4rem;color:var(--crimson);flex:none;
  }
  .eyebrow .tch-instrument svg{width:100%;height:100%;display:block}
  /* Fallback-Strich, falls kein Instrument gesetzt ist */
  .eyebrow.no-icon::before{
    content:"";width:2.2rem;height:1px;background:var(--crimson);display:inline-block;
  }

  h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.02;letter-spacing:-.01em}
  h2{
    font-size:clamp(2rem,5vw,3.4rem);
    text-transform:uppercase;
    margin:.4rem 0 1.4rem;
  }
  h2 .accent{color:var(--crimson)}

  /* ---------- staff-line signature ---------- */
  .staff{
    height:34px;position:relative;overflow:hidden;
    background:
      linear-gradient(var(--line),var(--line)) 0 6px/100% 1px no-repeat,
      linear-gradient(var(--line),var(--line)) 0 13px/100% 1px no-repeat,
      linear-gradient(var(--line),var(--line)) 0 20px/100% 1px no-repeat,
      linear-gradient(var(--line),var(--line)) 0 27px/100% 1px no-repeat;
  }

  /* ============ HEADER ============ */
  header.site{
    position:sticky;top:0;z-index:100;
    background:rgba(13,13,15,.82);
    backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);
  }
  .bar{
    display:flex;align-items:center;justify-content:space-between;
    gap:1rem;height:76px;
  }
  .logo{display:flex;align-items:center;gap:.85rem;text-decoration:none}
  .logo-mark{
    width:150px;height:52px;flex:none;border:1px dashed var(--line);
    border-radius:var(--radius);display:grid;place-items:center;
    background:var(--charcoal-2);
    color:var(--muted);font-family:var(--mono);font-weight:400;font-size:.62rem;
    letter-spacing:.16em;text-transform:uppercase;transition:transform .3s var(--ease-bounce),border-color .2s;
  }
  .logo:hover .logo-mark{transform:rotate(-2deg) scale(1.03);border-color:var(--brass-dim)}
  .logo-mark::after{content:"Logo"}

  nav.primary ul{list-style:none;display:flex;gap:.35rem;align-items:center}
  nav.primary a{
    font-family:var(--display);text-transform:uppercase;letter-spacing:.09em;
    font-size:.82rem;font-weight:400;text-decoration:none;color:var(--muted);
    padding:.55rem 1rem;border-radius:var(--radius-pill);transition:color .2s,background .2s var(--ease-soft),transform .2s var(--ease-bounce);
  }
  nav.primary a:hover,nav.primary a:focus-visible{color:var(--white);background:var(--charcoal-3);transform:translateY(-1px)}
  .nav-cta{
    color:var(--white)!important;background:var(--crimson);
    padding:.6rem 1.2rem!important;box-shadow:0 3px 12px rgba(196,62,69,.3);
  }
  .nav-cta:hover,.nav-cta:focus-visible{background:var(--crimson-bright)!important;transform:translateY(-2px) scale(1.04)!important}

  .menu-toggle{
    display:none;background:none;border:1px solid var(--line);
    color:#fff;width:46px;height:46px;border-radius:var(--radius-sm);
    cursor:pointer;align-items:center;justify-content:center;transition:transform .2s var(--ease-bounce),border-color .2s;
  }
  .menu-toggle:hover{transform:scale(1.05);border-color:var(--brass)}
  .menu-toggle svg{width:22px;height:22px}

  /* ============ HERO ============ */
  .hero{position:relative;isolation:isolate;overflow:hidden}
  .hero-media{
    position:absolute;inset:0;z-index:-2;
    background:
      linear-gradient(135deg,#1b1b1f 0%,#0d0d0f 60%),
      radial-gradient(circle at 70% 20%,rgba(196,62,69,.22),transparent 55%);
  }
  /* video/image placeholder look */
  .hero-media::after{
    content:"";position:absolute;inset:0;
    background-image:
      repeating-linear-gradient(45deg,rgba(255,255,255,.015) 0 2px,transparent 2px 9px);
  }
  .hero-overlay{
    position:absolute;inset:0;z-index:-1;
    background:linear-gradient(180deg,rgba(13,13,15,.35),rgba(13,13,15,.9));
  }
  .hero .wrap{
    min-height:clamp(560px,86vh,820px);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding-block:clamp(3rem,10vh,7rem) clamp(2.5rem,6vh,4rem);
  }
  .hero-placeholder-tag{
    position:absolute;top:1.4rem;right:1.4rem;z-index:1;
    font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);border:1px dashed var(--line);padding:.45rem .9rem;border-radius:var(--radius-pill);
    display:inline-flex;align-items:center;gap:.5rem;background:rgba(13,13,15,.5);
  }
  .hero-placeholder-tag::before{content:"▶";color:var(--crimson)}
  .hero h1{
    font-size:clamp(3rem,10vw,7.5rem);
    text-transform:uppercase;
    max-width:14ch;
  }
  .hero h1 em{font-style:normal;color:var(--crimson);display:block}
  .hero-sub{
    font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.35rem);
    color:var(--paper);max-width:52ch;margin:1.5rem 0 2rem;
  }
  .hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}

  .btn{
    font-family:var(--display);text-transform:uppercase;letter-spacing:.09em;
    font-weight:500;font-size:.9rem;text-decoration:none;cursor:pointer;
    padding:.95rem 1.9rem;border-radius:var(--radius-pill);border:1px solid transparent;
    display:inline-flex;align-items:center;gap:.6rem;transition:transform .28s var(--ease-bounce),background .2s var(--ease-soft),border-color .2s,box-shadow .28s var(--ease-soft);
  }
  .btn-primary{background:var(--crimson);color:#fff;box-shadow:0 4px 14px rgba(196,62,69,.28)}
  .btn-primary:hover,.btn-primary:focus-visible{background:var(--crimson-bright);transform:translateY(-3px) scale(1.03);box-shadow:0 10px 26px rgba(196,62,69,.42)}
  .btn-primary:active{transform:translateY(-1px) scale(.99)}
  .btn-ghost{border-color:var(--line);color:#fff}
  .btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--brass);color:var(--brass);transform:translateY(-3px) scale(1.03)}

  .hero-strip{
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    background:var(--charcoal);
  }
  .hero-strip .wrap{
    display:flex;flex-wrap:wrap;gap:1.5rem 3rem;justify-content:space-between;
    padding-block:1.4rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;color:var(--muted);
    text-transform:uppercase;
  }
  .hero-strip b{color:var(--brass);font-weight:500}

  /* ============ SECTION SHELL ============ */
  section{padding-block:clamp(3.5rem,8vw,6rem)}
  .sec-head{max-width:60ch;margin-bottom:2.8rem}
  .sec-head p{color:var(--muted);margin-top:.5rem}

  /* ============ TERMINE ============ */
  .termine{background:var(--charcoal)}
  .term-list{margin-top:.5rem}
  .term-row{
    display:grid;
    grid-template-columns:120px 1fr auto;
    gap:1.5rem;align-items:center;
    padding:1.6rem 1.4rem;border-radius:var(--radius-lg);
    margin-bottom:.6rem;border:1px solid transparent;
    transition:background .25s var(--ease-soft),transform .25s var(--ease-soft),border-color .25s;
  }
  .term-row:hover{background:var(--charcoal-2);transform:translateX(8px);border-color:var(--line)}
  .term-date{
    font-family:var(--display);text-align:center;line-height:1;
    border-right:2px solid var(--crimson);padding-right:1rem;
  }
  .term-date .day{font-size:2.4rem;font-weight:600;display:block}
  .term-date .mon{font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;color:var(--brass);display:block;margin-top:.3rem}
  .term-info h3{font-size:1.35rem;text-transform:none;letter-spacing:0;margin-bottom:.25rem}
  .term-info p{color:var(--muted);font-size:.95rem}
  .term-info .tag{
    display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.66rem;
    text-transform:uppercase;letter-spacing:.12em;
    padding:.25rem .7rem;border-radius:var(--radius-pill);margin-top:.5rem;
  }
  .term-info .tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
  .term-info .tag.public{color:var(--brass);border:1px solid var(--brass-dim)}
  .term-info .tag.private{color:var(--muted);border:1px solid var(--line)}
  .term-meta{font-family:var(--mono);font-size:.85rem;color:var(--muted);text-align:right;white-space:nowrap}
  .term-meta .time{color:#fff;font-size:1.05rem;display:block}

  /* ============ REPERTOIRE ============ */
  .repertoire{position:relative;isolation:isolate;overflow:hidden}
  .rep-bg{
    position:absolute;inset:0;z-index:-2;
    background:linear-gradient(135deg,#1a1a1e,#0d0d0f);
  }
  .rep-bg::after{
    content:"◔ Platzhalter · Hintergrundbild";
    position:absolute;inset:0;display:grid;place-items:center;
    font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
    color:rgba(169,169,178,.35);
  }
  .rep-overlay{position:absolute;inset:0;z-index:-1;background:rgba(13,13,15,.8)}
  .rep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}
  .track.is-hidden{display:none}
  .rep-more{display:flex;justify-content:center;margin-top:2.2rem}
  .rep-more button{
    font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;font-weight:500;
    font-size:.88rem;color:#fff;background:transparent;border:1px solid var(--line);
    padding:.9rem 2.2rem;border-radius:var(--radius-pill);cursor:pointer;
    display:inline-flex;align-items:center;gap:.7rem;transition:border-color .2s,color .2s,transform .28s var(--ease-bounce),background .2s;
  }
  .rep-more button:hover,.rep-more button:focus-visible{border-color:var(--crimson);color:var(--crimson);transform:translateY(-2px) scale(1.03)}
  .rep-more button svg{width:16px;height:16px;transition:transform .3s var(--ease-bounce)}
  .rep-more button[aria-expanded="true"] svg{transform:rotate(180deg)}
  .track{
    background:var(--charcoal-2);border:1px solid var(--line);border-radius:var(--radius-lg);
    padding:1.5rem;display:flex;flex-direction:column;gap:1rem;
    transition:border-color .25s,transform .3s var(--ease-bounce),box-shadow .3s var(--ease-soft);
  }
  .track:hover{border-color:var(--crimson);transform:translateY(-6px) rotate(-.4deg);box-shadow:0 16px 34px rgba(0,0,0,.4)}
  .track-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
  .track h3{font-size:1.2rem;text-transform:none;letter-spacing:0}
  .track .genre{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:.2rem}
  .play{
    flex:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--crimson);
    background:transparent;color:var(--crimson);cursor:pointer;display:grid;place-items:center;
    transition:background .25s var(--ease-soft),color .2s,transform .3s var(--ease-bounce),box-shadow .3s;
  }
  .play:hover,.play:focus-visible{background:var(--crimson);color:#fff;transform:scale(1.12);box-shadow:0 6px 18px rgba(196,62,69,.45)}
  .play:active{transform:scale(.96)}
  .play svg{width:18px;height:18px}
  /* fake waveform */
  .wave{display:flex;align-items:flex-end;gap:3px;height:34px}
  .wave span{flex:1;background:var(--line);border-radius:var(--radius-pill);min-height:4px;transition:background .25s,transform .25s var(--ease-soft)}
  .track:hover .wave span{background:var(--brass-dim)}
  /* waveform dances while a sample "plays" */
  .track .play[data-playing="true"] ~ * .wave span,
  .track:has(.play[data-playing="true"]) .wave span{
    background:var(--crimson);animation:tch-bounce 1s var(--ease-soft) infinite;
  }
  .track:has(.play[data-playing="true"]) .wave span:nth-child(2n){animation-delay:.15s}
  .track:has(.play[data-playing="true"]) .wave span:nth-child(3n){animation-delay:.3s}
  .track:has(.play[data-playing="true"]) .wave span:nth-child(4n){animation-delay:.45s}
  @keyframes tch-bounce{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1.25)}}
  @media (prefers-reduced-motion:reduce){
    .track:has(.play[data-playing="true"]) .wave span{animation:none}
  }
  .track-foot{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.72rem;color:var(--muted)}

  /* ============ ÜBER UNS ============ */
  .ueber{background:var(--charcoal)}
  .ueber-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
  .ueber-copy p{margin-bottom:1.1rem;color:var(--paper)}
  .ueber-copy p:first-of-type{font-size:1.2rem;color:#fff}
  .stat-row{display:flex;gap:2.5rem;margin-top:2rem;flex-wrap:wrap}
  .stat b{font-family:var(--display);font-size:2.4rem;color:var(--crimson);display:block;line-height:1}
  .stat span{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
  .ueber-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:.8rem;aspect-ratio:1/1}
  .photo{
    background:linear-gradient(135deg,#26262b,#131316);
    border:1px solid var(--line);border-radius:var(--radius-lg);
    display:grid;place-items:center;color:var(--muted);
    font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
    position:relative;overflow:hidden;cursor:zoom-in;padding:0;width:100%;
    transition:border-color .25s,transform .3s var(--ease-bounce),box-shadow .3s var(--ease-soft);
  }
  .photo::after{content:"◔ Foto";}
  .photo:hover,.photo:focus-visible{border-color:var(--brass);transform:scale(1.02) rotate(.5deg);box-shadow:0 14px 30px rgba(0,0,0,.4)}
  .photo.tall{grid-row:span 2}
  /* zoom hint icon shared by photo + impression */
  .zoomable{position:relative}
  .zoomable .zoom-ico{
    position:absolute;top:.7rem;right:.7rem;width:30px;height:30px;border-radius:var(--radius-pill);
    background:rgba(13,13,15,.65);border:1px solid var(--line);display:grid;place-items:center;
    color:#fff;opacity:0;transform:scale(.7);transition:opacity .25s var(--ease-soft),transform .3s var(--ease-bounce);pointer-events:none;
  }
  .zoomable:hover .zoom-ico,.zoomable:focus-visible .zoom-ico{opacity:1;transform:scale(1)}
  .zoomable .zoom-ico svg{width:14px;height:14px}

  /* ---------- lightbox ---------- */
  .lightbox{
    position:fixed;inset:0;z-index:300;display:none;
    background:rgba(8,8,10,.92);backdrop-filter:blur(6px);
    align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);
  }
  .lightbox[data-open="true"]{display:flex}
  .lightbox-frame{
    max-width:min(900px,92vw);width:100%;aspect-ratio:3/2;
    background:linear-gradient(135deg,#26262b,#121216);
    border:1px solid var(--line);border-radius:var(--radius-xl);
    display:grid;place-items:center;color:var(--muted);
    font-family:var(--mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
    position:relative;animation:tch-pop .35s var(--ease-bounce);
  }
  @keyframes tch-pop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
  .lightbox-caption{position:absolute;bottom:1rem;left:0;right:0;text-align:center;color:var(--paper)}
  .lightbox-close{
    position:absolute;top:-3.4rem;right:0;background:none;border:1px solid var(--line);
    color:#fff;width:46px;height:46px;border-radius:var(--radius-pill);cursor:pointer;
    display:grid;place-items:center;transition:border-color .2s,color .2s,transform .3s var(--ease-bounce);
  }
  .lightbox-close:hover,.lightbox-close:focus-visible{border-color:var(--crimson);color:var(--crimson);transform:rotate(90deg) scale(1.08)}
  .lightbox-close svg{width:20px;height:20px}

  /* ---------- großes, dezentes Instrument-Hintergrundmotiv ---------- */
  .tch-motif{
    position:absolute;pointer-events:none;z-index:0;
    color:var(--white);opacity:.04;
  }
  .tch-motif svg{width:100%;height:100%;display:block}
  .tch-motif--hero{right:-4%;top:14%;width:min(46vw,620px);color:var(--crimson);opacity:.06}
  .tch-motif--join{right:2%;bottom:-6%;width:min(30vw,360px);opacity:.05;
    animation:tch-float 8s ease-in-out infinite;}
  @media (prefers-reduced-motion:reduce){.tch-motif--join{animation:none}}
  @media (max-width:760px){.tch-motif--hero{opacity:.04;width:70vw}}

  /* ============ MITGLIED WERDEN (highlight) ============ */
  .join{
    background:
      linear-gradient(135deg,rgba(196,62,69,.16),transparent 55%),
      var(--ink);
    border-block:1px solid var(--crimson);position:relative;overflow:hidden;
  }
  .join .wrap{position:relative;z-index:1}
  .join::before{
    content:"♪";position:absolute;right:-1rem;top:-2rem;font-size:22rem;
    color:rgba(196,62,69,.06);font-family:var(--serif);pointer-events:none;line-height:1;
    animation:tch-float 6s ease-in-out infinite;
  }
  @keyframes tch-float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-18px) rotate(-4deg)}}
  @media (prefers-reduced-motion:reduce){.join::before{animation:none}}
  .join .wrap{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center}
  .join h2{margin-bottom:1rem}
  .join p{color:var(--paper);max-width:52ch;margin-bottom:1.6rem}
  .join-points{list-style:none;display:flex;flex-direction:column;gap:.7rem}
  .join-points li{display:flex;gap:.7rem;align-items:baseline;color:var(--white);transition:transform .25s var(--ease-soft)}
  .join-points li:hover{transform:translateX(6px)}
  .join-points li::before{content:"♫";color:var(--crimson);font-family:var(--serif)}
  .join-card{
    background:var(--charcoal-2);border:1px solid var(--line);border-radius:var(--radius-xl);
    padding:2.2rem;text-align:center;transition:transform .3s var(--ease-bounce),box-shadow .3s var(--ease-soft);
  }
  .join-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(0,0,0,.4)}
  .join-card .big{font-family:var(--display);font-size:3rem;color:var(--brass);line-height:1}
  .join-card .small{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:.5rem 0 1.5rem}

  /* ============ IMPRESSIONEN ============ */
  .imp-grid{
    display:grid;gap:.8rem;
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:150px;
  }
  .imp{
    background:linear-gradient(135deg,#222227,#0f0f12);
    border:1px solid var(--line);border-radius:var(--radius-lg);
    display:grid;place-items:center;color:var(--muted);
    font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
    transition:transform .3s var(--ease-bounce),border-color .25s,box-shadow .3s var(--ease-soft);cursor:zoom-in;padding:0;width:100%;
  }
  .imp:hover,.imp:focus-visible{transform:scale(1.04) rotate(-.6deg);border-color:var(--brass);box-shadow:0 14px 30px rgba(0,0,0,.4);z-index:2}
  .imp::after{content:"◔ Impression"}
  .imp.w2{grid-column:span 2}
  .imp.h2{grid-row:span 2}

  /* ============ KONTAKT ============ */
  .kontakt{background:var(--charcoal)}
  .kon-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(2rem,5vw,4rem)}
  .kon-aside h3{font-size:1.4rem;text-transform:none;letter-spacing:0;margin-bottom:1rem}
  .kon-aside .line{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1.1rem;color:var(--paper)}
  .kon-aside .line b{font-family:var(--display);color:var(--crimson);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;min-width:5.5rem;display:inline-block;padding-top:.15rem}

  form{display:grid;gap:1.2rem}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
  .field{display:flex;flex-direction:column;gap:.45rem}
  label{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--paper)}
  label .req{color:var(--crimson)}
  input,select,textarea{
    background:var(--ink);border:1px solid var(--line);border-radius:var(--radius);
    color:#fff;font-family:var(--serif);font-size:1rem;padding:.85rem 1.1rem;width:100%;
    transition:border-color .2s,box-shadow .25s var(--ease-soft),transform .2s var(--ease-soft);
  }
  input:hover,select:hover,textarea:hover{border-color:#4a4a52}
  input:focus,select:focus,textarea:focus{border-color:var(--crimson);outline:none;box-shadow:0 0 0 4px rgba(196,62,69,.14)}
  input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
  textarea{resize:vertical;min-height:130px;border-radius:var(--radius-lg)}
  .hint{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
  .form-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}

  /* ============ FIXED SOCIAL RAIL ============ */
  .social-rail{
    position:fixed;top:50%;right:.6rem;transform:translateY(-50%);z-index:90;
    display:flex;flex-direction:column;gap:.5rem;
  }
  .social-rail a{
    width:46px;height:46px;display:grid;place-items:center;border-radius:var(--radius-pill);
    background:var(--charcoal);color:var(--muted);text-decoration:none;
    border:1px solid var(--line);
    transition:background .2s var(--ease-soft),color .2s,transform .3s var(--ease-bounce),box-shadow .3s;
  }
  .social-rail a:hover,.social-rail a:focus-visible{background:var(--crimson);color:#fff;transform:scale(1.15) translateX(-3px);box-shadow:0 6px 18px rgba(196,62,69,.45);border-color:transparent}
  .social-rail svg{width:20px;height:20px}

  /* ============ BACK TO TOP ============ */
  .to-top{
    position:fixed;right:1.25rem;bottom:1.25rem;z-index:90;
    width:52px;height:52px;border-radius:var(--radius-pill);
    background:var(--crimson);color:#fff;border:none;cursor:pointer;
    display:grid;place-items:center;
    opacity:0;visibility:hidden;transform:translateY(10px) scale(.8);
    transition:opacity .3s,transform .35s var(--ease-bounce),visibility .3s,background .2s,box-shadow .3s;
    box-shadow:0 6px 20px rgba(196,62,69,.35);
  }
  .to-top.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
  .to-top:hover,.to-top:focus-visible{background:var(--crimson-bright);transform:translateY(-4px) scale(1.08)}
  .to-top:active{transform:scale(.95)}
  .to-top svg{width:22px;height:22px}

  @media (max-width:560px){
    .social-rail a{width:42px;height:42px}
    .social-rail svg{width:17px;height:17px}
    .to-top{right:.9rem;bottom:.9rem;width:46px;height:46px}
  }

  /* ---------- scroll reveal ---------- */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-soft),transform .7s var(--ease-soft)}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none}
  }

  /* ============ FOOTER ============ */
  footer.site{background:var(--ink);border-top:1px solid var(--line);padding-block:3rem 2rem}
  .foot-grid{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:flex-start}
  .foot-grid nav ul{list-style:none;display:flex;gap:1.4rem;flex-wrap:wrap}
  .foot-grid nav a{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--muted);text-decoration:none}
  .foot-grid nav a:hover,.foot-grid nav a:focus-visible{color:#fff}
  .copy{font-family:var(--mono);font-size:.72rem;color:var(--muted);margin-top:2rem;border-top:1px solid var(--line);padding-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
  .copy a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
  .copy a:hover{color:var(--white)}

  /* ============ RESPONSIVE ============ */
  @media (max-width:900px){
    nav.primary{
      position:fixed;inset:76px 0 auto 0;background:var(--charcoal);
      border-bottom:1px solid var(--line);
      transform:translateY(-120%);transition:transform .22s ease;
    }
    nav.primary[data-open="true"]{transform:translateY(0)}
    nav.primary ul{flex-direction:column;align-items:stretch;padding:1rem var(--pad) 1.5rem;gap:.2rem}
    nav.primary a{padding:.9rem .6rem;font-size:1rem}
    .nav-cta{text-align:center;margin-top:.5rem}
    .menu-toggle{display:flex}
    .ueber-grid,.join .wrap,.kon-grid{grid-template-columns:1fr}
    .join::before{font-size:13rem}
    .imp-grid{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:560px){
    .term-row{grid-template-columns:80px 1fr;gap:1rem}
    .term-meta{grid-column:2;text-align:left}
    .term-date .day{font-size:1.8rem}
    .field-row{grid-template-columns:1fr}
    .stat-row{gap:1.5rem}
  }

  /* ---------- WordPress-Anpassungen ---------- */
  .logo-img{max-height:52px;width:auto;display:block}
  .photo[style*="background-image"]::after,
  .imp[style*="background-image"]::after{content:""!important}
  .hero-media[style*="background-image"]::after{content:none}
  .ueber-text p{margin-bottom:1.1rem;color:var(--paper)}
  .ueber-text p:first-of-type{font-size:1.2rem;color:#fff}
  nav.primary ul{list-style:none;display:flex;gap:.35rem;align-items:center;margin:0;padding:0}
  nav.primary li{margin:0}
  .admin-bar header.site{top:32px}
  @media (max-width:782px){.admin-bar header.site{top:46px}}
  /* Lightbox: echtes Bild einpassen */
  .lightbox-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:var(--radius-xl);background:#000}
