/* bio.css — BioKarte (bio.colognebeats.com/<name>). Aufbau angelehnt an KOMI-Künstlerseiten:
 * grosses Hochformat-Foto, unscharfer Foto-Hintergrund, Icon-Reihe, Reiter, Karussells. */
:root {
  --akzent: #F25C24;
  --grund: #121212;
  --flaeche: #242424;
  --flaeche-2: #2e2e2e;
  --text: #ffffff;
  --leise: rgba(255, 255, 255, .68);
  --linie: rgba(255, 255, 255, .1);
  --radius: 14px;
  --f: 'Rubik', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
}
body.hell {
  --grund: #f6f4f1;
  --flaeche: #ffffff;
  --flaeche-2: #efece8;
  --text: #121212;
  --leise: rgba(18, 18, 18, .62);
  --linie: rgba(18, 18, 18, .1);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body.bio, body.bio-leer { min-height: 100vh; background: #0b0b0b; color: var(--text); font-family: var(--f); -webkit-font-smoothing: antialiased; }
body.hell { background: #e9e6e2; }
a { color: inherit; }

/* Unscharfes Foto hinter der Karte */
.bio-grund { position: fixed; inset: -40px; background: center/cover no-repeat; filter: blur(48px) saturate(1.1); opacity: .55; z-index: 0; }
body.hell .bio-grund { opacity: .35; }
.bio-entwurf { position: relative; z-index: 2; text-align: center; padding: 10px 16px; background: var(--akzent); color: #111; font-size: 14px; font-weight: 600; }

.bio-karte { position: relative; z-index: 1; width: 100%; max-width: 644px; margin: 0 auto; background: var(--grund); min-height: 100vh; padding: 56px 42px 32px; }
@media (min-width: 700px) { .bio-karte { margin: 48px auto; min-height: 0; border-radius: 12px; } }
@media (max-width: 520px) { .bio-karte { padding: 28px 16px 24px; } }

/* Kopf */
.bio-kopf { text-align: center; }
.bio-foto { display: block; width: min(342px, 78%); aspect-ratio: 4 / 5; height: auto; object-fit: cover; border-radius: 12px; margin: 0 auto 28px; background: var(--flaeche); }
.bio-name { font-size: clamp(34px, 8vw, 44px); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.bio-logo img { display: block; max-width: min(320px, 80%); max-height: 110px; margin: 0 auto; object-fit: contain; }
body.hell .bio-logo img { filter: invert(1); }
.bio-untertitel { color: var(--leise); margin-top: 10px; font-size: 15px; }
.bio-icons { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 20px; }
.bio-icons a { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; color: var(--text); transition: background .15s, color .15s; }
.bio-icons a:hover { background: var(--flaeche-2); color: var(--akzent); }
.bio-icons svg { width: 20px; height: 20px; }
.bio-reiter { position: sticky; top: 0; z-index: 3; display: flex; justify-content: center; flex-wrap: wrap; gap: 4px; margin: 18px -8px 0; padding: 10px 8px; background: var(--grund); }
.bio-reiter a { text-decoration: none; padding: 6px 12px; border-radius: 8px; font-size: 15px; font-weight: 500; }
.bio-reiter a:hover { background: var(--flaeche); }
.bio-reiter a.aktiv { background: var(--flaeche-2); box-shadow: inset 0 -2px 0 var(--akzent); }

/* Abschnitte */
.bio-abschnitt { padding: 22px 0; border-top: 1px solid var(--linie); scroll-margin-top: 60px; }
.bio-abschnitt:first-of-type { margin-top: 12px; }
.bio-abschnitt h2 { font-size: 22px; font-weight: 600; margin-bottom: 16px; }
.bio-text { background: var(--flaeche); border-radius: var(--radius); padding: 16px 18px; line-height: 1.55; font-size: 15px; }
.bio-text p + .bio-knopf { margin-top: 14px; }
.bio-klappbar.zu { max-height: 150px; overflow: hidden; position: relative; }
.bio-klappbar.zu::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 60px; background: linear-gradient(transparent, var(--flaeche)); }
.bio-mehr, .bio-knopf, .bio-play-text { display: inline-flex; align-items: center; justify-content: center; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--text); background: transparent; color: var(--text); font: 600 13px var(--f); text-decoration: none; cursor: pointer; }
.bio-mehr { margin-top: 10px; }
.bio-knopf { padding: 10px 20px; font-size: 14px; background: var(--akzent); border-color: var(--akzent); color: #111; }
.bio-mehr:hover, .bio-play-text:hover { border-color: var(--akzent); color: var(--akzent); }

/* Karussell: horizontal scrollen, ab drei Einträgen zwei Zeilen */
.bio-karussell { position: relative; }
.bio-pfeile { position: absolute; right: 0; top: -44px; display: flex; gap: 4px; }
.bio-pfeile button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: var(--text); font-size: 22px; line-height: 1; cursor: pointer; }
.bio-pfeile button:hover { background: var(--flaeche); }
/* Zwei Spalten passen genau in die Karte, weitere Einträge per Wischen/Pfeil */
.bio-reihe { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 14px) / 2); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 2px; }
.bio-reihe::-webkit-scrollbar { display: none; }
.bio-reihe.zweizeilig { grid-template-rows: auto auto; }
@media (max-width: 520px) { .bio-reihe { grid-auto-columns: 86%; } }
.bio-medium { scroll-snap-align: start; display: grid; grid-template-columns: 110px minmax(0, 1fr); background: var(--flaeche); border-radius: 10px; overflow: hidden; height: 110px; }
.bio-medium.spielt { height: auto; }
.bio-medium.spielt { grid-template-columns: 1fr; }
.bio-cover { position: relative; background: var(--flaeche-2) center/cover no-repeat; height: 110px; }
.bio-play { position: absolute; inset: 0; margin: auto; width: 46px; height: 46px; border-radius: 50%; border: 2px solid #fff; background: rgba(0, 0, 0, .35); color: #fff; font-size: 16px; cursor: pointer; }
.bio-play:hover { background: var(--akzent); border-color: var(--akzent); color: #111; }
.bio-medium-text { padding: 12px 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.bio-medium-text h3 { font-size: 15px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bio-medium-text p { color: var(--leise); font-size: 14px; }
.bio-medium-text .bio-play-text { margin-top: auto; }
.bio-medium iframe { display: block; width: 100%; height: 166px; border: 0; }
.bio-medium.youtube iframe { height: auto; aspect-ratio: 16 / 9; }
.bio-medium.mixcloud iframe { height: 120px; }

/* Fuss */
.bio-fuss { text-align: center; padding-top: 26px; border-top: 1px solid var(--linie); display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: var(--leise); }
.bio-fuss a { text-decoration: none; }
.bio-fuss a:hover { color: var(--akzent); }
.bio-fuss strong { color: var(--text); }

body.bio-leer main { max-width: 480px; margin: 20vh auto 0; padding: 0 20px; text-align: center; }
body.bio-leer h1 { font-size: 26px; margin-bottom: 14px; }
body.bio-leer a { color: #F25C24; }
