/* editorial.css — page-scoped layer for the "editorial" group (loaded after style.css; see DESIGN.md).
   Articles, learn guides, the Learn hub, the news hub, generic/trust pages, archives, search, 404.
   Tokens only (no hard-coded colours); every rule is scoped to an ed-/gd-/lh-/nh- class or .pg-editorial. */

/* =====================================================================
   0. SHARED BITS
   ===================================================================== */
.ed-read{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.ed-read svg{width:14px;height:14px;flex:none}
.ed-sep{color:var(--faint)}
/* thumbnail links (aria-hidden duplicates of the headline link): no underline under cover text */
.pg-editorial a[aria-hidden="true"]{text-decoration:none}

/* Reading progress: a 2px accent rule under the sticky header, driven by the
   scroll timeline where supported. No support / reduced motion → never shown. */
.ed-progress{position:fixed;left:0;right:0;top:var(--hd-sticky);height:2px;z-index:49;pointer-events:none;
  background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .ed-progress{animation:ed-progress linear both;animation-timeline:scroll(root block)}
  }
}
@keyframes ed-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* =====================================================================
   1. ARTICLE HEADER (posts, guides, generic pages)
   ===================================================================== */
.ed-head{padding-top:var(--sp-6)}
.ed-head h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.25rem);line-height:1.06;letter-spacing:-.036em;max-width:24ch}
.ed-head .art__dek{font-size:clamp(var(--fs-18),1rem + .5vw,var(--fs-20));line-height:1.55;color:var(--text-2);max-width:60ch;margin-top:var(--sp-4)}
.ed-head__meta{margin:0 0 var(--sp-4);gap:.35rem .6rem}
.ed-head .meta .cat{min-height:26px;padding:0 .65rem;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);text-decoration:none;font-size:var(--fs-11)}
.ed-head .meta .cat:hover{text-decoration:none;background:color-mix(in srgb,var(--accent) 16%,var(--surface))}
.ed-head .meta .tag-pr{height:26px}
.ed-head__eyebrow{margin-bottom:var(--sp-3)}
.ed-head__eyebrow svg,.gd__eyebrow svg{width:14px;height:14px;flex:none}
.ed-head .stamp{margin-top:var(--sp-5)}

/* byline: monogram disc + who + dates, standards link on the right */
.ed-byline{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-6);padding:var(--sp-4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ed-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--accent);
  font:700 var(--fs-13)/1 var(--font-sans);letter-spacing:-.02em;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}
.ed-byline__txt{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1 1 14rem}
.ed-byline__who{font-size:var(--fs-15);color:var(--text-2);line-height:1.35}
.ed-byline__who .byline__who a{text-decoration:none}
.ed-byline__dates{display:flex;flex-wrap:wrap;align-items:center;gap:.1rem .5rem;font-size:var(--fs-13);color:var(--muted);line-height:1.5;font-variant-numeric:tabular-nums}
.ed-byline time{color:var(--muted)}
.ed-byline__std{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:0 .8rem;margin-left:auto;border:1px solid var(--line);border-radius:var(--r-pill);
  background:var(--surface);font-size:var(--fs-13);font-weight:550;color:var(--text-2);text-decoration:none;white-space:nowrap;transition:border-color var(--dur),color var(--dur),background var(--dur)}
.ed-byline__std svg{width:14px;height:14px;color:var(--accent);flex:none}
.ed-byline__std:hover{border-color:var(--line-2);background:var(--surface-2);color:var(--text)}
@media (max-width:639px){ .ed-byline__std{margin-left:52px} }

/* press-release banner: warn tone, icon, impossible to miss */
.ed-pr{display:flex;align-items:flex-start;gap:var(--sp-3);margin:var(--sp-6) 0;padding:var(--sp-4) var(--sp-5);border-radius:var(--r-lg);
  font-size:var(--fs-15);line-height:1.6;box-shadow:inset 3px 0 0 var(--warn),var(--shadow-sm)}
.ed-pr p{margin:0;color:var(--text-2)}
.ed-pr strong{color:var(--warn)}
.ed-pr__ic{flex:none;width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.ed-pr__ic svg{width:18px;height:18px}

.pg-editorial .art__fig{margin:var(--sp-8) 0;box-shadow:var(--shadow-sm)}

/* =====================================================================
   2. ANSWER BOX — premium callout
   ===================================================================== */
.pg-editorial .answer{margin:var(--sp-8) 0;padding:var(--sp-6) var(--sp-6) var(--sp-6) calc(var(--sp-6) + 4px);box-shadow:var(--shadow-sm)}
.pg-editorial .answer::before{top:var(--sp-5);bottom:var(--sp-5)}
.pg-editorial .answer__k{display:inline-flex;padding:.4rem .7rem;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--answer-line);margin-bottom:var(--sp-4)}
.pg-editorial .answer>p{font-size:clamp(var(--fs-17),1rem + .2vw,var(--fs-18));line-height:1.62;color:var(--text)}
.pg-editorial .answer ul{list-style:none;margin:var(--sp-5) 0 0;padding:var(--sp-4) 0 0;border-top:1px solid var(--answer-line);display:grid;gap:var(--sp-3)}
.pg-editorial .answer li{position:relative;margin:0;padding-left:1.85rem;font-size:var(--fs-15);line-height:1.55;color:var(--text-2)}
.pg-editorial .answer li::before{content:"";position:absolute;left:0;top:.15em;width:1.15rem;height:1.15rem;background:var(--accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 0a10 10 0 1 1 0 20a10 10 0 0 1 0-20ZM14.2 6.3 8.8 11.7 5.9 8.8 4.5 10.2 8.8 14.5 15.6 7.7Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 0a10 10 0 1 1 0 20a10 10 0 0 1 0-20ZM14.2 6.3 8.8 11.7 5.9 8.8 4.5 10.2 8.8 14.5 15.6 7.7Z'/%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:639px){ .pg-editorial .answer{padding:var(--sp-5) var(--sp-4) var(--sp-5) calc(var(--sp-4) + 6px)} }

/* =====================================================================
   3. PROSE — measure, rhythm, lists, quotes, tables
   ===================================================================== */
.ed-prose{font-size:var(--fs-17);line-height:1.75;color:var(--text-2)}
.ed-prose>p:first-child{font-size:clamp(var(--fs-18),1rem + .35vw,var(--fs-20));line-height:1.65;color:var(--text)}
.ed-prose h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.875rem);letter-spacing:-.026em;line-height:1.2;margin:3rem 0 .9rem}
.ed-prose h3{font-size:clamp(var(--fs-18),1rem + .3vw,var(--fs-20));letter-spacing:-.016em;margin:2.25rem 0 .6rem}
.ed-prose h4{font-size:var(--fs-17);margin:1.75rem 0 .5rem}
.ed-prose h2+h3{margin-top:1.25rem}
.ed-prose a{font-weight:500}
.ed-prose ul,.ed-prose ol{padding-left:1.4rem;margin:0 0 1.25em}
.ed-prose li{margin:.45rem 0;padding-left:.3rem}
.ed-prose ul>li::marker{color:var(--accent);font-size:1.05em}
.ed-prose ol>li::marker{color:var(--accent);font-weight:650;font-variant-numeric:tabular-nums}
.ed-prose li>ul,.ed-prose li>ol{margin:.35rem 0 .2rem}
.ed-prose blockquote{position:relative;margin:var(--sp-8) 0;padding:var(--sp-5) var(--sp-6);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:0 var(--r) var(--r) 0;font:500 clamp(var(--fs-17),1rem + .3vw,var(--fs-20))/1.55 var(--font-sans);letter-spacing:-.01em;color:var(--text);box-shadow:var(--shadow-sm)}
.ed-prose blockquote p:last-child{margin-bottom:0}
.ed-prose blockquote cite{display:block;margin-top:.6rem;font:500 var(--fs-13)/1.4 var(--font-sans);font-style:normal;color:var(--muted);letter-spacing:0}
.ed-prose table{border-collapse:separate;border-spacing:0;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);font-size:var(--fs-15);margin:var(--sp-8) 0;
  scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.ed-prose th,.ed-prose td{padding:.7rem .95rem;border-bottom:1px solid var(--line);line-height:1.5}
.ed-prose thead th,.ed-prose tr:first-child>th{font:600 var(--fs-12)/1.3 var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);border-bottom-color:var(--line-2)}
.ed-prose tbody th{background:none;font-size:var(--fs-15);text-transform:none;letter-spacing:0}
.ed-prose td:first-child{color:var(--text);font-weight:550}
.ed-prose tbody tr:last-child>*{border-bottom:0}
.ed-prose tbody tr:hover{background:var(--row-hover)}
.ed-prose img{border-radius:var(--r-lg)}
.ed-prose figure img{border:1px solid var(--line)}
.ed-prose hr{border-top:1px solid var(--line);margin:var(--sp-12) 0}
.ed-prose dl{margin:0 0 1.25em}
.ed-prose dt{font-weight:600;color:var(--text);margin-top:.9rem}
.ed-prose dd{margin:.2rem 0 0}

/* tags + production note */
.ed-tags{align-items:center;margin:var(--sp-10) 0 0;padding-top:var(--sp-6);border-top:1px solid var(--line)}
.ed-tags__k{font:600 var(--fs-12)/1 var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-right:var(--sp-1)}
.ed-tags a{min-height:32px;transition:border-color var(--dur),color var(--dur),background var(--dur)}
.ed-tags a:hover{background:var(--surface-2);color:var(--accent)}
.ed-note{margin-top:var(--sp-8)}

/* =====================================================================
   4. CARD RIVER (news hub, related) — tiles become cards, whole card clickable
   ===================================================================== */
.ed-related{margin-top:var(--sp-4);border-top:1px solid var(--line)}
.ed-river .tile{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease)}
.ed-river .tile:hover{border-color:var(--line-2);box-shadow:var(--shadow);transform:translateY(-2px)}
.ed-river .tile>a:first-child{order:-2;display:block}
.ed-river .tile .tile__img{margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0}
.ed-river .tile .meta{order:-1;margin:0;padding:var(--sp-4) var(--sp-5) 0}
.ed-river .tile h3{margin:0;padding:var(--sp-2) var(--sp-5) var(--sp-5);font-size:var(--fs-17);line-height:1.38;letter-spacing:-.014em}
.ed-river .tile h3 a::after{content:"";position:absolute;inset:0;z-index:0}
.ed-river .tile .meta a,.ed-river .tile .meta .tag-pr{position:relative;z-index:1}
.ed-river .tile:hover h3 a{color:var(--accent)}
.ed-river .tile h3 a:focus-visible{outline:none}
.ed-river .tile:has(h3 a:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.ed-river .tile--pr{border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}

/* =====================================================================
   5. LEARN GUIDE — sticky table of contents on desktop
   ===================================================================== */
.gd{max-width:var(--wrap-text)}
.gd__head{padding-top:var(--sp-6);margin-bottom:var(--sp-6)}
.gd__head h1{margin-top:var(--sp-3);font-size:clamp(2.1rem,1.4rem + 2.8vw,3.5rem);line-height:1.04;letter-spacing:-.04em;max-width:22ch}
.gd__eyebrow{margin-bottom:0}
.gd__head+.answer{margin-top:0}
.gd__sec{margin:var(--sp-12) 0 var(--sp-8)}
.gd__more .lh-card h3{font-size:var(--fs-16)}

/* table of contents: numbered, hairline rail */
.ed-toc{padding:var(--sp-4) var(--sp-4) var(--sp-3);box-shadow:var(--shadow-sm)}
.ed-toc>.eyebrow{margin:0 0 var(--sp-2);padding:0 .5rem}
.ed-toc ol,.ed-rail__toc ol{list-style:none;margin:0;padding:0;counter-reset:toc;font-size:var(--fs-14)}
.ed-toc li,.ed-rail__toc li{counter-increment:toc;margin:0;break-inside:avoid}
.ed-toc a,.ed-rail__toc a{display:flex;align-items:baseline;gap:.65rem;min-height:32px;padding:.4rem .5rem;border-radius:var(--r-sm);line-height:1.4;color:var(--text-2);text-decoration:none;transition:background var(--dur),color var(--dur)}
.ed-toc li a::before,.ed-rail__toc li a::before{content:counter(toc,decimal-leading-zero);flex:none;min-width:1.35rem;font:600 var(--fs-12)/1.4 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--muted)}
.ed-toc a:hover,.ed-rail__toc a:hover{background:var(--surface-2);color:var(--text)}
.ed-toc a:hover::before,.ed-rail__toc a:hover::before{color:var(--accent)}
.ed-toc__top{display:none}
/* progressive: highlight the section in view where the browser supports scroll-target-group */
.ed-toc ol,.ed-rail__toc ol{scroll-target-group:auto}
.ed-toc a:target-current,.ed-rail__toc a:target-current{color:var(--accent);background:var(--accent-soft)}
.ed-toc a:target-current::before,.ed-rail__toc a:target-current::before{color:var(--accent)}

@media (min-width:1100px){
  .gd--toc{max-width:1120px;display:grid;grid-template-columns:minmax(0,1fr) 260px;column-gap:clamp(2.5rem,4vw,4rem);align-items:start}
  .gd--toc>*{grid-column:1;min-width:0}
  .gd--toc>.gd__head{grid-column:1 / -1}
  .gd--toc>.ed-toc{grid-column:2;grid-row:2 / span 60;align-self:start;position:sticky;top:calc(var(--hd-sticky) + 24px);
    margin:var(--sp-8) 0 0;max-height:calc(100vh - var(--hd-sticky) - 48px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;
    background:none;border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:none;padding:0 0 0 var(--sp-4)}
  .gd--toc>.ed-toc ol{columns:1}
  .gd--toc>.ed-toc a{border-radius:0 var(--r-sm) var(--r-sm) 0;margin-left:calc(-1 * var(--sp-4) - 1px);padding-left:calc(var(--sp-4) - 1px);border-left:2px solid transparent}
  .gd--toc>.ed-toc a:hover{border-left-color:var(--line-2)}
  .gd--toc>.ed-toc a:target-current{border-left-color:var(--accent)}
  .ed-toc__top{display:inline-flex;align-items:center;min-height:32px;margin:var(--sp-3) 0 0 .5rem;font-size:var(--fs-13);color:var(--muted);text-decoration:none}
  .ed-toc__top::before{content:"↑";margin-right:.4rem}
  .ed-toc__top:hover{color:var(--accent)}
}

/* "tools and pages for this" */
.ed-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:var(--sp-3)}
.ed-link{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);
  box-shadow:var(--shadow-sm);text-decoration:none;color:var(--text);font-size:var(--fs-15);font-weight:550;line-height:1.35;transition:border-color var(--dur),box-shadow var(--dur)}
.ed-link::after{content:"→";margin-left:auto;padding-left:var(--sp-2);color:var(--muted);transition:transform var(--dur) var(--ease),color var(--dur)}
.ed-link:hover{border-color:var(--line-2);box-shadow:var(--shadow);color:var(--text)}
.ed-link:hover::after{transform:translateX(3px);color:var(--accent)}
.ed-link__ic{width:32px;height:32px;flex:none;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.ed-link__ic svg{width:16px;height:16px}
.ed-link__t{min-width:0;overflow-wrap:anywhere}

/* FAQ polish on reading pages */
.pg-editorial .faq{margin:var(--sp-12) 0 var(--sp-8)}
.pg-editorial .faq summary{font-size:var(--fs-16);line-height:1.4;padding:var(--sp-4) var(--sp-5)}
.pg-editorial .faq summary::after{border-color:var(--accent)}
.pg-editorial .faq details[open]{background:color-mix(in srgb,var(--surface-2) 45%,var(--surface))}
.pg-editorial .faq details>div{font-size:var(--fs-15)}

/* =====================================================================
   6. LEARN HUB
   ===================================================================== */
.lh-head{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-8);align-items:center;padding-bottom:var(--sp-8)}
.lh-head h1{font-size:var(--fs-display);line-height:1.02;letter-spacing:-.04em;font-weight:700}
.lh-kpis{margin-top:var(--sp-6);max-width:560px}
.lh-kpis .kpi__v{font-size:clamp(var(--fs-18),1rem + .5vw,var(--fs-24))}
@media (max-width:639px){ .lh-kpis{grid-template-columns:repeat(3,minmax(0,1fr))} .lh-kpis>*{padding:var(--sp-3)} .lh-kpis .kpi__v{font-size:var(--fs-16);white-space:normal;overflow:visible} }
.lh-art{display:none}
@media (min-width:900px){
  .lh-head{grid-template-columns:minmax(0,1fr) 300px}
  .lh-art{display:block;position:relative;height:250px}
}
.lh-art__card{position:absolute;width:220px;height:150px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.lh-art__card--3{top:8px;right:0;background:var(--surface-2);transform:rotate(7deg)}
.lh-art__card--2{top:40px;right:34px;transform:rotate(-3deg)}
.lh-art__card--1{top:78px;right:72px;padding:18px;box-shadow:var(--shadow-lg)}
.lh-art__ic{display:grid;place-items:center;width:36px;height:36px;margin-bottom:14px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent);font-style:normal}
.lh-art__ic svg{width:18px;height:18px}
.lh-art__card b{display:block;height:8px;margin-top:9px;border-radius:4px;background:var(--surface-3)}
.lh-art__card b:nth-of-type(1){width:82%;background:color-mix(in srgb,var(--text) 22%,var(--surface-3))}
.lh-art__card b:nth-of-type(2){width:64%}
.lh-art__card b:nth-of-type(3){width:72%}
.lh-art__card em{position:absolute;top:22px;right:18px;width:52px;height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.lh-art__card em::after{content:"";position:absolute;inset:0 40% 0 0;background:var(--accent);border-radius:inherit}
@media (prefers-reduced-motion:no-preference){
  .lh-art__card{transition:transform .4s var(--ease)}
  .lh-head:hover .lh-art__card--3{transform:rotate(9deg) translateY(-3px)}
  .lh-head:hover .lh-art__card--2{transform:rotate(-4deg) translateY(-2px)}
}

/* topic jump bar: sticks under the header, one scrollable row on phones */
.lh-jump{position:sticky;top:var(--hd-sticky);z-index:10;background:var(--bg);margin:0 calc(-1 * var(--gut)) var(--sp-4);padding:var(--sp-3) var(--gut);border-bottom:1px solid var(--line)}
.lh-jump .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px}
.lh-jump .chips::-webkit-scrollbar{display:none}
.lh-jump .chip{flex:none}
@media (min-width:1024px){ .lh-jump .chips{flex-wrap:wrap;overflow:visible} }

.lh-sec{margin:var(--sp-12) 0}
.lh-sec:first-of-type{margin-top:var(--sp-8)}
.lh-sec__h{align-items:center;gap:var(--sp-4)}
.lh-sec__h .sec__t{flex:1 1 260px}
.lh-sec__h h2{scroll-margin-top:calc(var(--hd-sticky) + 84px)}
.lh-sec__ic{width:48px;height:48px;flex:none;border-radius:var(--r);display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--accent)}
.lh-sec__ic svg{width:22px;height:22px}
.lh-sec__n{align-self:center}
@media (max-width:639px){ .lh-sec__ic{width:40px;height:40px} .lh-sec__ic svg{width:19px;height:19px} .lh-sec__n{display:none} }

.lh-card{gap:var(--sp-2)}
.lh-card h3{font-size:var(--fs-17);line-height:1.35;letter-spacing:-.014em}
.lh-card p{font-size:var(--fs-14);line-height:1.55}
.lh-card .tool__ic{transition:background var(--dur),color var(--dur)}
.lh-card:hover .tool__ic{background:var(--accent);color:var(--accent-ink)}
.lh-card__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--line);
  font:500 var(--fs-13)/1.3 var(--font-sans);color:var(--muted)}
.lh-card>p{margin-bottom:var(--sp-3)}
.lh-card__go{display:inline-grid;place-items:center;color:var(--muted);transition:transform var(--dur) var(--ease),color var(--dur)}
.lh-card__go svg{width:16px;height:16px}
.lh-card:hover .lh-card__go{color:var(--accent);transform:translateX(3px)}

.lh-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-5);margin:var(--sp-16) 0 var(--sp-4);padding:clamp(1.25rem,3vw,2rem);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.lh-cta__txt{flex:1 1 280px;min-width:0}
.lh-cta h2{margin-bottom:.35rem}
.lh-cta p{margin:0;color:var(--muted);font-size:var(--fs-15)}

/* =====================================================================
   7. NEWS HUB + ARCHIVES — head meta, section chips, lead story
   ===================================================================== */
.nh-head{padding-bottom:var(--sp-5)}
.nh-head__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin:var(--sp-4) 0 0;font-size:var(--fs-13);color:var(--muted)}
.nh-head__meta svg{width:15px;height:15px;flex:none}
.nh-head__meta .num{color:var(--text);font-weight:600}
.nh-cats{margin:0 calc(-1 * var(--gut)) var(--sp-8);padding:0 var(--gut)}
.nh-cats .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px}
.nh-cats .chips::-webkit-scrollbar{display:none}
.nh-cats .chip{flex:none}
@media (min-width:768px){ .nh-cats .chips{flex-wrap:wrap;overflow:visible} }

.nh-top{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-6);margin-bottom:var(--sp-12)}
@media (min-width:1024px){ .nh-top{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(1.75rem,3vw,2.75rem);align-items:start} }
.nh-lead{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-5)}
.nh-lead__media{display:block}
.nh-lead .lead__img{box-shadow:var(--shadow-sm);transition:box-shadow var(--dur)}
.nh-lead .lead__img img{transition:transform .5s var(--ease)}
.nh-lead:hover .lead__img{box-shadow:var(--shadow)}
.nh-lead:hover .lead__img img{transform:scale(1.02)}
.nh-lead .cover__t{font-size:clamp(1.75rem,1.1rem + 2.6vw,3rem)}
.nh-lead .meta{margin-top:0}
.nh-lead h3{font-size:clamp(1.6rem,1.15rem + 1.7vw,2.5rem);line-height:1.1;letter-spacing:-.032em;margin:var(--sp-3) 0 var(--sp-3);max-width:28ch}
.nh-lead h3 a::after{content:"";position:absolute;inset:0;z-index:0}
.nh-lead .meta a,.nh-lead .meta .tag-pr{position:relative;z-index:1}
.nh-lead:hover h3 a{color:var(--accent)}
.nh-lead__dek{margin:0 0 var(--sp-4);max-width:64ch;font-size:var(--fs-17);line-height:1.6;color:var(--text-2)}
.nh-lead__more{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-14);font-weight:600;color:var(--accent);text-decoration:none}
.nh-lead__more svg{width:16px;height:16px;transition:transform var(--dur) var(--ease)}
.nh-lead:hover .nh-lead__more svg{transform:translateX(3px)}
.nh-lead--pr .lead__img{border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}

.nh-side{display:flex;flex-direction:column;min-width:0;padding:var(--sp-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.nh-side__k{margin:0 0 var(--sp-1)}
.nh-story{position:relative;grid-template-columns:minmax(0,1fr) 96px}
.nh-story__txt{min-width:0}
.nh-story .meta{margin:0 0 .35rem}
.nh-story h3{font-size:var(--fs-15);line-height:1.42;letter-spacing:-.008em}
.nh-story h3 a::after{content:"";position:absolute;inset:0;z-index:0}
.nh-story .meta a,.nh-story .meta .tag-pr{position:relative;z-index:1}
.nh-story:hover h3 a{color:var(--accent)}
@media (max-width:639px){ .nh-side{padding:var(--sp-4)} .nh-story{grid-template-columns:minmax(0,1fr) 68px;gap:var(--sp-3)} .nh-story .meta{font-size:var(--fs-12);gap:.2rem .45rem} .nh-story .meta>*+*::before{margin-right:.45rem} }
.nh-more{margin-top:var(--sp-4)}
.ed-pager{justify-content:center}

/* archive / search rows: one card, hairline rows, whole row clickable */
.ed-arch-head{padding-bottom:var(--sp-6)}
.ed-alist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:0 var(--sp-5);margin-bottom:var(--sp-4)}
.ed-alist .arow{position:relative;grid-template-columns:96px minmax(0,1fr) 160px;gap:var(--sp-5)}
.ed-alist .arow time{font-size:var(--fs-13);padding-top:.28rem}
.ed-alist .arow__txt{min-width:0}
.ed-alist .arow h2{font-size:var(--fs-18);line-height:1.35}
.ed-alist .arow h2 a::after{content:"";position:absolute;inset:0;z-index:0}
.ed-alist .arow .meta a,.ed-alist .arow .meta .tag-pr{position:relative;z-index:1}
.ed-alist .arow:hover h2 a{color:var(--accent)}
.ed-alist .arow .meta{margin-top:.35rem}
.ed-alist .arow p{margin-top:.5rem;font-size:var(--fs-15);line-height:1.55}
.ed-alist .arow__img{transition:box-shadow var(--dur)}
.ed-alist .arow:hover .arow__img{box-shadow:var(--shadow)}
.ed-alist .arow--search{grid-template-columns:96px minmax(0,1fr)}
.ed-alist .arow--search>span:empty{display:none}
.ed-alist .arow:has(h2 a:focus-visible){outline:2px solid var(--focus);outline-offset:-2px;border-radius:var(--r-sm)}
.ed-alist .arow h2 a:focus-visible{outline:none}
@media (max-width:767px){
  .ed-alist{padding:0 var(--sp-4)}
  .ed-alist .arow{grid-template-columns:minmax(0,1fr) 76px;gap:var(--sp-1) var(--sp-4);padding:var(--sp-4) 0}
  .ed-alist .arow>time{grid-column:1;grid-row:1;padding-top:0}
  .ed-alist .arow>.arow__txt{grid-column:1;grid-row:2}
  .ed-alist .arow>a:last-child{grid-column:2;grid-row:1 / span 2}
  .ed-alist .arow .arow__img{display:block;aspect-ratio:1}
  .ed-alist .arow .cover--sm .cover__k{display:none}
  .ed-alist .arow h2{font-size:var(--fs-16)}
  .ed-alist .arow p{font-size:var(--fs-14)}
  .ed-alist .arow--search{grid-template-columns:minmax(0,1fr)}
}

/* =====================================================================
   8. SEARCH, EMPTY STATES, 404
   ===================================================================== */
.ed-search{margin-top:var(--sp-6);max-width:600px}
.ed-search .srch{display:flex}
.ed-search .srch input{width:100%;height:52px;padding:0 3rem 0 2.9rem;border-radius:var(--r-lg);border-color:var(--line-2);background:var(--surface);font-size:var(--fs-16);box-shadow:var(--shadow-sm)}
.ed-search .srch>svg{left:1rem;width:18px;height:18px}
.ed-search .srch__k{right:.9rem}
.ed-search-head{padding-bottom:var(--sp-6)}
.ed-search__pop{margin-top:var(--sp-5)}
.ed-sres{margin:var(--sp-8) 0 var(--sp-10)}

.ed-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0 var(--sp-12);padding:var(--sp-12) var(--sp-5);text-align:center;
  background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r-lg);color:var(--text-2)}
.ed-empty p{margin:0;max-width:52ch}
.ed-empty__ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.ed-empty__ic svg{width:22px;height:22px}
.ed-empty .chips{justify-content:center;margin-top:var(--sp-2)}

.ed-404{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-8);align-items:center;padding:clamp(1rem,4vw,3rem) 0 var(--sp-4)}
.ed-404__head h1{font-size:var(--fs-display);line-height:1.02;letter-spacing:-.04em;font-weight:700;max-width:16ch}
.ed-404__art{display:none}
@media (min-width:900px){
  .ed-404{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
  .ed-404__art{display:grid;place-items:center;position:relative;isolation:isolate;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow);
    background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--text) 11%,transparent) 1px,transparent 0) 0 0/16px 16px,var(--surface)}
}
.ed-404__code{position:relative;z-index:1;margin-top:-18%;font:700 clamp(4.5rem,2.5rem + 6vw,8rem)/1 var(--font-sans);letter-spacing:-.06em;color:var(--text);font-variant-numeric:tabular-nums}
.ed-404__chart{position:absolute;left:0;right:0;bottom:0;height:52%;z-index:-1}
.ed-404__chart::before{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,color-mix(in srgb,var(--accent) 3%,transparent),color-mix(in srgb,var(--accent) 22%,transparent));
  clip-path:polygon(0 42%,14% 30%,27% 46%,41% 24%,54% 36%,61% 28%,66% 100%,0 100%)}
.ed-404__chart::after{content:"";position:absolute;inset:0;background:var(--accent);
  clip-path:polygon(0 42%,14% 30%,27% 46%,41% 24%,54% 36%,61% 28%,66.6% 100%,65% 100%,60.6% 31.4%,54% 39.4%,41% 27.4%,27% 49.4%,14% 33.4%,0 45.4%)}
.ed-404__chart i{position:absolute;left:67%;right:7%;bottom:3px;border-top:2px dashed var(--line-2)}
.ed-404__go{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-4);margin:var(--sp-6) 0 var(--sp-16)}
@media (max-width:1023px){ .ed-404__go{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:639px){ .ed-404__go{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)} }
.ed-404__card h3{font-size:var(--fs-16)}
.ed-404__card p{font-size:var(--fs-13)}

/* =====================================================================
   9. GENERIC / TRUST PAGES — side rail, glossary letter index
   ===================================================================== */
.ed-page__body{margin-top:var(--sp-8)}
.ed-rail__card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-3);box-shadow:var(--shadow-sm)}
.ed-rail__card>.eyebrow{margin:0 0 var(--sp-2);padding:0 .6rem}
.ed-rail__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:2px}
.ed-rail__list a{display:flex;align-items:center;min-height:36px;padding:0 .6rem;border-radius:var(--r-sm);text-decoration:none;color:var(--text-2);font-size:var(--fs-14);font-weight:500;transition:background var(--dur),color var(--dur)}
.ed-rail__list a:hover{background:var(--surface-2);color:var(--text)}
.ed-rail__list a[aria-current]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.ed-rail{margin:0 auto var(--sp-8);max-width:var(--wrap-narrow)}
.ed-rail__toc{display:none}
@media (min-width:1100px){
  .ed-doc--rail{display:grid;grid-template-columns:minmax(0,1fr) 260px;column-gap:clamp(2.5rem,4vw,4rem);align-items:start;max-width:1120px;margin:0 auto}
  .ed-doc--rail>.art{max-width:none;margin:0}
  .ed-rail{position:sticky;top:calc(var(--hd-sticky) + 24px);margin:var(--sp-10) 0 0;max-width:none;display:flex;flex-direction:column;gap:var(--sp-4);
    max-height:calc(100vh - var(--hd-sticky) - 48px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .ed-rail__list{grid-template-columns:minmax(0,1fr)}
  .ed-rail__toc{display:block}
  .ed-doc--rail .ed-toc--inline{display:none}
}

/* glossary: letter tiles, and the "Jump to letter" line becomes a sticky index */
.ed-page--glossary .prose h2{display:inline-grid;place-items:center;min-width:48px;height:48px;padding:0 .7rem;margin:3rem 0 .4rem;border-radius:var(--r);
  background:var(--accent-soft);color:var(--accent);font-size:var(--fs-24);line-height:1}
.ed-page--glossary .prose h3{font-size:var(--fs-18);margin:1.6rem 0 .35rem}
.ed-page--glossary .prose h3+p{margin-bottom:.6rem}
.ed-page--glossary .prose p:has(>a[href^="#letter-"]){position:sticky;top:var(--hd-sticky);z-index:5;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;
  max-width:none;margin:var(--sp-6) calc(-1 * var(--gut)) var(--sp-4);padding:var(--sp-3) var(--gut);overflow-x:auto;scrollbar-width:none;
  background:var(--bg);border-bottom:1px solid var(--line);font-size:0;line-height:1}
.ed-page--glossary .prose p:has(>a[href^="#letter-"])::-webkit-scrollbar{display:none}
.ed-page--glossary .prose p:has(>a[href^="#letter-"])>strong{flex:none;margin-right:6px;font:600 var(--fs-12)/1 var(--font-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.ed-page--glossary .prose p:has(>a[href^="#letter-"])>a{flex:none;display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 .4rem;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface);font:600 var(--fs-14)/1 var(--font-sans);color:var(--text-2);text-decoration:none;transition:border-color var(--dur),color var(--dur)}
.ed-page--glossary .prose p:has(>a[href^="#letter-"])>a:hover{border-color:var(--accent);color:var(--accent)}
@media (min-width:768px){
  .ed-page--glossary .prose p:has(>a[href^="#letter-"]){flex-wrap:wrap;margin-left:0;margin-right:0;padding-left:0;padding-right:0}
}
.ed-page--glossary .prose [id]{scroll-margin-top:calc(var(--hd-sticky) + 72px)}

/* =====================================================================
   10. PRINT
   ===================================================================== */
@media print{
  .ed-progress,.ed-toc,.ed-rail,.lh-jump,.lh-art,.nh-cats,.ed-404__art,.ed-byline__std,.nh-lead__more{display:none!important}
  .gd--toc,.ed-doc--rail{display:block!important;max-width:none}
  .ed-river .tile,.ed-alist,.nh-side,.ed-link,.ed-prose blockquote,.ed-prose table{box-shadow:none!important;break-inside:avoid}
  .ed-page--glossary .prose p:has(>a[href^="#letter-"]){position:static}
}
