/* ============================================================
   PORTFOLIO V5 · PRESENTATION STANDARD · scoped token layer
   Warm paper, soft ink, one russet accent spent sparingly.
   Long-form body: Charter / Georgia serif, 1.1rem, 1.66 line.
   Display: Instrument Serif. UI and marks: Instrument Sans,
   Fragment Mono. Every rule is scoped under body.v5 so this
   layer can sit beside v4.css without touching other pages.
   ============================================================ */

/* ---------- fonts (self-hosted, latin subset, shared files) ---------- */
@font-face{
  font-family:"Instrument Serif";
  font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/instrument-serif-latin-400.woff2") format("woff2");
}
@font-face{
  font-family:"Instrument Serif";
  font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/instrument-serif-latin-400italic.woff2") format("woff2");
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;font-weight:400 700;font-display:swap;
  src:url("fonts/instrument-sans-latin-var.woff2") format("woff2");
}
@font-face{
  font-family:"Instrument Sans";
  font-style:italic;font-weight:400 700;font-display:swap;
  src:url("fonts/instrument-sans-latin-var-italic.woff2") format("woff2");
}
@font-face{
  font-family:"Fragment Mono";
  font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/fragment-mono-latin-400.woff2") format("woff2");
}

/* ---------- tokens ---------- */
body.v5{
  --paper:#f8f4ec;            /* warm paper */
  --card:#fffdf7;             /* raised surfaces: mock chat, figures */
  --ink:#322e26;              /* soft warm ink, never #000 */
  --sub:#6d6455;              /* secondary ink */
  --hair:#e6ddca;             /* hairlines */
  --hair-strong:#d2c6ab;
  --accent:#8a3c1c;           /* russet: one accent, spent sparingly */
  --wash:#f1ead9;             /* quiet fill: user bubble, summary hover */
  --body:"Charter","Iowan Old Style","Georgia",serif;
  --display:"Instrument Serif","Georgia",serif;
  --sans:"Instrument Sans",system-ui,-apple-system,sans-serif;
  --mono:"Fragment Mono",ui-monospace,SFMono-Regular,monospace;
  --wrap:1020px;
  --measure:64ch;
  --pad:clamp(22px,5.5vw,64px);
}

body.v5{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.1rem;
  line-height:1.66;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.v5 *,body.v5 *::before,body.v5 *::after{box-sizing:border-box;}

body.v5 ::selection{background:var(--accent);color:#fff;}
body.v5 a{color:inherit;text-decoration-color:var(--hair-strong);text-underline-offset:4px;}
body.v5 a:hover{color:var(--accent);text-decoration-color:var(--accent);}
body.v5 :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;}

body.v5 .visually-hidden{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
}
body.v5 .skip-link{
  position:absolute;left:var(--pad);top:-64px;z-index:100;
  background:var(--accent);color:#fff;padding:10px 18px;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;
}
body.v5 .skip-link:focus{top:12px;}

body.v5 .mono{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:400;
}

body.v5 .wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);}

/* ---------- masthead ---------- */
body.v5 .masthead{border-bottom:1px solid var(--hair);background:var(--paper);}
body.v5 .masthead-inner{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:18px;padding-block:18px;
}
body.v5 .brand{
  font-family:var(--display);font-size:1.18rem;text-decoration:none;
}
body.v5 .mast-nav{display:flex;gap:22px;}
body.v5 .mast-nav a{text-decoration:none;color:var(--sub);}
body.v5 .mast-nav a:hover{color:var(--accent);}

/* ---------- title block ---------- */
body.v5 .titleblock{
  display:flex;
  flex-direction:column;
  padding-block:clamp(56px,10vh,110px) clamp(40px,7vh,80px);
}
body.v5 .titleblock > .kicker{order:1;}
body.v5 .titleblock > h1{order:2;}
body.v5 .titleblock > .case-skim{order:3;}
body.v5 .titleblock > .lede{order:3;}
body.v5 .titleblock > .factrow{order:5;}
body.v5 .titleblock > .proof-hero,
body.v5 .titleblock > .lab-hero,
body.v5 .titleblock > .evidence-split,
body.v5 .titleblock > .agent-evidence{order:4;}
body.v5 .kicker{
  display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--sub);margin:0 0 22px;
}
body.v5 .kicker .knum{color:var(--accent);}
body.v5 h1{
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.3rem,5.4vw,3.6rem);
  line-height:1.08;letter-spacing:-.01em;
  max-width:22ch;margin:0;
}
body.v5 .lede{
  max-width:var(--measure);margin:26px 0 0;
  font-size:1.2rem;line-height:1.6;color:var(--sub);
}

/* factrow: quiet facts under the title */
body.v5 .factrow{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1px;background:var(--hair);border:1px solid var(--hair);
  margin-top:clamp(32px,5vh,52px);
}
body.v5 .factrow > div{background:var(--card);padding:16px 18px;}
body.v5 .factrow dt{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sub);margin:0 0 6px;
}
body.v5 .factrow dd{margin:0;font-family:var(--sans);font-size:.95rem;line-height:1.5;}

/* fast-read layer for hiring reviewers */
body.v5 .case-skim{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--hair);
  border:1px solid var(--hair);
  margin-top:18px;
}
body.v5 .case-skim > div{
  background:var(--card);
  padding:15px 16px 16px;
  min-height:138px;
}
body.v5 .case-skim .skim-label{
  display:block;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:10px;
}
body.v5 .case-skim p{
  margin:0;
  font-family:var(--sans);
  font-size:.92rem;
  line-height:1.45;
  color:var(--sub);
}
body.v5 .case-skim b{color:var(--ink);font-weight:650;}
body.v5 .case-skim a{
  color:var(--ink);
  text-decoration-color:var(--hair-strong);
}

/* ---------- reconstructed visual artifacts ---------- */
body.v5 .case-arc,
body.v5 .journey-map,
body.v5 .insight-grid,
body.v5 .decision-board,
body.v5 .roadmap,
body.v5 .architecture-map,
body.v5 .mode-grid,
body.v5 .coverage-ladder{
  max-width:900px;
  margin:clamp(30px,5vh,48px) 0 0;
}

body.v5 .case-arc,
body.v5 .insight-grid,
body.v5 .decision-board,
body.v5 .mode-grid{
  display:grid;
  gap:1px;
  background:var(--hair);
  border:1px solid var(--hair);
}

body.v5 .case-arc{grid-template-columns:repeat(3,minmax(0,1fr));}
body.v5 .insight-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
body.v5 .decision-board{grid-template-columns:repeat(3,minmax(0,1fr));}
body.v5 .mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));}

body.v5 .case-arc > div,
body.v5 .insight-grid > div,
body.v5 .decision-board > div,
body.v5 .mode-grid > div{
  background:var(--card);
  padding:16px 18px 18px;
}

body.v5 .visual-label{
  display:block;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:10px;
}

body.v5 .case-arc b,
body.v5 .insight-grid b,
body.v5 .decision-board b,
body.v5 .mode-grid b{
  display:block;
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.25;
  margin-bottom:8px;
}

body.v5 .case-arc p,
body.v5 .insight-grid p,
body.v5 .decision-board p,
body.v5 .mode-grid p{
  margin:0;
  font-family:var(--sans);
  font-size:.92rem;
  line-height:1.45;
  color:var(--sub);
}

body.v5 .journey-map,
body.v5 .roadmap,
body.v5 .architecture-map,
body.v5 .coverage-ladder{
  border:1px solid var(--hair);
  background:var(--card);
}

body.v5 .visual-hd{
  display:flex;
  justify-content:space-between;
  gap:10px 18px;
  flex-wrap:wrap;
  padding:10px 16px;
  border-bottom:1px solid var(--hair);
  color:var(--sub);
}

body.v5 .visual-hd .visual-title{color:var(--ink);}

body.v5 .journey-steps,
body.v5 .roadmap-steps,
body.v5 .arch-steps,
body.v5 .coverage-steps{
  list-style:none;
  margin:0;
  padding:0;
}

body.v5 .journey-steps,
body.v5 .roadmap-steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--hair);
}

body.v5 .journey-steps li,
body.v5 .roadmap-steps li,
body.v5 .arch-steps li,
body.v5 .coverage-steps li{
  background:var(--card);
  padding:16px;
}

body.v5 .journey-steps .step-no,
body.v5 .roadmap-steps .step-no,
body.v5 .arch-steps .step-no,
body.v5 .coverage-steps .step-no{
  display:block;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:18px;
}

body.v5 .journey-steps b,
body.v5 .roadmap-steps b,
body.v5 .arch-steps b,
body.v5 .coverage-steps b{
  display:block;
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.25;
  margin-bottom:8px;
}

body.v5 .journey-steps p,
body.v5 .roadmap-steps p,
body.v5 .arch-steps p,
body.v5 .coverage-steps p{
  margin:0;
  font-family:var(--sans);
  font-size:.9rem;
  line-height:1.45;
  color:var(--sub);
}

body.v5 .visual-foot{
  margin:0;
  padding:10px 16px 12px;
  border-top:1px solid var(--hair);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--sub);
  line-height:1.8;
}

body.v5 .arch-steps,
body.v5 .coverage-steps{
  display:grid;
  gap:1px;
  background:var(--hair);
}

body.v5 .arch-steps{grid-template-columns:1fr 1fr 1fr 1fr;}
body.v5 .coverage-steps{grid-template-columns:1fr 1fr 1fr;}

body.v5 .arch-arrow{
  display:block;
  margin-top:12px;
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}

body.v5 .coverage-bar{
  display:block;
  height:8px;
  margin-top:16px;
  background:var(--hair);
  position:relative;
}

body.v5 .coverage-bar span{
  position:absolute;
  inset:0 auto 0 0;
  width:var(--w);
  background:var(--accent);
}

/* ---------- mixed evidence artifacts ---------- */
body.v5 .proof-hero,
body.v5 .evidence-split,
body.v5 .mock-pair,
body.v5 .lab-hero,
body.v5 .agent-evidence{
  max-width:980px;
  margin:clamp(34px,6vh,60px) 0 0;
}

body.v5 .proof-hero,
body.v5 .lab-hero,
body.v5 .agent-evidence{
  display:grid;
  grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);
  gap:clamp(22px,4vw,42px);
  align-items:start;
}

body.v5 .proof-copy h2,
body.v5 .artifact-copy h2{
  font-family:var(--display);
  font-size:clamp(1.8rem,3.5vw,2.6rem);
  line-height:1.08;
  font-weight:400;
  margin:10px 0 14px;
  max-width:13ch;
}

body.v5 .proof-copy p,
body.v5 .artifact-copy p{
  margin:0;
  color:var(--sub);
  max-width:34ch;
}

body.v5 .snapshot-list,
body.v5 .artifact-list{
  list-style:none;
  margin:22px 0 0;
  padding:0;
  border-top:1px solid var(--hair);
}

body.v5 .snapshot-list li,
body.v5 .artifact-list li{
  padding:12px 0;
  border-bottom:1px solid var(--hair);
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  gap:16px;
}

body.v5 .snapshot-list b,
body.v5 .artifact-list b{
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:400;
  padding-top:4px;
}

body.v5 .snapshot-list span,
body.v5 .artifact-list span{
  font-family:var(--sans);
  font-size:.94rem;
  line-height:1.45;
}

body.v5 .journey-map{
  order:4;
  margin:clamp(30px,5vh,52px) 0 0;
  max-width:980px;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border:1px solid var(--hair);
  background:var(--card);
}

body.v5 .journey-map > div{
  min-height:150px;
  padding:16px 16px 18px;
  border-left:1px solid var(--hair);
  display:flex;
  flex-direction:column;
}

body.v5 .journey-map > div:first-child{border-left:0;}
body.v5 .journey-map .jnum{
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.14em;
  color:var(--accent);
}

body.v5 .journey-map b{
  display:block;
  margin-top:auto;
  font-size:.98rem;
}

body.v5 .journey-map p{
  margin:7px 0 0;
  color:var(--sub);
  font-size:.78rem;
  line-height:1.4;
}

body.v5 .before-after{
  order:4;
  max-width:1120px;
  margin:clamp(28px,5vh,52px) 0 0;
  display:grid;
  grid-template-columns:minmax(280px,.88fr) minmax(340px,1.12fr);
  gap:clamp(18px,3vw,30px);
  align-items:start;
}

body.v5 .product-screen{
  margin:0;
  border:1px solid #d7e2e8;
  background:#fbfdfe;
  box-shadow:0 18px 42px rgba(38,55,64,.11);
  padding:16px;
  font-family:var(--sans);
}

body.v5 .product-screen figcaption{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding-bottom:12px;
  margin-bottom:14px;
  border-bottom:1px solid #d7e2e8;
  color:#52616a;
}

body.v5 .product-screen figcaption span{
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
}

body.v5 .product-screen figcaption b{
  font-size:.86rem;
  font-weight:600;
}

body.v5 .ii-top{
  height:10px;
  display:flex;
  gap:6px;
  margin-bottom:18px;
}

body.v5 .ii-top span{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#dbe7ed;
}

body.v5 .ii-msg{
  max-width:82%;
  margin-left:auto;
  background:#e5eef2;
  border:1px solid #d2dde3;
  border-radius:18px 18px 4px 18px;
  padding:10px 13px;
  color:#344047;
  font-size:.86rem;
  line-height:1.35;
}

body.v5 .ii-answer{
  margin-top:22px;
  color:#4c5961;
  font-size:.84rem;
  line-height:1.48;
}

body.v5 .ii-answer p{margin:0 0 11px;}
body.v5 .ii-answer ol{
  margin:0 0 14px 1.2em;
  padding:0;
}
body.v5 .ii-answer li{margin:4px 0;}
body.v5 .ii-answer a{
  display:inline-flex;
  padding:10px 14px;
  border:1px solid #d7e2e8;
  border-radius:8px;
  color:#315f86;
  text-decoration:none;
  background:#fff;
}

body.v5 .ii-buttons{
  margin:24px 0 0 auto;
  max-width:300px;
  display:grid;
  gap:8px;
}

body.v5 .ii-buttons span{
  border:2px solid #1280d8;
  color:#1280d8;
  border-radius:999px;
  padding:9px 13px;
  text-align:center;
  font-size:.75rem;
  font-weight:600;
}

body.v5 .failure-stack{
  margin:20px 0 0;
  border-top:1px solid #d7e2e8;
}

body.v5 .failure-stack span{
  display:block;
  padding:10px 0;
  border-bottom:1px solid #d7e2e8;
  color:#66747c;
  font-size:.78rem;
  line-height:1.45;
}

body.v5 .failure-stack b{
  color:#2f3a40;
  margin-right:6px;
}

body.v5 .artifact-note{
  margin:14px 0 0;
  font-family:var(--mono);
  font-size:.56rem;
  letter-spacing:.08em;
  line-height:1.75;
  text-transform:uppercase;
  color:#6f7f87;
}

body.v5 .evidence-screen{
  max-width:760px;
  margin:clamp(30px,5vh,46px) 0 0;
}

body.v5 .designer-board{
  position:relative;
  max-width:1040px;
  margin:clamp(34px,6vh,62px) 0 0;
  padding:clamp(20px,3vw,34px);
  background:
    linear-gradient(90deg, rgba(160,126,65,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(160,126,65,.06) 1px, transparent 1px),
    #fbfaf5;
  background-size:36px 36px;
  box-shadow:0 24px 64px rgba(50,38,20,.10);
  border:1px solid rgba(194,176,136,.55);
  overflow:visible;
}

body.v5 .designer-board::before{
  content:"";
  position:absolute;
  top:-12px;
  left:50%;
  width:96px;
  height:26px;
  transform:translateX(-50%) rotate(-2deg);
  background:rgba(230,213,168,.72);
  box-shadow:0 4px 16px rgba(50,38,20,.08);
}

body.v5 .designer-board img{
  display:block;
  width:100%;
  height:auto;
  background:#fff;
  border:1px solid rgba(55,70,78,.14);
}

body.v5 .designer-board.compact-shot{
  max-width:800px;
}

body.v5 .designer-board.compact-shot img{
  max-height:820px;
  object-fit:contain;
}

body.v5 .sticky-note{
  position:absolute;
  z-index:2;
  width:min(230px,28vw);
  padding:14px 16px 15px;
  background:#fff6bd;
  border:1px solid rgba(150,108,36,.24);
  box-shadow:0 14px 28px rgba(52,38,16,.14);
  color:#343029;
  font-family:var(--serif);
  font-size:clamp(.96rem,1.14vw,1.1rem);
  line-height:1.25;
  transform:rotate(-2deg);
}

body.v5 .sticky-note::before{
  content:"";
  position:absolute;
  top:-10px;
  left:22px;
  width:58px;
  height:18px;
  background:rgba(236,218,178,.72);
  transform:rotate(4deg);
}

body.v5 .sticky-note b{
  display:block;
  margin-bottom:6px;
  color:var(--accent);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.15em;
  text-transform:uppercase;
}

body.v5 .sticky-note.one{top:10%;left:-22px;}
body.v5 .sticky-note.two{top:34%;right:-28px;transform:rotate(2deg);}
body.v5 .sticky-note.three{left:6%;bottom:88px;transform:rotate(1deg);}

body.v5 .sketch-arrow{
  position:absolute;
  z-index:1;
  pointer-events:none;
  color:var(--accent);
  opacity:.9;
}

body.v5 .sketch-arrow path,
body.v5 .sketch-arrow line,
body.v5 .sketch-arrow polyline{
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

body.v5 .sketch-arrow.one{top:17%;left:13%;width:170px;height:80px;transform:rotate(-7deg);}
body.v5 .sketch-arrow.two{right:12%;top:48%;width:160px;height:88px;transform:rotate(10deg);}

body.v5 .flow-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}

body.v5 .flow-strip span{
  position:relative;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border:1px solid rgba(164,135,82,.38);
  background:rgba(255,255,255,.68);
  color:#3d382f;
  font-family:var(--mono);
  font-size:.62rem;
  line-height:1.35;
  letter-spacing:.1em;
  text-align:center;
  text-transform:uppercase;
}

body.v5 .flow-strip span + span::before{
  content:"";
  position:absolute;
  left:-12px;
  top:50%;
  width:14px;
  border-top:1px solid var(--accent);
}

body.v5 .phone-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

body.v5 .phone-shot{
  min-height:320px;
  border:1px solid var(--hair-strong);
  border-radius:26px;
  background:#fbfaf5;
  padding:16px 12px 12px;
  box-shadow:0 14px 36px rgba(58,46,28,.12);
  font-family:var(--sans);
}

body.v5 .phone-shot.alt-a{background:#eef6f3;}
body.v5 .phone-shot.alt-b{background:#f8f1db;}
body.v5 .phone-shot.alt-c{background:#f4eef6;}

body.v5 .phone-top{
  width:54px;
  height:6px;
  border-radius:99px;
  background:rgba(50,46,38,.18);
  margin:0 auto 18px;
}

body.v5 .phone-kicker{
  display:block;
  font-family:var(--mono);
  font-size:.55rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sub);
  margin-bottom:10px;
}

body.v5 .phone-card{
  border:1px solid rgba(50,46,38,.12);
  border-radius:14px;
  background:rgba(255,255,255,.68);
  padding:12px;
  min-height:120px;
}

body.v5 .phone-card + .phone-card{margin-top:10px;}
body.v5 .phone-card b{display:block;font-size:.92rem;line-height:1.25;margin-bottom:6px;}
body.v5 .phone-card p{font-size:.78rem;line-height:1.4;margin:0;color:var(--sub);}

body.v5 .mini-bars{
  display:grid;
  gap:7px;
  margin-top:12px;
}

body.v5 .mini-bars span{
  display:block;
  height:8px;
  border-radius:99px;
  background:var(--hair-strong);
}

body.v5 .mini-bars span:nth-child(1){width:88%;}
body.v5 .mini-bars span:nth-child(2){width:64%;}
body.v5 .mini-bars span:nth-child(3){width:76%;}

body.v5 .evidence-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);
  gap:clamp(22px,4vw,38px);
  align-items:start;
}

body.v5 .transcript-board{
  background:#fdfbf2;
  border:1px solid var(--hair);
  padding:18px;
  box-shadow:0 18px 42px rgba(58,46,28,.08);
}

body.v5 .transcript-board .board-title,
body.v5 .deck-artifact .board-title,
body.v5 .eval-sheet .board-title,
body.v5 .run-console .board-title,
body.v5 .spec-sheet .board-title,
body.v5 .roadmap-board .board-title{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sub);
  margin-bottom:14px;
}

body.v5 .sticky-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

body.v5 .sticky{
  min-height:128px;
  padding:14px;
  background:#fff7b8;
  box-shadow:0 10px 20px rgba(58,46,28,.12);
  font-family:var(--sans);
  transform:rotate(-1deg);
}

body.v5 .sticky:nth-child(2){background:#ffdce8;transform:rotate(1.5deg);}
body.v5 .sticky:nth-child(3){background:#cdeff2;transform:rotate(.8deg);}
body.v5 .sticky:nth-child(4){background:#e7dfcf;transform:rotate(-1.2deg);}
body.v5 .sticky b{display:block;font-size:.92rem;margin-bottom:6px;}
body.v5 .sticky span{display:block;color:var(--sub);font-size:.82rem;line-height:1.35;}

body.v5 .impact-panel{
  border:1px solid var(--hair);
  background:var(--card);
}

body.v5 .impact-panel > div{
  padding:18px;
  border-top:1px solid var(--hair);
}

body.v5 .impact-panel > div:first-child{border-top:0;}
body.v5 .impact-panel .big{
  display:block;
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.2rem);
  line-height:1;
}
body.v5 .impact-panel .label{
  display:block;
  font-family:var(--sans);
  color:var(--sub);
  font-size:.92rem;
  line-height:1.4;
  margin-top:8px;
}

body.v5 .deck-artifact{
  border:1px solid var(--hair-strong);
  background:#fdfbf5;
  padding:16px;
  box-shadow:0 16px 38px rgba(58,46,28,.09);
}

body.v5 .deck-slide{
  background:#27241f;
  color:#fffdf7;
  min-height:260px;
  padding:24px;
  display:grid;
  align-content:space-between;
}

body.v5 .deck-slide h3{
  font-family:var(--display);
  font-size:2.15rem;
  line-height:1.05;
  margin:0;
  font-weight:400;
  max-width:12ch;
}

body.v5 .deck-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}

body.v5 .deck-strip span{
  min-height:64px;
  border:1px solid rgba(255,255,255,.26);
  padding:8px;
  font-family:var(--mono);
  font-size:.52rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,253,247,.72);
}

body.v5 .flow-lane{
  margin-top:18px;
  border:1px solid var(--hair);
  background:linear-gradient(90deg,#fffdf7,#f0f6f4);
  padding:18px;
  font-family:var(--sans);
}

body.v5 .flow-lane ol{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

body.v5 .flow-lane li{
  position:relative;
  padding:12px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(50,46,38,.12);
  min-height:112px;
}

body.v5 .flow-lane li:not(:last-child)::after{
  content:"";
  position:absolute;
  right:-9px;
  top:50%;
  width:8px;
  height:8px;
  border-right:1px solid var(--accent);
  border-top:1px solid var(--accent);
  transform:translateY(-50%) rotate(45deg);
}

body.v5 .flow-lane b{display:block;font-size:.86rem;line-height:1.25;margin-bottom:6px;}
body.v5 .flow-lane span{display:block;color:var(--sub);font-size:.76rem;line-height:1.35;}

body.v5 .roadmap-board{
  margin:clamp(34px,6vh,56px) 0 0;
  max-width:900px;
  background:#f2f6f3;
  border:1px solid #c9d6cc;
  padding:18px;
}

body.v5 .roadmap-board .board-title{margin-bottom:14px;}
body.v5 .roadmap-swimlane{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

body.v5 .roadmap-swimlane div{
  background:#fffdf7;
  border-left:4px solid var(--accent);
  padding:14px;
  min-height:150px;
}

body.v5 .roadmap-swimlane b{display:block;font-family:var(--sans);font-size:1rem;margin-bottom:8px;}
body.v5 .roadmap-swimlane span{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sub);margin-bottom:16px;}
body.v5 .roadmap-swimlane p{margin:0;font-family:var(--sans);font-size:.84rem;line-height:1.4;color:var(--sub);}

body.v5 .mock-pair{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,410px));
  gap:clamp(22px,4vw,40px);
  align-items:start;
}

body.v5 .mock-pair .mockwrap{margin:0;}

body.v5 .lab-panels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

body.v5 .lab-card{
  background:var(--card);
  border:1px solid var(--hair);
  padding:16px;
  font-family:var(--sans);
  min-height:150px;
}

body.v5 .lab-card.dark{
  background:#24221f;
  color:#fffdf7;
  border-color:#24221f;
  font-family:var(--mono);
}

body.v5 .lab-card.blue{background:#eef6f8;}
body.v5 .lab-card.green{background:#edf5ec;}
body.v5 .lab-card.gold{background:#faf1d0;}
body.v5 .lab-card b{display:block;font-size:1rem;line-height:1.25;margin-bottom:8px;}
body.v5 .lab-card p{margin:0;color:var(--sub);font-size:.86rem;line-height:1.45;}
body.v5 .lab-card.dark p{color:rgba(255,253,247,.72);}
body.v5 .lab-card code{font-family:var(--mono);font-size:.72rem;line-height:1.6;color:inherit;}

body.v5 .agent-screen{
  border:1px solid #d9e1e5;
  background:#f8fbfc;
  box-shadow:0 18px 42px rgba(38,55,64,.12);
  font-family:var(--sans);
  overflow:hidden;
}

body.v5 .agent-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  background:#eef5f7;
  border-bottom:1px solid #d9e1e5;
  color:#63717a;
}

body.v5 .agent-layout{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  min-height:390px;
}

body.v5 .agent-rail{
  border-right:1px solid #d9e1e5;
  background:#f1f6f8;
  padding:16px 10px;
}

body.v5 .rail-title{
  display:block;
  font-family:var(--mono);
  font-size:.56rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#81909a;
  margin-bottom:10px;
}

body.v5 .rail-item{
  display:block;
  padding:8px 9px;
  border-radius:7px;
  color:#6b7780;
  font-size:.72rem;
  line-height:1.25;
}

body.v5 .rail-item + .rail-item{margin-top:4px;}
body.v5 .rail-item.active{background:#dfe9ed;color:#2f3a40;}

body.v5 .agent-main{
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

body.v5 .agent-question{
  align-self:flex-end;
  max-width:78%;
  background:#e5eef2;
  border:1px solid #d2dde3;
  border-radius:18px 18px 4px 18px;
  padding:10px 12px;
  color:#344047;
  font-size:.86rem;
  line-height:1.35;
}

body.v5 .agent-chip{
  align-self:flex-end;
  border:1px solid #d7e0e5;
  background:#fff;
  color:#81909a;
  padding:6px 8px;
}

body.v5 .agent-work{
  color:#73838d;
  font-size:.78rem;
  border-left:2px solid #c9d8df;
  padding-left:10px;
}

body.v5 .agent-work span{
  display:block;
  margin-bottom:3px;
}

body.v5 .agent-work b{
  display:block;
  color:#46535a;
  font-weight:500;
  line-height:1.35;
}

body.v5 .agent-answer{
  background:#fff;
  border:1px solid #d9e1e5;
  padding:14px;
}

body.v5 .agent-answer h3{
  margin:0 0 8px;
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.2;
}

body.v5 .agent-answer p{
  margin:0;
  color:#5f6d75;
  font-size:.82rem;
  line-height:1.45;
}

body.v5 .agent-table{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin-top:12px;
  border:1px solid #d9e1e5;
}

body.v5 .agent-table span,
body.v5 .agent-table b{
  padding:8px 9px;
  border-bottom:1px solid #d9e1e5;
  font-size:.7rem;
}

body.v5 .agent-table span{
  color:#77868f;
  font-family:var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:400;
}

body.v5 .agent-table b{
  border-left:1px solid #d9e1e5;
  color:#344047;
}

body.v5 .agent-table span:nth-last-child(-n+2),
body.v5 .agent-table b:nth-last-child(-n+1){border-bottom:0;}

body.v5 .agent-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}

body.v5 .agent-actions span{
  border:1px solid #0077c5;
  color:#0065a8;
  background:#fff;
  border-radius:999px;
  padding:8px 11px;
  font-size:.72rem;
  line-height:1;
}

body.v5 .spec-sheet{
  border:1px solid var(--hair);
  background:#fffdf7;
  padding:18px;
  font-family:var(--sans);
}

body.v5 .evidence-board{
  max-width:900px;
  margin:clamp(28px,5vh,44px) 0 0;
}

body.v5 .spec-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--hair);
}

body.v5 .spec-grid div{
  background:var(--card);
  padding:14px;
  min-height:118px;
}

body.v5 .spec-grid b{display:block;margin-bottom:8px;}
body.v5 .spec-grid span{display:block;color:var(--sub);font-size:.84rem;line-height:1.4;}

body.v5 .eval-sheet{
  margin:clamp(34px,6vh,56px) 0 0;
  max-width:900px;
  background:#fff;
  border:1px solid #d9dfd8;
  overflow:auto;
  font-family:var(--sans);
}

body.v5 .eval-table{
  min-width:720px;
  border-collapse:collapse;
  width:100%;
}

body.v5 .eval-table th,
body.v5 .eval-table td{
  border:1px solid #d9dfd8;
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
  font-size:.82rem;
  line-height:1.35;
}

body.v5 .eval-table th{
  background:#eaf3e9;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#435148;
  font-weight:400;
}

body.v5 .eval-table .pass{color:#34794e;font-weight:650;}
body.v5 .eval-table .fail{color:var(--accent);font-weight:650;}

body.v5 .run-console{
  background:#24221f;
  color:#fffdf7;
  border:1px solid #24221f;
  padding:16px;
  font-family:var(--mono);
  box-shadow:0 16px 38px rgba(58,46,28,.12);
}

body.v5 .run-console pre{
  margin:0;
  white-space:pre-wrap;
  font-size:.72rem;
  line-height:1.7;
  color:rgba(255,253,247,.78);
}

body.v5 .run-console .ok{color:#9ad69d;}
body.v5 .run-console .warn{color:#f4cb76;}

body.v5 .debug-grid{
  max-width:1120px;
  margin:clamp(28px,5vh,52px) 0 0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,3vw,28px);
}

body.v5 .debug-card{
  border:1px solid var(--hair);
  background:#fffdf7;
  padding:clamp(20px,3vw,30px);
}

body.v5 .debug-card h3{
  margin:10px 0 12px;
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(1.6rem,2.8vw,2.2rem);
  line-height:1.05;
}

body.v5 .debug-card p{
  margin:14px 0 0;
  color:var(--muted);
  line-height:1.5;
}

body.v5 .bad-output{
  margin-top:18px;
  border:1px solid var(--hair);
  background:#f8f1e6;
  padding:14px 16px;
  color:#4b4338;
  font-size:.72rem;
  line-height:1.7;
}

body.v5 .prompt-quote{
  border-left:3px solid var(--accent);
  padding-left:16px;
  color:var(--ink);
}

body.v5 .prototype-lab{
  max-width:1120px;
  margin:clamp(34px,6vh,58px) 0 0;
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);
  gap:clamp(22px,4vw,42px);
  align-items:start;
}

body.v5 .streamlit-artifact{
  margin:0;
  border:1px solid #4d4d5e;
  background:#2f2f3a;
  color:#f8f8fb;
  box-shadow:0 18px 44px rgba(24,24,32,.2);
}

body.v5 .streamlit-artifact figcaption{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:10px 14px;
  border-bottom:1px solid #4d4d5e;
  color:#c7c5d2;
  font-size:.58rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}

body.v5 .streamlit-shell{
  display:grid;
  grid-template-columns:158px minmax(0,1fr);
  min-height:420px;
}

body.v5 .streamlit-side{
  border-right:1px solid #4d4d5e;
  background:#454454;
  padding:14px 10px;
  display:flex;
  flex-direction:column;
  gap:9px;
  font-family:var(--sans);
  color:#e8e7ee;
}

body.v5 .streamlit-side b{
  font-size:.72rem;
  margin-bottom:4px;
  color:#fff;
}

body.v5 .streamlit-side small{
  margin-top:8px;
  color:#c0beca;
  font-size:.62rem;
  font-weight:700;
}

body.v5 .streamlit-side span{
  display:block;
  padding:7px 8px;
  border-radius:6px;
  font-size:.68rem;
  line-height:1.25;
}

body.v5 .streamlit-side .side-active{background:#6b6a79;}
body.v5 .streamlit-side .side-pill{background:#ff555f;color:#fff;font-weight:700;}

body.v5 .streamlit-main{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

body.v5 .context-bar{
  border:1px solid #b8b7c6;
  border-radius:6px;
  padding:8px 10px;
  color:#b8b7c6;
  font-size:.58rem;
}

body.v5 .chat-card{
  position:relative;
  padding:14px 14px 14px 42px;
  border-radius:10px;
  font-family:var(--sans);
}

body.v5 .chat-card.user{
  background:#292934;
  min-height:56px;
}

body.v5 .chat-card.agent{
  background:transparent;
  padding-top:8px;
}

body.v5 .chat-card .avatar{
  position:absolute;
  left:12px;
  top:14px;
  width:22px;
  height:22px;
  border-radius:6px;
  display:grid;
  place-items:center;
  background:#ff6870;
  color:#211f25;
  font-family:var(--mono);
  font-size:.54rem;
  text-transform:uppercase;
  font-weight:700;
}

body.v5 .chat-card .avatar.bot{background:#ffbd42;}
body.v5 .chat-card b{font-size:.78rem;}
body.v5 .chat-card em{
  display:block;
  margin-top:12px;
  color:#b8b7c6;
  font-style:normal;
  font-size:.66rem;
}

body.v5 .chat-card p{
  margin:0 0 12px;
  font-size:.78rem;
  line-height:1.55;
  color:#f4f3f7;
}

body.v5 .chat-card h3{
  margin:16px 0 8px;
  font-family:var(--sans);
  font-size:1.35rem;
  line-height:1.15;
}

body.v5 .chat-card ul{
  margin:0 0 12px;
  padding-left:18px;
}

body.v5 .chat-card li{
  margin:6px 0;
  color:#e4e2eb;
  font-size:.74rem;
  line-height:1.45;
}

body.v5 .trace-toggle{
  border:1px solid #5b5a68;
  border-radius:8px;
  color:#d7d5df;
  font-family:var(--sans);
  font-size:.74rem;
}

body.v5 .trace-toggle summary{
  padding:10px 12px;
  cursor:default;
}

body.v5 .trace-toggle div{
  border-top:1px solid #5b5a68;
  padding:10px 12px;
  color:#9ad69d;
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.03em;
}

body.v5 .streamlit-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px;
}

body.v5 .streamlit-actions span{
  background:#3b3a47;
  border-radius:7px;
  padding:10px;
  text-align:center;
  font-size:.74rem;
  font-weight:700;
}

body.v5 .streamlit-actions span:first-child{color:#72d66b;}

body.v5 .run-meta{
  margin-top:auto;
  color:#b8b7c6;
  font-size:.58rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* ---------- walkthrough sections ---------- */
body.v5 .part{
  border-top:1px solid var(--hair);
  padding-block:clamp(52px,9vh,100px);
}
body.v5 .part-head{margin:0 0 10px;}
body.v5 .part h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.7rem,3.4vw,2.35rem);
  line-height:1.15;letter-spacing:-.005em;
  max-width:26ch;margin:14px 0 0;
}
body.v5 .prose{max-width:var(--measure);}
body.v5 .prose p{margin:20px 0 0;}
body.v5 .prose p.opens{margin-top:26px;}

body.v5 .failure-board{
  max-width:900px;
  margin:clamp(26px,5vh,42px) 0 0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

body.v5 .failure-board > div{
  border:1px solid #d7e2e8;
  background:#fbfdfe;
  padding:16px;
  box-shadow:0 10px 28px rgba(38,55,64,.08);
}

body.v5 .failure-board span{
  display:block;
  font-size:.56rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#6f7f87;
  margin-bottom:18px;
}

body.v5 .failure-board b{
  display:block;
  font-size:1rem;
  line-height:1.25;
  max-width:18ch;
}

body.v5 .failure-board p{
  margin:12px 0 0;
  color:var(--sub);
  font-size:.84rem;
  line-height:1.45;
}

body.v5 .research-gallery{
  max-width:980px;
  margin:clamp(32px,6vh,56px) 0 0;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:18px;
  align-items:stretch;
}

body.v5 .research-card{
  margin:0;
  border:1px solid var(--hair);
  background:var(--card);
  padding:16px;
  min-height:310px;
  display:flex;
  flex-direction:column;
}

body.v5 .research-card figcaption{
  font-size:.56rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:14px;
}

body.v5 .research-card p{
  margin:auto 0 0;
  color:var(--sub);
  font-size:.84rem;
  line-height:1.45;
}

body.v5 .deck-cover{
  min-height:190px;
  background:#27241f;
  color:#fffdf7;
  padding:18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

body.v5 .deck-cover span,
body.v5 .deck-cover em{
  font-family:var(--mono);
  font-style:normal;
  font-size:.56rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,253,247,.68);
}

body.v5 .deck-cover b{
  display:block;
  font-family:var(--display);
  font-size:1.72rem;
  line-height:1.05;
  font-weight:400;
  max-width:11ch;
}

body.v5 .eval-mini{
  display:grid;
  grid-template-columns:.65fr 1fr .55fr;
  border:1px solid #d7e2e8;
  background:#fbfdfe;
}

body.v5 .eval-mini span,
body.v5 .eval-mini b{
  border-left:1px solid #d7e2e8;
  border-top:1px solid #d7e2e8;
  padding:10px 8px;
  font-family:var(--mono);
  font-size:.56rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#5c6870;
  font-weight:400;
}

body.v5 .eval-mini span:nth-child(-n+3),
body.v5 .eval-mini b:nth-child(3n+1){border-left:0;}
body.v5 .eval-mini span{border-top:0;color:#87959d;background:#eef5f7;}
body.v5 .eval-mini .warn{color:#8f6414;}
body.v5 .eval-mini .fail{color:#9b3e1e;}
body.v5 .eval-mini .pass{color:#3f7552;}

body.v5 .decision-map{
  position:relative;
  min-height:190px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  align-content:center;
  background:#edf5ec;
  border:1px solid #cfded0;
  padding:16px;
}

body.v5 .rc-node{
  display:block;
  border:1px solid #cfded0;
  background:#fffdf7;
  padding:9px 10px;
  font-size:.78rem;
  line-height:1.25;
  text-align:center;
}

body.v5 .rc-node.main{
  grid-column:1 / -1;
  background:#315f86;
  color:#fff;
  border-color:#315f86;
  font-weight:600;
}

/* ---------- decision list (part 5) ---------- */
body.v5 .decisions{
  margin:clamp(30px,5vh,48px) 0 0;padding:0;list-style:none;
  display:grid;gap:0;border-top:1px solid var(--hair);
  max-width:760px;
}
body.v5 .decisions li{
  border-bottom:1px solid var(--hair);
  padding:22px 0;
  display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px 18px;
}
body.v5 .decisions .dnum{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;
  color:var(--accent);padding-top:6px;
}
body.v5 .decisions h3{
  font-family:var(--sans);font-size:1.02rem;font-weight:600;
  margin:0 0 6px;letter-spacing:.002em;
}
body.v5 .decisions p{margin:0;max-width:58ch;font-size:1.02rem;line-height:1.6;}

/* ---------- chat mock (recreation) ---------- */
body.v5 .mockwrap{margin:clamp(34px,6vh,56px) 0 0;}
body.v5 .mock{
  width:100%;max-width:410px;
  background:var(--card);
  border:1px solid var(--hair-strong);
  border-radius:14px;
  box-shadow:0 1px 2px rgba(70,55,30,.05),0 12px 34px rgba(70,55,30,.07);
  font-family:var(--sans);
  font-size:.9rem;line-height:1.55;
  overflow:hidden;
}
body.v5 .mock-hd{
  display:flex;align-items:center;gap:9px;
  padding:12px 16px;border-bottom:1px solid var(--hair);
}
body.v5 .mock-hd .dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--accent);flex:none;
}
body.v5 .mock-hd .mname{font-weight:600;font-size:.84rem;letter-spacing:.01em;}
body.v5 .mock-hd .mtag{
  margin-left:auto;
  font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sub);
  border:1px solid var(--hair-strong);border-radius:99px;
  padding:3px 9px;white-space:nowrap;
}
body.v5 .mock-body{padding:16px 16px 14px;display:flex;flex-direction:column;gap:14px;}

body.v5 .m-user{
  align-self:flex-end;max-width:88%;
  background:var(--wash);
  border-radius:14px 14px 4px 14px;
  padding:10px 14px;
}
body.v5 .m-agent{max-width:96%;}
body.v5 .m-agent p{margin:0 0 10px;}
body.v5 .m-agent p:last-child{margin-bottom:0;}

/* generic link-list deflection (before) */
body.v5 .m-links{list-style:none;margin:4px 0 2px;padding:0;display:grid;gap:8px;}
body.v5 .m-links li{
  border:1px solid var(--hair);border-radius:9px;
  padding:9px 12px;display:flex;align-items:center;gap:8px;
}
body.v5 .m-link{
  color:#31567e;text-decoration:underline;
  text-decoration-color:rgba(49,86,126,.35);text-underline-offset:3px;
}
body.v5 .m-links .arr{margin-left:auto;color:var(--sub);}

/* collapsed reasoning line (after) */
body.v5 .m-work{margin:0 0 4px;}
body.v5 .m-work summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  color:var(--sub);font-size:.82rem;
  padding:2px 0;
}
body.v5 .m-work summary::-webkit-details-marker{display:none;}
body.v5 .m-work summary .chev{
  display:inline-block;transition:transform .18s ease;
  font-size:.9em;color:var(--sub);
}
body.v5 .m-work[open] summary .chev{transform:rotate(90deg);}
body.v5 .m-work summary:hover{color:var(--ink);}
body.v5 .m-work .m-worknote{
  margin:8px 0 2px;padding:8px 12px;
  border-left:2px solid var(--hair-strong);
  color:var(--sub);font-size:.82rem;
}

/* structured breakdown rows (after) */
body.v5 .m-rows{
  margin:10px 0;border:1px solid var(--hair);border-radius:10px;
  overflow:hidden;
}
body.v5 .m-row{
  display:flex;justify-content:space-between;gap:14px;
  padding:9px 12px;border-top:1px solid var(--hair);
  font-size:.86rem;
}
body.v5 .m-row:first-child{border-top:0;}
body.v5 .m-row .rlab b{font-weight:600;}
body.v5 .m-row .rlab .rsub{display:block;color:var(--sub);font-size:.76rem;}
body.v5 .m-row .ramt{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500;}
body.v5 .m-row.total{background:var(--wash);font-weight:600;}

/* human handoff card (after) */
body.v5 .m-handoff{
  border:1px solid var(--hair-strong);border-radius:12px;
  padding:14px 14px 13px;margin-top:2px;
}
body.v5 .m-handoff .hff-t{font-weight:600;font-size:.88rem;margin:0 0 4px;}
body.v5 .m-handoff .hff-p{margin:0 0 12px;color:var(--sub);font-size:.82rem;}
body.v5 .m-actions{display:flex;gap:10px;flex-wrap:wrap;}
body.v5 .m-btn{
  font-family:var(--sans);font-size:.82rem;font-weight:600;
  border-radius:99px;padding:8px 16px;line-height:1.2;
  display:inline-block;
}
body.v5 .m-btn.primary{background:var(--ink);color:var(--card);}
body.v5 .m-btn.ghost{border:1px solid var(--hair-strong);color:var(--ink);}

/* composer + disclaimer (decorative) */
body.v5 .m-composer{
  margin:2px 16px 0;padding:10px 16px;
  border:1px solid var(--hair-strong);border-radius:99px;
  color:var(--sub);font-size:.84rem;
}
body.v5 .m-foot{
  text-align:center;color:var(--sub);
  font-size:.66rem;padding:9px 16px 13px;
}

/* honesty caption under each mock */
body.v5 .mock-cap{
  max-width:410px;margin:12px 0 0;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--sub);line-height:1.7;
}

/* ---------- target-state prototype (case 01, part 7) ----------
   The Thinking Panel hero card (Demo Billing Agent), restyled to
   the v5 tokens. The static markup is the complete conversation;
   v5-proto.js adds an optional animated replay. */
body.v5 .mock.proto{max-width:440px;}
body.v5 .mtag-proto{color:var(--accent);border-color:var(--accent);}
body.v5 .proto-work .wlab{display:inline-block;}
body.v5 .proto-workbody{padding:8px 0 4px;}
body.v5 .proto-plan{margin:0 0 12px;color:var(--sub);font-size:.82rem;line-height:1.55;}
body.v5 .proto-steps{position:relative;padding-left:22px;margin:4px 0;}
body.v5 .proto-steps::before{
  content:"";position:absolute;left:6px;top:7px;bottom:9px;
  width:1px;background:var(--hair);
}
body.v5 .proto-step{position:relative;margin-bottom:11px;line-height:1.45;}
body.v5 .proto-step:last-child{margin-bottom:3px;}
body.v5 .proto-step .pnode{
  position:absolute;left:-22px;top:3px;width:13px;height:13px;
  border-radius:50%;background:var(--card);border:1.5px solid var(--hair-strong);
}
body.v5 .proto-step.busy .pnode{border-top-color:var(--accent);animation:protospin .8s linear infinite;}
@keyframes protospin{to{transform:rotate(360deg);}}
body.v5 .proto-step.ok .pnode{border-color:var(--accent);}
body.v5 .proto-step.ok .pnode::after{
  content:"";position:absolute;left:2px;top:2.5px;width:5.5px;height:3px;
  border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);
  transform:rotate(-45deg);
}
body.v5 .proto-step .pact{display:block;font-size:.84rem;color:var(--ink);}
body.v5 .proto-step .pres{
  display:block;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.02em;color:var(--sub);margin-top:2px;
}
body.v5 .proto-step .pres .em{color:var(--accent);}
body.v5 .proto-step.busy .pres{display:none;}
body.v5 .proto-lead{font-weight:600;}
body.v5 .proto-change{
  margin:10px 0;padding:9px 12px 10px;border-radius:10px;
  background:rgba(138,60,28,.06);box-shadow:inset 0 0 0 1px rgba(138,60,28,.25);
  font-size:.8rem;
}
body.v5 .proto-change .pch-head{
  display:flex;justify-content:space-between;gap:12px;
  padding-bottom:6px;margin-bottom:5px;border-bottom:1px solid rgba(138,60,28,.2);
  font-weight:600;color:var(--accent);
}
body.v5 .proto-change .pch-row{
  display:flex;justify-content:space-between;gap:12px;
  padding:2px 0;color:var(--sub);
}
body.v5 .proto-change .pch-amt{
  font-variant-numeric:tabular-nums;white-space:nowrap;
  color:var(--accent);font-weight:500;
}
body.v5 .proto-summary{margin:10px 0;border:1px solid var(--hair);border-radius:10px;overflow:hidden;}
body.v5 .proto-summary .psec{padding:9px 12px 10px;}
body.v5 .proto-summary .psec + .psec{border-top:1px solid var(--hair);}
body.v5 .proto-summary .psec-h{
  font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sub);margin:0 0 6px;
}
body.v5 .proto-summary .prow{
  display:flex;justify-content:space-between;gap:12px;
  font-size:.82rem;padding:2px 0;
}
body.v5 .proto-summary .prow .pv{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500;}
body.v5 .proto-summary .pfoot{
  margin:0;border-top:1px solid var(--hair);padding:6px 12px;
  font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sub);
}
body.v5 .proto-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 2px;}
body.v5 .proto-chip{
  font-size:.8rem;border:1px solid var(--hair-strong);
  border-radius:99px;padding:6px 13px;color:var(--ink);
}
body.v5 .proto-ctl{max-width:440px;margin:12px 0 0;}
body.v5 .proto-play{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  border:1px solid var(--hair-strong);background:var(--card);
  border-radius:99px;padding:8px 16px;
  font-family:var(--sans);font-size:.84rem;font-weight:600;color:var(--ink);
}
body.v5 .proto-play:hover{border-color:var(--accent);color:var(--accent);}
body.v5 .proto-play:disabled{cursor:default;color:var(--sub);border-color:var(--hair);}
body.v5 .proto-play svg{width:13px;height:13px;flex:none;}
body.v5 .proto-caret{
  display:inline-block;width:2px;height:1em;vertical-align:-.15em;
  background:var(--accent);margin-left:1px;
  animation:protoblink 1s steps(1) infinite;
}
@keyframes protoblink{50%{opacity:0;}}
body.v5 .pa{opacity:0;transform:translateY(5px);}
body.v5 .pa.in{
  opacity:1;transform:none;
  transition:opacity .45s ease,transform .45s cubic-bezier(.22,1,.36,1);
}

body.v5 .case-proto-showcase{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(320px,440px);
  gap:clamp(28px,5vw,64px);
  align-items:start;
  margin:clamp(34px,6vh,58px) 0 0;
}

body.v5 .case-proto-copy{
  position:sticky;
  top:96px;
}

body.v5 .case-proto-copy h2{
  margin:10px 0 0;
  max-width:10ch;
}

body.v5 .case-proto-copy p{
  margin:18px 0 0;
  max-width:42ch;
  color:var(--sub);
  line-height:1.6;
}

body.v5 .case-proto-card{
  background:var(--card);
  border:1px solid var(--hair);
  padding:18px;
  box-shadow:0 24px 70px rgba(70,55,30,.08);
}

body.v5 .case-proto-card .proof-top{
  display:flex;
  gap:14px;
  align-items:center;
  padding-bottom:16px;
  border-bottom:1px solid var(--hair);
}

body.v5 .case-proto-card .proof-top p{
  margin:0 0 4px;
  color:var(--sub);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}

body.v5 .case-proto-card .proof-top h2{
  font-family:var(--serif);
  font-size:1.55rem;
  line-height:1;
  margin:0;
}

body.v5 .case-proto-card .mock{
  margin-top:16px;
  max-width:none;
  box-shadow:none;
}

body.v5 .case-proto-card .mock-body{
  max-height:440px;
  overflow:auto;
  scrollbar-color:var(--hair-strong) transparent;
}

body.v5 .case-proto-card .proto-ctl,
body.v5 .case-proto-card .mock-cap{
  max-width:none;
}

body.v5 .case-proto-card .proto-play{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--card);
}

body.v5 .case-proto-card .proto-play:hover{
  background:var(--accent-deep);
  border-color:var(--accent-deep);
  color:var(--card);
}

@media (prefers-reduced-motion:reduce){
  body.v5 .pa{opacity:1;transform:none;}
  body.v5 .proto-step.busy .pnode,body.v5 .proto-caret{animation:none;}
}

@media (max-width:900px){
  body.v5 .case-proto-showcase{
    grid-template-columns:1fr;
  }

  body.v5 .case-proto-copy{
    position:static;
  }

  body.v5 .case-proto-copy h2{
    max-width:16ch;
  }
}

/* ---------- trace figure (the config bug) ---------- */
body.v5 .trace{
  margin:clamp(30px,5vh,48px) 0 0;max-width:760px;
  background:var(--card);border:1px solid var(--hair);
}
body.v5 .trace-hd{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 16px;border-bottom:1px solid var(--hair);color:var(--sub);
}
body.v5 .trace-rows{list-style:none;margin:0;padding:6px 16px 10px;}
body.v5 .trace-rows li{
  display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;
  padding:8px 0;border-top:1px solid var(--hair);
  font-family:var(--sans);font-size:.88rem;line-height:1.5;
}
body.v5 .trace-rows li:first-child{border-top:0;}
body.v5 .t-time{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;
  color:var(--sub);padding-top:4px;
}
body.v5 .trace-rows code{
  font-family:var(--mono);font-size:.7rem;color:var(--sub);overflow-wrap:anywhere;
}
body.v5 .trace-rows code b{color:var(--ink);font-weight:400;}
body.v5 .trace-rows .ok{color:var(--accent);}
body.v5 .trace-foot{
  margin:0;padding:10px 16px 12px;border-top:1px solid var(--hair);
  font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sub);line-height:1.8;
}

/* ---------- golden row figure (the eval) ---------- */
body.v5 .goldrow{
  margin:clamp(30px,5vh,48px) 0 0;max-width:760px;
  background:var(--card);border:1px solid var(--hair);
}
body.v5 .gr-hd{
  display:flex;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;
  padding:10px 16px;border-bottom:1px solid var(--hair);color:var(--sub);
}
body.v5 .gr-hd .gr-mark{color:var(--accent);}
body.v5 .gr-rows{margin:0;padding:4px 16px 8px;}
body.v5 .gr-row{
  display:grid;grid-template-columns:170px minmax(0,1fr);gap:6px 20px;
  padding:10px 0;border-top:1px solid var(--hair);
}
body.v5 .gr-row:first-child{border-top:0;}
body.v5 .gr-row dt{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sub);padding-top:4px;
}
body.v5 .gr-row dd{
  margin:0;font-family:var(--sans);font-size:.92rem;line-height:1.5;max-width:58ch;
}
body.v5 .gr-row dd code{
  font-family:var(--mono);font-size:.7rem;color:var(--sub);overflow-wrap:anywhere;
}
body.v5 .gr-row.gate dt{color:var(--accent);}
body.v5 .gr-row.gate dd{display:flex;justify-content:space-between;gap:16px;}
body.v5 .gr-res{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);font-weight:400;white-space:nowrap;padding-top:3px;
}
body.v5 .gr-foot{
  margin:0;padding:10px 16px 12px;border-top:1px solid var(--hair);
  font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sub);line-height:1.8;
}

/* ---------- results stats (part 7) ---------- */
body.v5 .stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1px;background:var(--hair);border:1px solid var(--hair);
  margin:clamp(30px,5vh,48px) 0 0;max-width:760px;
}
body.v5 .stats > div{background:var(--card);padding:20px 20px 18px;}
body.v5 .stats .num{
  font-family:var(--display);font-size:2.1rem;line-height:1;display:block;
}
body.v5 .stats .lab{
  font-family:var(--sans);font-size:.84rem;color:var(--sub);
  display:block;margin-top:8px;line-height:1.45;
}

/* ---------- next case + footer ---------- */
body.v5 .nextcase{
  border-top:1px solid var(--hair);
  padding-block:clamp(40px,7vh,72px);
}
body.v5 .nextcase p{margin:12px 0 0;max-width:var(--measure);}
body.v5 .footer{border-top:1px solid var(--hair);}
body.v5 .footer-inner{
  display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;
  padding-block:26px;color:var(--sub);
}
body.v5 .footer a{text-decoration:none;color:var(--sub);}
body.v5 .footer a:hover{color:var(--accent);}

/* ---------- small screens ---------- */
@media (max-width:900px){
  body.v5 .case-skim{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.v5 .proof-hero,
  body.v5 .lab-hero,
  body.v5 .evidence-split,
  body.v5 .agent-evidence,
  body.v5 .before-after,
  body.v5 .debug-grid,
  body.v5 .prototype-lab{grid-template-columns:1fr;}
  body.v5 .journey-map{grid-template-columns:repeat(3,minmax(0,1fr));}
  body.v5 .journey-map > div:nth-child(4){border-left:0;border-top:1px solid var(--hair);}
  body.v5 .journey-map > div:nth-child(5){border-top:1px solid var(--hair);}
  body.v5 .failure-board,
  body.v5 .research-gallery{grid-template-columns:1fr;}
  body.v5 .flow-lane ol,
  body.v5 .roadmap-swimlane{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.v5 .sticky-note{
    position:relative;
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    width:auto;
    max-width:none;
    margin:12px 0 0;
    transform:none;
  }
  body.v5 .sketch-arrow{display:none;}
  body.v5 .case-arc,
  body.v5 .decision-board,
  body.v5 .mode-grid,
  body.v5 .coverage-steps{grid-template-columns:repeat(3,minmax(0,1fr));}
  body.v5 .insight-grid,
  body.v5 .journey-steps,
  body.v5 .roadmap-steps,
  body.v5 .arch-steps{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:640px){
  body.v5{font-size:1.05rem;}
  body.v5 .case-skim{grid-template-columns:1fr;}
  body.v5 .case-skim > div{min-height:0;}
  body.v5 .phone-gallery,
  body.v5 .sticky-grid,
  body.v5 .mock-pair,
  body.v5 .lab-panels,
  body.v5 .agent-layout,
  body.v5 .streamlit-shell,
  body.v5 .spec-grid,
  body.v5 .journey-map,
  body.v5 .flow-lane ol,
  body.v5 .roadmap-swimlane{grid-template-columns:1fr;}
  body.v5 .journey-map > div,
  body.v5 .journey-map > div:nth-child(4),
  body.v5 .journey-map > div:nth-child(5){border-left:0;border-top:1px solid var(--hair);min-height:0;}
  body.v5 .journey-map > div:first-child{border-top:0;}
  body.v5 .product-screen{padding:12px;}
  body.v5 .designer-board{padding:16px;}
  body.v5 .flow-strip{grid-template-columns:1fr;}
  body.v5 .flow-strip span + span::before{display:none;}
  body.v5 .ii-buttons{max-width:none;}
  body.v5 .streamlit-side{display:none;}
  body.v5 .streamlit-main{padding:12px;}
  body.v5 .streamlit-actions{grid-template-columns:1fr;}
  body.v5 .eval-mini{grid-template-columns:1fr;}
  body.v5 .eval-mini span,
  body.v5 .eval-mini b{border-left:0;}
  body.v5 .eval-mini span:not(:first-child){display:none;}
  body.v5 .agent-rail{display:none;}
  body.v5 .agent-layout{min-height:0;}
  body.v5 .agent-question{max-width:100%;}
  body.v5 .phone-shot{min-height:0;}
  body.v5 .snapshot-list li,
  body.v5 .artifact-list li{grid-template-columns:1fr;gap:4px;}
  body.v5 .flow-lane li:not(:last-child)::after{display:none;}
  body.v5 .deck-strip{grid-template-columns:repeat(2,1fr);}
  body.v5 .case-arc,
  body.v5 .insight-grid,
  body.v5 .decision-board,
  body.v5 .mode-grid,
  body.v5 .journey-steps,
  body.v5 .roadmap-steps,
  body.v5 .arch-steps,
  body.v5 .coverage-steps{grid-template-columns:1fr;}
  body.v5 .visual-hd{display:block;}
  body.v5 .visual-hd span + span{display:block;margin-top:4px;}
  body.v5 .gr-row{grid-template-columns:1fr;}
  body.v5 .gr-row.gate dd{flex-direction:column;gap:6px;}
  body.v5 .decisions li{grid-template-columns:34px minmax(0,1fr);}
  body.v5 .m-actions{flex-direction:column;}
  body.v5 .m-btn{text-align:center;}
}

@media (prefers-reduced-motion:reduce){
  body.v5 .m-work summary .chev{transition:none;}
}

