/* =============================================================================
   Performance Culture — "The Performance Almanac"
   A premium, editorial, light design system. Pure CSS, no build.
   Fraunces (display) + Hanken Grotesk (text). Warm paper · ink · sienna.
   ========================================================================== */

/* ---------------------------------------------------------------- fonts ---- */
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;font-named-instance:"Regular";}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2");
  font-weight:100 900;font-style:italic;font-display:swap;}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-latin-wght-normal.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;}

/* --------------------------------------------------------------- tokens ---- */
:root{
  --paper:#fbf8f2; --paper-2:#f4eee2; --paper-3:#efe7d8; --card:#fffefb;
  --ink:#1c1a16; --ink-2:#3b362d; --muted:#7f7768; --faint:#a89f8d;
  --line:#e7dfce; --line-2:#dcd2bd;
  --accent:#c0481f; --accent-2:#9c3514; --accent-wash:#f7e7da; --accent-soft:#e9b9a3;

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  --st--1:clamp(.78rem,.76rem + .1vw,.85rem);
  --st-0:clamp(1.02rem,.99rem + .16vw,1.13rem);
  --st-1:clamp(1.18rem,1.1rem + .36vw,1.4rem);
  --st-2:clamp(1.4rem,1.25rem + .7vw,1.85rem);
  --st-3:clamp(1.75rem,1.5rem + 1.2vw,2.55rem);
  --st-4:clamp(2.3rem,1.85rem + 2.1vw,3.7rem);
  --st-5:clamp(2.9rem,2.05rem + 3.9vw,5.7rem);

  --gutter:clamp(1.15rem,5vw,3rem);
  --wrap:1400px;       /* wider container — less dead space on big screens */
  --bodyw:50rem;       /* reading column */
  --tocw:13.5rem;
  --radius:14px; --radius-s:10px;
  --shadow:0 1px 2px rgba(28,26,22,.04),0 8px 30px -12px rgba(28,26,22,.16);
  --shadow-lg:0 2px 6px rgba(28,26,22,.05),0 26px 60px -28px rgba(28,26,22,.30);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ----------------------------------------------------------------- base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:var(--st-0);line-height:1.68;
  font-weight:380;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* paper grain */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:3px}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:fixed;left:-999px;top:0;z-index:200;background:var(--ink);color:var(--paper);
  padding:.7rem 1.1rem;border-radius:0 0 8px 0}
.skip:focus{left:0}

h1,h2,h3,h4{font-family:var(--serif);font-weight:560;font-optical-sizing:auto;
  line-height:1.08;letter-spacing:-.018em;color:var(--ink);margin:0}
.eyebrow{font-family:var(--sans);font-size:var(--st--1);font-weight:600;
  text-transform:uppercase;letter-spacing:.2em;color:var(--accent-2);margin:0}

/* --------------------------------------------------------- buttons -------- */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--sans);
  font-weight:560;font-size:.96rem;letter-spacing:-.01em;line-height:1;
  padding:.92em 1.35em;border-radius:999px;border:1px solid transparent;
  cursor:pointer;text-decoration:none;transition:.28s var(--ease);white-space:nowrap}
.btn span[aria-hidden]{transition:transform .3s var(--ease)}
.btn:hover span[aria-hidden]{transform:translateX(3px)}
.btn--solid{background:var(--ink);color:var(--paper)}
.btn--solid:hover{background:var(--accent-2);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn--ghost:hover{border-color:var(--ink);background:var(--card)}

/* -------------------------------------------------------------- navbar ----- */
.nav{position:sticky;top:0;z-index:90;background:color-mix(in srgb,var(--paper) 82%,transparent);
  backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.nav[data-scrolled]{border-color:var(--line);background:color-mix(in srgb,var(--paper) 90%,transparent)}
.nav-in{display:flex;align-items:center;gap:1.5rem;height:4.6rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);
  font-family:var(--serif);font-weight:600;font-size:1.16rem;letter-spacing:-.02em}
.emblem{width:1.55rem;height:1.55rem;color:var(--accent);flex:none;transition:transform .6s var(--ease)}
.brand:hover .emblem{transform:rotate(90deg)}
.brand-txt{white-space:nowrap}
.nav-links{display:flex;gap:.35rem;margin-left:auto}
.nav-links a{position:relative;text-decoration:none;color:var(--ink-2);font-weight:480;
  font-size:.95rem;padding:.5rem .8rem;border-radius:8px;transition:.2s}
.nav-links a:hover{color:var(--ink);background:var(--paper-2)}
.nav-links a[aria-current]{color:var(--accent-2)}
.nav-links a[aria-current]::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.28rem;
  height:1.5px;background:var(--accent)}
.nav-actions{display:flex;align-items:center;gap:.5rem}
.search-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--card);
  border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.5rem .85rem;
  font-family:var(--sans);font-size:.86rem;cursor:pointer;transition:.2s}
.search-btn:hover{border-color:var(--line-2);color:var(--ink);box-shadow:var(--shadow)}
.search-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.search-btn kbd{font-family:var(--sans);font-size:.72rem;background:var(--paper-2);border:1px solid var(--line);
  border-radius:5px;padding:.1rem .35rem;color:var(--muted)}
.menu-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer}
.menu-btn span{display:block;height:1.6px;width:18px;margin-inline:auto;background:var(--ink);transition:.3s var(--ease)}
.menu-btn[aria-expanded=true] span:first-child{transform:translateY(3.3px) rotate(45deg)}
.menu-btn[aria-expanded=true] span:last-child{transform:translateY(-3.3px) rotate(-45deg)}
.drawer{position:fixed;inset:4.6rem 0 auto 0;z-index:80;background:var(--paper);
  border-bottom:1px solid var(--line);padding:1rem var(--gutter) 1.6rem;display:flex;flex-direction:column;gap:.2rem;
  box-shadow:var(--shadow-lg);animation:drawer .3s var(--ease)}
.drawer[hidden]{display:none}
@keyframes drawer{from{opacity:0;transform:translateY(-10px)}}
.drawer a{text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.5rem;padding:.6rem 0;
  border-bottom:1px solid var(--line)}
.drawer-search{margin-top:.9rem;background:var(--ink);color:var(--paper);border:0;border-radius:10px;
  padding:.9rem;font-family:var(--sans);font-size:.95rem;cursor:pointer}

/* ================================================================ HOME ===== */
.hero{position:relative;overflow:hidden;padding:clamp(3rem,9vw,7rem) 0 clamp(2.5rem,6vw,4.5rem)}
.hero-in{display:grid;grid-template-columns:1.55fr .95fr;gap:clamp(1.5rem,5vw,4rem);align-items:end}
.hero-target{position:absolute;top:50%;right:-16%;transform:translateY(-50%);width:min(58vw,720px);
  aspect-ratio:1;border-radius:50%;pointer-events:none;z-index:-1;opacity:.55;
  background:
    radial-gradient(circle,transparent 0 7%,var(--accent) 7% 7.7%,transparent 7.7% 16%,
    var(--line-2) 16% 16.5%,transparent 16.5% 27%,var(--line-2) 27% 27.4%,transparent 27.4% 39%,
    var(--line-2) 39% 39.3%,transparent 39.3% 52%,var(--line-2) 52% 52.3%,transparent 52.3%);
  -webkit-mask:radial-gradient(circle,#000 60%,transparent 78%);mask:radial-gradient(circle,#000 60%,transparent 78%)}
.hero-title{font-size:var(--st-5);font-weight:540;line-height:.92;letter-spacing:-.035em;margin:.7rem 0 0}
.hero-amp{display:block;font-style:italic;font-weight:340;color:var(--accent)}
.hero-sub{font-size:clamp(1.1rem,1rem + .6vw,1.42rem);line-height:1.5;color:var(--ink-2);
  max-width:30ch;margin:1.6rem 0 0;font-weight:400}
.hero-sub em{font-style:italic;color:var(--ink)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.1rem}
.hero-colophon{border-left:1px solid var(--line-2);padding-left:clamp(1.1rem,2.5vw,2rem);padding-bottom:.5rem;align-self:end}
.hero-quote{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,1rem + 1vw,1.6rem);
  line-height:1.32;color:var(--ink);font-weight:400}
.hero-byline{margin:1.5rem 0 0;font-size:.95rem;color:var(--ink-2);line-height:1.6}
.hero-byline span{display:block;font-size:var(--st--1);text-transform:uppercase;letter-spacing:.16em;color:var(--faint);font-weight:600;margin-bottom:.2rem}

/* intention */
.intent{padding:clamp(3rem,7vw,6rem) 0;border-top:1px solid var(--line)}
.intent-in{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(1.6rem,5vw,4.5rem);align-items:start}
.intent-head{align-self:start;position:sticky;top:6rem}
.intent-h{font-size:var(--st-4);font-weight:540;margin-top:1rem}
.intent-head .eyebrow{display:block}
.intent-mark{font-family:var(--serif);font-size:clamp(4rem,9vw,6.5rem);line-height:.5;color:var(--accent-soft);
  margin:2rem 0 0;height:2.2rem;opacity:.7;user-select:none}
.intent-body{max-width:40rem}
.intent-body p{margin:0 0 1.25rem;font-size:clamp(1.05rem,1rem + .35vw,1.22rem);line-height:1.62;color:var(--ink-2)}
.intent-body .lead{font-family:var(--serif);font-size:clamp(1.4rem,1.2rem + .9vw,1.95rem);line-height:1.34;
  color:var(--ink);font-weight:430;letter-spacing:-.015em;margin-bottom:1.6rem}
.intent-body em{font-style:italic;color:var(--ink)}

/* section rule */
.sec-rule{display:flex;align-items:center;gap:1.3rem;margin-bottom:clamp(1.8rem,4vw,3rem)}
.sec-line{flex:1;height:1px;background:var(--line-2)}

/* pillars */
.contents{padding:clamp(2rem,5vw,4rem) 0}
.pillars{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.pillar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1rem,3vw,2.5rem);
  padding:clamp(1.6rem,3.5vw,2.6rem) .9rem;border-bottom:1px solid var(--line);text-decoration:none;
  color:var(--ink);position:relative;border-radius:12px;
  transition:background .55s var(--ease)}
.pillar::after{content:"";position:absolute;left:.9rem;bottom:-1px;height:1.5px;width:0;background:var(--accent);transition:width .55s var(--ease)}
.pillar:hover{background:linear-gradient(90deg,var(--paper-2) 35%,transparent)}
.pillar:hover::after{width:calc(100% - 1.8rem)}
.pillar-main,.pillar-num{transition:transform .55s var(--ease)}
.pillar:hover .pillar-main{transform:translateX(12px)}
.pillar:hover .pillar-num{transform:translateX(5px)}
.pillar-num{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.6rem);font-weight:420;color:var(--accent);
  font-style:italic;line-height:1;min-width:2.4ch}
.pillar-ey{display:block;font-size:var(--st--1);text-transform:uppercase;letter-spacing:.18em;color:var(--faint);font-weight:600;margin-bottom:.4rem}
.pillar-ti{display:block;font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:540;letter-spacing:-.02em}
.pillar-su{display:block;margin-top:.5rem;color:var(--muted);font-size:1.02rem;max-width:54ch}
.pillar-go{font-size:1.6rem;color:var(--line-2);transition:.35s var(--ease)}
.pillar:hover .pillar-go{color:var(--accent);transform:translateX(6px)}

/* mental models grid */
.mm{padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem)}
/* the ONE section that does not stretch with the screen — always 4 per row */
.mm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;max-width:1080px;margin-inline:auto;
  background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media (max-width:980px){.mm-grid{grid-template-columns:repeat(2,1fr);max-width:560px}}
@media (max-width:520px){.mm-grid{grid-template-columns:1fr;max-width:22rem}}
.mm-card{display:flex;flex-direction:column;gap:.55rem;padding:1.5rem 1.45rem 1.7rem;background:var(--paper);
  text-decoration:none;color:var(--ink);position:relative;transition:.3s var(--ease);min-height:11rem}
.mm-card:hover{background:var(--card)}
.mm-n{font-family:var(--serif);font-size:.95rem;font-style:italic;color:var(--accent);font-weight:500}
.mm-t{font-family:var(--serif);font-size:1.32rem;font-weight:560;letter-spacing:-.02em;line-height:1.1}
.mm-s{font-size:.92rem;line-height:1.5;color:var(--muted);margin-top:.1rem}
.mm-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.95rem}
.mm-tag{font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;font-weight:600;color:var(--faint)}
.mm-go{font-size:.78rem;font-weight:600;color:var(--accent);white-space:nowrap;transition:.28s var(--ease)}
.mm-go::after{content:"";display:inline-block}
.mm-card:hover .mm-go{letter-spacing:.02em}
.mm-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);
  transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.mm-card:hover::before{transform:scaleY(1)}
.mm-card:hover .mm-t{color:var(--accent-2)}

/* closer */
.closer{padding:clamp(3.5rem,8vw,7rem) 0;border-top:1px solid var(--line);background:
  linear-gradient(180deg,transparent,var(--paper-2))}
.closer-in{max-width:46rem}
.closer-h{font-size:var(--st-3);font-weight:540;margin:.9rem 0 1.1rem;letter-spacing:-.02em}
.closer-s{font-size:1.12rem;color:var(--ink-2);line-height:1.6;margin:0 0 2rem;max-width:38rem}

/* ================================================================ DOC ====== */
.doc{padding:clamp(1.8rem,4vw,3rem) 0 clamp(3rem,7vw,5.5rem)}
.doc-head{max-width:var(--bodyw);margin-inline:auto;padding-top:1.5rem}
.crumbs{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;font-size:.84rem;color:var(--muted);margin-bottom:1.8rem}
.crumbs a{color:var(--muted);text-decoration:none;transition:.2s}
.crumbs a:hover{color:var(--accent-2)}
.crumbs span[aria-current]{color:var(--ink-2)}
.doc-head .eyebrow{margin-bottom:1rem}
.doc-num{color:var(--faint)}
.doc-title{font-size:var(--st-4);font-weight:540;letter-spacing:-.028em;line-height:1.02}
.doc-sum{font-family:var(--serif);font-size:clamp(1.2rem,1.05rem + .6vw,1.55rem);font-style:italic;
  font-weight:380;color:var(--ink-2);line-height:1.4;margin:1.3rem 0 0;max-width:38ch}
.doc-meta{margin:1.5rem 0 0;font-size:.82rem;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);
  font-weight:600;border-top:1px solid var(--line);padding-top:1.3rem}

.doc-grid{position:relative;max-width:var(--bodyw);margin:clamp(2rem,4vw,3.2rem) auto 0}
.doc-body{max-width:var(--bodyw)}
/* toc parked in the LEFT margin on wide screens */
.toc{position:absolute;top:0;right:calc(100% + 2.8rem);left:auto;width:var(--tocw);height:100%}
.toc-inner,.toc{font-family:var(--sans)}
.toc-inner{position:sticky;top:6.2rem}
.toc-h{font-size:var(--st--1);text-transform:uppercase;letter-spacing:.16em;color:var(--faint);
  font-weight:600;margin:0 0 .9rem}
.toc-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--line);display:flex;flex-direction:column}
.toc-list li.lvl-2{padding-left:.9rem}
.toc-list a{display:block;text-decoration:none;color:var(--muted);font-size:.88rem;line-height:1.3;
  padding:.4rem 0 .4rem 1rem;margin-left:-1px;border-left:1.5px solid transparent;transition:.2s}
.toc-list a:hover{color:var(--ink)}
.toc-list a.active{color:var(--accent-2);border-left-color:var(--accent);font-weight:560}

/* ----------------------------------------------------- prose typography --- */
.prose{font-size:var(--st-0);line-height:1.72;color:var(--ink-2)}
.prose>section,.prose>.subsect{margin:0}
.prose .sect{padding-top:clamp(2rem,4vw,3rem);margin-top:clamp(1.5rem,3vw,2.4rem);border-top:1px solid var(--line)}
.prose .sect:first-child{border-top:0;padding-top:0;margin-top:0}
.prose p{margin:0 0 1.2rem}
.prose p+p{margin-top:-.1rem}
.prose>p:first-child,.prose .subsect>p:first-child{margin-top:0}
.prose h2,.h-h2{font-size:var(--st-3);font-weight:560;letter-spacing:-.022em;margin:0 0 1.3rem;position:relative}
.prose h3,.h-h3{font-size:var(--st-2);font-weight:560;margin:2.4rem 0 1rem}
.prose h4,.h-h4{font-size:var(--st-1);font-weight:600;margin:2rem 0 .8rem;letter-spacing:-.01em}
.subsect{margin:1.8rem 0}
.prose a:not(.btn):not(.linkcard):not(.filecard):not(.pageref){
  color:var(--accent-2);text-decoration:underline;text-decoration-color:var(--accent-soft);
  text-underline-offset:3px;text-decoration-thickness:1.5px;transition:.2s}
.prose a:not(.btn):not(.linkcard):not(.filecard):not(.pageref):hover{text-decoration-color:var(--accent);background:var(--accent-wash)}
.prose strong{font-weight:620;color:var(--ink)}
.prose em{font-style:italic}
.prose code{font-family:var(--mono);font-size:.86em;background:var(--paper-2);border:1px solid var(--line);
  padding:.1em .4em;border-radius:5px;color:var(--accent-2)}
.anchor{position:absolute;left:-1.4em;top:.05em;color:var(--accent-soft);text-decoration:none;
  opacity:0;font-weight:400;transition:.2s;font-family:var(--sans)}
.h-h2:hover .anchor,.h-h3:hover .anchor,.h-h4:hover .anchor{opacity:1}
@media (max-width:900px){.anchor{display:none}}

/* lists */
.prose ul,.prose ol{margin:0 0 1.3rem;padding-left:0;list-style:none}
.prose li{position:relative;padding-left:1.6rem;margin:0 0 .65rem;line-height:1.62}
.prose ul>li::before{content:"";position:absolute;left:.1rem;top:.62em;width:6px;height:6px;
  background:var(--accent);border-radius:50%}
.prose ol{counter-reset:li}
.prose ol>li{counter-increment:li}
.prose ol>li::before{content:counter(li);position:absolute;left:0;top:.05em;font-family:var(--serif);
  font-style:italic;font-size:.95em;color:var(--accent);font-weight:600}
.prose li>ul,.prose li>ol{margin:.6rem 0 .3rem}
.prose li::marker{content:""}
.todo{list-style:none}
.todo>li{padding-left:1.9rem}
.todo>li::before{display:none}
.chk{position:absolute;left:0;top:.18em;width:1.05rem;height:1.05rem;border:1.5px solid var(--line-2);
  border-radius:5px;background:var(--card)}
.chk.on{background:var(--accent);border-color:var(--accent)}
.chk.on::after{content:"✓";position:absolute;inset:0;color:#fff;font-size:.74rem;display:grid;place-items:center;font-weight:700}

/* callout / note — editorial emphasis, not a Notion box */
.note{margin:1.9rem 0;padding:.15rem 0 .15rem 1.7rem;border-left:2px solid var(--accent);position:relative}
.note-body>:first-child{margin-top:0}.note-body>:last-child{margin-bottom:0}
.note-body p{color:var(--ink);font-size:1.07em;line-height:1.58;margin-bottom:.7rem;letter-spacing:-.005em}
.note-body p:last-child{margin-bottom:0}
.note-body strong{font-weight:640}
.note-body ul,.note-body ol{margin:.6rem 0}
/* tinted callouts get a quiet panel */
.note[class*="tint-"]{padding:1.15rem 1.4rem;border-radius:0 var(--radius-s) var(--radius-s) 0}
.note[class*="tint-"] .note-body p{font-size:1em}
.note.tint-gray{background:var(--paper-2);border-left-color:var(--muted)}
.note.tint-blue{background:#eef3f5;border-left-color:#3b6f86}
.note.tint-brown,.note.tint-orange{background:#f7ece0;border-left-color:#9b6a37}
.note.tint-purple{background:#f1ecf8;border-left-color:#6e51c8}
.note.tint-green{background:#ecf3ec;border-left-color:#46724f}
.note.tint-yellow{background:#f7f0d9;border-left-color:#9a7d1e}
.note.tint-pink,.note.tint-red{background:var(--accent-wash);border-left-color:var(--accent)}

/* toggle / fold — editorial labelled disclosure, not an accordion box */
.fold{margin:1.6rem 0;border:0;background:none;border-radius:0}
.fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.7rem;
  padding:.5rem 0;font-family:var(--sans);font-weight:700;color:var(--accent-2);font-size:.72rem;
  text-transform:uppercase;letter-spacing:.16em;border-bottom:1px solid var(--line);transition:.2s}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary:hover{color:var(--accent);border-color:var(--accent-soft)}
.fold-t{flex:1}
.fold-i{flex:none;width:.8rem;height:.8rem;position:relative}
.fold-i::before,.fold-i::after{content:"";position:absolute;background:currentColor;transition:.3s var(--ease)}
.fold-i::before{top:50%;left:0;right:0;height:1.5px;transform:translateY(-50%)}
.fold-i::after{left:50%;top:0;bottom:0;width:1.5px;transform:translateX(-50%)}
.fold[open]>summary .fold-i::after{transform:translateX(-50%) scaleY(0)}
.fold-body{padding:1rem 0 .2rem}
.fold-body>:first-child{margin-top:0}.fold-body>:last-child{margin-bottom:0}

/* blockquote / pull */
.pull{margin:1.9rem 0;padding:.2rem 0 .2rem 1.6rem;border-left:2px solid var(--accent);
  font-family:var(--serif);font-style:italic;font-size:clamp(1.18rem,1.05rem + .5vw,1.5rem);line-height:1.42;
  color:var(--ink);font-weight:400}
.pull p{margin:0 0 .6rem}.pull p:last-child{margin-bottom:0}
.pull strong{font-style:normal}

/* figures / gallery */
.img{margin:2rem 0}
.img img{border-radius:var(--radius-s);border:1px solid var(--line);box-shadow:var(--shadow);width:100%}
.img figcaption,.audio-cap{font-size:.85rem;color:var(--muted);margin-top:.7rem;font-style:italic;text-align:center}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:2rem 0}
.gallery .img{margin:0}
.gallery[data-count="1"]{grid-template-columns:1fr}
@media (max-width:560px){.gallery{grid-template-columns:1fr}}

/* audio */
.audio{margin:1.8rem 0;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-s);padding:1.1rem 1.2rem}
.audio-cap{text-align:left;font-style:normal;color:var(--ink-2);margin:0 0 .7rem;font-size:.95rem;font-weight:480}
.audio-k{display:inline-block;font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;
  color:#fff;background:var(--accent);padding:.2em .6em;border-radius:5px;margin-right:.55rem;vertical-align:.08em}
.audio audio{width:100%;height:38px}
.audio--feature{margin-top:2.2rem;background:var(--card);box-shadow:var(--shadow)}

/* file & link cards */
.filecard{display:inline-flex;align-items:center;gap:.95rem;margin:1.5rem 0;padding:.9rem 1.2rem .9rem .95rem;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);text-decoration:none;
  color:var(--ink);transition:.25s var(--ease);box-shadow:var(--shadow)}
.filecard:hover{border-color:var(--accent-soft);transform:translateY(-1px)}
.filecard-i{font-size:.66rem;font-weight:700;letter-spacing:.04em;color:#fff;background:var(--accent);
  padding:.55rem .5rem;border-radius:7px}
.filecard-t{display:flex;flex-direction:column;gap:.1rem}
.filecard-m{font-size:.8rem;color:var(--muted)}
.linkcard{display:flex;flex-direction:column;gap:.3rem;margin:1.5rem 0;padding:1.1rem 1.3rem;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);text-decoration:none;
  color:var(--ink);transition:.25s var(--ease)}
.linkcard:hover{border-color:var(--accent-soft);background:var(--accent-wash)}
.linkcard-t{font-family:var(--serif);font-size:1.18rem;font-weight:560}
.linkcard-d{font-size:.82rem;color:var(--accent-2);font-weight:560;letter-spacing:.01em}
.pageref{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--accent-2);font-weight:560}
.xref{white-space:nowrap}

/* embeds, code, rules, columns */
.embed{position:relative;aspect-ratio:16/9;margin:2rem 0;border-radius:var(--radius-s);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow);background:#000}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.code{background:var(--ink);color:#f3ece0;padding:1.1rem 1.3rem;border-radius:var(--radius-s);overflow:auto;
  font-family:var(--mono);font-size:.86rem;line-height:1.6;margin:1.6rem 0}
.rule{border:0;height:1px;background:var(--line-2);margin:2.2rem 0}
.cols{display:grid;grid-template-columns:repeat(var(--cols,2),1fr);gap:1.6rem;margin:1.4rem 0}
@media (max-width:680px){.cols{grid-template-columns:1fr}}

/* color marks — unified to ink for a consistent near-black palette across the site */
.ink-purple,.ink-blue,.ink-red,.ink-brown,.ink-orange,.ink-green,.ink-pink,.ink-yellow{color:inherit}
.ink-gray{color:var(--muted)}
.hl{background:var(--accent-wash);padding:.05em .25em;border-radius:4px;color:inherit}
.hl-yellow,.hl-blue,.hl-green,.hl-purple,.hl-pink,.hl-red,.hl-gray,.hl-brown,.hl-orange{background:var(--accent-wash)}
.u{text-decoration:underline}

/* prev / next */
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:var(--bodyw);margin:clamp(2.5rem,5vw,4rem) auto 0;
  padding-top:2rem;border-top:1px solid var(--line)}
.pn{display:flex;flex-direction:column;gap:.4rem;text-decoration:none;color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius-s);padding:1.1rem 1.3rem;transition:.25s var(--ease);background:var(--card)}
.pn:hover{border-color:var(--accent-soft);transform:translateY(-1px);box-shadow:var(--shadow)}
.pn--next{text-align:right;align-items:flex-end}
.pn-k{font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-2);font-weight:600}
.pn-t{font-family:var(--serif);font-size:1.22rem;font-weight:560;letter-spacing:-.01em}

/* hub */
.mm-grid--hub{margin-top:.5rem}
.hub-prose{margin-top:clamp(2.5rem,5vw,4rem)}

/* ============================================================== FOOTER ===== */
.foot{border-top:1px solid var(--line);background:var(--paper-2);margin-top:0;padding:clamp(3rem,6vw,5rem) 0 2rem}
.foot-in{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:clamp(1.5rem,4vw,3rem)}
.foot-brand .brand{margin-bottom:1rem}
.foot-tag{color:var(--muted);font-size:.98rem;line-height:1.5;max-width:30ch;margin:0 0 1.1rem}
.yt{display:inline-block;color:var(--accent-2);text-decoration:none;font-weight:560;font-size:.92rem}
.yt:hover{text-decoration:underline;text-underline-offset:3px}
.foot-col h4{font-family:var(--sans);font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--faint);font-weight:700;margin:0 0 1rem}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.foot-col a{color:var(--ink-2);text-decoration:none;font-size:.94rem;transition:.2s}
.foot-col a:hover{color:var(--accent-2)}
.foot-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:clamp(2.5rem,5vw,4rem);
  padding-top:1.5rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}

/* ============================================================== SEARCH ===== */
.search{position:fixed;inset:0;z-index:120;display:grid;place-items:start center;padding:12vh 1rem 1rem;
  background:rgba(28,26,22,.32);backdrop-filter:blur(4px)}
.search[hidden]{display:none}
.search-panel{width:min(620px,100%);background:var(--paper);border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .25s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(-12px) scale(.98)}}
.search-top{display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border-bottom:1px solid var(--line)}
.search-top svg{width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;flex:none}
.search-top input{flex:1;border:0;background:transparent;font-family:var(--sans);font-size:1.05rem;color:var(--ink);outline:none}
.search-top kbd{font-family:var(--sans);font-size:.72rem;background:var(--paper-2);border:1px solid var(--line);
  border-radius:5px;padding:.2rem .45rem;color:var(--muted)}
.search-results{list-style:none;margin:0;padding:.5rem;max-height:56vh;overflow:auto}
.search-results li{margin:0}
.search-results a{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;color:var(--ink);
  padding:.7rem .85rem;border-radius:9px}
.search-results a:hover,.search-results a.sel{background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.sr-ey{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-2);font-weight:600}
.sr-t{font-family:var(--serif);font-size:1.1rem;font-weight:560}
.sr-s{font-size:.86rem;color:var(--muted)}
.sr-t mark,.sr-s mark{background:var(--accent-wash);color:var(--accent-2);border-radius:3px;padding:0 .1em}
.search-empty{padding:1.6rem;text-align:center;color:var(--muted)}

/* ============================================================ animation ==== */
/* pure-CSS entrance — never gated on JS, so content can't get stuck hidden */
.reveal{opacity:0;transform:translateY(20px);animation:reveal-rise .85s var(--ease) forwards;animation-delay:var(--d,0s)}
@keyframes reveal-rise{to{opacity:1;transform:none}}
.progress{position:fixed;top:0;left:0;height:2.5px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));
  z-index:100;opacity:0;transition:opacity .3s}
body.doc .progress{opacity:1}
@media (prefers-reduced-motion:reduce){
  .reveal{animation:none;opacity:1;transform:none}
  .btn,.pillar,.mm-card,.pn,.emblem{transition:none!important;animation:none!important}}

/* ============================================================ responsive === */
@media (max-width:1300px){
  .toc{display:none}
}
@media (max-width:880px){
  .nav-links{display:none}
  .menu-btn{display:flex}
  .search-btn span{display:none}
  .search-btn kbd{display:none}
  .hero-in{grid-template-columns:1fr;align-items:start}
  .hero-colophon{border-left:0;border-top:1px solid var(--line);padding:1.4rem 0 0}
  .hero-colophon dl{flex-direction:row;flex-wrap:wrap;gap:1.4rem}
  .intent-in{grid-template-columns:1fr;gap:1.5rem}
  .intent-head{position:static}
  .foot-in{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:560px){
  .pillar{grid-template-columns:auto 1fr;row-gap:.3rem}
  .pillar-go{display:none}
  .prevnext{grid-template-columns:1fr}
  .pn--next{text-align:left;align-items:flex-start}
  .foot-in{grid-template-columns:1fr}
  .doc-sum{font-size:1.15rem}
}

/* ============================================== Mental Models hub ========== */
.hub-hint{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;
  margin:clamp(1.8rem,3.5vw,2.8rem) auto 1.1rem;padding-bottom:.95rem;border-bottom:1px solid var(--line)}
.hub-hint-l{font-family:var(--serif);font-size:1.15rem;font-style:italic;color:var(--ink-2)}
.hub-hint-r{font-size:.85rem;color:var(--accent-2);font-weight:600}
.hub-feature{margin-top:clamp(3rem,6vw,5.5rem);padding:clamp(2.6rem,5vw,4.4rem) 0;border-top:1px solid var(--line);
  background:linear-gradient(180deg,var(--paper-2),var(--paper))}
.hub-feature-in{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(1.6rem,5vw,4.5rem);align-items:start}
.hub-feature-aside{position:sticky;top:6rem}
.hub-feature-h{font-size:var(--st-3);font-weight:560;margin:.7rem 0 1.3rem;letter-spacing:-.025em}
.hub-feature-aside .note{margin:0}
.hub-feature-body{max-width:42rem;font-size:var(--st-0);line-height:1.72;color:var(--ink-2)}
.hub-feature-body>:first-child{margin-top:0}
@media (max-width:880px){.hub-feature-in{grid-template-columns:1fr}.hub-feature-aside{position:static;margin-bottom:1.4rem}}

/* ============================================== TL;DR one-pager =========== */
.onepager{margin:1rem 0 .5rem}
.op-intro{display:grid;gap:1.25rem;margin-bottom:2.8rem}
.op-statement{margin:0;font-family:var(--serif);font-size:clamp(1.15rem,1rem + .55vw,1.45rem);line-height:1.4;
  color:var(--ink-2);font-weight:380;padding-left:1.4rem;border-left:2px solid var(--accent-soft)}
.op-statement .op-em{font-weight:600;color:var(--accent-2);font-style:normal}
.op-statement em{font-style:italic;color:var(--ink)}
.op-dist-head{margin:0 0 1.6rem}
.op-dist-title{font-size:var(--st-2);font-weight:560;margin:.5rem 0 0;letter-spacing:-.02em}
.op-dist-list{list-style:none;margin:0;padding:0}
.op-d{padding:1.6rem 0;border-top:1px solid var(--line)}
.op-d:first-child{border-top:1.5px solid var(--ink)}
.op-d-h{display:flex;align-items:baseline;gap:1rem;margin-bottom:.85rem}
.op-d-n{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--accent);font-weight:500;min-width:2.2ch}
.op-d-h h4{font-size:clamp(1.15rem,1rem + .4vw,1.4rem);font-weight:560;margin:0;letter-spacing:-.015em;color:var(--ink)}
.op-d-list{margin:0;padding:0 0 0 calc(2.2ch + 1rem);list-style:none;display:grid;gap:.55rem}
.op-d-list li{position:relative;padding-left:1.3rem;color:var(--ink-2);line-height:1.55}
.op-d-list li::before{content:"";position:absolute;left:.15rem;top:.62em;width:5px;height:5px;background:var(--accent);border-radius:50%}
@media (max-width:560px){.op-d-list{padding-left:0}}

/* ============================================== Library lists ============= */
.lib-sub{color:var(--muted);font-size:1.06rem;line-height:1.5;max-width:46ch;margin:.2rem 0 0}
.bk-list{list-style:none;margin:1.7rem 0 0;padding:0;border-top:1.5px solid var(--ink)}
.bk{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;padding:1.55rem 0;border-bottom:1px solid var(--line);align-items:start}
.bk-n{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--accent);font-weight:500;padding-top:.15rem}
.bk-t{font-family:var(--serif);font-size:1.3rem;font-weight:560;margin:0;letter-spacing:-.015em;line-height:1.15;transition:.2s}
.bk-a{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);font-weight:700;margin:.4rem 0 .6rem}
.bk-w{margin:0;color:var(--ink-2);font-size:1.02rem;line-height:1.55}
.bk:hover .bk-t{color:var(--accent-2)}
.sf-list{list-style:none;margin:1.7rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 2.6rem;border-top:1.5px solid var(--ink)}
.sf{display:flex;flex-direction:column;gap:.25rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.sf-t{font-family:var(--serif);font-size:1.1rem;font-weight:560;line-height:1.2}
.sf-w{font-size:.9rem;color:var(--muted);line-height:1.45}
@media (max-width:680px){.sf-list{grid-template-columns:1fr}.bk{grid-template-columns:1fr;gap:.3rem}.bk-n{display:none}}
@media (max-width:880px){.intent-mark{display:none}}

/* ===================================== iteration-2 fixes & polish ========= */
/* custom lists must not inherit prose bullets/counters (kills double 01 / 1.) */
.prose .bk-list,.prose .sf-list,.prose .op-dist-list{counter-reset:none}
.prose .bk-list>li,.prose .sf-list>li,.prose .op-dist-list>li{padding-left:0}
.prose .bk-list>li::before,.prose .sf-list>li::before,.prose .op-dist-list>li::before{content:none;display:none}
.prose .op-d-list>li{padding-left:1.3rem;margin:0 0 .55rem}
.prose .op-d-list>li::before{content:"";display:block;position:absolute;left:.15rem;top:.62em;width:5px;height:5px;background:var(--accent);border-radius:50%}

/* video — framed & captioned */
.media-k{display:inline-flex;align-items:center;font-size:.64rem;text-transform:uppercase;letter-spacing:.16em;
  font-weight:700;color:#fff;background:var(--accent);padding:.3em .6em;border-radius:5px;margin-right:.7rem}
.video{margin:2.4rem 0}
.video .embed{margin:0;border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.video-cap{display:flex;align-items:center;margin-top:.85rem;font-size:.92rem;color:var(--ink-2);font-style:normal}
.video-cap span:last-child{font-weight:500}

/* portrait images (book covers) — small, with a book-like shadow */
.img--portrait{margin:2rem auto;max-width:230px}
.img--portrait img{max-width:230px;width:100%;border:0;border-radius:3px;
  box-shadow:0 1px 1px rgba(28,26,22,.22),0 22px 44px -18px rgba(28,26,22,.55),-10px 12px 26px -16px rgba(28,26,22,.32)}
.cols{align-items:start}
.cols .img{margin-top:0}


/* ===================================== interactive tools ================== */
.tool{margin:2.6rem 0;padding:clamp(1.4rem,3vw,2.2rem);background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.tool-head{margin-bottom:1.5rem}
.tool-k{display:inline-block;font-size:.64rem;text-transform:uppercase;letter-spacing:.2em;font-weight:700;
  color:#fff;background:var(--accent);padding:.3em .7em;border-radius:5px}
.tool-title{font-size:var(--st-2);font-weight:560;letter-spacing:-.02em;margin:.8rem 0 .5rem}
.tool-sub{color:var(--muted);font-size:1rem;line-height:1.5;margin:0;max-width:54ch}
.tool-noscript{color:var(--muted)}
.tool textarea,.tool input[type=text],.tool input[type=date],.tool input:not([type]){
  width:100%;font-family:var(--sans);font-size:.98rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-2);border-radius:9px;padding:.6rem .75rem;resize:vertical;transition:border-color .2s,box-shadow .2s}
.tool textarea:focus,.tool input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.tool ::placeholder{color:var(--faint)}

/* burndown */
.bd-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:1.6rem}
.bd-field{display:flex;flex-direction:column;gap:.5rem}
.bd-field:first-child{grid-column:1/-1}
.bd-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--accent-2)}
.bd-demo-row{display:flex;gap:.5rem;margin-bottom:.5rem}
.bd-x{flex:none;width:2rem;border:1px solid var(--line-2);background:var(--paper);border-radius:8px;color:var(--muted);
  cursor:pointer;font-size:1.1rem;line-height:1;transition:.2s}
.bd-x:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}
.bd-add{align-self:flex-start;background:none;border:0;color:var(--accent-2);font-weight:600;font-size:.85rem;
  cursor:pointer;padding:.2rem 0}
.bd-add:hover{text-decoration:underline;text-underline-offset:3px}
.bd-burn{margin:.4rem 0 1.6rem}
.bd-burn-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}
.bd-burn-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--muted)}
.bd-burn-num{font-size:.86rem;color:var(--ink-2);font-variant-numeric:tabular-nums}
.bd-bar{height:8px;background:var(--paper-3);border-radius:99px;overflow:hidden}
.bd-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:99px;
  transition:width .5s var(--ease)}
.bd-ledger{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.bd-col{background:var(--paper);padding:1rem .9rem;display:flex;flex-direction:column;gap:.55rem;min-height:8rem}
.bd-col-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--faint)}
.bd-tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;flex:1}
.bd-task{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.55rem;font-size:.92rem;line-height:1.35}
.bd-task.done span{text-decoration:line-through;color:var(--faint)}
.bd-check{flex:none;width:1.05rem;height:1.05rem;margin-top:.1rem;border:1.5px solid var(--line-2);border-radius:5px;
  background:var(--card);cursor:pointer;transition:.18s}
.bd-check.on{background:var(--accent);border-color:var(--accent)}
.bd-check.on::after{content:"✓";color:#fff;font-size:.72rem;display:flex;align-items:center;justify-content:center;line-height:1}
.bd-task .bd-x{width:1.4rem;border:0;background:none;font-size:1rem;opacity:0;transition:.15s}
.bd-task:hover .bd-x{opacity:1}
.bd-addtask{display:flex;gap:.4rem;margin-top:.3rem}
.bd-addtask input{font-size:.86rem;padding:.4rem .55rem}
.bd-addtask button{flex:none;width:2rem;border:1px solid var(--line-2);background:var(--paper);border-radius:8px;
  cursor:pointer;font-size:1.1rem;color:var(--ink-2);transition:.2s}
.bd-addtask button:hover{border-color:var(--accent);color:var(--accent)}
.bd-actions{display:flex;align-items:center;gap:.8rem;margin-top:1.5rem;flex-wrap:wrap}
.bd-btn{font-family:var(--sans);font-weight:560;font-size:.86rem;padding:.6rem 1.2rem;border-radius:999px;
  border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;transition:.25s var(--ease)}
.bd-btn:hover{background:var(--accent-2);border-color:var(--accent-2)}
.bd-btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.bd-btn--ghost:hover{background:var(--paper-2);color:var(--ink);border-color:var(--ink)}
.bd-saved{font-size:.8rem;color:var(--faint)}

/* pain self-check */
.pain-steps{list-style:none;margin:0 0 1.6rem;padding:0;display:flex;gap:.5rem;counter-reset:p}
.pain-dot{flex:1;text-align:center;font-size:.74rem;font-weight:600;color:var(--faint);padding:.55rem .3rem;
  border-top:2px solid var(--line);counter-increment:p;transition:.3s}
.pain-dot::before{content:counter(p) ".  ";color:inherit}
.pain-dot.on{color:var(--accent-2);border-top-color:var(--accent)}
.pain-dot.past{color:var(--ink-2);border-top-color:var(--accent-soft)}
.pain-card,.pain-summary{display:flex;flex-direction:column;gap:.7rem}
.pain-h{font-family:var(--serif);font-size:var(--st-1);font-weight:560;margin:0}
.pain-hint{color:var(--muted);font-size:.96rem;line-height:1.5;margin:0}
.pain-lead{color:var(--ink-2);font-size:1rem;margin:0 0 .4rem}
.pain-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.7rem}
.pain-srow{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 0;border-top:1px solid var(--line)}
.pain-srow-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--accent-2)}
.pain-srow p{margin:0;color:var(--ink);line-height:1.5;white-space:pre-wrap}

/* reflection prompt */
.reflect{margin:2.4rem 0 0;padding:1.5rem 1.6rem;border:1px solid var(--accent-soft);border-radius:var(--radius);
  background:linear-gradient(180deg,var(--accent-wash),var(--card) 80%)}
.reflect-head{display:flex;align-items:baseline;gap:.7rem;margin-bottom:.8rem}
.reflect-k{font-size:.66rem;text-transform:uppercase;letter-spacing:.2em;font-weight:700;color:#fff;
  background:var(--accent);padding:.3em .7em;border-radius:5px}
.reflect-sub{font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
.reflect-q{font-family:var(--serif);font-size:clamp(1.15rem,1rem + .5vw,1.4rem);line-height:1.4;color:var(--ink);
  margin:0 0 1rem;font-weight:430}
.reflect-note{width:100%;font-family:var(--sans);font-size:.96rem;color:var(--ink);background:var(--card);
  border:1px solid var(--line-2);border-radius:9px;padding:.6rem .75rem;resize:vertical;transition:.2s}
.reflect-note:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(192,72,31,.12)}
.reflect-foot{display:flex;align-items:center;gap:.9rem;margin-top:.8rem}
.reflect-done{font-family:var(--sans);font-weight:600;font-size:.82rem;color:var(--accent-2);background:none;
  border:1px solid var(--accent-soft);border-radius:999px;padding:.45rem 1rem;cursor:pointer;transition:.25s var(--ease)}
.reflect-done:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.reflect.is-done{border-color:var(--accent)}
.reflect.is-done .reflect-done{background:var(--accent);color:#fff;border-color:var(--accent)}
.reflect-saved{font-size:.78rem;color:var(--accent-2)}

@media (max-width:620px){
  .bd-fields{grid-template-columns:1fr}
  .bd-ledger{grid-template-columns:1fr}
  .pain-dot{font-size:0}
  .pain-dot::before{font-size:.8rem}
}

/* =============================== hero grid — header-only detail, right-weighted */
.hero-grid{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(to right,rgba(28,26,22,.06) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(28,26,22,.06) 1px,transparent 1px);
  background-size:clamp(40px,3.4vw,56px) clamp(40px,3.4vw,56px);
  -webkit-mask-image:radial-gradient(68% 88% at 87% 48%,#000 6%,transparent 72%);
  mask-image:radial-gradient(68% 88% at 87% 48%,#000 6%,transparent 72%);
  animation:gridDrift 38s linear infinite}
@keyframes gridDrift{to{background-position:56px 56px,56px 56px}}
@media (prefers-reduced-motion:reduce){.hero-grid{animation:none}}
@media (max-width:880px){.hero-grid{-webkit-mask-image:radial-gradient(90% 60% at 75% 18%,#000 0%,transparent 70%);
  mask-image:radial-gradient(90% 60% at 75% 18%,#000 0%,transparent 70%)}}
