/** * Modul: CSS Reset * Zweck: Browser-Defaults normalisieren, Box-Sizing, Touch-Verhalten * Abhängigkeiten: tokens.css */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-family: var(--font-sans); font-size: 16px; line-height: var(--line-height-base); color: var(--color-text-primary); background-color: var(--color-bg); -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; /* iOS PWA: verhindert Body-Scroll, der position:fixed-Elemente verschiebt */ height: 100%; overflow: hidden; } body { height: 100dvh; overflow: hidden; } img, svg, video { display: block; max-width: 100%; } button { font: inherit; cursor: pointer; border: none; background: none; } input, textarea, select { font: inherit; color: inherit; } a { color: inherit; text-decoration: none; } ul, ol { list-style: none; } h1, h2, h3, h4, h5, h6 { font-weight: var(--font-weight-semibold); line-height: var(--line-height-tight); } /* Fokus-Styles (Accessibility) */ :focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: var(--radius-xs); } /* Reduzierte Bewegung (Barrierefreiheit) */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0s !important; animation-delay: 0s !important; transition-duration: 0s !important; scroll-behavior: auto !important; } } /* Versteckte, aber zugängliche Elemente */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }