    :root {
      --ink: #18211b;
      --muted: #667168;
      --paper: #f7f7f2;
      --surface: #ffffff;
      --line: #d8ddd7;
      --green: #6f3a55;
      --green-soft: #f3e7ee;
      --blue: #315d78;
      --rust: #94553b;
      --gold: #936f21;
      --shadow: 0 14px 35px rgba(24, 33, 27, .07);
      --radius: 10px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--ink);
      background: var(--paper);
      font-family: "Pretendard", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.65;
    }
    button, input { font: inherit; }
    a { color: inherit; }

    .topbar {
      position: sticky;
      top: 0;
      z-index: 20;
      background: rgba(247, 247, 242, .94);
      border-bottom: 1px solid var(--line);
      backdrop-filter: blur(12px);
    }
    .topbar-inner {
      width: min(1180px, calc(100% - 40px));
      min-height: 64px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      gap: 24px;
    }
    .brand {
      border: 0;
      background: none;
      padding: 0;
      color: var(--ink);
      cursor: pointer;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.18rem;
      font-weight: 700;
      white-space: nowrap;
    }
    .brand span { color: var(--green); }
    .brand-group { display: flex; align-items: center; white-space: nowrap; }
    .brand-home { text-decoration: none; }
    .brand-domain { margin-left: 6px; text-decoration: none; }
    .top-search { flex: 1; max-width: 460px; margin-left: auto; position: relative; }
    .top-search input {
      width: 100%;
      height: 40px;
      border: 1px solid var(--line);
      border-radius: 6px;
      background: var(--surface);
      padding: 0 44px 0 14px;
      color: var(--ink);
      outline: none;
    }
    .top-search input:focus { border-color: var(--green); box-shadow: 0 0 0 3px var(--green-soft); }
    .keycap { position: absolute; right: 10px; top: 9px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); background: var(--paper); padding: 1px 6px; font-size: .75rem; }
    .top-link { border: 1px solid var(--green); border-radius: 6px; background: var(--green-soft); color: var(--green); padding: 7px 13px; font-size: .82rem; font-weight: 750; cursor: pointer; white-space: nowrap; }

    main { min-height: calc(100vh - 140px); }
    .container { width: min(1120px, calc(100% - 40px)); margin: 0 auto; }

    .hero {
      padding: 66px 0 46px;
      text-align: center;
      border-bottom: 1px solid var(--line);
      background:
        linear-gradient(rgba(111, 58, 85, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(111, 58, 85, .035) 1px, transparent 1px);
      background-size: 34px 34px;
    }
    .eyebrow { margin: 0 0 10px; color: var(--green); font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
    h1, h2, h3 { font-family: Georgia, "Noto Serif KR", serif; line-height: 1.25; }
    .hero h1 { margin: 0; font-size: clamp(2.3rem, 5.4vw, 4.4rem); letter-spacing: -.045em; }
    .hero-copy { margin: 16px auto 26px; max-width: 690px; color: var(--muted); font-size: 1.02rem; }
    .hero-search { width: min(720px, calc(100% - 32px)); margin: 0 auto; position: relative; }
    .hero-search input {
      width: 100%;
      height: 58px;
      border: 1px solid #c6b3bd;
      border-radius: 8px;
      background: var(--surface);
      box-shadow: var(--shadow);
      padding: 0 58px 0 20px;
      color: var(--ink);
      font-size: 1.01rem;
      outline: none;
    }
    .hero-search input:focus { border-color: var(--green); box-shadow: 0 0 0 4px var(--green-soft), var(--shadow); }
    .search-icon { position: absolute; right: 20px; top: 16px; color: var(--green); font-size: 1.3rem; }
    .search-hint { margin: 11px 0 0; color: var(--muted); font-size: .82rem; }

    /* ── 4 blocks (site index와 동일한 card grid) ───── */
    .browse { padding: 52px 0 76px; }
    .grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
    .card {
      position: relative;
      display: block;
      min-height: 260px;
      padding: 28px;
      border: 1px solid var(--line);
      border-top: 4px solid var(--accent);
      border-radius: 10px;
      background: var(--surface);
      color: inherit;
      text-align: left;
      text-decoration: none;
      cursor: pointer;
      transition: .18s;
    }
    .card:hover { transform: translateY(-3px); box-shadow: 0 14px 35px rgba(24, 33, 27, .08); }
    .card:focus-visible { outline: 3px solid var(--green-soft); outline-offset: 2px; }
    .card small { color: var(--accent); font-weight: 800; font-size: .76rem; letter-spacing: .12em; }
    .card h2 { margin: 17px 0 9px; font-size: 2rem; }
    .card p { margin: 0; color: var(--muted); }
    .route { display: block; margin-top: 32px; color: var(--accent); font-weight: 750; }

    /* ── badge — 미확인 수치 표시 전용 ──────────────── */
    .badge { display: inline-block; padding: 1px 7px; border-radius: 999px; font-size: .7rem; font-weight: 750; letter-spacing: .02em; white-space: nowrap; vertical-align: middle; }
    .b-check { background: #ffe9e4; color: #a03c1d; }

    /* ── section page ───────────────────────────────── */
    .breadcrumb { padding: 26px 0 16px; color: var(--muted); font-size: .84rem; }
    .breadcrumb button { border: 0; padding: 0; background: none; color: var(--green); cursor: pointer; }
    .breadcrumb span { margin: 0 8px; color: #9ca49e; }
    .page-header { padding: 16px 0 30px; border-bottom: 1px solid var(--line); }
    .page-header h1 { margin: 7px 0 12px; font-size: clamp(2rem, 4.4vw, 3.3rem); letter-spacing: -.035em; }
    .page-header .lead { margin: 0; max-width: 740px; color: var(--muted); font-size: 1rem; }
    .question-list { padding: 34px 0 66px; display: grid; gap: 16px; }
    .question-block { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
    .question-head { padding: 20px 24px 16px; border-bottom: 1px solid var(--line); }
    .question-head small { color: var(--green); font-weight: 800; font-size: .74rem; letter-spacing: .1em; }
    .question-head h2 { margin: 5px 0 6px; font-size: 1.24rem; }
    .concept-row { display: grid; grid-template-columns: 1.15fr 2fr auto; align-items: center; gap: 18px; padding: 16px 24px; border-top: 1px solid #edf0ec; }
    .concept-row:first-child { border-top: 0; }
    .concept-row strong { font-size: .95rem; }
    .concept-row p { margin: 0; color: var(--muted); font-size: .86rem; }
    .concept-row .go { border: 0; background: none; color: var(--green); font-weight: 750; cursor: pointer; padding: 5px; white-space: nowrap; }
    .concept-row .map-label { color: #8b948d; font-size: .78rem; white-space: nowrap; }

    /* ── updates (fast tier) ────────────────────────── */

    /* ── article ────────────────────────────────────── */
    .article-layout { display: grid; grid-template-columns: minmax(0, 740px) 260px; gap: 56px; padding: 12px 0 80px; align-items: start; }
    .article { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(25px, 5vw, 50px); }
    .article h1 { margin: 6px 0 5px; font-size: clamp(1.9rem, 4.2vw, 3rem); letter-spacing: -.03em; }
    .definition { margin: 0 0 26px; padding: 18px 20px; border-left: 4px solid var(--green); background: var(--green-soft); font-size: 1.02rem; }
    .article h2 { margin: 32px 0 12px; padding-bottom: 7px; border-bottom: 1px solid var(--line); font-size: 1.28rem; }
    .article p { margin: 0 0 15px; }
    .article ul { margin: 0 0 18px; padding-left: 22px; }
    .article li { margin: 6px 0; }
    .fact-list { display: grid; gap: 9px; margin: 0 0 18px; padding-left: 20px; color: #37423a; }
    .fact-list li { padding-left: 4px; }
    .fact-list li::marker { color: var(--green); }

    /* facts table */
    .facts-wrap { margin: 0 0 26px; overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
    table.facts { width: 100%; border-collapse: collapse; font-size: .86rem; }
    table.facts th, table.facts td { padding: 9px 13px; text-align: left; border-bottom: 1px solid #edf0ec; vertical-align: top; }
    table.facts thead th { background: #f4f5f1; color: var(--muted); font-weight: 700; font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
    table.facts tbody tr:last-child td { border-bottom: 0; }
    table.facts td.val { font-weight: 700; }
    table.facts td.src { color: var(--muted); font-size: .8rem; }

    /* contradiction */
    .contradiction { margin: 0 0 20px; border: 1px solid #e4c6bb; border-left: 4px solid var(--rust); border-radius: 8px; background: #fdf6f3; padding: 15px 18px; }
    .contradiction h4 { margin: 0 0 8px; font-family: inherit; font-size: .88rem; color: var(--rust); letter-spacing: .04em; }
    .contradiction dl { margin: 0; font-size: .88rem; }
    .contradiction dt { float: left; clear: left; width: 82px; color: var(--muted); font-weight: 700; }
    .contradiction dd { margin: 0 0 6px 90px; }

    .term-link { border: 0; border-bottom: 1px solid #b08aa0; background: none; padding: 0; color: var(--green); cursor: pointer; font-weight: 700; }
    .glossary-term { position: relative; border-bottom: 1px dotted var(--green); color: #5a2d44; cursor: help; outline: none; }
    .glossary-term::after {
      content: attr(data-definition);
      position: absolute; z-index: 40; left: 0; bottom: calc(100% + 8px);
      width: max-content; max-width: min(320px, calc(100vw - 40px));
      padding: 10px 12px; border-radius: 7px; background: #17221b; color: #f8faf8;
      box-shadow: 0 10px 28px rgba(10, 20, 14, .24);
      font-family: "Pretendard", "Noto Sans KR", sans-serif; font-size: .78rem; font-weight: 500; line-height: 1.55;
      white-space: normal; opacity: 0; visibility: hidden; transform: translateY(4px);
      transition: opacity .14s ease, transform .14s ease, visibility .14s ease; pointer-events: none;
    }
    .glossary-term:hover::after, .glossary-term:focus::after { opacity: 1; visibility: visible; transform: translateY(0); }
    .glossary-term:focus { border-bottom-style: solid; }
    .tooltip-hint { margin: -12px 0 22px; color: var(--muted); font-size: .76rem; }

    .aside { position: sticky; top: 88px; }
    .aside-box { border-top: 3px solid var(--green); background: var(--surface); padding: 18px; box-shadow: 0 8px 24px rgba(24,33,27,.05); }
    .aside-box h3 { margin: 0 0 12px; font-size: 1rem; }
    .related-list { display: grid; gap: 9px; }
    .related-list button { border: 0; background: none; padding: 0; text-align: left; color: var(--green); cursor: pointer; font-size: .87rem; }
    .source-box { margin-top: 16px; border-top-color: var(--blue); }
    .source-list { display: grid; gap: 9px; }
    .source-list a { color: var(--blue); font-size: .84rem; text-decoration: none; }
    .source-list a:hover { text-decoration: underline; }
    .paper-box { margin-top: 16px; border-top-color: var(--rust); }
    .paper-list { display: grid; gap: 9px; }
    .paper-list a { color: var(--rust); font-size: .82rem; line-height: 1.45; text-decoration: none; }
    .paper-list a:hover { text-decoration: underline; }
    .wiki-box { margin-top: 16px; border-top-color: #5f4a66; }
    .wiki-box code { display: block; margin-top: 4px; color: var(--muted); font-size: .74rem; word-break: break-all; }

    /* search */
    .search-page { padding-bottom: 72px; }
    .search-summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 10px 0 22px; }
    .search-summary p { margin: 0; color: var(--muted); }
    .filters { display: flex; flex-wrap: wrap; gap: 7px; }
    .filter-btn { border: 1px solid var(--line); border-radius: 999px; background: var(--surface); padding: 6px 12px; color: var(--muted); cursor: pointer; font-size: .8rem; }
    .filter-btn.active { border-color: var(--green); background: var(--green-soft); color: var(--green); font-weight: 750; }
    .results { display: grid; gap: 12px; }
    .result-card { border: 1px solid var(--line); border-radius: 8px; background: var(--surface); padding: 18px 20px; cursor: pointer; text-align: left; }
    .result-card:hover { border-color: #b39aa6; box-shadow: 0 7px 20px rgba(24, 33, 27, .05); }
    .result-path { color: var(--green); font-size: .76rem; font-weight: 750; }
    .result-card h2 { margin: 4px 0 6px; font-size: 1.2rem; }
    .result-card p { margin: 0; color: var(--muted); font-size: .89rem; }
    mark { background: #fff0ad; color: inherit; padding: 0 2px; }
    .empty { border: 1px dashed #c0b0b8; border-radius: var(--radius); padding: 48px 24px; text-align: center; color: var(--muted); }

    .schema-note { margin: 30px 0 0; padding: 16px 20px; border: 1px solid var(--line); border-radius: 8px; background: #fbfbf8; color: var(--muted); font-size: .82rem; }
    .schema-note b { color: var(--ink); }
    .schema-note ul { margin: 8px 0 0; padding-left: 20px; }

    footer { border-top: 1px solid var(--line); padding: 24px 0 34px; color: var(--muted); font-size: .78rem; }
    footer .container { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

    @media (max-width: 860px) {
      .topbar-inner { width: min(100% - 24px, 1180px); gap: 12px; }
      .brand { font-size: 1rem; }
      .keycap { display: none; }
      .container { width: min(100% - 28px, 1120px); }
      .hero { padding-top: 46px; }
      .grid { grid-template-columns: 1fr; }
      .card { min-height: 0; }
      .concept-row { grid-template-columns: 1fr auto; }
      .concept-row p { grid-column: 1 / -1; grid-row: 2; }
      .article-layout { grid-template-columns: 1fr; gap: 20px; }
      .aside { position: static; }
      .search-summary { align-items: flex-start; flex-direction: column; }
    }
    @media (max-width: 520px) {
      .topbar-inner { min-height: 58px; }
      .brand-domain { display: none; }
      .hero h1 { font-size: 2.2rem; }
      .act { padding-left: 12px; }
      .question-head, .concept-row { padding-left: 18px; padding-right: 18px; }
      .contradiction dt { float: none; width: auto; }
      .contradiction dd { margin-left: 0; }
      footer .container { flex-direction: column; }
    }
