@font-face{font-family:'Fira Code';font-weight:400 700;font-display:swap;src:url(fonts/FiraCode-400-700.woff2) format('woff2')}
@font-face{font-family:'Fira Sans';font-weight:400;font-display:swap;src:url(fonts/FiraSans-400.woff2) format('woff2')}
@font-face{font-family:'Fira Sans';font-weight:500;font-display:swap;src:url(fonts/FiraSans-500.woff2) format('woff2')}
@font-face{font-family:'Fira Sans';font-weight:600;font-display:swap;src:url(fonts/FiraSans-600.woff2) format('woff2')}
@font-face{font-family:'Fira Sans';font-weight:700;font-display:swap;src:url(fonts/FiraSans-700.woff2) format('woff2')}

:root{
  color-scheme:dark;
  --font:'Fira Sans',system-ui,sans-serif;--mono:'Fira Code',ui-monospace,Consolas,monospace;
  --bg:#0b0e14;--bg-2:#10151f;--line:#232b3a;--line-2:#34405a;
  --text:#f2f5fa;--text-2:#b4bfd1;--text-3:#8693aa;
  --brand:#0a84ff;--on-brand:#0b0e14;--cyan:#00d1ff;--ok:#4ade80;--warn:#fbbf24;
  --ring:0 0 0 2px var(--bg),0 0 0 4px #8fbaff;
}
:root[data-theme=light]{
  color-scheme:light;
  --bg:#f5f7fa;--bg-2:#ebeff5;--line:#d6dce6;--line-2:#aeb8c9;
  --text:#0d1420;--text-2:#3d4960;--text-3:#5a6780;
  --brand:#0b64c9;--on-brand:#fff;--cyan:#0071a8;--ok:#15803d;--warn:#a16207;
  --ring:0 0 0 2px #fff,0 0 0 4px #0b64c9;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.65 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:4px}
.sr-only{position:absolute;left:-9999px}
.sr-only:focus{left:12px;top:12px;background:var(--brand);color:var(--on-brand);padding:8px 14px;z-index:99}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* Kopf */
header.top{border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:700;font-size:18px;letter-spacing:.14em;text-transform:uppercase}
.brand img{width:28px;height:28px}
nav.main{display:flex;gap:26px;margin-left:auto;align-items:center}
nav.main a.l{text-decoration:none;color:var(--text-2);font-size:15px;padding:6px 0;border-bottom:1px solid transparent}
nav.main a.l:hover{color:var(--text);border-color:var(--line-2)}
.btn{display:inline-block;padding:10px 18px;border:1px solid var(--line-2);background:transparent;color:var(--text);font:600 15px var(--font);text-decoration:none;cursor:pointer;border-radius:3px}
.btn:hover{border-color:var(--text-2)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.primary:hover{filter:brightness(1.08)}
.icon-btn{padding:0;width:36px;height:36px;display:grid;place-items:center}
.icon-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}

/* Einstieg */
.hero{position:relative;padding:96px 0 80px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center;overflow:hidden}
.kicker{font:500 13px var(--mono);color:var(--cyan);letter-spacing:.06em;text-transform:uppercase;margin:0 0 18px}
h1{font-size:clamp(36px,5.2vw,56px);line-height:1.05;letter-spacing:-.025em;margin:0 0 22px;font-weight:700}
.lead{font-size:19px;color:var(--text-2);max-width:46ch;margin:0 0 32px}
.cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cta .txt{color:var(--text-2);font-size:15px}

/* Beispiel-Tabelle */
.sheet{border:1px solid var(--line-2);background:var(--bg-2);border-radius:4px;font-size:14px}
.sheet-h{display:flex;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);font:500 12px var(--mono);color:var(--text-3);letter-spacing:.04em;text-transform:uppercase}
.sheet table{width:100%;border-collapse:collapse}
.sheet th{font:500 11px var(--mono);color:var(--text-3);text-align:left;padding:9px 14px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.sheet td{padding:10px 14px;border-bottom:1px solid var(--line);color:var(--text-2)}
.sheet tr:last-child td{border-bottom:0}
.sheet td:first-child{font-family:var(--mono);color:var(--text)}
.sheet .st{font:500 12px var(--mono);white-space:nowrap}
.st.ok{color:var(--ok)}.st.warn{color:var(--warn)}.st.off{color:var(--text-3)}
.sheet-f{padding:9px 14px;border-top:1px solid var(--line);color:var(--text-3);font-size:12px}
.note-bar{padding:9px 14px;border-bottom:1px solid var(--line);color:var(--warn);font-weight:500;font-size:13px}

/* Abschnitte */
section{padding:72px 0;border-top:1px solid var(--line)}
.sec{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px}
.sec h2{margin:0;font-size:15px;font:600 13px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--cyan);padding-top:6px}
.sec h2 span{color:var(--text-3);margin-right:8px}
.intro{font-size:24px;line-height:1.35;letter-spacing:-.01em;margin:0 0 36px;max-width:30em;font-weight:500}
.items{list-style:none;margin:0;padding:0}
.items li{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid var(--line)}
.items li:last-child{border-bottom:1px solid var(--line)}
.items b{font-weight:600}
.items span{color:var(--text-2)}
.cmds{border:1px solid var(--line-2);border-radius:4px;background:var(--bg-2);font-family:var(--mono);font-size:14px}
.cmds div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;padding:11px 16px;border-top:1px solid var(--line)}
.cmds div:first-child{border-top:0}
.cmds code{color:var(--cyan)}.cmds span{color:var(--text-2);font-family:var(--font);font-size:15px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px}
.two h3{margin:0 0 8px;font-size:17px}
.two p,.two ul{margin:0;color:var(--text-2);font-size:16px}
.two ul{padding-left:18px}
.end{padding:80px 0}
.end p{font-size:28px;line-height:1.3;letter-spacing:-.015em;font-weight:600;margin:0 0 26px;max-width:22em}
footer{border-top:1px solid var(--line);padding:26px 0 44px;color:var(--text-3);font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px}
footer nav{margin-left:auto;display:flex;gap:20px}
footer a{color:var(--text-2)}

@media(max-width:860px){
  .hero{grid-template-columns:1fr;padding:56px 0 48px;gap:40px}
  .sec{grid-template-columns:1fr;gap:20px}
  .items li,.cmds div{grid-template-columns:1fr;gap:4px}
  .two{grid-template-columns:1fr}
}
@media(max-width:560px){
  body{font-size:16px}
  nav.main a.l{display:none}
  .wrap{padding:0 18px}
  .sheet th:nth-child(4),.sheet td:nth-child(4){display:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Rechtstexte (Impressum, Datenschutz) */
.legal{max-width:760px;margin:0 auto;padding:48px 0 24px}
.legal h1{font-size:clamp(30px,4.5vw,42px);margin:0 0 6px}
.legal .stand{color:var(--text-3);font-size:14px;margin:0 0 32px}
.legal h2{font-size:21px;line-height:1.3;margin:40px 0 10px;padding-top:24px;border-top:1px solid var(--line);letter-spacing:0}
.legal h3{font-size:17px;margin:22px 0 6px}
.legal p,.legal li{color:var(--text-2);font-size:16.5px}
.legal ul{padding-left:22px}.legal li{margin:6px 0}
.legal strong{color:var(--text)}
.legal address{font-style:normal;border:1px solid var(--line-2);background:var(--bg-2);padding:14px 16px;border-radius:4px;color:var(--text);margin:10px 0 0;line-height:1.7}
.legal .todo{border-color:var(--warn)}
.legal table{width:100%;border-collapse:collapse;margin:12px 0;font-size:15px}
.legal th,.legal td{text-align:left;vertical-align:top;padding:9px 10px;border:1px solid var(--line)}
.legal th{background:var(--bg-2);color:var(--text);font-weight:600}
.legal td{color:var(--text-2)}
.legal .scroll{overflow-x:auto}
.legal a{overflow-wrap:anywhere}
.sec .cta{margin-top:28px}
