:root{
  --ink:#17325F; --ink-soft:#4A5F80; --label:#22406E;
  --gold:#C9A227; --gold-deep:#A8821C;
  --white:#fff; --bone:#F4F1E8; --rule:#E3E0D6; --grey:#8A879A;
  --anchor:#17325F; --fuse:#4C2FBF; --pitch:#0E8A8A; --shape:#C9821C; --loop:#7B3FE4;
  --green:#2C6B41; --red:#8C3A2E;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--sans);background:var(--white);color:var(--ink);line-height:1.6;font-size:1.06rem;-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden}
.wrap{max-width:1260px;margin:0 auto;padding:0 36px}
a{color:inherit}
ul{list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.018em}
section{padding:120px 0}
.rule{height:1px;background:var(--rule)}
.eyebrow{font-size:0.68rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--gold-deep)}
.eyebrow.gold{color:var(--gold)}

/* NAV */
nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:112px;gap:34px}
.brandlink{text-decoration:none;display:flex;flex-direction:column;line-height:1}
.bname{font-family:var(--serif);font-size:2.05rem;letter-spacing:-.03em;line-height:1.05;display:block;white-space:nowrap}
.bname.small{font-size:1.9rem}
.bkick{font-size:0.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;margin-top:6px;display:block;white-space:nowrap}
.bexp{font-size:0.5rem;letter-spacing:.06em;color:var(--ink-soft);margin-top:3px;display:block;white-space:nowrap;opacity:.75}
.navlinks{display:flex;gap:16px;font-size:0.78rem;font-weight:600;margin-left:auto}
.navlinks a{text-decoration:none;color:var(--ink-soft);padding:7px 0;border-bottom:2px solid transparent;white-space:nowrap}
.navlinks a:hover{color:var(--ink);border-bottom-color:var(--gold)}
.navcta{background:var(--ink);color:var(--white);padding:13px 20px;text-decoration:none;font-size:0.78rem;font-weight:600;white-space:nowrap;margin-left:22px}
.link{font-size:0.88rem;font-weight:600;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:3px;color:var(--ink)}

/* HERO */
.hero{padding:132px 0 110px}
.hero h1{font-size:clamp(2.25rem,5.12vw,4.1rem);max-width:26ch;font-weight:600;margin-top:20px;line-height:1.12}
.hero h1 em{font-style:italic;color:var(--gold-deep)}
.hero .sub{margin-top:38px;max-width:62ch;font-size:1.45rem;font-family:var(--serif);color:var(--ink-soft);line-height:1.5}
.hero .cta{margin-top:54px;display:flex;gap:36px;align-items:center;flex-wrap:wrap}
.btn{display:inline-block;background:var(--ink);color:var(--white);padding:18px 38px;text-decoration:none;font-size:0.88rem;font-weight:600}

/* FIGURES */
.figs{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.figgrid{display:grid;grid-template-columns:repeat(4,1fr)}
.fig{padding:56px 36px 56px 0}
.fig b{font-family:var(--serif);display:block;font-size:3rem;font-weight:300;line-height:1}
.fig span{font-size:0.88rem;color:var(--ink-soft);display:block;margin-top:16px;max-width:26ch}

/* HEADS */
.head{max-width:56ch;margin-bottom:48px}
.head.wide{max-width:72ch}
.head.spaced{margin-top:104px}
.head h2{font-size:clamp(1.8rem,2.81vw,2.25rem);margin-top:16px;font-weight:600;line-height:1.2}
.head h2.mega{font-size:clamp(3rem,5.12vw,4.1rem);letter-spacing:-.04em}
.headnote{max-width:60ch;margin-top:24px;color:var(--ink-soft);font-size:1.06rem}
.expand{font-family:var(--serif);font-size:clamp(1.22rem,2.25vw,1.8rem);color:var(--ink);margin-top:20px;line-height:1.36;max-width:42ch}

/* THREE COLUMNS */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:58px;align-items:start}
.three .bar,.pv .bar{display:block;width:40px;height:2px;background:var(--gold);margin-bottom:24px}
.three h3{font-size:1.45rem;margin-bottom:16px}
.three p{color:var(--ink-soft);font-size:1.06rem}

/* ACRONYM */
.acro{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:84px}
.acro div{padding:36px 20px 36px 0}
.acro b{font-family:var(--serif);display:block;font-size:3rem;font-weight:600;line-height:1;color:var(--gold-deep)}
.acro span{display:block;font-size:0.88rem;color:var(--ink);margin-top:14px;font-weight:600}

/* FRAMEWORK DIAGRAM */
.fwtitle{font-size:clamp(1.8rem,2.81vw,2.25rem);font-weight:300;margin-bottom:12px}
.fwsub{color:var(--ink-soft);font-size:1.06rem;margin-bottom:46px;max-width:70ch}
.diagscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.diagram{border:1px solid var(--rule);background:var(--bone);min-width:1000px}
.dgrid{display:grid;grid-template-columns:262px repeat(4,1fr)}
.dcell{padding:26px 22px;border-left:1px solid var(--rule);border-top:1px solid var(--rule)}
.anchorcol{grid-row:span 4;background:var(--anchor);color:var(--white);border-left:none;border-top:none;
  display:flex;flex-direction:column;text-decoration:none}
.acname{font-family:var(--serif);font-size:1.8rem;line-height:1.08;color:var(--white);display:block}
.acit{font-family:var(--serif);font-style:italic;color:#C4C1DC;font-size:1.06rem;margin-top:12px;display:block}
.aclab{font-size:0.68rem;letter-spacing:.19em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:28px 0 14px;display:block}
.actool{display:block;font-size:0.88rem;color:#D6D3E8;line-height:1.85}
.acgate{margin-top:auto;padding-top:26px;font-size:0.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;display:block}
.dhead{background:var(--white);text-decoration:none;display:block;transition:background .16s}
.dhead:hover{background:#FCFBF7}
.mvname{font-family:var(--serif);font-size:2.25rem;line-height:1.04;display:block}
.mvrole{font-size:0.78rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;margin-top:10px;display:block}
.mvsub{font-family:var(--serif);font-style:italic;font-size:1.06rem;color:var(--ink-soft);margin-top:10px;display:block}
.gomore{margin-top:16px;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);opacity:0;transition:opacity .16s;display:block}
.dhead:hover .gomore,.anchorcol:hover .acgate{opacity:1}
.dlab{font-size:0.68rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;margin-bottom:12px}
.dbox{background:var(--white);border:1px solid var(--rule);padding:11px 14px;font-size:0.88rem;font-weight:600;margin-bottom:7px;line-height:1.4}
.dtool{font-size:0.88rem;color:var(--ink-soft);line-height:1.75}
.dquote{font-family:var(--serif);font-style:italic;font-size:1.06rem;color:var(--ink);border-left:3px solid;padding-left:15px}
.fuse{color:var(--fuse)} .pitch{color:var(--pitch)} .shape{color:var(--shape)} .loop{color:var(--loop)}
.dquote.fuse{border-color:var(--fuse)} .dquote.pitch{border-color:var(--pitch)}
.dquote.shape{border-color:var(--shape)} .dquote.loop{border-color:var(--loop)}
.dbox,.dtool{color:var(--ink)}
.curverow{border-top:1px solid var(--rule);background:var(--white);height:130px}
.curverow svg{width:100%;height:130px;display:block}
.states{display:grid;grid-template-columns:262px repeat(4,1fr);border-top:1px solid var(--rule);background:var(--white)}
.state{padding:22px 22px 28px;border-left:1px solid var(--rule)}
.state.lead{border-left:none;background:var(--bone)}
.slab{font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;display:block;margin-bottom:8px}
.sname{display:block;font-size:1.06rem;font-weight:600}
.sdesc{display:block;font-size:0.88rem;color:var(--ink-soft);margin-top:7px;line-height:1.5}
.loopback{background:var(--anchor);color:var(--gold);font-size:0.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:16px 26px;text-align:right}

/* FIVE GAPS */
.gaps{border-top:1px solid var(--rule)}
.gap{display:grid;grid-template-columns:80px 1fr 1.4fr;gap:40px;padding:36px 0;border-bottom:1px solid var(--rule);align-items:start}
.gn{font-family:var(--serif);font-size:1.8rem;color:var(--gold-deep);line-height:1}
.gg{font-size:1.06rem;font-weight:600}
.gm{color:var(--ink-soft);font-size:1.06rem}
.glab,.mlab{display:block;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;margin-bottom:9px}
.glab{color:var(--red)} .mlab{color:var(--pitch)}
.srcnote{font-size:0.88rem;color:var(--ink-soft);font-style:italic;margin-top:28px}

/* HONEST */
.honest{display:grid;grid-template-columns:repeat(2,1fr);gap:66px;align-items:start}
.hcol h4{font-size:0.88rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;padding-bottom:15px;border-bottom:3px solid;margin-bottom:26px}
.hcol.win h4{color:var(--pitch);border-color:var(--pitch)}
.hcol.wont h4{color:var(--red);border-color:var(--red)}
.hcol li{padding:17px 0;border-bottom:1px solid var(--rule)}
.hcol b{display:block;font-size:1.06rem;margin-bottom:5px}
.hcol span{color:var(--ink-soft);font-size:0.88rem}

/* BAND */
.band{background:var(--ink);color:var(--white);padding:56px 48px;margin-top:60px;border-left:5px solid var(--gold)}
.bandtext{font-family:var(--serif);font-size:1.45rem;font-weight:300;margin-top:18px;max-width:64ch;line-height:1.45}

/* CASES */
.caselist{border-top:1px solid var(--rule)}
.case{display:grid;grid-template-columns:165px 1fr 255px;gap:46px;padding:46px 0;border-bottom:1px solid var(--rule);align-items:start;cursor:pointer;transition:background .16s}
.case:hover{background:var(--bone)}
.tag{font-size:0.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:8px 0;border-top:2px solid}
.t-phased{border-color:var(--gold-deep);color:var(--gold-deep)}
.t-hold{border-color:var(--red);color:var(--red)}
.t-full{border-color:var(--green);color:var(--green)}
.case h3{font-size:1.45rem;font-weight:600;margin-bottom:13px}
.case p{color:var(--ink-soft);font-size:1.06rem}
.case .meta{font-size:0.88rem;color:var(--ink-soft);line-height:1.7}
.case .more{display:block;margin-top:15px;font-size:0.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-deep);opacity:0;transition:opacity .16s}
.case:hover .more{opacity:1}

/* QUOTE */
.quote{background:var(--ink);color:var(--white);padding:120px 0}
.qbig{font-family:var(--serif);font-size:clamp(1.8rem,3.75vw,3rem);font-weight:600;line-height:1.3;margin-top:30px;max-width:34ch}
.qafter{font-size:1.06rem;color:#B7B4C8;max-width:62ch;margin-top:36px;line-height:1.7}

/* RESEARCH */
.res{border-top:1px solid var(--rule)}
.res li{display:grid;grid-template-columns:250px 1fr;gap:46px;padding:34px 0;border-bottom:1px solid var(--rule);align-items:start}
.res .src{font-size:0.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-deep);padding-top:5px}
.res p{color:var(--ink-soft);font-size:1.06rem}

/* ABOUT */
.about{background:var(--bone)}
.pv{display:grid;grid-template-columns:repeat(2,1fr);gap:66px;margin-bottom:84px;align-items:start}
.pv h3{font-size:1.8rem;font-weight:600;margin-bottom:18px}
.pv p{color:var(--ink-soft);font-size:1.06rem}
.valslab{margin-bottom:22px}
.vals{border-top:1px solid var(--rule)}
.vals li{padding:30px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:50px 1fr;gap:26px;align-items:start}
.vn{font-family:var(--serif);font-size:1.8rem;color:var(--gold-deep);line-height:1}
.vt b{font-weight:600;font-size:1.06rem;display:block;margin-bottom:6px}
.vt span{color:var(--ink-soft);font-size:1.06rem}

/* CONTACT */
.contact{padding:140px 0;text-align:center}
.contact h2{font-size:clamp(2.25rem,5.12vw,4.1rem);font-weight:600;max-width:20ch;margin:20px auto 0}
.cnote{color:var(--ink-soft);max-width:54ch;margin:26px auto 46px;font-size:1.06rem}
.mail{font-family:var(--serif);font-size:1.8rem;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:6px}

footer{border-top:1px solid var(--rule);padding:30px 0;font-size:0.68rem;color:var(--ink-soft)}
footer .wrap{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;align-items:baseline}
.ftag{font-family:var(--serif);font-style:italic;font-size:0.88rem;color:var(--gold-deep);letter-spacing:.01em;flex:0 0 auto}
footer .wrap>span:not(.ftag){flex:1 1 auto}
@media(max-width:820px){footer .wrap{flex-direction:column;gap:10px}}

/* OVERLAY */
#ov{position:fixed;inset:0;z-index:100;background:var(--white);overflow-y:auto;display:none}
#ov.on{display:block}
.ovbar{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);z-index:5}
.ovbar .wrap{display:flex;align-items:center;justify-content:space-between;height:112px}
.closeb{background:none;border:1px solid var(--rule);width:50px;height:50px;font-size:1.45rem;cursor:pointer;color:var(--ink);line-height:1}
.closeb:hover{background:var(--bone)}
.ovbody{padding:70px 0 130px}
.ovtitle{font-size:clamp(2.25rem,5.12vw,4.1rem);font-weight:600;max-width:30ch;margin-top:22px}
.ovlede{font-family:var(--serif);font-size:1.45rem;color:var(--ink-soft);max-width:64ch;margin-top:30px;line-height:1.5}
.ovtag{display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:9px 16px;border:1px solid}
.ovnums{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:62px 0}
.ovnum{padding:44px 30px 44px 0}
.ovnum b{font-family:var(--serif);display:block;font-size:2.25rem;font-weight:600;line-height:1.1}
.ovnum span{display:block;font-size:0.88rem;color:var(--ink-soft);margin-top:13px}
.ovgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:46px;margin-top:56px;align-items:start}
.ovgrid.one{grid-template-columns:1fr}
.ovblk h4{font-size:0.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;margin-bottom:15px}
.ovblk p{color:var(--ink-soft);font-size:1.06rem}
.ovband{background:var(--ink);color:var(--white);padding:56px 48px;margin:58px 0;border-left:5px solid var(--gold)}
.ovband p{font-family:var(--serif);font-size:1.45rem;font-weight:300;margin-top:18px;max-width:64ch;line-height:1.45}
.disc{font-size:0.88rem;color:var(--ink-soft);font-style:italic;margin-top:52px;max-width:74ch;border-top:1px solid var(--rule);padding-top:24px}

/* ===== MOVEMENT PAGES ===== */
.mvhero{color:#fff;padding:60px 0 92px}
.mvhero .back{display:inline-block;font-size:0.78rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.75);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:5px;margin-bottom:56px}
.mvhero .back:hover{color:#fff}
.mvhero .eyebrow{color:rgba(255,255,255,.72)}
.mvhero h1{font-family:var(--serif);font-size:clamp(3rem,5.12vw,4.1rem);font-weight:600;margin-top:20px;color:#fff;line-height:1}
.mvhero .role{font-family:var(--serif);font-style:italic;font-size:1.45rem;color:rgba(255,255,255,.85);margin-top:22px}
.decides{font-family:var(--serif);font-size:clamp(1.22rem,2.25vw,1.8rem);font-weight:600;line-height:1.42;max-width:78ch;margin-bottom:60px}
.gcards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:stretch}
.gcard{background:var(--bone);border-left:4px solid;padding:36px 34px}
.gcard h4{font-size:0.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:18px}
.gcard p{color:var(--ink-soft);font-size:1.06rem}
.keyfacts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:60px 0 0}
.keyfacts div{padding:34px 26px 34px 0}
.keyfacts h5{font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;margin-bottom:11px}
.keyfacts p{font-size:1.06rem;color:var(--ink)}
.journey{background:var(--bone);border:1px solid var(--rule);padding:38px 24px}
.journey svg{width:100%;height:auto;display:block;max-height:260px}
.statebox{margin-top:42px;border-left:4px solid var(--rule);padding-left:28px}
.statebox .lab{font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;display:block;margin-bottom:11px}
.statebox b{font-family:var(--serif);font-size:2.25rem;font-weight:300;display:block}
.statebox .d{color:var(--ink-soft);display:block;margin-top:9px}
.bigquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.45rem,2.81vw,2.25rem);font-weight:600;border-left:4px solid;padding-left:34px;margin-top:56px;max-width:36ch;line-height:1.34}
.twocol{display:grid;grid-template-columns:repeat(2,1fr);gap:66px;align-items:start}
.pill{display:inline-block;border:1px solid var(--rule);padding:10px 18px;font-size:0.88rem;margin:0 9px 9px 0;background:var(--bone)}
.ftd{display:grid;grid-template-columns:160px repeat(3,1fr);border-top:1px solid var(--rule)}
.ftd>div{padding:26px 26px 26px 0;border-top:1px solid var(--rule)}
.ftd .rowlab{font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);border-top:none}
.ftd .who{font-size:0.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--ink);display:block}
.ftd p{font-size:1.06rem;color:var(--ink-soft)}
.pagenav{display:flex;justify-content:space-between;gap:22px;padding:46px 0 100px;border-top:1px solid var(--rule)}
.pnav{font-family:var(--serif);font-size:1.45rem;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:5px}
.draftnote{margin-top:36px;background:#FFF8E1;border:1px dashed var(--gold-deep);padding:18px 22px;font-size:0.88rem;color:var(--gold-deep);max-width:78ch}

/* ===== RESPONSIVE ===== */
@media(max-width:1180px){
  .bname{font-size:2.2rem}
  .acro{grid-template-columns:repeat(3,1fr)}
  .ovgrid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  section{padding:84px 0}
  nav .wrap{height:92px}
  .bname{font-size:1.75rem}
  .figgrid,.ovnums,.acro,.keyfacts{grid-template-columns:repeat(2,1fr)}
  .three,.pv,.honest,.twocol,.gcards,.ovgrid,.ovgrid.one{grid-template-columns:1fr;gap:36px}
  .case,.gap{grid-template-columns:1fr;gap:16px}
  .case .more{opacity:1}
  .res li,.ftd{grid-template-columns:1fr;gap:8px}
  .ftd>div{padding-bottom:4px}
  .ftd .rowlab{display:none}
  .pagenav{flex-direction:column}
  .band,.ovband{padding:40px 28px}
}

.pnav.right{text-align:right}
.dlist{margin-top:20px}
.dlist .dbox{max-width:420px}

.dhead{border-top:none}
.anchorcol .acgate{opacity:.85}

/* ===== HEADER EXPANSION ===== */
.bname{font-size:3.2rem}

/* ===== HUMAN JOURNEY ROWS IN MAIN DIAGRAM ===== */
.humanrows{background:var(--white);border-top:1px solid var(--rule)}
.hrow{display:grid;grid-template-columns:262px repeat(4,1fr);border-bottom:1px solid var(--rule)}
.hrow.last{border-bottom:none}
.hlab{padding:24px 22px;font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);background:var(--bone)}
.hcell{padding:24px 22px;border-left:1px solid var(--rule);font-size:0.88rem;color:var(--ink-soft);line-height:1.55}
.hcell p{margin-bottom:5px}
.hcell .who{display:block;font-size:0.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;margin-top:12px;margin-bottom:2px}
.hcell .who:first-child{margin-top:0}

/* ===== INDUSTRY TAGS ON CASES ===== */
.sector{display:inline-block;font-size:0.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;padding:5px 10px;background:var(--bone);border:1px solid var(--rule);color:var(--ink-soft);margin-top:10px}
.sector.priv{background:#EEF5F0;border-color:#C6DDCE;color:#2C6B41}
.case .tagwrap{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.ovsector{display:inline-block;font-size:0.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:8px 14px;background:var(--bone);border:1px solid var(--rule);color:var(--ink-soft);margin-left:10px}

@media(max-width:900px){
  nav .wrap{min-height:0}
  .hrow{grid-template-columns:1fr}
  .hlab{padding:16px 22px}
  .hcell{border-left:none;border-top:1px solid var(--rule)}
}

/* ===== EXECUTIVE PASS ===== */
:root{ --ink-soft:#464372; --rule:#D6D2C4; --gold-exec:#9A7615; }
/* used by the Questions and First test panels and never defined, so those
   panels were rendering with no background at all */
:root{ --cream:#EFEADD; --rust:#8C3A2E; }
p{line-height:1.68}
h1,h2,h3{line-height:1.14}
.mvsummary{font-family:var(--serif);font-size:clamp(1.06rem,1.81vw,1.45rem);color:rgba(255,255,255,.92);max-width:62ch;margin-top:26px;line-height:1.5}
.catline{font-size:0.68rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--gold-exec);margin-bottom:26px}
.decides{font-size:clamp(1.45rem,2.25vw,1.8rem)}
.gcard{padding:32px 30px}
.gcards{gap:24px}
.statebox .lab{letter-spacing:.19em}
.journey{background:linear-gradient(180deg,#FBFAF6 0%,var(--bone) 100%)}
.pill{border-color:#CFCBBB;background:#FBFAF6}
.keyfacts div{padding:30px 26px 30px 0}
.ftd>div{padding:22px 26px 22px 0}
.dlist .dbox{margin-bottom:9px}
.pagenav{padding:52px 0 104px}
.navcta{padding:16px 28px}
nav .wrap{min-height:0}
.eyebrow,.dlab,.slab,.aclab,.acgate,.mvrole,.gomore,.hlab{letter-spacing:.19em}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold-exec);outline-offset:3px}
.navlinks a:hover{border-bottom-color:var(--gold-exec)}
.dhead:hover .gomore{color:var(--gold-exec)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important;animation:none !important}
}
@media(max-width:900px){
  section{padding:72px 0}
  .wrap{padding:0 24px}
  .navcta{padding:18px 26px}
  .pnav{padding-bottom:8px}
}

/* ===== ABOUT AND BOARDS ===== */
.firmdoes{border-left:5px solid var(--gold);padding-left:34px;margin-bottom:74px;max-width:74ch}
.fdtext{font-family:var(--serif);font-size:clamp(1.22rem,1.81vw,1.45rem);line-height:1.5;margin-top:20px}
.fdtext.strong{font-weight:600;color:var(--ink)}
.pv.three-up{grid-template-columns:repeat(3,1fr);gap:52px}
.whynow{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.wn{padding:46px 32px 46px 0;border-left:1px solid var(--rule)}
.wn:first-child{border-left:none}
.wn b{font-family:var(--serif);display:block;font-size:2.25rem;font-weight:300;line-height:1;color:var(--ink)}
.wn span{display:block;font-size:0.88rem;color:var(--ink-soft);margin-top:16px;line-height:1.62}
@media(max-width:900px){.pv.three-up,.whynow{grid-template-columns:1fr}.wn{border-left:none;border-top:1px solid var(--rule);padding:32px 0}.firmdoes{padding-left:22px}}

/* ===== THE PATTERN ===== */
.pattern{background:var(--ink);color:var(--white);padding:132px 0}
.pbig{font-family:var(--serif);font-size:clamp(2.25rem,5.12vw,4.1rem);font-weight:600;line-height:1.08;margin-top:26px;max-width:30ch}
.plede{font-family:var(--serif);font-size:clamp(1.22rem,1.81vw,1.45rem);color:#C6C3DA;max-width:70ch;margin-top:30px;line-height:1.55}
.pchart{margin-top:76px;border-top:1px solid rgba(255,255,255,.16)}
.pchead{display:grid;grid-template-columns:230px 1fr 300px;gap:28px;padding:18px 0;font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);border-bottom:1px solid rgba(255,255,255,.16)}
.prow{display:grid;grid-template-columns:230px 1fr 300px;gap:28px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.09);align-items:center}
.pname{font-size:1.06rem;font-weight:600}
.ptrack{position:relative;height:30px;display:flex;align-items:center}
.pbar{height:16px;border-radius:1px;transition:width .6s ease}
.pbar.acted{background:#3FA76A}
.pbar.slow{background:var(--gold)}
.pbar.late{background:#C4553F}
.pval{position:absolute;left:0;transform:translateX(0);padding-left:12px;font-size:0.78rem;font-weight:600;white-space:nowrap;pointer-events:none}
.pbar.acted+.pval,.pbar.slow+.pval,.pbar.late+.pval{position:static;padding-left:14px;color:#DEDBEC}
.pnote{font-size:0.88rem;color:#AFACC6;line-height:1.55}
.pkey{margin-top:26px;font-size:0.78rem;color:#AFACC6;display:flex;flex-wrap:wrap;gap:26px;align-items:center}
.pkey .k{display:inline-block;width:26px;height:10px;margin-right:8px;vertical-align:middle}
.pkey .k.acted{background:#3FA76A}.pkey .k.slow{background:var(--gold)}.pkey .k.late{background:#C4553F}
.pfour{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:86px;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}
.pf{padding:44px 30px 44px 0;border-left:1px solid rgba(255,255,255,.12)}
.pf:first-child{border-left:none}
.pf b{font-family:var(--serif);display:block;font-size:3rem;font-weight:300;line-height:1;color:var(--gold)}
.pf span{display:block;font-size:0.88rem;color:#C6C3DA;margin-top:16px;line-height:1.6}
.pclose{margin-top:76px;border-left:5px solid var(--gold);padding-left:36px;max-width:76ch}
.pcq{font-family:var(--serif);font-size:clamp(1.22rem,2.25vw,1.8rem);font-weight:300;line-height:1.45}
.pca{font-size:1.06rem;color:var(--gold);margin-top:22px;font-weight:600}
@media(max-width:900px){
  .pchead{display:none}
  .prow{grid-template-columns:1fr;gap:10px;padding:24px 0}
  .pfour{grid-template-columns:1fr}
  .pf{border-left:none;border-top:1px solid rgba(255,255,255,.12);padding:32px 0}
  .pclose{padding-left:22px}
}

/* pattern fixes: consistent measure, breathing room on numbers */
.pmeasure{font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.16)}
.prow{grid-template-columns:250px 1fr 330px;padding:26px 0}
.pname{padding-right:20px}
.ptrack{gap:0}
.pval{padding-left:16px;color:#DEDBEC;font-size:0.88rem;font-weight:600;white-space:nowrap}
.pnote{padding-left:8px}
.pexcl{margin-top:30px;font-size:0.88rem;color:#AFACC6;font-style:italic;line-height:1.6;max-width:78ch;border-left:3px solid var(--gold);padding-left:20px}
.pfour{margin-top:96px}
.pf{padding:48px 34px 48px 0}
.pf:first-child{padding-left:0}
.pf b{font-size:3rem}
.pf span{padding-right:8px}
.pchart{margin-top:82px;border-top:none}
@media(max-width:900px){.prow{grid-template-columns:1fr}.pf{padding:34px 0}}

/* ================= AUDIT FIXES ================= */
/* Systematic: every grid cell with a dividing line now has left padding.
   Previously text sat flush against the border on nine components. */
.fig{padding:56px 34px 56px 30px}
.figgrid>.fig:first-child{padding-left:0}
.fig{border-left:1px solid var(--rule)}
.figgrid>.fig:first-child{border-left:none}
.acro div{padding:36px 22px 36px 24px;border-left:1px solid var(--rule)}
.acro div:first-child{padding-left:0;border-left:none}
.keyfacts div{padding:32px 26px 32px 28px;border-left:1px solid var(--rule)}
.keyfacts div:first-child{padding-left:0;border-left:none}
.ovnum{padding:44px 28px 44px 28px;border-left:1px solid var(--rule)}
.ovnums>.ovnum:first-child{padding-left:0;border-left:none}
.wn{padding:46px 32px 46px 32px}
.whynow>.wn:first-child{padding-left:0}
.pf{padding:48px 32px 48px 32px}
.pfour>.pf:first-child{padding-left:0}
.ftd>div{padding:24px 26px 24px 26px}
.ftd>div:nth-child(4n+1){padding-left:0}
.state{padding:24px 24px 30px 26px}
.state.lead{padding-left:0}
.dcell{padding:26px 24px}
.hcell{padding:24px 24px 24px 26px}
.pnote{padding-left:14px}
.prow{padding:28px 0}

/* Case list: names and verdicts larger and firmer, as requested */
.case{grid-template-columns:190px 1fr 270px;gap:48px;padding:52px 0}
.case h3{font-size:1.8rem;font-weight:600;margin-bottom:15px;letter-spacing:-.02em}
.case p{font-size:1.06rem}
.tag{font-size:0.78rem;font-weight:700;letter-spacing:.12em;padding:11px 0 9px;border-top-width:3px}
.sector{font-size:0.68rem;padding:6px 11px;margin-top:12px}
.case .meta{font-size:0.88rem;padding-left:2px}
.case .more{font-size:0.78rem;margin-top:18px}

/* About sits high on the page now, so give it a clean top edge */
.about{border-top:1px solid var(--rule)}
.firmdoes{margin-bottom:68px}

/* Pattern chart: numbers clear of the bars and the notes clear of each other */
.prow{grid-template-columns:260px 1fr 320px;gap:34px}
.pval{padding-left:18px}
.pname{font-size:1.06rem;padding-right:24px}

@media(max-width:900px){
  .fig,.acro div,.keyfacts div,.ovnum,.wn,.pf,.state,.hcell{padding-left:0;border-left:none}
  .case{grid-template-columns:1fr;gap:18px;padding:38px 0}
  .case h3{font-size:1.45rem}
}

/* ---- CASE MAP ---- */
.cmwrap{margin-bottom:88px}
.cmtitle{max-width:58ch;margin-bottom:38px}
.cmtitle h3{font-size:clamp(1.8rem,2.81vw,2.25rem);font-weight:600;margin:14px 0 14px}
.cmtitle p{color:var(--ink-soft);font-size:1.06rem}
.casemap{border:1px solid var(--rule);background:var(--bone);overflow-x:auto}
.cmhead,.cmrow{display:grid;grid-template-columns:210px repeat(3,1fr);min-width:900px}
.cmhead{border-bottom:1px solid var(--rule);background:var(--white)}
.cmcorner{border-right:1px solid var(--rule)}
.cmcol{padding:22px 22px 20px 24px;border-right:1px solid var(--rule)}
.cmcol:last-child{border-right:none}
.cmcol b{font-family:var(--serif);font-size:1.22rem;font-weight:400;display:block}
.cmcol span{display:block;font-size:0.78rem;color:var(--ink-soft);margin-top:7px;line-height:1.45}
.cmcol i{display:block;font-style:normal;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;
  font-weight:700;margin-top:14px;color:var(--gold-deep)}
.cmcol.full b{color:var(--green)} .cmcol.hold b{color:var(--red)}
.cmrow{border-bottom:1px solid var(--rule)}
.cmrow:last-child{border-bottom:none}
.cmlab{padding:24px 22px 24px 24px;border-right:1px solid var(--rule);background:var(--white);
  border-left:5px solid var(--ink)}
.cmlab b{font-family:var(--serif);font-size:1.22rem;font-weight:400;display:block;line-height:1.15}
.cmlab span{display:block;font-size:0.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  color:var(--grey);margin-top:9px}
.cmlab.o-pub{border-left-color:var(--anchor)}
.cmlab.o-priv{border-left-color:var(--pitch)}
.cmlab.o-npo{border-left-color:var(--loop)}
.cmcell{padding:16px 16px 16px 18px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:8px}
.cmcell:last-child{border-right:none}
.cmtile{display:block;background:var(--white);border:1px solid var(--rule);border-left:4px solid var(--ink);
  padding:12px 14px;cursor:pointer;text-decoration:none;transition:transform .13s,box-shadow .13s}
.cmtile:hover{transform:translateX(3px);box-shadow:0 2px 12px rgba(30,27,75,.09)}
.cmtile b{display:block;font-size:0.88rem;font-weight:600;line-height:1.25;color:var(--ink)}
.cmtile span{display:block;font-size:0.78rem;color:var(--ink-soft);margin-top:5px}
.cmtile.o-pub{border-left-color:var(--anchor)}
.cmtile.o-priv{border-left-color:var(--pitch)}
.cmtile.o-npo{border-left-color:var(--loop)}
.cmnone{font-size:0.78rem;color:var(--grey);letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  align-self:flex-start;padding:12px 2px}
.cmnote{margin-top:26px;font-size:0.88rem;color:var(--ink-soft);max-width:74ch;font-style:italic}

/* sector tag inside the pattern chart */
.psec{display:inline-block;font-size:0.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  margin-left:0;margin-top:8px;padding:3px 8px;border:1px solid var(--rule);color:var(--grey)}
.psec.s-npo{color:var(--loop);border-color:var(--loop)}
.pname{display:flex;flex-direction:column;align-items:flex-start}

/* list ownership tags */
.sector.o-priv{color:var(--pitch);border-color:var(--pitch)}
.sector.o-npo{color:var(--loop);border-color:var(--loop)}

/* off scale bar in the pattern chart */
.pbar.over{background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.30) 0 7px,transparent 7px 15px)}
.psec.s-pub{color:var(--grey)}

/* ================= THE PATTERN, REBUILT ================= */
.psub{max-width:82ch;color:#B9B5D6;font-size:1.06rem;margin:22px 0 34px;line-height:1.6}
.psplit{height:1px;background:rgba(255,255,255,.16);margin:86px 0 64px}
.pmid2{font-family:var(--serif);font-size:clamp(1.45rem,2.81vw,2.25rem);font-weight:300;color:#fff;margin-top:16px}

/* paired comparison */
.ppair{border-top:1px solid rgba(255,255,255,.22)}
.prhead,.prrow{display:grid;grid-template-columns:1fr 1fr;gap:0}
.prh{padding:22px 30px 22px 26px}
.prh b{display:block;font-family:var(--serif);font-size:1.45rem;font-weight:400;color:#fff}
.prh span{display:block;font-size:0.88rem;color:#9E9BC0;margin-top:8px}
.prh.a{background:rgba(201,162,39,.13);border-left:4px solid var(--gold)}
.prh.b{background:rgba(255,255,255,.04);border-left:1px solid rgba(255,255,255,.16)}
.prrow{border-top:1px solid rgba(255,255,255,.14)}
.prleft{padding:30px 34px 32px 26px;border-left:4px solid var(--gold);background:rgba(201,162,39,.07);position:relative}
.prright{padding:30px 30px 32px 30px;border-left:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.14)}
.prnum{display:block;font-family:var(--serif);font-size:0.88rem;color:var(--gold);letter-spacing:.1em;margin-bottom:12px}
.prleft b{display:block;font-family:var(--serif);font-size:1.45rem;font-weight:400;color:#fff;line-height:1.28}
.prmv{display:block;font-size:0.68rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;margin-top:14px}
.prtest{display:block;font-size:0.88rem;color:#A9A5CB;margin-top:14px;line-height:1.55;font-style:italic}
.prright b{display:block;font-size:1.06rem;font-weight:600;color:#F2EFE6;line-height:1.42}
.pranch{display:block;font-size:0.88rem;color:#9E9BC0;margin-top:14px;line-height:1.6}
.prcount{display:block;margin-top:20px;font-size:0.78rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;color:var(--gold)}
.prcount i{font-style:normal;font-size:1.45rem;font-family:var(--serif);letter-spacing:0;vertical-align:-2px;
  margin-right:6px}

/* evidence grid */
.pgwrap{margin-top:12px}
.pgkey{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:22px;font-size:0.78rem;color:#B9B5D6}
.pgkey span{display:flex;align-items:center;gap:9px}
.pgkey i,.pgcell i{display:block;width:17px;height:17px}
.pgcell i.miss{background:var(--gold)}
.pgcell i.done{background:transparent;border:2px solid #6FBF8B;border-radius:50%}
.pgcell i.unk{background:repeating-linear-gradient(45deg,rgba(255,255,255,.26) 0 3px,transparent 3px 6px)}
.pgkey i.miss{background:var(--gold)}
.pgkey i.done{background:transparent;border:2px solid #6FBF8B;border-radius:50%}
.pgkey i.unk{background:repeating-linear-gradient(45deg,rgba(255,255,255,.26) 0 3px,transparent 3px 6px)}
.pgscroll{overflow-x:auto}
.pgrid{min-width:880px;border-top:1px solid rgba(255,255,255,.2)}
.pgrow{display:grid;grid-template-columns:290px repeat(5,1fr);align-items:center;
  border-bottom:1px solid rgba(255,255,255,.09)}
.pgrow.pghead{border-bottom:1px solid rgba(255,255,255,.3)}
.pghead .pgcol{padding:16px 12px;font-size:0.68rem;line-height:1.35;color:#B9B5D6;font-weight:600;
  border-left:1px solid rgba(255,255,255,.09)}
.pghead .pgname{padding:16px 0;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;
  font-weight:700;color:var(--gold)}
.pgname{padding:13px 16px 13px 0;display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
.pgname b{font-size:0.88rem;font-weight:600;color:#F2EFE6}
.pgown{font-size:0.68rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:#8985B4;
  border:1px solid rgba(255,255,255,.2);padding:2px 7px}
.pgown.o-priv{color:#6FD3D3;border-color:rgba(111,211,211,.42)}
.pgown.o-npo{color:#B48CF5;border-color:rgba(180,140,245,.42)}
.pgcell{display:flex;justify-content:center;padding:13px 0;border-left:1px solid rgba(255,255,255,.09)}
.pgfoot{border-bottom:none;border-top:1px solid rgba(255,255,255,.3)}
.pgfoot .pgname{font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--gold);
  padding:20px 0}
.pgfoot .pgcol{text-align:center;padding:18px 8px;border-left:1px solid rgba(255,255,255,.09)}
.pgfoot .pgcol b{display:block;font-family:var(--serif);font-size:1.8rem;font-weight:300;color:var(--gold)}
.pgfoot .pgcol span{display:block;font-size:0.68rem;color:#8985B4;margin-top:3px}

/* two axis field */
.pfwrap{overflow-x:auto;margin-top:10px}
.pfield{width:100%;min-width:760px;height:auto;display:block}
.pfield text{font-family:var(--sans);fill:#B9B5D6}
.pfield .fy{font-size:0.88rem;text-anchor:end;font-weight:600;fill:#E6E3F2}
.pfield .fx{font-size:0.88rem;text-anchor:middle;font-weight:600;fill:#E6E3F2}
.pfield .fxs{font-size:0.68rem;text-anchor:middle;fill:#8985B4}
.pfield .faxis{font-size:0.68rem;letter-spacing:.19em;text-anchor:middle;font-weight:700;fill:#C9A227}
.fdot circle{cursor:default;transition:r .12s}
.fdot:hover circle{r:17}

/* mid flight */
.pmidflight{border-left:4px solid var(--gold);padding:34px 40px 36px 30px;background:rgba(255,255,255,.05)}
.pmidflight h3{font-family:var(--serif);font-size:clamp(1.45rem,2.81vw,2.25rem);font-weight:600;color:#fff;margin:14px 0 18px}
.pmidflight p{color:#C4C1DC;font-size:1.06rem;line-height:1.62;max-width:88ch}
.pmidflight p+p{margin-top:16px}

@media(max-width:900px){
  .prhead,.prrow{grid-template-columns:1fr}
  .prright{border-left:4px solid rgba(255,255,255,.2)}
  .prh.b{border-left:4px solid rgba(255,255,255,.2)}
}

/* legend for the two axis field */
.pfkey{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:26px;
  border-top:1px solid rgba(255,255,255,.16);padding-top:24px}
.pfkey span{display:block;font-size:0.88rem;color:#9E9BC0;line-height:1.5;padding-left:30px;position:relative}
.pfkey i{position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%}
.pfkey b{display:block;color:#F2EFE6;font-weight:600;font-size:0.88rem;margin-bottom:4px}
.pfnote{margin-top:22px;font-size:0.88rem;color:#8985B4;font-style:italic;max-width:80ch}
@media(max-width:900px){.pfkey{grid-template-columns:1fr;gap:16px}}

/* diagnostics that are specified and not yet built */
.dtool.indev,.pill.indev{position:relative}
.dtool.indev em,.pill.indev em{display:inline-block;font-style:normal;font-size:0.68rem;letter-spacing:.15em;
  text-transform:uppercase;font-weight:700;color:var(--gold-deep);border:1px solid var(--rule);
  padding:2px 7px;margin-left:9px;vertical-align:1px;white-space:nowrap}
.toolnote{margin-top:22px;font-size:0.88rem;color:var(--ink-soft);max-width:78ch;line-height:1.6}
.toolnote em{font-style:normal;font-weight:700;color:var(--gold-deep);letter-spacing:.06em}

/* the first test, stated as a question the reader can answer themselves */
.pflag{border-left:4px solid var(--red);padding:36px 42px 38px 32px;background:rgba(140,58,46,.16)}
.pflag h3{font-family:var(--serif);font-size:clamp(1.45rem,2.81vw,2.25rem);font-weight:600;color:#fff;
  margin:14px 0 22px;line-height:1.18}
.pflag .pfq{font-family:var(--serif);font-style:italic;font-size:clamp(1.22rem,2.25vw,1.8rem);color:var(--gold);
  border-left:3px solid var(--gold);padding-left:20px;margin-bottom:22px;line-height:1.35}
.pflag p{color:#C4C1DC;font-size:1.06rem;line-height:1.62;max-width:86ch}
.pflag p+p{margin-top:14px}

/* ---- PATTERN, PLAIN ENGLISH PASS ---- */
.pmega{font-family:var(--serif);font-size:clamp(3rem,5.12vw,4.1rem);font-weight:600;color:#fff;
  letter-spacing:-.045em;line-height:.94;margin-bottom:18px}
.pmegasub{font-family:var(--serif);font-size:clamp(1.45rem,2.81vw,2.25rem);font-weight:600;color:var(--gold);
  line-height:1.2;margin-bottom:34px;max-width:26ch}
.plede2{max-width:80ch;color:#B9B5D6;font-size:1.06rem;line-height:1.62;margin-top:16px}
.pfhow{border-left:3px solid var(--gold);padding:18px 24px;margin-top:28px;background:rgba(255,255,255,.05);
  color:#C4C1DC;font-size:1.06rem;line-height:1.62;max-width:96ch}
.pfhow b{color:#fff}
.pgkey span b{color:#F2EFE6}
.prmv{font-size:0.68rem;letter-spacing:.13em}
.prcount{text-transform:none;letter-spacing:.02em;font-size:0.88rem;font-weight:600;color:#C4C1DC}
.prcount i{color:var(--gold)}
.pfield .fcount{font-size:0.78rem;text-anchor:middle;font-weight:700;fill:rgba(255,255,255,.42)}
.pfield .fy{font-size:0.88rem}
.pfield .fx{font-size:0.88rem}
.fdot:hover circle{r:13}

/* framework diagram tool names, larger and clearer */
.dtool{font-size:1.06rem;color:var(--ink);font-weight:600;line-height:1.7}
.actool{font-size:0.88rem;color:#E6E3F2;font-weight:600;line-height:1.75}

/* ================= SIX PAGE SPLIT ================= */
.navlinks a.on{color:var(--ink);border-bottom-color:var(--gold)}

/* page headers on inner pages */
.pagehead{padding:78px 0 62px;border-bottom:1px solid var(--rule)}
.pagehead h1{font-size:clamp(2.25rem,5.12vw,4.1rem);font-weight:600;letter-spacing:-.04em;margin:20px 0 34px;
  line-height:.98}
.phlede{font-family:var(--serif);font-size:clamp(1.22rem,1.81vw,1.45rem);color:var(--ink);line-height:1.46;
  max-width:64ch;font-weight:300}
.phsub{margin-top:26px;color:var(--ink-soft);font-size:1.06rem;line-height:1.62;max-width:78ch}

/* homepage movement preview */
.mvprev{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.mvp{display:block;text-decoration:none;background:var(--bone);border:1px solid var(--rule);
  border-top:5px solid var(--ink);padding:28px 24px 26px;transition:transform .14s,box-shadow .14s}
.mvp:hover{transform:translateY(-3px);box-shadow:0 6px 22px rgba(30,27,75,.10)}
.mvp b{display:block;font-family:var(--serif);font-size:1.45rem;font-weight:400;line-height:1.12}
.mvp span{display:block;font-size:0.88rem;color:var(--ink-soft);margin-top:14px;line-height:1.52}
.mvp i{display:block;font-style:normal;font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--gold-deep);margin-top:20px}
.mvp.anchor{border-top-color:var(--anchor)} .mvp.fuse{border-top-color:var(--fuse)}
.mvp.pitch{border-top-color:var(--pitch)} .mvp.shape{border-top-color:var(--shape)}
.mvp.loop{border-top-color:var(--loop)}
.mvp.anchor b{color:var(--anchor)} .mvp.fuse b{color:var(--fuse)} .mvp.pitch b{color:var(--pitch)}
.mvp.shape b{color:var(--shape)} .mvp.loop b{color:var(--loop)}
.fwmore{margin-top:44px}

/* homepage featured cases */
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.fcard{display:block;background:var(--white);border:1px solid var(--rule);border-left:5px solid var(--rule);
  padding:32px 30px 30px;cursor:pointer;text-decoration:none;transition:transform .14s,box-shadow .14s}
.fcard:hover{transform:translateY(-3px);box-shadow:0 6px 22px rgba(30,27,75,.10)}
.fcard h3{font-size:1.45rem;margin:14px 0 16px;line-height:1.16}
.fcard p{font-size:1.06rem;color:var(--ink-soft);line-height:1.6}
.fv{display:inline-block;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;
  padding:5px 11px;border:1px solid}
.fv.t-full{color:var(--green);border-color:var(--green)}
.fv.t-hold{color:var(--red);border-color:var(--red)}
.fcard .more{display:block;margin-top:22px;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;
  font-weight:700;color:var(--gold-deep)}

/* contact page */
.cblock{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:78px;border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule)}
.cblock div{padding:38px 26px 38px 28px;border-left:1px solid var(--rule)}
.cblock div:first-child{border-left:none;padding-left:0}
.clab{display:block;font-size:0.68rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;
  color:var(--gold-deep);margin-bottom:14px}
.cblock b{font-family:var(--serif);font-size:1.45rem;font-weight:400}
.cnote{margin:34px auto 0 0;font-family:var(--serif);font-size:1.06rem;line-height:1.6;
  color:var(--ink-soft);max-width:76ch;text-align:left}
.cnote b{font-weight:600;color:var(--ink)}
.cmail a{font-family:var(--serif);font-size:clamp(1.45rem,2.25vw,1.8rem);color:var(--ink);
  border-bottom:2px solid var(--gold);text-decoration:none;padding-bottom:4px}

@media(max-width:1180px) and (min-width:1001px){
  .cblock{grid-template-columns:repeat(2,1fr)}
  .cblock div:nth-child(3){border-left:none;padding-left:0}
}

@media(max-width:1000px){
  .mvprev{grid-template-columns:1fr 1fr}
  .feat{grid-template-columns:1fr}
  .cblock{grid-template-columns:1fr}
  .cblock div{border-left:none;border-top:1px solid var(--rule);padding-left:0}
  .cblock div:first-child{border-top:none}
}

/* the record, predictions register */
.predlist{margin-top:54px;border-top:1px solid var(--rule)}
.pred{display:grid;grid-template-columns:224px 1fr;gap:56px;padding:52px 0;border-bottom:1px solid var(--rule)}
.predtag{display:inline-block;font-size:0.68rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;
  padding:6px 12px;border:1px solid currentColor;color:var(--gold-deep)}
.predtag.closed{color:var(--green)}
.predtag.wrong{color:var(--red)}
.pdate{margin-top:22px;font-size:0.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--grey);line-height:2}
.pdate b{display:block;font-family:var(--serif);font-size:1.06rem;font-weight:400;letter-spacing:0;
  text-transform:none;color:var(--ink);line-height:1.35;margin-top:3px}
.pnum{font-size:0.68rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);margin-bottom:12px}
.predbody h3{font-size:1.8rem;margin-bottom:14px}
.plede{color:var(--ink-soft);font-size:1.06rem;max-width:64ch;margin-bottom:26px}
.predrow{display:grid;grid-template-columns:190px 1fr;gap:28px;padding:15px 0;border-top:1px solid var(--rule)}
.prk{font-size:0.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);padding-top:5px}
.prv{font-family:var(--serif);font-size:1.06rem;line-height:1.55}
.prv.muted{color:var(--grey);font-style:italic}
@media(max-width:1000px){
  .pred{grid-template-columns:1fr;gap:26px;padding:38px 0}
  .predrow{grid-template-columns:1fr;gap:5px}
  .prk{padding-top:0}
}

/* ---- TOOL MAP AND MOVEMENT TABLES ---- */
.toolmap{padding:74px 0}
.tmgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:26px;margin-top:44px;align-items:end}
.tmcol{display:flex;flex-direction:column}
.tmcol b{font-family:var(--serif);font-size:3rem;font-weight:300;line-height:1}
.tmlab{font-size:0.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);font-weight:700;margin:6px 0 14px}
.tmbarwrap{height:190px;display:flex;align-items:flex-end;background:linear-gradient(var(--bone),var(--bone));background-size:100% 100%}
.tmbar{width:100%;min-height:6px}
.tmcol h4{font-size:1.06rem;margin:16px 0 6px;color:var(--ink);font-weight:600}
.tmsub{font-size:0.78rem;color:var(--grey);line-height:1.5}
.tmtot{margin-top:34px;font-size:1.06rem;color:var(--ink-soft)}
.tmtot b{color:var(--ink)}
.tmtable{margin-top:44px;border-top:2px solid var(--rule)}
.tmtable .thead{display:grid;grid-template-columns:300px 1fr 220px 1fr;gap:20px;padding:14px 0;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);border-bottom:1px solid var(--rule)}
.tmvhead{display:flex;justify-content:space-between;align-items:baseline;border-left:4px solid;padding:22px 0 10px 14px;margin-top:16px}
.tmvhead b{font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase}
.tmvhead span{font-size:0.68rem;color:var(--grey);font-weight:600}
.trow{display:grid;grid-template-columns:300px 1fr 220px 1fr;gap:20px;padding:13px 0 13px 14px;border-bottom:1px solid var(--rule);align-items:start}
.tname{font-weight:600;color:var(--ink);font-size:0.88rem}
.tcell i{font-style:normal;font-weight:700;font-size:0.88rem;margin-right:9px}
.tcell span{font-size:0.78rem;color:var(--grey);line-height:1.45}
.tcell .tfull{color:#2C6B41}.tcell .tpart{color:var(--gold-deep)}.tcell .tnone{color:#9A97A8}
@media(max-width:980px){
 .tmgrid{grid-template-columns:repeat(3,1fr);row-gap:40px}
 .tmtable .thead{display:none}
 .trow{grid-template-columns:1fr;gap:6px}
}

/* ---- PREDICTIONS REGISTER, MISSING RULES ---- */
.predmeta{align-self:start}
.predtag{display:block;font-size:0.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-deep)}
.predtag.open{color:var(--gold-deep)}
.predtag.closed{color:var(--green)}
.predtag.wrong{color:var(--red)}

/* ---- TOOL MAP, STREAMS AND RULES ---- */
.toolmap{padding:74px 0}
.tmline{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:44px;align-items:start}
.tmstage{display:flex;flex-direction:column}
.tmhead{padding:12px 12px 10px;color:#fff}
.tmhead b{display:block;font-size:0.88rem;font-weight:700;line-height:1.2}
.tmhead span{display:block;font-size:0.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.72;margin-top:5px}
.tmtools{list-style:none;margin:14px 0 0;padding:0;min-height:190px}
.tmtools li{font-size:0.78rem;color:var(--ink);padding:5px 0 5px 10px;border-left:2px solid var(--rule);line-height:1.35}
.tmdeliv{font-size:0.78rem;color:var(--grey);line-height:1.45;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--rule);min-height:76px}
.tmmode{margin:12px 0 0;padding:7px 10px;font-size:0.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#fff;text-align:center}
.mread{background:#17325F}.mlic{background:#C9821C}.mimp{background:#2C6B41}.mnever{background:#6B2E24}
.tmlegend{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:10px 14px;align-items:center;margin-top:34px;padding-top:24px;border-top:1px solid var(--rule)}
.tmlegend em{font-style:normal;font-size:0.78rem;color:var(--grey);line-height:1.45}
.smode{display:inline-block;padding:4px 10px;font-size:0.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#fff;white-space:nowrap}
.stable{margin-top:40px;border-top:2px solid var(--rule)}
.stable .shead{display:grid;grid-template-columns:250px 1fr 1fr 210px;gap:20px;padding:14px 0;font-size:0.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--gold-deep);border-bottom:1px solid var(--rule)}
.srow{display:grid;grid-template-columns:250px 1fr 1fr 210px;gap:20px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:start}
.sname{font-weight:600;color:var(--ink);font-size:0.88rem}
.sname .smode{display:block;width:fit-content;margin-top:7px}
.swho,.stools{font-size:0.78rem;color:var(--grey);line-height:1.5}
.sshape{font-size:0.78rem;color:var(--ink);font-weight:600;line-height:1.5}
.bigrule{font-family:var(--serif);font-size:1.45rem;font-weight:400;line-height:1.3;margin:6px 0 18px}
.rulelist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 30px}
.rulelist li{font-size:0.78rem;line-height:1.45}
.rulelist b{display:block;margin-bottom:3px}
.rulelist span{opacity:.78}
@media(max-width:980px){
 .tmline{grid-template-columns:repeat(2,1fr);row-gap:28px}
 .tmtools{min-height:0}.tmdeliv{min-height:0}
 .tmlegend{grid-template-columns:auto 1fr}
 .stable .shead{display:none}
 .srow{grid-template-columns:1fr;gap:6px}
 .rulelist{grid-template-columns:1fr}
}

/* ---- generic column inside a three-up or two-up band ---- */
.col{display:flex;flex-direction:column}
.col .bar{display:block;width:44px;height:3px;background:var(--gold);margin-bottom:16px}
.col h3{font-size:1.06rem;margin:0 0 10px;color:var(--ink);font-weight:600}
.col p{font-size:0.88rem;line-height:1.62;color:var(--grey);margin:0}

/* ---- THE PUBLISHED RECORD BEHIND EACH CASE ---- */
.ovsrc{margin-top:26px;padding:22px 24px;background:var(--cream);border-left:3px solid var(--gold-deep)}
.ovsrc p{margin:0}
.ovsrc p.eyebrow{margin-bottom:8px}
.ovsrc p:last-child{font-size:0.78rem;line-height:1.6;color:var(--grey)}

/* ===== ported from the design pass, 21 Aug 2026 ===== */
/* ===== FOUNDER PAGE ===== */
.fgrid{display:grid;grid-template-columns:320px 1fr;gap:64px;align-items:start;margin-bottom:96px}

.fphoto{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--bone);border:1px solid var(--rule)}

.fbio p{color:var(--ink-soft);font-size:1.06rem;margin-top:20px}

.fbio p:first-child{margin-top:0}

.fbio .fcred{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule);font-size:0.88rem;color:var(--ink-soft)}

.fquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.22rem,1.81vw,1.45rem);border-left:4px solid var(--gold);padding-left:28px;line-height:1.5;color:var(--ink);max-width:70ch}

.fask{font-family:var(--serif);font-size:clamp(1.22rem,1.81vw,1.45rem);font-style:italic;color:var(--ink);margin:18px 0}

.fbig h2{font-size:clamp(1.45rem,3.75vw,3rem);line-height:1.25;font-weight:600}

/* ===== MOBILE NAV FIX ===== */
.navtoggle{display:none;margin-left:auto;background:none;border:none;width:46px;height:46px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0}

.navtoggle:hover{background:var(--bone)}

.navtoggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:1px}

.figgrid .fig:nth-child(1) b{color:var(--anchor)}

.figgrid .fig:nth-child(2) b{color:var(--pitch)}

.figgrid .fig:nth-child(3) b{color:var(--shape)}

.figgrid .fig:nth-child(4) b{color:var(--loop)}

/* ===== TITLES: SMALLER, BOLD ===== */
.hero h1{font-size:clamp(2.25rem,5.12vw,4.1rem);font-weight:600;max-width:26ch;line-height:1.12}

.pmega{font-size:clamp(2.25rem,5.12vw,4.1rem);font-weight:600;line-height:1.1}

@media(max-width:1250px){.bname{font-size:1.8rem;white-space:nowrap}}

.brandlink{flex-direction:row;align-items:center;gap:16px}
.btext{display:flex;flex-direction:column;line-height:1;min-width:0}

/* the nav carries the mark, nine links and a button on one line, so the space
   the mark needs comes out of the gaps rather than out of the type */
nav .wrap{gap:18px}
.navlinks{gap:11px}
.navcta{padding:15px 21px;margin-left:12px}
@media(max-width:900px){.brandlink{gap:12px}}

/* the mark, at size, in the empty right of the home page hero. Same element
   as the nav, same ratios, one turn every ninety seconds so it reads as calm
   rather than busy next to the headline. */
.hero.withmark .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:56px}
.herotext{min-width:0}
.heromark{justify-self:end}

@media(max-width:1180px){.heromark{padding:28px}.hero.withmark .wrap{gap:40px}}
@media(max-width:900px){
  .hero.withmark .wrap{grid-template-columns:1fr;gap:0}
  .heromark{justify-self:start;margin-top:52px}
  
}
/* the stacked menu sets its own spacing with padding and rules, so the desktop
   link gap must not leak into it */

/* ---------------------------------------------------------------- the type
   One scale, ten steps, used by every page. The site carried 123 different
   font sizes before this, which is why a heading on one page did not match a
   heading on another and why the same label read at four sizes. Point sizes
   inside the print rules are untouched, because print is measured in points.
   The wordmark is a logotype, set by eye, and sits off the scale on purpose. */
:root{
  --t1:0.68rem;  --t2:0.78rem;  --t3:0.88rem;  --t4:1.06rem;  --t5:1.22rem;
  --t6:1.45rem;  --t7:1.8rem;   --t8:2.25rem;  --t9:3rem;     --t10:4.1rem;
}
h1,h2,h3,h4,h5,h6{font-family:var(--serif)}
/* Family only. I had also set base sizes here, which silently enlarged every
   heading that relies on its own class rule's cascade, and made blocks like
   the Questions cards read too big. Sizes stay where the component sets them,
   and every one of those is now on the scale. */
body{font-size:var(--t4)}
/* the small screen bar keeps its own shorter closed height, and a long open
   menu scrolls inside itself rather than growing taller than the window */
@media(max-width:900px){nav .wrap{min-height:92px}}

/* ------------------------------------------------------------- the header
   Two rows, on every page, at every width. The brand and the button sit on
   the first line, the nine links on the second. One row needed a 1216px
   window, which is why the header changed shape between pages depending on
   window size and zoom. Two rows need 674px, so it never collapses and there
   is no hidden menu. */
nav{position:sticky;top:0;z-index:60;background:var(--white);border-bottom:1px solid var(--rule)}
nav .wrap{display:flex;align-items:center;height:auto;min-height:0;gap:24px}
.navtop{padding-top:20px;padding-bottom:16px;justify-content:space-between}
.navbar{padding-bottom:0;border-top:1px solid var(--rule)}
.navlinks{display:flex;flex-wrap:wrap;gap:0 26px;margin-left:0;font-size:var(--t2);font-weight:600}
.navlinks a{text-decoration:none;color:var(--ink-soft);padding:13px 0;border-bottom:2px solid transparent;
  white-space:nowrap;display:block}
.navlinks a:hover{color:var(--ink);border-bottom-color:var(--gold-exec)}
.navlinks a.on{color:var(--ink);border-bottom-color:var(--gold)}
.navcta{margin-left:0;flex:0 0 auto}
.navtoggle{display:none !important}
html{scroll-padding-top:190px}
@media(max-width:820px){
  .navtop{flex-wrap:wrap;gap:16px}
  .navlinks{gap:0 18px;font-size:var(--t1)}
  
}

/* the same mark, same dark ground, on every inner page header */
.pagehead.withmark .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:52px}
.headtext{min-width:0}
.headmark{justify-self:end}
.headmark 
@media(max-width:1100px){.headmark .pagehead.withmark .wrap{gap:34px}}
@media(max-width:820px){
  .pagehead.withmark .wrap{grid-template-columns:1fr;gap:0}
  .headmark{justify-self:start;margin-top:34px}
  .headmark 
}
.mvhero.withmark .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:52px}
@media(max-width:820px){
  .mvhero.withmark .wrap{grid-template-columns:1fr;gap:0}
}

/* headings carry weight on every page, not light display weights */
h1,h2,h3,h4,h5,h6{font-weight:600}

/* ---------------------------------------------------------------- the mark
   Nine tiles. A tessella is the single tile of a mosaic, which is what MOSAIC
   is named for. An indigo field, a gold cross, one deep maroon at the centre:
   an ordered field with one thing wrong at the heart, which is the thing the
   read goes looking for. No ring and no motion, so the mark is one state on
   screen and in print, and it survives at sixteen pixels. Tile size is set by
   the two numbers below, the padding and the gap. */
.brandlink{flex-direction:row;align-items:center;gap:16px}
.btext{display:flex;flex-direction:column;line-height:1;min-width:0}
.tmark{--m:62px;width:var(--m);height:var(--m);flex:0 0 auto;box-sizing:border-box;display:block}
.tmark svg{width:100%;height:100%;display:block}


.tmark.tbig{--m:300px}
.headmark .tmark.tbig{--m:190px}
@media(max-width:1100px){.tmark.tbig{--m:220px}.headmark .tmark.tbig{--m:150px}}
@media(max-width:820px){.tmark{--m:52px}.tmark.tbig{--m:min(190px,52vw)}.headmark .tmark.tbig{--m:min(150px,44vw)}}

.herotag{font-family:var(--serif);font-style:italic;font-size:clamp(1.06rem,1.7vw,1.45rem);color:var(--gold);letter-spacing:.01em;margin-top:14px}
.hero .herotag{color:#D9BC57}
