/* 전장: compact specialist newspaper, Korean masthead and red section rules. */
:root { --paper:oklch(.992 .004 80); --surface:oklch(.998 .002 80); --band:oklch(.958 .006 80); --rule:oklch(.85 .006 80); --rule-soft:oklch(.92 .006 80); --accent:oklch(.48 .17 25); --wrap:1160px; }
:root[data-theme="dark"] { --paper:oklch(.18 .007 60); --surface:oklch(.22 .008 60); --band:oklch(.25 .008 60); --rule:oklch(.37 .009 60); --rule-soft:oklch(.29 .009 60); --accent:oklch(.77 .14 28); }
body { border-top:3px solid var(--accent); }
.topbar { background:var(--paper); }
.topbar-inner { min-height:34px; font-size:11px; }
.masthead-inner { padding-top:30px; padding-bottom:26px; border-bottom:0; align-items:center; }
.flag { gap:15px; }
.flag-hanja { border:0; padding:0; font-size:58px; color:var(--accent); letter-spacing:-.07em; }
.flag-name { font-family:var(--sans);font-weight:800;font-size:31px; }
.flag-tag { font-size:12px; }
.flag-en { font-family:var(--sans);font-size:13px;line-height:1.8;letter-spacing:0;text-align:right;color:var(--muted); }
.catrail { border-top:2px solid var(--ink-strong); border-bottom:1px solid var(--rule); background:var(--paper); position:static; }
.cat { font-size:14px;padding:14px 17px; }
.cat.is-active { background:var(--accent);color:var(--surface);border-color:var(--accent); }
main { padding-top:28px; }
.front-lead { grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); border-bottom:1px solid var(--rule-strong); padding-bottom:28px; }
.lead { padding-right:32px; display:flex; flex-direction:column; }
.lead-copy { order:-1; }
.lead-title { font-family:var(--sans);font-size:clamp(28px,3.3vw,39px);line-height:1.4;font-weight:800;letter-spacing:-.04em;margin:9px 0 13px; }
.lead-deck { font-size:15px;line-height:1.8;max-width:none;color:var(--muted);margin-bottom:14px; }
.lead-figure { padding:0; border:0; border-radius:0; margin:20px 0 0; position:relative; aspect-ratio:2.5/1; overflow:hidden; }
.lead-figure img { display:block;width:100%;height:100%;object-fit:cover; }
.image-caption { position:absolute;bottom:0;left:0;padding:5px 9px;background:oklch(.2 .01 60 / .85);color:oklch(.98 .004 80);font:11px var(--sans); }
.rail-head { font-size:15px;letter-spacing:0;padding-bottom:12px;margin-top:0; }
.rail-title { font-family:var(--sans);font-size:18px;line-height:1.5;font-weight:700; }
.rail-item a { padding:16px 0; }
.kicker { font-size:12px;letter-spacing:0; }
.story-title { font-family:var(--sans);font-size:20px;line-height:1.5;font-weight:700; }
.story-sum { font-size:14px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.story a { padding:22px 20px; }
.section-bar h2 { font-family:var(--sans);font-size:18px; }
.article { padding-top:12px; }
.article h1 { font-family:var(--sans);font-weight:800;line-height:1.4; }
.article .body { font-size:17px;line-height:1.95; }
.flag-hanja { border-right:0; }
@media(max-width:650px) { .masthead-inner{padding-top:23px;padding-bottom:22px}.flag-hanja{font-size:43px}.flag-name{font-size:25px}.flag-tag{font-size:10px}.flag-en{display:none}.cat{padding:13px 15px}.front-lead{grid-template-columns:1fr}.lead{padding-right:0}.lead-title{font-size:28px}.lead-rail{border-left:0;padding:26px 0 0}.lead-figure{aspect-ratio:2/1}.rail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.rail-title{font-size:16px}.story-grid{grid-template-columns:1fr}.story{border-left:0!important}.story a{padding:20px 0} }

/* Reading and keyboard affordances across every publication route. */
.skip-link { position:fixed;top:-80px;left:16px;z-index:1000;padding:12px 18px;background:var(--surface);color:inherit;border:2px solid currentColor; }
.skip-link:focus { top:12px; }
.theme-toggle { min-width:40px;min-height:40px;border-radius:3px; }
.pager-num,.pager-edge { border-radius:2px;min-height:40px; }
.sources,.disclosure,.paywall,.kpi li,.kpi-row li { border-radius:0;box-shadow:none; }
.paywall { text-align:left; }
.paywall-mark { font-size:13px;width:auto;height:auto;display:inline-block;padding:3px 7px;border-radius:2px; }
button,input { font:inherit; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }

.masthead-hero,.status,.lead,.entry,.front-lead,.story,.article { animation:none;opacity:1;transform:none; }

main.wrap { padding-top:28px; }

/* Small ambient films retain a visible, keyboard-accessible pause control. */
.publication-film { margin:0;min-width:0;max-width:100%;align-self:start; }
.film-frame { position:relative;aspect-ratio:16/9;overflow:hidden;background:oklch(.2 .01 70); }
.film-frame video,.film-poster { display:block;width:100%;height:100%;object-fit:cover; }
.film-frame video { position:absolute;inset:0; }
.film-toggle { position:absolute;right:8px;bottom:8px;min-height:36px;padding:5px 10px;border:1px solid oklch(.8 .005 70 / .5);border-radius:3px;background:oklch(.18 .01 70 / .85);color:oklch(.98 .005 70);font-size:12px;cursor:pointer; }
.publication-film figcaption { margin-top:7px;font-size:11px;line-height:1.6;color:var(--muted); }
@media(prefers-reduced-motion:reduce) { .film-frame video,.film-toggle { display:none; } }


/* Lead story and film share one row; secondary headlines form a compact rail below. */
.front-lead { grid-template-columns:minmax(0,1fr); }
.front-lead > .lead { min-width:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:center; }
.lead .lead-copy { grid-column:1;grid-row:1; }
.lead .publication-film { grid-column:2;grid-row:1;width:300px;max-width:100%;margin:0;align-self:center; }
.lead-rail { border-left:0;padding:26px 0 0; }
.rail-head { border-top:1px solid var(--rule);border-bottom:0;padding:17px 0 0;margin:0 0 6px; }
.rail-list { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px; }
.rail-item { border-bottom:0; }
.rail-title { font-size:16px; }
@media(max-width:900px) { .rail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.front-lead > .lead{grid-template-columns:minmax(0,1fr) 260px;gap:24px}.lead .publication-film{width:260px} }
@media(max-width:650px) { .front-lead > .lead{grid-template-columns:minmax(0,1fr);gap:18px}.lead .publication-film{grid-column:1;grid-row:2;justify-self:end}.rail-list{gap:0 20px} }
