/* ═══════════════════════════════════════════════════════════
   Yadav Sitaram — writing
   Extends styles.css. Same tokens, same fonts, same accent.
   ═══════════════════════════════════════════════════════════ */

/* ── listing ────────────────────────────────────────────── */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}

.plead{
  padding:clamp(5rem,11vw,8.5rem) 0 clamp(1.6rem,4vw,2.6rem);
  border-bottom:1px solid var(--line);
}
.plead__k{
  display:flex;align-items:center;gap:.55rem;
  font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:1rem;
}
.plead__k::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent)}
.plead h1{font-size:clamp(2.1rem,5vw,3.4rem);font-weight:700;letter-spacing:-.035em;max-width:20ch}
.plead__sub{margin-top:1rem;color:var(--muted);font-size:clamp(1rem,1.5vw,1.12rem);max-width:60ch;line-height:1.65}

.posts{display:grid;gap:1px;background:var(--line);border-bottom:1px solid var(--line);margin-top:0}
.post-row{
  background:var(--bg);padding:clamp(1.6rem,3.5vw,2.4rem) 0;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:start;
  transition:background .22s var(--ease);
}
.post-row:hover{background:var(--surface)}
.post-row__meta{display:flex;gap:.6rem;align-items:center;font-size:.8rem;color:var(--faint);margin-bottom:.6rem}
.post-row__dot{width:3px;height:3px;border-radius:50%;background:var(--line-2)}
.post-row h2{font-size:clamp(1.25rem,2.4vw,1.65rem);letter-spacing:-.025em;margin-bottom:.55rem}
.post-row h2 a{transition:color .18s var(--ease)}
.post-row:hover h2 a{color:var(--accent)}
.post-row__sum{color:var(--muted);max-width:66ch;line-height:1.65;font-size:.98rem}
.post-row__go{
  align-self:center;width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line-2);display:grid;place-items:center;color:var(--muted);
  transition:all .22s var(--ease);flex:none;
}
.post-row:hover .post-row__go{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateX(3px)}

/* ── article ────────────────────────────────────────────── */
.ahead{padding:clamp(5rem,11vw,8rem) 0 clamp(2rem,4vw,3rem);max-width:calc(52rem + var(--pad) * 2);margin-inline:auto}
.ahead__back{
  display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--muted);
  margin-bottom:1.8rem;transition:color .18s var(--ease);
}
.ahead__back:hover{color:var(--accent)}
.ahead h1{font-size:clamp(2.1rem,5.2vw,3.5rem);font-weight:700;letter-spacing:-.035em;max-width:19ch}
.ahead__deck{
  margin-top:1.15rem;font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.6;
  color:var(--ink-2);max-width:62ch;font-weight:300;
}
.ahead__meta{
  display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;
  margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid var(--line);
  font-size:.84rem;color:var(--faint);
}
.ahead__meta strong{color:var(--ink-2);font-weight:500}

/* body column */
.art{max-width:44rem;margin:0 auto;padding-bottom:clamp(3rem,7vw,5rem)}
.art > p{margin:0 0 1.25rem;font-size:1.055rem;line-height:1.75;color:var(--ink-2)}
.art > p strong{color:var(--ink);font-weight:500}
.art h2{
  font-size:clamp(1.4rem,2.8vw,1.85rem);letter-spacing:-.025em;
  margin:clamp(3rem,6vw,4.2rem) 0 .5rem;scroll-margin-top:90px;
}
.art h3{font-size:1.12rem;letter-spacing:-.015em;margin:2.2rem 0 .7rem}
.art__step{
  display:block;font-size:.74rem;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;
}
.art ul{margin:0 0 1.3rem;padding-left:0}
.art li{position:relative;padding-left:1.4rem;margin-bottom:.6rem;line-height:1.7;color:var(--ink-2)}
.art li::before{content:'';position:absolute;left:.35rem;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--line-art)}
.art a:not(.btn){color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--line-art)}
.art a:not(.btn):hover{text-decoration-color:var(--accent)}

/* pull quote from a filing */
.quote{
  margin:2rem 0;padding:1.4rem 1.6rem;background:var(--surface);
  border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.quote p{margin:0;font-size:1.02rem;line-height:1.65;color:var(--ink);font-style:italic}
.quote cite{display:block;margin-top:.75rem;font-style:normal;font-size:.8rem;color:var(--faint)}

/* callout */
.note{
  margin:1.9rem 0;padding:1.15rem 1.35rem;border-radius:var(--r-sm);
  background:var(--accent-soft);border:1px solid #D6E2FF;
}
.note p{margin:0;font-size:.97rem;line-height:1.65;color:#1B3A87}
.note strong{color:#12275C;font-weight:600}
.note--warn{background:#FEF6EC;border-color:#F6DFC0}
.note--warn p{color:#7A4A12}
.note--warn strong{color:#5C3708}

/* numbers */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;margin:1.9rem 0}
.stat{background:var(--surface);padding:1.05rem 1.15rem}
.stat__n{font-family:var(--h);font-size:1.5rem;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.stat__n--warn{color:#B42318}
.stat__n--ok{color:#067647}
.stat__l{font-size:.79rem;color:var(--muted);margin-top:.35rem;line-height:1.45}

/* table */
.tw{overflow-x:auto;margin:1.9rem 0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}
.art table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:min(100%,460px)}
.art th{
  text-align:left;font-weight:500;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);padding:.85rem 1rem;border-bottom:1px solid var(--line);white-space:nowrap;
}
.art td{padding:.72rem 1rem;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.art tr:last-child td{border-bottom:0}
.art td.n,.art th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.art tr.tot td{font-weight:600;color:var(--ink);background:var(--surface-2)}
.art .bad{color:#B42318;font-weight:500}
.art .good{color:#067647;font-weight:500}

/* figure / chart */
.fig{margin:2.4rem 0}
.fig--wide{max-width:52rem;margin-inline:auto}
@media(min-width:60rem){.fig--wide{margin-inline:calc((44rem - 52rem) / 2)}}
.fig svg{width:100%;height:auto;display:block;font-family:var(--b)}
.fig__cap{
  margin-top:.85rem;font-size:.82rem;color:var(--faint);line-height:1.55;
  padding-left:.9rem;border-left:2px solid var(--line);
}
.fig__cap b{color:var(--muted);font-weight:500}
.fig img{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}

/* code-ish maths block */
.calc{
  margin:1.7rem 0;padding:1.1rem 1.3rem;background:var(--dark);color:#E7E9EE;
  border-radius:var(--r-sm);font-size:.86rem;line-height:1.85;overflow-x:auto;
  font-variant-numeric:tabular-nums;white-space:pre;
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
.calc .k{color:#8FB8FF}
.calc .g{color:#7EE2A8}
.calc .r{color:#FF9E96}
.calc .d{color:#6E7480}

/* takeaways */
.tak{margin:2.4rem 0;padding:1.5rem 1.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.tak h3{margin:0 0 .9rem;font-size:1rem}
.tak ol{counter-reset:t;padding:0;margin:0}
.tak li{counter-increment:t;position:relative;padding-left:2rem;margin-bottom:.65rem;font-size:.97rem;line-height:1.6}
.tak li::before{
  content:counter(t);position:absolute;left:0;top:.05em;
  width:1.35rem;height:1.35rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);
  font-size:.72rem;font-weight:600;display:grid;place-items:center;
}

/* end matter */
.ends{max-width:44rem;margin:0 auto;padding:2rem 0 4rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--faint);line-height:1.7}
.ends h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .8rem;font-weight:500}
.ends p{margin:0 0 .8rem}

@media(max-width:640px){
  .post-row{grid-template-columns:1fr}
  .post-row__go{display:none}
  .calc{font-size:.78rem}
}

/* ── TL;DR ──────────────────────────────────────────────── */
.tldr{
  margin:0 0 2.6rem;padding:1.5rem 1.7rem;border-radius:var(--r);
  background:var(--dark);color:#E7E9EE;
}
.tldr h2{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#8FB8FF;margin:0 0 .9rem;font-weight:500}
.tldr p{margin:0 0 .7rem;font-size:1.02rem;line-height:1.7;color:#D7DAE2}
.tldr p:last-child{margin-bottom:0}
.tldr strong{color:#fff;font-weight:600}
.tldr .tldr__ans{font-size:1.15rem;color:#fff;font-weight:500}
.tldr__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:#2A2E38;border-radius:var(--r-sm);overflow:hidden;margin:1.2rem 0 .2rem}
.tldr__c{background:#14161D;padding:.85rem .95rem}
.tldr__n{font-family:var(--h);font-size:1.3rem;font-weight:600;letter-spacing:-.03em;color:#fff}
.tldr__l{font-size:.74rem;color:#9AA1AE;margin-top:.25rem;line-height:1.4}

/* ── jump nav ───────────────────────────────────────────── */
.toc{margin:0 0 2.8rem;padding:1.3rem 1.5rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.toc h2{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .85rem;font-weight:500}
.toc ol{counter-reset:c;margin:0;padding:0}
.toc li{counter-increment:c;margin-bottom:.5rem;padding-left:2rem;position:relative;line-height:1.55}
.toc li::before{
  content:counter(c);position:absolute;left:0;top:.1em;width:1.35rem;height:1.35rem;border-radius:50%;
  background:var(--tint);color:var(--muted);font-size:.72rem;font-weight:600;display:grid;place-items:center;
}
.toc a{font-size:.98rem;color:var(--ink-2);text-decoration:none;transition:color .18s var(--ease)}
.toc a:hover{color:var(--accent)}
.toc .toc__t{color:var(--faint);font-size:.86rem}

/* ── how to read a chart ────────────────────────────────── */
.fig__how{
  margin-top:.9rem;padding:.85rem 1.05rem;background:var(--tint);
  border-radius:var(--r-sm);font-size:.88rem;line-height:1.6;color:var(--ink-2);
}
.fig__how b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.4rem;font-weight:600}
.fig__how em{font-style:normal;color:var(--ink);font-weight:500}

/* source link row */
.srcs{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.4rem 0 2rem}
.srcs a{
  display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .8rem;border-radius:999px;
  border:1px solid var(--line-2);font-size:.82rem;color:var(--ink-2);text-decoration:none;
  transition:all .2s var(--ease);background:var(--surface);
}
.srcs a:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.srcs a::after{content:'PDF';font-size:.62rem;letter-spacing:.06em;color:var(--faint)}

/* ── featured lead card ─────────────────────────────────── */
.lead{
  display:grid;grid-template-columns:1.15fr .85fr;gap:0;
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:var(--surface);box-shadow:var(--sh-2);margin:2.4rem 0 0;
  transition:box-shadow .28s var(--ease),transform .28s var(--ease);
}
.lead:hover{box-shadow:var(--sh-3);transform:translateY(-2px)}
.lead__img{grid-column:1/-1;overflow:hidden;border-bottom:1px solid var(--line);background:var(--surface-2)}
.lead__img img{display:block;width:100%;height:auto;aspect-ratio:1200/415;object-fit:cover;object-position:center;
  transition:transform .5s var(--ease)}
.lead:hover .lead__img img{transform:scale(1.015)}
.lead__l{padding:clamp(1.6rem,3.5vw,2.5rem);display:flex;flex-direction:column}
.lead__tag{
  display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;
  padding:.3rem .7rem;border-radius:999px;background:var(--accent-soft);
  color:var(--accent-ink);font-size:.72rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:1rem;
}
.lead h2{font-size:clamp(1.35rem,2.6vw,1.9rem);letter-spacing:-.028em;line-height:1.15;margin-bottom:.7rem}
.lead h2 a{transition:color .18s var(--ease)}
.lead h2 a::after{content:'';position:absolute;inset:0;z-index:1}
.lead{position:relative}
.lead__go{position:relative;z-index:2}
.lead:hover h2 a{color:var(--accent)}
.lead__sum{color:var(--muted);line-height:1.65;font-size:.98rem;margin-bottom:1.3rem}
.lead__meta{margin-top:auto;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8rem;color:var(--faint)}
.lead__go{
  display:inline-flex;align-items:center;gap:.45rem;margin-top:1.2rem;align-self:flex-start;
  font-size:.9rem;font-weight:500;color:var(--accent);
}
.lead:hover .lead__go{gap:.7rem}
.lead__r{background:var(--dark);padding:clamp(1.5rem,3vw,2.2rem);display:flex;flex-direction:column;justify-content:center;gap:1px}
.lead__stat{padding:.7rem 0}
.lead__stat + .lead__stat{border-top:1px solid #262A33}
.lead__n{font-family:var(--h);font-size:clamp(1.3rem,2.6vw,1.75rem);font-weight:600;color:#fff;letter-spacing:-.03em;line-height:1.1}
.lead__n--warn{color:#FF9E96}
.lead__k{font-size:.76rem;color:#9AA1AE;margin-top:.28rem;line-height:1.4}

/* upcoming */
.soon{margin:3rem 0 0;padding-top:2rem;border-top:1px solid var(--line)}
.soon h2{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 1.1rem;font-weight:500}
.soon ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;padding:0;margin:0}
.soon li{background:var(--surface);padding:1.1rem 1.2rem;list-style:none;padding-left:1.2rem}
.soon li::before{display:none}
.soon strong{display:block;font-size:.96rem;color:var(--ink);font-weight:500;margin-bottom:.3rem}
.soon span{font-size:.85rem;color:var(--muted);line-height:1.5}

@media(max-width:760px){ .lead{grid-template-columns:1fr} .lead__img img{aspect-ratio:1200/560} }

/* thumbnail on an archive row */
.post-row__thumb{display:none}
.post-row__thumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--r-sm)}
@media(min-width:44rem){
  .post-row{grid-template-columns:148px minmax(0,1fr) auto;gap:1.4rem;align-items:center}
  .post-row__thumb{display:block;width:148px;height:94px;overflow:hidden;border:1px solid var(--line);
    border-radius:var(--r-sm);background:var(--surface-2)}
}

/* ── section separators ─────────────────────────────────── */
.art h2{position:relative;padding-top:clamp(2rem,4vw,2.8rem)}
.art h2::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);
}
.art h2:first-of-type::before{display:none}
.art__step{
  display:flex;width:fit-content;align-items:center;gap:.5rem;
  padding:.32rem .78rem;border-radius:999px;background:var(--accent-soft);
  font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent-ink);margin-bottom:.9rem;
}
.art__step::before{
  content:attr(data-n);display:grid;place-items:center;
  width:1.1rem;height:1.1rem;border-radius:50%;background:var(--accent);color:#fff;
  font-size:.62rem;letter-spacing:0;
}
.art__step[data-n=""]::before{display:none}

/* sub-section rhythm */
.art h3{
  position:relative;padding-left:.9rem;
}
.art h3::before{
  content:'';position:absolute;left:0;top:.28em;bottom:.28em;width:3px;
  border-radius:2px;background:var(--accent);opacity:.5;
}

.art .mono{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:.9em;
  background:var(--surface-2);padding:.1rem .38rem;border-radius:4px;color:var(--ink)}

/* ── expandable depth: keeps theory available without spending attention ── */
.art details.more{
  margin:1.7rem 0;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface);overflow:hidden;
}
.art details.more > summary{
  cursor:pointer;list-style:none;padding:.85rem 1.05rem;
  font-size:.93rem;font-weight:500;color:var(--ink);
  display:flex;align-items:center;gap:.62rem;transition:background .16s var(--ease);
}
.art details.more > summary::-webkit-details-marker{display:none}
.art details.more > summary::before{
  content:'+';flex:none;width:1.3rem;height:1.3rem;border-radius:50%;
  background:var(--accent-soft);color:var(--accent);
  display:grid;place-items:center;font-size:.9rem;font-weight:600;line-height:1;
}
.art details.more[open] > summary::before{content:'\2212'}
.art details.more > summary:hover{background:var(--surface-2)}
.art .more__body{padding:.2rem 1.05rem 1.05rem}
.art .more__body > p{font-size:1rem;line-height:1.7;color:var(--ink-2);margin:0 0 1rem}
.art .more__body .fig{margin:1.2rem 0}
.art .more__body .fig--wide{margin-inline:auto;max-width:100%}
.art .more__body .calc{margin:1.1rem 0}
.srcline{display:block;margin-top:.5rem;font-size:.82rem;color:var(--faint)}

/* ── the full comps table ── */
.art .tw-hint{font-size:.8rem;color:var(--faint);margin:0 0 .5rem}
@media(min-width:52rem){.art .tw-hint{display:none}}
.art .tw table{min-width:640px}
.art tr.stat-r td{
  background:var(--accent-soft);color:var(--accent-ink);font-weight:600;
  border-bottom:1px solid #d6e2ff;
}
.art tr.stat-r td:first-child{font-weight:500;font-size:.85rem}
@media(min-width:62rem){
  .art .tw--wide{max-width:58rem;margin-inline:calc((44rem - 58rem) / 2)}
}

/* ═══ PHONE ═══════════════════════════════════════════════ */

/* figures enlarge to full screen (blog.js) */
.fig__zoom{display:none}
@media(max-width:760px){
  .fig svg{cursor:zoom-in}
  .fig__zoom{
    display:inline-flex;align-items:center;gap:.45rem;min-height:40px;margin-top:.6rem;padding:.45rem .95rem;
    border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:.82rem;color:var(--ink-2);
  }
  .fig__zoom svg{width:15px;height:15px}
}
.zoom{position:fixed;inset:0;z-index:90;background:var(--bg);display:flex;flex-direction:column}
.zoom[hidden]{display:none}
.zoom__x{position:absolute;top:.75rem;right:.75rem;z-index:2;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;padding:0}
.zoom__x svg{width:18px;height:18px}
.zoom__scroll{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;display:flex;align-items:center;padding:3.6rem 1rem 1rem}
.zoom__in{flex:none;width:760px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:.5rem}
.zoom__in svg{display:block;width:100%;height:auto;font-family:var(--b)}
.zoom__hint{margin:0;padding:.6rem 1rem calc(.9rem + env(safe-area-inset-bottom,0px));text-align:center;font-size:.78rem;color:var(--faint);border-top:1px solid var(--line)}

@media(max-width:640px){
  /* numeric tables keep their columns: scroll sideways with the first column pinned */
  .art .tw table.num th:first-child,.art .tw table.num td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--line)}
  .art .tw table.num tr.tot td:first-child{background:var(--surface-2)}
  .art .tw table.num tr.stat-r td:first-child{background:var(--accent-soft)}
  .art .tw table.num th,.art .tw table.num td{padding-inline:.75rem}
  /* text tables stack into cards; the column header becomes a label on each cell */
  .art .tw table.txt{min-width:0}
  .art .tw table.txt,.art .tw table.txt tbody,.art .tw table.txt tr,.art .tw table.txt td{display:block}
  .art .tw table.txt thead,.art .tw table.txt th{display:none}
  .art .tw table.txt tr{padding:.7rem 0;border-bottom:1px solid var(--line)}
  .art .tw table.txt tr:last-child{border-bottom:0}
  .art .tw table.txt td{padding:.3rem 1rem;border:0;white-space:normal}
  .art .tw table.txt td::before{content:attr(data-l);display:block;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:.15rem}
  .art .tw table.txt td:first-child{font-weight:500;color:var(--ink);padding-top:.35rem}
  .art .tw table.txt td:first-child::before{display:none}
  /* thumbs */
  .srcs a{min-height:44px}
  .ahead__back{min-height:44px}
  .toc li{margin-bottom:.35rem}
  .toc a{display:inline-block;padding:.35rem 0}
  .lead__go,.post-row h2 a{min-height:44px;display:inline-flex;align-items:center}
  .art details.more > summary{min-height:48px}
}

/* ══════════════════════════════════════════════════════════
   FORENSIC POST COMPONENTS
   tactic cards · statute refs · marker-pen annotation
   ══════════════════════════════════════════════════════════ */

:root{
  --mark:#D6353B;          /* marker pen */
  --mark-soft:#FDF0F0;
  --mark-line:#F2C4C6;
  --lawful:#067647;
  --breach:#B7791F;
  --crim:#B42318;
}

/* ── the tactic card ─────────────────────────────────────── */
.tac{
  margin:2.2rem 0;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);overflow:hidden;
}
.tac__top{
  display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;
  padding:.95rem 1.3rem;border-bottom:1px solid var(--line);background:var(--surface-2);
}
.tac__no{
  font-family:var(--h);font-size:.7rem;font-weight:600;letter-spacing:.1em;
  color:#fff;background:var(--ink);border-radius:999px;padding:.2rem .6rem;
}
.tac__name{font-family:var(--h);font-size:1.02rem;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
.tac__alt{font-size:.82rem;color:var(--faint)}
.tac__body{padding:1.15rem 1.3rem}
.tac__body p{margin:0 0 .8rem;font-size:.97rem;line-height:1.65;color:var(--ink-2)}
.tac__body p:last-child{margin-bottom:0}
.tac__q{
  display:block;font-size:.68rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--faint);margin:0 0 .3rem;
}
.tac__q + p{margin-bottom:1rem}

/* legality strip */
.lgl{display:flex;align-items:flex-start;gap:.6rem;padding:.85rem 1.3rem;border-top:1px solid var(--line);font-size:.9rem;line-height:1.55}
.lgl__dot{width:.62rem;height:.62rem;border-radius:50%;flex:0 0 auto;margin-top:.35rem}
.lgl--ok{background:#F2FBF6}   .lgl--ok .lgl__dot{background:var(--lgl-ok,#067647)}
.lgl--reg{background:#FDF8EE}  .lgl--reg .lgl__dot{background:#B7791F}
.lgl--crim{background:#FDF3F2} .lgl--crim .lgl__dot{background:#B42318}
.lgl b{font-weight:600}
.lgl--ok b{color:#055C38}  .lgl--reg b{color:#8C5A11}  .lgl--crim b{color:#8F1D14}
.lgl span{color:var(--ink-2)}

/* inline statute reference */
.lex{
  display:inline-block;font-family:var(--h);font-size:.76rem;font-weight:500;
  letter-spacing:.01em;background:var(--surface-2);border:1px solid var(--line-2);
  border-radius:5px;padding:.06rem .38rem;color:var(--ink-2);white-space:nowrap;
}
.lex--crim{background:#FDF3F2;border-color:#F3CFCB;color:#8F1D14}

/* ── evidence card: an extract from the source, annotated ── */
.evid{
  margin:2.2rem 0;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);overflow:hidden;
}
.evid__hd{
  padding:.7rem 1.15rem;background:var(--dark);color:#D8DBE2;
  font-size:.73rem;letter-spacing:.1em;text-transform:uppercase;font-family:var(--h);
}
.evid__b{padding:1.2rem 1.3rem}
.evid img{width:100%;display:block;border:1px solid var(--line);border-radius:var(--r-sm)}
.evid__note{
  margin-top:.9rem;font-family:'Caveat',cursive;font-size:1.28rem;line-height:1.35;
  color:var(--mark);display:flex;gap:.55rem;align-items:flex-start;
}
.evid__note span:first-child{font-family:var(--b);font-size:1.1rem;line-height:1}

/* ── marker-pen annotation inside SVG ───────────────────── */
.fig svg .ann-box{fill:none;stroke:#D6353B;stroke-width:2.2;stroke-linejoin:round}
.fig svg .ann-box--dash{stroke-dasharray:7 4}
.fig svg .ann-arrow{fill:none;stroke:#D6353B;stroke-width:2}
.fig svg .ann-hand{font-family:'Caveat',cursive;font-size:19px;fill:#D6353B}
.fig svg .ann-hand--sm{font-size:16px}
.fig svg .ann-tag{font-family:var(--h);font-size:10px;font-weight:600;letter-spacing:.08em;fill:#D6353B}

/* ── stage banner ───────────────────────────────────────── */
.stg{
  margin:3.2rem 0 1.4rem;padding:1.05rem 1.3rem;border-radius:var(--r);
  background:var(--dark);color:#fff;
}
.stg__k{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#8E93A3;font-family:var(--h)}
.stg__t{font-family:var(--h);font-size:1.22rem;font-weight:600;letter-spacing:-.02em;margin-top:.25rem}

/* ── person status row ──────────────────────────────────── */
.who{margin:2rem 0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.who__r{display:grid;grid-template-columns:1fr;gap:.2rem;padding:.95rem 1.2rem;border-bottom:1px solid var(--line);background:var(--surface)}
.who__r:last-child{border-bottom:0}
@media(min-width:44rem){.who__r{grid-template-columns:13rem 1fr;gap:1.1rem;align-items:baseline}}
.who__n{font-family:var(--h);font-weight:600;font-size:.95rem;color:var(--ink)}
.who__n small{display:block;font-weight:400;font-size:.78rem;color:var(--faint);letter-spacing:0}
.who__s{font-size:.9rem;line-height:1.6;color:var(--ink-2)}
.who__s em{font-style:normal;color:#8F1D14;font-weight:500}

/* ── index table of all tactics ─────────────────────────── */
.tix td:first-child{font-family:var(--h);font-weight:600;color:var(--ink);white-space:nowrap}
.tix .d{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.4rem;vertical-align:baseline}
.tix .d--ok{background:#067647} .tix .d--reg{background:#B7791F} .tix .d--crim{background:#B42318}

/* ── statute annotation: the provision, quoted, next to the conduct ── */
.stat{
  margin:1.5rem 0;padding:.95rem 1.15rem;background:var(--surface);
  border:1px solid var(--line);border-left:3px solid var(--line-2);
  border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.stat--ok{border-left-color:#067647}
.stat--reg{border-left-color:#B7791F}
.stat--crim{border-left-color:#B42318}
.stat__hd{display:flex;flex-wrap:wrap;gap:.45rem;align-items:baseline;margin-bottom:.5rem}
.stat__act{font-family:var(--h);font-size:.85rem;font-weight:600;color:var(--ink)}
.stat__act::before{content:'\00a7';margin-right:.35rem;color:var(--faint);font-weight:400}
.stat__s{
  font-family:var(--h);font-size:.72rem;font-weight:600;letter-spacing:.03em;
  padding:.1rem .4rem;border-radius:5px;background:var(--bg);
  border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;
}
.stat__pen{margin-left:auto;font-size:.72rem;color:var(--faint);font-family:var(--h)}
.stat__op{margin:0 0 .6rem;font-size:.93rem;line-height:1.62;color:var(--ink-2)}
.stat__op b{color:var(--ink);font-weight:600}
.stat__fit{
  margin:0;font-size:.87rem;line-height:1.6;color:var(--muted);
  padding-top:.55rem;border-top:1px dashed var(--line-2);
}
.stat__fit b{color:var(--ink-2);font-weight:600}
.stat__fit .mine{
  display:inline-block;font-family:var(--h);font-size:.68rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--faint);
  border:1px solid var(--line-2);border-radius:4px;padding:.02rem .3rem;margin-left:.3rem;
}

/* ── technique atlas: one small mechanism drawing each ──── */
.atlas{
  display:grid;gap:1px;background:var(--line);margin:2.2rem 0;
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
}
@media(min-width:46rem){.atlas{grid-template-columns:1fr 1fr}}
.atl{margin:0;padding:1.15rem 1.25rem 1.25rem;background:var(--bg);display:flex;flex-direction:column}
.atl__hd{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}
.atl__no{
  font-family:var(--h);font-size:.68rem;font-weight:700;letter-spacing:.05em;
  padding:.13rem .4rem;border-radius:5px;color:#fff;background:var(--ink);
}
.atl--ok .atl__no{background:#067647}
.atl--reg .atl__no{background:#B7791F}
.atl--crim .atl__no{background:#B42318}
.atl__nm{font-family:var(--h);font-size:.95rem;font-weight:600;color:var(--ink);letter-spacing:-.015em}
.atl svg{width:100%;height:auto;display:block;font-family:var(--b)}
.atl__cap{font-size:.87rem;line-height:1.6;color:var(--ink-2);margin:.7rem 0 .85rem}
.atl__cap b{color:var(--ink);font-weight:600}
.atl__law{
  margin-top:auto;font-size:.81rem;line-height:1.55;color:var(--muted);
  padding-top:.65rem;border-top:1px dashed var(--line-2);
}
.atl__law b{font-family:var(--h);color:var(--ink-2);font-weight:600}
.atl__law q{font-style:italic}
.atl__law em{font-style:normal;color:#8F1D14;font-weight:500}

/* annotation marks also apply inside atlas drawings */
.atl svg .ann-box{fill:none;stroke:#D6353B;stroke-width:1.8;stroke-linejoin:round}
.atl svg .ann-box--dash{stroke-dasharray:6 3.5}
.atl svg .ann-arrow{fill:none;stroke:#D6353B;stroke-width:1.6}
.atl svg .ann-hand{font-family:'Caveat',cursive;font-size:15px;fill:#D6353B}

/* ── two-column comparison ──────────────────────────────── */
.vs{margin:2.2rem 0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--bg)}
.vs__hd{display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border-bottom:1px solid var(--line)}
.vs__h{padding:.85rem 1.1rem;font-family:var(--h);font-size:.9rem;font-weight:600;color:var(--ink)}
.vs__h small{display:block;font-weight:400;font-size:.75rem;color:var(--faint);margin-top:.15rem;letter-spacing:0}
.vs__h + .vs__h{border-left:1px solid var(--line)}
.vs__g{display:grid;grid-template-columns:1fr 1fr}
.vs__k{
  grid-column:1/-1;padding:.8rem 1.1rem .15rem;font-family:var(--h);font-weight:600;
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
  border-top:1px solid var(--line);
}
.vs__g > .vs__k:first-child{border-top:0}
.vs__c{padding:.5rem 1.1rem .95rem;font-size:.91rem;line-height:1.58;color:var(--ink-2)}
.vs__c + .vs__c{border-left:1px solid var(--line)}
.vs__c b{color:var(--ink);font-weight:600}
.vs__c em{font-style:normal;color:#8F1D14;font-weight:500}
.vs__end{padding:1rem 1.1rem;background:var(--dark);color:#D8DBE2;font-size:.93rem;line-height:1.62}
.vs__end b{color:#fff;font-weight:600}

/* ── a worked check: number, where it lives, what it said ── */
.chk{margin:2rem 0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.chk__r{background:var(--bg);padding:1.05rem 1.2rem}
.chk__q{font-family:var(--h);font-size:.98rem;font-weight:600;color:var(--ink);margin:0 0 .5rem}
.chk__q span{
  display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.05em;color:#fff;
  background:var(--ink);border-radius:5px;padding:.12rem .38rem;margin-right:.5rem;vertical-align:2px;
}
.chk__w{margin:0 0 .55rem;font-size:.88rem;line-height:1.58;color:var(--muted)}
.chk__w b{color:var(--ink-2);font-weight:600}
.chk__a{margin:0;font-size:.93rem;line-height:1.6;color:var(--ink-2);
  padding-top:.55rem;border-top:1px dashed var(--line-2)}
.chk__a b{color:#8F1D14;font-weight:600}

/* ── worked example: two columns of arithmetic side by side ── */
.wex{margin:1.5rem 0 0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--bg)}
.wex__k{
  display:block;padding:.6rem .95rem;background:var(--surface);border-bottom:1px solid var(--line);
  font-family:var(--h);font-size:.72rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);
}
.wex__g{display:grid;grid-template-columns:1fr}
@media(min-width:38rem){.wex__g{grid-template-columns:1fr 1fr}}
.wex__c{padding:.85rem .95rem;border-bottom:1px solid var(--line)}
@media(min-width:38rem){.wex__c{border-bottom:0}.wex__c + .wex__c{border-left:1px solid var(--line)}}
.wex__c > b{display:block;font-family:var(--h);font-size:.88rem;color:var(--ink);margin-bottom:.5rem}
.wex__l{display:flex;align-items:baseline;gap:.5rem;font-size:.88rem;line-height:1.9;color:var(--muted)}
.wex__l span{flex:0 1 auto}
.wex__l i{flex:1 1 auto;border-bottom:1px dotted var(--line-2);transform:translateY(-.22rem)}
.wex__l em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.wex__l--tot{border-top:1px solid var(--line);margin-top:.3rem;padding-top:.3rem;font-weight:600}
.wex__l--tot span,.wex__l--tot em{color:var(--ink)}
.wex--win .wex__l--tot em{color:var(--accent)}
.wex__p{
  margin:0;padding:.85rem .95rem;border-top:1px solid var(--line);background:var(--surface);
  font-size:.9rem;line-height:1.62;color:var(--ink-2);
}
.wex__p b{color:var(--ink);font-weight:600}
.wex__p .mine{
  display:inline-block;font-family:var(--h);font-size:.68rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint);border:1px solid var(--line-2);
  border-radius:4px;padding:.02rem .3rem;margin-left:.3rem;
}

/* ── opening lede: a full sentence, never the step pill ──── */
.art__lede{
  margin:0 0 1.4rem;padding-left:1.1rem;border-left:2px solid var(--accent);
  font-size:clamp(1.08rem,1.7vw,1.2rem);line-height:1.68;
  color:var(--ink);font-weight:400;letter-spacing:-.005em;max-width:60ch;
}
