/* ==========================================================================
   base.css – Globale Grundregeln (Body, Typo, Links, Skip-Link)
   ========================================================================== */

html {
    background: var(--color-bg);
}

body {
    /* transparent, damit die globale .scene-3d (z-index: -1) durchscheint */
    background: transparent;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 16px;
    overflow-x: hidden;
    position: relative;
    z-index: 0;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-text);
    letter-spacing: -0.02em;
}

h1 {
    font-size: clamp(2.5rem, 5vw + 0.5rem, 4.25rem);
    font-weight: 700;
    line-height: 1.05;
}

h2 {
    font-size: clamp(2rem, 3vw + 0.5rem, 3rem);
    font-weight: 600;
    line-height: 1.15;
}

h3 {
    font-size: clamp(1.25rem, 1.4vw + 0.5rem, 1.5rem);
    font-weight: 600;
}

h4 {
    font-size: 1.125rem;
    font-weight: 600;
}

p {
    color: var(--color-muted);
    line-height: 1.7;
}

p.lead {
    font-size: 1.125rem;
    color: var(--color-text);
    opacity: 0.9;
}

/* Links */
a {
    color: var(--color-accent);
    transition: color var(--transition-fast);
}

a:hover,
a:focus-visible {
    color: var(--color-primary-light);
}

/* Inline Code */
code {
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: 0.9em;
    background: rgba(120, 140, 255, 0.1);
    padding: 0.1em 0.35em;
    border-radius: 4px;
}

/* Eyebrow / Kategorie-Label */
.eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--color-accent);
    padding: 0.4em 1em;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    margin-bottom: 1.5rem;
    background: rgba(0, 240, 255, 0.04);
}

/* Skip-Link für Tastaturnutzer */
.skip-link {
    position: absolute;
    top: -100px;
    left: 16px;
    background: var(--color-accent);
    color: #050712;
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius-sm);
    font-weight: 600;
    z-index: 9999;
    transition: top var(--transition-fast);
}

.skip-link:focus {
    top: 16px;
}

/* Focus-States – nicht entfernen, sondern designed */
:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
    border-radius: 4px;
}

button:focus-visible,
a:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

/* Scrollbar dezent */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: var(--color-bg);
}

::-webkit-scrollbar-thumb {
    background: rgba(120, 140, 255, 0.18);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(120, 140, 255, 0.35);
}
