/* peptides4dogs.com: tokens first, then elements. Night-sky blues with lamplit gold points. */
:root {
  --page: #F5F7FA;
  --ink: #1A2238;
  --ink-soft: #33405F;
  --surface: #E3EAF2;
  --primary: #3A5BA0;
  --primary-deep: #2F4C88;
  --on-primary: #FFFBE6;
  --gold: #F7C873;
  --sky: #6EA3C1;
  --cream: #FFFBE6;
  --rule: #B0B8C1;
  --night: #1A2238;
  --link: #3A5BA0;
  --link-hover: #1A2238;
  --ring: #F7C873;
  --strip-bg: #1A2238;
  --strip-ink: #FFFBE6;
  --strip-link: #F7C873;
  --answer-bg: #FFFBE6;
  --answer-edge: #F7C873;
  --radius: 0.5rem;
  --unit: 0.25rem;
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  --shadow-lift: 0 4px 8px rgba(0, 0, 0, 0.1);
  --serif: Georgia, Cambria, "Times New Roman", Times, serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --text: 1.125rem;
  --leading: 1.65;
  --measure: 42rem;
  --tap: 2.75rem;
  --track-tight: -0.02em;
  --track-wide: 0.06em;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --page: #181A24;
    --ink: #E8ECF4;
    --ink-soft: #C9D1E0;
    --surface: #23243A;
    --primary: #3A5BA0;
    --on-primary: #FFFBE6;
    --gold: #FFE066;
    --rule: #4A5068;
    --link: #9CC3DB;
    --link-hover: #FFE066;
    --ring: #FFE066;
    --strip-bg: #0F1119;
    --strip-ink: #FFFBE6;
    --strip-link: #FFE066;
    --answer-bg: #23243A;
    --answer-edge: #FFE066;
    --shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    color-scheme: dark;
  }
}

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

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

body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: var(--serif);
  font-size: var(--text);
  line-height: var(--leading);
  letter-spacing: 0;
  overflow-wrap: break-word;
}

a { color: var(--link); text-underline-offset: 0.18em; text-decoration-thickness: 0.08em; }
a:hover { color: var(--link-hover); }
a:focus-visible, input:focus-visible { outline: 3px solid var(--ring); outline-offset: 2px; border-radius: 0.2rem; }

/* utility strip */
#strip {
  background: var(--strip-bg);
  color: var(--strip-ink);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0 calc(var(--unit) * 4);
  padding: 0 calc(var(--unit) * 4);
}
#strip p { margin: 0; font-size: 1rem; letter-spacing: var(--track-wide); padding: calc(var(--unit) * 2) 0; }
#strip a {
  color: var(--strip-link);
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  font-size: 1rem;
  font-weight: 700;
}

/* menu */
header > nav { background: var(--surface); border-bottom: 1px solid var(--rule); }
nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
header > nav ul { max-width: 64rem; margin: 0 auto; padding: 0 calc(var(--unit) * 2); }
header > nav a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  padding: 0 calc(var(--unit) * 3);
  color: var(--ink);
  text-decoration: none;
  font-size: 1.0625rem;
  border-bottom: 3px solid transparent;
}
header > nav a:hover { border-bottom-color: var(--sky); color: var(--ink); }
header > nav a[aria-current="page"] { border-bottom-color: var(--gold); font-weight: 700; }

/* reading column */
main { max-width: var(--measure); margin: 0 auto; padding: calc(var(--unit) * 4) calc(var(--unit) * 4) calc(var(--unit) * 12); }

#art {
  height: 8.5rem;
  border-radius: var(--radius);
  background-color: var(--night);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: var(--shadow);
  margin: calc(var(--unit) * 2) 0 calc(var(--unit) * 6);
}
#art[data-art="home"] { background-image: url("/media/sky-home.svg"); }
#art[data-art="evidence"] { background-image: url("/media/sky-evidence.svg"); }
#art[data-art="safety"] { background-image: url("/media/sky-safety.svg"); }
#art[data-art="questions"] { background-image: url("/media/sky-questions.svg"); }
#art[data-art="cost"] { background-image: url("/media/sky-cost.svg"); }
#art[data-art="lost"] { background-image: url("/media/sky-lost.svg"); }

h1, h2, h3 { line-height: 1.25; letter-spacing: var(--track-tight); color: var(--ink); }
h1 { font-size: clamp(1.9rem, 5vw, 2.6rem); margin: 0 0 calc(var(--unit) * 4); font-weight: 700; }
h2 { font-size: clamp(1.35rem, 3.4vw, 1.6rem); margin: calc(var(--unit) * 10) 0 calc(var(--unit) * 3); }

#lede { font-size: 1.25rem; color: var(--ink-soft); }

p, li, dd, dt { font-size: var(--text); }
p { margin: 0 0 calc(var(--unit) * 4); }

section { scroll-margin-top: calc(var(--unit) * 4); }
section > p:first-of-type:has(> b) {
  background: var(--answer-bg);
  border-left: 5px solid var(--answer-edge);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: calc(var(--unit) * 3) calc(var(--unit) * 4);
  box-shadow: var(--shadow);
}
b { color: var(--primary); }
@media (prefers-color-scheme: dark) { b { color: var(--gold); } }

ul, ol { padding-left: 1.4rem; margin: 0 0 calc(var(--unit) * 4); }
li { margin-bottom: calc(var(--unit) * 2); }
#asklist { counter-reset: ask; list-style: none; padding: 0; }
#asklist li {
  counter-increment: ask;
  position: relative;
  padding: calc(var(--unit) * 3) calc(var(--unit) * 4) calc(var(--unit) * 3) calc(var(--unit) * 14);
  background: var(--surface);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
#asklist li::before {
  content: counter(ask);
  position: absolute;
  left: calc(var(--unit) * 3);
  top: calc(var(--unit) * 3);
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--primary);
  color: var(--on-primary);
  font-weight: 700;
  font-size: 1rem;
  display: grid;
  place-items: center;
}

/* glossary */
#glossary-filter { display: grid; gap: calc(var(--unit) * 2); margin-bottom: calc(var(--unit) * 4); }
#glossary-filter[hidden] { display: none; }
#glossary-filter label { font-size: 1rem; font-weight: 700; }
#term-filter {
  font: inherit;
  width: 100%;
  min-height: 3rem;
  padding: 0 calc(var(--unit) * 3);
  color: var(--ink);
  background: var(--page);
  border: 2px solid var(--sky);
  border-radius: var(--radius);
}
#term-count { font-size: 1rem; color: var(--ink-soft); min-height: 1.5rem; }
#glossary { margin: 0; display: grid; gap: calc(var(--unit) * 2); }
#glossary > div { padding: calc(var(--unit) * 3) calc(var(--unit) * 4); border: 1px solid var(--rule); border-radius: var(--radius); }
#glossary > div[hidden] { display: none; }
#glossary dt { font-weight: 700; color: var(--primary); }
@media (prefers-color-scheme: dark) { #glossary dt { color: var(--gold); } }
#glossary dd { margin: calc(var(--unit) * 1) 0 0; }

/* onward links and sources box */
#onward { margin-top: calc(var(--unit) * 10); }
#onward ul { display: grid; gap: calc(var(--unit) * 2); }
#onward a {
  display: flex;
  align-items: center;
  min-height: var(--tap);
  padding: calc(var(--unit) * 2) calc(var(--unit) * 4);
  background: var(--primary);
  color: var(--on-primary);
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 700;
  box-shadow: var(--shadow);
}
#onward a:hover { box-shadow: var(--shadow-lift); color: var(--on-primary); background: var(--primary-deep); }

#sources {
  margin-top: calc(var(--unit) * 10);
  padding: calc(var(--unit) * 4) calc(var(--unit) * 5);
  background: var(--surface);
  border-top: 4px solid var(--sky);
  border-radius: var(--radius);
}
#sources h2 { margin-top: calc(var(--unit) * 2); }
#sources ul { list-style: none; padding: 0; }
#sources li { margin: 0; border-bottom: 1px solid var(--rule); }
#sources li:last-child { border-bottom: 0; }
#sources a { display: flex; align-items: center; min-height: var(--tap); padding: calc(var(--unit) * 1) 0; }

/* footer */
footer { background: var(--strip-bg); color: var(--strip-ink); padding: calc(var(--unit) * 6) calc(var(--unit) * 4); }
footer p { max-width: var(--measure); margin: 0 auto calc(var(--unit) * 4); font-size: 1rem; }
footer ul { max-width: var(--measure); margin: 0 auto; gap: 0 calc(var(--unit) * 4); }
footer a { color: var(--strip-link); display: inline-flex; align-items: center; min-height: var(--tap); min-width: var(--tap); font-size: 1rem; }
footer a:hover { color: var(--cream); }

@media (min-width: 60rem) {
  #art { height: 11rem; }
}

@media (prefers-reduced-motion: no-preference) {
  #onward a { transition: box-shadow 160ms ease, background-color 160ms ease; }
}
