/* NEXT — 대한민국의 다음 선택을 탐구하는 저널 */

:root {
  --paper: #e9effb;
  --ink: #101014;
  --muted: #5f6672;
  --faint: #9aa0ab;
  --hairline: #d3dbee;
  --accent: #002fa7;        /* International Klein Blue */
  --accent-dark: #01206e;
  --accent-on-dark: #5b78ff;
  --band-ink: #101014;
  --band-text: #f4f4f2;
  --serif: 'SUIT Variable', SUIT, 'Pretendard Variable', sans-serif;
  --sans: 'Pretendard Variable', Pretendard, 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;
  --latin: 'Archivo', 'Pretendard Variable', sans-serif;
  --gutter: clamp(24px, 5vw, 72px);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 16.5px;
  line-height: 1.8;
  border-top: 4px solid var(--accent);
  -webkit-font-smoothing: antialiased;
  word-break: keep-all;
  overflow-wrap: break-word;
}

a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--accent); }
.accent { color: var(--accent); }
p { text-wrap: pretty; }

a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* ---------- 브랜드 ---------- */

.brand {
  font-family: var(--latin);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
}
.brand a { display: inline-flex; align-items: baseline; gap: 7px; }
.brand-dot {
  width: 8px;
  height: 8px;
  background: var(--accent);
  display: inline-block;
  flex-shrink: 0;
}
.brand-note {
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.22em;
  color: var(--muted);
}

/* ---------- 오프닝 (철학 시퀀스) ---------- */

.intro {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--accent);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 36px var(--gutter) 0;
  cursor: pointer;
  transition: opacity 0.8s ease;
}
.intro.is-leaving { opacity: 0; pointer-events: none; }
.intro.is-hidden { display: none; }

.intro .brand { color: #ffffff; }
.intro .brand-dot { background: #ffffff; }
.intro .brand-note { color: rgba(255, 255, 255, 0.62); }

.intro-brand {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.intro-lines {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 16px;
}
.intro-line {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(19px, 2vw, 28px);
  line-height: 2.1;
  color: rgba(255, 255, 255, 0.75);
  opacity: 0;
  transform: translateY(14px);
}
.intro-main {
  font-family: var(--serif);
  font-weight: 760;
  font-size: clamp(34px, 4.8vw, 68px);
  line-height: 1.5;
  letter-spacing: -0.005em;
  color: #ffffff;
  margin-top: clamp(18px, 3vh, 36px);
  opacity: 0;
  transform: translateY(14px);
  text-wrap: balance;
}
.intro-main .accent { color: #9db4ff; }
.intro-sub {
  font-size: clamp(13px, 1.1vw, 15px);
  font-weight: 500;
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.58);
  margin-top: clamp(22px, 4vh, 40px);
  opacity: 0;
  transform: translateY(14px);
}
.intro-cue {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  align-self: center;
  flex-shrink: 0;
  padding: 12px 24px 36px;
}
.intro-cue-label {
  display: block;
  flex-shrink: 0;
  line-height: 1.4;
  font-family: var(--latin);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.32em;
  color: rgba(255, 255, 255, 0.6);
}
.intro-cue-line {
  flex-shrink: 0;
  width: 2px;
  height: 56px;
  background: #ffffff;
  transform: scaleY(0);
  transform-origin: top;
}

.intro.is-playing .intro-line:nth-child(1) { animation: fadeUp 1.1s ease-out 0.4s both; }
.intro.is-playing .intro-line:nth-child(2) { animation: fadeUp 1.1s ease-out 1.5s both; }
.intro.is-playing .intro-main            { animation: fadeUp 1.3s ease-out 2.7s both; }
.intro.is-playing .intro-sub             { animation: fadeUp 1.1s ease-out 3.9s both; }
.intro.is-playing .intro-cue-line        { animation: cueGrow 1.2s ease-out 4.6s both; }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes cueGrow {
  from { transform: scaleY(0); }
  to   { transform: scaleY(1); }
}

body.intro-open { overflow: hidden; }

/* ---------- 홈 히어로 ---------- */

.hero {
  min-height: min(720px, calc(100vh - 142px));
  padding: clamp(80px, 11vw, 148px) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  border-bottom: 1px solid var(--ink);
}
.hero-kicker, .signal-label, .issue-no {
  font-family: var(--latin);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  color: var(--accent);
}
.hero h1 {
  font-family: var(--serif);
  font-size: clamp(42px, 6vw, 86px);
  line-height: 1.22;
  letter-spacing: -.045em;
  font-weight: 760;
  margin: 26px 0 30px;
  max-width: 1100px;
  word-break: keep-all;
  text-wrap: balance;
}
.hero > p {
  max-width: 700px;
  color: var(--muted);
  font-size: clamp(17px, 1.6vw, 21px);
  line-height: 1.9;
  margin: 0;
}
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 42px; }
.primary-link, .secondary-link {
  min-height: 52px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  font-weight: 650;
  font-size: 14px;
  letter-spacing: .04em;
}
.primary-link { background: var(--accent); color: white; }
.primary-link:hover { background: var(--accent-dark); color: white; }
.secondary-link { border: 1px solid var(--ink); }

/* ---------- 준비호 ---------- */

.preview {
  display: grid;
  grid-template-columns: minmax(210px, .8fr) minmax(0, 2.2fr);
  gap: clamp(42px, 7vw, 110px);
  padding: clamp(80px, 10vw, 130px) var(--gutter);
}
.section-rail p { color: var(--muted); font-size: 14px; line-height: 1.8; max-width: 220px; margin-top: 18px; }
.preview-main > h2, .section-heading h2, .method-intro h2 {
  font-family: var(--serif);
  font-size: clamp(30px, 4vw, 54px);
  line-height: 1.35;
  letter-spacing: -.035em;
  font-weight: 720;
  margin: 18px 0 24px;
  word-break: keep-all;
  text-wrap: balance;
}
.preview-deck { max-width: 760px; color: var(--muted); font-size: 18px; line-height: 1.95; }
.issue-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 60px; border-top: 1px solid var(--ink); border-left: 1px solid var(--hairline); }
.issue-grid article { padding: 32px; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.issue-grid h3 { font-family: var(--serif); font-size: 21px; font-weight: 700; letter-spacing: -.02em; margin: 17px 0 10px; }
.issue-grid p { color: var(--muted); font-size: 15px; line-height: 1.8; margin: 0; }

/* ---------- 편집 의제 ---------- */

.agenda { background: white; padding: clamp(80px, 10vw, 130px) var(--gutter); }
.section-heading { max-width: 720px; margin-bottom: 54px; }
.agenda-list { border-top: 2px solid var(--ink); }
.agenda-list article { display: grid; grid-template-columns: 80px minmax(220px, .8fr) 1.2fr; gap: 28px; align-items: baseline; padding: 28px 0; border-bottom: 1px solid var(--hairline); }
.agenda-list span { font-family: var(--latin); color: var(--accent); font-weight: 700; font-size: 12px; }
.agenda-list h3 { font-family: var(--serif); font-size: clamp(20px, 2vw, 27px); font-weight: 700; letter-spacing: -.025em; margin: 0; }
.agenda-list p { color: var(--muted); margin: 0; }

/* ---------- 편집 방법 ---------- */

.method { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(50px, 8vw, 120px); padding: clamp(80px, 10vw, 130px) var(--gutter); }
.method-intro h2 { font-size: clamp(30px, 3.5vw, 48px); }
.method-steps { border-top: 2px solid var(--ink); }
.method-steps article { padding: 28px 0 32px; border-bottom: 1px solid var(--hairline); }
.method-steps strong { color: var(--accent); font-size: 13px; letter-spacing: .18em; }
.method-steps h3 { font-family: var(--serif); font-size: 24px; font-weight: 700; letter-spacing: -.025em; margin: 10px 0; }
.method-steps p { color: var(--muted); margin: 0; }
.subscribe-copy { max-width: 620px; color: var(--muted); margin: -10px 0 0; text-wrap: balance; }
.btn-disabled { border: 1px solid var(--faint); color: var(--muted); cursor: default; }

/* ---------- 최신 글 ---------- */

.latest { padding: clamp(80px, 10vw, 130px) var(--gutter); }
.latest-heading { max-width: 760px; }
.latest-heading > p { color: var(--muted); font-size: 17px; }
.lead-story { border-top: 2px solid var(--ink); border-bottom: 1px solid var(--hairline); padding: clamp(40px, 6vw, 72px) 0; }
.story-meta { display: flex; gap: 16px; flex-wrap: wrap; font-family: var(--latin); font-size: 11px; font-weight: 700; letter-spacing: .14em; color: var(--accent); }
.story-meta span + span { color: var(--muted); }
.lead-story :is(h1,.lead-title) { font-family: var(--serif); font-size: clamp(38px, 5vw, 70px); line-height: 1.25; letter-spacing: -.045em; margin: 24px 0; text-wrap: balance; }
.lead-story > p { max-width: 760px; color: var(--muted); font-size: 18px; line-height: 1.9; }
.story-status { display: inline-block; margin-top: 24px; padding: 9px 14px; border: 1px solid var(--hairline); color: var(--muted); font-size: 13px; }
.story-list { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--hairline); }
.story-list article { padding: 34px 30px 36px 0; border-right: 1px solid var(--hairline); }
.story-list article + article { padding-left: 30px; }
.story-list article:last-child { border-right: 0; }
.story-list h3 { font-family: var(--serif); font-size: 23px; line-height: 1.5; letter-spacing: -.025em; margin: 18px 0 10px; }
.story-list p { color: var(--muted); font-size: 14.5px; margin: 0; }

/* ---------- 연속 기획 ---------- */

.series { background: var(--accent); color: white; display: grid; grid-template-columns: .9fr 1.4fr; gap: clamp(50px, 8vw, 120px); padding: clamp(80px, 10vw, 130px) var(--gutter); }
.series .eyebrow { color: #9db4ff; }
.series-intro h2 { font-family: var(--serif); font-size: clamp(40px, 5vw, 68px); line-height: 1.25; letter-spacing: -.045em; margin: 20px 0; }
.series-intro p { color: rgba(255,255,255,.7); max-width: 420px; }
.series-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.5); }
.series-list li { display: grid; grid-template-columns: 50px 1fr; gap: 16px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.22); }
.series-list li > span { font-family: var(--latin); font-size: 11px; letter-spacing: .18em; color: #9db4ff; }
.series-list strong { display: block; font-size: 19px; font-weight: 650; }
.series-list small { display: block; margin-top: 7px; color: rgba(255,255,255,.58); font-family: var(--latin); letter-spacing: .09em; }

/* ---------- 콘텐츠 형식 ---------- */

.formats { padding: clamp(80px, 10vw, 130px) var(--gutter); background: white; }
.format-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--ink); border-left: 1px solid var(--hairline); }
.format-grid article { min-height: 210px; padding: 28px; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.format-grid strong { font-family: var(--latin); font-size: 11px; letter-spacing: .16em; color: var(--accent); }
.format-grid h3 { font-family: var(--serif); font-size: 24px; margin: 28px 0 8px; }
.format-grid p { color: var(--muted); font-size: 14.5px; margin: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .intro { display: none; }
  body.intro-open { overflow: auto; }
}

/* ---------- 헤더 · 내비게이션 ---------- */

.site-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 34px var(--gutter) 22px;
}

.site-nav {
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--hairline);
  padding: 0 var(--gutter);
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.site-nav-links { display: flex; gap: clamp(24px, 3vw, 48px); }
.site-nav-links a {
  font-size: 15.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--muted);
  padding: 18px 0 15px;
  border-bottom: 3px solid transparent;
}
.site-nav-links a:hover { color: var(--ink); }
.site-nav-links a.is-active {
  color: var(--ink);
  border-bottom-color: var(--accent);
}
.site-nav .nav-subscribe {
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0 24px;
  background: var(--accent);
  color: #ffffff;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.site-nav .nav-subscribe:hover { background: var(--accent-dark); color: #ffffff; }

/* ---------- 최신호 ---------- */

.feature {
  padding: clamp(64px, 9vw, 104px) var(--gutter) clamp(56px, 8vw, 92px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 26px;
}
.eyebrow {
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: 0.28em;
  color: var(--accent);
}
.feature-title {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(29px, 3.6vw, 52px);
  line-height: 1.45;
  letter-spacing: -0.005em;
  max-width: 920px;
  margin: 0;
  text-wrap: balance;
  word-break: keep-all;
}
.feature-deck {
  font-size: 17.5px;
  line-height: 2;
  color: var(--muted);
  max-width: 660px;
  margin: 0;
}
.text-link {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--accent);
}
.text-link::after {
  content: ' →';
  display: inline-block;
  transition: transform 0.2s ease;
}
.text-link:hover { color: var(--accent-dark); }
.text-link:hover::after { transform: translateX(4px); }

/* ---------- 아카이브 목록 ---------- */

.archive { padding: 0 var(--gutter) 40px; }
.archive-item {
  border-top: 1px solid var(--hairline);
  padding: clamp(32px, 4vw, 46px) 0 clamp(28px, 4vw, 42px);
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: clamp(16px, 3vw, 48px);
  align-items: baseline;
}
.archive-item:last-of-type { border-bottom: 1px solid var(--hairline); }
.archive-meta {
  font-family: var(--latin);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  color: var(--accent);
}
.archive-body { display: flex; flex-direction: column; gap: 12px; }
.archive-title {
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(21px, 2.1vw, 28px);
  line-height: 1.55;
  letter-spacing: -0.003em;
}
.archive-deck {
  font-size: 16px;
  line-height: 1.9;
  color: var(--muted);
  max-width: 720px;
}
.archive-more {
  display: flex;
  justify-content: center;
  padding: 36px 0 24px;
}
.archive-more a {
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--muted);
}
.archive-more a:hover { color: var(--accent); }

/* ---------- 매체소개 (NEXT는) — 블랙 밴드 ---------- */

.about-strip {
  background: var(--band-ink);
  color: var(--band-text);
  padding: clamp(72px, 9vw, 110px) var(--gutter);
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: clamp(16px, 3vw, 48px);
}
.about-label {
  font-family: var(--latin);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--accent-on-dark);
}
.about-body { display: flex; flex-direction: column; gap: 30px; max-width: 780px; }
.about-lede {
  font-family: var(--serif);
  font-weight: 450;
  font-size: clamp(20px, 2vw, 27px);
  line-height: 2;
  margin: 0;
  color: var(--band-text);
}
.about-creed {
  font-size: 15.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--accent-on-dark);
  line-height: 2;
  margin: 0;
}
.about-body .text-link {
  align-self: flex-start;
  color: var(--band-text);
}
.about-body .text-link:hover { color: var(--accent-on-dark); }

/* ---------- 구독 ---------- */

.subscribe {
  padding: clamp(72px, 9vw, 110px) var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  text-align: center;
}
.subscribe-title {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(25px, 2.6vw, 34px);
  margin: 0;
  letter-spacing: -0.005em;
}
.channel-links {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}
.btn-channel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 34px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.btn-telegram { background: var(--accent); color: #ffffff; }
.btn-telegram:hover { background: var(--accent-dark); color: #ffffff; }
.btn-kakao { background: #fee500; color: #191919; }
.btn-kakao:hover { background: #f2d900; color: #191919; }
.subscribe-note { font-size: 14px; color: var(--faint); }

/* ---------- 푸터 ---------- */

.site-footer {
  border-top: 2px solid var(--ink);
  padding: 32px var(--gutter);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.footer-brand { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.footer-brand .brand { font-size: 17px; }
.footer-note { font-size: 13.5px; color: var(--faint); }
.footer-links { display: flex; gap: 30px; }
.footer-links a, .footer-links span { font-size: 13.5px; font-weight: 500; color: var(--muted); }

/* ---------- 선언문 페이지 ---------- */

.manifesto-page {
  padding: clamp(64px, 9vw, 108px) var(--gutter) clamp(80px, 10vw, 120px);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.manifesto-inner { max-width: 680px; display: flex; flex-direction: column; gap: 8px; }
.manifesto-inner .eyebrow { text-align: center; margin-bottom: 28px; }
.manifesto-tagline {
  font-family: var(--serif);
  font-weight: 760;
  font-size: clamp(27px, 3.2vw, 42px);
  line-height: 1.65;
  text-align: center;
  margin: 0 0 40px;
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.manifesto-inner p {
  font-family: var(--serif);
  font-weight: 430;
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 2.2;
  margin: 18px 0;
}
.manifesto-creed {
  font-weight: 600 !important;
  color: var(--accent);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  padding: 26px 0;
  margin: 34px 0 !important;
}
.manifesto-close {
  text-align: center;
  letter-spacing: 0.08em;
  color: var(--muted);
}

/* ---------- 반응형 ---------- */

@media (max-width: 720px) {
  .archive-item, .about-strip, .preview, .method, .series { grid-template-columns: 1fr; gap: 34px; }
  .issue-grid { grid-template-columns: 1fr; }
  .story-list, .format-grid { grid-template-columns: 1fr; }
  .story-list article, .story-list article + article { padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--hairline); }
  .agenda-list article { grid-template-columns: 44px 1fr; gap: 14px; }
  .agenda-list article p { grid-column: 2; }
  .hero { min-height: auto; }
  .site-header { padding-top: 26px; }
  .intro-cue { padding-bottom: 24px; }
}

/* Original composition, with the retained ink-blue palette. */
:root{--paper:#f7f8fa;--ink:#17202d;--muted:#596574;--hairline:#d9dfe7;--accent:#24477a;--accent-dark:#172f52;--accent-on-dark:#a9bfdc;--band-ink:#17202d;--band-text:#f7f8fa}
.skip{position:absolute;top:-100px;left:24px;z-index:200;background:white;padding:12px 20px}.skip:focus{top:10px}.review{padding:7px 24px;border-bottom:1px solid var(--hairline);text-align:center;font-size:12px;color:var(--muted)}
.site-header,.site-nav,.hero,.latest,.agenda,.about-strip,.site-footer{padding-left:max(var(--gutter),calc((100vw - 1240px)/2));padding-right:max(var(--gutter),calc((100vw - 1240px)/2))}
.brand{font-size:34px;letter-spacing:-.025em}.brand-note{font-size:13px;letter-spacing:.12em}.nav-status{align-self:center;font-size:13px;color:var(--muted)}
.hero{min-height:620px;padding-top:100px;padding-bottom:100px}.hero h1{font-size:clamp(48px,7vw,96px);line-height:1.2;margin:30px 0 32px}.hero-kicker,.story-meta,.agenda-list span{font-size:13px}.hero p{font-size:clamp(17px,1.6vw,21px)}.hero-actions{margin-top:34px}.lead-story :is(h1,.lead-title){max-width:1000px;font-size:clamp(32px,4.8vw,62px)}.lead-story .text-link{display:inline-block;margin-top:22px}.agenda-list p{font-size:16px}.about-label{font-size:13px}.about-strip{grid-template-columns:200px minmax(0,1fr)}
@media(prefers-reduced-motion:no-preference){.hero h1{animation:fadeUp .8s ease-out both}.hero>p{animation:fadeUp .8s .1s ease-out both}}
@media(max-width:720px){.brand-note{font-size:12px;letter-spacing:0}.site-nav-links{gap:24px}.site-nav-links a{font-size:14px}.nav-status{font-size:12px}.hero{min-height:auto;padding-top:70px;padding-bottom:76px}.hero h1{font-size:clamp(43px,9.5vw,68px)}.hero>p br{display:none}.about-strip{grid-template-columns:1fr}.site-footer .footer-note{font-size:13px}.latest,.agenda{padding-top:64px;padding-bottom:64px}}
@media(max-width:420px){.nav-status{display:none}.brand-note{max-width:155px;text-align:right}}

/* Full-colour opening restored from the original NEXT design. */
.intro[hidden]{display:none}.intro{min-height:100dvh;padding-top:max(30px,env(safe-area-inset-top));overflow-y:auto}.intro .intro-cue-label{font-size:13px;color:rgba(255,255,255,.85)}.intro .intro-sub{font-size:14px;color:rgba(255,255,255,.8)}.intro .brand-note{color:rgba(255,255,255,.8)}.intro-main .accent{color:#c1d4ed}.intro-cue{color:white;min-height:90px}.intro-cue:focus-visible{outline:none}.intro-cue:focus-visible .intro-cue-label{outline:2px solid white;outline-offset:8px}.replay-intro{border:0;background:none;padding:0;font:inherit;font-size:13.5px;color:var(--muted);cursor:pointer}.replay-intro:hover{color:var(--accent)}
@media(max-width:720px){.intro{padding-left:24px;padding-right:24px}.intro-main{font-size:clamp(32px,7vw,50px)}.intro-lines{padding:30px 0}.intro .brand-note{max-width:140px}.footer-links{flex-wrap:wrap;gap:18px}}
@media(prefers-reduced-motion:reduce){.intro:not([hidden]){display:flex}.intro .intro-line,.intro .intro-main,.intro .intro-sub{opacity:1;transform:none;animation:none}.intro .intro-cue-line{transform:scaleY(1);animation:none}.intro{transition:none}}

.latest-label{font-size:16px;font-weight:600;margin:12px 0 0}.latest .section-heading{margin-bottom:30px}

/* A quieter, more even type scale for the opening. */
.intro-lines{width:100%;max-width:1040px;align-self:center;padding:24px 16px}
.intro-line{font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.85;font-weight:450;letter-spacing:-.015em;color:rgba(255,255,255,.82)}
.intro-main{font-size:clamp(1.875rem,3.4vw,2.75rem);font-weight:650;line-height:1.4;letter-spacing:-.035em;margin-top:30px;max-width:100%;text-wrap:balance}
.intro .intro-sub{font-size:1rem;font-weight:450;line-height:1.7;letter-spacing:.04em;margin-top:28px;color:rgba(255,255,255,.8)}
@media(max-width:720px){.intro-lines{padding:24px 0}.intro-main{font-size:clamp(1.75rem,5.4vw,2.25rem);margin-top:24px}.intro .intro-sub{font-size:.9375rem;letter-spacing:.02em;margin-top:24px}.intro-line{font-size:1.0625rem;line-height:1.8}}

/* Series articles */
.series-stories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:40px;border-top:1px solid var(--line);padding-top:36px}.series-story h2{font-size:clamp(23px,2.3vw,31px);line-height:1.45;letter-spacing:-.035em;margin:18px 0}.series-story p{color:var(--muted);font-size:16px;line-height:1.7;margin:0 0 22px}.series-story .story-meta{font-size:13px}@media(max-width:640px){.series-stories{grid-template-columns:1fr;gap:32px}.series-story+.series-story{border-top:1px solid var(--line);padding-top:28px}}

/* Show readable fallback text while the title font downloads. */
/* Photo-led editorial index: one lead story, followed by the series. */
.latest{padding-top:44px;padding-bottom:48px}
.latest .section-heading{display:flex;align-items:baseline;gap:20px;max-width:none;margin-bottom:26px}
.latest-label{margin:0}
.lead-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:40px;align-items:center;background:var(--accent-dark);color:#fff;padding:36px;border:0}
.lead-story .story-meta span{color:inherit}
.lead-story .story-meta{display:flex;gap:18px;flex-wrap:wrap;color:#c1d4ed;font-size:12px;letter-spacing:.03em}
.lead-story :is(h1,.lead-title){font-family:var(--serif);font-size:clamp(29px,3.2vw,43px);font-weight:700;line-height:1.42;letter-spacing:-.045em;margin:24px 0 20px}
.lead-story :is(h1,.lead-title) a,.lead-story .text-link{color:#fff}
.lead-story :is(h1,.lead-title) a:hover{color:#c1d4ed}
.lead-story .story-copy>p{color:#d5dfec;font-size:17px;line-height:1.8;margin:0}
.lead-story .text-link{font-size:13px;margin-top:28px;letter-spacing:.02em}
.story-photo{margin:0 0 22px;min-width:0}
.story-photo>a{display:block;aspect-ratio:3/2;overflow:hidden}
.story-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#d9dfe7}
.story-photo figcaption{margin-top:9px;font-size:10px;line-height:1.6;color:var(--muted);font-weight:400;letter-spacing:0}
.story-photo figcaption a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.lead-story .story-photo{margin:0}
.lead-story .story-photo figcaption{color:#bdcce0}
.series-stories{gap:40px;margin-top:40px;padding-top:0;border-top:0}
.series-story{min-width:0}
.series-story h2{font-family:var(--serif);font-weight:700;margin:12px 0 14px;font-size:clamp(23px,2.3vw,30px)}
.series-story .story-meta{color:var(--accent)}
.listing-photo-notice{font-size:10px;line-height:1.6;color:var(--muted);margin:36px 0 0;max-width:760px}
@media(max-width:800px){.lead-story{grid-template-columns:1fr;gap:26px;padding:28px}.lead-story .story-photo{grid-row:1}.lead-story :is(h1,.lead-title){font-size:32px;margin-top:16px}.lead-story .story-copy>p{font-size:16px}.latest .section-heading{gap:12px;flex-wrap:wrap}.latest-label{font-size:14px}}
@media(max-width:640px){.latest{padding-top:30px;padding-bottom:32px}.lead-story{padding:20px;gap:22px}.lead-story :is(h1,.lead-title){font-size:28px}.lead-story .story-copy>p br{display:none}.series-stories{gap:34px;margin-top:34px}.series-story+.series-story{border-top:1px solid var(--hairline);padding-top:28px}.series-story h2{font-size:25px}.story-photo figcaption{font-size:10px}.listing-photo-notice{margin-top:28px}}
@font-face{font-family:'SUIT Variable';font-style:normal;font-weight:100 900;font-display:swap;src:url('https://cdn.jsdelivr.net/gh/sunn-us/SUIT/fonts/variable/woff2/SUIT-Variable.woff2') format('woff2')}

.northeast-series .northeast-series .northeast-series{border-bottom:1px solid var(--hairline)}
.northeast-series .section-heading .latest-label{font-size:18px;line-height:1.5;margin:0;font-weight:600;letter-spacing:-.02em}

/* Rights notices stay with the photo or the end of the photo listing. */
.photo-use-notice{display:block;margin-top:10px;font-size:11px;line-height:1.6;color:var(--muted)}
.photo-use-notice>span,.listing-photo-notice>span{display:block}.photo-use-notice>span:first-child,.listing-photo-notice>span:first-child{font-weight:600;margin-bottom:3px}

/* 현안 심층: 단독 기사 데스크. 최신 1편은 크게, 이전 기사는 목록으로. 시리즈의 남색 대표 카드와 구분한다. */
.current-desk .current-lead{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:44px;align-items:start;border-top:2px solid var(--ink);padding:32px 0 36px}
.current-photo{margin:0}
.current-photo img,.current-thumb img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.current-photo figcaption{margin-top:10px;font-size:12px;line-height:1.6;color:var(--muted)}
.current-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);letter-spacing:.02em}
.current-meta span{color:var(--accent);font-weight:600}
.current-lead h2{font-family:var(--serif);font-size:clamp(28px,3vw,40px);font-weight:700;line-height:1.4;letter-spacing:-.04em;margin:16px 0 18px;text-wrap:balance}
.current-lead .current-copy>p{color:var(--muted);font-size:17px;line-height:1.8;margin:0 0 22px}
.current-list{border-top:1px solid var(--hairline)}
.current-item{display:grid;grid-template-columns:168px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--hairline)}
.current-item h3{font-family:var(--serif);font-size:clamp(19px,1.8vw,23px);font-weight:700;line-height:1.45;letter-spacing:-.03em;margin:8px 0 8px}
.current-item p{color:var(--muted);font-size:15px;line-height:1.7;margin:0}
.current-item .photo-credit{font-size:11px;margin-top:8px;color:var(--faint)}
.current-lead h2 a:hover,.current-item h3 a:hover{color:var(--accent)}
@media(max-width:760px){.current-desk .current-lead{grid-template-columns:1fr;gap:20px;padding:24px 0 28px}.current-item{grid-template-columns:104px minmax(0,1fr);gap:16px;padding:18px 0}.current-item p:not(.photo-credit){display:none}}

/* 1면·특집·전체 기사 (build_hub.py) */
.site-nav-links{overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.site-nav-links::-webkit-scrollbar{display:none}
.hub-top .current-lead{border-top:0;padding-top:28px}
.hub-block{padding-top:12px}
.current-meta .meta-series{color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hairline)}
.series-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;border-top:2px solid var(--ink);padding-top:28px}
.series-card h3{font-family:var(--serif);font-size:clamp(20px,1.9vw,25px);font-weight:700;line-height:1.4;letter-spacing:-.03em;margin:10px 0 8px}
.series-card p{color:var(--muted);font-size:15px;line-height:1.7;margin:0}
.series-card .current-thumb{display:block;margin-bottom:14px}
.series-card .photo-credit{font-size:11px;margin-top:8px;color:var(--faint)}
.section-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;border-top:2px solid var(--ink);padding-top:24px}
.section-col h3{font-size:17px;font-weight:700;margin:0 0 12px}
.section-col ol{list-style:none;margin:0;padding:0}
.section-col li{border-bottom:1px solid var(--hairline);padding:12px 0;display:grid;gap:4px}
.section-col li a{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.5;letter-spacing:-.02em}
.section-col li time{font-size:12px;color:var(--muted)}
.more-link{display:inline-block;margin-top:14px;font-size:14px;color:var(--accent);font-weight:600}
.archive-cta{margin:40px 0 0;text-align:center}
.hub-page{padding-top:40px;padding-bottom:64px}
.hub-heading{border-bottom:2px solid var(--ink);padding-bottom:28px;margin-bottom:8px}
.hub-heading h1{font-family:var(--serif);font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1.3;letter-spacing:-.04em;margin:12px 0 14px}
.hub-heading p{color:var(--muted);font-size:17px;line-height:1.8;max-width:760px;margin:0}
.series-list .current-item{grid-template-columns:40px 168px minmax(0,1fr)}
.series-no{font-family:var(--serif);font-size:28px;font-weight:700;color:var(--accent);line-height:1}
.archive-filters{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 8px}
.archive-filters button{font:inherit;font-size:14px;border:1px solid var(--hairline);background:#fff;color:var(--ink);padding:7px 14px;border-radius:999px;cursor:pointer}
.archive-filters button.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.archive-month h2{font-size:15px;font-weight:700;margin:36px 0 0;padding-bottom:10px;border-bottom:2px solid var(--ink)}
@media(max-width:760px){.series-cards,.section-cols{grid-template-columns:1fr;gap:28px}.series-list .current-item{grid-template-columns:28px 104px minmax(0,1fr)}.series-no{font-size:22px}}
.hub-block .section-heading .latest-label{font-size:18px;line-height:1.5;margin:0;font-weight:600;letter-spacing:-.02em}
.hub-block .section-heading{display:flex;align-items:baseline;gap:18px;margin-bottom:18px}
/* 특집 시리즈: 남색 띠 */
#series.hub-block{background:var(--accent-dark);color:#fff;padding-top:48px;padding-bottom:52px;margin-top:40px}
#series .section-heading .eyebrow{color:#c1d4ed}
#series .section-heading .latest-label{color:#fff}
#series .series-cards{border-top-color:rgba(255,255,255,.6)}
#series .series-card h3 a{color:#fff}
#series .series-card h3 a:hover{color:#c1d4ed}
#series .series-card p{color:#d5dfec}
#series .current-meta{color:#c1d4ed}
#series .current-meta span{color:#fff}
#series .series-card .photo-credit,#series .series-card .photo-credit a{color:#9fb3cf}
.section-cols{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
