
  :root{
    --bg:#faf8f4; --surface:#ffffff; --surface2:#f1ede4; --ink:#1a1712; --ink2:#5c554a;
    --line:#ddd5c6; --accent:#c2410c; --accent-soft:#fdeee3; --teal:#0f766e; --teal-soft:#e2f2ef;
    --warn:#b45309; --warn-soft:#fdf3e0; --bad:#b91c1c; --bad-soft:#fdeaea; --good:#15803d; --good-soft:#e8f5ec;
    --code-bg:#211c14; --code-ink:#f5ead6;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --bg:#14110d; --surface:#1e1a15; --surface2:#26211a; --ink:#f2ecdf; --ink2:#b3a893;
      --line:#3a332a; --accent:#fb923c; --accent-soft:#3a2413; --teal:#2dd4bf; --teal-soft:#123331;
      --warn:#fbbf24; --warn-soft:#3a2d10; --bad:#f87171; --bad-soft:#3d1717; --good:#4ade80; --good-soft:#14301d;
      --code-bg:#0d0b08; --code-ink:#f5ead6;
    }
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--bg);color:var(--ink);
    font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
    line-height:1.65;font-size:16px}
  .mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
  a{color:var(--accent);text-decoration:none}
  a:hover{text-decoration:underline}
  button,[role="button"],summary{min-height:2.25rem}

  /* top bar */
  .topbar{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line)}
  .topbar-in{max-width:1080px;margin:0 auto;padding:.55rem 1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
  .brand{font-weight:800;letter-spacing:.02em;font-size:.95rem}
  .brand span{color:var(--accent)}
  .updated{font-size:.8rem;color:var(--ink2)}
  .langtoggle{margin-left:auto;display:flex;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden}
  .langtoggle button{border:0;background:transparent;color:var(--ink);font:inherit;font-weight:700;
    padding:.45rem 1.1rem;cursor:pointer;min-height:2.5rem;font-size:.95rem}
  .langtoggle button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
  .langtoggle button:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}

  .wrap{max-width:1080px;margin:0 auto;padding:0 1rem 3rem}

  /* hero */
  .hero{padding:2.2rem 0 1.4rem;border-bottom:2px solid var(--ink)}
  .kicker{display:inline-block;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;
    padding:.2rem .7rem;border-radius:3px;letter-spacing:.06em}
  h1{font-size:clamp(2rem,6vw,3.4rem);line-height:1.12;margin:.7rem 0 .4rem;font-weight:900;letter-spacing:-.01em}
  .hero-sub{font-size:clamp(1rem,2.6vw,1.2rem);color:var(--ink2);max-width:46rem;margin:.2rem 0 1.2rem}
  .countdown{background:var(--code-bg);color:var(--code-ink);border-radius:10px;padding:1rem 1.2rem;
    display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
  .cd-label{font-size:.85rem;opacity:.85}
  .cd-label strong{display:block;font-size:1rem;opacity:1}
  .cd-nums{display:flex;gap:.55rem}
  .cd-cell{text-align:center;min-width:3.4rem}
  .cd-cell b{display:block;font-size:1.7rem;line-height:1.1;font-family:ui-monospace,Menlo,Consolas,monospace}
  .cd-cell span{font-size:.72rem;opacity:.75}
  .cd-done{font-weight:800;color:#fca5a5}
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-top:1rem}
  .stat{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.8rem .9rem}
  .stat b{display:block;font-size:1.35rem;line-height:1.2}
  .stat span{font-size:.82rem;color:var(--ink2)}

  /* nav */
  .toc{display:flex;flex-wrap:wrap;gap:.45rem;padding:1rem 0 .2rem}
  .toc a{background:var(--surface2);color:var(--ink);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;min-height:2.25rem;display:inline-flex;align-items:center}
  .toc a:hover{background:var(--accent-soft);text-decoration:none}

  section{padding:1.6rem 0 .4rem}
  h2{font-size:1.55rem;margin:0 0 .3rem;font-weight:850;line-height:1.3}
  h2 .no{color:var(--accent);font-family:ui-monospace,Menlo,monospace;font-size:1.1rem;margin-right:.4rem}
  .sec-lede{color:var(--ink2);margin:.1rem 0 1rem;max-width:48rem}
  h3{font-size:1.08rem;margin:1.2rem 0 .4rem}

  .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.7rem}
  .fact{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem}
  .fact dt{font-size:.8rem;color:var(--ink2);font-weight:700;letter-spacing:.03em}
  .fact dd{margin:.15rem 0 0;font-weight:650}
  dl.facts{margin:0}
  .callout{border-radius:8px;padding:.9rem 1.1rem;margin:1rem 0;font-size:.95rem}
  .callout.warn{background:var(--warn-soft);border:1px solid var(--warn)}
  .callout.teal{background:var(--teal-soft);border:1px solid var(--teal)}

  /* timeline */
  .tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
  .tl li{position:relative;padding:.35rem 0 .9rem 1.3rem}
  .tl li::before{content:"";position:absolute;left:-7px;top:.75rem;width:12px;height:12px;border-radius:50%;
    background:var(--bg);border:2.5px solid var(--accent)}
  .tl .d{font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:.9rem;color:var(--accent)}
  .tl p{margin:.1rem 0 0}

  /* tables */
  .table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
  table{border-collapse:collapse;width:100%;min-width:560px;font-size:.93rem}
  th,td{padding:.6rem .8rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
  thead th{background:var(--surface2);font-size:.85rem;letter-spacing:.02em;white-space:nowrap}
  tbody tr:last-child td{border-bottom:0}
  td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
  .hl td{background:var(--accent-soft);font-weight:650}
  .tnote{font-size:.85rem;color:var(--ink2);margin:.5rem 0 0}

  /* spec list */
  .spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}
  .spec div{padding:.7rem 1rem;border-bottom:1px solid var(--line)}
  .spec dt{font-size:.78rem;color:var(--ink2);font-weight:700}
  .spec dd{margin:.1rem 0 0;font-weight:600}

  /* routes */
  .routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.8rem}
  .route{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem}
  .route h3{margin:0 0 .3rem;font-size:1.02rem}
  .route h3 .rn{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;
    background:var(--accent);color:#fff;font-size:.9rem;margin-right:.45rem;vertical-align:-.35rem}
  .route p{margin:.2rem 0;font-size:.94rem}
  code{background:var(--surface2);border-radius:4px;padding:.05rem .35rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.86em;word-break:break-all}
  .codeblock{background:var(--code-bg);color:var(--code-ink);border-radius:8px;padding:.9rem 1.1rem;overflow-x:auto;
    font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.6;margin:.8rem 0;white-space:pre}

  /* reviews */
  .review{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem;margin-bottom:.8rem}
  .review header{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;margin-bottom:.35rem}
  .review h3{margin:0;font-size:1.02rem}
  .review .src{font-size:.82rem;color:var(--ink2)}
  .review p{margin:.3rem 0;font-size:.95rem}
  .verdict{display:inline-block;font-size:.78rem;font-weight:800;padding:.12rem .6rem;border-radius:999px;letter-spacing:.02em}
  .v-pos{background:var(--good-soft);color:var(--good);border:1px solid var(--good)}
  .v-mix{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn)}
  .v-cau{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad)}
  .v-info{background:var(--teal-soft);color:var(--teal);border:1px solid var(--teal)}

  .missing{columns:2;column-gap:2rem;margin:0;padding-left:1.2rem}
  .missing li{margin-bottom:.4rem;break-inside:avoid}
  @media (max-width:640px){.missing{columns:1}}

  .rumor{background:var(--bad-soft);border:1px solid var(--bad);border-radius:8px;padding:1rem 1.1rem;margin-bottom:.8rem}
  .rumor h3{margin:0 0 .3rem;font-size:1rem}
  .rumor p{margin:.25rem 0;font-size:.94rem}
  .unv{display:inline-block;background:var(--bad);color:#fff;font-size:.75rem;font-weight:800;padding:.12rem .55rem;border-radius:3px;letter-spacing:.05em}

  details{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:.6rem}
  summary{cursor:pointer;font-weight:700;padding:.8rem 1.1rem;min-height:2.75rem;display:flex;align-items:center}
  details div{padding:0 1.1rem .9rem;font-size:.95rem}
  details p{margin:.2rem 0}

  .sources{font-size:.92rem}
  .sources li{margin-bottom:.45rem}
  .sources .dt{color:var(--ink2);font-size:.82rem}

  footer{border-top:2px solid var(--ink);margin-top:2.2rem;padding:1.2rem 0 .5rem;font-size:.88rem;color:var(--ink2)}
  footer p{margin:.3rem 0}

  /* article view */
  .crumbs{font-size:.85rem;color:var(--ink2);padding:1.2rem 0 .4rem}
  .crumbs a{color:var(--ink2)}
  .art-meta{font-size:.85rem;color:var(--ink2);margin:.3rem 0 1rem}
  .art-body h2{font-size:1.3rem;margin:1.6rem 0 .5rem}
  .art-body p{margin:.5rem 0}
  .art-body ul{margin:.4rem 0 .8rem;padding-left:1.3rem}
  .art-body li{margin-bottom:.3rem}
  .art-take{background:var(--teal-soft);border:1px solid var(--teal);border-radius:8px;padding:.9rem 1.1rem;margin:1.2rem 0}
  .art-rel{border-top:1px solid var(--line);margin-top:1.8rem;padding-top:1rem}
  .art-rel h2{font-size:1.15rem}
  .art-src{font-size:.85rem;color:var(--ink2);border-top:1px solid var(--line);margin-top:1.4rem;padding-top:.9rem}
  .backlink{display:inline-block;font-weight:700;margin:1rem 0}
  .artlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.7rem}
  .artcard{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.9rem 1.05rem;display:block;color:var(--ink)}
  .artcard:hover{border-color:var(--accent);text-decoration:none}
  .artcard b{display:block;font-size:1rem;line-height:1.4}
  .artcard span{font-size:.84rem;color:var(--ink2)}
  .readlocal{font-weight:800}
  [hidden]{display:none !important}
  @media (max-width:560px){
    .cd-cell{min-width:2.9rem}.cd-cell b{font-size:1.4rem}
    table{min-width:520px}
  }

/* site header nav + home model cards (ModelBrief skeleton) */
.brand a{color:var(--ink)}
.brand a:hover{color:var(--accent);text-decoration:none}
.artcard .kicker{color:#fff;font-size:.8rem;margin-bottom:.5rem}
