/* ============================================================
   CUMULAR CAPITAL
   Palette, type and logo per Cumular Brand Guidelines, Vol. 1.
   Committed single-theme institutional identity — every colour
   is painted explicitly so the page holds on any host ground.
   ============================================================ */
:root{
  --cc-blue:#0089DD;
  --cc-sky:#74CEF4;
  --cc-indigo:#30569E;
  --cc-navy-mid:#1F365B;
  --cc-navy-deep:#051024;
  --cc-pale:#E4ECF9;
  --cc-white:#FFFFFF;

  --ink-on-pale:#0B1B33;
  --ink-on-pale-soft:#3C4F6B;
  --ink-on-navy:#DDE6F4;
  --ink-on-navy-soft:#8FA3C2;
  --rule-on-pale:rgba(31,54,91,.16);
  --rule-on-navy:rgba(143,163,194,.22);

  --font-display:"Bodoni Moda","Novantique Serif Display",Georgia,"Times New Roman",serif;
  --font-body:"Gantari","Sweet Sans Pro","Helvetica Neue",Arial,sans-serif;

  --container:1160px;
  --gutter:clamp(24px,6vw,88px);
  --band-y:clamp(84px,11vw,160px);
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}

body{
  margin:0;background:var(--cc-navy-deep);color:var(--ink-on-navy);
  font-family:var(--font-body);font-size:clamp(16px,1.05vw,18px);
  line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,canvas{display:block;max-width:100%;}
::selection{background:var(--cc-blue);color:var(--cc-white);}
a{color:inherit;}
:focus-visible{outline:2px solid var(--cc-blue);outline-offset:3px;}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--cc-blue);
  color:var(--cc-white);padding:12px 20px;font-size:14px;text-decoration:none;}
.skip:focus{left:16px;top:16px;}

/* ---------- primitives ---------- */
.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.band{padding-block:var(--band-y);position:relative;overflow:hidden;}
.band--navy{background:var(--cc-navy-deep);color:var(--ink-on-navy);}
.band--pale{background:var(--cc-pale);color:var(--ink-on-pale);}

.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  line-height:1.2;margin:0 0 22px;display:flex;align-items:center;gap:14px;}
.eyebrow::after{content:"";flex:1 1 auto;height:1px;max-width:120px;background:currentColor;opacity:.35;}
.band--navy .eyebrow{color:var(--cc-blue);}
.band--pale .eyebrow{color:var(--cc-indigo);}

h1,h2,h3,.display{font-family:var(--font-display);font-weight:400;
  font-optical-sizing:auto;text-wrap:balance;margin:0;}
.h-hero{font-size:clamp(32px,4.3vw,55px);line-height:1.07;letter-spacing:-.02em;}
.h-sect{font-size:clamp(28px,3.4vw,44px);line-height:1.14;letter-spacing:-.012em;}

p{margin:0;max-width:62ch;}
.lede{font-size:clamp(17px,1.35vw,20px);line-height:1.6;}
.band--navy p{color:var(--ink-on-navy);}
.band--navy .soft{color:var(--ink-on-navy-soft);}
.band--pale p{color:var(--ink-on-pale);}
.band--pale .soft{color:var(--ink-on-pale-soft);}

.stack{display:flex;flex-direction:column;}
.stack-16{gap:16px}.stack-24{gap:24px}.stack-48{gap:48px}.stack-64{gap:clamp(40px,5vw,64px)}

/* ---------- buttons ---------- */
.btns{display:flex;flex-wrap:wrap;gap:14px;}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);
  font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:15px 26px;border-radius:2px;text-decoration:none;border:1px solid transparent;
  transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);}
.btn .arw{transition:transform .25s var(--ease);}
.btn:hover .arw{transform:translateX(4px);}
.btn--solid{background:var(--cc-blue);color:var(--cc-white);border-color:var(--cc-blue);}
.btn--solid:hover{background:var(--cc-indigo);border-color:var(--cc-indigo);}
.btn--ghost-navy{color:var(--cc-white);border-color:rgba(221,230,244,.34);}
.btn--ghost-navy:hover{border-color:var(--cc-blue);color:var(--cc-sky);}

.tlink{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--cc-blue);
  position:relative;padding-bottom:5px;}
.band--pale .tlink{color:var(--cc-indigo);}
.tlink::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);}
.tlink:hover::after{transform:scaleX(1);}
.tlink .arw{transition:transform .25s var(--ease);}
.tlink:hover .arw{transform:translateX(4px);}

/* ---------- logo lockups (official brand SVG) ---------- */
.lock{display:flex;align-items:center;gap:.55em;text-decoration:none;}
.lock .mk{flex:none;color:var(--cc-blue);}
.lock .wd{flex:none;color:var(--cc-white);}
.lock .mk svg,.lock .wd svg{height:100%;width:auto;}


/* ============================================================
   PHOTOGRAPHY SLOTS
   Deliberate placeholders. Each carries the shot brief and the
   brand book's colour treatment so the photographer can work
   straight from the page. Replace with the real frame.
   ============================================================ */
.photo{position:relative;overflow:hidden;background:
    linear-gradient(148deg,#0A1B38 0%,#14294B 46%,#060F22 100%);
  border:1px solid var(--rule-on-navy);display:flex;isolation:isolate;}
.photo::before{content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(52% 58% at 68% 34%,rgba(0,137,221,.30),transparent 72%);}
.photo::after{content:"";position:absolute;inset:11px;z-index:0;pointer-events:none;
  border:1px dashed rgba(143,163,194,.24);}
.photo-in{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px;
  padding:clamp(24px,3vw,40px);max-width:56ch;margin-top:auto;}
.photo-id{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--cc-sky);}
.photo-id b{background:var(--cc-blue);color:var(--cc-white);font-weight:600;
  padding:4px 9px;border-radius:2px;letter-spacing:.1em;}
.photo h4{font-family:var(--font-display);font-weight:400;font-size:clamp(19px,2.1vw,27px);
  line-height:1.22;color:var(--cc-white);margin:0;text-wrap:balance;}
.photo p{font-size:14.5px;line-height:1.58;color:var(--ink-on-navy);max-width:52ch;}
.photo .spec{font-size:11.5px;letter-spacing:.05em;line-height:1.6;
  color:var(--ink-on-navy-soft);padding-top:13px;border-top:1px solid var(--rule-on-navy);}
.photo .spec b{color:var(--cc-sky);font-weight:600;}

.photo--wide{aspect-ratio:21/8;align-items:flex-end;}
.photo--tall{aspect-ratio:4/5;align-items:flex-end;}
.photo--land{aspect-ratio:3/2;align-items:flex-end;}
@media (max-width:760px){
  .photo--wide{aspect-ratio:4/3;}
  .photo--land{aspect-ratio:4/3;}
}

/* hero + closer: the slot is the section background, so the brief
   rides in a small card instead of covering the type */
.photo-hint{position:absolute;z-index:3;right:var(--gutter);bottom:34px;text-align:left;
  max-width:310px;display:flex;flex-direction:column;gap:9px;
  padding:18px 20px;background:rgba(5,16,36,.72);backdrop-filter:blur(6px);
  border:1px dashed rgba(143,163,194,.34);}
.photo-hint .photo-id{font-size:10px;}
.photo-hint p{font-size:12.5px;line-height:1.55;color:var(--ink-on-navy);max-width:none;}
@media (max-width:900px){.photo-hint{display:none;}}

.bleed{padding-block:0;}
.bleed .photo{border-left:0;border-right:0;}

/* ============================================================
   HEADER
   ============================================================ */
.site-head{position:fixed;inset:0 0 auto 0;z-index:50;background:transparent;
  border-bottom:1px solid transparent;
  transition:background-color .28s var(--ease),border-color .28s var(--ease);}
.site-head.is-stuck{background:rgba(5,16,36,.93);backdrop-filter:blur(10px);
  border-bottom-color:var(--rule-on-navy);}
.head-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px;}
.head-inner .lock .mk{height:38px;}
.head-inner .lock .wd{height:34px;}

.nav{display:flex;align-items:center;gap:34px;}
.nav a{font-size:12.5px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;color:var(--ink-on-navy);position:relative;padding-block:6px;
  transition:color .2s var(--ease);}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--cc-blue);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);}
.nav a:hover{color:var(--cc-white);}
.nav a:hover::after{transform:scaleX(1);}

.head-cta{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cc-white);text-decoration:none;border:1px solid var(--cc-blue);
  border-radius:2px;padding:12px 20px;transition:background-color .2s var(--ease);}
.head-cta:hover{background:var(--cc-blue);}

.burger{display:none;background:none;border:0;cursor:pointer;padding:10px;color:var(--cc-white);}
.burger span{display:block;width:22px;height:1.5px;background:currentColor;}
.burger span+span{margin-top:6px;}

.mobile-menu{position:fixed;inset:0;z-index:49;background:var(--cc-navy-deep);
  display:none;flex-direction:column;justify-content:center;padding:0 var(--gutter);gap:8px;}
.mobile-menu.is-open{display:flex;}
.mobile-menu a{font-family:var(--font-display);font-size:clamp(28px,7vw,44px);
  color:var(--cc-white);text-decoration:none;padding-block:10px;
  border-bottom:1px solid var(--rule-on-navy);opacity:0;transform:translateY(12px);
  animation:menuIn .5s var(--ease) forwards;}
@keyframes menuIn{to{opacity:1;transform:none;}}
@media (max-width:1040px){.nav,.head-cta{display:none;}.burger{display:block;}}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;
  background:var(--cc-navy-deep);padding-block:clamp(132px,14vw,164px) clamp(36px,4vw,60px);overflow:hidden;}
/* every particle canvas is a background layer, never an in-flow flex item */
canvas[data-particles]{position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;display:block;}
.hero canvas[data-particles]{opacity:.82;z-index:2;}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(58% 48% at 74% 34%,rgba(0,137,221,.20),transparent 68%);}
.hero .wrap{position:relative;z-index:2;}
.hero-copy{max-width:980px;}
.hero .eyebrow{color:var(--cc-sky);}
.hero h1{color:var(--cc-white);margin-bottom:24px;max-width:23ch;}
.hero .lede{color:var(--ink-on-navy);max-width:64ch;margin-bottom:26px;font-size:clamp(15.5px,1.1vw,17.5px);}

.hero-scroll{position:absolute;left:var(--gutter);bottom:34px;z-index:3;display:flex;
  align-items:center;gap:12px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-on-navy-soft);}
.hero-scroll i{display:block;width:34px;height:1px;background:var(--cc-blue);
  transform-origin:left;animation:scrollPulse 2.6s var(--ease) infinite;}
@keyframes scrollPulse{0%,100%{transform:scaleX(.3);opacity:.5}50%{transform:scaleX(1);opacity:1}}
@media (max-width:900px){.hero-scroll{display:none;}}

/* ============================================================
   THESIS
   ============================================================ */
.thesis{text-align:center;}
.thesis .eyebrow{justify-content:center;}
.thesis .eyebrow::after{content:none;}
.thesis .wrap{max-width:960px;}
.thesis p{font-family:var(--font-display);font-size:clamp(26px,3.5vw,44px);
  line-height:1.22;letter-spacing:-.012em;color:var(--ink-on-pale);
  margin-inline:auto;max-width:20ch;text-wrap:balance;}
.thesis .mark-em{color:var(--cc-indigo);}
.thesis .rule{width:56px;height:2px;background:var(--cc-blue);margin:0 auto 40px;}

/* ============================================================
   STATS
   ============================================================ */
.stats{display:grid;gap:1px;background:var(--rule-on-navy);
  border:1px solid var(--rule-on-navy);grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:860px){.stats{grid-template-columns:1fr;}}
.stat{background:var(--cc-navy-deep);padding:clamp(28px,3.2vw,42px);min-width:0;
  display:flex;flex-direction:column;gap:18px;}
.stat-fig{font-family:var(--font-display);font-size:clamp(34px,3.8vw,50px);line-height:1.05;
  letter-spacing:-.03em;color:var(--cc-blue);font-variant-numeric:tabular-nums;}
.stat-fig .vs{font-size:.42em;letter-spacing:.02em;color:var(--ink-on-navy-soft);padding-inline:6px;}
.stat-fig .down{color:var(--ink-on-navy-soft);}
.stat p{font-size:16px;line-height:1.55;color:var(--ink-on-navy);flex:1 1 auto;}
.stat-src{font-size:11.5px;line-height:1.5;letter-spacing:.03em;color:var(--ink-on-navy-soft);
  padding-top:16px;border-top:1px solid var(--rule-on-navy);}
.stat-src b{color:var(--cc-sky);font-weight:600;}
.stats-close{margin-top:44px;font-size:clamp(17px,1.5vw,21px);line-height:1.5;
  color:var(--ink-on-navy);max-width:64ch;font-family:var(--font-display);}

/* ============================================================
   THE CUMULAR WAY
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,4vw,56px);}
@media (max-width:900px){.steps{grid-template-columns:1fr;}}
.step{display:flex;flex-direction:column;gap:18px;padding-top:26px;border-top:1px solid var(--rule-on-pale);}
.step-n{font-family:var(--font-display);font-size:15px;letter-spacing:.1em;
  color:var(--cc-blue);font-variant-numeric:tabular-nums;}
.step h3{font-size:clamp(21px,2vw,27px);line-height:1.2;color:var(--ink-on-pale);}
.step p{font-size:16px;line-height:1.6;color:var(--ink-on-pale-soft);}
.step .icon{width:30px;height:30px;color:var(--cc-blue);}


.way-head{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);
  gap:clamp(32px,5vw,72px);align-items:center;}
@media (max-width:940px){.way-head{grid-template-columns:1fr;}}

/* ============================================================
   TEAM
   ============================================================ */
.team-group{margin-top:clamp(40px,5vw,60px);}
.team-label{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cc-sky);margin:0 0 26px;padding-bottom:14px;border-bottom:1px solid var(--rule-on-navy);}
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3.4vw,44px);align-items:start;}
@media (max-width:940px){.people{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.people{grid-template-columns:1fr;}}

.person{display:flex;flex-direction:column;gap:0;}
.person .shot{position:relative;aspect-ratio:4/5;overflow:hidden;background:#0A1B33;
  border:1px solid var(--rule-on-navy);}
.person .shot img{width:100%;height:100%;object-fit:cover;
  transition:transform .7s var(--ease),filter .5s var(--ease);}
.person:hover .shot img{transform:scale(1.03);}
.person .shot::after{content:"";position:absolute;inset:auto 0 0 0;height:34%;
  background:linear-gradient(to top,rgba(5,16,36,.78),transparent);pointer-events:none;}

.person h3{font-size:clamp(20px,1.9vw,25px);line-height:1.15;color:var(--cc-white);margin-top:22px;}
.person .role{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--cc-blue);margin-top:8px;}
.person .loc{font-size:13px;color:var(--ink-on-navy-soft);margin-top:4px;}
.person .leads{font-size:14px;line-height:1.55;color:var(--ink-on-navy);margin-top:18px;
  padding-top:16px;border-top:1px solid var(--rule-on-navy);}
.person .leads b{color:var(--cc-sky);font-weight:600;}
.person .bio{font-size:14.5px;line-height:1.62;color:var(--ink-on-navy-soft);margin-top:14px;max-width:none;}
.person .edu{font-size:12.5px;line-height:1.5;color:rgba(143,163,194,.78);margin-top:14px;
  padding-top:12px;border-top:1px solid rgba(143,163,194,.12);max-width:none;}

.team-note{margin-top:clamp(34px,4vw,48px);display:grid;grid-template-columns:auto 1fr;
  gap:clamp(20px,3vw,44px);align-items:baseline;padding:clamp(24px,2.6vw,32px) clamp(24px,3vw,38px);
  border:1px solid var(--rule-on-navy);background:rgba(31,54,91,.24);}
@media (max-width:720px){.team-note{grid-template-columns:1fr;gap:12px;}}
.team-note h4{font-family:var(--font-body);font-size:11.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cc-sky);margin:0;white-space:nowrap;}
.team-note p{font-size:15.5px;line-height:1.6;color:var(--ink-on-navy);max-width:78ch;}

/* ============================================================
   OPERATING PARTNERSHIP
   ============================================================ */
.partner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,6vw,96px);align-items:start;}
@media (max-width:940px){.partner{grid-template-columns:1fr;}}
.roles{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,44px);}
@media (max-width:620px){.roles{grid-template-columns:1fr;}}
.role h4{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cc-indigo);margin:0 0 16px;padding-bottom:12px;
  border-bottom:1px solid var(--rule-on-pale);}
.role ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:13px;}
.role li{font-size:15.5px;line-height:1.5;color:var(--ink-on-pale-soft);padding-left:20px;position:relative;}
.role li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;
  border-radius:50%;background:var(--cc-blue);}

/* ============================================================
   CLOSER
   ============================================================ */
.closer{position:relative;text-align:center;}
.closer .wrap{max-width:900px;position:relative;z-index:2;}
.closer h2{color:var(--cc-white);margin-bottom:26px;}
.closer p{margin-inline:auto;margin-bottom:40px;color:var(--ink-on-navy);}
.closer .btns{justify-content:center;}
.closer .edge-mark{position:absolute;right:-8%;top:50%;transform:translateY(-50%);
  width:min(520px,54vw);opacity:.06;color:var(--cc-sky);pointer-events:none;}
.closer .edge-mark svg{width:100%;height:auto;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-foot{background:var(--cc-navy-deep);border-top:1px solid var(--rule-on-navy);
  padding-block:clamp(56px,6vw,80px) 32px;}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(32px,4vw,56px);}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr;}}
.foot-brand{display:flex;flex-direction:column;gap:22px;}
.foot-brand .lock .mk{height:46px;}
.foot-brand .lock .wd{height:40px;}
.foot-brand p{font-size:14.5px;line-height:1.6;color:var(--ink-on-navy-soft);max-width:34ch;}
.foot-col h5{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--cc-sky);margin:0 0 18px;}
.foot-col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px;}
.foot-col a,.foot-static{font-size:14.5px;color:var(--ink-on-navy-soft);text-decoration:none;transition:color .2s var(--ease);}
.foot-col a:hover{color:var(--cc-white);}
.foot-legal{margin-top:clamp(44px,5vw,64px);padding-top:26px;border-top:1px solid var(--rule-on-navy);
  display:flex;flex-direction:column;gap:20px;}
.foot-legal p{font-size:12px;line-height:1.65;color:rgba(143,163,194,.72);max-width:none;}
.foot-meta{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;color:rgba(143,163,194,.72);}
.foot-meta a{text-decoration:none;}
.foot-meta a:hover{color:var(--cc-white);}

.protonote{background:var(--cc-blue);color:var(--cc-white);font-size:12px;letter-spacing:.05em;
  text-align:center;padding:9px 16px;position:relative;z-index:60;}
.protonote b{font-weight:600;}

.rv{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.rv.in{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;}
  .rv{opacity:1;transform:none;}
}
/* ============================================================
   PAGE HEADER (interior pages)
   ============================================================ */
.pagehead{position:relative;background:var(--cc-navy-deep);overflow:hidden;
  padding-block:clamp(150px,15vw,210px) clamp(60px,7vw,96px);}
.pagehead canvas[data-particles]{opacity:.6;}
.pagehead::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 60% at 82% 24%,rgba(0,137,221,.18),transparent 70%);}
.pagehead .wrap{position:relative;z-index:2;}
.pagehead h1{color:var(--cc-white);max-width:17ch;}
.pagehead .lede{color:var(--ink-on-navy);max-width:58ch;margin-top:26px;}
.pagehead .eyebrow{color:var(--cc-sky);}

/* ============================================================
   SECTION INDEX (sticky, approach page)
   ============================================================ */
.withindex{display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:start;}
@media (max-width:1080px){.withindex{grid-template-columns:1fr;}.secindex{display:none;}}
.secindex{position:sticky;top:132px;display:flex;flex-direction:column;gap:12px;}
.secindex a{font-size:12px;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;
  color:var(--ink-on-pale-soft);padding-left:14px;border-left:1px solid var(--rule-on-pale);
  padding-block:5px;transition:color .2s var(--ease),border-color .2s var(--ease);}
.secindex a:hover,.secindex a.on{color:var(--cc-indigo);border-left-color:var(--cc-blue);}

/* ============================================================
   CONTENT BLOCKS
   ============================================================ */
.blocks{display:flex;flex-direction:column;gap:clamp(64px,8vw,112px);}
.block > .eyebrow{margin-bottom:18px;}
.block h2{margin-bottom:22px;}
.block .intro{margin-bottom:clamp(32px,4vw,44px);}

/* three-up feature columns */
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,48px);}
@media (max-width:860px){.cols3{grid-template-columns:1fr;}}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3.4vw,52px);}
@media (max-width:760px){.cols2{grid-template-columns:1fr;}}

.feat{display:flex;flex-direction:column;gap:12px;padding-top:22px;border-top:1px solid var(--rule-on-pale);}
.band--navy .feat{border-top-color:var(--rule-on-navy);}
.feat h3{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cc-indigo);}
.band--navy .feat h3{color:var(--cc-sky);}
.feat p{font-size:15.5px;line-height:1.6;}
.band--pale .feat p{color:var(--ink-on-pale-soft);}
.band--navy .feat p{color:var(--ink-on-navy-soft);}

/* definition rows — the execution gap */
.rows{border-top:1px solid var(--rule-on-navy);}
.row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:clamp(20px,3vw,44px);
  padding-block:clamp(20px,2.4vw,28px);border-bottom:1px solid var(--rule-on-navy);align-items:baseline;}
@media (max-width:740px){.row{grid-template-columns:1fr;gap:8px;}}
.row dt{display:flex;align-items:center;gap:13px;font-size:13.5px;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--cc-white);}
.row dt svg{width:22px;height:22px;flex:none;color:var(--cc-blue);}
.row dd{margin:0;font-size:15.5px;line-height:1.62;color:var(--ink-on-navy-soft);max-width:66ch;}
.row dd b{color:var(--ink-on-navy);font-weight:600;}

/* journey — three-stage comparison */
.journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  background:var(--rule-on-pale);border:1px solid var(--rule-on-pale);}
@media (max-width:900px){.journey{grid-template-columns:1fr;}}
.stage{background:var(--cc-pale);padding:clamp(24px,2.8vw,36px);display:flex;flex-direction:column;gap:16px;}
.stage--mid{background:var(--cc-white);}
.stage h3{font-family:var(--font-body);font-size:11.5px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--cc-indigo);}
.stage--mid h3{color:var(--cc-blue);}
.stage h4{font-family:var(--font-display);font-weight:400;font-size:20px;line-height:1.25;
  color:var(--ink-on-pale);margin:0;}
.stage ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px;}
.stage li{font-size:15px;line-height:1.55;color:var(--ink-on-pale-soft);padding-left:18px;position:relative;}
.stage li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;
  border-radius:50%;background:var(--cc-blue);opacity:.55;}
.stage .sub{font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-on-pale-soft);margin-top:4px;}

/* criteria matrix */
.matrix{display:flex;flex-direction:column;gap:1px;background:var(--rule-on-navy);
  border:1px solid var(--rule-on-navy);}
.mband{background:var(--cc-navy-deep);display:grid;grid-template-columns:230px minmax(0,1fr);
  gap:clamp(20px,3vw,40px);padding:clamp(24px,2.8vw,36px);}
@media (max-width:860px){.mband{grid-template-columns:1fr;gap:20px;}}
.mband .lab{display:flex;flex-direction:column;gap:7px;}
.mband .lab b{font-family:var(--font-display);font-weight:400;font-size:22px;color:var(--cc-white);}
.mband .lab span{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--cc-blue);}
.crits{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(18px,2.2vw,28px);}
.crit b{display:block;font-family:var(--font-body);font-size:13px;font-weight:600;
  letter-spacing:.05em;color:var(--cc-sky);margin-bottom:6px;}
.crit span{font-size:14.5px;line-height:1.55;color:var(--ink-on-navy-soft);}

/* pull quote */
.pull{font-family:var(--font-display);font-size:clamp(21px,2.4vw,30px);line-height:1.3;
  letter-spacing:-.01em;padding-left:clamp(20px,2.5vw,30px);border-left:2px solid var(--cc-blue);
  max-width:34ch;}
.band--navy .pull{color:var(--cc-white);}
.band--pale .pull{color:var(--ink-on-pale);}

/* verticals table */
.vtable{width:100%;border-collapse:collapse;font-size:15px;}
.vwrap{overflow-x:auto;}
.vtable th,.vtable td{text-align:left;padding:16px 20px 16px 0;
  border-bottom:1px solid var(--rule-on-pale);vertical-align:top;}
.vtable th{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--cc-indigo);border-bottom-color:rgba(31,54,91,.3);}
.vtable td:first-child{white-space:nowrap;}
.vtable .stage-cell{font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--cc-blue);}
.vtable .vname{font-weight:600;color:var(--ink-on-pale);}
.vtable .vdesc{color:var(--ink-on-pale-soft);}
@media (max-width:700px){.vtable{font-size:14px;}.vtable th:first-child,.vtable td:first-child{display:none;}}

/* ============================================================
   INSIGHTS
   ============================================================ */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:clamp(32px,4vw,48px);}
.filters button{font-family:var(--font-body);font-size:11.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;padding:9px 16px;border-radius:2px;cursor:pointer;
  background:transparent;color:var(--ink-on-pale-soft);border:1px solid var(--rule-on-pale);
  transition:color .2s var(--ease),border-color .2s var(--ease),background-color .2s var(--ease);}
.filters button:hover{border-color:var(--cc-blue);color:var(--cc-indigo);}
.filters button[aria-pressed="true"]{background:var(--cc-navy-deep);border-color:var(--cc-navy-deep);color:var(--cc-white);}

.postlist{border-top:1px solid var(--rule-on-pale);}
.post{display:grid;grid-template-columns:150px minmax(0,1fr) 40px;gap:clamp(18px,3vw,40px);
  padding-block:clamp(24px,3vw,34px);border-bottom:1px solid var(--rule-on-pale);
  align-items:baseline;text-decoration:none;transition:opacity .2s var(--ease);}
@media (max-width:800px){.post{grid-template-columns:1fr;gap:10px;}.post .arw{display:none;}}
.post:hover{opacity:.62;}
.post .meta{display:flex;flex-direction:column;gap:5px;}
.post .cat{font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--cc-blue);}
.post .date{font-size:13px;color:var(--ink-on-pale-soft);font-variant-numeric:tabular-nums;}
.post h3{font-size:clamp(20px,2.1vw,27px);line-height:1.22;color:var(--ink-on-pale);}
.post p{font-size:15.5px;line-height:1.55;color:var(--ink-on-pale-soft);margin-top:9px;max-width:64ch;}
.post .arw{font-size:19px;color:var(--cc-blue);justify-self:end;}
.post.is-hidden{display:none;}
.draftflag{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cc-white);background:var(--cc-navy-mid);
  padding:3px 8px;border-radius:2px;margin-left:10px;vertical-align:middle;}

/* article */
.article{max-width:680px;margin-inline:auto;}
.article .byline{display:flex;align-items:center;gap:14px;padding-bottom:26px;
  border-bottom:1px solid var(--rule-on-pale);margin-bottom:clamp(32px,4vw,44px);}
.article .byline img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;}
.article .byline div{display:flex;flex-direction:column;gap:2px;}
.article .byline b{font-size:14.5px;font-weight:600;color:var(--ink-on-pale);}
.article .byline span{font-size:13px;color:var(--ink-on-pale-soft);}
.article p{font-size:19px;line-height:1.72;color:var(--ink-on-pale);max-width:none;margin-bottom:26px;}
.article p.standfirst{font-size:22px;line-height:1.55;color:var(--ink-on-pale-soft);margin-bottom:34px;}
.article h2{font-size:clamp(24px,2.6vw,31px);line-height:1.2;margin:clamp(38px,4vw,52px) 0 18px;color:var(--ink-on-pale);}
.article ul{margin:0 0 26px;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;}
.article li{font-size:18px;line-height:1.65;color:var(--ink-on-pale);padding-left:22px;position:relative;}
.article li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;
  border-radius:50%;background:var(--cc-blue);}
.article .pull{margin:clamp(34px,4vw,46px) 0;}
.article .fignote{font-size:13.5px;line-height:1.55;color:var(--ink-on-pale-soft);
  padding-top:14px;border-top:1px solid var(--rule-on-pale);margin-bottom:30px;}

/* ============================================================
   FORMS
   ============================================================ */
.formcard{border:1px solid var(--rule-on-pale);padding:clamp(26px,3.2vw,42px);
  background:var(--cc-white);display:flex;flex-direction:column;gap:20px;}
.band--navy .formcard{background:rgba(31,54,91,.24);border-color:var(--rule-on-navy);}
.formcard h3{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cc-indigo);}
.band--navy .formcard h3{color:var(--cc-sky);}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:620px){.fgrid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:7px;}
.field.wide{grid-column:1 / -1;}
.field label{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--ink-on-pale-soft);}
.band--navy .field label{color:var(--ink-on-navy-soft);}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:15px;color:var(--ink-on-pale);
  background:var(--cc-pale);border:1px solid var(--rule-on-pale);border-radius:2px;
  padding:12px 14px;width:100%;transition:border-color .2s var(--ease);}
.band--navy .field input,.band--navy .field select,.band--navy .field textarea{
  background:rgba(5,16,36,.55);border-color:var(--rule-on-navy);color:var(--ink-on-navy);}
.field textarea{min-height:118px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cc-blue);outline:none;}
.field .err{font-size:12px;color:#FF8A8A;min-height:0;}
.hp{position:absolute;left:-9999px;}
.formnote{font-size:12.5px;line-height:1.55;color:var(--ink-on-pale-soft);}
.band--navy .formnote{color:var(--ink-on-navy-soft);}
.formdone{display:flex;flex-direction:column;gap:12px;padding:clamp(26px,3vw,38px);
  border:1px solid var(--cc-blue);background:rgba(0,137,221,.08);}
.formdone b{font-family:var(--font-display);font-weight:400;font-size:23px;color:var(--ink-on-pale);}
.band--navy .formdone b{color:var(--cc-white);}
.formdone p{font-size:15px;line-height:1.6;}

/* process steps, numbered */
.procs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.6vw,34px);}
@media (max-width:900px){.procs{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:520px){.procs{grid-template-columns:1fr;}}
.proc{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--rule-on-pale);}
.proc b{font-family:var(--font-display);font-size:14px;color:var(--cc-blue);font-variant-numeric:tabular-nums;}
.proc h4{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--ink-on-pale);margin:0;}
.proc p{font-size:14.5px;line-height:1.55;color:var(--ink-on-pale-soft);}

/* contact split */
.contactgrid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(40px,6vw,88px);align-items:start;}
@media (max-width:900px){.contactgrid{grid-template-columns:1fr;}}
.cdetail{display:flex;flex-direction:column;gap:8px;padding-block:20px;
  border-top:1px solid var(--rule-on-navy);}
.cdetail span{font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--cc-sky);}
.cdetail a,.cdetail p{font-size:17px;color:var(--ink-on-navy);text-decoration:none;}
.cdetail a:hover{color:var(--cc-sky);}

/* 404 */
.notfound{min-height:70svh;display:flex;flex-direction:column;justify-content:center;gap:24px;}
.notfound .code{font-family:var(--font-display);font-size:clamp(72px,12vw,150px);line-height:1;
  color:var(--cc-blue);letter-spacing:-.03em;}

/* legal pages */
.legal{max-width:720px;}
.legal h2{font-size:clamp(21px,2.2vw,27px);margin:clamp(34px,4vw,46px) 0 14px;color:var(--ink-on-pale);}
.legal p{font-size:16.5px;line-height:1.7;color:var(--ink-on-pale-soft);margin-bottom:18px;max-width:none;}
.legal .warn{border:1px solid var(--cc-blue);background:rgba(0,137,221,.07);
  padding:20px 24px;font-size:14.5px;line-height:1.6;color:var(--ink-on-pale);margin-bottom:30px;}

/* ---------- roster (home) ---------- */
.roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);}
@media (max-width:1000px){.roster{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:600px){.roster{grid-template-columns:repeat(2,minmax(0,1fr));}}
.rcard{display:flex;flex-direction:column;text-decoration:none;}
.rshot{display:block;aspect-ratio:4/5;overflow:hidden;background:#0A1B33;
  border:1px solid var(--rule-on-navy);}
.rshot img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.rcard:hover .rshot img{transform:scale(1.04);}
.rname{font-family:var(--font-display);font-size:clamp(16px,1.5vw,20px);line-height:1.2;
  color:var(--cc-white);margin-top:16px;}
.rrole{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cc-blue);margin-top:7px;}
.rloc{font-size:12.5px;color:var(--ink-on-navy-soft);margin-top:3px;}

.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.nav a.on{color:var(--cc-white);}
.nav a.on::after{transform:scaleX(1);}

.formerror{font-size:14px;line-height:1.55;color:#C0392B;
  border-left:2px solid #C0392B;padding-left:14px;}
.band--navy .formerror{color:#FF9B9B;border-left-color:#FF9B9B;}
.formerror a{color:inherit;}

/* ---------- hero at-a-glance strip ---------- */
.glance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,2.2vw,34px);margin:clamp(22px,2.8vw,38px) 0 0;
  padding-top:clamp(18px,2vw,24px);border-top:1px solid var(--rule-on-navy);}
@media (max-width:860px){.glance{grid-template-columns:1fr;gap:13px;margin-top:24px;}
  .glance dd{font-size:13.5px;line-height:1.45;max-width:none;}
  .glance dt{font-size:10px;}}
.glance > div{display:flex;flex-direction:column;gap:9px;}
.glance dt{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cc-sky);}
.glance dd{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-on-navy);max-width:34ch;}
.stat-fig .pct{font-size:.62em;letter-spacing:0;}

/* ============================================================
   PHOTOGRAPHY — real frames
   ============================================================ */
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:62% 50%;z-index:0;opacity:.86;}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(100deg,rgba(5,16,36,.97) 0%,rgba(5,16,36,.93) 34%,rgba(5,16,36,.66) 68%,rgba(5,16,36,.52) 100%),
    linear-gradient(to top,rgba(5,16,36,.92) 0%,rgba(5,16,36,0) 46%);}
.hero canvas{z-index:2;}
.hero::after{z-index:2;}
.hero .wrap{z-index:3;}
.hero-scroll{z-index:3;}

.closer-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:50% 50%;z-index:0;opacity:.55;}
.closer-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(70% 120% at 50% 50%,rgba(5,16,36,.80),rgba(5,16,36,.95));}
.closer .edge-mark{z-index:2;}

/* full-bleed band */
.bleedshot{margin:0;display:block;line-height:0;}
.bleedshot img{width:100%;height:auto;display:block;}
@media (max-width:760px){
  .bleedshot{aspect-ratio:16/9;}
  .bleedshot img{height:100%;object-fit:cover;}
}

/* framed shots */
.shot{margin:0;line-height:0;overflow:hidden;border:1px solid var(--rule-on-pale);}
.band--navy .shot{border-color:var(--rule-on-navy);}
.shot img{width:100%;height:100%;object-fit:cover;display:block;}
.shot--tall{aspect-ratio:4/5;}
.shot--land{aspect-ratio:3/2;}
@media (max-width:760px){.shot--land{aspect-ratio:4/3;}}


/* short laptop screens: compress the hero so the proposition still fits */
@media (min-width:861px) and (max-height:820px){
  .hero{padding-block:clamp(120px,13vw,140px) 34px;}
  .hero h1{font-size:clamp(30px,3.4vw,44px);margin-bottom:18px;}
  .hero .lede{margin-bottom:20px;font-size:15.5px;}
  .glance{margin-top:22px;padding-top:18px;}
  .glance dd{font-size:13.5px;line-height:1.45;}
  .hero-scroll{display:none;}
}
