/* Schriften der Seite (Dateien liegen in fonts/) */
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500 700;font-display:swap;src:url('fonts/Newsreader-Variable.woff') format('woff')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/Newsreader-Italic-Variable.woff') format('woff')}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/AtkinsonHyperlegible-Regular.woff') format('woff')}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/AtkinsonHyperlegible-Bold.woff') format('woff')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/JetBrainsMono-Variable.woff') format('woff')}

/* ---------- Tokens ---------- */
:root{
  --navy:#1c2a42; --navy-2:#263550; --navy-3:#31446a;
  --orange:#f26b1d; --orange-2:#ff9a3c; --orange-ink:#b84a0a;
  --gold:#f2c14e; --teal:#1f9d8f; --teal-soft:#d9f2ee;

  --bg:#fbf8f3; --bg-2:#f3ede3; --card:#ffffff;
  --ink:#1d2433; --ink-2:#47506a; --line:#e4dccd;
  --accent:var(--orange-ink); --accent-bg:#fff0e3;
  --code-bg:#17213a; --code-ink:#e8ecf6;
  --shadow:0 1px 2px rgba(28,42,66,.06), 0 10px 30px rgba(28,42,66,.08);

  --serif:"Newsreader","Charter","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"DejaVu Sans Mono",Menlo,Consolas,monospace;
  --radius:16px; --maxw:1120px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#121a2b; --bg-2:#16203a; --card:#1b2744;
    --ink:#eef1f8; --ink-2:#b5bfd6; --line:#2b3a5e;
    --accent:#ff9a3c; --accent-bg:#2b2433; --teal-soft:#16363a;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 34px rgba(0,0,0,.35);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#121a2b; --bg-2:#16203a; --card:#1b2744;
  --ink:#eef1f8; --ink-2:#b5bfd6; --line:#2b3a5e;
  --accent:#ff9a3c; --accent-bg:#2b2433; --teal-soft:#16363a;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 34px rgba(0,0,0,.35);
  color-scheme:dark;
}

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.skiplink{position:absolute;left:-999px;top:0;background:var(--gold);color:#1c2a42;padding:.6rem 1rem;z-index:100}
.skiplink:focus{left:.5rem;top:.5rem}
h1,h2,h3{font-family:var(--serif);line-height:1.15;margin:0 0 .6em;letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,4vw,2.7rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .9rem;font-weight:600}
.lead{font-size:1.2rem;color:var(--ink-2);max-width:62ch}
section{padding:clamp(3.5rem,8vw,6rem) 0}
.tint{background:var(--bg-2)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font:600 1rem var(--sans);padding:.9rem 1.5rem;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,var(--orange),var(--orange-2));color:#1a1206;box-shadow:0 8px 22px rgba(242,107,29,.35)}
.btn-primary:hover{box-shadow:0 12px 28px rgba(242,107,29,.45)}
.btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-outline{border-color:var(--line);color:var(--ink);background:var(--card)}
.btn-outline:hover{border-color:var(--orange)}
.btn[aria-disabled="true"]{opacity:.65;cursor:default}

/* ---------- Kopfzeile ---------- */
.top{position:absolute;inset:0 0 auto 0;z-index:10}
.top .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:1.1rem;padding-bottom:1.1rem;gap:1rem}
.brand{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:#fff;text-decoration:none;display:flex;align-items:center;gap:.55rem}
.brand i{width:12px;height:12px;border-radius:3px;background:var(--orange);display:inline-block;transform:rotate(45deg)}
.nav{display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:flex-end}
.nav a{color:#dfe5f3;text-decoration:none;font-size:.95rem}
.nav a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}


/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;color:#fff;padding:7.5rem 0 5rem;
  background:
    radial-gradient(900px 500px at 78% 20%, rgba(242,107,29,.28), transparent 60%),
    radial-gradient(700px 500px at 5% 95%, rgba(31,157,143,.22), transparent 60%),
    linear-gradient(180deg,var(--navy-2),var(--navy))}
.hero::before{content:"";position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.14) 1.2px, transparent 1.4px);background-size:26px 26px;
  mask-image:linear-gradient(180deg,#000 0,transparent 85%);-webkit-mask-image:linear-gradient(180deg,#000 0,transparent 85%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.hero .eyebrow{color:var(--gold)}
.hero h1{font-size:clamp(2.5rem,6vw,4.4rem);color:#fff;margin-bottom:.45em}
.hero h1 em{font-style:normal;background:linear-gradient(135deg,var(--orange),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:#cfd8ec}
.cta-row{display:flex;flex-wrap:wrap;gap:.9rem;margin:2rem 0 1.6rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;list-style:none}
.chips li{font:500 .82rem var(--mono);padding:.35rem .7rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#dfe6f7}
.cover{position:relative;justify-self:center;perspective:1200px}
.cover::before{content:"";position:absolute;inset:8% -8% -6% -8%;background:radial-gradient(closest-side,rgba(242,107,29,.55),transparent 72%);filter:blur(30px);z-index:0}
.cover img{position:relative;z-index:1;width:min(340px,78vw);border-radius:6px 12px 12px 6px;
  box-shadow:-10px 0 0 -4px rgba(0,0,0,.35), 0 40px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.08);
  transform:rotateY(-14deg) rotateX(3deg);transition:transform .5s ease}
.cover:hover img{transform:rotateY(-4deg) rotateX(1deg) translateY(-6px)}
.badge{position:absolute;z-index:2;right:-5%;top:7%;background:var(--gold);color:#1c2a42;font:700 .8rem var(--mono);padding:.55rem .8rem;border-radius:12px;transform:rotate(-5deg);box-shadow:0 10px 24px rgba(0,0,0,.35)}
@media (max-width:860px){
  .hero{padding-top:6.5rem}
  .hero .wrap{grid-template-columns:1fr;gap:2.5rem}
  .cover{order:-1}
  .cover img{transform:rotateY(-8deg)}
}

/* ---------- Zahlenleiste ---------- */
.stats{background:var(--navy);color:#fff;padding:0}
.stats ul{list-style:none;margin:0;padding:1.6rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.2rem;text-align:center}
.stats strong{display:block;font:700 2.1rem var(--serif);color:var(--gold);line-height:1}
.stats span{font-size:.88rem;color:#b9c4dd}

/* ---------- Versprechen / Problem ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.split > *,.hero .wrap > *{min-width:0}
.pull{font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.35;border-left:5px solid var(--orange);padding:.2rem 0 .2rem 1.3rem;margin:0}
.pull small{display:block;margin-top:.8rem;font:500 .9rem var(--sans);color:var(--ink-2)}

/* ---------- Karten ---------- */
.grid{display:grid;gap:1.25rem}
.g3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow)}
.card h3{margin-bottom:.4em}
.card p:last-child{margin-bottom:0}
.ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;margin-bottom:1rem;background:var(--accent-bg);color:var(--accent)}
.ico svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ico.t{background:var(--teal-soft);color:var(--teal)}
.tag{font:600 .75rem var(--mono);color:var(--accent);letter-spacing:.04em}
.section-head{max-width:720px;margin-bottom:2.6rem}

/* ---------- Bauprojekte ---------- */
.builds{counter-reset:b;display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.build{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.5rem 1.4rem 1.5rem;box-shadow:var(--shadow);overflow:hidden}
.build::after{counter-increment:b;content:counter(b,decimal-leading-zero);position:absolute;right:1rem;top:.3rem;font:700 3.2rem var(--serif);color:var(--accent);opacity:.12}
.build h3{font-size:1.15rem;margin-bottom:.3em}
.build p{font-size:.97rem;color:var(--ink-2);margin:0}
.build .tag{display:block;margin-bottom:.5rem}

/* ---------- Leseprobe ---------- */
.code{background:var(--code-bg);color:var(--code-ink);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid #2a3860}
.code .bar{display:flex;align-items:center;gap:.45rem;padding:.7rem 1rem;background:#101830;font:500 .78rem var(--mono);color:#93a0c2}
.code .bar span{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.code .bar span:nth-child(2){background:#febc2e}.code .bar span:nth-child(3){background:#28c840}
.code .bar b{margin-left:.6rem;font-weight:500}
.code pre{margin:0;padding:1.2rem 1.3rem;overflow-x:auto;font:.92rem/1.7 var(--mono);tab-size:4}
.k{color:#ff9a3c}.s{color:#7fd4b7}.m{color:#f2c14e}.c{color:#7d8bb0;font-style:italic}.o{color:#9db8ff}
.note{margin:1.1rem 0 0;font-size:.95rem;color:var(--ink-2)}

/* ---------- Lehrplan ---------- */
.parts{display:grid;gap:.7rem;max-width:860px;margin-inline:auto}
details{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem}
summary::-webkit-details-marker{display:none}
.pn{flex:none;width:2.4rem;height:2.4rem;border-radius:10px;display:grid;place-items:center;background:var(--navy);color:var(--gold);font:700 .95rem var(--mono)}
.pt{flex:1;font:600 1.05rem var(--serif)}
.pt small{display:block;font:400 .82rem var(--mono);color:var(--ink-2);margin-top:.1rem}
summary::after{content:"+";font:400 1.6rem var(--sans);color:var(--accent);transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
.parts details > div{padding:0 1.25rem 1.2rem 4.65rem;color:var(--ink-2);font-size:.98rem}
.parts details > div p{margin:0}
@media (max-width:560px){.parts details > div{padding-left:1.25rem}}
.apx{max-width:860px;margin:1.6rem auto 0;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.apx span{font:500 .82rem var(--mono);padding:.35rem .75rem;border-radius:999px;background:var(--card);border:1px dashed var(--line);color:var(--ink-2)}

/* ---------- Für wen ---------- */
.yes li::marker{color:var(--teal)} .no li::marker{color:var(--orange)}
.card ul{margin:.4rem 0 0;padding-left:1.2rem}
.card li{margin:.45rem 0}

/* ---------- Autor ---------- */
.author{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:center;background:linear-gradient(135deg,var(--navy-2),var(--navy));color:#e9eefb;border-radius:24px;padding:clamp(1.6rem,4vw,3rem);box-shadow:var(--shadow)}
.author .mono{width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 25%,var(--orange-2),var(--orange));color:#1a1206;font:700 2.2rem var(--serif);box-shadow:0 0 0 6px rgba(255,255,255,.08)}
.author h2{color:#fff;font-size:1.8rem;margin-bottom:.3em}
.author blockquote{margin:.2rem 0 1rem;font-family:var(--serif);font-size:1.25rem;line-height:1.45;color:#fff}
.author p{color:#c4cee6;margin:0}
@media (max-width:640px){.author{grid-template-columns:1fr;text-align:left}}

/* ---------- Formate ---------- */
.formats{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.fmt h3{display:flex;align-items:center;gap:.6rem}
.fmt .state{font:600 .82rem var(--mono);color:var(--teal);margin:.2rem 0 1.1rem}
.fmt ul{padding-left:1.1rem;margin:0 0 1.4rem;color:var(--ink-2);font-size:.97rem}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto}
.faq details{margin-bottom:.7rem}
.faq summary{font:600 1.05rem var(--serif)}
.faq details > div{padding:0 1.25rem 1.1rem}

/* ---------- Schluss-CTA ---------- */
.final{text-align:center;color:#fff;background:
  radial-gradient(700px 360px at 50% 0%, rgba(242,107,29,.3), transparent 65%),
  linear-gradient(180deg,var(--navy-2),var(--navy))}
.final h2{color:#fff;max-width:20ch;margin-inline:auto}
.final p{color:#cfd8ec;max-width:56ch;margin-inline:auto}
.final .cta-row{justify-content:center}
.more{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;margin-top:1.6rem;font-size:.95rem}
.more a{color:var(--gold)}

/* ---------- Fuß ---------- */
footer{background:#0f1728;color:#9fb0d0;padding:2.2rem 0;font-size:.92rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
footer a{color:#c8d3ec}
footer nav{display:flex;gap:1.3rem;flex-wrap:wrap}

/* ---------- Bewegung ---------- */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -8px}}
.cover{animation:bob 6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}

/* =====================================================
   Ergänzungen: Shop-Buttons, Werkstatt/Notizen, Leseprobe
   ===================================================== */

/* ---------- Shop-Buttons (per JS aus SHOP-Liste) ---------- */
.shop-buttons{display:flex;flex-wrap:wrap;gap:.7rem}
.shop-buttons .btn small{font:500 .78rem var(--mono);opacity:.75}
.shop-none{font:600 .92rem var(--mono);color:var(--ink-2);margin:0}

/* ---------- Mehr von der Rust-Werkstatt ---------- */
.werk{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));margin-bottom:1.25rem}
.werk .card{display:flex;flex-direction:column;border-top:4px solid var(--orange)}
.werk .card:nth-child(2){border-top-color:var(--teal)}
.werk .card:nth-child(3){border-top-color:var(--gold)}
.werk .tag{margin-bottom:.5rem}
.werk ul{margin:.2rem 0 1.1rem;padding-left:1.1rem;color:var(--ink-2);font-size:.96rem}
.werk .card > a:last-child{margin-top:auto;font-weight:600}
.sub-h{font-family:var(--serif);font-size:1.5rem;margin:2.6rem 0 .5rem}
.mini{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:1.25rem}
.mini .card{padding:1.3rem}
.mini h3{font-size:1.1rem}
.mini p{font-size:.96rem;color:var(--ink-2)}
.mini a{font-weight:600}

/* ---------- Leseprobe: Kopf ---------- */
.hero.lite{padding:7rem 0 3.2rem}
.hero.lite .wrap{grid-template-columns:1fr;gap:1rem}
.hero.lite .wrap > *{max-width:860px}
.hero.lite.narrow .wrap{max-width:860px}
.hero.lite h1{font-size:clamp(2.1rem,5vw,3.4rem)}
.chiplist{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.chiplist a{font:500 .85rem var(--mono);color:#dfe6f7;text-decoration:none;padding:.4rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06)}
.chiplist a:hover{background:rgba(255,255,255,.14)}
#progress{position:fixed;top:0;left:0;height:4px;width:0;background:linear-gradient(90deg,var(--orange),var(--gold));z-index:200}

/* ---------- Leseprobe: Artikel ---------- */
.article{max-width:760px;margin:0 auto;padding:3rem 1.25rem 1rem}
.article h2{font-size:clamp(1.8rem,4vw,2.5rem);margin:3.2rem 0 .5em;padding-top:.5rem}
.article h2:first-child{margin-top:0}
.article h3{font-size:1.45rem;margin:2.2rem 0 .5em}
.article h4{font-family:var(--serif);font-size:1.15rem;margin:1.6rem 0 .4em}
.article p,.article li{font-size:1.1rem}
.article ul,.article ol{padding-left:1.3rem}
.article li{margin:.4rem 0}
.article code{font:.9em var(--mono);background:var(--bg-2);border:1px solid var(--line);padding:.08em .38em;border-radius:6px}
.article .code code,.article .term code{background:none;border:0;padding:0;font-size:inherit}
.chap{display:inline-block;font:600 .8rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}
.part-sep{border:0;height:1px;background:var(--line);margin:3.5rem 0 0}
.article .code{margin:1.2rem 0}
.article .code pre{font-size:.92rem}

.term{background:#0d1426;color:#d8e0f4;border-radius:12px;margin:1.1rem 0;padding:.9rem 1.15rem;overflow-x:auto;border:1px solid #243157;font:.9rem/1.65 var(--mono)}
.term pre{margin:0;font:inherit}
.term .p{color:#7fd4b7;user-select:none}
.term .e{color:#ff7b72;font-weight:600}
.term .d{color:#8b97b8}

/* Kapitel-Bausteine */
.box{--c:var(--orange-ink);margin:1.6rem 0;padding:1.1rem 1.3rem 1.1rem 1.4rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 7%,var(--card))}
.box > :last-child{margin-bottom:0}
.box-h{display:flex;align-items:center;gap:.55rem;font:700 .82rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c);margin:0 0 .6rem}
.box-h svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.box.werkbank{--c:#d1560f}
.box.hinschauen{--c:#13857a}
.box.stolper{--c:#c0392b}
.box.judu{--c:#2c6fd1}
.box.ehrlich{--c:#8a4fc7}
.box.fach{--c:#9a7410}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .box.werkbank{--c:#ff9a3c}
  :root:not([data-theme="light"]) .box.hinschauen{--c:#45cdbd}
  :root:not([data-theme="light"]) .box.stolper{--c:#ff7b72}
  :root:not([data-theme="light"]) .box.judu{--c:#7fb0ff}
  :root:not([data-theme="light"]) .box.ehrlich{--c:#c79bff}
  :root:not([data-theme="light"]) .box.fach{--c:#f2c14e}
}
.sixlist{list-style:none;padding:0!important;display:grid;gap:.5rem}
.sixlist li{display:grid;grid-template-columns:11.5rem 1fr;gap:.2rem 1rem;padding:.7rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:12px;margin:0}
.sixlist b{font-family:var(--serif);font-size:1.05rem}
@media (max-width:600px){.sixlist li{grid-template-columns:1fr}}

.article details.loesung{margin:1.2rem 0}
.article details.loesung summary{font:600 1rem var(--sans)}
.article details.loesung > div{padding:0 1.25rem 1.2rem}
.article details.loesung .code{margin:.3rem 0 0}

.ende{max-width:760px;margin:2.5rem auto 4rem;padding:0 1.25rem}
.ende .card{background:linear-gradient(135deg,var(--navy-2),var(--navy));color:#e9eefb;border:0;padding:2rem}
.ende h2{color:#fff;font-size:1.7rem;margin-bottom:.4em}
.ende p{color:#c4cee6}
.ende .cta-row{margin-bottom:0}
.next{font:600 .85rem var(--mono);color:var(--gold);letter-spacing:.08em;text-transform:uppercase}

/* ---------- Werkstatt-Karten mit Screenshot ---------- */
.werk .shot{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;border:1px solid var(--line);margin:0 0 1.1rem;background:var(--bg-2)}
.werk .card{padding:1.2rem 1.2rem 1.5rem}
.werk .card .tag,.werk .card h3,.werk .card p,.werk .card ul,.werk .card > a{margin-left:.35rem;margin-right:.35rem}
.hint{font-size:.98rem;color:var(--ink-2);margin:.4rem 0 0}
.hint a{font-weight:600}

/* ---------- Notizen-Teaser ---------- */
.notiz{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;margin-top:1.25rem}
@media (max-width:860px){.notiz{grid-template-columns:1fr}}
.notiz .meta{font:600 .78rem var(--mono);color:var(--accent);letter-spacing:.06em;margin:0 0 .5rem}
.notiz h3{font-size:1.55rem}
.notiz > *{min-width:0}
.notiz .code{box-shadow:none}
.notiz .code pre{font-size:.76rem;line-height:1.6}

/* ---------- Ausblick Band 2 ---------- */
.band2{display:grid;grid-template-columns:1.1fr .9fr;gap:2.4rem;align-items:center;color:#e9eefb;border-radius:24px;padding:clamp(1.6rem,4vw,3rem);
  background:radial-gradient(600px 300px at 100% 0%,rgba(31,157,143,.28),transparent 65%),linear-gradient(135deg,var(--navy-2),var(--navy));box-shadow:var(--shadow)}
.band2 > *{min-width:0}
.band2 h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.3rem)}
.band2 p{color:#c8d2ea}
.band2 strong{color:#fff}
.band2 .b2-h{font:700 .78rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:1.4rem 0 .6rem}
.band2 .b2-note{font-size:.92rem;margin:1.2rem 0 0;color:#a9b6d3}
.band2 .code{border-color:#2f4272}
@media (max-width:860px){.band2{grid-template-columns:1fr}}
.band2 .code pre{font-size:.8rem}


/* =====================================================
   Gemeinsame Seitenbausteine (Werkstatt, Notizen, Rechtliches)
   ===================================================== */
:root{--ink-dim:var(--ink-2);--font-mono:var(--mono);--accent-wash:var(--accent-bg);--teal-wash:var(--teal-soft);--bg-sunken:var(--bg-2)}

/* Navigation */
.nav a[aria-current="page"]{color:#fff;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:7px}
.nav a.ext::after{content:" ↗";font-size:.8em;opacity:.7}
@media (max-width:760px){
  .top .wrap{flex-direction:column;align-items:flex-start;gap:.4rem;padding-top:.9rem;padding-bottom:.4rem}
  .nav{justify-content:flex-start;gap:.35rem 1.1rem}
  .nav a{font-size:.9rem}
  .hero.lite{padding-top:8rem}
}

/* Hero der Unterseiten */
.hero.lite .lede{font-size:1.2rem;color:#cfd8ec;max-width:62ch;margin:0}
.hero.lite .meta{font:500 .85rem var(--mono);color:#b8c4de;margin:.4rem 0 0}
.hero.lite .eyebrow a{color:inherit;text-decoration:none}
.hero.lite .eyebrow a:hover{text-decoration:underline}
.hero.lite .cta-row{margin:1.2rem 0 0}
.hero.lite.proj .wrap{max-width:var(--maxw);grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center}
.hero.lite.proj .wrap > *{max-width:none}
.hero.lite.proj .wrap > div{max-width:560px}
.hero.lite.proj img{width:100%;max-width:520px;height:auto;justify-self:center;border-radius:12px;border:1px solid rgba(255,255,255,.18);box-shadow:0 30px 60px rgba(0,0,0,.45)}
@media (max-width:860px){.hero.lite.proj .wrap{grid-template-columns:1fr}}

/* Schaltflächen aus den Werkstatt-Seiten */
.btn-coffee{background:#ffdd00;color:#1a1206;box-shadow:0 6px 18px rgba(255,221,0,.28)}
.btn-coffee:hover{box-shadow:0 10px 24px rgba(255,221,0,.4)}

/* Etappen-Layout mit Inhaltsverzeichnis */
.layout{max-width:var(--maxw);margin:0 auto;padding:2.5rem 1.25rem 1rem;display:grid;grid-template-columns:250px minmax(0,1fr);gap:2.5rem;align-items:start}
.layout.single{grid-template-columns:minmax(0,1fr);max-width:820px}
.toc{position:sticky;top:1rem;font-size:.92rem}
.toc summary{font:700 .78rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding:.9rem 1rem}
.toc ol{list-style:none;margin:0;padding:0 .6rem .8rem}
.toc li{margin:0}
.toc li a{display:flex;gap:.6rem;padding:.4rem .5rem;border-radius:8px;text-decoration:none;color:var(--ink);line-height:1.35}
.toc li a:hover{background:var(--bg-2)}
.toc .n{font:600 .75rem var(--mono);color:var(--accent);min-width:1.6rem;padding-top:.1rem}
.toc-next{font-size:.88rem;color:var(--ink-2);margin:.8rem .3rem 0}
@media (max-width:900px){.layout{grid-template-columns:1fr;gap:1.2rem}.toc{position:static}}

/* Fließtext der Dokumentseiten */
.doc{min-width:0}
.doc .wrap{padding:0;max-width:none}
.doc h2{font-size:clamp(1.6rem,3.2vw,2.1rem);margin:0 0 .6em}
.doc h3{font-size:1.3rem;margin:1.8rem 0 .5em}
.doc p,.doc li{font-size:1.06rem}
.doc ul,.doc ol{padding-left:1.3rem}
.doc li{margin:.4rem 0}
.doc code{font:.88em var(--mono);background:var(--bg-2);border:1px solid var(--line);padding:.08em .36em;border-radius:6px}
.doc pre{background:var(--code-bg);color:var(--code-ink);border-radius:12px;padding:1rem 1.2rem;overflow-x:auto;font:.88rem/1.65 var(--mono);border:1px solid #2a3860;margin:1rem 0}
.doc pre code{background:none;border:0;padding:0;font-size:inherit;color:inherit}
.doc a{font-weight:600}
.doc img{max-width:100%;height:auto}
kbd{font:.85em var(--mono);background:var(--card);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:.05em .45em}
.table-wrap{overflow-x:auto;margin:1.2rem 0}
.table-wrap table{border-collapse:collapse;width:100%;font-size:.97rem}
.table-wrap th,.table-wrap td{border:1px solid var(--line);padding:.55rem .8rem;text-align:left;vertical-align:top}
.table-wrap th{background:var(--bg-2);font-family:var(--serif)}

.chapter{margin:0 0 3rem;padding:0}
.chapter-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:.5rem}
.chapter-head h2{margin:0}
.chapter-num{font:700 .78rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#1a1206;background:linear-gradient(135deg,var(--orange),var(--orange-2));padding:.25rem .7rem;border-radius:999px;white-space:nowrap}
.notiz-datum{font:500 .85rem var(--mono);color:var(--ink-2)}
.subhead{font-family:var(--serif)}
.points{list-style:none;padding:0!important}
.points li{position:relative;padding-left:1.6rem}
.points li::before{content:"";position:absolute;left:.15rem;top:.72em;width:.5rem;height:.5rem;border-radius:2px;background:var(--orange);transform:rotate(45deg)}

/* Code-Kästen mit Einfügestelle */
.snippet{margin:1.3rem 0;border-radius:14px;overflow:hidden;background:var(--code-bg);border:1px solid #2a3860;box-shadow:var(--shadow)}
.snippet figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;padding:.6rem 1rem;background:#101830;color:#93a0c2;font:500 .8rem var(--mono)}
.snippet .datei{color:var(--gold);font-weight:700}
.snippet .wo{color:#9fb0d0}
.doc pre.snippet-code{margin:0;padding:.5rem 0;border:0;border-radius:0;background:none}
.doc .snippet-code code{display:block;white-space:pre;padding:.05rem 1rem;min-width:max-content;background:none;border:0;border-radius:0;font:inherit;color:inherit}
.doc .snippet-code code.neu{background:rgba(92,214,194,.10);box-shadow:inset 4px 0 0 #5cd6c2}
.doc .snippet-code code.alt{background:rgba(255,122,112,.10);box-shadow:inset 4px 0 0 #ff7a70;color:#c9a3a0;text-decoration:line-through;text-decoration-color:rgba(255,122,112,.7)}
.doc .snippet-code code.ctx{color:#7d8894}
.doc .snippet-code code.skip{color:#5f6a75}
.legende{display:grid;grid-template-columns:auto 1fr;gap:.7rem 1rem;align-items:center;border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;margin:1.2rem 0;background:var(--card)}
.legende .muster{font:500 .8rem var(--mono);background:var(--code-bg);color:var(--code-ink);padding:.2rem .7rem;border-radius:6px;white-space:pre}
.legende .muster.ctx{color:#7d8894}
.legende .muster.neu{background:#16302c;box-shadow:inset 4px 0 0 #5cd6c2}
.legende .muster.alt{background:#33201f;box-shadow:inset 4px 0 0 #ff7a70;color:#c9a3a0;text-decoration:line-through}
.legende .muster.skip{color:#5f6a75}
@media (max-width:640px){.legende{grid-template-columns:1fr}}

/* Hinweis-Kästen */
.probelauf,.achtung,.callout,.summary{--c:#2c6fd1;margin:1.4rem 0;padding:1rem 1.2rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--c) 28%,var(--line));border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 7%,var(--card))}
.probelauf{--c:#13857a}
.achtung,.callout.rust-note{--c:#d1560f}
.callout.honest{--c:#13857a}
.summary{--c:#9a7410}
.probelauf pre{margin:.7rem 0}
.label{display:block;font:700 .78rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c);margin-bottom:.4rem}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .probelauf,:root:not([data-theme="light"]) .callout.honest{--c:#45cdbd}
  :root:not([data-theme="light"]) .achtung,:root:not([data-theme="light"]) .callout.rust-note{--c:#ff9a3c}
  :root:not([data-theme="light"]) .callout{--c:#7fb0ff}
  :root:not([data-theme="light"]) .summary{--c:#f2c14e}
}
.screenshot{margin:1.5rem auto;text-align:center}
.screenshot img{border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow);margin:0 auto;display:block}
.screenshot figcaption{font-size:.9rem;color:var(--ink-2);margin-top:.6rem}
.datei-label{font:700 .82rem var(--mono);color:var(--accent);margin:1.1rem 0 .3rem!important}
details.zwischenstand,details.solutions{margin:1.2rem 0}
details.zwischenstand > :not(summary),details.solutions > :not(summary){margin-left:1.25rem;margin-right:1.25rem}
details.zwischenstand > :last-child,details.solutions > :last-child{margin-bottom:1.2rem}
.exercises{counter-reset:ex;list-style:none;padding:0!important}
.exercises > li{counter-increment:ex;position:relative;padding:.9rem 1rem .9rem 3.4rem;background:var(--card);border:1px solid var(--line);border-radius:12px;margin:.6rem 0}
.exercises > li::before{content:counter(ex);position:absolute;left:1rem;top:.85rem;width:1.7rem;height:1.7rem;border-radius:8px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font:700 .85rem var(--mono)}
.sol{border-top:1px solid var(--line);padding:.7rem 0}
.sol:first-of-type{border-top:0}
.sol p{margin:0}

/* Abschluss und Etappen-Navigation */
.end-note{margin:2.5rem 0;padding:1.8rem;border-radius:20px;color:#e9eefb;background:linear-gradient(135deg,var(--navy-2),var(--navy));box-shadow:var(--shadow)}
.end-note h2{color:#fff;font-size:1.6rem;margin-bottom:.4em}
.end-note p{color:#c8d2ea}
.end-note .cta-row{margin:1.1rem 0 0}
.etappen-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:.8rem;margin:1.5rem 0}
.etappen-nav a,.etappen-nav .aus{padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--card);text-decoration:none;color:var(--ink);font-size:.95rem;font-weight:400}
.etappen-nav .weiter{text-align:right}
.etappen-nav .mitte{text-align:center;color:var(--ink-2)}
.etappen-nav .aus{opacity:.45}
.etappen-nav a:hover{border-color:var(--orange)}
@media (max-width:700px){.etappen-nav{grid-template-columns:1fr}.etappen-nav .weiter,.etappen-nav .mitte{text-align:left}}
.coffee-box{margin:2rem 0;padding:1.2rem 1.5rem;border-radius:16px;background:var(--accent-bg);border:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;justify-content:space-between}
.coffee-box p{margin:0;flex:1 1 280px}

/* Werkstatt-Übersicht und Projektseiten */
.head{max-width:760px;margin:0 auto 2rem;text-align:center}
.head .eyebrow{display:block}
.head p{color:var(--ink-2)}
.galerie{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.projekt-karte{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:transform .2s ease,border-color .2s}
.projekt-karte:hover{transform:translateY(-4px);border-color:var(--orange)}
.projekt-karte .bild{aspect-ratio:16/10;background:var(--bg-2);overflow:hidden}
.projekt-karte .bild img{width:100%;height:100%;object-fit:cover}
.projekt-karte .inhalt{padding:1.3rem 1.4rem 1.5rem}
.projekt-karte h3{margin:.3rem 0 .4rem}
.projekt-karte p{color:var(--ink-2);font-size:1rem}
.status{font:600 .75rem var(--mono);color:var(--accent);letter-spacing:.04em}
.kennzeichen{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.kennzeichen span{font:500 .78rem var(--mono);padding:.2rem .6rem;border:1px solid var(--line);border-radius:999px;color:var(--ink-2)}
.pillars{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.pillar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}
.pillar .icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--accent-bg);font-size:1.4rem;margin-bottom:.9rem}
.pillar h3{margin:0 0 .2rem}
.pillar .tagline{display:block;font:600 .78rem var(--mono);color:var(--accent);margin-bottom:.6rem}
.pillar .desc{margin:0;color:var(--ink-2)}
.roadmap{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.roadmap a{display:flex;align-items:center;gap:.9rem;padding:.8rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.roadmap a:hover{border-color:var(--orange)}
.roadmap .n{flex:none;width:2.2rem;height:2.2rem;border-radius:9px;display:grid;place-items:center;background:var(--navy);color:var(--gold);font:700 .9rem var(--mono)}
.roadmap .t{font-weight:700}
.reihenfolge{text-align:center;color:var(--ink-2);margin:1.4rem auto 0;max-width:62ch}
section .screenshot{margin-top:2rem}

/* Notizen */
.notizen-index{display:flex;flex-direction:column;gap:.5rem;max-width:820px;margin:2rem auto 0;padding:0 1.25rem}
.notizen-index a{display:flex;gap:1rem;align-items:baseline;padding:.8rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.notizen-index a:hover{border-color:var(--orange)}
.notizen-index .datum{font:600 .8rem var(--mono);color:var(--accent);white-space:nowrap}
.notizen-index .titel{font-family:var(--serif);font-weight:700;font-size:1.1rem}

.hero.lite h1{margin-bottom:.15em}
.hero.lite .lead{margin:0}
