/* ==========================================================================
   Watt Security — Modern CSS Reset
   A conventional, framework-agnostic reset. Contains no brand colors,
   fonts, or spacing — only baseline normalization so every browser starts
   from the same, predictable defaults.
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

/* Lists: visually reset, but semantics preserved. When list-style is removed
   for a genuine semantic <ul>/<ol>, add role="list" (and role="listitem" on
   children) at implementation time — some older Safari/VoiceOver versions
   drop the list semantics when list-style is set to none. */
ul,
ol {
  list-style: none;
  padding: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

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

button {
  cursor: pointer;
  background: none;
  border: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Respect the OS-level reduced-motion preference at the smooth-scroll level
   (component-level animation durations are handled in utilities.css, since a
   universal selector needs !important there to reliably override any later,
   more specific component rule — the one deliberate exception to the
   "no !important" rule in architecture/CSS_ARCHITECTURE.md). */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
