/* SCHIZO — layout and skin. Content lives in data/content.js; behavior in app.js.
   Palette: nicotine beige, dirty white, stained charcoal, photocopy blue, deep red string. */
:root {
  color-scheme: dark;
  --bg: #181713;
  --wall: #3a362d;
  --wall-dark: #262420;
  --paper: #e6ddc7;
  --paper-2: #d7c9a3;
  --paper-3: #ece7d8;
  --paper-blue: #b7c2c9;
  --folder: #d1b072;
  --ink: #1f1c18;
  --ink-soft: #4d463c;
  --red: #a8161f;
  --red-dark: #6a0a10;
  --link-paper: #7c1a22;
  --link-dark: #e9d29c;
  --muted: #b1ab9b;
  --panel: #24251f;
  --panel-2: #2b2c25;
  --panel-3: #33342c;
  --line: #57534a;
  --focus: #f2c25f;
  --blue: #6f8399;
  --serif: Georgia, "Times New Roman", Times, serif;
  --mono: "Courier New", Courier, monospace;
  --sans: Verdana, Tahoma, Arial, sans-serif;
  --hand: "Chalkboard SE", "Comic Sans MS", "Segoe Print", "Bradley Hand", cursive;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg) repeating-linear-gradient(0deg, #ffffff03 0 1px, transparent 1px 3px);
  color: #e2decf; font: 16px/1.55 var(--serif);
}
a { color: inherit; }
button, input, select { font: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible, summary:focus-visible {
  outline: 3px solid var(--focus); outline-offset: 4px;
}
button, a { touch-action: manipulation; }
[hidden] { display: none !important; }
img { max-width: 100%; }
.meta, .mono { font-family: var(--mono); }
.meta { font-size: 12px; line-height: 1.6; color: var(--muted); }
.hand { font-family: var(--hand); }
mark { background: #e8c95b; color: #1c1a15; padding: 0 2px; }
.skip { position: absolute; left: 12px; top: -90px; z-index: 99; background: #fff; color: #000; padding: 10px 14px; font: 14px var(--mono); }
.skip:focus { top: 8px; }

/* ---------- masthead / nav ---------- */
.masthead { max-width: 1200px; margin: auto; padding: 26px 24px 16px; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.wordmark { text-decoration: none; display: block; }
.wordmark .word { display: block; font: bold 46px/.9 var(--mono); letter-spacing: -3px; color: #efe7d2; text-shadow: 2px 2px 0 #6a0a10; }
.wordmark .sub { display: block; font: 12px/2 var(--mono); letter-spacing: 5px; color: var(--muted); padding-left: 2px; }
.motto { margin: 0; font: 12px/1.6 var(--mono); color: var(--muted); text-align: right; }
.mast-side { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
/* contract-address label: a strip of masking tape with typed text, not a control */
.ca {
  margin: 0; padding: 6px 12px 5px; font: bold 14px/1.3 var(--mono); letter-spacing: 1px; color: var(--ink);
  background: #d9cfae linear-gradient(90deg, #0000 0 6%, #ffffff22 30%, #0000 60%, #00000012 94%);
  box-shadow: 1px 2px 0 #0007; transform: rotate(-1.4deg); white-space: nowrap;
}
.ca abbr { text-decoration: none; color: var(--red-dark); cursor: help; }
.mast-strips { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: flex-start; gap: 8px 10px; }
.xlink { display: inline-block; text-decoration: none; transform: rotate(1.1deg); background-color: #cfc6a4; }
.xlink:hover .ca-value, .xlink:focus-visible .ca-value { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ca-value { overflow-wrap: anywhere; white-space: normal; }
.topnav {
  border-block: 1px solid var(--line); background: var(--panel-2) linear-gradient(#ffffff06, transparent);
  display: flex; gap: 4px 22px; flex-wrap: wrap; padding: 11px max(20px, calc((100vw - 1152px) / 2));
  font: 14px/1.5 var(--mono);
}
.topnav a { text-decoration: none; color: #d8d2c0; padding: 2px 0; }
.topnav a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.topnav a[aria-current="page"] { color: #ffc4b8; }
main { max-width: 1200px; margin: auto; padding: 22px 24px 40px; }
main:focus { outline: none; }
h1, h2, h3, p, ul, ol, dl { margin-top: 0; }
h1 { font-size: 28px; line-height: 1.2; }
h2 { font-size: 22px; line-height: 1.25; }
h3 { font-size: 17px; }
.breadcrumb { font: 13px/1.5 var(--mono); color: var(--muted); margin-bottom: 14px; overflow-wrap: anywhere; }
.breadcrumb a { color: #d9d2bf; }
.return { display: inline-block; margin: 20px 0 0; font: 14px var(--mono); color: #e6d9b8; }

/* ---------- evidence wall ---------- */
.board-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 10px; }
.board-heading h1 { font: 16px/1.5 var(--mono); color: #c3bdae; margin: 0; }
.board-heading h1 .meta { color: #8f8977; }
.enter { font: bold 15px/1.4 var(--mono); color: #f1dcb4; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.board {
  position: relative; min-height: 1120px; isolation: isolate; overflow: hidden;
  border: 10px solid #2a2823; border-image: linear-gradient(135deg, #3a3730, #1f1d19 40%, #34312b 70%, #1a1815) 1;
  background-color: var(--wall);
  background-image:
    radial-gradient(ellipse at 6% 12%, #0a0a0a99, transparent 44%),
    radial-gradient(ellipse at 92% 88%, #7a6a4066, transparent 42%),
    radial-gradient(ellipse at 50% 100%, #00000066, transparent 50%),
    radial-gradient(circle at 70% 30%, #5a523f33, transparent 20%),
    repeating-linear-gradient(101deg, #ffffff05 0 1px, transparent 1px 9px),
    repeating-linear-gradient(7deg, #00000012 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 110px #000a, inset 0 -30px 60px #0007, 0 6px 14px #0008;
}
.board::before { /* photocopy grain */
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .55; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.board::after { /* pinholes and old tape marks */
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    radial-gradient(circle, #0e0d0b 0 1.5px, transparent 2.2px),
    radial-gradient(circle, #0e0d0b 0 1.2px, transparent 2px),
    linear-gradient(97deg, transparent 0 46%, #c9b78a22 46% 49%, transparent 49%);
  background-size: 173px 131px, 97px 211px, 100% 100%;
  background-position: 31px 17px, 60px 90px, 0 0;
}
.strings { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.strings-under { z-index: 1; }
.strings-over { z-index: 6; }
.strings path { fill: none; stroke-linecap: round; }
.strings .shadow { stroke: #0d0000; stroke-width: 3.4; opacity: .55; }
.strings .string { stroke: #b0121c; stroke-width: 2.4; opacity: .95; }
.strings-under .dim { opacity: .35; }
.strings-over path { display: none; }
.strings-over path.lit { display: block; }
.strings-over .string.lit { stroke: #e0232e; stroke-width: 2.8; }
.strings-over .shadow.lit { opacity: .7; }

/* debris */
.scrap { position: absolute; z-index: 0; pointer-events: none; }
.clipping {
  background: var(--paper-3) repeating-linear-gradient(0deg, transparent 0 9px, #2a261f66 9px 10px, transparent 10px 16px);
  background-clip: content-box; padding: 12px 10px 8px; box-shadow: 1px 3px 6px #0008;
  filter: contrast(.9) sepia(.25);
}
.clip-a { left: 19%; top: 300px; width: 13%; height: 96px; transform: rotate(-9deg); clip-path: polygon(0 4%, 6% 0, 30% 3%, 55% 0, 78% 4%, 100% 1%, 98% 40%, 100% 70%, 96% 100%, 60% 97%, 35% 100%, 10% 96%, 0 100%); }
.clip-b { left: 55%; top: 292px; width: 16%; height: 74px; transform: rotate(5deg); clip-path: polygon(0 0, 100% 3%, 97% 55%, 100% 100%, 50% 96%, 0 100%); }
.clip-c { left: 71%; top: 690px; width: 11%; height: 128px; transform: rotate(12deg); clip-path: polygon(3% 0, 100% 0, 96% 100%, 0 98%); }
.bluepaper { background: var(--paper-blue) repeating-linear-gradient(0deg, transparent 0 11px, #24303a33 11px 12px, transparent 12px 20px); box-shadow: 1px 3px 6px #0008; }
.clip-d { left: 45%; top: 1000px; width: 14%; height: 110px; transform: rotate(-4deg); }
.receipt { background: #efe9d6 repeating-linear-gradient(0deg, transparent 0 7px, #00000022 7px 8px, transparent 8px 13px); box-shadow: 1px 3px 6px #0008; }
.clip-e { left: 62%; top: 955px; width: 6%; height: 160px; transform: rotate(7deg); clip-path: polygon(0 0, 100% 0, 100% 96%, 90% 100%, 80% 96%, 70% 100%, 60% 96%, 50% 100%, 40% 96%, 30% 100%, 20% 96%, 10% 100%, 0 96%); }
.diagram { background: var(--paper-3); padding: 6px; box-shadow: 1px 3px 6px #0008; }
.clip-f { left: 22%; top: 1000px; width: 9%; transform: rotate(6deg); }
.diagram svg { display: block; width: 100%; height: auto; stroke: #221f1a; stroke-width: 1.6; fill: none; stroke-linecap: round; }
.diagram text { font: 10px var(--hand); fill: #221f1a; stroke: none; }

/* evidence items */
.evidence {
  position: absolute; z-index: 2; display: block; color: var(--ink); background: var(--paper);
  background-image: radial-gradient(ellipse at 92% 8%, #7a5b2a2e, transparent 42%), radial-gradient(ellipse at 4% 96%, #6c583333, transparent 38%), linear-gradient(8deg, #8a774733, transparent 55%);
  box-shadow: 2px 5px 9px #000a, 0 0 0 1px #00000022; padding: 16px 16px 14px; cursor: pointer;
  transition: filter .15s, transform .15s;
}
.evidence:hover { filter: brightness(1.06); z-index: 4; }
.evidence:focus-within { z-index: 5; }
.evidence::after { /* tape */
  content: ""; position: absolute; top: -11px; right: 14%; width: 66px; height: 22px; background: #cdb97e88;
  border-inline: 1px dashed #6a5b3466; transform: rotate(6deg); pointer-events: none;
}
.evidence .pin {
  position: absolute; top: 7px; left: 50%; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #ee5560, #b91323 55%, #6e0812); border: 1px solid #4a0509; box-shadow: 2px 3px 3px #0009; z-index: 7;
}
.evidence a { color: var(--link-paper); }
.evidence h2 { margin: 18px 0 12px; font: bold 26px/1.08 var(--mono); letter-spacing: -1px; }
.evidence h2 a { text-decoration: none; color: var(--ink); }
.evidence h2 a:hover { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.evidence p { margin: 0 0 10px; font: 14px/1.5 var(--mono); color: var(--ink-soft); }
.evidence small { display: block; font: 12px/1.5 var(--mono); border-bottom: 1px solid #5d574c66; padding-bottom: 8px; color: var(--ink-soft); }
.evidence .also { font-size: 13px; margin: 0; border-top: 1px dashed #5d574c66; padding-top: 8px; }
.evidence .also a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.evidence .tiny { font-size: 12px; }
.evidence .big { font-size: 30px; line-height: 1.1; color: var(--ink); margin: 6px 0 8px; }
.note { font-family: var(--mono); }
.photo { background: #f3efe6; padding: 10px 10px 8px; }
.photo .primary { display: block; text-decoration: none; color: var(--ink); }
.photo img { display: block; width: 100%; height: auto; border: 1px solid #00000022; }
.photo .caption { display: block; padding: 10px 2px 4px; font-size: 19px; line-height: 1.25; color: #2a2620; }
.photo .caption.mono { font-size: 12px; overflow-wrap: anywhere; color: var(--ink-soft); }
.sheet { background: var(--paper-2); padding: 12px 12px 10px; }
.sheet .primary { display: block; text-decoration: none; color: var(--ink); }
.sheet img { display: block; width: 100%; height: auto; margin: 8px 0; border: 1px solid #00000033; background: #fff; }
.sheet .fields { display: block; font-size: 12px; line-height: 1.6; color: var(--ink-soft); }
.folder { background: var(--folder); background-image: linear-gradient(#ffffff2a, transparent 30%), radial-gradient(ellipse at 90% 90%, #6a4c1c44, transparent 45%); padding-top: 28px; }
.folder::after { display: none; }
.folder .tab { position: absolute; top: -20px; left: 22px; padding: 4px 14px 2px; background: var(--folder); border: 0; border-radius: 3px 3px 0 0; box-shadow: 0 -2px 3px #0005; color: var(--ink); font-weight: bold; letter-spacing: 1px; }
.folder h2 { font-size: 30px; }
.card { background: #f4f0e4 repeating-linear-gradient(0deg, transparent 0 25px, #9fb4c355 25px 26px); border-top: 4px solid #b23a3a; }
.card .key { list-style: none; padding: 0; margin: 4px 0 0; font-size: 12px; line-height: 1.9; }
.sw { display: inline-block; width: 26px; height: 0; border-top: 3px solid var(--red); vertical-align: middle; margin-right: 8px; }
.sw.references { border-top-style: dashed; }
.sw.shares-imagery { border-top-style: dotted; border-top-width: 4px; }
.sw.alleged-connection { border-top-color: #4a4a4a; border-top-style: dashed; }
.sw.editorial { border-top-color: #8a8175; }
.tag { background: var(--paper-blue); background-image: linear-gradient(#ffffff33, transparent); }
.tag h2 { font-size: 22px; }
.sapnote { background: #f7f3e4; padding: 14px 16px 10px; cursor: default; clip-path: polygon(0 2%, 8% 0, 40% 2%, 70% 0, 100% 3%, 99% 60%, 100% 100%, 55% 98%, 20% 100%, 0 97%); }
.sapnote::after { display: none; }
.sapnote p { margin-bottom: 6px; }
.sapnote .big { transform: rotate(-2deg); }

/* desktop composition (irregular, accumulated) */
[data-pin="identity"] { left: 2.5%; top: 34px; width: 19.5%; transform: rotate(-4deg); }
[data-pin="power"] { left: 24%; top: 40px; width: 22.5%; transform: rotate(2deg); }
[data-pin="occult"] { left: 48.5%; top: 16px; width: 22.5%; transform: rotate(-2.5deg); }
[data-pin="anomalies"] { left: 73.5%; top: 66px; width: 23%; transform: rotate(3.5deg); }
[data-pin="machine"] { left: 3%; top: 470px; width: 22%; transform: rotate(2.5deg); }
[data-pin="scene"] { left: 27.5%; top: 386px; width: 29.5%; transform: rotate(-2deg); }
[data-pin="memetic"] { left: 59%; top: 400px; width: 21%; transform: rotate(3deg); }
[data-pin="body"] { left: 79.5%; top: 420px; width: 18.5%; transform: rotate(-3deg); }
[data-pin="subject"] { left: 3.5%; top: 800px; width: 13%; transform: rotate(2deg); }
[data-pin="sap"] { left: 18.5%; top: 860px; width: 13%; transform: rotate(-7deg); }
[data-pin="entry"] { left: 33.5%; top: 780px; width: 27%; transform: rotate(-1deg); }
[data-pin="legend"] { left: 63.5%; top: 760px; width: 18%; transform: rotate(2deg); }
[data-pin="forum"] { left: 82.5%; top: 800px; width: 15.5%; transform: rotate(-2.5deg); }
.board-footnote { font: 12px/1.6 var(--mono); color: var(--muted); margin: 12px 0 0; }

/* ---------- index ---------- */
.panel { border: 1px solid #6b665a; background: var(--panel); box-shadow: 0 4px 0 #0006; }
.panel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 14px 18px; background: var(--panel-3) linear-gradient(#ffffff08, transparent); border-bottom: 1px solid #6b665a; }
.panel-head h1 { margin: 0; font: bold 22px/1.3 var(--mono); letter-spacing: -1px; color: #f0e8d3; }
.filters { display: flex; gap: 14px; align-items: end; flex-wrap: wrap; padding: 16px 18px 10px; font: 13px/1.5 var(--mono); color: #cfc9b8; }
.filters label { display: flex; flex-direction: column; gap: 6px; min-width: 150px; }
.filters .grow { flex: 1 1 260px; }
input, select, button { border: 1px solid #8a8474; border-radius: 0; background: #1d1e1a; color: #fff; padding: 9px 10px; min-height: 44px; font: 14px var(--mono); }
input { width: 100%; }
button { cursor: pointer; background: var(--panel-3); }
button:hover { background: #3f4037; }
#result-count { padding: 0 18px 10px; margin: 0; }
.topic-list { border-top: 1px solid #55514a; }
table.index { width: 100%; border-collapse: collapse; font-size: 14px; }
.index th, .index td { text-align: left; vertical-align: top; padding: 11px 18px; border-bottom: 1px solid #45463d; }
.index thead th { font: 12px/1.5 var(--mono); color: var(--muted); background: #1f201b; letter-spacing: 1px; }
.index tbody tr:nth-child(even) td { background: #292a24; }
.index tbody tr:hover td { background: #31322a; }
.index .group th { font: bold 13px/1.5 var(--mono); color: #f0d9a8; background: #2f2a20; border-top: 1px solid #6b665a; letter-spacing: 1px; }
.index .subject a { font: bold 17px/1.35 var(--serif); color: #ede2bf; }
.index .subject p { margin: 4px 0 0; font: 14px/1.5 var(--sans); color: #c1bfb2; max-width: 68ch; }
.index .subject .snippet { font: 13px/1.5 var(--sans); color: #b9b3a2; margin-top: 6px; border-left: 2px solid #7a5f2f; padding-left: 8px; }
.index .snippet .where { font: 11px var(--mono); color: var(--muted); letter-spacing: 1px; display: block; }
.index td.meta { white-space: nowrap; }
.status-pill { display: inline-block; font: 12px/1.4 var(--mono); border: 1px solid; padding: 1px 6px; }
.status-pill.s-queued { color: #b9b3a2; border-color: #6c675c; }
.status-pill.s-brief { color: #cbb98a; border-color: #8a7a4f; }
.status-pill.s-draft { color: #e6c98d; border-color: #b58f3e; }
.status-pill.s-sourced { color: #ffd39c; border-color: #d59a3b; background: #3a2c14; }
.empty { padding: 30px 18px; font: 15px/1.6 var(--sans); color: #d6d0bf; }
.empty ul { margin: 10px 0 0; padding-left: 20px; }
.archive-note { font: 13px/1.6 var(--mono); color: var(--muted); padding-top: 18px; }
.archive-note a { color: #ded5bd; }

/* ---------- dossier ---------- */
.dossier {
  position: relative; background: var(--paper-3); color: var(--ink); border: 1px solid #a2947a; padding: 34px 38px 30px; max-width: 1000px;
  background-image: radial-gradient(ellipse at 100% 0, #7a5b2a24, transparent 38%), radial-gradient(ellipse at 0 100%, #6c583322, transparent 40%), linear-gradient(#ffffff40, transparent 8%);
  box-shadow: 5px 6px 0 #0006, 0 0 0 1px #00000022;
}
.dossier::before { content: ""; position: absolute; top: -8px; left: 44px; width: 90px; height: 20px; background: #cdb97e77; border-inline: 1px dashed #6a5b3466; transform: rotate(-2deg); }
.dossier-head { border-bottom: 2px solid #8d7f65; padding-bottom: 18px; margin-bottom: 22px; }
.stamps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.stamp { font: 12px/1.5 var(--mono); border: 1.5px solid #8a302e; color: #7a1f1d; padding: 3px 8px; letter-spacing: 1px; transform: rotate(-.6deg); background: #ffffff55; }
.stamp.kind { border-color: #3c4a58; color: #2f3d4b; }
.stamp.s-sourced { background: #f6d9a3; border-color: #9a6215; color: #5a3608; }
.stamp.s-draft { background: #f3e6c2; border-color: #a8873f; color: #5f4a16; }
.stamp.s-brief, .stamp.s-queued { border-color: #6e675c; color: #4f4a41; }
.dossier h1 { font: bold 34px/1.12 var(--serif); margin: 0 0 8px; letter-spacing: -.5px; }
.dossier .aka { font: 13px/1.6 var(--mono); color: var(--ink-soft); margin: 0 0 10px; }
.dossier .lede { font-size: 18px; line-height: 1.5; max-width: 66ch; margin: 0 0 14px; color: #2c2823; }
.toc { font: 13px/1.7 var(--mono); }
.toc ol { display: flex; flex-wrap: wrap; gap: 4px 18px; padding: 0; margin: 0; list-style: none; }
.toc a { color: var(--link-paper); }
.dossier-body { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 28px 34px; align-items: start; }
.dossier .text { min-width: 0; }
.dossier .text > section { margin-bottom: 28px; }
.dossier .text > section:focus { outline: none; }
.dossier h2 { font: bold 22px/1.25 var(--serif); border-bottom: 1px solid #a2947a; padding-bottom: 6px; margin: 0 0 14px; }
.dossier h3 { font: bold 16px/1.4 var(--serif); margin: 18px 0 8px; }
.dossier p, .dossier li, .dossier dd { font-size: 17px; line-height: 1.6; max-width: 70ch; }
.dossier p { margin: 0 0 14px; }
.dossier .text a { color: var(--link-paper); text-underline-offset: 3px; overflow-wrap: anywhere; }
.dossier ul, .dossier ol { padding-left: 22px; }
.dossier li { margin-bottom: 8px; }
.dossier .rule { font: 13px/1.6 var(--mono); color: var(--ink-soft); border-left: 3px solid #973331; padding-left: 12px; }
sup.cite { font: 11px/0 var(--mono); vertical-align: super; margin-left: 1px; }
sup.cite a { text-decoration: none; color: var(--link-paper); padding: 0 1px; }
sup.cite a:hover { text-decoration: underline; }
.claims { list-style: none; padding: 0; margin: 0; }
.claim { border: 1px solid #a2947a; background: #f6f2e8; padding: 14px 16px 6px; margin-bottom: 14px; border-left-width: 5px; }
.claim.standing-documented { border-left-color: #3b6a3f; }
.claim.standing-contested { border-left-color: #a8731f; }
.claim.standing-disputed { border-left-color: #a8161f; }
.claim.standing-unsupported { border-left-color: #55524b; border-left-style: dashed; }
.claim.standing-lore { border-left-color: #6f5aa0; }
.claim .claim-text { font-weight: bold; margin-bottom: 8px; }
.claim dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0 0 10px; font-size: 14px; }
.claim dt { font: 12px/1.7 var(--mono); color: var(--ink-soft); letter-spacing: 1px; }
.claim dd { margin: 0; font-size: 15px; line-height: 1.55; }
.standing { font: 12px/1.5 var(--mono); border: 1px solid; padding: 1px 6px; display: inline-block; text-transform: uppercase; letter-spacing: 1px; }
.standing-documented .standing { color: #2d5a30; border-color: #3b6a3f; }
.standing-contested .standing { color: #7a5312; border-color: #a8731f; }
.standing-disputed .standing { color: #8a1219; border-color: #a8161f; }
.standing-unsupported .standing { color: #4a463f; border-color: #55524b; }
.standing-lore .standing { color: #4f3f7a; border-color: #6f5aa0; }
.claim .claim-note { font-size: 15px; color: #33302a; }
.sources { padding-left: 0; list-style: none; }
.sources li { position: relative; padding-left: 40px; font-size: 15px; line-height: 1.55; margin-bottom: 10px; scroll-margin-top: 20px; }
.sources .src-num { position: absolute; left: 0; top: 0; font: 13px/1.7 var(--mono); color: var(--ink-soft); }
.sources li:target, .sources li.flash { background: #f2e3b8; outline: 2px solid #d5b25a; outline-offset: 4px; }
.sources .src-meta { display: block; font: 12px/1.7 var(--mono); color: var(--ink-soft); }
.src-kind { border: 1px solid #6e675c; padding: 0 5px; margin-right: 6px; }
.src-kind.k-lead { border-style: dashed; color: #8a1219; border-color: #8a1219; }
.related { list-style: none; padding: 0; }
.related li { display: grid; grid-template-columns: 34px 1fr; gap: 0 10px; align-items: start; margin-bottom: 10px; font-size: 15px; }
.related .sw { margin: 12px 0 0; width: 34px; }
.related .rtype { font: 12px/1.7 var(--mono); color: var(--ink-soft); letter-spacing: 1px; text-transform: uppercase; }
.related .rnote { display: block; font-size: 14px; color: #33302a; }
.inbound { font: 14px/1.6 var(--sans); color: #33302a; }
.notice { border: 1px dashed #8d7f65; padding: 12px 14px; font: 14px/1.6 var(--mono); color: var(--ink-soft); background: #ffffff55; }
.margin { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 16px; }
.postit {
  background: #efe19a; color: #2a2419; padding: 14px 14px 12px; font-size: 17px; line-height: 1.35; margin: 0;
  box-shadow: 2px 4px 6px #0007; transform: rotate(-1.5deg); border-bottom: 1px solid #b7a256;
  background-image: linear-gradient(#ffffff33, transparent 20%);
}
.postit:nth-child(even) { transform: rotate(1.2deg); background-color: #e8d7c2; }
.postit .tagline { display: block; font-size: 10px; line-height: 1.5; letter-spacing: 1px; color: #5d5236; margin-bottom: 6px; }
dl.legend { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; }
dl.legend dt { font: 13px/1.6 var(--mono); font-weight: bold; }
dl.legend dd { margin: 0; font-size: 15px; }
.strings-key dt .sw { width: 30px; margin-right: 8px; }
.about .lede { font-size: 18px; }

/* ---------- forum shell ---------- */
.forum-list { border-top: 1px solid #55514a; }
.board-row { display: grid; grid-template-columns: 1fr 210px; gap: 16px; padding: 14px 18px; border-bottom: 1px solid #45463d; }
.board-row:nth-child(even) { background: #292a24; }
.board-row h2 { margin: 0 0 4px; font: bold 17px/1.35 var(--serif); }
.board-row h2 a { color: #ede2bf; }
.board-row p { margin: 0; font: 14px/1.5 var(--sans); color: #c1bfb2; max-width: 68ch; }
.board-row .meta { align-self: center; }
.forum-notice { margin: 0; padding: 16px 18px; font: 14px/1.6 var(--sans); color: #d6d0bf; background: #2f2a20; border-bottom: 1px solid #6b665a; }
.forum-notice strong { color: #f0d9a8; }
.thread-empty { padding: 26px 18px; font: 15px/1.6 var(--sans); color: #d6d0bf; }
.thread-empty ul { margin: 8px 0 0; padding-left: 20px; }
.thread-empty li a { color: #ede2bf; }

/* ---------- footer ---------- */
footer { max-width: 1152px; margin: 24px auto; padding: 18px 0; border-top: 1px solid var(--line); font: 12px/1.7 var(--mono); color: var(--muted); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.noscript { max-width: 1152px; margin: 20px auto; padding: 12px; background: #fff; color: #000; font: 14px var(--sans); }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
  .dossier-body { grid-template-columns: 1fr; }
  .margin { position: static; flex-direction: row; flex-wrap: wrap; }
  .postit { flex: 1 1 220px; }
}
@media (max-width: 900px) {
  /* mid widths: two-column accumulated grid, strings chain in DOM order */
  .board { min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 34px 26px; padding: 34px 26px 30px; align-items: start; }
  .board .scrap { display: none; }
  .evidence, [data-pin] { position: relative; left: auto; top: auto; width: auto; transform: rotate(-1.4deg); }
  .evidence:nth-child(even of .evidence) { transform: rotate(1.4deg); }
  [data-pin="scene"], [data-pin="entry"] { grid-column: 1 / -1; }
  .evidence h2 { font-size: 24px; }
  .index th:nth-child(4), .index td:nth-child(4) { display: none; }
}
@media (max-width: 640px) {
  .masthead { padding: 22px 16px 12px; }
  .wordmark .word { font-size: 38px; }
  .topnav { gap: 6px 14px; padding: 10px 16px; font-size: 12px; }
  main { padding: 16px 14px 32px; }
  .board-heading h1 { font-size: 14px; }
  .board { grid-template-columns: 1fr; gap: 32px; padding: 24px 18px 24px 40px; }
  .evidence, [data-pin] { max-width: 420px; width: 100%; margin: 0 auto; grid-column: auto; }
  .evidence .pin { left: -24px; top: 22px; margin-left: 0; }
  .evidence::after { right: 30%; }
  .evidence h2 { font-size: 24px; }
  .photo .caption { font-size: 17px; }
  .filters { flex-direction: column; align-items: stretch; }
  .filters label { min-width: 0; }
  .filters .grow { flex: 0 0 auto; }
  .index thead { display: none; }
  .index tr { display: block; }
  .index td { display: block; padding: 6px 14px; border-bottom: 0; }
  .index td.subject { padding-top: 12px; }
  .index td.meta { white-space: normal; padding-top: 0; }
  .index tbody tr { border-bottom: 1px solid #45463d; padding-bottom: 8px; }
  .index tbody tr:nth-child(even) { background: #292a24; }
  .index .group th { display: block; }
  .dossier { padding: 24px 18px 22px; }
  .dossier h1 { font-size: 28px; }
  .dossier p, .dossier li, .dossier dd { font-size: 16px; }
  .claim dl { grid-template-columns: 1fr; }
  dl.legend { grid-template-columns: 1fr; }
  .related li { grid-template-columns: 28px 1fr; }
  .board-row { grid-template-columns: 1fr; gap: 8px; }
  footer { display: block; margin-inline: 14px; }
  footer span { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}
@media print {
  body { background: #fff; color: #000; }
  .topnav, .masthead, footer, .margin, .skip { display: none; }
  .dossier { box-shadow: none; border: 1px solid #000; }
}

/* ---------- discussion boards (live, from forum.js) ---------- */
.whobox { padding: 10px 18px; margin: 0; border-bottom: 1px solid #45463d; }
.whobox a, .plist a, .tcard a, .fform a, .pager a, .form-status a { color: #e9d29c; }
.linkish { background: none; border: 0; padding: 0; min-height: 0; color: #e9d29c; text-decoration: underline; cursor: pointer; font: inherit; }
.linkish.danger { color: #ff9c8f; }
.linkish:disabled { opacity: .6; cursor: default; text-decoration: none; }
.fform { padding: 16px 18px; border-bottom: 1px solid #45463d; display: grid; gap: 12px; background: #1f201b; }
.fform h2 { margin: 0; font-size: 15px; letter-spacing: 1px; color: #f0d9a8; }
.fform label { display: flex; flex-direction: column; gap: 6px; font: 13px/1.5 var(--mono); color: #cfc9b8; }
.fform textarea { width: 100%; resize: vertical; font: 15px/1.5 var(--serif); }
.fform input[type=file] { min-height: 0; padding: 6px 0; border: 0; background: none; }
.frow { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin: 0; }
.check { flex-direction: row !important; align-items: center; gap: 8px !important; }
.check input { width: auto; min-height: 0; }
.form-error { margin: 0; font: 13px/1.5 var(--mono); color: #ffb3a7; border: 1px solid #8a302e; padding: 6px 10px; }
.form-status { font: 13px/1.5 var(--mono); color: var(--muted); }
.tlist { border-top: 1px solid #45463d; }
.tcard { display: grid; grid-template-columns: 96px 1fr; gap: 14px; padding: 14px 18px; border-bottom: 1px solid #45463d; }
.tcard:nth-child(even) { background: #292a24; }
.tcard h2 { margin: 0 0 4px; font: bold 17px/1.35 var(--serif); }
.tcard h2 a { color: #ede2bf; }
.tthumb img { width: 96px; height: 96px; object-fit: cover; border: 1px solid #6b665a; display: block; }
.nothumb { display: flex; width: 96px; height: 96px; align-items: center; justify-content: center; border: 1px dashed #6b665a; color: var(--muted); font-size: 11px; letter-spacing: 2px; }
.tsnippet { font: 14px/1.5 var(--sans); color: #c1bfb2; margin: 0 0 4px; overflow-wrap: anywhere; }
.pager { padding: 12px 18px; }
.fthread { padding: 12px 18px 4px; background: #2a2b25; }
.fpost { display: inline-block; max-width: 100%; background: var(--paper-3); color: var(--ink); border: 1px solid #a2947a; padding: 8px 12px 10px; margin: 0 0 10px; vertical-align: top; scroll-margin-top: 20px; }
.fpost.op { display: block; background: transparent; border: 0; color: #e2decf; padding: 4px 0 8px; }
.fpost.deleted { color: var(--muted); background: transparent; border-style: dashed; }
.fpost.flash { outline: 2px solid #d5b25a; outline-offset: 3px; }
.fhead { font: 13px/1.7 var(--mono); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.fsubject { color: #a8161f; font-weight: bold; }
.fpost.op .fsubject { color: #ff9c8f; }
.fname { font-weight: bold; text-decoration: none; }
.fname.anon { color: #117743; }
.fpost.op .fname.anon { color: #7fd39a; }
.fname.user { color: #34345c; }
.fpost.op .fname.user { color: #b9c4f0; }
.pfp { width: 20px; height: 20px; object-fit: cover; vertical-align: -5px; margin-right: 4px; border: 1px solid #0003; }
.anonid { color: var(--ink-soft); font-size: 12px; }
.fpost.op .anonid { color: var(--muted); }
.badge { font: 11px/1.4 var(--mono); border: 1px solid; padding: 0 5px; color: #7a1f1d; }
.fpost.op .badge, .tcard .badge { color: #ffb3a7; }
.fcontrols { margin-left: auto; display: flex; gap: 10px; flex-wrap: wrap; }
.fcontrols .linkish { color: inherit; opacity: .75; font: 12px var(--mono); }
.fpost.op .fcontrols .linkish { color: #e9d29c; }
.fimage { float: left; margin: 6px 14px 6px 0; max-width: 260px; }
.fimage .meta { display: block; font-size: 11px; overflow-wrap: anywhere; }
.fimage img { display: block; max-width: 260px; max-height: 260px; border: 1px solid #0003; }
.fbody { font: 16px/1.5 var(--serif); overflow-wrap: anywhere; padding-top: 4px; }
.fpost::after { content: ""; display: block; clear: both; }
.greentext { color: #789922; }
.postref { color: #a8161f; }
.fpost.op .postref { color: #ff9c8f; }
.fbody a { color: #7c1a22; }
.fpost.op .fbody a { color: #e9d29c; }
.profile { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 18px; align-items: start; }
.pcard, .pbox { border: 1px solid #6b665a; background: var(--panel); }
.pcard { padding: 16px; }
.pcard h1 { margin: 0 0 10px; font: bold 22px/1.2 var(--serif); color: #f0e8d3; }
.pavatar { display: block; width: 100%; max-width: 240px; aspect-ratio: 1; object-fit: cover; border: 1px solid #a2947a; background: #fff; }
.pavatar.empty { display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 12px; letter-spacing: 2px; border-style: dashed; background: transparent; }
.pstatus { min-height: 1.4em; margin: 8px 0; font-size: 17px; color: #e6d9b8; }
.ptable { width: 100%; border-collapse: collapse; font: 13px/1.6 var(--mono); }
.ptable th, .ptable td { text-align: left; padding: 5px 6px; border-top: 1px solid #45463d; }
.ptable th { color: var(--muted); font-weight: normal; width: 45%; }
.pbox { margin-bottom: 14px; }
.pbox h2 { margin: 0; padding: 9px 14px; font: bold 13px/1.5 var(--mono); letter-spacing: 1px; color: #1f1c18; background: var(--paper-blue); border-bottom: 1px solid #6b665a; }
.pbox p, .pbox ul { padding: 12px 14px; margin: 0; }
.topfiles { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.topfiles li { border: 1px solid #6b665a; padding: 8px 10px; font: 14px/1.4 var(--serif); background: #2a2b25; }
.topfiles a { color: #ede2bf; }
.plist { list-style: none; }
.plist li { margin-bottom: 10px; font-size: 15px; }
.twoforms { display: grid; grid-template-columns: 1fr 1fr; }
.twoforms .fform { border-right: 1px solid #45463d; }
.twoforms .fform:last-child { border-right: 0; }
@media (max-width: 800px) {
  .profile, .twoforms { grid-template-columns: 1fr; }
  .twoforms .fform { border-right: 0; }
  .tcard { grid-template-columns: 72px 1fr; }
  .tthumb img, .nothumb { width: 72px; height: 72px; }
  .fimage { float: none; margin: 6px 0; }
  .fpost { display: block; }
  .fcontrols { margin-left: 0; }
}

/* ---------- exhibits: pinned photographs on subject files ---------- */
.exhibits { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 22px 24px; margin: 8px 4px 12px; }
.exhibit { position: relative; margin: 0; background: #f4f0e6; padding: 10px 10px 12px; box-shadow: 2px 4px 8px #0007, 0 0 0 1px #00000014; transform: rotate(-.8deg); }
.exhibit:nth-child(even) { transform: rotate(.9deg); }
.exhibit::before { content: ""; position: absolute; top: -10px; left: 50%; width: 64px; height: 20px; margin-left: -32px; background: #cdb97e88; border-inline: 1px dashed #6a5b3466; transform: rotate(-3deg); }
.exhibit a { display: block; }
.exhibit img { display: block; width: 100%; height: auto; border: 1px solid #00000022; background: #ddd; }
.exhibit figcaption { padding-top: 9px; font: 12px/1.5 var(--mono); color: var(--ink-soft); }
.exhibit .cap { display: block; font-size: 13px; font-weight: bold; color: var(--ink); margin-bottom: 4px; letter-spacing: .3px; }
.exhibit .excredit { display: block; overflow-wrap: anywhere; }
.dossier .text .exhibit a { color: var(--link-paper); }
@media (max-width: 640px) { .exhibits { grid-template-columns: 1fr; margin: 4px 0 10px; } .exhibit, .exhibit:nth-child(even) { transform: none; } }

/* ---------- requested files (topic suggestions) ---------- */
.stabs { padding: 10px 18px 0; }
.stabs a { color: #e9d29c; }
.stabs a[aria-current="page"] { color: #ffc4b8; text-decoration: none; }
.slist { border-top: 1px solid #45463d; margin-top: 10px; }
.srow { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #45463d; }
.srow:nth-child(even) { background: #292a24; }
.svote { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.votebtn { min-height: 0; padding: 6px 10px; font: bold 14px var(--mono); background: var(--panel-3); border: 1px solid #8a8474; color: #e9d29c; }
.votebtn.on { background: #6a3a12; border-color: #d59a3b; color: #ffd39c; }
.scount { font: 13px var(--mono); color: var(--muted); }
.sbody h2 { margin: 0 0 6px; font: bold 17px/1.35 var(--serif); color: #ede2bf; }
.sbody h2 a { color: #e9d29c; font: 14px var(--mono); }
.sbody p { margin: 0 0 6px; font: 15px/1.5 var(--sans); color: #d6d0bf; overflow-wrap: anywhere; }
.sbody .meta a { color: #e9d29c; }
.badge.st-open { color: #cbb98a; } .badge.st-accepted { color: #7fd39a; } .badge.st-filed { color: #ffd39c; } .badge.st-declined { color: #b9b3a2; }
@media (max-width: 640px) { .srow { grid-template-columns: 52px 1fr; padding: 12px 14px; } }

/* ---------- files on record (primary documents) ---------- */
.documents { list-style: none; padding: 0; }
.documents .doc { position: relative; padding: 10px 12px 10px 34px; margin-bottom: 8px; background: #f6f2e8; border: 1px solid #a2947a; font-size: 15px; line-height: 1.5; }
.documents .doc::before { content: ""; position: absolute; left: 10px; top: 12px; width: 12px; height: 16px; border: 2px solid #6e675c; border-radius: 2px 6px 2px 2px; background: #fff; }
.documents .doc > a { font-weight: bold; }
.documents .src-meta { display: block; font: 12px/1.7 var(--mono); color: var(--ink-soft); }

/* theory card on the wall; reflection section on files */
[data-pin="theory"] { left: 3.5%; top: 780px; width: 26%; transform: rotate(-1.5deg); background: var(--paper-blue); background-image: linear-gradient(#ffffff33, transparent); }
[data-pin="subject"] { left: 4%; top: 1010px; width: 12%; }
[data-pin="sap"] { left: 18%; top: 1040px; width: 12%; }
.board { min-height: 1290px; }
.clip-d { top: 1180px; } .clip-e { top: 1130px; } .clip-f { top: 1170px; }
.reflection { background: #efe8d6; border: 1px solid #a2947a; padding: 16px 18px 6px; }
.reflection h2 { border-bottom-color: #8d7f65; }
.reflection p { font-style: italic; }
.reflection .rule { font-style: normal; }
@media (max-width: 900px) { [data-pin="theory"], [data-pin="subject"], [data-pin="sap"] { left: auto; top: auto; width: auto; } }
