:root{
  /* ground — crisp white with cool blue tints (BCM deck system) */
  --white:#FFFFFF;
  --panel:#EAF1F8;        /* pale blue panel */
  --panel-2:#E8F2FB;      /* alt pale blue */
  --line:#CBD9E8;         /* blue hairline */
  /* structure — deep ink blue + sequential ramp */
  --ink:#0E3E6B;
  --ink-deep:#0A3358;
  --blue-2:#1B5288;
  --blue-3:#1C7FC4;
  --blue-4:#3D82C4;
  --blue-5:#7FB6E8;
  /* the one warm accent */
  --gold:#BE8A1C;
  --gold-cream:#FBF3E1;
  /* meaning colors only */
  --cited:#1F7A52;
  --flagged:#B03A2B;
  /* sector hues (cards only) */
  --teal:#0F7272;
  --violet:#5B3E96;
  --green:#1F7A52;
  --oxide:#8C4A2F;
  /* text */
  --text:#22282E;
  --muted:#5F6B76;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --disp:'Fraunces',Georgia,serif;
  --body:'Public Sans',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);color:var(--text);background:var(--white);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:inherit}
::selection{background:var(--blue-5);color:var(--ink-deep)}

/* ---------- type helpers ---------- */
.eyebrow{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);font-weight:600;
  display:flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:var(--gold)}
.fig-tag{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;font-weight:600;
  color:var(--ink);border:1px solid var(--ink);padding:.2rem .55rem;
  display:inline-block;background:var(--white);
}
.legend{font-family:var(--disp);font-style:italic;font-size:.95rem;color:var(--blue-2)}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.nav{
  max-width:1200px;margin:0 auto;padding:.85rem 2rem;
  display:flex;align-items:center;gap:2rem;
}
.logo{font-family:var(--disp);font-weight:600;font-size:1.35rem;text-decoration:none;letter-spacing:-.01em;color:var(--ink)}
.logo em{font-style:italic;color:var(--gold);font-weight:500}
.nav-links{display:flex;gap:1.6rem;margin-left:auto;align-items:center}
.nav-links a{
  text-decoration:none;font-size:.9rem;font-weight:500;color:var(--ink);
  border-bottom:2px solid transparent;padding:.2rem 0;transition:border-color .2s;
}
.nav-links a:hover{border-color:var(--gold)}
.btn{
  display:inline-block;text-decoration:none;font-weight:600;font-size:.92rem;
  padding:.7rem 1.45rem;border:1.5px solid var(--ink);color:var(--ink);
  background:transparent;transition:all .2s;cursor:pointer;
}
.btn:hover{background:var(--ink);color:var(--white)}
.btn-solid{background:var(--ink);color:var(--white)}
.btn-solid:hover{background:var(--blue-2);border-color:var(--blue-2)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--white)}
.btn-gold:hover{background:#A87A15;border-color:#A87A15;color:var(--white)}

/* ---------- hero ---------- */
.hero-wrap{
  position:relative;overflow:hidden;
  background:
    radial-gradient(52rem 30rem at 88% -10%, var(--gold-cream) 0%, rgba(251,243,225,0) 58%),
    radial-gradient(60rem 34rem at -8% 8%, var(--panel-2) 0%, rgba(232,242,251,0) 62%),
    var(--white);
}
.hero-wrap::before{ /* faint engineering dot grid, palest blue */
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(28,127,196,.14) 1px, transparent 1px);
  background-size:26px 26px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 80%);
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 80%);
}
.hero{max-width:1200px;margin:0 auto;padding:4.5rem 2rem 3.8rem;position:relative;
  display:grid;grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:center}
.hero h1{
  font-family:var(--disp);font-weight:400;font-size:clamp(2.6rem,5vw,4.3rem);
  line-height:1.04;letter-spacing:-.02em;margin:1.2rem 0 1.4rem;color:var(--ink);
}
.hero h1 em{font-style:italic;font-weight:600;color:var(--ink);position:relative;white-space:nowrap}
.hero h1 em::after{
  content:"";position:absolute;left:0;right:0;bottom:.08em;height:.14em;
  background:var(--gold);opacity:.5;z-index:-1;
  transform:scaleX(0);transform-origin:left;animation:underline .7s .9s ease forwards;
}
@keyframes underline{to{transform:scaleX(1)}}
.hero p.lede{font-size:1.13rem;color:var(--muted);max-width:34rem;margin-bottom:1.6rem}
.hero p.lede strong{color:var(--ink);font-weight:700}
.stat-row{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:1.9rem}
.stat{
  border:1px solid var(--line);background:rgba(255,255,255,.75);
  padding:.6rem 1rem .55rem;line-height:1.25;
}
.stat b{font-family:var(--disp);font-weight:600;font-size:1.5rem;color:var(--blue-3);display:block}
.stat:first-child b{color:var(--ink)}
.stat small{font-family:var(--mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}

/* the exhibit — signature element */
.exhibit{
  position:relative;background:var(--white);border:1.5px solid var(--ink);
  box-shadow:8px 8px 0 rgba(14,62,107,.10);
}
.exhibit-head{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--panel-2);border-bottom:1px solid var(--line);
  padding:.75rem 1.7rem;
}
.exhibit-head .fig-tag{border-color:var(--gold);color:var(--gold);background:var(--white)}
.exhibit-plat{font-family:var(--mono);font-size:.72rem;color:var(--blue-2);letter-spacing:.06em}
.exhibit-body{padding:1.3rem 1.7rem 1.5rem}
.exhibit-q{font-family:var(--disp);font-style:italic;font-size:1.02rem;color:var(--blue-2);margin-bottom:.9rem;min-height:2.6em}
.exhibit-a{
  font-size:1.06rem;font-weight:600;min-height:3.2em;margin-bottom:1rem;line-height:1.5;color:var(--ink-deep);
}
.exhibit-a .caret{display:inline-block;width:2px;height:1.05em;background:var(--gold);vertical-align:-.15em;animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}
.exhibit-a sup{color:var(--gold);font-weight:700;font-family:var(--mono);font-size:.72em}
.cite-wire{height:26px;position:relative;margin:-.2rem 0 .2rem 1.4rem;opacity:0;transition:opacity .3s}
.cite-wire.on{opacity:1}
.cite-wire::before{
  content:"";position:absolute;top:0;left:0;width:1px;height:100%;background:var(--gold);
  transform:scaleY(0);transform-origin:top;transition:transform .45s ease;
}
.cite-wire.on::before{transform:scaleY(1)}
.exhibit-rule{
  font-family:var(--mono);font-size:.8rem;line-height:1.55;color:var(--blue-2);
  background:var(--panel);border-left:3px solid var(--gold);
  padding:.75rem .9rem;opacity:0;transform:translateY(6px);transition:all .4s ease;
}
.exhibit-rule.on{opacity:1;transform:none}
.exhibit-rule .src{color:var(--cited);font-weight:600}
.stamp{
  position:absolute;right:1.2rem;bottom:4.9rem;
  font-family:var(--mono);font-weight:600;font-size:.82rem;letter-spacing:.22em;
  color:var(--cited);border:2.5px solid var(--cited);padding:.35rem .8rem;background:rgba(255,255,255,.85);
  transform:rotate(-7deg) scale(2.2);opacity:0;pointer-events:none;
}
.stamp.on{animation:stampIn .38s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes stampIn{to{transform:rotate(-7deg) scale(1);opacity:.92}}
.exhibit-foot{
  margin:0 1.7rem;padding:.8rem 0 1.2rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
}
.exhibit-foot .legend{font-size:.83rem}
.dots{display:flex;gap:.45rem}
.dots span{width:7px;height:7px;border:1px solid var(--blue-4);border-radius:50%;display:block;transition:background .3s}
.dots span.on{background:var(--gold);border-color:var(--gold)}

/* ---------- sector marquee ---------- */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;background:var(--panel-2);padding:.75rem 0}
.marquee-track{display:flex;gap:3.2rem;width:max-content;animation:scroll 36s linear infinite}
.marquee-track span{
  font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue-2);white-space:nowrap;
}
.marquee-track span i{font-style:normal;color:var(--gold);margin-right:3.2rem}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
section{max-width:1200px;margin:0 auto;padding:5rem 2rem}
.band{max-width:none;background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band-inner{max-width:1200px;margin:0 auto}
.band .fig-tag{background:var(--panel)}
.sec-head{max-width:46rem;margin-bottom:3rem}
h2{
  font-family:var(--disp);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.8rem);
  line-height:1.12;letter-spacing:-.015em;margin:.9rem 0 1rem;color:var(--ink);
}
h2 em{font-style:italic;font-weight:600}
.sec-head p{color:var(--muted);font-size:1.04rem}

/* plain-terms contrast — FIG. B */
.plain-lede{font-size:1.12rem;color:var(--text);max-width:46rem;margin-bottom:2.6rem;line-height:1.65}
.plain-lede strong{color:var(--ink)}
.vs-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:1.3rem;align-items:stretch}
.vs{
  border:1.5px solid var(--vc);background:var(--white);display:flex;flex-direction:column;
}
.vs-head{
  display:flex;align-items:center;gap:.7rem;padding:.9rem 1.5rem;
  background:var(--vh);border-bottom:1px solid var(--vc);
}
.vs-head .fig-tag{border-color:var(--vc);color:var(--vc);background:var(--white)}
.vs-head b{font-family:var(--disp);font-weight:600;font-size:1.18rem;color:var(--ink)}
.vs ul{list-style:none;padding:1.2rem 1.5rem 1.4rem;display:flex;flex-direction:column;gap:.85rem}
.vs li{display:flex;gap:.8rem;font-size:.97rem;color:var(--text);line-height:1.5}
.vs li .mk{
  flex:none;width:1.35rem;height:1.35rem;border:1.5px solid var(--vc);color:var(--vc);
  font-family:var(--mono);font-weight:600;font-size:.8rem;display:flex;align-items:center;justify-content:center;
  margin-top:.15rem;
}
.vs.bad{--vc:var(--flagged);--vh:#F9ECEA}
.vs.good{--vc:var(--cited);--vh:#EAF4EE}
.vs-mid{
  display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-style:italic;font-weight:600;font-size:1.1rem;color:var(--blue-2);
}
@media (max-width:960px){
  .vs-grid{grid-template-columns:1fr}
  .vs-mid{padding:.2rem 0}
}

.pat{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;
  font-weight:600;color:var(--gold);border:1px solid #E2CE97;background:var(--gold-cream);
  padding:.12rem .42rem;
}
.plat-live{margin-left:auto}

/* IP credential band */
.ip-band{
  margin-top:1.4rem;border:1.5px solid var(--ink);background:var(--white);
  display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2rem;
  padding:1.5rem 1.9rem;
}
.ip-figure{text-align:center;border-right:1px solid var(--line);padding-right:2rem}
.ip-figure b{font-family:var(--disp);font-weight:600;font-size:3.2rem;line-height:1;color:var(--ink);display:block}
.ip-figure small{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);font-weight:600;display:block;margin-top:.35rem;
}
.ip-band h3{font-family:var(--disp);font-weight:600;font-size:1.35rem;color:var(--ink);margin-bottom:.45rem}
.ip-band p{font-size:.95rem;color:var(--muted)}
@media (max-width:700px){
  .ip-band{grid-template-columns:1fr;gap:1.1rem;text-align:center}
  .ip-figure{border-right:none;border-bottom:1px solid var(--line);padding:0 0 1rem}
}

/* platform cards */
.plat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.4rem}
.plat{
  --hue:var(--blue-2);--wash:rgba(27,82,136,.07);
  background:var(--white);border:1px solid var(--line);border-top:4px solid var(--hue);
  text-decoration:none;display:flex;flex-direction:column;
  transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;
}
.plat:hover{transform:translateY(-3px);box-shadow:6px 6px 0 var(--wash);border-color:var(--hue)}
.plat-top{
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(var(--wash),var(--wash)) ,var(--white);
  padding:.65rem 1.5rem;border-bottom:1px solid var(--line);
}
.plat-sector{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--hue);font-weight:600;
}
.plat-live{font-family:var(--mono);font-size:.68rem;color:var(--cited);font-weight:600}
.plat-live::before{content:"●";margin-right:.35rem;animation:pulse 2.4s infinite}
@keyframes pulse{50%{opacity:.35}}
.plat-body{padding:1.15rem 1.5rem 1.3rem;display:flex;flex-direction:column;flex-grow:1}
.plat h3{font-family:var(--disp);font-weight:600;font-size:1.5rem;margin-bottom:.15rem;color:var(--ink)}
.plat .site{font-family:var(--mono);font-size:.76rem;color:var(--blue-4);margin-bottom:.75rem}
.plat .ask{font-family:var(--disp);font-style:italic;font-size:1.06rem;color:var(--hue);margin-bottom:.7rem}
.plat .desc{font-size:.92rem;color:var(--muted);flex-grow:1}
.plat .go{margin-top:1rem;font-family:var(--mono);font-size:.78rem;font-weight:600;color:var(--hue)}
.plat .go::after{content:" →";transition:margin .2s}
.plat:hover .go::after{margin-left:.3rem}
.plat.hc{--hue:var(--teal);--wash:rgba(15,114,114,.08)}
.plat.lg{--hue:var(--violet);--wash:rgba(91,62,150,.08)}
.plat.rs{--hue:var(--green);--wash:rgba(31,122,82,.08)}
.plat.gv{--hue:var(--oxide);--wash:rgba(140,74,47,.08)}
.plat.vn{--hue:var(--gold);--wash:rgba(190,138,28,.10)}
.plat.fn{--hue:var(--blue-2);--wash:rgba(27,82,136,.08)}
.grid-note{margin-top:1.6rem}

/* proof — FIG C, sequential blue ramp, deck-style big numerals */
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.proof{
  border:1px solid var(--pc);padding:1.5rem 1.4rem 1.4rem;background:var(--pb);
  position:relative;overflow:hidden;color:var(--ptext,var(--text));
}
.proof .num{
  position:absolute;top:-1.4rem;right:.4rem;font-family:var(--disp);font-weight:600;
  font-size:6.2rem;line-height:1;color:var(--pc);opacity:.16;pointer-events:none;
}
.proof h3{font-family:var(--disp);font-weight:600;font-size:1.28rem;line-height:1.2;margin-bottom:.6rem;color:var(--ph)}
.proof h3 em{font-style:italic}
.proof p{font-size:.9rem;color:var(--pp)}
.proof:nth-child(1){--pc:var(--blue-4);--pb:var(--white);--ph:var(--blue-4);--pp:var(--muted)}
.proof:nth-child(2){--pc:var(--blue-3);--pb:var(--panel-2);--ph:var(--blue-3);--pp:var(--muted)}
.proof:nth-child(3){--pc:var(--blue-2);--pb:#D8E7F5;--ph:var(--blue-2);--pp:#3D4A56}
.proof:nth-child(4){--pc:var(--ink);--pb:var(--ink);--ph:var(--white);--pp:#CBD9E8}
.proof:nth-child(4) .num{color:var(--blue-5);opacity:.28}
.proof::after{
  content:"";position:absolute;top:50%;right:-1.3rem;width:1.3rem;height:1px;background:var(--blue-4);
  transform:scaleX(0);transform-origin:left;transition:transform .5s ease .45s;
}
.proof.in::after{transform:scaleX(1)}
.proof:last-child::after{display:none}

/* quote band — the single dark moment */
.quote-band{
  background:
    radial-gradient(46rem 24rem at 50% 120%, rgba(28,127,196,.35), rgba(28,127,196,0) 70%),
    var(--ink-deep);
  color:var(--white);padding:4.5rem 2rem;margin:0;
}
.quote-inner{max-width:900px;margin:0 auto;text-align:center}
.quote-inner blockquote{
  font-family:var(--disp);font-style:italic;font-weight:400;
  font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.35;
}
.quote-inner blockquote strong{color:#E3B84E;font-weight:600}
.quote-inner .eyebrow{justify-content:center;margin-bottom:1.5rem;color:#E3B84E}
.quote-inner .eyebrow::before{background:#E3B84E}

/* roles */
.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}
.role{
  border:1px solid var(--line);background:var(--white);padding:1rem 1.1rem;text-decoration:none;
  display:flex;justify-content:space-between;align-items:center;gap:.8rem;
  transition:border-color .2s,box-shadow .2s;
}
.role:hover{border-color:var(--blue-3);box-shadow:4px 4px 0 rgba(28,127,196,.10)}
.role b{font-size:.94rem;font-weight:600;display:block;color:var(--ink)}
.role small{font-size:.78rem;color:var(--muted);display:block;margin-top:.15rem}
.role .n{
  font-family:var(--mono);font-size:.92rem;font-weight:600;color:var(--gold);
  background:var(--gold-cream);border:1px solid #EAD9AE;padding:.3rem .6rem;white-space:nowrap;
}

/* enterprise */
.ent-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.ent{border:1.5px solid var(--ink);background:var(--white)}
.ent-head{background:var(--panel-2);border-bottom:1px solid var(--line);padding:1rem 1.8rem .9rem}
.ent-body{padding:1.2rem 1.8rem 1.8rem}
.ent h3{font-family:var(--disp);font-weight:600;font-size:1.4rem;margin:.55rem 0 0;color:var(--ink)}
.ent p{font-size:.94rem;color:var(--muted)}
.ent .tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.ent .tags span{font-family:var(--mono);font-size:.72rem;border:1px solid var(--line);background:var(--panel-2);padding:.25rem .6rem;color:var(--blue-2)}

/* final cta */
.final{text-align:center;padding-bottom:6rem}
.final h2{margin-bottom:1rem}
.final p{max-width:36rem;margin:0 auto 2rem;color:var(--muted)}

/* footer */
footer{border-top:1.5px solid var(--ink);background:var(--panel);padding:3rem 2rem}
.foot{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem}
.foot h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:.9rem}
.foot a,.foot p{font-size:.88rem;color:var(--blue-2);text-decoration:none;display:block;margin-bottom:.45rem}
.foot a:hover{color:var(--gold)}
.foot-base{max-width:1200px;margin:2.5rem auto 0;padding-top:1.2rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;font-family:var(--mono);font-size:.74rem;color:var(--muted)}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}
@media (max-width:960px){
  .hero{grid-template-columns:1fr;padding-top:3rem}
  .proof-grid{grid-template-columns:1fr 1fr}
  .proof::after{display:none}
  .ent-grid{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr 1fr}
  .nav-links{display:none}
}
@media (max-width:560px){
  .proof-grid{grid-template-columns:1fr}
  section{padding:3.5rem 1.2rem}
}

/* ============================================================
   SHARED PAGE FURNITURE — used by every page
   ============================================================ */

/* page masthead (interior pages) */
.masthead{
  background:
    radial-gradient(46rem 22rem at 88% -20%, var(--gold-cream) 0%, rgba(251,243,225,0) 60%),
    radial-gradient(52rem 26rem at -6% 0%, var(--panel-2) 0%, rgba(232,242,251,0) 64%),
    var(--white);
  border-bottom:1px solid var(--line);position:relative;overflow:hidden;
}
.masthead::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(28,127,196,.13) 1px, transparent 1px);
  background-size:26px 26px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 85%);
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 85%);
}
.masthead-inner{max-width:1200px;margin:0 auto;padding:3.6rem 2rem 3.2rem;position:relative}
.masthead h1{
  font-family:var(--disp);font-weight:400;font-size:clamp(2.3rem,4.4vw,3.6rem);
  line-height:1.06;letter-spacing:-.02em;margin:1.1rem 0 1rem;color:var(--ink);
}
.masthead h1 em{font-style:italic;font-weight:600}
.masthead p{font-size:1.1rem;color:var(--muted);max-width:44rem}
.nav-links a.here{border-color:var(--gold);color:var(--ink)}

/* section rule head used on interior pages */
.rule-head{
  display:flex;align-items:baseline;gap:1rem;margin:0 0 1.8rem;
  padding-bottom:.7rem;border-bottom:1.5px solid var(--ink);
}
.rule-head h2{margin:0;font-size:clamp(1.5rem,2.6vw,2rem)}
.rule-head .count{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-left:auto;white-space:nowrap;
}

/* ---------- leadership roster (compact — no heavy boxes) ---------- */
.roster{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:2.4rem 2.2rem;margin-bottom:4rem;
}
.pers{border-top:2px solid var(--pc,var(--ink));padding-top:.95rem}
.pers .role{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--pc,var(--ink));font-weight:600;
}
.pers h3{
  font-family:var(--disp);font-weight:600;font-size:1.28rem;line-height:1.2;
  color:var(--ink);margin:.4rem 0 .18rem;
}
.pers .sub{font-family:var(--mono);font-size:.73rem;color:var(--muted);margin-bottom:.55rem}
.pers p{font-size:.9rem;color:var(--muted);line-height:1.55}
.pers .li{
  display:inline-block;margin-top:.6rem;font-family:var(--mono);font-size:.72rem;
  font-weight:600;color:var(--blue-3);text-decoration:none;
}
.pers .li:hover{color:var(--gold)}
.pers .li::after{content:" ↗"}
.grp-ops .pers{--pc:var(--ink)}
.grp-dir .pers{--pc:var(--blue-3)}
.grp-adv .pers{--pc:var(--gold)}
.grp-fnd .pers{--pc:var(--teal)}
.grp-md  .pers{--pc:var(--violet)}

/* structure trio */
.struct{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.struct div{border:1px solid var(--line);background:var(--white);padding:1.4rem 1.5rem}
.struct h4{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--gold);font-weight:600;margin-bottom:.6rem;
}
.struct h3{font-family:var(--disp);font-weight:600;font-size:1.2rem;color:var(--ink);margin-bottom:.5rem}
.struct h3 em{font-style:italic}
.struct p{font-size:.9rem;color:var(--muted)}
@media (max-width:860px){.struct{grid-template-columns:1fr}}

/* pull quote (light) */
.pull{
  border-left:4px solid var(--gold);padding:.4rem 0 .4rem 1.6rem;margin:3rem 0 0;
  font-family:var(--disp);font-style:italic;font-weight:400;
  font-size:clamp(1.25rem,2.4vw,1.7rem);line-height:1.35;color:var(--ink);max-width:48rem;
}
.pull em{font-weight:600}
.pull cite{
  display:block;font-family:var(--mono);font-style:normal;font-size:.7rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:.9rem;
}

/* ---------- generic content prose ---------- */
.prose{max-width:44rem}
.prose p{margin-bottom:1.1rem;color:var(--muted)}
.prose p strong{color:var(--ink)}

/* numbered step list (approach page) */
.steps{display:grid;gap:1.1rem}
.step{
  display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;
  border:1px solid var(--line);background:var(--white);padding:1.3rem 1.5rem;
}
.step .n{
  font-family:var(--disp);font-weight:600;font-size:2.1rem;line-height:1;
  color:var(--sc,var(--blue-3));min-width:2.2rem;
}
.step h3{font-family:var(--disp);font-weight:600;font-size:1.2rem;color:var(--ink);margin-bottom:.35rem}
.step h3 em{font-style:italic}
.step p{font-size:.92rem;color:var(--muted)}
.step:nth-child(1){--sc:var(--blue-5)}
.step:nth-child(2){--sc:var(--blue-4)}
.step:nth-child(3){--sc:var(--blue-3)}
.step:nth-child(4){--sc:var(--blue-2)}
.step:nth-child(5){--sc:var(--ink)}
.step:nth-child(6){--sc:var(--gold)}

/* solution suite cards */
.suite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.3rem}
.suite{border:1px solid var(--line);border-top:4px solid var(--hue,var(--blue-2));background:var(--white);padding:1.4rem 1.5rem}
.suite h3{font-family:var(--disp);font-weight:600;font-size:1.3rem;color:var(--ink);margin-bottom:.3rem}
.suite .who{font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--hue,var(--blue-2));font-weight:600;margin-bottom:.6rem}
.suite p{font-size:.92rem;color:var(--muted)}
.suite ul{list-style:none;margin-top:.85rem;display:flex;flex-wrap:wrap;gap:.45rem}
.suite li{font-family:var(--mono);font-size:.7rem;border:1px solid var(--line);background:var(--panel-2);padding:.22rem .55rem;color:var(--blue-2)}

/* security controls */
.ctrl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.ctrl{border:1px solid var(--line);background:var(--white);padding:1.3rem 1.4rem;border-left:3px solid var(--cited)}
.ctrl h3{font-family:var(--disp);font-weight:600;font-size:1.12rem;color:var(--ink);margin-bottom:.4rem}
.ctrl p{font-size:.89rem;color:var(--muted)}
.ctrl.path{border-left-color:var(--gold)}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2.6rem;align-items:start}
.contact-card{border:1.5px solid var(--ink);background:var(--white)}
.contact-card .hd{background:var(--panel-2);border-bottom:1px solid var(--line);padding:1rem 1.6rem}
.contact-card .bd{padding:1.4rem 1.6rem 1.7rem}
.contact-card h3{font-family:var(--disp);font-weight:600;font-size:1.3rem;color:var(--ink);margin-top:.5rem}
.field{display:block;margin-bottom:.5rem}
.field span{
  display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-bottom:.3rem;
}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--body);font-size:.94rem;color:var(--text);
  border:1px solid var(--line);background:var(--white);padding:.6rem .7rem;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue-3);outline-offset:1px}
.field textarea{min-height:6rem;resize:vertical}
.dl dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-top:1.2rem}
.dl dd{font-size:.95rem;color:var(--text);margin-top:.25rem}
.dl dd a{color:var(--blue-3);text-decoration:none}
.dl dd a:hover{color:var(--gold)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
