/* Subspace Grundstil: Body, Scanlines, Container, Abschnitte, Kopf, Fuss, Bausteine. Benoetigt ss-tokens.css und ss-fonts.css. */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--type-body-size);line-height:var(--type-body-lh);-webkit-font-smoothing:antialiased}
html{scroll-padding-top:var(--anchor-scroll-padding);}
body{min-height:100vh;overflow-x:hidden}
a{color:var(--text-primary);text-decoration:none;transition:color var(--dur-hover)}
a:hover{color:var(--accent)}
::selection{background:var(--accent);color:var(--text-on-accent)}
code{font-family:var(--font-mono);font-size:.9em;color:var(--accent)}
img,svg{max-width:100%}
.ss-skip{position:absolute;left:-9999px;top:0;z-index:60;padding:8px 14px;background:var(--accent);color:var(--text-on-accent)}
.ss-skip:focus{left:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Scanline-Overlay (Element <div class="ss-scanlines" aria-hidden="true"></div>) */
.ss-scanlines{position:fixed;inset:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(0deg,rgba(255,255,255,.022) 0,rgba(255,255,255,.022) 1px,transparent 1px,transparent 3px)}
.ss-hero-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--ss-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ss-grid) 1px,transparent 1px);background-size:var(--grid-cell) var(--grid-cell);-webkit-mask-image:radial-gradient(ellipse 75% 70% at 72% 45%,#000 15%,transparent 75%);mask-image:radial-gradient(ellipse 75% 70% at 72% 45%,#000 15%,transparent 75%)}

/* Container und Abschnitte */
.ss-container{max-width:var(--container-max);margin:0 auto;padding-inline:var(--gutter)}
.ss-section{border-bottom:1px solid var(--border-subtle);background:var(--surface-page)}
.ss-section--alt{background:var(--surface-band)}
.ss-section>.ss-container{padding-block:var(--section-y);display:flex;flex-direction:column;gap:var(--space-13)}
.ss-section--agents>.ss-container{padding-block:var(--section-y-agents)}
.ss-hero{position:relative;border-bottom:1px solid var(--border-subtle);overflow:hidden}
.ss-hero>.ss-container{position:relative;padding-top:var(--hero-top);padding-bottom:var(--hero-bottom)}
.ss-hero__split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:clamp(40px,6vw,72px);align-items:center}
.ss-stack{display:flex;flex-direction:column;gap:var(--space-10)}

/* Abschnittskopf: <div class="ss-head"><div class="ss-head__title"><span class="ss-eyebrow">..</span><h2 class="ss-h2">..</h2></div><p class="ss-head__text">..</p></div> */
.ss-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:24px 64px;align-items:end}
.ss-head__title{display:flex;flex-direction:column;gap:16px}
.ss-head__text{margin:0;color:var(--text-secondary);max-width:28em;text-wrap:pretty}
.ss-eyebrow{font-family:var(--font-mono);font-size:var(--type-eyebrow-size);letter-spacing:var(--type-eyebrow-ls);color:var(--accent);text-transform:uppercase}
.ss-h1,.ss-h2,.ss-h3{margin:0;font-weight:600}
.ss-h1{font-size:var(--type-h1-size);line-height:var(--type-h1-lh);letter-spacing:var(--type-h1-ls)}
.ss-h1--sub{font-size:var(--type-h1-agents-size);line-height:.94}
.ss-h2{font-size:var(--type-h2-size);line-height:var(--type-h2-lh);letter-spacing:var(--type-h2-ls)}
.ss-h3{font-size:var(--type-h3-size);letter-spacing:var(--type-h3-ls)}
.ss-strike{text-decoration:line-through;text-decoration-color:var(--accent);text-decoration-thickness:.07em}
.ss-lead{margin:0;max-width:30em;font-size:var(--type-lead-size);color:var(--text-lead);text-wrap:pretty}
.ss-text{margin:0;color:var(--text-secondary);text-wrap:pretty}
.ss-mono{font-family:var(--font-mono)}
.ss-label{font-family:var(--font-mono);font-size:var(--type-label-size);letter-spacing:var(--type-label-ls);color:var(--text-label);text-transform:uppercase}
.ss-caption{margin:0;font-size:var(--type-caption-size);color:var(--text-secondary)}

/* Knoepfe */
.ss-btn{display:inline-flex;align-items:center;gap:10px;font:inherit;cursor:pointer;transition:color var(--dur-hover),background-color var(--dur-hover),border-color var(--dur-hover)}
.ss-btn--primary{padding:13px 20px;background:var(--accent);color:var(--text-on-accent);border:0;border-radius:var(--radius-md);font-weight:600;font-size:15px}
.ss-btn--primary:hover{background:var(--accent-hover);color:var(--text-on-accent)}
.ss-btn--secondary{padding:13px 18px;background:transparent;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:14px}
.ss-btn--secondary:hover{border-color:var(--accent);color:var(--text-primary)}
.ss-btn-row{display:flex;gap:12px;flex-wrap:wrap}

/* Karten, Haarlinien-Raster */
.ss-card{border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--surface-page);padding:26px 26px 22px;display:flex;flex-direction:column;gap:18px}
.ss-card--panel{background:var(--surface-card)}
.ss-card--accent{border-color:var(--border-accent);background:var(--ss-signal-tint)}
.ss-card--sm{border-radius:var(--radius-xl);padding:22px 20px 20px}
.ss-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}
.ss-grid-hair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-2xl);overflow:hidden}
.ss-grid-hair+.ss-grid-hair{margin-top:var(--sp-6)}
.ss-cell{background:var(--surface-page);padding:32px 28px 36px;display:flex;flex-direction:column;gap:16px;transition:background-color var(--dur-state)}
.ss-cell:hover{background:var(--surface-card)}
.ss-cell__top{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:12px;color:var(--text-label)}
.ss-cell__top>:first-child{color:var(--accent)}
.ss-note{border:1px dashed var(--border-default);border-radius:var(--radius-xl);padding:16px 18px;color:var(--text-secondary);font-size:var(--type-small-size)}
.ss-note__label{font-family:var(--font-mono);font-size:var(--type-label-size);letter-spacing:var(--type-label-ls);color:var(--text-label);margin-right:8px}
.ss-spec{display:flex;flex-wrap:wrap;gap:10px 24px;padding-top:8px;border-top:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--text-label)}

/* Terminal: <div class="ss-terminal"><div class="ss-terminal__bar"><i></i><i></i><i></i><span>~</span></div><div class="ss-terminal__body">..</div></div> */
.ss-terminal{border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--surface-card);overflow:hidden}
.ss-terminal__bar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:var(--type-label-size);color:var(--text-label)}
.ss-terminal__bar i{width:8px;height:8px;border-radius:50%;background:var(--border-default)}
.ss-terminal__bar span{margin-left:8px}
.ss-terminal__body{padding:20px 22px 24px;font-family:var(--font-mono);font-size:var(--type-code-size);line-height:var(--type-code-lh);color:var(--text-lead);overflow-x:auto}
.ss-terminal__body>div{white-space:nowrap}
.ss-terminal__body>.ss-wrap{white-space:normal;max-width:72ch}
.ss-terminal__body a{color:var(--accent)}
.ss-terminal__gap{height:12px}
.ss-prompt{color:var(--accent)}
.ss-comment{color:var(--text-label)}
.ss-strong{color:var(--text-primary);font-weight:600}
.ss-dim{color:var(--text-secondary)}
.ss-cursor{display:inline-block;width:8px;height:15px;background:var(--text-primary);vertical-align:-2px}

/* Blinker (nur CSS). Halbperiode aus den Tokens, aus = Deckkraft .15 */
.ss-blink{animation:ss-blink calc(var(--blink-status) * 2) steps(1,end) infinite}
.ss-blink--cursor{animation-duration:calc(var(--blink-cursor) * 2)}
.ss-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:var(--glow-dot)}

/* Scroll-Reveal. Ohne Skript (scripting: none) bleibt alles sichtbar; ss-base.js setzt .is-in. */
[data-reveal]{opacity:0;transform:translateY(22px)}
[data-reveal].is-in{opacity:1;transform:none;transition:opacity var(--dur-reveal) var(--ease-reveal),transform var(--dur-reveal) var(--ease-reveal),border-color var(--dur-state),background-color var(--dur-state)}
@media (scripting:none){[data-reveal]{opacity:1;transform:none}}

/* Kopfleiste: Logo, Status-Pill, Navigation */
.ss-header{position:sticky;top:0;z-index:20;background:var(--header-bg);-webkit-backdrop-filter:blur(var(--blur-header));backdrop-filter:blur(var(--blur-header));border-bottom:1px solid var(--border-subtle)}
.ss-header__inner{max-width:var(--container-max);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.ss-logo{display:inline-flex;align-items:center;gap:10px;color:var(--text-primary)}
.ss-logo:hover{color:var(--text-primary)}
.ss-logo img{display:block;width:28px;height:28px;flex:none}
.ss-logo__word{font-weight:600;font-size:var(--type-wordmark-size);letter-spacing:var(--type-wordmark-ls);line-height:1}
.ss-pill{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--type-label-size);letter-spacing:var(--type-label-ls);color:var(--text-secondary);padding:5px 11px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill)}
.ss-nav{margin-left:auto;display:flex;gap:22px;align-items:center;font-size:var(--type-nav-size)}
.ss-nav a[aria-current="page"]{color:var(--accent)}
.ss-nav__signin{padding:7px 14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--dur-hover),color var(--dur-hover)}
.ss-nav__signin:hover{border-color:var(--accent)}
@media (max-width: 640px), (max-height: 500px) {.ss-header{position:static;}}
@media (max-width: 640px) {.ss-header .ss-pill{display:none;}}

/* Fussleiste */
.ss-footer{max-width:var(--container-max);margin:0 auto;padding:40px var(--gutter) 48px;display:flex;align-items:center;gap:20px 32px;flex-wrap:wrap}
.ss-footer__text{font-family:var(--font-mono);font-size:12px;color:var(--text-label);letter-spacing:.04em}
.ss-footer__links{margin-left:auto;display:flex;gap:20px;font-size:14px;color:var(--text-secondary)}
.ss-footer__links a{color:var(--text-secondary)}
.ss-footer__links a:hover,.ss-footer__links a[aria-current="page"]{color:var(--accent)}

@media (prefers-reduced-motion:reduce){
  .ss-blink{animation:none}
  [data-reveal]{transform:none}
  html{scroll-behavior:auto}
}
