/* ========== Reset CSS (modern & accessible) ========== */
/* Box sizing */
*,
*::before,
*::after { box-sizing: border-box; }

/* Remove default margin */
body,
h1,h2,h3,h4,h5,h6,
p,figure,blockquote,
dl,dd { margin: 0; }

/* Base html/body */
html { -webkit-text-size-adjust: 100%; }
body {
  min-height: 100dvh;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  color: #222;
  background: #fff;
}

/* Typography tweaks */
h1,h2,h3,h4,h5,h6 { font-weight: 700; line-height: 1.25; }
b,strong { font-weight: 700; }

/* Links */
a { color: inherit; text-decoration: none; text-decoration-skip-ink: auto; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Images & media */
img,svg,video,canvas,audio,iframe {
  display: block;
  max-width: 100%;
  height: auto;
}
img { vertical-align: middle; }

/* Lists */
ul[role="list"], ol[role="list"],
ul, ol { list-style: none; padding: 0; margin: 0; }

/* Tables */
table { border-collapse: collapse; border-spacing: 0; width: 100%; }
th, td { padding: 0; }

/* Forms */
button,input,select,textarea {
  font: inherit;
  color: inherit;
  background: transparent;
  border: 1px solid transparent;
  margin: 0;
}
button, [type="button"], [type="submit"], [type="reset"] {
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
textarea { resize: vertical; }
input[type="search"] { -webkit-appearance: none; appearance: none; outline-offset: -2px; }
::-webkit-search-decoration { -webkit-appearance: none; }

/* Fieldset & legend */
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { padding: 0; }

/* Quotes */
blockquote, q { quotes: none; }
blockquote::before, blockquote::after,
q::before, q::after { content: ""; }

/* Code */
pre, code, kbd, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
