
  .article-layout { display: grid; grid-template-columns: 220px 1fr; gap: 48px; align-items: start; }
  .toc { position: sticky; top: 64px; }
  .toc h3 { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
  .toc ol { list-style: none; padding: 0; margin: 0; counter-reset: tocnum; }
  .toc ol li { counter-increment: tocnum; padding: 8px 0; border-bottom: 1px dashed var(--line-soft); }
  .toc ol li::before { content: counter(tocnum, decimal-leading-zero); font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--gold); margin-right: 10px; }
  .toc a { font-size: 13px; color: var(--ink-soft); transition: color .15s; }
  .toc a:hover { color: var(--gold-bright); }
  .lore-body p { font-size: 15px; line-height: 1.75; color: var(--ink-soft); margin: 0 0 14px; }
  .lore-body p:first-of-type::first-letter { font-family: var(--font-head); font-size: 64px; line-height: 0.9; float: left; padding: 6px 14px 0 0; color: var(--gold-bright); }
  .lore-body h2 { font-family: var(--font-head); font-size: 30px; margin: 36px 0 14px; color: var(--ink); }
  .lore-body blockquote { border-left: 2px solid var(--gold); margin: 24px 0; padding: 6px 0 6px 22px; font-family: var(--font-head); font-style: italic; font-size: 22px; color: var(--parch); line-height: 1.45; }
  .lore-body .figure { margin: 28px 0; }
  .lore-body .figure__img { aspect-ratio: 16/9; background: linear-gradient(135deg, rgba(78,128,180,0.2), rgba(168,48,64,0.2)), repeating-linear-gradient(45deg, rgba(255,255,255,0.02) 0 2px, transparent 2px 14px), var(--bg-stripe); border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink-faint); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; }
  .lore-body .figure__cap { margin-top: 8px; font-size: 12px; color: var(--ink-mute); text-align: center; letter-spacing: 0.04em; font-style: italic; }
  .lore-body .divider { display: flex; align-items: center; gap: 14px; margin: 32px 0; color: var(--gold); }
  .lore-body .divider::before, .lore-body .divider::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--line-strong), transparent); }
  .lore-body .divider span { font-family: var(--font-head); font-size: 18px; opacity: 0.65; }
