  :root{
    --navy:#00002F;        /* logo field */
    --navy-2:#070C45;      /* raised navy */
    --green:#A6CE39;       /* logo key */
    --green-deep:#7FA21F;
    --steel:#98A1BB;       /* secondary text */
    --paper:#F2F4F8;       /* light section */
    --ink:#00002F;
    --line:rgba(152,161,187,.16);
    --sans:"Barlow", "Helvetica Neue", Arial, sans-serif;
    --cond:"Barlow Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
    --pad:clamp(1.25rem, 5vw, 4.5rem);
    --max:1280px;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  *,*::before,*::after{box-sizing:inherit}
  html{scroll-behavior:smooth;scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
  body{margin:0;background:var(--navy);color:#fff;font-family:var(--sans);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
  img,video{max-width:100%;display:block}
  a{color:inherit}
  h1,h2,h3{font-family:var(--cond);text-transform:uppercase;font-weight:800;line-height:.9;letter-spacing:-.005em;margin:0}
  p{margin:0}
  :focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:2px}
  .wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}

  /* blueprint grid used on navy sections */
  .grid-bg{
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:56px 56px;
    background-position:center top;
  }

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.6em;
    font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.04em;
    font-size:1.05rem;line-height:1;text-decoration:none;
    padding:1rem 1.4rem;border-radius:4px;border:2px solid var(--green);
    background:var(--green);color:var(--navy);
    transition:background-color .2s, color .2s, transform .2s;
  }
  .btn:hover{background:#fff;border-color:#fff}
  .btn:active{transform:translateY(1px)}
  .btn svg{width:1.1em;height:1.1em;flex:none}
  .btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
  .btn--ghost:hover{background:#fff;color:var(--navy);border-color:#fff}

  /* ---------- nav ---------- */
  .nav{
    position:fixed;top:0;left:0;right:0;z-index:20;
    padding-top:env(safe-area-inset-top,0px);
    transition:background-color .3s, box-shadow .3s;
  }
  .nav.is-solid{background:rgba(0,0,47,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
  .nav__in{display:flex;align-items:center;justify-content:space-between;height:68px}
  .nav__logo img{height:44px;width:auto}
  .nav .btn{padding:.7rem 1rem;font-size:.95rem}
  

  /* ---------- hero ---------- */
  .hero{position:relative;min-height:100svh;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate}
  @supports (height:100svh){.hero{min-height:100svh}}
  .hero__media{position:absolute;inset:0;z-index:-2;
    /* fallback dawn sky until the video loads */
    background:
      radial-gradient(120% 60% at 50% 100%, #F6B25A 0%, rgba(246,178,90,0) 55%),
      linear-gradient(180deg,#0A1150 0%,#27327A 45%,#9C6E8A 78%,#E9A25E 100%);
  }
  .hero__media video{width:100%;height:100%;object-fit:cover}
  .hero__shade{position:absolute;inset:0;z-index:-1;
    background:
      linear-gradient(180deg, rgba(0,0,47,.55) 0%, rgba(0,0,47,0) 22%),
      linear-gradient(0deg, rgba(0,0,47,.96) 0%, rgba(0,0,47,.72) 30%, rgba(0,0,47,0) 62%);
  }
  .hero__body{padding-top:110px;padding-bottom:clamp(2rem,6vh,4rem)}
  .hero__title{font-size:clamp(4.25rem, 23vw, 15rem);font-weight:900;line-height:.82;letter-spacing:-.01em}
  .hero__title .ln{display:block;overflow:hidden;padding-bottom:.04em}
  .hero__title .ln > span{display:block}
  .hero__foot{margin-top:clamp(1.5rem,4vh,2.5rem);display:grid;gap:1.5rem}
  .hero__lede{font-size:1.125rem;line-height:1.5;max-width:34ch;color:rgba(255,255,255,.9)}
  .hero__lede strong{color:#fff;font-weight:600}
  .hero__actions{display:flex;flex-wrap:wrap;gap:.75rem}
  .hero__actions .btn{flex:1 1 auto}
  .vid-toggle{
    position:absolute;right:var(--pad);top:calc(84px + env(safe-area-inset-top,0px));z-index:2;
    width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.4);
    background:rgba(0,0,47,.35);color:#fff;display:grid;place-items:center;cursor:pointer;
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)
  }
  .vid-toggle svg{width:14px;height:14px}
  .vid-toggle[hidden]{display:none}

  /* load sequence — the one orchestrated moment */
  .js .hero__title .ln > span{transform:translateY(105%)}
  .js .hero__foot,.js .nav__in{opacity:0}
  .is-ready .hero__title .ln > span{transform:none;transition:transform 1s cubic-bezier(.2,.7,.1,1)}
  .is-ready .hero__title .ln:nth-child(2) > span{transition-delay:.12s}
  .is-ready .hero__title .ln:nth-child(3) > span{transition-delay:.24s}
  .is-ready .hero__foot,.is-ready .nav__in{opacity:1;transition:opacity .8s ease .6s}

  /* ---------- problem ---------- */
  .problem{padding:clamp(4.5rem,12vw,9rem) 0;border-top:1px solid var(--line)}
  .problem__intro{font-size:clamp(1.15rem,2.4vw,1.5rem);line-height:1.45;max-width:38ch;color:var(--steel)}
  .problem__intro b{color:#fff;font-weight:600}
  .words{list-style:none;margin:clamp(2rem,5vw,3.5rem) 0;padding:0;border-top:1px solid var(--line)}
  .words li{
    font-family:var(--cond);font-weight:900;text-transform:uppercase;
    font-size:clamp(3.4rem,16.5vw,10rem);line-height:.95;letter-spacing:-.01em;
    padding:.12em 0 .06em;border-bottom:1px solid var(--line);
    color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.7);
    display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  }
  .words li small{
    font-family:var(--sans);font-weight:500;font-size:clamp(.85rem,1.4vw,1rem);line-height:1.35;
    -webkit-text-stroke:0;color:var(--steel);text-transform:none;letter-spacing:0;
    max-width:22ch;text-align:right;display:none
  }
  .answer{display:grid;gap:1.25rem;max-width:760px}
  .answer h2{font-size:clamp(2.6rem,9vw,5.5rem);color:var(--green)}
  .answer p{font-size:1.125rem;color:rgba(255,255,255,.88);max-width:58ch}

  /* ---------- advocate ---------- */
  .side{background:var(--navy-2);padding:clamp(4.5rem,12vw,9rem) 0;position:relative;overflow:hidden}
  .side__key{position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:min(70vw,520px);opacity:.07;pointer-events:none}
  .side h2{font-size:clamp(3rem,12vw,8rem);max-width:10ch}
  .side__lead{margin-top:1.75rem;font-size:clamp(1.1rem,2.2vw,1.35rem);line-height:1.5;max-width:52ch;color:rgba(255,255,255,.88)}
  .outcomes{list-style:none;margin:clamp(2.5rem,6vw,4rem) 0 0;padding:0;display:grid;gap:0}
  .outcomes li{padding:1.5rem 0;border-top:2px solid var(--green);display:grid;gap:.5rem}
  .outcomes h3{font-size:clamp(1.9rem,5vw,2.6rem);font-weight:800}
  .outcomes p{color:var(--steel);max-width:36ch}

  /* ---------- services ---------- */
  .services{background:var(--paper);color:var(--ink);padding:clamp(4.5rem,12vw,9rem) 0}
  .services__head{display:grid;gap:1.25rem;margin-bottom:clamp(2.5rem,6vw,4rem)}
  .services h2{font-size:clamp(3rem,12vw,8rem)}
  .services__head p{font-size:1.125rem;max-width:46ch;color:#3A4163}
  .services__head p b{color:var(--ink)}
  .phases{display:grid;gap:clamp(2rem,4vw,3rem)}
  .phase{border-top:3px solid var(--ink);padding-top:1.1rem}
  .phase h3{font-size:1.6rem;font-weight:800;display:flex;justify-content:space-between;align-items:baseline}
  .phase h3 span{font-family:var(--sans);font-size:.95rem;font-weight:500;text-transform:none;color:#5B6285}
  .phase ul{list-style:none;margin:1rem 0 0;padding:0}
  .phase li{display:flex;gap:.75rem;align-items:flex-start;padding:.7rem 0;border-bottom:1px solid rgba(0,0,47,.12);font-weight:500;line-height:1.35}
  .phase li::before{content:"";flex:none;width:10px;height:10px;margin-top:.35em;background:var(--green-deep);border-radius:2px}

  /* ---------- contact ---------- */
  .contact{padding:clamp(5rem,14vw,10rem) 0 clamp(3rem,8vw,5rem);position:relative;overflow:hidden}
  .contact h2{font-size:clamp(4rem,21vw,14rem);font-weight:900;line-height:.82}
  .contact__row{margin-top:clamp(2rem,5vw,3.5rem);display:grid;gap:2rem;align-items:end}
  .person{display:grid;gap:.25rem}
  .person b{font-family:var(--cond);font-size:1.75rem;text-transform:uppercase;font-weight:700;line-height:1}
  .person span{color:var(--steel)}
  .person a{color:var(--green);text-decoration:none;font-weight:600;word-break:break-all;margin-top:.35rem}
  .person a:hover{text-decoration:underline}
  .contact .btn{font-size:1.2rem;padding:1.2rem 1.6rem}

  .foot{border-top:1px solid var(--line);padding:1.75rem 0}
  .foot__in{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;color:var(--steel);font-size:.9rem}
  .foot img{height:34px;width:auto}

  /* ---------- tablet+ ---------- */
  @media (min-width:640px){
    .hero__actions .btn{flex:0 0 auto}
    .words li small{display:block}
    .outcomes{grid-template-columns:repeat(3,1fr);gap:2rem}
    .contact__row{grid-template-columns:1fr auto}
  }
  @media (min-width:900px){
    .nav__in{height:84px}
    .nav__logo img{height:64px}
    .vid-toggle{top:calc(104px + env(safe-area-inset-top,0px))}
    .hero__title{font-size:clamp(7rem,15.5vw,16rem)}
    .hero__title .ln.split{display:inline-block;margin-right:.18em}
    .hero__foot{grid-template-columns:1fr auto;align-items:end;gap:3rem}
    .hero__lede{font-size:1.25rem}
    .services__head{grid-template-columns:1fr 1fr;align-items:end;gap:3rem}
    .phases{grid-template-columns:repeat(3,1fr)}
    .answer{grid-template-columns:1fr 1fr;max-width:none;gap:3rem;align-items:start}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .js .hero__title .ln > span,.js .hero__foot,.js .nav__in{transform:none;opacity:1}
    *{transition:none!important}
  }
