/* =========================
   Modern, Accessible Reset
   ========================= */

/* 1. Improve focus visibility */
:focus-visible {
  outline: 2px dashed #555;
  outline-offset: 4px;
}

/* 2. Universal box-sizing and margin/padding reset */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* 3. Base HTML settings */
html {
  font-family: 'Noto Sans', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.4;
  font-weight: normal;
  overflow-wrap: break-word;
  height: 100%;
  color-scheme: light dark; /* Respect OS theme */
  scroll-behavior: smooth;
}

body {
  min-height: 100%; 
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #fff;
  color: #000;
}

/* 4. Remove borders and normalize vertical alignment */
img, iframe, picture, video, audio, canvas, embed,
input, button, select, textarea,
code, kbd, samp, var, abbr, b, strong, em, i, u, s, mark, time, data, ins, del,
q, cite, small, sub, sup, ruby, rt, rp {
  border: 0;
  vertical-align: baseline;
}

/* 5. Block-level structural elements */
main, article, aside, footer, header, nav, section,
details, summary, dialog,
div, p, blockquote, pre,
figure, figcaption,
hr {
  border: 0;
  display: block;
}

/* 6. Headings */
h1, h2, h3, h4, h5, h6 {
  border: 0;
  font-weight: 700;
  color: inherit;
  margin: 5px 0;
  padding: 0 5px;
}
h1 { font-size: 3rem; line-height: 1.2; }
h2 { font-size: 2.5rem; line-height: 1.2; }
h3 { font-size: 2.125rem; line-height: 1.2; }
h4 { font-size: 1.75rem; line-height: 1.4; }
h5 { font-size: 1.5rem; line-height: 1.4; }
h6 { font-size: 1.25rem; line-height: 1.4; }

/* 7. Lists */
ol, ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
ol {
  list-style-type: decimal;
  margin: 20px 0;
  padding: 0 1rem;
  counter-reset: list-counter;
}

/* 8. Tables */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption, tbody, tfoot, thead, tr, th, td {
  border: 0;
  vertical-align: baseline;
}

/* 9. Forms */
form, fieldset, legend, label, output, progress, meter {
  border: 0;
}
input, textarea, select, button {
  font: inherit;
  color: inherit;
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 0.4em 0.6em;
  border-radius: 4px;
  box-sizing: border-box;
}
input:focus, textarea:focus, select:focus {
  outline: 2px solid #0077cc;
  outline-offset: 2px;
}
button {
  cursor: pointer;
}
button:disabled, input:disabled, select:disabled, textarea:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* 10. Typography */
em, i { font-style: italic; color: inherit; }
strong, b { font-weight: bold; color: inherit; }
cite { font-style: italic; font-weight: normal; quotes: none; }
.apa cite { font-style: italic; quotes: none; }
.mla cite.short-work { font-style: normal; quotes: "“" "”" "‘" "’"; }
blockquote { quotes: "“" "”" "‘" "’"; }
blockquote::before, blockquote::after,
q {
  quotes: none;
}

q::before,
q::after {
  content: ''; 
}
p, li, td {
  text-align: left;
  margin: 0 0 0.75em 0;
  line-height: 1.4;
}

/* 11. Links */
a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
a:hover, a:focus {
  text-decoration: none;
}

/* 12. Media */
img, video {
	max-width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
}

/* 13. Highlights */
mark {
  background: yellow;
  color: inherit;
}
