/*
Theme: Precinct — Case File
Slug: precinct
A hard-boiled case-file theme for authors with 1–3 books. Every book is a
large EXHIBIT pinned to the evidence board on a manila mat under a
desk-lamp glow, so a short backlist reads as an active investigation.
Bold condensed headlines, typewriter mono labels, serif body, one
blood-red accent. Mobile-first. No JavaScript.

Contrast notes (AA, 4.5:1 body text):
  ink #d8d3c8 on slate #101214       ≈ 11.6:1  ok
  muted #9a958a on slate #101214     ≈  6.3:1  ok
  manila-ink #201a0c on manila #cfb87f ≈ 9.1:1 ok
  manila-muted #4a3d1e on manila     ≈  5.4:1  ok
  red-ink #f6f1e6 on red #a4262e     ≈  7.1:1  ok
  red #a4262e is NEVER used for small text on slate (≈2.6:1) —
  stamps/tape/rules/large-decorative only.
*/

/* ============================================================
   1. TOKENS — per-tenant overrides land via #scribe-site-tokens
   ============================================================ */
:root {
    --pc-bg:            #101214;
    --pc-bg-deep:       #0b0d0f;
    --pc-surface:       #16191c;
    --pc-ink:           #d8d3c8;
    --pc-ink-strong:    #f0ece1;
    --pc-muted:         #9a958a;
    --pc-line:          #2a2e33;
    --pc-manila:        #cfb87f;
    --pc-manila-deep:   #bfa768;
    --pc-manila-border: #8a7743;
    --pc-manila-ink:    #201a0c;
    --pc-manila-muted:  #4a3d1e;
    --pc-paper:         #f2ead6;
    --pc-red:           #a4262e;
    --pc-red-bright:    #c8434b;
    --pc-red-ink:       #f6f1e6;
    --pc-max:           1200px;
    --pc-narrow:        65ch;
    --pc-condensed:     "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
    --pc-mono:          "Courier New", Courier, monospace;
    --pc-serif:         Georgia, "Times New Roman", serif;
}

/* ============================================================
   2. RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

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

body {
    margin: 0;
    font-family: var(--pc-serif);
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--pc-ink);
    background-color: var(--pc-bg);
    /* The desk lamp: a faint warm radial glow, top-left, over near-black slate. */
    background-image:
        radial-gradient(ellipse 900px 640px at 12% -4%, rgba(207, 184, 127, 0.10), transparent 62%),
        radial-gradient(ellipse 1400px 900px at 50% 120%, rgba(0, 0, 0, 0.55), transparent 70%);
    background-attachment: fixed;
    background-repeat: no-repeat;
}

img { max-width: 100%; height: auto; display: block; }

/* Headlines: bold condensed caps, tight tracking — witness-statement weight. */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--pc-condensed);
    font-weight: 800;
    font-stretch: condensed;
    text-transform: uppercase;
    letter-spacing: 0.015em;
    line-height: 1.08;
    color: var(--pc-ink-strong);
    margin: 0 0 0.5em;
}

p { margin: 0 0 1em; }

a { color: var(--pc-ink-strong); text-decoration-color: var(--pc-manila-border); text-underline-offset: 3px; }
a:hover { text-decoration-color: var(--pc-red-bright); }

hr { border: 0; border-top: 1px solid var(--pc-line); margin: 2.5rem 0; }

::selection { background: var(--pc-red); color: var(--pc-red-ink); }

/* Focus: the red grease-pencil ring. */
:focus-visible {
    outline: 3px solid var(--pc-red-bright);
    outline-offset: 3px;
    border-radius: 2px;
}

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100;
    padding: 12px 20px;
    background: var(--pc-manila);
    color: var(--pc-manila-ink);
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    text-decoration: none;
}
.skip-link:focus { left: 0; }

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

.site { min-height: 100vh; display: flex; flex-direction: column; }
.site__main { flex: 1 0 auto; width: 100%; }

/* Shared mono label voice. */
.pc-section-head__kicker,
.pc-archive-head__kicker,
.pc-log__date, .pc-log__cats,
.pc-exhibit__docket, .pc-exhibit__tape,
.pc-dossier__kicker, .pc-dossier__tape, .pc-dossier__meta,
.pc-statement__kicker, .pc-statement__attrib,
.pc-report__kicker, .pc-report__meta, .pc-report__tags,
.pc-hero__tab, .pc-hero__deposition {
    font-family: var(--pc-mono);
}

/* ============================================================
   3. SITE HEADER — the top edge of the folder
   ============================================================ */
.site-header {
    background: var(--pc-bg-deep);
    border-bottom: 1px solid var(--pc-line);
    /* The folder's manila top edge. */
    border-top: 6px solid var(--pc-manila);
}

.site-header__inner {
    max-width: var(--pc-max);
    margin: 0 auto;
    padding: 14px 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 24px;
}

.site-header__brand {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    text-decoration: none;
    padding: 6px 0;
    min-height: 44px;
    justify-content: center;
}

.site-header__name {
    font-family: var(--pc-condensed);
    font-weight: 800;
    font-stretch: condensed;
    font-size: 1.375rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pc-ink-strong);
}

.site-header__tagline {
    font-family: var(--pc-mono);
    font-size: 0.6875rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.site-header__nav ul.menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 2px 6px;
}

.site-header__nav ul.menu a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 12px;
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--pc-ink);
    border-bottom: 2px solid transparent;
}

.site-header__nav ul.menu a:hover {
    color: var(--pc-ink-strong);
    border-bottom-color: var(--pc-red);
}

/* ============================================================
   4. HERO — the case-file header
   ============================================================ */
.pc-hero {
    position: relative;
    background: var(--pc-bg-deep);
    border-bottom: 1px solid var(--pc-line);
    overflow: hidden;
}

/* Lamp glow concentrated on the hero. */
.pc-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 720px 480px at 14% 0%, rgba(207, 184, 127, 0.14), transparent 60%);
    pointer-events: none;
}

/* Manila folder-tab strip across the top. */
.pc-hero__tabstrip {
    position: relative;
    max-width: var(--pc-max);
    margin: 0 auto;
    padding: 28px 20px 0;
    border-bottom: 2px solid var(--pc-manila-border);
}

.pc-hero__tab {
    display: inline-block;
    margin: 0;
    padding: 10px 22px 8px;
    background: var(--pc-manila);
    color: var(--pc-manila-ink);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 6px 6px 0 0;
    box-shadow: inset 0 -4px 8px -6px rgba(32, 26, 12, 0.7);
}

.pc-hero__inner {
    position: relative;
    max-width: var(--pc-max);
    margin: 0 auto;
    padding: 56px 20px 64px;
}

/* The red ACTIVE stamp — pure CSS: rotated, bordered, mono, low opacity. */
.pc-hero__stamp {
    position: absolute;
    top: 34px;
    right: 20px;
    padding: 8px 18px;
    border: 3px double var(--pc-red-bright);
    border-radius: 4px;
    color: var(--pc-red-bright);
    font-family: var(--pc-mono);
    font-size: clamp(0.9375rem, 2.5vw, 1.375rem);
    font-weight: 700;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    transform: rotate(-8deg);
    opacity: 0.55;
    -webkit-mask-image: radial-gradient(circle at 30% 40%, #000 55%, rgba(0,0,0,0.55) 100%);
            mask-image: radial-gradient(circle at 30% 40%, #000 55%, rgba(0,0,0,0.55) 100%);
    pointer-events: none;
}

/* The hero quote — the witness statement, set big. */
.pc-hero__quote {
    max-width: 22ch;
    margin: 0 0 0.35em;
    font-size: clamp(2.375rem, 7.5vw, 4.75rem);
    letter-spacing: 0.005em;
    line-height: 1.02;
    text-wrap: balance;
}

.pc-hero__deposition {
    margin: 0 0 2rem;
    font-size: 0.8125rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    min-height: 48px;
    padding: 12px 26px;
    background: var(--pc-red);
    color: var(--pc-red-ink);
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid var(--pc-red-bright);
    border-radius: 3px;
    box-shadow: 0 2px 0 rgba(0, 0, 0, 0.5);
}
.pc-hero__cta:hover { background: var(--pc-red-bright); }

/* ============================================================
   5. SECTION HEADS
   ============================================================ */
.pc-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 20px;
    margin-bottom: 2.25rem;
    padding-bottom: 0.875rem;
    border-bottom: 1px solid var(--pc-line);
}

.pc-section-head__kicker {
    order: -1;
    width: 100%;
    margin: 0;
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-section-head__title {
    margin: 0;
    font-size: clamp(1.75rem, 4.5vw, 2.5rem);
}

.pc-section-head__all {
    margin-left: auto;
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pc-ink);
    text-decoration: none;
    border-bottom: 2px solid var(--pc-red);
    padding: 10px 0 4px;
}
.pc-section-head__all:hover { color: var(--pc-ink-strong); border-bottom-color: var(--pc-red-bright); }

/* ============================================================
   6. THE EVIDENCE BOARD — 1–3 books as large exhibits
   ============================================================ */
.pc-evidence { padding: 56px 0 64px; }
.pc-evidence__inner { max-width: var(--pc-max); margin: 0 auto; padding: 0 20px; }

/* Mobile-first: a single column, exhibits stacked. */
.pc-board {
    display: grid;
    grid-template-columns: 1fr;
    gap: 44px 36px;
}

/* Desktop: auto-fit so FEW items grow BIG.
   1 book  → single centered exhibit at ~60% width (data-count rule below)
   2 books → two 50% cards
   3 books → 2 + 1 at the default max width; 3 across on wider tokens */
@media (min-width: 720px) {
    .pc-board {
        grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
        gap: 56px 44px;
    }
    .pc-board[data-count="1"] {
        grid-template-columns: minmax(min(420px, 100%), 60%);
        justify-content: center;
    }
}

.pc-exhibit {
    display: flex;
    flex-direction: column;
}

/* The manila mat the cover is pinned to. */
.pc-exhibit__mat {
    position: relative;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.14), transparent 45%),
        var(--pc-manila);
    border: 1px solid var(--pc-manila-border);
    border-radius: 2px;
    padding: 30px 26px 26px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.55), 0 2px 6px rgba(0, 0, 0, 0.4);
    transform: rotate(-0.4deg);
    transition: transform 180ms ease;
}
.pc-exhibit:nth-child(even) .pc-exhibit__mat { transform: rotate(0.4deg); }

@media (min-width: 720px) {
    .pc-exhibit .pc-exhibit__mat { transform: rotate(-1deg); }
    .pc-exhibit:nth-child(even) .pc-exhibit__mat { transform: rotate(1deg); }
}

/* Straighten under the lamp when inspected. */
.pc-exhibit:hover .pc-exhibit__mat,
.pc-exhibit:focus-within .pc-exhibit__mat {
    transform: rotate(0deg);
}

/* The pin. */
.pc-exhibit__mat::before {
    content: "";
    position: absolute;
    top: 12px;
    left: 50%;
    width: 14px;
    height: 14px;
    margin-left: -7px;
    border-radius: 50%;
    background: radial-gradient(circle at 34% 30%, var(--pc-red-bright), var(--pc-red) 55%, #5e1218 100%);
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.55);
    z-index: 3;
}

/* "EXHIBIT A" label tape. */
.pc-exhibit__tape {
    position: absolute;
    top: -12px;
    left: 22px;
    z-index: 2;
    padding: 4px 16px;
    background: rgba(191, 167, 104, 0.92);
    color: var(--pc-manila-ink);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    transform: rotate(-2deg);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    border-left: 1px dashed rgba(32, 26, 12, 0.3);
    border-right: 1px dashed rgba(32, 26, 12, 0.3);
}

.pc-exhibit__coverlink { display: block; text-decoration: none; }

.pc-exhibit__cover {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--pc-bg-deep);
    box-shadow: 0 6px 16px rgba(32, 26, 12, 0.45);
}

/* Consistent aspect handling: covers fill a 2:3 frame, never distorted. */
.pc-exhibit__cover img {
    width: 100%;
    aspect-ratio: 2 / 3;
    object-fit: cover;
}

.pc-exhibit__nocover {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 2 / 3;
    font-family: var(--pc-condensed);
    font-weight: 800;
    font-size: 5rem;
    text-transform: uppercase;
    color: var(--pc-manila);
    background: repeating-linear-gradient(-45deg, var(--pc-bg-deep) 0 14px, var(--pc-surface) 14px 28px);
}

/* SEALED tape band across the cover corner for coming-soon books. */
.pc-exhibit__sealed {
    position: absolute;
    top: 8%;
    right: -32%;
    width: 90%;
    padding: 7px 0;
    background: var(--pc-red);
    color: var(--pc-red-ink);
    font-family: var(--pc-mono);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-align: center;
    transform: rotate(35deg);
    border-top: 1px dashed rgba(246, 241, 230, 0.55);
    border-bottom: 1px dashed rgba(246, 241, 230, 0.55);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);
}

.pc-exhibit__body { padding: 22px 6px 0; }

.pc-exhibit__title {
    margin: 0 0 0.35rem;
    font-size: clamp(1.5rem, 3.5vw, 2rem);
}
.pc-exhibit__title a { text-decoration: none; color: var(--pc-ink-strong); }
.pc-exhibit__title a:hover { color: var(--pc-manila); }

.pc-exhibit__docket {
    margin: 0 0 0.75rem;
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

/* The typed note: one clamped line of the blurb. */
.pc-exhibit__note {
    margin: 0 0 1rem;
    font-family: var(--pc-serif);
    font-style: italic;
    color: var(--pc-ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* "Open file →" — red-thread underline. */
.pc-exhibit__open {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    min-height: 44px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--pc-ink-strong);
    border-bottom: 2px solid var(--pc-red);
    padding-bottom: 2px;
}
.pc-exhibit__open:hover { color: var(--pc-manila); border-bottom-color: var(--pc-red-bright); }

/* ============================================================
   7. INCIDENT LOG — the journal as a mono table
   ============================================================ */
.pc-log-section { padding: 56px 0; border-top: 1px solid var(--pc-line); }
.pc-log-section--archive { border-top: 0; padding-top: 8px; }
.pc-log-section__inner { max-width: var(--pc-max); margin: 0 auto; padding: 0 20px; }

.pc-log {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--pc-line);
}

.pc-log__row {
    padding: 18px 12px;
    border-bottom: 1px solid var(--pc-line);
}

/* Alternating faint row tint — pages under the lamp. */
.pc-log__row:nth-child(odd) { background: rgba(207, 184, 127, 0.035); }

@media (min-width: 720px) {
    .pc-log__row {
        display: grid;
        grid-template-columns: 14ch 1fr;
        gap: 8px 32px;
        padding: 22px 16px;
    }
}

.pc-log__date {
    margin: 0 0 4px;
    font-size: 0.8125rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-log__cats {
    margin: 0 0 2px;
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-log__entry { min-width: 0; }

.pc-log__title { margin: 0 0 0.3rem; font-size: 1.25rem; }
.pc-log__title a {
    display: inline-block;
    padding: 4px 0;
    text-decoration: none;
    color: var(--pc-ink-strong);
}
.pc-log__title a:hover { color: var(--pc-manila); }

.pc-log__teaser { margin: 0; color: var(--pc-ink); font-size: 0.9375rem; }

/* ============================================================
   8. INFORMANT SIGNUP — the newsletter block, manila panel
   ============================================================ */
.pc-informant { padding: 56px 20px 72px; }

.newsletter-block {
    position: relative;
    max-width: 720px;
    margin: 0 auto;
    padding: 40px 28px 34px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.16), transparent 40%),
        var(--pc-manila);
    color: var(--pc-manila-ink);
    border: 1px solid var(--pc-manila-border);
    border-radius: 2px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
    overflow: hidden;
}

/* Mono eyebrow typed above the heading. */
.newsletter-block::before {
    content: "Informant signup // confidential";
    content: "Informant signup // confidential" / "";
    display: block;
    margin-bottom: 10px;
    font-family: var(--pc-mono);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pc-manila-muted);
}

/* The red stamp in the corner — decorative, clipped by the panel. */
.newsletter-block::after {
    content: "Cleared";
    content: "Cleared" / "";
    position: absolute;
    top: 18px;
    right: -14px;
    padding: 6px 20px;
    border: 3px double var(--pc-red);
    border-radius: 4px;
    color: var(--pc-red);
    font-family: var(--pc-mono);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    transform: rotate(9deg);
    opacity: 0.5;
    pointer-events: none;
}

.newsletter-block__heading {
    margin: 0 0 0.4rem;
    font-size: clamp(1.5rem, 4vw, 2.125rem);
    color: var(--pc-manila-ink);
    max-width: 24ch;
}

.newsletter-block__copy {
    margin: 0 0 1.5rem;
    max-width: 52ch;
    color: var(--pc-manila-ink);
}

.newsletter-block__form { margin: 0; }

.newsletter-block__row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

@media (min-width: 560px) {
    .newsletter-block__row { flex-direction: row; align-items: stretch; }
    .newsletter-block__email { flex: 1 1 auto; }
}

.newsletter-block__email-label {
    display: block;
    margin-bottom: 2px;
    font-family: var(--pc-mono);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pc-manila-muted);
    flex-basis: 100%;
}

.newsletter-block__email {
    min-height: 48px;
    padding: 10px 14px;
    font-family: var(--pc-mono);
    font-size: 1rem;
    color: var(--pc-manila-ink);
    background: var(--pc-paper);
    border: 1px solid var(--pc-manila-border);
    border-radius: 2px;
    box-shadow: inset 0 2px 4px rgba(32, 26, 12, 0.18);
}
.newsletter-block__email::placeholder { color: var(--pc-manila-muted); opacity: 1; }

.newsletter-block__submit {
    min-height: 48px;
    padding: 10px 26px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pc-red-ink);
    background: var(--pc-red);
    border: 1px solid #7c1c23;
    border-radius: 3px;
    box-shadow: 0 2px 0 rgba(32, 26, 12, 0.45);
    cursor: pointer;
}
.newsletter-block__submit:hover { background: var(--pc-red-bright); }
.newsletter-block__submit:active { transform: translateY(1px); box-shadow: none; }

.newsletter-block__fineprint {
    margin: 14px 0 0;
    font-family: var(--pc-mono);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    color: var(--pc-manila-muted);
}
.newsletter-block__fineprint a { color: var(--pc-manila-ink); }

.newsletter-block__status {
    margin: 0 0 1rem;
    padding: 10px 14px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    border: 1px dashed var(--pc-manila-border);
    background: var(--pc-paper);
    color: var(--pc-manila-ink);
}
.newsletter-block__status--confirmed,
.newsletter-block__status--subscribed,
.newsletter-block__status--ok { border-style: solid; border-color: var(--pc-manila-ink); }
.newsletter-block__status--error,
.newsletter-block__status--invalid { border-style: solid; border-color: var(--pc-red); }

.newsletter-block__embed { margin-top: 4px; }
.newsletter-block__embed input,
.newsletter-block__embed button { font-family: var(--pc-mono); }

/* ============================================================
   9. BOOK DOSSIER (single book page)
   ============================================================ */
.pc-dossier { max-width: var(--pc-max); margin: 0 auto; padding: 48px 20px 24px; }

.pc-dossier__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
}

@media (min-width: 820px) {
    .pc-dossier__layout {
        grid-template-columns: minmax(280px, 400px) 1fr;
        gap: 64px;
        align-items: start;
    }
}

.pc-dossier__evidence { max-width: 400px; margin: 0 auto; width: 100%; }

.pc-dossier__mat {
    position: relative;
    padding: 34px 24px 24px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.14), transparent 45%),
        var(--pc-manila);
    border: 1px solid var(--pc-manila-border);
    border-radius: 2px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.55);
    transform: rotate(-1deg);
}

.pc-dossier__tape {
    position: absolute;
    top: -12px;
    left: 20px;
    z-index: 2;
    padding: 4px 14px;
    background: rgba(191, 167, 104, 0.92);
    color: var(--pc-manila-ink);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    transform: rotate(-2deg);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.pc-dossier__cover {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--pc-bg-deep);
    box-shadow: 0 6px 16px rgba(32, 26, 12, 0.45);
}
.pc-dossier__cover img { width: 100%; height: auto; }

.pc-dossier__nocover {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 2 / 3;
    font-family: var(--pc-condensed);
    font-weight: 800;
    font-size: 5rem;
    text-transform: uppercase;
    color: var(--pc-manila);
    background: repeating-linear-gradient(-45deg, var(--pc-bg-deep) 0 14px, var(--pc-surface) 14px 28px);
}

.pc-dossier__kicker {
    margin: 0 0 0.75rem;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-dossier__title { font-size: clamp(2rem, 6vw, 3.25rem); margin-bottom: 0.2em; }

.pc-dossier__subtitle {
    margin: 0 0 0.5rem;
    font-family: var(--pc-serif);
    font-style: italic;
    font-size: 1.125rem;
    color: var(--pc-ink);
}

.pc-dossier__authors { margin: 0 0 1.5rem; color: var(--pc-muted); font-style: italic; }

/* The mono dossier fields. */
.pc-dossier__meta {
    margin: 0 0 1.75rem;
    padding: 16px 18px;
    border: 1px dashed var(--pc-manila-border);
    background: rgba(207, 184, 127, 0.05);
    font-size: 0.875rem;
}

.pc-dossier__meta-row {
    display: flex;
    gap: 16px;
    padding: 4px 0;
}

.pc-dossier__meta dt {
    flex: 0 0 10ch;
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pc-muted);
}
.pc-dossier__meta dt::after { content: ":"; }
.pc-dossier__meta dd { margin: 0; color: var(--pc-ink); overflow-wrap: anywhere; }

.pc-dossier__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 22px;
    margin: 0 0 2rem;
}

/* Description held to a readable measure. */
.pc-dossier__description { max-width: var(--pc-narrow); }
.pc-dossier__description p { margin-bottom: 1.25em; }

/* ============================================================
   10. BUY LINKS — stamped buttons (+ SEALED coming-soon state)
   ============================================================ */
.book-buy-links {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.book-buy-links a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 10px 24px;
    background: var(--pc-red);
    color: var(--pc-red-ink);
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid var(--pc-red-bright);
    border-radius: 3px;
    box-shadow: 0 2px 0 rgba(0, 0, 0, 0.5);
}
.book-buy-links a:hover { background: var(--pc-red-bright); }
.book-buy-links a:active { transform: translateY(1px); box-shadow: none; }

/* Coming soon: the SEALED stamp state. */
.book-buy-links__soon {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 10px 24px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pc-red-bright);
    background: transparent;
    border: 2px dashed var(--pc-red);
    border-radius: 3px;
    opacity: 0.85;
    cursor: not-allowed;
    transform: rotate(-1deg);
}
.book-buy-links__soon::before { content: "Sealed \2014\00a0"; }

/* "Read the statement" link. */
.pc-statement-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--pc-ink-strong);
    border-bottom: 2px solid var(--pc-red);
    padding-bottom: 2px;
}
.pc-statement-link::after { content: "\00a0\2192"; }
.pc-statement-link:hover { color: var(--pc-manila); border-bottom-color: var(--pc-red-bright); }

/* ============================================================
   11. STATEMENT (excerpt page) — the typed deposition
   ============================================================ */
.pc-statement { max-width: var(--pc-narrow); margin: 0 auto; padding: 56px 20px 32px; }

.pc-statement__head {
    margin-bottom: 2.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 2px solid var(--pc-manila-border);
}

.pc-statement__kicker {
    margin: 0 0 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-statement__title { font-size: clamp(1.875rem, 5vw, 2.75rem); margin-bottom: 0.25em; }

.pc-statement__attrib { margin: 0; font-size: 0.8125rem; letter-spacing: 0.08em; color: var(--pc-muted); }

.pc-statement__body {
    font-size: 1.125rem;
    line-height: 1.85;
}
.pc-statement__body p { margin-bottom: 1.4em; }
.pc-statement__body h2, .pc-statement__body h3 { margin-top: 2em; }

.pc-statement__foot {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pc-line);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.pc-statement__back {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    min-height: 44px;
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pc-ink);
    text-decoration: none;
    border-bottom: 2px solid var(--pc-red);
    padding-bottom: 2px;
}
.pc-statement__back:hover { color: var(--pc-ink-strong); }

/* ============================================================
   12. ARCHIVE HEADS, REPORTS (posts/pages), 404
   ============================================================ */
.pc-archive-head {
    max-width: var(--pc-max);
    margin: 0 auto;
    padding: 52px 20px 8px;
}

.pc-archive-head__kicker {
    margin: 0 0 0.6rem;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-archive-head__title { font-size: clamp(2rem, 6vw, 3.25rem); margin-bottom: 0.25em; }
.pc-archive-head__note { margin: 0 0 1rem; color: var(--pc-muted); }

.pc-report { max-width: var(--pc-narrow); margin: 0 auto; padding: 52px 20px 40px; }

.pc-report__head {
    margin-bottom: 2rem;
    padding-bottom: 1.25rem;
    border-bottom: 2px solid var(--pc-manila-border);
}

.pc-report__kicker {
    margin: 0 0 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.pc-report__title { font-size: clamp(1.875rem, 5.5vw, 2.875rem); margin-bottom: 0.3em; }

.pc-report__meta { margin: 0; font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--pc-muted); }
.pc-report__meta a { color: var(--pc-ink); }

.pc-report__featured { margin: 0 0 2rem; }
.pc-report__featured img { border: 1px solid var(--pc-line); }

.pc-report__tags {
    margin: 2.5rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--pc-line);
    font-size: 0.8125rem;
    letter-spacing: 0.06em;
    color: var(--pc-muted);
}
.pc-report__tags a { color: var(--pc-ink); }

/* Long-form content voice (posts, pages, book descriptions). */
.pc-content { font-size: 1.0625rem; line-height: 1.8; }
.pc-content p { margin-bottom: 1.3em; }
.pc-content h2, .pc-content h3 { margin-top: 1.8em; }
.pc-content blockquote {
    margin: 1.75em 0;
    padding: 0.25em 0 0.25em 1.25em;
    border-left: 3px solid var(--pc-red);
    font-style: italic;
    color: var(--pc-ink-strong);
}
.pc-content code, .pc-content pre { font-family: var(--pc-mono); }
.pc-content pre {
    padding: 16px;
    overflow-x: auto;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
}
.pc-content img { border: 1px solid var(--pc-line); }

.pc-notfound {
    max-width: var(--pc-narrow);
    margin: 0 auto;
    padding: 96px 20px 120px;
    text-align: center;
}

.pc-notfound__stamp {
    display: inline-block;
    margin: 0 0 1.5rem;
    padding: 8px 20px;
    border: 3px double var(--pc-red-bright);
    border-radius: 4px;
    color: var(--pc-red-bright);
    font-family: var(--pc-mono);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    transform: rotate(-6deg);
    opacity: 0.6;
}

.pc-notfound__title { font-size: clamp(2rem, 7vw, 3.5rem); }
.pc-notfound__note { color: var(--pc-muted); margin-bottom: 2rem; }

.pc-empty {
    padding: 32px 0;
    font-family: var(--pc-mono);
    font-size: 0.9375rem;
    letter-spacing: 0.04em;
    color: var(--pc-muted);
}

/* ============================================================
   13. PAGINATION, WIDGETS, COMMENTS
   ============================================================ */
.pagination { margin: 2.5rem 0 0; }
.pagination ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 6px 12px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    text-decoration: none;
    color: var(--pc-ink);
    border: 1px solid var(--pc-line);
    border-radius: 2px;
}
.pagination a:hover { border-color: var(--pc-manila-border); color: var(--pc-ink-strong); }
.pagination li.is-current a {
    background: var(--pc-manila);
    color: var(--pc-manila-ink);
    border-color: var(--pc-manila-border);
    font-weight: 700;
}

.site-sidebar { max-width: var(--pc-max); margin: 0 auto; padding: 0 20px; }

.widget-area { display: grid; gap: 28px; }

.widget {
    padding: 20px;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-top: 3px solid var(--pc-manila-border);
}

.widget__title {
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pc-muted);
    margin-bottom: 0.875rem;
}

.widget-list { list-style: none; margin: 0; padding: 0; }
.widget-list li { border-bottom: 1px solid var(--pc-line); }
.widget-list li:last-child { border-bottom: 0; }
.widget-list a {
    display: inline-block;
    padding: 10px 0;
    min-height: 44px;
    text-decoration: none;
    color: var(--pc-ink);
}
.widget-list a:hover { color: var(--pc-ink-strong); }
.widget-count { font-family: var(--pc-mono); font-size: 0.8125rem; color: var(--pc-muted); }

.widget-tagcloud a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    margin: 0 8px 8px 0;
    padding: 4px 12px;
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    text-decoration: none;
    color: var(--pc-ink);
    border: 1px dashed var(--pc-manila-border);
    border-radius: 2px;
}
.widget-tagcloud a:hover { color: var(--pc-manila-ink); background: var(--pc-manila); }

.widget-search { display: flex; gap: 10px; }
.widget-search input[type="search"] {
    flex: 1 1 auto;
    min-height: 48px;
    min-width: 0;
    padding: 10px 14px;
    font-family: var(--pc-mono);
    font-size: 1rem;
    color: var(--pc-ink-strong);
    background: var(--pc-bg-deep);
    border: 1px solid var(--pc-line);
    border-radius: 2px;
}
.widget-search input[type="search"]::placeholder { color: var(--pc-muted); opacity: 1; }
.widget-search button {
    min-height: 48px;
    padding: 10px 20px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pc-red-ink);
    background: var(--pc-red);
    border: 1px solid var(--pc-red-bright);
    border-radius: 3px;
    cursor: pointer;
}
.widget-search button:hover { background: var(--pc-red-bright); }
.widget-search--page { max-width: 480px; margin-top: 1.5rem; }

.widget-text { color: var(--pc-ink); }

/* Comments — witness responses on file. */
.comments {
    max-width: var(--pc-narrow);
    margin: 3.5rem auto 0;
    padding-top: 2rem;
    border-top: 2px solid var(--pc-manila-border);
}

.pc-comments__heading { font-size: 1.375rem; }

.comment-list { list-style: none; margin: 0 0 2rem; padding: 0; }
.comment-list--nested { margin: 1rem 0 0 20px; padding-left: 16px; border-left: 2px solid var(--pc-line); }

.comment {
    padding: 18px 16px;
    margin-bottom: 14px;
    background: var(--pc-surface);
    border: 1px solid var(--pc-line);
    border-left: 3px solid var(--pc-manila-border);
}

.comment__head {
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.06em;
    color: var(--pc-muted);
    margin-bottom: 8px;
}
.comment__head a { color: var(--pc-ink); }
.comment__body { color: var(--pc-ink); }
.comment__body p:last-child { margin-bottom: 0; }

.comment-form-wrap h3 {
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pc-muted);
}

.comment-form p { margin-bottom: 1rem; }
.comment-form label {
    display: block;
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pc-muted);
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    display: block;
    width: 100%;
    margin-top: 6px;
    min-height: 48px;
    padding: 10px 14px;
    font-family: var(--pc-mono);
    font-size: 1rem;
    color: var(--pc-ink-strong);
    background: var(--pc-bg-deep);
    border: 1px solid var(--pc-line);
    border-radius: 2px;
}
.comment-form textarea { line-height: 1.6; }
.comment-form button {
    min-height: 48px;
    padding: 10px 26px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pc-red-ink);
    background: var(--pc-red);
    border: 1px solid var(--pc-red-bright);
    border-radius: 3px;
    cursor: pointer;
}
.comment-form button:hover { background: var(--pc-red-bright); }

.comment-form-status {
    margin: 0 0 1.25rem;
    padding: 10px 14px;
    font-family: var(--pc-mono);
    font-size: 0.875rem;
    list-style-position: inside;
    border: 1px dashed var(--pc-line);
    background: var(--pc-surface);
    color: var(--pc-ink);
}
.comment-form-status--error { border-color: var(--pc-red); border-style: solid; }
.comment-form-status--ok { border-color: var(--pc-manila-border); border-style: solid; }

/* ============================================================
   14. FOOTER
   ============================================================ */
.site-footer {
    margin-top: 48px;
    background: var(--pc-bg-deep);
    border-top: 1px solid var(--pc-line);
}

.site-footer__inner {
    max-width: var(--pc-max);
    margin: 0 auto;
    padding: 36px 20px 44px;
}

.site-footer .widget-area--footer { margin-bottom: 28px; }

.site-footer__nav ul.menu {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 2px 8px;
}
.site-footer__nav ul.menu a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 10px 8px 0;
    font-family: var(--pc-mono);
    font-size: 0.8125rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--pc-muted);
}
.site-footer__nav ul.menu a:hover { color: var(--pc-ink-strong); }

/* the_footer_credit() — mono small caps under the hairline. */
.site-credit {
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid var(--pc-line);
    font-family: var(--pc-mono);
    font-size: 0.75rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pc-muted);
}
.site-credit a {
    display: inline-block;
    padding: 12px 0;
    color: var(--pc-ink);
}
.site-credit a:hover { color: var(--pc-ink-strong); }
.site-credit__sep { color: var(--pc-manila-border); padding: 0 4px; }

/* ============================================================
   15. REDUCED MOTION — the board lies flat, nothing moves
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        transition: none !important;
        animation: none !important;
    }
    .pc-exhibit__mat,
    .pc-exhibit:nth-child(even) .pc-exhibit__mat,
    .pc-exhibit .pc-exhibit__mat,
    .pc-dossier__mat,
    .book-buy-links__soon {
        transform: none;
    }
}
