:root{
  --ink:#04101c; --navy:#071a2c; --navy2:#0b2740; --blue:#00558C; --blue2:#2f8fd0; --green:#319B42; --green2:#5fd37a;
  --gold:#f2b544; --gold2:#ffd98a; --cream:#f5f0e6; --paper:#fbf8f2; --text:#0c1f33; --mute:#5b6b7b; --line:rgba(12,31,51,.12);
  --serif:"Fraunces",Georgia,serif; --sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --nav-h:72px; --pad:clamp(20px,5vw,72px); --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{font-family:var(--sans);color:var(--text);background:var(--ink);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}
ol,ul{list-style:none}
.wrap{width:min(1280px,100%);margin-inline:auto;padding-inline:var(--pad)}
i{font-style:italic}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:100;background:var(--ink);display:grid;place-items:center;animation:loaderOut .7s var(--ease) 1.5s forwards}
.loader-in{display:grid;justify-items:center;gap:18px}
.loader img{animation:spinIn 1.3s var(--ease) both}
.loader-name{font-family:var(--serif);font-size:1.5rem;color:#fff;letter-spacing:.01em}
.loader-name i{color:var(--gold)}
.loader-bar{width:160px;height:2px;background:rgba(255,255,255,.14);overflow:hidden;border-radius:2px}
.loader-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--green2),var(--gold));transform-origin:left;animation:bar 1.3s var(--ease) both}
@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes spinIn{from{transform:rotateY(-180deg) scale(.6);opacity:0}to{transform:none;opacity:1}}
@keyframes loaderOut{to{opacity:0;visibility:hidden;pointer-events:none}}
.proof .loader{display:none}

.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:linear-gradient(90deg,var(--green2),var(--gold));transform-origin:left;transform:scaleX(0)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--nav-h);display:flex;align-items:center;gap:28px;padding-inline:var(--pad);color:#fff;transition:background .4s,backdrop-filter .4s,color .4s,box-shadow .4s,transform .5s var(--ease)}
.nav.scrolled{background:rgba(4,16,28,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.nav.hide{transform:translateY(-100%)}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand img{width:34px;height:34px}
.brand-t{display:grid;line-height:1}
.brand-t b{font-family:var(--serif);font-weight:500;font-size:1.18rem;letter-spacing:.005em}
.brand-t b i{color:var(--gold)}
.brand-t small{font-size:.6rem;letter-spacing:.42em;text-transform:uppercase;opacity:.7;margin-top:5px}
.nav-links{display:flex;gap:30px;font-size:.88rem;font-weight:500}
.nav-links a{position:relative;opacity:.82;transition:opacity .25s}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav-links a:hover{opacity:1}.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.burger{display:none;width:44px;height:44px;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:transform .35s var(--ease),top .35s var(--ease)}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:26px}
.menu-open .burger span:nth-child(1){top:21px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){top:21px;transform:rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:45;background:rgba(4,16,28,.97);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:var(--nav-h) var(--pad) 40px;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.menu-open .mmenu{opacity:1;visibility:visible}
.mmenu a{font-family:var(--serif);font-size:clamp(1.7rem,7.5vw,2.6rem);color:#fff;padding:6px 0;transform:translateY(14px);opacity:0;transition:transform .5s var(--ease),opacity .5s}
.menu-open .mmenu a{transform:none;opacity:1}
.mmenu a:nth-child(2){transition-delay:.04s}.mmenu a:nth-child(3){transition-delay:.08s}.mmenu a:nth-child(4){transition-delay:.12s}.mmenu a:nth-child(5){transition-delay:.16s}.mmenu a:nth-child(6){transition-delay:.2s}.mmenu a:nth-child(7){transition-delay:.24s}.mmenu a:nth-child(8){transition-delay:.28s}
.mmenu .mm-call{font-family:var(--sans);font-size:1.1rem;font-weight:600;color:var(--gold);margin-top:18px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;font-weight:600;font-size:.95rem;letter-spacing:.01em;transition:transform .35s var(--ease),background .3s,box-shadow .3s,border-color .3s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-sm{height:42px;padding:0 20px;font-size:.85rem}
.btn-lg{height:62px;padding:0 34px;font-size:1.02rem}
.btn-gold{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#1a1203;box-shadow:0 10px 30px -10px rgba(242,181,68,.7)}
.btn-gold:hover{box-shadow:0 16px 40px -10px rgba(242,181,68,.85)}
.btn-ghost{border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* ---------- type ---------- */
.tag{font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:14px;margin-bottom:26px}
.tag span{color:var(--mute);font-weight:600}
.tag::after{content:"";height:1px;width:56px;background:currentColor;opacity:.4}
.tag-light{color:var(--gold)}.tag-light span{color:rgba(255,255,255,.6)}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5.6vw,4.9rem);line-height:1.02;letter-spacing:-.022em;max-width:17ch;text-wrap:balance}
.h2 i{color:var(--blue);font-weight:300}
.h2.light{color:#fff}.h2.light i{color:var(--gold2)}
.sub{font-size:clamp(1rem,1.25vw,1.18rem);color:var(--mute);max-width:54ch;margin-top:22px}
.sub.light{color:rgba(255,255,255,.72)}

/* ---------- hero ---------- */
.hero{height:340vh;position:relative;background:var(--ink)}
.hero-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;color:#fff}
.hero-sky{position:absolute;inset:0;background:
  radial-gradient(60% 46% at var(--gx,68%) var(--gy,52%),rgba(47,143,208,.34),transparent 70%),
  radial-gradient(38% 30% at var(--gx,68%) calc(var(--gy,52%) + 12%),rgba(242,181,68,.22),transparent 72%),
  linear-gradient(180deg,#030b14 0%,#06182a 52%,#0a2a45 100%)}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-fallback{display:none;position:absolute;right:8vw;top:50%;width:min(42vw,460px);transform:translateY(-50%)}
.no-gl .hero-fallback{display:block}.no-gl #scene{display:none}
.hero-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,11,20,.78) 0%,rgba(3,11,20,.3) 44%,transparent 66%),linear-gradient(0deg,rgba(3,11,20,.7),transparent 26%);opacity:var(--veil,1)}
.beat{position:absolute;z-index:3;will-change:opacity,transform}
.beat-1{left:var(--pad);top:50%;transform:translateY(-46%);max-width:min(680px,58vw)}
.beat-c{left:50%;top:21%;width:min(1000px,calc(100% - 2*var(--pad)));transform:translateX(-50%);text-align:center;opacity:0;pointer-events:none}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:9px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);backdrop-filter:blur(8px);margin-bottom:28px}
.eyebrow em{font-style:normal;color:var(--gold2)}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--green2);box-shadow:0 0 0 0 rgba(95,211,122,.7);animation:pulse 2.2s infinite}
@keyframes pulse{to{box-shadow:0 0 0 12px rgba(95,211,122,0)}}
.h-hero{font-family:var(--serif);font-weight:400;font-size:clamp(2.9rem,7.7vw,7.4rem);line-height:.96;letter-spacing:-.03em}
.h-hero .ln{display:block;overflow:hidden;padding-bottom:.09em}
.h-hero .ln>span{display:block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.go .h-hero .ln>span{transform:none}
.go .h-hero .ln:nth-child(2)>span{transition-delay:.12s}
.h-hero i{font-weight:300;background:linear-gradient(100deg,var(--gold2),var(--gold) 55%,#fff3d6);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.lede{font-size:clamp(1.02rem,1.4vw,1.28rem);color:rgba(255,255,255,.78);max-width:46ch;margin-top:26px}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.eyebrow,.lede,.cta-row{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease) .35s,transform .9s var(--ease) .35s}
.go .eyebrow,.go .lede,.go .cta-row{opacity:1;transform:none}
.go .lede{transition-delay:.5s}.go .cta-row{transition-delay:.62s}
.kicker{font-size:.78rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--gold2);margin-bottom:18px}
.h-beat{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5.8vw,5.4rem);line-height:1.02;letter-spacing:-.025em;text-wrap:balance}
.h-beat i{font-weight:300;color:var(--gold2)}
.h-beat-sm{font-size:clamp(1.5rem,3.5vw,3.15rem);line-height:1.12}
.h-beat b{font-weight:500;color:var(--gold2)}
.fine{margin-top:20px;font-size:.9rem;color:rgba(255,255,255,.62);letter-spacing:.02em}
.hero-meta{position:absolute;right:var(--pad);bottom:30px;z-index:3;display:grid;gap:4px;text-align:right;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.scroll-hint{position:absolute;left:var(--pad);bottom:30px;z-index:3;display:flex;align-items:center;gap:12px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.scroll-hint span{width:1px;height:42px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.scroll-hint span::after{content:"";position:absolute;left:0;top:0;width:100%;height:40%;background:var(--gold);animation:drop 1.8s var(--ease) infinite}
@keyframes drop{from{transform:translateY(-100%)}to{transform:translateY(260%)}}

/* ---------- marquee ---------- */
.marquee{background:var(--ink);color:#fff;border-block:1px solid rgba(255,255,255,.09);overflow:hidden;padding:20px 0;position:relative;z-index:2}
.marquee-track{display:flex;align-items:center;gap:34px;width:max-content;animation:mq 38s linear infinite;font-family:var(--serif);font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:300;white-space:nowrap}
.marquee-track i{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- story ---------- */
.story{background:var(--cream);padding:clamp(90px,13vw,190px) 0 clamp(70px,9vw,130px);position:relative}
.words{font-family:var(--serif);font-weight:400;font-size:clamp(1.65rem,4vw,3.5rem);line-height:1.16;letter-spacing:-.018em;max-width:24ch;max-width:min(1100px,100%)}
.words .w{color:rgba(12,31,51,.16);transition:color .35s}
.words .w.on{color:var(--text)}
.gen{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,6vw,100px);margin-top:clamp(70px,10vw,150px);align-items:start}
.gen-fig{position:sticky;top:calc(var(--nav-h) + 24px);border-radius:28px;overflow:hidden;background:linear-gradient(170deg,#0b2740,#04101c);aspect-ratio:4/5;display:flex;align-items:flex-end;justify-content:center}
.gen-fig::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 55% at 50% 38%,rgba(47,143,208,.5),transparent 70%),radial-gradient(50% 30% at 50% 100%,rgba(242,181,68,.28),transparent 70%)}
.gen-word{position:absolute;top:9%;left:50%;font-family:var(--sans);font-stretch:75%;font-weight:800;font-size:clamp(5rem,13vw,12rem);line-height:1;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.28);white-space:nowrap;transform:translateX(-50%);will-change:transform}
.gen-fig img{position:relative;height:94%;width:auto;max-width:none;object-fit:contain;filter:drop-shadow(0 30px 40px rgba(0,0,0,.45))}
.gen-fig figcaption{position:absolute;left:22px;bottom:20px;color:#fff;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;display:grid;gap:3px;padding:12px 16px;border-radius:14px;background:rgba(4,16,28,.55);backdrop-filter:blur(10px)}
.gen-fig figcaption b{font-family:var(--serif);font-weight:500;font-size:1.05rem;letter-spacing:0;text-transform:none}
.timeline{position:relative;padding-left:34px;display:grid;gap:clamp(34px,5vw,64px);--p:0}
.timeline::before,.timeline::after{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--line)}
.timeline::after{background:linear-gradient(180deg,var(--blue),var(--green),var(--gold));transform-origin:top;transform:scaleY(var(--p))}
.year{position:relative;opacity:.28;transform:translateX(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.year.lit{opacity:1;transform:none}
.year::before{content:"";position:absolute;left:-34px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--cream);border:2px solid rgba(12,31,51,.25);transition:background .4s,border-color .4s,box-shadow .4s;z-index:1}
.year.lit::before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 6px rgba(242,181,68,.2)}
.yr{font-size:.74rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--blue)}
.year h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3.1vw,2.7rem);line-height:1.08;letter-spacing:-.018em;margin:8px 0 10px}
.year p{color:var(--mute);max-width:44ch;font-size:1.04rem}
.pull{margin-top:clamp(80px,11vw,160px);text-align:center}
.pull p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.5rem,3.4vw,2.9rem);line-height:1.22;letter-spacing:-.015em;max-width:26ch;margin-inline:auto;color:var(--text);text-wrap:balance}
.pull cite{display:block;margin-top:26px;font-style:normal;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);font-weight:600}

/* ---------- overview film ---------- */
.overview{background:var(--ink);padding:clamp(90px,12vw,170px) 0 clamp(70px,9vw,130px);overflow:hidden}
.film-wrap{margin-top:clamp(40px,6vw,80px);padding-inline:var(--pad);display:flex;justify-content:center;perspective:1600px}
.film{position:relative;width:min(1280px,100%);aspect-ratio:16/9;border-radius:clamp(14px,2vw,28px);overflow:hidden;background:#000;transform:scale(var(--fs,.78)) rotateX(var(--fr,10deg));transform-origin:50% 100%;box-shadow:0 60px 120px -40px rgba(0,85,140,.7),0 0 0 1px rgba(255,255,255,.08);cursor:pointer;will-change:transform}
.film img,.film iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.film::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,16,28,.6),transparent 45%);pointer-events:none;transition:opacity .4s}
.film.playing::after,.film.playing .play,.film.playing .film-cap{opacity:0;pointer-events:none}
.play{position:absolute;left:50%;top:50%;z-index:2;width:clamp(72px,9vw,112px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;color:#1a1203;background:linear-gradient(135deg,var(--gold2),var(--gold));box-shadow:0 0 0 0 rgba(242,181,68,.55);animation:ring 2.4s infinite;transition:transform .35s var(--ease)}
.film:hover .play{transform:translate(-50%,-50%) scale(1.08)}
@keyframes ring{to{box-shadow:0 0 0 34px rgba(242,181,68,0)}}
.film-cap{position:absolute;left:24px;bottom:20px;z-index:2;color:#fff;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}

/* ---------- protect (horizontal rail) ---------- */
.protect{background:var(--paper);position:relative;height:420vh}
.protect-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(24px,4vh,48px);padding-top:var(--nav-h)}
.protect-head .h2{font-size:clamp(1.9rem,4.4vw,3.8rem);max-width:20ch}
.protect-head .tag{margin-bottom:16px}
.rail{display:flex;gap:clamp(16px,2vw,28px);padding-inline:var(--pad);will-change:transform;width:max-content}
.panel{position:relative;flex:none;width:min(440px,78vw);height:min(52vh,470px);min-height:340px;border-radius:26px;padding:clamp(22px,2.4vw,34px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#fff;isolation:isolate}
.panel::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg)}
.p-life{--bg:linear-gradient(160deg,#0a3f69,#00558C 55%,#0b2740)}
.p-health{--bg:linear-gradient(160deg,#1f7a33,#319B42 50%,#0f4a22)}
.p-ind{--bg:linear-gradient(160deg,#0b2740,#071a2c)}
.p-kit{--bg:linear-gradient(160deg,#f6c765,#f2b544 55%,#c9861a);color:#1a1203}
.p-care{--bg:var(--cream);color:var(--text);border:1px solid var(--line);justify-content:center}
.panel-art{position:absolute;right:-30px;top:-30px;width:62%;opacity:.3;transform:rotate(var(--rot,0deg));will-change:transform}
.panel-art svg{width:100%;height:auto;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.panel-n{font-size:.74rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;opacity:.75}
.panel h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.04;letter-spacing:-.02em;margin:10px 0 12px}
.panel p{font-size:.98rem;opacity:.86;max-width:36ch}
.panel ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.panel li{font-size:.76rem;font-weight:600;letter-spacing:.04em;padding:7px 13px;border-radius:999px;border:1px solid currentColor;opacity:.85}
.panel .link{margin-top:18px;font-weight:700;font-size:.9rem;text-decoration:underline;text-underline-offset:5px}
.big-tel{font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,2.7rem);letter-spacing:-.02em;color:var(--blue);margin:6px 0 14px;white-space:nowrap}
.rail-bar{margin-inline:var(--pad);height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.rail-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green),var(--gold));transform-origin:left;transform:scaleX(0)}

/* ---------- offices ---------- */
.offices{background:var(--ink);height:380vh;position:relative}
.offices-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:center;gap:clamp(20px,4vw,60px);padding:calc(var(--nav-h) + 10px) var(--pad) 30px;color:#fff}
.offices-sticky::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 60% at 72% 60%,rgba(0,85,140,.5),transparent 70%)}
.offices-copy{position:relative;z-index:2}
.offices .h2{font-size:clamp(2rem,4.4vw,3.9rem)}
.office-list{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:2px 22px;max-width:480px}
.office-list li{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.98rem;color:rgba(255,255,255,.34);transition:color .45s,transform .45s var(--ease)}
.office-list li small{font-size:.66rem;font-weight:700;letter-spacing:.14em;margin-left:auto;opacity:.8}
.office-list li.on{color:#fff}
.office-list li.on small{color:var(--gold2)}
.office-list li.hq::after{content:"Home office";font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);order:2}
.map{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center}
.map svg{width:100%;height:auto;max-height:86vh;overflow:hidden;-webkit-mask-image:radial-gradient(72% 72% at 55% 55%,#000 62%,transparent 100%);mask-image:radial-gradient(72% 72% at 55% 55%,#000 62%,transparent 100%)}
.st{fill:rgba(255,255,255,.035);stroke:rgba(255,255,255,.12);stroke-width:1;vector-effect:non-scaling-stroke}
.st.home{fill:rgba(47,143,208,.14);stroke:rgba(140,200,255,.55);stroke-width:1.2}
.st-label{fill:rgba(255,255,255,.2);font-family:var(--sans);font-weight:800;font-size:44px;letter-spacing:.1em;text-anchor:middle}
.route{fill:none;stroke:url(#routeG);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.pin{opacity:0;transition:opacity .5s}
.pin.on{opacity:1}
.pin .core{fill:var(--gold2)}
.pin .halo{fill:none;stroke:var(--gold);stroke-width:1.5;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:halo 2.6s var(--ease) infinite}
.pin .glow{fill:url(#pinG)}
.pin text{fill:#fff;font-family:var(--sans);font-weight:600;font-size:22px;paint-order:stroke;stroke:rgba(4,16,28,.85);stroke-width:5px;stroke-linejoin:round}
.pin.hq .core{fill:#fff}
@keyframes halo{0%{transform:scale(.6);opacity:1}100%{transform:scale(3.2);opacity:0}}
.map-count{position:absolute;right:0;top:calc(4vh);text-align:right;line-height:1}
.map-count b{font-family:var(--serif);font-weight:300;font-size:clamp(3.4rem,8vw,7rem);letter-spacing:-.04em;color:var(--gold2);display:block}
.map-count span{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55)}

/* ---------- numbers ---------- */
.numbers{background:var(--cream);padding:clamp(70px,9vw,130px) 0}
.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,3vw,48px)}
.num{border-top:1px solid var(--line);padding-top:22px}
.num b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(3.4rem,8.4vw,7.6rem);line-height:.95;letter-spacing:-.045em;color:var(--blue)}
.num:nth-child(2) b{color:var(--green)}.num:nth-child(3) b{color:#c9861a}.num:nth-child(4) b{color:var(--text)}
.num span{display:block;margin-top:12px;color:var(--mute);font-size:.95rem;max-width:22ch}

/* ---------- leaders ---------- */
.leaders{background:var(--paper);padding:clamp(90px,12vw,170px) 0}
.grid-l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,28px);margin-top:clamp(40px,6vw,80px)}
.card{position:relative;border-radius:22px;background:#fff;padding:12px 12px 20px;box-shadow:0 1px 0 var(--line),0 30px 60px -40px rgba(12,31,51,.35);opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease),transform .8s var(--ease),box-shadow .4s;transform-style:preserve-3d;will-change:transform}
.card.in{opacity:1;transform:none}
.card:nth-child(4n+2){transition-delay:.07s}.card:nth-child(4n+3){transition-delay:.14s}.card:nth-child(4n+4){transition-delay:.21s}
.card:hover{box-shadow:0 1px 0 var(--line),0 40px 70px -34px rgba(0,85,140,.5)}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(242,181,68,.2),transparent 60%);opacity:0;transition:opacity .3s}
.card:hover::after{opacity:1}
.ph{border-radius:14px;overflow:hidden;aspect-ratio:1;background:#eef1f4}
.ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);transform:scale(1.02);transition:filter .6s,transform .9s var(--ease)}
.card:hover .ph img{filter:none;transform:scale(1.07)}
.card h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.05rem,1.5vw,1.3rem);letter-spacing:-.01em;margin:16px 6px 2px;line-height:1.15}
.card p{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-inline:6px}

/* ---------- review ---------- */
.review{background:var(--cream);padding:clamp(70px,9vw,130px) 0}
.review-in{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(30px,6vw,100px);align-items:center}
.rating{display:flex;align-items:center;gap:20px}
.rating b{font-family:var(--serif);font-weight:300;font-size:clamp(4.5rem,10vw,9rem);line-height:.9;letter-spacing:-.05em}
.rating span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:10px;font-weight:600}
.stars{width:120px;height:22px;background:rgba(12,31,51,.14);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='m12 1 3.1 6.6 7.2.9-5.3 5 1.4 7.2L12 17.2 5.6 20.7 7 13.5 1.7 8.5l7.2-.9z'/%3E%3C/svg%3E") 0 0/24px 22px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='m12 1 3.1 6.6 7.2.9-5.3 5 1.4 7.2L12 17.2 5.6 20.7 7 13.5 1.7 8.5l7.2-.9z'/%3E%3C/svg%3E") 0 0/24px 22px repeat-x}
.stars i{display:block;height:100%;width:98%;background:var(--gold)}
.review blockquote p{font-family:var(--serif);font-weight:300;font-size:clamp(1.4rem,2.9vw,2.4rem);line-height:1.24;letter-spacing:-.015em;text-wrap:balance}
.review cite{display:block;margin-top:20px;font-style:normal;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);font-weight:600}

/* ---------- careers ---------- */
.careers{position:relative;background:linear-gradient(170deg,#0a3f69,#071a2c 62%,#04101c);color:#fff;padding:clamp(110px,15vw,220px) 0;overflow:hidden}
.careers-bg{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:0;pointer-events:none}
.careers-bg span{font-family:var(--sans);font-stretch:75%;font-weight:800;font-size:clamp(7rem,24vw,24rem);line-height:.84;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.09);will-change:transform}
.careers-bg span:nth-child(2){align-self:flex-end}
.careers-in{position:relative;z-index:1}
.ladder{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 40px}
.ladder li{display:flex;align-items:center;gap:10px;font-size:.84rem;font-weight:600;letter-spacing:.06em;padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05)}
.ladder li:not(:last-child)::after{content:"";width:16px;height:1px;background:var(--gold);margin-right:-34px;margin-left:8px}
.ladder li:last-child{border-color:var(--gold);color:var(--gold2)}

/* ---------- contact ---------- */
.contact{background:var(--paper);padding:clamp(90px,12vw,170px) 0}
.contact-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(30px,5vw,80px);align-items:center}
.c-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:40px}
.c-card{display:grid;gap:8px;align-content:start;padding:22px 24px;border-radius:20px;background:#fff;border:1px solid var(--line);transition:transform .4s var(--ease),border-color .3s,box-shadow .4s}
a.c-card:hover{transform:translateY(-4px);border-color:var(--blue);box-shadow:0 26px 50px -30px rgba(0,85,140,.55)}
.c-card small{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.c-card b{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.3vw,2rem);letter-spacing:-.02em;color:var(--blue);white-space:nowrap}
.c-card b.sm{font-family:var(--sans);font-size:1rem;font-weight:600;color:var(--text);letter-spacing:0;white-space:normal;line-height:1.4}
.contact-globe{text-align:center}
.globe-box{position:relative;width:min(100%,400px);aspect-ratio:1;margin-inline:auto}
.globe-box canvas{position:absolute;inset:-14%;width:128%;height:128%;opacity:0;transition:opacity .8s}
.globe-box img{position:absolute;inset:14%;width:72%;height:72%;transition:opacity .6s}
.globe-box.live canvas{opacity:1}.globe-box.live img{opacity:0}
.contact-globe p{font-family:var(--sans);font-weight:800;font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.03em;line-height:1;margin-top:8px;color:var(--text)}
.contact-globe p span{display:block;font-weight:600;font-size:.42em;letter-spacing:.02em;color:var(--blue);margin-top:8px}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:rgba(255,255,255,.7);padding-top:clamp(60px,8vw,110px);overflow:hidden}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.foot-brand b{font-family:var(--serif);font-weight:500;font-size:1.6rem;color:#fff;display:block;line-height:1}
.foot-brand b i{color:var(--gold)}
.foot-brand small{display:block;font-size:.62rem;letter-spacing:.42em;text-transform:uppercase;margin-top:8px}
.foot-brand p{margin-top:18px;font-size:.9rem}
.footer nav{display:grid;gap:10px;align-content:start;font-size:.92rem}
.footer nav a{transition:color .25s;width:fit-content}.footer nav a:hover{color:var(--gold2)}
.foot-word{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,8.5vw,10rem);line-height:1.1;letter-spacing:-.04em;text-align:center;white-space:nowrap;margin:clamp(40px,6vw,80px) 0 0;background:linear-gradient(90deg,var(--blue2),var(--green2) 45%,var(--gold) 80%);background-size:200% 100%;background-position:var(--fw,100%) 0;-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9}
.foot-word i{font-weight:300}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;padding-block:26px;border-top:1px solid rgba(255,255,255,.1);font-size:.76rem;color:rgba(255,255,255,.5)}

/* ---------- reveals ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.proof .reveal,.proof .card{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .nav-links,.nav-cta{display:none}
  .burger{display:block}
  .grid-l{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gen{grid-template-columns:minmax(0,1fr)}
  .gen-fig{position:relative;top:0;aspect-ratio:1/1.05;max-width:520px;width:100%;margin-inline:auto}
  .contact-in{grid-template-columns:minmax(0,1fr)}
  .contact-globe{order:-1}
  .globe-box{width:min(64vw,300px)}
  .review-in{grid-template-columns:minmax(0,1fr)}
  .foot-top{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
  .offices-sticky{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);align-items:start;gap:8px;padding-bottom:16px}
  .offices-copy .sub{display:none}
  .office-list{grid-template-columns:1fr 1fr;max-width:none;margin-top:14px;font-size:.84rem}
  .office-list li{padding:5px 0;font-size:.84rem}
  .office-list li.hq::after{display:none}
  .map{align-items:center}
  .map svg{max-height:100%;-webkit-mask-image:none;mask-image:none}
  .map-count{top:auto;bottom:0}
  .map-count b{font-size:3rem}
  .pin text{font-size:25px}
}
@media (max-width:720px){
  :root{--nav-h:62px}
  .hero-veil{background:linear-gradient(0deg,rgba(3,11,20,.92) 0%,rgba(3,11,20,.6) 44%,transparent 68%)}
  .beat-1{top:auto;bottom:74px;transform:none;max-width:none;right:var(--pad)}
  .beat-c{top:15%}
  .h-hero{font-size:clamp(2.6rem,12.4vw,4.2rem)}
  .eyebrow{font-size:.62rem;letter-spacing:.14em;padding:8px 12px;margin-bottom:18px}
  .lede{margin-top:16px;font-size:.98rem}
  .cta-row{margin-top:22px;gap:10px}
  .cta-row .btn{height:48px;padding:0 20px;font-size:.88rem}
  .hero-meta,.scroll-hint{display:none}
  .c-grid{grid-template-columns:1fr}
  .panel{height:min(56vh,440px)}
  .protect-head .h2{font-size:1.75rem}
  .foot-top{grid-template-columns:1fr}
  .ladder li:not(:last-child)::after{display:none}
  .btn-lg{height:56px;padding:0 22px;font-size:.9rem;white-space:normal;text-align:left}
  .rating b{font-size:4.6rem}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track,.play,.pin .halo,.scroll-hint span::after{animation:none}
}
.proof *{transition:none!important}
.og .nav,.og .scroll-hint,.og .hero-meta,.og .cta-row,.og .progress{display:none!important}
@media (hover:none){.ph img{filter:none}}
