/* ============================================================
   VisionSole — gemeinsames Stylesheet
   Ausgelagert, damit die Content-Security-Policy ohne
   'unsafe-inline' auskommt. Keine externen Abrufe.
   ============================================================ */

/* ---------- Schriften (lokal, kein externer Abruf) ---------- */
@font-face{font-family:"Bruno Ace";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/bruno-ace-v7-latin-regular.woff2") format("woff2");}
@font-face{font-family:"Onest";font-style:normal;font-weight:300;font-display:swap;
  src:url("../fonts/onest-v11-latin-300.woff2") format("woff2");}
@font-face{font-family:"Onest";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/onest-v11-latin-regular.woff2") format("woff2");}
@font-face{font-family:"Onest";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/onest-v11-latin-500.woff2") format("woff2");}
@font-face{font-family:"Onest";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/onest-v11-latin-600.woff2") format("woff2");}

/* ============================================================
   Farben — helles Thema als Grundlage, dunkles Thema darunter.
   Jede Farbe ist hier einmal vollstaendig definiert; die Bloecke
   weiter unten schreiben nur noch Werte um.
   ============================================================ */
:root{
  color-scheme:light;

  --grund:#F4F8F8;          /* Seitenhintergrund */
  --flaeche:#FFFFFF;         /* Karten, Panele */
  --flaeche-2:#E8F0F1;       /* eingelassene Flaechen */
  --kante:#CFDFE1;
  --kante-leise:#E0EAEB;

  --text:#082029;
  --gedimmt:#3F5C65;
  --leise:#6A858D;

  --akzent:#0C6F78;          /* vertieftes Tuerkis, AA auf Weiss */
  --akzent-hell:#0A5B63;
  --akzent-flaeche:rgba(12,111,120,.10);
  --auf-akzent:#FFFFFF;
  --navy:#2E536D;

  /* Druckskala der Sohlen-Grafik, von wenig nach viel */
  --druck-0:#B9CED2;
  --druck-1:#4E8C9B;
  --druck-2:#0C6F78;
  --druck-3:#06343A;
  --sohle-fuell:#EDF4F5;
  --sohle-kante:#8CA9B0;

  /* Gehfigur */
  --figur-fern:#9FBAC2;
  --figur-nah:#2E536D;
  --figur-rumpf:#3D6B87;
  --figur-knie:#0C6F78;
  --boden:#CFDFE1;
  --glut:#0C6F78;

  --status-laeuft:#0C6F78;
  --status-fertig:#4A7A57;
  --status-geplant:#7A6A3E;

  --logo:url("../logo-hell.svg");
  --nav-grund:rgba(244,248,248,.78);
  --schatten:0 1px 2px rgba(8,32,41,.05), 0 8px 24px -12px rgba(8,32,41,.16);

  /* Masse */
  --weit:min(100% - 2.5rem, 72rem);
  --schmal:min(100% - 2.5rem, 46rem);
  --radius:20px;
  --radius-klein:10px;

  /* Typografie */
  --schrift-display:"Bruno Ace","Onest",system-ui,sans-serif;
  --schrift:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;
  --t-xs:.76rem;
  --t-sm:.875rem;
  --t-base:1rem;
  --t-lead:clamp(1.06rem,1rem + .35vw,1.22rem);
  --t-h3:1.06rem;
  --t-h2:clamp(1.6rem,1.22rem + 1.6vw,2.45rem);
  --t-h1:clamp(2.45rem,1.6rem + 4.1vw,4.5rem);
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;

    --grund:#06161C;
    --flaeche:#0D222A;
    --flaeche-2:#112D36;
    --kante:#1C3E49;
    --kante-leise:#14303A;

    --text:#E7F2F3;
    --gedimmt:#94AFB6;
    --leise:#6A878F;

    --akzent:#85D4D9;
    --akzent-hell:#A8E4E8;
    --akzent-flaeche:rgba(133,212,217,.12);
    --auf-akzent:#05161C;
    --navy:#2E536D;

    --druck-0:#1F4552;
    --druck-1:#2E536D;
    --druck-2:#85D4D9;
    --druck-3:#EAFBFC;
    --sohle-fuell:#0B2129;
    --sohle-kante:#24505C;

    --figur-fern:#23505F;
    --figur-nah:#4A88A3;
    --figur-rumpf:#2E536D;
    --figur-knie:#85D4D9;
    --boden:#1B3D47;
    --glut:#85D4D9;

    --status-laeuft:#85D4D9;
    --status-fertig:#8FCB9B;
    --status-geplant:#C9A85F;

    --logo:url("../logo.svg");
    --nav-grund:rgba(6,22,28,.74);
    --schatten:0 1px 2px rgba(0,0,0,.28), 0 16px 40px -20px rgba(0,0,0,.7);
  }
}

:root[data-theme="dark"]{
  color-scheme:dark;

  --grund:#06161C;
  --flaeche:#0D222A;
  --flaeche-2:#112D36;
  --kante:#1C3E49;
  --kante-leise:#14303A;

  --text:#E7F2F3;
  --gedimmt:#94AFB6;
  --leise:#6A878F;

  --akzent:#85D4D9;
  --akzent-hell:#A8E4E8;
  --akzent-flaeche:rgba(133,212,217,.12);
  --auf-akzent:#05161C;
  --navy:#2E536D;

  --druck-0:#1F4552;
  --druck-1:#2E536D;
  --druck-2:#85D4D9;
  --druck-3:#EAFBFC;
  --sohle-fuell:#0B2129;
  --sohle-kante:#24505C;

  --figur-fern:#23505F;
  --figur-nah:#4A88A3;
  --figur-rumpf:#2E536D;
  --figur-knie:#85D4D9;
  --boden:#1B3D47;
  --glut:#85D4D9;

  --status-laeuft:#85D4D9;
  --status-fertig:#8FCB9B;
  --status-geplant:#C9A85F;

  --logo:url("../logo.svg");
  --nav-grund:rgba(6,22,28,.74);
  --schatten:0 1px 2px rgba(0,0,0,.28), 0 16px 40px -20px rgba(0,0,0,.7);
}

/* ============================================================
   Grundlagen
   ============================================================ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5rem;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}
body{
  margin:0;background:var(--grund);color:var(--text);
  font-family:var(--schrift);
  font-size:var(--t-base);line-height:1.6;font-weight:300;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;}
.huelle{width:var(--weit);margin-inline:auto;}
.huelle-schmal{width:var(--schmal);margin-inline:auto;}
a{color:var(--akzent);text-underline-offset:.2em;}
a:hover{color:var(--akzent-hell);}
:focus-visible{outline:2px solid var(--akzent);outline-offset:3px;border-radius:4px;}
::selection{background:var(--akzent-flaeche);}

.springmarke{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--akzent);color:var(--auf-akzent);
  padding:.7rem 1.2rem;border-radius:0 0 var(--radius-klein) 0;
  font-size:var(--t-sm);font-weight:500;text-decoration:none;
}
.springmarke:focus{left:0;color:var(--auf-akzent);}

.nur-vorlesen{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Kleine Grossbuchstaben-Marke ueber einer Ueberschrift */
.augenbraue{
  display:block;font-size:var(--t-xs);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--leise);
  margin:0 0 .9rem;
}

/* ============================================================
   Navigation
   ============================================================ */
nav{
  position:sticky;top:0;z-index:30;
  background:var(--nav-grund);
  border-bottom:1px solid var(--kante-leise);
}
@supports (backdrop-filter:blur(1px)){
  nav{backdrop-filter:blur(16px) saturate(140%);}
}
.nav-innen{display:flex;align-items:center;gap:1rem;padding:.8rem 0;}
.marke{
  display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--text);
  font-family:var(--schrift-display);font-size:1rem;letter-spacing:.01em;margin-right:auto;
}
/* Das Logo ist mehrfarbig; seine Aussenkante ist im dunklen Thema weiss.
   Deshalb liegen zwei Fassungen bereit, die ueber ein Token getauscht werden. */
.marke .zeichen{
  width:22px;height:30px;flex:0 0 22px;display:block;
  background:var(--logo) center/contain no-repeat;
}
.nav-links{display:flex;gap:1.4rem;font-size:.92rem;font-weight:400;}
.nav-links a{color:var(--gedimmt);text-decoration:none;position:relative;padding:.2rem 0;}
.nav-links a:hover{color:var(--text);}
.nav-links a[aria-current="true"]{color:var(--text);}
.nav-links a[aria-current="true"]::after{
  content:"";position:absolute;left:0;right:0;bottom:-.1rem;height:2px;
  border-radius:2px;background:var(--akzent);
}
.nav-werkzeuge{display:flex;align-items:center;gap:.25rem;margin-left:.6rem;}
.symbolknopf{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;
  background:none;border:0;border-radius:var(--radius-klein);
  color:var(--gedimmt);cursor:pointer;
}
.symbolknopf:hover{color:var(--text);background:var(--flaeche-2);}
.nav-schalter{display:none;margin-right:-8px;}

@media (max-width:760px){
  .nav-schalter{display:flex;}
  .nav-werkzeuge{margin-left:0;}
  .nav-links{
    position:absolute;left:0;right:0;top:100%;
    flex-direction:column;gap:0;
    padding:.35rem 0 .9rem;
    background:var(--grund);
    border-bottom:1px solid var(--kante-leise);
    box-shadow:var(--schatten);
    display:none;
  }
  .nav-links[data-offen]{display:flex;}
  .nav-links a{padding:.85rem 1.25rem;font-size:1rem;}
  .nav-links a:active{background:var(--flaeche-2);}
  .nav-links a[aria-current="true"]::after{left:1.25rem;right:auto;width:1.1rem;bottom:.55rem;}
}

/* ============================================================
   Buehne
   ============================================================ */
.buehne{
  display:grid;grid-template-columns:1fr .88fr;gap:4rem;align-items:center;
  padding:4rem 0 4rem;
}
h1{
  font-weight:500;font-size:var(--t-h1);line-height:1.02;
  letter-spacing:-0.035em;margin:0 0 1.4rem;max-width:12ch;
  text-wrap:balance;
}
.lead{font-size:var(--t-lead);line-height:1.55;color:var(--gedimmt);max-width:38ch;margin:0 0 2rem;}
.aktionen{display:flex;gap:.7rem;flex-wrap:wrap;}
.knopf{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.75rem 1.4rem;border-radius:999px;text-decoration:none;
  font-weight:500;font-size:.95rem;font-family:inherit;
  background:var(--akzent);color:var(--auf-akzent);border:1px solid var(--akzent);cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.knopf:hover{background:var(--akzent-hell);border-color:var(--akzent-hell);color:var(--auf-akzent);}
.knopf.leise{background:transparent;color:var(--text);border-color:var(--kante);}
.knopf.leise:hover{border-color:var(--akzent);color:var(--text);background:var(--akzent-flaeche);}

/* ============================================================
   Messfeld — das Instrumentenfeld
   ============================================================ */
.messfeld{
  background:var(--flaeche);
  border:1px solid var(--kante);border-radius:var(--radius);
  padding:1.3rem 1.4rem 1.1rem;
  box-shadow:var(--schatten);
}
.messfeld-kopf{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-bottom:.9rem;margin-bottom:1rem;border-bottom:1px solid var(--kante-leise);
}
.messfeld-titel{
  font-size:var(--t-xs);font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--leise);
}
.puls{display:flex;align-items:center;gap:.45rem;font-size:var(--t-xs);color:var(--leise);}
.puls span{
  width:7px;height:7px;border-radius:50%;background:var(--akzent);
  animation:pulsieren 3.2s ease-in-out infinite;
}
.puls[data-still] span{animation:none;opacity:.45;}
@keyframes pulsieren{0%,100%{opacity:.25;}50%{opacity:1;}}

.gang{margin:0 0 .4rem;}
.gang svg{width:100%;max-width:250px;height:auto;display:block;margin:0 auto;}
.fuesse{display:flex;justify-content:center;gap:1.4rem;}
.fuesse svg{width:100%;max-width:118px;height:auto;display:block;}
.gespiegelt{transform:scaleX(-1);}

/* Anzeigezeile: Phase, Position, Lastverteilung */
.anzeigen{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;
  margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--kante-leise);
}
.anzeige{min-width:0;}
.anzeige dt{
  font-size:var(--t-xs);color:var(--leise);margin:0 0 .15rem;
  letter-spacing:.06em;text-transform:uppercase;
}
.anzeige dd{
  margin:0;font-size:.98rem;font-weight:500;color:var(--text);
  font-variant-numeric:tabular-nums;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.steuerung{display:flex;align-items:center;gap:.9rem;margin-top:1rem;}
.spiel{
  width:40px;height:40px;flex:0 0 40px;border-radius:50%;
  border:1px solid var(--kante);
  background:var(--akzent-flaeche);color:var(--akzent);cursor:pointer;
  display:grid;place-items:center;padding:0;
}
.spiel:hover{background:var(--akzent);color:var(--auf-akzent);border-color:var(--akzent);}
input[type=range]{
  -webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;
  background:var(--kante);cursor:pointer;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:16px;height:16px;border-radius:50%;
  background:var(--akzent);border:none;
}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--akzent);border:none;}
input[type=range]:focus-visible{outline-offset:6px;}

.skala{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:var(--t-xs);color:var(--leise);}
.skala i{
  flex:1;height:4px;border-radius:2px;font-style:normal;
  background:linear-gradient(90deg,var(--druck-0),var(--druck-1),var(--druck-2),var(--druck-3));
}
.hinweis-klein{font-size:var(--t-xs);color:var(--leise);margin:.75rem 0 0;line-height:1.5;}

/* ============================================================
   Abschnitte
   ============================================================ */
section{padding:4.5rem 0;border-top:1px solid var(--kante-leise);}
h2{
  font-weight:500;font-size:var(--t-h2);letter-spacing:-0.025em;
  line-height:1.15;margin:0 0 1.2rem;max-width:20ch;text-wrap:balance;
}
section p{max-width:60ch;color:var(--gedimmt);margin:0 0 1.1rem;font-size:1.04rem;}
section p:last-child{margin-bottom:0;}
strong{color:var(--text);font-weight:500;}

/* Zweispaltiger Abschnitt: links die Ueberschrift, rechts der Inhalt.
   Faellt unter 980px auf eine Spalte zurueck. */
.zwei{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:3.5rem;align-items:start;}
.zwei > .kopfspalte{position:sticky;top:6rem;}
.zwei h2{margin-bottom:1rem;}
.zwei .kopfspalte p{font-size:1rem;margin-bottom:0;}
@media (max-width:980px){
  .zwei{grid-template-columns:1fr;gap:1.6rem;}
  .zwei > .kopfspalte{position:static;}
}
@media (prefers-reduced-motion:reduce){.zwei > .kopfspalte{position:static;}}

/* Vergleich */
.vergleich{margin-top:2.5rem;display:grid;grid-template-columns:auto 1fr;gap:2.5rem;align-items:center;}
.vergleich .fuesse svg{max-width:96px;}
.schalter{
  display:inline-flex;background:var(--flaeche-2);border:1px solid var(--kante-leise);
  border-radius:999px;padding:4px;gap:4px;margin-bottom:1.4rem;
}
.schalter button{
  border:none;background:none;color:var(--gedimmt);font-family:inherit;font-size:.9rem;
  padding:.45rem 1rem;border-radius:999px;cursor:pointer;
}
.schalter button:hover{color:var(--text);}
.schalter button[aria-pressed=true]{background:var(--akzent);color:var(--auf-akzent);font-weight:500;}
.waage{margin-top:1.4rem;max-width:32rem;}
.waage-balken{display:flex;height:34px;border-radius:var(--radius-klein);overflow:hidden;border:1px solid var(--kante);}
.waage-balken span{display:block;transition:width .45s cubic-bezier(.4,0,.2,1);}
.waage-links{background:var(--akzent);}
.waage-rechts{background:var(--navy);}
.waage-zahlen{
  display:flex;justify-content:space-between;font-size:var(--t-sm);
  color:var(--gedimmt);margin-top:.5rem;font-variant-numeric:tabular-nums;
}
.waage-zahlen b{color:var(--text);font-weight:500;}

/* Ablauf — eine echte Reihenfolge, deshalb nummeriert */
.ablauf{counter-reset:s;margin-top:0;display:grid;gap:1.6rem;max-width:46rem;padding:0;}
.ablauf li{list-style:none;display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;}
.ablauf li::before{
  counter-increment:s;content:counter(s);
  font-size:var(--t-sm);color:var(--akzent);border:1px solid var(--kante);
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;margin-top:.15rem;
  font-variant-numeric:tabular-nums;
}
.ablauf h3{margin:0 0 .3rem;font-size:var(--t-h3);font-weight:500;}
.ablauf p{margin:0;font-size:.98rem;}

/* Projektstand — Zeitstrahl mit Statusmarke */
.stand-liste{margin:0;padding:0;list-style:none;max-width:46rem;display:grid;gap:0;}
.stand-liste li{
  display:grid;grid-template-columns:auto 1fr;gap:1.2rem;
  padding:0 0 1.8rem;position:relative;
}
.stand-liste li:last-child{padding-bottom:0;}
.stand-punkt{
  width:13px;height:13px;border-radius:50%;margin-top:.45rem;
  border:2px solid var(--kante);background:var(--grund);position:relative;
}
.stand-liste li:not(:last-child)::after{
  content:"";position:absolute;left:5.5px;top:1.55rem;bottom:.35rem;
  width:2px;border-radius:1px;background:var(--kante-leise);
}
.stand-liste li[data-status="fertig"] .stand-punkt{border-color:var(--status-fertig);background:var(--status-fertig);}
.stand-liste li[data-status="laeuft"] .stand-punkt{border-color:var(--status-laeuft);background:var(--status-laeuft);
  box-shadow:0 0 0 4px var(--akzent-flaeche);}
.stand-kopf{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin:0 0 .25rem;}
.stand-kopf h3{margin:0;font-size:var(--t-h3);font-weight:500;}
.marke-status{
  font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--kante);border-radius:999px;padding:.12rem .55rem;color:var(--leise);
}
li[data-status="fertig"] .marke-status{color:var(--status-fertig);border-color:currentColor;}
li[data-status="laeuft"] .marke-status{color:var(--status-laeuft);border-color:currentColor;}
li[data-status="geplant"] .marke-status{color:var(--status-geplant);border-color:currentColor;}
.stand-liste p{margin:0;font-size:.98rem;}

/* Mitmachen */
.aufruf{
  margin-top:0;background:var(--flaeche);border:1px solid var(--kante);
  border-radius:var(--radius);padding:2rem;max-width:46rem;
  display:grid;gap:1.2rem;box-shadow:var(--schatten);
}
.aufruf h3{margin:0;font-size:1.2rem;font-weight:500;}
.aufruf ul{margin:0;padding-left:1.1rem;color:var(--gedimmt);display:grid;gap:.35rem;font-size:.98rem;}
.aufruf p{margin:0;}

/* Projekt */
.leute{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.2rem;max-width:46rem;}
.leute div{border-top:1px solid var(--kante);padding-top:.8rem;}
.leute h3{margin:0 0 .2rem;font-size:1rem;font-weight:500;}
.leute p{margin:0;font-size:.92rem;}

.warnung{
  margin-top:2.5rem;border-left:2px solid var(--akzent);padding:.2rem 0 .2rem 1.2rem;
  max-width:54ch;color:var(--gedimmt);font-size:.95rem;
}

/* Fragen */
.fragen{margin-top:0;max-width:46rem;display:grid;gap:0;}
.fragen details{border-bottom:1px solid var(--kante-leise);}
.fragen details:first-of-type{border-top:1px solid var(--kante-leise);}
.fragen summary:first-line{line-height:1.4;}
.fragen summary{
  cursor:pointer;list-style:none;padding:1.1rem 2rem 1.1rem 0;position:relative;
  font-weight:500;color:var(--text);font-size:1.02rem;
}
.fragen summary::-webkit-details-marker{display:none;}
.fragen summary::after{
  content:"";position:absolute;right:.4rem;top:1.45rem;
  width:9px;height:9px;border-right:1.6px solid var(--leise);border-bottom:1.6px solid var(--leise);
  transform:rotate(45deg);transition:transform .2s ease;
}
.fragen details[open] summary::after{transform:rotate(-135deg);top:1.7rem;}
.fragen summary:hover{color:var(--akzent);}
.fragen summary:hover::after{border-color:var(--akzent);}
.fragen div{padding:0 2rem 1.3rem 0;}
.fragen p{font-size:.99rem;margin:0 0 .7rem;}
.fragen p:last-child{margin-bottom:0;}

/* ============================================================
   Fuss
   ============================================================ */
footer{
  border-top:1px solid var(--kante-leise);padding:3.5rem 0 4rem;
  color:var(--leise);font-size:.9rem;
}
.fuss{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem;}
footer h3{color:var(--text);font-size:.95rem;font-weight:500;margin:0 0 .6rem;}
footer p{margin:0 0 .4rem;max-width:32rem;color:var(--leise);}
.fuss-links{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;}
.fuss-links a{color:var(--gedimmt);text-decoration:none;}
.fuss-links a:hover{color:var(--akzent);}
.fuss-schluss{
  margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--kante-leise);
  display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;
  font-size:var(--t-xs);
}

/* ============================================================
   Unterseiten (Datenschutz, Impressum, 404)
   ============================================================ */
.zurueck{color:var(--gedimmt);text-decoration:none;font-size:.92rem;font-weight:400;white-space:nowrap;}
.zurueck:hover{color:var(--text);}
.text-seite{padding:3.5rem 0 4.5rem;}
.text-seite h1{font-size:clamp(2rem,5vw,2.9rem);margin:0 0 .6rem;max-width:20ch;}
.stand{color:var(--leise);font-size:.9rem;margin:0 0 3rem;}
.text-seite h2{font-size:1.15rem;letter-spacing:-0.01em;margin:2.8rem 0 .7rem;max-width:none;}
.text-seite h3{font-weight:500;font-size:1rem;margin:1.8rem 0 .5rem;}
.text-seite p,.text-seite li{color:var(--gedimmt);}
.text-seite p{margin:0 0 .9rem;max-width:none;}
.text-seite ul{margin:0 0 .9rem;padding-left:1.2rem;}
.text-seite li{margin-bottom:.35rem;}
code{
  font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  font-size:.88em;background:var(--flaeche-2);color:var(--text);
  padding:.1em .38em;border-radius:5px;border:1px solid var(--kante-leise);
}

.leer{
  min-height:56vh;display:grid;place-content:center;justify-items:start;
  padding:4rem 0;gap:1.2rem;
}
.leer h1{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.4rem);margin:0;max-width:20ch;}
.leer p{color:var(--gedimmt);max-width:50ch;margin:0;}
.leer .aktionen{margin-top:.6rem;}
.leer .kode{
  font-family:var(--schrift-display);font-size:clamp(3rem,12vw,6rem);
  color:var(--akzent);margin:0;line-height:1;
}

/* ============================================================
   Haltepunkte
   ============================================================ */
@media (max-width:1180px){.buehne{gap:2.5rem;}}
@media (max-width:980px){
  .buehne{grid-template-columns:1fr;gap:2.8rem;padding:3.2rem 0 3.5rem;}
  .vergleich{grid-template-columns:1fr;gap:1.8rem;}
  .leute{grid-template-columns:1fr;gap:1.2rem;}
  .fuss{grid-template-columns:1fr 1fr;gap:1.8rem;}
  section{padding:3.5rem 0;}
  .messfeld{max-width:32rem;margin-inline:auto;}
}
@media (max-width:640px){
  :root{--weit:min(100% - 2rem, 72rem);--schmal:min(100% - 2rem, 46rem);}
  .zurueck{font-size:.88rem;}
  .messfeld{padding:1.1rem 1.1rem .9rem;border-radius:16px;}
  .gang svg{max-width:200px;}
  .fuesse svg{max-width:96px;}
  .buehne{padding:2.4rem 0 2.8rem;}
  .fuss{grid-template-columns:1fr;}
  .aufruf{padding:1.4rem;}
  .anzeigen{grid-template-columns:1fr 1fr;row-gap:.9rem;}
  .anzeige:first-child{grid-column:1 / -1;}
}

/* ============================================================
   Grafik-Klassen — die SVGs holen ihre Farben aus den Tokens,
   damit sie in beiden Themen stimmen.
   ============================================================ */
.sohle-flaeche{fill:var(--sohle-fuell);stroke:var(--sohle-kante);stroke-width:3;}
.sohle-linie{fill:none;stroke:var(--sohle-kante);stroke-width:3;}
.druck{fill:var(--druck-0);}
.druck.stufe-1{fill:var(--druck-1);}
.druck.stufe-2{fill:var(--druck-2);}
.druck.stufe-3{fill:var(--druck-3);}

.fig-boden{stroke:var(--boden);stroke-width:2;}
.fig-fern{fill:none;stroke:var(--figur-fern);stroke-linecap:round;stroke-linejoin:round;}
.fig-nah{fill:none;stroke:var(--figur-nah);stroke-linecap:round;stroke-linejoin:round;}
.fig-bein{stroke-width:16;}
.fig-fuss{stroke-width:12;}
.fig-bein-nah{stroke-width:17;}
.fig-fuss-nah{stroke-width:13;}
.fig-knie-fern{fill:var(--figur-fern);}
.fig-knie-nah{fill:var(--figur-knie);}
.fig-rumpf{fill:var(--figur-rumpf);}
.fig-glut-a{stop-color:var(--glut);stop-opacity:.8;}
.fig-glut-b{stop-color:var(--glut);stop-opacity:0;}
