/* CSS Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

/* Hyphenation (German compound words, mobile-critical)
   :where() = zero specificity → easy to override per-component
   hyphenate-limit-chars: Chrome 109+, Firefox 137+ (Safari ignores, no harm)
   -webkit-hyphenate-limit-lines: Safari 6+ only */

:where(h1, h2, h3, h4, h5, h6, p, li, dd, dt, td, th, blockquote, figcaption, summary) {
  hyphens: auto;
  overflow-wrap: break-word;
  -webkit-hyphenate-limit-lines: 2;
  hyphenate-limit-lines: 2;
}

:where(h1, h2, h3, h4, h5, h6) {
  hyphenate-limit-chars: 8 4 5;
}

:where(p, li, dd, dt, td, th, blockquote, figcaption, summary) {
  hyphenate-limit-chars: 12 6 6;
}
