/* Colophon — named credits on cream paper.
   Signature: stacked roles (blended, filled, released, packed). */

:root {
  --cp-ink: #2a1f14; --cp-mute: #6b5340; --cp-rust: #a64b2a; --cp-gold: #c4a35a;
  --cp-paper: #f6efe4; --cp-card: #fffdf8; --cp-line: #e0d3c0;
  --cp-disp: "Young Serif", Georgia, serif;
  --cp-ui: "Reddit Sans", "Segoe UI", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--cp-paper); color: var(--cp-ink); font-family: var(--cp-ui); font-size: 17px; line-height: 1.65; }
a { color: var(--cp-rust); }
:focus-visible { outline: 3px solid var(--cp-gold); outline-offset: 2px; }
.cp-skip { position: absolute; left: -9999px; }
.cp-skip:focus { left: 8px; top: 8px; background: var(--cp-gold); color: var(--cp-ink); padding: 8px 12px; z-index: 5; }
.cp-narrow { max-width: 720px; margin: 0 auto; padding: 0 22px; }
.cp-head { background: var(--cp-card); border-bottom: 1px solid var(--cp-line); }
.cp-head .cp-narrow { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; flex-wrap: wrap; }
.cp-brand { color: inherit; text-decoration: none; }
.cp-brand-n { display: block; font-family: var(--cp-disp); font-size: 1.45rem; line-height: 1.1; }
.cp-brand-m { display: block; margin-top: 4px; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cp-mute); }
.cp-nav { display: flex; gap: 16px; }
.cp-nav a { color: var(--cp-ink); text-decoration: none; font-size: 0.92rem; }
.cp-nav a:hover { color: var(--cp-rust); }
.cp-credits { display: none; background: transparent; color: var(--cp-ink); border: 1px solid var(--cp-rust); font: inherit; padding: 7px 14px; cursor: pointer; }
.cp-roll { display: none; background: #efe6d6; padding: 0 22px 12px; }
.cp-roll[hidden] { display: none; }
.cp-roll a { display: block; color: var(--cp-ink); text-decoration: none; padding: 10px 0; border-bottom: 1px solid var(--cp-line); }
h1, h2, h3 { font-family: var(--cp-disp); line-height: 1.2; margin: 0 0 12px; font-weight: 400; }
h1 { font-size: clamp(2rem, 4vw, 2.6rem); }
h2 { font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
p { margin: 0 0 14px; }
.cp-kicker { margin: 0 0 8px; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cp-rust); font-weight: 600; }
.cp-lead { font-size: 1.12rem; color: #4a3828; }
.cp-block { padding: 44px 0; border-bottom: 1px solid var(--cp-line); }
.cp-rollcall { list-style: none; margin: 20px 0 8px; padding: 0; }
.cp-credit { padding: 18px 0; border-top: 1px solid var(--cp-ink); }
.cp-credit:last-child { border-bottom: 1px solid var(--cp-ink); }
.cp-role { display: block; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cp-rust); }
.cp-who { display: block; font-family: var(--cp-disp); font-size: 1.45rem; margin: 4px 0 6px; }
.cp-credit p { margin: 0; color: var(--cp-mute); }
.cp-packs { list-style: none; margin: 16px 0; padding: 0; }
.cp-pack { padding: 16px 0; border-bottom: 1px dashed var(--cp-line); }
.cp-pack--on { background: var(--cp-card); padding: 16px 18px; border: 1px solid var(--cp-gold); }
.cp-pack-sub { margin: 0 0 4px; color: var(--cp-mute); }
.cp-pack-pay { font-family: var(--cp-disp); font-size: 1.4rem; margin: 0 0 6px; }
.cp-pack-pay span { font-family: var(--cp-ui); font-size: 0.85rem; color: var(--cp-mute); }
.cp-notes { margin: 0; padding: 0; list-style: none; }
.cp-notes li { padding: 8px 0 8px 16px; position: relative; }
.cp-notes li::before { content: ""; position: absolute; left: 0; top: 16px; width: 7px; height: 7px; background: var(--cp-rust); }
.cp-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }
.cp-sheet { background: var(--cp-card); padding: 22px; border: 1px solid var(--cp-line); }
.cp-f { margin-bottom: 14px; }
.cp-l { display: block; font-weight: 600; margin-bottom: 4px; }
.cp-hint { display: block; font-size: 0.8rem; color: var(--cp-mute); margin-bottom: 4px; }
.cp-in { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid #b8a890; background: #fff; }
.cp-tick { display: grid; grid-template-columns: 22px 1fr; gap: 10px; margin: 12px 0; font-size: 0.86rem; }
.cp-go { width: 100%; background: var(--cp-rust); color: #fff; border: 0; font: inherit; font-weight: 600; padding: 12px 16px; cursor: pointer; }
.cp-line { min-height: 1.2em; font-weight: 600; }
.cp-line.is-bad { color: #8d2418; }
.cp-line.is-good { color: #2a5a32; }
.cp-credited { background: var(--cp-ink); color: var(--cp-paper); padding: 22px; }
.cp-doc { padding: 36px 0 48px; }
.cp-doc h2 { margin-top: 28px; font-size: 1.25rem; }
.cp-idx { background: var(--cp-card); padding: 16px 18px; margin: 16px 0 24px; }
.cp-aside { background: var(--cp-card); padding: 16px 18px; margin: 0 0 20px; border-left: 4px solid var(--cp-rust); }
.cp-foot { background: var(--cp-ink); color: #d8c8b4; padding: 28px 0; font-size: 0.9rem; }
.cp-foot a { color: #fff; }
@media (max-width: 800px) {
  .cp-nav { display: none; }
  .cp-credits { display: inline-block; }
  .cp-roll { display: block; }
  .cp-pair { grid-template-columns: 1fr; }
}
