/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url("geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url("geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{--bg:#FFFFFF;--fg:#000000;--muted:#555555;--subtle:#666666;--line:#e5e5e5;--card:#e5e5e5;--outline:#d4d4d4;--btn-bg:#000000;--btn-fg:#FFFFFF;--btn-hover:#333333;--ph1:#f5f5f5;--ph2:#efefef;--inv-bg:#1b1b1b;--inv-surface:#232323;--inv-line:#333333;--header:rgba(255,255,255,0.94);--logo-light:block;--logo-dark:none;color-scheme:light}
:root[data-theme="dark"]{--bg:#1b1b1b;--fg:#F2F2F2;--muted:#a8a8a8;--subtle:#9a9a9a;--line:#2c2c2c;--card:#333333;--outline:#3a3a3a;--btn-bg:#F2F2F2;--btn-fg:#1b1b1b;--btn-hover:#d0d0d0;--ph1:#222222;--ph2:#262626;--inv-bg:#232323;--inv-surface:#1b1b1b;--inv-line:#333333;--header:rgba(27,27,27,0.92);--logo-light:none;--logo-dark:block;color-scheme:dark}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#1b1b1b;--fg:#F2F2F2;--muted:#a8a8a8;--subtle:#9a9a9a;--line:#2c2c2c;--card:#333333;--outline:#3a3a3a;--btn-bg:#F2F2F2;--btn-fg:#1b1b1b;--btn-hover:#d0d0d0;--ph1:#222222;--ph2:#262626;--inv-bg:#232323;--inv-surface:#1b1b1b;--inv-line:#333333;--header:rgba(27,27,27,0.92);--logo-light:none;--logo-dark:block;color-scheme:dark}}
body{margin:0;background:var(--bg);color:var(--fg);font-family:'Geist',Helvetica,sans-serif;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}
a{color:var(--fg);text-decoration:none}a:hover{color:var(--muted)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}
input::placeholder,textarea::placeholder{color:#8f8f8f}

@property --rd-n{syntax:'<integer>';inherits:false;initial-value:142}
:root{--rd-ok:#2e7d32;--rd-warn:#a16207;--rd-urg:#b3261e}
:root[data-theme="dark"]{--rd-ok:#6abf69;--rd-warn:#d4a017;--rd-urg:#e5736b}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--rd-ok:#6abf69;--rd-warn:#d4a017;--rd-urg:#e5736b}}
.rd{border:1px solid var(--card);border-radius:10px;background:var(--bg);overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 40px rgba(0,0,0,.06);font-size:14px;line-height:1.4}
.rd-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--ph1)}
.rd-dots{display:flex;gap:6px}.rd-dots i{width:9px;height:9px;border-radius:50%;background:var(--outline);display:block}
.rd-url{font-size:12px;color:var(--subtle);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:3px 10px}
.rd-body{padding:clamp(16px,2.2vw,24px);display:flex;flex-direction:column;gap:14px}
.rd-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.rd-title{font-size:17px;font-weight:600;letter-spacing:-.015em}.rd-title span{font-weight:300;color:var(--muted)}
.rd-tenant{font-size:12px;color:var(--subtle)}
.rd-status{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;position:relative}
.rd-st{display:grid;min-width:0}.rd-st>*{grid-area:1/1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-scan{opacity:0;display:flex;align-items:center;gap:8px}
.rd-spin{width:11px;height:11px;border:1.5px solid var(--outline);border-top-color:var(--fg);border-radius:50%;flex:none;animation:rd-spin .8s linear infinite}
.rd-portals{display:inline-grid}.rd-portals b{grid-area:1/1;font-weight:500;color:var(--fg);opacity:0}
.rd-count{--rd-n:142;counter-reset:rdn var(--rd-n);font-weight:500;color:var(--fg);white-space:nowrap}
.rd-count::before{content:counter(rdn)}
.rd-progress{position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--line);border-radius:2px;overflow:hidden;opacity:0}
.rd-progress i{display:block;height:100%;width:100%;background:var(--fg)}
.rd-filter{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rd-filter b{font-weight:500;color:var(--btn-fg);background:var(--btn-bg);border-radius:5px;padding:2px 8px}
.rd-list{display:flex;flex-direction:column;gap:8px}
.rd-row{border:1px solid var(--card);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.rd-row.hit{border-color:var(--fg)}
.rd-row.miss{opacity:.35}
.rd-top{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}
.rd-t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rd-chip{flex:none;font-size:11px;font-weight:500;color:var(--btn-fg);background:var(--btn-bg);border-radius:5px;padding:2px 7px}
.rd-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--subtle)}
.rd-src{border:1px solid var(--outline);border-radius:4px;padding:0 5px;font-size:10.5px;letter-spacing:.03em}
.rd-frist.ok{color:var(--rd-ok)}.rd-frist.warn{color:var(--rd-warn)}.rd-frist.urg{color:var(--rd-urg);font-weight:500}
.rd-toast{display:flex;align-items:center;gap:10px;border:1px solid var(--fg);border-radius:8px;padding:10px 12px;font-size:13px;font-weight:500}
.rd-toast span{color:var(--muted);font-weight:300}
@keyframes rd-spin{to{transform:rotate(360deg)}}
@keyframes rd-scan{0.00%{opacity:1}20.71%{opacity:1}22.86%{opacity:0}100.00%{opacity:0}}
@keyframes rd-done{0.00%{opacity:0}21.43%{opacity:0}23.57%{opacity:1}92.86%{opacity:1}97.14%{opacity:0}100.00%{opacity:0}}
@keyframes rd-count{0.00%{--rd-n:0}2.14%{--rd-n:0}20.71%{--rd-n:142}97.14%{--rd-n:142}100.00%{--rd-n:0}}
@keyframes rd-prog{0.00%{opacity:1;transform:scaleX(0)}20.71%{opacity:1;transform:scaleX(1)}23.57%{opacity:0;transform:scaleX(1)}100.00%{opacity:0;transform:scaleX(1)}}
@keyframes rd-progwrap{0.00%{opacity:1}20.71%{opacity:1}23.57%{opacity:0}100.00%{opacity:0}}
.rd-scan{animation:rd-scan 14.0s linear infinite}
.rd-done{animation:rd-done 14.0s linear infinite}
.rd-count{animation:rd-count 14.0s linear infinite}
.rd-progress{animation:rd-progwrap 14.0s linear infinite}.rd-progress i{transform-origin:left;animation:rd-prog 14.0s linear infinite}
@keyframes rd-p0{0.00%{opacity:0}1.07%{opacity:0}1.43%{opacity:1}4.07%{opacity:1}4.43%{opacity:0}100.00%{opacity:0}}
.rd-portals b:nth-child(1){animation:rd-p0 14.0s linear infinite}
@keyframes rd-p1{0.00%{opacity:0}4.29%{opacity:0}4.64%{opacity:1}7.29%{opacity:1}7.64%{opacity:0}100.00%{opacity:0}}
.rd-portals b:nth-child(2){animation:rd-p1 14.0s linear infinite}
@keyframes rd-p2{0.00%{opacity:0}7.50%{opacity:0}7.86%{opacity:1}10.50%{opacity:1}10.86%{opacity:0}100.00%{opacity:0}}
.rd-portals b:nth-child(3){animation:rd-p2 14.0s linear infinite}
@keyframes rd-p3{0.00%{opacity:0}10.71%{opacity:0}11.07%{opacity:1}13.71%{opacity:1}14.07%{opacity:0}100.00%{opacity:0}}
.rd-portals b:nth-child(4){animation:rd-p3 14.0s linear infinite}
@keyframes rd-p4{0.00%{opacity:0}13.93%{opacity:0}14.29%{opacity:1}16.93%{opacity:1}17.29%{opacity:0}100.00%{opacity:0}}
.rd-portals b:nth-child(5){animation:rd-p4 14.0s linear infinite}
@keyframes rd-p5{0.00%{opacity:0}17.14%{opacity:0}17.50%{opacity:1}20.14%{opacity:1}20.50%{opacity:0}100.00%{opacity:0}}
.rd-portals b:nth-child(6){animation:rd-p5 14.0s linear infinite}
@keyframes rd-filter{0.00%{opacity:0;transform:translateY(4px)}42.86%{opacity:0;transform:translateY(4px)}45.71%{opacity:1;transform:none}92.86%{opacity:1;transform:none}97.14%{opacity:0;transform:none}100.00%{opacity:0;transform:none}}
.rd-filter{animation:rd-filter 14.0s ease-out infinite}
@keyframes rd-r0{0.00%{opacity:0;transform:translateY(8px)}23.57%{opacity:0;transform:translateY(8px)}26.07%{opacity:1;transform:none}47.14%{opacity:1;transform:none}50.00%{opacity:.35;transform:none}92.86%{opacity:.35;transform:none}97.14%{opacity:0;transform:none}100.00%{opacity:0;transform:none}}
.rd-row.r0{animation:rd-r0 14.0s ease-out infinite}
@keyframes rd-chip1{0.00%{opacity:0;transform:scale(.6)}50.71%{opacity:0;transform:scale(.6)}52.50%{opacity:1;transform:scale(1)}92.86%{opacity:1;transform:scale(1)}97.14%{opacity:0;transform:scale(1)}100.00%{opacity:0;transform:scale(1)}}
.rd-row.r1 .rd-chip{animation:rd-chip1 14.0s ease-out infinite}
@keyframes rd-r1{0.00%{opacity:0;transform:translateY(8px);border-color:var(--card)}26.43%{opacity:0;transform:translateY(8px);border-color:var(--card)}28.93%{opacity:1;transform:none;border-color:var(--card)}50.00%{opacity:1;transform:none;border-color:var(--card)}52.14%{opacity:1;transform:none;border-color:var(--fg)}92.86%{opacity:1;transform:none;border-color:var(--fg)}97.14%{opacity:0;transform:none;border-color:var(--fg)}100.00%{opacity:0;transform:none;border-color:var(--fg)}}
.rd-row.r1{animation:rd-r1 14.0s ease-out infinite}
@keyframes rd-r2{0.00%{opacity:0;transform:translateY(8px)}29.29%{opacity:0;transform:translateY(8px)}31.79%{opacity:1;transform:none}48.86%{opacity:1;transform:none}51.71%{opacity:.35;transform:none}92.86%{opacity:.35;transform:none}97.14%{opacity:0;transform:none}100.00%{opacity:0;transform:none}}
.rd-row.r2{animation:rd-r2 14.0s ease-out infinite}
@keyframes rd-chip3{0.00%{opacity:0;transform:scale(.6)}54.64%{opacity:0;transform:scale(.6)}56.43%{opacity:1;transform:scale(1)}92.86%{opacity:1;transform:scale(1)}97.14%{opacity:0;transform:scale(1)}100.00%{opacity:0;transform:scale(1)}}
.rd-row.r3 .rd-chip{animation:rd-chip3 14.0s ease-out infinite}
@keyframes rd-r3{0.00%{opacity:0;transform:translateY(8px);border-color:var(--card)}32.14%{opacity:0;transform:translateY(8px);border-color:var(--card)}34.64%{opacity:1;transform:none;border-color:var(--card)}53.93%{opacity:1;transform:none;border-color:var(--card)}56.07%{opacity:1;transform:none;border-color:var(--fg)}92.86%{opacity:1;transform:none;border-color:var(--fg)}97.14%{opacity:0;transform:none;border-color:var(--fg)}100.00%{opacity:0;transform:none;border-color:var(--fg)}}
.rd-row.r3{animation:rd-r3 14.0s ease-out infinite}
@keyframes rd-r4{0.00%{opacity:0;transform:translateY(8px)}35.00%{opacity:0;transform:translateY(8px)}37.50%{opacity:1;transform:none}50.57%{opacity:1;transform:none}53.43%{opacity:.35;transform:none}92.86%{opacity:.35;transform:none}97.14%{opacity:0;transform:none}100.00%{opacity:0;transform:none}}
.rd-row.r4{animation:rd-r4 14.0s ease-out infinite}
@keyframes rd-chip5{0.00%{opacity:0;transform:scale(.6)}58.57%{opacity:0;transform:scale(.6)}60.36%{opacity:1;transform:scale(1)}92.86%{opacity:1;transform:scale(1)}97.14%{opacity:0;transform:scale(1)}100.00%{opacity:0;transform:scale(1)}}
.rd-row.r5 .rd-chip{animation:rd-chip5 14.0s ease-out infinite}
@keyframes rd-r5{0.00%{opacity:0;transform:translateY(8px);border-color:var(--card)}37.86%{opacity:0;transform:translateY(8px);border-color:var(--card)}40.36%{opacity:1;transform:none;border-color:var(--card)}57.86%{opacity:1;transform:none;border-color:var(--card)}60.00%{opacity:1;transform:none;border-color:var(--fg)}92.86%{opacity:1;transform:none;border-color:var(--fg)}97.14%{opacity:0;transform:none;border-color:var(--fg)}100.00%{opacity:0;transform:none;border-color:var(--fg)}}
.rd-row.r5{animation:rd-r5 14.0s ease-out infinite}
@keyframes rd-toast{0.00%{opacity:0;transform:translateY(8px)}64.29%{opacity:0;transform:translateY(8px)}67.14%{opacity:1;transform:none}92.86%{opacity:1;transform:none}97.14%{opacity:0;transform:none}100.00%{opacity:0;transform:none}}
.rd-toast{animation:rd-toast 14.0s ease-out infinite}
@media (prefers-reduced-motion:reduce){.rd *,.rd *::before{animation:none!important}}

.legal{font-size:16px;line-height:1.7;font-weight:300}
.legal h2{font-size:20px;font-weight:500;margin:48px 0 10px;letter-spacing:-0.01em;line-height:1.3;scroll-margin-top:24px}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:16px;font-weight:500;margin:24px 0 6px}
.legal p{margin:0 0 12px}
.legal ul{margin:0 0 16px;padding-left:20px}
.legal li{margin:0 0 6px}
.legal strong{font-weight:500}
.legal a{border-bottom:1px solid var(--fg);overflow-wrap:anywhere}
.legal ul.index{list-style:none;padding:0;columns:2 280px;column-gap:32px}
.legal ul.index a{border-bottom:none;color:var(--muted)}
.legal ul.index a:hover{color:var(--fg)}
.legal .seal{margin-top:40px;font-size:14px;color:var(--subtle)}
.legal .seal a{color:var(--subtle);border-color:var(--outline)}

/* Theme-Icons + Navigation (ersetzen die frueheren Laufzeit-Bedingungen) */
.ic-moon{display:var(--logo-light)}.ic-sun{display:var(--logo-dark)}
.ic-moon svg,.ic-sun svg{display:block}
@media (max-width:719px){.nav-wide{display:none}}
[hidden]{display:none!important}

/* Hover/Fokus-Zustaende */
.hv1:hover{border-color:var(--fg)!important}
.hv2:hover{background:var(--btn-hover)!important;color:var(--btn-fg)!important}
.hv3:hover{border-color:var(--fg)!important;color:var(--fg)!important}
.hv4:hover{color:#bbbbbb!important}
.hv5:hover{background:#dddddd!important}
.hv6:hover{color:#FFFFFF!important}
.fc1:focus{border-color:#FFFFFF!important}

/* Projektkarte: Screenshot breit, Text daneben; schmal untereinander */
.projekt{display:grid;gap:clamp(24px,4vw,56px);align-items:center}
@media (min-width:900px){.projekt{grid-template-columns:3fr 2fr}}
