:root {
  color-scheme: light;
  --ground: #f3f0e7;
  --paper: #fbfaf4;
  --forest: #173e35;
  --forest-deep: #0e2c25;
  --ink: #18231f;
  --body: #405049;
  --muted: #58675f;
  --line: rgba(23, 62, 53, .25);
  --hairline: rgba(23, 62, 53, .13);
  --accent: #b28754;
  --serif: "Noto Serif KR", "Noto Serif CJK KR", "Nanum Myeongjo", Georgia, serif;
  --sans: "IBM Plex Sans KR", "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--ground); scroll-behavior: smooth; }
body {
  min-width: 0;
  margin: 0;
  background: var(--ground);
  color: var(--body);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--forest); color: var(--ground); }
a { color: inherit; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
img { display: block; max-width: 100%; }

.site-header {
  max-width: 1240px;
  min-height: 80px;
  margin: 0 auto;
  padding: 20px clamp(20px, 4.5vw, 60px);
  display: flex;
  align-items: center;
  gap: 18px;
  border-bottom: 1px solid var(--line);
}
.wordmark {
  color: var(--forest);
  font-size: 25px;
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
  text-decoration: none;
}
.wordmark-rule {
  width: clamp(28px, 7vw, 86px);
  margin: 0;
  border-top: 1px solid var(--accent);
}
.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2.7vw, 32px);
  margin-left: auto;
}
.site-nav a {
  min-height: 44px;
  padding: 8px 0;
  display: inline-flex;
  align-items: center;
  color: var(--forest);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .06em;
  text-decoration: none;
  white-space: nowrap;
}
.site-nav a:hover { color: var(--accent); }

.home-main { max-width: 1240px; margin: 0 auto; }
.home-intro {
  padding: clamp(46px, 5vw, 68px) clamp(20px, 6vw, 84px) clamp(38px, 5vw, 58px);
  border-bottom: 1px solid var(--line);
}
.eyebrow {
  margin: 0;
  color: var(--forest);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}
.intro-grid {
  max-width: 1050px;
  margin-top: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr);
  gap: clamp(36px, 8vw, 130px);
  align-items: end;
}
.intro-grid h1 {
  max-width: 14ch;
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(2.35rem, 4.6vw, 3.4rem);
  font-weight: 700;
  letter-spacing: -.045em;
  line-height: 1.2;
  text-wrap: balance;
}
.home-lede {
  max-width: 28rem;
  margin: 0 0 6px;
  color: var(--body);
  font-size: 18px;
  letter-spacing: -.03em;
  line-height: 1.75;
}

.featured-section,
.notes-section,
.archive-section,
.home-about {
  padding: clamp(44px, 5.5vw, 66px) clamp(20px, 6vw, 84px);
  border-bottom: 1px solid var(--line);
}
.section-kicker,
.article-date,
.note-card-meta,
.archive-meta {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.5;
}
.section-kicker {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--forest);
  text-transform: uppercase;
}
.featured-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, .78fr);
  gap: clamp(38px, 7vw, 106px);
  align-items: center;
}
.featured-copy { min-width: 0; }
.featured-copy .article-date { margin: 0 0 18px; }
.featured-copy h2 {
  max-width: 14ch;
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(2rem, 3.7vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.25;
  text-wrap: balance;
}
.featured-copy h2 a { text-decoration: none; }
.featured-copy h2 a:hover { color: var(--forest); }
.featured-lead {
  max-width: 39rem;
  margin: 22px 0 30px;
  color: var(--body);
  font-size: 18px;
  letter-spacing: -.025em;
  line-height: 1.75;
}
.button-link,
.text-link {
  color: var(--forest);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  text-decoration: none;
}
.button-link {
  min-height: 44px;
  padding: 8px 0;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--forest);
}
.button-link span,
.text-link span { transition: transform .2s ease; }
.button-link:hover span,
.text-link:hover span { transform: translate(3px, -2px); }
.featured-visual {
  position: relative;
  min-width: 0;
  display: block;
  padding: 16px;
  background: var(--forest);
  text-decoration: none;
}
.featured-visual img { width: 100%; height: auto; }
.visual-caption {
  display: block;
  padding: 10px 4px 0;
  color: #e8eee6;
  font-size: 12px;
  letter-spacing: .04em;
}

.section-heading,
.archive-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
}
.section-heading h2,
.archive-heading h2 {
  margin: 14px 0 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3.4vw, 2.7rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.25;
}
.section-note {
  max-width: 17rem;
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
  text-align: right;
}
.notes-grid {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}
.note-card {
  min-width: 0;
  padding: 26px 28px 28px 0;
  color: var(--body);
  text-decoration: none;
}
.note-card + .note-card {
  padding: 26px 0 28px 28px;
  border-left: 1px solid var(--line);
}
.note-card-meta { margin: 0 0 14px; color: var(--forest); }
.note-card h3 {
  max-width: 20ch;
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  letter-spacing: -.03em;
  line-height: 1.4;
}
.note-card p:not(.note-card-meta) {
  max-width: 34rem;
  margin: 15px 0 18px;
  color: var(--body);
  font-size: 16px;
  line-height: 1.75;
}
.note-card:hover h3 { color: var(--forest); }

.archive-section { background: rgba(251, 250, 244, .48); }
.archive-list { margin-top: 40px; border-top: 1px solid var(--line); }
.archive-row {
  min-height: 76px;
  padding: 17px 0;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 24px;
  gap: 24px;
  align-items: center;
  border-bottom: 1px solid var(--hairline);
  color: var(--body);
  text-decoration: none;
}
.archive-title {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 18px;
  letter-spacing: -.035em;
}
.archive-arrow { color: var(--forest); text-align: right; }
.archive-row:hover .archive-title { color: var(--forest); }
.home-about { border-bottom: 0; }
.home-about > p:not(.eyebrow) {
  max-width: 34rem;
  margin: 18px 0 14px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -.055em;
  line-height: 1.55;
}

.page-main,
.article-main {
  max-width: 900px;
  margin: 0 auto;
  padding: clamp(62px, 8vw, 112px) 28px 96px;
}
.page-head { max-width: 700px; margin: 0 auto 64px; }
.page-head h1,
.article-head h1 {
  margin: 18px 0 22px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(2.1rem, 4.2vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.3;
  text-wrap: balance;
}
.page-intro {
  max-width: 38rem;
  margin: 0;
  color: var(--body);
  font-size: 19px;
  line-height: 1.75;
}
.page-body { max-width: 680px; margin: 0 auto; }
.page-body section { padding-top: 38px; border-top: 1px solid var(--hairline); }
.page-body section + section { margin-top: 44px; }
.page-body h2 {
  margin: 0 0 18px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 25px;
  letter-spacing: -.03em;
  line-height: 1.4;
}
.page-body p { margin: 0 0 17px; }

.article-main { max-width: 900px; }
.article-head { max-width: 760px; margin: 0 auto 54px; }
.article-head .eyebrow {
  margin-bottom: 12px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .04em;
}
.article-head .article-date { margin: 0; }
.article-head h1 { max-width: 700px; margin-top: 20px; font-size: clamp(2rem, 4vw, 2.75rem); }
.article-lead {
  max-width: 680px;
  margin: 0;
  color: var(--body);
  font-size: 19px;
  line-height: 1.75;
}
.article-body {
  max-width: 680px;
  margin: 0 auto;
  color: var(--body);
  font-size: 17px;
  line-height: 1.8;
}
.article-body p { margin: 0 0 1.15rem; }
.article-body h2,
.article-body h3,
.article-body h4 {
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1.45;
}
.article-body h2 { margin: 3.1rem 0 .9rem; font-size: 1.55rem; }
.article-body h3 { margin: 2.3rem 0 .75rem; font-size: 1.25rem; }
.article-body h4 { margin: 1.8rem 0 .6rem; font-size: 1.1rem; }
.article-body a { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-body strong { color: var(--ink); font-weight: 600; }
.article-body blockquote {
  margin: 2rem 0;
  padding: 18px 22px;
  border-left: 2px solid var(--forest);
  background: rgba(23, 62, 53, .055);
  color: var(--ink);
}
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body ul,
.article-body ol { margin: 1rem 0 1.3rem; padding-left: 1.4rem; }
.article-body li + li { margin-top: .35rem; }
.article-body .table-wrap {
  max-width: 100%;
  margin: 2rem 0;
  overflow-x: auto;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.article-body table { min-width: 620px; width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.6; }
.article-body th,
.article-body td { padding: 11px 12px; border-bottom: 1px solid var(--hairline); text-align: left; vertical-align: top; }
.article-body th { color: var(--forest); font-size: 13px; font-weight: 600; }
.article-body tr:last-child td { border-bottom: 0; }

.editorial-figure { margin: 2.5rem 0 2.8rem; }
.figure-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--hairline); background: #f7f4ec; }
.figure-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.figure-scroll img { width: 100%; max-width: none; height: auto; }
.editorial-figure figcaption { margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.figure-sources { display: block; margin-top: 4px; }
.figure-sources a { color: var(--forest); }
.figure-expand { display: inline-block; margin-top: 8px; color: var(--forest); font-size: 13px; }
.article-date .byline { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-next {
  max-width: 680px;
  margin: 60px auto 0;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.next-group { margin-top: 22px; }
.next-label { margin: 0 0 6px; color: var(--forest); font-size: 12px; font-weight: 600; letter-spacing: .08em; line-height: 1.5; }
.next-group ul { margin: 0; padding: 0; list-style: none; }
.next-group li { border-bottom: 1px solid var(--hairline); }
.next-group a { min-height: 44px; padding: 12px 0; display: block; color: var(--body); text-decoration: none; }
.next-meta { display: block; color: var(--muted); font-size: 12px; letter-spacing: .04em; line-height: 1.5; }
.next-title { display: block; margin-top: 2px; color: var(--ink); font-family: var(--serif); font-size: 17px; font-weight: 600; letter-spacing: -.02em; line-height: 1.45; }
.next-desc { display: block; margin-top: 4px; font-size: 14px; line-height: 1.65; }
.next-group a:hover .next-title { color: var(--forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.next-home { margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 4px 22px; font-size: 14px; }
.next-home a { min-height: 44px; display: inline-flex; align-items: center; color: var(--forest); font-weight: 600; text-decoration: none; }
.next-home a:hover { color: var(--accent); }
.page-body ul { margin: 0 0 17px; padding-left: 1.3rem; }
.page-body li + li { margin-top: .3rem; }
.page-body section[id] { scroll-margin-top: 24px; }

.site-footer { border-top: 1px solid var(--line); }
.footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 38px clamp(20px, 6vw, 84px) 50px;
  display: grid;
  grid-template-columns: minmax(120px, .35fr) minmax(0, 1fr) minmax(140px, .35fr);
  gap: 30px;
  align-items: start;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.footer-inner p { margin: 0; }
.footer-mark { color: var(--forest); font-size: 20px; letter-spacing: -.04em; text-decoration: none; }
.footer-meta { text-align: right; }

@media (max-width: 720px) {
  .site-header { min-height: 72px; padding: 14px 20px; }
  .wordmark { font-size: 22px; }
  .wordmark-rule { width: 28px; }
  .site-nav { gap: 14px; }
  .site-nav a { font-size: 14px; }
  .home-intro { padding-top: 42px; padding-bottom: 38px; }
  .intro-grid { display: block; margin-top: 18px; }
  .intro-grid h1 { max-width: none; font-size: 2rem; line-height: 1.28; }
  .home-lede { margin-top: 22px; font-size: 17px; }
  .featured-section,
  .notes-section,
  .archive-section,
  .home-about { padding: 48px 20px; }
  .featured-grid { display: flex; flex-direction: column; gap: 30px; align-items: stretch; }
  .featured-copy h2 { max-width: 16ch; font-size: 1.9rem; line-height: 1.35; }
  .featured-lead { margin-top: 16px; font-size: 17px; }
  .featured-visual { order: 2; padding: 10px; }
  .visual-caption { font-size: 11px; }
  .section-heading,
  .archive-heading { display: block; }
  .section-note { max-width: 22rem; margin: 16px 0 0; text-align: left; }
  .notes-grid { display: block; margin-top: 30px; }
  .note-card,
  .note-card + .note-card { padding: 23px 0 25px; border-left: 0; border-bottom: 1px solid var(--hairline); }
  .note-card h3 { max-width: 20ch; font-size: 1.45rem; }
  .note-card p:not(.note-card-meta) { font-size: 16px; }
  .archive-list { margin-top: 28px; }
  .archive-row { min-height: 0; grid-template-columns: minmax(0, 1fr) 20px; gap: 10px; padding: 17px 0; }
  .archive-meta { grid-column: 1 / -1; }
  .archive-title { grid-column: 1; grid-row: 2; font-size: 17px; }
  .archive-arrow { grid-column: 2; grid-row: 2; }
  .home-about > p:not(.eyebrow) { font-size: 20px; }
  .page-main,
  .article-main { padding: 52px 20px 72px; }
  .page-head { margin-bottom: 46px; }
  .page-head h1,
  .article-head h1 { font-size: 1.95rem; line-height: 1.35; }
  .page-intro,
  .article-lead { font-size: 17px; }
  .article-head { margin-bottom: 42px; }
  .article-body { font-size: 17px; }
  .article-body h2 { font-size: 1.4rem; }
  .editorial-figure { margin-right: 0; margin-left: 0; }
  .figure-scroll img { min-width: 640px; }
  .next-title { font-size: 16px; }
  .footer-inner { display: block; padding: 30px 20px 38px; }
  .footer-inner p { margin-top: 18px; }
  .footer-meta { text-align: left; }
}

/* Narrow screens: stack each table row as a labelled card instead of a 620px sideways scroll. */
@media (max-width: 560px) {
  .article-body .table-wrap { overflow-x: visible; border-bottom: 0; }
  .article-body table.stack-table { min-width: 0; font-size: 15px; }
  .article-body .stack-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .article-body .stack-table,
  .article-body .stack-table tbody,
  .article-body .stack-table tr,
  .article-body .stack-table td { display: block; width: 100%; }
  .article-body .stack-table tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .article-body .stack-table td { padding: 4px 0; border-bottom: 0; }
  .article-body .stack-table td[data-label]::before {
    content: attr(data-label);
    display: block;
    color: var(--forest);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
  }
  .article-body .stack-table td:first-child { color: var(--ink); font-weight: 600; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.asof-note{margin:0 0 28px;padding:14px 18px;background:#eff2ea;border-left:3px solid #657858;font-size:14px;line-height:1.7;color:#46533e}
:root{--edition-border:#cbd4c5}
.edition-panel,.forecast-record{margin:24px 0;padding:18px 20px;border:1px solid var(--edition-border);border-radius:8px;background:#f1f4ec;color:#354337;font:14px/1.75 system-ui,sans-serif}
.edition-panel dl{display:flex;flex-wrap:wrap;gap:14px 28px;margin:0 0 12px}.edition-panel dt{font-size:12px;color:#60705f}.edition-panel dd{margin:0;font-weight:600}.edition-panel p{margin:8px 0}.edition-panel ol{padding-left:20px}.edition-panel li{margin:14px 0}.edition-panel summary,.forecast-record summary{cursor:pointer;font-weight:600}.edition-links{font-weight:600}.edition-panel a,.forecast-record a{color:#365c49}.shared-indicators{margin-top:40px}.shared-indicators small{font-size:12px}.forecast-record blockquote{margin:12px 0;padding-left:12px;border-left:2px solid #73816b}.forecast-record .original-conditions{font-size:14px}.article-body .edition-panel h2{font-size:18px}@media(max-width:640px){.edition-panel,.forecast-record{padding:14px;margin:18px 0}.edition-panel dl{display:block}.edition-panel dl>div{margin:8px 0}.shared-indicators tr>th{display:block;width:auto;padding:10px 14px;border-bottom:1px solid #ccd4c7}}
