/* poppins-devanagari-500-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/poppins-devanagari-500-normal.BIdkeU1p.woff2) format('woff2'), url(/_astro/poppins-devanagari-500-normal.DMPDjHtT.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;
}

/* poppins-latin-ext-500-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/poppins-latin-ext-500-normal.CK-6C4Hw.woff2) format('woff2'), url(/_astro/poppins-latin-ext-500-normal.CgAe2rWW.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* poppins-latin-500-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/poppins-latin-500-normal.C8OXljZJ.woff2) format('woff2'), url(/_astro/poppins-latin-500-normal.DGXqpDMm.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* poppins-devanagari-600-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/poppins-devanagari-600-normal.STEjXBNN.woff2) format('woff2'), url(/_astro/poppins-devanagari-600-normal.ClASKHrr.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;
}

/* poppins-latin-ext-600-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/poppins-latin-ext-600-normal.CAhIAdZj.woff2) format('woff2'), url(/_astro/poppins-latin-ext-600-normal.Df5ffKXP.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* poppins-latin-600-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/poppins-latin-600-normal.zEkxB9Mr.woff2) format('woff2'), url(/_astro/poppins-latin-600-normal.BJdTmd5m.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* poppins-devanagari-700-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/poppins-devanagari-700-normal.O-jipLrW.woff2) format('woff2'), url(/_astro/poppins-devanagari-700-normal.fHs-vx92.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;
}

/* poppins-latin-ext-700-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/poppins-latin-ext-700-normal.cby-RkWa.woff2) format('woff2'), url(/_astro/poppins-latin-ext-700-normal.DctTR6Tg.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* poppins-latin-700-normal */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/poppins-latin-700-normal.Qrb0O0WB.woff2) format('woff2'), url(/_astro/poppins-latin-700-normal.BVuQR_eA.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2) format('woff2'), url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2) format('woff2'), url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.DB5PtV2g.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-500-normal.ByOcLdNv.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-greek-500-normal.JMMifIXV.woff2) format('woff2'), url(/_astro/ibm-plex-sans-greek-500-normal.CuWXN6rf.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-vietnamese-500-normal.e4dixQRQ.woff2) format('woff2'), url(/_astro/ibm-plex-sans-vietnamese-500-normal.BEb3_waV.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2) format('woff2'), url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2) format('woff2'), url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}:root{--navy:#1B1B2F;--ink:#12121F;--teal:#2ED9C3;--tealink:#086B61;--tint:#E3F5F1;--sand:#F2EFE8;--paper:#FBFAF6;--body:#34344A;--mute:#55556B;--gut:clamp(20px,4vw,48px)}
html{background:var(--navy);scroll-padding-top:76px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--navy);color:var(--body);font-family:'IBM Plex Sans',sans-serif;font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:4px}
.hdr a:focus-visible,.hero a:focus-visible,.story a:focus-visible,.how a:focus-visible,.contact a:focus-visible,.foot a:focus-visible,.skip:focus-visible{outline-color:var(--teal)}
h1,h2,h3,h4,p,ul,ol,blockquote{margin:0}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;color:var(--navy)}
main{background:var(--paper)}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--gut);box-sizing:border-box}
.lbl{font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;color:var(--tealink)}
.skip{position:absolute;left:16px;top:-60px;z-index:50;background:var(--teal);color:var(--ink);padding:10px 16px;border-radius:6px;text-decoration:none}
.skip:focus{top:12px}

/* header */
.hdr{position:sticky;top:0;z-index:30;height:76px;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08)}
.hdr .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.logo img{display:block;width:auto}
.logo .li{height:40px}
.logo .lw{height:24px}
.logo .lsq{height:auto;width:120px}
.nav{display:flex;gap:32px}
.nav a{color:#E6E7F2;text-decoration:none;font-size:16px;font-weight:500;padding:8px 0;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--teal)}
@media (max-width:900px){.nav{display:none}}
/* Implement and Support links only work with the scroll animation, so they're hidden without it */
.nav .an{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:6px;font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;text-decoration:none;box-sizing:border-box;transition:background .2s,color .2s}
.btn-p{background:var(--teal);color:var(--ink)}
.btn-p:hover{background:#1FC4AF}
.btn-w{background:#fff;color:var(--navy)}
.btn-w:hover{background:var(--tint)}
.btn-d{background:var(--navy);color:#fff}
.btn-d:hover{background:var(--ink)}
.bar{position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--teal);transform-origin:left;transform:scaleX(0)}

/* hero */
.hero{background:var(--navy)}
.hero .wrap{display:flex;flex-wrap:wrap;gap:48px 64px;align-items:center;padding-top:clamp(56px,8vw,108px);padding-bottom:clamp(64px,9vw,116px)}
.hcopy{flex:2 1 540px;min-width:0}
.hero h1{font-weight:700;font-size:clamp(36px,4.6vw,60px);line-height:1.1;letter-spacing:-.022em;max-width:680px;color:#fff}
.hero .sub{font-size:clamp(19px,1.6vw,21px);max-width:560px;margin-top:24px;color:#E6E7F2}
.hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.hpanel{flex:1 1 360px;container-type:inline-size;color:#fff;box-sizing:border-box}
.hpanel h2{color:var(--teal);font-size:21px;font-weight:700}
.hpanel ul{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column}
.hpanel li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-top:1px solid rgba(255,255,255,.14);font-size:18px;line-height:1.45;font-weight:500;color:#fff}
.hpanel li::before{content:"";flex:0 0 22px;height:22px;margin-top:1px;border-radius:50%;background:var(--teal) url("/icons/tick.svg") center/100% no-repeat}
/* when the card wraps to full width, the list flows into two columns */
@container (min-width:600px){.hpanel ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}}

/* story: pinned scroll journey (static stack when unsupported) */
.story{background:var(--ink);color:#fff;position:relative;border-top:1px solid rgba(255,255,255,.06)}
.anc{position:absolute;left:0;top:0;width:1px;height:1px}
.stage{position:relative;padding:96px 0 80px}
.track,.hint{display:none}
.shead{margin-bottom:40px}
.shead h2{color:#fff;font-weight:700;font-size:clamp(28px,3vw,38px);letter-spacing:-.02em}
.sg{display:flex;flex-wrap:wrap;gap:48px;align-items:center;justify-content:space-between}
.stext{flex:1 1 440px;min-width:0;position:relative}
.tb{margin-bottom:64px}
.tb .n{font-family:'Poppins',sans-serif;font-weight:500;font-size:15px;color:#A9AABF;margin-bottom:10px}
.tb h3{font-weight:700;font-size:clamp(36px,4.2vw,56px);line-height:1.08;letter-spacing:-.02em;color:#fff}
.tb .q{font-family:'Poppins',sans-serif;font-weight:500;font-size:21px;line-height:1.4;color:var(--teal);margin-top:14px;max-width:520px}
.tb p.d{color:#E6E7F2;margin-top:14px;max-width:520px;font-size:19px}
.sdia{flex:0 1 420px;width:min(420px,100%)}
.sdia svg{width:100%;height:auto;display:block;overflow:visible}
.hxp{fill:var(--teal);fill-opacity:.2;stroke:var(--teal);stroke-width:2}
.core{fill:var(--teal);fill-opacity:.95;stroke:var(--teal);stroke-width:2}
.sp{stroke:var(--teal);stroke-width:2;stroke-dasharray:62;stroke-dashoffset:0;opacity:.85}
.ring{fill:none;stroke:var(--teal);stroke-width:2;stroke-dasharray:1200;stroke-dashoffset:0;opacity:.9}
.rdot{fill:var(--teal)}
.spin{transform-box:view-box;transform-origin:0 0}
.hx1{--sx:40px;--sy:-120px}
.hx2{--sx:150px;--sy:-60px}
.hx3{--sx:120px;--sy:130px}
.hx4{--sx:-50px;--sy:140px}
.hx5{--sx:-160px;--sy:90px}
.hx6{--sx:-140px;--sy:-110px}
.tn{flex:1;position:relative;text-decoration:none;color:#fff}
.tn svg{display:block}
.tn:hover .nl{text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:4px}
.nh{fill:var(--teal);fill-opacity:0;stroke:var(--teal);stroke-width:2.2}
.nh1{fill-opacity:1}
.nl{display:block;margin-top:8px;font-family:'Poppins',sans-serif;font-weight:600;font-size:17px}
.seg{position:absolute;left:56px;right:14px;top:16px;height:3px;background:rgba(255,255,255,.25);overflow:hidden}
.seg i{display:block;height:100%;background:var(--teal);transform-origin:left;transform:scaleX(0)}
.hint{position:absolute;left:0;right:0;bottom:22px;text-align:center;font-family:'Poppins',sans-serif;font-weight:500;font-size:14px;color:#A9AABF}

@keyframes t1{0%,26%{opacity:1;transform:none}36%,100%{opacity:0;transform:translateY(-26px)}}
@keyframes t2{0%,28%{opacity:0;transform:translateY(26px)}38%,58%{opacity:1;transform:none}68%,100%{opacity:0;transform:translateY(-26px)}}
@keyframes t3{0%,60%{opacity:0;transform:translateY(26px)}70%,100%{opacity:1;transform:none}}
@keyframes seg1{0%,28%{transform:scaleX(0)}38%,100%{transform:scaleX(1)}}
@keyframes seg2{0%,60%{transform:scaleX(0)}70%,100%{transform:scaleX(1)}}
@keyframes nd2{0%,32%{opacity:.45}40%,100%{opacity:1}}
@keyframes nd3{0%,64%{opacity:.45}72%,100%{opacity:1}}
@keyframes nf2{0%,34%{fill-opacity:0}42%,100%{fill-opacity:1}}
@keyframes nf3{0%,66%{fill-opacity:0}74%,100%{fill-opacity:1}}
@keyframes hint{0%,4%{opacity:1}12%,100%{opacity:0}}
@keyframes gather{0%,10%{transform:translate(var(--sx),var(--sy));opacity:.6}48%,100%{transform:none;opacity:1}}
@keyframes fillin{0%,48%{fill-opacity:0}68%,100%{fill-opacity:.2}}
@keyframes corefill{0%,58%{fill-opacity:0}74%,100%{fill-opacity:.95}}
@keyframes draw{0%,42%{stroke-dashoffset:62}58%,100%{stroke-dashoffset:0}}
@keyframes ringdraw{0%,62%{stroke-dashoffset:1200;opacity:0}66%{opacity:.9}92%,100%{stroke-dashoffset:0;opacity:.9}}
@keyframes dotin{0%,62%{opacity:0}66%,100%{opacity:1}}
@keyframes spin{0%,64%{transform:rotate(0)}100%{transform:rotate(70deg)}}

/* sections */
.sec{padding:clamp(72px,9vw,120px) 0}
.sec h2{font-weight:700;font-size:clamp(30px,3.6vw,46px);line-height:1.12;letter-spacing:-.02em;max-width:760px}
.lead{font-size:20px;color:var(--mute);max-width:640px;margin-top:16px}
.white{background:#fff}
.sand{background:var(--sand)}
#work{padding-bottom:clamp(56px,7vw,96px)}
#levels{overflow-x:clip}

/* advice levels: cards lift and the others step back on hover/focus */
.stairs{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch;margin-top:52px}
.lvl{flex:1 1 300px;box-sizing:border-box;padding:32px 32px 30px;display:flex;flex-direction:column;gap:12px;border-radius:12px;text-decoration:none;color:var(--body);outline:2px solid transparent;transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease,outline-color .25s ease}
.lvl:hover,.lvl:focus-visible{transform:translateY(-10px);box-shadow:0 28px 50px -24px rgba(27,27,47,.5);outline:2px solid var(--teal);outline-offset:0;border-radius:12px}
.lvl h3{font-weight:700;font-size:27px;line-height:1.15}
.lvl .dur{font-family:'Poppins',sans-serif;font-weight:500;font-size:15px}
.lvl .gets{margin-top:auto;padding-top:18px;border-top:1px solid rgba(127,127,127,.4)}
.lvl .gets b{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;margin-bottom:4px}
.lvl-dark{background:#1B1B2F;color:#E6E7F2}
.lvl-dark h3,.lvl-dark .gets b{color:#fff}
.lvl-dark .dur{color:#7CF2E2}
.lvl-light{background:#FFFFFF}
.lvl-light .dur{color:#086B61}
.note{margin-top:26px;font-size:16px;color:var(--mute);max-width:640px}

/* recent work: sideways gallery */
.ghead{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:flex-end;justify-content:space-between}
/* testimonials: a swipeable row that glides and settles on a card, no auto-scroll. The arrows are added by /scripts/gallery.js (hidden until it runs) */
.gwrap{--gp:max(var(--gut),calc((100% - 1200px)/2 + var(--gut)));position:relative;margin-top:36px}
.gal{--cw:min(460px,85vw);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--gp);scrollbar-width:thin;scrollbar-color:var(--teal) transparent;padding:8px 0 28px}
.gtrack{display:flex;gap:24px;width:max-content;padding-inline:var(--gp)}
.gcard{flex:0 0 var(--cw);box-sizing:border-box;background:var(--sand);border-radius:14px;padding:34px 32px 30px;display:flex;flex-direction:column;gap:18px;scroll-snap-align:start}
.garr{position:absolute;top:calc(50% - 14px);translate:0 -50%;z-index:2;width:48px;height:48px;border:0;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px -6px rgba(27,27,47,.6)}
.garr[hidden]{display:none}
.gprev{left:max(12px,calc(var(--gp) - 60px))}.gnext{right:max(12px,calc(var(--gp) - 60px))}
@media (prefers-reduced-motion:no-preference){.gal{scroll-behavior:smooth}}
.garr:hover{background:var(--teal);color:var(--navy)}
.gal:focus-visible,.garr:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.garr:focus-visible{box-shadow:0 0 0 3px #fff}
@media (max-width:700px){
  /* phones: swipe is the main way; arrows sit under the row */
  .gal{padding-bottom:72px;scrollbar-width:none}
  .garr{top:auto;bottom:12px;translate:none;width:44px;height:44px}
  .gprev{left:var(--gut)}.gnext{right:var(--gut)}
}
.gfrom{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.glogo{display:block;height:60px;width:auto;max-width:min(240px,100%);object-fit:contain;object-position:left center;border-radius:6px}
.gq{font-family:'Poppins',sans-serif;font-weight:500;font-size:18px;line-height:1.5;color:var(--navy)}
.gq::before{content:"\201C";display:block;font-size:56px;line-height:.6;color:var(--tealink);margin-bottom:10px}
.who{font-size:15px;color:var(--mute)}
.what{padding-top:18px;border-top:1px solid rgba(27,27,47,.15)}
.what h3{font-size:18px;font-weight:600;line-height:1.3;margin-top:4px}
.what p{font-size:16px;margin-top:6px}

/* home band */
.home{background:var(--tint);color:var(--ink)}
.home .wrap{display:flex;flex-wrap:wrap;gap:20px 48px;align-items:center;justify-content:space-between;padding-top:40px;padding-bottom:40px}
.home h2{font-weight:700;font-size:clamp(22px,2.4vw,28px);line-height:1.2}
.home p{margin-top:4px;font-size:17px}
.hask{position:relative}
.hask summary{list-style:none;cursor:pointer}
.hask summary::-webkit-details-marker{display:none}
.hask summary::after{content:" \25BE";color:var(--tealink)}
.hask[open] summary::after{content:" \25B4"}
.hopts{display:flex;gap:10px;margin-top:14px}
.hopts a{font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;color:var(--navy);text-decoration:none;background:#fff;border-radius:6px;padding:10px 16px}
.hopts a:hover{background:var(--navy);color:#fff}
.home .lk{font-family:'Poppins',sans-serif;font-weight:600;text-decoration:none;border-bottom:2px solid var(--navy);padding-bottom:2px;color:var(--navy)}

/* how we work */
.how{background:var(--navy);color:#E6E7F2;position:relative;overflow:hidden}
.how .wrap{position:relative;z-index:1}
.how h2{color:#fff}
.hexmark{position:absolute;right:-90px;top:50%;transform:translateY(-50%);width:min(520px,48vw);pointer-events:none;opacity:.5}
.pr{display:flex;flex-wrap:wrap;gap:0 64px;margin-top:40px;max-width:980px}
.pi{flex:1 1 400px;padding:26px 0;border-top:2px solid rgba(255,255,255,.18);position:relative}
.pi::before{content:"";position:absolute;left:0;right:0;top:-2px;height:2px;background:var(--teal);transform-origin:left;transform:scaleX(0)}
.pi h3{font-weight:600;font-size:22px;line-height:1.25;color:#fff}
.pi p{margin-top:6px;color:#E6E7F2}

/* contact: navy, mirrors the hero */
.contact{background:var(--navy);color:#E6E7F2}
.contact .wrap{display:flex;flex-wrap:wrap;gap:48px 64px;align-items:center}
.ccopy{flex:2 1 540px;min-width:0}
.contact h2{color:#fff;font-size:clamp(36px,4.6vw,60px);line-height:1.1;letter-spacing:-.022em;max-width:680px}
.contact .ccopy p{color:#E6E7F2;font-size:clamp(19px,1.6vw,21px);max-width:560px;margin-top:24px}
.contact .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.contact .ccopy p.small{font-size:15px;color:#A9AABF;margin-top:16px}
.contact .small a{text-underline-offset:3px}

/* footer: same navy and logo as the header */
.foot{background:var(--navy);color:#B7B8CC;font-size:16px;border-top:1px solid rgba(255,255,255,.08)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:36px 72px;justify-content:flex-start;align-items:flex-start;padding-top:52px;padding-bottom:52px}
.floc{margin-top:16px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.foot a{text-decoration:none}.foot a:hover{color:var(--teal)}

@property --hl{syntax:'<number>';inherits:false;initial-value:0}
@property --hov{syntax:'<number>';inherits:false;initial-value:0}
@keyframes spot1{0%,28%{--hl:1}38%,100%{--hl:0}}
@keyframes spot2{0%,28%{--hl:0}38%,62%{--hl:1}72%,100%{--hl:0}}
@keyframes spot3{0%,62%{--hl:0}72%,100%{--hl:1}}
@keyframes grow{to{transform:scaleX(1)}}
@keyframes up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes hdr{to{box-shadow:0 12px 30px -16px rgba(0,0,0,.6)}}
@keyframes drift{to{translate:0 -70px}}
@keyframes stepup{from{opacity:0;transform:translateX(48px) scale(.96)}to{opacity:1;transform:none}}
@keyframes hexturn{from{rotate:-20deg}to{rotate:20deg}}
@media (prefers-reduced-motion:no-preference){
  .l1,.l2,.l3,.l4{animation:up .8s cubic-bezier(.2,.7,.2,1) both}
  .l2{animation-delay:.1s}.l3{animation-delay:.2s}.l4{animation-delay:.32s}
  .hpanel li{animation:up .6s cubic-bezier(.2,.7,.2,1) both}
  .hpanel li:nth-child(1){animation-delay:.6s}.hpanel li:nth-child(2){animation-delay:.7s}.hpanel li:nth-child(3){animation-delay:.8s}.hpanel li:nth-child(4){animation-delay:.9s}.hpanel li:nth-child(5){animation-delay:1s}
}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .bar{animation:grow linear both;animation-timeline:scroll(nearest)}
    .rise{animation:up linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
    .hdr{animation:hdr linear both;animation-timeline:scroll(nearest);animation-range:0px 160px}
    .hpanel{animation:up .8s cubic-bezier(.2,.7,.2,1) .45s both,drift linear both;animation-timeline:auto,view();animation-range:normal,exit 0% exit 100%}
    /* advice cards: rise in, then a spotlight moves across them as you scroll; hover/focus also lights a card */
    .stairs{view-timeline:--lv block}
    .lvl{--h:max(var(--hl),var(--hov));transition:--hov .25s ease;translate:0 calc(var(--h) * -12px);box-shadow:0 calc(var(--h) * 28px) 50px -24px rgba(27,27,47,calc(var(--h) * .5));outline:2px solid rgb(46 217 195 / calc(var(--h) * 100%));outline-offset:0}
    .lvl:hover,.lvl:focus-visible{--hov:1;transform:none;box-shadow:0 calc(var(--h) * 28px) 50px -24px rgba(27,27,47,calc(var(--h) * .5));outline:2px solid rgb(46 217 195 / calc(var(--h) * 100%))}
    .lvl:nth-child(1){animation:stepup linear both,spot1 linear both;animation-timeline:view(),--lv;animation-range:entry 0% cover 30%,cover 25% cover 75%}
    .lvl:nth-child(2){animation:stepup linear both,spot2 linear both;animation-timeline:view(),--lv;animation-range:entry 10% cover 38%,cover 25% cover 75%}
    .lvl:nth-child(3){animation:stepup linear both,spot3 linear both;animation-timeline:view(),--lv;animation-range:entry 20% cover 46%,cover 25% cover 75%}
    /* wider screens: no scroll spotlight, hover/focus only */
    @media (min-width:901px){
      .lvl:nth-child(1){animation:stepup linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
      .lvl:nth-child(2){animation:stepup linear both;animation-timeline:view();animation-range:entry 10% cover 38%}
      .lvl:nth-child(3){animation:stepup linear both;animation-timeline:view();animation-range:entry 20% cover 46%}
    }
    .pi::before{animation:grow linear both;animation-timeline:view();animation-range:entry 10% entry 60%}
    .hexmark{animation:hexturn linear both;animation-timeline:view()}

    .nav .an{display:inline}
    /* pinned journey: runs at every width; the diagram drops out on narrow screens */
    /* --journey = how far you scroll while the stage is pinned. It sets the story height, the animation range
       (so every keyframe % above is a share of --journey) and the jump-link anchors: .a2 at 48% (middle of
       Implement, t2 is fully in at 38-58%) and .a3 at about 85% (inside Support, t3 is fully in from 70%).
       Change --journey and all of these follow. If you change the keyframe %, move the anchors to match. */
    .story{--journey:1500px;--sh:min(max(100vh,560px),820px);--sh:min(max(100svh,560px),820px);height:calc(var(--sh) + var(--journey));view-timeline:--story block}
    .a2{top:calc(var(--journey) * .48)}.a3{top:calc(var(--journey) * .8533)}
    .stage{position:sticky;top:0;height:var(--sh);padding:96px 0 0;box-sizing:border-box;overflow:hidden}
    .sdia{flex-basis:min(420px,calc(var(--sh) - 250px))}
    .stage>.wrap{height:100%;display:flex;flex-direction:column;gap:14px}
    .shead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
    .track{display:flex;gap:8px}
    .sg{flex:1;align-content:center}
    /* the three steps share one grid cell, so the box is as tall as the tallest step and text can't overrun it;
       min-height keeps the original position when the text fits */
    .stext{display:grid;min-height:380px}
    .tb{grid-area:1/1;margin:0;opacity:0}
    .hint{display:block}
    .t1,.t2,.t3,.seg1,.seg2,.nd2,.nd3,.nf2,.nf3,.hint,.hx,.hxp,.core,.sp,.ring,.rdot,.spin{animation-timeline:--story;animation-range:contain 0px contain var(--journey);animation-timing-function:linear;animation-fill-mode:both}
    .t1{animation-name:t1;opacity:1}
    .t2{animation-name:t2}
    .t3{animation-name:t3}
    .seg1{animation-name:seg1}.seg2{animation-name:seg2}
    .nd2{animation-name:nd2;opacity:.45}.nd3{animation-name:nd3;opacity:.45}
    .nf2{animation-name:nf2}.nf3{animation-name:nf3}
    .hint{animation-name:hint}
    .hx{animation-name:gather}
    .hxp{animation-name:fillin}
    .core{animation-name:corefill}
    .sp{animation-name:draw}
    .ring{animation-name:ringdraw}
    .rdot{animation-name:dotin}
    .spin{animation-name:spin}
  }
  @media (prefers-reduced-motion:no-preference) and (max-width:900px){
    /* phones: text on top, diagram underneath, sized to the space left */
    .sg{flex-direction:column;flex-wrap:nowrap;gap:8px;align-items:stretch;justify-content:flex-start;align-content:normal}
    .stext{flex:0 0 auto;min-height:260px}
    .sdia{flex:0 0 auto;align-self:center;width:clamp(0px,calc(var(--sh) - 500px),300px)}
    .tb h3{font-size:34px}
    .tb .q{font-size:18px;margin-top:8px}
    .tb p.d{font-size:16px;line-height:1.55;margin-top:8px}
  }
}

/* footer legal line */
.foot .legal{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;padding-bottom:28px;font-size:14px;color:#8E8FA6}

/* simple text pages (privacy) */
.doc{background:#fff}
.doc .wrap{max-width:800px;padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(64px,8vw,112px)}
.doc h1{font-weight:700;font-size:clamp(32px,4vw,46px);line-height:1.12;letter-spacing:-.02em}
.doc .updated{color:var(--mute);margin-top:10px;font-size:16px}
.doc h2{font-size:22px;font-weight:600;margin-top:40px;margin-bottom:10px}
.doc p,.doc ul{margin-top:12px}
.doc ul{padding-left:22px}
.doc li{margin-top:6px}
.doc a{color:var(--tealink);text-underline-offset:3px}
.doc .ph{background:#FFF4CC;padding:0 4px;border-radius:3px}

/* 404 page */
.nf{background:#fff}
.nf .wrap{max-width:800px;padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(64px,8vw,112px)}
.nf h1{font-weight:700;font-size:clamp(32px,4vw,46px);line-height:1.12;letter-spacing:-.02em}
.nf p{margin-top:12px}
.nf .btn{margin-top:20px}
