/* FNS revamp 3.3.1 (branch integrated-2026-11-12): motion wraps around text, behind a navy scrim.
   Every animation is transform/opacity only (no layout shift). Content is visible without JS;
   html.js gates the scroll reveals, and prefers-reduced-motion turns all motion off. */
@font-face{font-family:Bebas;src:url(/assets/fonts/BebasNeue-Regular.woff2) format("woff2"),url(/assets/fonts/BebasNeue-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:Jost;src:url(/assets/fonts/Jost-400.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:BebasFallback;src:local("Arial Narrow"),local("Arial");size-adjust:78%;ascent-override:110%}
:root{--navy:#0b2134;--ink:#061420;--navy2:#10304a;--gold:#e9bb3e;--gold2:#c9a140;--gold-ink:#7A5C0F;--paper:#f5f3ee;--white:#fff;--line:rgba(11,33,52,.12);--muted:#4d5d6c;
 --r:18px;--ease:cubic-bezier(.2,.7,.1,1);--ease2:cubic-bezier(.65,0,.35,1);--navh:68px;--disp:Bebas,BebasFallback,"Arial Narrow",sans-serif;--body:Jost,system-ui,-apple-system,"Segoe UI",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--navh) + 56px);overflow-x:hidden}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font:400 17px/1.6 var(--body);color:var(--navy);background:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,svg,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3{font-family:var(--disp);font-weight:400;letter-spacing:.01em;line-height:.98;margin:0 0 .4em}
h1{font-size:clamp(46px,8.4vw,108px)}
h2{font-size:clamp(36px,5.2vw,64px)}
h3{font-size:clamp(24px,2.4vw,30px);line-height:1.05}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--gold);color:var(--navy);padding:10px 16px;border-radius:8px;font-weight:600}
.skip:focus{left:12px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
main{display:block}
main:focus{outline:none}
.eyebrow{font:600 12.5px/1.2 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold2);margin:0 0 14px;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor;transform-origin:left;display:inline-block}
.dark .eyebrow,.ph .eyebrow,.hero .eyebrow,.ctab .eyebrow{color:var(--gold)}
.sub{font-size:clamp(17px,1.6vw,19px);color:var(--muted);max-width:62ch}
.dark .sub{color:rgba(255,255,255,.75)}

/* ---------- progress + nav ---------- */
.sprog{position:fixed;inset:0 0 auto;height:3px;z-index:120;pointer-events:none}
.sprog span{display:block;height:100%;background:linear-gradient(90deg,var(--gold2),var(--gold));transform:scaleX(0);transform-origin:left}
.nav{position:fixed;inset:0 0 auto;z-index:100;height:var(--navh);color:#fff;transition:background .35s var(--ease),box-shadow .35s,transform .45s var(--ease)}
.nav::before{content:"";position:absolute;inset:0;background:rgba(6,20,32,.82);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);opacity:0;transition:opacity .35s}
.nav.solid::before{opacity:1}
.nav.solid{box-shadow:0 10px 30px -18px rgba(0,0,0,.6)}
.nav.hide{transform:translateY(-100%)}
.navin{position:relative;height:100%;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none;min-width:0;max-width:min(280px,54vw)}
.brand .blogo-pic{display:block;line-height:0}
.brand .blogo{display:block;height:52px;width:auto;max-width:min(270px,56vw)}
@media (max-width:420px){.brand .blogo{height:42px}}
.bt{display:flex;flex-direction:column;line-height:1.05}
.bt b{font:400 19px/1 var(--disp);letter-spacing:.05em}
.bt i{font-style:normal;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.75}
.links{margin-left:auto;display:flex;align-items:center;gap:6px}
.nl{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.dd{position:relative;display:flex;align-items:center}
.nl .top{position:relative;text-decoration:none;font-size:15px;padding:10px 4px 10px 10px;white-space:nowrap}
.nl .top::after{content:"";position:absolute;left:10px;right:4px;bottom:4px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nl .dd:hover .top::after,.nl .top:focus-visible::after,.nl .top[aria-current]::after{transform:scaleX(1);transform-origin:left}
.ddb{background:none;border:0;color:inherit;padding:8px 6px;cursor:pointer;opacity:.8}
.ddb svg{width:11px;height:11px;transition:transform .35s var(--ease)}
.dd.open .ddb svg{transform:rotate(180deg)}
.ddm{list-style:none;margin:0;padding:10px;position:absolute;top:calc(100% + 6px);left:0;min-width:250px;background:#fff;color:var(--navy);border-radius:14px;box-shadow:0 24px 60px -20px rgba(6,20,32,.45);
 opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top left;transition:opacity .25s,transform .35s var(--ease),visibility 0s .35s}
.dd:hover>.ddm,.dd:focus-within>.ddm,.dd.open>.ddm{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .35s var(--ease),visibility 0s}
.ddm a{display:block;padding:9px 12px;border-radius:9px;text-decoration:none;font-size:15px;transition:background .2s,transform .3s var(--ease),color .2s}
.ddm a:hover,.ddm a:focus-visible,.ddm a[aria-current]{background:var(--paper);transform:translateX(4px)}
.ddm li{opacity:1}
.dd:hover>.ddm li,.dd.open>.ddm li{animation:ddin .4s var(--ease) both;animation-delay:calc(var(--i)*28ms)}
@keyframes ddin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.navcta{display:flex;align-items:center;gap:14px;margin-left:10px}
.navtel{display:none;text-decoration:none}
.mtog{display:none}
@media (max-width:1179px){
 .mtog{display:flex;align-items:center;gap:10px;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:999px;padding:8px 14px 8px 12px;font:500 15px var(--body);cursor:pointer;position:relative;z-index:3}
 .hb{position:relative;width:20px;height:14px}
 .hb i{position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;transition:transform .45s var(--ease),opacity .25s,top .45s var(--ease)}
 .hb i:nth-child(1){top:0}.hb i:nth-child(2){top:6px}.hb i:nth-child(3){top:12px}
 .nav.mopen .hb i:nth-child(1){top:6px;transform:rotate(45deg)}
 .nav.mopen .hb i:nth-child(2){opacity:0;transform:scaleX(0)}
 .nav.mopen .hb i:nth-child(3){top:6px;transform:rotate(-45deg)}
 .links{position:fixed;inset:0;z-index:2;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;margin:0;padding:calc(var(--navh) + 12px) clamp(18px,5vw,40px) 40px;background:var(--ink);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  clip-path:circle(0% at calc(100% - 50px) 34px);visibility:hidden;transition:clip-path .6s var(--ease2),visibility 0s .6s}
 .nav.mopen .links{clip-path:circle(150% at calc(100% - 50px) 34px);visibility:visible;transition:clip-path .7s var(--ease2),visibility 0s}
 .nl{flex-direction:column;gap:0}
 .dd{flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.1)}
 .nl .top{flex:1;font:400 30px/1 var(--disp);letter-spacing:.03em;padding:16px 0}
 .nl .top::after{display:none}
 .ddb{padding:14px 6px 14px 20px}
 .ddb svg{width:16px;height:16px}
 .ddm{position:static;flex-basis:100%;min-width:0;background:none;color:#fff;box-shadow:none;padding:0 0 12px 6px;opacity:1;visibility:visible;transform:none;display:none}
 .dd.open>.ddm{display:block}
 .ddm a{padding:8px 4px;opacity:.85}
 .ddm a:hover,.ddm a:focus-visible,.ddm a[aria-current]{background:none;color:var(--gold)}
 .nav.mopen .nl>li{animation:mlin .6s var(--ease) both;animation-delay:calc(140ms + var(--i)*55ms)}
 .navcta{margin:26px 0 0;flex-direction:column;align-items:flex-start;gap:16px}
 .nav.mopen .navcta{animation:mlin .6s var(--ease) both;animation-delay:.5s}
 .navtel{display:block;font:400 26px var(--disp);color:var(--gold);letter-spacing:.04em}
 html.navlock{overflow:hidden}
}
@keyframes mlin{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media (max-width:420px){.bt i{display:none}.bt b{font-size:17px}.mt{display:none}.mtog{padding:9px 11px}}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:999px;text-decoration:none;font:600 15.5px/1 var(--body);letter-spacing:.02em;overflow:hidden;isolation:isolate;
 transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s,color .3s;cursor:pointer;border:0;white-space:nowrap}
.btn span{position:relative;z-index:1}
.btn::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn.gold{background:var(--gold);color:var(--navy);box-shadow:0 10px 28px -12px rgba(233,187,62,.8)}
.btn.gold:hover{box-shadow:0 18px 40px -14px rgba(233,187,62,.95)}
.btn.ghost{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 1.5px currentColor}
.btn.ghost.light,.ph .btn.ghost,.hero .btn.ghost,.dark .btn.ghost{color:#fff}
.btn.ghost:hover{background:var(--navy);color:#fff;box-shadow:inset 0 0 0 1.5px var(--navy)}
.btn.ghost.light:hover,.ph .btn.ghost:hover,.dark .btn.ghost:hover,.hero .btn.ghost:hover{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px #fff}
.btn.sm{min-height:42px;padding:0 18px;font-size:14.5px}
.btn:active{transform:scale(.97)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* ---------- kinetic headline ---------- */
.kin .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;margin-bottom:-.06em}
.kin .w>span{display:inline-block}
@media (prefers-reduced-motion:no-preference){
 .kin .w>span{animation:rise 1s var(--ease) both;animation-delay:calc(.12s + var(--i)*.07s)}
 .home-h1 .w>span{animation-delay:calc(.15s + var(--i)*.16s)}
}
@keyframes rise{from{transform:translateY(105%) rotate(4deg)}to{transform:none}}
.home-h1 .w{display:block}

/* ---------- page hero (inner) ---------- */
.ph{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:#fff;min-height:min(78svh,700px);display:flex;align-items:flex-end;padding:calc(var(--navh) + 70px) 0 clamp(56px,8vw,96px)}
.ph.short{min-height:0;padding-bottom:clamp(44px,6vw,72px)}
.ph .hbg,.hero .hbg{position:absolute;inset:-8% 0 -8%;z-index:-3;will-change:transform}
.ph .hbg img,.hero .hbg img{width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:no-preference){.ph .hbg img,.hero .hbg img{animation:kb 22s ease-in-out infinite alternate}}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate3d(-1.5%,-1%,0)}}
.ph .shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(6,20,32,.55) 0%,rgba(6,20,32,.35) 40%,rgba(6,20,32,.92) 100%),linear-gradient(90deg,rgba(6,20,32,.85),rgba(6,20,32,.1) 70%)}
.ph.short .shade{background:radial-gradient(1200px 500px at 80% -10%,rgba(233,187,62,.18),transparent 60%),linear-gradient(180deg,#0b2134,#061420)}
.ph-motion{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(ellipse 64% 58% at 24% 78%,transparent 16%,#000 70%);mask-image:radial-gradient(ellipse 64% 58% at 24% 78%,transparent 16%,#000 70%)}
.ph .lanes{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.phin{position:relative;z-index:2}.phin::before{content:"";position:absolute;inset:-36px -48px -44px -36px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 90% 85% at 20% 45%,rgba(6,20,32,.92) 0%,rgba(6,20,32,.78) 40%,rgba(6,20,32,0) 76%)}
.lanes .ln{stroke:rgba(233,187,62,.55);stroke-width:1.4;stroke-dasharray:2000;stroke-dashoffset:2000}
.lanes .l2{stroke:rgba(255,255,255,.22)}.lanes .l3{stroke:rgba(233,187,62,.3)}
.lanes .dash{stroke:var(--gold);stroke-width:2.2;stroke-dasharray:6 22;opacity:.7}
.lanes .pk{fill:#fff}.lanes .pk.g{fill:var(--gold)}
@media (prefers-reduced-motion:no-preference){
 .lanes .ln{animation:draw 2.6s var(--ease) .2s forwards}.lanes .l2{animation-delay:.5s}.lanes .l3{animation-delay:.8s}
 .lanes .dash{animation:flow 3.5s linear infinite}.lanes .d2{animation-duration:5s}
}
@media (prefers-reduced-motion:reduce){.lanes .ln{stroke-dashoffset:0}.lanes .pk{display:none}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes flow{to{stroke-dashoffset:-280}}
.phin{position:relative}
.ph h1{max-width:15ch;margin-bottom:.25em;text-wrap:balance}
.ph .lede{font-size:clamp(17px,1.7vw,21px);max-width:58ch;color:rgba(255,255,255,.86);margin:0}
@media (prefers-reduced-motion:no-preference){
 .ph .eyebrow,.hero .eyebrow{animation:fadeup .8s var(--ease) both}
 .ph .lede,.hero .lede{animation:fadeup .9s var(--ease) .45s both}
 .ph .ctas,.hero .ctas{animation:fadeup .9s var(--ease) .6s both}
 .eyebrow::before{animation:grow .9s var(--ease) .2s both}
}
@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.scrollcue{position:absolute;left:50%;bottom:18px;width:22px;height:36px;margin-left:-11px;border:1.5px solid rgba(255,255,255,.5);border-radius:12px}
.scrollcue span{position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--gold)}
@media (prefers-reduced-motion:no-preference){.scrollcue span{animation:cue 1.8s var(--ease) infinite}}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(12px);opacity:0}100%{opacity:0}}
.ph.short .scrollcue{display:none}
@media (max-width:700px){.scrollcue{display:none}.ph{min-height:min(72svh,620px)}}

/* ---------- home hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:#fff;min-height:100vh;min-height:100svh;min-height:100dvh;display:flex;align-items:center;padding:calc(var(--navh) + 40px + env(safe-area-inset-top, 0px)) env(safe-area-inset-right, 0px) 90px env(safe-area-inset-left, 0px)}
.hero .hbgwrap{position:absolute;inset:0;z-index:-3;will-change:transform}
.hero .hbg{inset:-6% 0}
.hero .hbg img{opacity:.55}
.hero .shade{position:absolute;inset:0;z-index:-2;background:radial-gradient(900px 600px at 72% 38%,rgba(233,187,62,.16),transparent 60%),linear-gradient(90deg,rgba(6,20,32,.96) 15%,rgba(6,20,32,.55) 65%,rgba(6,20,32,.8)),linear-gradient(180deg,transparent 60%,var(--ink))}
.hero-motion{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero .lanes-wrap{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-in{position:relative;z-index:2;width:100%}
.hero .lanes-wrap svg{position:absolute;inset:0;width:100%;height:100%}
.hero .lane-paths path{stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200);opacity:.8}
@media (prefers-reduced-motion:no-preference){.hero .lane-paths path{animation:draw 2.4s var(--ease) forwards}
 .hero .lane-paths path:nth-child(2){animation-delay:.2s}.hero .lane-paths path:nth-child(3){animation-delay:.4s}.hero .lane-paths path:nth-child(4){animation-delay:.6s}
 .hero .lane-paths path:nth-child(5){animation-delay:.8s}.hero .lane-paths path:nth-child(6){animation-delay:1s}.hero .lane-paths path:nth-child(7){animation-delay:1.2s}.hero .lane-paths path:nth-child(8){animation-delay:1.4s}
 .hero .hq-ring{animation:ring 2.4s ease-out infinite;transform-origin:1010px 330px;transform-box:view-box}}
@media (prefers-reduced-motion:reduce){.hero .lane-paths path{stroke-dashoffset:0}.hero .pkt{display:none}}
@keyframes ring{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.6);opacity:0}}
.hero .hq-label{fill:#fff;font:600 13px var(--body);letter-spacing:.14em}
.hero-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:center}
.hero h1{font-size:clamp(44px,min(5.6vw,9.4vh),84px);margin-bottom:.3em}
@media (max-width:600px){.hero h1{font-size:clamp(34px,11.3vw,48px)}}
.hero h1 .w:nth-child(2)>span{color:var(--gold)}
.hero .lede{font-size:clamp(17px,1.6vw,20px);max-width:54ch;color:rgba(255,255,255,.85);margin:0}
.trackwrap{will-change:transform}
.track{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:22px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
@media (prefers-reduced-motion:no-preference){.track{animation:fadeup 1s var(--ease) .8s both,float 7s ease-in-out 2s infinite}}
@keyframes float{50%{transform:translateY(-10px)}}
.tnote{font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.65);margin:0 0 12px}
.trow{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.ref{font:400 24px var(--disp);letter-spacing:.06em}
.live{display:inline-flex;align-items:center;gap:8px;font-size:13px;background:rgba(233,187,62,.16);color:var(--gold);padding:5px 11px;border-radius:999px}
.live i{width:7px;height:7px;border-radius:50%;background:var(--gold)}
@media (prefers-reduced-motion:no-preference){.live i{animation:blink 1.4s infinite}}
@keyframes blink{50%{opacity:.25}}
#tstat,#ttemp{transition:opacity .2s}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.tgrid>div{background:rgba(0,0,0,.18);border-radius:14px;padding:12px}
.tgrid small{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.tgrid b{display:block;font:400 30px/1.1 var(--disp);letter-spacing:.03em;font-variant-numeric:tabular-nums}
.tgrid em{font-style:normal;font-size:12px;opacity:.7}
.tbar{height:4px;background:rgba(255,255,255,.14);border-radius:4px;overflow:hidden;margin-bottom:10px}
.tbar span{display:block;height:100%;background:var(--gold);transition:width 1.2s var(--ease)}
.tsteps{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;font-size:12.5px;opacity:.9}
.tsteps li{opacity:.5;transition:opacity .4s,color .4s}.tsteps li.done{opacity:.85}.tsteps li.now{opacity:1;color:var(--gold)}
@media (max-width:900px){.hero-in{grid-template-columns:1fr;gap:28px}.hero{min-height:100vh;min-height:100svh;min-height:100dvh;padding-top:calc(var(--navh) + 40px + env(safe-area-inset-top, 0px));padding-bottom:40px}.trackwrap{max-width:460px}}@media (max-width:420px){.hero{padding-top:calc(var(--navh) + 32px + env(safe-area-inset-top, 0px));padding-bottom:28px}.hero-in{gap:20px}.hero .ctas{margin-top:20px}.track{padding:16px}}@media (max-width:430px){.hero .hq-label{font:600 11px var(--body);letter-spacing:.1em}}

/* ---------- sections ---------- */
.sec{position:relative;padding:clamp(72px,10vw,136px) 0}
.sec.tight{padding:clamp(44px,6vw,72px) 0}
.sec.alt{background:var(--paper)}
.sec.dark{background:var(--ink);color:#fff}
.sec.dark a:not(.btn){color:var(--gold)}
.head{max-width:780px;margin-bottom:clamp(32px,4vw,52px);position:relative}.head h2{margin-bottom:0}.head .sub{margin:0}
.head h2{text-wrap:balance}
.head:empty{display:none}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,90px);align-items:center}
.split h2{text-wrap:balance}
.split p{max-width:60ch}
.split>.side{min-width:0}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.split3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.split2 h3,.split3 h3{margin-bottom:14px}
@media (max-width:900px){.split,.split2,.split3{grid-template-columns:1fr}}
.note{font-size:15px;color:var(--muted);margin-top:28px;border-left:3px solid var(--gold);padding-left:14px}
.dark .note{color:rgba(255,255,255,.75)}
.rel{font-size:16px;color:var(--muted);margin:0}
.rel a{color:var(--navy);text-decoration-color:var(--gold);text-underline-offset:4px;text-decoration-thickness:2px}
.relsec{padding:32px 0;border-top:1px solid var(--line)}

/* ---------- reveal (JS + motion only) ---------- */
@media (prefers-reduced-motion:no-preference){
 html.js .rv{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s var(--ease),transform 1s var(--ease)}
 html.js .rv.in{opacity:1;transform:none}
 html.js:not(.rv-ready) .rv{animation:rvsafe 0s 2.5s forwards}
 html.js .card.rv{transform:translate3d(0,40px,0) scale(.98)}
 html.js .card.rv.in{transform:none}
}
@keyframes rvsafe{to{opacity:1;transform:none}}

/* ---------- cards ---------- */
.grid{display:grid;gap:clamp(14px,1.6vw,22px);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.c1{grid-template-columns:1fr}
@media (max-width:1100px){.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;
 transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s,opacity .9s var(--ease);transform-style:preserve-3d}
.alt .card{background:#fff}
.dark .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
.card::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);z-index:2}
a.card:hover,a.card:focus-visible{box-shadow:0 30px 60px -30px rgba(11,33,52,.45);border-color:transparent}
a.card:hover::before,a.card:focus-visible::before{transform:scaleX(1)}
@media (hover:hover){a.card:hover{transform:translateY(-6px)}}
.cbody{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;flex:1}
.cbody h3{margin-bottom:.35em}
.cbody p{color:var(--muted);margin:0 0 .6em;font-size:16px}
.dark .cbody p{color:rgba(255,255,255,.72)}
.ctag{font:600 11.5px/1.3 var(--body)!important;letter-spacing:.18em;text-transform:uppercase;color:#7A5C0F!important;margin-bottom:12px!important}
.more{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;color:var(--navy);text-decoration:none}
.arr{width:18px;height:18px;transition:transform .45s var(--ease)}
a.card:hover .arr,.more:hover .arr{transform:translateX(6px)}
.cmedia{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--navy)}
.cmedia img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s}
a.card:hover .cmedia img{transform:scale(1.07)}
.card.big h3{font-size:clamp(34px,4vw,48px)}
.job .more{color:var(--navy)}

/* ---------- ticks, chips, stats, specs ---------- */
.ticks{list-style:none;margin:16px 0 22px;padding:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:30px}
.ticks li::before{content:"";position:absolute;left:0;top:.38em;width:18px;height:18px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%230b2134' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.ticks.big li{font:400 clamp(24px,2.6vw,32px)/1.1 var(--disp);letter-spacing:.02em;padding:16px 0 16px 42px;border-bottom:1px solid var(--line)}
.ticks.big li::before{top:20px;width:24px;height:24px;background-size:15px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{display:inline-flex}
.chips li,.chips a{border-radius:999px}
.chips li:not(:has(a)),.chips a{padding:9px 16px;border:1px solid var(--line);background:#fff;font-size:15px;text-decoration:none;transition:background .3s,color .3s,transform .4s var(--ease),border-color .3s}
.dark .chips li:not(:has(a)),.dark .chips a{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:#fff}
.chips a:hover,.chips a:focus-visible{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px)}
.chips.big a,.chips.big li:not(:has(a)){font:400 clamp(20px,2vw,26px)/1 var(--disp);letter-spacing:.03em;padding:14px 22px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;border-top:1px solid var(--line)}
.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stats.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.stats>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:26px 20px 6px 0;border-right:1px solid var(--line)}
.stats>div:last-child{border-right:0}
.stats>div+div{padding-left:22px}
.stats dt{font-size:14.5px;color:var(--muted);max-width:22ch}
.stats dd{margin:0 0 8px;font:400 clamp(44px,6vw,84px)/.95 var(--disp);letter-spacing:.01em;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}
.stats.five dd{font-size:clamp(40px,4.6vw,64px)}
.stats dd .num{display:inline-block;min-width:var(--w,auto);text-align:right}
.dark .stats dd{color:#fff}
@media (max-width:900px){.stats,.stats.five{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div{border-right:0;border-bottom:1px solid var(--line);padding-left:0!important}.stats.three{grid-template-columns:1fr}}
@media (max-width:420px){.stats.two{grid-template-columns:1fr}}
.split .stats{grid-template-columns:1fr 1fr}
.specs{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.specs>div{display:grid;grid-template-columns:minmax(110px,.5fr) 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);transition:background .3s,padding .4s var(--ease)}
.specs>div:hover{background:rgba(233,187,62,.08);padding-left:10px}
.specs dt{font:400 22px/1.1 var(--disp);letter-spacing:.04em}
.specs dd{margin:0;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){html.js .card.rv{transition:opacity .9s var(--ease),transform .7s var(--ease),box-shadow .5s var(--ease),border-color .4s}}

/* ---------- steps ---------- */
.steps{position:relative}
.steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:24px;counter-reset:s}
.steps:has(li:nth-child(3):last-child) ol{--n:3}
.steps .sline{position:absolute;left:0;right:0;top:27px;height:2px;background:var(--line);overflow:hidden}
.steps .sline span{display:block;height:100%;background:var(--gold);transform:scaleX(var(--p,0));transform-origin:left}
.steps li{position:relative;padding-top:74px}
.steps .sn{position:absolute;top:0;left:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--line);font:400 22px var(--disp);letter-spacing:.04em;transition:background .5s,border-color .5s,color .5s,transform .6s var(--ease)}
.alt .steps .sn{background:var(--paper)}
.steps li.lit .sn{background:var(--gold);border-color:var(--gold);color:var(--navy);transform:scale(1.08)}
.steps h3{margin-bottom:.3em}
.steps p{color:var(--muted);font-size:16px;margin:0}
.steps.truck .sline{overflow:visible}
.steps .trk{position:absolute;top:-9px;left:0;width:40px;height:20px;will-change:transform}
@media (max-width:800px){
 .steps ol{grid-template-columns:1fr;gap:0}
 .steps .sline{left:27px;right:auto;top:0;bottom:0;width:2px;height:auto}
 .steps .sline span{transform:scaleY(var(--p,0));transform-origin:top;height:100%;width:100%}
 .steps li{padding:0 0 30px 80px;min-height:84px}
 .steps .trk{display:none}
}
.steps.mini ol{grid-template-columns:1fr;gap:0}
.steps.mini .sline{left:27px;right:auto;top:0;bottom:0;width:2px;height:auto}
.steps.mini .sline span{transform:scaleY(var(--p,0));transform-origin:top;height:100%;width:100%}
.steps.mini li{padding:4px 0 26px 80px;min-height:76px}

/* ---------- faq ---------- */
.faq{display:grid;gap:12px;max-width:900px}
.qa{border:1px solid var(--line);border-radius:16px;background:#fff;transition:border-color .3s,box-shadow .4s var(--ease)}
.alt .qa{background:#fff}
.qa[open]{border-color:rgba(233,187,62,.7);box-shadow:0 20px 40px -30px rgba(11,33,52,.4)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;font-weight:600;font-size:17.5px}
.qa summary::-webkit-details-marker{display:none}
.qa summary i{flex:none;position:relative;width:30px;height:30px;border-radius:50%;background:var(--paper);transition:background .3s,transform .5s var(--ease)}
.qa summary i::before,.qa summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--navy);transition:transform .45s var(--ease)}
.qa summary i::after{transform:rotate(90deg)}
.qa[open] summary i{background:var(--gold);transform:rotate(180deg)}
.qa[open] summary i::after{transform:rotate(0)}
.qa summary:hover span{color:var(--navy2)}
.ans{padding:0 22px 20px;color:var(--muted)}
.ans p{margin:0 0 .5em}
.more-l a{font-weight:600;color:var(--navy);text-decoration-color:var(--gold);text-underline-offset:4px}

/* ---------- subnav (scrollspy) ---------- */
.subnav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:top .45s var(--ease)}
body.navshown .subnav{top:var(--navh)}
.subnav ul{list-style:none;margin:0;padding:10px 0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.subnav ul::-webkit-scrollbar{display:none}
.subnav a{display:block;white-space:nowrap;padding:8px 14px;border-radius:999px;text-decoration:none;font-size:14.5px;font-weight:500;transition:background .3s,color .3s}
.subnav a:hover{background:var(--paper)}
.subnav a.on{background:var(--navy);color:#fff}

/* ---------- ports ---------- */
.regions{display:grid;gap:clamp(20px,3vw,34px)}
.region{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.region:nth-child(even){grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.region:nth-child(even) .rimg{order:2}
.rimg{position:relative;overflow:hidden;min-height:260px;background:var(--navy)}
.rimg picture{position:absolute;inset:0}
.rimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.region:hover .rimg img{transform:scale(1.06)}
.rtxt{padding:clamp(24px,3.4vw,44px)}
.rtxt>p{color:var(--muted)}
.ports{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}
.ports li{display:flex;flex-direction:column;padding:10px 0;border-top:1px solid var(--line)}
.ports b{font-weight:600;font-size:15.5px}
.ports span{font-size:13.5px;color:var(--muted)}
@media (max-width:900px){.region,.region:nth-child(even){grid-template-columns:1fr}.region:nth-child(even) .rimg{order:0}.rimg{min-height:0;aspect-ratio:3/1.3}}
@media (max-width:520px){.ports{grid-template-columns:1fr}}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.person{margin:0;border-radius:20px;overflow:hidden;background:var(--navy);color:#fff;position:relative;transition:transform .5s var(--ease)}
.person picture,.person img{display:block;width:100%;aspect-ratio:5/4;object-fit:cover}
.person img{transition:transform 1.2s var(--ease),filter .6s;filter:grayscale(.25)}
.person:hover img{transform:scale(1.05);filter:none}
.person figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 18px;background:linear-gradient(transparent,rgba(6,20,32,.9));font-size:14.5px}
.person b{display:block;font:400 28px/1 var(--disp);letter-spacing:.03em}
@media (max-width:800px){.people{grid-template-columns:1fr;max-width:440px}}
.founder blockquote{margin:24px 0 0;padding:0 0 0 18px;border-left:3px solid var(--gold);font:400 clamp(24px,2.6vw,32px)/1.15 var(--disp);letter-spacing:.02em}
.fpic{margin:0;border-radius:22px;overflow:hidden;position:relative;background:var(--navy);color:#fff}
.fpic img{width:100%;height:auto}
.fpic figcaption{padding:14px 18px;font-size:14px}
.fpic figcaption b{display:block;font:400 24px var(--disp);letter-spacing:.03em}

/* ---------- freightrix dash (home) ---------- */
.dash{background:#0e2a42;border:1px solid rgba(255,255,255,.12);border-radius:20px;overflow:hidden;box-shadow:0 40px 90px -40px rgba(0,0,0,.9)}
.dtop{display:flex;align-items:center;gap:7px;padding:12px 16px;background:rgba(0,0,0,.25)}
.dot{width:10px;height:10px;border-radius:50%}.dot.r{background:#ff5f57}.dot.y{background:#febc2e}.dot.g{background:#28c840}
.dt{margin-left:10px;font-size:13px;opacity:.75}
.dbody{padding:18px}
.dp{background:rgba(255,255,255,.04);border-radius:14px;padding:12px;margin-bottom:12px;width:100%}
.chart{width:100%;height:110px}
.chart .band{fill:rgba(233,187,62,.1)}
.chart .tline{fill:none;stroke:var(--gold);stroke-width:2}
.clab{font-size:12.5px;opacity:.7;margin:6px 0 0}
table.dp{border-collapse:separate;border-spacing:0;font-size:14px}
table.dp th{text-align:left;font-weight:500;opacity:.6;padding:6px 10px}
table.dp td{padding:9px 10px;border-top:1px solid rgba(255,255,255,.07)}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;background:rgba(40,200,64,.15);color:#7ee08f;font-size:12.5px}
@media (prefers-reduced-motion:no-preference){html.js .dash .row{opacity:0;transform:translateX(-12px);transition:opacity .6s var(--ease),transform .6s var(--ease)}html.js .dash .row.on{opacity:1;transform:none}html.js:not(.rv-ready) .dash .row{opacity:1}}
.dash .tnote{margin:4px 0 0}

/* ---------- marquee ---------- */
.trust{background:var(--navy);color:#fff;border-top:1px solid rgba(255,255,255,.08);overflow:hidden}
.mq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-track{list-style:none;margin:0;padding:20px 0;display:flex;gap:44px;width:max-content}
@media (prefers-reduced-motion:no-preference){.mq-track{animation:mq 46s linear infinite}.mq:hover .mq-track{animation-play-state:paused}}
@keyframes mq{to{transform:translateX(-50%)}}
.mq-track li{display:flex;align-items:center;gap:14px;font-size:14px;max-width:420px;color:rgba(255,255,255,.75)}
.mq-track li img,.mq-track li svg{width:34px;height:34px;object-fit:contain;flex:none}
.mq-track b{display:block;color:#fff;font:400 20px/1.1 var(--disp);letter-spacing:.04em}
@media (prefers-reduced-motion:reduce){.mq-track{width:auto;flex-wrap:wrap;justify-content:center;padding:24px}.mq-track li[aria-hidden]{display:none}.mq{-webkit-mask-image:none;mask-image:none}}

/* ---------- globe ---------- */
.map-col{min-width:0;width:100%}
.map{position:relative;aspect-ratio:1200/680;border-radius:22px;overflow:visible;background:#04101b;border:1px solid rgba(233,187,62,.35);box-shadow:0 0 0 1px rgba(233,187,62,.08),0 30px 80px -40px rgba(233,187,62,.35)}
.map img,.map canvas{position:absolute;inset:0;width:100%;height:100%;border-radius:22px}
.map img{object-fit:cover;pointer-events:none;z-index:0}
.map canvas.globe-gl{z-index:1;pointer-events:none}
.map canvas.globe{z-index:2;cursor:grab;touch-action:pan-y;outline:none}
.map canvas.globe:focus-visible{box-shadow:inset 0 0 0 3px var(--gold)}
.map canvas.globe:active,.map.is-drag canvas.globe{cursor:grabbing;touch-action:none}
.map.gl-on .globe-static{opacity:0;transition:opacity .4s}
.globe-tip{position:absolute;z-index:4;background:var(--navy);color:var(--gold);border:1px solid var(--gold);padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;letter-spacing:.02em;pointer-events:auto;white-space:normal;max-width:min(240px,70vw);transform:translate(-50%,calc(-100% - 12px));box-shadow:0 10px 28px -12px rgba(0,0,0,.7);display:flex;flex-direction:column;gap:4px}
.globe-tip.is-below{transform:translate(-50%,12px)}
.globe-tip[hidden]{display:none}
.globe-tip-name{color:var(--gold)}
.globe-tip-link{color:#fff;text-decoration:underline;font-weight:600;font-size:13px}
.globe-tip-link:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.globe-tip-link[hidden]{display:none}
.cov-hint{color:rgba(255,255,255,.82);font-size:15.5px;max-width:52ch;margin:12px 0 18px}
.cov-controls{margin:18px 0 0}
.cov-jump{display:block;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.cov-select{appearance:none;-webkit-appearance:none;background:#0e2a42;color:#fff;border:1.5px solid var(--gold);border-radius:10px;padding:10px 36px 10px 12px;font:inherit;font-size:15px;min-width:min(100%,260px);background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;cursor:pointer}
.cov-select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.sr-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){.map.gl-on .globe-static{transition:none}}

.cov-ctas{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 8px}
.cov-controls{margin:18px 0 0;display:flex;flex-direction:column;gap:14px;min-width:0;max-width:100%}
.cov-search-wrap{position:relative;min-width:0}
.cov-search{width:100%;max-width:min(100%,340px);appearance:none;-webkit-appearance:none;background:#0e2a42;color:#fff;border:1.5px solid var(--gold);border-radius:10px;padding:10px 12px;font:inherit;font-size:15px}
.cov-search:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.cov-suggest{position:absolute;z-index:5;left:0;right:0;max-width:min(100%,340px);max-height:220px;overflow:auto;margin:4px 0 0;padding:6px 0;list-style:none;background:#0e2a42;border:1px solid var(--gold);border-radius:10px;box-shadow:0 16px 32px -16px rgba(0,0,0,.6)}
.cov-suggest[hidden]{display:none}
.cov-suggest [role=option]{padding:8px 12px;cursor:pointer;color:#fff;font-size:14.5px}
.cov-suggest [role=option]:hover,.cov-suggest [role=option][aria-selected=true]{background:rgba(233,187,62,.18);color:var(--gold)}
.cov-filters{display:flex;flex-wrap:wrap;gap:8px}
.cov-chip{appearance:none;background:#0e2a42;color:#fff;border:1px solid rgba(233,187,62,.55);border-radius:999px;padding:6px 12px;font:inherit;font-size:13.5px;cursor:pointer;line-height:1.2}
.cov-chip.is-on,.cov-chip[aria-pressed=true]{background:var(--gold);color:var(--navy);border-color:var(--gold);font-weight:600}
.cov-chip:focus-visible,.cov-zoom:focus-visible,.cov-reset:focus-visible,.globe-pin-list button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.cov-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cov-zoom,.cov-reset{appearance:none;background:#0e2a42;color:var(--gold);border:1.5px solid var(--gold);border-radius:10px;font:inherit;font-weight:600;cursor:pointer;line-height:1}
.cov-zoom{width:40px;height:40px;font-size:22px}
.cov-reset{padding:8px 14px;font-size:14px;height:40px}
.cov-lanes-note{color:rgba(255,255,255,.72);font-size:13.5px;max-width:52ch;margin:0}
.cov-pin-details{max-width:min(100%,340px);border:1px solid rgba(233,187,62,.35);border-radius:10px;padding:6px 10px;background:#0e2a42;color:#fff}
.cov-pin-details summary{cursor:pointer;font-size:13.5px;color:var(--gold);padding:4px 0;list-style:none;display:inline-flex;align-items:center;gap:8px}.cov-pin-details summary::-webkit-details-marker{display:none}.cov-pin-details summary::marker{content:""}.cov-pin-details summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .35s var(--ease)}.cov-pin-details[open] summary::after{transform:translateY(1px) rotate(-135deg)}@media (prefers-reduced-motion:reduce){.cov-pin-details summary::after{transition:none}}
.cov-pin-details summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.globe-pin-list{list-style:none;margin:8px 0 4px;padding:0;max-height:200px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.globe-pin-list button{appearance:none;width:100%;text-align:left;background:transparent;color:#fff;border:0;border-radius:6px;padding:6px 8px;font:inherit;font-size:13px;cursor:pointer}
.globe-pin-list button:hover{background:rgba(233,187,62,.16);color:var(--gold)}
.globe-drag-hint{color:rgba(255,255,255,.7);font-size:13px;margin:10px 0 0;max-width:52ch}
.cov-about{margin-top:28px;gap:28px;align-items:center}
.cov-about .map-col{flex:1 1 280px}
@media (max-width:600px){
  .cov-search,.cov-suggest,.cov-pin-details{max-width:100%}
  .globe-pin-list{grid-template-columns:1fr}
  .cov-zoom,.cov-reset{min-height:40px}
}

/* ---------- GDP feature (Industries) ---------- */
.gdpsec{padding-bottom:0}
.gdp-feature{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px 36px;align-items:center;background:var(--navy);color:#fff;border-radius:22px;padding:clamp(24px,4vw,44px);border:1px solid rgba(233,187,62,.4);box-shadow:0 24px 60px -36px rgba(233,187,62,.45)}
.gdp-feature .thermo{width:52px;height:104px;color:var(--gold);flex:none}
.gdp-feature h2{margin:.15em 0 .35em;text-wrap:balance}
.gdp-feature p{max-width:58ch;color:rgba(255,255,255,.86)}
.gdp-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.badge-gdp{display:inline-block;font:400 15px/1 var(--disp);letter-spacing:.14em;background:var(--gold);color:var(--navy);padding:6px 10px 5px;border-radius:6px;vertical-align:middle}
.card .badge-gdp,.ctag .badge-gdp,p.ctag{letter-spacing:.1em}
@media (max-width:600px){.gdp-feature{grid-template-columns:1fr;justify-items:start}.gdp-feature .thermo{width:40px;height:80px}}

/* ---------- CTA band ---------- */
.ctab{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:#fff;padding:clamp(64px,9vw,120px) 0}
.ctab .glow{position:absolute;inset:-40%;z-index:-1;background:conic-gradient(from 0deg at 50% 50%,rgba(233,187,62,.0),rgba(233,187,62,.22),rgba(233,187,62,0) 30%,rgba(0,93,167,.25) 60%,rgba(233,187,62,0));filter:blur(60px)}
@media (prefers-reduced-motion:no-preference){.ctab .glow{animation:spin 24s linear infinite}}
@keyframes spin{to{transform:rotate(360deg)}}
.ctain{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.ctab h2{margin-bottom:.2em}
.ctab p{color:rgba(255,255,255,.8);max-width:56ch;margin:0}
.ctab p a{color:var(--gold)}
.ctab .ctas{margin-top:0}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:rgba(255,255,255,.78);padding:72px 0 40px;font-size:15px}
.fgrid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:32px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.fbrand-logo{display:inline-block;line-height:0;margin-bottom:16px;max-width:100%}.fbrand .flogo{display:block;height:52px;width:auto;max-width:min(280px,86vw)}.fbrand .btn{margin-top:4px}
.ftrust{margin:8px 0 0;padding:4px 0 8px}
.fh{font:400 20px var(--disp);letter-spacing:.06em;color:#fff;margin-bottom:12px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot a{text-decoration:none;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease),color .3s}
.foot a:hover,.foot a:focus-visible{background-size:100% 1px;color:#fff}
.foot .btn{background:var(--gold);color:var(--navy)}
.fid{padding-top:28px;display:grid;gap:6px}
.fid p{margin:0}
.tbcrow{color:#fff;font-weight:600;letter-spacing:.04em}
.foot .sm{font-size:13px;opacity:.6}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}
@media (max-width:420px){.fgrid{grid-template-columns:1fr}}

/* ---------- forms ---------- */
form{position:relative}
.ffall{font-size:14.5px;background:rgba(233,187,62,.14);border:1px solid rgba(233,187,62,.5);border-radius:12px;padding:12px 14px;margin:0 0 18px}
.dark .ffall{color:#fff}
/* Hidden automatically when --forms-live flips data-live to true. */
form[data-live="true"] .ffall{display:none}
.form-privacy{font-size:13.5px;line-height:1.45;margin:12px 0 0;max-width:52ch}
.form-privacy a{text-decoration:underline}

.fwrap{border:0;margin:0;padding:0;min-width:0;display:grid;gap:14px}
.fwrap legend{font:400 26px var(--disp);letter-spacing:.03em;margin-bottom:6px;padding:0}
.fwrap>div,.r2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fwrap>.ship-panel{display:block}.fwrap>.ship-actions{display:flex}
[hidden]{display:none!important}
.fwrap>div:has(>input+button){grid-template-columns:1fr auto}
@media (max-width:560px){.fwrap>div,.r2,.fwrap>div:has(>input+button){grid-template-columns:1fr}}
.fwrap label{display:grid;gap:6px;font-size:14px;font-weight:500;color:var(--navy)}
.dark .fwrap label{color:#fff}
.fwrap label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px;font-weight:400}
input,select,textarea{font:inherit;font-size:16px;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;width:100%;transition:border-color .25s,box-shadow .3s}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--navy)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(233,187,62,.25)}
.fwrap button,.ship-actions button{font:600 15.5px var(--body);min-height:50px;padding:0 24px;border-radius:999px;border:0;background:var(--gold);color:var(--navy);cursor:pointer;transition:transform .3s var(--ease),opacity .3s}
.fwrap button:disabled,.ship-actions button:disabled{opacity:.55;cursor:not-allowed}
.fwrap .btn{justify-self:start}
.fnote,.fwrap>p{font-size:13.5px;color:var(--muted);margin:0}
fieldset fieldset{border:0;padding:0;margin:0}
.formsplit{align-items:start}
.formsplit form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3vw,34px);box-shadow:0 30px 60px -40px rgba(11,33,52,.4)}
.quotesec form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3vw,34px);box-shadow:0 30px 60px -40px rgba(11,33,52,.4)}
.contactcards{display:grid;gap:16px}
.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.stepper>div{position:relative;padding:12px 10px;border-radius:12px;background:var(--paper);font-size:14px;font-weight:500;text-align:center;transition:background .4s,color .4s,transform .4s var(--ease)}
.stepper span{display:block;font:400 22px var(--disp);letter-spacing:.04em}
.stepper>div[aria-current]{background:var(--navy);color:#fff;transform:translateY(-3px)}
.wizwrap{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(18px,3vw,36px);box-shadow:0 30px 70px -40px rgba(11,33,52,.45)}
.ship-panel h2{font-size:clamp(30px,4vw,44px)}
.ship-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.ship-fields{grid-template-columns:1fr}.stepper{grid-template-columns:repeat(2,1fr)}}
.ship-fields label{display:grid;gap:6px;font-size:14px;font-weight:500}
@media (prefers-reduced-motion:no-preference){.ship-panel:not([hidden]){animation:fadeup .5s var(--ease)}}
.ship-status{font-size:14px;color:var(--muted);margin:6px 0 0}
.ship-actions{display:flex;gap:10px;flex-wrap:wrap}
.ship-actions [data-ship-back]{background:var(--paper)}

/* ---------- GDP set points + converter ---------- */
.setpts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}
.setpts>div{border-radius:20px;padding:26px;background:linear-gradient(160deg,#0e2a42,#061420);color:#fff;position:relative;overflow:hidden}
.setpts>div::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(rgba(233,187,62,.35),transparent 70%)}
.setpts p{margin:0 0 4px;color:rgba(255,255,255,.75)}
.setpts .sk{font:600 12px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.setpts .sv{font:400 clamp(44px,5vw,64px)/1 var(--disp);color:#fff;margin:8px 0;font-variant-numeric:tabular-nums}
.setpts .sp{font-size:14px}
@media (max-width:760px){.setpts{grid-template-columns:1fr}}
.convwrap{max-width:560px}
.conv{border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--paper)}
.conv>p:first-child{font:400 22px var(--disp);letter-spacing:.04em;margin-bottom:10px}
.conv>div{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.conv label{flex:1;min-width:180px;display:grid;gap:6px;font-size:14px}
.conv button{min-height:48px;padding:0 18px;border-radius:999px;border:1.5px solid var(--navy);background:#fff;font:600 14.5px var(--body);cursor:pointer;transition:background .3s,color .3s}
.conv button:hover{background:var(--navy);color:#fff}
.conv p[aria-live]{font:400 36px var(--disp);margin:14px 0 0}

/* ---------- held wording ---------- */
.heldbox{max-width:820px;border-left:4px solid var(--gold);padding:8px 0 8px 26px}
.heldbox .held{font:400 clamp(26px,3vw,38px)/1.1 var(--disp);letter-spacing:.02em;color:var(--navy)}
.heldbox p{color:var(--muted)}
.eeo{font-size:14px;color:var(--muted);margin-top:40px;max-width:80ch}

/* ---------- prose (legal, blog) ---------- */
.docsec{padding-top:clamp(48px,6vw,80px)}
.doc{max-width:760px;margin:0 auto;font-size:17.5px}
.doc.narrow{max-width:640px}
.doc h2{font-size:clamp(30px,3.6vw,42px);margin:1.6em 0 .4em}
.doc h3{font-size:clamp(22px,2.4vw,28px);margin:1.4em 0 .35em}
.doc>h2:first-child,.doc>p:first-child{margin-top:0}
.doc p,.doc li{color:#25384a}
.doc a{color:var(--navy);text-decoration-color:var(--gold);text-underline-offset:4px;text-decoration-thickness:2px}
.doc ul,.doc ol{padding-left:1.2em}
.doc li{margin:.3em 0}
.doc .meta{font-size:14.5px;color:var(--muted)}
.doc table{width:100%;border-collapse:collapse;font-size:15px;margin:1em 0}
.doc th,.doc td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}
.doc figure,.postpic{margin:0 0 32px;border-radius:18px;overflow:hidden}
.postpic img{width:100%}
.doc form{margin-top:24px}
.doc ul:has(a h3){list-style:none;padding:0;display:grid;gap:10px}
.doc ul:has(a h3) a{display:block;border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;transition:transform .4s var(--ease),box-shadow .4s}
.doc ul:has(a h3) a:hover{transform:translateY(-3px);box-shadow:0 18px 40px -26px rgba(11,33,52,.5)}
.doc ul:has(a h3) h3{margin:4px 0}
.doc ul:has(a h3) p{margin:0;font-size:14px;color:var(--muted)}

/* ---------- Freightrix page ---------- */
.fxpage .pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
@media (max-width:1100px){.fxpage .pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.fxpage .pillars{grid-template-columns:1fr}}
.fx-pillar{border:1px solid var(--line);border-radius:18px;padding:22px;background:#fff;transition:border-color .3s,box-shadow .4s var(--ease),transform .4s var(--ease)}
.fx-pillar:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(11,33,52,.45)}
.fx-pillar.is-open{border-color:var(--gold)}
.fx-pillar>p:first-child{font:400 40px/1 var(--disp);color:var(--gold2);margin:0 0 6px}
.fx-pillar ul{margin:10px 0 0;padding-left:1.1em;font-size:15px;color:var(--muted)}
.fx-pillar li{margin:.3em 0}
.fxm .mock{border-radius:22px;background:#0e2a42;border:1px solid rgba(255,255,255,.12);padding:clamp(18px,3vw,30px);color:#fff;font-size:15px}
.fxm .mock>div{margin-bottom:14px}
.fxm .mock h3{font-size:34px;margin:6px 0}
.fxm .fx-note{font-size:13px;color:rgba(255,255,255,.7);margin:0 0 6px}
.fxm .mock>div:first-child>div:first-child span{display:inline-block;font:600 11.5px var(--body);letter-spacing:.2em;background:var(--gold);color:var(--navy);padding:4px 10px;border-radius:999px}
.fxm .mock>div:first-child>div:last-child>div{display:flex;flex-wrap:wrap;gap:8px 18px;color:rgba(255,255,255,.75)}
.frow{display:grid;grid-template-columns:130px 110px 1fr;gap:12px;padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}
.fk{color:var(--gold);font-weight:600}.ft{font-variant-numeric:tabular-nums;opacity:.75}
@media (max-width:620px){.frow{grid-template-columns:1fr 1fr}.fm{grid-column:1/-1;opacity:.85}}
@media (prefers-reduced-motion:no-preference){html.js .fxm.in .frow{animation:fadeup .7s var(--ease) both}.fxm.in .frow:nth-child(2){animation-delay:.25s}.fxm.in .frow:nth-child(3){animation-delay:.5s}.fxm.in .frow:nth-child(4){animation-delay:.75s}.fxm.in .frow:nth-child(5){animation-delay:1s}}
.fxsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:800px){.fxsteps{grid-template-columns:1fr}}
.fx-step{border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff}
.fx-step>p:first-child{font:400 40px/1 var(--disp);color:var(--gold2);margin:0 0 6px}
.fx-step p{color:var(--muted)}

/* ---------- page transitions ---------- */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:no-preference){
 ::view-transition-old(root){animation:vtout .28s var(--ease2) both}
 ::view-transition-new(root){animation:vtin .5s var(--ease) both}
}
@keyframes vtout{to{opacity:0;transform:translateY(-12px)}}
@keyframes vtin{from{opacity:0;transform:translateY(18px)}}

/* ---------- reduced motion: everything visible, nothing moves ---------- */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
 [data-par]{transform:none!important}
}

/* Ramp tables on service-area and rail sections */
.rtable{width:100%;border-collapse:collapse;font-size:15px;margin:1em 0}
.rtable th,.rtable td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line)}
.rtable thead th{font:600 12px/1.3 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line)}
.dark .rtable th,.dark .rtable td{border-bottom-color:rgba(255,255,255,.16)}
.dark .rtable thead th{color:rgba(255,255,255,.7)}


/* Req 10: tasteful motion in the existing style (transform + opacity only).
   Space for dividers is always reserved (fixed height), so CLS stays 0.
   Without JS, and under prefers-reduced-motion, everything shows statically with no transforms. */
.head .sec-div{display:block;position:relative;height:2px;width:64px;margin:10px 0 16px;background:var(--gold);border-radius:1px;pointer-events:none;box-shadow:0 0 10px 1px rgba(233,187,62,.42)}
html.js .head .sec-div{transform:scaleX(0);transform-origin:left center;opacity:0}
html.js.rv-ready .head.rv.in .sec-div{transform:scaleX(1);opacity:1;transition:transform .7s var(--ease),opacity .45s var(--ease)}

.prose.doc h2{position:relative}
.prose.doc h2::after{content:"";display:block;height:2px;width:48px;margin:10px 0 0;background:var(--gold);border-radius:1px;pointer-events:none}
html.js .prose.doc h2::after{transform:scaleX(0);transform-origin:left center;opacity:0}
html.js.rv-ready .prose.doc.rv.in h2::after{transform:scaleX(1);opacity:1;transition:transform .7s var(--ease),opacity .45s var(--ease)}

@media (hover:hover){
  article.card{transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
  article.card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -32px rgba(11,33,52,.4)}
  .chips li:not(:has(a)):hover{transform:translateY(-2px);transition:transform .35s var(--ease)}
}
@media (prefers-reduced-motion:reduce){
  .head .sec-div, html.js .head .sec-div,
  .prose.doc h2::after, html.js .prose.doc h2::after{transform:none!important;opacity:1;transition:none}
  article.card:hover, a.card:hover,
  .chips li:hover, .chips a:hover{transform:none!important}
}


/* ---------- coverage globe layout (intro / map / panel) ---------- */
.cov-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"copy map" "panel map";gap:clamp(20px,3.5vw,40px) clamp(24px,4.5vw,56px);align-items:start}
.cov-copy{grid-area:copy;min-width:0}
.cov-copy h2,.cov-copy h3{margin-bottom:.35em}
.map-col{grid-area:map;min-width:0;width:100%}
.cov-panel{grid-area:panel;min-width:0}
@media (max-width:900px){
  .cov-layout{grid-template-columns:1fr;grid-template-areas:"copy" "map" "panel";gap:16px}
  .cov-controls{gap:8px;margin:8px 0 0}
  .cov-filters{gap:6px}
  .cov-chip{padding:4px 10px;font-size:12.5px}
  .cov-hint{margin:8px 0 10px}
  .cov-ctas{margin:4px 0 6px}
  .cov-zoom,.cov-reset{height:36px}
  .cov-zoom{width:36px}
  .ph-motion{-webkit-mask-image:radial-gradient(ellipse 90% 56% at 40% 80%,transparent 16%,#000 72%);mask-image:radial-gradient(ellipse 90% 56% at 40% 80%,transparent 16%,#000 72%)}
}

/* Navy halo behind home hero copy so lanes wrap around letters, never sit on them. CLS 0 (absolute). */
.hero-copy{position:relative;z-index:2}

/* Reserved well for the HQ network at narrow widths (Andrew t1681u).
   The right-side network is recomposed into this band, below the copy and
   above Freightrix, instead of sitting behind the H1. Height is reserved
   from first paint (CLS 0). Desktop hides the well so the two-column grid
   is unchanged. */
.hero-network-well{display:none;pointer-events:none}
@media (max-width:900px){
  .hero-in{grid-template-areas:"well" "copy" "track";grid-template-columns:1fr}
  .hero-copy{grid-area:copy}
  .hero-network-well{display:block;grid-area:well;height:clamp(140px, 28svh, 240px);min-height:140px;width:100%}
  .trackwrap{grid-area:track}
  /* Until JS pins .hero-motion onto the well, do not paint gold on the copy. */
  html.js .hero:not(.hero-ready) .hero-motion{opacity:0}
  html.js .hero.hero-ready .hero-motion{opacity:1}
}

.hero-copy::before{content:"";position:absolute;inset:-48px -56px -56px -40px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 92% 88% at 28% 42%,rgba(6,20,32,.93) 0%,rgba(6,20,32,.8) 38%,rgba(6,20,32,0) 76%)}
.ctain{position:relative;z-index:1}

/* ---------- gold illuminations (hover / reveal only; CTA .glow stays the one ambient) ---------- */
.head .sec-div::after{content:"";position:absolute;inset:-10px -20px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(233,187,62,.5),transparent 72%);opacity:0}
html.js.rv-ready .head.rv.in .sec-div::after{opacity:1;transition:opacity .9s var(--ease)}
.prose.doc h2::after{box-shadow:0 0 10px 1px rgba(233,187,62,.42)}

.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;
  box-shadow:inset 0 0 0 1.5px var(--gold),inset 0 0 22px -8px rgba(233,187,62,.55);opacity:0;
  transition:opacity .45s var(--ease)}
@media (hover:hover){
  .card:hover::after,a.card:focus-visible::after{opacity:1}
}

@media (prefers-reduced-motion:no-preference){
  /* One gold sweep on primary CTAs at reveal; hover shimmer (.btn::after translateX) is unchanged. No forwards, so hover still starts off-canvas. */
  .hero .btn.gold::after,.ph .btn.gold::after,
  html.js.rv-ready .in .btn.gold::after{animation:goldsweep .95s var(--ease) .45s 1}
}
@keyframes goldsweep{from{transform:translateX(-120%)}to{transform:translateX(120%)}}

@media (prefers-reduced-motion:reduce){
  .head .sec-div::after,html.js .head .sec-div::after{opacity:.55;transition:none}
  .card::after{transition:none}
  .hero .btn.gold::after,.ph .btn.gold::after,
  html.js.rv-ready .in .btn.gold::after{animation:none}
}

/* ---------- gold circular trust badges (FNS redraw; no government seals) ---------- */
.tbadge-row{display:flex;flex-wrap:wrap;gap:18px 28px;list-style:none;margin:0;padding:0;align-items:flex-start;justify-content:flex-start}
.tbadge-row>li{margin:0;padding:0}
.tbadge{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:inherit;max-width:148px;text-align:center}
.tbadge-svg{width:112px;height:112px;display:block;overflow:visible}
.tbadge-compact .tbadge-svg{width:76px;height:76px}
.tbadge-label{font:600 12px/1.3 var(--body);letter-spacing:.01em;color:var(--navy);text-wrap:balance}
.dark .tbadge-label,.foot .tbadge-label{color:#fff}
.tbadge-tip{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sec.tight.tbadge-sec{padding:clamp(24px,3.5vw,40px) 0 clamp(8px,1.6vw,16px)}
.foot .tbadge-row,.ftrust .tbadge-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px 28px;align-items:flex-start}
.ftrust .tbadge-label{font-size:11px;color:rgba(255,255,255,.9);max-width:110px}
/* Gold on navy in the seal itself: #e9bb3e on #0b2134 is ~9.7:1. Caption on paper uses navy; on the footer, white. */

.tbadge-kept .tbadge-img{width:112px;height:auto;display:block;max-width:100%}
.tbadge-kept{max-width:148px}
@media (max-width:390px){
  .tbadge-kept .tbadge-img{width:100px}
  .tbadge-kept .tbadge-svg{width:100px;height:100px}
}

