:root {
  color-scheme: light;
  --ink: #172033;
  --muted: #5b6578;
  --line: #dfe4ec;
  --paper: #fff;
  --soft: #f5f7fa;
  --accent: #2458c6;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--soft);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;
}
.skip-link {
  position: fixed;
  top: -60px;
  left: 16px;
  z-index: 10;
  padding: 10px 14px;
  background: var(--paper);
  color: var(--accent);
}
.skip-link:focus { top: 16px; }
header, main, footer {
  width: min(960px, calc(100% - 32px));
  margin-inline: auto;
}
.site-header {
  width: 100%;
  padding: 26px max(32px, calc((100% - 1200px) / 2)) 28px;
  border-bottom: 1px solid #c9dce8;
  background: #edf7fc;
}
.program-name {
  margin: 0 0 12px;
  color: #741010;
  font-size: clamp(.9rem, 1.5vw, 1.15rem);
  font-weight: 700;
}
.title-row {
  display: flex;
  align-items: center;
  gap: 24px;
}
h1 {
  margin: 0;
  color: #123c1b;
  font-size: clamp(2rem, 4.8vw, 3.5rem);
  line-height: 1.25;
}
h1 span { color: #174aa5; }
.document-type {
  flex: none;
  margin: 0;
  padding: .35em .7em;
  color: #18559a;
  border-left: 3px solid #3a7cb7;
  font-weight: 700;
}
.authors {
  margin: 16px 0 0;
  color: #111;
  font-size: clamp(.88rem, 1.5vw, 1.05rem);
  line-height: 1.8;
}
article {
  padding: clamp(24px, 5vw, 56px);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  box-shadow: 0 14px 40px rgb(23 32 51 / 7%);
}
.source-text {
  display: grid;
  gap: .35rem;
  margin: 0;
  overflow-wrap: anywhere;
  font: inherit;
  font-size: 1rem;
  line-height: 1.7;
  tab-size: 2;
}
.document-line {
  margin: 0;
  white-space: pre-wrap;
}
.document-line2 {
  margin-left: 1.25rem;
}
.evidence-block {
  margin-left: 2rem;
}
.definition-block {
  margin-left: 1.25rem;
}
.definition-block.evidence-block {
  margin-left: 1.25rem;
}
.definition-heading {
  font-weight: 700;
}
.evidence-label {
  font-weight: 700;
}
.star-emphasis {
  font-weight: 700;
}
.star-emphasis-text {
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}
.example-entry {
  display: grid;
  gap: .15rem;
  margin: .25rem 0 .45rem;
}
.example-description {
  margin-left: 1.25rem;
}
.document-heading {
  margin: 1.65em 0 .35em;
  padding: .5em 0 .5em .8em;
  border-left: 5px solid var(--accent);
  color: #142d63;
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  line-height: 1.5;
}
.document-heading:first-child { margin-top: 0; }
.reference-heading {
  margin-top: 4rem;
  font-weight: 700;
}
.reference-link {
  color: var(--accent);
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}
.reference-link:hover { text-decoration-thickness: .14em; }
.citation-link {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}
.citation-link:hover { text-decoration: underline; }
.reference-entry { scroll-margin-top: 24px; }
.reference-entry:target {
  margin-inline: -.5em;
  padding-inline: .5em;
  border-radius: 5px;
  background: #fff2cf;
}
footer {
  padding: 28px 0 48px;
  color: var(--muted);
  font-size: .85rem;
}
@media (max-width: 560px) {
  .site-header { padding: 24px 18px; }
  .title-row { display: grid; gap: 12px; }
  .document-type { justify-self: start; }
  article { padding: 22px 18px; }
  .source-text { gap: .3rem; font-size: .94rem; line-height: 1.65; }
}
