/* PRINT, old-print newspaper / NYT visual system */


:root{
  --paper:#ffffff;
  --ink:#0a0a0a;
  --ink-soft:#1a1a1a;
  --rule:#0a0a0a;
  --red:#b81c14;
  --grey:#6b6b6b;
  --grey-2:#bbbbbb;
  --grey-3:#e8e8e8;
  --max:100%;
  --gutter:32px;
  --read-col:680px;
  --serif-display:"Playfair Display","Old Standard TT", Georgia, serif;
  --serif-poster:"Playfair Display","Old Standard TT", Georgia, serif;
  --serif-old:"Old Standard TT", Georgia, serif;
  --serif-body:"Lora", "Source Serif Pro", Georgia, serif;
  --mono:"IBM Plex Mono", ui-monospace, monospace;
  --black-letter:"UnifrakturCook","Old English Text MT", serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif-body);
  font-size:19px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--ink);text-decoration:none}
a.read{border-bottom:1px solid var(--ink);padding-bottom:1px}
strong{font-weight:600}

.container{max-width:100%;margin:0 auto;padding:0 var(--gutter)}
.container.read{max-width:var(--read-col);padding:0 var(--gutter)}
.rule{border:0;border-top:1px solid var(--rule);margin:18px 0}
.rule.double{border:0;border-top:3px double var(--rule);margin:24px 0}
.rule.thick{border:0;border-top:6px solid var(--rule);margin:24px 0}
.rule.thin{border-top:1px solid var(--grey-2)}

/* ============= ONCE-PER-DAY LOADER SPLASH ============= */
.print-loader{
  position:fixed;inset:0;z-index:9999;
  background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.print-loader-mark{
  text-align:center;
  opacity:0;transform:translateY(28px);
  animation:loaderFadeUp 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards;
}
.print-loader-print{
  display:block;
  font-family:var(--serif-display);
  font-weight:900;
  font-size:clamp(96px, 18vw, 260px);
  letter-spacing:-.045em;
  line-height:.85;
  color:var(--ink);
}
.print-loader-country{
  display:block;
  font-family:var(--black-letter);
  font-size:clamp(24px, 3.4vw, 44px);
  margin-top:14px;
  color:var(--ink);
  letter-spacing:0;
}
@keyframes loaderFadeUp{
  from{opacity:0;transform:translateY(28px)}
  to{opacity:1;transform:translateY(0)}
}
/* Hidden after the splash plays, or for returning same-day visitors */
.print-loader.is-out{
  opacity:0;visibility:hidden;
  transition:opacity 0.7s ease-out, visibility 0s linear 0.7s;
}
.loader-seen .print-loader{display:none !important}
@media (prefers-reduced-motion: reduce){
  .print-loader-mark{animation:none;opacity:1;transform:none}
}

/* ============= NEWSPAPER MASTHEAD BAR ============= */
.top-bar{background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:8px 0}
.top-bar .container{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.top-bar a{color:var(--paper)}

.masthead{padding:18px 0 0;border-bottom:6px solid var(--ink)}
.masthead-rule-top{height:6px;background:var(--ink);margin-bottom:12px}
.masthead-meta{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:18px;font-family:var(--serif-old);font-style:italic;font-size:13px;padding:6px 0;border-bottom:1px solid var(--ink);margin-bottom:8px}
.masthead-meta .left{text-align:left}
.masthead-meta .right{text-align:right}
.masthead-meta .center{text-align:center;font-family:var(--mono);font-style:normal;letter-spacing:.22em;text-transform:uppercase;font-size:10px}

.wordmark{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:clamp(80px,16vw,220px);
  letter-spacing:-.04em;
  line-height:.85;
  text-align:center;
  margin:8px 0 4px;
  text-shadow:0 0 0 var(--ink);
}
.wordmark .country{
  display:block;
  font-family:var(--black-letter);
  font-style:normal;
  font-weight:700;
  font-size:.16em;
  letter-spacing:0;
  color:var(--ink);
  margin-top:8px;
}
.kicker{
  font-family:var(--serif-old);
  font-style:italic;
  font-size:14px;
  letter-spacing:.04em;
  text-align:center;
  color:var(--ink);
  padding:8px 0 14px;
  border-top:1px solid var(--ink);
  border-bottom:3px double var(--ink);
}

/* SECTION NAV */
nav.primary{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  display:flex;
  justify-content:center;
  gap:36px;
  padding:14px 0;
  border-bottom:1px solid var(--ink);
}
nav.primary a{color:var(--ink);position:relative}
nav.primary a.active{color:var(--red)}
nav.primary a.active::after{
  content:"";
  position:absolute;
  left:50%;transform:translateX(-50%);
  bottom:-15px;
  width:6px;height:6px;background:var(--red);
}

/* ============= GRID HELPERS ============= */
.grid{display:grid;gap:36px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:1.4fr 1fr}
.grid-feat{grid-template-columns:1.6fr 1fr 1fr}
.grid-half{grid-template-columns:1fr 1fr}
@media (max-width:880px){
  .grid-3.grid-2.grid-feat.grid-half{grid-template-columns:1fr}
}

/* SECTION TAG */
.section-tag{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--red);
  display:inline-block;
  padding-bottom:3px;
  border-bottom:1px solid var(--red);
  margin-bottom:12px;
}

/* HEADLINES */
h1.feat{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:clamp(40px,5.5vw,84px);
  line-height:.98;
  letter-spacing:-.02em;
  margin:0 0 18px;
}
h2.lede{
  font-family:var(--serif-display);
  font-weight:800;
  font-size:36px;
  line-height:1.05;
  letter-spacing:-.012em;
  margin:0 0 14px;
}
h3.card{
  font-family:var(--serif-display);
  font-weight:700;
  font-size:24px;
  line-height:1.15;
  letter-spacing:-.005em;
  margin:0 0 10px;
}
.dek{
  font-family:var(--serif-old);
  font-style:italic;
  font-size:21px;
  line-height:1.4;
  color:var(--ink);
  margin-bottom:18px;
}
.byline{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:18px;
}
.byline .by{color:var(--red)}

/* COVER FEATURE */
.cover-feat{padding:36px 0 36px;border-bottom:6px solid var(--ink)}
.cover-feat .cover-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:start}
@media (max-width:880px){.cover-feat .cover-grid{grid-template-columns:1fr}}

.col-rules{column-count:2;column-gap:32px;column-rule:1px solid var(--grey-2)}
.col-rules p{break-inside:avoid;margin-bottom:14px}
.col-rules p:first-child::first-letter.dropcap-first p:first-of-type::first-letter{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:5.4em;
  line-height:.85;
  float:left;
  margin:6px 8px 0 0;
  color:var(--ink);
}

/* TABLE OF CONTENTS */
.toc{padding:36px 0;border-bottom:6px solid var(--ink)}
.toc h4{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;margin-bottom:18px;color:var(--ink)}
.toc ol{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule)}
.toc ol li{padding:18px 24px 18px 0;border-bottom:1px solid var(--grey-2);display:flex;gap:14px;align-items:flex-start}
.toc ol li:not(:last-child){border-right:1px solid var(--grey-2)}
.toc ol li:nth-child(3n){border-right:0}
.toc .num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--red);margin-top:4px;min-width:40px}
.toc .item .tag{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);display:block;margin-bottom:6px}
.toc .item .ttl{font-family:var(--serif-display);font-weight:700;font-size:18px;line-height:1.2;display:block}
@media (max-width:880px){.toc ol{grid-template-columns:1fr}.toc ol li{border-right:0}}

/* SECTION INDEX */
.section-index{padding:48px 0;border-bottom:6px solid var(--ink)}
.section-index h2{font-family:var(--serif-display);font-weight:900;font-size:64px;letter-spacing:-.02em;margin-bottom:6px}
.section-index .meta{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:28px;display:block}

article.card{padding:24px 0;border-top:1px solid var(--rule)}
article.card:last-child{border-bottom:1px solid var(--rule)}
article.card .meta{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
article.card p.dek{font-size:18px;font-style:italic;color:var(--ink);margin-top:8px}

/* ============= ULTRA-MINIMAL COVER POSTER ============= */
.cover-poster{
  position:relative;
  width:100%;
  background:#0a0a0a;
  color:#fff;
  overflow:hidden;
  border-bottom:6px solid var(--ink);
}
.cover-poster .cp-frame{
  position:relative;
  width:100%;
  aspect-ratio:3/4;
  max-height:calc(100vh - 60px);
  min-height:600px;
  overflow:hidden;
}
@media (min-width:880px){
  .cover-poster .cp-frame{aspect-ratio:16/9}
}
.cover-poster .cp-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  filter:grayscale(100%) contrast(1.35) brightness(.92);
}
.cover-poster .cp-meta{
  position:absolute;top:0;left:0;right:0;
  padding:24px 32px;display:flex;justify-content:space-between;
  font-family:var(--mono);font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:#fff;mix-blend-mode:difference;z-index:3;
}
.cover-poster .cp-headline{
  position:absolute;left:48px;bottom:80px;right:48px;z-index:3;
  max-width:1100px;
}
.cover-poster .cp-headline h1{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:clamp(96px,18vw,260px);
  line-height:.85;
  letter-spacing:-.04em;
  color:var(--ink);
  margin:0 0 18px;
}
.cover-poster .cp-dek{
  font-family:var(--serif-old);font-style:italic;
  font-size:clamp(18px,1.6vw,26px);line-height:1.35;
  color:var(--ink);max-width:640px;margin-bottom:14px;
}
.cover-poster .cp-byline{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink);
}
.cover-poster .cp-byline .by{color:var(--red)}
.cover-poster .cp-credit{
  position:absolute;right:18px;bottom:8px;
  font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#888;z-index:3;
}
@media (max-width:760px){
  .cover-poster .cp-headline{left:24px;right:24px;bottom:48px}
  .cover-poster .cp-meta{padding:16px 24px;font-size:9px}
}

/* ============= FULL-BLEED HERO + 1970s NEWSPRINT PHOTO ============= */
.hero-bleed{
  position:relative;
  width:100%;
  background:#0a0a0a;
  color:#fff;
  overflow:hidden;
  border-bottom:6px solid var(--ink);
}
.hero-bleed .hero-frame{
  position:relative;
  width:100%;
  aspect-ratio:24/9;
  min-height:520px;
  max-height:92vh;
  overflow:hidden;
}
.hero-bleed .hero-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  filter:grayscale(100%) contrast(1.45) brightness(.78);
}
.hero-bleed .hero-svg{position:absolute;inset:0;width:100%;height:100%}
.hero-bleed .hero-cap{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:32px 48px;
  background:linear-gradient(0deg, rgba(0,0,0.85) 0%, rgba(0,0,0.55) 60%, rgba(0,0,0,0) 100%);
}
.hero-bleed .hero-cap .section-tag{color:#ff5a4f;border-color:#ff5a4f}
.hero-bleed .hero-cap h1{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:clamp(36px,5.4vw,84px);
  line-height:.98;
  letter-spacing:-.02em;
  color:#fff;
  margin:6px 0 12px;
  max-width:1080px;
}
.hero-bleed .hero-cap .dek{
  color:#e7e7e7;
  font-family:var(--serif-old);
  font-style:italic;
  font-size:clamp(18px,1.6vw,24px);
  max-width:780px;
  margin-bottom:14px;
}
.hero-bleed .hero-cap .byline{color:#bdbdbd}
.hero-cap-credit{
  position:absolute;
  right:18px;bottom:8px;
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#777;
  z-index:2;
}

/* HALFTONE OVERLAY, heavy 1970s wire-photo printing dots */
.halftone{
  position:absolute;inset:0;
  background-image:
    radial-gradient(rgba(0,0,0.85) 1.6px, transparent 1.9px),
    radial-gradient(rgba(255,255,255.18) 0.9px, transparent 1.2px);
  background-size:5px 5px, 3px 3px;
  background-position:0 0, 1.5px 1.5px;
  mix-blend-mode:multiply;
  opacity:.95;
  pointer-events:none;
}
.halftone-light{
  background-image:radial-gradient(rgba(0,0,0.30) 1.2px, transparent 1.5px);
  background-size:4px 4px;
  opacity:.85;
}
/* heavier coarse halftone for hero, mimics low-res wire photo */
.halftone-coarse{
  position:absolute;inset:0;
  background-image:
    radial-gradient(rgba(0,0,0.92) 2.2px, transparent 2.6px),
    radial-gradient(rgba(255,255,255.12) 1.2px, transparent 1.5px);
  background-size:7px 7px, 5px 5px;
  background-position:0 0, 2.5px 2.5px;
  mix-blend-mode:multiply;
  opacity:.95;
  pointer-events:none;
}
/* film grain, random noise texture using SVG */
.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;opacity:.5;
}
/* page edge ink-bleed shadow, like a press impression */
.press-edge{position:relative}
.press-edge::before.press-edge::after{
  content:"";position:absolute;left:0;right:0;height:18px;pointer-events:none;z-index:2;
}
.press-edge::before{top:0;background:linear-gradient(180deg, rgba(0,0,0.55), rgba(0,0,0,0))}
.press-edge::after{bottom:0;background:linear-gradient(0deg, rgba(0,0,0.55), rgba(0,0,0,0))}

/* SCROLL REVEAL, Apple-style smooth fade-in-and-up */
.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity 1s cubic-bezier(0.22,1,0.36,1),
             transform 1s cubic-bezier(0.22,1,0.36,1);
  will-change:opacity, transform;
}
.reveal.is-in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.08s}
.reveal-delay-2{transition-delay:.16s}
.reveal-delay-3{transition-delay:.24s}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* ============= ARTICLE BODY (NYT-style) ============= */
.article{padding:0 0 60px}
.article .article-head{padding:36px 0 28px;border-bottom:1px solid var(--ink)}
.article .article-head.dark{background:#000;color:#fff;border-bottom:6px solid #000}
.article .header{max-width:840px;margin:0 auto;text-align:center;padding:36px 0 12px}
.article .header .section-tag{margin-bottom:18px}
.article .header h1{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:clamp(40px,6vw,84px);
  line-height:1;
  letter-spacing:-.022em;
  margin-bottom:18px;
}
.article .header .dek{font-size:24px;max-width:720px;margin:0 auto 22px;font-family:var(--serif-old);font-style:italic}
.article .header .byline{margin:0}
.article .body{
  max-width:1340px;margin:0 auto;
  padding:0 var(--gutter);
  font-size:18px;line-height:1.55;
  column-count:3;column-gap:36px;column-rule:1px solid var(--grey-2);
}
.article .body > *{break-inside:avoid-column}
.article .body > p{margin-bottom:14px;text-align:justify;hyphens:auto;break-inside:auto}
.article .body > p:first-of-type::first-letter{
  font-family:var(--serif-display);
  font-weight:900;
  font-size:5.6em;
  line-height:.85;
  float:left;
  margin:8px 12px 0 0;
  color:var(--ink);
}
@media (max-width:1080px){
  .article .body{column-count:2;column-gap:32px;font-size:18px}
}
@media (max-width:760px){
  .article .body{column-count:1;font-size:19px;line-height:1.6}
}
/* one-column reading override for prose-only pieces */
.article .body.single-col{column-count:1;max-width:var(--read-col)}
.article .body h3{
  font-family:var(--serif-display);
  font-weight:800;
  font-size:26px;
  margin:24px 0 12px;
  letter-spacing:-.01em;
  text-align:center;
  column-span:all;
  padding:14px 0 4px;
  border-top:3px double var(--ink);
  border-bottom:1px solid var(--ink);
}
.article .body h3::before,
.article .body h3::after{
  content:"·";color:var(--red);margin:0 14px;
}
.article .body blockquote{
  font-family:var(--serif-display);
  font-weight:400;
  font-style:italic;
  font-size:28px;
  line-height:1.25;
  margin:32px 0;
  padding:24px 0;
  border-top:3px double var(--ink);
  border-bottom:3px double var(--ink);
  text-align:center;
  color:var(--ink);
  column-span:all;
}
.article .body blockquote::before{
  content:"";display:block;width:40px;height:1px;background:var(--red);margin:0 auto 14px;
}
.article .footer{
  max-width:1340px;margin:48px auto 0;padding:24px var(--gutter) 0;
  border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--grey);text-align:center;
}
.article .header{
  max-width:1100px;
}
/* the infograph spans full width in 3-col article context */
.infograph{max-width:1100px;margin:36px auto;padding:24px 0}

/* IN-ARTICLE FULL-BLEED IMAGE */
.full-bleed{
  width:100%;
  position:relative;
  margin-top:36px;margin-bottom:36px;
}
.full-bleed .frame{aspect-ratio:21/9;background:#0a0a0a;color:#fff;position:relative;overflow:hidden}
.full-bleed .frame .photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  filter:grayscale(100%) contrast(1.45) brightness(.82);
}
.full-bleed .caption{
  font-family:var(--serif-old);font-style:italic;font-size:15px;line-height:1.4;
  padding:14px var(--gutter);border-bottom:1px solid var(--ink);
  display:flex;justify-content:space-between;gap:24px;
}
.full-bleed .caption .credit{
  font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey);white-space:nowrap;
}

/* halftone photo wrapper used for inline cards / section thumbs */
.htphoto{position:relative;background:#0a0a0a;overflow:hidden}
.htphoto img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%) contrast(1.5) brightness(.8)}
.htphoto .halftone{opacity:.85}

/* ============= NYT-STYLE INFOGRAPHIC ============= */
.infograph{
  max-width:760px;margin:36px auto;padding:24px 0;
  border-top:3px double var(--ink);border-bottom:3px double var(--ink);
}
.infograph .ig-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--ink);padding-bottom:10px;margin-bottom:18px;gap:20px}
.infograph .ig-head .ttl{font-family:var(--serif-display);font-weight:800;font-size:22px;line-height:1.1}
.infograph .ig-head .source{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey);text-align:right}
.infograph .ig-bar{
  display:grid;grid-template-columns:repeat(60,1fr);
  height:48px;border:1px solid var(--ink);position:relative;background:#fff;
}
.infograph .ig-bar .seg{
  border-right:1px solid var(--ink);
  position:relative;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  background:#fff;
  transform-origin:left center;
}
.infograph .ig-bar .seg:last-child{border-right:0}
.infograph .ig-bar .seg.s-approach{background:#f0f0f0;grid-column:span 6}
.infograph .ig-bar .seg.s-question{background:#dadada;grid-column:span 9}
.infograph .ig-bar .seg.s-detain{background:#9b9b9b;color:#fff;grid-column:span 18}
.infograph .ig-bar .seg.s-threat{background:var(--red);color:#fff;grid-column:span 6}
.infograph .ig-bar .seg.s-arrest{background:#000;color:#fff;grid-column:span 12}
.infograph .ig-bar .seg.s-release{background:#fff;grid-column:span 9}
.infograph .ig-axis{display:grid;grid-template-columns:repeat(13,1fr);font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey);margin-top:6px}
.infograph .ig-axis span{text-align:left;padding-top:4px;border-top:1px solid var(--grey-2)}
.infograph .ig-key{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:18px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.infograph .ig-key span{display:inline-flex;align-items:center;gap:8px}
.infograph .ig-key span::before{content:"";width:14px;height:14px;border:1px solid var(--ink);background:var(--bg)}
.infograph .ig-key .k-approach::before{background:#f0f0f0}
.infograph .ig-key .k-question::before{background:#dadada}
.infograph .ig-key .k-detain::before{background:#9b9b9b}
.infograph .ig-key .k-threat::before{background:var(--red)}
.infograph .ig-key .k-arrest::before{background:#000}
.infograph .ig-key .k-release::before{background:#fff}

/* CALLOUT */
.callout{background:var(--ink);color:var(--paper);padding:48px 32px;text-align:center}
.callout h3{font-family:var(--serif-display);font-weight:900;font-size:clamp(32px,4vw,48px);line-height:1.05;margin-bottom:14px;letter-spacing:-.01em}
.callout p{font-family:var(--serif-old);font-style:italic;font-size:20px;max-width:600px;margin:0 auto 22px;color:#dcd6c8}
.callout .pill{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;background:var(--paper);color:var(--ink);padding:14px 28px;border:0}
.callout .pill.outline{background:transparent;color:var(--paper);border:1px solid var(--paper);margin-left:10px}

/* SUBSCRIBE */
.subscribe{padding:60px 0}
.subscribe .grid-2{align-items:start}
.subscribe form{display:flex;flex-direction:column;gap:14px;font-family:var(--mono);font-size:12px;letter-spacing:.06em}
.subscribe label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.subscribe input.subscribe select{font-family:var(--mono);font-size:14px;padding:14px 16px;border:1px solid var(--rule);background:transparent;color:var(--ink);width:100%}
.subscribe button{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:16px 24px;border:0;cursor:pointer;width:100%}
.tier{padding:24px;border:1px solid var(--rule);margin-bottom:14px}
.tier h4{font-family:var(--serif-display);font-weight:700;font-size:24px;margin-bottom:6px}
.tier .price{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--red);margin-bottom:14px}

/* FOOTER */
footer.site{margin-top:0;padding:40px 0 60px;border-top:6px solid var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
footer.site .grid-3{gap:32px}
footer.site h5{color:var(--red);margin-bottom:12px;font-size:11px}
footer.site ul{list-style:none;display:flex;flex-direction:column;gap:8px}
footer.site .colophon{margin-top:32px;padding-top:24px;border-top:1px solid var(--ink);text-align:center;color:var(--grey)}

/* ANIMATION KEYFRAMES */
@keyframes pulseRed{
  0%,100%{opacity:.35}
  50%{opacity:1}
}
@keyframes pulseBlue{
  0%,100%{opacity:1}
  50%{opacity:.35}
}
@keyframes flickerArc{
  0%,90%,100%{opacity:0;transform:scale(.85)}
  91%,93%{opacity:1;transform:scale(1)}
  92%{opacity:.4;transform:scale(1.05)}
}
@keyframes drift{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(8px)}
}
@keyframes typewriterCaret{
  0%,49%{opacity:1}
  50%,100%{opacity:0}
}
@keyframes laptopGlow{
  0%,100%{filter:brightness(1)}
  50%{filter:brightness(1.18)}
}
@keyframes ticker{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.anim-pulse-red{animation:pulseRed 1.4s ease-in-out infinite}
.anim-pulse-blue{animation:pulseBlue 1.4s ease-in-out infinite}
.anim-flicker{animation:flickerArc 5s ease infinite}
.anim-drift{animation:drift 6s ease-in-out infinite}
.anim-glow{animation:laptopGlow 3.4s ease-in-out infinite}

/* TICKER (newspaper-style strip) */
.ticker{
  background:var(--ink);color:var(--paper);overflow:hidden;
  border-bottom:1px solid var(--ink);
}
.ticker .tape{
  display:flex;gap:42px;padding:8px 0;white-space:nowrap;
  animation:ticker 60s linear infinite;
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
}
.ticker .tape span::before{content:"※";color:var(--red);margin-right:14px}

/* ============= HERO SPLIT (image left / text right) + FULL-WIDTH FLOW BELOW ============= */
.cn-hero-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  align-items:start;
  background:var(--paper);
}
.cn-hero-split .image-half{
  position:sticky;top:0;
  height:100vh;width:100%;overflow:hidden;
  background:#0a0a0a;
}
.cn-hero-split .image-half img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(100%) contrast(1.4) brightness(.85);
}
.cn-hero-split .image-half.color img,
.cn-hero-split .image-half.illustration img{filter:none}
.cn-hero-split .image-half .halftone{position:absolute;inset:0;pointer-events:none}
.cn-hero-split .image-half.color .halftone,
.cn-hero-split .image-half.illustration .halftone{display:none}
.cn-hero-split .image-half .cn-caption{
  position:absolute;left:24px;right:24px;bottom:18px;z-index:2;
  font-family:var(--serif-old);font-style:italic;font-size:14px;line-height:1.4;
  color:#fff;display:flex;justify-content:space-between;gap:24px;
  text-shadow:0 0 14px rgba(0,0,0.7);
}
.cn-hero-split .image-half .cn-caption .credit{
  font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.22em;
  text-transform:uppercase;color:#dcdcdc;white-space:nowrap;
}
.cn-hero-split .text-half{
  min-height:100vh;
  padding:60px 60px 80px;
  display:flex;flex-direction:column;justify-content:center;
}
.cn-hero-split .text-half .section-line{
  font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--red);padding-bottom:8px;border-bottom:1px solid var(--ink);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.cn-hero-split .text-half .section-line .right{color:var(--ink)}
/* NYT broadsheet headline: italic ALL CAPS Playfair, very tight line-height,
   each line breaks roughly mid-sentence at semicolons. */
.cn-hero-split .text-half .cn-headline{
  font-family:var(--serif-display);font-weight:900;font-style:italic;
  font-size:clamp(36px,5vw,72px);line-height:.95;letter-spacing:-.018em;
  text-transform:uppercase;
  margin:18px 0;
}
/* Italic deck, looks like a 19th-century broadsheet sub-deck, with thin top + bottom hairlines */
.cn-hero-split .text-half .cn-deck{
  font-family:var(--serif-old);font-style:italic;font-weight:700;
  font-size:clamp(17px,1.3vw,21px);line-height:1.45;color:var(--ink);
  padding:14px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
  margin-bottom:14px;
}
/* Stacked italic byline, NYT format: "By NAME / Special to PRINT" */
.cn-hero-split .text-half .cn-byline-line{
  margin:18px 0 0;text-align:center;line-height:1.4;
  font-family:var(--serif-old);font-size:14px;color:var(--ink);
}
.cn-hero-split .text-half .cn-byline-line .by{font-style:italic;color:var(--ink);font-weight:400}
.cn-hero-split .text-half .cn-byline-line .name{
  font-family:var(--serif-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;font-size:14px;
  display:inline;
}
.cn-hero-split .text-half .cn-byline-line .dash{display:none}
.cn-hero-split .text-half .cn-byline-line .dateline{
  display:block;font-style:italic;font-size:12px;color:var(--grey);margin-top:4px;
}
@media (max-width:880px){
  .cn-hero-split{grid-template-columns:1fr}
  .cn-hero-split .image-half{position:relative;height:60vh;min-height:420px}
  .cn-hero-split .text-half{padding:48px 24px;min-height:auto;justify-content:flex-start}
}

/* Full-width flowing article body, sits below .cn-hero-split.
   White paper, black ink. Traditional broadsheet formatting. */
.cn-flow{
  width:100%;
  padding:60px 0 50px;
  background:var(--paper);
  border-top:1px solid var(--ink);
  color:var(--ink);
}
/* Traditional newspaper body, 3-4 columns, dense broadsheet formatting,
   tighter than modern web prose. NYT broadsheet feel. */
.cn-flow .cn-body{
  max-width:1340px;margin:0 auto;padding:0 32px;
  font-family:var(--serif-body);font-size:15.5px;line-height:1.45;font-weight:400;
  text-align:justify;hyphens:auto;color:var(--ink);
  column-count:3;column-gap:32px;column-rule:1px solid var(--ink);
}
.cn-flow .cn-body > *{break-inside:auto}
.cn-flow .cn-body p{margin-bottom:14px;orphans:3;widows:3}

/* XL drop cap on the lead paragraph, first letter of the article body.
   Sized with care: too tall + too tight a line-height pushes the cap into the
   bold ALL-CAPS dateline that follows it. 5.4em with line-height .85 leaves
   the lead-in room to read on the first line. */
.cn-flow .cn-body p:first-of-type::first-letter{
  font-family:var(--serif-display);font-weight:900;
  font-size:5.4em;line-height:.85;
  float:left;margin:0 16px 0 0;color:var(--ink);
  padding:0;
}

/* Standard drop cap on every section after a subhead, smaller than the lead cap */
.cn-flow .cn-body .cn-subhead + p::first-letter{
  font-family:var(--serif-display);font-weight:900;
  font-size:4.2em;line-height:.85;
  float:left;margin:0 12px 0 0;color:var(--ink);
  padding:0;
}

/* ALL-CAPS dateline prefix on the lead, wrap city in <span class="lead-dateline">…</span>
   Followed by an em-dash served by the CSS rule. */
.cn-flow .cn-body .lead-dateline{
  font-family:var(--serif-body);font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;
  font-size:0.95em;
}
.cn-flow .cn-body .lead-dateline::after{content:", "}

/* Bold lead-in: first <strong> after the drop cap renders in small bold caps, 
   wrap the first 3-5 words in <strong class="lead-in">…</strong> */
.cn-flow .cn-body .lead-in{
  font-family:var(--serif-body);font-weight:700;
  text-transform:uppercase;letter-spacing:.02em;font-size:0.95em;
}

/* Subheads, inline within their column, no horizontal rule (which looks like
   a stray line when the subhead lands at the top of a column). Small bold caps
   centered, with a short centered hairline underneath as an ornament that
   reads intentionally whether the subhead is mid-column or at the top.
   Padding (not margin) for top spacing so it always applies, even at column top. */
.cn-flow .cn-body .cn-subhead{
  font-family:var(--serif-display);font-weight:900;
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  margin:0 0 12px;padding:26px 0 0;border:0;
  text-align:center;color:var(--ink);
  break-after:avoid-column;
  break-inside:avoid;
}
.cn-flow .cn-body .cn-subhead::after{
  content:"";display:block;width:36px;height:1px;background:var(--ink);
  margin:8px auto 0;
}

/* Italic pull quote with smart quote marks, spans columns */
.cn-flow .cn-body .cn-pullquote{
  font-family:var(--serif-display);font-weight:700;font-style:italic;
  font-size:26px;line-height:1.25;text-align:center;
  margin:28px 0;padding:22px 0;
  border-top:3px double var(--ink);border-bottom:3px double var(--ink);
  column-span:all;letter-spacing:-.005em;color:var(--ink);
}
.cn-flow .cn-body .cn-pullquote::before{content:"\201C ";color:var(--red)}
.cn-flow .cn-body .cn-pullquote::after{content:" \201D";color:var(--red)}

/* End mark, old "─ 30 ─" newspaper convention, served as ■ here */
.cn-flow .cn-body .end-mark{
  text-align:center;font-size:14px;margin:24px 0 0;column-span:all;color:var(--ink);
}
.cn-flow .cn-body .end-mark::before{content:"■"}

.cn-flow .cn-body em{font-style:italic}

@media (max-width:1080px){
  .cn-flow .cn-body{column-count:2;column-gap:32px}
}
@media (max-width:760px){
  .cn-flow .cn-body{column-count:1;font-size:18px;line-height:1.6;text-align:left;hyphens:none}
}

.cn-flow .cn-footer{
  max-width:1340px;margin:32px auto 0;padding:16px 32px 0;
  border-top:1px solid var(--ink);
  font-family:var(--serif-old);font-style:italic;font-size:13px;line-height:1.5;
  color:var(--ink);text-align:center;
}

/* ============= SPLIT-LAYOUT ARTICLE (image left / text right, full-bleed) ============= */
.cn-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:100%;
  align-items:start;
  background:var(--paper);
  border-bottom:6px solid var(--ink);
}
.cn-split .cn-split-photo{
  position:sticky;top:0;
  height:100vh;width:100%;overflow:hidden;
  background:#0a0a0a;
}
.cn-split .cn-split-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(100%) contrast(1.4) brightness(.85);
}
/* Colour-photo / illustration variant, keep colour, drop halftone */
.cn-split .cn-split-photo.color img,
.cn-split .cn-split-photo.illustration img{
  filter:none;
}
.cn-split .cn-split-photo.color .halftone,
.cn-split .cn-split-photo.illustration .halftone{display:none}
.cn-split .cn-split-photo .halftone{position:absolute;inset:0;pointer-events:none}
.cn-split .cn-split-photo .cn-caption{
  position:absolute;left:24px;right:24px;bottom:18px;z-index:2;
  font-family:var(--serif-old);font-style:italic;font-size:14px;line-height:1.4;
  color:#e7e7e7;display:flex;justify-content:space-between;gap:24px;
  text-shadow:0 0 12px rgba(0,0,0.6);
}
.cn-split .cn-split-photo .cn-caption .credit{
  font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.22em;
  text-transform:uppercase;color:#bdbdbd;white-space:nowrap;
}
.cn-split .cn-split-text{
  padding:80px 60px 80px 60px;
  max-width:760px;
}
.cn-split .cn-split-text .section-line{
  font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--red);padding-bottom:8px;border-bottom:1px solid var(--ink);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.cn-split .cn-split-text .section-line .right{color:var(--ink)}
.cn-split .cn-split-text .cn-headline{
  font-family:var(--serif-display);font-weight:900;
  font-size:clamp(34px,4.4vw,64px);line-height:1.0;letter-spacing:-.02em;
  margin:18px 0;
}
.cn-split .cn-split-text .cn-deck{
  font-family:var(--serif-old);font-style:italic;font-weight:700;
  font-size:clamp(19px,1.6vw,24px);line-height:1.4;color:var(--ink);
  padding:16px 0;border-top:2px solid var(--ink);border-bottom:3px double var(--ink);
  margin-bottom:14px;
}
.cn-split .cn-split-text .cn-byline-line{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  margin:14px 0 0;
}
.cn-split .cn-split-text .cn-byline-line .by{color:var(--grey)}
.cn-split .cn-split-text .cn-byline-line .name{color:var(--ink);font-weight:500}
.cn-split .cn-split-text .cn-byline-line .dash{color:var(--red);margin:0 8px}
.cn-split .cn-split-text .cn-body{
  margin:36px 0 0;font-family:var(--serif-body);font-size:19px;line-height:1.7;font-weight:400;
  text-align:left;hyphens:auto;
}
.cn-split .cn-split-text .cn-body p{margin-bottom:18px}
.cn-split .cn-split-text .cn-body p:first-of-type::first-letter{
  font-family:var(--serif-display);font-weight:900;font-size:5em;line-height:.85;
  float:left;margin:8px 12px 0 0;color:var(--ink);
}
.cn-split .cn-split-text .cn-body .cn-subhead{
  font-family:var(--serif-display);font-weight:900;
  font-size:15px;letter-spacing:.08em;text-transform:uppercase;
  margin:32px 0 12px;border-bottom:2px solid var(--ink);padding-bottom:6px;
}
.cn-split .cn-split-text .cn-body .cn-pullquote{
  font-family:var(--serif-display);font-weight:700;font-style:italic;font-size:26px;line-height:1.25;
  text-align:center;margin:32px -20px;padding:24px 0;
  border-top:3px double var(--ink);border-bottom:3px double var(--ink);
  letter-spacing:-.005em;
}
.cn-split .cn-split-text .cn-body .end-mark{text-align:center;font-size:14px;margin:32px 0 0}
.cn-split .cn-split-text .cn-body .end-mark::before{content:"■"}
.cn-split .cn-split-text .cn-footer{
  margin-top:36px;padding-top:18px;border-top:1px solid var(--ink);
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--grey);
}
@media (max-width:880px){
  .cn-split{grid-template-columns:1fr}
  .cn-split .cn-split-photo{position:relative;height:60vh;min-height:420px}
  .cn-split .cn-split-text{padding:48px 24px}
}

/* ============= CLASSIC NEWSPAPER ARTICLE ============= */
.cn-article{padding:36px 0 60px}

.cn-article .cn-photo{max-width:1100px;margin:0 auto;padding:0 var(--gutter)}
.cn-article .cn-photo .cn-frame{
  position:relative;border:1px solid var(--ink);background:#0a0a0a;overflow:hidden;
  aspect-ratio:16/9;
}
.cn-article .cn-photo .cn-frame img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(100%) contrast(1.45) brightness(.82);
}
/* Illustration variant, keep colour, taller frame, contained not cropped */
.cn-article .cn-photo.illustration{max-width:760px}
.cn-article .cn-photo.illustration .cn-frame{
  aspect-ratio:auto;height:auto;background:#0a1224;
  display:flex;align-items:center;justify-content:center;
}
.cn-article .cn-photo.illustration .cn-frame img{
  position:static;inset:auto;width:100%;height:auto;display:block;
  filter:contrast(1.06) saturate(1.05);
  object-fit:contain;
}
.cn-article .cn-photo.illustration .halftone{opacity:.18}
@media (max-width:760px){.cn-article .cn-photo.illustration{max-width:100%}}
.cn-article .cn-photo .cn-caption{
  font-family:var(--serif-old);font-style:italic;font-size:14px;line-height:1.4;
  border-bottom:1px solid var(--ink);padding:10px 0;
  display:flex;justify-content:space-between;gap:24px;
}
.cn-article .cn-photo .cn-caption .credit{
  font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--grey);white-space:nowrap;
}

.cn-article .cn-headblock{max-width:1100px;margin:32px auto 0;padding:0 var(--gutter)}
.cn-article .cn-headblock .section-line{
  font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--red);padding-bottom:8px;border-bottom:1px solid var(--ink);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.cn-article .cn-headblock .section-line .right{color:var(--ink)}
.cn-article .cn-headline{
  font-family:var(--serif-display);font-weight:900;
  font-size:clamp(34px,4.6vw,72px);line-height:1.0;letter-spacing:-.018em;
  margin:18px 0;max-width:1000px;
}
.cn-article .cn-deck{
  font-family:var(--serif-old);font-style:italic;font-weight:700;
  font-size:clamp(20px,1.8vw,26px);line-height:1.32;color:var(--ink);
  padding:16px 0;border-top:2px solid var(--ink);border-bottom:3px double var(--ink);
  max-width:900px;margin-bottom:14px;
}
.cn-article .cn-byline-line{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  margin:14px 0 0;
}
.cn-article .cn-byline-line .by{color:var(--grey)}
.cn-article .cn-byline-line .name{color:var(--ink);font-weight:500}
.cn-article .cn-byline-line .dash{color:var(--red);margin:0 8px}
.cn-article .cn-byline-line .dateline{color:var(--ink)}

.cn-article .cn-body{
  max-width:1340px;margin:36px auto 0;padding:0 var(--gutter);
  font-family:var(--serif-body);font-size:19px;line-height:1.55;font-weight:500;
  column-count:3;column-gap:36px;column-rule:1px solid var(--ink);
  text-align:justify;hyphens:auto;
}
.cn-article .cn-body p{margin-bottom:12px;break-inside:auto}
.cn-article .cn-body .lead-dateline{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  font-weight:500;color:var(--ink);
}
.cn-article .cn-body .lead-dateline::after{content:", ";color:var(--red)}
.cn-article .cn-body p:first-of-type::first-letter{
  font-family:var(--serif-display);font-weight:900;font-size:5.4em;line-height:.85;
  float:left;margin:6px 10px 0 0;color:var(--ink);
}
.cn-article .cn-body .cn-subhead{
  font-family:var(--serif-display);font-weight:900;
  font-size:15px;letter-spacing:.08em;text-transform:uppercase;
  margin:22px 0 10px;border-bottom:2px solid var(--ink);padding-bottom:6px;
  break-after:avoid;
}
.cn-article .cn-body .cn-pullquote{
  font-family:var(--serif-display);font-weight:700;font-style:italic;font-size:28px;line-height:1.22;
  text-align:center;margin:28px 0;padding:24px 0;
  border-top:3px double var(--ink);border-bottom:3px double var(--ink);
  column-span:all;letter-spacing:-.005em;
}
.cn-article .cn-body .end-mark{
  text-align:center;font-size:14px;color:var(--ink);margin:24px 0 0;
}
.cn-article .cn-body .end-mark::before{content:"■"}
.cn-article .cn-footer{
  max-width:1100px;margin:36px auto 0;padding:18px var(--gutter) 0;
  border-top:1px solid var(--ink);
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--grey);text-align:center;
}
@media (max-width:1080px){.cn-article .cn-body{column-count:2}}
@media (max-width:760px){.cn-article .cn-body{column-count:1;font-size:18px;text-align:left;hyphens:none}}

/* PRINT MEDIA */
@media print{
  body{background:#fff;color:#000;font-size:11pt}
  nav.primary.callout.subscribe,footer.site.top-bar.ticker{display:none}
  .article .body{max-width:none}
  a{color:#000}
  .hero-bleed{break-after:page;page-break-after:always}
  .full-bleed{break-inside:avoid}
}

/* =====================================================
   FOOTER, printmag.org standalone
   ===================================================== */
.site-footer {
  background: var(--ink);
  color: var(--paper);
  padding: 64px 0 40px;
  margin-top: 80px;
}
.site-footer a { color: var(--paper); border-bottom: 1px solid rgba(255,255,255.3); }
.site-footer a:hover { border-bottom-color: var(--paper); }
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 48px;
  margin-bottom: 48px;
}
@media (max-width: 860px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 540px) {
  .footer-grid { grid-template-columns: 1fr; }
}
.footer-wordmark {
  font-family: var(--serif-old);
  font-size: 2em;
  font-weight: 900;
  letter-spacing: -.02em;
  margin-bottom: 12px;
}
.footer-wordmark .country {
  font-size: .55em;
  font-weight: 400;
  opacity: .6;
  margin-left: 4px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.footer-mission {
  font-size: .9em;
  line-height: 1.65;
  opacity: .75;
  margin-bottom: 12px;
}
.footer-issn {
  font-family: var(--mono);
  font-size: .72em;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .45;
}
.footer-col h4 {
  font-family: var(--mono);
  font-size: .7em;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .5;
  margin-bottom: 16px;
}
.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-col ul li {
  padding: 5px 0;
  font-family: var(--serif-old);
  font-size: .95em;
  border-bottom: 1px solid rgba(255,255,255.08);
}
.footer-col p {
  font-size: .9em;
  line-height: 1.6;
  opacity: .8;
  margin-bottom: 8px;
}
.footer-base {
  border-top: 1px solid rgba(255,255,255.15);
  padding-top: 24px;
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: .68em;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .4;
}

/* =====================================================
   SUBMISSIONS FORM, printmag.org
   ===================================================== */
.submit-wrap { max-width: 760px; margin: 0 auto; padding: 0 0 60px; }
.submit-head { border-bottom: 6px solid var(--ink); padding-bottom: 36px; margin-bottom: 8px; }
.submit-head .cn-kicker { font-family: var(--mono); font-size: .72em; letter-spacing: .22em; text-transform: uppercase; color: var(--red); margin-bottom: 14px; }
.submit-head h1 { font-family: var(--serif-display); font-size: clamp(2.2rem, 6vw, 4rem); line-height: 1.02; font-weight: 900; letter-spacing: -.02em; margin: 0 0 18px; }
.submit-head .dek { font-family: var(--serif-old); font-size: 1.25rem; line-height: 1.5; color: var(--ink-soft); max-width: 600px; }

.submit-intro { font-family: var(--serif-body); font-size: 1.05rem; line-height: 1.7; color: var(--ink-soft); margin: 36px 0; }
.submit-intro p { margin: 0 0 1em; }

.desk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0 8px; }
@media (max-width: 620px) { .desk-grid { grid-template-columns: 1fr 1fr; } }
.desk-opt { position: relative; }
.desk-opt input { position: absolute; opacity: 0; pointer-events: none; }
.desk-opt label {
  display: block; cursor: pointer; text-align: center;
  border: 1px solid var(--grey-2); padding: 16px 8px;
  font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--grey); background: var(--paper); transition: none; user-select: none;
}
.desk-opt label .desk-name { display: block; font-family: var(--serif-old); font-size: 1.05rem; letter-spacing: 0; text-transform: none; color: var(--ink); margin-bottom: 3px; }
.desk-opt input:checked + label { border-color: var(--ink); background: var(--ink); color: var(--grey-3); border-width: 1px; box-shadow: inset 0 0 0 1px var(--ink); }
.desk-opt input:checked + label .desk-name { color: var(--paper); }
.desk-opt input:focus-visible + label { outline: 2px solid var(--red); outline-offset: 2px; }

.field { margin: 22px 0; }
.field label.flabel { display: block; font-family: var(--mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); margin-bottom: 8px; }
.field label .req { color: var(--red); }
.field .hint { font-family: var(--serif-old); font-size: .9rem; color: var(--grey); margin-top: 5px; font-style: italic; }
.field input[type=text], .field input[type=email], .field textarea, .field select {
  width: 100%; box-sizing: border-box;
  font-family: var(--serif-body); font-size: 1.05rem; color: var(--ink);
  background: var(--paper); border: 1px solid var(--grey-2); border-radius: 0;
  padding: 13px 14px; -webkit-appearance: none; appearance: none;
}
.field textarea { min-height: 170px; resize: vertical; line-height: 1.6; }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }

.consent-row { display: flex; gap: 12px; align-items: flex-start; margin: 26px 0; font-family: var(--serif-body); font-size: .95rem; line-height: 1.55; color: var(--ink-soft); }
.consent-row input { margin-top: 4px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ink); }

.submit-actions { margin-top: 30px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.btn-submit {
  font-family: var(--mono); font-size: .8rem; letter-spacing: .18em; text-transform: uppercase;
  background: var(--ink); color: var(--paper); border: 1px solid var(--ink);
  padding: 16px 38px; cursor: pointer; border-radius: 0;
}
.btn-submit:disabled { opacity: .5; cursor: default; }
.submit-note { font-family: var(--serif-old); font-size: .9rem; color: var(--grey); }

.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.form-msg { font-family: var(--serif-body); font-size: 1rem; padding: 16px 18px; margin: 22px 0 0; border: 1px solid var(--grey-2); display: none; }
.form-msg.show { display: block; }
.form-msg.ok { border-color: var(--ink); border-left: 4px solid var(--ink); background: #fafafa; }
.form-msg.err { border-color: var(--red); border-left: 4px solid var(--red); background: #fcf4f3; color: #7a1009; }

.submit-aside { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--grey-3); font-family: var(--serif-body); font-size: .96rem; line-height: 1.7; color: var(--ink-soft); }
.submit-aside h3 { font-family: var(--mono); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink); margin: 0 0 12px; }
.submit-aside a { color: var(--ink); border-bottom: 1px solid var(--ink); }

/* Article hero images: no halftone dot screen, show the photograph cleanly */
.cn-frame .halftone { display: none !important; }

/* Byline author links to author pages */
.cn-byline-line .name a, .cn-byline .cn-author a { color: inherit; border-bottom: 1px solid currentColor; }
.cn-byline-line .name a:hover, .cn-byline .cn-author a:hover { color: var(--red); }

/* GLOBAL halftone off, no dot screen on any image anywhere */
.halftone, .halftone-coarse, .halftone-fine { display: none !important; }

/* Article body must always be readable, never hidden behind a JS reveal */
.cn-body, .cn-body.reveal { opacity: 1 !important; transform: none !important; }

/* Related articles, internal-link block at article foot */
.cn-related { max-width: 760px; margin: 56px auto 0; padding-top: 32px; border-top: 1px solid var(--grey-3); }
.cn-related h3 { font-family: var(--mono); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--red); margin: 0 0 18px; }
.cn-related-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
@media (max-width: 640px) { .cn-related-grid { grid-template-columns: 1fr; gap: 16px; } }
.cn-related-item { }
.cn-related-item .rk { font-family: var(--mono); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--grey); display: block; margin-bottom: 6px; }
.cn-related-item a { font-family: var(--serif-old); font-size: 1.08rem; line-height: 1.3; color: var(--ink); border-bottom: 1px solid var(--grey-2); }
.cn-related-item a:hover { border-bottom-color: var(--ink); }
