/* reset.css — neutralize inconsistent browser defaults so OUR styles are the
   source of truth. Distilled from common modern resets (Andy Bell / Josh Comeau). */

/* Include padding & border in an element's width/height — far more predictable. */
*, *::before, *::after { box-sizing: border-box; }

/* Remove default margins; we add spacing on purpose, not by accident. */
* { margin: 0; }

/* Stop iOS auto-inflating text after orientation change. */
html { -webkit-text-size-adjust: 100%; }

body {
  min-height: 100vh;
  line-height: var(--leading-body, 1.5);
  -webkit-font-smoothing: antialiased; /* smoother text on WebKit/Blink */
}

/* Media should behave like blocks and never overflow their container. */
img, picture, svg, video { display: block; max-width: 100%; }

/* Form controls don't inherit fonts by default — make them. */
input, button, textarea, select { font: inherit; }

/* Long words/URLs wrap instead of blowing out the layout. */
h1, h2, h3, h4, p { overflow-wrap: break-word; }

/* The `hidden` attribute must ALWAYS hide, even on elements we style with
   display:flex/grid. Our JS filters rely on toggling `hidden`. */
[hidden] { display: none !important; }
