:root{
  --bg:#0B1D36;
  --bg-2:#0B1D36;
  --ink:#F4F2EC;
  --muted:#A7B0C2;
  --star:#1E6BFF;
  --line:rgba(244,242,236,.16);
  --panel:transparent;
  --panel-2:transparent;
  --navy:#0B1D36;
  --cream:#F4F2EC;
  --max:1120px;
  --radius:999px;
  --pad:clamp(1.4rem,5.5vw,3.5rem);
  --nav-h:88px;
  --section-y:clamp(5.25rem,11vw,8.75rem);
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  color-scheme:dark;
  overflow-x:hidden;
  scroll-padding-top:var(--nav-h);
  -webkit-text-size-adjust:100%;
}
html,body{margin:0;padding:0;max-width:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  min-height:100vh;
  overflow-x:hidden;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
h1,h2,h3{
  letter-spacing:-.045em;
  line-height:1.06;
  font-weight:800;
  overflow-wrap:break-word;
  word-wrap:break-word;
  max-width:100%;
}
h1{font-size:clamp(2.35rem,7.4vw,5.5rem)}
h2{font-size:clamp(1.7rem,4.4vw,3.35rem)}
h3{font-size:1.22rem;letter-spacing:-.03em;line-height:1.2}
.wrap{width:min(100%,var(--max));margin:0 auto;padding:0 var(--pad)}
.kicker{
  color:var(--ink);
  font-size:.72rem;
  font-weight:650;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin:0 0 1.05rem;
}
.accent{color:var(--ink)}
.lede{color:var(--muted);max-width:36rem;font-size:1.08rem;line-height:1.6}
.hero-body{color:var(--muted);max-width:38rem;margin:1.25rem 0 0;font-size:1.05rem;line-height:1.65}
.lockup{color:var(--ink);font-weight:700;letter-spacing:-.03em;margin:1.25rem 0 0;font-size:1.2rem}
.pov{color:var(--ink);max-width:38rem;font-size:1.12rem;line-height:1.6}
.muted{color:var(--muted)}
.muted a{text-decoration:underline;text-underline-offset:2px}
.muted a:hover,.muted a:focus-visible{color:var(--ink)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* Nav — solid navy, sticky, no blur */
.nav{
  position:sticky;top:0;z-index:20;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  position:relative;
  display:flex;
  align-items:center;
  gap:.75rem 1rem;
  min-height:var(--nav-h);
}
.brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  flex:0 1 auto;
  min-width:0;
}
.brand img{
  height:58px;
  width:auto;
  max-width:min(72px,22vw);
  object-fit:contain;
  border-radius:0;
}
.brand span{display:none}
.navlinks{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:1.85rem;
  flex:1 1 auto;
  min-width:0;
}
.navlinks a{
  color:var(--ink);
  font-size:.95rem;
  opacity:.72;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  transition:opacity .15s ease;
}
.navlinks a:hover,
.navlinks a:focus-visible{opacity:1}
.navlinks a[aria-current="page"]{opacity:1;box-shadow:inset 0 -2px 0 var(--ink);color:var(--ink)}
.navlinks a.nav-talk,.nav-talk{display:none}
.mobile-toggle{
  display:none;
  width:44px;height:44px;
  min-width:44px;min-height:44px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--bg);
  cursor:pointer;
  padding:0;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
  margin-left:auto;
}
.mobile-toggle:hover,.mobile-toggle:focus-visible{border-color:var(--ink)}
.mobile-toggle span{
  display:block;width:18px;height:2px;background:var(--ink);
  transition:transform .2s ease;
  transform-origin:center;
}
.mobile-toggle[aria-expanded="true"] span:first-child{
  transform:translateY(4px) rotate(45deg);
}
.mobile-toggle[aria-expanded="true"] span:last-child{
  transform:translateY(-4px) rotate(-45deg);
}

/* Buttons — cream primary, navy type; ghost cream hairline */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  border-radius:var(--radius);
  padding:.88rem 1.2rem;
  min-height:44px;
  font-size:.95rem;
  font-weight:600;
  line-height:1;
  border:1px solid transparent;
  cursor:pointer;
  white-space:nowrap;
  max-width:100%;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease;
}
.btn-primary,.btn-nav{
  background:var(--ink);
  color:var(--bg);
  border-color:var(--ink);
}
.btn-primary:hover,.btn-primary:focus-visible,
.btn-nav:hover,.btn-nav:focus-visible{
  background:#e8e4d8;
  border-color:#e8e4d8;
  color:var(--bg);
}
.btn-primary:active,.btn-nav:active{transform:translateY(1px);background:#ddd8c8}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:rgba(244,242,236,.32);
}
.btn-ghost:hover,.btn-ghost:focus-visible{
  border-color:var(--ink);
  color:var(--ink);
  background:rgba(244,242,236,.06);
}
.btn-ghost:active{transform:translateY(1px);background:rgba(244,242,236,.1)}
.btn-nav{flex:0 0 auto}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.1rem}

/* Hero */
.hero{
  position:relative;
  isolation:isolate;
}
.hero-bg{
  position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden;
}
.hero-bg img{
  width:100%;height:100%;object-fit:cover;object-position:70% 42%;
  opacity:.95;
}
.hero-grid{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  align-items:center;
  gap:2.4rem 2rem;
  min-height:calc(100svh - var(--nav-h));
  padding:clamp(2.8rem,6vw,4.8rem) 0 clamp(4.5rem,9vw,6.5rem);
}
.hero-copy,.hero-art{min-width:0}
.hero-copy h1{margin:0 0 1.3rem}
.hero-art{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  min-height:0;
}
.hero-art img{
  width:min(420px,100%);
  height:auto;
  object-fit:contain;
  filter:none;
  border-radius:0;
  background:transparent;
}
.art-card{
  position:absolute;
  right:0;bottom:6%;
  width:min(250px,86%);
  padding:1.15rem 1.15rem 1.2rem;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:16px;
  transition:border-color .15s ease;
}
.art-card:hover,.art-card:focus-within{border-color:rgba(244,242,236,.36)}
.art-card strong{
  display:block;
  font-size:.78rem;
  letter-spacing:.08em;
  margin-bottom:.45rem;
}
.art-card p{color:var(--muted);font-size:.86rem;line-height:1.45}

/* Sections — brochure air */
.section{padding:var(--section-y) 0}
.section-head{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:1.6rem 3.2rem;
  align-items:end;
  margin-bottom:clamp(2.4rem,5vw,3.6rem);
}
.section-head h2{max-width:16ch}
.section-head p:last-child{color:var(--muted);max-width:28rem;padding-bottom:.15rem}
.split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.split > *{padding:clamp(2.6rem,5vw,3.6rem) 0;min-width:0}
.split > :first-child{padding-right:clamp(2.4rem,4vw,3.6rem);border-right:1px solid var(--line)}
.split > :last-child{padding-left:clamp(2.4rem,4vw,3.6rem)}
.split h3{
  margin:0 0 1rem;
  font-size:clamp(1.65rem,3.1vw,2.4rem);
  letter-spacing:-.04em;
}
.split > * > p{color:var(--muted);font-size:1.02rem;line-height:1.65;max-width:36rem}
.split .text-link{
  display:inline-block;
  margin-top:1.6rem;
  color:var(--ink);
  min-height:44px;
  padding:.35rem 0;
  font-weight:600;
  letter-spacing:-.02em;
}
.split .text-link:hover,.split .text-link:focus-visible{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.facts{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:1.15rem}
.facts li{color:var(--muted);font-size:.98rem;line-height:1.55}
.facts strong{display:block;color:var(--ink);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:650;margin:0 0 .28rem}

.cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.15rem;
}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:22px;
  padding:1.55rem 1.45rem 1.6rem;
  min-width:0;
  transition:border-color .15s ease;
}
.card:hover,.card:focus-within{border-color:rgba(244,242,236,.36)}
.card h3{margin:0 0 .55rem}
.card p{color:var(--muted);font-size:.98rem}
.stack{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.15rem;
}
.bands{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  background:var(--panel);
}
.band{padding:1.7rem 1.5rem 1.8rem;border-left:1px solid var(--line);min-width:0;transition:background .15s ease}
.band:first-child{border-left:0}
.band:hover,.band:focus-within{background:rgba(244,242,236,.04)}
.band h3{
  margin:0 0 .75rem;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:650;
  line-height:1.3;
}
.band p{color:var(--muted);font-size:.98rem}

/* Four-stage Stage notch — Qualify → Position → Pursue → Win.
   Cream-outline blocks on Ink; #1E6BFF star only on the active stage. */
.stage-figure{
  margin:0;
  padding-top:.5rem;
  min-width:0;
  overflow:visible;
}
.stage-svg{
  width:100%;
  height:auto;
  margin:0;
  background:transparent;
}
.stage-rail{
  display:none;
  list-style:none;
  margin:0;
  padding:0;
}
.stage-card{
  display:block;
  position:relative;
  border:2px solid var(--ink);
  border-radius:12px;
  padding:1.25rem 1.15rem 1.75rem;
  min-height:7.2rem;
}
.stage-card .num{
  display:block;
  color:var(--muted);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.16em;
  margin:0 0 .5rem;
}
.stage-card .label{
  display:block;
  color:var(--ink);
  font-size:1.3rem;
  font-weight:800;
  letter-spacing:-.03em;
}
.stage-star{
  position:absolute;
  left:50%;
  bottom:8px;
  width:14px;
  height:14px;
  transform:translateX(-50%);
  color:var(--star);
}
.stage-star svg{width:100%;height:100%}

.services-motion{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:clamp(2rem,4.5vw,3.6rem);
  align-items:center;
}
.services-motion > *{min-width:0}
.services-motion .stage-figure{padding-top:0}
.services-motion .stage-svg{max-width:880px}

.cycle-list{display:grid;gap:0;margin-top:0}
.cycle-item{
  display:grid;
  grid-template-columns:8.2rem minmax(0,1fr);
  gap:1.1rem;
  padding:1.7rem 0;
  border-top:1px solid var(--line);
}
.cycle-item:last-child{border-bottom:1px solid var(--line)}
.cycle-item .num{
  color:var(--ink);
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding-top:.2rem;
}
.cycle-item h3{margin:0 0 .35rem}
.cycle-item p{color:var(--muted);font-size:1.02rem;line-height:1.6}

.who-inner{
  max-width:36rem;
  padding:clamp(1rem,3vw,2rem) 0;
}
.who .kicker{margin-bottom:1.2rem}
.who h2{max-width:14ch;margin:0 0 1.4rem}
.who .lede{max-width:32rem}

/* Inner page hero */
.page-hero{
  padding:clamp(3.2rem,8vw,6.2rem) 0 clamp(2.2rem,4vw,3.2rem);
  background:transparent;
}
.page-hero h1{max-width:min(16ch,100%);margin:0 0 1.25rem}
.page-hero .lede{max-width:40rem}
.page-hero .pov{margin-top:.15rem;max-width:42rem}
.pov + .pov{margin-top:1.15rem}
.motion-map{color:var(--muted);margin:-.2rem 0 2.6rem;max-width:40rem}
.page-hero .actions{margin-top:1.9rem}
.next-step{max-width:40rem}
.next-step strong{display:block;margin:0 0 .35rem}

/* Form */
.form-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1.15rem 1.25rem;
  margin-top:2.1rem;
  max-width:40rem;
}
.field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.field.full,.form-actions.full{grid-column:1/-1}
.field span{font-size:.86rem;color:var(--muted)}
.field input,.field select,.field textarea{
  width:100%;
  max-width:100%;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:14px;
  padding:.85rem .95rem;
  min-height:44px;
  outline:none;
  color:var(--ink);
  transition:border-color .15s ease;
}
.field textarea{min-height:9rem;resize:vertical}
.field textarea.short{min-height:5.2rem}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(244,242,236,.36)}
.field input:focus,.field select:focus,.field textarea:focus,
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  border-color:var(--ink);
  outline:2px solid var(--ink);
  outline-offset:2px;
}
.form-micro{color:var(--muted);font-size:.82rem;line-height:1.45;margin:.2rem 0 0}
.form-status{margin:.85rem 0 0;color:var(--ink);font-size:.95rem}
.form-actions{margin-top:.4rem}
.direct{display:none}

/* Footer: navy field, cream type, reverse cream lockup */
.footer{
  padding:1.6rem 0 1.8rem;
  background:var(--navy);
  color:var(--cream);
  border-top:1px solid rgba(244,242,236,.16);
}
.footer-cta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2rem;
  padding:clamp(2.4rem,5vw,3.2rem) clamp(1.8rem,4vw,2.8rem);
  border:1px solid rgba(244,242,236,.18);
  border-radius:28px;
  background:transparent;
  margin-bottom:clamp(2.8rem,6vw,4rem);
}
.footer-cta-copy{max-width:22rem;min-width:0}
.footer-cta-copy h2{max-width:none;color:var(--cream)}
.footer-cta .lockup{margin-top:.7rem;font-size:1.05rem;color:var(--cream)}
.footer .btn-primary{
  background:var(--cream);
  color:var(--navy);
  border-color:var(--cream);
}
.footer .btn-primary:hover,.footer .btn-primary:focus-visible{
  background:#e8e4d8;
  border-color:#e8e4d8;
  color:var(--navy);
}
.footer .btn-primary:active{transform:translateY(1px);background:#ddd8c8}
.footer-grid{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,.7fr) minmax(0,.9fr);
  gap:2rem 2.5rem;
  padding-bottom:2.6rem;
}
.footer-mark{height:96px;width:auto;max-width:min(120px,100%);object-fit:contain;margin:0 0 1.1rem}
.footer-brand{min-width:0}
.footer-brand p{color:rgba(244,242,236,.72);max-width:26rem;font-size:.98rem}
.footer-label{
  color:rgba(244,242,236,.72);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin:0 0 1rem;
}
.footer-col{display:flex;flex-direction:column;gap:.72rem;min-width:0}
.footer-col a{
  color:var(--cream);
  opacity:.9;
  width:fit-content;
}
.footer-col a:hover,.footer-col a:focus-visible{color:var(--cream);opacity:1;text-decoration:underline;text-underline-offset:3px}
.footer-address{margin:0;color:var(--cream);opacity:.9;line-height:1.45;overflow-wrap:break-word}
.footer-bar{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1.3rem 0 1.5rem;
  border-top:1px solid rgba(244,242,236,.18);
  color:rgba(244,242,236,.72);
  font-size:.95rem;
}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .btn,.card,.band,.art-card,.navlinks a,.field input,.field select,.field textarea,.reveal{
    transition:none;
  }
  .btn:active,.btn-primary:active,.btn-nav:active,.btn-ghost:active{transform:none}
  .reveal{opacity:1;transform:none}
}

@media (max-width:1024px){
  .navlinks{gap:1.15rem}
  .hero-grid{min-height:0}
  .services-motion{
    grid-template-columns:1fr;
    gap:2.4rem;
    align-items:stretch;
  }
}

@media (max-width:900px){
  :root{--nav-h:76px}
  .nav{background:var(--bg)}
  .nav-inner{min-height:var(--nav-h);flex-wrap:nowrap;gap:.75rem}
  .navlinks{
    display:none;
    position:fixed;
    top:var(--nav-h);
    left:0;
    right:0;
    bottom:0;
    z-index:25;
    width:100%;
    height:calc(100svh - var(--nav-h));
    margin:0;
    flex:none;
    order:0;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    padding:1.5rem var(--pad) 2rem;
    gap:0;
    background:var(--bg);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  body.nav-open{overflow:hidden}
  .navlinks.open{display:flex}
  .navlinks a{
    min-height:44px;
    display:flex;
    align-items:center;
    padding:.35rem 0;
    box-shadow:none;
    color:var(--ink);
    opacity:1;
  }
  .navlinks a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--ink);padding-left:.7rem}
  .navlinks a.nav-talk{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:.65rem;
    min-height:44px;
    padding:.88rem 1.2rem;
    border:1px solid var(--ink);
    border-radius:var(--radius);
    font-weight:600;
    opacity:1;
    width:fit-content;
    background:var(--ink);
    color:var(--bg);
    box-shadow:none;
  }
  .navlinks a.nav-talk:hover,.navlinks a.nav-talk:focus-visible{
    background:#e8e4d8;
    border-color:#e8e4d8;
    color:var(--bg);
  }
  .mobile-toggle{display:flex;margin-left:auto;z-index:26}
  .btn-nav{margin-left:1.5rem}
  .hero-grid,.section-head,.split,.stack,.bands,.form-grid,.footer-grid,.footer-bar{
    grid-template-columns:1fr;
  }
  .cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hero-grid{min-height:0;padding:2.2rem 0 3.6rem}
  .split > :first-child{padding-right:0;padding-bottom:2.2rem;border-right:0;border-bottom:1px solid var(--line)}
  .split > :last-child{padding-left:0;padding-top:2.2rem}
  .footer-cta{align-items:flex-start;flex-direction:column;padding:1.8rem}
  .footer-cta-copy{max-width:none}
  .art-card{position:relative;right:auto;bottom:auto;margin-top:1.4rem;width:min(280px,100%)}
  .band{border-left:0;border-top:1px solid var(--line)}
  .band:first-child{border-top:0}
  .cycle-item{grid-template-columns:7.2rem minmax(0,1fr)}
  .stage-svg{display:none}
  .stage-rail{
    display:grid;
    grid-template-columns:1fr;
    gap:.75rem;
  }
  .footer-col a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
}

@media (max-width:768px){
  .navlinks{gap:0}
  .hero-grid{gap:1.6rem;padding:2rem 0 3.2rem}
  .footer-mark{height:80px}
}

@media (max-width:640px){
  body{font-size:16px}
  .btn-nav{display:none;margin-left:0}
  .nav-inner{flex-wrap:nowrap}
  .cards,.stack,.bands{grid-template-columns:1fr}
  .cycle-item{grid-template-columns:minmax(0,1fr);gap:.4rem;padding:1.5rem 0}
  .footer-mark{height:72px}
  .footer-bar{font-size:1rem;flex-direction:column}
  .footer-col a{font-size:1rem}
  .brand img{height:48px;max-width:min(64px,28vw)}
  .hero-art img{width:min(280px,100%)}
  .form-grid{grid-template-columns:1fr}
  .field input,.field select{font-size:16px}
  .stage-card{min-height:6.4rem;padding:1.1rem 1.05rem 1.6rem}
}

@media (max-width:390px){
  :root{--pad:1.2rem}
  .hero-copy h1{font-size:clamp(1.95rem,11vw,2.5rem)}
  .actions{gap:.65rem}
}
