/* Ladaras v7 — NEWSPAPER (N2) layer. Loaded after styles.css; scoped to html.np.np2 (always on since v7: the N0/N1 switching was dropped).
   Concepts borrowed (not imitated): cream dateline bar, thick-thin rules, column rules, section-top rules, FIG. captions, pull-quote rules,
   byline + drop cap + 2 columns (posts), front page "LATEST" (hub), duotone/halftone images. No table of contents / INDEX block.
   No new fonts. Ink #030E0A / green #0D2A21 / cream #F1E6C8 unchanged. */
.np .np-strip { display: flex; }
html.np { --tk: 7px; --tt-h: 14px; }
html.np body { counter-reset: fig; }

/* thick-thin / thin-thick rule pairs (cream thick + steel hairline) */
.np .np-rule, .np .sec--01::before, .np .sec--02::before, .np .foot::before, .np .pull::before, .np .front__grid::before { content: ""; display: block; height: var(--tt-h); background:
  linear-gradient(var(--cream), var(--cream)) 0 0 / 100% var(--tk) no-repeat,
  linear-gradient(var(--rule-strong), var(--rule-strong)) 0 calc(var(--tk) + 3px) / 100% 1px no-repeat; }
.np .np-rule--bot { background:
  linear-gradient(var(--rule-strong), var(--rule-strong)) 0 0 / 100% 1px no-repeat,
  linear-gradient(var(--cream), var(--cream)) 0 calc(100% ) / 100% var(--tk) no-repeat; }
.np .sec--01::before, .np .sec--02::before, .np .foot::before { position: absolute; left: 0; right: 0; top: 0; }

/* ---------- dateline strip ---------- */
.np-strip { justify-content: space-between; align-items: baseline; gap: 16px; padding: 9px 0 8px; border-bottom: 1px solid var(--rule-strong); letter-spacing: .14em; white-space: nowrap; }
.np-strip .np-date { color: var(--cream); }
.np-strip__r { color: var(--cream-mid); }
.np2 .np-strip { background: var(--cream); color: var(--ink); border: 0; padding: 8px 14px 7px; }
.np2 .np-strip .np-date, .np2 .np-strip__r { color: var(--ink); font-weight: 700; }
.np2 .np-strip { flex-direction: row-reverse; } /* KR · SINCE on the left, date on the right */

/* ---------- FIG. captions ---------- */
.np .np-fig { display: block; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--rule); color: var(--cream-mid); }
.np .np-fig::before { counter-increment: fig; content: var(--np-fig, "FIG.") " " counter(fig) " · "; color: var(--cream); font-weight: 700; }
.np .np-fig--card { margin: 0; padding: 12px 4px 0; border: 0; }
.np .np-fig--card::before { content: var(--np-fig, "FIG.") " " counter(fig); }
.np .card__body { padding-top: 8px; }

/* ---------- HERO (static layout) = N2 masthead bar + the centred lockup (see styles.css); thick-thin rule closes the hero ---------- */
.np .np-top { padding-top: 22px; }
.np .hero { padding-bottom: 0; }
.np .hero::after { content: ""; display: block; margin-top: 64px; height: var(--tt-h); background:
  linear-gradient(var(--cream), var(--cream)) 0 0 / 100% var(--tk) no-repeat,
  linear-gradient(var(--rule-strong), var(--rule-strong)) 0 calc(var(--tk) + 3px) / 100% 1px no-repeat; }
.np .hero__grid > * { min-width: 0; }

/* HUD (N2): newspaper section-bar double rule */
.np2 .bar { border-bottom: 3px double var(--rule-strong); }
.np2 .bar__in { height: 53px; }

/* ---------- section tops + column rules ---------- */
.np .sec--01, .np .sec--02 { border-top: 0; }
.np .sec--01 { padding-top: 84px; }
.np .sec--02 { padding-top: 84px; }
.np .s1 .cards { position: relative; }
.np .s1 .cards::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--rule-strong); }
.np .s2__grid .pull { grid-column: 1 / span 5; }
.np .s2__art { grid-column: 6 / span 7; padding-left: 32px; border-left: 1px solid var(--rule-strong); }
.np .pull { padding-top: 0; }
.np .pull::before { margin-bottom: 22px; }
.np .pull__mark { color: rgba(241, 230, 200, .55); }
.np .pull__by { border-top: 0; padding-top: 0; }
.np .foot { position: relative; border-top: 0; padding-top: 34px; }
.np .foot nav a + a { border-left: 1px solid var(--rule-strong); padding-left: 28px; }
.np .foot nav { gap: 0 28px; }
.np .foot__in > p { font-weight: 700; }

/* N2 */
.np2 .sec--01, .np2 .sec--02 { padding-top: 96px; }
.np2 .rail { top: 56px; }
.np2 .s2__grid .pull { grid-column: 1 / span 6; padding-right: 32px; }
.np2 .s2__art { grid-column: 7 / span 6; }
.np2 .pull__q { font-size: clamp(28px, 3vw, 44px); line-height: 1.42; letter-spacing: -.01em; }
html.np2[lang=ko] .pull__q { line-height: 1.55; }
.np2 .pull__mark { font-size: 260px; height: 120px; color: rgba(241, 230, 200, .7); }
.np2 .s1 .cards::before { width: 3px; background: linear-gradient(var(--cream), var(--cream)) 0 0 / 100% 100% no-repeat; opacity: .85; }
.np2 .foot__in { gap: 0; }
.np2 .foot__in > * { padding-inline: 28px; }
.np2 .foot__in > :first-child { padding-left: 0; }
.np2 .foot__in > :last-child { padding-right: 0; }
.np2 .foot__in > * + * { border-left: 1px solid var(--rule-strong); }
.np2 .foot nav { flex: 1; justify-content: center; }

/* ---------- images: newsprint duotone + halftone (applies when real images exist; placeholders get a faint dot screen) ---------- */
.np .slot { isolation: isolate; background-image: radial-gradient(rgba(241, 230, 200, .10) 1px, transparent 1.5px), linear-gradient(180deg, rgba(120, 190, 160, .07), rgba(120, 190, 160, .015)); background-size: 6px 6px, auto; }
.np .slot.has-img { background: var(--ink); }
.np .slot.has-img > img { filter: grayscale(1) contrast(1.18) brightness(1.04); }
.np .slot.has-img::before { display: block; transform: none; inset: 0; z-index: 3; pointer-events: none; background: var(--cream); mix-blend-mode: multiply; }
.np .slot.has-img::after { display: block; transform: none; inset: 0; z-index: 4; pointer-events: none; mix-blend-mode: multiply; opacity: .5; background: radial-gradient(circle at 50% 50%, rgba(3, 14, 10, .85) 0.9px, transparent 1.6px) 0 0 / 4px 4px; }
.np2 .slot.has-img > img { filter: grayscale(1) contrast(1.35) brightness(1.02); }
.np2 .slot.has-img::after { opacity: .75; background-size: 5px 5px; background-image: radial-gradient(circle at 50% 50%, rgba(3, 14, 10, .95) 1.1px, transparent 1.9px); }

/* ---------- HUB ---------- */
.np .np-strip--hub { margin-bottom: 18px; }
.np #pane-overview { display: flex; flex-direction: column; }
.np #pane-overview > .sr-only { order: 0; }
.np #pane-overview > .front { order: 2; }
.np #pane-overview > .explore { order: 3; }
.np #pane-overview > .ov-project { order: 4; }
.np #pane-overview > .crumb + * { margin-top: 30px; }

.front { margin-top: 48px; }
.np #pane-overview > .front { margin-top: 0; }   /* v11: first thing under the dateline strip */
.front__grid { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr); align-items: stretch; position: relative; }
.front__grid::before { grid-column: 1 / -1; }
.front__lead { padding: 22px 36px 28px 0; display: block; min-width: 0; }
.front__more { padding: 22px 0 28px 30px; border-left: 1px solid var(--rule-strong); min-width: 0; }
.front__flag { display: inline-block; margin: 0 0 14px; padding: 5px 10px 4px calc(10px + .14em); background: var(--cream); color: var(--ink); font-weight: 700; letter-spacing: .16em; }
.front__more .front__flag { display: block; background: none; color: var(--cream-mid); padding: 0 0 8px; border-bottom: 1px solid var(--rule-strong); font-weight: 500; margin-bottom: 0; }
.front__leadlink { display: block; }
.front__kicker { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; color: var(--cream-mid); }
.front__cat { color: var(--cream); font-weight: 700; }
.front__cat::after { content: ""; }
.front__title { display: block; margin-top: 14px; font-family: var(--f-sans); font-weight: 700; font-size: clamp(36px, 4.3vw, 66px); line-height: 1.04; letter-spacing: -.045em; overflow-wrap: anywhere; }
html[lang=ko] .front__title { line-height: 1.2; letter-spacing: -.035em; }
.front__leadlink:hover .front__title, .front__item:hover .front__itemtitle { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.front__deck { display: block; margin-top: 16px; max-width: 34em; font-size: 19px; line-height: 1.7; color: var(--cream-hi); }
.front__by { display: block; margin-top: 18px; padding-top: 8px; border-top: 1px solid var(--rule); color: var(--cream-mid); max-width: 34em; }
.front__cover { display: block; margin-top: 22px; border: 1px solid var(--rule-strong); background: var(--cream); line-height: 0; }
.front__cover img { width: 100%; filter: grayscale(1) contrast(1.18); mix-blend-mode: multiply; }
.front__list { display: block; }
.front__item { display: grid; gap: 6px; padding: 15px 0 14px; border-bottom: 1px solid var(--rule); }
.front__itemtitle { font-family: var(--f-sans); font-weight: 600; font-size: 20px; line-height: 1.3; letter-spacing: -.02em; overflow-wrap: anywhere; }
.front__lead--empty .slot { aspect-ratio: 16 / 9; max-width: 640px; }
.front__lead--empty .slot .slot__emblem { height: 44%; }
.front__empty { margin-top: 18px; font-family: var(--f-head); font-weight: 300; font-size: clamp(28px, 3vw, 44px); line-height: 1.1; letter-spacing: -.05em; }
html[lang=ko] .front__empty { font-weight: 500; }
.front__lead--empty .front__deck { margin-top: 8px; color: var(--cream-mid); }
.front__ph { display: flex; align-items: baseline; gap: 14px; padding: 15px 0 14px; border-bottom: 1px solid var(--rule); }
.front__ph .front__cat { color: var(--cream-mid); font-weight: 500; }
.front__rule { flex: 1; align-self: center; height: 2px; margin-right: 14px; /* v11: breathing room at the right end (same 14px as the gap after the label) */ background: linear-gradient(90deg, var(--rule-strong) 0 2px, transparent 2px) 0 0 / 4px 2px repeat-x; background-repeat: space no-repeat; }  /* whole 2px dots only (space = no half dot at either end) */
.np2 .front__title { font-size: clamp(44px, 5.4vw, 84px); }
.np2 .front__more { background: linear-gradient(180deg, rgba(241, 230, 200, .04), transparent 60%); }

/* hub: category index as 3 ruled columns (no cards) */
.np .explore { margin-top: 20px; }
.np .explore .crumb { border-bottom: 0; margin-bottom: 0; padding-bottom: 8px; }
.np .explore__list { gap: 0; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); }
.np .explore__card { background: none; border: 0; border-left: 1px solid var(--rule-strong); padding: 16px 20px 14px; }
.np .explore__list > li:first-child .explore__card { border-left: 0; padding-left: 0; }
.np .explore__card:hover { background: var(--cream); }
.np .explore__list > li:first-child .explore__card:hover { padding-left: 10px; }
.np .ov-project { margin-top: 56px; }
.np2 .ov-project::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(rgba(3, 14, 10, .35) 1px, transparent 1.7px) 0 0 / 6px 6px; }
.np2 .ov-project { position: relative; }
.np2 .ov-project > * { position: relative; }

/* category list rows: dateline flag + thick-thin top */
.np .plist { border-top: 0; }
.np .plist::before { content: ""; display: block; height: var(--tt-h); background: linear-gradient(var(--cream), var(--cream)) 0 0 / 100% var(--tk) no-repeat, linear-gradient(var(--rule-strong), var(--rule-strong)) 0 calc(var(--tk) + 3px) / 100% 1px no-repeat; }
.np .plist__title { font-weight: 700; letter-spacing: -.03em; }

/* single post: byline bar, drop cap, columns */
.np .entry__by { margin-top: 18px; padding: 8px 0 7px; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); color: var(--cream-mid); max-width: 44em; letter-spacing: .14em; }
.np .entry__by::first-line { color: var(--cream); }
.np .entry__meta { padding-top: 0; }
.np .md:lang(en) > p:first-child::first-letter { float: left; font-family: "Libre Baskerville", Georgia, serif; font-weight: 700; font-size: 4.1em; line-height: .78; padding: .07em .1em 0 0; color: var(--cream); }
.np .md:lang(ko) > p:first-child { text-indent: 0; }
.np2 .entry > .md { max-width: none; }
@media (min-width: 1100px) {
  .np2 .entry > .md { column-count: 2; column-gap: 52px; column-rule: 1px solid var(--rule-strong); }
  .np2 .md > * { break-inside: avoid-column; }
  .np2 .md > p { break-inside: auto; orphans: 3; widows: 3; }
  .np2 .md h2, .np2 .md h3 { break-after: avoid; column-span: none; }
  .np2 .md blockquote { column-span: all; }
  .np2 .md:lang(en) p { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
}
.np2 .entry__title { max-width: 14em; font-size: clamp(40px, 5vw, 72px); }

/* ---------- mobile ---------- */
@media (max-width: 900px) {
  .np .np-strip { font-size: 11px; letter-spacing: .08em; }
  .np .np-top { padding-top: 16px; }
  .np .hero::after { margin-top: 44px; }
  .np .sec--01, .np .sec--02 { padding-top: 56px; }
  .np .s2__art { grid-column: auto; padding-left: 0; border-left: 0; margin-top: 40px; }
  .np .s2__grid .pull, .np2 .s2__grid .pull { padding-right: 0; }
  .np .foot nav a + a { padding-left: 18px; }
  .np .foot nav { gap: 6px 18px; }
  .np2 .foot__in > * { padding-inline: 0; border-left: 0 !important; }
  .np2 .pull__mark { font-size: 180px; height: 84px; }
  .np2 .s1 .cards::before { width: 2px; }
  .np .front__grid { display: block; }
  .np .front__lead { padding: 20px 0 22px; }
  .np .front__more { border-left: 0; padding: 0 0 16px; border-top: 1px solid var(--rule-strong); padding-top: 18px; }
  .np .explore__card { padding: 12px 12px 10px; }
  .np .explore__name { font-size: 22px; }
  .np .np-strip--hub { margin-bottom: 14px; }
}
@media (max-width: 520px) {
  .np2 .np-strip { flex-direction: row-reverse; font-size: 10px; letter-spacing: .04em; padding: 7px 10px 6px; }
  .np .explore__list { grid-template-columns: 1fr; }
  .np .explore__card, .np .explore__list > li:first-child .explore__card { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); }
}
.np2 .pull::before { margin-bottom: 44px; }
.np2 .pull__mark { margin-top: 0; }
.np .front__deck { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
