  :root{
    --bg:#0c0b0a;
    --bg-2:#141210;
    --bg-3:#1a1714;
    --line:#2a2521;
    --line-soft:#1f1b18;
    --ink:#f4f0e9;
    --ink-soft:#d4cec1;
    --ink-mute:#8d877c;
    --accent:#e08362;
    --accent-2:#f0a888;
    --accent-soft:#3a221a;
    --danger:#d68a7a;
    --serif:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;
    --sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;
    --mono:"JetBrains Mono", "Noto Sans TC", ui-monospace, Menlo, monospace;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);}
  body{
    font-family:var(--sans);
    font-size:16px;
    line-height:1.7;
    letter-spacing:0.005em;
    font-weight:400;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--accent);color:#0c0b0a}

  /* layout */
  .page{max-width:1280px;margin:0 auto;padding:0 56px}
  @media (max-width:720px){.page{padding:0 22px}}

  .rule{height:1px;background:var(--line);width:100%}
  .rule-soft{height:1px;background:var(--line-soft);width:100%}

  /* top nav */
  .topnav{
    display:flex;align-items:center;justify-content:space-between;
    padding:22px 0; border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:30;background:rgba(12,11,10,.86);
    backdrop-filter:blur(8px);
  }
  .brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:22px;letter-spacing:.01em}
  .brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(224,131,98,.14)}
  .topnav .meta{display:flex;gap:32px;color:var(--ink-soft);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
  .topnav .meta span{display:flex;gap:8px;align-items:center}
  .topnav .meta em{color:var(--ink);font-style:normal;letter-spacing:.04em;text-transform:none}
  @media(max-width:720px){.topnav .meta{display:none}}

  /* hero */
  .hero{padding:72px 0 56px;position:relative;border-bottom:1px solid var(--line)}
  .hero .eyebrow{
    display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
    padding-bottom:32px;
  }
  .hero h1{
    font-family:var(--serif);font-weight:400;
    font-size:112px;
    line-height:.96;letter-spacing:0;
    margin:0;
    text-wrap:balance;
  }
  @media(max-width:960px){.hero h1{font-size:82px}}
  @media(max-width:720px){.hero h1{font-size:52px}}
  .hero h1 .it{font-style:normal;color:var(--ink-soft)}
  .hero h1 .accent{color:var(--accent)}
  .hero .sub{
    display:grid;grid-template-columns:1fr 1fr;gap:48px;
    margin-top:64px;padding-top:28px;border-top:1px solid var(--line);
  }
  @media (max-width:820px){.hero .sub{grid-template-columns:1fr;gap:24px}}
  .hero .sub p{font-size:17px;color:var(--ink-soft);max-width:48ch;margin:0;line-height:1.6}
  .hero .sub .key{
    font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);
    margin-bottom:14px;display:block
  }

  .hero .tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:36px}
  @media(max-width:720px){
    .hero .tags{display:grid;grid-template-columns:1fr;justify-items:start}
  }
  .hero-metrics{
    padding:48px 0 64px;display:flex;gap:48px;flex-wrap:wrap;color:var(--ink-mute);
    font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase
  }
  @media(max-width:720px){
    .hero-metrics{gap:18px 24px;font-size:10.5px}
    .hero-metrics span{white-space:nowrap}
  }
  .tag{
    font-family:var(--mono);font-size:11px;letter-spacing:.1em;
    padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);
    text-transform:uppercase;white-space:nowrap;flex:0 0 auto
  }
  .tag.lime,.tag.lobster{background:var(--accent);color:#0c0b0a;border-color:var(--accent)}

  .hero .sub ul,.hero .sub ol{margin:0;padding-left:1.1em;color:var(--ink-soft)}
  .hero .sub li{font-size:15px;line-height:1.55;margin:0 0 8px}
  .hero .sub li::marker{color:var(--accent)}
  .hero .sub p + ul,.hero .sub ul + p,.hero .sub ol + p{margin-top:14px}
  .hero-guide{
    margin-top:clamp(22px,3vw,38px);
    padding:15px 0 0 18px;
    border-top:1px solid var(--line);
    border-left:1px solid rgba(224,131,98,.4);
    max-width:58ch;
  }
  .hero-guide p{
    margin:0;
    color:var(--ink-mute);
    font-size:14.5px;
    line-height:1.72;
  }
  @media(min-width:821px){
    .hero-guide{margin-left:calc(50% + 24px)}
  }
  @media(min-width:1200px){
    .hero-guide{
      margin-left:0;
      max-width:none;
      padding:14px 18px 15px;
      border:1px solid var(--line-soft);
      border-left:2px solid rgba(224,131,98,.45);
      background:rgba(224,131,98,.025);
    }
    .hero-guide p{
      columns:2 34ch;
      column-gap:46px;
      font-size:13.5px;
      line-height:1.68;
    }
  }
  @media(max-width:820px){
    .hero-guide{margin-top:18px;padding-left:14px;max-width:none}
    .hero-guide p{font-size:14px;line-height:1.68}
  }

  /* section header */
  section{padding:96px 0;border-bottom:1px solid var(--line-soft)}
  .page > section[id]:not(#toc){
    content-visibility:auto;
    contain-intrinsic-size:auto 1400px;
  }
  .page > section[id]:target{content-visibility:visible}
  @media(max-width:720px){
    .page > section[id]:not(#toc){contain-intrinsic-size:auto 1800px}
  }
  .sec-head{display:block;margin-bottom:48px;}
  .sec-head .num{
    font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--ink-mute);
    text-transform:uppercase;
    display:flex;align-items:center;gap:14px;
    margin-bottom:20px;
    padding-bottom:14px;border-bottom:1px solid var(--line-soft);
  }
  .sec-head .num::before{
    content:"";display:inline-block;width:18px;height:1px;background:var(--accent);
  }
  .sec-head h2{
    font-family:var(--serif);font-weight:400;
    font-size:58px;line-height:1.04;letter-spacing:0;
    margin:0;
    text-wrap:balance;
  }
  @media(max-width:720px){.sec-head h2{font-size:38px}}
  .sec-head h2 .it{font-style:normal;color:var(--ink-soft)}
  .sec-head h2 .accent{color:var(--accent)}
  .sec-head .kicker{
    font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--accent);
    text-transform:uppercase;margin-bottom:18px;display:block
  }
  .part-section{
    background:
      radial-gradient(120% 60% at 50% 0%, rgba(224,131,98,.045), transparent 62%),
      linear-gradient(180deg, rgba(224,131,98,.025), transparent 46%);
    border-top:1px solid var(--accent-soft);
    border-bottom:1px solid var(--accent-soft);
  }
  .part-section .sec-head{margin-bottom:34px}
  .part-section .sec-head .num{color:var(--accent);border-bottom-color:var(--accent-soft)}
  .part-section .sec-head h2{font-size:56px;color:var(--accent)}
  .part-section .prose p.lead{
    font-family:var(--serif);
    font-size:24px;
    line-height:1.5;
    color:var(--ink);
    max-width:74ch;
  }
  @media(max-width:720px){
    .part-section .sec-head h2{font-size:38px}
  }

  /* prose */
  .prose{display:block}
  .prose .gut{
    font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--ink-mute);
    text-transform:uppercase;
    display:inline-flex;align-items:center;gap:12px;
    margin-bottom:18px;
  }
  .prose .gut::before{
    content:"";display:inline-block;width:14px;height:1px;background:var(--ink-mute);
  }
  .prose .body{max-width:none}
  .prose h3{
    font-family:var(--serif);font-weight:500;font-size:26px;letter-spacing:0;
    margin:48px 0 16px;color:var(--ink);
  }
  .prose h4{
    font-family:var(--mono);font-weight:500;font-size:13px;letter-spacing:.12em;
    text-transform:uppercase;color:var(--accent);
    margin:32px 0 10px;
  }
  .prose p{margin:0 0 22px;color:var(--ink);font-size:17px;line-height:1.72}
  .prose p.lead{font-family:var(--serif);font-size:26px;line-height:1.4;color:var(--ink);letter-spacing:0;margin-bottom:32px}
  .prose .soft{color:var(--ink-soft)}
  .prose ul,.prose ol{padding-left:1.25em;margin:0 0 22px;color:var(--ink)}
  .prose ul li,.prose ol li{margin:0 0 10px;font-size:16.5px;line-height:1.65}
  .prose blockquote{
    margin:32px 0;padding:18px 0 18px 28px;border-left:1px solid var(--accent);
    font-family:var(--serif);font-style:normal;font-size:22px;line-height:1.45;color:var(--ink);
  }
  .prose blockquote .cite{display:block;margin-top:12px;font-size:13px;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-family:var(--sans);font-weight:500}
  .prose blockquote.q-small{font-size:18px;line-height:1.55}

  .pull{
    font-family:var(--serif);font-size:42px;line-height:1.18;letter-spacing:0;
    color:var(--ink);text-wrap:balance;margin:36px 0
  }
  @media(max-width:720px){.pull{font-size:30px}}
  .pull em{color:var(--accent);font-style:normal;font-weight:500}

  /* code */
  pre,.code{
    font-family:var(--mono);font-size:13.5px;line-height:1.7;
    background:var(--bg-2);border:1px solid var(--line);
    padding:22px 24px 18px;color:#d4cfc6;overflow:auto;
    margin:24px 0;
    position:relative;
  }
  pre::before{
    content:attr(data-lang);position:absolute;top:8px;right:14px;
    font-size:10px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase
  }
  code{font-family:var(--mono);background:var(--bg-3);padding:2px 6px;border-radius:3px;font-size:.86em;color:#e3ddd1}
  pre code{background:transparent;padding:0;border-radius:0;color:inherit;font-size:1em}

  /* hand-tailored terminal */
  .term41{
    --t-bg:#100d0b;
    --t-bg-2:#16110e;
    --t-line:#2a221d;
    --t-ink:#ece4d4;
    --t-mute:#7a7166;
    --t-dim:#544c43;
    --t-acc:#e08362;
    --t-acc-2:#f0b48a;
    --t-yellow:#d9b26a;
    --t-green:#9ab07a;
    --t-cyan:#7fa9a0;
    --t-rose:#c98577;
    position:relative;
    margin:30px 0 36px;
    border:1px solid var(--t-line);
    background:
      radial-gradient(140% 80% at 0% 0%, rgba(224,131,98,.06), transparent 55%),
      radial-gradient(120% 80% at 100% 100%, rgba(240,180,140,.035), transparent 55%),
      linear-gradient(180deg, var(--t-bg-2), var(--t-bg) 60%);
    border-radius:10px;
    box-shadow:
      0 1px 0 rgba(255,255,255,.025) inset,
      0 24px 60px -28px rgba(0,0,0,.85),
      0 0 0 1px rgba(224,131,98,.06);
    overflow:hidden;
    font-family:var(--mono);
  }
  .term41::before{
    content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
    background-image:linear-gradient(transparent 50%, rgba(255,255,255,.012) 50%);
    background-size:100% 3px;
    mix-blend-mode:overlay;
  }
  .term41::after{
    content:"";position:absolute;left:-20%;top:-40%;width:60%;height:80%;
    background:radial-gradient(closest-side, rgba(224,131,98,.10), transparent 70%);
    pointer-events:none;z-index:0;
  }
  .term41-chrome{
    position:relative;z-index:3;
    display:flex;align-items:center;gap:18px;
    padding:11px 16px 10px;
    background:linear-gradient(180deg, #1b1612, #15110e);
    border-bottom:1px solid var(--t-line);
  }
  .term41-dots{display:flex;gap:7px}
  .term41-dots i{
    width:11px;height:11px;border-radius:50%;display:block;
    box-shadow:0 0 0 1px rgba(0,0,0,.4) inset, 0 1px 0 rgba(255,255,255,.05);
  }
  .term41-dots i:nth-child(1){background:#d96a55}
  .term41-dots i:nth-child(2){background:#d9b26a}
  .term41-dots i:nth-child(3){background:#8ca97a}
  .term41-title{
    flex:1;text-align:center;
    font-size:11.5px;letter-spacing:.14em;color:var(--t-mute);
    text-transform:uppercase;
  }
  .term41-title b{color:var(--t-ink);font-weight:500;letter-spacing:.06em}
  .term41-title em{font-style:normal;color:var(--t-acc)}
  .term41-meta{
    display:flex;align-items:center;gap:10px;
    font-size:10px;letter-spacing:.18em;color:var(--t-mute);text-transform:uppercase;
  }
  .term41-meta .led{
    width:6px;height:6px;border-radius:50%;background:var(--t-green);
    box-shadow:0 0 8px rgba(154,176,122,.7);
    animation:term41-pulse 2.4s ease-in-out infinite;
  }
  @keyframes term41-pulse{0%,100%{opacity:.6}50%{opacity:1}}
  .term41-tabs{
    position:relative;z-index:3;
    display:flex;align-items:stretch;
    padding:0 10px;
    background:linear-gradient(180deg, #14100d, #100c0a);
    border-bottom:1px solid var(--t-line);
    font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  }
  .term41-tabs .t{
    display:flex;align-items:center;gap:8px;
    padding:9px 14px;color:var(--t-mute);
    border-right:1px solid var(--t-line);
    position:relative;
  }
  .term41-tabs .t.active{color:var(--t-ink);background:rgba(224,131,98,.05)}
  .term41-tabs .t.active::after{
    content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--t-acc);
  }
  .term41-tabs .t .x{color:var(--t-dim);font-size:10px}
  .term41-tabs .t.add{color:var(--t-dim);border-right:none;padding:9px 12px}
  .term41-body{
    position:relative;z-index:1;
    padding:18px 0 14px;
    font-size:13px;line-height:1.85;color:var(--t-ink);
  }
  .term41-row{
    display:grid;grid-template-columns:48px 1fr;
    column-gap:0;
    padding:0 18px 0 0;
  }
  .term41-row .gn{
    color:var(--t-dim);text-align:right;padding-right:14px;
    border-right:1px solid rgba(42,34,29,.6);
    user-select:none;font-size:11.5px;letter-spacing:.04em;
  }
  .term41-row .ln-body{padding-left:16px;white-space:pre;overflow-x:auto}
  .term41 .cm{color:var(--t-mute);font-style:normal}
  .term41 .pr{color:var(--t-acc);margin-right:8px;font-weight:600}
  .term41 .host{color:var(--t-cyan)}
  .term41 .path{color:var(--t-yellow)}
  .term41 .arrow{color:var(--t-acc);margin:0 6px}
  .term41 .cmd{color:var(--t-acc-2);font-weight:600}
  .term41 .sub{color:var(--t-ink)}
  .term41 .act{color:var(--t-yellow)}
  .term41 .str{color:var(--t-green)}
  .term41 .flag{color:var(--t-cyan)}
  .term41 .val{color:var(--t-ink)}
  .term41 .arg{color:var(--t-rose)}
  .term41 .inline-cm{color:var(--t-dim);margin-left:14px;font-style:normal}
  .term41 .cursor{
    display:inline-block;width:8px;height:14px;background:var(--t-acc);
    vertical-align:-2px;margin-left:4px;
    animation:term41-blink 1.05s steps(2,start) infinite;
    box-shadow:0 0 10px rgba(224,131,98,.55);
  }
  @keyframes term41-blink{50%{opacity:0}}
  .term41-divider{
    display:grid;grid-template-columns:48px 1fr;align-items:center;
    color:var(--t-dim);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
    margin:6px 0 4px;
  }
  .term41-divider .gn{text-align:right;padding-right:14px;color:var(--t-dim)}
  .term41-divider .lab{
    padding-left:16px;display:flex;align-items:center;gap:12px;
    color:var(--t-mute);
  }
  .term41-divider .lab::after{
    content:"";flex:1;height:1px;
    background:linear-gradient(90deg, rgba(122,113,102,.35), transparent);
  }
  .term41-foot{
    position:relative;z-index:3;
    display:flex;align-items:center;
    background:linear-gradient(180deg, #14100d, #100c0a);
    border-top:1px solid var(--t-line);
    font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--t-mute);
  }
  .term41-foot .seg{padding:8px 14px;border-right:1px solid var(--t-line)}
  .term41-foot .seg.mode{background:var(--t-acc);color:#19120e;font-weight:600;letter-spacing:.2em}
  .term41-foot .seg.git::before{content:"⎇  ";color:var(--t-acc)}
  .term41-foot .seg.right{margin-left:auto;border-right:none;border-left:1px solid var(--t-line);color:var(--t-mute)}
  .term41-foot .seg b{color:var(--t-ink);font-weight:500}

  /* hand-tailored file tree and editor */
  .fs42, .vim42{
    --t-bg:#100d0b; --t-bg-2:#16110e; --t-line:#2a221d;
    --t-ink:#ece4d4; --t-mute:#7a7166; --t-dim:#544c43;
    --t-acc:#e08362; --t-acc-2:#f0b48a;
    --t-yellow:#d9b26a; --t-green:#9ab07a; --t-cyan:#7fa9a0; --t-rose:#c98577;
    position:relative;margin:28px 0 32px;
    border:1px solid var(--t-line);border-radius:10px;overflow:hidden;
    font-family:var(--mono);
    background:
      radial-gradient(140% 80% at 0% 0%, rgba(224,131,98,.06), transparent 55%),
      radial-gradient(120% 80% at 100% 100%, rgba(240,180,140,.035), transparent 55%),
      linear-gradient(180deg, var(--t-bg-2), var(--t-bg) 60%);
    box-shadow:
      0 1px 0 rgba(255,255,255,.025) inset,
      0 24px 60px -28px rgba(0,0,0,.85),
      0 0 0 1px rgba(224,131,98,.06);
  }
  .fs42::before, .vim42::before{
    content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
    background-image:linear-gradient(transparent 50%, rgba(255,255,255,.012) 50%);
    background-size:100% 3px;mix-blend-mode:overlay;
  }
  .fs42::after, .vim42::after{
    content:"";position:absolute;left:-20%;top:-40%;width:60%;height:80%;
    background:radial-gradient(closest-side, rgba(224,131,98,.10), transparent 70%);
    pointer-events:none;z-index:0;
  }
  .fs42-chrome, .vim42-chrome{
    position:relative;z-index:3;display:flex;align-items:center;gap:18px;
    padding:11px 16px 10px;
    background:linear-gradient(180deg, #1b1612, #15110e);
    border-bottom:1px solid var(--t-line);
  }
  .fs42-dots, .vim42-dots{display:flex;gap:7px}
  .fs42-dots i, .vim42-dots i{
    width:11px;height:11px;border-radius:50%;display:block;
    box-shadow:0 0 0 1px rgba(0,0,0,.4) inset, 0 1px 0 rgba(255,255,255,.05);
  }
  .fs42-dots i:nth-child(1), .vim42-dots i:nth-child(1){background:#d96a55}
  .fs42-dots i:nth-child(2), .vim42-dots i:nth-child(2){background:#d9b26a}
  .fs42-dots i:nth-child(3), .vim42-dots i:nth-child(3){background:#8ca97a}
  .fs42-title, .vim42-title{
    flex:1;text-align:center;font-size:11.5px;letter-spacing:.14em;
    color:var(--t-mute);text-transform:uppercase;
  }
  .fs42-title b, .vim42-title b{color:var(--t-ink);font-weight:500;letter-spacing:.06em}
  .fs42-title em, .vim42-title em{font-style:normal;color:var(--t-acc)}
  .fs42-meta, .vim42-meta{
    display:flex;align-items:center;gap:10px;
    font-size:10px;letter-spacing:.18em;color:var(--t-mute);text-transform:uppercase;
  }
  .fs42-meta .led{
    width:6px;height:6px;border-radius:50%;background:var(--t-green);
    box-shadow:0 0 8px rgba(154,176,122,.7);
    animation:term41-pulse 2.4s ease-in-out infinite;
  }
  .fs42-body{
    position:relative;z-index:1;
    padding:18px 24px 14px;
    font-size:13.5px;line-height:1.95;color:var(--t-ink);
  }
  .fs42-cmd{
    color:var(--t-mute);font-size:12.5px;
    padding-bottom:14px;margin-bottom:14px;
    border-bottom:1px dashed rgba(122,113,102,.25);
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  }
  .fs42-cmd .pr{color:var(--t-acc);font-weight:600;font-size:14px}
  .fs42-cmd .arg{color:var(--t-ink)}
  .fs42-cmd .flag{color:var(--t-cyan)}
  .fs42-cmd .val{color:var(--t-yellow)}
  .fs42-row{
    display:grid;grid-template-columns:minmax(0,260px) 1fr;
    align-items:baseline;column-gap:0;padding:1px 0;
  }
  .fs42-row .lhs{white-space:pre;font-size:13.5px}
  .fs42-row .rhs{
    color:var(--t-mute);font-style:normal;font-size:12.5px;
    border-left:1px solid rgba(42,34,29,.7);padding-left:18px;
  }
  .fs42-row.root{padding-bottom:6px;border-bottom:1px solid rgba(42,34,29,.5);margin-bottom:6px}
  .fs42-row.root .lhs{grid-column:1/-1}
  .fs42-row .br{color:var(--t-dim)}
  .fs42-row .dir{color:var(--t-acc-2);font-weight:600}
  .fs42-row .dir::after{content:"/";color:var(--t-dim);font-weight:400}
  .fs42-row .file{color:var(--t-ink)}
  .fs42-row .file.md{color:var(--t-acc);font-weight:600}
  .fs42-row .file.py{color:var(--t-green);font-weight:600}
  .fs42-row .size{color:var(--t-dim);font-size:11.5px;margin-left:14px;letter-spacing:.04em}
  .fs42-foot{
    position:relative;z-index:3;display:flex;align-items:center;
    background:linear-gradient(180deg, #14100d, #100c0a);
    border-top:1px solid var(--t-line);
    font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--t-mute);
  }
  .fs42-foot .seg{padding:8px 14px;border-right:1px solid var(--t-line)}
  .fs42-foot .seg.acc{color:var(--t-acc)}
  .fs42-foot .seg.right{margin-left:auto;border-right:none;border-left:1px solid var(--t-line)}
  .fs42-foot .seg b{color:var(--t-ink);font-weight:500}
  .vim42-bufbar{
    position:relative;z-index:3;display:flex;align-items:stretch;
    background:linear-gradient(180deg, #14100d, #100c0a);
    border-bottom:1px solid var(--t-line);
    font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  }
  .vim42-bufbar .buf{
    display:flex;align-items:center;gap:8px;padding:9px 14px;color:var(--t-ink);
    border-right:1px solid var(--t-line);background:rgba(224,131,98,.05);
    position:relative;
  }
  .vim42-bufbar .buf::after{
    content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--t-acc);
  }
  .vim42-bufbar .buf .x{color:var(--t-acc);font-size:11px}
  .vim42-bufbar .ghost{
    display:flex;align-items:center;gap:8px;padding:9px 14px;color:var(--t-dim);
    border-right:1px solid var(--t-line);
  }
  .vim42-bufbar .ml{margin-left:auto;padding:9px 14px;color:var(--t-mute)}
  .vim42-bufbar .ml em{color:var(--t-acc);font-style:normal}
  .vim42-body{
    position:relative;z-index:1;
    padding:12px 0 6px;
    font-size:13.5px;line-height:1.85;color:var(--t-ink);
  }
  .vim42-row{
    display:grid;grid-template-columns:56px 1fr;
    padding:0 18px 0 0;
  }
  .vim42-row .gn{
    text-align:right;padding-right:14px;color:var(--t-dim);
    font-size:11.5px;user-select:none;
    border-right:1px solid rgba(42,34,29,.6);
    font-variant-numeric:tabular-nums;
  }
  .vim42-row .bd{padding-left:18px;white-space:pre-wrap;overflow-wrap:anywhere}
  .vim42-row.is-cursor .gn{color:var(--t-acc);background:rgba(224,131,98,.07)}
  .vim42-row.is-cursor .bd{background:rgba(224,131,98,.05)}
  .vim42-row.tilde .gn{color:var(--t-dim);border-right-color:rgba(42,34,29,.4)}
  .vim42-row.tilde .bd{color:var(--t-dim)}
  .vim42 .yd{color:var(--t-acc);letter-spacing:.04em;font-weight:600}
  .vim42 .yk{color:var(--t-cyan)}
  .vim42 .yv{color:var(--t-yellow)}
  .vim42 .yl{color:var(--t-rose);font-weight:600}
  .vim42 .pn{color:var(--t-mute)}
  .vim42 .h2-mark{color:var(--t-acc);font-weight:700}
  .vim42 .h2{color:var(--t-acc-2);font-weight:600}
  .vim42 .ol{color:var(--t-yellow);font-weight:600}
  .vim42 .li{color:var(--t-rose);font-weight:600;margin-right:6px}
  .vim42 .code{
    color:var(--t-green);background:rgba(154,176,122,.08);
    padding:0 5px;border-radius:3px;
    border:1px solid rgba(154,176,122,.14);
    font-size:12.5px;
  }
  .vim42 .str{color:var(--t-rose)}
  .vim42 .em{color:var(--t-ink)}
  .vim42-status{
    position:relative;z-index:3;display:flex;align-items:stretch;
    background:linear-gradient(180deg, #14100d, #100c0a);
    border-top:1px solid var(--t-line);
    font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--t-mute);
  }
  .vim42-status .seg{padding:8px 14px;border-right:1px solid var(--t-line)}
  .vim42-status .seg.mode{background:var(--t-acc);color:#19120e;font-weight:700;letter-spacing:.22em}
  .vim42-status .seg.file{color:var(--t-ink)}
  .vim42-status .seg.acc{color:var(--t-acc)}
  .vim42-status .seg.right{margin-left:auto;border-right:none;border-left:1px solid var(--t-line)}
  .vim42-status .seg b{color:var(--t-ink);font-weight:500}
  @media(max-width:720px){
    .term41-title,.fs42-title,.vim42-title{text-align:left;font-size:10px}
    .term41-meta,.fs42-meta,.vim42-meta,.vim42-bufbar .ml{display:none}
    .term41-tabs,.term41-foot,.fs42-foot,.vim42-status{overflow-x:auto}
    .fs42-row{grid-template-columns:1fr}
    .fs42-row .rhs{border-left:none;padding-left:24px}
  }

  /* ── Tarski stack: animated meta-language hierarchy ───────────────── */
  .tarski-stack{
    position:relative;
    margin:36px 0 40px;
    padding:40px 36px 24px;
    background:
      radial-gradient(120% 60% at 50% 0%, rgba(224,131,98,.05), transparent 60%),
      linear-gradient(180deg, var(--bg-2) 0%, var(--bg-2) 70%, var(--bg) 100%);
    border:1px solid var(--line);
    overflow:hidden;
  }
  .tarski-stack::after{
    /* very faint baseline grid texture */
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(transparent 49.5%, rgba(255,255,255,.018) 49.5% 50.5%, transparent 50.5%);
    background-size:100% 32px;
    mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
    -webkit-mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
  }
  .tarski-stack .ts-corner{
    position:absolute;top:12px;right:16px;
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;
  }
  .tarski-stack .ts-corner sub{font-size:10px}

  .tarski-stack .ts-inner{
    position:relative;z-index:1;
    display:flex;flex-direction:column;
    max-width:520px;margin:0 auto;
  }

  /* dots — the ⋮ at top */
  .tarski-stack .ts-dots{
    text-align:center;color:var(--ink-mute);
    font-family:var(--mono);font-size:22px;line-height:1;letter-spacing:.4em;
    padding:4px 0 2px;
    opacity:0;transform:translateY(-4px);
    animation:ts-fade-in .7s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
  }
  .tarski-stack .ts-dots-cap{
    display:block;font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;margin-top:8px;
  }

  /* arrow row between layers */
  .tarski-stack .ts-arrow{
    position:relative;
    height:54px;
    display:flex;align-items:center;justify-content:center;
  }
  .tarski-stack .ts-line{
    position:relative;
    width:1px;height:100%;
    background:linear-gradient(180deg, var(--accent) 0%, var(--accent) 80%, rgba(224,131,98,.35) 100%);
    transform:scaleY(0);transform-origin:bottom;
    animation:ts-draw .55s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
  }
  .tarski-stack .ts-head{
    position:absolute;top:-1px;left:50%;
    width:10px;height:10px;
    border-top:1.5px solid var(--accent);
    border-right:1.5px solid var(--accent);
    transform:translate(-50%, 0) rotate(-45deg);
    opacity:0;
    animation:ts-fade-in .35s ease forwards;
    animation-delay:calc(var(--d, 0s) + .42s);
  }
  /* travelling "gaze" pulse: each Ln+1 looks down at Ln */
  .tarski-stack .ts-pulse{
    position:absolute;left:50%;top:0;
    width:7px;height:7px;border-radius:50%;
    background:var(--accent-2);
    box-shadow:0 0 12px 2px rgba(240,168,136,.55), 0 0 22px rgba(224,131,98,.3);
    transform:translate(-50%, -10px);
    opacity:0;
    animation:ts-gaze 4.2s cubic-bezier(.4,.05,.6,.95) infinite;
    animation-delay:calc(var(--d, 0s) + 1.2s + var(--pd, 0s));
  }
  .tarski-stack .ts-alab{
    position:absolute;left:calc(50% + 18px);top:50%;
    transform:translateY(-50%);
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;white-space:nowrap;
    opacity:0;
    animation:ts-fade-in .5s ease forwards;
    animation-delay:calc(var(--d, 0s) + .55s);
  }
  .tarski-stack .ts-alab sub{font-size:9px}

  /* layer card */
  .tarski-stack .ts-layer{
    display:grid;
    grid-template-columns:84px 1fr auto;
    align-items:center;gap:20px;
    padding:18px 22px;
    background:rgba(255,255,255,.012);
    border:1px solid var(--line);
    opacity:0;transform:translateY(8px);
    animation:ts-rise .65s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
    transition:border-color .25s ease, background .25s ease;
  }
  .tarski-stack .ts-layer:hover{
    border-color:var(--accent);
    background:rgba(224,131,98,.05);
  }
  .tarski-stack .ts-layer.is-base{
    background:rgba(224,131,98,.04);
    border-color:var(--accent-soft);
  }
  .tarski-stack .ts-ix{
    font-family:var(--mono);font-size:38px;line-height:1;
    color:var(--accent);letter-spacing:.01em;
  }
  .tarski-stack .ts-layer.is-base .ts-ix{color:var(--ink)}
  .tarski-stack .ts-ix sub{font-size:.6em;letter-spacing:0}
  .tarski-stack .ts-name{
    font-family:var(--serif);font-size:17px;color:var(--ink);letter-spacing:.01em;
  }
  .tarski-stack .ts-desc{
    font-family:var(--mono);font-size:11px;color:var(--ink-soft);
    letter-spacing:.16em;text-transform:uppercase;margin-top:4px;
  }
  .tarski-stack .ts-desc sub{font-size:10px;letter-spacing:0}
  .tarski-stack .ts-tag{
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;text-align:right;
  }
  .tarski-stack .ts-tag sup{font-size:9px}

  .tarski-stack .ts-cap{
    margin-top:22px;padding-top:14px;
    border-top:1px solid var(--line-soft);
    font-family:var(--mono);font-size:11px;letter-spacing:.16em;
    color:var(--ink-soft);text-transform:uppercase;text-align:center;
  }
  .tarski-stack .ts-cap em{color:var(--accent);font-style:normal}

  @media (max-width:540px){
    .tarski-stack{padding:28px 18px 16px}
    .tarski-stack .ts-layer{grid-template-columns:60px 1fr;gap:14px;padding:14px 16px}
    .tarski-stack .ts-tag{display:none}
    .tarski-stack .ts-ix{font-size:30px}
    .tarski-stack .ts-alab{left:calc(50% + 14px);font-size:9px;letter-spacing:.18em}
  }

  @keyframes ts-rise   { to { opacity:1; transform:none } }
  @keyframes ts-fade-in{ to { opacity:1; transform:none } }
  @keyframes ts-draw   { to { transform:scaleY(1) } }
  @keyframes ts-gaze{
    0%   { transform:translate(-50%, -6px); opacity:0 }
    12%  { opacity:1 }
    78%  { opacity:1 }
    100% { transform:translate(-50%, 54px); opacity:0 }
  }

  @media (prefers-reduced-motion: reduce){
    .tarski-stack .ts-dots,
    .tarski-stack .ts-layer,
    .tarski-stack .ts-head,
    .tarski-stack .ts-alab{ opacity:1 !important; transform:none !important; animation:none !important }
    .tarski-stack .ts-line{ transform:scaleY(1) !important; animation:none !important }
    .tarski-stack .ts-pulse{ display:none }
  }
  /* ─────────────────────────────────────────────────────────────────── */

  /* ── Seoul scene: bifurcation of data vs instruction ──────────────── */
  .seoul-scene{
    position:relative;
    margin:36px 0 40px;
    padding:40px 36px 28px;
    background:
      radial-gradient(120% 60% at 50% 0%, rgba(224,131,98,.06), transparent 60%),
      linear-gradient(180deg, var(--bg-2) 0%, var(--bg-2) 70%, var(--bg) 100%);
    border:1px solid var(--line);
    overflow:hidden;
  }
  .seoul-scene::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(transparent 49.5%, rgba(255,255,255,.018) 49.5% 50.5%, transparent 50.5%);
    background-size:100% 32px;
    mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
    -webkit-mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
  }
  .seoul-scene .ss-corner{
    position:absolute;top:12px;right:16px;
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;
  }
  .seoul-scene .ss-corner .dot{
    display:inline-block;width:6px;height:6px;border-radius:50%;
    background:var(--accent);box-shadow:0 0 0 3px rgba(224,131,98,.14);
    margin-right:6px;vertical-align:1px;
    animation:ss-blink 2.4s ease-in-out infinite;
  }
  .seoul-scene .ss-stage{
    position:relative;z-index:1;
    max-width:680px;margin:0 auto;
  }

  /* a chat row: tag on the left, bubble on the right */
  .seoul-scene .ss-row{
    display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:flex-start;
    opacity:0;transform:translateY(8px);
    animation:ss-rise .65s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
  }
  .seoul-scene .ss-tag{
    font-family:var(--mono);font-size:10px;letter-spacing:.18em;
    color:var(--ink-mute);text-transform:uppercase;
    padding-top:14px;text-align:right;line-height:1.4;
  }
  .seoul-scene .ss-tag sub{display:block;font-size:9px;letter-spacing:.16em;color:var(--ink-mute);margin-top:2px}
  .seoul-scene .ss-bubble{
    border:1px solid var(--line);background:var(--bg);
    padding:14px 18px;
    font-family:var(--serif);font-size:16.5px;line-height:1.55;
    color:var(--ink);
    position:relative;
  }
  .seoul-scene .ss-row.is-system .ss-bubble{
    background:rgba(255,255,255,.012);
    color:var(--ink-soft);font-size:15px;
  }
  .seoul-scene .ss-row.is-user .ss-bubble{
    border-color:var(--accent-soft);background:rgba(224,131,98,.045);
  }
  .seoul-scene .ss-row.is-user .ss-bubble::before{
    content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--accent);
  }

  /* vertical connector between rows — centered on stage so it meets the fork apex */
  .seoul-scene .ss-stem{
    height:24px;width:1px;
    background:linear-gradient(180deg, var(--accent) 0%, rgba(224,131,98,.3) 100%);
    margin:0 auto;
    transform:scaleY(0);transform-origin:top;
    animation:ss-draw .45s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
  }

  /* the fork header */
  .seoul-scene .ss-fork-q{
    margin:18px 0 4px;
    padding:8px 0;
    text-align:center;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
    color:var(--ink-soft);text-transform:uppercase;
    opacity:0;
    animation:ss-fade .55s ease forwards;
    animation-delay:var(--d, 0s);
  }
  .seoul-scene .ss-fork-q em{color:var(--accent);font-style:normal}

  /* the SVG fork connector */
  .seoul-scene .ss-fork{
    display:block;width:100%;height:38px;margin:0;
    overflow:visible;
  }
  .seoul-scene .ss-fork path{
    fill:none;stroke:var(--accent);stroke-width:1;
    stroke-dasharray:120;stroke-dashoffset:120;
    animation:ss-trace .7s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
  }
  .seoul-scene .ss-fork path.is-dim{stroke:var(--ink-mute);opacity:.6}

  /* the two-branch split */
  .seoul-scene .ss-split{
    display:grid;grid-template-columns:1fr 1fr;gap:18px;
    margin-top:0;
  }
  .seoul-scene .ss-branch{
    opacity:0;transform:translateY(8px);
    animation:ss-rise .65s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
    display:flex;flex-direction:column;gap:10px;
  }
  .seoul-scene .ss-route{
    font-family:var(--mono);font-size:10px;letter-spacing:.2em;
    text-transform:uppercase;color:var(--ink-soft);text-align:center;
    padding-bottom:4px;
  }
  .seoul-scene .ss-route .rk{color:var(--ink-mute);margin-right:6px}

  .seoul-scene .ss-out{
    position:relative;
    border:1px solid var(--line);
    padding:16px 18px 14px;
    background:var(--bg);
    transition:border-color .25s ease, background .25s ease;
  }
  .seoul-scene .ss-out .ss-out-kind{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;
    color:var(--ink-mute);text-transform:uppercase;margin-bottom:8px;
  }
  .seoul-scene .ss-out .ss-out-msg{
    font-family:var(--serif);font-size:18px;line-height:1.45;
    color:var(--ink);letter-spacing:.005em;
    min-height:54px;
  }
  .seoul-scene .ss-out .ss-out-foot{
    margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);
    font-family:var(--mono);font-size:10px;letter-spacing:.2em;
    text-transform:uppercase;
    display:flex;justify-content:space-between;align-items:center;gap:8px;
  }

  /* expected branch — dimmed, ghosted */
  .seoul-scene .ss-branch.is-expected .ss-out{
    background:transparent;
    border-style:dashed;border-color:var(--line);
  }
  .seoul-scene .ss-branch.is-expected .ss-out-msg{color:var(--ink-mute)}
  .seoul-scene .ss-branch.is-expected .ss-out-foot{color:var(--ink-mute)}
  .seoul-scene .ss-branch.is-expected .ss-out-foot .verdict{color:var(--ink-soft)}

  /* actual branch — lit up */
  .seoul-scene .ss-branch.is-actual .ss-out{
    border-color:var(--accent-soft);
    background:linear-gradient(180deg, rgba(224,131,98,.07), rgba(224,131,98,.025));
    box-shadow:0 0 0 1px rgba(224,131,98,.18), 0 10px 30px -12px rgba(224,131,98,.35);
  }
  .seoul-scene .ss-branch.is-actual .ss-out::before{
    content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;
    background:var(--accent);
    box-shadow:0 0 12px 1px rgba(240,168,136,.4);
  }
  .seoul-scene .ss-branch.is-actual .ss-out-msg{color:var(--ink)}
  .seoul-scene .ss-branch.is-actual .ss-out-foot{color:var(--accent)}
  .seoul-scene .ss-branch.is-actual .ss-out-foot .verdict{color:var(--accent)}

  /* travelling pulse along the actual fork path */
  .seoul-scene .ss-pulse{
    position:absolute;left:50%;top:-6px;
    width:7px;height:7px;border-radius:50%;
    background:var(--accent-2);
    box-shadow:0 0 12px 2px rgba(240,168,136,.55), 0 0 22px rgba(224,131,98,.3);
    transform:translate(-50%, -50%);
    opacity:0;
    animation:ss-gaze 4.6s cubic-bezier(.4,.05,.6,.95) infinite;
    animation-delay:calc(var(--d, 0s) + 1.2s);
  }

  .seoul-scene .ss-cap{
    margin-top:22px;padding-top:14px;
    border-top:1px solid var(--line-soft);
    font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
    color:var(--ink-soft);text-transform:uppercase;text-align:center;
    line-height:1.6;
  }
  .seoul-scene .ss-cap em{color:var(--accent);font-style:normal}

  @media (max-width:620px){
    .seoul-scene{padding:28px 18px 18px}
    .seoul-scene .ss-row{grid-template-columns:60px 1fr;gap:12px}
    .seoul-scene .ss-tag{font-size:9px;letter-spacing:.14em;padding-top:12px}
    .seoul-scene .ss-split{grid-template-columns:1fr;gap:14px}
    .seoul-scene .ss-fork{display:none}
    .seoul-scene .ss-out-msg{font-size:16px}
  }

  @keyframes ss-rise   { to { opacity:1; transform:none } }
  @keyframes ss-fade   { to { opacity:1 } }
  @keyframes ss-draw   { to { transform:scaleY(1) } }
  @keyframes ss-trace  { to { stroke-dashoffset:0 } }
  @keyframes ss-blink{
    0%,60%,100% { opacity:1 }
    70%,85% { opacity:.3 }
  }
  @keyframes ss-gaze{
    0%   { transform:translate(-50%, -50%); opacity:0 }
    10%  { opacity:1 }
    78%  { opacity:1 }
    100% { transform:translate(-50%, 70px); opacity:0 }
  }

  @media (prefers-reduced-motion: reduce){
    .seoul-scene .ss-row,
    .seoul-scene .ss-branch,
    .seoul-scene .ss-fork-q{ opacity:1 !important; transform:none !important; animation:none !important }
    .seoul-scene .ss-stem{ transform:scaleY(1) !important; animation:none !important }
    .seoul-scene .ss-fork path{ stroke-dashoffset:0 !important; animation:none !important }
    .seoul-scene .ss-pulse, .seoul-scene .ss-corner .dot{ animation:none !important }
    .seoul-scene .ss-pulse{ display:none }
  }
  /* ─────────────────────────────────────────────────────────────────── */

  /* hl */
  .hl{
    padding:.02em .28em .04em;
    background:linear-gradient(180deg,
      transparent 55%,
      rgba(224,131,98,.10) 58%,
      rgba(224,131,98,.28) 68%,
      rgba(224,131,98,.22) 88%,
      transparent 100%);
    color:var(--ink);
    text-shadow:0 0 6px rgba(224,131,98,.22);
    -webkit-box-decoration-break:clone;
    box-decoration-break:clone;
  }
  .hl-strong{color:var(--accent);font-weight:500}

  /* tables */
  table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14.5px;background:var(--bg-2);border:1px solid var(--line)}
  th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;line-height:1.55}
  th{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);border-bottom:1px solid var(--line);background:var(--bg-3)}
  td.k{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--accent);text-transform:none;white-space:nowrap}
  td.dim{color:var(--ink-soft);font-size:14px}
  td.mono{font-family:var(--mono);font-size:12.5px;color:var(--ink-soft)}

  /* tags inline */
  .pill{
    display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
    text-transform:uppercase;padding:2px 8px;border:1px solid var(--line);color:var(--ink-soft);
    border-radius:2px;
  }
  .pill.acc{color:var(--accent);border-color:var(--accent-soft);background:rgba(224,131,98,.05)}
  .pill.warn{color:var(--danger);border-color:#3a221a;background:rgba(214,138,122,.06)}
  .pill.muted,.pill.soft{color:var(--ink-mute)}

  /* admonition: warning / aside / note */
  .admon{
    margin:32px 0;border:1px solid var(--line);background:var(--bg-2);
  }
  .admon-head{
    display:flex;justify-content:space-between;align-items:center;gap:18px;
    padding:13px 22px;border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);
  }
  .admon-head .lab{color:var(--ink-soft);letter-spacing:.18em}
  .admon-head .kind{color:var(--accent);letter-spacing:.22em}
  .admon-body{padding:24px 26px}
  .admon-body p{font-size:15.5px;line-height:1.7;color:var(--ink-soft);margin:0 0 14px}
  .admon-body p:last-child{margin-bottom:0}
  .admon-body p strong{color:var(--ink);font-weight:500}
  .admon-body h5{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:0;margin:0 0 12px;color:var(--ink)}

  .admon.warn{border-color:var(--accent-soft);background:linear-gradient(180deg,rgba(224,131,98,.04),rgba(224,131,98,.012))}
  .admon.warn .admon-head{border-bottom-color:var(--accent-soft)}
  .admon.aside .admon-head .kind{color:var(--ink-soft)}

  /* concept three-pane (LLM / chat / agent) */
  .triad{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);margin:32px 0;
  }
  .triad.cols-2{grid-template-columns:repeat(2,1fr)}
  @media(max-width:820px){.triad{grid-template-columns:1fr}}
  .triad > div{background:var(--bg);padding:28px 24px 26px}
  .triad > div.safe{background:rgba(224,131,98,.04);border-right:1px solid var(--accent-soft)}
  .triad .lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}
  .triad > div.safe .lab{color:var(--accent)}
  .triad > div.danger .lab{color:var(--danger)}
  .triad .name{font-family:var(--serif);font-size:24px;line-height:1.2;letter-spacing:0;margin:10px 0 14px;color:var(--ink)}
  .triad .name strong{color:var(--accent);font-weight:500}
  .triad .name .katex-display{margin:14px 0 6px !important;text-align:left}
  .triad .name .katex-display > .katex{text-align:left;display:inline-block}
  .triad .name .katex{font-size:.92em}
  .triad .name .a{color:var(--accent)}
  .triad p{font-size:14.5px;line-height:1.65;color:var(--ink-soft);margin:0 0 12px}
  .triad > div.safe p{color:var(--accent)}
  .triad ul{list-style:none;padding:0;margin:14px 0 0}
  .triad ul li{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--ink-soft);padding:6px 0;border-top:1px solid var(--line-soft)}
  .triad ul li:first-child{border-top:none}

  /* ledger (signal stack) */
  .ledger{
    margin:32px 0;border:1px solid var(--line);background:var(--bg-2);
  }
  .ledger-head{
    display:flex;justify-content:space-between;align-items:center;gap:18px;
    padding:14px 22px;border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;
  }
  .ledger-head .lab{color:var(--ink-soft);letter-spacing:.18em}
  .ledger-head .meta{display:flex;gap:14px;align-items:center}
  .ledger-head .dot-live{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(224,131,98,.14);display:inline-block;}
  .ledger-row{
    display:grid;grid-template-columns:60px 32px 1fr 160px;align-items:center;gap:24px;
    padding:16px 22px;border-bottom:1px solid var(--line-soft);
  }
  .ledger-row:last-of-type{border-bottom:none}
  .ledger-row .op{font-family:var(--mono);font-size:18px;line-height:1;color:var(--ink-mute);text-align:center;font-weight:500;}
  .ledger-row .id{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink-mute);text-transform:uppercase;}
  .ledger-row .body{font-family:var(--sans);font-size:15.5px;color:var(--ink);letter-spacing:.005em;line-height:1.45;}
  .ledger-row .body .sub{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-mute);letter-spacing:.14em;text-transform:uppercase;margin-top:5px;}
  .ledger-row .weight{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--ink-soft);text-transform:uppercase;text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:8px;}
  .ledger-row .weight i{display:inline-block;width:6px;height:6px;background:var(--ink-soft);border-radius:50%;}
  .ledger-row .weight.hi{color:var(--accent)}
  .ledger-row .weight.hi i{background:var(--accent)}
  @media(max-width:720px){
    .ledger-row{grid-template-columns:28px 1fr;gap:14px;padding:14px 16px;}
    .ledger-row .id{grid-column:2;font-size:10px}
    .ledger-row .body{grid-column:2}
    .ledger-row .weight{grid-column:2;justify-content:flex-start;margin-top:4px}
    .ledger-row .op{grid-column:1;grid-row:1/span 3}
  }

  /* attack chain (vertical stack) */
  .chain{margin:32px 0;border:1px solid var(--line);background:var(--bg-2)}
  .chain-head{
    display:flex;justify-content:space-between;align-items:center;gap:18px;
    padding:13px 22px;border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;
  }
  .chain-head .lab{color:var(--ink-soft);letter-spacing:.18em}
  .chain-body{padding:28px 24px 30px}
  .chain-step{
    display:grid;grid-template-columns:60px 1fr 130px;gap:24px;align-items:center;
    padding:18px 22px;border:1px solid var(--line);background:var(--bg);
    margin-bottom:0;position:relative;
  }
  .chain-step .ix{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink-mute);text-transform:uppercase}
  .chain-step .desc{font-family:var(--serif);font-size:17px;line-height:1.4;color:var(--ink);letter-spacing:0}
  .chain-step .desc small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-mute);text-transform:none;margin-top:4px;line-height:1.5}
  .chain-step .effect{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--ink-soft);text-transform:uppercase;text-align:right}
  .chain-step.terminal{border-color:var(--accent-soft);background:rgba(224,131,98,.04)}
  .chain-step.terminal .desc{color:var(--accent)}
  .chain-step.terminal .effect{color:var(--accent)}
  .chain-link{
    height:30px;display:flex;align-items:center;justify-content:center;
    margin:0 auto;width:1px;background:var(--line);position:relative;
  }
  .chain-link::after{
    content:"";position:absolute;bottom:0;left:50%;
    width:7px;height:7px;border-right:1px solid var(--ink-soft);border-bottom:1px solid var(--ink-soft);
    transform:translate(-50%,-50%) rotate(45deg);
  }
  @media(max-width:720px){
    .chain-step{grid-template-columns:46px 1fr;gap:12px;padding:14px 16px}
    .chain-step .effect{grid-column:2;text-align:left;margin-top:6px}
  }

  /* trifecta / lethal three */
  .trifecta{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);margin:32px 0;
  }
  @media(max-width:820px){.trifecta{grid-template-columns:1fr}}
  .trifecta > div{background:var(--bg-2);padding:26px 22px;position:relative}
  .trifecta .ix{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}
  .trifecta .ttl{font-family:var(--serif);font-size:20px;line-height:1.25;letter-spacing:0;color:var(--ink);margin:12px 0 10px}
  .trifecta p{font-size:13.5px;line-height:1.6;color:var(--ink-soft);margin:0}

  /* event/case card list — for §14 disasters */
  .cases{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin:32px 0}
  .case-card{background:var(--bg);padding:28px 28px 26px}
  .case-card .hdr{
    display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap;
    padding-bottom:14px;border-bottom:1px solid var(--line-soft);margin-bottom:18px;
  }
  .case-card .hdr .date{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}
  .case-card .hdr .title{font-family:var(--serif);font-size:24px;line-height:1.2;letter-spacing:0;color:var(--ink);max-width:780px}
  .case-card .hdr .lvl{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--ink-mute);text-transform:uppercase;border:1px solid var(--line);padding:3px 8px}
  .case-card .hdr .lvl.l1{color:var(--accent);border-color:var(--accent-soft);background:rgba(224,131,98,.05)}
  .case-card .hdr .lvl.l2{color:var(--ink-soft)}
  .case-card .hdr .lvl.l3{color:var(--ink-mute)}
  .case-card .meta{
    display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 0 18px;
    border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  }
  @media(max-width:720px){.case-card .meta{grid-template-columns:1fr 1fr}}
  .case-card .meta > div{padding:10px 14px;border-right:1px solid var(--line-soft)}
  .case-card .meta > div:last-child{border-right:none}
  .case-card .meta .k{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;margin-bottom:4px}
  .case-card .meta .v{font-family:var(--mono);font-size:12.5px;color:var(--ink);letter-spacing:.04em}
  .case-card p{font-size:15.5px;line-height:1.7;color:var(--ink-soft);margin:0 0 14px}
  .case-card p:last-child{margin-bottom:0}
  .case-card p strong{color:var(--ink);font-weight:500}

  /* CVE table */
  .cves{margin:32px 0;border:1px solid var(--line);background:var(--bg-2)}
  .cves table{margin:0;background:transparent;border:none}
  .cves td.cve{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.04em;white-space:nowrap}
  .cves td.cvss{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--ink);white-space:nowrap}
  .cves td.cvss.hi{color:var(--accent)}
  .cves td p{margin:0 0 6px;font-size:13.5px;line-height:1.55;color:var(--ink)}
  .cves td p.imp{color:var(--ink-soft);font-size:13px}

  /* timeline */
  .tline{margin:32px 0;border:1px solid var(--line);background:var(--bg-2)}
  .tline-head{
    display:flex;justify-content:space-between;align-items:center;gap:18px;
    padding:14px 22px;border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;
  }
  .tline-head .lab{color:var(--ink-soft)}
  .tline-head .scope{color:var(--accent)}
  .tline-body{padding:22px 0}
  .tline-row{
    display:grid;grid-template-columns:140px 1fr;gap:24px;
    padding:14px 26px;border-bottom:1px solid var(--line-soft);align-items:baseline;
  }
  .tline-row:last-child{border-bottom:none}
  .tline-row .date{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;color:var(--accent);text-transform:none}
  .tline-row .ev{font-size:14.5px;line-height:1.6;color:var(--ink);letter-spacing:.003em}
  .tline-row .ev .tag-mini{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--ink-mute);text-transform:uppercase;margin-right:10px;border:1px solid var(--line);padding:1px 6px}
  .tline-row .ev strong{color:var(--ink);font-weight:500}
  @media(max-width:720px){
    .tline-row{grid-template-columns:1fr;gap:6px;padding:14px 18px}
    .tline-row .date{font-size:10.5px}
  }

  /* six-layer table */
  .six{margin:32px 0;border:1px solid var(--line);background:var(--bg-2)}
  .six table{margin:0;border:none;background:transparent}
  .six td.layer{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--accent);text-transform:uppercase;white-space:nowrap}

  /* TOC */
  .toc{padding:80px 0;border-bottom:1px solid var(--line-soft)}
  .toc-list .label{
    font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink-mute);text-transform:uppercase;
    display:flex;align-items:center;gap:14px;
    margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--line-soft);
  }
  .toc-list .label::before{content:"";display:inline-block;width:18px;height:1px;background:var(--accent);}
  .toc-list ol{margin:0;padding:0;list-style:none}
  .toc-list li{
    display:grid;grid-template-columns:48px 1fr auto;gap:24px;align-items:baseline;
    padding:16px 0;border-top:1px solid var(--line-soft);
  }
  .toc-list li:first-child{border-top:1px solid var(--line)}
  .toc-list li:last-child{border-bottom:1px solid var(--line)}
  .toc-list li .ix{font-family:var(--mono);font-size:11px;color:var(--ink-mute);letter-spacing:.1em}
  .toc-list li a{color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:22px;line-height:1.25;letter-spacing:0}
  .toc-list li a:hover{color:var(--accent)}
  .toc-list li .ks{font-family:var(--mono);font-size:11px;color:var(--ink-mute);letter-spacing:.14em;text-transform:uppercase}
  @media(max-width:720px){
    .toc-list li{grid-template-columns:36px 1fr}
    .toc-list li .ks{grid-column:2;color:var(--ink-mute)}
    .toc-list li a{font-size:18px}
  }

  /* utility */
  .row{display:grid;grid-template-columns:1fr 1fr;gap:48px}
  @media(max-width:820px){.row{grid-template-columns:1fr;gap:18px}}

  /* definition list */
  .definition{
    border:1px solid var(--line);padding:24px 28px;margin:24px 0;background:var(--bg-2);
  }
  .definition dt{
    font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
    margin-bottom:6px;
  }
  .definition dd{margin:0 0 18px;color:var(--ink-soft);font-size:15px;line-height:1.65}
  .definition dd:last-child{margin-bottom:0}
  .definition dd strong{color:var(--ink);font-weight:500}

  /* principles 4-up */
  .principles{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:32px 0}
  @media(max-width:720px){.principles{grid-template-columns:1fr}}
  .principles .p{background:var(--bg);padding:28px}
  .principles .p .n{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--accent);text-transform:uppercase}
  .principles .p h4{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2;letter-spacing:0;margin:10px 0 12px;color:var(--ink)}
  .principles .p p{margin:0;color:var(--ink);font-size:16px;line-height:1.7;font-weight:400}
  .principles .p p em{color:var(--accent-2);font-style:normal;font-weight:500}
  .principles .p p strong{color:var(--ink);font-weight:600}

  /* footer */
  footer{padding:56px 0 80px;color:var(--ink-mute);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
  footer .row{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap}

  /* mono small */
  .mono{font-family:var(--mono);font-size:.86em;letter-spacing:.06em;color:var(--ink-soft)}

  /* figure caption */
  .figcap{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin-top:10px}

  /* anchor offset (sticky header) */
  section[id]{scroll-margin-top:88px}

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

  .katex-display{margin:24px 0 !important}
  .katex{color:var(--ink) !important}

  /* big number */
  .bignum{
    font-family:var(--serif);font-size:68px;line-height:1;letter-spacing:0;
    color:var(--accent);display:inline-block;
  }
  @media(max-width:720px){.bignum{font-size:44px}}

  /* ── Summit scene: Xi–Trump translator thought experiment ──────────── */
  .summit-scene{
    position:relative;
    margin:40px 0 44px;
    border:1px solid var(--line);
    background:
      radial-gradient(ellipse 70% 38% at 50% 0%, rgba(224,131,98,.055), transparent 70%),
      linear-gradient(180deg, var(--bg-2), var(--bg-3) 55%, var(--bg-2));
    padding:42px 32px 28px;
    overflow:hidden;
  }
  .summit-scene::before{
    content:"";position:absolute;left:0;right:0;top:0;height:2px;
    background:linear-gradient(90deg, transparent, var(--accent) 50%, transparent);
    opacity:.6;
  }
  .summit-scene::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:
      radial-gradient(circle at 20% 0%, rgba(224,131,98,.04), transparent 35%),
      radial-gradient(circle at 80% 0%, rgba(224,131,98,.04), transparent 35%);
  }
  .summit-scene > *{position:relative;z-index:1}

  .summit-scene .sm-corner{
    position:absolute;top:14px;left:50%;transform:translateX(-50%);
    font-family:var(--mono);font-size:10px;letter-spacing:.24em;
    color:var(--ink-mute);text-transform:uppercase;
    display:flex;align-items:center;gap:12px;white-space:nowrap;
  }
  .summit-scene .sm-corner .sm-pin{
    display:inline-block;width:5px;height:5px;border-radius:50%;
    background:var(--accent);box-shadow:0 0 0 3px rgba(224,131,98,.14);
  }
  .summit-scene .sm-corner em{color:var(--accent);font-style:normal;letter-spacing:.22em}

  /* cast row */
  .summit-scene .sm-cast{
    display:grid;grid-template-columns:1fr 28px auto 28px 1fr;align-items:center;
    max-width:780px;margin:24px auto 6px;
  }
  .summit-scene .sm-actor,
  .summit-scene .sm-pivot{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    padding:14px 12px;text-align:center;
  }
  .summit-scene .sm-role{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;
    text-transform:uppercase;color:var(--ink-mute);
  }
  .summit-scene .sm-name{
    font-family:var(--serif);font-size:24px;letter-spacing:.06em;font-weight:500;
    color:var(--ink);line-height:1.1;
  }
  .summit-scene .sm-sub{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink-soft);
  }
  .summit-scene .sm-pivot{
    border:1px solid var(--accent-soft);
    background:linear-gradient(180deg, rgba(224,131,98,.08), rgba(224,131,98,.02));
    padding:14px 28px;min-width:160px;
  }
  .summit-scene .sm-pivot .sm-name{color:var(--accent-2);font-size:26px}
  .summit-scene .sm-pivot .sm-sub{color:var(--accent)}
  .summit-scene .sm-pivot .sm-role{color:var(--accent);opacity:.85}

  .summit-scene .sm-arrow{
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-mute);font-family:var(--mono);font-size:14px;
    position:relative;height:1px;background:linear-gradient(90deg, var(--line) 0%, var(--accent-soft) 50%, var(--line) 100%);
  }
  .summit-scene .sm-arrow span{
    position:absolute;background:var(--bg-3);padding:0 4px;font-size:11px;letter-spacing:.18em;
    color:var(--ink-mute);
  }

  /* two scenario cases */
  .summit-scene .sm-scenarios{
    display:grid;grid-template-columns:1fr 1fr;gap:20px;
    max-width:940px;margin:24px auto 0;
  }
  .summit-scene .sm-case{
    border:1px solid var(--line);
    background:rgba(12,11,10,.55);
    padding:18px 22px 18px;
    position:relative;
    display:flex;flex-direction:column;
  }
  .summit-scene .sm-case > header{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    padding-bottom:10px;margin-bottom:14px;
    border-bottom:1px solid var(--line-soft);
    font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  }
  .summit-scene .sm-tag{color:var(--accent);font-weight:500}
  .summit-scene .sm-when{color:var(--ink-mute);text-align:right;letter-spacing:.14em}

  .summit-scene .sm-utterance{
    font-family:var(--serif);font-size:22px;line-height:1.3;
    color:var(--ink);letter-spacing:.005em;
    padding:4px 4px 16px 14px;
    position:relative;
    border-left:2px solid var(--accent);
    margin-bottom:14px;
  }
  .summit-scene .sm-utterance .sm-stage{
    display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;
  }

  .summit-scene .sm-fork{
    display:grid;grid-template-columns:1fr;gap:10px;
    border-top:1px dashed var(--line-soft);padding-top:14px;
  }
  .summit-scene .sm-path{
    display:grid;grid-template-columns:1fr;gap:7px;
    padding:11px 13px;border:1px solid var(--line-soft);
    background:rgba(255,255,255,.012);
    transition:border-color .25s ease, background .25s ease;
  }
  .summit-scene .sm-rk{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--ink-mute);
    display:flex;align-items:center;gap:8px;
  }
  .summit-scene .sm-rk .sm-key{color:var(--ink-soft);font-weight:500}
  .summit-scene .sm-resp{
    font-family:var(--serif);font-size:16px;line-height:1.45;color:var(--ink-soft);
  }
  .summit-scene .sm-resp.is-quote{
    font-family:var(--mono);font-size:13.5px;letter-spacing:.01em;
    color:var(--ink);
  }
  .summit-scene .sm-resp.is-action{
    color:var(--ink-soft);font-style:italic;
  }
  .summit-scene .sm-verdict{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink-mute);
    display:flex;align-items:center;gap:8px;
  }
  .summit-scene .sm-verdict .sm-dot{
    display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink-mute);
  }
  .summit-scene .sm-path.is-correct{
    border-color:var(--accent-soft);
    background:linear-gradient(180deg, rgba(224,131,98,.075), rgba(224,131,98,.018));
    box-shadow:inset 2px 0 0 var(--accent);
  }
  .summit-scene .sm-path.is-correct .sm-rk{color:var(--accent)}
  .summit-scene .sm-path.is-correct .sm-rk .sm-key{color:var(--accent-2)}
  .summit-scene .sm-path.is-correct .sm-resp{color:var(--ink)}
  .summit-scene .sm-path.is-correct .sm-verdict{color:var(--accent)}
  .summit-scene .sm-path.is-correct .sm-verdict .sm-dot{background:var(--accent);box-shadow:0 0 0 2px rgba(224,131,98,.18)}
  .summit-scene .sm-path.is-wrong{opacity:.78}
  .summit-scene .sm-path.is-wrong .sm-verdict::after{
    content:"";display:inline-block;width:10px;height:1px;background:var(--ink-mute);
    margin-left:2px;
  }

  .summit-scene .sm-cap{
    margin:26px auto 0;padding-top:18px;max-width:760px;
    border-top:1px solid var(--line-soft);
    text-align:center;
    font-family:var(--serif);font-size:16.5px;color:var(--ink-soft);
    line-height:1.65;letter-spacing:.003em;
  }
  .summit-scene .sm-cap em{color:var(--accent);font-style:normal;font-weight:500}
  .summit-scene .sm-cap .sm-cap-strong{
    display:block;margin-top:8px;font-size:15px;color:var(--ink);
  }

  @media (max-width:780px){
    .summit-scene{padding:36px 16px 22px}
    .summit-scene .sm-corner{font-size:9px;letter-spacing:.18em;gap:8px}
    .summit-scene .sm-cast{grid-template-columns:1fr;gap:8px}
    .summit-scene .sm-arrow{display:none}
    .summit-scene .sm-pivot{padding:12px 18px}
    .summit-scene .sm-scenarios{grid-template-columns:1fr;gap:14px}
    .summit-scene .sm-utterance{font-size:19px}
    .summit-scene .sm-resp{font-size:15px}
    .summit-scene .sm-resp.is-quote{font-size:12.5px}
  }

  /* ── Comic illustration: prompt injection (human edition) ──────────── */
  .comic-illus{
    position:relative;
    margin:36px 0 40px;
    padding:30px 26px 22px;
    border:1px solid var(--line);
    background:rgba(12,11,10,.55);
    border-radius:2px;
    overflow:hidden;
  }
  .comic-illus::before{
    content:"";position:absolute;left:0;right:0;top:0;height:2px;
    background:linear-gradient(90deg, transparent, var(--accent) 50%, transparent);
    opacity:.55;
  }
  .comic-illus .ci-corner{
    position:absolute;top:12px;left:50%;transform:translateX(-50%);
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;white-space:nowrap;
  }
  .comic-illus .ci-frame{
    margin:18px auto 0;max-width:880px;
    border:1px solid var(--line-soft);
    background:#000;
    line-height:0;
  }
  .comic-illus .ci-frame picture{display:block}
  .comic-illus .ci-frame img{
    display:block;width:100%;height:auto;
  }
  .comic-illus .ci-cap{
    margin:18px auto 0;max-width:760px;
    font-family:var(--serif);font-size:14px;color:var(--ink-soft);
    text-align:center;line-height:1.65;letter-spacing:.003em;
  }
  .comic-illus .ci-cap .ci-cap-strong{
    display:block;margin-top:6px;font-size:15px;color:var(--ink);
  }
  @media (max-width:780px){
    .comic-illus{padding:30px 14px 18px;margin:28px 0 32px}
    .comic-illus .ci-corner{font-size:9px;letter-spacing:.16em}
    .comic-illus .ci-cap{font-size:13px}
    .comic-illus .ci-cap .ci-cap-strong{font-size:14px}
  }

  /* ── Halting-problem scene: Turing's diagonal trap ────────────────── */
  .halting-scene{
    position:relative;
    margin:40px 0 44px;
    border:1px solid var(--line);
    background:
      radial-gradient(ellipse 70% 40% at 50% 0%, rgba(224,131,98,.06), transparent 70%),
      linear-gradient(180deg, var(--bg-2), var(--bg-3) 55%, var(--bg-2));
    padding:48px 36px 30px;
    overflow:hidden;
  }
  .halting-scene::before{
    content:"";position:absolute;left:0;right:0;top:0;height:2px;
    background:linear-gradient(90deg, transparent, var(--accent) 50%, transparent);
    opacity:.55;
  }
  .halting-scene::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(transparent 49.5%, rgba(255,255,255,.018) 49.5% 50.5%, transparent 50.5%);
    background-size:100% 32px;
    mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
    -webkit-mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
  }
  .halting-scene > *{position:relative;z-index:1}

  .halting-scene .hs-corner{
    position:absolute;top:14px;left:50%;transform:translateX(-50%);
    font-family:var(--mono);font-size:10px;letter-spacing:.24em;
    color:var(--ink-mute);text-transform:uppercase;
    display:flex;align-items:center;gap:10px;white-space:nowrap;
  }
  .halting-scene .hs-corner em{color:var(--accent);font-style:normal;letter-spacing:.22em}
  .halting-scene .hs-corner .pin{
    display:inline-block;width:6px;height:6px;border-radius:50%;
    background:var(--accent);box-shadow:0 0 0 3px rgba(224,131,98,.14);
    animation:hs-blink 2.4s ease-in-out infinite;
  }

  .halting-scene .hs-step{
    margin:24px 0 0;
    opacity:0;transform:translateY(8px);
    animation:hs-rise .65s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--d, 0s);
  }
  .halting-scene .hs-step:first-of-type{margin-top:28px}
  .halting-scene .hs-step-label{
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;
    display:flex;align-items:center;gap:12px;
    margin-bottom:14px;
  }
  .halting-scene .hs-step-label::before{
    content:"";display:inline-block;width:18px;height:1px;background:var(--accent);
  }
  .halting-scene .hs-step-label em{color:var(--accent);font-style:normal;letter-spacing:.18em}

  /* Stage 1: H oracle */
  .halting-scene .hs-oracle{
    display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:14px;align-items:center;
    padding:24px 26px;border:1px solid var(--line);background:rgba(12,11,10,.55);
  }
  .halting-scene .hs-node{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--ink-soft);
    padding:12px 16px;border:1px solid var(--line);background:var(--bg);
    min-width:110px;text-align:center;
  }
  .halting-scene .hs-node small{
    display:block;color:var(--ink-mute);font-size:9px;
    letter-spacing:.18em;margin-top:4px;
  }
  .halting-scene .hs-h{
    font-family:var(--serif);font-size:34px;line-height:1;font-weight:500;
    color:var(--accent);width:72px;height:72px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--accent);
    background:radial-gradient(circle, rgba(224,131,98,.22), rgba(224,131,98,.02) 70%);
    box-shadow:0 0 28px -6px rgba(224,131,98,.45), inset 0 0 14px rgba(224,131,98,.1);
    position:relative;
  }
  .halting-scene .hs-h::after{
    content:"";position:absolute;inset:-7px;border-radius:50%;
    border:1px dashed rgba(224,131,98,.32);
    animation:hs-spin 22s linear infinite;
  }
  .halting-scene .hs-h::before{
    content:"PERFECT CHECKER";
    position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);
    font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--ink-mute);
    white-space:nowrap;
  }
  .halting-scene .hs-arrow{
    position:relative;height:1px;min-height:1px;
    background:linear-gradient(90deg, var(--line), var(--accent-soft) 30%, var(--accent-soft) 70%, var(--line));
  }
  .halting-scene .hs-arrow::after{
    content:"";position:absolute;right:-1px;top:50%;
    width:6px;height:6px;border-top:1px solid var(--accent);border-right:1px solid var(--accent);
    transform:translateY(-50%) rotate(45deg);
  }
  .halting-scene .hs-pulse{
    position:absolute;top:50%;left:0;width:6px;height:6px;border-radius:50%;
    background:var(--accent-2);box-shadow:0 0 10px 1px rgba(240,168,136,.6), 0 0 20px rgba(224,131,98,.3);
    transform:translate(-50%,-50%);
    animation:hs-trav 3.2s cubic-bezier(.4,.05,.6,.95) infinite;
    animation-delay:var(--pd, 0s);
  }
  .halting-scene .hs-outs{display:flex;flex-direction:column;gap:8px}
  .halting-scene .hs-out-pill{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
    padding:7px 12px;border:1px solid var(--line);color:var(--ink-soft);
    display:flex;align-items:center;gap:8px;background:var(--bg);
  }
  .halting-scene .hs-out-pill .swatch{width:7px;height:7px;border-radius:50%;background:var(--ink-mute);flex-shrink:0}
  .halting-scene .hs-out-pill.is-halt{color:#cfe6cf}
  .halting-scene .hs-out-pill.is-halt .swatch{background:#9ad29a;box-shadow:0 0 6px rgba(154,210,154,.5)}
  .halting-scene .hs-out-pill.is-loop{color:var(--accent-2)}
  .halting-scene .hs-out-pill.is-loop .swatch{background:var(--accent);box-shadow:0 0 6px rgba(224,131,98,.5)}

  /* Stage 2: code with self-reference loop */
  .halting-scene .hs-code-wrap{
    position:relative;
    display:grid;grid-template-columns:1fr 160px;gap:14px;align-items:stretch;
  }
  .halting-scene .hs-code{
    font-family:var(--mono);font-size:13px;line-height:1.75;
    background:var(--bg);border:1px solid var(--line);
    padding:22px 24px;color:#d4cfc6;
    white-space:pre;
    overflow-x:auto;
    margin:0;
    position:relative;
  }
  .halting-scene .hs-code::before{
    content:"D.py";position:absolute;top:8px;right:14px;
    font-size:9.5px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;
  }
  .halting-scene .hs-code .kw{color:var(--accent-2)}
  .halting-scene .hs-code .fn{color:var(--ink)}
  .halting-scene .hs-code .str{color:#c4b29a}
  .halting-scene .hs-code .cm{color:var(--ink-mute)}
  .halting-scene .hs-code .self{
    color:var(--accent);font-weight:500;
    background:rgba(224,131,98,.08);
    padding:1px 4px;border:1px solid var(--accent-soft);border-radius:2px;
    animation:hs-pulse-bg 2.4s ease-in-out infinite;
  }
  .halting-scene .hs-loopviz{
    border:1px solid var(--line);background:rgba(12,11,10,.55);
    padding:14px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;gap:8px;
  }
  .halting-scene .hs-loopviz svg{display:block;width:108px;height:108px}
  .halting-scene .hs-loopviz svg .ring{fill:none;stroke:var(--line);stroke-width:1}
  .halting-scene .hs-loopviz svg .arc{
    fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;
    stroke-dasharray:80 260;
    transform-origin:54px 54px;
    animation:hs-spin 3.4s linear infinite;
  }
  .halting-scene .hs-loopviz svg .arrowhead{fill:var(--accent)}
  .halting-scene .hs-loopviz .lab{
    font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--ink-mute);line-height:1.4;
  }
  .halting-scene .hs-loopviz .lab em{color:var(--accent);font-style:normal}

  /* Stage 3: cases */
  .halting-scene .hs-cases{
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
  }
  .halting-scene .hs-case{
    border:1px solid var(--accent-soft);
    background:linear-gradient(180deg, rgba(224,131,98,.05), rgba(224,131,98,.01));
    padding:18px 20px 16px;
    opacity:0;transform:translateY(8px);
    animation:hs-rise .65s cubic-bezier(.2,.7,.2,1) forwards;
    animation-delay:var(--cd, 0s);
    position:relative;
  }
  .halting-scene .hs-case > header{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    padding-bottom:10px;margin-bottom:14px;
    border-bottom:1px solid var(--line-soft);
    font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  }
  .halting-scene .hs-case > header .label{color:var(--accent);font-weight:500}
  .halting-scene .hs-case > header .note{color:var(--ink-mute);letter-spacing:.16em}
  .halting-scene .hs-flow{display:flex;flex-direction:column;gap:0}
  .halting-scene .hs-flow-row{
    display:flex;flex-direction:column;gap:6px;
    padding:12px 14px;background:rgba(12,11,10,.45);border:1px solid var(--line-soft);
  }
  .halting-scene .hs-flow-row .k{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);
  }
  .halting-scene .hs-flow-row .v{
    font-family:var(--serif);font-size:18px;line-height:1.25;color:var(--ink);letter-spacing:.005em;
    display:flex;align-items:center;gap:10px;
  }
  .halting-scene .hs-flow-row .v .gh{
    width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
    font-family:var(--mono);font-size:11px;line-height:1;
  }
  .halting-scene .hs-flow-row .v .gh-halt{
    border:1.5px solid #9ad29a;color:#9ad29a;
  }
  .halting-scene .hs-flow-row .v .gh-loop{
    border:1.5px solid var(--accent);border-top-color:transparent;border-radius:50%;
    animation:hs-spin 1.4s linear infinite;
  }
  .halting-scene .hs-flow-arrow{
    height:26px;display:flex;align-items:center;justify-content:center;
    position:relative;
  }
  .halting-scene .hs-flow-arrow::before{
    content:"";width:1px;height:100%;background:linear-gradient(180deg, var(--accent-soft), var(--accent));
  }
  .halting-scene .hs-flow-arrow::after{
    content:"";position:absolute;bottom:2px;
    width:7px;height:7px;border-right:1px solid var(--accent);border-bottom:1px solid var(--accent);
    transform:rotate(45deg);
  }
  .halting-scene .hs-flow-arrow .spite{
    position:absolute;left:calc(50% + 12px);
    font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--ink-mute);
    text-transform:uppercase;white-space:nowrap;
  }
  .halting-scene .hs-flow-arrow .spite em{color:var(--accent);font-style:normal}
  .halting-scene .hs-clash{
    margin-top:14px;padding:11px 12px;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--accent);text-align:center;
    border:1px dashed var(--accent);
    background:rgba(224,131,98,.04);
    animation:hs-flicker 2.6s ease-in-out infinite;
    display:flex;align-items:center;justify-content:center;gap:8px;
  }
  .halting-scene .hs-clash .bolt{
    display:inline-block;color:var(--accent);font-size:13px;line-height:1;
    animation:hs-bolt 1.8s ease-in-out infinite;
  }

  /* conclusion */
  .halting-scene .hs-concl{
    margin:28px auto 0;max-width:760px;text-align:center;
    font-family:var(--serif);font-size:18px;line-height:1.55;color:var(--ink);
    padding-top:20px;border-top:1px solid var(--line-soft);
    opacity:0;animation:hs-rise .8s ease forwards;animation-delay:3.4s;
  }
  .halting-scene .hs-concl em{color:var(--accent);font-style:normal;font-weight:500}
  .halting-scene .hs-concl .qed{
    display:block;margin-top:8px;
    font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--ink-mute);text-transform:uppercase;
  }
  .halting-scene .hs-concl .qed::before{content:"❑ ";color:var(--accent)}

  @keyframes hs-rise   { to { opacity:1; transform:none } }
  @keyframes hs-spin   { to { transform:rotate(360deg) } }
  @keyframes hs-trav{
    0%   { left:0%;   opacity:0 }
    8%   { opacity:1 }
    92%  { opacity:1 }
    100% { left:100%; opacity:0 }
  }
  @keyframes hs-flicker{
    0%,100% { opacity:1 }
    50%     { opacity:.58 }
  }
  @keyframes hs-bolt{
    0%,40%,100%{ transform:translateY(0);    opacity:1 }
    20%        { transform:translateY(-1px); opacity:.5 }
  }
  @keyframes hs-blink{
    0%,60%,100%{ opacity:1 }
    70%,85%    { opacity:.3 }
  }
  @keyframes hs-pulse-bg{
    0%,100% { background:rgba(224,131,98,.08); box-shadow:0 0 0 rgba(224,131,98,0) }
    50%     { background:rgba(224,131,98,.18); box-shadow:0 0 12px rgba(224,131,98,.25) }
  }

  @media (max-width:780px){
    .halting-scene{padding:36px 14px 22px}
    .halting-scene .hs-oracle{grid-template-columns:1fr;gap:14px}
    .halting-scene .hs-arrow{display:none}
    .halting-scene .hs-code-wrap{grid-template-columns:1fr}
    .halting-scene .hs-loopviz{flex-direction:row;justify-content:center;gap:14px}
    .halting-scene .hs-loopviz svg{width:88px;height:88px}
    .halting-scene .hs-cases{grid-template-columns:1fr}
    .halting-scene .hs-flow-arrow .spite{display:none}
    .halting-scene .hs-flow-row .v{font-size:16px}
  }

  @media (prefers-reduced-motion: reduce){
    .halting-scene .hs-step,
    .halting-scene .hs-case,
    .halting-scene .hs-concl{ opacity:1 !important; transform:none !important; animation:none !important }
    .halting-scene .hs-pulse,
    .halting-scene .hs-flow-row .v .gh-loop,
    .halting-scene .hs-clash,
    .halting-scene .hs-clash .bolt,
    .halting-scene .hs-h::after,
    .halting-scene .hs-loopviz svg .arc,
    .halting-scene .hs-corner .pin,
    .halting-scene .hs-code .self{ animation:none !important }
  }
  /* ─────────────────────────────────────────────────────────────────── */

  /* ── Trojan Horse figure: hidden-prompt diagram ───────────────────── */
  .th-fig{
    position:relative;
    margin:36px 0 44px;
    padding:36px 32px 28px;
    border:1px solid var(--line);
    background:
      radial-gradient(120% 60% at 50% 0%, rgba(224,131,98,.05), transparent 60%),
      linear-gradient(180deg, var(--bg-2) 0%, var(--bg-2) 70%, var(--bg) 100%);
    overflow:hidden;
  }
  .th-fig::before{
    content:"";position:absolute;left:0;right:0;top:0;height:2px;
    background:linear-gradient(90deg, transparent, var(--accent) 50%, transparent);
    opacity:.55;
  }
  .th-fig::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(transparent 49.5%, rgba(255,255,255,.018) 49.5% 50.5%, transparent 50.5%);
    background-size:100% 32px;
    mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
    -webkit-mask:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
  }
  .th-fig > *{position:relative;z-index:1}

  .th-mast{
    display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px;
    padding-bottom:18px;margin-bottom:24px;
    border-bottom:1px solid var(--line);
  }
  .th-kicker{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;
  }
  .th-kicker .dot{color:var(--accent);margin-right:6px}
  .th-title{
    font-family:var(--serif);font-weight:500;
    font-size:36px;line-height:1.08;letter-spacing:0;
    margin:8px 0 0;color:var(--ink);
  }
  @media(max-width:720px){.th-title{font-size:28px}}
  .th-title em{font-style:normal;color:var(--accent);font-weight:500}
  .th-meta{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
    color:var(--ink-mute);text-align:right;line-height:1.7;text-transform:uppercase;
  }
  .th-lede{
    font-family:var(--serif);font-size:15.5px;line-height:1.7;
    color:var(--ink-soft);max-width:760px;
    margin:0 0 36px;padding:6px 0 6px 18px;border-left:2px solid var(--accent);
  }
  .th-lede b{color:var(--ink);font-weight:600}

  /* two-view grid */
  .th-grid{
    display:grid;grid-template-columns:1fr 56px 1fr;gap:0;align-items:stretch;
  }
  .th-col-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  .th-col-num{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
    background:var(--ink);color:var(--bg);
    padding:3px 8px;border-radius:2px;text-transform:uppercase;
  }
  .th-col-num.warn{background:var(--accent);color:#0c0b0a}
  .th-col-num.ok{background:var(--accent-2);color:#0c0b0a}
  .th-col-title{font-family:var(--serif);font-size:18px;font-weight:500;color:var(--ink)}
  .th-col-sub{
    font-family:var(--mono);font-size:10px;color:var(--ink-mute);
    letter-spacing:.18em;text-transform:uppercase;margin-left:auto;
  }

  /* prompt card */
  .th-card{
    background:rgba(255,255,255,.015);
    border:1px solid var(--line);
    padding:24px 24px 22px;
    font-family:var(--serif);font-size:14.5px;line-height:1.85;
    color:var(--ink);
    position:relative;
  }
  .th-card .th-doc-tag{
    position:absolute;top:-10px;left:18px;
    background:var(--bg-2);padding:0 8px;
    font-family:var(--mono);font-size:10px;color:var(--ink-mute);
    letter-spacing:.16em;text-transform:uppercase;
  }

  /* reveal view */
  .th-reveal .th-hidden-line{
    display:flex;align-items:center;gap:10px;
    background:rgba(224,131,98,.12);
    border:1px dashed rgba(224,131,98,.55);
    color:var(--accent);
    font-family:var(--mono);font-size:12.5px;
    padding:6px 10px;margin:8px 0;border-radius:2px;
  }
  .th-reveal .th-hidden-line::after{
    content:"白 1pt";
    margin-left:auto;flex-shrink:0;
    font-family:var(--mono);font-size:9.5px;color:var(--accent);
    letter-spacing:.14em;white-space:nowrap;
    border:1px solid rgba(224,131,98,.45);
    padding:1px 6px;border-radius:2px;
    text-transform:uppercase;
  }

  /* stealth view */
  .th-stealth .th-hidden-line{
    color:rgba(255,255,255,.04);
    font-size:1px;line-height:0;display:inline;user-select:text;
  }

  .th-annot{
    margin-top:14px;
    font-family:var(--sans);font-size:13px;color:var(--ink-soft);
    line-height:1.65;display:flex;gap:10px;align-items:flex-start;
  }
  .th-annot .th-label{
    font-family:var(--mono);font-size:10px;letter-spacing:.12em;
    color:var(--ink-mute);flex-shrink:0;padding-top:2px;text-transform:uppercase;
  }
  .th-annot b{color:var(--ink);font-weight:600}

  .th-arrow-col{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding-top:38px;gap:12px;
  }
  .th-arrow-col svg{width:80%;height:16px;color:var(--ink-mute)}
  .th-arrow-lab{
    font-family:var(--mono);font-size:9.5px;color:var(--ink-mute);
    letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;
    writing-mode:vertical-rl;text-orientation:mixed;
  }

  /* flow row */
  .th-flow{margin-top:48px;border-top:1px solid var(--line);padding-top:28px}
  .th-flow-title{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
    color:var(--ink-mute);text-transform:uppercase;margin-bottom:22px;
  }
  .th-flow-title em{color:var(--accent);font-style:normal}
  .th-flow-row{
    display:grid;grid-template-columns:1fr 36px 1fr 36px 1fr;gap:0;align-items:stretch;
  }
  .th-station{
    background:rgba(255,255,255,.012);
    border:1px solid var(--line);
    padding:20px;display:flex;flex-direction:column;gap:12px;min-height:240px;
  }
  .th-station.is-detect{
    border-color:var(--accent-soft);
    background:linear-gradient(180deg, rgba(224,131,98,.07), rgba(224,131,98,.02));
  }
  .th-s-head{display:flex;align-items:center;gap:12px}
  .th-icon{
    width:38px;height:38px;border-radius:50%;
    background:var(--bg);border:1.5px solid var(--ink-soft);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .th-icon svg{width:20px;height:20px}
  .th-icon.is-detect{border-color:var(--accent)}
  .th-s-name{
    font-family:var(--serif);font-size:15.5px;font-weight:600;color:var(--ink);
  }
  .th-s-role{
    font-family:var(--mono);font-size:9.5px;color:var(--ink-mute);
    letter-spacing:.16em;text-transform:uppercase;margin-top:2px;
  }
  .th-s-role.is-detect{color:var(--accent)}
  .th-s-body{font-size:13px;line-height:1.65;color:var(--ink-soft)}
  .th-s-body b{color:var(--ink);font-weight:600}
  .th-quote{
    font-family:var(--serif);font-style:italic;font-size:13px;
    line-height:1.55;padding:10px 12px;
    background:var(--bg);border-left:2px solid var(--accent);color:var(--ink);
  }
  .th-quote.is-detect{border-left-color:var(--accent-2)}
  .th-quote .th-trigger{
    color:var(--accent);font-weight:600;font-style:normal;
    background:rgba(224,131,98,.16);padding:1px 5px;border-radius:2px;
  }
  .th-tok{
    background:rgba(224,131,98,.15);padding:1px 5px;border-radius:2px;
    font-family:var(--mono);font-size:11.5px;color:var(--accent);
  }

  .th-flow-arrow{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:var(--ink-mute);gap:8px;
  }
  .th-flow-arrow svg{width:18px;height:14px}
  .th-flow-arrow .lbl{
    font-family:var(--mono);font-size:9px;letter-spacing:.18em;
    writing-mode:vertical-rl;text-orientation:mixed;color:var(--ink-mute);
    text-transform:uppercase;
  }

  .th-mag{
    display:inline-flex;align-items:center;gap:6px;
    padding:2px 7px;background:var(--accent);color:#0c0b0a;
    font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
    border-radius:2px;margin-left:8px;text-transform:uppercase;
  }
  .th-mag svg{width:10px;height:10px}

  /* footer */
  .th-foot{
    margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:32px;
    padding-top:20px;border-top:1px solid var(--line);
  }
  .th-note .th-note-h{
    font-family:var(--mono);font-size:10px;letter-spacing:.2em;
    color:var(--ink-mute);text-transform:uppercase;margin-bottom:8px;
  }
  .th-note .th-note-b{font-size:13px;line-height:1.7;color:var(--ink-soft)}
  .th-note .th-note-b b{color:var(--accent);font-weight:600}
  .th-legend{
    display:flex;gap:18px;flex-wrap:wrap;
    font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
    color:var(--ink-mute);text-transform:uppercase;margin-top:14px;
  }
  .th-sw{
    display:inline-block;width:10px;height:10px;margin-right:6px;
    vertical-align:-1px;border-radius:2px;border:1px solid rgba(255,255,255,.08);
  }

  @media (max-width:880px){
    .th-grid, .th-flow-row{grid-template-columns:1fr}
    .th-arrow-col, .th-flow-arrow{display:none}
    .th-foot{grid-template-columns:1fr}
    .th-reveal .th-hidden-line::after{display:none}
  }
  /* ─────────────────────────────────────────────────────────────────── */
