/* ==========================================================================
   SECTIONS — editorial monograph with bold moments.
   ========================================================================== */

/* ---- MASTHEAD — the opening spread -------------------------------------- */
.masthead{
  background:var(--ink);color:#fff;
  padding-block:clamp(3rem,6vw,5rem) clamp(2rem,4vw,3.5rem);
  margin-bottom:0;
}
.masthead__meta{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;
  margin-bottom:var(--s7);opacity:.5}
.masthead__idx{font-family:var(--f-mono);font-size:.6875rem;font-weight:500;
  color:var(--pa);letter-spacing:.04em}
.masthead__meta .label{font-size:.6875rem;letter-spacing:.02em;text-transform:none;font-weight:500;color:inherit}
.masthead h1{font-size:var(--t-hero);letter-spacing:-.04em;line-height:var(--lh-tight);
  margin-bottom:var(--s5);max-width:14ch;color:#fff}
.masthead__theme{font-size:clamp(1.125rem,1.8vw,1.375rem);color:rgba(255,255,255,.65);font-weight:400;
  line-height:1.5;max-width:44ch;margin-bottom:var(--s3)}
.masthead__tag{font-size:var(--t-sm);color:rgba(255,255,255,.4);max-width:54ch;line-height:1.65}
.masthead__notice{margin-top:var(--s6);background:rgba(255,255,255,.06);border-radius:var(--r-lg);
  border:1px solid rgba(255,255,255,.1);padding:clamp(.9rem,1.8vw,1.25rem);
  display:flex;gap:var(--s4);align-items:flex-start;flex-wrap:wrap}
.masthead__notice .ev{--c:var(--pa);background:rgba(255,255,255,.06)}
.masthead__notice p{flex:1;min-width:260px;margin:0;font-size:var(--t-sm);
  color:rgba(255,255,255,.6);line-height:1.65}

/* ---- HERO SCREENSHOT — immediately after masthead ----------------------- */
.case > .section:first-of-type{padding-top:var(--sec-y);
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink) 30%, var(--ground) 30%)}
.case > .section:first-of-type .chrome{border:4px solid var(--ink)}

/* ---- SNAPSHOT ----------------------------------------------------------- */
.snapshot{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;
  background:var(--rule);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1)}
.snapshot .cell{background:var(--paper);padding:var(--s5) var(--s4);gap:.6rem}
.snapshot .cell > .row{flex-direction:column;align-items:flex-start;gap:.4rem}
.snapshot ul li{font-size:var(--t-sm);color:var(--ink-2);line-height:1.75}

/* ---- CHALLENGE CASCADE -------------------------------------------------- */
.cascade{display:flex;flex-direction:column;gap:var(--s4)}
.cascade__row{display:grid;grid-template-columns:clamp(88px,11vw,130px) minmax(0,1fr);
  gap:var(--s4) clamp(1rem,2.4vw,2rem);align-items:start;
  background:var(--paper);border-radius:var(--r-lg);
  padding:clamp(1.15rem,2.2vw,1.65rem);box-shadow:var(--sh-1);
  transition:box-shadow var(--d-2),transform var(--d-2)}
.cascade__row:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}
.cascade__key{display:flex;flex-direction:column;gap:.35rem}
.cascade__key b{font-size:.6875rem;font-weight:600;color:var(--pa-ink)}
.cascade__key i{font-family:var(--f-mono);font-style:normal;font-size:.625rem;color:var(--ink-4)}
.cascade__val{display:flex;flex-direction:column;gap:var(--s3);min-width:0}
.cascade__val > .row{max-width:72ch}
.cascade__val h3{font-size:clamp(1.0625rem,1.5vw,1.25rem)}
.cascade__val p{color:var(--ink-2);line-height:1.68;max-width:64ch;font-size:var(--t-sm)}
@media (max-width:720px){.cascade__row{grid-template-columns:1fr}}

/* ---- RESEARCH SPLIT ----------------------------------------------------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:clamp(1.5rem,3vw,2.5rem)}
.split__col{display:flex;flex-direction:column;gap:var(--s5)}
.split__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding-bottom:var(--s3);border-bottom:2px solid var(--ink)}
.split__head h3{font-size:1rem}
.rcard{background:var(--paper);border-radius:var(--r);
  box-shadow:var(--sh-1);padding:var(--s5);
  display:flex;flex-direction:column;gap:var(--s3);
  transition:box-shadow var(--d-2),transform var(--d-2)}
.rcard:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}
.rcard__m::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--c,var(--ink-4));margin-right:.4rem;vertical-align:middle}
.rcard--verified{--c:#12B76A}
.rcard--audit{--c:#2E90FA}
.rcard--hypothesis{--c:#7A5AF8}
.rcard--assumption{--c:#F79009}
.rcard__top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}
.rcard__m{font-size:.625rem;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}
.rcard h4{font-size:1rem;line-height:1.45}
.rcard p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.65}
.rcard__src{font-size:.75rem;color:var(--ink-4);line-height:1.6;
  padding-top:var(--s3);border-top:1px solid var(--hairline)}

/* ---- COMPETITOR MATRIX -------------------------------------------------- */
.matrix-wrap{background:var(--paper);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2)}
.matrix{min-width:880px;font-size:var(--t-sm)}
.matrix thead th{font-size:.6875rem;letter-spacing:.02em;color:var(--ink-3);text-align:left;
  font-weight:600;padding:var(--s4);background:var(--paper-2);
  border-bottom:1px solid var(--hairline)}
.matrix tbody td{padding:var(--s4);border-bottom:1px solid var(--hairline);
  color:var(--ink-2);line-height:1.6;vertical-align:top}
.matrix tbody tr:last-child td{border-bottom:0}
.matrix tbody tr:hover td{background:var(--paper-2)}
.matrix td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}
.matrix .m-opp{color:var(--pa-ink)}

/* ---- PERSONAS ----------------------------------------------------------- */
.personas{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  gap:clamp(1rem,2vw,1.5rem)}
.persona{background:var(--paper);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh-1);display:flex;flex-direction:column;
  transition:box-shadow var(--d-2),transform var(--d-2)}
.persona:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.persona__top{padding:var(--s5);
  background:var(--pa-bg);display:flex;flex-direction:column;gap:.35rem}
.persona__top b{font-size:.6875rem;font-weight:600;color:var(--pa-ink)}
.persona__top h3{font-size:1.0625rem}
.persona__top p{font-size:var(--t-xs);color:var(--ink-3);line-height:1.55}
.persona__body{padding:var(--s5);display:flex;flex-direction:column;gap:var(--s5);flex:1}
.persona__grp{display:flex;flex-direction:column;gap:.45rem}
.persona__grp > b{font-size:.625rem;font-weight:600;color:var(--ink-4);
  text-transform:uppercase;letter-spacing:.04em}
.persona__grp li{font-size:var(--t-xs);color:var(--ink-2);line-height:1.6;
  padding-left:.9rem;position:relative}
.persona__grp li::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;
  border-radius:50%;background:var(--ink-5)}
.persona__grp--pain li::before{background:#F670C7}

/* ---- JOURNEY MAP -------------------------------------------------------- */
.journey{min-width:960px;display:grid;
  grid-template-columns:clamp(92px,9vw,124px) repeat(var(--steps,6),minmax(155px,1fr));
  background:var(--paper);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh-2)}
.journey__rh{font-size:.625rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ink-4);padding:var(--s4) var(--s3);background:var(--paper-2);
  border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  display:flex;align-items:center}
.journey__ph{padding:var(--s4) var(--s3);background:var(--paper-2);
  border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline);
  display:flex;flex-direction:column;gap:.2rem}
.journey__ph b{font-size:.625rem;font-weight:600;color:var(--pa-ink)}
.journey__ph span{font-size:.8125rem;font-weight:600;color:var(--ink);line-height:1.35}
.journey__c{padding:var(--s4) var(--s3);border-bottom:1px solid var(--hairline);
  border-right:1px solid var(--hairline);font-size:var(--t-xs);color:var(--ink-2);line-height:1.55}
.journey__c:last-child,.journey__ph:last-child{border-right:0}
.journey__c--pain{color:#C01574}
.journey__c--opp{color:var(--pa-ink)}
.journey__meter{display:flex;align-items:flex-end;gap:3px;height:54px;padding:.85rem .75rem;
  border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline)}
.journey__meter i{flex:1;min-height:3px;border-radius:2px;background:var(--paper-3)}
.journey__meter i.on{background:var(--pa)}
.journey__c--last{border-bottom:0}

/* ---- PAIN POINTS -------------------------------------------------------- */
.pains{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem)}
@media (max-width:900px){.pains{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.pains{grid-template-columns:1fr}}
.pain{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:clamp(1.15rem,2vw,1.5rem);
  display:flex;flex-direction:column;gap:var(--s3);
  transition:box-shadow var(--d-2),transform var(--d-2)}
.pain:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.pain__no{display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:var(--r-sm);background:var(--pa-bg);
  color:var(--pa-ink);font-size:.75rem;font-weight:700;font-family:var(--f-mono)}
.pain h3{font-size:1rem}
.pain p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.6}
.pain__ev{margin-top:auto;padding-top:var(--s3)}

/* ---- HMW — the dramatic centerpiece ------------------------------------- */
.hmw{
  background:var(--pa);color:#fff;
  padding-block:clamp(3.5rem,7vw,6.5rem);margin-block:var(--sec-y);
}
.hmw__in{display:flex;flex-direction:column;gap:var(--s5);max-width:var(--shell);
  margin-inline:auto;padding-inline:var(--gutter)}
.hmw q{font-family:var(--f-display);font-weight:700;quotes:none;color:#fff;
  font-size:clamp(1.5rem,3.6vw,3rem);letter-spacing:-.03em;line-height:1.18;max-width:22ch}
.hmw q b{font-weight:700;color:rgba(255,255,255,.7)}
.hmw p{max-width:54ch;color:rgba(255,255,255,.6);font-size:var(--t-sm)}
.hmw .label{color:rgba(255,255,255,.45)}
.hmw .label--accent{color:rgba(255,255,255,.45)}

/* ---- UX GOALS ----------------------------------------------------------- */
.goals{background:var(--paper);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2)}
.goal{display:grid;grid-template-columns:clamp(86px,10vw,126px) minmax(0,1.1fr) minmax(0,1fr);
  gap:var(--s4) clamp(1rem,2.4vw,2rem);align-items:start;
  padding:clamp(1.1rem,2vw,1.5rem);border-top:1px solid var(--hairline)}
.goal:first-child{border-top:0}
.goal:hover{background:var(--paper-2)}
.goal__k{font-size:.9375rem;font-weight:700;color:var(--ink)}
.goal__why{color:var(--ink-2);font-size:var(--t-sm);line-height:1.65}
.goal__pr{display:flex;flex-direction:column;gap:.3rem}
.goal__pr b{font-size:.625rem;font-weight:600;color:var(--ink-4);
  text-transform:uppercase;letter-spacing:.04em}
.goal__pr p{font-size:var(--t-sm);color:var(--pa-ink);line-height:1.5;font-weight:500}
@media (max-width:820px){.goal{grid-template-columns:1fr}}

/* ---- INFORMATION ARCHITECTURE ------------------------------------------ */
.ia{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);
  gap:clamp(1.25rem,2.4vw,2rem);align-items:start}
@media (max-width:980px){.ia{grid-template-columns:1fr}}
.ia__tree{background:var(--paper);border-radius:var(--r-lg);
  padding:clamp(.85rem,1.6vw,1.25rem);box-shadow:var(--sh-2);font-size:var(--t-sm)}
.ia__root{display:flex;align-items:center;padding:.5rem .7rem;background:var(--ink);
  color:#fff;border-radius:var(--r-sm);font-size:.8125rem;font-weight:600;margin-bottom:.4rem}
.ia__l1{margin-left:.7rem;border-left:2px solid var(--pa-bg)}
.ia__node{position:relative}
.ia__btn{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;
  padding:.5rem .55rem .5rem 1.15rem;color:var(--ink-2);font:inherit;font-weight:500;
  border-radius:var(--r-sm);transition:color var(--d-1),background var(--d-1)}
.ia__btn::before{content:"";position:absolute;left:0;top:1rem;width:.8rem;height:1px;
  background:var(--pa-bg)}
.ia__btn:hover{color:var(--ink);background:var(--paper-2)}
.ia__btn[aria-expanded="true"]{color:var(--pa-ink);background:var(--pa-bg)}
.ia__tw{flex:none;width:10px;font-size:.6rem;display:inline-block;
  transition:transform var(--d-2) var(--e-out)}
.ia__btn[aria-expanded="true"] .ia__tw{transform:rotate(90deg)}
.ia__count{margin-left:auto;font-size:.625rem;color:var(--ink-4);flex:none;
  font-family:var(--f-mono)}
.ia__l2{margin-left:1.15rem;border-left:2px solid var(--pa-bg);
  display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--d-3) var(--e-out)}
.ia__l2[data-open="true"]{grid-template-rows:1fr}
.ia__l2 > div{overflow:hidden;min-height:0}
.ia__leaf{position:relative;padding:.35rem .5rem .35rem 1.15rem;color:var(--ink-3);
  font-size:var(--t-xs)}
.ia__leaf::before{content:"";position:absolute;left:0;top:.8rem;width:.8rem;height:1px;
  background:var(--pa-bg)}
.ia__note{background:var(--pa-bg);border-radius:var(--r-lg);
  padding:clamp(1.15rem,2vw,1.5rem);
  display:flex;flex-direction:column;gap:var(--s3);position:sticky;top:2rem}
.ia__note h4{font-size:1.0625rem}
.ia__note p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.65}
@media (max-width:980px){.ia__note{position:static}}

/* ---- USER FLOW ---------------------------------------------------------- */
.flow{min-width:900px;display:flex;align-items:stretch;padding-block:var(--s3)}
.flow__col{display:flex;flex-direction:column;gap:var(--s3);justify-content:center;
  min-width:158px;flex:1}
.flow__arrow{display:grid;place-items:center;width:38px;flex:none;color:var(--ink-5)}
.fnode{position:relative;width:100%;text-align:left;padding:.7rem .8rem;
  border-radius:var(--r);background:var(--paper);
  box-shadow:var(--sh-1);color:var(--ink-2);font-size:var(--t-xs);line-height:1.4;
  cursor:pointer;display:flex;flex-direction:column;gap:.2rem;
  transition:box-shadow var(--d-2),transform var(--d-2)}
.fnode b{font-size:.625rem;font-weight:600;color:var(--ink-4);
  text-transform:uppercase;letter-spacing:.04em}
.fnode span{font-size:.8125rem;font-weight:600;color:var(--ink);line-height:1.35}
.fnode:hover,.fnode[aria-expanded="true"]{box-shadow:var(--sh-3);transform:translateY(-2px)}
.fnode--entry,.fnode--exit{border-radius:var(--r-pill);padding-inline:1.05rem}
.fnode--decision{background:linear-gradient(180deg,#FFF6E8 0%,var(--paper) 62%)}
.fnode--decision b{color:#B54708}
.fnode--success{background:linear-gradient(180deg,#E8FAF0 0%,var(--paper) 62%)}
.fnode--success b{color:#087443}
.fnode--error{background:linear-gradient(180deg,#FDEDF5 0%,var(--paper) 62%)}
.fnode--error b{color:#C01574}
.flow__why{background:var(--pa-bg);border-radius:var(--r);
  padding:var(--s5);margin-top:var(--s4);
  display:flex;gap:var(--s4);align-items:flex-start;min-height:5rem;flex-wrap:wrap}
.flow__why p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.65;margin:0;
  flex:1;min-width:280px}
.flow__why b{color:var(--ink);display:block;margin-bottom:.2rem;font-weight:600}
.flow__legend{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s4)}
.flow__legend span{display:flex;align-items:center;gap:.4rem;font-size:.6875rem;color:var(--ink-4)}
.flow__legend i{width:14px;height:10px;border:1px solid currentColor;border-radius:3px;flex:none}
.flow__legend i.r{border-radius:99px}
.flow__legend .d{color:#B54708}.flow__legend .s{color:#087443}.flow__legend .e{color:#C01574}

/* ---- TASK FLOW ---------------------------------------------------------- */
.task{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.75rem,1.6vw,1.15rem)}
@media (max-width:900px){.task{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.task{grid-template-columns:1fr}}
.task__s{background:var(--paper);border-radius:var(--r);
  box-shadow:var(--sh-1);padding:var(--s4);display:flex;flex-direction:column;gap:.4rem;
  transition:box-shadow var(--d-2),transform var(--d-2)}
.task__s:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.task__s b{display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:var(--r-sm);background:var(--pa-bg);
  color:var(--pa-ink);font-family:var(--f-mono);font-size:.6875rem;font-weight:700}
.task__s h4{font-size:.9375rem}
.task__s p{font-size:var(--t-xs);color:var(--ink-3);line-height:1.55}

/* ---- WIREFRAMES --------------------------------------------------------- */
.wires{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.2vw,2rem)}
@media (max-width:1000px){.wires{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.wires{grid-template-columns:1fr}}
.wire{display:flex;flex-direction:column;gap:var(--s3)}
.wire__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}
.wire__fid{font-size:.6875rem;font-weight:600;color:var(--ink-4)}
.wire__box{border-radius:var(--r);overflow:hidden;
  background:var(--paper);box-shadow:var(--sh-1);cursor:zoom-in;
  transition:box-shadow var(--d-2),transform var(--d-2)}
.wire__box:hover{box-shadow:var(--sh-3);transform:translateY(-2px)}
.wire__box svg{display:block;width:100%;height:auto}
.wire--mobile .wire__box{max-width:250px}
.wire p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.6}

/* ---- EXPLORATION -------------------------------------------------------- */
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  gap:clamp(1rem,2vw,1.5rem)}
.opt{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:clamp(1.15rem,2vw,1.5rem);
  display:flex;flex-direction:column;gap:var(--s3)}
.opt--chosen{box-shadow:0 0 0 2px var(--pa),var(--sh-2)}
.opt__t{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.opt__t b{font-size:.6875rem;font-weight:600;color:var(--ink-4)}
.opt--chosen .opt__t b{color:var(--pa-ink)}
.opt h3{font-size:1.0625rem}
.opt p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.6}
.opt__pros{display:flex;flex-direction:column;gap:.35rem;margin-top:auto;padding-top:var(--s3);
  border-top:1px solid var(--hairline)}
.opt__pros li{font-size:var(--t-xs);color:var(--ink-3);line-height:1.5;padding-left:1.05rem;position:relative}
.opt__pros li[data-t="+"]::before{content:"+";position:absolute;left:0;color:#087443;font-weight:700}
.opt__pros li[data-t="-"]::before{content:"–";position:absolute;left:0;color:#C01574;font-weight:700}
.opt__why{font-size:var(--t-sm);color:var(--ink-2);line-height:1.65;flex:1;min-width:280px}

/* ---- DESIGN SYSTEM ------------------------------------------------------ */
.ds{display:grid;gap:clamp(1rem,2vw,1.5rem);
  grid-template-columns:repeat(auto-fit,minmax(265px,1fr))}
.ds__blk{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:clamp(1.15rem,2vw,1.5rem);
  display:flex;flex-direction:column;gap:var(--s4)}
.ds__blk--wide{grid-column:1/-1}
.ds__t{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  padding-bottom:var(--s3);border-bottom:1px solid var(--hairline)}
.ds__t h3{font-size:.9375rem}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.6rem}
.sw{border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--sh-1)}
.sw__c{height:54px}
.sw__m{padding:.45rem .55rem;display:flex;flex-direction:column;gap:.05rem;background:var(--paper)}
.sw__m b{font-size:.6875rem;font-weight:600;color:var(--ink)}
.sw__m span{font-family:var(--f-mono);font-size:.625rem;color:var(--ink-4);text-transform:uppercase}
.typescale{display:flex;flex-direction:column}
.typescale li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);
  border-bottom:1px solid var(--hairline);padding-block:.55rem}
.typescale li:last-child{border-bottom:0}
.typescale b{font-family:var(--f-display);color:var(--ink);letter-spacing:-.02em;line-height:1.1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.typescale span{font-family:var(--f-mono);font-size:.625rem;color:var(--ink-4);flex:none}
.spacers{display:flex;flex-direction:column}
.spacers li{display:flex;align-items:center;gap:var(--s4);font-family:var(--f-mono);
  font-size:.6875rem;color:var(--ink-3);padding-block:.4rem;border-bottom:1px solid var(--hairline)}
.spacers li:last-child{border-bottom:0}
.spacers i{height:7px;border-radius:2px;background:var(--pa);flex:none}
.spec{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.s-btn{font-size:var(--t-xs);font-weight:600;padding:.5rem .85rem;border-radius:var(--r-sm);
  border:1px solid transparent;transition:all var(--d-1)}
.s-btn--pri{background:var(--ink);color:#fff;border-color:var(--ink)}
.s-btn--pri:hover{background:#000}
.s-btn--sec{background:var(--paper);border-color:var(--rule);color:var(--ink);box-shadow:var(--sh-1)}
.s-btn--sec:hover{box-shadow:var(--sh-2)}
.s-btn--dis{background:var(--paper-3);color:var(--ink-4);cursor:not-allowed}
.s-input{display:flex;flex-direction:column;gap:.3rem;width:100%}
.s-input label{font-size:.6875rem;font-weight:600;color:var(--ink-2)}
.s-input input{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-sm);
  padding:.5rem .65rem;font-size:var(--t-xs);color:var(--ink);width:100%;
  transition:border-color var(--d-1),box-shadow var(--d-1)}
.s-input input:focus{border-color:var(--pa);box-shadow:0 0 0 3px var(--pa-bg)}
.s-input--err input{border-color:#C01574;box-shadow:0 0 0 3px #FDF2FA}
.s-input small{font-size:.6875rem;color:#C01574}
.s-table{width:100%;font-size:.6875rem;border-radius:var(--r-sm);overflow:hidden;
  box-shadow:var(--sh-1);background:var(--paper)}
.s-table th{background:var(--paper-2);font-size:.625rem;font-weight:600;color:var(--ink-3);
  text-align:left;padding:.5rem .65rem;border-bottom:1px solid var(--hairline)}
.s-table td{padding:.5rem .65rem;border-top:1px solid var(--hairline);color:var(--ink-2)}
.s-status{display:inline-flex;align-items:center;gap:.3rem;font-size:.625rem;font-weight:600;
  padding:.2rem .5rem;border-radius:var(--r-pill)}
.s-status i{width:5px;height:5px;border-radius:50%;background:currentColor}
.s-status--ok{color:#087443;background:#ECFDF3}
.s-status--wait{color:#B54708;background:#FFFAEB}
.s-status--err{color:#C01574;background:#FDF2FA}
.s-status--info{color:#175CD3;background:#EFF4FF}

/* ---- UI EVOLUTION ------------------------------------------------------- */
.evo{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  gap:clamp(1rem,2vw,1.5rem);align-items:start}
.evo__st{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:clamp(1.15rem,2vw,1.5rem);
  display:flex;flex-direction:column;gap:var(--s4)}
.evo__st--final{box-shadow:0 0 0 2px var(--pa),var(--sh-2)}
.evo__hd{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.evo__hd b{font-size:.6875rem;font-weight:600;color:var(--ink-4)}
.evo__st--final .evo__hd b{color:var(--pa-ink)}
.evo__st p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.62}
.evo__gains{display:flex;flex-direction:column;gap:.45rem;padding-top:var(--s3);
  border-top:1px solid var(--hairline)}
.evo__gains li{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);font-size:.6875rem}
.evo__gains b{font-size:.625rem;font-weight:600;color:var(--ink-4)}
.evo__bar{flex:1;max-width:92px;height:6px;border-radius:99px;background:var(--paper-3);overflow:hidden}
.evo__bar i{display:block;height:100%;border-radius:99px;background:var(--pa);width:var(--w,50%);
  transition:width var(--d-3) var(--e-out)}

/* ---- GALLERY ------------------------------------------------------------ */
.gal{display:grid;gap:clamp(1.25rem,2.4vw,2rem);grid-template-columns:repeat(12,1fr)}
.gal > *{grid-column:span 12}
.gal > .g-4{grid-column:span 4}.gal > .g-5{grid-column:span 5}
.gal > .g-6{grid-column:span 6}.gal > .g-7{grid-column:span 7}.gal > .g-8{grid-column:span 8}
@media (max-width:820px){.gal > *{grid-column:span 12!important}}

/* ---- RESPONSIVE --------------------------------------------------------- */
.resp{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(1.25rem,2.4vw,2.5rem);align-items:start}
@media (max-width:980px){.resp{grid-template-columns:1fr}}
.resp__rules{background:var(--paper);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2)}
.resp__r{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s4);
  padding:var(--s4);border-top:1px solid var(--hairline)}
.resp__r:first-child{border-top:0}
.resp__bp{font-family:var(--f-mono);font-size:.6875rem;color:var(--pa-ink);white-space:nowrap;padding-top:.1rem}
.resp__r p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.6}
.resp__r h4{font-size:.9375rem;margin-bottom:.2rem}
.devices{display:flex;align-items:flex-end;gap:clamp(.75rem,2vw,1.5rem);flex-wrap:wrap}

/* ---- INTERACTION LAB ---------------------------------------------------- */
.lab{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
@media (max-width:1180px){.lab{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.lab{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.lab{grid-template-columns:1fr}}
.lab__c{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3);min-height:210px}
.lab__hd{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.lab__hd h3{font-size:.9375rem}
.lab__hd span{font-size:.625rem;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}
.lab__stage{flex:1;display:grid;place-items:center;
  background:var(--paper-2);border-radius:var(--r);padding:var(--s4);
  position:relative;overflow:hidden;min-height:106px}
.lab__note{font-size:var(--t-xs);color:var(--ink-3);line-height:1.55}

.d-menu{position:relative;width:100%;max-width:180px}
.d-menu__t{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-sm);
  padding:.5rem .6rem;font-size:var(--t-xs);color:var(--ink);
  transition:border-color var(--d-1)}
.d-menu__t:hover{border-color:var(--ink-4)}
.d-menu__t i{color:var(--ink-4);transition:transform var(--d-2);font-style:normal;font-size:.65rem}
.d-menu__t[aria-expanded="true"] i{transform:rotate(180deg)}
.d-menu__p{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:5;
  background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-sm);
  box-shadow:var(--sh-3);padding:.25rem;
  opacity:0;transform:translateY(-4px) scale(.99);pointer-events:none;
  transition:opacity var(--d-1),transform var(--d-1)}
.d-menu__p.is-open{opacity:1;transform:none;pointer-events:auto}
.d-menu__p li button{width:100%;text-align:left;font-size:var(--t-xs);color:var(--ink-2);
  padding:.35rem .45rem;border-radius:4px}
.d-menu__p li button:hover,.d-menu__p li button[aria-selected="true"]{background:var(--paper-2);color:var(--ink)}

.f-row{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center}
.f-row button{font-size:.6875rem;font-weight:500;border:1px solid var(--rule);box-shadow:var(--sh-1);
  border-radius:var(--r-pill);padding:.3rem .65rem;color:var(--ink-3);background:var(--paper);
  transition:all var(--d-1)}
.f-row button[aria-pressed="true"]{color:var(--pa-ink);background:var(--pa-bg);border-color:var(--pa);box-shadow:var(--sh-2)}
.f-out{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:center;margin-top:.6rem;min-height:1.8rem}
.f-out span{font-size:.625rem;color:var(--ink-3);background:var(--paper);
  box-shadow:var(--sh-1);border-radius:var(--r-sm);padding:.25rem .5rem;
  animation:popIn .2s var(--e-out) backwards}
@keyframes popIn{from{opacity:0;transform:scale(.96)}}

.s-wrap{width:100%;max-width:210px}
.s-wrap .s-input input{padding-left:1.85rem}
.s-wrap__box{position:relative}
.s-wrap__ic{position:absolute;left:.55rem;top:calc(50% + .45rem);transform:translateY(-50%);
  color:var(--ink-4);font-size:.6875rem;pointer-events:none}
.s-res{margin-top:.45rem;display:flex;flex-direction:column;max-height:84px;overflow-y:auto}
.s-res li{font-size:.6875rem;color:var(--ink-2);padding:.25rem .35rem;border-radius:4px}
.s-res li:hover{background:var(--paper-2)}
.s-res li mark{background:var(--pa-bg);color:var(--pa-ink);border-radius:2px;padding:0 2px}
.s-res li.empty{color:var(--ink-4);font-style:italic}

.m-sheet{position:absolute;inset:0;display:grid;place-items:center;
  background:rgba(20,20,19,.3);backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:opacity var(--d-2)}
.m-sheet.is-open{opacity:1;pointer-events:auto}
.m-card{background:var(--paper);border-radius:var(--r);box-shadow:var(--sh-3);padding:var(--s4);
  width:min(205px,90%);text-align:left;display:flex;flex-direction:column;gap:.5rem;
  transform:scale(.96);transition:transform var(--d-2) var(--e-out)}
.m-sheet.is-open .m-card{transform:none}
.m-card b{font-size:var(--t-xs);color:var(--ink)}
.m-card p{font-size:.6875rem;color:var(--ink-3);line-height:1.5}
.m-card div{display:flex;gap:.35rem;justify-content:flex-end}

.t-stack{position:absolute;left:0;right:0;bottom:.5rem;display:flex;flex-direction:column;
  gap:.3rem;align-items:center;pointer-events:none;padding-inline:.5rem}
.toast{display:flex;align-items:center;gap:.4rem;font-size:.6875rem;color:var(--ink);
  background:var(--paper);border-radius:var(--r-sm);
  box-shadow:var(--sh-3);padding:.4rem .55rem;animation:toastIn .22s var(--e-out);max-width:100%}
.toast--ok{background:linear-gradient(180deg,#ECFDF3 0%,var(--paper) 70%)}
.toast--err{background:linear-gradient(180deg,#FDF2FA 0%,var(--paper) 70%)}
@keyframes toastIn{from{opacity:0;transform:translateY(6px)}}

.e-state{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}
.e-state__ic{width:36px;height:36px;border-radius:var(--r-sm);
  background:var(--paper-2);display:grid;place-items:center;color:var(--ink-4);font-size:.9rem}
.e-state b{font-size:var(--t-xs);color:var(--ink)}
.e-state p{font-size:.6875rem;color:var(--ink-4);line-height:1.5;max-width:22ch}
.skel{width:100%;display:flex;flex-direction:column;gap:.45rem}
.skel i{display:block;height:9px;border-radius:99px;
  background:linear-gradient(90deg,var(--paper-3) 25%,var(--paper-2) 50%,var(--paper-3) 75%);
  background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel i{animation:none}}

.h-card{width:100%;max-width:165px;background:var(--paper);
  border-radius:var(--r);box-shadow:var(--sh-1);padding:.7rem;
  display:flex;flex-direction:column;gap:.35rem;
  transition:box-shadow var(--d-2),transform var(--d-2)}
.h-card:hover{box-shadow:var(--sh-3);transform:translateY(-3px)}
.h-card b{font-size:var(--t-xs);color:var(--ink)}
.h-card span{font-size:.625rem;color:var(--ink-4)}
.h-card i{height:5px;border-radius:99px;background:var(--paper-3);display:block;overflow:hidden}
.h-card i::after{content:"";display:block;height:100%;width:38%;border-radius:99px;
  background:var(--pa);transition:width var(--d-3) var(--e-out)}
.h-card:hover i::after{width:76%}

/* ---- HANDOFF ------------------------------------------------------------ */
.handoff{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(1.25rem,2.4vw,2.5rem);align-items:start}
@media (max-width:980px){.handoff{grid-template-columns:1fr}}
.code{background:var(--ink);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2)}
.code__t{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  padding:.6rem .8rem;border-bottom:1px solid rgba(255,255,255,.08)}
.code__t b{font-family:var(--f-mono);font-size:.6875rem;color:rgba(255,255,255,.4);font-weight:500}
.code pre{margin:0;padding:var(--s5);overflow-x:auto;font-family:var(--f-mono);
  font-size:.6875rem;line-height:1.95;color:rgba(255,255,255,.7)}
.code .c{color:rgba(255,255,255,.3)}
.code .v{color:#6EE7B7}
.code .p{color:var(--pa)}

/* ---- PIPELINE ----------------------------------------------------------- */
.pipe{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:clamp(.65rem,1.4vw,1rem)}
.pipe__s{background:var(--paper);border-radius:var(--r);
  box-shadow:var(--sh-1);padding:var(--s4);display:flex;flex-direction:column;gap:.35rem;
  transition:box-shadow var(--d-2),transform var(--d-2)}
.pipe__s:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.pipe__s b{font-family:var(--f-mono);font-size:.6875rem;color:var(--pa-ink);font-weight:600}
.pipe__s h4{font-size:.875rem}
.pipe__s p{font-size:.6875rem;color:var(--ink-3);line-height:1.55}

/* ---- DECISIONS ---------------------------------------------------------- */
.decisions{display:flex;flex-direction:column;gap:var(--s4)}
.dec{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);overflow:hidden;transition:box-shadow var(--d-2)}
.dec:hover{box-shadow:var(--sh-2)}
.dec__t{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s4);
  align-items:center;width:100%;text-align:left;padding:clamp(1.1rem,2vw,1.4rem)}
.dec__no{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  border-radius:var(--r-sm);background:var(--pa-bg);color:var(--pa-ink);
  font-family:var(--f-mono);font-size:.75rem;font-weight:700;flex:none}
.dec__t h3{font-size:clamp(1rem,1.4vw,1.125rem)}
.dec__tw{width:28px;height:28px;display:grid;place-items:center;color:var(--ink-4);
  background:var(--paper-2);border-radius:var(--r-sm);flex:none;font-weight:600;
  transition:transform var(--d-2) var(--e-out),color var(--d-1),background var(--d-1)}
.dec__t[aria-expanded="true"] .dec__tw{transform:rotate(45deg);color:var(--pa-ink);background:var(--pa-bg)}
.dec__p{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--d-3) var(--e-out)}
.dec__p[data-open="true"]{grid-template-rows:1fr}
.dec__p > div{overflow:hidden;min-height:0}
.dec__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;
  background:var(--hairline)}
.dec__cell{background:var(--paper);padding:clamp(1.1rem,2vw,1.4rem);
  display:flex;flex-direction:column;gap:.5rem}
.dec__cell b{font-size:.625rem;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}
.dec__cell p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.65}
.dec__cell--result{background:var(--pa-bg)}
.dec__cell--result b{color:var(--pa-ink)}

/* ---- OUTCOMES ----------------------------------------------------------- */
.outs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem)}
@media (max-width:900px){.outs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.outs{grid-template-columns:1fr}}
.out{background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:clamp(1.15rem,2vw,1.5rem);
  display:flex;flex-direction:column;gap:var(--s3);
  transition:box-shadow var(--d-2),transform var(--d-2)}
.out:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.out h3{font-size:1rem}
.out p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.6}
.out__ev{margin-top:auto;padding-top:var(--s3)}

/* ---- LEARNINGS ---------------------------------------------------------- */
.learn{display:flex;flex-direction:column;gap:var(--s4)}
.learn__i{display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:var(--s4) clamp(1rem,2.4vw,2rem);align-items:start;
  background:var(--paper);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:clamp(1.15rem,2vw,1.6rem)}
.learn__n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:var(--r-sm);background:var(--pa-bg);color:var(--pa-ink);
  font-family:var(--f-mono);font-size:.75rem;font-weight:700;flex:none}
.learn__b{display:flex;flex-direction:column;gap:var(--s3);min-width:0}
.learn__b h3{font-size:clamp(1.0625rem,1.6vw,1.25rem);max-width:40ch}
.learn__b p{font-size:var(--t-sm);color:var(--ink-2);line-height:1.68;max-width:66ch}

/* ---- NEXT --------------------------------------------------------------- */
.next{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  gap:clamp(.75rem,1.6vw,1.15rem)}
.next__i{background:var(--paper);border-radius:var(--r);box-shadow:var(--sh-1);
  padding:var(--s4);display:flex;flex-direction:column;gap:.45rem}
.next__i b{font-size:.625rem;font-weight:600;color:var(--pa-ink);
  text-transform:uppercase;letter-spacing:.04em}
.next__i h4{font-size:.9375rem}
.next__i p{font-size:var(--t-xs);color:var(--ink-3);line-height:1.55}

/* ---- LEDGER ------------------------------------------------------------- */
.ledger-wrap{background:var(--paper);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2)}
.ledger{min-width:740px;font-size:var(--t-sm)}
.ledger thead th{font-size:.6875rem;font-weight:600;color:var(--ink-3);text-align:left;
  padding:var(--s4);background:var(--paper-2);border-bottom:1px solid var(--hairline)}
.ledger td{padding:var(--s4);border-bottom:1px solid var(--hairline);color:var(--ink-2);
  line-height:1.6;vertical-align:top}
.ledger tr:last-child td{border-bottom:0}
.ledger td:first-child{color:var(--ink);font-weight:500}
.ledger tr:hover td{background:var(--paper-2)}

/* ---- EVIDENCE KEY ------------------------------------------------------- */
.evkey{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  gap:clamp(.75rem,1.6vw,1.15rem)}
.evkey__i{background:var(--paper);border-radius:var(--r);box-shadow:var(--sh-1);
  padding:var(--s4);display:flex;flex-direction:column;gap:.5rem}
.evkey__i p{font-size:var(--t-xs);color:var(--ink-3);line-height:1.55}

/* ---- FOOTER ------------------------------------------------------------- */
.foot{
  background:var(--ink);color:#fff;
  padding-block:var(--s9) var(--s6);margin-top:var(--sec-y)}
.foot__top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,4rem);padding-bottom:var(--s7)}
@media (max-width:820px){.foot__top{grid-template-columns:1fr}}
.foot h2{font-size:clamp(1.75rem,3.4vw,2.5rem);letter-spacing:-.028em;line-height:1.14;color:#fff}
.foot .label--accent{color:var(--pa)}
.foot .body{color:rgba(255,255,255,.55)}
.foot__links{display:flex;flex-direction:column;gap:.5rem}
.foot__l{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding:var(--s5);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-lg);color:rgba(255,255,255,.7);
  transition:all var(--d-2)}
.foot__l:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15);color:#fff}
.foot__l span{font-size:.6875rem;font-weight:600;color:rgba(255,255,255,.35)}
.foot__bot{display:flex;flex-wrap:wrap;gap:var(--s4);justify-content:space-between;
  padding-top:var(--s5);border-top:1px solid rgba(255,255,255,.08)}
.foot__bot p{font-size:var(--t-xs);color:rgba(255,255,255,.3)}
