/* ==========================================================================
   FSI base.css
   Frontier Security Institute — sibling-brand build of safe.ai
   ----------------------------------------------------------------------------
   Tokens, fonts, layout primitives, components — all verbatim safe.ai
   except for the FSI navy override (--gray-900: #1c1d5f).
   See specs/fsi-brand-layer.md for what changes vs. what stays.
   ========================================================================== */

/* === Fonts: pulled verbatim from safe.ai's webflow CDN === */
@font-face{font-family:Seasonsans;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb532e34f4d62d7cdd9a8_SeasonSans-Medium.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Seasonsans;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb532f37dd92cba6dcbc7_SeasonSans-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Seasonsans;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb532fa07b78fc73d8f04_SeasonSans-Bold.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Seasonmix;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb62bf2ae5a76a609447e_SeasonMix-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Seasonmix;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb62b9cf066e4dcc0db0c_SeasonMix-RegularItalic.otf)format("opentype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Seasonmix;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb62bd92652b8df566559_SeasonMix-Bold.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Jjannon;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb4e9e2dd0399b55b18ce_JJannon-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Jjannon;src:url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/69cdb4d1b40f6e411bf529da_JJannon-Italic.otf)format("opentype");font-weight:400;font-style:italic;font-display:swap}

/* === Root tokens — VERBATIM safe.ai with FSI navy override === */
:root{
  --gray-800:#22292e;
  --gray-900:#1c1d5f;          /* FSI OVERRIDE — was #0a1b29 in safe.ai */
  --gray-900-original:#0a1b29; /* preserved for reference; do not use */
  --gray-200:#ebecf0;
  --gray-25:#fafbfd;
  --gray-100:#f5f5f7;
  --opacity-300:#57667a38;
  --white:#ffffff;
  --gray-400:#a2afba;
  --gray-700:#353c42;
  --gray-500:#74808a;
  --gray-300:#d2d5dd;
  --blue-700:#00549e;
  --blue-500:#1282c7;
  --blue-400-lead:#00adff;     /* CAIS cyan — preserved as sibling-brand signal */
  --green-500:#2bb673;
  --opacity-100:#a3b4cc33;
  --gray-600:#4f5961;
  --_size---nav-height:4.5rem;
  --hero-gradient-start:#eaf1fb;
  --hero-gradient-end:#f7f7fa;
  /* FSI-specific tokens */
  --fsi-navy:#1c1d5f;
  --fsi-navy-hover:#161749;
  --fsi-navy-deep:#0e0f3a;       /* deeper than --fsi-navy; for sections that need to recede beneath navy ground */
  --cais-cyan:#00adff;
}

/* === Reset === */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  color:var(--gray-800);
  background-color:#fefefe;
  font-family:Seasonsans, Arial, sans-serif;
  font-size:1rem;
  font-weight:400;
  line-height:1.65;
  min-height:100%;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:inherit;text-decoration:none}
p{margin:0}
img{max-width:100%;display:block}

/* === Typography === */
h1,h2,h3,h4,h5,h6{
  color:var(--gray-900);
  margin:0;
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  line-height:1.1;
  text-wrap:balance;
}
em{font-style:italic;font-family:inherit}

.heading-style-h1{
  color:var(--gray-900);
  text-wrap:balance;
  font-size:5.5rem;
  line-height:1.0;
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  letter-spacing:-0.02em;
}
.heading-style-h2{
  color:var(--gray-900);
  text-wrap:balance;
  font-size:3.4rem;
  line-height:1.05;
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  letter-spacing:-.02em;
}
.heading-style-h3{
  color:var(--gray-900);
  font-size:2rem;
  line-height:1.15;
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  letter-spacing:-.01em;
}
.heading-style-h5{
  letter-spacing:0;
  font-family:Seasonmix, Georgia, serif;
  font-size:1.3rem;
  line-height:1.45;
  font-weight:400;
  color:var(--gray-900);
  margin:0;
}
.heading-style-h5 a{
  color:inherit;
  text-decoration:underline;
  text-decoration-color:var(--gray-400);
  text-underline-offset:3px;
  transition:text-decoration-color .2s;
}
.heading-style-h5 a:hover{text-decoration-color:var(--blue-400-lead)}

.text-size-large{letter-spacing:.01rem;font-size:1.15rem;line-height:1.6}
.text-size-small{font-size:.875rem;line-height:1.5}
.font-sans{font-family:Seasonsans, Arial, sans-serif}
.font-mix{font-family:Seasonmix, Georgia, serif}
.font-jjannon{font-family:Jjannon, Georgia, serif}
.text-weight-normal{font-weight:400;margin:0}
.text-weight-medium{font-weight:500}
.text-weight-bold{font-weight:700}
.text-align-center{text-align:center}

.all-caps{
  letter-spacing:.06em;
  text-transform:uppercase;
  font-family:Seasonsans, Arial, sans-serif;
  font-size:.95rem;
  font-weight:600;
  line-height:1.5;
  margin:0;
}
.all-caps.is-small{font-size:.82rem;letter-spacing:.16em}

/* === Color utilities === */
.bg-c-white{background-color:var(--white)}
.bg-c-gray100{background-color:var(--gray-100)}
.bg-c-gray900{background-color:var(--gray-900)}
.t-c-white{color:var(--white)}
.t-c-blue400{color:var(--blue-400-lead)}
.t-c-blue700{color:var(--blue-700)}
.t-c-gray400{color:var(--gray-400)}
.t-c-gray600{color:var(--gray-600)}
.t-c-gray800{color:var(--gray-800)}
.t-c-gray900{color:var(--gray-900)}

/* === Layout primitives === */
.padding-global{padding-left:2.5rem;padding-right:2.5rem}
.container-large{width:100%;max-width:76rem;margin-left:auto;margin-right:auto;position:static}
.height-full{height:100%}
.flex{display:flex}
.column{display:flex;flex-direction:column;gap:.75rem}
.row{display:flex;flex-direction:row;gap:1rem}
.align-bottom{align-self:flex-end;justify-content:space-between;align-items:flex-end}
.relative{position:relative}
.overflow-hidden{overflow:hidden}

.padding-vertical{padding-left:0;padding-right:0}
.padding-huge{padding:6rem}
.padding-vertical.padding-huge{padding-left:0;padding-right:0;padding-top:6rem;padding-bottom:6rem}
.padding-xhuge{padding-top:8rem;padding-bottom:8rem}
.padding-large{padding:3rem}
.padding-medium{padding:2rem}
.padding-small{padding:1rem}
.padding-xsmall{padding:.5rem}
.padding-xxsmall{padding:.25rem}
.padding-bottom{padding-top:0;padding-left:0;padding-right:0}

.max-width-large{width:100%;max-width:42rem}
.max-width-medium{width:100%;max-width:32rem}
.max-width-small{width:100%;max-width:24rem}
.margin-bottom-medium{margin-bottom:1.5rem}
.margin-bottom-large{margin-bottom:3rem}

.hr-border-line{border-top:1px solid var(--opacity-300);width:100%;height:0}

/* === Buttons === */
.button{
  border:1px solid var(--gray-800);
  background-color:var(--gray-800);
  color:#fff;
  text-align:center;
  cursor:pointer;
  border-radius:.6rem;
  flex:none;
  justify-content:center;
  align-items:center;
  padding:.8rem 1.7rem;
  font-family:Seasonsans, Arial, sans-serif;
  font-size:1rem;
  font-weight:600;
  text-decoration:none;
  transition:opacity .4s, color .3s, border-color .2s, background-color .4s;
  display:inline-flex;
  gap:.75rem;
}
.button:hover{border-color:var(--gray-900);background-color:var(--gray-900)}
.button.is-blue{border-color:var(--blue-400-lead);background-color:var(--blue-400-lead)}
.button.is-blue:hover{background-color:#009ae3;border-color:#009ae3}
.button.is-navy{border-color:var(--fsi-navy);background-color:var(--fsi-navy);color:#fff}
.button.is-navy:hover{background-color:var(--fsi-navy-hover);border-color:var(--fsi-navy-hover)}
.button.is-large{min-width:180px;padding:.9rem 2.3rem;font-size:1.1rem}
.button.is-transparent{
  border-style:solid;
  border-color:var(--gray-300);
  color:var(--gray-900);
  background-color:transparent;
  align-self:flex-start;
}
.button.is-transparent:hover{background-color:var(--opacity-100);color:var(--gray-900);border-color:var(--gray-400)}
.button.is-soft{
  border-color:var(--gray-200);
  background-color:var(--gray-100);
  color:var(--gray-900);
}
.button.is-soft:hover{
  background-color:var(--gray-200);
  border-color:var(--gray-300);
  color:var(--gray-900);
}
.button-wrapper{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.button-wrapper.justify-start{justify-content:flex-start}
.icon-sm{flex:none;width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center}

/* === Site navigation === */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background-color:#fefefe;
  border-bottom:1px solid var(--opacity-300);
  padding-left:2.5rem;
  padding-right:2.5rem;
}
.site-header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.1rem 0;
  gap:2rem;
  max-width:76rem;
  margin:0 auto;
}
.scroll-progress{
  position:absolute;
  left:0;
  top:0;
  height:2px;
  width:0%;
  background:var(--fsi-navy);
  transition:width .08s linear;
  pointer-events:none;
  z-index:51;
}
.site-logo{
  display:flex;
  align-items:center;
  gap:.75rem;
  text-decoration:none;
  flex-shrink:0;
}
.site-logo-mark{
  width:38px;
  height:38px;
  flex-shrink:0;
}
.site-logo-text{
  display:flex;
  flex-direction:column;
  line-height:1.1;
  font-family:Seasonmix, Georgia, serif;
  color:var(--gray-900);
}
.site-logo-text-primary{
  font-size:1.05rem;
  font-weight:500;
  letter-spacing:-.005em;
}
.site-logo-text-affiliate{
  font-size:.72rem;
  color:var(--gray-600);
  font-style:italic;
  margin-top:1px;
}
.site-nav{
  display:flex;
  align-items:center;
  gap:2.2rem;
  font-family:Seasonsans, Arial, sans-serif;
  font-size:.98rem;
  font-weight:500;
  color:var(--gray-900);
  flex:1;
  justify-content:center;
}
.site-nav a{transition:color .2s ease;cursor:pointer}
.site-nav a:hover{color:var(--blue-700)}
.site-nav a.is-active{color:var(--fsi-navy);text-decoration:underline;text-decoration-color:var(--blue-400-lead);text-underline-offset:6px}
.site-cta{flex-shrink:0}
.site-cta .button{padding:.6rem 1.2rem;font-size:.95rem}
.mobile-menu-toggle{
  display:none;
  background:none;
  border:0;
  font-size:1.5rem;
  cursor:pointer;
  padding:.4rem;
  color:var(--gray-900);
}

/* === Hero === */
.section-hero{
  align-items:flex-end;
  min-height:770px;
  display:flex;
  position:relative;
  overflow:hidden;
}
.section-hero.is-subpage{
  min-height:auto;
  align-items:flex-start;
  padding-top:5.5rem;
  padding-bottom:4.5rem;
  overflow:visible;
}
.section-hero.is-subpage .container-large{position:relative;z-index:2}
.section-hero.is-subpage::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg, transparent 0%, rgba(255,255,255,.45) 35%, rgba(255,255,255,.7) 50%, rgba(255,255,255,.45) 65%, transparent 100%);
  pointer-events:none;
  z-index:1;
}
.subpage-hero-eyebrow{
  display:block;
  margin:0 0 1rem;
}
.subpage-hero-title{
  color:var(--gray-900);
  text-wrap:balance;
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  font-size:3.4rem;
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0 0 1.4rem;
}
.subpage-hero-subtitle{
  color:var(--gray-900);
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  font-size:1.3rem;
  line-height:1.45;
  letter-spacing:0;
  max-width:42rem;
  margin:0;
  text-wrap:pretty;
}

/* === Affiliate / sibling-brand callout (AI Labs page) === */
.affiliate-block{
  position:relative;
  overflow:hidden;
  padding-top:7rem;
  padding-bottom:7rem;
  background:linear-gradient(180deg, #f7f9fc 0%, #eef2f8 100%);
}
.affiliate-watermark{
  position:absolute;
  right:-9rem;
  top:50%;
  transform:translateY(-50%);
  width:42rem;
  height:42rem;
  opacity:.18;
  pointer-events:none;
  z-index:1;
}
.affiliate-watermark img{width:100%;height:100%;display:block;object-fit:contain}
.affiliate-block .container-large{position:relative;z-index:2}
.affiliate-inner{
  max-width:44rem;
  margin:0 auto;
  text-align:center;
}
.affiliate-inner h2{
  color:var(--fsi-navy);
  font-size:3rem;
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0 0 1.25rem;
}
.affiliate-inner p{
  color:var(--gray-700);
  font-size:1.15rem;
  line-height:1.6;
  margin:0 0 2rem;
}
.affiliate-inner p strong{color:var(--gray-900);font-weight:700}
.affiliate-cta{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  border:1px solid var(--fsi-navy);
  color:var(--fsi-navy);
  background:#fff;
  border-radius:.6rem;
  padding:.85rem 1.6rem;
  font-family:Seasonsans, Arial, sans-serif;
  font-weight:600;
  font-size:1rem;
  transition:background-color .25s, color .25s;
}
.affiliate-cta:hover{background:var(--fsi-navy);color:#fff}
.affiliate-cta svg{width:1rem;height:1rem;flex:none}
@media (max-width:991px){
  .affiliate-watermark{width:26rem;height:26rem;right:-10rem;opacity:.12}
  .affiliate-inner h2{font-size:2.4rem}
}
@media (max-width:767px){
  .affiliate-block{padding:4.5rem 0}
  .affiliate-watermark{display:none}
  .affiliate-inner h2{font-size:2rem}
  .affiliate-inner p{font-size:1.05rem}
}
.home-background-layer{
  z-index:-1;
  background-color:var(--gray-100);
  background-image:
    linear-gradient(111deg, #ffffff40 24%, #0000 54%),
    url(https://cdn.prod.website-files.com/63fe96aeda6bea77ac7d3000/6402d5fa4a209e3999351ff2_home-hero-C.webp);
  background-position:0 0, 50% 100%;
  background-size:auto, cover;
  max-width:none;
  position:absolute;
  inset:0%;
  filter:blur(10px);
  transform:translate3d(0,0,0) scale3d(1.11,1.11,1);
  will-change:filter, transform;
}
.subpage-hero-bg{
  background:linear-gradient(180deg, var(--hero-gradient-start) 0%, #f1f4fa 100%);
}

/* === Section: Mission statement / pull-quote === */
.mission-block{
  padding-top:6rem;
  padding-bottom:6rem;
}
.mission-block .max-width-large{
  margin:0 auto;
}
.mission-statement{
  font-family:Seasonmix, Georgia, serif;
  font-size:1.85rem;
  line-height:1.35;
  color:var(--gray-900);
  text-wrap:balance;
  letter-spacing:-.005em;
}
.mission-statement strong{font-weight:700}
.mission-statement em{font-family:Jjannon, Georgia, serif;font-style:italic}

/* === Why we exist (about-page section) === */
.why-section{
  position:relative;
  padding-top:6rem;
  padding-bottom:6rem;
  overflow:hidden;
  background-color:#fefefe;
}
.why-section .container-large{position:relative;z-index:2}
.why-stack{max-width:50rem}
.why-heading{
  font-size:2.8rem;
  line-height:1.1;
  letter-spacing:-.02em;
  margin-bottom:1rem;
  font-family:Seasonmix, Georgia, serif;
  font-weight:400;
  color:var(--gray-900);
}
.why-heading em{font-family:Jjannon, Georgia, serif;font-style:italic;font-weight:400}
.why-body{max-width:50rem}
.why-lede{
  font-family:Seasonsans, Arial, sans-serif;
  font-size:1.05rem;
  font-weight:700;
  color:var(--gray-900);
  line-height:1.6;
  letter-spacing:.01rem;
  margin:0 0 1rem;
}
.why-copy{
  font-family:Seasonsans, Arial, sans-serif;
  font-size:1.05rem;
  font-weight:400;
  line-height:1.65;
  letter-spacing:.01rem;
  color:var(--gray-800);
  margin:0;
}
.why-copy + .why-copy{margin-top:1.1rem}
.why-flywheel{
  position:absolute;
  top:50%;
  right:-6rem;
  transform:translateY(-50%);
  width:38rem;
  height:38rem;
  color:#bcd1ea;
  opacity:.45;
  pointer-events:none;
  z-index:1;
}
.why-flywheel svg{width:100%;height:100%;display:block}
@media (max-width:991px){
  .why-heading{font-size:2.4rem}
  .why-flywheel{width:22rem;height:22rem;right:-9rem;opacity:.3}
}
@media (max-width:767px){
  .why-heading{font-size:2rem}
  .why-flywheel{display:none}
}

/* === Three-card grid (Featured Work / Work in Action) === */
.cards-section{
  padding-top:6rem;
  padding-bottom:6rem;
}
.cards-eyebrow{
  margin-bottom:.85rem;
}
.cards-heading{
  font-size:3.4rem;
  line-height:1.05;
  letter-spacing:-.02em;
  margin-bottom:1rem;
}
.cards-intro{
  max-width:42rem;
  color:var(--gray-700);
  font-size:1.05rem;
  line-height:1.6;
  margin-bottom:3rem;
}
.cards-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  align-items:stretch;
}
.card{
  background-color:var(--white);
  border:1px solid var(--opacity-300);
  border-radius:6px;
  padding:1.9rem 1.9rem 1.2rem;
  display:flex;
  flex-direction:column;
  color:var(--gray-600);
  transition:color .3s, border-color .4s, box-shadow .4s, transform .4s;
}
.card:hover{
  border-color:#57667a52;
  color:var(--gray-800);
  box-shadow:0 0 50px -30px #0000002e;
  transform:translateY(-2px);
}
.card-icon{
  width:2.3rem;
  height:2.3rem;
  flex:none;
  color:var(--fsi-navy);
  margin-bottom:1.25rem;
}
.card-icon svg{width:100%;height:100%;display:block}
.card-eyebrow{
  font-family:Seasonsans, Arial, sans-serif;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--blue-400-lead);
  font-weight:600;
  margin-bottom:.6rem;
}
.card-title{
  font-family:Seasonmix, Georgia, serif;
  font-size:1.55rem;
  line-height:1.15;
  font-weight:400;
  color:var(--gray-900);
  letter-spacing:-.01em;
  margin-bottom:.85rem;
}
.card-body{
  color:var(--gray-700);
  font-size:.95rem;
  line-height:1.6;
  flex:1;
  margin-bottom:1.25rem;
}
.card-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  align-self:flex-start;
  color:var(--gray-900);
  font-weight:600;
  font-size:.95rem;
  padding:.4rem 0;
  transition:gap .3s ease, color .3s ease;
}
.card-link:hover{color:var(--blue-400-lead);gap:.95rem}
.card-link svg{width:1rem;height:1rem;flex:none}

/* === Split layout (heading + h3 lede + side art) === */
.split-section{
  padding-top:6rem;
  padding-bottom:6rem;
  position:relative;
  overflow:hidden;
}
.split-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}
.split-text h2{
  font-size:3.4rem;
  line-height:1.05;
  letter-spacing:-.02em;
  margin-bottom:1.5rem;
}
.split-text .heading-style-h5{
  font-size:1.3rem;
  line-height:1.45;
  color:var(--gray-700);
}
.split-art{
  position:relative;
  min-height:380px;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* === Director quote / split with photo === */
.quote-section{
  padding-top:6rem;
  padding-bottom:6rem;
  background-color:var(--white);
}
.quote-grid{
  display:grid;
  grid-template-columns:2fr 3fr;
  gap:3rem;
  align-items:center;
}
.quote-photo{
  width:100%;
  aspect-ratio:4 / 5;
  background-color:var(--gray-100);
  border-radius:8px;
  overflow:hidden;
}
.quote-photo img{width:100%;height:100%;object-fit:cover}
.quote-body{
  font-family:Jjannon, Georgia, serif;
  font-style:italic;
  font-size:1.55rem;
  line-height:1.4;
  color:var(--gray-900);
  margin-bottom:2rem;
}
.quote-byline{
  font-family:Seasonsans, Arial, sans-serif;
  font-size:.95rem;
  line-height:1.5;
  color:var(--gray-700);
}
.quote-byline-name{font-weight:700;color:var(--gray-900);display:block}

/* === Leadership team grid === */
.team-section{
  padding-top:6rem;
  padding-bottom:6rem;
}
.team-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.25rem;
}
.team-card{
  background-color:var(--white);
  border:1px solid var(--opacity-300);
  border-radius:8px;
  overflow:hidden;
  transition:border-color .3s, box-shadow .3s, transform .3s;
}
.team-card:hover{
  border-color:var(--blue-400-lead);
  box-shadow:0 0 50px -30px rgba(0,0,0,.18);
  transform:translateY(-2px);
}
.team-photo{
  width:100%;
  aspect-ratio:1 / 1;
  background:linear-gradient(160deg, var(--fsi-navy) 0%, #2a2c7a 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:Seasonmix, Georgia, serif;
  font-size:2rem;
  color:rgba(255,255,255,.55);
  letter-spacing:3px;
  user-select:none;
  overflow:hidden;
}
.team-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.team-body{
  padding:1.4rem 1.5rem 1.5rem;
}
.team-role{
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gray-600);
  font-weight:600;
  margin-bottom:.5rem;
}
.team-name{
  font-family:Seasonmix, Georgia, serif;
  font-size:1.25rem;
  font-weight:400;
  color:var(--gray-900);
  margin-bottom:.6rem;
  line-height:1.2;
}
.team-bio{
  color:var(--gray-700);
  font-size:.93rem;
  line-height:1.55;
}

/* === FAQ accordion === */
.faq-section{padding-top:6rem;padding-bottom:6rem}
.faq-eyebrow{
  display:block;
  color:var(--blue-400-lead);
  font-family:Seasonsans, Arial, sans-serif;
  font-size:.85rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:1.4rem;
}
.faq-heading{
  color:var(--gray-900);
  font-family:Seasonmix, Georgia, serif;
  font-size:3.4rem;
  line-height:1.05;
  letter-spacing:-.02em;
  font-weight:400;
  margin:0 0 1.4rem;
  text-wrap:balance;
}
.faq-intro{
  color:var(--gray-800);
  font-family:Seasonsans, Arial, sans-serif;
  font-size:1.05rem;
  line-height:1.55;
  max-width:36rem;
  margin:0 0 3rem;
}
.faq-list{margin:0;padding:0}
.faq-item{
  border-top:1px solid var(--opacity-300);
  background-color:transparent;
  border-radius:6px;
  transition:background-color .25s ease;
}
.faq-item:last-of-type{border-bottom:1px solid var(--opacity-300)}
.faq-item.is-open{background-color:var(--gray-100)}
.faq-summary{
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:1.6rem 1.25rem;
  font-family:Seasonsans, Arial, sans-serif;
  font-size:1.05rem;
  font-weight:500;
  color:var(--gray-900);
  user-select:none;
  transition:color .2s ease;
}
.faq-item:not(.is-open) .faq-summary:hover{color:var(--blue-700)}
.faq-question{flex:1}
.faq-chevron{
  width:18px;height:18px;
  flex-shrink:0;
  transition:transform .25s ease;
}
.faq-item.is-open .faq-chevron{transform:rotate(90deg)}
.faq-drawer{
  height:0;
  overflow:hidden;
  transition:height .25s ease;
}
.faq-answer{
  padding:0 1.25rem 1.6rem;
  color:var(--gray-700);
  font-size:1rem;
  line-height:1.65;
}
.faq-answer p+p{margin-top:1rem}

/* === Partner CTA banner (deeper navy ground, CAIS cyan accents) === */
.partner-cta{
  background-color:var(--fsi-navy-deep);
  padding:5rem 2.5rem;
}
.partner-cta-inner{
  max-width:76rem;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:3rem;
  align-items:center;
}
.partner-cta h2{
  color:var(--cais-cyan);
  font-size:2.6rem;
  line-height:1.1;
  letter-spacing:-.02em;
  margin:0 0 .85rem;
}
.partner-cta p{
  color:var(--gray-300);
  font-size:1.05rem;
  line-height:1.6;
  max-width:40rem;
  margin:0;
}
.partner-cta .button.is-blue{
  align-self:center;
}

/* === Site footer === */
.site-footer{
  background-color:var(--fsi-navy);
  color:var(--gray-400);
  padding-top:5rem;
  padding-bottom:2rem;
}
.site-footer a{color:var(--gray-300);transition:color .2s}
.site-footer a:hover{color:#fff}
.site-footer-inner{
  max-width:76rem;
  margin:0 auto;
  padding-left:2.5rem;
  padding-right:2.5rem;
}
.footer-top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:3rem;
  padding-bottom:4rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-brand{display:flex;flex-direction:column;gap:1rem}
.footer-brand-lockup{display:flex;align-items:center;gap:.85rem}
.footer-brand-mark{width:42px;height:42px;flex-shrink:0}
.footer-brand-text{display:flex;flex-direction:column;line-height:1.1;color:#fff;font-family:Seasonmix, Georgia, serif}
.footer-brand-name{font-size:1.05rem}
.footer-brand-affiliate{font-size:.72rem;color:var(--gray-400);font-style:italic;margin-top:1px}
.footer-tagline{
  color:var(--gray-400);
  font-size:.93rem;
  line-height:1.6;
  max-width:22rem;
}
.footer-col h4{
  font-family:Seasonsans, Arial, sans-serif;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:600;
  color:#fff;
  margin-bottom:1.1rem;
}
.footer-col ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.footer-col a{
  font-size:.95rem;
  line-height:1.5;
}

/* Footer affiliate block — sibling-brand attribution to CAIS */
.footer-affiliate{
  display:flex;
  flex-direction:column;
  gap:.85rem;
}
.footer-affiliate-link{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  text-decoration:none;
}
.footer-affiliate-mark{
  width:36px;height:36px;
  flex-shrink:0;
  object-fit:contain;
}
.footer-affiliate-text{display:flex;flex-direction:column;line-height:1.15}
.footer-affiliate-eyebrow{
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gray-400);
  font-weight:600;
}
.footer-affiliate-name{
  font-family:Seasonmix, Georgia, serif;
  font-size:.95rem;
  color:#fff;
  margin-top:2px;
}
.footer-affiliate-tagline{
  color:var(--gray-400);
  font-size:.85rem;
  line-height:1.55;
}

.footer-bottom{
  padding-top:1.5rem;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:1rem;
  font-size:.82rem;
  color:var(--gray-400);
}
.footer-bottom-links{display:flex;gap:1.5rem}

/* === Responsive === */
@media (max-width: 991px){
  .heading-style-h1{font-size:4.25rem}
  .heading-style-h2,.cards-heading,.faq-heading,.split-text h2{font-size:2.6rem}
  .subpage-hero-title{font-size:2.8rem}
  .subpage-hero-subtitle{font-size:1.2rem}
  .padding-huge{padding:5rem}
  .section-hero{min-height:640px}
  .cards-grid{grid-template-columns:repeat(2, 1fr)}
  .team-grid{grid-template-columns:repeat(2, 1fr)}
  .split-grid{grid-template-columns:1fr;gap:3rem}
  .quote-grid{grid-template-columns:1fr;gap:2rem}
  .footer-top{grid-template-columns:1fr 1fr;gap:2.5rem}
  .partner-cta-inner{grid-template-columns:1fr;gap:1.5rem}
  .site-nav{gap:1.4rem;font-size:.92rem}
}
@media (max-width: 767px){
  .heading-style-h1{font-size:3.5rem}
  .heading-style-h2,.cards-heading,.faq-heading,.split-text h2{font-size:2.25rem}
  .subpage-hero-title{font-size:2.1rem;letter-spacing:-.025em}
  .subpage-hero-subtitle{font-size:1.1rem}
  .subpage-hero-title br{display:none}
  .section-hero.is-subpage{padding-top:3.5rem;padding-bottom:3rem}
  .padding-global{padding-left:1.25rem;padding-right:1.25rem}
  .padding-huge{padding:3rem 1.5rem}
  .section-hero{min-height:560px}
  .button.is-large{min-width:0;max-width:100%;flex:1}
  .cards-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:2rem}
  .site-header{padding-left:0;padding-right:0}
  .site-header-inner{padding:1rem 1.25rem;gap:1rem}
  .site-nav{display:none}
  .site-nav.is-open{
    display:flex;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    background:#fefefe;
    padding:1rem 1.25rem;
    border-top:1px solid var(--opacity-300);
    border-bottom:1px solid var(--opacity-300);
    align-items:flex-start;
    gap:1rem;
  }
  .mobile-menu-toggle{display:inline-flex}
  .site-cta{display:none}
  .partner-cta h2{font-size:2rem}
  .mission-statement{font-size:1.45rem}
  .quote-body{font-size:1.25rem}
}
@media (max-width: 479px){
  .heading-style-h1{font-size:2.6rem}
  .button-wrapper{flex-direction:column;align-items:stretch}
  .button.is-large{max-width:100%}
}

/* === Animation init states === */
[text-split]{opacity:0}
[data-fade-up]{opacity:0;transform:translateY(16px)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease, transform .8s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* =========================================================================
   Wave 1 — Deck-alignment additions (2026-05-11)
   Sections: We/For/Solve band, Structural reasons band, Four-lanes grid
   ========================================================================= */

/* === We / For / To Solve — three-column rhetorical band === */
.wfs-section{
  padding-top:5.5rem;
  padding-bottom:5.5rem;
  background-color:var(--white);
  border-top:1px solid var(--opacity-300);
  border-bottom:1px solid var(--opacity-300);
}
.wfs-eyebrow{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--blue-400-lead);font-weight:600;
  margin-bottom:.85rem;
}
.wfs-heading{
  font-family:Seasonmix,Georgia,serif;
  font-size:2.4rem;line-height:1.1;letter-spacing:-.015em;
  color:var(--gray-900);
  margin-bottom:3rem;max-width:38rem;
}
.wfs-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2.5rem;
}
.wfs-item{
  border-top:2px solid var(--fsi-navy);
  padding-top:1.25rem;
}
.wfs-label{
  display:block;
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gray-600);font-weight:600;
  margin-bottom:.85rem;
}
.wfs-value{
  font-family:Seasonmix,Georgia,serif;
  font-size:1.35rem;line-height:1.25;
  color:var(--gray-900);
  margin-bottom:.85rem;letter-spacing:-.005em;
}
.wfs-body{
  font-size:.95rem;line-height:1.6;color:var(--gray-700);
}

/* === Three structural reasons (Antitrust / Attribution / Capacity) === */
.reasons-section{
  padding-top:6rem;padding-bottom:6rem;
  background-color:var(--gray-100);
  position:relative;overflow:hidden;
}
.reasons-eyebrow{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--blue-400-lead);font-weight:600;
  margin-bottom:.85rem;
}
.reasons-heading{
  font-family:Seasonmix,Georgia,serif;
  font-size:2.6rem;line-height:1.1;letter-spacing:-.015em;
  color:var(--gray-900);
  margin-bottom:1rem;max-width:42rem;
}
.reasons-heading em{font-family:Jjannon,Georgia,serif;font-style:italic;font-weight:400}
.reasons-intro{
  font-size:1.05rem;line-height:1.65;color:var(--gray-700);
  max-width:42rem;margin-bottom:3.5rem;
}
.reasons-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2rem;
  margin-bottom:2.5rem;
}
.reason-item{
  background:var(--white);
  border:1px solid var(--opacity-300);
  border-radius:8px;
  padding:1.75rem 1.65rem 1.85rem;
  display:flex;flex-direction:column;
  transition:border-color .3s, box-shadow .3s, transform .3s;
}
.reason-item:hover{
  border-color:var(--blue-400-lead);
  box-shadow:0 0 50px -30px rgba(0,0,0,.18);
  transform:translateY(-2px);
}
.reason-num{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.72rem;letter-spacing:.18em;font-weight:700;
  color:var(--gray-500);
  margin-bottom:1rem;
  display:flex;align-items:center;gap:.6rem;
}
.reason-num::after{
  content:'';
  flex:1;height:1px;background:var(--opacity-300);
}
.reason-name{
  font-family:Seasonmix,Georgia,serif;
  font-size:1.2rem;line-height:1.2;
  color:var(--gray-900);
  margin-bottom:.6rem;letter-spacing:-.01em;
}
.reason-body{
  font-size:.9rem;line-height:1.55;color:var(--gray-700);
  flex:1;
}

/* === Four-lanes operating model === */
.lanes-section{padding-top:6rem;padding-bottom:6rem;background-color:var(--white)}
.lanes-eyebrow{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--blue-400-lead);font-weight:600;
  margin-bottom:.85rem;
}
.lanes-heading{
  font-family:Seasonmix,Georgia,serif;
  font-size:2.6rem;line-height:1.1;letter-spacing:-.015em;
  color:var(--gray-900);
  margin-bottom:1rem;max-width:38rem;
}
.lanes-intro{
  font-size:1.05rem;line-height:1.65;color:var(--gray-700);
  max-width:42rem;margin-bottom:3.5rem;
}
.lanes-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.25rem;
}
.lane-card{
  background:var(--white);
  border:1px solid var(--opacity-300);
  border-radius:8px;
  padding:1.75rem 1.65rem 1.85rem;
  display:flex;flex-direction:column;
  transition:border-color .3s, box-shadow .3s, transform .3s;
}
.lane-card:hover{
  border-color:var(--blue-400-lead);
  box-shadow:0 0 50px -30px rgba(0,0,0,.18);
  transform:translateY(-2px);
}
.lane-num{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.72rem;letter-spacing:.18em;font-weight:700;
  color:var(--gray-500);
  margin-bottom:1rem;
  display:flex;align-items:center;gap:.6rem;
}
.lane-num::after{
  content:'';
  flex:1;height:1px;background:var(--opacity-300);
}
.lane-tag{
  display:inline-block;
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue-400-lead);font-weight:600;
  margin-bottom:.6rem;
}
.lane-tag.is-load-bearing{
  color:var(--fsi-navy);
  background:rgba(0,173,255,.12);
  padding:.18rem .55rem;border-radius:3px;
  letter-spacing:.12em;
}
.lane-title{
  font-family:Seasonmix,Georgia,serif;
  font-size:1.2rem;line-height:1.2;
  color:var(--gray-900);
  margin-bottom:.5rem;letter-spacing:-.01em;
}
.lane-partner{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.82rem;color:var(--blue-400-lead);
  margin-bottom:.85rem;font-weight:500;
}
.lane-partner strong{color:var(--gray-900);font-weight:600}
.lane-body{
  font-size:.9rem;line-height:1.55;color:var(--gray-700);
  flex:1;
}

@media (max-width:991px){
  .wfs-grid,.reasons-grid{grid-template-columns:repeat(2, 1fr);gap:1.75rem}
  .lanes-grid{grid-template-columns:repeat(2, 1fr);gap:1rem}
  .wfs-heading,.reasons-heading,.lanes-heading{font-size:2.1rem}
}
@media (max-width:639px){
  .wfs-grid,.reasons-grid,.lanes-grid{grid-template-columns:1fr;gap:1.25rem}
  .wfs-heading,.reasons-heading,.lanes-heading{font-size:1.85rem}
  .reasons-closer{font-size:1.02rem;padding:1.25rem 1.4rem}
}

/* === Mission row — image + text alternating treatment ===
   Promoted from the casual-photos-test .feat-row pattern after
   Mike approved it as a reusable workshop style (2026-05-11). */
.mission-row{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:3.5rem;
  align-items:center;
  padding-top:5.5rem;
  padding-bottom:5.5rem;
}
.mission-row.reverse .mission-row-photo{order:2}
.mission-row.reverse .mission-row-text{order:1}
.mission-row-photo{
  aspect-ratio:3 / 2;
  overflow:hidden;
  border-radius:8px;
  background:var(--gray-100);
  position:relative;
}
.mission-row-photo img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.mission-row-text .mission-statement{margin:0;font-size:1.35rem;line-height:1.5}

@media (max-width:991px){
  .mission-row{grid-template-columns:1fr;gap:2rem;padding-top:3.5rem;padding-bottom:3.5rem}
  .mission-row.reverse .mission-row-photo,.mission-row.reverse .mission-row-text{order:initial}
  .mission-row-photo{aspect-ratio:3 / 2;max-height:32rem}
}

/* =========================================================================
   Wave 2 — Deck-alignment additions (2026-05-11)
   Sections: Stakes pull-quote (Slide 11), Voice & Posture (Slide 8)
   ========================================================================= */

/* === Stakes pull-quote (Slide 11) === */
.stakes-section{
  padding-top:7rem;padding-bottom:7rem;
  background-color:var(--fsi-navy);
  color:#fff;
  position:relative;overflow:hidden;
}
.stakes-section .substrate{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,173,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,173,255,.04) 1px, transparent 1px);
  background-size:80px 80px;
  pointer-events:none;
}
.stakes-section .container-large{position:relative;z-index:2;max-width:60rem}
.stakes-eyebrow{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:#00adff;font-weight:600;
  margin-bottom:1.5rem;
}
.stakes-quote{
  font-family:Jjannon,Georgia,serif;
  font-style:italic;font-weight:400;
  font-size:2.4rem;line-height:1.2;letter-spacing:-.005em;
  color:#fff;
  margin-bottom:2rem;
  max-width:54rem;
}
.stakes-quote .highlight{color:#00adff;font-style:italic}
.stakes-body{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:1.05rem;line-height:1.7;
  color:rgba(255,255,255,.78);
  max-width:48rem;
}
.stakes-body strong{color:#fff;font-weight:500}

/* === Voice & Posture (Slide 8) === */
.posture-section{
  padding-top:6rem;padding-bottom:6rem;
  background-color:var(--white);
  border-top:1px solid var(--opacity-300);
}
.posture-eyebrow{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--blue-400-lead);font-weight:600;
  margin-bottom:.85rem;
}
.posture-heading{
  font-family:Seasonmix,Georgia,serif;
  font-size:2.4rem;line-height:1.15;letter-spacing:-.015em;
  color:var(--gray-900);
  margin-bottom:3rem;max-width:42rem;
}
.posture-heading em{font-family:Jjannon,Georgia,serif;font-style:italic;font-weight:400}
.posture-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:start;
}
.posture-col-label{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gray-600);font-weight:600;
  margin-bottom:1rem;
  padding-bottom:.6rem;
  border-bottom:1px solid var(--opacity-300);
}
.posture-attributes{
  display:flex;flex-wrap:wrap;gap:.5rem .65rem;
  margin-bottom:1.25rem;
}
.posture-attr{
  font-family:Seasonmix,Georgia,serif;
  font-size:1.25rem;line-height:1.2;
  color:var(--gray-900);
  letter-spacing:-.005em;
}
.posture-attr::after{content:'·';margin-left:.65rem;color:var(--gray-400);font-weight:300}
.posture-attr:last-child::after{content:''}
.posture-statement{
  font-family:Seasonmix,Georgia,serif;
  font-size:1.4rem;line-height:1.3;letter-spacing:-.01em;
  color:var(--gray-900);
  margin-bottom:1.25rem;
}
.posture-statement em{font-family:Jjannon,Georgia,serif;font-style:italic;font-weight:400}
.posture-body{
  font-family:Seasonsans,Arial,sans-serif;
  font-size:.98rem;line-height:1.65;color:var(--gray-700);
}

@media (max-width:991px){
  .stakes-quote{font-size:1.85rem}
  .posture-grid{grid-template-columns:1fr;gap:2.5rem}
  .posture-heading{font-size:2rem}
}
@media (max-width:639px){
  .stakes-quote{font-size:1.45rem}
  .stakes-section{padding-top:4.5rem;padding-bottom:4.5rem}
  .posture-attr{font-size:1.1rem}
  .posture-statement{font-size:1.2rem}
}
