/* Oakland Watch — public theme. Black and white, typewriter display, serif body. */
:root {
  --paper: #ffffff;
  --ink: #111111;
  --ink-2: #333333;
  --muted: #5a5a5a;
  --rule: #111111;
  --rule-soft: #cfcfcf;
  --panel: #2a2a2a;
  --panel-ink: #ffffff;
  --type: 'JohnDoe', 'Special Elite', 'Courier New', Courier, monospace;   /* display: overridden by Settings → Fonts */
  --serif: 'Times New Roman', Times, Georgia, serif;                        /* body */
  --label: 'Rockwell', 'JohnDoe', 'Special Elite', 'Courier New', monospace; /* running head, kickers, footer URL */
  --base-size: 18px;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --measure: 72ch;
  --wide: 980px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--serif); font-size: var(--base-size); line-height: 1.5; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.skip { position: absolute; left: -999px; top: 0; background: #fff; padding: .5rem; }
.skip:focus { left: .5rem; z-index: 10; }
.hidden { display: none !important; }

/* Masthead + nav */
.site-head { max-width: var(--wide); margin: 0 auto; padding: 1.25rem 1rem .5rem; }
.masthead img { width: 100%; height: auto; }
.nav { display: flex; flex-wrap: wrap; gap: .25rem .75rem; justify-content: center; margin-top: .75rem; padding: .3rem 0; font-family: var(--type); font-weight: 700; font-size: .9rem; letter-spacing: .08em; }
.nav a { text-decoration: none; padding: .3rem .7rem .2rem; border-bottom: 1px solid var(--rule); border-radius: 2px 2px 0 0; transition: background-color .12s; }
.nav a:hover, .nav a:focus-visible { background: rgba(0, 0, 0, .3); outline: none; }  /* 30% grey box on hover */
.nav a[aria-current] { border-bottom-width: 3px; padding-bottom: .1rem; }

/* Sticky bar: slides in once the masthead has scrolled away */
.sticky { position: fixed; top: 0; left: 0; right: 0; z-index: 60; height: 3rem; display: grid; grid-template-columns: 3rem 1fr 3rem; align-items: center; background: var(--paper); border-bottom: 1px solid var(--rule); transform: translateY(-100%); transition: transform .2s ease; }
.sticky.show { transform: none; }
.sticky-search, .sticky-menu { display: flex; align-items: center; justify-content: center; height: 3rem; width: 3rem; color: var(--ink); background: none; border: 0; cursor: pointer; padding: 0; }
.sticky-search:hover, .sticky-menu:hover, .sticky-menu[aria-expanded="true"] { background: rgba(0, 0, 0, .08); }
.sticky-title { text-align: center; font-family: var(--type); font-weight: 700; font-size: 1.15rem; text-decoration: none; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 .5rem; }
.sticky-nav { position: absolute; top: 3rem; right: 0; min-width: 14rem; max-width: 100vw; background: var(--paper); border: 1px solid var(--rule); border-top: 0; box-shadow: 6px 6px 0 rgba(0, 0, 0, .2); font-family: var(--type); font-weight: 700; font-size: 1rem; }
.sticky-nav a { display: block; padding: .75rem 1.25rem; text-decoration: none; border-bottom: 1px solid var(--rule-soft); }
.sticky-nav a:last-child { border-bottom: 0; }
.sticky-nav a:hover { background: rgba(0, 0, 0, .08); }
@media (max-width: 480px) { .sticky-nav { left: 0; right: 0; min-width: 0; } }

/* Running head, like the booklet's page header */
.running { max-width: var(--wide); margin: 1rem auto 0; padding: 0 1rem; display: flex; justify-content: space-between; gap: 1rem; font-family: var(--font-running, var(--label)); font-size: var(--size-running, .72rem); letter-spacing: .12em; color: var(--ink-2); }
.running::after { content: ''; display: block; }
.running span:first-child { flex: 1; }

/* Front page */
.front, .issues-list, .article { max-width: var(--wide); margin: 0 auto; padding: 1rem 1rem 3rem; }
.issue-title { font-family: var(--type); font-weight: 400; font-size: clamp(1.6rem, 4.5vw, 2.6rem); line-height: 1.1; letter-spacing: -.01em; margin: .75rem 0 1rem; }
.card { display: grid; gap: .75rem; padding: 1rem 0; border-top: 1px solid var(--rule-soft); }
.card-big { border-top: 2px solid var(--rule); gap: 1rem; }
.card-img img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.card-big .card-img img { aspect-ratio: 2/1; }
.card-title { font-family: var(--type); font-weight: 400; font-size: 1.5rem; line-height: 1.15; margin: 0 0 .35rem; }
.card-big .card-title { font-size: clamp(1.8rem, 5vw, 3rem); }
.card-title a { text-decoration: none; }
.card-title a:hover { text-decoration: underline; }
.kicker { font-family: var(--label); font-size: .72rem; letter-spacing: .14em; color: var(--ink-2); margin: 0 0 .3rem; }
.dek { font-size: 1.15rem; line-height: 1.4; margin: 0 0 .4rem; color: var(--ink-2); }
.meta { font-family: var(--sans); font-size: .8rem; color: var(--muted); margin: 0; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 2rem; }
.empty { color: var(--muted); font-style: italic; }
.issues-list h2 { font-family: var(--type); font-weight: 400; font-size: 1.1rem; letter-spacing: .08em; border-top: 2px solid var(--rule); padding-top: .75rem; }
.issues-list ul, .issues-index { list-style: none; padding: 0; margin: 0; }
.issues-list li, .issues-index li { padding: .4rem 0; border-bottom: 1px solid var(--rule-soft); }
.search { display: flex; gap: .5rem; margin: 0 0 1rem; }
.search input { flex: 1; font: inherit; padding: .5rem .75rem; border: 1px solid var(--rule); background: #fff; }
.search button { font-family: var(--type); letter-spacing: .08em; padding: .5rem 1rem; border: 1px solid var(--rule); background: var(--ink); color: #fff; cursor: pointer; }
@media (min-width: 760px) {
  .card-big { grid-template-columns: 1.3fr 1fr; align-items: start; }
}

/* Article */
.art-head { max-width: var(--wide); margin: 0 auto; padding: 1.5rem 0 1rem; text-align: center; }
.art-head h1 { font-family: var(--type); font-weight: var(--weight-headline, 400); font-size: clamp(2rem, 6.5vw, 3.6rem); line-height: 1.05; letter-spacing: -.01em; margin: 0 0 .75rem; }
.art-head .dek { font-family: var(--font-dek, var(--type)); font-weight: var(--weight-dek, 400); font-size: clamp(1.1rem, 2.6vw, 1.5rem); line-height: 1.3; color: var(--ink); margin: 0 auto .75rem; max-width: 40ch; }
.byline { font-family: var(--font-byline, var(--sans)); font-size: .85rem; color: var(--muted); margin: 0; }
.byline a { color: inherit; }
.cover { margin: 1rem 0 1.5rem; }
.cover img { width: 100%; }
.cover figcaption, .img figcaption, .audio figcaption, .video figcaption, .embed figcaption, .pull figcaption { font-family: var(--font-caption, var(--sans)); font-size: .8rem; color: var(--muted); padding: .4rem 0 0; }
.credit { letter-spacing: .06em; font-size: .7rem; margin-left: .5rem; }
.cap + .credit { margin-left: .5rem; }

/* Inverted block: white on black */
.blk.inv { background: var(--ink); color: #fff; padding: 1.25rem 1.5rem; }
.blk.inv a, .blk.inv .fn a { color: #fff; }
.blk.inv .credit, .blk.inv figcaption, .blk.inv .cap { color: #ddd; }
.blk.inv .stamp-solid { background: #fff; color: var(--ink); }
.blk.inv .stamp-outline, .blk.inv .casefile, .blk.inv .btn { border-color: #fff; color: #fff; }
.blk.inv .btn-solid { background: #fff; color: var(--ink); }
.blk.inv .pull { border-color: #fff; }
.blk.inv th { background: #333; }
.blk.inv th, .blk.inv td { border-color: #555; }
.blk.inv .panel-light { background: #222; color: #fff; border-color: #444; }
.theme-dark .blk.inv { background: #fff; color: var(--ink); }
.theme-dark .blk.inv a { color: var(--ink); }

/* Image size and text wrap (set per image in the editor) */
.img { width: var(--w, 100%); }
.img.float-left { float: left; margin: .25rem 1.5rem 1rem 0; }
.img.float-right { float: right; margin: .25rem 0 1rem 1.5rem; }
.blk.al-center .img { margin-left: auto; margin-right: auto; }
.blk.al-right .img { margin-left: auto; }
.body::after { content: ''; display: block; clear: both; }
@media (max-width: 600px) { .img.float-left, .img.float-right { float: none; margin: 0 0 1rem; width: 100%; } }
.embed-player iframe { max-width: 100%; }

/* Images are shown as uploaded; the .zine class is kept so older content needs no change */
.zine img { filter: none; } /* images render exactly as uploaded */
.zine-viewer img { filter: none; }

/* Text sizes: per block (fs-*) and per selection (sz-*), set in the editor */
.blk.fs-xs { font-size: .8em; } .blk.fs-s { font-size: .9em; } .blk.fs-l { font-size: 1.2em; } .blk.fs-xl { font-size: 1.5em; } .blk.fs-xxl { font-size: 2em; }
.sz-xs { font-size: .75em; } .sz-s { font-size: .875em; } .sz-l { font-size: 1.25em; } .sz-xl { font-size: 1.6em; } .sz-xxl { font-size: 2.2em; }
/* Headline and subtitle sizes, set per article in the Layout panel */
.art-head.ts-xs h1 { font-size: 1.6rem; } .art-head.ts-s h1 { font-size: clamp(1.6rem, 5vw, 2.6rem); } .art-head.ts-l h1 { font-size: clamp(2.4rem, 8vw, 4.6rem); } .art-head.ts-xl h1 { font-size: clamp(2.8rem, 9.5vw, 5.6rem); } .art-head.ts-xxl h1 { font-size: clamp(3rem, 11vw, 7rem); }
.art-head[style*="--title-px"] h1 { font-size: min(var(--title-px), 12vw); }
.art-head[style*="--dek-px"] .dek { font-size: min(var(--dek-px), 7vw); }
.art-head.tw-bold h1 { font-weight: 700; } .art-head.tw-regular h1 { font-weight: 400; }
.art-head.dw-bold .dek { font-weight: 700; } .art-head.dw-regular .dek { font-weight: 400; }
.art-head.ds-xs .dek { font-size: .95rem; } .art-head.ds-s .dek { font-size: 1.05rem; } .art-head.ds-l .dek { font-size: clamp(1.3rem, 3.2vw, 1.9rem); } .art-head.ds-xl .dek { font-size: clamp(1.5rem, 4vw, 2.4rem); } .art-head.ds-xxl .dek { font-size: clamp(1.8rem, 5vw, 3rem); }
.home { max-width: var(--wide); margin: 0 auto; padding: 1.5rem 1rem 2rem; }
.home .body h2 { text-align: inherit; }

/* Per-selection font changes made in the editor */
.ff-display { font-family: var(--type); }
.ff-body { font-family: var(--serif); }
.ff-label { font-family: var(--label); }
.ff-sans { font-family: var(--sans); }

/* Body */
.body { max-width: var(--wide); margin: 0 auto; }
.body > .blk { max-width: var(--measure); margin: 0 auto 1.1rem; }
.body > .blk.w-wide { max-width: var(--wide); }
.body > .blk.w-70 { max-width: calc(var(--wide) * .7); width: 70%; margin-left: auto; margin-right: auto; }
.body > .blk.w-full { max-width: none; width: 100vw; position: relative; left: 50%; transform: translateX(-50%); }
.blk.al-center { text-align: center; }
.blk.al-right { text-align: right; }
.body p { margin: 0 0 1rem; }
.body h2, .body h3, .body h4 { font-family: var(--type); font-weight: 400; line-height: 1.15; margin: 1.5rem 0 .6rem; }
.body h2 { font-size: 1.7em; }
.body h3 { font-size: 1.3em; }
.body h4 { font-size: 1.05em; letter-spacing: .06em; }
.body ul, .body ol { padding-left: 1.4rem; margin: 0 0 1rem; }
.body li { margin: 0 0 .3rem; }
.body .checklist { list-style: none; padding-left: 0; }
.body .checklist li::before { content: '☐ '; }
.rule { text-align: center; font-family: var(--type); font-size: 1.6rem; line-height: 1; letter-spacing: .35em; padding-left: .35em; margin: 1.25rem auto; color: var(--ink); }
.pull { margin: 1.5rem 0; padding: .5rem 0 .5rem 1.25rem; border-left: 4px solid var(--rule); }
.pull blockquote { margin: 0; font-family: var(--type); font-size: 1.35em; line-height: 1.3; }
.table-scroll { overflow-x: auto; }
.body table { border-collapse: collapse; width: 100%; font-family: var(--sans); font-size: .9rem; }
.body th, .body td { border: 1px solid var(--rule-soft); padding: .4rem .6rem; text-align: left; vertical-align: top; }
.body th { background: #f1f1f1; font-weight: 600; }
.fn { font-size: .7em; line-height: 0; vertical-align: super; }
.fn a { text-decoration: none; font-family: inherit; font-weight: inherit; padding: 0 .1em; }
.fn a:hover { text-decoration: underline; }
.fn-pop { position: absolute; z-index: 30; max-width: 24rem; background: #fff; color: var(--ink); border: 1px solid var(--ink); padding: .6rem .8rem; font-family: var(--serif); font-size: .88rem; line-height: 1.45; box-shadow: 5px 5px 0 rgba(0, 0, 0, .25); }
.fn-pop a { color: inherit; }
.dropcap > .blk-paragraph:first-child p::first-letter { font-family: var(--type); font-size: 3.4em; float: left; line-height: .85; padding: .05em .08em 0 0; }

/* Two-column body on wide screens (the booklet's inside pages).
   Text flows down two columns; wide and full-bleed blocks span both. */
@media (min-width: 820px) {
  .body.cols2 { columns: 2; column-gap: 2.5rem; max-width: var(--wide); }
  .body.cols2 > .blk { max-width: none; break-inside: avoid; }
  .body.cols2 > .blk.w-wide, .body.cols2 > .blk.w-70, .body.cols2 > .blk.w-full { column-span: all; }
  .body.cols2 > .blk.w-70 { width: 70%; max-width: calc(var(--wide) * .7); margin-left: auto; margin-right: auto; }
  .body.cols2 > .blk.w-full { width: auto; left: auto; transform: none; }
  .body.cols2 > .blk-header:first-child h2 { margin-top: 0; }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
}
.two-col .col > p:last-child { margin-bottom: 0; }

/* Dark panel */
.panel { padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.panel-dark { background: var(--panel); color: var(--panel-ink); }
.panel-light { background: #f3f3f3; color: var(--ink); border: 1px solid var(--rule-soft); }
.panel h3 { font-family: var(--type); font-weight: 400; font-size: 1.6em; line-height: 1.1; margin: 0 0 .75rem; text-align: center; }
.panel-text p:last-child { margin-bottom: 0; }
.panel a { color: inherit; }
.w-full .panel { margin: 1.5rem 0; padding: 2rem max(1.5rem, calc((100vw - var(--wide)) / 2)); }

/* Stamp: tilted label like "EXHIBIT A" */
.stamp { display: inline-block; font-family: var(--type); letter-spacing: .06em; line-height: 1.1; padding: .4em .8em; transform: rotate(var(--tilt, -4deg)); margin: 1rem .5rem; }
.stamp-solid { background: var(--ink); color: #fff; }
.stamp-outline { border: 3px solid var(--ink); color: var(--ink); background: #fff; }
.stamp-s { font-size: 1em; }
.stamp-m { font-size: 1.5em; }
.stamp-l { font-size: 2.2em; }

/* Callout box: a general-purpose bordered or filled aside */
.callout { padding: 1rem 1.25rem; margin: 1.5rem 0; line-height: 1.45; }
.callout-outline { border: 2px solid var(--rule); }
.callout-light { background: #f3f3f3; border: 1px solid var(--rule-soft); }
.callout-dark { background: var(--panel); color: var(--panel-ink); }
.callout-dark a { color: inherit; }
.callout.font-type { font-family: var(--type); font-size: .95em; }
.callout.font-body { font-family: var(--serif); font-size: .95em; }
.callout h3 { font-family: var(--type); font-weight: 400; font-size: 1.15em; margin: 0 0 .5rem; letter-spacing: .04em; }
.callout-text p:last-child { margin-bottom: 0; }

/* Stamp laid over the block before it */
.blk.has-overlay { position: relative; overflow: visible; }
.stamp-overlay { position: absolute; transform: translate(-50%, -50%) rotate(var(--tilt, -4deg)); margin: 0; z-index: 2; white-space: nowrap; }
.blk.has-overlay > figure, .blk.has-overlay > aside, .blk.has-overlay > div { position: relative; z-index: 1; }
.cover .cover-img { position: relative; }
.cover.has-overlay { overflow: visible; }

/* Case file box */
.casefile { border: 2px solid var(--rule); padding: 1rem 1.25rem; margin: 1.5rem 0; font-family: var(--serif); font-size: .95em; line-height: 1.45; }
.casefile h3 { font-family: var(--type); font-weight: 400; font-size: 1.15em; margin: 0 0 .5rem; letter-spacing: .06em; }
.casefile-text p:last-child { margin-bottom: 0; }

/* Name list (witness list page) */
.namelist { background: var(--panel); color: var(--panel-ink); padding: 1.5rem; margin: 1.5rem 0; }
.namelist h3 { font-family: var(--sans); font-weight: 700; font-size: 1.05rem; margin: 0 0 .25rem; }
.namelist .legend { font-family: var(--sans); font-size: .9rem; margin: 0 0 .75rem; padding-bottom: .5rem; border-bottom: 1px solid #777; }
.namelist ul { list-style: none; padding: 0; margin: 0; column-gap: 2rem; font-family: var(--sans); font-size: 1.05em; line-height: 1.7; }
.namelist.cols-2 ul { columns: 2; }
.namelist.cols-3 ul { columns: 3; }
.namelist li { break-inside: avoid; padding-left: 1.1em; }
.namelist li.starred { font-weight: 700; padding-left: 0; }
.namelist .star { display: inline-block; width: 1.1em; }
@media (max-width: 480px) { .namelist ul { columns: 1 !important; } }
@media (max-width: 600px) {
  /* previous and next on one row, the middle button beneath them, centred */
  .prevnext { flex-wrap: wrap; justify-content: space-between; gap: .6rem; }
  .pn-prev, .pn-next { max-width: 48%; flex: 0 1 48%; padding: .7rem .8rem; }
  .prevnext .pn-mid { order: 3; flex: 0 0 100%; width: 100%; display: block; text-align: center; }
  .prevnext .pn-mid .share, .prevnext .pn-mid .pn-link { display: inline-flex; margin: 0 auto; }
  .pn-mid .pn-link, .pn-share { padding: .7rem 1.2rem; }
  .pn-label { font-size: .9rem; }
  .pn-title { font-size: .95rem; }
}

/* Buttons */
.btn-wrap { margin: 1.25rem 0; }
.btn { display: inline-block; font-family: var(--type); letter-spacing: .08em; font-size: 1em; padding: .6rem 1.2rem; text-decoration: none; border: 2px solid var(--ink); }
.btn-solid { background: var(--ink); color: #fff; }
.btn-outline { background: transparent; color: var(--ink); }
.btn:hover { background: #444; color: #fff; }

/* Media */
.audio audio { width: 100%; }
.video .ratio { position: relative; padding-top: 56.25%; }
.video .ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video .vwrap { position: relative; }
.snd { position: absolute; right: .6rem; bottom: .6rem; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(0,0,0,.65) center/18px no-repeat; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='11 5 6 9 2 9 2 15 6 15 11 19 11 5'/%3E%3Cline x1='23' y1='9' x2='17' y2='15'/%3E%3Cline x1='17' y1='9' x2='23' y2='15'/%3E%3C/svg%3E"); }
.snd.on { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='11 5 6 9 2 9 2 15 6 15 11 19 11 5'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7'/%3E%3Cpath d='M19 5a9 9 0 0 1 0 14'/%3E%3C/svg%3E"); }
.embed-html { overflow-x: auto; }
.embed-html iframe { max-width: 100%; }

/* Zine viewer */
.zine-page { max-width: var(--wide); margin: 0 auto; padding: 1rem 1rem 3rem; }
.zine-wrap { margin: 1.5rem 0; }
.zine-title { font-family: var(--type); font-weight: 400; font-size: 1.3em; margin: 0 0 .5rem; }
.zine-viewer { position: relative; background: var(--zine-bg, #404040); padding: 1rem 0 .5rem; outline: none; }
.zine-viewer:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.zine-scroll { overflow: auto; -webkit-overflow-scrolling: touch; max-height: 85vh; touch-action: none; overscroll-behavior: contain; }
.zine-scroll.dragging { cursor: grabbing; }
.zine-scroll.dragging * { pointer-events: none; }
.zine-frame { position: relative; overflow: hidden; flex: none; }
.zine-stage { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
.zine-scroll { cursor: pointer; }
.zine-scroll.zoomed { cursor: grab; }
.zine-stage .stf__parent { margin: 0 auto; }
.zine-stage img { user-select: none; -webkit-user-drag: none; }
.zine-bar { display: flex; align-items: center; flex-wrap: nowrap; gap: .25rem; padding: .5rem .6rem 0; font-family: var(--sans); font-size: .72rem; color: #fff; }
.zine-btn { font: inherit; font-size: .72rem; line-height: 1; padding: 0 .45rem; height: 1.5rem; border: 1px solid #fff; background: #fff; color: #111; cursor: pointer; border-radius: 2px; text-decoration: none; display: inline-flex; align-items: center; white-space: nowrap; }
.zine-btn:hover { background: #ddd; }
.zine-btn:disabled { opacity: .35; cursor: default; }
.zine-arrow { font-size: 1rem; width: 1.5rem; padding: 0; justify-content: center; }
.zine-gap { width: .4rem; }
.zine-spacer { flex: 1; }
.zine-count { min-width: 2.6rem; text-align: center; }
.zine-s { display: none; }
@media (max-width: 480px) { .zine-l { display: none; } .zine-s { display: inline; } .zine-bar { gap: .2rem; padding: .4rem .4rem 0; } .zine-gap { width: .2rem; } }
.zine-status { font-family: var(--sans); font-size: .85rem; color: #ddd; text-align: center; padding: .5rem 1rem 1rem; margin: 0; }
.zine-fallback { font-family: var(--sans); font-size: .9rem; text-align: center; padding: 1rem; margin: 0; color: #fff; }
.zine-fallback a { color: #fff; }
.zine-links { text-align: center; margin-top: 1rem; }
/* Phones: the pages stacked, one above the next; the browser's own scroll and pinch-zoom do the rest */
.zine-phone { padding: .5rem; }
.zine-pages img { display: block; width: 100%; height: auto; background: #fff; margin: 0 0 .5rem; }
.zine-phone-note { text-align: center; margin: .5rem 0 0; }

/* Phones, in an article: the cover tilted with a hard shadow, and a button */
.zine-phone-cover { padding: 2rem 1rem 1.5rem; overflow: visible; text-align: center; }
.zine-cover-wrap { display: inline-block; padding: .5rem 1.5rem 1.5rem; }
.zine-cover { display: inline-block; height: auto; transform: rotate(10deg); box-shadow: 12px 14px 0 rgba(0, 0, 0, .85); background: #fff; }
.zine-cover-cta { margin: 1.25rem 0 0; }
.zine-cover-cta .btn { background: #fff; color: var(--ink); border-color: #fff; }

/* Fullscreen: the real thing, and the overlay used where the API is missing */
.zine-viewer:fullscreen, .zine-viewer.zine-fs { position: fixed; inset: 0; z-index: 1000; width: auto; height: auto; padding: 1rem 0 .5rem; display: flex; flex-direction: column; }
.zine-viewer:fullscreen .zine-scroll, .zine-viewer.zine-fs .zine-scroll { flex: 1; max-height: none; min-height: 0; }
.zine-viewer:fullscreen .zine-stage, .zine-viewer.zine-fs .zine-stage { margin: 0; }
.zine-zoom { font: inherit; font-size: .72rem; height: 1.5rem; padding: 0 .2rem; border: 1px solid #fff; background: #fff; color: #111; border-radius: 2px; }
html.zine-fs-open { overflow: hidden; }

/* Notes */
.notes { max-width: var(--measure); margin: 2.5rem auto 0; padding-top: 1rem; border-top: 2px solid var(--rule); font-size: .92rem; line-height: 1.45; }
.notes h2 { font-family: var(--type); font-weight: 400; font-size: 1.1rem; letter-spacing: .08em; margin: 0 0 .5rem; }
.notes ol { list-style: none; padding-left: 2.2rem; margin: 0; }
.notes li { margin: 0 0 .5rem; position: relative; }
.notes li:target { background: #f6f3c8; }
.fn-num { position: absolute; left: -2.2rem; width: 1.9rem; text-align: right; text-decoration: none; font-variant-numeric: tabular-nums; }
.fn-num:hover { text-decoration: underline; }

/* Share */
.share { max-width: var(--measure); margin: 2.5rem auto 0; text-align: center; clear: both; }
.share-open { font-family: var(--type); letter-spacing: .08em; font-size: 1rem; padding: .6rem 1.2rem; background: var(--ink); color: #fff; border: 2px solid var(--ink); cursor: pointer; }
.share-open.share-outline { background: transparent; color: var(--ink); }
.blk-share .share { margin: 0 auto; }
.blk.al-left .share { text-align: left; } .blk.al-right .share { text-align: right; }
/* Subscribe form */
.subscribe { border: 2px solid var(--rule); padding: 1.25rem 1.5rem; margin: 1.5rem 0; font-family: var(--sans); }
.subscribe { font-size: var(--base-size, 18px); }
.sub-h { font-family: var(--sub-heading-font, var(--type)); font-size: var(--sub-heading-size, 1.6em); font-weight: var(--sub-heading-weight, 400); margin: 0 0 .5rem; line-height: 1.15; }
.sub-t { font-family: var(--sub-text-font, var(--serif)); font-size: var(--sub-text-size, 1em); font-weight: var(--sub-text-weight, 400); margin: 0 0 .75rem; }
.sub-f { display: block; margin: 0 0 .75rem; font-family: var(--sub-labels-font, var(--serif)); font-size: var(--sub-labels-size, 1em); font-weight: var(--sub-labels-weight, 400); }
.sub-f span { display: block; margin-bottom: .25rem; color: var(--ink); }
.sub-f textarea { width: 100%; font-family: var(--sub-inputs-font, var(--serif)); font-size: var(--sub-inputs-size, 1em); font-weight: var(--sub-inputs-weight, 400); padding: .55rem .7rem; border: 1px solid var(--ink); background: #fff; color: var(--ink); resize: vertical; }
.sub-f input { width: 100%; font-family: var(--sub-inputs-font, var(--serif)); font-size: var(--sub-inputs-size, 1em); font-weight: var(--sub-inputs-weight, 400); padding: .55rem .7rem; border: 1px solid var(--ink); background: #fff; color: var(--ink); }
.sub-hp { position: absolute; left: -9999px; }
.sub-btn { margin: 1rem 0 .25rem; }
.sub-btn .btn { cursor: pointer; font-family: var(--sub-button-font, var(--type)); font-size: var(--sub-button-size, 1em); font-weight: var(--sub-button-weight, 400); }
.sub-msg { margin: .5rem 0 0; font-size: .9rem; min-height: 1.2em; }
.sub-msg.ok { color: #ff0000; }
.sub-msg.err { color: #ff0000; }
.blk.inv .subscribe { border-color: #fff; }
.blk.inv .sub-f input { border-color: #fff; }

/* Spacer */
.blk-spacer { margin-top: 0; margin-bottom: 0; }
.spacer { width: 100%; }
/* Previous / next block */
.prevnext { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin: 1rem 0; font-family: var(--type); font-weight: 700; }
.pn-link { display: flex; flex-direction: column; gap: .25rem; max-width: 40%; text-decoration: none; padding: .9rem 1.25rem; background: var(--ink); color: #fff; font: inherit; font-weight: 700; border: 2px solid var(--ink); cursor: pointer; letter-spacing: .06em; }
.pn-link.pn-outline { background: transparent; color: var(--ink); }
.pn-prev { margin-right: auto; }
.pn-next { text-align: right; margin-left: auto; }
.pn-mid { flex: none; align-self: flex-start; }
.pn-mid .share { margin: 0; max-width: none; }
.pn-mid .pn-link, .pn-share { display: inline-flex; flex-direction: row; align-items: center; max-width: none; width: auto; white-space: nowrap; font-size: 1rem; line-height: 1; padding: .9rem 1.5rem; }
.pn-label { font-size: 1rem; letter-spacing: .06em; font-weight: 700; }
.pn-title { font-family: var(--serif); font-size: 1.05rem; line-height: 1.3; font-weight: 400; }
.pn-empty { visibility: hidden; }
.blk.inv .pn-link { background: #fff; color: var(--ink); }
/* Files page: sections, grid/list toggle, list rows */
.files-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.view-toggle { font-family: var(--type); font-size: .9rem; letter-spacing: .06em; display: flex; gap: .25rem; }
.view-toggle a { text-decoration: none; padding: .3rem .7rem; border: 1px solid var(--ink); }
.view-toggle a.on { background: var(--ink); color: #fff; }
.files-intro { margin: 0 0 1.5rem; }
.files-section { margin: 0 0 2rem; }
.files-heading { font-family: var(--type); font-weight: 700; font-size: 1.3rem; margin: 0 0 .75rem; padding-bottom: .3rem; border-bottom: 2px solid var(--ink); }
.file-list { list-style: none; margin: 0; padding: 0; }
.file-row { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: baseline; padding: .6rem 0; border-bottom: 1px solid var(--rule-soft); }
.file-title { font-family: var(--type); font-size: 1.1rem; text-decoration: none; }
.file-date { font-family: var(--sans); font-size: .85rem; color: var(--muted); white-space: nowrap; }
.file-open { font-family: var(--type); font-size: .85rem; letter-spacing: .06em; text-decoration: none; white-space: nowrap; }
@media (max-width: 600px) { .file-row { grid-template-columns: 1fr auto; } .file-open { grid-column: 1 / -1; } }

/* Issues grid with covers */
.issues-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem 2rem; }
.issue-cover { display: block; }
.issue-cover img { width: 100%; height: auto; border: 1px solid var(--ink); box-shadow: 8px 8px 0 var(--ink); background: #fff; }
.issue-cover:hover img { box-shadow: 10px 10px 0 var(--ink); }
.issue-cover-blank { display: flex; align-items: center; justify-content: center; aspect-ratio: 396 / 612; font-family: var(--type); text-align: center; padding: 1rem; color: var(--muted); border: 1px solid var(--rule-soft); }
.issue-card .card-title { font-size: 1.15rem; margin: .75rem 0 .25rem; }
.share-dlg { border: 2px solid var(--ink); padding: 1.25rem 1.5rem 1.5rem; max-width: 26rem; width: calc(100% - 2rem); font-family: var(--sans); }
.share-dlg::backdrop { background: rgba(0,0,0,.5); }
.share-dlg h3 { font-family: var(--type); font-weight: 400; margin: 0 0 1rem; }
.share-close-form { position: absolute; top: .4rem; right: .6rem; margin: 0; }
.share-close { border: 0; background: none; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.share-links { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.share-links a, .share-links button { display: block; padding: .6rem; border: 1px solid var(--ink); background: #fff; color: var(--ink); text-decoration: none; font: inherit; font-size: .95rem; cursor: pointer; text-align: center; }
.share-links a:hover, .share-links button:hover { background: var(--ink); color: #fff; }
.art-foot { max-width: var(--measure); margin: 2rem auto 0; text-align: center; font-family: var(--font-artfoot, var(--sans)); font-size: .85rem; color: var(--muted); }

/* Footer */
.site-foot { max-width: var(--wide); margin: 2rem auto 0; padding: 1rem 1rem 2.5rem; border-top: 1px solid var(--rule); text-align: center; }
.foot-url { font-family: var(--font-footer-url, var(--label)); font-weight: var(--weight-footer-url, 400); letter-spacing: .14em; font-size: var(--size-footer-url, .8rem); margin: 0 0 .5rem; }
.foot-text { font-family: var(--font-footer, var(--serif)); font-weight: var(--weight-footer, 400); font-size: var(--size-footer, .95rem); margin: 0 0 .5rem; }
.foot-small { font-family: var(--font-footer-small, var(--sans)); font-weight: var(--weight-footer-small, 400); font-size: var(--size-footer-small, .75rem); color: var(--muted); margin: 0; }

/* Dark article theme (optional per article) */
.theme-dark { background: var(--panel); color: #fff; padding-left: 1rem; padding-right: 1rem; }
.theme-dark .byline, .theme-dark .meta, .theme-dark .notes, .theme-dark .art-foot, .theme-dark .dek { color: #ddd; }
.theme-dark .panel-dark { background: #000; }
.theme-dark .rule, .theme-dark .notes, .theme-dark .pull { border-color: #fff; }

/* Print: an article prints like a booklet page */
@media print {
  .site-head .nav, .share, .skip, .art-foot, .preview-bar, .sticky { display: none !important; }
  body { font-size: 10.5pt; color: #000; }
  .site-head, .running, .article { max-width: none; padding: 0; }
  .body { columns: 2; column-gap: 1.6rem; }
  .body > .blk { max-width: none; break-inside: avoid; }
  .zine img { filter: none; }
  .site-foot { border-top: 1px solid #000; }
  a { text-decoration: none; }
}
:root{--type:john-doe, "Special Elite", "Courier New", Courier, monospace;--serif:broadsheet, "Times New Roman", Times, Georgia, serif;--label:john-doe, "Special Elite", "Courier New", monospace;--sans:helvetica-lt-pro, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--base-size:18px;--font-dek:var(--type);--font-byline:var(--label);--font-caption:var(--type);--font-footer-url:var(--type);--font-footer:var(--type);--font-footer-small:var(--type);--font-artfoot:var(--type);--size-footer-url:19px;--size-footer:12px;--size-footer-small:10px;--font-running:var(--label);--size-running:12px;--weight-footer-url:700;--weight-footer:400;--weight-footer-small:400;--weight-headline:700;--weight-dek:700}
