:root{
  --red-l:#ef4a4f;
  --navy:#003049; --navy-2:#00202f; --navy-3:#0b4a6b; --red:#c12126; --red-2:#d6262c; --grey:#e6e7e8; --grey-2:#d9dbde; --white:#ffffff; --ink:#0d1b24; --mute:#5c6670; --mute-l:#9fb0bc; --line:rgba(0,48,73,.14); --line-l:rgba(255,255,255,.16);
  --pad:clamp(20px,5vw,80px); --max:1480px;
  --font:'Proxima Nova','Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
body{background:var(--grey);color:var(--ink);font-family:var(--font);font-weight:500;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

h1,h2,h3{font-weight:700;letter-spacing:-.02em;line-height:1.05}
.k{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.k.red{color:var(--red)}
.lead{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.6}
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 24px;background:var(--red);color:#fff;font-weight:700;font-size:.95rem;border:0;cursor:pointer;border-radius:3px;transition:background .25s,transform .35s var(--ease)}
.btn:hover{background:var(--red-2);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--navy);border:2px solid var(--navy)}.btn.ghost:hover{background:var(--navy);color:#fff}
.btn[disabled]{opacity:.6;cursor:default}
::selection{background:var(--red);color:#fff}

/* knot weave — the brand pattern as a quiet background */
.weave{position:relative;isolation:isolate}
.weave::before{content:'';position:absolute;inset:0;z-index:-1;background:url("/assets/weave.png") 0 0/320px auto repeat;opacity:.07;pointer-events:none}
.weave.on-navy::before{background-image:url("/assets/weave-white.png");opacity:.06}
.weave.strong::before{opacity:.14}
/* full-strength weave bands — the pattern from the identity, used as dividers */
.band{height:clamp(56px,8vw,110px);background:url("/assets/weave.png") center/clamp(260px,26vw,400px) auto repeat #fff;position:relative}
.band.on-grey{background-color:var(--grey)}
.band::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(230,231,232,.85),transparent 18%,transparent 82%,rgba(230,231,232,.85))}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:500;background:rgba(230,231,232,.97);border-bottom:1px solid var(--line);transition:transform .4s var(--ease),background .3s}
header.hide{transform:translateY(-100%)}
.nav{display:flex;justify-content:space-between;align-items:center;height:72px}
.wm img{height:46px;width:auto}
.nav .k{display:flex;align-items:center;gap:26px;letter-spacing:.14em;font-size:.68rem}
.nav .k a{color:var(--navy);opacity:.85;transition:opacity .2s,color .2s}.nav .k a:hover{opacity:1;color:var(--red)}
.nav .k a.cta{background:var(--red);color:#fff;padding:11px 16px;border-radius:3px;opacity:1}.nav .k a.cta:hover{background:var(--red-2);color:#fff}
.mbtn{display:none;background:none;border:0;color:var(--navy);font:inherit;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;cursor:pointer;padding:10px 0}
@media(max-width:820px){.nav .k a:not(.cta){display:none}.mbtn{display:inline-block}.nav .k{gap:16px}}
#mm{position:fixed;inset:0;z-index:600;background:var(--navy) url("/assets/weave-white.png") 0 0/280px auto repeat;background-blend-mode:soft-light;color:#fff;display:none;flex-direction:column;justify-content:center;padding:var(--pad);overflow:auto}
#mm.open{display:flex}
#mm a{font-weight:700;font-size:clamp(1.5rem,5vh,2.4rem);letter-spacing:-.02em;padding:12px 0;border-bottom:1px solid var(--line-l)}
#mm .x{position:absolute;top:22px;right:var(--pad);background:none;border:0;color:#fff;font:inherit;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;cursor:pointer;min-height:44px}
#mm .tag{margin-top:28px;color:var(--mute-l);font-size:.85rem}

/* loader */
#ld{position:fixed;inset:0;z-index:1000;background:var(--navy);display:flex;align-items:center;justify-content:center;transition:opacity .7s var(--ease),visibility .7s}
#ld.up{opacity:0;visibility:hidden}
#ld .in{text-align:center}
#ld img{width:min(52vw,220px);margin:0 auto 26px;clip-path:inset(0 100% 0 0);animation:wipe 1.1s var(--ease) .1s forwards}
#ld p{color:#fff;font-weight:700;font-size:clamp(1.2rem,3vw,1.8rem);letter-spacing:-.02em;opacity:0;animation:up .8s var(--ease) .9s forwards}
#ld small{display:block;color:var(--mute-l);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;margin-top:12px;opacity:0;animation:up .8s var(--ease) 1.2s forwards}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
html.seen #ld,html.rm #ld,html.nojs #ld{display:none}

/* TCPL blue-hour port: immersive full-viewport scene and scroll-driven rope. */
.hero{position:relative;height:400vh;height:420svh;min-height:1300px;background:var(--grey)}
.hero .pin{position:sticky;top:0;height:100vh;height:100svh;min-height:460px;overflow:hidden;background:#003049;isolation:isolate}
.hero .scene{position:absolute;inset:0;z-index:1;overflow:hidden;transform:none!important}
#seqc{position:absolute;inset:0;display:block;z-index:1;width:100%;height:100%;transform:none;opacity:0}
.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero .door-mark{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100svh;z-index:600;overflow:visible;pointer-events:none;transform-origin:0 0;will-change:transform,opacity}
.hero .doors{position:absolute;inset:0;z-index:5;pointer-events:none;transform-origin:50% 50%;will-change:transform}
.hero .doors .leaf{position:absolute;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform;transform-style:preserve-3d}
.hero .doors .leaf canvas{display:block;width:100%;height:100%}
.hero .doors .leaf::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.0),rgba(0,0,0,.35));opacity:var(--shade,0);pointer-events:none}
.hero .doors .leaf.r::after{background:linear-gradient(270deg,rgba(0,0,0,.0),rgba(0,0,0,.35))}
html:not(.nojs):not(.rm):not(.flat) header .wm img{opacity:var(--wm,0);transition:none}
#seqc{transform-origin:50% 50%;will-change:transform}
.hero .veil{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:3;background:#003049;will-change:opacity}
.hero .veil::before{display:none}
.hero .eyebrow{position:absolute;color:#fff;top:calc(72px + clamp(32px,7svh,76px));left:var(--pad);right:auto;max-width:min(33vw,500px);z-index:4}
.hero .eyebrow .k{color:#edf3f6;font-size:clamp(.61rem,.73vw,.75rem);line-height:1.65;letter-spacing:.13em;max-width:36ch;margin-bottom:20px}
.hero .eyebrow h1{font-size:clamp(2rem,3.5vw,3.6rem);line-height:1.04;letter-spacing:-.045em;font-weight:600;text-wrap:balance}
.hero .eyebrow p.hero-promise{font-size:clamp(.92rem,1.04vw,1.05rem);line-height:1.5;margin-top:24px;max-width:29ch;color:#edf3f6;font-weight:500}
.hero .cue{position:absolute;left:var(--pad);display:flex;align-items:center;color:#fff;bottom:max(28px,env(safe-area-inset-bottom));gap:12px;z-index:5}
.hero .cue .k{font-size:.58rem;letter-spacing:.18em}
.hero .cue .arrow{width:9px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
.hero .cue .bar{position:relative;overflow:hidden;width:72px;height:2px;background:var(--line)}
.hero .cue .bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--red)}
.hero .inside{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;color:white;padding:96px var(--pad) 70px;z-index:4;text-align:center;background:#003049;will-change:clip-path}
.hero .inside h2{font-size:clamp(2.3rem,6vw,5.4rem);line-height:1.04;letter-spacing:-.045em;font-weight:600;text-shadow:none!important;white-space:normal;text-wrap:balance}
.hero .inside h2 em{color:var(--red-l)}
.hero .inside::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,rgba(0,48,73,0) 40%,rgba(0,14,26,.85) 100%);opacity:var(--depth,0)}
.hero .inside p{color:#c7d3da;font-size:clamp(.95rem,1.2vw,1.1rem);line-height:1.65;max-width:43ch;margin:28px auto 0;text-wrap:pretty}
.hero .inside>div{max-width:1050px}
.hero .stage{display:none}
.intro{position:relative;background:#003049}
.intro.weave::before{background-position:0 0;mask-image:linear-gradient(transparent,#000 180px)}
html{scroll-padding-top:90px}
@media(max-width:760px){
 .hero{height:430svh}
 .hero .eyebrow{top:calc(72px + max(25px,env(safe-area-inset-top)));left:24px;right:24px;max-width:none}
 .hero .eyebrow .k{font-size:.58rem;max-width:38ch;margin-bottom:18px;letter-spacing:.12em}
 .hero .eyebrow h1{font-size:clamp(1.7rem,7.6vw,2.6rem);line-height:1.05}
 .hero .eyebrow p.hero-promise{margin-top:18px;max-width:29ch;font-size:.88rem}
 .hero .inside{padding:90px 26px 70px}
 .hero .inside h2{font-size:clamp(2rem,9vw,3.5rem);max-width:12ch;margin-inline:auto;white-space:normal}
 .hero .inside p{font-size:.94rem;max-width:32ch;margin-top:24px}
 .hero .cue{left:24px;bottom:max(25px,env(safe-area-inset-bottom))}
}
@media(max-height:620px) and (min-width:761px){.hero .eyebrow{top:100px}.hero .eyebrow h1{font-size:2rem}}
@media(max-height:680px) and (max-width:760px){.hero .eyebrow{top:90px}.hero .eyebrow .k{margin-bottom:12px}.hero .eyebrow h1{font-size:1.75rem}.hero .eyebrow p.hero-promise{margin-top:12px;font-size:.82rem}}
html.rm .hero,html.nojs .hero,html.flat .hero{height:auto;min-height:0}
html.rm .hero .pin,html.nojs .hero .pin,html.flat .hero .pin{position:relative;display:flex;flex-direction:column;gap:36px;height:auto;min-height:100svh;padding:114px var(--pad) 56px}
html.rm .hero .scene,html.nojs .hero .scene,html.flat .hero .scene{display:none}
html.rm .hero .cue,html.nojs .hero .cue,html.flat .hero .cue{display:none}
html.rm .hero .eyebrow,html.nojs .hero .eyebrow,html.flat .hero .eyebrow{position:static;opacity:1!important;transform:none!important;max-width:740px;align-self:flex-start}
html.rm .hero .inside,html.nojs .hero .inside,html.flat .hero .inside{position:static;background:var(--navy);opacity:1!important;transform:none!important;padding:44px 28px;width:100%;text-align:center;justify-content:center;border-radius:0}
html.rm .hero .inside h2,html.nojs .hero .inside h2,html.flat .hero .inside h2{max-width:none}
html.rm .hero .inside p,html.nojs .hero .inside p,html.flat .hero .inside p{margin-inline:auto}
html.nojs .rv{opacity:1;transform:none}

.hero .scene::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(0,25,45,.42),rgba(0,25,45,.20) 32%,transparent 56%);opacity:var(--sky-shade,1)}
.hero .cue .bar{background:rgba(255,255,255,.4)}
@media(max-height:680px) and (max-width:760px){.hero .eyebrow h1{font-size:clamp(1.45rem,4.2svh,1.75rem)}.hero .eyebrow p.hero-promise{max-width:32ch}}
html.rm .hero .eyebrow,html.nojs .hero .eyebrow,html.flat .hero .eyebrow{color:#003049}
html.rm .hero .eyebrow .k,html.nojs .hero .eyebrow .k,html.flat .hero .eyebrow .k{color:#C12126}
html.rm .hero .eyebrow p.hero-promise,html.nojs .hero .eyebrow p.hero-promise,html.flat .hero .eyebrow p.hero-promise{color:#003049}
html.rm .hero .pin,html.nojs .hero .pin,html.flat .hero .pin{background:#E6E7E8}

/* ================= INTRO (navy, continues from inside the box) ================= */
.intro{background:var(--navy);color:#fff;padding:clamp(80px,12vh,150px) 0 clamp(70px,10vh,120px)}
.intro .g{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,6vw,100px);align-items:start}
.intro h2{font-size:clamp(2rem,4.6vw,4.6rem)}
.intro h2 em{font-style:normal;color:var(--red-l)}
.intro p{color:var(--mute-l);max-width:48ch}
.intro .ifacts{margin-top:8px;display:grid;gap:0;border-top:1px solid var(--line-l)}
.intro .ifacts div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-l);align-items:baseline}
.intro .ifacts dt{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute-l);font-weight:700}
.intro .ifacts dd{font-weight:600;font-size:1.02rem;color:#fff}
/* the strands of the knot extend into the layout */
.tie{position:relative}
.tie::after{content:'';position:absolute;left:0;bottom:-22px;width:64px;height:2px;background:var(--red);transform:skewY(-30deg);transform-origin:left}
@media(max-width:760px){.intro .g{grid-template-columns:1fr}.intro .ifacts div{grid-template-columns:110px 1fr}}

/* ================= PROMISE ================= */
.promise{padding:clamp(90px,14vh,180px) 0;background:var(--grey)}
.promise .g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,100px);align-items:end}
.promise h2{font-size:clamp(2.6rem,7.2vw,7.4rem);color:var(--navy);letter-spacing:-.035em;line-height:.95}
.promise h2 em{font-style:normal;color:var(--red)}
.promise p{color:var(--mute);max-width:46ch}
.promise .rule{margin-top:26px;display:flex;gap:18px;flex-wrap:wrap}
.promise .rule span{border:1.5px solid var(--navy);color:var(--navy);padding:9px 14px;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;border-radius:3px}
@media(max-width:760px){.promise .g{grid-template-columns:1fr}}

/* ================= OWN DESK (photo band) ================= */
.own{position:relative;background:var(--navy-2);color:#fff;overflow:hidden}
.own .ph{position:absolute;inset:0;z-index:0}
.own .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);will-change:transform;opacity:.9}
.own .ph::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,32,47,.92),rgba(0,32,47,.45) 60%,rgba(0,32,47,.2)),linear-gradient(0deg,rgba(0,32,47,.95),transparent 40%)}
.own .wrap{position:relative;z-index:2;min-height:92svh;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,80px);align-items:end;padding-top:clamp(120px,18vh,200px);padding-bottom:clamp(48px,8vh,96px)}
.own h2{font-size:clamp(2.4rem,6.4vw,6.4rem)}
.own h2 em{font-style:normal;color:var(--red-l)}
.own p{color:#cfd8de;max-width:46ch}
.own .ticker{position:relative;z-index:2;border-top:1px solid var(--line-l);padding:16px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.own .tk{display:flex;gap:48px;width:max-content;animation:tk 60s linear infinite;font-weight:700;font-size:clamp(.9rem,1.4vw,1.15rem);letter-spacing:.04em;color:#fff;text-transform:uppercase}
.own .tk span b{color:var(--red-2);margin:0 10px}
@keyframes tk{to{transform:translateX(-50%)}}
@media(max-width:760px){.own .wrap{grid-template-columns:1fr;align-items:start;padding-top:100px}}

/* ================= PROTOCOL ================= */
.proto{padding:clamp(90px,14vh,180px) 0;background:var(--grey)}
.proto .wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,6vw,100px);align-items:start}
.proto .head{position:sticky;top:110px}
.proto h2{font-size:clamp(2.2rem,4.8vw,4.8rem);color:var(--navy);max-width:12ch}
.proto h2 em{font-style:normal;color:var(--red)}
.proto .head p{margin-top:24px;max-width:42ch;color:var(--mute)}
.steps{display:grid;gap:18px}
.step{background:#fff;border-radius:6px;padding:clamp(24px,3vw,40px);display:grid;grid-template-columns:64px 1fr;gap:20px;align-items:start;position:relative;overflow:hidden;box-shadow:0 1px 0 rgba(0,48,73,.06)}
.step .n{font-weight:800;font-size:1.6rem;color:var(--red);line-height:1}
.step h3{font-size:clamp(1.15rem,1.8vw,1.6rem);color:var(--navy);letter-spacing:-.02em}
.step p{margin-top:10px;color:var(--mute);font-size:.98rem;max-width:56ch}
.step .who{display:block;margin-top:14px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);font-weight:700}
.step::after{content:'';position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--red);transform:scaleX(var(--sp,0));transform-origin:left;transition:transform .9s var(--ease)}
@media(max-width:900px){.proto .wrap{grid-template-columns:1fr}.proto .head{position:static}}
@media(max-width:760px){.step{grid-template-columns:44px 1fr;gap:14px}.step .n{font-size:1.2rem}}

/* ================= SERVICES ================= */
.svc{background:var(--navy);color:#fff;padding:clamp(90px,14vh,180px) 0}
.svc .head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(32px,5vh,56px)}
.svc h2{font-size:clamp(2.2rem,4.8vw,4.8rem);max-width:12ch}
.svc h2 em{font-style:normal;color:var(--red-l)}
.svcl{border-top:1px solid var(--line-l)}
.svcr{display:grid;grid-template-columns:36% 1fr auto;gap:clamp(16px,3vw,48px);align-items:center;padding:clamp(22px,3.2vh,36px) 0;border-bottom:1px solid var(--line-l);position:relative;isolation:isolate}
.svcr::before{content:'';position:absolute;inset:0 calc(-1*var(--pad));background:rgba(255,255,255,.05);transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--ease);z-index:-1}
.svcr:hover::before,.svcr:focus-within::before{transform:scaleY(1)}
.svcr .t{font-weight:700;font-size:clamp(1.5rem,3.4vw,3.4rem);letter-spacing:-.03em;line-height:1;transition:transform .5s var(--ease)}
.svcr:hover .t{transform:translateX(10px)}
.svcr .d{color:var(--mute-l);max-width:48ch;font-size:.95rem}
.svcr .tag{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 12px;border:1px solid var(--line-l);border-radius:3px;color:var(--mute-l);white-space:nowrap;font-weight:700}
.svcr .tag.hot{border-color:var(--red-2);color:#fff;background:var(--red)}
@media(max-width:900px){.svcr{grid-template-columns:1fr auto;align-items:start}.svcr .d{grid-column:1/-1}.svcr .tag{justify-self:end}}

/* ================= LANES — departures board ================= */
.board{background:var(--navy-2);color:#fff;padding:clamp(70px,10vh,120px) 0 clamp(90px,14vh,180px)}
.board .head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(32px,5vh,56px)}
.board h2{font-size:clamp(2.2rem,4.8vw,4.8rem);max-width:13ch}
.board h2 em{font-style:normal;color:var(--red-l)}
.flap{font-family:'DejaVu Sans Mono',ui-monospace,SFMono-Regular,Menlo,monospace;border-top:1px solid var(--line-l)}
.frow{display:grid;grid-template-columns:1.4fr 1.4fr .7fr .7fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-l);align-items:center;position:relative}
.frow.hd{font-family:var(--font);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute-l);padding:10px 0;font-weight:700}
.fc{display:inline-flex;gap:2px;min-width:0}
.fc i{display:inline-block;width:1.05ch;text-align:center;font-style:normal;font-size:clamp(.85rem,1.4vw,1.35rem);line-height:1.5;background:#0a3a55;border-radius:2px;color:#fff;position:relative;overflow:hidden}
.fc i::after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,32,47,.9)}
.fc i.sp{background:transparent}.fc i.sp::after{display:none}
.fc.c4 i{color:#ff8a80}
.frow .pv{position:absolute;right:4%;top:50%;width:min(22vw,260px);aspect-ratio:4/3;transform:translateY(-50%) scale(.94);opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .5s var(--ease);z-index:3;overflow:hidden;border-radius:4px}
.frow .pv img{width:100%;height:100%;object-fit:cover}
.frow:hover .pv{opacity:1;transform:translateY(-50%) scale(1)}
@media(max-width:900px){.frow .pv{display:none}}
@media(max-width:760px){.frow{grid-template-columns:1fr 1fr;gap:8px}.frow .c3,.frow .c4{display:none}.fc i{font-size:.78rem}}

/* ================= NETWORK ================= */
.net{background:var(--grey);padding:clamp(90px,14vh,180px) 0;overflow:hidden}
.net .head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(36px,6vh,72px)}
.net h2{font-size:clamp(2.2rem,4.8vw,4.8rem);max-width:12ch;color:var(--navy)}
.net h2 em{font-style:normal;color:var(--red)}
.net .head p{max-width:46ch;color:var(--mute)}
.net .maps{display:grid;grid-template-columns:1fr;gap:clamp(16px,3vw,40px);align-items:stretch;background:#fff;border-radius:8px;padding:clamp(16px,3vw,36px)}
.net .map{position:relative;aspect-ratio:2.3/1;width:100%}
.net canvas{display:block;width:100%;height:100%}
.net .lbl span{position:absolute;transform:translate(-50%,8px);font-family:'DejaVu Sans Mono',ui-monospace,monospace;font-size:.62rem;letter-spacing:.1em;color:var(--navy);white-space:nowrap;opacity:0;transition:opacity .6s var(--ease);font-weight:700}
.net .lbl span.on{opacity:1}
.net .lbl span.home{color:var(--red)}
.net .imap{position:relative;border-left:1px solid var(--line);padding-left:clamp(16px,3vw,40px);display:flex;flex-direction:column}
.net .imap .k{color:var(--mute);margin-bottom:12px}
.net .imap canvas{flex:1;min-height:0;width:100%;aspect-ratio:1/1}
.netf{margin-top:clamp(32px,5vh,56px);display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:1px solid var(--line);padding-top:20px}
.netf dt{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-weight:700}.netf dd{font-weight:600;font-size:1.02rem;margin-top:6px;max-width:22ch;color:var(--navy)}
@media(max-width:760px){.net .head{grid-template-columns:1fr}.net .maps{grid-template-columns:1fr}.net .map{aspect-ratio:1.6/1}.net .imap{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:16px}.net .imap canvas{aspect-ratio:1/1;max-height:70vw;margin:0 auto}.netf{grid-template-columns:1fr 1fr}.net .lbl span{font-size:.52rem}}

/* ================= PEOPLE ================= */
.people{background:#fff;padding:clamp(90px,14vh,180px) 0}
.people .g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,100px);align-items:center}
.people h2{font-size:clamp(2.2rem,4.8vw,4.8rem);max-width:12ch;color:var(--navy)}
.people h2 em{font-style:normal;color:var(--red)}
.people p{color:var(--mute);max-width:48ch;margin-top:20px}
.people .ph{aspect-ratio:4/5;overflow:hidden;position:relative;border-radius:8px}
.people .ph img{width:100%;height:100%;object-fit:cover}
.people .ph .cap{position:absolute;left:16px;bottom:14px;color:#fff;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;background:var(--navy);padding:8px 12px;font-weight:700}
.facts{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;border-top:1px solid var(--line);padding-top:20px}.facts dt{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-weight:700}.facts dd{font-weight:600;font-size:1.02rem;margin-top:4px;color:var(--navy)}
.big30{display:flex;align-items:baseline;gap:14px;margin-top:28px;color:var(--navy)}
.big30 b{font-size:clamp(3.4rem,7vw,6.4rem);font-weight:800;letter-spacing:-.04em;line-height:.9;color:var(--red)}
.big30 span{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;max-width:12ch;line-height:1.4}
@media(max-width:760px){.people .g{grid-template-columns:1fr}.people .ph{aspect-ratio:4/3}}

/* ================= ENQUIRE ================= */
.enq{background:var(--navy);color:#fff;padding:clamp(90px,14vh,180px) 0}
.enq .g{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,6vw,100px)}
.enq h2{font-size:clamp(2.4rem,5.6vw,5.6rem);max-width:10ch}
.enq h2 em{font-style:normal;color:var(--red-l)}
.enq .lead{color:var(--mute-l);max-width:40ch;margin-top:22px}
.enq dl{margin-top:36px;display:grid;gap:12px;font-size:.95rem}
.enq dl div{display:grid;grid-template-columns:110px 1fr;gap:12px;border-top:1px solid var(--line-l);padding-top:12px}
.enq dt{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute-l);padding-top:4px;font-weight:700}
.enq dd a{overflow-wrap:anywhere;font-weight:600}
.form{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;background:rgba(255,255,255,.04);padding:clamp(20px,3vw,36px);border-radius:8px;border:1px solid var(--line-l)}
.f{display:flex;flex-direction:column;gap:8px}
.f.full{grid-column:1/-1}
label{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute-l);font-weight:700}
input,select{background:rgba(255,255,255,.06);border:1px solid var(--line-l);color:#fff;font:inherit;font-size:1rem;padding:13px 14px;outline:0;border-radius:3px;transition:border-color .25s;min-height:48px}
select option{background:var(--navy)}
input:focus,select:focus{border-color:var(--red-2)}
input::placeholder{color:rgba(255,255,255,.4)}
.note{font-size:.85rem;color:var(--mute-l);margin-top:12px}
@media(max-width:900px){.enq .g{grid-template-columns:1fr}.form{grid-template-columns:1fr}}

/* ================= FOOTER ================= */
footer{background:var(--navy-2);color:var(--mute-l);padding:clamp(60px,9vh,100px) 0 32px}
footer .top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(24px,5vw,80px);align-items:start;padding-bottom:40px;border-bottom:1px solid var(--line-l)}
footer .top img{width:min(60vw,220px)}
footer .tag{margin-top:22px;color:#fff;font-weight:700;font-size:1.3rem;letter-spacing:-.02em}
footer h4{color:#fff;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}
footer li{list-style:none;padding:5px 0;font-size:.92rem}
footer li a:hover{color:#fff}
footer .bot{padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.78rem}
@media(max-width:760px){footer .top{grid-template-columns:1fr}}

/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.own .tk{animation:none}#ld img,#ld p,#ld small{animation:none;opacity:1;clip-path:none}}
.nav .brand{display:flex;align-items:center;min-width:0}
.hmember{height:24px;width:auto;margin-left:20px;padding-left:20px;border-left:1px solid var(--line);opacity:var(--wm,0);transition:none}
html.nojs .hmember,html.rm .hmember,html.flat .hmember{opacity:1}
@media(max-width:1100px){.hmember{height:20px;margin-left:14px;padding-left:14px}}
.hmember-s{display:none}
@media(max-width:760px){.hmember{display:none}.hmember-s{display:block;height:19px;margin-left:10px;padding-left:10px}.nav .k a.cta{padding:9px 11px;font-size:.6rem}.nav .k{gap:12px}.wm img{height:40px}}
#mm .mm-member{height:26px;margin-top:18px}
.member{display:block;height:clamp(32px,3.6vw,46px);width:auto;max-width:100%;margin-top:22px}
.net .member-row{margin-top:28px}
footer .brandcol .member{height:32px;margin-top:26px}
@media(max-width:760px){.member{height:30px}footer .brandcol .member{height:26px}}

/* ---------- inner pages (no hero): see HANDOVER.md ---------- */
html.inner{--wm:1}
.page{padding-top:72px}
.page .prose{padding:clamp(56px,8vh,110px) 0 clamp(64px,9vh,120px)}
.page .prose .wrap{max-width:860px}
.page .prose h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;letter-spacing:-.04em;font-weight:600;margin:0 0 28px}
.page .prose h2{font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:-.025em;font-weight:600;margin:48px 0 14px}
.page .prose p,.page .prose li{font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.7;max-width:68ch;margin:0 0 18px}
.page .prose ul{padding-left:1.2em}
.page .prose a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.page .prose .k{color:var(--red);margin-bottom:18px}
.page .prose.on-navy{background:var(--navy);color:#fff}
.page .prose.on-navy .k{color:var(--red-l)}
.page .prose.on-navy a{color:#fff}
