/* Self-explanatory visual documentary */
:root {
  --paper: #f2ece3;
  --paper-2: #e8e0d3;
  --ink: #151412;
  --ink-2: #3c3a35;
  --mute: #757168;
  --line: rgba(21, 20, 18, 0.13);
  --euc: #3a5a49;
  --ochre: #b07a36;
  --alert: #8a3530;
  --bright: #fffcf7;
  --focus: #2f6b52;
  --font-d: "Fraunces", Georgia, serif;
  --font-u: "Schibsted Grotesk", "Segoe UI", sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --drawer: min(26rem, 92vw);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
/* Scale the whole composition on large displays so diagrams keep visual weight */
@media (min-width: 1500px) { html { font-size: 19px; } }
@media (min-width: 1900px) { html { font-size: 22px; } }
@media (min-width: 2400px) { html { font-size: 26px; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-u);
  font-size: 0.95rem;
  line-height: 1.4;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; display: block; }
button, a { font-family: var(--font-u); }
a { color: var(--euc); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Quiet progress */
.rail {
  position: fixed; top: 50%; left: 0.5rem; z-index: 40;
  transform: translateY(-50%); display: flex; flex-direction: column; gap: 0.42rem;
}
.rail a {
  width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--line);
  text-decoration: none; position: relative;
}
.rail a.is-on { background: var(--ink); transform: scale(1.35); }
.rail a::after {
  content: attr(data-l); position: absolute; left: 0.9rem; top: 50%;
  transform: translateY(-50%); opacity: 0; white-space: nowrap;
  font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute);
}
.rail a:hover::after, .rail a:focus-visible::after, .rail a.is-on::after { opacity: 1; }
@media (max-width: 767px) {
  .rail {
    top: auto; bottom: 0.5rem; left: 50%; transform: translateX(-50%);
    flex-direction: row; padding: 0.32rem 0.45rem; background: rgba(242,236,227,0.95);
    border: 1px solid var(--line); max-width: calc(100vw - 1rem); overflow-x: auto;
  }
  .rail a::after { display: none; }
}

/* Drawer */
.backdrop {
  position: fixed; inset: 0; z-index: 50; background: rgba(21,20,18,0.28);
  opacity: 0; pointer-events: none; transition: opacity 0.35s var(--ease);
}
.backdrop.is-on { opacity: 1; pointer-events: auto; }
.drawer {
  position: fixed; top: 0; right: 0; z-index: 60; width: var(--drawer); height: 100%;
  padding: 1.5rem 1.4rem 2rem; background: var(--bright); border-left: 1px solid var(--line);
  transform: translateX(105%); transition: transform 0.4s var(--ease); overflow-y: auto;
}
.drawer.is-on { transform: translateX(0); }
@media (max-width: 640px) {
  .drawer {
    top: auto; bottom: 0; right: 0; left: 0; width: 100%; height: min(78vh, 32rem);
    border-left: 0; border-top: 1px solid var(--line);
    transform: translateY(110%); border-radius: 0.75rem 0.75rem 0 0;
  }
  .drawer.is-on { transform: translateY(0); }
}
.drawer__x {
  appearance: none; border: 0; background: 0; cursor: pointer;
  font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink); padding: 0.25rem 0; margin-bottom: 0.9rem;
}
.drawer h2 {
  font-family: var(--font-d); font-weight: 500; font-size: 1.35rem;
  line-height: 1.2; margin: 0.35rem 0 0.85rem;
}
.drawer .lead {
  color: var(--ink); font-size: 0.95rem; line-height: 1.5; margin: 0 0 0.85rem;
}
.drawer .body {
  color: var(--ink-2); font-size: 0.9rem; line-height: 1.55; margin: 0 0 0.75rem;
}
.drawer .takeaway {
  margin: 1rem 0 0.9rem; padding: 0.75rem 0.85rem;
  border-left: 3px solid var(--euc); background: rgba(58, 90, 73, 0.06);
  font-size: 0.88rem; line-height: 1.45; color: var(--ink);
}
.drawer .takeaway strong {
  display: block; font-size: 0.58rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--euc); margin-bottom: 0.25rem; font-weight: 600;
}
.drawer dl { display: grid; gap: 0.75rem; margin: 0 0 0.9rem; }
.drawer dt { font-size: 0.58rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); margin: 0; }
.drawer dd { margin: 0.12rem 0 0; color: var(--ink-2); font-size: 0.9rem; }
.drawer__go {
  display: inline-flex; margin-top: 0.4rem; padding: 0.65rem 0.85rem;
  background: var(--ink); color: var(--paper); text-decoration: none;
  font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase;
}

.cite {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.1rem; height: 1.1rem; margin: 0 0.08rem; padding: 0 0.2rem;
  border: 1px solid var(--line); background: var(--bright); color: var(--ink-2);
  font-size: 0.6rem; font-weight: 600; cursor: pointer; vertical-align: super;
}
.cite:hover, .cite[aria-expanded="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.more {
  appearance: none; border: 1px solid var(--line); background: rgba(255, 252, 247, 0.85);
  padding: 0.5rem 0.75rem; font-size: 0.62rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-2); cursor: pointer;
  white-space: nowrap; min-height: 2.4rem;
}
.more:hover { color: var(--ink); border-color: var(--ink); }

.tag {
  font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute);
}
.tag--policy { color: var(--euc); }
.tag--analysis { color: var(--ochre); }
.tag--proposal { color: var(--euc); }
.tag--illust { color: var(--mute); }

.foot {
  padding: 1.1rem 1rem 2rem; border-top: 1px solid var(--line);
  font-size: 0.66rem; letter-spacing: 0.06em; color: var(--mute);
  text-align: center; display: flex; flex-wrap: wrap; gap: 0.45rem;
  justify-content: center; align-items: center;
}
.foot a { color: inherit; text-decoration: none; }
.foot a:hover { color: var(--euc); }

.evidence {
  padding: 3rem 1rem 2rem; max-width: 42rem; margin: 0 auto;
}
.evidence h2 {
  font-family: var(--font-d); font-weight: 500;
  font-size: clamp(1.7rem, 3.5vw, 2.4rem); margin: 0.4rem 0 1rem;
}
.evidence-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.evidence-list li { padding: 0.65rem 0; border-top: 1px solid var(--line); }
.evidence-list a { color: inherit; text-decoration: none; }
.evidence-list a:hover { color: var(--euc); }
.evidence-list .org {
  font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute);
}
