:root {
  --ink: #101c2b;
  --paper: #f4f1ea;
  --white: #fffdf8;
  --blue: #1256d8;
  --lime: #d7f252;
  --line: #b8c0ca;
  --muted: #566170;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Helvetica Neue", sans-serif;
  line-height: 1.65;
}
a { color: inherit; }
.skip { position: fixed; left: 14px; top: -100px; z-index: 20; padding: 10px 14px; background: var(--ink); color: white; }
.skip:focus { top: 14px; }
.masthead {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 26px;
  min-height: 92px;
  padding: 18px clamp(22px, 5vw, 72px);
  border-bottom: 1px solid var(--ink);
  background: var(--white);
}
.brand { display: inline-flex; flex-direction: column; width: fit-content; text-decoration: none; line-height: 1.1; }
.brand small, .eyebrow, .story span, .source > span, .takeaway > span, .desk-note > span, .related > span {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.brand strong { margin-top: 5px; font-size: 23px; letter-spacing: -.04em; }
.masthead nav { display: flex; gap: 28px; font-size: 14px; font-weight: 700; }
.masthead nav a { text-decoration: none; }
.masthead nav a:hover, .masthead nav a:focus-visible { color: var(--blue); }
.issue { justify-self: end; font: 700 11px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: clamp(38px, 7vw, 110px);
  min-height: 590px;
  padding: clamp(80px, 12vw, 170px) clamp(22px, 7vw, 110px) 90px;
  background: var(--ink);
  color: var(--white);
}
.hero h1 {
  max-width: 1000px;
  margin: 20px 0 0;
  font-size: clamp(56px, 9vw, 126px);
  font-weight: 850;
  letter-spacing: -.075em;
  line-height: .94;
  word-break: keep-all;
}
.hero .eyebrow { color: var(--lime); }
.hero > p { align-self: end; max-width: 480px; margin: 0; color: #cbd3dd; font-size: 20px; }
.ticker { display: flex; justify-content: space-between; gap: 20px; padding: 13px clamp(22px, 7vw, 110px); background: var(--lime); font: 800 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.latest, .long-read, .desk-note, .listing, .text-page, .article { max-width: 1280px; margin: 0 auto; }
.latest { padding: 110px 28px; }
.latest > header { display: grid; grid-template-columns: 100px 1fr; gap: 22px; margin-bottom: 55px; }
.latest > header > span { color: var(--blue); font: 800 38px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.latest h2, .long-read h2 { margin: 0; font-size: clamp(40px, 6vw, 70px); letter-spacing: -.06em; line-height: 1; }
.latest header p, .long-read p { max-width: 680px; color: var(--muted); font-size: 17px; }
.story-list { border-top: 3px solid var(--ink); }
.story {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 22px;
  padding: 32px 0;
  border-bottom: 1px solid var(--line);
}
.story-index { color: var(--blue); font: 800 24px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; }
.story h3 { max-width: 890px; margin: 10px 0; font-size: clamp(28px, 4vw, 48px); letter-spacing: -.045em; line-height: 1.12; }
.story h3 a { text-decoration: none; }
.story h3 a:hover, .story h3 a:focus-visible { color: var(--blue); text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 5px; }
.story p { max-width: 780px; margin: 0 0 14px; color: var(--muted); font-size: 17px; }
.read, .long-read a, .source a, .back a { color: var(--blue); font-size: 14px; font-weight: 800; text-underline-offset: 4px; }
.long-read {
  display: grid;
  grid-template-columns: 150px 1.1fr .9fr;
  gap: 46px;
  padding: 90px 28px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.long-read .eyebrow { color: var(--blue); }
.long-read ol { margin: 0; padding: 0; list-style: none; }
.long-read li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); font-weight: 700; }
.long-read li span { color: var(--blue); font: 800 13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
.desk-note { display: grid; grid-template-columns: 150px 1fr; gap: 46px; padding: 72px 28px 120px; }
.desk-note p { max-width: 820px; margin: 0; font: 550 clamp(25px, 4vw, 42px)/1.35 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.article { padding: 95px 28px 130px; }
.article > header { max-width: 1060px; padding-bottom: 60px; border-bottom: 3px solid var(--ink); }
.article > header h1, .listing h1, .text-page h1 { margin: 18px 0 24px; font-size: clamp(48px, 8vw, 94px); letter-spacing: -.065em; line-height: 1; word-break: keep-all; }
.article > header > p { max-width: 760px; color: var(--muted); font-size: 21px; }
.article > header dl { display: flex; flex-wrap: wrap; gap: 35px; margin: 34px 0 0; }
.article > header dl div { display: grid; gap: 4px; }
.article dt { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.article dd { margin: 0; font-size: 13px; font-weight: 700; }
.article-opening { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; padding: 70px 0; }
.article-opening > p { margin: 0; font: 500 clamp(23px, 3vw, 34px)/1.5 Georgia, "Times New Roman", serif; }
.article-opening aside { padding: 28px; border-left: 5px solid var(--blue); background: var(--white); }
.article-opening aside ul { margin-bottom: 0; padding-left: 20px; }
.article-opening aside li + li { margin-top: 10px; }
.article-body { max-width: 920px; margin: 25px auto 80px; }
.article-body > section { display: grid; grid-template-columns: 76px 1fr; gap: 28px; padding: 65px 0; border-top: 1px solid var(--line); }
.article-body > section > span { color: var(--blue); font: 800 20px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; }
.article-body h2 { margin: 0 0 24px; font-size: clamp(30px, 4vw, 46px); letter-spacing: -.045em; line-height: 1.12; }
.article-body p { color: #374454; font-size: 18px; }
.takeaway, .source {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 34px;
  margin: 60px 0;
  padding: 50px;
  border-top: 5px solid var(--ink);
  background: var(--lime);
}
.takeaway h2, .source h2 { margin: 0 0 14px; font-size: clamp(28px, 4vw, 46px); letter-spacing: -.045em; line-height: 1.1; }
.source { border: 1px solid var(--line); border-top: 5px solid var(--blue); background: var(--white); }
.related { display: grid; grid-template-columns: 170px 1fr 1fr; gap: 24px; margin-top: 80px; padding-top: 30px; border-top: 1px solid var(--ink); }
.related a { display: grid; gap: 7px; text-decoration: none; }
.related a span { color: var(--blue); font-size: 11px; font-weight: 800; }
.related a strong { font-size: 18px; }
.back { margin-top: 70px; }
.listing, .text-page { padding: 95px 28px 130px; }
.listing > header, .text-page { max-width: 1000px; }
.listing > header { margin-bottom: 70px; }
.listing > header p, .text-page > p { max-width: 760px; color: var(--muted); font-size: 20px; }
.principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 60px 0; background: var(--ink); border: 1px solid var(--ink); }
.principles article { padding: 34px; background: var(--white); }
.principles article > span { color: var(--blue); font: 800 16px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.principles h2 { margin: 35px 0 12px; font-size: 25px; letter-spacing: -.035em; line-height: 1.2; }
.principles p { color: var(--muted); }
.revenue-slot[hidden] { display: none !important; }
footer {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  padding: 55px clamp(22px, 7vw, 110px);
  background: var(--ink);
  color: var(--white);
}
footer p { max-width: 650px; margin-bottom: 0; color: #bac4d0; }
footer > div:last-child { display: flex; flex-wrap: wrap; gap: 20px; align-content: start; }

@media (max-width: 800px) {
  .masthead { grid-template-columns: 1fr auto; }
  .masthead nav { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; gap: 14px; overflow-x: auto; }
  .issue { grid-column: 2; grid-row: 1; }
  .hero { grid-template-columns: 1fr; min-height: auto; padding-top: 90px; }
  .hero > p { align-self: start; }
  .ticker { overflow-x: auto; justify-content: flex-start; white-space: nowrap; }
  .latest > header, .story, .desk-note, .article-body > section { grid-template-columns: 52px 1fr; }
  .long-read { grid-template-columns: 1fr; }
  .article-opening { grid-template-columns: 1fr; gap: 35px; }
  .takeaway, .source { grid-template-columns: 1fr; padding: 32px; }
  .related { grid-template-columns: 1fr; }
  .principles { grid-template-columns: 1fr; }
  footer { flex-direction: column; }
}

@media (max-width: 500px) {
  .masthead { padding: 16px 18px; }
  .issue { display: none; }
  .hero h1 { font-size: 52px; }
  .latest, .listing, .text-page, .article { padding-left: 19px; padding-right: 19px; }
  .latest > header, .story, .desk-note, .article-body > section { grid-template-columns: 1fr; }
  .story-index { font-size: 15px; }
  .article > header dl { gap: 20px; }
}
