.article-deck {
  max-width: 790px;
  margin: 1.1rem auto 0;
  color: #536273;
  font-size: clamp(1.04rem, 2vw, 1.24rem);
  line-height: 1.65;
  font-weight: 550;
}

.policy-frame,
.comparison-panel,
.funding-figure,
.recommendation-panel,
.scope-note,
.stance-spectrum,
.conclusion-dashboard {
  margin: 2.2rem 0;
  border: 1px solid #dfe6ec;
  border-radius: 18px;
  background: #f9fbfc;
  overflow: hidden;
}

.policy-frame__header,
.comparison-panel__header,
.funding-figure__header,
.recommendation-panel__header,
.stance-spectrum__header,
.conclusion-dashboard__header {
  padding: 1.1rem 1.25rem;
  background: #13263f;
  color: #fff;
}

.policy-frame__header strong,
.comparison-panel__header strong,
.funding-figure__header strong,
.recommendation-panel__header strong,
.stance-spectrum__header strong,
.conclusion-dashboard__header strong {
  display: block;
  margin-bottom: 0.2rem;
  color: #fff;
  font-size: 1.05rem;
}

.policy-frame__header span,
.comparison-panel__header span,
.funding-figure__header span,
.recommendation-panel__header span,
.stance-spectrum__header span,
.conclusion-dashboard__header span {
  color: #cbd7e2;
  font-size: 0.88rem;
}

.policy-lens {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 0;
  padding: 0.9rem 1rem;
  background: #fff;
  list-style: none;
}

.policy-lens li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.55rem;
  align-items: start;
}

.policy-lens strong {
  padding: 0.16rem 0.42rem;
  border-radius: 5px;
  background: #d65047;
  color: #fff;
  font-size: 0.76rem;
  line-height: 1.4;
}

.policy-lens span {
  color: #536273;
  font-size: 0.84rem;
  line-height: 1.5;
}

.contract-answer {
  margin: 1.25rem 0 1.8rem !important;
  padding: 0.72rem 0.9rem;
  border-left: 4px solid #b28a56;
  border-radius: 0 8px 8px 0;
  background: #f7f3eb;
  color: #4f5b66;
  font-size: 0.9rem;
  line-height: 1.6;
}

.contract-answer strong {
  color: #23364d;
}

.era-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
  margin: 2.2rem 0 1.1rem;
  padding: 0.45rem;
  border-radius: 12px;
  background: #edf2f5;
}

.era-strip span {
  padding: 0.62rem 0.35rem;
  border-radius: 8px;
  color: #7b8893;
  font-size: 0.72rem;
  line-height: 1.35;
  text-align: center;
  font-weight: 700;
}

.era-strip span.active {
  background: #13263f;
  color: #fff;
  box-shadow: 0 5px 14px rgba(19, 38, 63, 0.2);
}

.era-strip span.active.red {
  background: #b83d36;
}

.document-quote {
  position: relative;
  margin: 1.8rem 0;
  padding: 1.4rem 1.5rem 1.4rem 2rem;
  border-left: 5px solid #b28a56;
  background: #f7f1e7;
  color: #313a43;
  font-family: Georgia, "Noto Serif KR", serif;
  font-size: 1.03rem;
  line-height: 1.78;
}

.document-quote cite {
  display: block;
  margin-top: 0.8rem;
  color: #76644d;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.82rem;
  font-style: normal;
}

.contract-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #dfe6ec;
}

.contract-column {
  padding: 1.35rem;
  background: #fff;
}

.contract-column--new {
  background: #f2f7f8;
}

.contract-column h3 {
  margin: 0 0 0.9rem;
  color: #13263f;
  font-size: 1.05rem;
}

.contract-column ul {
  margin: 0;
  padding-left: 1.2rem;
}

.contract-column li {
  margin: 0.55rem 0;
  color: #4d5b69;
  line-height: 1.58;
}

.timeline-ledger {
  position: relative;
  margin: 1.6rem 0 2.2rem;
  padding-left: 1.7rem;
}

.timeline-ledger::before {
  position: absolute;
  top: 0.5rem;
  bottom: 0.5rem;
  left: 0.42rem;
  width: 2px;
  background: #cad4dc;
  content: "";
}

.timeline-item {
  position: relative;
  margin: 0 0 1.35rem;
  padding: 0 0 0.2rem 0.8rem;
}

.timeline-item::before {
  position: absolute;
  top: 0.44rem;
  left: -1.65rem;
  width: 0.72rem;
  height: 0.72rem;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #d65047;
  box-shadow: 0 0 0 2px #d65047;
  content: "";
}

.timeline-item time {
  display: block;
  margin-bottom: 0.2rem;
  color: #b83d36;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.05em;
}

.timeline-item strong {
  display: block;
  color: #13263f;
  font-size: 1rem;
}

.timeline-item p {
  margin: 0.28rem 0 0;
  color: #596675;
  font-size: 0.91rem;
  line-height: 1.62;
}

.funding-figure__body {
  padding: 1.35rem;
}

.funding-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.funding-total strong {
  color: #13263f;
  font-size: clamp(1.65rem, 5vw, 2.55rem);
}

.funding-total span {
  color: #687684;
  font-size: 0.86rem;
  text-align: right;
}

.funding-stacked {
  display: flex;
  height: 32px;
  overflow: hidden;
  border-radius: 8px;
  background: #e5eaee;
}

.funding-stacked span:nth-child(1) { width: 55%; background: #183c63; }
.funding-stacked span:nth-child(2) { width: 25.7%; background: #4e8794; }
.funding-stacked span:nth-child(3) { width: 5.7%; background: #d6a859; }
.funding-stacked span:nth-child(4) { width: 5.4%; background: #d96b55; }
.funding-stacked span:nth-child(5) { width: 5.2%; background: #8d769f; }
.funding-stacked span:nth-child(6) { width: 3.1%; background: #87939e; }

.funding-legend {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1.2rem;
  margin-top: 1rem;
}

.funding-legend div {
  display: grid;
  grid-template-columns: 0.75rem 1fr auto;
  align-items: center;
  gap: 0.5rem;
  color: #53616e;
  font-size: 0.84rem;
}

.funding-legend i {
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 3px;
}

.funding-legend div:nth-child(1) i { background: #183c63; }
.funding-legend div:nth-child(2) i { background: #4e8794; }
.funding-legend div:nth-child(3) i { background: #d6a859; }
.funding-legend div:nth-child(4) i { background: #d96b55; }
.funding-legend div:nth-child(5) i { background: #8d769f; }
.funding-legend div:nth-child(6) i { background: #87939e; }

.figure-note {
  margin: 1rem 0 0;
  color: #71808d;
  font-size: 0.78rem;
  line-height: 1.55;
}

.recommendation-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: #dfe6ec;
}

.recommendation-card {
  padding: 1.25rem;
  background: #fff;
}

.recommendation-card b {
  display: inline-block;
  margin-bottom: 0.45rem;
  color: #b83d36;
  font-size: 0.77rem;
  letter-spacing: 0.04em;
}

.recommendation-card strong {
  display: block;
  margin-bottom: 0.42rem;
  color: #13263f;
}

.recommendation-card p {
  margin: 0;
  color: #586675;
  font-size: 0.9rem;
  line-height: 1.6;
}

.scope-note {
  padding: 1.25rem 1.35rem;
  border-left: 5px solid #d65047;
  background: #fff8f6;
}

.scope-note strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #9f302b;
}

.scope-note p {
  margin: 0;
  color: #5a5f65;
  font-size: 0.92rem;
  line-height: 1.65;
}

.stance-spectrum__body {
  padding: 1.15rem 1.25rem 1.25rem;
  background: #fff;
}

.stance-spectrum__plot {
  position: relative;
  height: 384px;
}

.stance-spectrum__axis {
  position: absolute;
  top: 188px;
  right: 0;
  left: 0;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #b83d36 0%, #d9a75a 50%, #4e8794 100%);
}

.stance-spectrum__axis span {
  position: absolute;
  top: -1.75rem;
  color: #667480;
  font-size: 0.76rem;
  font-weight: 800;
}

.stance-spectrum__axis span:first-child { left: 0; }
.stance-spectrum__axis span:nth-child(2) { left: 50%; transform: translateX(-50%); }
.stance-spectrum__axis span:last-child { right: 0; }

.stance-person {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--position);
  width: 9.25rem;
  transform: translateX(-50%);
}

.stance-person--position-12 { --position: 12%; }
.stance-person--position-24 { --position: 24%; }
.stance-person--position-40 { --position: 40%; }
.stance-person--position-58 { --position: 58%; }
.stance-person--position-76 { --position: 76%; }

.stance-person::before {
  position: absolute;
  top: 183px;
  left: 50%;
  z-index: 2;
  width: 12px;
  height: 12px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #23364d;
  box-shadow: 0 0 0 2px #23364d;
  content: "";
  transform: translateX(-50%);
}

.stance-person::after {
  position: absolute;
  left: 50%;
  width: 1px;
  background: #aeb9c2;
  content: "";
}

.stance-person--top::after {
  top: 148px;
  height: 36px;
}

.stance-person--bottom::after {
  top: 196px;
  height: 40px;
}

.stance-person__card {
  position: absolute;
  width: 100%;
  height: 148px;
  padding: 0.72rem 0.75rem;
  border: 1px solid #dfe6ec;
  border-radius: 11px;
  background: #f9fbfc;
  box-sizing: border-box;
  text-align: center;
}

.stance-person--top .stance-person__card { top: 0; }
.stance-person--bottom .stance-person__card { bottom: 0; }

.stance-person__card em {
  display: block;
  margin-bottom: 0.18rem;
  color: #a13b35;
  font-size: 0.66rem;
  font-style: normal;
  font-weight: 800;
}

.stance-person__card strong {
  display: block;
  margin-bottom: 0.18rem;
  color: #13263f;
  font-size: 0.83rem;
}

.stance-person__card small {
  display: block;
  margin-bottom: 0.32rem;
  color: #7a8792;
  font-size: 0.63rem;
  font-weight: 650;
  line-height: 1.35;
}

.stance-person__card span {
  display: block;
  color: #596775;
  font-size: 0.72rem;
  line-height: 1.42;
}

.stance-spectrum__note {
  margin: 0.25rem 0 0 !important;
  color: #6d7a86;
  font-size: 0.78rem;
  line-height: 1.55;
  text-align: right;
}

.article-content .conclusion-dashboard__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  background: #dfe6ec;
  list-style: none;
}

.article-content .conclusion-dashboard__grid li,
.article-content .conclusion-dashboard__grid li + li {
  margin: 0;
  padding: 1.15rem;
  background: #fff;
  list-style: none;
}

.article-content .conclusion-dashboard__grid li::marker { content: ""; }

.conclusion-dashboard__grid b {
  display: block;
  margin-bottom: 0.45rem;
  color: #b83d36;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.conclusion-dashboard__grid strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #13263f;
  font-size: 0.94rem;
}

.conclusion-dashboard__grid span {
  display: block;
  color: #596775;
  font-size: 0.82rem;
  line-height: 1.55;
}

.verdict-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.8rem;
  margin: 1.6rem 0 2.2rem;
}

.verdict-card {
  padding: 1.15rem;
  border: 1px solid #dfe6ec;
  border-radius: 14px;
  background: #fff;
}

.verdict-card strong {
  display: block;
  margin-bottom: 0.45rem;
  color: #13263f;
  font-size: 0.94rem;
}

.verdict-card p {
  margin: 0;
  color: #5b6874;
  font-size: 0.84rem;
  line-height: 1.58;
}

.article-content h2 {
  scroll-margin-top: 6rem;
}

@media (max-width: 720px) {
  .article-deck {
    font-size: 1rem;
  }

  .policy-lens,
  .contract-compare,
  .recommendation-grid,
  .verdict-grid,
  .article-content .conclusion-dashboard__grid {
    grid-template-columns: 1fr;
  }

  .era-strip {
    gap: 2px;
    margin-top: 1.7rem;
    padding: 0.3rem;
  }

  .era-strip span {
    padding: 0.52rem 0.16rem;
    font-size: 0.62rem;
    letter-spacing: -0.04em;
  }

  .funding-legend {
    grid-template-columns: 1fr;
  }

  .funding-total {
    display: block;
  }

  .funding-total span {
    display: block;
    margin-top: 0.35rem;
    text-align: left;
  }

  .document-quote {
    padding: 1.15rem 1rem 1.15rem 1.3rem;
    font-size: 0.96rem;
  }

  .stance-spectrum__body {
    padding: 1rem;
  }

  .stance-spectrum__plot {
    display: grid;
    height: auto;
    gap: 0.65rem;
    padding-top: 2.8rem;
  }

  .stance-spectrum__axis {
    top: 1.8rem;
  }

  .stance-person {
    position: relative;
    top: auto;
    bottom: auto;
    left: auto !important;
    width: auto;
    transform: none;
  }

  .stance-person::before,
  .stance-person::after {
    display: none;
  }

  .stance-person__card,
  .stance-person--top .stance-person__card,
  .stance-person--bottom .stance-person__card {
    position: static;
    height: auto;
    text-align: left;
  }

  .stance-spectrum__note {
    margin-top: 0.9rem !important;
    text-align: left;
  }
}
