/* === Schriften lokal === Dateien in /fonts ablegen, siehe LIESMICH.md === */
@font-face{font-family:"Big Shoulders Display";src:url("../fonts/big-shoulders-display-800.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Big Shoulders Display";src:url("../fonts/big-shoulders-display-700.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-600.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-500.woff2") format("woff2");font-weight:500;font-display:swap}

  :root{
    --pitch:#1B1A21;
    --pitch-2:#23222A;
    --pitch-3:#2E2C38;
    --line:#363443;
    --flood:#F2F2F6;
    --muted:#918FA0;
    --brand:#0CC5C0;
    --brand-dim:#B9762200;
    --tally:#FF3B30;
    --turf:#0A6E6C;
    --maxw:1120px;
    --display:"Big Shoulders Display","Archivo Narrow","Arial Narrow",system-ui,sans-serif;
    --body:"Public Sans",system-ui,sans-serif;
    --mono:"IBM Plex Mono",ui-monospace,monospace;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;background:var(--pitch);color:var(--flood);
    font-family:var(--body);font-size:17px;line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block}
  a{color:inherit}
  ::selection{background:var(--brand);color:#14131A}

  /* ---------- Tally bar ---------- */
  .tally{
    position:sticky;top:0;z-index:60;
    display:flex;align-items:center;gap:14px;
    padding:7px 18px;background:#141319;border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:11px;letter-spacing:.09em;color:var(--muted);
  }
  .tally .dot{
    width:8px;height:8px;border-radius:50%;background:var(--tally);
    box-shadow:0 0 0 0 rgba(255,59,48,.6);animation:pulse 2.4s infinite;
    flex:none;
  }
  @keyframes pulse{
    0%{box-shadow:0 0 0 0 rgba(255,59,48,.55)}
    70%{box-shadow:0 0 0 7px rgba(255,59,48,0)}
    100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}
  }
  .tally .live{color:var(--tally);font-weight:500}
  .tally .spacer{flex:1}
  .tally .tc{color:var(--flood)}
  .tally a{color:var(--brand);text-decoration:none}
  .tally a:hover{text-decoration:underline}
  .tally .hide-s{display:none}
  @media(min-width:720px){.tally .hide-s{display:inline}}

  /* ---------- Nav ---------- */
  .nav{
    position:sticky;top:31px;z-index:55;
    background:rgba(27,26,33,.92);backdrop-filter:blur(9px);
    border-bottom:1px solid var(--line);
  }
  .nav-in{
    max-width:var(--maxw);margin:0 auto;padding:12px 18px;
    display:flex;align-items:center;gap:22px;
  }
  .brand{display:flex;align-items:center;gap:11px;text-decoration:none;line-height:1}
  .brand img{width:30px;height:auto}
  .brand .bw{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:.05em;text-transform:uppercase}
  .brand i{color:var(--brand);font-style:normal}
  .nav-links{display:none;gap:20px;margin-left:auto;align-items:center}
  @media(min-width:860px){.nav-links{display:flex}}
  .nav-links a{
    font-family:var(--mono);font-size:12px;letter-spacing:.07em;
    text-transform:uppercase;text-decoration:none;color:var(--muted);
    padding:6px 0;border-bottom:1px solid transparent;
  }
  .nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--flood);border-bottom-color:var(--brand)}
  .nav .btn-sm{margin-left:auto}
  @media(min-width:860px){.nav .btn-sm{margin-left:0}}

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;gap:9px;
    font-family:var(--mono);font-size:13px;letter-spacing:.05em;text-transform:uppercase;
    text-decoration:none;padding:14px 22px;border:1px solid var(--brand);
    background:var(--brand);color:#14131A;font-weight:500;
    transition:transform .15s ease,background .15s ease;
  }
  .btn:hover{background:#3FE0DB;transform:translateY(-2px)}
  .btn.ghost{background:transparent;color:var(--flood);border-color:var(--line)}
  .btn.ghost:hover{border-color:var(--flood);background:transparent}
  .btn-sm{
    display:inline-flex;align-items:center;gap:7px;
    font-family:var(--mono);font-size:12px;letter-spacing:.04em;
    text-decoration:none;padding:9px 15px;background:var(--brand);color:#14131A;font-weight:500;
  }
  .btn-sm:hover{background:#3FE0DB}
  a:focus-visible,button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}

  /* ---------- Layout ---------- */
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px}
  section.band{padding:78px 0;border-bottom:1px solid var(--line)}
  .eyebrow{
    font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--brand);margin:0 0 16px;display:flex;align-items:center;gap:10px;
  }
  .eyebrow::after{content:"";height:1px;flex:1;background:var(--line);max-width:120px}
  h1,h2,h3{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.92;margin:0}
  h1{font-size:clamp(38px,5.6vw,68px);letter-spacing:.004em;max-width:15ch}
  h2{font-size:clamp(27px,3.4vw,42px)}
  h3{font-size:22px;font-weight:700}
  .lede{font-size:clamp(16px,1.3vw,18.5px);color:#C3D3D8;max-width:52ch;margin:18px 0 0}
  p{margin:14px 0}
  .muted{color:var(--muted)}
  .fill{color:var(--brand)}

  /* placeholder marker */
  .ph{border-bottom:1px dashed var(--brand);cursor:help}

  /* ---------- Hero / program feed ---------- */
  .feed{position:relative;padding:52px 0 46px;overflow:hidden}
  .feed::before{
    content:"";position:absolute;inset:0;
    background:
      radial-gradient(120% 80% at 78% 8%,rgba(12,197,192,.15),transparent 58%),
      radial-gradient(90% 70% at 8% 100%,rgba(12,197,192,.07),transparent 60%);
    pointer-events:none;
  }
  .feed-in{position:relative;max-width:var(--maxw);margin:0 auto;padding:0 18px}
  .frame{position:relative;padding:34px 0;max-width:780px}
  .corner{position:absolute;width:26px;height:26px;border:2px solid rgba(242,242,246,.26)}
  .corner.tl{top:0;left:-6px;border-right:0;border-bottom:0}
  .corner.tr{top:0;right:-6px;border-left:0;border-bottom:0}
  .corner.bl{bottom:0;left:-6px;border-right:0;border-top:0}
  .corner.br{bottom:0;right:-6px;border-left:0;border-top:0}
  .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
  .proof{
    display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:38px;
    font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--muted);
  }
  .proof span::before{content:"▸ ";color:var(--brand)}

  /* scoreboard bug + sponsor rotator */
  .bugs{
    display:flex;flex-wrap:wrap;align-items:stretch;gap:14px;margin-top:46px;
  }
  .scorebug{
    display:flex;align-items:stretch;border:1px solid var(--line);background:rgba(20,19,25,.72);
    font-family:var(--mono);font-size:12px;overflow:hidden;
  }
  .scorebug .t{padding:10px 13px;letter-spacing:.06em;color:var(--muted)}
  .scorebug .s{padding:11px 13px;background:var(--pitch-3);font-weight:500;color:var(--flood)}
  .scorebug .q{padding:11px 15px;background:transparent;color:var(--muted);letter-spacing:.08em;display:flex;align-items:center;gap:8px}
  .scorebug .q::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--tally);flex:none}
  .sponsor{
    border:1px solid var(--line);background:rgba(20,19,25,.72);
    padding:9px 18px;min-width:210px;display:flex;flex-direction:column;justify-content:center;
  }
  .sponsor .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
  .sponsor .slot{
    font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.03em;
    text-transform:uppercase;color:var(--brand);margin-top:3px;
    transition:opacity .45s ease;min-height:26px;
  }
  .sponsor .slot.out{opacity:0}
  .bug-note{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:14px;letter-spacing:.04em}

  /* ---------- Two doors ---------- */
  .doors{display:grid;gap:18px;grid-template-columns:1fr}
  @media(min-width:820px){.doors{grid-template-columns:1fr 1fr}}
  .door{
    display:block;text-decoration:none;border:1px solid var(--line);
    background:linear-gradient(160deg,var(--pitch-2),var(--pitch));
    padding:34px 30px 30px;position:relative;transition:border-color .18s ease,transform .18s ease;
  }
  .door:hover{border-color:var(--brand);transform:translateY(-3px)}
  .door .tag{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--brand)}
  .door h3{margin:14px 0 0;font-size:clamp(23px,2.4vw,29px);max-width:18ch}
  .door p{color:var(--muted);margin:12px 0 0;font-size:16px}
  .door .go{
    display:inline-block;margin-top:22px;font-family:var(--mono);font-size:12px;
    letter-spacing:.06em;color:var(--flood);border-bottom:1px solid var(--brand);padding-bottom:3px;
  }

  /* ---------- Generic grids ---------- */
  .grid3{display:grid;gap:18px;grid-template-columns:1fr}
  @media(min-width:760px){.grid3{grid-template-columns:repeat(3,1fr)}}
  .grid2{display:grid;gap:18px;grid-template-columns:1fr}
  @media(min-width:820px){.grid2{grid-template-columns:1fr 1fr}}
  .card{border:1px solid var(--line);background:var(--pitch-2);padding:26px 24px}
  .card h3{margin-bottom:10px}
  .card p{color:var(--muted);font-size:16px;margin:0}
  .step .n{
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--brand);
    display:block;margin-bottom:12px;
  }
  ul.ticks{list-style:none;padding:0;margin:18px 0 0}
  ul.ticks li{position:relative;padding-left:24px;margin:10px 0;color:#C3D3D8}
  ul.ticks li::before{content:"▸";position:absolute;left:0;color:var(--brand)}

  /* ---------- Pakete ---------- */
  .plan{border:1px solid var(--line);background:var(--pitch-2);padding:30px 26px;display:flex;flex-direction:column}
  .plan.lead{border-color:var(--brand)}
  .plan .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
  .plan h3{margin:12px 0 4px;font-size:30px}
  .plan .price{font-family:var(--mono);font-size:14px;color:var(--muted);margin-bottom:8px}
  .plan .btn{margin-top:auto;align-self:flex-start}
  .plan ul.ticks{margin-bottom:26px}

  /* ---------- Referenzen ---------- */
  .ref{border:1px solid var(--line);background:var(--pitch-2);overflow:hidden}
  .ref .thumb{
    aspect-ratio:16/10;background:linear-gradient(140deg,var(--pitch-3),var(--pitch));
    display:flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);
    border-bottom:1px solid var(--line);text-align:center;padding:16px;
  }
  .ref .body{padding:22px 22px 26px}
  .ref h3{font-size:20px}
  .ref p{font-size:15px;color:var(--muted)}

  /* ---------- FAQ ---------- */
  details{border-bottom:1px solid var(--line);padding:18px 0}
  summary{
    cursor:pointer;font-family:var(--display);font-size:21px;font-weight:700;
    text-transform:uppercase;list-style:none;display:flex;justify-content:space-between;gap:16px;
  }
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";color:var(--brand);font-family:var(--mono);font-size:20px}
  details[open] summary::after{content:"–"}
  details p{color:var(--muted);margin-bottom:0}

  /* ---------- Kontakt ---------- */
  .contact{display:grid;gap:26px;grid-template-columns:1fr}
  @media(min-width:860px){.contact{grid-template-columns:.9fr 1.1fr}}
  .chan{border:1px solid var(--line);background:var(--pitch-2);padding:18px 20px;margin-bottom:12px;text-decoration:none;display:block}
  .chan:hover{border-color:var(--brand)}
  .chan{display:flex;flex-direction:column;gap:7px}
  .chan .k{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase;line-height:1}
  .chan .v{display:block;font-family:var(--display);font-size:26px;font-weight:700;line-height:1;letter-spacing:.02em;color:var(--flood)}
  .chan:hover .v{color:var(--brand)}
  .field{margin-bottom:14px}
  .field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
  .field input,.field textarea{
    width:100%;background:var(--pitch);border:1px solid var(--line);color:var(--flood);
    padding:13px 14px;font-family:var(--body);font-size:16px;
  }
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--brand)}


  /* ---------- Formular ---------- */
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
  .check{display:flex;gap:11px;align-items:flex-start;margin:6px 0 22px;font-size:14px;color:var(--muted);cursor:pointer}
  .check input{margin-top:3px;accent-color:var(--brand);width:17px;height:17px;flex:none}
  .check a{color:var(--brand)}
  form.anfrage button.btn{border:0;cursor:pointer;font-family:var(--mono)}


  .formstatus{display:none;margin:16px 0 0;font-size:15px;padding:13px 15px;border-left:3px solid}
  .formstatus.fehler{display:block;border-color:var(--tally);background:rgba(255,59,48,.09);color:#FFC9C5}
  .formstatus.laeuft{display:block;border-color:var(--muted);background:rgba(255,255,255,.04);color:var(--muted)}
  .erfolg{border:1px solid var(--brand);background:rgba(12,197,192,.07);padding:30px 28px}
  .erfolg h3{color:var(--brand);margin-bottom:10px}

  /* ---------- Crew strip ---------- */
  .crew{
    border:1px dashed var(--line);padding:22px 24px;display:flex;flex-wrap:wrap;
    gap:14px;align-items:center;justify-content:space-between;
  }
  .crew p{margin:0;color:var(--muted);font-size:16px}

  /* ---------- Footer + sticky WhatsApp ---------- */
  footer{padding:44px 0 90px;font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.04em}
  footer a{color:var(--muted);text-decoration:none;margin-right:16px}
  footer a:hover{color:var(--brand)}
  .wa{
    position:fixed;right:16px;bottom:16px;z-index:70;
    display:inline-flex;align-items:center;gap:9px;
    background:var(--brand);color:#14131A;text-decoration:none;
    padding:14px 18px;font-family:var(--mono);font-size:13px;font-weight:500;
    box-shadow:0 8px 26px rgba(0,0,0,.45);
  }
  .wa:hover{background:#3FE0DB}


  /* ---------- Bewegtbild ---------- */
  .feed{isolation:isolate}
  .feed .media{position:absolute;inset:0;overflow:hidden;z-index:-2}
  .feed .media video{
    width:100%;height:100%;object-fit:cover;opacity:0;
    transition:opacity 1.1s ease;filter:saturate(.85) contrast(1.05);
  }
  .feed.has-video .media video{opacity:.42}
  .feed.has-video .fallback{opacity:0}
  .scrim{
    position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:
      linear-gradient(90deg,var(--pitch) 2%,rgba(27,26,33,.62) 42%,rgba(27,26,33,.34) 100%),
      linear-gradient(180deg,rgba(27,26,33,.85),transparent 30%,rgba(27,26,33,.92));
  }
  .scanlines{
    position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.16;
    background:repeating-linear-gradient(180deg,rgba(255,255,255,.10) 0 1px,transparent 1px 3px);
    mix-blend-mode:overlay;
  }
  /* Ersatz-Animation, solange kein Video hinterlegt ist */
  .fallback{
    position:absolute;inset:0;z-index:-2;transition:opacity .8s ease;
    background:
      radial-gradient(42% 62% at 26% 34%,rgba(12,197,192,.38),transparent 64%),
      radial-gradient(50% 66% at 74% 62%,rgba(12,197,192,.22),transparent 66%),
      radial-gradient(70% 90% at 60% 10%,rgba(255,255,255,.06),transparent 70%);
    animation:drift 22s ease-in-out infinite alternate;
  }
  @keyframes drift{
    0%{transform:scale(1.05) translate3d(-1.5%,0,0)}
    100%{transform:scale(1.16) translate3d(2.5%,-2%,0)}
  }
  .vtoggle{
    position:absolute;right:18px;bottom:18px;z-index:3;
    display:none;align-items:center;gap:8px;cursor:pointer;
    background:rgba(20,19,25,.78);border:1px solid var(--line);color:var(--flood);
    font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
    padding:9px 13px;
  }
  .feed.has-video .vtoggle{display:inline-flex}
  .vtoggle:hover{border-color:var(--brand)}
  .vtoggle .sq{width:8px;height:8px;background:var(--brand);flex:none}

  /* Clip-Kacheln bei Referenzen */
  .ref .thumb{position:relative;overflow:hidden}
  .ref .thumb video{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    opacity:0;transition:opacity .5s ease;
  }
  .ref:hover .thumb video[data-ready],
  .ref:focus-within .thumb video[data-ready]{opacity:1}
  .ref .thumb .play{
    position:absolute;left:14px;bottom:12px;z-index:2;
    font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--flood);
    background:rgba(20,19,25,.7);padding:5px 9px;border:1px solid var(--line);
  }


  /* Sehr breite Monitore: Hero nicht auseinanderziehen */
  @media(min-width:1500px){
    :root{--maxw:1180px}
    .feed{padding:60px 0 54px}
  }
  @media(min-width:1100px){
    .feed .frame{padding-right:40px}
    .bugs{max-width:640px}
  }
  @media(prefers-reduced-motion:reduce){
    .fallback{animation:none}
  }


  /* ---------- Server-Setup ---------- */
  .shot{
    aspect-ratio:16/9;border:1px solid var(--line);background:#141319;
    display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;
    font-family:var(--mono);font-size:11px;letter-spacing:.11em;color:var(--muted);
    margin-bottom:22px;
  }
  .facts{
    display:flex;flex-wrap:wrap;gap:8px 0;border-top:1px solid var(--line);margin-top:18px;
  }
  .facts div{
    flex:1 1 50%;padding:12px 0;border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--muted);
  }
  .facts b{display:block;color:var(--flood);font-weight:500;margin-bottom:2px;font-size:12px}
  .price-big{font-family:var(--display);font-size:40px;font-weight:800;color:var(--brand);line-height:1;margin:6px 0 0}
  .price-big small{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:400;letter-spacing:.08em;display:block;margin-top:8px;text-transform:uppercase}

  
  

  @media(prefers-reduced-motion:reduce){
    *{animation:none !important;transition:none !important}
    html{scroll-behavior:auto}
  }
