/* The Lagging Truth — ledger-modern
   paper #FAFAF7 · ink #161A1D · steel #5A6472 · signal #B7352C · quiet #2E6B4F */

:root{
  --paper:#FAFAF7; --ink:#161A1D; --steel:#5A6472;
  --signal:#B7352C; --quiet:#2E6B4F; --hairline:#DDDED6;
  --panel:#F1F1EB;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --disp:"Archivo","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono","Consolas",monospace;
}
*{box-sizing:border-box}
html{font-size:17px}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--signal);text-decoration:none;border-bottom:1px solid #d9a49e}
a:hover{border-bottom-color:var(--signal)}
a:focus-visible{outline:2px solid var(--signal);outline-offset:2px}

/* ---------- shell ---------- */
.wrap{max-width:46rem;margin:0 auto;padding:0 1.25rem}
header.site{border-bottom:1px solid var(--hairline);position:sticky;top:0;z-index:100;
  background:var(--paper)}
header.site .wrap{display:flex;align-items:baseline;justify-content:space-between;
  padding-top:1.1rem;padding-bottom:1.1rem;flex-wrap:nowrap;gap:.5rem;
  max-width:60rem;
  transition:padding .18s ease}
header.site .brand{flex:0 0 auto;white-space:nowrap}
nav.site{flex:0 1 auto;white-space:nowrap}
@media (max-width:700px){
  header.site .wrap{flex-wrap:wrap;max-width:46rem}
  nav.site{white-space:normal;flex-wrap:wrap}
}
header.site.shrunk .wrap{padding-top:.45rem;padding-bottom:.45rem}
header.site.shrunk{box-shadow:0 2px 10px rgba(22,26,29,.06)}
header.site .brand{transition:font-size .18s ease}
header.site.shrunk .brand{font-size:.9rem}
@media (prefers-reduced-motion:reduce){
  header.site .wrap,header.site .brand{transition:none}
}
.brand{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;
  font-size:1.05rem;color:var(--ink);border:none;text-transform:uppercase}
nav.site a{font-family:var(--disp);font-size:.82rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--steel);border:none;margin-left:1.1rem}
nav.site a:hover,nav.site a[aria-current]{color:var(--ink)}

/* ---------- pure-CSS nav submenus ---------- */
nav.site{display:flex;align-items:baseline}
.navitem{position:relative;display:inline-block}
.navitem > a{display:inline-block;padding-bottom:.55rem;margin-bottom:-.55rem}
.submenu{display:none;position:absolute;left:0;right:auto;top:100%;z-index:50;
  margin:0;padding:.45rem 0;list-style:none;
  width:max-content;min-width:16rem;max-width:min(40rem,50vw);
  background:#fff;border:1px solid var(--hairline);border-radius:3px;
  box-shadow:0 8px 22px rgba(22,26,29,.10)}
.navitem:hover .submenu,.navitem:focus-within .submenu{display:block}
.submenu li{margin:0}
.submenu a,.submenu .soon{display:block;padding:.42rem .95rem;margin:0;border:none;
  font-family:var(--serif);font-size:.9rem;letter-spacing:0;text-transform:none;
  color:var(--ink);line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.submenu a:hover{background:var(--panel);color:var(--ink)}
.submenu .soon{color:var(--steel);font-style:italic;cursor:default}
@media (max-width:640px){.submenu{display:none !important}}
footer.site{border-top:1px solid var(--hairline);margin-top:4rem;
  color:var(--steel);font-size:.85rem}
footer.site .wrap{padding-top:1.4rem;padding-bottom:2.2rem}

/* ---------- the signature: display type trails itself ---------- */
h1.lag,h2.lag{
  font-family:var(--disp);font-weight:800;letter-spacing:-.025em;line-height:1.08;
  text-shadow:6px 4px 0 rgba(90,100,114,.16);
}
@media (prefers-reduced-motion:no-preference){
  h1.lag{animation:settle .6s ease-out}
  @keyframes settle{from{text-shadow:14px 9px 0 rgba(90,100,114,.22)}
                    to{text-shadow:6px 4px 0 rgba(90,100,114,.16)}}
}

/* ---------- article typography ---------- */
article h1{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;
  font-size:2.1rem;line-height:1.12;margin:2.4rem 0 .6rem}
article h2{font-family:var(--disp);font-weight:700;letter-spacing:-.01em;
  font-size:1.28rem;margin:2.4rem 0 .5rem}
article p{margin:0 0 1.05rem}
article em{font-style:italic}
article hr{border:none;border-top:1px solid var(--hairline);margin:2.5rem 0}
.kicker{font-family:var(--disp);font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--steel);margin:2.2rem 0 .2rem}
.deck{color:var(--steel);font-size:1.02rem}
.doclinks{font-family:var(--disp);font-size:.8rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--steel);margin:.2rem 0 1.6rem}
.doclinks a{margin-right:.15rem}

/* ---------- shared end-matter ---------- */
.endmatter{background:var(--panel);border-top:2px solid var(--ink);
  margin-top:3.5rem;padding:1.6rem 1.5rem 1.2rem;border-radius:2px}
.endmatter h1{font-size:1.35rem;margin-top:0}
.endmatter p{font-size:.95rem}
.endmatter > p:first-of-type{color:var(--steel);font-style:italic}

/* ---------- instrument readout (predictions board) ---------- */
.board{font-family:var(--mono);background:var(--ink);color:var(--paper);
  border-radius:3px;padding:1.2rem 1.3rem;margin:1.6rem 0;font-size:.92rem;line-height:1.9}
.board .lbl{color:#9AA3AE}
.board .val{color:var(--paper)}
.board .ok{color:#7FC79E;font-weight:600}
.board .stamp{color:#9AA3AE;font-size:.8rem}

/* ---------- research index ---------- */
.paperrow{border-top:1px solid var(--hairline);padding:1.15rem 0}
.paperrow:last-child{border-bottom:1px solid var(--hairline)}
.paperrow h3{font-family:var(--disp);font-size:1.05rem;letter-spacing:-.01em;margin:0 0 .25rem}
.paperrow p{margin:.15rem 0;font-size:.95rem;color:var(--steel)}
.paperrow .links{font-family:var(--disp);font-size:.8rem;letter-spacing:.03em;text-transform:uppercase}
.paperrow .links a{margin-right:1rem}
.pending{color:var(--steel);font-style:italic}

/* ---------- home ---------- */
.hook{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;
  font-size:clamp(2.3rem,7vw,3.6rem);line-height:1.05;margin:3.2rem 0 1.2rem}
.why{font-size:1.15rem;max-width:38rem}
.door{border-left:3px solid var(--signal);padding:.2rem 0 .2rem 1.2rem;margin:2rem 0;
  color:var(--ink)}
.routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  gap:1rem;margin:2.6rem 0}
.route{border:1px solid var(--hairline);border-radius:3px;padding:1.05rem 1.1rem;background:#fff}
.route a{border:none;font-family:var(--disp);font-weight:700;letter-spacing:-.01em}
.route p{margin:.4rem 0 0;font-size:.9rem;color:var(--steel)}

@media (max-width:520px){
  html{font-size:16px}
  nav.site a{margin-left:.8rem}
}

/* ---------- back to top ---------- */
#totop{position:fixed;right:1.1rem;bottom:1.1rem;z-index:90;
  width:2.6rem;height:2.6rem;border-radius:3px;
  background:var(--paper);color:var(--ink);border:1px solid var(--hairline);
  font-family:var(--disp);font-weight:800;font-size:1.05rem;line-height:1;
  cursor:pointer;box-shadow:0 4px 14px rgba(22,26,29,.10);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s}
#totop.show{opacity:1;visibility:visible;transform:none}
#totop:hover{color:var(--signal);border-color:var(--signal)}
#totop:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
@media (prefers-reduced-motion:reduce){#totop{transition:none}}

/* ---------- signup forms ---------- */
.signup{background:var(--panel);border-top:2px solid var(--ink);border-radius:2px;
  padding:1.4rem 1.5rem 1.2rem;margin:2.6rem 0}
.signup h3{font-family:var(--disp);font-size:1.05rem;letter-spacing:-.01em;margin:0 0 .3rem}
.signup p{margin:.15rem 0 .9rem;font-size:.92rem;color:var(--steel)}
.sigrow{display:flex;gap:.6rem;flex-wrap:wrap}
.sigrow input[type=email]{flex:1 1 14rem;min-width:0;padding:.6rem .75rem;
  font:inherit;font-size:.95rem;border:1px solid var(--hairline);border-radius:3px;
  background:#fff;color:var(--ink)}
.sigrow input[type=email]:focus-visible{outline:2px solid var(--signal);outline-offset:1px;border-color:var(--signal)}
.sigrow button{padding:.6rem 1.15rem;font-family:var(--disp);font-weight:700;
  font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  border-radius:3px;cursor:pointer}
.sigrow button:hover{background:var(--signal);border-color:var(--signal)}
.sigrow button:disabled{opacity:.55;cursor:default}
.signup .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.sigmsg{min-height:1.2em;font-size:.9rem;margin:.7rem 0 0}
.sigmsg.ok{color:#2E7D4F;font-weight:600}
.sigmsg.err{color:var(--signal)}
.sigmsg.fallback{color:var(--steel)}
.soonflag{font-family:var(--disp);font-size:.62rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--signal);border:1px solid var(--signal);
  border-radius:2px;padding:.1rem .35rem;margin-left:.4rem;vertical-align:middle}

/* ---------- prediction status strip ---------- */
.notice{border:1px solid var(--hairline);border-left:3px solid var(--signal);
  background:var(--panel);border-radius:2px;padding:.85rem 1.1rem;margin:1.4rem 0}
.notice p{margin:0;font-size:.9rem;color:var(--steel)}
.notice strong{color:var(--ink)}

/* ---------- companion explainer video ---------- */
.videowrap{margin:1.6rem 0 2rem;padding:0}
.videowrap iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;
  border:1px solid var(--hairline);border-radius:3px;background:var(--panel)}
.videowrap figcaption{margin-top:.5rem;font-size:.82rem;color:var(--steel);
  font-family:var(--disp);letter-spacing:.01em}

/* ---------- live prediction boards ---------- */
.liveboard{margin:1.4rem 0 2rem}
.liveboard h2{font-family:var(--disp);font-size:1.15rem;letter-spacing:-.01em;
  margin:0 0 .35rem}
.boardnote{font-size:.9rem;color:var(--steel);margin:.2rem 0 .8rem}
.board .hot{color:var(--signal);font-weight:800;letter-spacing:.04em}
.board a{color:inherit}

/* ---------- board dashboard v2 ---------- */
.updbanner{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  background:var(--ink);color:var(--paper);border-radius:3px;
  padding:.8rem 1.1rem;margin:0 0 1rem}
.updmain{font-family:var(--disp);font-weight:800;font-size:1.05rem;
  letter-spacing:.05em}
.updsub{font-size:.85rem;opacity:.75}
.upddot{width:11px;height:11px;border-radius:50%;background:#35c46a;
  flex:0 0 auto;animation:updpulse 2s infinite}
@keyframes updpulse{0%{box-shadow:0 0 0 0 rgba(53,196,106,.55)}
  70%{box-shadow:0 0 0 11px rgba(53,196,106,0)}
  100%{box-shadow:0 0 0 0 rgba(53,196,106,0)}}
@media (prefers-reduced-motion:reduce){.upddot{animation:none}}
.bigread{font-family:var(--disp);font-weight:800;font-size:1.55rem;
  letter-spacing:-.01em;margin:.2rem 0 .5rem;color:#2E7D4F}
.hotread{color:var(--signal)}
.gauges{margin:.6rem 0 .2rem}
.gauges svg{display:block;margin:.15rem 0}
.glabel{font:600 22px var(--disp);fill:var(--ink)}
.gtrack{fill:var(--panel);stroke:var(--hairline)}
.gfill{fill:var(--steel);opacity:.5}
.gbase{stroke:var(--steel);stroke-width:2;stroke-dasharray:3 3}
.gthr{stroke:var(--signal);stroke-width:3}
.gthrlbl{font:700 17px var(--disp);fill:var(--signal)}
.gdot{fill:var(--ink)}
.gdotring{fill:none;stroke:var(--ink);stroke-width:2;opacity:.35}
.gval{font:800 20px var(--disp);fill:var(--ink)}
.stq{fill:var(--panel);stroke:var(--hairline);stroke-width:1.5}
.sta{fill:var(--signal);fill-opacity:.08;stroke:var(--signal);stroke-width:3}
.stname{font:800 23px var(--disp);fill:var(--ink)}
.ststate{font:700 20px var(--disp);fill:#2E7D4F;letter-spacing:.06em}
.stlit{fill:var(--signal)}
.strule{font:15px var(--disp);fill:var(--steel)}
.starrow{font:800 30px var(--disp);fill:var(--steel)}
.chips{display:flex;gap:.9rem;flex-wrap:wrap;margin:1.1rem 0}
.chip{flex:1 1 11rem;background:var(--panel);border-top:2px solid var(--ink);
  border-radius:2px;padding:.75rem .95rem}
.chipnum{display:block;font-family:var(--disp);font-weight:800;
  font-size:1.65rem;color:var(--ink);letter-spacing:-.01em}
.chiplbl{font-size:.8rem;color:var(--steel);line-height:1.35;display:block;
  margin-top:.15rem}
.charthead{font-family:var(--disp);font-size:1rem;letter-spacing:-.01em;
  margin:1.5rem 0 .4rem}
.cline{fill:none;stroke:var(--ink);stroke-width:1.6}
.cband{fill:var(--steel);opacity:.16}
.cgrid{stroke:var(--hairline);stroke-width:1}
.cax{font:15px var(--disp);fill:var(--steel)}
.cthr{stroke:var(--signal);stroke-dasharray:6 4;stroke-width:2}
.cthrlbl{font:700 16px var(--disp);fill:var(--signal)}
.m1{fill:#e0a52c;stroke:#fff;stroke-width:2}
.m2{fill:var(--signal);stroke:#fff;stroke-width:2}
.mdiv{fill:#2E7D4F;stroke:#fff;stroke-width:2}
.mlvl{fill:#e07b2c;stroke:#fff;stroke-width:2}
.clegend{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:.3rem 1rem;font-size:.8rem;color:var(--steel);margin:.45rem 0 0}
.lgitem{display:inline-flex;align-items:center;gap:.4rem}
.sw{width:.8rem;height:.8rem;border-radius:50%;display:inline-block}
.swline{background:var(--ink);height:3px;width:1.25rem;border-radius:0}
.swband{background:var(--steel);opacity:.35;border-radius:2px}
.swm1{background:#e0a52c}
.swm2{background:var(--signal)}
.swmdiv{background:#2E7D4F}
.swmlvl{background:#e07b2c}
.boardcta{background:var(--panel);border-left:3px solid var(--signal);
  border-radius:2px;padding:.9rem 1.1rem;margin:1.3rem 0 .5rem;
  font-size:.95rem}
.stampline{font-size:.75rem;color:var(--steel);font-family:var(--disp);
  letter-spacing:.01em;margin:.7rem 0 0}
.stampline a{color:inherit}

/* ---------- interactive charts (boards.js) ---------- */
.ichart{margin:.4rem 0 1.2rem}
.ichart svg{display:block;cursor:crosshair}
.itoolbar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
  margin:0 0 .35rem}
.itoolbar button{font-family:var(--disp);font-weight:700;font-size:.72rem;
  letter-spacing:.05em;text-transform:uppercase;padding:.28rem .6rem;
  background:var(--panel);color:var(--ink);border:1px solid var(--hairline);
  border-radius:3px;cursor:pointer}
.itoolbar button:hover{border-color:var(--ink)}
.ihint{font-size:.75rem;color:var(--steel);margin-left:auto}
.creadout{font-family:var(--disp);font-size:.85rem;color:var(--steel);
  background:var(--panel);border:1px solid var(--hairline);border-radius:3px;
  padding:.4rem .7rem;margin:.35rem 0;min-height:1.35em}
.creadout.hasmark{color:var(--ink);font-weight:700;border-color:var(--ink)}
.ccross{stroke:var(--steel);stroke-width:1;stroke-dasharray:2 3}
.cselect{fill:var(--signal);opacity:.12}
.gthr2{stroke:var(--steel);stroke-width:2;stroke-dasharray:5 4}
.gthr2lbl{font:600 16px var(--disp);fill:var(--steel)}
.gthrlbl{font:700 17px var(--disp);fill:var(--signal)}

/* ---------- strain scoreboard table ---------- */
.tablewrap{overflow-x:auto;margin:.3rem 0 1rem}
.straintable{width:100%;border-collapse:collapse;font-size:.85rem}
.straintable th{font-family:var(--disp);font-size:.72rem;font-weight:800;
  letter-spacing:.05em;text-transform:uppercase;color:var(--steel);
  text-align:left;padding:.45rem .6rem;border-bottom:2px solid var(--ink)}
.straintable td{padding:.4rem .6rem;border-bottom:1px solid var(--hairline)}
.straintable .tverdict{font-family:var(--disp);font-weight:700;
  white-space:nowrap}
.straintable .tok{color:#2E7D4F}
.straintable .tmid{color:#e07b2c}
.straintable .tbad{color:var(--signal)}
.straintable .upcoming td{background:var(--panel);font-weight:600;
  border-top:2px solid var(--ink)}

/* ---------- /diagnostic calculator ---------- */
.diagcalc{background:var(--panel);border:1px solid var(--hairline);
  border-radius:4px;padding:1.1rem 1.2rem;margin:1rem 0}
.dctrl{margin:0 0 .9rem}
.dctrl label{display:block;font-family:var(--disp);font-weight:700;
  font-size:.85rem;margin:0 0 .25rem}
.dctrl input[type=range]{width:100%;accent-color:var(--signal)}
.dctrl select.dpick{display:block;width:100%;font:inherit;font-size:.9rem;
  padding:.45rem .5rem;margin:0 0 .45rem;background:#fff;color:var(--ink);
  border:1px solid var(--hairline);border-radius:3px}
.dctrl label.dfine{font-weight:400;color:var(--steel);font-size:.76rem;
  margin-top:.1rem}
.dresult{border-top:2px solid var(--ink);padding-top:.9rem;margin-top:1rem}
.drhorow{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap}
.drho{font-family:var(--disp);font-weight:800;font-size:2.6rem;
  letter-spacing:-.02em}
.dverdict{font-family:var(--disp);font-weight:800;font-size:1.15rem;
  letter-spacing:.06em}
.dv-green{color:#2E7D4F}.dv-yellow{color:#e07b2c}.dv-red{color:var(--signal)}
.dgauge{position:relative;height:12px;background:#e8e4dc;border-radius:6px;
  margin:.6rem 0 .8rem;overflow:visible}
.dgfill{height:100%;border-radius:6px;background:#2E7D4F;
  transition:width .15s ease}
.dgfill.dv-yellow{background:#e07b2c}.dgfill.dv-red{background:var(--signal)}
.dgtrigger{position:absolute;top:-5px;bottom:-5px;left:66.667%;width:2px;
  background:var(--signal)}
.dexpl{font-size:.95rem;margin:.2rem 0 .5rem}
.dlimit{font-size:.85rem;color:var(--steel);margin:0}

/* ---------- /diagnostic fork + replay ---------- */
.fork{background:var(--panel);border:1px solid var(--hairline);
  border-radius:4px;padding:1rem 1.2rem;margin:1rem 0 1.4rem}
.fklead{margin:0 0 .7rem;font-size:.95rem}
.fkbtn{display:inline-block;font-family:var(--disp);font-weight:700;
  font-size:.9rem;padding:.5rem .9rem;margin:0 .5rem .3rem 0;
  border:2px solid var(--ink);border-radius:3px;text-decoration:none;
  color:var(--ink);background:#fff}
.fkbtn.fkon{background:var(--ink);color:#fff}
.wstep{margin:.6rem 0 1rem}
.wprog{font-family:var(--disp);font-size:.78rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--steel);
  margin:0 0 .4rem}
.wprog a{color:var(--steel)}
.needpick{outline:2px solid #B33;outline-offset:2px}
#fork-replay h2,#fork-quiz h2{margin-top:.2rem}
.rp-chart{width:100%;height:auto;background:#fff;
  border:1px solid var(--hairline);border-radius:3px;margin:.6rem 0}
.rp-refuse{background:#fff6ec;border-left:4px solid #e07b2c;
  padding:.8rem 1rem;font-size:.95rem}
.rp-scope{background:var(--panel);border-left:4px solid var(--signal);
  padding:.8rem 1rem;font-size:.9rem;margin:.7rem 0}
.rp-eps{font-size:.92rem;margin:.3rem 0 .8rem}
#rp-file{display:block;width:100%;font:inherit;font-size:.9rem;
  padding:.4rem 0}

/* ---------- /diagnostic v3 plain-language redesign ---------- */
.benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:.7rem;margin:1rem 0}
.benefits.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.bene{background:var(--panel);border:1px solid var(--hairline);border-radius:4px;
  padding:.75rem .85rem;font-size:.88rem;line-height:1.45}
.bene b{display:block;font-family:var(--disp);font-size:.95rem;margin-bottom:.25rem}
.small-note{font-size:.85rem;color:var(--steel);margin:.4rem 0 1rem}
.wcontrow{margin:.5rem 0 0}
.rp-echo{background:var(--panel);border:1px solid var(--hairline);border-radius:3px;
  padding:.55rem .8rem;font-size:.85rem;color:var(--steel);margin:.2rem 0 .8rem}
.rp-h{font-family:var(--disp);font-size:1.08rem;margin:1.3rem 0 .3rem}
.rp-sub{font-weight:400;font-size:.82rem;color:var(--steel)}
.rp-togs{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.88rem;
  margin:.3rem 0 .2rem}
.rp-togs label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}
.rp-swk,.rp-swb{display:inline-block;width:18px;height:3px;border-radius:2px}
.rp-swk{background:#1a1a1a}.rp-swb{background:#2255aa}
.rp-bxr,.rp-bxg{display:inline-block;width:14px;height:11px;border-radius:2px;
  border:1px dashed #B33333;background:#B333331a}
.rp-bxg{border-color:#2E6B4F;background:#2E6B4F22}
.rp-bxs{border-color:#8a8a8a;background:repeating-linear-gradient(90deg,#8a8a8a 0 2px,transparent 2px 5px)}
.rp-lbl{font-family:Arial,Helvetica,sans-serif;font-size:11px}
.rp-cap{font-size:.88rem;color:#444;background:var(--panel);
  border:1px solid var(--hairline);border-radius:3px;padding:.55rem .8rem;
  margin:.1rem 0 .9rem;line-height:1.5}
.rp-meter{position:relative;height:14px;background:#e8e4dc;border-radius:7px;
  margin:.55rem 0 .15rem;overflow:hidden}
.rp-meterfill{height:100%;border-radius:7px;
  background:linear-gradient(90deg,#2E7D4F 0%,#e07b2c 70%,#B33333 100%);
  transition:width .2s ease}
.rp-metertick{position:absolute;top:-2px;bottom:-2px;right:0;width:3px;
  background:var(--signal)}
.rp-meterlbl{display:flex;justify-content:space-between;font-size:.72rem;
  color:var(--steel);font-family:var(--disp);letter-spacing:.05em;
  text-transform:uppercase;margin-bottom:.6rem}
.rp-grain{background:#fff6ec;border-left:4px solid #e07b2c;
  padding:.7rem .9rem;font-size:.9rem;margin:.7rem 0;line-height:1.5}
.rp-plays{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.7rem;margin:.4rem 0 .6rem}
.rp-play{border:1px solid #2E6B4F;border-left:4px solid #2E6B4F;border-radius:4px;
  background:#fff;padding:.7rem .85rem;font-size:.88rem;line-height:1.5}
.rp-did{color:#B33333;font-size:.8rem}
.rp-rehearserow{margin:.3rem 0 1rem;font-size:.85rem}
.rp-rehearse{border-color:#2E6B4F;color:#2E6B4F}
.rp-redbox{background:var(--panel);border:1px solid var(--hairline);
  border-left:4px solid var(--signal);border-radius:4px;
  padding:.8rem 1rem;font-size:.9rem;line-height:1.55;margin:1rem 0}
.rp-redbox ul{margin:.5rem 0;padding-left:1.2rem}
.rp-redbox li{margin:.3rem 0}
.rp-honest{background:#eef5ef;border-left:4px solid #2E6B4F;
  padding:.7rem .9rem;font-size:.88rem;margin:.8rem 0;line-height:1.5}
.rp-settings{font-size:.8rem;color:var(--steel);margin:.8rem 0 .2rem}
.paper{display:flex;gap:.9rem;align-items:center;background:var(--panel);
  border:1px solid var(--hairline);border-radius:4px;padding:.9rem 1rem;
  margin:1.4rem 0 1rem;font-size:.92rem;line-height:1.5}
.paper-pic{font-size:1.9rem;line-height:1}
.paper-sub{font-size:.85rem;color:var(--steel)}
.rp-chipwrap{background:var(--panel);border:1px solid var(--hairline);
  border-radius:4px;padding:.7rem .9rem;margin:.5rem 0 1rem;font-size:.9rem}
.rp-chiprow{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;
  margin:.55rem 0 0}
.rp-chiplbl{font-family:var(--disp);font-weight:700;font-size:.78rem;
  letter-spacing:.03em;margin-right:.25rem;flex-basis:100%;color:#333}
.rp-chip{display:inline-block;font-size:.82rem;padding:.28rem .6rem;
  border:1.5px solid var(--hairline);border-radius:999px;text-decoration:none;
  color:var(--ink);background:#fff;line-height:1.2}
.rp-chip:hover{border-color:var(--ink)}
.rp-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.rp-note{margin:.2rem 0 .9rem;font-size:.85rem;color:var(--steel);line-height:1.5}
.rp-toldline{font-size:.78rem;color:var(--steel);margin-top:.55rem;
  padding-top:.45rem;border-top:1px solid var(--hairline)}
.hp{position:absolute;left:-9999px;top:-9999px;height:1px;width:1px;
  opacity:0;pointer-events:none}
.fsrow{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0 .3rem}
.fsrow input[type=email]{flex:1 1 240px;font:inherit;font-size:.95rem;
  padding:.5rem .7rem;border:1.5px solid var(--hairline);border-radius:3px}
.fsrow input[type=email]:focus{outline:2px solid var(--ink);outline-offset:1px}
.fsrow .fkbtn{margin:0;white-space:nowrap}
.fsnote{font-size:.8rem;color:var(--steel);margin:.2rem 0 0}

/* ---- pilot page front layer (/pilot, unlisted) ---- */
.pkick{font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--quiet);margin:2.4rem 0 .4rem}
.ppanel{background:var(--panel);border:1px solid var(--hairline);border-radius:6px;
  padding:1.05rem 1.25rem;margin:1.4rem 0}
.pcta{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.5rem 0 .3rem}
.pbtn{font-family:var(--disp);font-weight:700;border-radius:5px;
  padding:.75rem 1.2rem;display:inline-block;text-decoration:none;border-bottom:none}
.pbtn.primary{background:var(--signal);color:#fff}
.pbtn.primary:hover{background:var(--ink)}
.pbtn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.pbtn.ghost:hover{border-color:var(--signal);color:var(--signal)}
.pctasub{font-size:.9rem;color:var(--steel);margin:.3rem 0 0}
.psteps{margin:1rem 0;padding-left:0;list-style:none;counter-reset:s}
.psteps li{counter-increment:s;margin:.85rem 0;padding-left:2.4rem;position:relative}
.psteps li::before{content:counter(s);position:absolute;left:0;top:.15rem;
  width:1.6rem;height:1.6rem;border-radius:50%;background:var(--ink);color:#fff;
  font-family:var(--disp);font-weight:700;font-size:.85rem;
  display:flex;align-items:center;justify-content:center}
details.pfold{border:1px solid var(--hairline);border-radius:6px;margin:.7rem 0;
  background:#fff}
details.pfold summary{font-family:var(--disp);font-weight:700;
  padding:.8rem 1.05rem;cursor:pointer}
details.pfold summary:hover{color:var(--signal)}
details.pfold[open] summary{border-bottom:1px solid var(--hairline)}
details.pfold .pinner{padding:.85rem 1.15rem}

/* ---- diagnostic: offline indicator + save/reconnect/feedback footer ---- */
.rp-conn{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;
  background:var(--panel);border:1px solid var(--hairline);border-radius:6px;
  padding:.6rem .9rem;margin:0 0 1rem;font-family:var(--disp);font-size:.9rem}
.rp-dot{width:.8rem;height:.8rem;border-radius:50%;background:#999;
  box-shadow:0 0 0 3px rgba(0,0,0,.06);flex:none}
.rp-dot.on{background:#2E6B4F}
.rp-dot.off{background:var(--signal)}
.rp-clock{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--steel)}
.rp-connnote{flex-basis:100%;font-family:var(--serif);font-size:.85rem;
  color:var(--steel)}
.rp-preset{border-left:4px solid var(--ink);padding:.4rem .9rem;margin:0 0 .8rem;
  font-size:.95rem}
.rp-preset .rp-sub{display:inline;font-size:.88rem;color:var(--steel)}
.rp-fb{border:1px solid var(--hairline);border-radius:6px;background:#fff;
  padding:.9rem 1.1rem;margin:1.6rem 0 .5rem}
.rp-fbstep{margin:.55rem 0}
.rp-fb .rp-sub{display:block;margin-top:.3rem}
.rp-fb.off .rp-fblink{opacity:.45;pointer-events:none}
.rp-fb.on .rp-fblink{opacity:1;pointer-events:auto}
.rp-pdfrow{margin:.6rem 0 1rem;text-align:center}
.rp-pdfbtn{display:inline-block;background:#2E6B4F;color:#fff!important;text-decoration:none;
  font-family:var(--disp);font-weight:700;font-size:1rem;padding:.7rem 1.1rem;
  border-radius:6px;border:2px solid #2E6B4F;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.rp-pdfbtn:hover{background:#245640;border-color:#245640}
.rp-pilotbtn{display:inline-block;background:#fff;color:var(--ink)!important;text-decoration:none;
  font-family:var(--disp);font-weight:700;font-size:1rem;padding:.65rem 1.1rem;
  border-radius:6px;border:2px solid var(--ink)}
.rp-pilotbtn:hover{background:var(--ink);color:#fff!important}
.rp-tog-off{opacity:.55;cursor:default}
.rp-tog-off em{font-style:normal;font-size:.85em;color:var(--steel)}
.rp-shock{border:1px solid var(--hairline);border-left:4px solid #8a8a8a;border-radius:4px;
  padding:.6rem .9rem .4rem;margin:.8rem 0 1.1rem;background:#fff}
.rp-shock h4.rp-h{margin:.1rem 0 .5rem;font-size:1.02rem}
.rp-summary{background:#fff;border:1px solid var(--hairline);border-left:5px solid var(--ink);
  border-radius:4px;padding:.8rem 1.1rem .5rem;margin:1rem 0 1.2rem;font-size:1.04rem;line-height:1.5}
.rp-summary h3.rp-h{margin:0 0 .4rem;font-size:1.18rem}
.rp-summary ol{margin:.2rem 0 .3rem 1.3rem;padding:0}
.rp-summary li{margin:.4rem 0}
.rp-summary ul.rp-sumlist{list-style:disc;margin:.25rem 0 .2rem 1.2rem;padding:0}
.rp-summary ul.rp-sumlist li{margin:.15rem 0;font-weight:400}
.rp-summary a{white-space:nowrap}
.rp-summary .rp-sub{display:block;margin:.5rem 0 .2rem;color:var(--steel)}
.rp-eplist{margin:.3rem 0 .8rem 1.3rem;padding:0}
.rp-eplist li{margin:.3rem 0;font-size:1.02rem}
.rp-ps{border-top:1px solid var(--hairline);margin:1.4rem 0 .6rem;padding-top:.9rem}
/* the postscript is a fold like the others, so it gets the same box: dashed
   strip with a caret pointing right when closed, solid header over a panel
   with a red edge when open (2026-09-07) */
.rp-ps summary{cursor:pointer;list-style:none;display:block;font-size:.95rem;color:var(--steel);
  padding:.55rem .85rem .55rem 2rem;position:relative;
  background:#F7F7F3;border:1px dashed var(--hairline);border-radius:4px}
.rp-ps summary:hover{background:#F1F1EA}
.rp-ps summary::-webkit-details-marker{display:none}
.rp-ps summary::before{content:"";position:absolute;left:.85rem;top:1.0em;
  width:.42rem;height:.42rem;border-right:2px solid var(--signal);
  border-bottom:2px solid var(--signal);transform:rotate(-45deg);
  transition:transform .15s ease}
.rp-ps[open] summary::before{transform:rotate(45deg);top:.92em}
.rp-ps[open] summary{background:#F1F1EA;border-style:solid;border-bottom:none;
  border-radius:4px 4px 0 0;color:var(--ink)}
.rp-ps summary strong{color:var(--ink)}
.rp-ps .rp-psbody{background:#F7F7F3;border:1px solid var(--hairline);border-top:none;
  border-left:3px solid var(--signal);border-radius:0 0 4px 4px;padding:.8rem .95rem;
  color:var(--ink);margin-top:0}
.rp-sample{background:#F3F3EE;border:1px solid var(--hairline);border-left:4px solid var(--steel);
  border-radius:4px;padding:.7rem 1rem;margin:0 0 .9rem;font-size:.98rem;line-height:1.5}
.rp-more{margin:.6rem 0 1.1rem;font-size:.95rem}
.rp-more summary{cursor:pointer;list-style:none;display:block;
  padding:.5rem .8rem .5rem 2rem;position:relative;color:var(--steel);
  background:#F7F7F3;border:1px dashed var(--hairline);border-radius:4px}
.rp-more summary:hover{background:#F1F1EA}
.rp-more summary::-webkit-details-marker{display:none}
/* a caret at the left of every fold-out: pointing RIGHT when closed (there is
   something folded away here), DOWN when open. The whole strip is a dashed
   box that becomes a solid-sided panel when opened, so the folded material
   reads as a separate thing at a glance, without having to parse the words
   (Jae, 2026-09-07). */
.rp-more summary::before{content:"";position:absolute;left:.85rem;top:.95em;
  width:.42rem;height:.42rem;border-right:2px solid var(--signal);
  border-bottom:2px solid var(--signal);transform:rotate(-45deg);
  transition:transform .15s ease}
.rp-more[open] summary::before{transform:rotate(45deg);top:.88em}
.rp-more[open] summary{background:#F1F1EA;border-style:solid;border-bottom:none;
  border-radius:4px 4px 0 0;color:var(--ink)}
.rp-more .rp-morebody{background:#F7F7F3;border:1px solid var(--hairline);
  border-top:none;border-left:3px solid var(--signal);border-radius:0 0 4px 4px;
  padding:.75rem .9rem}
.rp-more p{margin:0;color:var(--ink)}
.rp-more p + p{margin-top:.5rem}
.rp-pdfrow .rp-sub{display:block;margin:.35rem 0 0;text-align:center}
.rp-ghost{background:transparent!important;color:var(--ink)!important;
  border:1.5px solid var(--ink)!important}
@media print{.rp-fb,.rp-conn,.rp-chipwrap,.rp-togs,.rp-rehearserow,header.site,
  .signup,.paper,.videowrap,.fork{display:none!important}
  /* the readability folds are for the SCREEN; on paper (and in the saved
     report) every word shows, so nothing is hidden from a reader who keeps
     a copy or hands one to his accountant */
  .rp-more[open],.rp-more,.rp-ps{display:block!important}
  .rp-more>p,.rp-ps .rp-psbody{display:block!important}
  .rp-more summary,.rp-ps summary{list-style:none;text-decoration:none;font-weight:700;padding-left:0;
    background:none!important;border:none!important}
  .rp-more summary::before,.rp-ps summary::before{display:none}
  .rp-more .rp-morebody{border:none;border-left:2px solid var(--hairline);
    background:none;padding:.2rem 0 .2rem .7rem}
  .rp-ps .rp-psopen{display:none!important}
  /* /parts printed and handed to the person who orders (a red-team persona
     prints the page and puts it under his son's coffee): buttons become
     the typed address, folds open, samples drop */
  .bigbtn{background:none!important;color:var(--ink)!important;border:2px solid var(--ink)!important;
    box-shadow:none}
  .bigbtn::after{content:"  LaggingTruth.com/parts";font-weight:400;font-size:.8em}
  details.pfold{display:block}details.pfold>*{display:block}
  .psamples,footer.site,#totop{display:none!important}}

/* ---- funnel: big primary call-to-action ---- */
.bigcta{margin:1.4rem 0 2rem}
.ctalead{font-family:var(--disp);font-weight:700;font-size:1.05rem;
  line-height:1.4;margin:0 0 .7rem}
.bigbtn{display:block;width:100%;box-sizing:border-box;text-align:center;
  background:var(--signal);color:#fff!important;text-decoration:none;
  font-family:var(--disp);font-weight:800;font-size:1.25rem;line-height:1.25;
  padding:1rem 1.2rem;border-radius:8px;border:2px solid var(--signal);
  box-shadow:0 2px 0 rgba(0,0,0,.12)}
.bigbtn.optbtn{font-size:1.05rem;font-weight:700;text-align:left;
  padding:.85rem 1.1rem;margin:0 0 .55rem}
.bigbtn.optbtn:first-of-type{margin-top:0}
.bigbtn:hover{background:#9c2c24;border-color:#9c2c24}
.bigsub{margin:.6rem 0 0;font-size:.92rem;color:var(--steel);line-height:1.5}
.demolink{display:inline-block;margin-top:.4rem;font-family:var(--disp);
  font-weight:700;color:var(--ink)}
.handoff{border:1.5px solid var(--ink);border-radius:6px;padding:.8rem 1.1rem;
  margin:1rem 0 1.2rem;background:#fff}
.handoff p{margin:0 0 .4rem}.handoff ul{margin:.2rem 0 0 1.1rem;padding:0}
.handoff li{margin:.25rem 0}
@media print{.handoff{break-inside:avoid;border-width:2px}}
@media (min-width:640px){.bigbtn{font-size:1.4rem;padding:1.1rem 1.5rem}
  .bigbtn.optbtn{font-size:1.15rem;padding:.95rem 1.3rem}}

/* ---- pilot page: sample analyses ---- */
.psamples{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  gap:.9rem;margin:1.2rem 0}
.psample{display:block;border:1px solid var(--hairline);border-radius:6px;
  background:#fff;padding:.9rem 1rem;text-decoration:none;color:var(--ink);
  border-top:4px solid var(--signal)}
.psample.stable{border-top-color:var(--quiet)}
.psample:hover{border-color:var(--signal)}
.psample img{width:100%;border:1px solid var(--hairline);border-radius:3px;
  margin:.5rem 0 .6rem;display:block}
.psample .pst{font-family:var(--disp);font-weight:700;font-size:.98rem;
  line-height:1.3}
.psample .psv{font-size:.9rem;color:var(--steel);margin:.3rem 0 0}
.psample .psl{font-family:var(--disp);font-size:.82rem;color:var(--signal);
  margin-top:.5rem;display:block}

/* ---- pilot seat counter (/pilot, unlisted) ---- */
.paperlist{margin:.5rem 0 0;padding-left:1.05rem}
.paperlist li{margin-bottom:.42rem;line-height:1.5;font-size:.93rem}
.paperlist li:last-child{margin-bottom:0}
.seat-head{margin:.2rem 0 .9rem;line-height:1.55}
.seat-head-closed{color:var(--rust,#b33333)}
.seattable{width:100%;border-collapse:collapse;margin:.3rem 0 .6rem;
  font-size:.9rem}
.seattable th{text-align:left;font-family:var(--disp);font-size:.72rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--steel);
  border-bottom:1px solid var(--hairline);padding:.3rem .6rem .35rem 0}
.seattable td{border-bottom:1px solid var(--hairline);padding:.55rem .6rem .55rem 0;
  vertical-align:top}
.seat-eg{font-size:.8rem;color:var(--steel)}
.seat-pips{white-space:nowrap;width:1%}
.pip{display:inline-block;width:.62rem;height:.62rem;border-radius:50%;
  border:1.5px solid var(--hairline);margin-right:.22rem;background:#fff}
.pip-filled{background:var(--ink);border-color:var(--ink)}
.seat-count{white-space:nowrap;font-variant-numeric:tabular-nums;width:1%}
.seat-status{white-space:nowrap;width:1%}
.seat-open{font-weight:700}
.seat-full{color:var(--steel)}
.seat-updated{font-size:.78rem;color:var(--steel);margin:.1rem 0 0}
@media (max-width:560px){
  .seat-pips{display:none}
  .seattable{font-size:.85rem}
}

/* ===== instrument panel (2026-09-07) ===== */

.rp-chart{width:100%;height:auto;background:#fff;border:1px solid var(--hairline);border-radius:4px;margin:.5rem 0 .2rem}
.rp-ax{font:500 11px/1 Arial,Helvetica,sans-serif;fill:#8A8A80}
.rp-lg{font:600 11.5px/1 Arial,Helvetica,sans-serif}
.rp-beat{font:700 11px/1 Arial,Helvetica,sans-serif}
.rp-beats{list-style:none;counter-reset:beat;margin:.1rem 0 1rem;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.35rem .9rem}
.rp-beats li{counter-increment:beat;position:relative;padding-left:1.7rem;font-size:.93rem;line-height:1.4}
.rp-beats li::before{content:counter(beat);position:absolute;left:0;top:.05rem;
  width:1.15rem;height:1.15rem;border:1.5px solid var(--signal);border-radius:50%;
  color:var(--signal);font:700 11px/1.15rem Arial,Helvetica,sans-serif;text-align:center}
.rp-beats li span{color:var(--steel);font-variant-numeric:tabular-nums}
.rp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:.7rem;margin:.2rem 0 .5rem}
.rp-tile{background:#fff;border:1px solid var(--hairline);border-top:3px solid var(--steel);
  border-radius:4px;padding:.65rem .8rem .7rem}
.rp-tile-bad{border-top-color:var(--signal)}
.rp-tile-good{border-top-color:#2E6B4F}
.rp-tile-fix{border-top-color:#1a1a1a}
.rp-tnum{font:700 1.85rem/1.05 Georgia,"Times New Roman",serif;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.rp-tile-bad .rp-tnum{color:var(--signal)}
.rp-tile-good .rp-tnum{color:#2E6B4F}
.rp-tlab{font-size:.9rem;line-height:1.3;color:var(--ink);margin-top:.2rem;font-weight:600}
.rp-tsub{font-size:.83rem;line-height:1.35;color:var(--steel);margin-top:.25rem}
.rp-tlink{display:inline-block;margin-top:.35rem;font-size:.83rem;white-space:nowrap}
@media print{.rp-tiles{grid-template-columns:repeat(4,1fr)}
  .rp-tile{break-inside:avoid}}
@media (max-width:900px){}
/* ---- gauge, chip readouts, figures, modal (2026-09-07) ---- */
.rp-gauge{width:100%;max-width:38rem;height:auto;display:block;margin:.1rem 0 .9rem}
.rp-glab{font:600 11.5px/1 Arial,Helvetica,sans-serif}

.rp-chip-over 
.rp-chip-under .rp-chipread,.rp-chip-safe 
.rp-chip.on 
.rp-figure{margin:.6rem 0 1.1rem}
.rp-figcap{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  font-size:.85rem;color:var(--steel);margin-top:.15rem;flex-wrap:wrap}
.rp-expand{background:#fff;border:1px solid var(--hairline);border-radius:3px;cursor:pointer;
  font:600 .82rem/1 Arial,Helvetica,sans-serif;color:var(--ink);padding:.4rem .6rem;white-space:nowrap}
.rp-expand:hover{background:var(--panel)}
.rp-tag{display:inline-block;font:600 .74rem/1 Arial,Helvetica,sans-serif;padding:.22rem .4rem;
  border-radius:3px;background:#EFEFE9;color:#3A3A34;margin-left:.25rem}
.rp-tag-bad{background:#B3333318;color:var(--signal)}
.rp-tag-good{background:#2E6B4F1E;color:#2E6B4F}
.rp-tag-shock{background:#7A7A7218;color:#5A5A52}
.rp-modal{position:fixed;inset:0;background:rgba(20,20,18,.62);z-index:9999;
  display:none;align-items:center;justify-content:center;padding:2vh 2vw}
.rp-modal.on{display:flex}
.rp-modalbox{background:#fff;border-radius:6px;padding:2.6rem 1.1rem 1.1rem;position:relative;
  width:min(96vw,1400px);max-height:96vh;overflow:auto;box-shadow:0 8px 40px rgba(0,0,0,.3)}
/* a real close control: a round button holding an SVG cross, so it cannot be
   thrown off by font metrics the way a text glyph was (2026-09-07) */
.rp-modalx{position:absolute;top:.55rem;right:.55rem;z-index:3;width:2rem;height:2rem;
  display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;
  border:1px solid var(--hairline);border-radius:50%;background:#fff;color:var(--steel);
  box-shadow:0 1px 4px rgba(0,0,0,.10)}
.rp-modalx svg{width:1rem;height:1rem;display:block}
.rp-modalx:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.rp-chartbig{width:100%;height:auto;border:none}
.rp-modalread{margin:.4rem 0 0;font-size:.95rem;color:var(--ink);min-height:1.5rem;
  border-top:1px solid var(--hairline);padding-top:.5rem}
.rp-scrub{pointer-events:none}
@media print{.rp-expand,.rp-modal{display:none!important}
  .rp-figcap{display:block;font-style:italic}}
/* ---- tuner dials ---- */

/* ---- veiled chart + in-chart control ---- */
.rp-veilwrap{position:relative;line-height:0}
.rp-veiled .rp-veilwrap{cursor:zoom-in}
.rp-veilwrap>svg{display:block}
.rp-veiled .rp-veilwrap>svg{filter:blur(2.2px) saturate(.85);transition:filter .2s ease}
.rp-veiled .rp-veilwrap::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.34);
  border-radius:4px;pointer-events:none}
.rp-expand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  background:#fff;border:1.5px solid var(--ink);border-radius:5px;cursor:pointer;
  padding:.65rem 1.1rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;
  box-shadow:0 3px 14px rgba(0,0,0,.18);font-family:Arial,Helvetica,sans-serif}
.rp-expand:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.rp-expicon{font-size:1.05rem;line-height:1}
.rp-exptxt{font-weight:700;font-size:.92rem}
.rp-expsub{font-size:.76rem;opacity:.72}
/* ---- shock verdict strip ---- */
.rp-verdict{border:1px solid var(--hairline);border-left:5px solid var(--steel);border-radius:4px;
  padding:.55rem .8rem;margin:.4rem 0 .2rem;background:#fff}
.rp-verdict-bad{border-left-color:var(--signal)}
.rp-verdict-warn{border-left-color:#e07b2c}
.rp-verdict-good{border-left-color:#2E6B4F}
.rp-vcall{font:700 1.02rem/1.25 Georgia,serif;color:var(--ink)}
.rp-verdict-bad .rp-vcall{color:var(--signal)}
.rp-verdict-good .rp-vcall{color:#2E6B4F}
.rp-vnums{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-top:.35rem}
.rp-vnums>span{font-size:.86rem;color:var(--steel);display:flex;flex-direction:column}
.rp-vnums b{font:700 1.25rem/1.1 Georgia,serif;color:var(--ink);font-variant-numeric:tabular-nums}
.rp-vsub{font-size:.78rem}
/* ---- strategy comparison ---- */
.rp-strats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.7rem;margin:.6rem 0 .3rem}
.rp-strat{border:1px solid var(--hairline);border-top:3px solid var(--ink);border-radius:4px;background:#fff;padding:.6rem .8rem .7rem}
.rp-sname{font:700 1.02rem/1.25 Georgia,serif;margin-bottom:.4rem}
.rp-srow{font-size:.88rem;line-height:1.45;margin-bottom:.45rem}
.rp-srow span{display:block;font:700 .72rem/1 Arial,Helvetica,sans-serif;text-transform:uppercase;
  letter-spacing:.04em;color:var(--steel);margin-bottom:.12rem}
.rp-scost span{color:var(--signal)}
@media print{.rp-veiled .rp-veilwrap>svg{filter:none!important}
  .rp-veiled .rp-veilwrap::after{display:none!important}
  .rp-expand{display:none!important}
  .rp-strat,.rp-verdict{break-inside:avoid}}
/* ---- rotary knobs ---- */
.rp-knobs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.4rem;margin:.7rem 0 .4rem}
.rp-knobcell{min-width:0}
.rp-knobtitle{font:700 .88rem/1.35 Arial,Helvetica,sans-serif;color:var(--ink);text-align:center;
  margin-bottom:.15rem;letter-spacing:-.005em}
.rp-knobhint{display:block;font:600 .72rem/1.3 Arial,Helvetica,sans-serif;color:var(--steel);
  text-transform:uppercase;letter-spacing:.09em}
.rp-kgrab{cursor:grab}
.rp-knob.turning .rp-kgrab{cursor:grabbing}
.rp-knob.turning .rp-kneedle{transition:none}
.rp-kset{font:700 15px/1 Georgia,serif;fill:#1a1a1a}
.rp-kline{font:500 11.5px/1 Arial,Helvetica,sans-serif}
.rp-kmom{font-weight:700;fill:#1a1a1a}
.rp-knob{width:100%;height:auto;display:block;touch-action:none;user-select:none}
.rp-ktick{font:700 12px/1 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums}
.rp-kbig{font:700 17px/1 Georgia,serif;font-variant-numeric:tabular-nums}
.rp-kread{font:700 13px/1 Arial,Helvetica,sans-serif}
.rp-kreads{font:500 10px/1 Arial,Helvetica,sans-serif}
@media (max-width:620px){.rp-knobs{grid-template-columns:1fr}}
.rp-kneedle{transition:transform .18s cubic-bezier(.2,.9,.28,1.15)}
@media print{.rp-kneedle{transition:none}}

/* ---- content that belongs TO a chart travels with it (2026-09-07) ----
   The layer switches, the caption and the numbered beats live inside the
   figure. On the veiled inline view they are hidden - the chart is the
   invitation and the detail waits inside. Opening MOVES the figure into the
   modal, so the switches keep working and nothing is duplicated. Print shows
   everything, because the figure is back in the page by then. */
.rp-veiled .rp-figextra{display:none}
.rp-figextra{margin-top:.5rem}
.rp-togslbl{display:block;font:700 .72rem/1 Arial,Helvetica,sans-serif;text-transform:uppercase;
  letter-spacing:.09em;color:var(--steel);margin-bottom:.35rem}
.rp-modal .rp-figure{margin:0}
/* the control that opened the modal has travelled in with the figure - it has
   nothing left to do in there, and its veil is gone (2026-09-07) */
.rp-modal .rp-expand,.rp-inmodal .rp-expand{display:none}
.rp-modal .rp-veilwrap::after,.rp-inmodal .rp-veilwrap::after{display:none}
.rp-modal .rp-veilwrap>svg,.rp-inmodal .rp-veilwrap>svg{filter:none}
.rp-modal .rp-figextra,.rp-inmodal .rp-figextra{display:block;max-width:60rem}
.rp-modal .rp-figcap{margin-bottom:.4rem}
.rp-modal .rp-chart{border:none}
.rp-modal .rp-beats{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
@media print{.rp-figextra{display:block!important}.rp-modal{display:none!important}}

/* playbook items as instrument cards: the number is the instruction (2026-09-07) */
.rp-plays{display:grid;gap:.6rem;margin:.5rem 0 .9rem}
.rp-play{display:flex;gap:.9rem;align-items:flex-start;background:#fff;border:1px solid var(--hairline);
  border-left:4px solid var(--ink);border-radius:4px;padding:.7rem .9rem}
.rp-pnum{flex:0 0 auto;min-width:4.1rem;text-align:center;font:700 2rem/1 Georgia,serif;
  color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rp-pnum span{display:block;font:600 .68rem/1.2 Arial,Helvetica,sans-serif;color:var(--steel);
  text-transform:uppercase;letter-spacing:.08em;margin-top:.15rem}
.rp-pbody{min-width:0;font-size:.94rem;line-height:1.5}
.rp-pbody b{display:block;font-size:1.02rem;line-height:1.3}
.rp-pbody .rp-did{display:block;font-size:.82rem;color:var(--steel);margin:.15rem 0 .35rem}
@media print{.rp-play{break-inside:avoid}}

/* the lead sentence: the meaning, before the numbers that support it */
.rp-lead{margin:.1rem 0 .7rem;font-size:1.06rem;line-height:1.5;color:var(--ink)}
.rp-tsub strong{color:var(--ink)}
