:root{--bg:#121A24;--bg2:#17202B;--surf:#1C2633;--surf2:#24303F;--line:rgba(255,255,255,.12);--line2:rgba(255,255,255,.22);--text:#FFFFFF;--mute:#9A9A9A;--acc:#FFFFFF;--acc2:#D9D9D9;--paper:#F4F4F2;--ink:#0A0A0A;--ink2:#4A4A4A;--disp:'Inter Tight','Inter',system-ui,'Segoe UI',Arial,sans-serif;--sans:'Inter',system-ui,'Segoe UI',Arial,sans-serif;--ease:cubic-bezier(.2,.7,.2,1);box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;background:#050505;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 90px)}
/* buttons and button-like links: no blue tap flash from the browser, and a tap, long-press or double-click does not select the label */
html{-webkit-tap-highlight-color:transparent}
button,[role=button],summary,.btn,.pill,.chip,.pbtn,.pr-btn,.sv-cta,.kbd,.menu-btn,.nav a,.mega a,.fi a,.pv-chip,.pv-go,.pp-back,.lab-back,.lab-nav a,.pdoc,.tag,.dd-dots button,.pp-ch button,.st-tabs button{-webkit-user-select:none;user-select:none}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:95;opacity:.045;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
h1,h2,h3,h4,p,ul,figure{margin:0}
ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img{display:block;max-width:100%}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
h1,h2,h3{font-family:var(--disp);font-weight:300;letter-spacing:-.045em;line-height:1;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.4vw,5.2rem);line-height:.98}
h2{font-size:clamp(2.3rem,5.6vw,5rem)}
h3{font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.1}
h4{font-size:1rem;font-weight:600}
em{font-style:normal;color:#F2B45E;background:linear-gradient(100deg,#F8D18A,#EE9C45);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
p{text-wrap:pretty}
.lead{font-size:clamp(1.1rem,1.5vw,1.35rem);line-height:1.55;color:var(--mute);max-width:52ch}
.mute{color:var(--mute)}.small{font-size:.875rem}.label{font-size:.8125rem;color:var(--mute);letter-spacing:.01em}
.wrap{max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
#gl{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block;transition:opacity 1s ease}
#app{position:relative;z-index:2;min-height:100vh;min-height:100svh}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:#fff;color:#000;padding:10px 16px;border-radius:8px}.skip:focus{top:calc(env(safe-area-inset-top,0px) + 12px)}

/* header */
.hdr{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:80;transition:background .4s,border-color .4s,transform .5s var(--ease);border-bottom:1px solid transparent}
.hdr.solid{background:rgba(18,26,36,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-color:var(--line)}
.hdr.hide{transform:translateY(-100%)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.brand{display:flex;align-items:center;gap:14px}
.brand b{font-family:var(--disp);font-weight:600;font-size:1.7rem;letter-spacing:-.02em;line-height:1}
.brand sup{font-size:.55rem;margin-left:2px;vertical-align:top}
.brand span{font-size:.72rem;line-height:1.3;color:var(--mute);max-width:130px;border-left:1px solid var(--line2);padding-left:14px}
.nav{display:flex;align-items:center;gap:4px}
.nav a,.nav button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;font-size:.95rem;color:#D4D4D4;transition:background .25s,color .25s}
.nav a:hover,.nav button:hover,.nav a[aria-current=page]{background:rgba(255,255,255,.08);color:#fff}
.hdr-r{display:flex;align-items:center;gap:10px}
.kbd{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--line2);border-radius:999px;font-size:.85rem;color:var(--mute);transition:border-color .25s,color .25s}
.kbd:hover{color:#fff;border-color:#fff}
.kbd kbd{font:inherit;font-size:.75rem;border:1px solid var(--line2);border-radius:6px;padding:1px 6px}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;font-weight:500;font-size:1rem;border:1px solid transparent;transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease);will-change:transform}
.btn.p{background:#fff;color:#050505}.btn.p:hover{background:var(--acc2)}
.btn.g{border-color:var(--line2);color:#fff}.btn.g:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn.d{background:var(--ink);color:#fff}.btn.d:hover{background:#262626}
.btn.o{border-color:var(--ink);color:var(--ink)}.btn.o:hover{background:var(--ink);color:#fff}
.btn svg{width:16px;height:16px;transition:transform .3s var(--ease)}.btn:hover svg{transform:translateX(4px)}
.menu-btn{display:none;min-height:44px;min-width:44px;border:1px solid var(--line2);border-radius:999px;align-items:center;justify-content:center}
.mega{position:absolute;left:0;right:0;top:100%;background:rgba(8,8,8,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s,transform .4s var(--ease),visibility .3s}
.mega.open{opacity:1;visibility:visible;transform:none}
.mega-in{display:grid;grid-template-columns:1fr 2fr;gap:56px;padding:40px 0 48px}
.mega-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px}
.mega-list a{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-bottom:1px solid var(--line)}
.mega-list a b{font-family:var(--disp);font-weight:400;letter-spacing:-.03em;font-size:1.5rem;line-height:1.1}
.mega-list a span{font-size:.9rem;color:var(--mute)}
.mega-list a:hover b{color:var(--acc2)}

/* reveal */
[data-r]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
[data-r].in{opacity:1;transform:none}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.24em;margin-bottom:-.24em}
.split .w>i{display:inline-block;font-style:inherit;transform:translateY(135%);transition:transform 1.1s var(--ease);transition-delay:calc(var(--i)*55ms)}
.split.in .w>i{transform:none}


/* sections */
.sec{position:relative;padding:clamp(64px,7.5vw,112px) 0}
.sec.dark{background:var(--bg)}.sec.dark2{background:var(--bg2)}
.sec.paper{background:var(--paper);color:var(--ink)}
.sec.paper .lead,.sec.paper .mute,.sec.paper .label{color:var(--ink2)}
.sec.paper em{color:#C96A1B;background:linear-gradient(100deg,#E7922F,#C4601A);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.sec-h{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:clamp(32px,4vw,56px)}
.sec-h .lead{max-width:62ch}
.sec-h h2,.cert-h h2{font-size:clamp(2.3rem,4.4vw,4.2rem)}
.policy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:48px}
.pol{display:flex;gap:24px;align-items:center;background:#fff;border:1px solid rgba(11,37,64,.1);border-radius:20px;padding:28px}
.pol-a{flex:none;width:88px;height:88px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:1.6rem;font-weight:500;letter-spacing:.02em;color:#0E7FD6;background:#EAF4FC}
.pol h3{font-size:clamp(1.35rem,1.9vw,1.7rem);margin-bottom:8px}
.pol-a.logo{width:150px;height:auto;padding:12px;background:#fff;border:1px solid rgba(11,37,64,.1)}.pol-a.logo img{display:block;width:100%;height:auto}
.pol-s{display:block;font-size:.84rem;color:#5B7A92;margin:-2px 0 8px;line-height:1.45}
@media (min-width:761px) and (max-width:1180px){.pol{flex-direction:column;align-items:flex-start}}
.pol p{color:var(--mute);font-size:.98rem;max-width:44ch}
@media (max-width:760px){.policy{grid-template-columns:1fr}.pol{padding:20px;gap:16px;flex-direction:column;align-items:flex-start}.pol-a{width:64px;height:64px;font-size:1.2rem}}

.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:clamp(.82rem,.9vw,.92rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--acc2);margin-bottom:26px;padding:8px 16px 8px 14px;border:1px solid currentColor;border-radius:999px;line-height:1}
.eyebrow::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}


/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:72px 0 0}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,26,36,.82) 0,rgba(18,26,36,.5) 42%,rgba(18,26,36,0) 72%);pointer-events:none}
.hero .wrap,.phead .wrap{position:relative;width:100%}
.hero .wrap{flex:1;display:flex;align-items:center}
.hero h1{max-width:20ch;margin:0;text-align:left}
.hero .marq{position:relative;background:rgba(18,26,36,.55);border-block:1px solid rgba(255,255,255,.16)}
.hero-sub{display:flex;flex-direction:column;gap:24px;max-width:640px;padding-bottom:40px}
.who{display:flex;flex-direction:column;gap:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:42px;padding:0 18px;border:1px solid var(--line2);border-radius:999px;font-size:.92rem;color:#D4D4D4;transition:all .3s var(--ease)}
.chip:hover{border-color:#fff;color:#fff}
.chip[aria-pressed=true]{background:#fff;color:#050505;border-color:#fff}
.who-out{min-height:6.6em;transition:opacity .35s,transform .5s var(--ease)}
.who-out.swap{opacity:0;transform:translateY(8px)}
.who-out p{font-size:1.3rem;line-height:1.45;color:#fff;max-width:36ch}
.who-out a{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:var(--acc2);border-bottom:1px solid currentColor;padding-bottom:2px}
.facts{position:relative;border-top:1px solid var(--line);background:rgba(18,26,36,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.facts-g{display:grid;grid-template-columns:repeat(4,1fr)}
.fact{padding:26px 24px 26px 0;display:flex;flex-direction:column;gap:2px}
.fact+.fact{padding-left:24px;border-left:1px solid var(--line)}
.fact b{font-family:var(--disp);font-weight:400;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05}
.fact span{font-size:.9rem;color:var(--mute)}
.scrollcue{position:absolute;right:clamp(20px,4vw,56px);bottom:150px;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:.75rem;color:var(--mute);writing-mode:vertical-rl}
.scrollcue::after{content:'';width:1px;height:56px;background:linear-gradient(var(--mute),transparent);animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* pinned scenes */
.scene{position:relative;height:340vh}
.scene-in{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;overflow:hidden}
.scene-in::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,26,36,.86) 0,rgba(18,26,36,.55) 40%,rgba(18,26,36,0) 70%);pointer-events:none}
.scene-in .wrap{position:relative;width:100%}
.cap-stack{position:relative;max-width:520px;min-height:300px}
.cap-item{position:absolute;left:0;top:0;opacity:0;transform:translateY(18px);transition:opacity .6s,transform .8s var(--ease);pointer-events:none}
.cap-item.on{opacity:1;transform:none;pointer-events:auto}
.scene:not([data-scene=layers]) .cap-item{top:calc(50% - 3vh);transform:translateY(calc(-50% + 18px))}
.scene:not([data-scene=layers]) .cap-item.on{transform:translateY(-50%)}
.cap-item h2{font-size:clamp(2.2rem,5vw,4.4rem);margin-bottom:18px}
.cap-item p{color:#C8C8C8;font-size:1.15rem;max-width:40ch}
.cap-item .tag{display:inline-block;margin-bottom:18px;font-size:.85rem;color:var(--acc2)}
.gauge{position:absolute;right:clamp(20px,4vw,56px);top:50%;transform:translateY(-50%);height:min(56vh,460px);display:flex;gap:14px;align-items:stretch}
.gauge-bar{position:relative;width:2px;background:var(--line2)}
.gauge-fill{position:absolute;left:-1px;right:-1px;bottom:0;background:var(--acc);height:0}
.gauge-t{display:flex;flex-direction:column-reverse;justify-content:space-between;font-size:.8rem;color:var(--mute);text-align:left}
.gauge-t span{transition:color .3s}.gauge-t span.on{color:#fff}
.scene-prog{position:absolute;left:clamp(20px,4vw,56px);bottom:36px;display:flex;gap:6px}
.scene-prog i{width:34px;height:2px;background:var(--line2);position:relative;overflow:hidden}
.scene-prog i b{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.scene-btn{margin-top:26px}
.lay-list{position:absolute;right:clamp(20px,4vw,56px);top:50%;transform:translateY(-50%);width:min(330px,38vw);display:flex;flex-direction:column-reverse;border-bottom:1px solid var(--line);padding:6px 20px;border-radius:18px;background:rgba(18,26,36,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lay-list button{display:flex;flex-direction:column;gap:2px;text-align:left;padding:14px 0;border-top:1px solid var(--line);opacity:.5;transition:opacity .3s}
.lay-list button.on,.lay-list button:hover{opacity:1}.lay-list button{opacity:.25}.lay-list button.done{opacity:.5}.lay-list button.on{opacity:1}.lay-list button.on b{color:#5EB2FF}
.cert-h{margin-top:56px;padding-top:40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}.cert-h h2{margin:0;max-width:16ch}.cert-h p{max-width:46ch;margin:0}
.certs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:48px}
.cert{margin:0;display:flex;flex-direction:column;gap:14px}
.cert-logo{height:clamp(112px,11vw,150px);overflow:hidden;background:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;padding:18px;transition:transform .4s var(--ease),box-shadow .4s}
.cert-logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.cert:hover .cert-logo{transform:translateY(-4px);box-shadow:0 16px 40px rgba(94,178,255,.18)}
.cert figcaption{display:flex;flex-direction:column;gap:2px}.cert figcaption b{font-weight:500}.cert figcaption span{font-size:.85rem;color:var(--mute)}
@media (max-width:1000px){.certs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.certs{grid-template-columns:repeat(2,minmax(0,1fr))}}

.iso{position:absolute;right:clamp(16px,4vw,64px);top:50%;transform:translateY(-46%);width:min(52vw,640px);height:min(84vh,640px);pointer-events:none}
.iso-l{position:absolute;left:0;right:0;top:50%;height:0;transform:translateY(var(--y,0px));opacity:var(--o,0);transition:transform .7s var(--ease),opacity .5s}
.iso-p{position:absolute;left:8%;width:36%;aspect-ratio:1;top:0;transform:translateY(-50%) rotateX(60deg) rotateZ(-45deg);border-radius:6px;overflow:hidden;outline:1px solid rgba(255,255,255,.28);box-shadow:0 30px 40px -10px rgba(0,0,0,.85);filter:brightness(var(--b,1)) saturate(var(--b,1));transition:filter .4s,outline-color .4s}
.iso-p img{width:100%;height:100%;object-fit:cover;display:block}
.iso-l.act .iso-p{outline:2px solid #5EB2FF;box-shadow:0 0 0 6px rgba(94,178,255,.18),0 30px 40px -10px rgba(0,0,0,.85)}
.iso-lab{pointer-events:auto;position:absolute;left:56%;top:0;transform:translateY(-50%);display:flex;align-items:center;gap:14px;text-align:left;opacity:var(--lo,.5);transition:opacity .4s}
.iso-lab::before{content:'';position:absolute;right:calc(100% + 10px);top:50%;width:clamp(16px,4vw,52px);border-top:1px dashed rgba(255,255,255,.4)}
.iso-lab i{font-style:normal;font-size:.8rem;color:var(--mute);border:1px solid var(--line2);border-radius:999px;padding:3px 8px}
.iso-lab span{display:flex;flex-direction:column;gap:2px}.iso-lab b{font-family:var(--disp);font-weight:400;font-size:1.3rem;line-height:1.1}.iso-lab small{font-size:.82rem;color:var(--mute)}
.iso-l.act .iso-lab b{color:#5EB2FF}.iso-l.act .iso-lab i{border-color:#5EB2FF;color:#BFE0FF}
.scene[data-scene=layers] .scene-in{background:var(--bg)}
@media (max-width:1000px){.scene[data-scene=layers] .scene-in{align-items:flex-start;padding-top:96px}.iso{left:16px;right:16px;width:auto;top:auto;bottom:2vh;transform:none;height:62vh}.iso-p{left:4%;width:42%}.iso-lab{left:66%;gap:8px}.iso-lab::before{width:10px}.iso-lab b{font-size:1rem}.iso-lab small{display:none}.scene[data-scene=layers] .cap-stack{min-height:0}.scene[data-scene=layers] .cap-item p{display:none}.scene[data-scene=layers] .scene-note{display:none}}

.lay-card{position:absolute;right:clamp(16px,4vw,64px);top:50%;transform:translateY(-50%);width:min(390px,27vw);background:#1A2430;border:1px solid var(--line2);border-radius:22px;padding:14px;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.lc{display:none}.lc.on{display:block;animation:lcIn .45s var(--ease)}
@keyframes lcIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.lc-map{aspect-ratio:1;border-radius:14px;overflow:hidden;background:#1a1a1a}.lc-map img{width:100%;height:100%;object-fit:cover;display:block}
.lc-t{padding:16px 6px 6px}.lc-t i{font-style:normal;font-size:.78rem;color:#5EB2FF;letter-spacing:.06em}.lc-t h3{margin:6px 0 4px;font-size:1.35rem}.lc-t p{margin:0 0 12px;color:var(--mute);font-size:.9rem}
.lg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;font-size:.82rem;color:#D4D4D4}.lg li{display:flex;align-items:center;gap:8px}
.sw{width:14px;height:14px;border-radius:4px;flex:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.sw.line{background:repeating-linear-gradient(0deg,transparent 0 3px,#bbb 3px 4px)}
.sw.pipe{height:6px;border-radius:3px;background:#2C78DD;box-shadow:0 0 0 1.5px #0B2A55}
.sw.pipeT{height:9px;border-radius:5px;background:#2C78DD;box-shadow:0 0 0 1.5px #0B2A55}
.sw.mh{border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px #0B2A55}
@media (min-width:1101px){.scene[data-scene=layers] .cap-stack{max-width:min(380px,27vw)!important}.iso{right:auto;left:max(37vw,calc(50vw - 200px));width:31vw;transform:translateY(-50%)}.iso-p{left:10%;width:40%}.iso-lab{left:62%}.iso-lab small{display:none}.iso-lab b{font-size:1.1rem}}
@media (max-width:1100px){.lay-card{display:none}}
.scene[data-scene=layers] .scene-note{bottom:22px}
.iso-m{position:absolute;left:0;right:0;top:50%;height:0;opacity:var(--o,0);transition:opacity .5s;pointer-events:none}
.iso-m .iso-p{outline:2px solid #5EB2FF;box-shadow:0 0 0 8px rgba(94,178,255,.16),0 0 60px rgba(94,178,255,.35),0 40px 50px -10px rgba(0,0,0,.9)}
.iso-m .iso-lab{opacity:1}.iso-m.gl3d .iso-p,.iso-m.gl3d .iso-lab{visibility:hidden}
@media (min-width:1001px){.scene[data-scene=layers] .cap-item{top:calc(50% - 3vh);transform:translateY(calc(-50% + 18px))}.scene[data-scene=layers] .cap-item.on{transform:translateY(-50%)}}
.iso-m .iso-lab b{color:#5EB2FF}.iso-m .iso-lab i{border-color:#5EB2FF;color:#BFE0FF}
.lay-now{margin-top:22px;display:inline-flex;padding:8px 16px;border-radius:999px;border:1px solid rgba(94,178,255,.5);color:#BFE0FF;font-size:.92rem;min-height:1em}.lay-now:empty{display:none}
.lay-list b{font-family:var(--disp);font-weight:400;font-size:1.45rem;line-height:1.15}
.lay-list span{font-size:.88rem;color:var(--mute)}
.scene-note{position:absolute;left:clamp(20px,4vw,56px);bottom:70px;font-size:.78rem;color:var(--mute);max-width:36ch}

/* marquee */
.marq{overflow:hidden;border-block:1px solid var(--line);background:var(--bg2)}
.marq-t{display:inline-flex;white-space:nowrap;padding:26px 0;animation:marq 52s linear infinite}
.marq-t span{display:inline-flex;align-items:center;gap:48px;padding-right:48px;font-family:var(--disp);font-size:clamp(1.6rem,3vw,2.6rem)}
.marq-t span::after{content:'';width:9px;height:9px;border-radius:50%;background:var(--acc)}
@keyframes marq{to{transform:translateX(-25%)}}

/* bento */
.dx{display:flex;gap:12px;height:clamp(460px,64vh,600px)}
.dx-p{position:relative;flex:1 1 0;min-width:0;border-radius:22px;overflow:hidden;background:linear-gradient(165deg,var(--c),#0D1B29 92%);color:#fff;text-decoration:none;isolation:isolate;transition:flex-grow .75s var(--ease),box-shadow .4s;outline-offset:3px}
.dx-p.on{flex-grow:5.4;box-shadow:0 24px 50px rgba(11,37,64,.22)}
.dx-art{position:absolute;inset:0;z-index:-1;background:linear-gradient(165deg,var(--c),#0D1B29 92%)}
.dx-art svg{position:absolute;left:50%;top:4%;height:64%;width:auto;aspect-ratio:400/520;transform:translateX(-50%);opacity:.42;transition:opacity .6s,left .75s var(--ease),transform .75s var(--ease)}
.dx-p.on .dx-art svg{opacity:.75;left:62%;transform:translateX(-50%) scale(1.06)}
@media (max-width:900px){.dx-art svg{top:0;height:100%}.dx-p.on .dx-art svg{left:68%;height:52%}}
.dx-p{cursor:pointer}.dx-p.on{cursor:default}
.dx-b .go:hover{text-decoration:underline;text-underline-offset:4px}
.dx-art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,30,0) 30%,rgba(8,18,30,.86))}
.dx-n{position:absolute;top:22px;left:22px;font-size:.82rem;font-weight:600;letter-spacing:.12em;padding:6px 10px;border:1px solid rgba(255,255,255,.35);border-radius:999px;line-height:1}
.dx-v{position:absolute;left:50%;bottom:28px;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;font-family:var(--disp);font-size:1.4rem;font-weight:300;letter-spacing:-.01em;white-space:nowrap;transition:opacity .3s}
.dx-p.on .dx-v{opacity:0}
.dx-b{position:absolute;left:0;bottom:0;width:max(100%,440px);padding:34px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;opacity:0;transform:translateY(18px);transition:opacity .3s,transform .5s var(--ease);pointer-events:none}
.dx-p.on .dx-b{opacity:1;transform:none;transition-delay:.28s;pointer-events:auto}
.dx-b h3{font-size:clamp(2rem,3vw,2.8rem);color:#fff}
.dx-b p{color:rgba(255,255,255,.84);max-width:44ch;font-size:1.05rem;line-height:1.5}
.dx-b .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.home #app .dx .tag,.dx .tag{color:#E6EEF5;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);border-radius:999px;padding:5px 12px;font-size:.82rem}
.dx-b .go{display:inline-flex;align-items:center;gap:8px;color:#9FD6FF;font-weight:500}
@media (max-width:900px){.dx{flex-direction:column;height:auto;gap:10px}.dx-p{flex:none;height:72px;transition:height .6s var(--ease)}.dx-p.on{height:420px}.dx-n{top:20px;left:18px}.dx-v{writing-mode:horizontal-tb;transform:none;left:72px;top:21px;bottom:auto;font-size:1.25rem}.dx-b{width:100%;padding:24px}}
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(220px,auto);gap:14px}
.card{position:relative;overflow:hidden;border-radius:22px;background:var(--surf);border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;transition:border-color .4s,transform .6s var(--ease)}
.card::before{content:'';position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.07),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover{border-color:var(--line2)}.card:hover::before{opacity:1}
a.card:hover{transform:translateY(-4px)}
.card h3{font-size:clamp(1.7rem,2.6vw,2.4rem)}
.card .tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;font-size:.8rem;color:#C8C8C8}
.b-h{grid-column:span 6}.b-lg{grid-column:span 7;grid-row:span 2}.b-md{grid-column:span 5}.b-sm{grid-column:span 4}.b-w{grid-column:span 8}
.card .art{position:absolute;inset:0;opacity:.9;pointer-events:none}
.card .art img{width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform 1.4s var(--ease),opacity .6s}
.card:hover .art img{transform:scale(1.05);opacity:.75}
.card .art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,24,36,.2) 0,rgba(14,24,36,.92) 78%)}
.card>*:not(.art){position:relative}
.card .go{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:var(--acc2)}

/* flow */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative}
.flow>div{padding:0 40px 0 0;position:relative}
.flow>div::before{content:'';display:block;height:1px;background:var(--line2);margin-bottom:28px;transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease) .2s}
.flow>div.in::before{transform:none}
.flow .n{font-family:var(--disp);font-size:3.4rem;line-height:1;color:var(--acc2);display:block;margin-bottom:16px}
.flow h3{margin-bottom:12px;font-size:1.7rem}
.flow p{color:var(--mute)}
.sec.paper .flow>div::before{background:rgba(11,21,32,.25)}
.sec.paper .flow .n{color:#0A0A0A}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:80px}
.trio h4{margin-bottom:12px}
.trio li{padding:11px 0;border-top:1px solid var(--line);color:var(--mute);font-size:.98rem}
.sec.paper .trio li{border-color:rgba(11,21,32,.14);color:var(--ink2)}

/* horizontal platforms */
.hs{position:relative;height:520vh}
.hs-in{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:40px;background:var(--bg2)}
.hs-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.hs-track{display:flex;gap:22px;padding:0 clamp(20px,4vw,56px);will-change:transform}
.pcard{flex:0 0 min(78vw,860px);height:min(62vh,540px);display:grid;grid-template-columns:1.1fr 1fr;border-radius:26px;overflow:hidden;background:var(--surf);border:1px solid var(--line)}
.pcard .pv{position:relative;overflow:hidden;background:#0A0A0A}
.pcard .pv img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.pcard:hover .pv img{transform:scale(1.05)}
.pcard .pt{padding:34px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.pcard h3{font-size:clamp(1.9rem,3vw,2.8rem)}
.pcard .host{font-size:.82rem;color:var(--mute)}
.hs-dots{display:flex;gap:6px;padding:0 clamp(20px,4vw,56px)}
.hs-dots i{height:2px;flex:1;background:var(--line2);position:relative;overflow:hidden}
.hs-dots i b{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}

/* explorer */
.xp{display:grid;grid-template-columns:minmax(260px,.8fr) 1.6fr;gap:clamp(32px,6vw,96px);align-items:start}
.xp-l{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.xp-l button{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;min-height:58px;padding:12px 4px 12px 0;border-bottom:1px solid var(--line);color:var(--mute);font-size:1.02rem;transition:color .3s,padding .4s var(--ease)}
.xp-l button:hover{color:#fff}
.xp-l button[aria-selected=true]{color:#fff;padding-left:14px}
.xp-l button i{font-style:normal;width:7px;height:7px;border-radius:50%;background:var(--acc);opacity:0;transition:opacity .3s}
.xp-l button[aria-selected=true] i{opacity:1}
.xp-r{min-height:420px}
.xp-p{animation:fadeup .7s var(--ease)}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.xp-p h3{font-size:clamp(2rem,4vw,3.4rem);margin-bottom:28px}
.xl{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.xl li{padding:13px 0;border-top:1px solid var(--line);font-size:1rem}
.sec.paper .xp-l,.sec.paper .xp-l button,.sec.paper .xl li{border-color:rgba(11,21,32,.16)}
.sec.paper .xp-l button{color:var(--ink2)}.sec.paper .xp-l button:hover,.sec.paper .xp-l button[aria-selected=true]{color:var(--ink)}
.sec.paper .xp-l button i{background:#0A0A0A}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.pill{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 20px;border:1px solid var(--line2);border-radius:999px;font-size:.95rem;transition:all .3s}
.pill:hover{background:#fff;color:#050505;border-color:#fff}
.sec.paper .pill{border-color:rgba(11,21,32,.3)}.sec.paper .pill:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* proof */
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.proof>div{display:flex;flex-direction:column;gap:12px}
.proof-img{height:clamp(170px,16vw,220px);background:#fff;border-radius:20px;display:flex;align-items:center;justify-content:center;padding:20px;margin-bottom:12px;transition:transform .4s var(--ease),box-shadow .4s}.proof-img img{max-width:100%;max-height:100%;object-fit:contain;display:block}.proof>div:hover .proof-img{transform:translateY(-4px);box-shadow:0 16px 40px rgba(94,178,255,.18)}
.proof .when{font-size:.9rem;color:var(--acc2)}
.proof h3{font-size:clamp(1.5rem,2.3vw,2rem)}
.proof p{color:var(--mute);font-size:.98rem}

/* closing */
.close{min-height:92vh;display:flex;align-items:center;text-align:center;background:var(--bg)}
.close h2{font-size:clamp(2.4rem,6vw,5.8rem);max-width:16ch;margin:0 auto 36px}
.close .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.close .contact{margin-top:44px;color:var(--mute);line-height:1.8}

/* page head */
.phead{position:relative;min-height:78vh;min-height:78svh;display:flex;align-items:flex-end;padding:140px 0 72px}
.phead::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,26,36,.88) 0,rgba(18,26,36,.5) 45%,rgba(18,26,36,0) 75%),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,0) 30%);pointer-events:none}

.phead h1{font-size:clamp(2.8rem,6.6vw,6.2rem);max-width:14ch;margin-bottom:26px}
.phead .lead{margin-bottom:30px;color:#BDBDBD}
.crumb{display:flex;gap:10px;font-size:.88rem;color:var(--mute);margin-bottom:26px}.crumb a:hover{color:#fff}
.btns{display:flex;gap:12px;flex-wrap:wrap}

/* generic */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px)}
.vcard{padding:32px;border:1px solid var(--line);border-radius:22px;background:var(--surf);display:flex;flex-direction:column;gap:14px}
.vcard h3{font-size:1.9rem}.vcard p{color:var(--mute)}
.sec.paper .vcard{background:#fff;border-color:rgba(11,21,32,.1)}.sec.paper .vcard p{color:var(--ink2)}
.kv{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}
.kv>div{padding:30px 24px 30px 0;display:flex;flex-direction:column;gap:6px}
.kv>div+div{padding-left:24px;border-left:1px solid var(--line)}
.kv span{font-size:.85rem;color:var(--mute)}.kv b{font-family:var(--disp);font-weight:400;font-size:1.6rem;line-height:1.15}
.rows>div{display:grid;grid-template-columns:1fr 1.3fr;gap:24px 64px;padding:44px 0;border-top:1px solid var(--line)}
.rows h3{margin-bottom:12px}.rows p{color:var(--mute);max-width:40ch}
.ll li{padding:13px 0;border-bottom:1px solid var(--line);font-size:1.02rem}.ll li:first-child{border-top:1px solid var(--line)}
.sec.paper .ll li,.sec.paper .rows>div{border-color:rgba(11,21,32,.15)}
.cols2{columns:2;column-gap:40px}.cols2 li{break-inside:avoid}
.tbl{width:100%;border-collapse:collapse;text-align:left}
.tbl th,.tbl td{padding:18px 20px 18px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:.98rem}
.tbl th{font-weight:500;color:var(--mute);font-size:.85rem;border-bottom:1px solid var(--line2)}
.tbl td:first-child{font-family:var(--disp);font-size:1.5rem;line-height:1.1}
.scroll-x{overflow-x:auto}
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plan{padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--surf);display:flex;flex-direction:column;gap:20px}
.plan h3{font-size:2rem}.plan .pr{font-size:.85rem;color:var(--mute)}
.plan li{padding:10px 0;border-top:1px solid var(--line);font-size:.92rem;color:#C8C8C8;display:flex;justify-content:space-between;gap:12px}
.plan li span:first-child{color:var(--mute)}
.ph{display:flex;flex-direction:column;gap:12px}
.ph>div{aspect-ratio:4/3;border:1px dashed var(--line2);border-radius:18px;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;color:var(--mute);font-size:.95rem}
.sec.paper .ph>div{border-color:rgba(11,21,32,.3);color:var(--ink2)}
.dash{border:1px dashed var(--line2);border-radius:18px;padding:30px;text-align:center;color:var(--mute);font-size:.95rem}
.sec.paper .dash{border-color:rgba(11,21,32,.3);color:var(--ink2)}
.acc>div{border-bottom:1px solid var(--line)}.acc>div:first-child{border-top:1px solid var(--line2)}
.acc button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:24px;text-align:left;padding:26px 0;font-family:var(--disp);font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.12}
.acc button i{font-style:normal;font-family:var(--sans);font-size:1.6rem;color:var(--acc);transition:transform .4s var(--ease)}
.acc [aria-expanded=true] i{transform:rotate(45deg)}
.acc .pn{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.acc .pn>div{overflow:hidden}.acc .open .pn{grid-template-rows:1fr}
.acc .pn ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));column-gap:40px;padding-bottom:30px}
.acc .pn li{padding:11px 0;border-top:1px solid var(--line);color:var(--mute);font-size:1rem}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:44px}
.pj{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:40px 24px}
.pj a{display:flex;flex-direction:column;gap:16px}
.pj .im{overflow:hidden;aspect-ratio:4/3;border-radius:18px;background:var(--surf);border:1px solid var(--line)}
.pj .im img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pj a:hover .im img{transform:scale(1.06)}
.pj h3{font-size:1.7rem}.pj p{color:var(--mute);font-size:.98rem}
.pj .go{color:var(--acc2);font-size:.92rem;border-bottom:1px solid currentColor;align-self:flex-start;padding-bottom:2px}
.cmp{position:relative;max-width:1060px;aspect-ratio:16/10;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#0A0A0A;touch-action:pan-y}
.cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cmp .top{clip-path:inset(0 calc(100% - var(--p,50%)) 0 0)}
.cmp .bar{position:absolute;top:0;bottom:0;left:var(--p,50%);width:2px;background:#fff;margin-left:-1px}
.cmp .bar::after{content:'';position:absolute;top:50%;left:50%;width:46px;height:46px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 8px 30px rgba(0,0,0,.5)}
.cmp .lb{position:absolute;top:16px;padding:6px 14px;border-radius:999px;background:rgba(18,26,36,.7);font-size:.82rem}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.tr{width:100%;border-collapse:collapse}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.team .m{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surf);display:flex;flex-direction:column;gap:30px}
.team .av{width:54px;height:54px;border-radius:50%;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:1.4rem;color:var(--acc2)}
.team b{display:block;font-weight:500;font-size:1.05rem}.team span{font-size:.88rem;color:var(--mute)}
.mvm>div{display:grid;grid-template-columns:1fr 2fr;gap:24px 64px;padding:44px 0;border-top:1px solid var(--line)}
.mvm h3{font-size:2.2rem}.mvm .s{font-size:.9rem;color:var(--mute);margin-top:6px;font-family:var(--sans)}
.mvm p{font-family:var(--disp);font-size:clamp(1.6rem,2.8vw,2.6rem);line-height:1.2;max-width:30ch}
form.f{display:flex;flex-direction:column;gap:18px}
.fld{display:flex;flex-direction:column;gap:8px}.fld label{font-size:.88rem;color:var(--mute)}
.fld input,.fld textarea,.fld select{min-height:54px;padding:14px 16px;border-radius:14px;border:1px solid var(--line2);background:var(--surf);width:100%}
.fld textarea{min-height:140px;resize:vertical}
.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--acc);outline:none}

/* mock interfaces */
.mock{border:1px solid var(--line2);border-radius:22px;overflow:hidden;background:#0A0A0A}
.mock-top{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:.85rem}
.mock-top i{width:26px;height:26px;border-radius:8px;background:#fff;display:block;flex:none}
.mock-top small{display:block;color:var(--mute);font-size:.75rem}
.mock-body{display:grid;grid-template-columns:minmax(200px,270px) 1fr;min-height:420px}
.mock-side{padding:16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;font-size:.8rem;overflow:hidden}
.mock-map{position:relative;background:#0A0A0A;overflow:hidden}
.mock-map svg{position:absolute;inset:0;width:100%;height:100%}
.mock .cb{display:inline-block;width:12px;height:12px;border:1px solid var(--mute);border-radius:3px;margin-right:8px;vertical-align:-2px}.mock .cb.on{background:var(--acc);border-color:var(--acc)}
.mock .box{border:1px solid var(--line2);border-radius:8px;padding:9px 10px;color:var(--mute)}
.mock .sel{background:var(--acc);color:#050505;border-radius:8px;padding:9px 10px}
.mock .row{padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--mute)}
.mock .chipm{position:absolute;padding:6px 12px;border-radius:999px;background:rgba(18,26,36,.8);border:1px solid var(--line2);font-size:.75rem}
.mock .stat{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.mock .stat small{display:block;color:var(--mute);font-size:.7rem}.mock .stat b{font-family:var(--disp);font-weight:400;font-size:1.4rem}

/* footer */
.ftr{position:relative;z-index:2;background:var(--bg2);border-top:1px solid var(--line);padding:90px 0 36px;overflow:hidden}
.ftr-g{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
.ftr h4{margin-bottom:16px;font-weight:500;font-size:.9rem;color:var(--mute)}
.ftr li{padding:5px 0}.ftr li a{color:#D4D4D4}.ftr li a:hover{color:#fff}
.ftr-big{font-weight:600;font-family:var(--disp);font-size:clamp(5rem,22vw,22rem);line-height:.8;letter-spacing:-.03em;color:rgba(255,255,255,.06);margin:70px 0 0;text-align:center;user-select:none}
.ftr-b{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;padding-top:26px;border-top:1px solid var(--line);font-size:.85rem;color:var(--mute);margin-top:30px}
.ftr-b a:hover{color:#fff}

/* palette */
.pal{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:none;align-items:flex-start;justify-content:center;padding:14vh 20px 20px}
.pal.open{display:flex}
.pal-box{width:min(640px,100%);background:#1A2430;border:1px solid var(--line2);border-radius:22px;overflow:hidden;animation:fadeup .35s var(--ease)}
.pal-box input{width:100%;min-height:64px;padding:0 24px;background:none;border:0;border-bottom:1px solid var(--line);font-size:1.15rem;outline:none}
.pal-list{max-height:52vh;overflow:auto;padding:8px}
.pal-list a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;border-radius:12px;color:#D4D4D4}
.pal-list a:hover,.pal-list a.act{background:rgba(255,255,255,.08);color:#fff}
.pal-list small{color:var(--mute)}

/* cursor */
.cur{position:fixed;left:0;top:0;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(255,255,255,.55);pointer-events:none;z-index:150;transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),background .3s,opacity .3s;opacity:0}
.cur.on{opacity:1}.cur.big{width:68px;height:68px;margin:-34px 0 0 -34px;background:rgba(255,255,255,.1)}
.nocur .cur{display:none}

@media (max-width:1000px){
 .nav{display:none}.menu-btn{display:inline-flex}.kbd{display:none}.brand span{display:none}
 .nav.open{display:flex;position:fixed;top:calc(env(safe-area-inset-top,0px) + 72px);left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;gap:0;padding:12px 20px;background:rgba(18,26,36,.97);overflow:auto}
 .nav.open a,.nav.open button{font-family:var(--disp);font-size:2rem;min-height:68px;border-bottom:1px solid var(--line);border-radius:0;padding:0}
 .sec-h,.g2,.xp,.rows>div,.mvm>div,.mega-in{grid-template-columns:1fr}
 .sec-h .lead{justify-self:start}
 .bento .card{grid-column:1/-1!important;grid-row:auto!important;min-height:280px}
 .flow,.trio,.proof,.g3,.plans{grid-template-columns:1fr}
 .flow>div{padding:0 0 40px}
 .kv,.facts-g{grid-template-columns:1fr 1fr}.kv>div+div,.fact+.fact{border-left:0;padding-left:0}.fact{padding:18px 12px 18px 0}
 .pcard{grid-template-columns:1fr;grid-template-rows:200px 1fr;height:min(70vh,560px)}
 .gauge,.lay-list{display:none}.scrollcue{display:none}
 .mock-body{grid-template-columns:1fr}.mock-side{display:none}
 .xl{grid-template-columns:1fr}.cols2{columns:1}
 .hs{height:auto}.hs-in{position:relative;height:auto;padding:80px 0}.hs-track{flex-direction:column;transform:none!important}.pcard{flex:none;width:100%}
 .ftr-g{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){.hero h1{max-width:none}.scene{height:300vh}}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
 [data-r]{opacity:1;transform:none}.split .w>i{transform:none}.marq-t{animation:none}
}

.nogl #gl{display:none}

svg{flex:none}
.who-out a svg,.go svg,.pill svg,.pcard .btn svg{width:16px;height:16px}
.fact i{font-style:normal}

.logo{display:block;height:34px;width:auto}

.pill small{opacity:.65;font-size:.78rem;font-weight:400;margin-left:2px}
.vvid{margin-top:30px;max-width:520px;aspect-ratio:16/9;border:1px dashed var(--line2);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--mute);font-size:.92rem}

.vplay{margin:0 0 30px}.vplay video{width:100%;aspect-ratio:16/9;display:block;background:#000;border:1px solid var(--line2);border-radius:12px}.vplay figcaption{margin-top:10px;font-size:.88rem;color:var(--mute)}

[data-xp=verts] .xp-l{position:sticky;top:96px}

.mega-list .mi{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-bottom:1px solid var(--line)}
.mega-list .mi .mn{display:flex;flex-direction:column;gap:2px;padding:0;border:0}
.mega-list .mi b{font-family:var(--disp);font-weight:400;letter-spacing:-.03em;font-size:1.25rem;line-height:1.15}
.mega-list .mi .mn span{font-size:.85rem;color:var(--mute)}
.mega-list .mi a.mn:hover b{color:var(--acc2)}
.mega-list .mi a.mini{display:inline-block;align-self:flex-start;padding:0;border:0;border-bottom:1px solid currentColor;font-size:.85rem;color:var(--acc2);margin-top:4px}
.mega-list .soonl b{color:var(--mute)}
.pj article{display:flex;flex-direction:column;gap:14px}
.pj .im video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.pj .pjd li{font-size:.92rem;padding:9px 0}
.pj .label{margin-bottom:-6px}
@media (max-width:1000px){.mega-list{grid-template-columns:1fr 1fr}}

/* ---- projects: consistent, boxed tiles ---- */
.pj{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:28px;align-items:stretch}
.pj article{display:flex;flex-direction:column;gap:12px;padding:0 0 26px;border:1px solid var(--line);border-radius:18px;background:var(--surf);overflow:hidden;transition:border-color .3s}
.pj article:hover{border-color:var(--line2)}
.pj article>*:not(.im){margin-left:26px;margin-right:26px}
.pj article .im{margin:0;border:0;border-radius:0;aspect-ratio:16/9;background:#0b0b0b}
.pj article .im img,.pj article .im video{width:100%;height:100%;object-fit:cover;display:block}
.pj article .im video{object-fit:contain;background:#000}
.pj article .label{margin-top:8px;margin-bottom:0}
.pj article h3{font-size:1.6rem;margin:0}
.pj article>p{margin:0}
.pj article .pjd{margin-top:2px}
.pj article .pills{margin-top:auto!important;padding-top:10px}

.pbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.pframe{display:block;width:100%;height:78vh;min-height:520px;border:1px solid var(--line2);border-radius:14px;background:#fff}
.pj article h3 a{color:inherit}.pj article h3 a:hover{color:var(--acc2)}

/* ---- projects: compact buttons, tags, framed portal, project navigation ---- */
.btn.s{min-height:44px;padding:0 18px;font-size:.92rem}
.btn.s svg{width:14px;height:14px}
.pj article .ptags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pj article .pd{color:var(--mute);font-size:.98rem}
.pj article .pact{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:auto;padding-top:12px}
.pj article .pills{display:none}
.vcard .pact{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:auto;padding-top:12px}
.pwin{border:1px solid var(--line2);border-radius:14px;overflow:hidden;background:#fff}
.pwin-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;background:#121212;border-bottom:1px solid var(--line2)}
.pwin-top span{font-size:.88rem;color:var(--mute)}
.pwin iframe{display:block;width:100%;height:76vh;min-height:520px;border:0;background:#fff}
.pnav{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pnav a{display:flex;flex-direction:column;gap:6px;padding:26px 28px;border:1px solid var(--line2);border-radius:16px;transition:border-color .25s,background .25s}
.pnav a:hover{border-color:var(--text);background:rgba(255,255,255,.04)}
.pnav span{font-size:.85rem;color:var(--mute)}
.pnav b{font-family:var(--disp);font-weight:400;font-size:1.7rem;letter-spacing:-.02em;line-height:1.1}
@media (max-width:700px){.pnav{grid-template-columns:1fr}.pnav a{text-align:left!important}}

/* ---- projects: button system and motion ---- */
.pbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 20px;border-radius:12px;font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.005em;border:1px solid transparent;overflow:hidden;isolation:isolate;white-space:nowrap;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s,background .3s}
.pbtn.l{min-height:54px;padding:0 26px;font-size:1rem}
.pbtn svg{width:15px;height:15px;flex:none;transition:transform .35s var(--ease)}
.pbtn.p{color:#fff;background:linear-gradient(135deg,#3D86FF 0%,#1F5FE0 100%);box-shadow:0 6px 20px rgba(47,123,255,.3)}
.pbtn.p::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-130%);transition:transform .8s var(--ease)}
.pbtn.p:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(47,123,255,.5)}
.pbtn.p:hover::after{transform:translateX(130%)}
.pbtn.p:hover svg{transform:translateX(4px)}
.pbtn.o{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.05)}
.pbtn.o:hover{border-color:#fff;background:rgba(255,255,255,.14);transform:translateY(-2px)}
.pbtn.o:hover svg{transform:translate(3px,-3px)}
.pbtn:active{transform:translateY(0) scale(.97)}
.pbtn:focus-visible{outline:2px solid #9CC4FF;outline-offset:3px}
.pj article .pact,.vcard .pact{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:auto;padding-top:14px}
/* tiles */
.pj article{position:relative;transition:transform .45s var(--ease),border-color .3s,box-shadow .45s var(--ease)}
.pj article::before{content:'';position:absolute;inset:0;border-radius:18px;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(80,150,255,.18),transparent 60%);z-index:1}
.pj article:hover{transform:translateY(-6px);border-color:rgba(110,168,255,.6);box-shadow:0 26px 50px rgba(0,0,0,.5)}
.pj article:hover::before{opacity:1}
.pj article .im{position:relative}
.pj article .im::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-130%);transition:transform .9s var(--ease)}
.pj article:hover .im::after{transform:translateX(130%)}
.pj article .im img{transition:transform 1.2s var(--ease)}
.pj article:hover .im img{transform:scale(1.07)}
.pj article h3 a{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .5s var(--ease)}
.pj article:hover h3 a{background-size:100% 2px}
@keyframes pop{from{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:none}}
.pj article.pop{animation:pop .6s var(--ease) both;animation-delay:var(--pd,0s)}
.chip{transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)}
.chip:hover{transform:translateY(-2px)}
/* counters */
.pstats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pstats>div{border-left:2px solid #3D86FF;padding-left:22px}
.pstats b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(2.6rem,6vw,4.8rem);letter-spacing:-.04em;line-height:1}
.pstats span{color:var(--mute);font-size:.95rem}
/* project page */
.pwin-body{position:relative;height:76vh;min-height:520px;background:#141C26}
.pwin iframe{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;background:transparent}
.pload{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--mute);font-size:.95rem}
.pload i{width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.14);border-top-color:#6EA8FF;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pnav a{position:relative;overflow:hidden}
.pnav a::after{content:'';position:absolute;left:0;bottom:0;height:3px;width:100%;background:linear-gradient(90deg,#F4B860,#EE9C45);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.pnav a:hover::after{transform:scaleX(1)}
.pnav a:first-child .pa::before{content:'\2190';display:inline-block;margin-right:8px;transition:transform .35s var(--ease)}
.pnav a:last-child .pa::after{content:'\2192';display:inline-block;margin-left:8px;transition:transform .35s var(--ease)}
.pnav a:first-child:hover .pa::before{transform:translateX(-6px)}
.pnav a:last-child:hover .pa::after{transform:translateX(6px)}
.rprog{position:fixed;top:0;left:0;right:0;height:3px;z-index:140;pointer-events:none}
.rprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#F4B860,#EE9C45)}
.kv>div{transition:background .3s}.kv>div:hover{background:rgba(255,255,255,.04)}
@media (max-width:640px){.pstats{gap:14px}.pstats>div{padding-left:14px}}
@media (prefers-reduced-motion:reduce){.pj article,.pbtn,.pj article .im img{transition:none}.pj article.pop,.pload i{animation:none}}

/* dam scene: only the text moves to the right; the 3D scene and its overlay are unchanged */
.scene.rt .cap-stack{margin-left:auto}
.scene.rt .cap-item{left:0;right:0;padding:28px 32px;border-radius:20px;background:rgba(18,26,36,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@media (max-width:1000px){.scene.rt .cap-stack{margin-left:0}}

/* ---- interactive tools ---- */
.ttabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.tool{display:none;grid-template-columns:minmax(260px,.85fr) 1.6fr;gap:clamp(24px,4vw,56px);align-items:start}
.tool.on{display:grid;animation:fadeup .5s var(--ease)}
.tdesc{color:var(--mute);margin-bottom:22px;max-width:44ch}
.trow{margin-bottom:20px}
.trow label{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;color:var(--mute);margin-bottom:8px}
.trow label b{color:#fff;font-weight:600}
.tools input[type=range]{width:100%;height:28px;accent-color:#6EA8FF;margin:0;cursor:pointer}
.tlab{font-size:.92rem;color:var(--mute);margin:4px 0 8px}
.tpre{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.tpre .chip{min-height:38px;padding:0 14px;font-size:.88rem}
.ro{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px}
.ro>div{border:1px solid var(--line2);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;background:var(--surf)}
.ro span{font-size:.8rem;color:var(--mute)}
.ro b{font-family:var(--disp);font-weight:400;font-size:1.5rem;letter-spacing:-.02em;line-height:1.15}
.tchart{display:block;width:100%;height:auto;background:var(--surf);border:1px solid var(--line);border-radius:16px}
.tchart text{fill:var(--mute);font-size:12px;font-family:var(--sans)}
.tchart .ax{fill:#BDBDBD;font-size:12.5px}
.tchart .grid{stroke:rgba(255,255,255,.1);stroke-width:1}
.tchart .curve{fill:none;stroke:#6EA8FF;stroke-width:3;stroke-linejoin:round}
.tchart .area{fill:rgba(110,168,255,.24)}
.tchart .base{fill:none;stroke:#9A9A9A;stroke-width:2;stroke-dasharray:6 5}
.tchart .gd{stroke:rgba(255,255,255,.45);stroke-width:1.5;stroke-dasharray:4 4}
.tchart .mk{fill:#fff;stroke:#6EA8FF;stroke-width:3}
.tsch{margin-bottom:22px}
.tsch .gnd{fill:#1d1d1d}.tsch .dam{fill:#BFC6CE}.tsch .wat{fill:rgba(110,168,255,.6)}.tsch .nap{stroke:#6EA8FF;stroke-width:2}
.tnote{font-size:.85rem;color:var(--mute);margin-top:12px}
.tdisc{margin-top:36px;font-size:.88rem;color:var(--mute);border-top:1px solid var(--line);padding-top:16px;max-width:80ch}
@media (max-width:1000px){.tool.on{grid-template-columns:1fr}}

.thint{font-size:.8rem;color:var(--mute);margin-top:6px}

.tpre .chip{min-height:36px;padding:0 12px}


/* ===== projects: index + preview, and a new button style ===== */
.pidx{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,76px);align-items:start}
.pidx-l .filters{margin-bottom:30px}
.pidx-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line2)}
.pidx-list li{border-bottom:1px solid var(--line)}
.pidx-list li.pop{animation:pop .55s var(--ease) both;animation-delay:var(--pd,0s)}
.pi{position:relative;display:grid;grid-template-columns:54px 1fr auto 46px;align-items:center;gap:6px 18px;padding:22px 4px 22px 0;color:var(--mute);transition:color .3s,padding .45s var(--ease)}
.pi .no{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--mute2);transition:color .3s}
.pi .nm{font-family:var(--disp);font-weight:400;font-size:clamp(1.5rem,2.4vw,2.25rem);letter-spacing:-.03em;line-height:1.1;color:inherit}
.pi .ct{font-size:.82rem;color:var(--mute2);white-space:nowrap}
.pi .ar{box-sizing:border-box;width:46px;height:46px;padding:14px;border-radius:50%;border:1px solid var(--line2);color:#fff;opacity:0;transform:translateX(-12px);transition:opacity .35s,transform .5s var(--ease),background .3s,color .3s}
.pi::before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,#F8D18A,#EE9C45);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.pi:hover,.pi.on{color:#fff;padding-left:16px}
.pi.on .no{color:#5EB2FF}
.pi.on::before{transform:scaleX(1)}
.pi.on .ar{opacity:1;transform:none;background:linear-gradient(135deg,#F8D18A,#EE9C45);border-color:transparent;color:#071018}
.pidx-p{position:sticky;top:96px}
.pv{border:1px solid var(--line2);border-radius:28px;overflow:hidden;background:var(--surf);animation:pvin .6s var(--ease);box-shadow:0 30px 60px rgba(0,0,0,.35)}
@keyframes pvin{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
.pv-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#0d141c}
.pv-img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:kb 16s ease-out forwards}
@keyframes kb{to{transform:scale(1.14)}}
.pv-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,26,36,0) 50%,rgba(18,26,36,.78) 100%);pointer-events:none}
.pv-count{position:absolute;right:20px;top:18px;font-size:.78rem;font-weight:600;letter-spacing:.05em;padding:6px 13px;border-radius:999px;background:rgba(18,26,36,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pv-play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.pv-play i{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.94);color:#0A1118;display:grid;place-items:center;box-shadow:0 12px 36px rgba(0,0,0,.4);animation:pulse 2.4s ease-in-out infinite}
.pv-play svg{width:30px;height:30px;margin-left:4px}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.pv-body{padding:28px 30px 32px;display:flex;flex-direction:column;gap:14px}
.pv-tags{display:flex;flex-wrap:wrap;gap:6px}
.pv-tags span{font-size:.75rem;font-weight:600;padding:5px 12px;border-radius:999px;background:rgba(94,178,255,.14);color:#A6D3FF}
.pv-body h3{font-size:clamp(1.8rem,2.6vw,2.5rem)}
.pv-body p{color:var(--mute);margin:0}
.pv-det{list-style:none;margin:2px 0 0;padding:0}
.pv-det li{display:flex;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:.93rem;color:#D9D9D9}
.pv-det li::before{content:'';flex:none;width:6px;height:6px;margin-top:.6em;border-radius:50%;background:linear-gradient(135deg,#F8D18A,#EE9C45)}
.pv-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
/* buttons */
.pbtn{position:relative;display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:0 7px 0 22px;border-radius:999px;font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.005em;border:1px solid transparent;white-space:nowrap;cursor:pointer;overflow:visible;isolation:auto;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s,border-color .3s}
.pbtn.l{min-height:56px;padding:0 9px 0 28px;font-size:1rem}
.pbtn svg{box-sizing:border-box;flex:none;width:34px;height:34px;padding:10px;border-radius:50%;transition:transform .45s var(--ease)}
.pbtn.l svg{width:40px;height:40px;padding:12px}
.pbtn.p{background:#fff;color:#0A1118;box-shadow:none}
.pbtn.p::after{display:none}
.pbtn.p svg{background:linear-gradient(135deg,#F8D18A,#EE9C45);color:#071018}
.pbtn.p:hover{background:#fff;transform:translateY(-2px);box-shadow:0 14px 30px rgba(94,178,255,.3)}
.pbtn.p:hover svg{transform:translateX(3px)}
.pbtn.o{background:rgba(255,255,255,.05);color:#fff;border-color:rgba(255,255,255,.3)}
.pbtn.o svg{background:rgba(255,255,255,.14);color:#fff}
.pbtn.o:hover{background:rgba(255,255,255,.1);border-color:#fff;transform:translateY(-2px)}
.pbtn.o:hover svg{transform:translate(2px,-2px);background:linear-gradient(135deg,#F8D18A,#EE9C45);color:#071018}
.pbtn:active{transform:translateY(0) scale(.98)}
@media (max-width:1000px){
 .pidx{grid-template-columns:1fr}.pidx-p{display:none}
 .pi{grid-template-columns:40px 1fr 46px;padding:20px 0}.pi .ct{display:none}
 .pi .ar{opacity:1;transform:none}.pi:hover,.pi.on{padding-left:0}
}
@media (prefers-reduced-motion:reduce){.pv,.pv-img,.pv-play i,.pidx-list li.pop{animation:none}}

.pv-media{display:block}
.pv-media.vid{background:#0b2342}
.pv-media.vid .pv-img{object-fit:contain;transform:none;animation:none}

/* compact preview so the buttons stay on screen; rows no longer reflow on hover */
.pidx-p{top:84px}
.pv-media{aspect-ratio:21/10}
.pv-media.vid{aspect-ratio:16/9}
.pv-body{padding:24px 28px 28px;gap:12px}
.pv-body h3{font-size:clamp(1.7rem,2.3vw,2.2rem)}
.pi:hover,.pi.on{padding-left:0}
.pi .nm{font-size:clamp(1.4rem,2.1vw,2rem);transition:transform .5s var(--ease)}
.pi:hover .nm,.pi.on .nm{transform:translateX(12px)}
.pi .no{transition:color .3s,transform .5s var(--ease)}
.pi.on .no{transform:translateX(0)}

.pv-act .pact,.pv .pact{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

.pv-media.vid{aspect-ratio:auto;height:230px}
.pv-media.vid .pv-img{object-fit:contain}

/* ===== hero backgrounds: one animation per page ===== */
.phead{overflow:hidden;isolation:isolate}
.phead .hfx{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.phead::before{z-index:1;background:linear-gradient(180deg,rgba(18,26,36,.92) 0,rgba(18,26,36,.55) 70px,rgba(18,26,36,0) 170px),linear-gradient(90deg,rgba(18,26,36,.86) 0,rgba(18,26,36,.42) 42%,rgba(18,26,36,0) 72%),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,0) 26%)}
.phead .wrap{z-index:2}

/* ===== water and climate touches on the inner pages ===== */
.inner .sec{background-image:radial-gradient(1100px 460px at 92% -8%,rgba(46,140,200,.12),transparent 62%),radial-gradient(900px 380px at 4% 106%,rgba(56,214,196,.07),transparent 60%)}
.inner .eyebrow::before{content:'';display:inline-block;flex:none;width:9px;height:9px;margin-right:2px;border-radius:0 50% 50% 50%;background:linear-gradient(135deg,#F8D18A,#EE9C45);transform:rotate(45deg)}
.wdiv{position:absolute;left:0;right:0;top:-33px;height:34px;overflow:hidden;pointer-events:none;z-index:3}
.wdiv svg{position:absolute;left:0;bottom:-1px;width:200%;height:100%;display:block;animation:wv 24s linear infinite;will-change:transform}
.wdiv svg:first-child{opacity:.45;bottom:3px;animation-duration:38s;animation-direction:reverse}
@keyframes wv{to{transform:translateX(-50%)}}
.inner .pbtn,.inner .btn,.inner .chip,.inner .vcard,.inner .gc,.inner .plan,.inner .team .m,.inner .kv>div,.inner .pi{position:relative;overflow:hidden}
.rpl{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:1.5px solid rgba(150,215,255,.8);pointer-events:none;animation:rpl .9s ease-out forwards;z-index:5}
.rpl::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(110,235,220,.6)}
.rpl.big{border-width:1px;animation-duration:1.3s}
@keyframes rpl{from{transform:scale(.6);opacity:.95}to{transform:scale(20);opacity:0}}
.rpl.big{animation-name:rplb}
@keyframes rplb{from{transform:scale(.6);opacity:.8}to{transform:scale(34);opacity:0}}
.inner .vcard:hover,.inner .gc:hover,.inner .plan:hover{border-color:rgba(94,178,255,.5);box-shadow:0 14px 34px rgba(46,140,200,.12)}
.inner .ftr{background-image:radial-gradient(900px 300px at 80% 0%,rgba(46,140,200,.12),transparent 65%)}
@media (prefers-reduced-motion:reduce){.wdiv svg{animation:none}.rpl{display:none}}

:is(.sec.dark,.sec.dark2):not(.close) em{color:#0E7FD6;background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
:is(.sec.dark,.sec.dark2):not(.close) .btn.g{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .btn.g:hover{border-color:#0B2540;background:rgba(11,37,64,.06)}
:is(.sec.dark,.sec.dark2):not(.close) .btn.o:hover{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .chip{color:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .chip:hover{border-color:#0B2540;color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .chip[aria-pressed=true]{background:#0B2540;color:#FFFFFF;border-color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .cap-item p{color:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .card::before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(11,37,64,.07),transparent 60%)}
:is(.sec.dark,.sec.dark2):not(.close) .tag{color:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .xp-l button:hover{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .xp-l button[aria-selected=true]{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .pill:hover{background:#0B2540;color:#FFFFFF;border-color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .plan li{color:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .mock .sel{color:#FFFFFF}
:is(.sec.dark,.sec.dark2):not(.close) .pnav a:hover{background:rgba(11,37,64,.04)}
:is(.sec.dark,.sec.dark2):not(.close) .pbtn.o{color:#0B2540;border-color:rgba(11,37,64,.3);background:rgba(11,37,64,.05)}
:is(.sec.dark,.sec.dark2):not(.close) .pbtn.o:hover{border-color:#0B2540;background:rgba(11,37,64,.14)}
:is(.sec.dark,.sec.dark2):not(.close) .pload i{border:3px solid rgba(11,37,64,.14);border-top-color:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .kv>div:hover{background:rgba(11,37,64,.04)}
:is(.sec.dark,.sec.dark2):not(.close) .trow label b{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .tools input[type=range]{accent-color:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .tchart .ax{fill:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .tchart .grid{stroke:rgba(11,37,64,.1)}
:is(.sec.dark,.sec.dark2):not(.close) .tchart .curve{stroke:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .tchart .gd{stroke:rgba(11,37,64,.45)}
:is(.sec.dark,.sec.dark2):not(.close) .tchart .mk{fill:#0B2540;stroke:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .tsch .dam{fill:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .tsch .nap{stroke:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .pi .ar{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .pi::before{background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
:is(.sec.dark,.sec.dark2):not(.close) .pi:hover,:is(.sec.dark,.sec.dark2):not(.close) .pi.on{color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .pi.on .no{color:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .pi.on .ar{background:linear-gradient(135deg,#0E7FD6,#38D6C4)}
:is(.sec.dark,.sec.dark2):not(.close) .pv-tags span{color:#0E7FD6}
:is(.sec.dark,.sec.dark2):not(.close) .pv-det li{color:#3C5C74}
:is(.sec.dark,.sec.dark2):not(.close) .pv-det li::before{background:linear-gradient(135deg,#0E7FD6,#38D6C4)}
:is(.sec.dark,.sec.dark2):not(.close) .pbtn.o{background:rgba(11,37,64,.05);color:#0B2540;border-color:rgba(11,37,64,.3)}
:is(.sec.dark,.sec.dark2):not(.close) .pbtn.o svg{background:rgba(11,37,64,.14);color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .pbtn.o:hover{background:rgba(11,37,64,.1);border-color:#0B2540}
:is(.sec.dark,.sec.dark2):not(.close) .pbtn.o:hover svg{background:linear-gradient(135deg,#0E7FD6,#38D6C4)}

/* ===== Clear water colour direction: light reading sections, deep-ocean headers and footer ===== */
:root{--paper:#FFFFFF;--ink:#0B2540;--ink2:#4D6E86}
:is(.sec.dark,.sec.dark2):not(.close){--text:#0B2540;--mute:#4D6E86;--line:rgba(11,37,64,.12);--line2:rgba(11,37,64,.24);--surf:#FFFFFF;--surf2:#E6F2F7;--acc:#0E7FD6;--acc2:#0A6BB8;color:var(--text)}
.sec.dark:not(.close){background-color:#F5FAFC}
.sec.dark2:not(.close){background-color:#EAF4F8}
.sec.paper{background:#FFFFFF}
:is(.sec.dark,.sec.dark2):not(.close) em{background:linear-gradient(90deg,#0E7FD6,#0A9A93);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
:is(.sec.dark,.sec.dark2):not(.close) .btn.p{background:#0E7FD6;color:#fff}
:is(.sec.dark,.sec.dark2):not(.close) .btn.p:hover{background:#0A6BB8}
:is(.sec.dark,.sec.dark2):not(.close) .btn.g{border-color:rgba(11,37,64,.3)}
:is(.sec.dark,.sec.dark2):not(.close) .card,:is(.sec.dark,.sec.dark2):not(.close) .vcard,:is(.sec.dark,.sec.dark2):not(.close) .plan,:is(.sec.dark,.sec.dark2):not(.close) .mock,:is(.sec.dark,.sec.dark2):not(.close) .team .m{box-shadow:0 1px 2px rgba(11,37,64,.06),0 12px 32px rgba(11,37,64,.07)}
:is(.sec.dark,.sec.dark2):not(.close) .rpl{border-color:rgba(14,127,214,.65)}
:is(.sec.dark,.sec.dark2):not(.close) .rpl::after{border-color:rgba(10,154,147,.5)}
.wdiv svg path[fill=none]{stroke:rgba(14,127,214,.42)}
.pcard .pv{isolation:isolate}
.pcard .pv::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#7EC3E8,#6AD3C8);mix-blend-mode:multiply;pointer-events:none}
:is(.sec.dark,.sec.dark2):not(.close) .card{--text:#fff;--mute:#CFDBE6;--acc2:#8FD0FF;--line:rgba(255,255,255,.18);--line2:rgba(255,255,255,.32);color:#fff}
:is(.sec.dark,.sec.dark2):not(.close) .card .tag{color:#E6EEF5}
:is(.sec.dark,.sec.dark2):not(.close) .card::before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.1),transparent 60%)}
.card .art{background:linear-gradient(135deg,#2A86A8,#2FB0A4);isolation:isolate}
.card .art img{mix-blend-mode:luminosity;opacity:.8}
.card:hover .art img{opacity:.95}
.card .art::after{background:linear-gradient(180deg,rgba(14,24,36,.2) 0,rgba(14,24,36,.92) 78%)}

/* Platforms dropdown: a light panel to match the reading sections */
.mega{--text:#0B2540;--mute:#4D6E86;--line:rgba(11,37,64,.12);--line2:rgba(11,37,64,.24);--surf:#FFFFFF;--surf2:#E6F2F7;--acc:#0E7FD6;--acc2:#0A6BB8;background:rgba(247,252,253,.97);color:#0B2540;border-bottom:1px solid rgba(11,37,64,.1);box-shadow:0 28px 60px rgba(11,37,64,.18)}
.mega em{background:linear-gradient(90deg,#0E7FD6,#0A9A93);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.mega .btn.g{color:#0B2540;border-color:rgba(11,37,64,.3)}
.mega .btn.g:hover{border-color:#0B2540;background:rgba(11,37,64,.06)}
.mega .btn.p{background:#0E7FD6;color:#fff}
.mega .mega-list a:hover,.mega .mega-list .mi:hover{background:transparent}

.home #app em{color:#0E7FD6;background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
.home #app .btn.g{color:#0B2540}
.home #app .btn.g:hover{border-color:#0B2540;background:rgba(11,37,64,.06)}
.home #app .btn.o:hover{color:#0B2540}
.home #app .hero .marq{border-block:1px solid rgba(11,37,64,.16)}
.home #app .chip{color:#3C5C74}
.home #app .chip:hover{border-color:#0B2540;color:#0B2540}
.home #app .chip[aria-pressed=true]{background:#0B2540;color:#FFFFFF;border-color:#0B2540}
.home #app .who-out p{color:#0B2540}
.home #app .cap-item p{color:#3C5C74}
.home #app .gauge-t span.on{color:#0B2540}
.home #app .scene-prog i b{background:#0B2540}
.home #app .lay-list button.on b{color:#0E7FD6}
.home #app .iso-lab::before{border-top:1px dashed rgba(11,37,64,.4)}
.home #app .iso-l.act .iso-lab b{color:#0E7FD6}
.home #app .iso-l.act .iso-lab i{border-color:#0E7FD6;color:#0E7FD6}
.home #app .lc-t i{color:#0E7FD6}
.home #app .lg{color:#3C5C74}
.home #app .iso-m .iso-lab b{color:#0E7FD6}
.home #app .iso-m .iso-lab i{border-color:#0E7FD6;color:#0E7FD6}
.home #app .lay-now{color:#0E7FD6}
.home #app .tag{color:#3C5C74}
.home #app .hs-dots i b{background:#0B2540}
.home #app .xp-l button:hover{color:#0B2540}
.home #app .xp-l button[aria-selected=true]{color:#0B2540}
.home #app .pill:hover{background:#0B2540;color:#FFFFFF;border-color:#0B2540}
.home #app .plan li{color:#3C5C74}
.home #app .mock .sel{color:#FFFFFF}
.home #app .pnav a:hover{background:rgba(11,37,64,.04)}
.home #app .pbtn.o{color:#0B2540;border-color:rgba(11,37,64,.3);background:rgba(11,37,64,.05)}
.home #app .pbtn.o:hover{border-color:#0B2540;background:rgba(11,37,64,.14)}
.home #app .pload i{border:3px solid rgba(11,37,64,.14);border-top-color:#0E7FD6}
.home #app .kv>div:hover{background:rgba(11,37,64,.04)}
.home #app .trow label b{color:#0B2540}
.home #app .tools input[type=range]{accent-color:#0E7FD6}
.home #app .tchart .ax{fill:#3C5C74}
.home #app .tchart .grid{stroke:rgba(11,37,64,.1)}
.home #app .tchart .curve{stroke:#0E7FD6}
.home #app .tchart .gd{stroke:rgba(11,37,64,.45)}
.home #app .tchart .mk{fill:#0B2540;stroke:#0E7FD6}
.home #app .tsch .dam{fill:#3C5C74}
.home #app .tsch .nap{stroke:#0E7FD6}
.home #app .pi .ar{color:#0B2540}
.home #app .pi::before{background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
.home #app .pi:hover,.home #app .pi.on{color:#0B2540}
.home #app .pi.on .no{color:#0E7FD6}
.home #app .pi.on .ar{background:linear-gradient(135deg,#0E7FD6,#38D6C4)}
.home #app .pv-tags span{color:#0E7FD6}
.home #app .pv-det li{color:#3C5C74}
.home #app .pv-det li::before{background:linear-gradient(135deg,#0E7FD6,#38D6C4)}
.home #app .pbtn.o{background:rgba(11,37,64,.05);color:#0B2540;border-color:rgba(11,37,64,.3)}
.home #app .pbtn.o svg{background:rgba(11,37,64,.14);color:#0B2540}
.home #app .pbtn.o:hover{background:rgba(11,37,64,.1);border-color:#0B2540}
.home #app .pbtn.o:hover svg{background:linear-gradient(135deg,#0E7FD6,#38D6C4)}

/* ===== light daytime home page ===== */
body.home{background:#EEF6FA}
.home #app{--bg:#EEF6FA;--bg2:#E3F0F6;--text:#0B2540;--mute:#4D6E86;--line:rgba(11,37,64,.12);--line2:rgba(11,37,64,.24);--surf:#FFFFFF;--surf2:#E6F2F7;--acc:#0E7FD6;--acc2:#0A6BB8;color:var(--text)}
.home #app em{background:linear-gradient(90deg,#0E7FD6,#0A9A93);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.home #app .btn.p{background:#0E7FD6;color:#fff}
.home #app .hero::before{background:linear-gradient(90deg,rgba(238,246,250,.92) 0,rgba(238,246,250,.6) 42%,rgba(238,246,250,0) 72%)}
.home #app .hero .marq{background:rgba(255,255,255,.72);border-block:1px solid rgba(11,37,64,.12)}
.home #app .scene-in::before{background:linear-gradient(90deg,rgba(238,246,250,.94) 0,rgba(238,246,250,.62) 40%,rgba(238,246,250,0) 70%)}
.home #app .scene[data-scene=layers] .scene-in{background:transparent}
.home #app .scene[data-scene=layers] .scene-in::before{display:none}
.home #app .scene.rt .cap-item{background:rgba(255,255,255,.72)}
.home #app .hs-in{background:#E3F0F6}
.home .hdr:not(.solid) .nav a,.home .hdr:not(.solid) .nav button{color:#27475F}
.home .hdr .nav a:hover,.home .hdr .nav button:hover,.home .hdr .nav a[aria-current=page]{background:rgba(11,37,64,.07);color:#0B2540}
.home .hdr.solid{background:rgba(255,255,255,.84);border-color:rgba(11,37,64,.1)}
.home .hdr.solid .nav a,.home .hdr.solid .nav button{color:#27475F}
.home .hdr.solid .nav a:hover,.home .hdr.solid .nav button:hover{color:#0B2540}
.home #app .lay-card{background:#FFFFFF;border-color:rgba(11,37,64,.12);box-shadow:0 24px 50px rgba(11,37,64,.16)}
.home #app .iso-p{outline-color:rgba(11,37,64,.25)}
.home #app .card .tag{color:#E6EEF5}
.home #app .card .go{color:#8FD0FF}


/* warm sunlit accent for emphasised words (replaces the blue-to-green gradient) */
:is(.sec.dark,.sec.dark2,.sec.paper):not(.close) em,.home #app em,.mega em{color:#C96A1B;background:linear-gradient(100deg,#E7922F,#C4601A);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.inner .eyebrow::before{background:#0E7FD6}

/* ===== 2026-10 update: intelligence chain, sector tiles, credentials order, panel art ===== */
.ch,.st{--h-ink:#0B2540;--h-mute:#4D6E86;--h-acc:#0E7FD6;--h-teal:#1FB5A4;--h-line:rgba(11,37,64,.12)}
.dx-art .spin{transform-box:view-box;transform-origin:331px 148px;animation:dxspin 14s linear infinite}
@keyframes dxspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.dx-art .spin{animation:none}}

/* intelligence chain (from data to decision) */
.ch{position:relative;overflow:hidden;border-radius:28px;padding:clamp(28px,4vw,56px) clamp(18px,3.4vw,48px) clamp(26px,3.4vw,44px);color:#fff;background:radial-gradient(700px 320px at 12% 0%,rgba(14,127,214,.32),transparent 65%),radial-gradient(640px 300px at 92% 100%,rgba(31,181,164,.22),transparent 65%),linear-gradient(160deg,#0D2440,#081626 70%)}
.ch-k{display:block;text-align:center;font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#8FB3D1;margin-bottom:clamp(26px,3vw,40px)}
.ch-wrap{position:relative}
.ch-line{position:absolute;left:10%;right:10%;top:23px;height:2px;background:rgba(255,255,255,.14);border-radius:2px}
.ch-line i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--a) / 4 * 100%);background:linear-gradient(90deg,#38A8F0,#38D6C4);border-radius:2px;transition:width .9s var(--ease)}
.ch-line i::after{content:'';position:absolute;right:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#7FF0E2;box-shadow:0 0 14px 4px rgba(56,214,196,.55)}
.ch-row{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;list-style:none;margin:0;padding:0}
.ch-s{display:flex;flex-direction:column;align-items:center;gap:18px;outline:none;cursor:default}
.ch-n{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:.86rem;font-weight:600;font-variant-numeric:tabular-nums;color:#CFE3F3;background:#0F2A48;border:1px solid rgba(255,255,255,.22);transition:background .5s,border-color .5s,box-shadow .5s,color .5s}
.ch-s.past .ch-n{border-color:rgba(56,214,196,.6);color:#fff}
.ch-s.on .ch-n{color:#fff;border-color:transparent;background:linear-gradient(135deg,#1C8BE0,#1FB5A4);box-shadow:0 0 0 6px rgba(56,214,196,.16),0 0 26px rgba(56,214,196,.45)}
.ch-t{width:100%;flex:1;display:flex;flex-direction:column;gap:10px;padding:20px 18px 18px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:background .5s,border-color .5s,transform .5s var(--ease)}
.ch-s.on .ch-t{background:rgba(255,255,255,.1);border-color:rgba(56,214,196,.5);transform:translateY(-4px)}
.ch-s:focus-visible .ch-t{outline:2px solid #7FF0E2;outline-offset:3px}
.ch-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(56,168,240,.16);color:#7CC8FF;transition:background .5s,color .5s}
.ch-ic svg{width:21px;height:21px}
.ch-s.on .ch-ic{background:rgba(56,214,196,.2);color:#7FF0E2}
.ch-t h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.25rem,1.6vw,1.5rem);letter-spacing:-.02em;color:#fff}
.ch-q{margin:0;font-size:.92rem;font-style:italic;line-height:1.35;color:#9FC0DA}
.ch-t ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:4px 0 0;padding:0}
.ch-t ul li{font-size:.78rem;line-height:1.2;padding:5px 9px;border-radius:999px;color:#D7E7F4;border:1px solid rgba(255,255,255,.16);transition:border-color .5s,background .5s}
.ch-s.on .ch-t ul li{border-color:rgba(56,214,196,.45);background:rgba(56,214,196,.08)}
.ch-tag{margin:clamp(28px,3vw,40px) 0 0;text-align:center;font-family:var(--disp);font-weight:300;font-size:clamp(1.15rem,2vw,1.7rem);letter-spacing:-.02em;color:#CFE3F3}
.ch-tag b{font-weight:500;color:#fff}
@media (max-width:1000px){
  .ch-line{left:23px;right:auto;top:24px;bottom:24px;width:2px;height:auto}
  .ch-line i{width:auto;right:0;height:calc(var(--a) / 4 * 100%);transition:height .9s var(--ease)}
  .ch-line i::after{right:-4px;top:auto;bottom:-5px}
  .ch-row{grid-template-columns:1fr;gap:12px}
  .ch-s{flex-direction:row;align-items:flex-start;gap:16px}
  .ch-s.on .ch-t{transform:none}
  .ch-k{text-align:left}.ch-tag{text-align:left}
}
@media (prefers-reduced-motion:reduce){.ch-line i,.ch-t,.ch-n{transition:none}}

/* sector tiles (find your sector) */
.st{display:flex;flex-direction:column;gap:22px}
.st-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid var(--h-line);align-self:flex-start;max-width:100%}
.sec.paper .st-tabs{background:#F2F7FA}
.st-tabs button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;font-size:.92rem;color:var(--h-mute);transition:background .3s,color .3s}
.st-tabs button i{font-style:normal;font-size:.74rem;font-weight:600;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:rgba(11,37,64,.07);color:var(--h-mute);font-variant-numeric:tabular-nums}
.st-tabs button:hover{color:var(--h-ink)}
.st-tabs button[aria-pressed=true]{background:linear-gradient(90deg,#0E6FC0,#1FA596);color:#fff;box-shadow:0 8px 20px rgba(14,111,192,.25)}
.st-tabs button[aria-pressed=true] i{background:rgba(255,255,255,.22);color:#fff}
.st-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.st-t{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px 20px 18px;border-radius:20px;background:#fff;border:1px solid var(--h-line);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.st-t::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--c);opacity:.85}
.st-t:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 40%,transparent);box-shadow:0 18px 38px rgba(11,37,64,.1)}
.st-t.pop{animation:fadeup .45s var(--ease)}
.st-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.st-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff)}
.st-ic svg{width:23px;height:23px}
.st-cat{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c);text-align:right;line-height:1.3}
.st-t h3{font-family:var(--disp);font-weight:400;font-size:1.28rem;letter-spacing:-.02em;line-height:1.2;color:var(--h-ink);margin-top:4px}
.st-q{margin:0;font-size:.9rem;font-style:italic;line-height:1.4;color:var(--h-mute)}
.st-c{display:flex;flex-wrap:wrap;gap:5px;list-style:none;margin:2px 0 0;padding:0}
.st-c li{font-size:.76rem;line-height:1.2;padding:5px 9px;border-radius:999px;color:var(--h-ink);background:color-mix(in srgb,var(--c) 8%,#fff);border:1px solid color-mix(in srgb,var(--c) 18%,transparent)}
.st-f{margin-top:auto;padding-top:12px;border-top:1px solid var(--h-line);display:flex;flex-wrap:wrap;gap:4px 14px}
.st-f a{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;font-weight:500;color:var(--h-acc)}
.st-f a svg{width:12px;height:12px}
.st-f a:hover{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1180px){.st-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.st-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.st-tabs{border-radius:20px}}
@media (max-width:560px){.st-grid{grid-template-columns:1fr}.st-tabs button{min-height:36px;padding:0 12px;font-size:.86rem}}
@media (prefers-reduced-motion:reduce){.st-t,.st-t.pop{transition:none;animation:none}}

/* credentials: certificates, then policy, then awards */
.sec-h+.certs{margin-top:0}
.cert-h+.proof{margin-top:48px}
.pol-a.logo{width:min(210px,100%)}
.pol-w{display:inline-block;font-size:.9rem;color:#0E7FD6;margin-bottom:6px;font-variant-numeric:tabular-nums}
.proof-img.duo{gap:clamp(12px,2vw,24px)}
.proof-img.duo img{max-width:calc(50% - 12px)}

/* intelligence chain v2: sources, connectors, calibration loop, decision card */
.ch{padding-top:clamp(26px,3vw,40px)}
.ch-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
.ch>*:not(.ch-svg){position:relative;z-index:1}
.ch-src{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:56px}
.ch-srch{display:flex;flex-direction:column;gap:4px;min-width:0}
.ch-srch .ch-k{text-align:left;margin:0 0 14px}
.ch-srch b{font-family:var(--disp);font-weight:400;font-size:clamp(1.3rem,1.8vw,1.6rem);letter-spacing:-.02em;color:#fff}
.ch-srch small{font-size:.88rem;color:#8FB3D1}
.ch-icons{display:flex;gap:12px;list-style:none;margin:0;padding:0;flex-wrap:wrap;justify-content:flex-end}
.ch-icons li{display:flex;flex-direction:column;align-items:center;gap:7px;width:68px}
.ch-sib{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;color:#9FD3FF;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.ch-sib svg{width:24px;height:24px;overflow:visible}
.ch-icons small{font-size:.74rem;color:#A9C4DA;text-align:center;line-height:1.2}
.ch.live .ch-sib{animation:chglow 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * .45s)}
@keyframes chglow{0%,70%,100%{border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}80%{border-color:rgba(56,214,196,.7);box-shadow:0 0 18px rgba(56,214,196,.35)}}
.ch-rain{stroke-dasharray:2.5 3;animation:chrain .9s linear infinite}
@keyframes chrain{to{stroke-dashoffset:-11}}
.ch-rays{transform-origin:12px 12px;animation:dxspin 16s linear infinite}
.ch-ping{animation:chping 2.2s ease-in-out infinite}
@keyframes chping{0%,100%{opacity:.35}50%{opacity:1}}
/* connectors drawn by script */
.ch-feed,.ch-bus,.ch-loop,.ch-band{fill:none;stroke-linecap:round}
.ch-feed{stroke:rgba(143,179,209,.45);stroke-width:1.2;stroke-dasharray:2 5}
.ch-bus{stroke:url(#chg);stroke-width:1.6;stroke-dasharray:6 6;opacity:.85}
.ch-loop{stroke:#7FF0E2;stroke-width:1.4;stroke-dasharray:4 5;opacity:.75}
.ch-band{stroke:rgba(56,214,196,.22);stroke-width:12}
.ch.live .ch-feed,.ch.live .ch-bus,.ch.live .ch-loop{animation:chdash 1.2s linear infinite}
@keyframes chdash{to{stroke-dashoffset:-22}}
.ch-dot{fill:#BFF7EF;filter:drop-shadow(0 0 4px rgba(56,214,196,.9))}
.ch-feed-dot{fill:#9FD3FF}
.ch-band-dot{fill:#7FF0E2}
@media (max-width:1000px){
  .ch-src{flex-direction:column;align-items:flex-start;margin-bottom:28px}
  .ch-icons{justify-content:flex-start}
}
@media (max-width:560px){.ch-icons{gap:8px}.ch-icons li{width:58px}.ch-sib{width:44px;height:44px}}
@media (prefers-reduced-motion:reduce){.ch-rain,.ch-rays,.ch-ping,.ch-flow,.ch.live .ch-sib,.ch.live .ch-feed,.ch.live .ch-bus,.ch.live .ch-loop{animation:none}}

/* ===== layout width and section headers on wide screens ===== */
.wrap{max-width:1600px}
@media (min-width:1100px){
  .sec-h{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:end;column-gap:clamp(32px,5vw,96px)}
  .sec-h>.lead{justify-self:end;margin-bottom:6px}
}

/* what we do: domain hub */
.wwd-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(24px,4vw,64px)}
.wwd-h .lead{justify-self:start;margin-top:20px}
.hub{width:100%;max-width:640px;height:auto;justify-self:end;overflow:visible}
.hub-orb{fill:none;stroke:rgba(11,37,64,.16);stroke-width:1.2;stroke-dasharray:3 7;animation:chdash 3s linear infinite}
.hub-orb.in{stroke:rgba(14,127,214,.22);animation-direction:reverse}
.hub-ln{fill:none;stroke:rgba(11,37,64,.18);stroke-width:1.2}
.hub-dot{opacity:.9}
.hub-pulse{fill:rgba(14,127,214,.18);transform-box:fill-box;transform-origin:50% 50%;animation:hubp 3s ease-out infinite}
@keyframes hubp{from{transform:scale(1);opacity:.9}to{transform:scale(1.6);opacity:0}}
.hub-c1{fill:#fff;font:500 13px var(--sans)}
.hub-n{cursor:pointer;outline:none}
.hub-ring{fill:none;stroke:var(--c);stroke-width:1.6;opacity:0;transition:opacity .35s}
.hub-n:hover .hub-ring,.hub-n:focus-visible .hub-ring{opacity:.55}
.hub-n.on .hub-ring{opacity:.9;stroke-dasharray:4 4;animation:chdash 1.6s linear infinite}
.hub-t{font:500 13px var(--sans);fill:#0B2540}
.hub-n.on .hub-t{font-weight:600}
@media (max-width:1000px){.wwd-h{grid-template-columns:1fr}.hub{justify-self:center;max-width:520px}}
@media (prefers-reduced-motion:reduce){.hub-orb,.hub-pulse,.hub-n.on .hub-ring{animation:none}}

/* intelligence chain v3: bottom row with calibration and decision */
.ch-bot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:64px;align-items:stretch}
.ch-bot .ch-tag{grid-column:1;align-self:end;margin:0;text-align:left;font-size:clamp(1.2rem,1.7vw,1.6rem);line-height:1.2}
.ch-cal{grid-column:2/4}.ch-dec{grid-column:4/6}
.ch-cal,.ch-dec{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid rgba(127,240,226,.32);box-shadow:0 20px 44px rgba(0,0,0,.25);min-width:0}
.ch-ch{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ch-ch small{font-size:.78rem;color:#8FB3D1}
.ch-cl,.ch-live{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7FF0E2}
.ch-cl svg{width:16px;height:16px}
.ch.live .ch-cl svg{animation:dxspin 3s linear infinite}
.ch-live i{width:8px;height:8px;border-radius:50%;background:#FF8A6B;animation:chlive 1.8s ease-out infinite}
@keyframes chlive{from{box-shadow:0 0 0 0 rgba(255,138,107,.65)}to{box-shadow:0 0 0 9px rgba(255,138,107,0)}}
.cal-svg{display:block;width:100%;height:auto;border-radius:12px;background:#0A1E33}
.cal-grid path{stroke:rgba(160,200,230,.1);stroke-width:1}
.cal-ax{fill:none;stroke:rgba(160,200,230,.35);stroke-width:1}
.cal-t{fill:#6F93B1;font:500 10px var(--sans)}
.cal-sim{fill:none;stroke:#38D6C4;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(56,214,196,.5))}
.cal-obs circle{fill:#FFD27A}
.cal-run{fill:#CFE3F3;font:600 11px var(--sans);letter-spacing:.06em}
.cal-run.ok{fill:#7FF0E2}
.cal-fit{display:flex;align-items:center;gap:10px;font-size:.76rem;color:#8FB3D1}
.cal-fit i{flex:1;height:6px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden}
.cal-fit b{display:block;height:100%;width:30%;border-radius:999px;background:linear-gradient(90deg,#FF8A6B,#FFD27A 50%,#38D6C4)}
.ch.live .cal-fit b{animation:calfit 9s infinite}
@keyframes calfit{0%,10%{width:30%}30%,40%{width:64%}60%,90%{width:96%}100%{width:30%}}
.ch-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.78rem;color:#A9C4DA}
.ch-legend span{display:inline-flex;align-items:center;gap:7px}
.lg-obs{width:7px;height:7px;border-radius:50%;background:#FFD27A}
.lg-sim{width:18px;height:3px;border-radius:2px;background:#38D6C4}
.dec-b{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:stretch}
.dec-map{display:block;width:100%;height:auto;border-radius:12px}
.dec-cont path{fill:none;stroke:rgba(160,200,230,.12);stroke-width:1}
.dec-l{fill:#CFE3F3;font:600 10px var(--sans)}
.dec-l.sm{font-size:9px;fill:#8FB3D1}
.dec-route{animation:chdash 1.4s linear infinite}
.dec-pulse{transform-box:fill-box;transform-origin:50% 50%;animation:decp 2.6s ease-out infinite}
@keyframes decp{from{transform:scale(1);opacity:.9}to{transform:scale(4);opacity:0}}
.dec-act{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dec-act li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.ch.live .dec-act li{animation:decin 8s infinite;animation-delay:calc(var(--i) * .9s)}
@keyframes decin{0%,4%{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.05)}10%,30%{border-color:rgba(127,240,226,.55);background:rgba(56,214,196,.12)}45%,100%{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.05)}}
.dec-ic{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(56,214,196,.14);color:#7FF0E2}
.dec-ic svg{width:16px;height:16px}
.dec-tx{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.dec-tx b{font-weight:500;font-size:.86rem;color:#fff}
.dec-tx small{font-size:.74rem;color:#7FF0E2}
.dec-tl{display:flex;align-items:center;gap:12px}
.dec-tll{flex:none;font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8FB3D1}
.dec-track{position:relative;flex:1;height:30px;margin:0 12px}
.dec-track::before{content:'';position:absolute;left:0;right:0;top:10px;height:2px;border-radius:2px;background:rgba(255,255,255,.14)}
.dec-front{position:absolute;left:0;top:10px;height:2px;width:0;border-radius:2px;background:linear-gradient(90deg,#1C5FA8,#7CC8FF)}
.dec-front::after{content:'';position:absolute;right:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#7CC8FF;box-shadow:0 0 10px #7CC8FF}
.ch.live .dec-front{animation:decf 8s linear infinite}
@keyframes decf{0%{width:0}70%,90%{width:100%}100%{width:0}}
.dec-track em{position:absolute;top:0;transform:translateX(-50%);font-style:normal;font-size:.68rem;font-weight:600;color:#CFE3F3;padding-top:17px}
.dec-track em::before{content:'';position:absolute;left:50%;top:6px;width:8px;height:8px;margin-left:-5px;border-radius:50%;background:#0A1E33;border:1.5px solid #FF8A6B}
.dec-track em:first-of-type::before{border-color:#5FB8F5}
@media (max-width:1180px){.dec-b{grid-template-columns:1fr}}
@media (max-width:1000px){.ch-bot{grid-template-columns:1fr;margin-top:28px}.ch-bot>*{grid-column:auto!important}.dec-b{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
@media (max-width:600px){.dec-b{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ch-cl svg,.ch-live i,.cal-fit b,.dec-route,.dec-pulse,.dec-act li,.dec-front{animation:none!important}.dec-front{width:100%}.cal-fit b{width:96%}}

/* ===== spacing pass: even section rhythm, compact closing call to action ===== */
.sec{padding:clamp(56px,6vw,96px) 0}
.sec.close{min-height:0;padding:clamp(56px,6vw,96px) 0!important}
.close h2{font-size:clamp(2.3rem,4.4vw,4.2rem);max-width:20ch;margin:0 auto 28px}
.home .close .contact{display:none} .home .sec.close{position:relative;background-image:radial-gradient(1100px 460px at 92% -8%,rgba(46,140,200,.12),transparent 62%),radial-gradient(900px 380px at 4% 106%,rgba(56,214,196,.07),transparent 60%)}
.close .contact{margin-top:28px}

/* ===== from data to decision v5: light process, inputs, calibration, outputs ===== */
.sec:has(> .wrap > .dd){background-color:#F7FBFD;background-image:radial-gradient(900px 420px at 88% 8%,rgba(14,127,214,.08),transparent 65%),radial-gradient(800px 380px at 6% 96%,rgba(31,165,150,.08),transparent 65%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='900' viewBox='0 0 1600 900'%3E%3Cg fill='none' stroke='%230E7FD6' stroke-opacity='.07' stroke-width='1.2'%3E%3Cpath d='M-40 29.5 L0 40.0 L40 50.5 L80 59.9 L120 67.3 L160 71.9 L200 73.5 L240 72.3 L280 68.8 L320 63.8 L360 58.2 L400 52.9 L440 48.7 L480 46.0 L520 44.9 L560 45.1 L600 45.9 L640 46.8 L680 46.8 L720 45.4 L760 42.0 L800 36.8 L840 30.0 L880 22.3 L920 14.6 L960 7.9 L1000 3.2 L1040 1.3 L1080 2.5 L1120 6.9 L1160 14.1 L1200 23.3 L1240 33.4 L1280 43.4 L1320 52.2 L1360 58.9 L1400 63.1 L1440 64.8 L1480 64.1 L1520 61.8 L1560 58.6 L1600 55.4 L1640 52.9'/%3E%3Cpath d='M-40 125.5 L0 132.2 L40 136.1 L80 136.8 L120 134.8 L160 130.5 L200 124.9 L240 118.8 L280 113.2 L320 108.7 L360 105.9 L400 104.7 L440 104.8 L480 105.6 L520 106.3 L560 106.1 L600 104.6 L640 101.2 L680 96.0 L720 89.3 L760 82.0 L800 74.8 L840 68.9 L880 65.0 L920 64.1 L960 66.2 L1000 71.5 L1040 79.4 L1080 89.1 L1120 99.4 L1160 109.4 L1200 117.9 L1240 124.2 L1280 127.8 L1320 128.8 L1360 127.5 L1400 124.6 L1440 120.9 L1480 117.3 L1520 114.6 L1560 113.1 L1600 113.1 L1640 114.2'/%3E%3Cpath d='M-40 199.7 L0 196.8 L40 191.8 L80 185.5 L120 179.0 L160 173.1 L200 168.5 L240 165.6 L280 164.3 L320 164.4 L360 165.1 L400 165.7 L440 165.5 L480 163.9 L520 160.5 L560 155.4 L600 149.0 L640 142.1 L680 135.5 L720 130.3 L760 127.4 L800 127.3 L840 130.4 L880 136.5 L920 145.0 L960 155.1 L1000 165.6 L1040 175.4 L1080 183.6 L1120 189.3 L1160 192.3 L1200 192.6 L1240 190.6 L1280 187.1 L1320 182.9 L1360 178.9 L1400 175.8 L1440 174.1 L1480 173.8 L1520 174.7 L1560 176.3 L1600 177.7 L1640 178.1'/%3E%3Cpath d='M-40 245.8 L0 238.8 L40 232.7 L80 228.0 L120 225.0 L160 223.8 L200 223.9 L240 224.6 L280 225.3 L320 225.0 L360 223.4 L400 220.0 L440 215.1 L480 209.0 L520 202.5 L560 196.6 L600 192.2 L640 190.1 L680 191.0 L720 194.9 L760 201.8 L800 210.8 L840 221.2 L880 231.7 L920 241.3 L960 249.0 L1000 254.2 L1040 256.5 L1080 256.0 L1120 253.4 L1160 249.2 L1200 244.5 L1240 240.1 L1280 236.7 L1320 234.8 L1360 234.3 L1400 235.0 L1440 236.3 L1480 237.4 L1520 237.5 L1560 236.0 L1600 232.5 L1640 226.8'/%3E%3Cpath d='M-40 287.2 L0 284.3 L40 283.2 L80 283.4 L120 284.2 L160 284.9 L200 284.7 L240 283.1 L280 279.9 L320 275.1 L360 269.4 L400 263.4 L440 258.1 L480 254.5 L520 253.3 L560 255.1 L600 259.8 L640 267.3 L680 276.8 L720 287.4 L760 297.8 L800 307.1 L840 314.3 L880 318.8 L920 320.3 L960 319.1 L1000 315.7 L1040 310.9 L1080 305.7 L1120 300.9 L1160 297.3 L1200 295.1 L1240 294.5 L1280 295.0 L1320 296.1 L1360 296.9 L1400 296.8 L1440 295.0 L1480 291.3 L1520 285.6 L1560 278.4 L1600 270.3 L1640 262.3'/%3E%3Cpath d='M-40 342.9 L0 343.9 L40 344.7 L80 344.6 L120 343.1 L160 340.0 L200 335.5 L240 330.2 L280 324.7 L320 320.1 L360 317.3 L400 316.9 L440 319.5 L480 325.0 L520 333.1 L560 342.9 L600 353.6 L640 363.9 L680 372.8 L720 379.3 L760 383.0 L800 383.7 L840 381.7 L880 377.5 L920 372.2 L960 366.5 L1000 361.4 L1040 357.5 L1080 355.2 L1120 354.4 L1160 354.8 L1200 355.7 L1240 356.4 L1280 356.1 L1320 354.1 L1360 350.3 L1400 344.6 L1440 337.5 L1480 329.8 L1520 322.4 L1560 316.3 L1600 312.4 L1640 311.4'/%3E%3Cpath d='M-40 404.7 L0 403.3 L40 400.4 L80 396.3 L120 391.3 L160 386.5 L200 382.6 L240 380.5 L280 380.9 L320 384.3 L360 390.4 L400 399.0 L440 409.1 L480 419.8 L520 429.8 L560 438.2 L600 444.0 L640 446.9 L680 446.7 L720 443.9 L760 439.0 L800 433.0 L840 426.9 L880 421.5 L920 417.4 L960 415.0 L1000 414.2 L1040 414.5 L1080 415.3 L1120 415.9 L1160 415.4 L1200 413.3 L1240 409.5 L1280 403.9 L1320 397.0 L1360 389.7 L1400 382.9 L1440 377.5 L1480 374.6 L1520 374.6 L1560 377.8 L1600 383.9 L1640 392.5'/%3E%3Cpath d='M-40 457.4 L0 452.9 L40 448.6 L80 445.4 L120 444.1 L160 445.3 L200 449.3 L240 456.1 L280 465.0 L320 475.3 L360 485.8 L400 495.5 L440 503.3 L480 508.4 L520 510.4 L560 509.3 L600 505.6 L640 500.0 L680 493.5 L720 486.9 L760 481.3 L800 477.1 L840 474.6 L880 473.8 L920 474.1 L960 474.8 L1000 475.3 L1040 474.8 L1080 472.7 L1120 468.8 L1160 463.4 L1200 456.8 L1240 450.0 L1280 443.8 L1320 439.3 L1360 437.2 L1400 438.1 L1440 442.2 L1480 449.1 L1520 458.2 L1560 468.6 L1600 479.0 L1640 488.5'/%3E%3Cpath d='M-40 508.6 L0 508.0 L40 509.9 L80 514.6 L120 521.9 L160 531.1 L200 541.5 L240 551.8 L280 561.0 L320 568.0 L360 572.3 L400 573.4 L440 571.4 L480 566.9 L520 560.6 L560 553.5 L600 546.6 L640 540.8 L680 536.5 L720 534.1 L760 533.2 L800 533.6 L840 534.4 L880 534.9 L920 534.3 L960 532.2 L1000 528.5 L1040 523.2 L1080 517.0 L1120 510.7 L1160 505.2 L1200 501.5 L1240 500.3 L1280 502.1 L1320 507.0 L1360 514.6 L1400 524.2 L1440 534.7 L1480 545.1 L1520 554.3 L1560 561.3 L1600 565.5 L1640 566.9'/%3E%3Cpath d='M-40 580.1 L0 587.8 L40 597.2 L80 607.5 L120 617.5 L160 626.1 L200 632.5 L240 635.8 L280 636.0 L320 633.1 L360 627.8 L400 620.8 L440 613.2 L480 606.0 L520 600.0 L560 595.8 L600 593.4 L640 592.7 L680 593.1 L720 594.0 L760 594.5 L800 594.0 L840 592.0 L880 588.4 L920 583.4 L960 577.6 L1000 571.8 L1040 567.0 L1080 564.1 L1120 563.8 L1160 566.5 L1200 572.1 L1240 580.3 L1280 590.3 L1320 600.9 L1360 611.2 L1400 619.9 L1440 626.3 L1480 629.9 L1520 630.5 L1560 628.5 L1600 624.5 L1640 619.4'/%3E%3Cpath d='M-40 673.4 L0 683.0 L40 691.0 L80 696.5 L120 698.9 L160 698.1 L200 694.3 L240 688.2 L280 680.6 L320 672.6 L360 665.2 L400 659.1 L440 654.9 L480 652.6 L520 652.1 L560 652.7 L600 653.7 L640 654.4 L680 653.9 L720 652.1 L760 648.6 L800 643.9 L840 638.6 L880 633.4 L920 629.3 L960 627.2 L1000 627.7 L1040 631.2 L1080 637.5 L1120 646.2 L1160 656.5 L1200 667.1 L1240 677.1 L1280 685.4 L1320 691.1 L1360 693.8 L1400 693.6 L1440 690.8 L1480 686.1 L1520 680.5 L1560 674.8 L1600 669.9 L1640 666.4'/%3E%3Cpath d='M-40 760.0 L0 761.5 L40 759.7 L80 755.0 L120 748.1 L160 740.0 L200 731.6 L240 724.0 L280 718.0 L320 713.9 L360 711.9 L400 711.6 L440 712.4 L480 713.6 L520 714.4 L560 714.1 L600 712.4 L640 709.2 L680 704.9 L720 699.9 L760 695.3 L800 692.0 L840 690.7 L880 692.0 L920 696.2 L960 703.2 L1000 712.3 L1040 722.7 L1080 733.3 L1120 742.9 L1160 750.5 L1200 755.5 L1240 757.4 L1280 756.3 L1320 752.7 L1360 747.3 L1400 741.1 L1440 735.0 L1480 729.9 L1520 726.2 L1560 724.2 L1600 723.7 L1640 724.2'/%3E%3Cpath d='M-40 815.3 L0 807.7 L40 799.1 L80 790.4 L120 782.7 L160 776.8 L200 772.9 L240 771.1 L280 771.1 L320 772.2 L360 773.7 L400 774.7 L440 774.6 L480 773.1 L520 770.2 L560 766.2 L600 761.7 L640 757.7 L680 755.1 L720 754.5 L760 756.6 L800 761.5 L840 769.0 L880 778.4 L920 788.9 L960 799.2 L1000 808.4 L1040 815.4 L1080 819.5 L1120 820.6 L1160 818.6 L1200 814.2 L1240 808.1 L1280 801.4 L1320 794.9 L1360 789.6 L1400 785.8 L1440 783.8 L1480 783.3 L1520 783.8 L1560 784.6 L1600 784.8 L1640 783.9'/%3E%3Cpath d='M-40 849.0 L0 841.3 L40 835.5 L80 831.9 L120 830.5 L160 830.9 L200 832.3 L240 834.0 L280 835.3 L320 835.4 L360 834.2 L400 831.5 L440 827.9 L480 823.9 L520 820.5 L560 818.5 L600 818.7 L640 821.5 L680 827.0 L720 834.9 L760 844.5 L800 855.0 L840 865.0 L880 873.6 L920 879.9 L960 883.2 L1000 883.3 L1040 880.4 L1080 875.2 L1120 868.5 L1160 861.3 L1200 854.5 L1240 849.0 L1280 845.2 L1320 843.2 L1360 842.8 L1400 843.3 L1440 844.1 L1480 844.4 L1520 843.5 L1560 841.0 L1600 836.8 L1640 831.3'/%3E%3C/g%3E%3C/svg%3E");background-size:auto,auto,1600px 900px;background-position:0 0,0 0,center;background-repeat:no-repeat}
.dd{--ink:#0B2540;--mu:#4D6E86;--ac:#0E7FD6;--tl:#1FA596;--ln:rgba(11,37,64,.1);position:relative;display:flex;flex-direction:column}
.dd .ch-rain,.dd .ch-rays,.dd .ch-ping,.dd .ch-flow{animation:none}
.dd.live .ch-rain{animation:chrain .9s linear infinite}.dd.live .ch-rays{animation:dxspin 16s linear infinite}.dd.live .ch-ping{animation:chping 2.2s ease-in-out infinite}.dd.live .ch-flow{animation:chrain 1.6s linear infinite}
.dd-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
.dd>*:not(.dd-svg){position:relative;z-index:1}
.dd-src{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:54px}
.dd-srch{display:flex;flex-direction:column;gap:6px}
.dd-k{display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ac)}
.dd-srch b{font-family:var(--disp);font-weight:400;font-size:clamp(1.25rem,1.7vw,1.5rem);letter-spacing:-.02em;color:var(--ink)}
.dd-in{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
.dd-in li{display:flex;flex-direction:column;align-items:center;gap:7px;width:70px}
.dd-in span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:var(--ac);background:#fff;border:1px solid var(--ln);box-shadow:0 6px 16px rgba(11,37,64,.05)}
.dd-in span svg{width:23px;height:23px;overflow:visible}
.dd-in small{font-size:.76rem;color:var(--mu);text-align:center;line-height:1.2}
.dd.live .dd-in span{animation:ddglow 4s ease-in-out infinite;animation-delay:calc(var(--i) * .5s)}
@keyframes ddglow{0%,72%,100%{border-color:rgba(11,37,64,.1)}82%{border-color:rgba(14,127,214,.55);box-shadow:0 0 0 4px rgba(14,127,214,.08)}}
.dd-main{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:16px}
.dd-track{grid-column:1/-1;grid-row:1;position:relative;height:44px;margin:0 10%;pointer-events:none}
.dd-track::before,.dd-track i{content:'';position:absolute;left:0;top:21px;height:2px;border-radius:2px}
.dd-track::before{right:0;background:var(--ln)}
.dd-track i{width:calc(var(--a) / 4 * 100%);background:linear-gradient(90deg,var(--ac),var(--tl));transition:width .8s var(--ease)}
.dd-steps{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:subgrid;list-style:none;margin:0;padding:0}
.dd-s{display:flex;flex-direction:column;align-items:center;gap:18px;outline:none;cursor:default}
.dd-n{position:relative;z-index:1;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--mu);background:#fff;border:1.5px solid var(--ln);transition:color .4s,border-color .4s,background .4s}
.dd-s.past .dd-n{color:var(--ac);border-color:rgba(14,127,214,.45)}
.dd-s.on .dd-n{color:#fff;background:var(--ac);border-color:var(--ac);box-shadow:0 0 0 6px rgba(14,127,214,.12)}
.dd-c{align-self:stretch;flex:1;display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:18px;background:rgba(255,255,255,.75);border:1px solid var(--ln);transition:background .4s,border-color .4s,box-shadow .4s,transform .4s var(--ease)}
.dd-s.on .dd-c{background:#fff;border-color:rgba(14,127,214,.35);box-shadow:0 16px 34px rgba(11,37,64,.09);transform:translateY(-3px)}
.dd-s:focus-visible .dd-c{outline:2px solid var(--ac);outline-offset:3px}
.dd-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--ac);background:#E6F2FB;margin-bottom:4px}
.dd-ic svg{width:21px;height:21px}
.dd-c h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.25rem,1.6vw,1.5rem);letter-spacing:-.02em;color:var(--ink)}
.dd-c p{margin:0;font-size:.92rem;line-height:1.4;color:var(--mu)}
.dd-c ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.dd-c ul li{font-size:.78rem;line-height:1.2;padding:5px 9px;border-radius:999px;color:var(--ink);background:#fff;border:1px solid var(--ln)}
.dd-bot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:58px;align-items:stretch}
.dd-tag{grid-column:1;align-self:end;margin:0;font-family:var(--disp);font-weight:300;font-size:clamp(1.2rem,1.7vw,1.55rem);line-height:1.2;letter-spacing:-.02em;color:var(--mu)}
.dd-tag b{font-weight:500;color:var(--ink)}
.dd-cal{grid-column:2/4}.dd-out{grid-column:4/6}
.dd-tile{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border-radius:20px;background:#fff;border:1px solid rgba(31,165,150,.3);box-shadow:0 16px 36px rgba(11,37,64,.07);min-width:0}
.dd-th{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dd-tk{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tl)}
.dd-tk svg{width:16px;height:16px}
.dd.live .dd-cal .dd-tk svg{animation:dxspin 3s linear infinite}
.dd-th small{font-size:.78rem;color:var(--mu)}
.dc-svg{display:block;width:100%;height:auto;border-radius:12px;background:#F5F9FC}
.dc-grid path{stroke:rgba(11,37,64,.07);stroke-width:1}
.dc-ax{fill:none;stroke:rgba(11,37,64,.25);stroke-width:1}
.dc-sim{fill:none;stroke:var(--tl);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.dc-obs circle{fill:#E59A2F}
.dc-run{fill:var(--ink);font:600 11px var(--sans);letter-spacing:.04em}
.dc-run.ok{fill:var(--tl)}
.dd-leg{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:.78rem;color:var(--mu)}
.dd-leg span{display:inline-flex;align-items:center;gap:7px}
.lg-o{width:7px;height:7px;border-radius:50%;background:#E59A2F}
.lg-s{width:18px;height:3px;border-radius:2px;background:var(--tl)}
.dd-fit{margin-left:auto;flex:1 1 120px;max-width:200px}
.dd-fit i{flex:1;height:6px;border-radius:999px;background:rgba(11,37,64,.08);overflow:hidden}
.dd-fit b{display:block;height:100%;width:30%;border-radius:999px;background:linear-gradient(90deg,#E59A2F,var(--tl))}
.dd.live .dd-fit b{animation:ddfit 9s infinite}
@keyframes ddfit{0%,10%{width:30%}30%,40%{width:64%}60%,90%{width:96%}100%{width:30%}}
.dd-ot{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dd-ot li{display:flex;align-items:center;gap:12px;padding:7px 12px;border-radius:12px;font-size:.92rem;color:var(--ink);background:#F5F9FC;border:1px solid transparent}
.dd-ot li span{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:var(--tl);background:rgba(31,165,150,.12)}
.dd-ot li svg{width:17px;height:17px}
.dd.live .dd-ot li{animation:ddout 7.5s infinite;animation-delay:calc(var(--i) * 1.5s)}
@keyframes ddout{0%,4%{background:#F5F9FC;border-color:transparent}10%,22%{background:#fff;border-color:rgba(31,165,150,.45)}32%,100%{background:#F5F9FC;border-color:transparent}}
.dd-feed,.dd-bus,.dd-loop,.dd-band{fill:none;stroke-linecap:round}
.dd-feed{stroke:rgba(14,127,214,.35);stroke-width:1.2;stroke-dasharray:2 5}
.dd-bus{stroke:rgba(14,127,214,.55);stroke-width:1.5;stroke-dasharray:6 6}
.dd-loop{stroke:var(--tl);stroke-width:1.4;stroke-dasharray:4 5}
.dd-band{stroke:rgba(31,165,150,.18);stroke-width:10}
.dd.live .dd-feed,.dd.live .dd-bus,.dd.live .dd-loop{animation:chdash 1.2s linear infinite}
.dd-dot{fill:var(--ac)}
.dd-loop-dot,.dd-band-dot{fill:var(--tl)}
@media (max-width:1000px){
  .dd-src{flex-direction:column;align-items:flex-start;margin-bottom:24px}
  .dd-in{justify-content:flex-start}
  .dd-main{grid-template-columns:1fr}
  .dd-track{display:none}
  .dd-steps{grid-template-columns:1fr;gap:12px}
  .dd-s{flex-direction:row;align-items:flex-start;gap:14px}
  .dd-s.on .dd-c{transform:none}
  .dd-bot{grid-template-columns:1fr;margin-top:24px}
  .dd-bot>*{grid-column:auto!important}
}
@media (max-width:560px){.dd-in{gap:8px}.dd-in li{width:60px}.dd-in span{width:44px;height:44px}}
@media (prefers-reduced-motion:reduce){.dd-track i,.dd-n,.dd-c{transition:none}.dd *{animation:none!important}.dd-fit b{width:96%}}

.dd-cap{margin:0;font-size:.88rem;line-height:1.5;color:var(--mu)}


.sec-h:has(+ .dd){margin-bottom:18px}
.dd-tl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 clamp(36px,4vw,52px);font-family:var(--disp);font-weight:300;font-size:clamp(1.25rem,2vw,1.75rem);letter-spacing:-.02em;color:var(--mu)}
.dd-tl span{white-space:nowrap}
.dd-tl b{font-weight:500}
.dd-tl span:nth-of-type(1) b{color:var(--ac)}
.dd-tl span:nth-of-type(2) b{color:var(--tl)}
.dd-tl span:nth-of-type(3) b{color:#C96A1B}
.dd-tl i{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--ln);color:var(--mu)}
.dd-tl i svg{width:15px;height:15px}
@media (max-width:640px){.dd-tl{flex-direction:column;align-items:flex-start;gap:6px}.dd-tl i{transform:rotate(90deg);width:24px;height:24px}}

/* hero strip: slim band in proportion with the nav and headline */
.hero .marq-t{padding:20px 0}
.hero .marq-t span{gap:36px;padding-right:36px;font-family:var(--disp);font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:500;letter-spacing:.01em;color:#3C5C74}
.hero .marq-t span::after{width:7px;height:7px}

/* credentials section: each intro line sits directly under its heading */
section:has(.certs) .sec-h{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
section:has(.certs) .sec-h>.lead,section:has(.certs) .cert-h p{justify-self:auto;margin:0;max-width:62ch}
section:has(.certs) .cert-h{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:14px}
section:has(.certs) .cert-h h2{max-width:none}

/* awards: logo panels at the same scale as the certificate and policy logos */
.proof-img{height:clamp(112px,11vw,150px);padding:16px 20px;border-radius:16px}
.proof{gap:clamp(20px,3vw,40px)}

/* insights: intro text sits directly under each heading */
:is(#ins-ti,#learning-tools,#ins-data,#ins-faq,#ins-mf,#ins-pubs) .sec-h{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
:is(#ins-ti,#learning-tools,#ins-data,#ins-pubs) .sec-h>.lead{justify-self:auto;margin:0;max-width:62ch}

/* learning tools group headers: heading and label left, short description right */
.lt .lt-gh{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);align-items:center;gap:8px 40px;padding-bottom:14px}
.lt .lt-gh h3{font-size:clamp(1.5rem,2.2vw,2rem)}
.lt .lt-gh p{font-size:.95rem;line-height:1.5;max-width:70ch;justify-self:end;text-align:right}
@media (max-width:760px){.lt .lt-gh{grid-template-columns:1fr}.lt .lt-gh p{justify-self:start;text-align:left}}

/* how it works: compact so the whole diagram fits one laptop screen */
@media (min-width:1001px){
  .sec:has(> .wrap > .dd){padding-top:clamp(48px,6.5vh,72px);padding-bottom:clamp(48px,6.5vh,72px)}
  .sec-h:has(+ .dd){margin-bottom:10px}
  .dd-tl{margin-bottom:22px;font-size:clamp(1.1rem,1.5vw,1.45rem);gap:8px 14px}
  .dd-tl i{width:26px;height:26px}
  .dd-src{margin-bottom:22px}
  .dd-srch b{font-size:clamp(1.05rem,1.3vw,1.25rem)}
  .dd-in{gap:8px}.dd-in li{width:64px;gap:5px}.dd-in span{width:42px;height:42px;border-radius:12px}.dd-in span svg{width:20px;height:20px}.dd-in small{font-size:.72rem}
  .dd-track{height:36px}.dd-track::before,.dd-track i{top:17px}
  .dd-n{width:36px;height:36px;font-size:.78rem}
  .dd-s{gap:10px}
  .dd-c{position:relative;gap:5px;padding:14px 16px 16px;border-radius:16px}
  .dd-ic{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:10px;margin:0}.dd-ic svg{width:18px;height:18px}
  .dd-c h3{font-size:clamp(1.15rem,1.4vw,1.35rem);padding-right:40px}
  .dd-c p{font-size:.86rem}
  .dd-c ul{margin-top:4px;gap:5px}.dd-c ul li{font-size:.74rem;padding:4px 8px}
  .dd-bot{margin-top:34px;gap:16px}
  .dd-tile{gap:9px;padding:14px 18px;border-radius:18px}
  .dd-cap{font-size:.82rem;line-height:1.4}
  .dd-ot{gap:5px}.dd-ot li{padding:4px 10px;gap:10px;font-size:.88rem}.dd-ot li span{width:26px;height:26px;border-radius:8px}.dd-ot li svg{width:15px;height:15px}
}
/* wide screens: tagline and the input sources share one row */
@media (min-width:1240px){
  .dd{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:32px;align-items:end}
  .dd>.dd-main,.dd>.dd-bot{grid-column:1/-1}
  .dd-tl{grid-column:1;grid-row:1;margin-bottom:22px;align-self:center}
  .dd-src{grid-column:2;grid-row:1;flex-direction:column;align-items:flex-end;gap:8px}
  .dd-srch{flex-direction:row;align-items:baseline;gap:10px}
  .dd-srch b{font-family:var(--sans);font-size:.82rem;font-weight:400;letter-spacing:0;color:var(--mu)}
}
@media (min-width:1240px){
  .dd-src{flex-direction:row;align-items:center;gap:14px}
  .dd-srch b{display:none}
  .dd-srch .dd-k{font-size:.68rem;margin-bottom:22px}
}
@media (min-width:1001px){
  .dd-ot{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .dd-ot li:last-child{grid-column:1/-1}
  .dd-out{justify-content:flex-start}.dd-ot{flex:1;grid-auto-rows:1fr}
}
@media (min-width:1001px) and (max-height:820px){
  .sec:has(> .wrap > .dd){padding-top:36px;padding-bottom:36px}
  .sec:has(> .wrap > .dd) .sec-h h2{font-size:clamp(2.2rem,4.2vw,3.4rem)}
}
/* how it works: a little more breathing room (still one screen at 1440 x 900) */
@media (min-width:1001px){
  .sec:has(> .wrap > .dd){padding-top:clamp(44px,5.5vh,80px);padding-bottom:clamp(44px,5.5vh,80px)}
  .sec-h:has(+ .dd){margin-bottom:14px}
  .dd-tl{margin-bottom:28px}
  .dd-src{margin-bottom:28px}
  .dd-s{gap:13px}
  .dd-c{gap:6px;padding:17px 18px 18px}
  .dd-c p{font-size:.9rem}
  .dd-c ul{margin-top:6px;gap:6px}.dd-c ul li{font-size:.76rem;padding:5px 9px}
  .dd-bot{margin-top:42px}
  .dd-tile{gap:11px;padding:16px 20px}
  .dd-ot{gap:7px}.dd-ot li{padding:6px 12px}
}
@media (min-width:1240px){.dd-tl{margin-bottom:28px}}
@media (min-width:1001px) and (max-height:820px){.sec:has(> .wrap > .dd){padding-top:38px;padding-bottom:38px}}
@media (min-width:1001px) and (max-height:820px){
  .dd-tl,.dd-src{margin-bottom:20px}.dd-s{gap:10px}.dd-c{gap:5px;padding:14px 16px 16px}
  .dd-c ul li{font-size:.74rem;padding:4px 8px}.dd-bot{margin-top:32px}.dd-tile{gap:9px;padding:14px 18px}.dd-ot{gap:5px}.dd-ot li{padding:4px 10px}
}


/* ===== footer (I2 from the Footer Lab) ===== */
.fg2-band{position:relative;width:min(74%,940px);margin:clamp(40px,4.4vw,64px) auto 0;aspect-ratio:247.43/56.7;overflow:hidden;color:#fff;opacity:.075;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 40%,rgba(0,0,0,.2) 100%);mask-image:linear-gradient(180deg,#000 40%,rgba(0,0,0,.2) 100%)}
.fg2-band svg{position:absolute;left:0;top:0;display:block;width:100%;height:auto}
/* I. The current footer in G2's dress */
.fi{--bg:#06111F;--line:rgba(255,255,255,.12);--t1:#EEF4FA;--t2:#B4C4D4;--t3:#8EA6BE;--acc:#E7922F;position:relative;z-index:2;overflow:hidden;background:radial-gradient(520px 420px at -6% 32%,rgba(28,92,160,.22),transparent 70%),var(--bg);color:var(--t2);padding:clamp(40px,3.6vw,54px) 0 14px;font-family:var(--sans,'Inter',system-ui,-apple-system,'Segoe UI',sans-serif);-webkit-font-smoothing:antialiased}
.fi *{box-sizing:border-box}
.fi a{color:var(--t1);text-decoration:none}
.fi a:focus-visible{outline:2px solid #F2B45E;outline-offset:3px;border-radius:2px}
.fi ul{list-style:none;margin:0;padding:0}
.fi-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.fi-top{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px;padding-bottom:clamp(22px,2.4vw,30px);border-bottom:1px solid var(--line)}
.fi-home{display:inline-block;padding:6px 0}
.fi-logo{display:block;width:104px;height:auto}
.fi-st{margin:14px 0 0;font-family:var(--disp,'Inter Tight','Inter',system-ui,sans-serif);font-size:clamp(1.45rem,2.3vw,2rem);font-weight:300;line-height:1.2;letter-spacing:-.02em;color:var(--t1)}
.fi .fi-h{margin:2px 0 14px;font-family:var(--sans,'Inter',system-ui,sans-serif);font-size:.76rem;font-weight:700;line-height:1.3;letter-spacing:.16em;text-transform:uppercase;color:var(--t1)}
.fi-talk .fi-h{text-align:right;margin-bottom:10px}
.fi-tr{display:flex;align-items:center;gap:14px}
.fi-ic{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.28);transition:border-color .2s}
.fi-ic:hover{border-color:var(--acc)}
.fi-ic svg{width:19px;height:19px}
.fi-mail{padding:4px 0;font-size:clamp(1.1rem,1.5vw,1.3rem);font-weight:500;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color .2s}
.fi-mail:hover{text-decoration-color:var(--acc)}
.fi-g{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,.75fr) minmax(0,.95fr);gap:32px clamp(28px,3.4vw,56px);align-items:start;padding-top:clamp(22px,2.4vw,30px)}
.fi address{margin:0;font-style:normal;font-size:.9rem;line-height:1.7;color:var(--t2)}
.fi address b{display:block;font-weight:500;color:var(--t1)}
.fi-ln{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:4px 0;font-size:.9rem;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:5px;text-decoration-thickness:1px;transition:text-decoration-color .2s}
.fi-ln svg{width:11px;height:11px;color:var(--acc)}
.fi-ln:hover{text-decoration-color:var(--acc)}
.fi-nav a{display:inline-block;padding:4px 0;font-size:.9rem;line-height:1.45;color:var(--t2);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px;text-decoration-thickness:1px;transition:color .2s,text-decoration-color .2s}
.fi-nav a:hover{color:var(--t1);text-decoration-color:var(--acc)}
/* to keep the height of today's footer, I's band is smaller and tucks up behind the foot of the columns */
.fi .fg2-band{width:min(56%,720px);margin-top:-36px}
.fi-b{position:relative;z-index:1;margin-top:-40px;padding:14px 0 6px;border-top:1px solid var(--line);font-size:.8rem;line-height:1.6;color:var(--t3)}
@media (max-width:1100px){.fi-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  /* the small print first, then the band closes the footer, standing on its bottom edge */
  .fi{padding-bottom:0}
  .fi .wrap{display:flex;flex-direction:column}
  .fi-top{flex-direction:column;align-items:flex-start}
  .fi-talk .fi-h{text-align:left}
  .fi-mail{padding:10px 0}
  .fi-g{grid-template-columns:1fr;row-gap:0;padding-top:0}
  .fi-g>*{padding:22px 0;border-top:1px solid var(--line)}
  .fi-g>*:first-child{border-top:0}
  .fi-ln{padding:12px 0;margin-top:2px}
  .fi-nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
  .fi-nav a{display:flex;align-items:center;min-height:44px;padding:6px 0;line-height:1.3}
  .fi .fg2-band{order:2;width:100%;margin-top:22px}
  .fi-b{margin-top:8px}
}
/* I2. I made shorter: a smaller statement and tighter rows on a desktop; on a phone each section folds into a tap-to-open row */
.fi-acc{display:none}
.fi2{padding-top:clamp(34px,3vw,44px)}
.fi2 .fi-top{padding-bottom:clamp(18px,1.8vw,24px)}
.fi2 .fi-st{margin-top:8px;font-size:clamp(1.25rem,1.8vw,1.6rem)}
.fi2 .fi-g{padding-top:clamp(20px,2vw,26px)}
.fi2 address{line-height:1.6}
.fi2 .fi-ln{margin-top:8px}
.fi2 .fi-nav a{padding:3px 0}
.fi2 .fg2-band{width:min(46%,600px);margin-top:-50px}
/* LinkedIn in a white outlined square, like I's circle but square; the 38 px square keeps to the outer edge of its 44 px tap area, so it lines up with the text above */
.fi2 .fi-tr{gap:6px}
.fi2 .fi-ic{position:relative;width:44px;height:44px;place-items:center start;border:0;border-radius:6px}
.fi2 .fi-ic::before{content:'';position:absolute;top:3px;left:0;width:38px;height:38px;border:1px solid rgba(255,255,255,.28);border-radius:6px;transition:border-color .2s}
.fi2 .fi-ic:hover::before{border-color:var(--acc)}
.fi2 .fi-ic svg{width:18px;height:18px;margin-left:10px}
.fi2 .fi-after .fi-ic{place-items:center end}
.fi2 .fi-after .fi-ic::before{left:auto;right:0}
.fi2 .fi-after .fi-ic svg{margin:0 10px 0 0}
@media (max-width:640px){
  .fi2{padding-top:32px}
  .fi2 .fi-top{gap:14px;padding-bottom:0;border-bottom:0}
  .fi2 .fi-st{font-size:1.25rem}
  .fi2 .fi-talk .fi-h{display:none}
  .fi2 .fi-mail{font-size:1.02rem}
  .fi2 .fi-g{margin-top:20px;padding-top:0;border-top:1px solid var(--line)}
  .fi2 .fi-g>*{padding:0;border-top:0;border-bottom:1px solid var(--line)}
  .fi2 .fi-ht{display:none}
  .fi2 .fi-h{margin:0}
  .fi2 .fi-acc{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0;border:0;background:none;color:var(--t1);font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .fi2 .fi-acc:focus-visible{outline:2px solid #F2B45E;outline-offset:2px;border-radius:2px}
  .fi-chev{width:16px;height:16px;flex:none;color:var(--t3);transition:transform .2s}
  .fi-sec.open .fi-chev{transform:rotate(180deg)}
  .fi2 .fi-panel{display:none;padding:0 0 18px}
  .fi2 .fi-sec.open .fi-panel{display:block}
  .fi2 .fi-ln{padding:12px 0 0;margin-top:0}
  .fi2 .fg2-band{width:100%;margin-top:18px}
  .fi2 .fi-b{margin-top:18px;padding-top:0;border-top:0}
}
@media (prefers-reduced-motion:reduce){.fi *{transition:none!important}}

/* v325: the "copied" note for email links */
.mail-note{position:fixed;left:50%;bottom:28px;z-index:9999;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:12px 20px 12px 16px;border-radius:999px;background:#fff;color:#0B2540;border:1px solid rgba(11,37,64,.12);font-size:.95rem;line-height:1.3;white-space:nowrap;box-shadow:0 14px 36px rgba(0,0,0,.32);opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:opacity .25s,transform .25s}
.mail-note.on{opacity:1;transform:translate(-50%,0)}
.mail-note svg{flex:none;width:18px;height:18px;color:#1F9D61}
@media (max-width:480px){.mail-note{font-size:.88rem;padding:11px 16px 11px 13px;bottom:20px}}
.mail-note b{font-weight:600}
@media (prefers-reduced-motion:reduce){.mail-note{transition:opacity .2s;transform:translate(-50%,0)}}


/* ===== legal pages ===== */
.lg-g{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.lg-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:22px;max-height:calc(100vh - 120px);overflow:auto}
.lg-tabs{display:flex;flex-direction:column;gap:6px}
.lg-tabs a{padding:10px 14px;border-radius:12px;font-size:.95rem;color:#4D6E86;border:1px solid transparent;transition:background .25s,color .25s}
.lg-tabs a:hover{color:#0B2540;background:rgba(11,37,64,.04)}
.lg-tabs a[aria-current=page]{color:#fff;background:#0B2540}
.lg-k{display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#4D6E86;margin-bottom:10px}
.lg-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;border-left:1px solid rgba(11,37,64,.12)}
.lg-toc button{display:block;width:100%;text-align:left;padding:6px 12px;margin-left:-1px;border-left:2px solid transparent;font-size:.86rem;line-height:1.35;color:#4D6E86;transition:color .25s,border-color .25s}
.lg-toc button:hover{color:#0B2540}
.lg-toc button.on{color:#0E7FD6;border-left-color:#0E7FD6}
.lg-doc{max-width:74ch;color:#0B2540}
.lg-doc h2{font-family:var(--disp);font-weight:400;font-size:clamp(1.35rem,2vw,1.7rem);letter-spacing:-.02em;line-height:1.2;margin:40px 0 14px;scroll-margin-top:110px;text-wrap:balance}
.lg-doc h2:first-child{margin-top:0}
.lg-doc p{margin:0 0 14px;font-size:1rem;line-height:1.7;color:#3C5C74}
.lg-doc b{color:#0B2540;font-weight:600}
.lg-doc p a{color:#0E7FD6;text-decoration:underline;text-underline-offset:3px}
.lg-doc p a:hover{color:#0A6BB8}
.lg-doc ul{list-style:none;margin:4px 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}
.lg-doc li{position:relative;padding-left:22px;font-size:1rem;line-height:1.65;color:#3C5C74}
.lg-doc li::before{content:'';position:absolute;left:4px;top:.72em;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#0E7FD6,#38D6C4)}
.lg-off{margin:10px 0 20px;padding:22px 24px;border-radius:18px;background:#fff;border:1px solid rgba(11,37,64,.1);box-shadow:0 12px 30px rgba(11,37,64,.06);display:flex;flex-direction:column;gap:6px}
.lg-offk{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.lg-off b{font-family:var(--disp);font-weight:500;font-size:1.2rem;color:#0B2540}
.lg-off address{font-style:normal;line-height:1.6;color:#3C5C74}
.lg-offc{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:6px;font-size:.95rem;color:#3C5C74}
.lg-offc a{color:#0E7FD6}
.lg-offc a:hover{text-decoration:underline;text-underline-offset:3px}
.lg-note{margin-top:28px!important;padding:16px 20px;border-radius:14px;background:#EAF4F8;font-size:.9rem!important;font-weight:600;letter-spacing:.02em;color:#0B2540!important}
@media (max-width:900px){.lg-g{grid-template-columns:1fr}.lg-side{position:static;max-height:none}.lg-tabs{flex-direction:row;flex-wrap:wrap}.lg-toc{display:none}}

/* ===== contact page fixes ===== */
.car-mail{color:#0B2540;font-size:1.05rem}
.car-mail a{color:#0E7FD6;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.car-mail a:hover{color:#0A6BB8}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.fld.err input,.fld.err textarea{border-color:#D64545!important;box-shadow:0 0 0 3px rgba(214,69,69,.12)}
.fld-e{margin:6px 0 0;font-size:.82rem;color:#C0392B}
.fld-e:empty{display:none}
.enq-st{margin-top:12px;font-size:.9rem;color:#4D6E86}
.enq-st:empty{display:none}
.enq-st b{color:#0B2540;font-weight:600;user-select:all}
.enq-copy{color:#0E7FD6;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.enq-copy:hover{color:#0A6BB8}


/* ===== contact form: floating labels, flowing water borders, reservoir level ===== */
.f-live{position:relative;padding:clamp(22px,2.6vw,32px);border-radius:26px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 24px 60px rgba(11,37,64,.08)}
.f-live::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(14,127,214,.35),rgba(31,181,164,.25) 40%,transparent 70%);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.f-head{display:flex;flex-direction:column;gap:12px;margin-bottom:6px}
.f-head h3{margin:0}
.f-lvl{position:relative;height:7px;border-radius:99px;background:rgba(11,37,64,.07);overflow:hidden}
.f-lvlw{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p,0)*100%);min-width:0;border-radius:99px;background:linear-gradient(90deg,#0E7FD6,#1FB5A4);transition:width .7s var(--ease)}
.f-lvlw::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);background-size:60px 100%;animation:flvl 1.6s linear infinite}
.f-cap{font-size:.78rem;letter-spacing:.04em;color:#6E8AA0;transition:color .3s}
.f-live[data-done] .f-cap{color:#1FB5A4;font-weight:600}
@keyframes flvl{from{background-position:-60px 0}to{background-position:calc(100% + 60px) 0}}
.f-live .fld{position:relative;--c:#0E7FD6}
.f-live .fld>label{position:absolute;left:17px;top:18px;margin:0;font-size:1rem;color:#6E8AA0;pointer-events:none;transform-origin:left top;transition:transform .28s var(--ease),top .28s var(--ease),color .28s}
.f-live .fld>input,.f-live .fld>textarea{padding:25px 44px 9px 16px;border:1.5px solid transparent;color:#0B2540;font-size:1rem;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,rgba(11,37,64,.16),rgba(11,37,64,.16)) border-box;transition:box-shadow .4s var(--ease),transform .4s var(--ease),background .4s}
.f-live .fld>textarea{padding-top:30px;min-height:150px}
.f-live .fld>input:hover,.f-live .fld>textarea:hover{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,rgba(14,127,214,.45),rgba(31,181,164,.45)) border-box}
.f-live .fld>input:focus,.f-live .fld>textarea:focus{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(110deg,#0E7FD6,#1FB5A4,#7CC4FF,#0E7FD6) border-box;background-size:100% 100%,320% 100%;animation:fflow 2.6s linear infinite;box-shadow:0 0 0 4px rgba(14,127,214,.11),0 14px 34px rgba(14,127,214,.14);transform:translateY(-1px)}
@keyframes fflow{from{background-position:0 0,0% 0}to{background-position:0 0,320% 0}}
.f-live .fld>input:focus~label,.f-live .fld>input:not(:placeholder-shown)~label,.f-live .fld>textarea:focus~label,.f-live .fld>textarea:not(:placeholder-shown)~label{top:9px;transform:scale(.74);color:var(--c)}
.f-live .fld.err{--c:#C0392B}
.f-live .fld.err>input,.f-live .fld.err>textarea{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,#D64545,#F08A8A) border-box;animation:fshake .45s var(--ease)}
@keyframes fshake{0%,100%{transform:none}25%{transform:translateX(-5px)}55%{transform:translateX(4px)}80%{transform:translateX(-2px)}}
.fld-ok{position:absolute;right:16px;top:17px;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#0E7FD6,#1FB5A4);opacity:0;transform:scale(.4);transition:opacity .35s var(--ease),transform .5s cubic-bezier(.3,1.6,.4,1);pointer-events:none}
.fld-ok::before{content:'';position:absolute;left:6px;top:4px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.f-live .fld.ok>.fld-ok{opacity:1;transform:scale(1)}
.f-live .fld.err>.fld-ok{opacity:0}
.f-live.in .fld,.f-live.in .f-act{animation:fin .8s var(--ease) both;animation-delay:calc(.25s + var(--i,0)*.09s)}
@keyframes fin{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.f-send{overflow:hidden;background:linear-gradient(135deg,#0E7FD6,#0A6BB8);color:#fff;isolation:isolate}
.f-send::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .7s var(--ease);pointer-events:none}
.f-send:hover{background:linear-gradient(135deg,#1FB5A4,#0E7FD6)}
.f-send:hover::after{left:120%}
.f-send:active{transform:scale(.97)}
.f-rip{position:absolute;inset:0;pointer-events:none;z-index:-1}
.f-rip>b{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:rgba(255,255,255,.45);animation:frip .8s var(--ease) forwards}
@keyframes frip{to{transform:scale(28);opacity:0}}
.f-live.sent .f-lvlw{background:linear-gradient(90deg,#1FB5A4,#7CC4FF)}
@media (prefers-reduced-motion:reduce){.f-live.in .fld,.f-live.in .f-act,.f-live .fld>input:focus,.f-live .fld>textarea:focus,.f-lvlw::after{animation:none}.f-send::after{display:none}}

/* ===== contact: the field engineer walks in beside the form ===== */
.wrap.ctc{position:relative;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
.wrap.ctc>div:first-child{position:relative;z-index:4;padding-bottom:0}
.ctc-det{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;align-content:start}
.ctc-det h2{grid-column:1/-1;margin-bottom:4px}
.ctc-det>div>div:last-child{font-size:1.08rem!important;line-height:1.55!important}
.wrap.ctc .f-live{z-index:2}
.ctc-who{position:absolute;left:0;bottom:0;width:62%;height:380px;z-index:3;pointer-events:none}
.ctc-who canvas{pointer-events:none}
@media (max-width:1180px){.ctc-who{width:70%;height:350px}}
@media (max-width:760px){.wrap.ctc{grid-template-columns:1fr}.wrap.ctc>div:first-child{padding-bottom:0}.ctc-det{grid-template-columns:1fr}.ctc-who{position:relative;left:auto;bottom:auto;width:100%;height:360px;margin-top:-10px}}

/* ===== about us ===== */
.pvm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pvm-c{--c:#0E7FD6;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:clamp(22px,2.4vw,30px);border-radius:22px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 14px 34px rgba(11,37,64,.06);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.pvm-c::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--c)}
.pvm-c:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 35%,transparent);box-shadow:0 20px 40px rgba(11,37,64,.1)}
.pvm-t{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pvm-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff)}
.pvm-ic svg{width:24px;height:24px}
.pvm .s{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--c)}
.pvm h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.8rem,2.6vw,2.3rem);letter-spacing:-.03em;color:#0B2540;margin-top:6px}
.pvm p{position:relative;margin:0;font-size:1.04rem;line-height:1.65;color:#3C5C74}
.pvm-wm{position:absolute;right:-26px;bottom:-26px;width:150px;height:150px;color:var(--c);opacity:.06;pointer-events:none}
@media (max-width:900px){.pvm{grid-template-columns:1fr}}
.pp-h{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(28px,3.4vw,44px);max-width:62ch}
.pp-h h2{font-size:clamp(2.3rem,4.4vw,4.2rem)}
.pp-fs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.pp-f{display:grid;grid-template-columns:minmax(110px,168px) minmax(0,1fr);align-items:center;gap:clamp(18px,2.4vw,32px);padding:16px;border-radius:24px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 16px 36px rgba(11,37,64,.07)}
.pp-ph{position:relative;aspect-ratio:1;max-width:100%;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#0E7FD6,#1FB5A4);display:grid;place-items:center}
.pp-ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.pp-ph span{font-family:var(--disp);font-size:2.4rem;color:#fff}
.pp-f:hover .pp-ph img,.pp-a:hover .pp-ph img{transform:scale(1.05)}
.pp-ft{display:flex;flex-direction:column;gap:8px}
.pp-role{align-self:flex-start;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6;padding:5px 12px;border-radius:999px;background:#E6F2FB}
.pp-f h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.4rem,1.9vw,1.8rem);letter-spacing:-.03em;color:#0B2540}
.pp-ms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pp-m{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid rgba(11,37,64,.08)}
.pp-in{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:.95rem;color:#0B2540;background:linear-gradient(135deg,#E6F2FB,#DDF5F1);border:1px solid rgba(14,127,214,.2)}
.pp-m div{display:flex;flex-direction:column;min-width:0}
.pp-m b{font-weight:500;color:#0B2540}
.pp-m small{font-size:.86rem;color:#4D6E86;line-height:1.35}
.pp-as{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.pp-a{display:flex;flex-direction:column;gap:4px;padding:12px 12px 18px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 12px 30px rgba(11,37,64,.06)}
.pp-a .pp-ph{margin-bottom:10px}
.pp-a h3{font-family:var(--disp);font-weight:400;font-size:1.25rem;letter-spacing:-.02em;color:#0B2540;padding:0 4px}
.pp-a small{font-size:.88rem;color:#4D6E86;padding:0 4px}
/* founders: photo the same size as an advisor photo; divider before the wider team */
.pp-fs>.pp-f{grid-template-columns:calc(60% - 11px) minmax(0,1fr);gap:16px}
.pp-fs>.pp-f h3{font-size:clamp(1.15rem,1.45vw,1.4rem);line-height:1.2}
.pp-fs>.pp-f .pp-ft{gap:8px;align-items:flex-start}
.pp-dv{display:flex;align-items:center;gap:16px;margin:30px 0 18px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#4D6E86}
.pp-dv::before,.pp-dv::after{content:"";height:1px;background:rgba(11,37,64,.14);flex:1}
.pp-dv::before{flex:0 0 28px}
@media (max-width:1000px){.pp-fs>.pp-f{grid-template-columns:minmax(110px,168px) minmax(0,1fr)}}
@media (max-width:719px){.pp-fs>.pp-f{grid-template-columns:120px minmax(0,1fr)}}
.pp-inst{align-self:flex-start;margin:8px 4px 0;font-size:.76rem;font-weight:600;letter-spacing:.06em;color:#0E7FD6;padding:4px 10px;border-radius:999px;background:#E6F2FB}
@media (max-width:1180px){.pp-as{grid-template-columns:repeat(3,minmax(0,1fr))}.pp-ms{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1180px){.pp-fs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.pp-fs{grid-template-columns:1fr}}
@media (max-width:600px){.pp-f{grid-template-columns:120px minmax(0,1fr);padding:12px}.pp-as{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-ms{grid-template-columns:1fr}}

/* ===== insights: learning tools ===== */
.sec.paper .eyebrow{color:#0E7FD6}
.lt{display:flex;flex-direction:column;gap:clamp(36px,4vw,56px)}
.lt-g{display:flex;flex-direction:column;gap:18px}
.lt-gh{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px 40px;align-items:end;padding-bottom:16px;border-bottom:1px solid rgba(11,37,64,.12)}
.lt-gh h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.3rem);letter-spacing:-.03em;color:#0B2540}
.lt-gh span{display:block;margin-top:4px;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.lt-gh p{margin:0;font-size:1rem;line-height:1.55;color:#4D6E86;max-width:62ch}
.lt-cards{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:14px}
.lt-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:16px 16px 18px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 12px 28px rgba(11,37,64,.06);color:#0B2540;text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.lt-card:hover{transform:translateY(-4px);border-color:rgba(14,127,214,.35);box-shadow:0 18px 38px rgba(11,37,64,.1)}
.lt-card:focus-visible{outline:2px solid #0E7FD6;outline-offset:3px}
.lt-thumb{display:block;width:100%;margin-bottom:6px;padding:10px;border-radius:14px;background:#F2F7FA}
.lt-thumb svg{display:block;width:100%;height:auto;max-height:90px}
.lt-thumb .wash{fill:rgba(42,120,214,.1)}.lt-thumb .wash2{fill:rgba(235,104,52,.12)}
.lt-thumb .s1{fill:none;stroke:#2a78d6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lt-thumb .s2{fill:none;stroke:#eb6834;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lt-thumb .s3{fill:none;stroke:#1baf7a;stroke-width:2;stroke-linecap:round}
.lt-thumb .ink{fill:none;stroke:#3c5c74;stroke-width:2;stroke-linejoin:round}
.lt-thumb .base{stroke:#c2d0da;stroke-width:1}
.lt-thumb .b1,.lt-thumb .d1{fill:#2a78d6}.lt-thumb .b2{fill:#eb6834}
.lt-thumb .r3{fill:#fff;stroke:#1baf7a;stroke-width:2}
.lt{--series-1:#2a78d6;--series-2:#eb6834;--surface:#fff;--surface-2:#eef4f8;--grid:#dbe5ec;--seq-250:#86b6ef;--seq-450:#2a78d6;--seq-700:#0d366b}
.lt-tag{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#0E7FD6}
.lt-card b{font-family:var(--disp);font-weight:400;font-size:1.25rem;letter-spacing:-.02em;line-height:1.2}
.lt-tx{font-size:.9rem;line-height:1.45;color:#4D6E86}
.lt-go{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:500;color:#0E7FD6}
.lt-go svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.lt-card:hover .lt-go svg{transform:translateX(3px)}
.lt-note{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 16px;border-radius:14px;background:#F2F8FD;border:1px solid rgba(14,127,214,.18);font-size:.9rem;line-height:1.5;color:#3C5C74}
.lt-note>svg{flex:none;width:18px;height:18px;margin-top:2px;color:#0E7FD6}
.lt-src{color:#4D6E86}
/* lab page */
.lab-hero{position:relative;padding:clamp(104px,10vw,132px) 0 clamp(28px,3vw,40px);color:#fff;background:radial-gradient(800px 320px at 85% 0%,rgba(14,127,214,.28),transparent 65%),linear-gradient(160deg,#0D2440,#081626 75%)}
.lab-pg{padding-top:clamp(24px,3vw,36px)!important}
.lab-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.lab-back,.lab-nav a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);font-size:.9rem;color:#E6EEF5;text-decoration:none;transition:border-color .25s,color .25s,background .25s}
.lab-back svg{width:14px;height:14px;transform:rotate(180deg)}
.lab-back:hover,.lab-nav a:hover{border-color:#7FF0E2;color:#fff;background:rgba(255,255,255,.12)}
.lab-nav{display:flex;flex-wrap:wrap;gap:8px}
.lab-nav a svg{width:14px;height:14px}
.lab-nav a:first-child svg{transform:rotate(180deg)}
.lab-nav span{max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 48px;align-items:end}
.lab-g{display:block;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7FF0E2;margin-bottom:8px}
.lab-h h1{font-family:var(--disp);font-weight:300;font-size:clamp(2.2rem,4.2vw,3.6rem);letter-spacing:-.04em;line-height:1.05;color:#fff}
.lab-h p{margin:0;font-size:1.02rem;line-height:1.55;color:#CFE3F3;max-width:60ch;justify-self:end}
.lab-frame{border-radius:22px;overflow:hidden;background:#F7FBFD;border:1px solid rgba(11,37,64,.1);box-shadow:0 18px 44px rgba(11,37,64,.08);margin-bottom:16px}
.lab-frame iframe{display:block;width:100%;height:85vh;min-height:600px;border:0;background:#F7FBFD}
@media (max-width:1180px){.lt-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.lab-h{grid-template-columns:1fr}.lab-h p{justify-self:start}.lab-nav span{max-width:14ch}}
@media (max-width:760px){.lt-gh{grid-template-columns:1fr}}
@media (max-width:520px){.lt-cards{grid-template-columns:1fr}.lab-nav{width:100%}.lab-nav a{flex:1;justify-content:center}}

/* ===== insights: a lighter shade over the 3D landscape, dark only behind the text ===== */
.phead:has(.jmp)::before{background:linear-gradient(180deg,rgba(18,26,36,.75) 0,rgba(18,26,36,.3) 80px,rgba(18,26,36,0) 150px),linear-gradient(90deg,rgba(18,26,36,.8) 0,rgba(18,26,36,.42) 34%,rgba(18,26,36,0) 58%),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,0) 18%)}
@media (max-width:760px){.phead:has(.jmp)::before{background:linear-gradient(180deg,rgba(18,26,36,.7) 0,rgba(18,26,36,.15) 90px,rgba(18,26,36,0) 140px),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,.6) 45%,rgba(18,26,36,.2) 70%,rgba(18,26,36,0) 85%)}}
/* ===== insights: small jump links in the page header ===== */
.phead .btns:has(.jmp){gap:10px;flex-wrap:wrap}
.phead .btns .jmp{min-height:40px;padding:0 16px 0 18px;font-size:.9rem;gap:8px;background:rgba(255,255,255,.04);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.phead .btns .jmp svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.7;transition:transform .3s var(--ease)}
.phead .btns .jmp:hover svg{transform:translateY(2px)}
@media (max-width:640px){.phead .btns:has(.jmp){display:grid;grid-template-columns:1fr 1fr;gap:8px}.phead .btns .jmp{width:100%;min-height:40px;padding:0 12px;font-size:.84rem;justify-content:space-between}}
/* ===== insights: technical insights ===== */
.tis{display:flex;flex-direction:column;gap:clamp(20px,2.4vw,28px)}
.ti{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(20px,3.6vw,52px);align-items:center;padding:clamp(14px,1.6vw,20px);border-radius:24px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 16px 36px rgba(11,37,64,.06)}
.ti.flip .ti-m{order:2}
.ti-m{position:relative;margin:0;border-radius:16px;overflow:hidden;background:#0A1E33;aspect-ratio:16/9;max-width:100%}
.ti-m video{display:block;width:100%;height:100%;object-fit:cover}
#ti-inflow .ti-m,#ti-hydro .ti-m{background:#fff}#ti-inflow .ti-m video,#ti-hydro .ti-m video{object-fit:contain}
.ti-m figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 70px);padding:5px 10px;border-radius:8px;font-size:.76rem;line-height:1.3;color:#fff;background:rgba(8,22,38,.72)}
.ti-pp{position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(8,22,38,.72)}
.ti-pp svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ti-pp .i-play{fill:currentColor;stroke:none;display:none}
.ti-pp.paused .i-play{display:block}.ti-pp.paused .i-pause{display:none}
.ti-pp:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ti-t{display:flex;flex-direction:column;gap:12px;padding-right:clamp(0px,1.6vw,16px)}
.ti.flip .ti-t{padding:0 0 0 clamp(0px,1.6vw,16px)}
.ti-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.ti h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.6rem,2.4vw,2.2rem);letter-spacing:-.03em;line-height:1.1;color:#0B2540}
.ti p{color:#4D6E86;font-size:1rem;line-height:1.55}
.ti ul{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ti li{font-size:.84rem;line-height:1.25;padding:6px 11px;border-radius:999px;color:#0B2540;background:#F2F7FA;border:1px solid rgba(11,37,64,.1)}
@media (max-width:900px){.ti{grid-template-columns:1fr}.ti.flip .ti-m{order:0}.ti-t,.ti.flip .ti-t{padding:4px}}


/* ===== insights: more methods (one animated figure) ===== */
.mx{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.6fr);gap:clamp(20px,3vw,40px);align-items:start}
.mx-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mx-b{position:relative;display:block;width:100%;text-align:left;padding:16px 18px 18px;border-radius:16px;background:transparent;border:1px solid transparent;color:#4D6E86;font-family:var(--disp);font-size:clamp(1.05rem,1.4vw,1.3rem);letter-spacing:-.015em;line-height:1.25;transition:background .3s,color .3s,border-color .3s}
.mx-b:hover{color:#0B2540;background:rgba(255,255,255,.6)}
.mx-b.on{color:#0B2540;background:#fff;border-color:rgba(11,37,64,.1);box-shadow:0 10px 26px rgba(11,37,64,.07)}
.mx-b:focus-visible{outline:2px solid #0E7FD6;outline-offset:2px}
.mx-p{position:absolute;left:18px;right:18px;bottom:8px;height:2px;border-radius:2px;background:transparent;overflow:hidden}
.mx-b.on .mx-p{background:rgba(14,127,214,.14)}
.mx-p b{display:block;height:100%;width:0;background:linear-gradient(90deg,#0E7FD6,#1FA596)}
.mx.live:not(.held) .mx-b.on .mx-p b{animation:mxbar var(--dur,5000ms) linear forwards}
.mx.held .mx-b.on .mx-p b{width:100%}
@keyframes mxbar{from{width:0}to{width:100%}}
.mx-s{display:flex;flex-direction:column;gap:14px;min-width:0}
.mx-st{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:22px;overflow:hidden;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 18px 44px rgba(11,37,64,.08)}
.mx-f{position:absolute;inset:0;margin:0;display:grid;place-items:center;padding:clamp(10px,1.4vw,18px);opacity:0;transform:scale(1.03);transition:opacity .9s var(--ease),transform 6s linear}
.mx-f.on{opacity:1;transform:scale(1)}
.mx-f img{max-width:100%;max-height:100%;object-fit:contain}
.mx-f.vid{padding:0;background:#0A1E33}.mx-f video{width:100%;height:100%;object-fit:cover}
.mx-f figcaption{position:absolute;left:14px;bottom:14px;padding:5px 10px;border-radius:8px;font-size:.78rem;color:#fff;background:rgba(8,22,38,.72)}
.mx-n{display:block;font-style:normal;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.12em;color:#0E7FD6;margin-bottom:4px}
.mx-b small{display:block;margin-top:3px;font-family:var(--sans);font-size:.78rem;letter-spacing:0;color:#4D6E86}
.mx-cs{position:relative;min-height:72px}
.mx-c{list-style:none;margin:0;padding:0;display:none;flex-wrap:wrap;gap:6px}
.mx-c.on{display:flex;animation:fadeup .5s var(--ease)}
.mx-c li{font-size:.84rem;line-height:1.25;padding:6px 11px;border-radius:999px;color:#0B2540;background:#fff;border:1px solid rgba(11,37,64,.1)}
@media (max-width:900px){.mx{grid-template-columns:1fr}.mx-l{flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px}.mx-l li{flex:none}.mx-b{width:auto;white-space:nowrap;font-size:1rem;padding:12px 14px 16px}}
@media (prefers-reduced-motion:reduce){.mx-f{transition:opacity .2s}}
/* draft badge */
.dr-badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7A4A12;background:#FFF1DC;border:1px solid rgba(201,106,27,.3);padding:5px 11px;border-radius:999px;white-space:nowrap}
/* ===== insights: glossary ===== */
.gl{display:flex;flex-direction:column;gap:18px}
.gl-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.gl-s{display:flex;align-items:center;gap:10px;flex:1 1 280px;max-width:420px;padding:0 16px;min-height:48px;border-radius:999px;background:#fff;border:1px solid rgba(11,37,64,.15)}
.gl-s:focus-within{border-color:#0E7FD6;box-shadow:0 0 0 3px rgba(14,127,214,.12)}
.gl-s svg{width:18px;height:18px;flex:none;fill:none;stroke:#4D6E86;stroke-width:2;stroke-linecap:round}
.gl-s input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:1rem;color:#0B2540}
.gl-l{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gl-i{padding:16px 18px;border-radius:16px;background:#fff;border:1px solid rgba(11,37,64,.08)}
.gl-i[hidden]{display:none}
.gl-i dt{font-weight:600;color:#0B2540;margin-bottom:6px}
.gl-i dd{margin:0;font-size:.94rem;line-height:1.55;color:#4D6E86}
.gl-none{margin:0;color:#4D6E86}
@media (max-width:760px){.gl-l{grid-template-columns:1fr}}
/* ===== insights: data sources ===== */
.ds-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:18px;font-size:.9rem;color:#4D6E86}
.dss{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ds{display:flex;flex-direction:column;gap:8px;padding:18px 18px 20px;border-radius:18px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 10px 24px rgba(11,37,64,.05)}
.ds-k{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.ds h3{font-family:var(--disp);font-weight:400;font-size:1.2rem;letter-spacing:-.02em;color:#0B2540}
.ds p{margin:0;font-size:.9rem;line-height:1.5;color:#4D6E86}
.ds ul{list-style:none;margin:auto 0 0;padding:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.ds li{font-size:.76rem;padding:4px 9px;border-radius:999px;color:#1A7F74;background:rgba(31,165,150,.1)}
@media (max-width:1100px){.dss{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.dss{grid-template-columns:1fr}}
/* ===== insights: placeholder sections ===== */
.ph-box{position:relative;display:flex;flex-direction:column;gap:16px;padding:clamp(20px,2.4vw,30px);border-radius:22px;border:1.5px dashed rgba(14,127,214,.35);background:repeating-linear-gradient(135deg,rgba(14,127,214,.03) 0 12px,transparent 12px 24px),#fff}
.ph-badge{align-self:flex-start;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7A4A12;background:#FFF1DC;border:1px solid rgba(201,106,27,.3);padding:4px 10px;border-radius:999px}
.ph-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ph-chips li{font-size:.9rem;color:#0B2540;padding:8px 14px;border-radius:999px;background:#F2F7FA;border:1px solid rgba(11,37,64,.1)}
.ph-need{margin:0;font-size:.9rem;color:#4D6E86}
.ph-need b{color:#0B2540;font-weight:600}

/* ===== insights: papers and presentations ===== */
.pbs{display:flex;flex-direction:column;gap:12px}
.pb{display:grid;grid-template-columns:120px minmax(0,1fr);gap:clamp(16px,2.6vw,32px);padding:20px 22px;border-radius:18px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 10px 26px rgba(11,37,64,.05)}
.pb-m{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.pb-y{font-family:var(--disp);font-size:1.6rem;font-weight:300;letter-spacing:-.02em;color:#0B2540;font-variant-numeric:tabular-nums}
.pb-s{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px;color:#1A7F74;background:rgba(31,165,150,.12)}
.pb-s.rv{color:#0E6FC0;background:#E6F2FB}
.pb-t{display:flex;flex-direction:column;gap:6px;min-width:0}
.pb-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.pb h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.1rem,1.5vw,1.3rem);letter-spacing:-.015em;line-height:1.35;color:#0B2540}
.pb-a{margin:0;font-size:.92rem;color:#3C5C74}
.pb-v{margin:0;font-size:.88rem;font-style:italic;color:#4D6E86}
@media (max-width:600px){.pb{grid-template-columns:1fr}.pb-m{flex-direction:row;align-items:center}}

/* policy cards: emblem beside the text */
.pol{flex-direction:row;align-items:center;gap:clamp(18px,2.4vw,30px)}
.pol-a.logo{flex:none;width:clamp(120px,13vw,168px);height:clamp(110px,11vw,140px);padding:14px;border-radius:18px;display:flex;align-items:center;justify-content:center}
.pol-a.logo img{width:auto;max-width:100%;height:100%;object-fit:contain}
@media (min-width:761px) and (max-width:1180px){.pol{flex-direction:row;align-items:center}}
@media (max-width:520px){.pol{flex-direction:column;align-items:flex-start}}

/* layers scene: shorter, so the merged 3D block settles well before the next section */
.scene[data-scene=layers]{height:290vh}

/* drag to turn the 3D block */
.scene[data-scene=layers] .scene-in{touch-action:pan-y}
html.tw-hover,html.tw-hover *{cursor:grab}
html.tw-drag,html.tw-drag *{cursor:grabbing!important;user-select:none}
.tw-hint{position:absolute;z-index:3;transform:translate(-50%,0);display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:.78rem;font-weight:500;color:#0B2540;background:rgba(255,255,255,.85);border:1px solid rgba(11,37,64,.1);box-shadow:0 6px 16px rgba(11,37,64,.08);pointer-events:none;opacity:0;transition:opacity .4s}
.tw-hint.on{opacity:1}
.tw-hint svg{width:16px;height:16px;fill:none;stroke:#0E7FD6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* mobile and narrow windows: the header stays visible and the menu button is a solid pill */
@media (max-width:1000px){
  .hdr.hide{transform:none}
  .menu-btn{background:#0B2540;color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(11,37,64,.22)}
  .menu-btn:hover{background:#0E7FD6}
}
/* how it works, compact */
.dd-dots{display:none}
@media (max-width:1000px){
  .dd-tl{flex-direction:row!important;flex-wrap:wrap;align-items:center!important;gap:6px 10px;font-size:1.05rem;margin-bottom:18px}
  .dd-tl i{transform:none!important;width:22px;height:22px}
  .dd-src{margin-bottom:16px;gap:8px}
  .dd-srch b{font-size:1rem}
  .dd-in{flex-wrap:nowrap;overflow-x:auto;gap:6px;width:100%;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none;justify-content:flex-start}
  .dd-in::-webkit-scrollbar{display:none}
  .dd-in li{flex:none;width:62px}
  .dd-in span{width:40px;height:40px;border-radius:12px}
  .dd-main{display:flex!important;flex-direction:column}
  .dd-dots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:12px;position:relative;order:-1}
  .dd-dots::before{content:'';position:absolute;left:10%;right:10%;top:15px;height:2px;background:rgba(11,37,64,.1)}
  .dd-dots button{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:0;font:inherit;color:#4D6E86;background:none;border:0;cursor:pointer}
  .dd-dots b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:.74rem;font-weight:600;background:#fff;border:1.5px solid rgba(11,37,64,.12);transition:background .3s,color .3s,border-color .3s}
  .dd-dots span{font-size:.72rem;line-height:1.15;text-align:center}
  .dd-dots button.past b{color:#0E7FD6;border-color:rgba(14,127,214,.45)}
  .dd-dots button.on b{background:#0E7FD6;border-color:#0E7FD6;color:#fff;box-shadow:0 0 0 5px rgba(14,127,214,.12)}
  .dd-dots button.on span{color:#0B2540;font-weight:600}
  .dd-steps{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px!important;margin:0 -16px;padding:4px 16px 10px;scrollbar-width:none}
  .dd-steps::-webkit-scrollbar{display:none}
  .dd-s{flex:0 0 82%!important;scroll-snap-align:start;scroll-margin-left:16px;position:relative;display:block!important}
  .dd-s .dd-n{display:none}
  .dd-s .dd-c,.dd-s.on .dd-c{transform:none;background:#fff;border-color:rgba(11,37,64,.1);box-shadow:0 10px 24px rgba(11,37,64,.07);padding:14px 16px 16px;gap:6px;height:100%}
  .dd-c .dd-ic{width:34px;height:34px;margin:0}
  .dd-c h3{font-size:1.2rem}
  .dd-c p{font-size:.88rem}
  .dd-c ul li{font-size:.74rem;padding:4px 8px}
  .dd-bot{margin-top:18px!important;gap:12px!important}
  .dd-tag{font-size:1.1rem!important}
  .dd-tile{padding:14px 16px;gap:9px}
  .dd-cap{font-size:.84rem}
  .dd-ot{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .dd-ot li{padding:6px 10px;gap:9px;font-size:.86rem}
  .dd-ot li:last-child{grid-column:1/-1}
  .dd-ot li span{width:26px;height:26px}
}
@media (min-width:700px) and (max-width:1000px){
  .dd-s{flex-basis:46%!important}
  .dd-bot{grid-template-columns:1fr 1fr!important}
  .dd-bot .dd-tag{grid-column:1/-1!important}
}
@media (max-width:420px){.dd-ot{grid-template-columns:1fr}.dd-ot li:last-child{grid-column:auto}}

/* compact connectors need room between the rows; the tagline moves below the tiles */
@media (max-width:1000px){
  .dd-src{margin-bottom:30px!important}
  .dd-steps{padding-bottom:8px!important}
  .dd-bot{margin-top:40px!important;display:grid}
  .dd-bot .dd-tag{order:9;margin-top:6px}
  .dd-dots b{position:relative;z-index:2}
}
@media (max-width:699px){.dd-bot{row-gap:40px!important}}

@media (max-width:1000px){
  /* the frosted header trapped the fixed menu panel inside its 72px strip; drop the blur while the menu is open */
  .hdr:has(.nav.open){-webkit-backdrop-filter:none!important;backdrop-filter:none!important;transform:none!important}
  .nav.open{padding:8px 20px 24px}
  .hdr .nav.open a,.hdr .nav.open button{font-size:1.6rem;min-height:60px}
  /* home (dark logo): white panel, navy text */
  .home .hdr:has(.nav.open),.home .nav.open{background:#fff!important;border-color:rgba(11,37,64,.1)!important}
  .home .hdr .nav.open a,.home .hdr .nav.open button{color:#0B2540!important;border-bottom-color:rgba(11,37,64,.1)!important}
  /* inner pages (white logo): dark panel, white text */
  .inner .hdr:has(.nav.open),.inner .nav.open{background:#121A24!important}
  .inner .hdr .nav.open a,.inner .hdr .nav.open button{color:#fff!important;border-bottom-color:rgba(255,255,255,.12)!important}
  .hdr .nav.open a[aria-current=page]{color:#5EB2FF!important}
  .home .hdr .nav.open a[aria-current=page]{color:#0E7FD6!important}
  /* a light, standard menu button: three lines in the logo colour, thin outline */
  .menu-btn{background:transparent!important;box-shadow:none!important;min-width:42px;min-height:42px;color:#fff;border:1px solid rgba(255,255,255,.35)!important}
  .home .menu-btn{color:#0B2540;border-color:rgba(11,37,64,.18)!important}
  .menu-btn:hover{background:rgba(127,127,127,.12)!important}
}
@media (max-width:600px){.close .btns{flex-direction:column;align-items:center}.close .btns .btn{width:min(100%,240px);justify-content:center}}

/* ===== services (review copy): vertical explorer ===== */
.sv{--svbg:#fff;--ink:#0B2540;--mu:#4D6E86;--ac:#0E7FD6;--tl:#1FA596;--ln:rgba(11,37,64,.1);display:flex;flex-direction:column;gap:22px}
.sv-rail{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}
.sv-rw{position:relative}
.sv-ra{display:none}
.sv-t.soon{background:linear-gradient(165deg,rgba(255,255,255,.6) 35%,#F1F4F7 100%);border-style:dashed}
.sv-t.soon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 170'%3E%3Cg fill='none' stroke='rgb%2877%2C110%2C134%29' stroke-opacity='0.14' stroke-width='1.1'%3E%3Cpath d='M249.2 40.0 L249.8 41.4 L249.9 42.8 L249.6 44.2 L248.9 45.5 L248.0 46.7 L246.9 47.8 L245.6 48.8 L244.4 49.7 L243.1 50.5 L241.9 51.3 L240.5 52.0 L239.2 52.7 L237.7 53.2 L236.1 53.5 L234.6 53.6 L233.0 53.5 L231.4 53.2 L230.0 52.8 L228.6 52.4 L227.4 52.0 L226.1 51.8 L224.7 51.7 L223.2 51.8 L221.4 51.8 L219.6 51.9 L217.6 51.8 L215.7 51.5 L213.9 50.8 L212.4 49.9 L211.3 48.6 L210.8 47.2 L210.7 45.6 L211.0 44.1 L211.6 42.6 L212.4 41.2 L213.2 40.0 L213.9 38.9 L214.4 37.8 L214.8 36.7 L215.1 35.7 L215.4 34.5 L215.7 33.4 L216.1 32.2 L216.8 31.1 L217.7 30.1 L218.7 29.2 L219.9 28.5 L221.2 27.7 L222.5 27.1 L223.8 26.4 L225.2 25.8 L226.7 25.1 L228.3 24.5 L230.0 24.0 L231.8 23.7 L233.6 23.7 L235.4 24.0 L237.0 24.6 L238.4 25.6 L239.4 26.9 L240.2 28.3 L240.8 29.7 L241.1 31.1 L241.5 32.3 L241.9 33.3 L242.5 34.2 L243.4 35.0 L244.5 35.8 L245.8 36.6 L247.1 37.6 L248.3 38.7 L249.2 40.0Z'/%3E%3Cpath d='M269.2 40.0 L270.3 42.8 L270.4 45.7 L269.5 48.5 L267.8 51.0 L265.5 53.2 L262.7 55.1 L259.8 56.7 L256.9 58.1 L254.2 59.3 L251.6 60.6 L249.1 61.8 L246.6 63.0 L244.0 64.1 L241.4 65.0 L238.6 65.6 L235.7 65.9 L232.8 65.9 L230.0 65.6 L227.2 65.2 L224.5 64.8 L221.8 64.5 L218.9 64.3 L215.9 64.2 L212.5 64.2 L209.0 64.0 L205.3 63.6 L201.7 62.7 L198.4 61.2 L195.8 59.2 L194.0 56.6 L193.2 53.7 L193.3 50.7 L194.3 47.7 L195.7 44.8 L197.5 42.3 L199.2 40.0 L200.5 37.9 L201.5 36.0 L201.9 34.0 L202.0 31.9 L202.0 29.6 L202.1 27.1 L202.4 24.6 L203.3 22.1 L204.7 19.7 L206.6 17.7 L208.9 15.9 L211.6 14.5 L214.4 13.3 L217.4 12.3 L220.4 11.5 L223.5 10.7 L226.7 10.1 L230.0 9.6 L233.3 9.4 L236.7 9.7 L239.9 10.4 L242.9 11.7 L245.5 13.5 L247.5 15.7 L249.1 18.2 L250.3 20.7 L251.2 23.1 L252.1 25.2 L253.1 27.0 L254.6 28.6 L256.6 30.1 L259.1 31.5 L261.9 33.2 L264.7 35.1 L267.2 37.4 L269.2 40.0Z'/%3E%3Cpath d='M290.1 40.0 L291.5 44.3 L291.3 48.6 L289.5 52.8 L286.4 56.4 L282.2 59.5 L277.5 61.9 L272.6 63.9 L267.9 65.5 L263.7 66.9 L259.8 68.4 L256.4 70.1 L253.1 72.0 L249.8 74.0 L246.3 75.9 L242.6 77.6 L238.6 78.9 L234.3 79.7 L230.0 80.0 L225.6 80.0 L221.3 79.6 L216.9 79.1 L212.5 78.6 L207.9 78.0 L203.0 77.4 L198.1 76.5 L193.0 75.3 L188.2 73.5 L183.9 71.0 L180.5 67.7 L178.2 63.9 L177.3 59.7 L177.6 55.2 L179.1 50.9 L181.3 46.9 L183.8 43.2 L186.1 40.0 L187.9 37.1 L188.9 34.2 L189.1 31.2 L188.7 28.0 L188.0 24.3 L187.4 20.3 L187.4 16.2 L188.3 12.0 L190.1 8.1 L193.0 4.7 L196.7 2.0 L201.1 -0.1 L205.8 -1.4 L210.8 -2.3 L215.7 -2.8 L220.5 -3.1 L225.3 -3.2 L230.0 -3.2 L234.7 -2.9 L239.3 -2.3 L243.8 -1.3 L248.0 0.4 L251.8 2.6 L255.0 5.3 L257.7 8.3 L259.9 11.5 L261.7 14.6 L263.6 17.5 L265.7 20.0 L268.3 22.3 L271.5 24.5 L275.4 26.8 L279.6 29.4 L283.8 32.4 L287.4 36.0 L290.1 40.0Z'/%3E%3Cpath d='M310.9 40.0 L312.0 45.7 L311.1 51.4 L308.2 56.8 L303.5 61.4 L297.4 65.2 L290.7 68.0 L283.9 70.2 L277.6 72.0 L272.0 73.6 L267.2 75.5 L263.1 77.8 L259.3 80.6 L255.6 83.8 L251.5 87.3 L246.9 90.5 L241.8 93.3 L236.1 95.4 L230.0 96.6 L223.8 96.9 L217.6 96.5 L211.4 95.4 L205.4 94.0 L199.5 92.4 L193.5 90.6 L187.5 88.5 L181.7 86.1 L176.1 83.1 L171.2 79.5 L167.3 75.1 L164.6 70.2 L163.4 64.8 L163.7 59.3 L165.3 53.9 L167.7 48.8 L170.4 44.2 L172.9 40.0 L174.6 36.1 L175.2 32.3 L174.9 28.2 L173.8 23.6 L172.4 18.5 L171.2 12.8 L170.9 6.9 L171.9 1.0 L174.4 -4.5 L178.5 -9.1 L183.9 -12.7 L190.3 -15.0 L197.2 -16.2 L204.3 -16.5 L211.2 -16.1 L217.8 -15.4 L224.0 -14.6 L230.0 -13.8 L235.8 -13.1 L241.5 -12.3 L247.1 -11.2 L252.6 -9.7 L257.8 -7.7 L262.5 -5.0 L266.7 -1.9 L270.4 1.5 L273.7 5.0 L276.9 8.5 L280.3 11.8 L284.1 15.0 L288.5 18.2 L293.4 21.5 L298.6 25.3 L303.6 29.6 L307.9 34.5 L310.9 40.0Z'/%3E%3Cpath d='M329.8 40.0 L330.3 47.0 L328.5 53.9 L324.4 60.2 L318.3 65.7 L310.7 70.1 L302.4 73.4 L294.2 75.9 L286.6 78.0 L280.0 80.0 L274.6 82.5 L270.0 85.8 L266.0 89.9 L261.9 94.7 L257.3 100.0 L251.8 105.1 L245.3 109.6 L238.0 113.0 L230.0 115.1 L221.7 115.6 L213.5 114.7 L205.7 112.7 L198.2 109.9 L191.2 106.5 L184.6 103.0 L178.2 99.2 L172.0 95.3 L166.2 91.0 L160.9 86.4 L156.5 81.2 L153.3 75.4 L151.4 69.3 L151.0 63.0 L151.9 56.7 L153.7 50.8 L155.8 45.2 L157.8 40.0 L159.0 35.0 L159.2 30.0 L158.3 24.6 L156.7 18.6 L154.8 12.0 L153.4 4.6 L153.3 -3.0 L154.8 -10.5 L158.4 -17.3 L164.0 -22.9 L171.4 -27.0 L180.0 -29.3 L189.2 -30.0 L198.5 -29.3 L207.3 -27.8 L215.5 -25.9 L223.0 -24.0 L230.0 -22.5 L236.7 -21.5 L243.4 -20.8 L250.2 -20.2 L257.0 -19.4 L263.9 -18.2 L270.6 -16.2 L276.8 -13.5 L282.6 -10.1 L287.8 -6.3 L292.7 -2.1 L297.4 2.2 L302.2 6.6 L307.3 11.2 L312.6 15.9 L318.0 21.1 L323.1 26.9 L327.2 33.2 L329.8 40.0Z'/%3E%3Cpath d='M345.5 40.0 L345.3 48.1 L342.7 55.9 L337.8 63.1 L330.9 69.4 L322.4 74.5 L313.3 78.5 L304.3 81.6 L296.0 84.3 L288.9 87.1 L283.1 90.6 L278.2 95.1 L273.8 100.7 L269.3 107.4 L263.9 114.5 L257.3 121.5 L249.3 127.6 L240.1 132.1 L230.0 134.6 L219.6 135.0 L209.5 133.2 L200.0 129.7 L191.4 124.9 L183.7 119.4 L176.8 113.7 L170.4 108.0 L164.4 102.6 L158.5 97.2 L153.0 91.7 L147.8 86.0 L143.5 80.0 L140.2 73.5 L138.2 66.7 L137.5 59.8 L137.7 53.0 L138.6 46.4 L139.5 40.0 L140.1 33.7 L139.9 27.3 L138.8 20.5 L137.3 13.0 L135.7 4.8 L134.9 -3.9 L135.5 -12.9 L138.2 -21.6 L143.2 -29.4 L150.7 -35.6 L160.1 -39.9 L170.8 -42.0 L182.2 -42.0 L193.4 -40.4 L204.0 -37.7 L213.5 -34.7 L222.1 -32.1 L230.0 -30.2 L237.6 -29.2 L245.2 -29.1 L253.3 -29.5 L261.8 -30.0 L270.8 -29.9 L279.8 -29.0 L288.6 -26.9 L296.8 -23.7 L304.2 -19.4 L310.8 -14.2 L316.6 -8.5 L321.9 -2.4 L326.9 3.8 L331.8 10.4 L336.5 17.2 L340.6 24.4 L343.8 32.0 L345.5 40.0Z'/%3E%3Cpath d='M357.5 40.0 L356.6 48.9 L353.8 57.5 L348.8 65.5 L342.0 72.6 L333.7 78.7 L324.7 83.7 L315.6 88.0 L307.2 91.8 L299.9 95.9 L293.7 100.7 L288.3 106.6 L283.3 113.8 L277.8 122.0 L271.3 130.7 L263.2 139.1 L253.4 146.3 L242.2 151.4 L230.0 154.0 L217.6 153.6 L205.6 150.5 L194.8 145.1 L185.3 138.1 L177.3 130.3 L170.5 122.5 L164.4 115.0 L158.6 108.1 L152.6 101.9 L146.5 96.1 L140.2 90.3 L134.0 84.3 L128.5 77.9 L124.0 70.9 L120.7 63.4 L118.7 55.7 L117.7 47.9 L117.5 40.0 L117.5 32.1 L117.4 24.1 L117.0 15.8 L116.5 6.9 L116.2 -2.4 L116.9 -12.3 L119.0 -22.2 L123.4 -31.6 L130.2 -39.9 L139.4 -46.4 L150.6 -50.7 L163.3 -52.5 L176.4 -52.0 L189.2 -49.7 L201.1 -46.4 L211.7 -42.8 L221.3 -39.8 L230.0 -38.0 L238.5 -37.6 L247.3 -38.6 L256.9 -40.3 L267.4 -42.3 L278.8 -43.7 L290.5 -43.8 L302.0 -42.3 L312.8 -39.0 L322.3 -33.9 L330.3 -27.3 L336.8 -19.8 L341.9 -11.7 L346.0 -3.3 L349.5 5.2 L352.5 13.7 L355.0 22.4 L356.8 31.1 L357.5 40.0Z'/%3E%3Cpath d='M365.9 40.0 L364.9 49.4 L362.6 58.7 L358.7 67.6 L353.2 75.9 L346.1 83.3 L338.1 89.9 L329.6 95.8 L321.4 101.3 L313.8 107.0 L306.9 113.3 L300.5 120.6 L294.2 129.0 L287.3 138.2 L279.1 147.8 L269.1 156.9 L257.4 164.4 L244.2 169.5 L230.0 171.5 L215.8 170.1 L202.4 165.4 L190.4 158.1 L180.4 149.1 L172.2 139.2 L165.5 129.4 L159.6 120.5 L153.7 112.7 L147.4 106.1 L140.1 100.3 L132.0 94.9 L123.4 89.3 L114.8 83.0 L107.0 75.8 L100.6 67.7 L95.9 58.9 L93.1 49.6 L91.9 40.0 L91.9 30.3 L92.8 20.6 L94.1 10.9 L95.7 0.9 L97.8 -9.3 L100.8 -19.7 L105.2 -29.9 L111.5 -39.6 L120.0 -48.0 L130.7 -54.6 L143.4 -59.0 L157.2 -60.9 L171.5 -60.4 L185.3 -58.2 L198.2 -54.9 L209.8 -51.5 L220.3 -48.9 L230.0 -47.7 L239.7 -48.3 L249.9 -50.4 L261.3 -53.6 L274.1 -56.9 L288.0 -59.5 L302.5 -60.4 L316.7 -59.1 L329.8 -55.2 L341.1 -48.9 L350.0 -40.6 L356.4 -30.8 L360.7 -20.3 L363.1 -9.7 L364.5 0.8 L365.3 11.0 L365.8 20.9 L366.0 30.5 L365.9 40.0Z'/%3E%3C/g%3E%3C/svg%3E");opacity:.6}
.sv-t.soon .sv-tw{color:#4D6E86}
.sv-t.soon .sv-ti{color:#7A8EA0;background:#EEF3F7}
.sv-t.soon .sv-tn small{color:#B5701F}
.sv-t.soon.on{border-style:solid;border-color:transparent;background:linear-gradient(150deg,#5F7F97 0%,#4D6E86 45%,#33506A 100%);box-shadow:0 16px 32px rgba(51,80,106,.25)}
.sv-t.soon.on::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 170'%3E%3Cg fill='none' stroke='rgb%28255%2C255%2C255%29' stroke-opacity='0.22' stroke-width='1.1'%3E%3Cpath d='M249.2 40.0 L249.8 41.4 L249.9 42.8 L249.6 44.2 L248.9 45.5 L248.0 46.7 L246.9 47.8 L245.6 48.8 L244.4 49.7 L243.1 50.5 L241.9 51.3 L240.5 52.0 L239.2 52.7 L237.7 53.2 L236.1 53.5 L234.6 53.6 L233.0 53.5 L231.4 53.2 L230.0 52.8 L228.6 52.4 L227.4 52.0 L226.1 51.8 L224.7 51.7 L223.2 51.8 L221.4 51.8 L219.6 51.9 L217.6 51.8 L215.7 51.5 L213.9 50.8 L212.4 49.9 L211.3 48.6 L210.8 47.2 L210.7 45.6 L211.0 44.1 L211.6 42.6 L212.4 41.2 L213.2 40.0 L213.9 38.9 L214.4 37.8 L214.8 36.7 L215.1 35.7 L215.4 34.5 L215.7 33.4 L216.1 32.2 L216.8 31.1 L217.7 30.1 L218.7 29.2 L219.9 28.5 L221.2 27.7 L222.5 27.1 L223.8 26.4 L225.2 25.8 L226.7 25.1 L228.3 24.5 L230.0 24.0 L231.8 23.7 L233.6 23.7 L235.4 24.0 L237.0 24.6 L238.4 25.6 L239.4 26.9 L240.2 28.3 L240.8 29.7 L241.1 31.1 L241.5 32.3 L241.9 33.3 L242.5 34.2 L243.4 35.0 L244.5 35.8 L245.8 36.6 L247.1 37.6 L248.3 38.7 L249.2 40.0Z'/%3E%3Cpath d='M269.2 40.0 L270.3 42.8 L270.4 45.7 L269.5 48.5 L267.8 51.0 L265.5 53.2 L262.7 55.1 L259.8 56.7 L256.9 58.1 L254.2 59.3 L251.6 60.6 L249.1 61.8 L246.6 63.0 L244.0 64.1 L241.4 65.0 L238.6 65.6 L235.7 65.9 L232.8 65.9 L230.0 65.6 L227.2 65.2 L224.5 64.8 L221.8 64.5 L218.9 64.3 L215.9 64.2 L212.5 64.2 L209.0 64.0 L205.3 63.6 L201.7 62.7 L198.4 61.2 L195.8 59.2 L194.0 56.6 L193.2 53.7 L193.3 50.7 L194.3 47.7 L195.7 44.8 L197.5 42.3 L199.2 40.0 L200.5 37.9 L201.5 36.0 L201.9 34.0 L202.0 31.9 L202.0 29.6 L202.1 27.1 L202.4 24.6 L203.3 22.1 L204.7 19.7 L206.6 17.7 L208.9 15.9 L211.6 14.5 L214.4 13.3 L217.4 12.3 L220.4 11.5 L223.5 10.7 L226.7 10.1 L230.0 9.6 L233.3 9.4 L236.7 9.7 L239.9 10.4 L242.9 11.7 L245.5 13.5 L247.5 15.7 L249.1 18.2 L250.3 20.7 L251.2 23.1 L252.1 25.2 L253.1 27.0 L254.6 28.6 L256.6 30.1 L259.1 31.5 L261.9 33.2 L264.7 35.1 L267.2 37.4 L269.2 40.0Z'/%3E%3Cpath d='M290.1 40.0 L291.5 44.3 L291.3 48.6 L289.5 52.8 L286.4 56.4 L282.2 59.5 L277.5 61.9 L272.6 63.9 L267.9 65.5 L263.7 66.9 L259.8 68.4 L256.4 70.1 L253.1 72.0 L249.8 74.0 L246.3 75.9 L242.6 77.6 L238.6 78.9 L234.3 79.7 L230.0 80.0 L225.6 80.0 L221.3 79.6 L216.9 79.1 L212.5 78.6 L207.9 78.0 L203.0 77.4 L198.1 76.5 L193.0 75.3 L188.2 73.5 L183.9 71.0 L180.5 67.7 L178.2 63.9 L177.3 59.7 L177.6 55.2 L179.1 50.9 L181.3 46.9 L183.8 43.2 L186.1 40.0 L187.9 37.1 L188.9 34.2 L189.1 31.2 L188.7 28.0 L188.0 24.3 L187.4 20.3 L187.4 16.2 L188.3 12.0 L190.1 8.1 L193.0 4.7 L196.7 2.0 L201.1 -0.1 L205.8 -1.4 L210.8 -2.3 L215.7 -2.8 L220.5 -3.1 L225.3 -3.2 L230.0 -3.2 L234.7 -2.9 L239.3 -2.3 L243.8 -1.3 L248.0 0.4 L251.8 2.6 L255.0 5.3 L257.7 8.3 L259.9 11.5 L261.7 14.6 L263.6 17.5 L265.7 20.0 L268.3 22.3 L271.5 24.5 L275.4 26.8 L279.6 29.4 L283.8 32.4 L287.4 36.0 L290.1 40.0Z'/%3E%3Cpath d='M310.9 40.0 L312.0 45.7 L311.1 51.4 L308.2 56.8 L303.5 61.4 L297.4 65.2 L290.7 68.0 L283.9 70.2 L277.6 72.0 L272.0 73.6 L267.2 75.5 L263.1 77.8 L259.3 80.6 L255.6 83.8 L251.5 87.3 L246.9 90.5 L241.8 93.3 L236.1 95.4 L230.0 96.6 L223.8 96.9 L217.6 96.5 L211.4 95.4 L205.4 94.0 L199.5 92.4 L193.5 90.6 L187.5 88.5 L181.7 86.1 L176.1 83.1 L171.2 79.5 L167.3 75.1 L164.6 70.2 L163.4 64.8 L163.7 59.3 L165.3 53.9 L167.7 48.8 L170.4 44.2 L172.9 40.0 L174.6 36.1 L175.2 32.3 L174.9 28.2 L173.8 23.6 L172.4 18.5 L171.2 12.8 L170.9 6.9 L171.9 1.0 L174.4 -4.5 L178.5 -9.1 L183.9 -12.7 L190.3 -15.0 L197.2 -16.2 L204.3 -16.5 L211.2 -16.1 L217.8 -15.4 L224.0 -14.6 L230.0 -13.8 L235.8 -13.1 L241.5 -12.3 L247.1 -11.2 L252.6 -9.7 L257.8 -7.7 L262.5 -5.0 L266.7 -1.9 L270.4 1.5 L273.7 5.0 L276.9 8.5 L280.3 11.8 L284.1 15.0 L288.5 18.2 L293.4 21.5 L298.6 25.3 L303.6 29.6 L307.9 34.5 L310.9 40.0Z'/%3E%3Cpath d='M329.8 40.0 L330.3 47.0 L328.5 53.9 L324.4 60.2 L318.3 65.7 L310.7 70.1 L302.4 73.4 L294.2 75.9 L286.6 78.0 L280.0 80.0 L274.6 82.5 L270.0 85.8 L266.0 89.9 L261.9 94.7 L257.3 100.0 L251.8 105.1 L245.3 109.6 L238.0 113.0 L230.0 115.1 L221.7 115.6 L213.5 114.7 L205.7 112.7 L198.2 109.9 L191.2 106.5 L184.6 103.0 L178.2 99.2 L172.0 95.3 L166.2 91.0 L160.9 86.4 L156.5 81.2 L153.3 75.4 L151.4 69.3 L151.0 63.0 L151.9 56.7 L153.7 50.8 L155.8 45.2 L157.8 40.0 L159.0 35.0 L159.2 30.0 L158.3 24.6 L156.7 18.6 L154.8 12.0 L153.4 4.6 L153.3 -3.0 L154.8 -10.5 L158.4 -17.3 L164.0 -22.9 L171.4 -27.0 L180.0 -29.3 L189.2 -30.0 L198.5 -29.3 L207.3 -27.8 L215.5 -25.9 L223.0 -24.0 L230.0 -22.5 L236.7 -21.5 L243.4 -20.8 L250.2 -20.2 L257.0 -19.4 L263.9 -18.2 L270.6 -16.2 L276.8 -13.5 L282.6 -10.1 L287.8 -6.3 L292.7 -2.1 L297.4 2.2 L302.2 6.6 L307.3 11.2 L312.6 15.9 L318.0 21.1 L323.1 26.9 L327.2 33.2 L329.8 40.0Z'/%3E%3Cpath d='M345.5 40.0 L345.3 48.1 L342.7 55.9 L337.8 63.1 L330.9 69.4 L322.4 74.5 L313.3 78.5 L304.3 81.6 L296.0 84.3 L288.9 87.1 L283.1 90.6 L278.2 95.1 L273.8 100.7 L269.3 107.4 L263.9 114.5 L257.3 121.5 L249.3 127.6 L240.1 132.1 L230.0 134.6 L219.6 135.0 L209.5 133.2 L200.0 129.7 L191.4 124.9 L183.7 119.4 L176.8 113.7 L170.4 108.0 L164.4 102.6 L158.5 97.2 L153.0 91.7 L147.8 86.0 L143.5 80.0 L140.2 73.5 L138.2 66.7 L137.5 59.8 L137.7 53.0 L138.6 46.4 L139.5 40.0 L140.1 33.7 L139.9 27.3 L138.8 20.5 L137.3 13.0 L135.7 4.8 L134.9 -3.9 L135.5 -12.9 L138.2 -21.6 L143.2 -29.4 L150.7 -35.6 L160.1 -39.9 L170.8 -42.0 L182.2 -42.0 L193.4 -40.4 L204.0 -37.7 L213.5 -34.7 L222.1 -32.1 L230.0 -30.2 L237.6 -29.2 L245.2 -29.1 L253.3 -29.5 L261.8 -30.0 L270.8 -29.9 L279.8 -29.0 L288.6 -26.9 L296.8 -23.7 L304.2 -19.4 L310.8 -14.2 L316.6 -8.5 L321.9 -2.4 L326.9 3.8 L331.8 10.4 L336.5 17.2 L340.6 24.4 L343.8 32.0 L345.5 40.0Z'/%3E%3Cpath d='M357.5 40.0 L356.6 48.9 L353.8 57.5 L348.8 65.5 L342.0 72.6 L333.7 78.7 L324.7 83.7 L315.6 88.0 L307.2 91.8 L299.9 95.9 L293.7 100.7 L288.3 106.6 L283.3 113.8 L277.8 122.0 L271.3 130.7 L263.2 139.1 L253.4 146.3 L242.2 151.4 L230.0 154.0 L217.6 153.6 L205.6 150.5 L194.8 145.1 L185.3 138.1 L177.3 130.3 L170.5 122.5 L164.4 115.0 L158.6 108.1 L152.6 101.9 L146.5 96.1 L140.2 90.3 L134.0 84.3 L128.5 77.9 L124.0 70.9 L120.7 63.4 L118.7 55.7 L117.7 47.9 L117.5 40.0 L117.5 32.1 L117.4 24.1 L117.0 15.8 L116.5 6.9 L116.2 -2.4 L116.9 -12.3 L119.0 -22.2 L123.4 -31.6 L130.2 -39.9 L139.4 -46.4 L150.6 -50.7 L163.3 -52.5 L176.4 -52.0 L189.2 -49.7 L201.1 -46.4 L211.7 -42.8 L221.3 -39.8 L230.0 -38.0 L238.5 -37.6 L247.3 -38.6 L256.9 -40.3 L267.4 -42.3 L278.8 -43.7 L290.5 -43.8 L302.0 -42.3 L312.8 -39.0 L322.3 -33.9 L330.3 -27.3 L336.8 -19.8 L341.9 -11.7 L346.0 -3.3 L349.5 5.2 L352.5 13.7 L355.0 22.4 L356.8 31.1 L357.5 40.0Z'/%3E%3Cpath d='M365.9 40.0 L364.9 49.4 L362.6 58.7 L358.7 67.6 L353.2 75.9 L346.1 83.3 L338.1 89.9 L329.6 95.8 L321.4 101.3 L313.8 107.0 L306.9 113.3 L300.5 120.6 L294.2 129.0 L287.3 138.2 L279.1 147.8 L269.1 156.9 L257.4 164.4 L244.2 169.5 L230.0 171.5 L215.8 170.1 L202.4 165.4 L190.4 158.1 L180.4 149.1 L172.2 139.2 L165.5 129.4 L159.6 120.5 L153.7 112.7 L147.4 106.1 L140.1 100.3 L132.0 94.9 L123.4 89.3 L114.8 83.0 L107.0 75.8 L100.6 67.7 L95.9 58.9 L93.1 49.6 L91.9 40.0 L91.9 30.3 L92.8 20.6 L94.1 10.9 L95.7 0.9 L97.8 -9.3 L100.8 -19.7 L105.2 -29.9 L111.5 -39.6 L120.0 -48.0 L130.7 -54.6 L143.4 -59.0 L157.2 -60.9 L171.5 -60.4 L185.3 -58.2 L198.2 -54.9 L209.8 -51.5 L220.3 -48.9 L230.0 -47.7 L239.7 -48.3 L249.9 -50.4 L261.3 -53.6 L274.1 -56.9 L288.0 -59.5 L302.5 -60.4 L316.7 -59.1 L329.8 -55.2 L341.1 -48.9 L350.0 -40.6 L356.4 -30.8 L360.7 -20.3 L363.1 -9.7 L364.5 0.8 L365.3 11.0 L365.8 20.9 L366.0 30.5 L365.9 40.0Z'/%3E%3C/g%3E%3C/svg%3E")}
.sv-t.soon.on .sv-ti{background:rgba(255,255,255,.2);color:#fff}
.sv-t.soon.on .sv-tn small{color:#FFD9A8}
.sv-t.soon.on .sv-tw{color:#fff}
.sv-soonart{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(120% 90% at 30% 20%,#1B4E7A 0,#0B2540 60%,#081A2E 100%)}
.sv-soonart span{width:110px;height:110px;border-radius:30px;display:grid;place-items:center;color:#9FD3FF;background:rgba(255,255,255,.06);border:1px solid rgba(159,211,255,.25)}
.sv-soonart svg{width:56px;height:56px;stroke-width:1.4}
.sv-soonart b{font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#F2B26B}
.sv-p.soon .sv-m figcaption{display:none}
.sv-t{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:14px 14px 16px;border-radius:16px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:rgba(255,255,255,.7);border:1px solid var(--ln);transition:background .3s,border-color .3s,box-shadow .3s,transform .3s var(--ease)}
.sv-t:hover{transform:translateY(-2px);border-color:rgba(14,127,214,.3)}
.sv-t.on{color:#fff;border-color:transparent;background:linear-gradient(150deg,#1590EA 0%,#0E7FD6 45%,#0A5596 100%);box-shadow:0 16px 32px rgba(14,127,214,.28)}
.sv-t{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(165deg,#fff 35%,#EEF6FC 100%)}
.sv-t::after{content:'';position:absolute;inset:0;z-index:-2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 170'%3E%3Cg fill='none' stroke='rgb%2814%2C127%2C214%29' stroke-opacity='0.16' stroke-width='1.1'%3E%3Cpath d='M249.2 40.0 L249.8 41.4 L249.9 42.8 L249.6 44.2 L248.9 45.5 L248.0 46.7 L246.9 47.8 L245.6 48.8 L244.4 49.7 L243.1 50.5 L241.9 51.3 L240.5 52.0 L239.2 52.7 L237.7 53.2 L236.1 53.5 L234.6 53.6 L233.0 53.5 L231.4 53.2 L230.0 52.8 L228.6 52.4 L227.4 52.0 L226.1 51.8 L224.7 51.7 L223.2 51.8 L221.4 51.8 L219.6 51.9 L217.6 51.8 L215.7 51.5 L213.9 50.8 L212.4 49.9 L211.3 48.6 L210.8 47.2 L210.7 45.6 L211.0 44.1 L211.6 42.6 L212.4 41.2 L213.2 40.0 L213.9 38.9 L214.4 37.8 L214.8 36.7 L215.1 35.7 L215.4 34.5 L215.7 33.4 L216.1 32.2 L216.8 31.1 L217.7 30.1 L218.7 29.2 L219.9 28.5 L221.2 27.7 L222.5 27.1 L223.8 26.4 L225.2 25.8 L226.7 25.1 L228.3 24.5 L230.0 24.0 L231.8 23.7 L233.6 23.7 L235.4 24.0 L237.0 24.6 L238.4 25.6 L239.4 26.9 L240.2 28.3 L240.8 29.7 L241.1 31.1 L241.5 32.3 L241.9 33.3 L242.5 34.2 L243.4 35.0 L244.5 35.8 L245.8 36.6 L247.1 37.6 L248.3 38.7 L249.2 40.0Z'/%3E%3Cpath d='M269.2 40.0 L270.3 42.8 L270.4 45.7 L269.5 48.5 L267.8 51.0 L265.5 53.2 L262.7 55.1 L259.8 56.7 L256.9 58.1 L254.2 59.3 L251.6 60.6 L249.1 61.8 L246.6 63.0 L244.0 64.1 L241.4 65.0 L238.6 65.6 L235.7 65.9 L232.8 65.9 L230.0 65.6 L227.2 65.2 L224.5 64.8 L221.8 64.5 L218.9 64.3 L215.9 64.2 L212.5 64.2 L209.0 64.0 L205.3 63.6 L201.7 62.7 L198.4 61.2 L195.8 59.2 L194.0 56.6 L193.2 53.7 L193.3 50.7 L194.3 47.7 L195.7 44.8 L197.5 42.3 L199.2 40.0 L200.5 37.9 L201.5 36.0 L201.9 34.0 L202.0 31.9 L202.0 29.6 L202.1 27.1 L202.4 24.6 L203.3 22.1 L204.7 19.7 L206.6 17.7 L208.9 15.9 L211.6 14.5 L214.4 13.3 L217.4 12.3 L220.4 11.5 L223.5 10.7 L226.7 10.1 L230.0 9.6 L233.3 9.4 L236.7 9.7 L239.9 10.4 L242.9 11.7 L245.5 13.5 L247.5 15.7 L249.1 18.2 L250.3 20.7 L251.2 23.1 L252.1 25.2 L253.1 27.0 L254.6 28.6 L256.6 30.1 L259.1 31.5 L261.9 33.2 L264.7 35.1 L267.2 37.4 L269.2 40.0Z'/%3E%3Cpath d='M290.1 40.0 L291.5 44.3 L291.3 48.6 L289.5 52.8 L286.4 56.4 L282.2 59.5 L277.5 61.9 L272.6 63.9 L267.9 65.5 L263.7 66.9 L259.8 68.4 L256.4 70.1 L253.1 72.0 L249.8 74.0 L246.3 75.9 L242.6 77.6 L238.6 78.9 L234.3 79.7 L230.0 80.0 L225.6 80.0 L221.3 79.6 L216.9 79.1 L212.5 78.6 L207.9 78.0 L203.0 77.4 L198.1 76.5 L193.0 75.3 L188.2 73.5 L183.9 71.0 L180.5 67.7 L178.2 63.9 L177.3 59.7 L177.6 55.2 L179.1 50.9 L181.3 46.9 L183.8 43.2 L186.1 40.0 L187.9 37.1 L188.9 34.2 L189.1 31.2 L188.7 28.0 L188.0 24.3 L187.4 20.3 L187.4 16.2 L188.3 12.0 L190.1 8.1 L193.0 4.7 L196.7 2.0 L201.1 -0.1 L205.8 -1.4 L210.8 -2.3 L215.7 -2.8 L220.5 -3.1 L225.3 -3.2 L230.0 -3.2 L234.7 -2.9 L239.3 -2.3 L243.8 -1.3 L248.0 0.4 L251.8 2.6 L255.0 5.3 L257.7 8.3 L259.9 11.5 L261.7 14.6 L263.6 17.5 L265.7 20.0 L268.3 22.3 L271.5 24.5 L275.4 26.8 L279.6 29.4 L283.8 32.4 L287.4 36.0 L290.1 40.0Z'/%3E%3Cpath d='M310.9 40.0 L312.0 45.7 L311.1 51.4 L308.2 56.8 L303.5 61.4 L297.4 65.2 L290.7 68.0 L283.9 70.2 L277.6 72.0 L272.0 73.6 L267.2 75.5 L263.1 77.8 L259.3 80.6 L255.6 83.8 L251.5 87.3 L246.9 90.5 L241.8 93.3 L236.1 95.4 L230.0 96.6 L223.8 96.9 L217.6 96.5 L211.4 95.4 L205.4 94.0 L199.5 92.4 L193.5 90.6 L187.5 88.5 L181.7 86.1 L176.1 83.1 L171.2 79.5 L167.3 75.1 L164.6 70.2 L163.4 64.8 L163.7 59.3 L165.3 53.9 L167.7 48.8 L170.4 44.2 L172.9 40.0 L174.6 36.1 L175.2 32.3 L174.9 28.2 L173.8 23.6 L172.4 18.5 L171.2 12.8 L170.9 6.9 L171.9 1.0 L174.4 -4.5 L178.5 -9.1 L183.9 -12.7 L190.3 -15.0 L197.2 -16.2 L204.3 -16.5 L211.2 -16.1 L217.8 -15.4 L224.0 -14.6 L230.0 -13.8 L235.8 -13.1 L241.5 -12.3 L247.1 -11.2 L252.6 -9.7 L257.8 -7.7 L262.5 -5.0 L266.7 -1.9 L270.4 1.5 L273.7 5.0 L276.9 8.5 L280.3 11.8 L284.1 15.0 L288.5 18.2 L293.4 21.5 L298.6 25.3 L303.6 29.6 L307.9 34.5 L310.9 40.0Z'/%3E%3Cpath d='M329.8 40.0 L330.3 47.0 L328.5 53.9 L324.4 60.2 L318.3 65.7 L310.7 70.1 L302.4 73.4 L294.2 75.9 L286.6 78.0 L280.0 80.0 L274.6 82.5 L270.0 85.8 L266.0 89.9 L261.9 94.7 L257.3 100.0 L251.8 105.1 L245.3 109.6 L238.0 113.0 L230.0 115.1 L221.7 115.6 L213.5 114.7 L205.7 112.7 L198.2 109.9 L191.2 106.5 L184.6 103.0 L178.2 99.2 L172.0 95.3 L166.2 91.0 L160.9 86.4 L156.5 81.2 L153.3 75.4 L151.4 69.3 L151.0 63.0 L151.9 56.7 L153.7 50.8 L155.8 45.2 L157.8 40.0 L159.0 35.0 L159.2 30.0 L158.3 24.6 L156.7 18.6 L154.8 12.0 L153.4 4.6 L153.3 -3.0 L154.8 -10.5 L158.4 -17.3 L164.0 -22.9 L171.4 -27.0 L180.0 -29.3 L189.2 -30.0 L198.5 -29.3 L207.3 -27.8 L215.5 -25.9 L223.0 -24.0 L230.0 -22.5 L236.7 -21.5 L243.4 -20.8 L250.2 -20.2 L257.0 -19.4 L263.9 -18.2 L270.6 -16.2 L276.8 -13.5 L282.6 -10.1 L287.8 -6.3 L292.7 -2.1 L297.4 2.2 L302.2 6.6 L307.3 11.2 L312.6 15.9 L318.0 21.1 L323.1 26.9 L327.2 33.2 L329.8 40.0Z'/%3E%3Cpath d='M345.5 40.0 L345.3 48.1 L342.7 55.9 L337.8 63.1 L330.9 69.4 L322.4 74.5 L313.3 78.5 L304.3 81.6 L296.0 84.3 L288.9 87.1 L283.1 90.6 L278.2 95.1 L273.8 100.7 L269.3 107.4 L263.9 114.5 L257.3 121.5 L249.3 127.6 L240.1 132.1 L230.0 134.6 L219.6 135.0 L209.5 133.2 L200.0 129.7 L191.4 124.9 L183.7 119.4 L176.8 113.7 L170.4 108.0 L164.4 102.6 L158.5 97.2 L153.0 91.7 L147.8 86.0 L143.5 80.0 L140.2 73.5 L138.2 66.7 L137.5 59.8 L137.7 53.0 L138.6 46.4 L139.5 40.0 L140.1 33.7 L139.9 27.3 L138.8 20.5 L137.3 13.0 L135.7 4.8 L134.9 -3.9 L135.5 -12.9 L138.2 -21.6 L143.2 -29.4 L150.7 -35.6 L160.1 -39.9 L170.8 -42.0 L182.2 -42.0 L193.4 -40.4 L204.0 -37.7 L213.5 -34.7 L222.1 -32.1 L230.0 -30.2 L237.6 -29.2 L245.2 -29.1 L253.3 -29.5 L261.8 -30.0 L270.8 -29.9 L279.8 -29.0 L288.6 -26.9 L296.8 -23.7 L304.2 -19.4 L310.8 -14.2 L316.6 -8.5 L321.9 -2.4 L326.9 3.8 L331.8 10.4 L336.5 17.2 L340.6 24.4 L343.8 32.0 L345.5 40.0Z'/%3E%3Cpath d='M357.5 40.0 L356.6 48.9 L353.8 57.5 L348.8 65.5 L342.0 72.6 L333.7 78.7 L324.7 83.7 L315.6 88.0 L307.2 91.8 L299.9 95.9 L293.7 100.7 L288.3 106.6 L283.3 113.8 L277.8 122.0 L271.3 130.7 L263.2 139.1 L253.4 146.3 L242.2 151.4 L230.0 154.0 L217.6 153.6 L205.6 150.5 L194.8 145.1 L185.3 138.1 L177.3 130.3 L170.5 122.5 L164.4 115.0 L158.6 108.1 L152.6 101.9 L146.5 96.1 L140.2 90.3 L134.0 84.3 L128.5 77.9 L124.0 70.9 L120.7 63.4 L118.7 55.7 L117.7 47.9 L117.5 40.0 L117.5 32.1 L117.4 24.1 L117.0 15.8 L116.5 6.9 L116.2 -2.4 L116.9 -12.3 L119.0 -22.2 L123.4 -31.6 L130.2 -39.9 L139.4 -46.4 L150.6 -50.7 L163.3 -52.5 L176.4 -52.0 L189.2 -49.7 L201.1 -46.4 L211.7 -42.8 L221.3 -39.8 L230.0 -38.0 L238.5 -37.6 L247.3 -38.6 L256.9 -40.3 L267.4 -42.3 L278.8 -43.7 L290.5 -43.8 L302.0 -42.3 L312.8 -39.0 L322.3 -33.9 L330.3 -27.3 L336.8 -19.8 L341.9 -11.7 L346.0 -3.3 L349.5 5.2 L352.5 13.7 L355.0 22.4 L356.8 31.1 L357.5 40.0Z'/%3E%3Cpath d='M365.9 40.0 L364.9 49.4 L362.6 58.7 L358.7 67.6 L353.2 75.9 L346.1 83.3 L338.1 89.9 L329.6 95.8 L321.4 101.3 L313.8 107.0 L306.9 113.3 L300.5 120.6 L294.2 129.0 L287.3 138.2 L279.1 147.8 L269.1 156.9 L257.4 164.4 L244.2 169.5 L230.0 171.5 L215.8 170.1 L202.4 165.4 L190.4 158.1 L180.4 149.1 L172.2 139.2 L165.5 129.4 L159.6 120.5 L153.7 112.7 L147.4 106.1 L140.1 100.3 L132.0 94.9 L123.4 89.3 L114.8 83.0 L107.0 75.8 L100.6 67.7 L95.9 58.9 L93.1 49.6 L91.9 40.0 L91.9 30.3 L92.8 20.6 L94.1 10.9 L95.7 0.9 L97.8 -9.3 L100.8 -19.7 L105.2 -29.9 L111.5 -39.6 L120.0 -48.0 L130.7 -54.6 L143.4 -59.0 L157.2 -60.9 L171.5 -60.4 L185.3 -58.2 L198.2 -54.9 L209.8 -51.5 L220.3 -48.9 L230.0 -47.7 L239.7 -48.3 L249.9 -50.4 L261.3 -53.6 L274.1 -56.9 L288.0 -59.5 L302.5 -60.4 L316.7 -59.1 L329.8 -55.2 L341.1 -48.9 L350.0 -40.6 L356.4 -30.8 L360.7 -20.3 L363.1 -9.7 L364.5 0.8 L365.3 11.0 L365.8 20.9 L366.0 30.5 L365.9 40.0Z'/%3E%3C/g%3E%3C/svg%3E") right -70px top -24px/250px auto no-repeat;opacity:.75;transition:opacity .35s,transform .8s var(--ease)}
.sv-t:hover::after{opacity:1;transform:scale(1.06)}
.sv-t.on::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 170'%3E%3Cg fill='none' stroke='rgb%28255%2C255%2C255%29' stroke-opacity='0.22' stroke-width='1.1'%3E%3Cpath d='M249.2 40.0 L249.8 41.4 L249.9 42.8 L249.6 44.2 L248.9 45.5 L248.0 46.7 L246.9 47.8 L245.6 48.8 L244.4 49.7 L243.1 50.5 L241.9 51.3 L240.5 52.0 L239.2 52.7 L237.7 53.2 L236.1 53.5 L234.6 53.6 L233.0 53.5 L231.4 53.2 L230.0 52.8 L228.6 52.4 L227.4 52.0 L226.1 51.8 L224.7 51.7 L223.2 51.8 L221.4 51.8 L219.6 51.9 L217.6 51.8 L215.7 51.5 L213.9 50.8 L212.4 49.9 L211.3 48.6 L210.8 47.2 L210.7 45.6 L211.0 44.1 L211.6 42.6 L212.4 41.2 L213.2 40.0 L213.9 38.9 L214.4 37.8 L214.8 36.7 L215.1 35.7 L215.4 34.5 L215.7 33.4 L216.1 32.2 L216.8 31.1 L217.7 30.1 L218.7 29.2 L219.9 28.5 L221.2 27.7 L222.5 27.1 L223.8 26.4 L225.2 25.8 L226.7 25.1 L228.3 24.5 L230.0 24.0 L231.8 23.7 L233.6 23.7 L235.4 24.0 L237.0 24.6 L238.4 25.6 L239.4 26.9 L240.2 28.3 L240.8 29.7 L241.1 31.1 L241.5 32.3 L241.9 33.3 L242.5 34.2 L243.4 35.0 L244.5 35.8 L245.8 36.6 L247.1 37.6 L248.3 38.7 L249.2 40.0Z'/%3E%3Cpath d='M269.2 40.0 L270.3 42.8 L270.4 45.7 L269.5 48.5 L267.8 51.0 L265.5 53.2 L262.7 55.1 L259.8 56.7 L256.9 58.1 L254.2 59.3 L251.6 60.6 L249.1 61.8 L246.6 63.0 L244.0 64.1 L241.4 65.0 L238.6 65.6 L235.7 65.9 L232.8 65.9 L230.0 65.6 L227.2 65.2 L224.5 64.8 L221.8 64.5 L218.9 64.3 L215.9 64.2 L212.5 64.2 L209.0 64.0 L205.3 63.6 L201.7 62.7 L198.4 61.2 L195.8 59.2 L194.0 56.6 L193.2 53.7 L193.3 50.7 L194.3 47.7 L195.7 44.8 L197.5 42.3 L199.2 40.0 L200.5 37.9 L201.5 36.0 L201.9 34.0 L202.0 31.9 L202.0 29.6 L202.1 27.1 L202.4 24.6 L203.3 22.1 L204.7 19.7 L206.6 17.7 L208.9 15.9 L211.6 14.5 L214.4 13.3 L217.4 12.3 L220.4 11.5 L223.5 10.7 L226.7 10.1 L230.0 9.6 L233.3 9.4 L236.7 9.7 L239.9 10.4 L242.9 11.7 L245.5 13.5 L247.5 15.7 L249.1 18.2 L250.3 20.7 L251.2 23.1 L252.1 25.2 L253.1 27.0 L254.6 28.6 L256.6 30.1 L259.1 31.5 L261.9 33.2 L264.7 35.1 L267.2 37.4 L269.2 40.0Z'/%3E%3Cpath d='M290.1 40.0 L291.5 44.3 L291.3 48.6 L289.5 52.8 L286.4 56.4 L282.2 59.5 L277.5 61.9 L272.6 63.9 L267.9 65.5 L263.7 66.9 L259.8 68.4 L256.4 70.1 L253.1 72.0 L249.8 74.0 L246.3 75.9 L242.6 77.6 L238.6 78.9 L234.3 79.7 L230.0 80.0 L225.6 80.0 L221.3 79.6 L216.9 79.1 L212.5 78.6 L207.9 78.0 L203.0 77.4 L198.1 76.5 L193.0 75.3 L188.2 73.5 L183.9 71.0 L180.5 67.7 L178.2 63.9 L177.3 59.7 L177.6 55.2 L179.1 50.9 L181.3 46.9 L183.8 43.2 L186.1 40.0 L187.9 37.1 L188.9 34.2 L189.1 31.2 L188.7 28.0 L188.0 24.3 L187.4 20.3 L187.4 16.2 L188.3 12.0 L190.1 8.1 L193.0 4.7 L196.7 2.0 L201.1 -0.1 L205.8 -1.4 L210.8 -2.3 L215.7 -2.8 L220.5 -3.1 L225.3 -3.2 L230.0 -3.2 L234.7 -2.9 L239.3 -2.3 L243.8 -1.3 L248.0 0.4 L251.8 2.6 L255.0 5.3 L257.7 8.3 L259.9 11.5 L261.7 14.6 L263.6 17.5 L265.7 20.0 L268.3 22.3 L271.5 24.5 L275.4 26.8 L279.6 29.4 L283.8 32.4 L287.4 36.0 L290.1 40.0Z'/%3E%3Cpath d='M310.9 40.0 L312.0 45.7 L311.1 51.4 L308.2 56.8 L303.5 61.4 L297.4 65.2 L290.7 68.0 L283.9 70.2 L277.6 72.0 L272.0 73.6 L267.2 75.5 L263.1 77.8 L259.3 80.6 L255.6 83.8 L251.5 87.3 L246.9 90.5 L241.8 93.3 L236.1 95.4 L230.0 96.6 L223.8 96.9 L217.6 96.5 L211.4 95.4 L205.4 94.0 L199.5 92.4 L193.5 90.6 L187.5 88.5 L181.7 86.1 L176.1 83.1 L171.2 79.5 L167.3 75.1 L164.6 70.2 L163.4 64.8 L163.7 59.3 L165.3 53.9 L167.7 48.8 L170.4 44.2 L172.9 40.0 L174.6 36.1 L175.2 32.3 L174.9 28.2 L173.8 23.6 L172.4 18.5 L171.2 12.8 L170.9 6.9 L171.9 1.0 L174.4 -4.5 L178.5 -9.1 L183.9 -12.7 L190.3 -15.0 L197.2 -16.2 L204.3 -16.5 L211.2 -16.1 L217.8 -15.4 L224.0 -14.6 L230.0 -13.8 L235.8 -13.1 L241.5 -12.3 L247.1 -11.2 L252.6 -9.7 L257.8 -7.7 L262.5 -5.0 L266.7 -1.9 L270.4 1.5 L273.7 5.0 L276.9 8.5 L280.3 11.8 L284.1 15.0 L288.5 18.2 L293.4 21.5 L298.6 25.3 L303.6 29.6 L307.9 34.5 L310.9 40.0Z'/%3E%3Cpath d='M329.8 40.0 L330.3 47.0 L328.5 53.9 L324.4 60.2 L318.3 65.7 L310.7 70.1 L302.4 73.4 L294.2 75.9 L286.6 78.0 L280.0 80.0 L274.6 82.5 L270.0 85.8 L266.0 89.9 L261.9 94.7 L257.3 100.0 L251.8 105.1 L245.3 109.6 L238.0 113.0 L230.0 115.1 L221.7 115.6 L213.5 114.7 L205.7 112.7 L198.2 109.9 L191.2 106.5 L184.6 103.0 L178.2 99.2 L172.0 95.3 L166.2 91.0 L160.9 86.4 L156.5 81.2 L153.3 75.4 L151.4 69.3 L151.0 63.0 L151.9 56.7 L153.7 50.8 L155.8 45.2 L157.8 40.0 L159.0 35.0 L159.2 30.0 L158.3 24.6 L156.7 18.6 L154.8 12.0 L153.4 4.6 L153.3 -3.0 L154.8 -10.5 L158.4 -17.3 L164.0 -22.9 L171.4 -27.0 L180.0 -29.3 L189.2 -30.0 L198.5 -29.3 L207.3 -27.8 L215.5 -25.9 L223.0 -24.0 L230.0 -22.5 L236.7 -21.5 L243.4 -20.8 L250.2 -20.2 L257.0 -19.4 L263.9 -18.2 L270.6 -16.2 L276.8 -13.5 L282.6 -10.1 L287.8 -6.3 L292.7 -2.1 L297.4 2.2 L302.2 6.6 L307.3 11.2 L312.6 15.9 L318.0 21.1 L323.1 26.9 L327.2 33.2 L329.8 40.0Z'/%3E%3Cpath d='M345.5 40.0 L345.3 48.1 L342.7 55.9 L337.8 63.1 L330.9 69.4 L322.4 74.5 L313.3 78.5 L304.3 81.6 L296.0 84.3 L288.9 87.1 L283.1 90.6 L278.2 95.1 L273.8 100.7 L269.3 107.4 L263.9 114.5 L257.3 121.5 L249.3 127.6 L240.1 132.1 L230.0 134.6 L219.6 135.0 L209.5 133.2 L200.0 129.7 L191.4 124.9 L183.7 119.4 L176.8 113.7 L170.4 108.0 L164.4 102.6 L158.5 97.2 L153.0 91.7 L147.8 86.0 L143.5 80.0 L140.2 73.5 L138.2 66.7 L137.5 59.8 L137.7 53.0 L138.6 46.4 L139.5 40.0 L140.1 33.7 L139.9 27.3 L138.8 20.5 L137.3 13.0 L135.7 4.8 L134.9 -3.9 L135.5 -12.9 L138.2 -21.6 L143.2 -29.4 L150.7 -35.6 L160.1 -39.9 L170.8 -42.0 L182.2 -42.0 L193.4 -40.4 L204.0 -37.7 L213.5 -34.7 L222.1 -32.1 L230.0 -30.2 L237.6 -29.2 L245.2 -29.1 L253.3 -29.5 L261.8 -30.0 L270.8 -29.9 L279.8 -29.0 L288.6 -26.9 L296.8 -23.7 L304.2 -19.4 L310.8 -14.2 L316.6 -8.5 L321.9 -2.4 L326.9 3.8 L331.8 10.4 L336.5 17.2 L340.6 24.4 L343.8 32.0 L345.5 40.0Z'/%3E%3Cpath d='M357.5 40.0 L356.6 48.9 L353.8 57.5 L348.8 65.5 L342.0 72.6 L333.7 78.7 L324.7 83.7 L315.6 88.0 L307.2 91.8 L299.9 95.9 L293.7 100.7 L288.3 106.6 L283.3 113.8 L277.8 122.0 L271.3 130.7 L263.2 139.1 L253.4 146.3 L242.2 151.4 L230.0 154.0 L217.6 153.6 L205.6 150.5 L194.8 145.1 L185.3 138.1 L177.3 130.3 L170.5 122.5 L164.4 115.0 L158.6 108.1 L152.6 101.9 L146.5 96.1 L140.2 90.3 L134.0 84.3 L128.5 77.9 L124.0 70.9 L120.7 63.4 L118.7 55.7 L117.7 47.9 L117.5 40.0 L117.5 32.1 L117.4 24.1 L117.0 15.8 L116.5 6.9 L116.2 -2.4 L116.9 -12.3 L119.0 -22.2 L123.4 -31.6 L130.2 -39.9 L139.4 -46.4 L150.6 -50.7 L163.3 -52.5 L176.4 -52.0 L189.2 -49.7 L201.1 -46.4 L211.7 -42.8 L221.3 -39.8 L230.0 -38.0 L238.5 -37.6 L247.3 -38.6 L256.9 -40.3 L267.4 -42.3 L278.8 -43.7 L290.5 -43.8 L302.0 -42.3 L312.8 -39.0 L322.3 -33.9 L330.3 -27.3 L336.8 -19.8 L341.9 -11.7 L346.0 -3.3 L349.5 5.2 L352.5 13.7 L355.0 22.4 L356.8 31.1 L357.5 40.0Z'/%3E%3Cpath d='M365.9 40.0 L364.9 49.4 L362.6 58.7 L358.7 67.6 L353.2 75.9 L346.1 83.3 L338.1 89.9 L329.6 95.8 L321.4 101.3 L313.8 107.0 L306.9 113.3 L300.5 120.6 L294.2 129.0 L287.3 138.2 L279.1 147.8 L269.1 156.9 L257.4 164.4 L244.2 169.5 L230.0 171.5 L215.8 170.1 L202.4 165.4 L190.4 158.1 L180.4 149.1 L172.2 139.2 L165.5 129.4 L159.6 120.5 L153.7 112.7 L147.4 106.1 L140.1 100.3 L132.0 94.9 L123.4 89.3 L114.8 83.0 L107.0 75.8 L100.6 67.7 L95.9 58.9 L93.1 49.6 L91.9 40.0 L91.9 30.3 L92.8 20.6 L94.1 10.9 L95.7 0.9 L97.8 -9.3 L100.8 -19.7 L105.2 -29.9 L111.5 -39.6 L120.0 -48.0 L130.7 -54.6 L143.4 -59.0 L157.2 -60.9 L171.5 -60.4 L185.3 -58.2 L198.2 -54.9 L209.8 -51.5 L220.3 -48.9 L230.0 -47.7 L239.7 -48.3 L249.9 -50.4 L261.3 -53.6 L274.1 -56.9 L288.0 -59.5 L302.5 -60.4 L316.7 -59.1 L329.8 -55.2 L341.1 -48.9 L350.0 -40.6 L356.4 -30.8 L360.7 -20.3 L363.1 -9.7 L364.5 0.8 L365.3 11.0 L365.8 20.9 L366.0 30.5 L365.9 40.0Z'/%3E%3C/g%3E%3C/svg%3E");opacity:1}
.sv-tw{position:absolute;right:-12px;bottom:-14px;z-index:-1;width:78px;height:78px;color:var(--ac);opacity:.07;transform:rotate(-8deg);transition:opacity .35s,transform .6s var(--ease)}
.sv-tw svg{width:100%;height:100%;stroke-width:1.1}
.sv-t:hover .sv-tw{opacity:.12;transform:rotate(-4deg) scale(1.05)}
.sv-t.on .sv-tw{color:#fff;opacity:.16}
.sv-t:focus-visible{outline:2px solid var(--ac);outline-offset:3px}
.sv-ti{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--ac);background:#E6F2FB;transition:background .3s,color .3s}
.sv-t.on .sv-ti{background:rgba(255,255,255,.2);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.sv-ti svg{width:22px;height:22px}
.sv-tn{display:flex;flex-direction:column;gap:2px;font-family:var(--disp);font-size:.96rem;line-height:1.2;letter-spacing:-.01em}
.sv-tn small{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.12em;color:var(--mu)}
.sv-t.on .sv-tn small{color:#CFE7FB}
.sv-panels{position:relative}
.sv-p{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);padding:clamp(14px,1.6vw,20px);border-radius:24px;background:#fff;border:1px solid var(--ln);box-shadow:0 18px 40px rgba(11,37,64,.07)}
.sv-p[hidden]{display:none}
.sv-p.on{animation:svIn .5s var(--ease)}
@keyframes svIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sv-l{display:flex;flex-direction:column;gap:14px;min-width:0}
.sv-m{position:relative;margin:0;border-radius:16px;overflow:hidden;background:#0A1E33;aspect-ratio:3/2}
.sv-m video,.sv-m img,.sv-m .sv-ill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.sv-m img.contain{object-fit:contain;background:#fff}
.sv-m figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:5px 10px;border-radius:8px;font-size:.76rem;line-height:1.3;color:#fff;background:rgba(8,22,38,.72)}
.sv.live .en-flow{animation:chrain 1s linear infinite}
.sv-b{display:flex;flex-direction:column;gap:14px;padding:8px 8px 8px 0}
.sv-hd{display:flex;align-items:center;gap:14px}
.sv-hi{flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;background:var(--ac)}
.sv-p.soon .sv-b .sv-hi{color:#fff;background:#4D6E86}
.sv-hi svg{width:24px;height:24px}
.sv-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ac)}
.sv-b h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.6rem,2.4vw,2.1rem);letter-spacing:-.03em;line-height:1.1;color:var(--ink)}
.sv-d{margin:0;font-size:1rem;line-height:1.5;color:var(--mu)}
.sv-lab{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mu);margin-bottom:6px}
.sv-w{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.sv-w li{display:flex;align-items:flex-start;gap:8px;font-size:.92rem;line-height:1.35;color:var(--ink)}
.sv-w svg{flex:none;width:17px;height:17px;margin-top:1px;color:var(--tl);stroke-width:2.2}
.sv-g{padding-top:12px;border-top:1px solid var(--ln)}
.sv-ports{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.sv-port{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px;padding:7px 10px;border-radius:10px;background:#F5F9FC;border:1px solid transparent;color:var(--ink);transition:border-color .25s,background .25s}
.sv-port:hover{border-color:rgba(14,127,214,.35);background:#fff}
.sv-port b{font-weight:500;font-size:.86rem;line-height:1.25}
.sv-port small{grid-row:2;font-size:.74rem;color:var(--ac)}
.sv-port svg{grid-row:1/3;grid-column:2;width:15px;height:15px;color:var(--mu)}
.sv-none{margin:0;font-size:.86rem;color:var(--mu)}
.sv-secs{display:flex;flex-wrap:wrap;gap:6px}
.sv-secs a{font-size:.8rem;line-height:1.2;padding:6px 10px;border-radius:999px;color:var(--ink);background:#fff;border:1px solid var(--ln);transition:border-color .25s,color .25s}
.sv-secs a:hover{border-color:var(--ac);color:var(--ac)}
.sv-cta{align-self:flex-start;margin-top:auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;font-size:.92rem;font-weight:500;color:#fff;background:var(--ac);transition:background .25s,transform .3s var(--ease)}
.sv-cta:hover{background:#0B6CB8;transform:translateY(-1px)}
.sv-cta svg{width:16px;height:16px;transition:transform .3s var(--ease)}.sv-cta:hover svg{transform:translateX(3px)}
.sv-soon{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sv-soon-c{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:18px;border:1px dashed rgba(11,37,64,.18);background:rgba(255,255,255,.55)}
.sv-soon-c .sv-hi{width:40px;height:40px;color:var(--mu);background:#EEF3F7}
.sv-soon-c h4{margin:0 0 4px;font-family:var(--disp);font-weight:400;font-size:1.15rem;color:var(--ink)}
.sv-soon-c h4 em{display:inline-block;white-space:nowrap;margin-left:8px;font-style:normal;font-family:var(--sans);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:999px;color:#7A4A12;background:#FFF1DC;vertical-align:middle}
.sv-soon-c p{margin:0 0 8px;font-size:.88rem;color:var(--mu)}
.sv-soon-c ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.sv-soon-c li{font-size:.76rem;padding:4px 9px;border-radius:999px;color:var(--ink);background:#fff;border:1px solid var(--ln)}
@media (max-width:1240px){.sv-rail{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:900px){.sv-p{grid-template-columns:1fr}.sv-l{display:contents}.sv-b{order:1;padding:4px}.sv-l>div{order:2}.sv-cta{margin-top:6px}}
@media (max-width:640px){
  .sv-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none}
  .sv-rail::-webkit-scrollbar{display:none}
  .sv-t{flex:none;width:132px;scroll-snap-align:start}
  .sv-rail{position:relative;scroll-padding:0 16px;padding-top:4px;padding-bottom:18px;margin-bottom:-12px}
  .sv-t.on{box-shadow:0 10px 18px rgba(14,127,214,.24)}
  .sv-rw.ov::before,.sv-rw.ov::after{content:'';position:absolute;top:0;bottom:18px;width:56px;z-index:2;pointer-events:none;transition:opacity .25s}
  .sv-rw.ov::before{left:-16px;background:linear-gradient(90deg,var(--svbg) 20%,rgba(255,255,255,0))}
  .sv-rw.ov::after{right:-16px;background:linear-gradient(270deg,var(--svbg) 20%,rgba(255,255,255,0))}
  .sv-rw.st::before,.sv-rw.en::after{opacity:0}
  .sv-rw.ov .sv-ra{display:grid;place-items:center;position:absolute;top:50%;z-index:3;width:34px;height:34px;margin-top:-20px;padding:0;border:1px solid var(--ln);border-radius:50%;color:var(--ink);background:#fff;box-shadow:0 6px 16px rgba(11,37,64,.14);cursor:pointer;transition:opacity .25s}
  .sv-ra svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
  .sv-ra.prev{left:-8px}.sv-ra.next{right:-8px}
  .sv-rw.st .sv-ra.prev,.sv-rw.en .sv-ra.next{opacity:0;pointer-events:none}
  .sv-w,.sv-soon{grid-template-columns:1fr}.sv-m{aspect-ratio:4/3}
}
/* what we do: one card per service */
.sv-dos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sv-do{display:flex;flex-direction:column;gap:6px;padding:14px 16px 14px;border-radius:14px;background:#F5F9FC;border:1px solid transparent;transition:border-color .25s,background .25s,transform .3s var(--ease)}
.sv-do:hover{background:#fff;border-color:rgba(14,127,214,.3);transform:translateY(-2px)}
.sv-dn{font-size:.68rem;font-weight:600;letter-spacing:.14em;color:var(--ac)}
.sv-do h4{margin:0;font-family:var(--disp);font-weight:500;font-size:1.06rem;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}
.sv-do p{margin:0;font-size:.84rem;line-height:1.45;color:var(--mu)}
.sv-out{margin-top:auto;padding-top:6px;display:flex;align-items:flex-start;gap:6px;font-size:.78rem;font-weight:500;line-height:1.3;color:#0B5C9E}
.sv-out svg{flex:none;width:14px;height:14px;margin-top:1px;color:var(--tl);stroke-width:2.4}
.sv-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.sv-tool{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 7px;border-radius:12px;background:#F5F9FC;text-align:center}
.sv-tool .swx-l{height:40px;margin-bottom:2px;background:transparent}
.sv-tool .swx-l img{max-height:30px}.sv-tool .swx-l.swx-ic img{max-height:32px}
.sv-tool .swx-l img.lg-tuflow{max-height:16px}.sv-tool .swx-l img.lg-gee{max-height:24px;max-width:96%}.sv-tool .swx-l img.lg-floodmodeller,.sv-tool .swx-l img.lg-qgis{max-height:22px}
.sv-tool small{font-size:.72rem;font-weight:500;line-height:1.2;color:var(--ink)}
@media (max-width:1100px) and (min-width:901px){.sv-dos{grid-template-columns:1fr}}
@media (max-width:560px){.sv-dos{grid-template-columns:1fr}}
/* one graphic per service: layers, caption, progress dots */
@property --x{syntax:'<percentage>';inherits:true;initial-value:50%}
.sv-mi{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;background:#F4F8FC;overflow:hidden}
.sv-mi.on{opacity:1;z-index:1}
.sv-m figcaption{z-index:3;transition:opacity .3s}
.sv-m .sv-mi .sv-art{top:6px;bottom:auto;height:calc(100% - 52px)}
.sv-m.multi .sv-mi .sv-art{top:4px;height:calc(100% - 8px)}
.sv-mi.on>img{animation:svKB 9s ease-out both}
.sv-mi.on>img.fix{animation:none}
@property --fw{syntax:'<percentage>';inherits:false;initial-value:-12%}
.sv-mi .fw{--fw:-12%;-webkit-mask-image:linear-gradient(90deg,#000 var(--fw),transparent calc(var(--fw) + 10%));mask-image:linear-gradient(90deg,#000 var(--fw),transparent calc(var(--fw) + 10%))}
.sv-mi.on>img.fw{animation:svWave 2.6s 7.4s cubic-bezier(.35,.1,.6,1) forwards}
@keyframes svWave{to{--fw:105%}}
@media (prefers-reduced-motion:reduce){.sv-mi .fw{--fw:105%}}
@keyframes svKB{from{transform:scale(1.001)}to{transform:scale(1.06)}}
.sv-prog{margin-top:-8px}
.sv-dots{display:flex;gap:6px;touch-action:none;cursor:pointer}
.sv-dot{position:relative;flex:1 1 0;min-width:0;height:22px;padding:0;border:0;background:none;cursor:pointer}
.sv-dot i{position:absolute;left:0;right:0;top:9px;height:4px;border-radius:2px;background:#E1EAF2;overflow:hidden;transition:top .2s,height .2s}
.sv-dot i::after{content:'';position:absolute;inset:0;width:var(--f,0%);border-radius:2px;background:var(--ac)}
.sv-dot.done i::after{background:#8DC1EC}
.sv-dot:hover i{top:8px;height:6px}
.sv-dot::before{content:attr(data-t);position:absolute;left:50%;bottom:calc(100% + 4px);z-index:5;max-width:220px;padding:5px 10px;border-radius:8px;font-size:.74rem;font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;background:rgba(8,22,38,.88);pointer-events:none;opacity:0;transform:translate(-50%,4px);transition:opacity .2s,transform .2s}
.sv-dot:first-child::before{left:0;transform:translate(0,4px)}.sv-dot:last-child::before{left:auto;right:0;transform:translate(0,4px)}
.sv-dot:hover::before,.sv-dot:focus-visible::before{opacity:1;transform:translate(-50%,0)}
.sv-dot:first-child:hover::before,.sv-dot:last-child:hover::before,.sv-dot:first-child:focus-visible::before,.sv-dot:last-child:focus-visible::before{transform:none}
.sv-dot:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:4px}
.sv-prog.held .sv-dot.on i::after{background:#5B9BD0}
.sv-do[tabindex]{cursor:pointer;position:relative}
.sv-do[tabindex]::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--ac);transform:scaleY(0);transition:transform .35s var(--ease)}
.sv-do.on{background:#fff;border-color:rgba(14,127,214,.4);box-shadow:0 10px 24px rgba(11,37,64,.08)}
.sv-do.on::before{transform:scaleY(1)}
.sv-do:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.sv-f{display:flex;flex-direction:column;gap:14px;padding:4px 4px 6px}
.sv-f .sv-cta{margin-top:0}
/* chart art: draw lines, grow bars, pop chips */
.sv-mi .draw{stroke-dashoffset:1}
.sv-mi.on .draw{animation:svDraw 1.8s .25s ease-out forwards}
@keyframes svDraw{to{stroke-dashoffset:0}}
.sv-mi .grow{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0)}
.sv-mi.on .grow{animation:svGrow .7s var(--d,0s) cubic-bezier(.2,.7,.2,1) forwards}
@keyframes svGrow{to{transform:scaleY(1)}}
.sv-mi .pop{opacity:0}
.sv-mi.on .pop{animation:svPop .45s var(--d,0s) ease-out forwards}
@keyframes svPop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.sv-mi .toast{opacity:0}
.sv-mi.on .toast{animation:svToast .6s 1.3s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes svToast{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* before and after slider */
.sv-cmp{position:absolute;inset:0;--x:50%;touch-action:pan-y;cursor:ew-resize;user-select:none}
.sv-mi.on .sv-cmp:not(.drag){animation:svSweep 4.2s .3s ease-in-out both}
@keyframes svSweep{0%{--x:92%}45%{--x:10%}100%{--x:50%}}
.sv-cmp img{pointer-events:none}
.sv-cmp .b{clip-path:inset(0 0 0 var(--x))}
.sv-ch{position:absolute;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(8,22,38,.25);z-index:2}
.sv-ch i{position:absolute;top:50%;left:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:#fff;box-shadow:0 4px 14px rgba(8,22,38,.3)}
.sv-ch i::before,.sv-ch i::after{content:'';position:absolute;top:12px;border:5px solid transparent}
.sv-ch i::before{left:5px;border-right:6px solid #0B2540;border-left:0}
.sv-ch i::after{right:5px;border-left:6px solid #0B2540;border-right:0}
.sv-cl{position:absolute;top:12px;z-index:2;padding:4px 10px;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.04em;color:#fff;background:rgba(8,22,38,.7)}
.sv-cl.l{left:12px}.sv-cl.r{right:12px;background:#0E7FD6}
@media (prefers-reduced-motion:reduce){.sv-mi .grow{transform:none}.sv-mi .draw{stroke-dashoffset:0}.sv-mi .pop,.sv-mi .toast{opacity:1}.sv-mi.on>img,.sv-mi.on .sv-cmp{animation:none}}
@media (max-width:900px){.sv-l>.sv-prog{order:0}}
/* phones and tablets: title and description, graphic and bar, then the service cards as a strip */
@media (max-width:900px){
  .sv-b{display:contents}
  .sv-hd{order:-3}.sv-d,.sv-vis{order:-2}.sv-m{order:-1}.sv-l>.sv-prog{order:0}
  .sv-b>.sv-lab{order:1;margin:2px 0 -12px}.sv-dos,.sv-w{order:2}.sv-l>.sv-f{order:3}
  .sv-dos{position:relative;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 calc(-1 * clamp(14px,1.6vw,20px));padding:4px clamp(14px,1.6vw,20px) 8px;scroll-padding:0 clamp(14px,1.6vw,20px);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sv-dos::-webkit-scrollbar{display:none}
  .sv-do{flex:0 0 min(80%,330px);scroll-snap-align:center}
  .sv-do:hover{transform:none}
}
/* Find your sector on phones: filter in one row, cards in a two-row sideways strip */
@media (max-width:560px){
  .sv-sec2 .st-tabs{flex-wrap:nowrap;overflow-x:auto;border-radius:999px;scrollbar-width:none;align-self:stretch}
  .sv-sec2 .st-tabs::-webkit-scrollbar{display:none}
  .sv-sec2 .st-tabs button{flex:none;white-space:nowrap}
  .sv-sec2 .st-grid{grid-template-columns:none;grid-auto-flow:column;grid-template-rows:auto auto;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:4px 16px 6px;scroll-padding:0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sv-sec2 .st-grid::-webkit-scrollbar{display:none}
  .sv-sec2 .st-t{scroll-snap-align:start}
  .sv-sec2 .st-t:hover{transform:none}
  .st-pos{position:relative;height:4px;margin:6px auto 0;width:42%;border-radius:2px;background:rgba(11,37,64,.12);overflow:hidden}
  .st-pos i{position:absolute;top:0;bottom:0;width:30%;left:0;border-radius:2px;background:linear-gradient(90deg,#0E6FC0,#1FA596)}
}
@media (min-width:561px){.st-pos{display:none}}
@media (max-width:640px){.sv-m .sv-mi .sv-art{height:calc(100% - 40px)}.sv-m.multi .sv-mi .sv-art{height:calc(100% - 8px)}.sv-dots{gap:5px}.sv-dot::before{display:none}}
/* overview, flow stages, overlays, toast */
.sv-mi .grow.gx{transform-origin:0 50%;transform:scaleX(0)}
.sv-mi.on .grow.gx{animation-name:svGrowX}
@keyframes svGrowX{to{transform:scaleX(1)}}
.sv-mi.on .flowline{animation:svDash 1.4s linear infinite}
@keyframes svDash{to{stroke-dashoffset:-26}}
.sv-flow{position:absolute;inset:0}
.sv-flow .fq{opacity:0}
.sv-mi.on .sv-flow .fq{animation:svFq .4s calc(.3s + var(--i) * .7s) ease-out forwards}
@keyframes svFq{to{opacity:1}}
.sv-fg{position:absolute;left:14px;top:14px;z-index:2;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:999px;background:rgba(8,22,38,.72);color:#fff;font-size:.74rem;font-weight:600}
.sv-fg i{position:relative;width:56px;height:6px;border-radius:3px;background:linear-gradient(90deg,#3A7BD5,#3EC1C9,#7CC85A,#E8D24A,#F08A3C,#D7362B);overflow:hidden}
.sv-fg i::after{content:'';position:absolute;inset:0;left:auto;width:100%;background:rgba(8,22,38,.85)}
.sv-mi.on .sv-fg i::after{animation:svFg 4.4s .3s linear forwards}
@keyframes svFg{to{width:0}}
.sv-m .sv-mi .sv-ov{z-index:1}
.sv-toast{position:absolute;right:6%;bottom:16%;z-index:2;display:flex;align-items:center;gap:10px;max-width:72%;padding:10px 14px 10px 10px;border-radius:14px;background:#0B2540;color:#fff;box-shadow:0 12px 30px rgba(8,22,38,.35);opacity:0}
.sv-mi.on .sv-toast{animation:svToast .6s 1.2s cubic-bezier(.2,.7,.2,1) forwards}
.sv-toast span{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#D64545;font-weight:700}
.sv-toast b{display:block;font-size:.8rem;font-weight:600}.sv-toast small{display:block;font-size:.72rem;color:#9FC3E4}
@media (prefers-reduced-motion:reduce){.sv-mi .grow.gx{transform:none}.sv-flow .fq{opacity:1}.sv-toast{opacity:1}}
.sv-nav{position:absolute;top:50%;z-index:4;width:40px;height:40px;margin-top:-20px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#0B2540;background:rgba(255,255,255,.88);box-shadow:0 6px 18px rgba(8,22,38,.22);opacity:0;transition:opacity .25s,transform .25s,background .25s}
.sv-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sv-nav.prev{left:12px}.sv-nav.next{right:12px}
.sv-m:hover .sv-nav,.sv-nav:focus-visible{opacity:1}
.sv-nav:hover{background:#fff;transform:scale(1.06)}
@media (hover:none){.sv-nav{opacity:.92;width:34px;height:34px;margin-top:-17px}}
.sv-vis{position:relative;padding:16px 18px 16px 20px;border-radius:14px;background:linear-gradient(120deg,#0B2540,#14456E);color:#fff}
.sv-vis span{display:block;margin-bottom:6px;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#F2B26B}
.sv-vis p{margin:0;font-family:var(--disp);font-size:1.12rem;line-height:1.42;letter-spacing:-.01em}
.sv-sl{position:absolute;inset:0;background:#F4F8FC}
.sv-sl .sl{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .6s ease}
.sv-sl .sl.on{opacity:1}
.sv-sl .sl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sv-sll{position:absolute;left:14px;top:14px;z-index:2;padding:6px 12px;border-radius:999px;font-size:.78rem;font-weight:600;color:#fff;background:rgba(8,22,38,.78)}
.sv-sl .sv-ov{z-index:2}
.sv-sl .sv-toast{z-index:3}
.sv-mi .grow2{transform-box:fill-box;transform-origin:50% 0;transform:scaleY(0)}
.sv-mi.on .grow2{animation:svGrow .6s var(--d,0s) cubic-bezier(.2,.7,.2,1) forwards}
.sv-mi .stepon rect{transition:fill .3s,stroke .3s}
.sv-mi.on .stepon{animation:svStep .5s var(--d,0s) ease-out both}
@keyframes svStep{from{opacity:.35}to{opacity:1}}
.sv-mi .tide,.sv-mi .tide2{transform-box:fill-box;transform-origin:50% 100%}
.sv-mi .tide{transform:scaleY(.3)}.sv-mi .tide2{transform:scaleY(1)}
.sv-mi.on .tide{animation:svTide 4s 4.4s ease-in-out forwards}
.sv-mi.on .tide2{animation:svTide2 4s 4.4s ease-in-out forwards}
@keyframes svTide{0%{transform:scaleY(.3)}50%{transform:scaleY(1)}100%{transform:scaleY(.4)}}
@keyframes svTide2{0%{transform:scaleY(1)}50%{transform:scaleY(.3)}100%{transform:scaleY(.9)}}
.sv-mi .rainf,.sv-mi .rise{opacity:0}
.sv-mi.on .rainf{animation:svRain .8s var(--d,0s) linear 2}
@keyframes svRain{0%{opacity:0;transform:translate(2px,-12px)}25%{opacity:.85}100%{opacity:0;transform:translate(-3px,12px)}}
.sv-mi.on .rise{animation:svRise 1.4s var(--d,0s) ease-out 2}
@keyframes svRise{0%{opacity:0;transform:translateY(6px)}30%{opacity:.9}100%{opacity:0;transform:translateY(-16px)}}
.sv-mi.on .drop{animation:svDrop 1.4s var(--d,0s) cubic-bezier(.4,0,.2,1) forwards}
@keyframes svDrop{to{transform:translateY(var(--dy,0px))}}
.sv-mi .walk{opacity:0}
.sv-mi.on .walk{animation:svWalk var(--t,3s) var(--d,0s) linear forwards}
@keyframes svWalk{0%{stroke-dashoffset:0;opacity:1}96%{opacity:1}100%{stroke-dashoffset:-1;opacity:0}}
.sv-mi .pulse{transform-box:fill-box;transform-origin:50% 50%;opacity:0}
.sv-mi.on .pulse{animation:svPulse 1.6s var(--d,0s) ease-out 4}
@keyframes svPulse{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1);opacity:0}}
.sv-mi .stepon{opacity:.35}
@media (prefers-reduced-motion:reduce){.sv-mi .grow2{transform:none}.sv-mi .stepon{opacity:1}}
/* software expertise */
.swx{display:flex;flex-direction:column;gap:12px}
.swx-row{display:grid;grid-template-columns:230px 1fr;gap:24px;align-items:center;padding:18px 20px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 10px 26px rgba(11,37,64,.05)}
.swx-h{display:flex;flex-direction:column;gap:4px}
.swx-n{font-size:.7rem;font-weight:600;letter-spacing:.14em;color:#0E7FD6}
.swx-h h3{font-family:var(--disp);font-weight:400;font-size:1.3rem;letter-spacing:-.02em;color:#0B2540}
.swx-h p{margin:0;font-size:.86rem;line-height:1.4;color:#4D6E86}
.swx-g{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.swx-t{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 10px;border-radius:14px;background:#F7FAFC;border:1px solid transparent;text-align:center;transition:border-color .25s,background .25s,transform .3s var(--ease)}
.swx-t:hover{background:#fff;border-color:rgba(14,127,214,.3);transform:translateY(-2px)}
.swx-l{width:100%;height:64px;display:grid;place-items:center;margin-bottom:6px;border-radius:10px;background:#fff}
.swx-l img{max-width:80%;max-height:46px;object-fit:contain}
.swx-l img.lg-qgis,.swx-l img.lg-geoserver,.swx-l img.lg-geonode,.swx-l img.lg-leaflet,.swx-l img.lg-watergems{max-height:32px}
.swx-l img.lg-mapbox{max-height:40px;border-radius:6px}
.swx-l.swx-ic img{max-height:52px;max-width:60%}
.swx-l img.lg-tuflow,.swx-l img.lg-gee,.swx-l img.lg-wbnm{max-height:24px}
.swx-l img.lg-floodmodeller,.swx-l img.lg-mapinfo,.swx-l img.lg-arcgispro,.swx-l img.lg-arcgisjs,.swx-l img.lg-maplibre,.swx-l img.lg-flutter{max-height:34px}
.swx-l img.lg-nextjs,.swx-l img.lg-fastapi{max-height:26px}
.swx-t .swx-txt b{font-family:var(--disp);font-weight:500;font-size:1.2rem;letter-spacing:-.02em;color:#0B5C9E}
.swx-t b{font-weight:600;font-size:.86rem;color:#0B2540}
.swx-t small{font-size:.74rem;line-height:1.25;color:#4D6E86}
@media (max-width:1000px){.swx-row{grid-template-columns:1fr;gap:14px}.swx-g{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
@media (max-width:480px){.swx-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* clients and collaborators placeholder */
.cl{display:flex;flex-direction:column;gap:18px}
.cl-row{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center}
.cl-prog{display:flex;align-items:center;gap:20px;padding:16px 20px;border-radius:14px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 8px 20px rgba(11,37,64,.05);max-width:760px}
.cl-pl{flex:none;width:150px;display:grid;place-items:center}.cl-pl img{max-width:100%;max-height:40px}
.cl-prog b{font-family:var(--disp);font-weight:500;font-size:1.1rem;color:#0B2540}.cl-prog p{margin:4px 0 0;font-size:.86rem;line-height:1.45;color:#4D6E86}
.cl-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#4D6E86}
.cl-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cl-g.cl-p{grid-template-columns:repeat(7,minmax(0,1fr))}
.cl-s.cl-l{border:1px solid rgba(11,37,64,.08);box-shadow:0 8px 20px rgba(11,37,64,.05);height:96px;padding:12px 14px}
.cl-l img{max-width:100%;max-height:64px;object-fit:contain}
.cl-s{height:84px;border-radius:14px;display:grid;place-items:center;font-size:.8rem;color:#8AA0B2;background:#fff;border:1px dashed rgba(11,37,64,.16)}
.cl-n{margin:0;font-size:.82rem;color:#8AA0B2}
@media (max-width:1100px){.cl-g.cl-p{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.cl-prog{flex-direction:column;align-items:flex-start}.cl-row{grid-template-columns:1fr;gap:8px}.cl-g,.cl-g.cl-p{grid-template-columns:repeat(2,1fr)}}
/* vertical pages: brighter shade for the daylight energy scene */
.phead.bright::before{background:linear-gradient(180deg,rgba(18,26,36,.7) 0,rgba(18,26,36,.35) 70px,rgba(18,26,36,0) 140px),linear-gradient(90deg,rgba(18,26,36,.72) 0,rgba(18,26,36,.3) 40%,rgba(18,26,36,0) 66%),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,0) 18%)}
/* case study blocks on the vertical pages */
.kv.sm b{font-size:1.02rem;font-weight:500;line-height:1.45}
.cs-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-block:1px solid var(--line);margin:44px 0}
.cs-stats>div{padding:28px 24px 28px 0;display:flex;flex-direction:column;gap:10px}
.cs-stats>div+div{padding-left:24px;border-left:1px solid var(--line)}
.cs-stats b{font-size:clamp(2.2rem,4.4vw,3.6rem);font-weight:300;letter-spacing:-.02em;line-height:1;color:var(--text)}
.cs-stats span{color:var(--mute);font-size:.95rem;line-height:1.5;max-width:30ch}
.cs-stats.cs3{margin-top:8px}
.cs-fig{margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--surf)}
.cs-fig img{display:block;width:100%;height:auto}
.cs-fig figcaption{padding:12px 18px;font-size:.86rem;color:var(--mute);line-height:1.45}
.cs-ph{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.cs-ph>div{border:1px solid var(--line);border-radius:22px;padding:28px;background:var(--surf)}
.cs-ph .label{display:block;margin-bottom:14px}
.cs-note{margin-top:40px;padding:16px 20px;border-radius:14px;background:#F2F8FD;border:1px solid rgba(14,127,214,.18);color:#3C5C74;font-size:.93rem;line-height:1.6;max-width:90ch}
@media (max-width:760px){.cs-stats>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line)}}
.sec.paper .cs-stats{border-block-color:rgba(11,37,64,.14)}
.sec.paper .cs-stats>div+div{border-left-color:rgba(11,37,64,.14)}
.sec.paper .cs-stats b{color:var(--ink)}
.sec.paper .cs-stats span{color:var(--ink2)}
.sec.paper .cs-ph>div{background:#fff;border:1px solid rgba(11,37,64,.12);box-shadow:0 1px 2px rgba(11,37,64,.06),0 12px 32px rgba(11,37,64,.07);color:var(--ink)}
.sec.paper .cs-ph .label{color:var(--ink2)}
.sec.paper .cs-ph li{color:var(--ink)}
.sec.paper .cs-fig{background:#fff;border-color:rgba(11,37,64,.12)}
.sec.paper .cs-fig figcaption{color:var(--ink2)}
.cs-key{font-size:clamp(1.25rem,2.3vw,1.8rem);line-height:1.4;font-weight:300;max-width:38ch;margin:0}
.sec.paper .cs-key{color:var(--ink)}
/* links from the Services page panels to the vertical pages */
.sv-more{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-size:.92rem;font-weight:500;color:var(--ac);padding:2px 0 3px;border-bottom:1px solid rgba(14,127,214,.35);transition:border-color .25s,gap .3s var(--ease)}
.sv-more svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sv-more:hover{border-color:currentColor;gap:11px}
/* ---------- Platforms page ---------- */
.pl-bar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin:34px 0 18px}
.pl-chips{display:flex;flex-wrap:wrap;gap:8px}
.pl-chip,.swx-chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;border:1px solid rgba(11,37,64,.14);background:#fff;color:#0B2540;font:500 .9rem/1 inherit;cursor:pointer;transition:border-color .25s,background .25s,color .25s,transform .3s var(--ease)}
.pl-chip b{font-weight:600;font-size:.74rem;color:#4D6E86;background:#EAF4F8;border-radius:999px;padding:3px 8px;transition:inherit}
.pl-chip:hover,.swx-chip:hover{border-color:rgba(14,127,214,.55);transform:translateY(-1px)}
.pl-chip.on,.swx-chip.on{background:#0B2A47;color:#fff;border-color:#0B2A47}
.pl-chip.on b{background:rgba(255,255,255,.16);color:#fff}
.pl-search{position:relative;display:flex;align-items:center}
.pl-search svg{position:absolute;left:14px;width:16px;height:16px;stroke:#4D6E86;fill:none;stroke-width:2;stroke-linecap:round}
.pl-search input{height:42px;width:min(280px,100%);padding:0 16px 0 40px;border-radius:999px;border:1px solid rgba(11,37,64,.14);background:#fff;font:inherit;font-size:.92rem;color:#0B2540}
.pl-search input:focus{outline:2px solid rgba(14,127,214,.35);border-color:#0E7FD6}
.pl-count{margin:0 0 18px;font-size:.86rem;color:#4D6E86}
.pl-none{margin:24px 0 0;padding:18px 20px;border-radius:16px;background:#fff;border:1px dashed rgba(11,37,64,.2);color:#4D6E86}
.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.pl-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px 24px 20px;border-radius:22px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 14px 34px rgba(11,37,64,.06);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.pl-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--h1,#0E7FD6),var(--h2,#38D6C4))}
.pl-card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(11,37,64,.06),0 22px 46px rgba(11,37,64,.12)}
.pl-card[hidden],.pl-dc[hidden],.pl-none[hidden],.pl-mp[hidden]{display:none}
.pl-tag{align-self:flex-start;font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#0E7FD6;background:#EAF4FB;padding:5px 10px;border-radius:999px}
.pl-card h3{font-family:var(--disp);font-weight:400;font-size:1.35rem;letter-spacing:-.02em;color:#0B2540;margin:4px 0 0}
.pl-card p,.pl-soft{margin:0;color:#4D6E86;font-size:.93rem;line-height:1.5}
.pl-card p{flex:1}
.pl-two{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:start}
.pl-h2{font-size:clamp(2rem,4vw,3.2rem);margin:0;color:#0B2540}
.pl-ai-l{display:flex;flex-direction:column;gap:12px;margin-top:26px}
.pl-ai-i{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;background:#F4F9FD;border:1px solid rgba(11,37,64,.08);transition:transform .3s var(--ease),border-color .25s}
.pl-ai-i:hover{transform:translateX(4px);border-color:rgba(14,127,214,.35)}
.pl-ai-i i{flex:0 0 40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#0E7FD6;box-shadow:0 4px 12px rgba(11,37,64,.08)}
.pl-ai-i i svg{width:20px;height:20px}
.pl-ai-i span{color:#0B2540;font-size:.98rem;line-height:1.4}
.pl-dt{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 16px}
.pl-dt button{height:38px;padding:0 15px;border-radius:999px;border:1px solid rgba(11,37,64,.14);background:#fff;color:#0B2540;font:500 .88rem/1 inherit;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.pl-dt button:hover{border-color:rgba(14,127,214,.55)}
.pl-dt button.on{background:#0E7FD6;color:#fff;border-color:#0E7FD6}
.pl-dp{padding:26px 28px;border-radius:22px;background:linear-gradient(160deg,#0B2A47,#134672);color:#fff;min-height:128px}
.pl-dp.pop{animation:plpop .45s var(--ease)}
@keyframes plpop{from{opacity:.2;transform:translateY(8px)}to{opacity:1;transform:none}}
.pl-dk{display:block;font-family:var(--disp);font-size:1.5rem;letter-spacing:-.02em;line-height:1.2}
.pl-dd{margin:10px 0 0;color:rgba(255,255,255,.82);line-height:1.55}
.pl-mod{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:start;margin-top:36px}
.pl-mt{display:flex;flex-direction:column;gap:8px}
.pl-mt button{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid rgba(11,37,64,.1);background:#fff;color:#0B2540;font:500 .96rem/1.25 inherit;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .3s var(--ease),box-shadow .3s}
.pl-mt button small{font-size:.68rem;letter-spacing:.14em;color:#0E7FD6;font-weight:600}
.pl-mt button:hover{border-color:rgba(14,127,214,.5);transform:translateX(3px)}
.pl-mt button.on{background:#0B2A47;color:#fff;border-color:#0B2A47;box-shadow:0 14px 30px rgba(11,42,71,.22)}
.pl-mt button.on small{color:#9CC9EE}
.pl-mt button.soon span::after{content:"Soon";margin-left:8px;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:rgba(231,146,47,.16);color:#B4661A}
.pl-mps{min-width:0}
.pl-mp{padding:30px 32px;border-radius:26px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 18px 44px rgba(11,37,64,.08);animation:plpop .4s var(--ease)}
.pl-mph{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.pl-mph em{font-style:normal;letter-spacing:.04em;text-transform:none;color:#4D6E86;font-weight:500;font-size:.85rem}
.pl-mph em.pl-soon{color:#B4661A}
.pl-mp h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.025em;color:#0B2540;margin:12px 0 0}
.pl-feat{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:22px 0 0;padding:0}
.pl-feat li{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:#F4F9FD;color:#0B2540;font-size:.92rem;line-height:1.42;transition:background .25s}
.pl-feat li:hover{background:#E9F3FB}
.pl-feat li::before{content:"";flex:0 0 18px;height:18px;margin-top:1px;border-radius:50%;background:#0E7FD6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/11px no-repeat}
.pl-pt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:28px 0 16px}
.pl-pt span{font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#4D6E86;margin-right:6px}
.pl-pt button{height:38px;padding:0 16px;border-radius:999px;border:1px solid rgba(11,37,64,.14);background:#fff;color:#0B2540;font:500 .9rem/1 inherit;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.pl-pt button:hover{border-color:rgba(14,127,214,.55)}
.pl-pt button.on{background:#0E7FD6;color:#fff;border-color:#0E7FD6}
.pl-tbl{width:100%;min-width:780px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 1px 2px rgba(11,37,64,.05),0 18px 44px rgba(11,37,64,.08)}
.pl-tbl th,.pl-tbl td{padding:15px 18px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(11,37,64,.07);color:#0B2540;font-size:.92rem;line-height:1.4;transition:background .25s,opacity .25s}
.pl-tbl thead th{font-family:var(--disp);font-weight:400;font-size:1.25rem;letter-spacing:-.01em;background:#F4F9FD}
.pl-tbl tbody th{font-weight:500;color:#4D6E86;width:17%;background:#fff}
.pl-tbl tr.pr td{color:#4D6E86;font-style:italic}
.pl-tbl tbody tr:last-child th,.pl-tbl tbody tr:last-child td{border-bottom:0}
.pl-tbl tbody tr:hover th,.pl-tbl tbody tr:hover td{background:#F4F9FD}
.pl-tbl .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pl-tbl[data-sel="2"] thead th:nth-child(2),.pl-tbl[data-sel="2"] td:nth-child(2),.pl-tbl[data-sel="3"] thead th:nth-child(3),.pl-tbl[data-sel="3"] td:nth-child(3),.pl-tbl[data-sel="4"] thead th:nth-child(4),.pl-tbl[data-sel="4"] td:nth-child(4),.pl-tbl[data-sel="5"] thead th:nth-child(5),.pl-tbl[data-sel="5"] td:nth-child(5){background:#E6F2FC;opacity:1}
.pl-tbl[data-sel="2"] :is(thead th,td):not(:nth-child(2)):not(:first-child),.pl-tbl[data-sel="3"] :is(thead th,td):not(:nth-child(3)):not(:first-child),.pl-tbl[data-sel="4"] :is(thead th,td):not(:nth-child(4)):not(:first-child),.pl-tbl[data-sel="5"] :is(thead th,td):not(:nth-child(5)):not(:first-child){opacity:.38}
.pl-dcs{display:flex;flex-wrap:wrap;gap:10px}
.pl-dc{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;background:#fff;border:1px solid rgba(11,37,64,.1);color:#0B2540;font-size:.9rem;line-height:1.2;transition:transform .3s var(--ease),border-color .25s,box-shadow .3s}
.pl-dc::before{content:"";width:8px;height:8px;border-radius:50%;background:#0E7FD6}
.pl-dc.g1::before{background:#E7922F}
.pl-dc.g2::before{background:#1AA37A}
.pl-dc:hover{transform:translateY(-2px);border-color:rgba(14,127,214,.5);box-shadow:0 10px 22px rgba(11,37,64,.08)}
.pl-lab{font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#4D6E86;margin:34px 0 14px}
.pl-ai{display:grid;grid-template-columns:repeat(auto-fill,minmax(162px,1fr));gap:14px}
.pl-at{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 12px 30px rgba(11,37,64,.06);transition:transform .35s var(--ease),box-shadow .35s}
.pl-at i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#EAF4FB,#DDF4F0);color:#0E7FD6;transition:background .3s,color .3s}
.pl-at i svg{width:23px;height:23px}
.pl-at span{color:#0B2540;font-size:.98rem;line-height:1.35}
.pl-at:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(11,37,64,.06),0 22px 44px rgba(11,37,64,.12)}
.pl-at:hover i{background:#0E7FD6;color:#fff}
@media (max-width:900px){.pl-two{grid-template-columns:1fr;gap:44px}.pl-mod{grid-template-columns:1fr}.pl-mt{flex-direction:row;overflow-x:auto;padding-bottom:6px;gap:8px;scrollbar-width:thin}.pl-mt button{flex:0 0 auto;white-space:nowrap}.pl-mt button:hover{transform:none}}
@media (prefers-reduced-motion:reduce){.pl-dp.pop,.pl-mp{animation:none}.pl-card,.pl-at,.pl-dc,.pl-chip,.pl-mt button,.pl-ai-i{transition:none}}

/* homepage What we do: line-art landscape behind the hub and the panels */
.wwd{position:relative;isolation:isolate}
.wwd-bg{position:absolute;top:0;bottom:0;left:50%;width:min(100% - 32px,1440px);height:100%;transform:translateX(-50%);z-index:-1;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 52% 50% at 50% 56%,#000 55%,rgba(0,0,0,.5) 78%,transparent 100%);mask-image:radial-gradient(ellipse 52% 50% at 50% 56%,#000 55%,rgba(0,0,0,.5) 78%,transparent 100%)}
.wwd-bg path{fill:none;vector-effect:non-scaling-stroke}
.wwd-bg .cmn{stroke:#0E7FD6;stroke-opacity:.16;stroke-width:1}
.wwd-bg .cmj{stroke:#0E7FD6;stroke-opacity:.30;stroke-width:1.4}
.wwd-bg .riv{stroke:#1FA596;stroke-opacity:.30;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.wwd-bg .riv.rt{stroke-width:3}
.wwd-bg .flow{stroke:#fff;stroke-opacity:.9;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:2 26;animation:wwdFlow 7s linear infinite}
.wwd-bg .flow.rt{animation-duration:9s;stroke-opacity:.45}
.wwd-bg .tick{stroke:#4D6E86;stroke-opacity:.35;stroke-width:1}
@keyframes wwdFlow{to{stroke-dashoffset:-280}}
@media (prefers-reduced-motion:reduce){.wwd-bg .flow{animation:none}}
.dx-sp{pointer-events:none}

/* Projects page (moved here from the outer page head, where republishing strips it) */
.pjc-list{margin-top:44px}
.pjc{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center;margin:0 0 84px}
.pjc:last-child{margin-bottom:12px}
.pjc.rev .pjc-img{order:2}
.pjc-img{position:relative;display:block;aspect-ratio:4/3;border-radius:30px;overflow:hidden;background:#0B1118;box-shadow:0 1px 2px rgba(11,37,64,.06),0 30px 70px -10px rgba(11,37,64,.3)}
.pjc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%;display:block;transition:transform 1.5s cubic-bezier(.2,.8,.2,1)}
.pjc:hover .pjc-img img{transform:scale(1.06)}
.pjc-img::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,16,26,.28) 0,rgba(8,16,26,0) 32%,rgba(8,16,26,0) 70%,rgba(8,16,26,.35) 100%)}
.pjc-tag{position:absolute;left:18px;bottom:18px;z-index:2;padding:6px 13px;border-radius:999px;background:rgba(255,255,255,.93);color:#0A6BB8;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 4px 14px rgba(8,16,26,.2)}
.pjc-m{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#0E7FD6}
.pjc h3{font-family:var(--disp);font-weight:400;font-size:clamp(1.8rem,3.4vw,2.7rem);letter-spacing:-.025em;line-height:1.1;color:#0B2540;margin:12px 0 0}
.pjc-l{color:#4D6E86;font-size:1.02rem;line-height:1.6;margin:16px 0 0;max-width:56ch}
.pjc-f{display:grid;gap:0;margin:24px 0 0}
.pjc-f>div{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:11px 0;border-top:1px solid rgba(11,37,64,.09);font-size:.92rem;line-height:1.45}
.pjc-f>div:last-child{border-bottom:1px solid rgba(11,37,64,.09)}
.pjc-f dt{color:#4D6E86;font-weight:500}
.pjc-f dd{margin:0;color:#0B2540}
.pjc-s{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0 0}
.pjc-s>div{position:relative;padding-top:14px}
.pjc-s>div::before{content:"";position:absolute;left:0;top:0;width:34px;height:3px;border-radius:3px;background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
.pjc-s b{display:block;font-family:var(--disp);font-weight:300;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.02em;color:#0B2540;line-height:1.1}
.pjc-s span{display:block;margin-top:6px;font-size:.8rem;line-height:1.4;color:#4D6E86}
.pjc-a{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:30px}
.pjc-a .pbtn{color:#0B2540}
.pjc-a .pbtn.o{background:#fff;border:1px solid rgba(11,37,64,.2);box-shadow:0 1px 2px rgba(11,37,64,.05)}
.pjc-a .pbtn.o:hover{border-color:rgba(14,127,214,.6);color:#0A6BB8}
@media (max-width:900px){.pjc{grid-template-columns:1fr;gap:28px;margin-bottom:64px}.pjc.rev .pjc-img{order:0}.pjc-s{gap:12px}}
@media (max-width:520px){.pjc-s{grid-template-columns:1fr}.pjc-f>div{grid-template-columns:80px 1fr}}
@media (prefers-reduced-motion:reduce){.pjc-img img{transition:none}}

/* two-picture panel for the decision support systems */
.pjc-duo{background:#0B1118;cursor:default}
.pjc-duo>div{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:3px}
.pjc-duo figure{position:relative;margin:0;overflow:hidden}
.pjc-duo figcaption{position:absolute;left:14px;top:14px;z-index:2;padding:5px 11px;border-radius:999px;background:rgba(8,16,26,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.06em}
@media (max-width:520px){.pjc-duo>div{grid-template-columns:1fr;grid-template-rows:1fr 1fr}}

/* the project picture with tabs: full maps, titles and legends included */
.pjc-tabs{background:#fff;border:1px solid rgba(11,37,64,.1)}
.pjc-tabs::after{display:none}
.pjc-tabs figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .7s}
.pjc-tabs figure.on{opacity:1}
.pjc-tabs img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 40%;padding:58px 14px var(--tbh,70px);box-sizing:border-box}
.pjc:hover .pjc-tabs img{transform:none}
.pjc-tabs .pjc-tag{top:16px;bottom:auto;left:16px;background:#0B2A47;color:#fff;box-shadow:none}
.pjc-tb{position:absolute;left:14px;right:14px;bottom:14px;z-index:3;display:flex;flex-wrap:wrap;gap:8px}
.pjc-tb button{height:36px;padding:0 15px;border-radius:999px;border:1px solid rgba(11,37,64,.16);background:#fff;color:#0B2540;font:500 .84rem/1 inherit;cursor:pointer;transition:background .3s,color .3s,border-color .25s}
.pjc-tb button:hover{border-color:rgba(14,127,214,.55)}
.pjc-tb button.on{background:#0B2A47;color:#fff;border-color:#0B2A47}
@media (prefers-reduced-motion:reduce){.pjc-tabs figure{transition:none}}
.pjc-tb button{padding:0 14px}
@media (max-width:560px){.pjc-tb{gap:6px}.pjc-tb button{height:34px;padding:0 12px;font-size:.8rem}}

.hfx-credit{position:absolute;right:20px;bottom:64px;z-index:2;font-size:.68rem;letter-spacing:.04em;color:rgba(234,244,255,.55);pointer-events:none}
/* ---------- motion kit ---------- */
.kit{position:relative}
.kit::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(14,127,214,.14),rgba(56,214,196,.07) 45%,transparent 70%)}
@media (hover:hover) and (pointer:fine){
  .kit:hover::after{opacity:1}
  .kit.in:hover{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-4px);transition:transform .22s var(--ease),box-shadow .3s,border-color .25s}
}
.kit-steps .vcard{position:relative;overflow:hidden}
.kit-steps .vcard::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,#0E7FD6,#38D6C4);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.kit-steps.in .vcard::before{transform:scaleX(1)}
.kit-steps .vcard .label{align-self:flex-start;width:auto;display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:999px;background:#EAF4FB;color:#0E7FD6;font-weight:600;transform:scale(.55);opacity:0;transition:transform .6s cubic-bezier(.3,1.6,.4,1) var(--d,0s),opacity .4s var(--d,0s),background .3s,color .3s}
.kit-steps.in .vcard .label{transform:scale(1);opacity:1}
.kit-steps .vcard:hover .label{background:#0E7FD6;color:#fff}
.kit-steps .vcard .label{display:none}
/* ---------- charts ---------- */
.kc-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin:36px 0}
.kit-chart{max-width:980px;padding:24px 26px;border-radius:24px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 18px 44px rgba(11,37,64,.08);margin:32px 0;color:#0B2540}
.kc-grid>.kit-chart{margin:0;max-width:none}
.kc-leg{max-width:380px}
.kc-t{font-family:var(--disp);font-size:1.3rem;letter-spacing:-.01em;color:#0B2540;line-height:1.25}
.kc-s{margin:6px 0 18px;font-size:.88rem;color:#4D6E86;line-height:1.5}
.kc-r{display:grid;grid-template-columns:minmax(110px,170px) 1fr 62px;gap:12px;align-items:center;margin:10px 0;font-size:.9rem}
.kc-l{color:#4D6E86}
.kc-b{display:block;height:12px;border-radius:999px;background:#EAF3F9;overflow:hidden}
.kc-b i{display:block;height:100%;width:var(--w);border-radius:999px;background:linear-gradient(90deg,#0E7FD6,#38D6C4);transform:scaleX(0);transform-origin:left;transition:transform 1.15s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.kc-b i.warn,.kc-lg i.warn{background:linear-gradient(90deg,#E7922F,#F2B45E)}
.kit-chart.in .kc-b i{transform:scaleX(1)}
.kc-v{text-align:right;font-weight:600;color:#0B2540;font-variant-numeric:tabular-nums;font-size:.9rem}
.kc-lg{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:.84rem;color:#4D6E86}
.kc-lg span{display:inline-flex;align-items:center;gap:8px}
.kc-lg i{width:12px;height:12px;border-radius:4px;background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
.kc-p{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;margin:12px 0}
.kc-pb{display:grid;grid-template-columns:1fr 54px;gap:6px 10px;align-items:center}
.kc-cols{display:flex;gap:12px;align-items:flex-end;height:230px}
.kc-c{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.kc-c b{font-size:.8rem;color:#0B2540;font-weight:600;opacity:0;transition:opacity .5s calc(var(--d,0s) + .7s)}
.kit-chart.in .kc-c b{opacity:1}
.kc-cb{width:100%;max-width:48px;flex:1 1 auto;display:flex;align-items:flex-end;border-bottom:1px solid rgba(11,37,64,.12)}
.kc-cb i{display:block;width:100%;height:var(--h);border-radius:10px 10px 0 0;background:linear-gradient(180deg,#38D6C4,#0E7FD6);transform:scaleY(0);transform-origin:bottom;transition:transform 1.1s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.kit-chart.in .kc-cb i{transform:scaleY(1)}
.kc-c span{font-size:.78rem;color:#4D6E86;white-space:nowrap}
.kc-svg{width:100%;height:auto;display:block}
.kc-g{stroke:rgba(11,37,64,.09);stroke-width:1}
.kc-tx{font-size:11px;fill:#4D6E86;font-family:inherit}
.kc-line{fill:none;stroke:#0E7FD6;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s cubic-bezier(.4,0,.2,1)}
.kit-chart.in .kc-line{stroke-dashoffset:0}
.kc-area{fill:url(#kcg);opacity:0;transition:opacity 1.1s 1s}
.kit-chart.in .kc-area{opacity:1}
.kc-dot{fill:#fff;stroke:#0E7FD6;stroke-width:2.4;opacity:0;transition:opacity .4s var(--d,0s)}
.kit-chart.in .kc-dot{opacity:1}
.kc-pk{opacity:0;transition:opacity .6s var(--d,0s)}
.kit-chart.in .kc-pk{opacity:1}
.kc-pl{stroke:#E7922F;stroke-width:1.6;stroke-dasharray:4 4}
.kc-pt{font-size:12px;font-weight:600;fill:#B4661A;font-family:inherit}
.kc-donut{display:flex;gap:30px;align-items:center;flex-wrap:wrap}
.kc-ds{width:210px;height:210px;transform:rotate(-90deg);flex:0 0 auto}
.kc-ds text{transform:rotate(90deg);transform-origin:100px 100px}
.kc-dbg{fill:none;stroke:#EAF3F9;stroke-width:24}
.kc-seg{fill:none;stroke-width:24;stroke-dasharray:0 var(--C);stroke-dashoffset:var(--off);transition:stroke-dasharray 1.2s cubic-bezier(.3,.7,.2,1) var(--d,0s)}
.kit-chart.in .kc-seg{stroke-dasharray:var(--len) calc(var(--C) - var(--len))}
.kc-dc{font-size:38px;font-weight:300;fill:#0B2540;font-family:var(--disp)}
.kc-dt{font-size:12px;fill:#4D6E86;letter-spacing:.1em;text-transform:uppercase}
.kc-leg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;flex:1;min-width:220px}
.kc-leg li{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;font-size:.92rem;color:#0B2540}
.kc-leg i{width:14px;height:14px;border-radius:5px}
.kc-leg b{font-variant-numeric:tabular-nums}
.kc-stack{display:flex;height:50px;border-radius:16px;overflow:hidden;background:#EAF3F9}
.kc-stack span{display:flex;align-items:center;justify-content:center;width:0;transition:width 1.3s cubic-bezier(.2,.8,.2,1) var(--d,0s);overflow:hidden}
.kit-chart.in .kc-stack span{width:var(--w)}
.kc-stack b{color:#fff;font-size:.95rem;font-weight:600;white-space:nowrap}
.kc-cell{opacity:.82;animation:kcpulse 4.2s ease-in-out infinite var(--d)}
@keyframes kcpulse{0%,100%{opacity:.62}50%{opacity:1}}
.kc-scan{fill:rgba(255,255,255,.55);animation:kcscan 5s ease-in-out infinite}
@keyframes kcscan{0%{transform:translateX(-80px)}100%{transform:translateX(600px)}}
@media (max-width:900px){.kc-grid{grid-template-columns:1fr}.kc-r{grid-template-columns:100px 1fr 56px}.kc-p{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.kc-b i,.kc-cb i,.kc-seg,.kc-stack span,.kc-line,.kc-area,.kc-dot,.kc-pk,.kc-c b,.kit-steps .vcard::before,.kit-steps .vcard .label{transition:none}.kc-cell,.kc-scan,#pv.auto::after{animation:none}.kc-b i,.kc-cb i{transform:none}.kc-stack span{width:var(--w)}.kc-line{stroke-dashoffset:0}.kc-seg{stroke-dasharray:var(--len) calc(var(--C) - var(--len))}.kc-area,.kc-dot,.kc-pk,.kc-c b{opacity:1}.kit-steps .vcard::before{transform:none}.kit-steps .vcard .label{transform:none;opacity:1}}
/* API documentation cards */
.pdocs{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;max-width:1000px}
.pdoc{position:relative;display:flex;flex-direction:column;gap:10px;padding:30px;border-radius:26px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 18px 44px rgba(11,37,64,.08);color:#0B2540;overflow:hidden;transition:box-shadow .35s}
.pdoc::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#0E7FD6,#38D6C4)}
.pdoc:hover{box-shadow:0 2px 4px rgba(11,37,64,.06),0 26px 56px rgba(11,37,64,.14)}
.pdoc-k{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.pdoc h3{font-family:var(--disp);font-weight:400;font-size:1.6rem;letter-spacing:-.02em;margin:4px 0 0;color:#0B2540;line-height:1.2}
.pdoc-h{color:#4D6E86;font-size:.95rem}
.pdoc .pbtn{align-self:flex-start;margin-top:14px}
/* ---------- project page ---------- */
.pjf{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.pjf-t{position:relative;padding:20px 22px 20px 26px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 14px 34px rgba(11,37,64,.06);overflow:hidden}
.pjf-t::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#0E7FD6,#38D6C4)}
.pjf-t span{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#4D6E86;font-weight:600}
.pjf-t b{display:block;margin-top:8px;font-family:var(--disp);font-weight:300;font-size:1.35rem;color:#0B2540;line-height:1.25;letter-spacing:-.01em}
.pwin-live{display:inline-flex;align-items:center;gap:9px}
.pwin-live i{width:8px;height:8px;border-radius:50%;background:#2BD68A;animation:pjxlive 2s ease-out infinite}
@keyframes pjxlive{0%{box-shadow:0 0 0 0 rgba(43,214,138,.6)}70%{box-shadow:0 0 0 9px rgba(43,214,138,0)}100%{box-shadow:0 0 0 0 rgba(43,214,138,0)}}
.pjx{display:grid;grid-template-columns:1.08fr 1fr;gap:34px;align-items:start;margin-top:36px}
.pjx-l{position:sticky;top:96px}
.pjx-stage{position:relative;margin:0;aspect-ratio:16/11;border-radius:28px;overflow:hidden;background:radial-gradient(120% 90% at 20% 10%,#17324d,#0B1118);box-shadow:0 28px 70px rgba(11,37,64,.28);border:1px solid rgba(255,255,255,.08)}
.pjx-stage::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(120,190,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,190,255,.08) 1px,transparent 1px);background-size:44px 44px}
.pjx-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(8,16,26,0) 42%,rgba(8,16,26,.84))}
.pjx-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92;transform:scale(var(--zs,1.1)) translate(var(--zx,0%),var(--zy,0%));transition:transform 2.4s cubic-bezier(.3,.6,.2,1)}
.pjx-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000;z-index:3}
.pjx-ov{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.pjx-stage.vid .pjx-ov,.pjx-stage.vid .pjx-cap,.pjx-stage.vid::after{display:none}
.pjx-stage.vid .pjx-vid{object-fit:contain}
.pjx-scan{position:absolute;top:0;bottom:0;width:90px;left:-90px;background:linear-gradient(90deg,transparent,rgba(120,220,255,.22),transparent);animation:pjxscan 6s linear infinite}
@keyframes pjxscan{to{left:105%}}
.pjx-m{position:absolute;left:var(--x,50%);top:var(--y,50%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#38D6C4;animation:pjxping 2.4s ease-out infinite;transition:left 1.6s cubic-bezier(.3,.6,.2,1),top 1.6s cubic-bezier(.3,.6,.2,1)}
.pjx-m:nth-of-type(2){background:#F2B45E;animation-delay:.6s}
.pjx-m:nth-of-type(3){background:#7FB0FF;animation-delay:1.2s}
@keyframes pjxping{0%{box-shadow:0 0 0 0 rgba(56,214,196,.55)}70%{box-shadow:0 0 0 18px rgba(56,214,196,0)}100%{box-shadow:0 0 0 0 rgba(56,214,196,0)}}
.pjx-cap{position:absolute;left:22px;right:22px;bottom:20px;z-index:4;display:flex;flex-direction:column;gap:6px;color:#fff;pointer-events:none}
.pjx-cn{font-size:.72rem;letter-spacing:.16em;color:#9CC9EE;font-weight:600}
.pjx-cap b{font-family:var(--disp);font-weight:400;font-size:clamp(1.15rem,2.3vw,1.65rem);letter-spacing:-.02em;line-height:1.25}
.pjx.flash .pjx-cap b,.pjx.flash .pjx-cn{animation:pjxin .6s var(--ease)}
@keyframes pjxin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pjx-r{display:flex;flex-direction:column;gap:10px}
.pjx-s{position:relative;padding:18px 20px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.09);cursor:pointer;overflow:hidden;transition:box-shadow .35s,border-color .25s}
.pjx-s:hover{border-color:rgba(14,127,214,.4)}
.pjx-s.on{border-color:rgba(14,127,214,.45);box-shadow:0 20px 48px rgba(11,37,64,.12)}
.pjx-s:focus-visible{outline:2px solid #0E7FD6;outline-offset:2px}
.pjx-sh{display:flex;gap:14px;align-items:center}
.pjx-sn{flex:0 0 34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#EAF4FB;color:#0E7FD6;font-size:.72rem;font-weight:700;transition:background .3s,color .3s}
.pjx-s.on .pjx-sn{background:#0E7FD6;color:#fff}
.pjx-sh h4{margin:0;font-family:var(--disp);font-weight:400;font-size:1.1rem;letter-spacing:-.01em;color:#0B2540;line-height:1.3;flex:1}
.pjx-ar{flex:0 0 18px;width:18px;height:18px;color:#4D6E86;transition:transform .35s,color .3s}
.pjx-s.on .pjx-ar{transform:rotate(90deg);color:#0E7FD6}
.pjx-sb{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.8,.2,1)}
.pjx-s.on .pjx-sb{grid-template-rows:1fr}
.pjx-sb>div{overflow:hidden;min-height:0}
.pjx-sb p{margin:14px 0 0 48px;color:#4D6E86;font-size:.94rem;line-height:1.55}
.pjx-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px 48px}
.pjx-chips span{padding:7px 12px;border-radius:999px;background:#F2F8FC;border:1px solid rgba(11,37,64,.08);font-size:.84rem;color:#0B2540;line-height:1.25}
.pjx-pg{position:absolute;left:0;bottom:0;height:3px;width:100%;background:linear-gradient(90deg,#0E7FD6,#38D6C4);transform:scaleX(0);transform-origin:left}
.pjx-s.on.run .pjx-pg{animation:pjxp 6.5s linear forwards}
@keyframes pjxp{to{transform:scaleX(1)}}
@media (max-width:900px){.pjx{grid-template-columns:1fr}.pjx-l{position:static}.pjx-sb p,.pjx-chips{margin-left:0}}
@media (prefers-reduced-motion:reduce){.pjx-scan,.pjx-m,.pwin-live i,.pjx-s.on.run .pjx-pg{animation:none}.pjx-img{transition:none}.pjx-sb{transition:none}}
/* Platforms dropdown: side padding, scrolling and a single column on phones */
.mega{max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
.mega-in{padding-left:clamp(20px,4vw,56px);padding-right:clamp(20px,4vw,56px)}
@media (max-width:1000px){.mega-in{gap:32px;padding-top:32px;padding-bottom:40px}.mega-list{gap:0 28px}}
@media (max-width:640px){.mega-in{gap:22px;padding-top:24px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}.mega-list{grid-template-columns:1fr}.mega-list a{padding:13px 0}.mega-list a b{font-size:1.3rem}.mega-in>div:first-child p{max-width:none!important;margin-bottom:14px!important}}
/* ---------- platforms: new filters and the datasets explorer ---------- */
.pl-tools{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:center;justify-content:space-between;margin:34px 0 16px}
.pl-seg{position:relative;display:flex;gap:2px;padding:5px;border-radius:999px;background:#fff;border:1px solid rgba(11,37,64,.1);box-shadow:0 1px 2px rgba(11,37,64,.05),0 10px 26px rgba(11,37,64,.06);max-width:100%;overflow-x:auto;scrollbar-width:none}
.pl-seg::-webkit-scrollbar{display:none}
.pl-thumb{position:absolute;left:0;top:5px;bottom:5px;width:0;border-radius:999px;background:linear-gradient(135deg,#0B2A47,#134672);box-shadow:0 8px 20px rgba(11,42,71,.28);transition:transform .45s cubic-bezier(.3,.8,.2,1),width .45s cubic-bezier(.3,.8,.2,1);pointer-events:none}
.pl-sb{position:relative;z-index:1;display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 16px 0 12px;border:0;border-radius:999px;background:transparent;color:#0B2540;font:500 .92rem/1 inherit;cursor:pointer;white-space:nowrap;transition:color .3s}
.pl-sb .pl-si{display:grid;place-items:center;width:22px;height:22px;color:#0E7FD6;transition:color .3s}
.pl-sb .pl-si svg{width:18px;height:18px}
.pl-sb b{min-width:24px;padding:3px 8px;border-radius:999px;background:#EAF4F8;color:#4D6E86;font-size:.74rem;font-weight:600;text-align:center;transition:background .3s,color .3s}
.pl-sb:hover:not(.on){color:#0E7FD6}
.pl-sb.on{color:#fff}
.pl-sb.on .pl-si{color:#7FD7FF}
.pl-sb.on b{background:rgba(255,255,255,.16);color:#fff}
.pl-sb:focus-visible,.pl-view button:focus-visible,.pl-dgb:focus-visible,.pl-x:focus-visible,.pl-reset:focus-visible{outline:2px solid #0E7FD6;outline-offset:2px}
.pl-rt{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pl-search{position:relative;display:flex;align-items:center}
.pl-x{position:absolute;right:8px;width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:50%;background:#EAF4F8;color:#4D6E86;cursor:pointer;padding:0}
.pl-x[hidden]{display:none}
.pl-x svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}
.pl-x:hover{background:#0E7FD6;color:#fff}
.pl-search input{padding-right:42px}
.pl-view{display:flex;gap:2px;padding:4px;border-radius:999px;background:#fff;border:1px solid rgba(11,37,64,.1)}
.pl-view button{width:38px;height:36px;border:0;border-radius:999px;background:transparent;color:#4D6E86;display:grid;place-items:center;cursor:pointer;transition:background .25s,color .25s}
.pl-view button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pl-view button.on{background:#0B2A47;color:#fff}
.pl-status{display:flex;align-items:center;gap:14px;margin:0 0 18px;min-height:30px}
.pl-status .pl-count{margin:0;font-size:.88rem;color:#4D6E86;font-variant-numeric:tabular-nums}
.pl-reset{border:0;background:transparent;color:#0E7FD6;font:500 .86rem/1 inherit;cursor:pointer;padding:6px 10px;border-radius:999px;border-bottom:0}
.pl-reset[hidden]{display:none}
.pl-reset:hover{background:#E6F2FC}
.pl-in{animation:plin .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 45ms)}
@keyframes plin{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.pl-grid.list{grid-template-columns:1fr;gap:12px}
.pl-grid.list .pl-card{display:grid;grid-template-columns:minmax(120px,170px) minmax(170px,260px) 1fr auto;align-items:center;gap:8px 26px;padding:18px 26px}
.pl-grid.list .pl-card .pl-tag{justify-self:start}
.pl-grid.list .pl-card h3{margin:0}
.pl-grid.list .pl-card p{flex:none}
.pl-grid.list .pl-card .pact{margin:0;justify-content:flex-end;flex-wrap:wrap}
.pl-ds2{display:grid;grid-template-columns:310px 1fr;gap:30px;align-items:start;margin-top:34px}
.pl-dg{display:flex;flex-direction:column;gap:10px;position:sticky;top:96px}
.pl-dgb{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;border-radius:20px;border:1px solid rgba(11,37,64,.09);background:#fff;color:#0B2540;font:inherit;cursor:pointer;transition:background .3s,color .3s,border-color .25s,transform .3s var(--ease),box-shadow .3s}
.pl-dgb i{flex:0 0 42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#EAF4FB,#DDF4F0);color:#0E7FD6;transition:background .3s,color .3s}
.pl-dgb i svg{width:21px;height:21px}
.pl-dgb span{display:flex;flex-direction:column;gap:3px;min-width:0}
.pl-dgb b{font-family:var(--disp);font-weight:400;font-size:1.1rem;letter-spacing:-.01em}
.pl-dgb small{font-size:.8rem;line-height:1.35;color:#4D6E86;transition:color .3s}
.pl-dgb:hover{border-color:rgba(14,127,214,.5);transform:translateX(3px)}
.pl-dgb.on{background:#0B2A47;color:#fff;border-color:#0B2A47;box-shadow:0 16px 34px rgba(11,42,71,.24)}
.pl-dgb.on i{background:rgba(255,255,255,.14);color:#7FD7FF}
.pl-dgb.on small{color:#9CC9EE}
.pl-dm{min-width:0}
.pl-dbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.pl-dcount{font-size:.88rem;color:#4D6E86;font-variant-numeric:tabular-nums}
.pl-dts{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:12px}
.pl-dt2{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;border-radius:20px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 10px 26px rgba(11,37,64,.05);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,border-color .25s}
.pl-dt2[hidden]{display:none}
.pl-dt2::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#0E7FD6}
.pl-dt2.g1::before{background:#E7922F}
.pl-dt2.g2::before{background:#1AA37A}
.pl-dt2 i{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;margin-bottom:6px;background:#EAF4FB;color:#0E7FD6;transition:background .3s,color .3s,transform .4s cubic-bezier(.3,1.5,.4,1)}
.pl-dt2.g1 i{background:#FDF0DE;color:#C9761F}
.pl-dt2.g2 i{background:#DDF4EA;color:#12875F}
.pl-dt2 i svg{width:21px;height:21px}
.pl-dt2 b{font-family:var(--disp);font-weight:400;font-size:1.06rem;letter-spacing:-.01em;color:#0B2540;line-height:1.25}
.pl-dt2 small{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:#4D6E86;font-weight:600}
.pl-dt2:hover{transform:translateY(-4px);border-color:rgba(14,127,214,.4);box-shadow:0 2px 4px rgba(11,37,64,.06),0 22px 44px rgba(11,37,64,.12)}
.pl-dt2:hover i{background:#0E7FD6;color:#fff;transform:scale(1.08) rotate(-4deg)}
.pl-dt2.g1:hover i{background:#E7922F}
.pl-dt2.g2:hover i{background:#1AA37A}
@media (max-width:1000px){.pl-grid.list .pl-card{grid-template-columns:minmax(110px,150px) 1fr auto}.pl-grid.list .pl-card p{grid-column:1/-1;grid-row:2}}
@media (max-width:900px){.pl-ds2{grid-template-columns:1fr}.pl-dg{position:static;flex-direction:row;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.pl-dgb{flex:0 0 auto;min-width:240px}.pl-dgb:hover{transform:none}}
@media (max-width:700px){.pl-tools{flex-direction:column;align-items:stretch}.pl-rt{width:100%}.pl-rt .pl-search{flex:1}.pl-rt .pl-search input{width:100%}.pl-grid.list .pl-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 22px 18px}.pl-grid.list .pl-card .pact{justify-content:flex-start}.pl-dts{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.pl-dgb{min-width:210px}}
@media (prefers-reduced-motion:reduce){.pl-in{animation:none}.pl-thumb,.pl-dgb,.pl-dt2,.pl-dt2 i{transition:none}}
/* ---------- platforms: filter bar that wraps (never scrolls) and richer cards ---------- */
.pl-seg{overflow:visible}
@media (max-width:1260px){.pl-seg{flex-wrap:wrap;gap:4px;padding:6px;border-radius:28px}.pl-thumb{display:none}.pl-sb.on{background:linear-gradient(135deg,#0B2A47,#134672);box-shadow:0 8px 20px rgba(11,42,71,.25)}}
@media (max-width:700px){.pl-seg{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border-radius:24px}.pl-sb{width:100%;min-width:0;height:auto;min-height:44px;padding:6px 12px 6px 9px;font-size:.88rem;justify-content:flex-start;white-space:normal;text-align:left;line-height:1.15}.pl-sb .pl-sl{flex:1;min-width:0}.pl-sb b{margin-left:auto;flex:0 0 auto}}
.pl-card{padding:0;gap:0;border-radius:24px}
.pl-card::before{display:none}
.pl-media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:radial-gradient(120% 100% at 20% 0,#17324d,#0B1118)}
.pl-media::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(120,190,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,190,255,.07) 1px,transparent 1px);background-size:34px 34px}
.pl-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.95;transform:scale(1.04);transition:transform 1.3s cubic-bezier(.2,.8,.2,1)}
.pl-card:hover .pl-img{transform:scale(1.14) translate(-1.5%,-1.5%)}
.pl-sh{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(8,16,26,.38) 0,rgba(8,16,26,0) 40%,rgba(8,16,26,.5) 100%)}
.pl-media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:3;background:linear-gradient(90deg,var(--h1,#0E7FD6),var(--h2,#38D6C4))}
.pl-no{position:absolute;right:14px;top:12px;z-index:3;font-size:.72rem;font-weight:700;letter-spacing:.14em;color:#fff;background:rgba(8,16,26,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:5px 10px;border-radius:999px}
.pl-media .pl-tag{position:absolute;left:14px;top:12px;z-index:3;background:rgba(255,255,255,.93);color:#0A6BB8;box-shadow:0 4px 14px rgba(8,16,26,.18)}
.pl-body{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;flex:1}
.pl-body h3{margin:0;font-family:var(--disp);font-weight:400;font-size:1.45rem;letter-spacing:-.02em;line-height:1.2}
.pl-body h3 a{color:#0B2540;background:linear-gradient(currentColor,currentColor) left 100%/0 1px no-repeat;transition:background-size .45s}
.pl-card:hover .pl-body h3 a{background-size:100% 1px}
.pl-body p{margin:0;color:#4D6E86;font-size:.93rem;line-height:1.5;flex:1}
.pl-vt{display:flex;flex-wrap:wrap;gap:6px}
.pl-vt span{padding:4px 10px;border-radius:999px;background:#F2F8FC;border:1px solid rgba(11,37,64,.08);font-size:.74rem;color:#4D6E86;line-height:1.3}
.pl-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.pl-grid.list{grid-template-columns:1fr;gap:14px}
.pl-grid.list .pl-card{display:grid;grid-template-columns:210px 1fr;gap:0;align-items:stretch;padding:0}
.pl-grid.list .pl-media{aspect-ratio:auto;min-height:130px;height:100%}
.pl-grid.list .pl-body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 26px;padding:16px 24px}
.pl-grid.list .pl-body h3,.pl-grid.list .pl-body p,.pl-grid.list .pl-vt{grid-column:1}
.pl-grid.list .pl-body p{flex:none}
.pl-grid.list .pl-no{display:none}
.pl-grid.list .pl-body .pact{grid-column:2;grid-row:1/span 3;margin:0;justify-content:flex-end;flex-wrap:wrap}
@media (max-width:760px){.pl-grid.list .pl-card{display:flex;flex-direction:column}.pl-grid.list .pl-media{aspect-ratio:16/9;min-height:0;height:auto}.pl-grid.list .pl-body{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:20px 22px 22px}.pl-grid.list .pl-body .pact{justify-content:flex-start}}
@media (prefers-reduced-motion:reduce){.pl-img{transition:none}}
/* platform cards: status chip, portal address, a cleaner footer and a tinted hover */
.pl-st{position:absolute;right:14px;top:12px;z-index:3;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;background:rgba(8,16,26,.58);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.06em}
.pl-st i{width:7px;height:7px;border-radius:50%;background:#2BD68A;animation:pjxlive 2s ease-out infinite}
.pl-host{display:flex;align-items:center;gap:8px;margin-top:2px;font:500 .76rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:#4D6E86;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pl-host i{flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:#2BD68A}
.pl-ft{display:flex;align-items:center;gap:10px;margin-top:6px;padding-top:14px;border-top:1px solid rgba(11,37,64,.08)}
.pl-vw{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.92rem;color:#0B2540;transition:gap .3s var(--ease),color .25s}
.pl-vw svg{width:16px;height:16px}
.pl-vw:hover{color:#0A6BB8;gap:12px}
.pl-op{margin-left:auto;flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#0B2A47;color:#fff;transition:background .3s,transform .35s var(--ease)}
.pl-op svg{width:16px;height:16px}
.pl-op:hover{background:var(--h1,#0E7FD6);transform:translate(2px,-2px) rotate(8deg)}
.pl-ol{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid rgba(11,37,64,.14);font-size:.8rem;font-weight:500;color:#0B2540;transition:border-color .25s,color .25s}
.pl-ol svg{width:13px;height:13px}
.pl-ol:hover{border-color:rgba(14,127,214,.55);color:#0A6BB8}
.pl-vw+.pl-ol{margin-left:auto}
.pl-card:hover{box-shadow:0 2px 4px rgba(11,37,64,.06),0 26px 54px -14px rgba(11,37,64,.26),0 0 0 1px var(--h1)}
.pl-body p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pl-grid.list .pl-st{display:none}
.pl-grid.list .pl-body .pl-host{grid-column:1}
.pl-grid.list .pl-body .pl-ft{grid-column:2;grid-row:1/span 4;margin:0;padding:0;border:0;align-self:center}
@media (max-width:760px){.pl-grid.list .pl-body .pl-ft{grid-column:auto;grid-row:auto;width:100%;padding-top:14px;border-top:1px solid rgba(11,37,64,.08)}}
@media (prefers-reduced-motion:reduce){.pl-st i{animation:none}.pl-vw,.pl-op{transition:none}}
/* ---------- platforms page: restrained motion for the middle sections ---------- */
.pl-strip{padding:30px 0 6px}
.pl-stats{margin:0}
.pl-flow{display:flex;align-items:stretch;margin-top:48px}
.pl-fn{flex:1;display:flex;flex-direction:column;gap:6px;padding:20px 20px 22px;border-radius:22px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 14px 34px rgba(11,37,64,.06)}
.pl-fn i{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;margin-bottom:8px;background:linear-gradient(135deg,#EAF4FB,#DDF4F0);color:#0E7FD6}
.pl-fn i svg{width:21px;height:21px}
.pl-fn b{font-family:var(--disp);font-weight:400;font-size:1.25rem;letter-spacing:-.01em;color:#0B2540}
.pl-fn span{font-size:.88rem;line-height:1.45;color:#4D6E86}
.pl-fl{flex:0 0 52px;position:relative;align-self:center;height:2px;background:linear-gradient(90deg,rgba(14,127,214,.25),rgba(56,214,196,.4))}
.pl-fl i{position:absolute;top:-3px;left:0;width:8px;height:8px;border-radius:50%;background:#0E7FD6;opacity:0;animation:plfl 3.6s ease-in-out infinite;animation-delay:calc(var(--k,0) * .9s)}
@keyframes plfl{0%{transform:translateX(0);opacity:0}15%{opacity:1}70%{opacity:1}100%{transform:translateX(44px);opacity:0}}
.pl-dp{display:grid;grid-template-columns:1fr 150px;gap:14px;align-items:center}
.pl-mpt{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:10px}
.pl-mpt h3{margin:0}
.pl-mo{flex:0 0 120px;width:120px;height:70px;fill:none;stroke:#0E7FD6;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.pl-w{stroke-dasharray:10 7;animation:plwv 4s linear infinite}
@keyframes plwv{to{stroke-dashoffset:-34}}
.pl-bar{fill:#38D6C4;stroke:none;transform-box:fill-box;transform-origin:bottom;animation:plbar 3.4s ease-in-out infinite}
@keyframes plbar{0%,100%{transform:scaleY(.72)}50%{transform:scaleY(1)}}
.pl-rg{stroke:#38D6C4;transform-box:fill-box;transform-origin:center;animation:plrg 3s ease-out infinite}
@keyframes plrg{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
.pl-cell{fill:#38D6C4;stroke:none;opacity:.35;animation:plcell 4s ease-in-out infinite}
.pl-cell:nth-child(3n){fill:#0E7FD6}
.pl-cell:nth-child(4n){fill:#9BD96B}
@keyframes plcell{0%,100%{opacity:.25}50%{opacity:.85}}
.pl-pipe{stroke-dasharray:6 6;animation:plwv 3s linear infinite}
.pl-nd{fill:#38D6C4;stroke:none}
.pl-bolt{fill:rgba(56,214,196,.25);stroke:#0E7FD6;animation:plbolt 3s ease-in-out infinite}
@keyframes plbolt{0%,100%{fill:rgba(56,214,196,.12)}50%{fill:rgba(56,214,196,.5)}}
.pl-mt button{position:relative;overflow:hidden}
.pl-mt button.on.run::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:linear-gradient(90deg,#7FD7FF,#38D6C4);transform-origin:left;animation:plprog 8s linear forwards}
@keyframes plprog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.pl-tiers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:28px 0 16px}
.pl-tier{display:flex;flex-direction:column;gap:4px;text-align:left;padding:18px 20px;border-radius:20px;border:1px solid rgba(11,37,64,.09);background:#fff;color:#0B2540;font:inherit;cursor:pointer;transition:transform .3s var(--ease),border-color .25s,box-shadow .3s,background .3s,color .3s}
.pl-tier b{font-family:var(--disp);font-weight:400;font-size:1.3rem;letter-spacing:-.01em}
.pl-tier span{font-size:.92rem}
.pl-tier small{font-size:.8rem;color:#4D6E86;transition:color .3s}
.pl-tier:hover{transform:translateY(-3px);border-color:rgba(14,127,214,.5)}
.pl-tier.on{background:linear-gradient(135deg,#0B2A47,#134672);color:#fff;border-color:#0B2A47;box-shadow:0 16px 34px rgba(11,42,71,.24)}
.pl-tier.on small{color:#9CC9EE}
.pl-tier:focus-visible,.pl-aa:focus-visible{outline:2px solid #0E7FD6;outline-offset:2px}
.pl-aid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center}
.pl-scene{margin:0;border-radius:26px;overflow:hidden;background:#0B1118;box-shadow:0 24px 60px rgba(11,37,64,.22);border:1px solid rgba(255,255,255,.08)}
.pl-scene svg{display:block;width:100%;height:auto}
.pl-scene figcaption{padding:10px 16px;font-size:.76rem;color:#9CC9EE;background:#0B1118}
.pl-ov{opacity:0;transition:opacity .35s}
.pl-ov.on{opacity:1}
.pl-dr{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.pl-ov.on .pl-dr{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1) .1s}
.pl-lbl{font-size:12px;font-weight:600;font-family:inherit}
.pl-lv{stroke:#D4F3FF;stroke-width:1.6;stroke-dasharray:5 5}
.pl-scan{fill:rgba(255,255,255,.18);transform:translateX(-60px);opacity:0}
.pl-scan.go{animation:plscan 1.6s ease-out}
@keyframes plscan{0%{transform:translateX(-60px);opacity:.9}100%{transform:translateX(500px);opacity:0}}
.pl-aal{display:flex;flex-direction:column;gap:10px}
.pl-aa{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;border-radius:18px;border:1px solid rgba(11,37,64,.09);background:#fff;color:#0B2540;font:inherit;cursor:pointer;transition:transform .3s var(--ease),border-color .25s,background .3s,color .3s,box-shadow .3s}
.pl-aa i{flex:0 0 40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#EAF4FB,#DDF4F0);color:#0E7FD6;transition:background .3s,color .3s}
.pl-aa i svg{width:20px;height:20px}
.pl-aa span{display:flex;flex-direction:column;gap:3px;min-width:0}
.pl-aa b{font-family:var(--disp);font-weight:400;font-size:1.05rem;letter-spacing:-.01em}
.pl-aa small{font-size:.8rem;line-height:1.35;color:#4D6E86;transition:color .3s}
.pl-aa:hover{transform:translateX(3px);border-color:rgba(14,127,214,.5)}
.pl-aa.on{background:linear-gradient(135deg,#0B2A47,#134672);color:#fff;border-color:#0B2A47;box-shadow:0 14px 30px rgba(11,42,71,.22)}
.pl-aa.on i{background:rgba(255,255,255,.14);color:#7FD7FF}
.pl-aa.on small{color:#9CC9EE}
@media (max-width:900px){.pl-aid{grid-template-columns:1fr}.pl-aa:hover{transform:none}}
@media (max-width:760px){.pl-flow{flex-direction:column}.pl-fl{flex:0 0 34px;width:2px;height:34px;align-self:center;background:linear-gradient(180deg,rgba(14,127,214,.25),rgba(56,214,196,.4))}.pl-fl i{left:-3px;top:0;animation-name:plflv}@keyframes plflv{0%{transform:translateY(0);opacity:0}15%{opacity:1}70%{opacity:1}100%{transform:translateY(26px);opacity:0}}.pl-tiers{grid-template-columns:repeat(2,minmax(0,1fr))}.pl-dp{grid-template-columns:1fr}.pl-mo{flex-basis:90px;width:90px}}
@media (prefers-reduced-motion:reduce){.pl-fl i,.pl-w,.pl-bar,.pl-rg,.pl-cell,.pl-pipe,.pl-bolt,.pl-mt button.on.run::after,.pl-scan.go{animation:none}.pl-ov,.pl-ov.on .pl-dr{transition:none}.pl-dr{stroke-dashoffset:0}.pl-fl i{opacity:.7}}


/* ===== projects v3: case studies ===== */
.pr-sec,.pr-pn{--h-ink:#0B2540;--h-mute:#4D6E86;--h-acc:#0E7FD6;--h-line:rgba(11,37,64,.12)}
.pr-b{color:var(--h-ink)}
.sec.pr-sec{padding-top:clamp(28px,3.5vw,48px)}
.pr-imp{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:clamp(48px,5.5vw,72px);background:#fff;border:1px solid var(--h-line);border-radius:22px;box-shadow:0 12px 32px rgba(11,37,64,.06);overflow:hidden}
.pr-imp>div{padding:22px 22px 24px;border-left:1px solid var(--h-line)}.pr-imp>div:first-child{border-left:0}
.pr-imp>div{text-align:center}.pr-imp i{display:block;margin-bottom:16px}.pr-imp i svg{display:block;width:120px;height:44px;margin:0 auto}
.pr-imp b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(1.45rem,2.1vw,2.1rem);line-height:1.1;letter-spacing:-.02em;color:var(--h-ink);white-space:nowrap}
.pr-imp span{display:block;margin-top:6px;font-size:.84rem;line-height:1.4;color:var(--h-mute)}
.pr-map{position:relative;margin:0 0 clamp(48px,7vw,88px);border-radius:24px;overflow:hidden;background:#06101C;aspect-ratio:2.88/1}
.pr-earth{position:absolute;left:0;width:100%;top:-16%;height:auto;opacity:.95;filter:saturate(1.1)}
.pr-mi{position:absolute;inset:0}
.pr-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#F2B26B;box-shadow:0 0 0 3px rgba(242,178,107,.28),0 0 18px rgba(242,178,107,.9);cursor:pointer}
.pr-dot.x{background:#6FD3FF;box-shadow:0 0 0 3px rgba(111,211,255,.25),0 0 18px rgba(111,211,255,.9)}
.pr-dot::after{content:'';position:absolute;inset:-8px;border-radius:50%;border:1.5px solid currentColor;color:inherit;opacity:0;animation:prPing 2.6s ease-out infinite}
.pr-dot.x::after{border-color:#6FD3FF}.pr-dot:not(.x)::after{border-color:#F2B26B}
@keyframes prPing{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.pr-ml{position:absolute;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:#EAF4FF;text-shadow:0 1px 6px rgba(0,0,0,.8);white-space:nowrap;pointer-events:none}
.pr-ml.r{transform:translate(14px,-50%)}.pr-ml.l{transform:translate(calc(-100% - 14px),-50%)}.pr-ml.b{transform:translate(-50%,14px)}.pr-ml.t{transform:translate(-50%,calc(-100% - 12px));color:#B9E4FF}
.pr-mc{position:absolute;left:20px;bottom:14px;margin:0;font-size:.74rem;color:rgba(234,244,255,.6)}
.pr-f{margin:0 0 22px}
.pr-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pr-c{display:flex;flex-direction:column;text-align:left;font:inherit;color:inherit;padding:0;border-radius:22px;overflow:hidden;background:#fff;border:1px solid var(--h-line);cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.pr-c:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(11,37,64,.12);border-color:rgba(14,127,214,.3)}
.pr-c:focus-visible{outline:2px solid var(--h-acc);outline-offset:3px}
.pr-c[hidden]{display:none}
.pr-c.pop{animation:fadeup .45s var(--ease)}
.pr-im{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#E6EEF4}
.pr-im img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.pr-c:hover .pr-im img{transform:scale(1.05)}
.pr-bd,.pr-in{position:absolute;bottom:12px;font-style:normal;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
.pr-in{left:12px;color:#fff;background:rgba(8,22,38,.72);backdrop-filter:blur(4px)}
.pr-in::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;vertical-align:1px;background:#F2B26B;box-shadow:0 0 6px #F2B26B}.pr-in.x::before{background:#6FD3FF;box-shadow:0 0 6px #6FD3FF}
.pr-hn{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:4px 0 0;font-size:.82rem;color:rgba(234,244,255,.78)}
.pr-hn i{width:8px;height:8px;border-radius:50%;background:#F2B26B;box-shadow:0 0 8px #F2B26B}.pr-hn i.x{background:#6FD3FF;box-shadow:0 0 8px #6FD3FF;margin-left:8px}
.pr-hn span{flex-basis:100%;color:rgba(234,244,255,.5);font-size:.74rem}
.phead.pjh::before{background:linear-gradient(180deg,rgba(18,26,36,.55) 0,rgba(18,26,36,0) 120px),radial-gradient(ellipse 62% 58% at 14% 78%,rgba(10,18,28,.62),rgba(10,18,28,0) 70%),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,0) 22%)}
.phead.pjh .hfx~.hfx{z-index:1}
.phead.pjh .hfx-credit{display:none}
@media (max-width:719px){.phead.pjh::before{background:linear-gradient(180deg,rgba(18,26,36,.5) 0,rgba(18,26,36,0) 100px),linear-gradient(0deg,var(--bg) 0,rgba(18,26,36,0) 22%)}}
.pr-bd{right:12px;color:#7A4A12;background:#FFF1DC}
.pr-tx{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;flex:1}
.pr-tg{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.pr-tg b{font-weight:600;color:var(--h-acc)}.pr-tg i{font-style:normal;font-weight:600;color:#fff;background:#0B2540;padding:3px 10px;border-radius:999px;letter-spacing:.08em}
.pr-tg .pr-sb{font-style:normal;font-weight:600;color:#7A4A12;background:#FFF1DC;padding:3px 8px;border-radius:999px}
.pr-h{font-family:var(--disp);font-size:1.22rem;line-height:1.25;letter-spacing:-.015em;color:var(--h-ink)}
.pr-l{font-size:.92rem;line-height:1.45;color:var(--h-mute)}
.pr-go{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:.86rem;font-weight:500;color:var(--h-acc)}
.pr-go svg{width:14px;height:14px}
/* case-study panel */
.pr-pn{position:fixed;inset:0;z-index:2000;display:flex;justify-content:flex-end}
.pr-pn[hidden]{display:none}
.pr-bk{position:absolute;inset:0;background:rgba(6,16,28,.55);opacity:0;transition:opacity .3s}
.pr-b{position:relative;width:min(760px,100%);height:100%;overflow-y:auto;background:#fff;transform:translateX(40px);opacity:0;transition:transform .35s var(--ease),opacity .3s;overscroll-behavior:contain}
.pr-pn.on .pr-bk{opacity:1}.pr-pn.on .pr-b{transform:none;opacity:1}
.pr-x{position:absolute;top:14px;right:14px;z-index:3;width:42px;height:42px;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(255,255,255,.92);box-shadow:0 6px 18px rgba(8,22,38,.2);cursor:pointer}
.pr-x svg{width:20px;height:20px;fill:none;stroke:#0B2540;stroke-width:2.2;stroke-linecap:round}
.pr-car{position:relative;aspect-ratio:4/3;background:#0A1E33;overflow:hidden}
.pr-cs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s}
.pr-cs img.on{opacity:1}
.pr-cn{position:absolute;top:50%;margin-top:-20px;width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(255,255,255,.88);cursor:pointer}
.pr-cn svg{width:18px;height:18px;fill:none;stroke:#0B2540;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pr-cn.p{left:12px}.pr-cn.n{right:12px}
.pr-cap{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);margin:0;padding:5px 10px;border-radius:8px;font-size:.78rem;color:#fff;background:rgba(8,22,38,.72)}
.pr-bd2{padding:26px clamp(20px,4vw,40px) 40px;display:flex;flex-direction:column;gap:16px}
.pr-bd2 h2{margin:0;font-family:var(--disp);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.15;letter-spacing:-.02em;color:var(--h-ink)}
.pr-sum{margin:0;font-size:1.02rem;line-height:1.55;color:var(--h-mute)}
.pr-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pr-kc{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.pr-kc>span{padding:10px 12px;border-radius:12px;background:#F2F7FA;display:flex;flex-direction:column;gap:2px}
.pr-kc b{font-family:var(--disp);font-weight:400;font-size:1.18rem;letter-spacing:-.015em;color:var(--h-ink);line-height:1.15}
.pr-kc i{font-style:normal;font-size:.74rem;line-height:1.3;color:var(--h-mute)}
.phead.pjh .lead{font-size:clamp(.98rem,1.25vw,1.12rem);max-width:46ch;color:rgba(234,244,255,.72)}
.pr-k div{padding:14px 16px;border-radius:14px;background:#F2F7FA}
.pr-k b{display:block;font-family:var(--disp);font-weight:400;font-size:1.5rem;color:var(--h-ink);letter-spacing:-.02em}
.pr-k span{display:block;margin-top:6px;font-size:.8rem;line-height:1.4;color:var(--h-mute)}
.pr-k b{line-height:1.15}
.pr-3{display:grid;gap:18px}
.pr-3 h3{margin:0 0 6px;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--h-acc)}
.pr-3 p,.pr-3 li{margin:0;font-size:.95rem;line-height:1.55;color:var(--h-ink)}
.pr-3 ol{margin:0;padding-left:20px;display:grid;gap:6px}
.pr-tl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pr-tl span{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--h-mute);margin-right:6px}
.pr-tl i{font-style:normal;font-size:.8rem;padding:5px 10px;border-radius:999px;background:#F2F7FA;border:1px solid var(--h-line);color:var(--h-ink)}
.pr-a{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.pr-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;font-size:.92rem;font-weight:500;text-decoration:none;transition:background .25s,transform .3s var(--ease)}
.pr-btn svg{width:15px;height:15px}
.pr-btn.p{color:#fff;background:#0E7FD6}.pr-btn.p:hover{background:#0B6CB8;transform:translateY(-1px)}
.pr-btn.o{color:#0B2540;background:#fff;border:1px solid rgba(11,37,64,.18)}.pr-btn.o:hover{border-color:#0E7FD6;color:#0E7FD6}
@media (max-width:1000px){.pr-g{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-imp{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-imp>div{border-left:0;border-top:1px solid var(--h-line)}.pr-imp>div:nth-child(-n+2){border-top:0}.pr-imp>div:nth-child(even){border-left:1px solid var(--h-line)}.pr-imp>div:last-child{grid-column:1/-1}}
@media (max-width:640px){
  .pr-g{grid-template-columns:1fr}.pr-imp>div{padding:16px}.pr-imp i{margin-bottom:10px}.pr-imp i svg{width:96px;height:35px}
  .pr-map{aspect-ratio:2.3/1;border-radius:18px}.pr-earth{width:125%;left:-15%;top:-16%}
  .pr-mi{left:-15%;width:125%;top:0;height:auto;aspect-ratio:2.88/1}
  .pr-mc{left:14px;bottom:8px;font-size:.66rem;max-width:52%;line-height:1.35}
  .pr-ml{font-size:.7rem}
  .pr-f{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-radius:999px}.pr-f::-webkit-scrollbar{display:none}.pr-f button{flex:none;white-space:nowrap}
  .pr-k{grid-template-columns:1fr 1fr}
  .pr-car{aspect-ratio:auto}.pr-cs{position:relative;aspect-ratio:4/3}.pr-cn{top:37.5vw}
  .pr-cap{position:static;max-width:none;border-radius:0;padding:9px 16px;background:#0A1E33}
  .pr-b{width:100%}
}
@media (prefers-reduced-motion:reduce){.pr-dot::after{animation:none}.pr-c,.pr-im img,.pr-b{transition:none}}

/* ---------- Platforms page: finishing touches ---------- */
.pl-card .pl-body p{flex:none;max-height:calc(3 * 1.5em)}
.pl-card .pl-body p+*{margin-top:auto}
.pl-grid.list .pl-body p{max-height:calc(2 * 1.5em);-webkit-line-clamp:2}
.pl-grid.list .pl-body p+*{margin-top:0}
.pl-body h3{text-wrap:balance}
#pl-all{scroll-margin-top:72px}
.pl-stats b{font-variant-numeric:tabular-nums}
.pl-sb:active,.pl-view button:active,.pl-op:active{transform:scale(.95)}
.pl-sb,.pl-view button,.pl-op{-webkit-tap-highlight-color:transparent}
@media (max-width:640px){
.phead:has(.btns [data-jump]){min-height:max(78svh,780px)}
.pl-stats.cs-stats{grid-template-columns:repeat(2,1fr);margin:28px 0}
.pl-stats.cs-stats>div{padding:18px 12px 18px 0;gap:6px}
.pl-stats.cs-stats>div+div{border-left:0;border-top:0;padding-left:0}
.pl-stats.cs-stats>div:nth-child(2n){border-left:1px solid var(--line);padding-left:16px}
.pl-stats.cs-stats>div:nth-child(n+3){border-top:1px solid var(--line)}
.pl-stats.cs-stats b{font-size:2.2rem}
.pl-stats.cs-stats span{font-size:.85rem}
.pl-grid:not(.list) .pl-media{aspect-ratio:2/1}
}

/* ---------- Platforms page: corner effects ---------- */
.pl-deco{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:paint}
.sec.pl-dec>.wrap{position:relative;z-index:1}
.phead.pl-dec>.wrap{position:relative;z-index:2}
.phead .pl-deco{z-index:1}
.pl-deco .g{position:absolute;border-radius:50%;will-change:transform;animation:plDrift 18s ease-in-out infinite alternate}
.pl-deco .g1{top:-190px;right:-150px;width:540px;height:540px;background:radial-gradient(circle,rgba(14,127,214,.2),transparent 66%)}
.pl-deco .g2{bottom:-210px;left:-170px;width:580px;height:580px;background:radial-gradient(circle,rgba(56,214,196,.18),transparent 66%);animation-duration:24s;animation-delay:-7s}
.pl-deco.fx-amber .g2{background:radial-gradient(circle,rgba(242,180,94,.22),transparent 66%)}
.pl-deco.fx-small .g1{width:420px;height:420px;top:-200px}
.pl-deco.fx-small .g2{width:420px;height:420px;bottom:-230px}
.pl-deco .ct{position:absolute;width:640px;height:640px;color:rgba(14,127,214,.2);animation:plSpin 150s linear infinite;-webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.6) 42%,transparent 72%);mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.6) 42%,transparent 72%)}
.pl-deco .ct.tr{top:-270px;right:-270px}
.pl-deco .ct.bl{bottom:-290px;left:-290px}
.pl-deco .ct.tl{top:-270px;left:-270px}
.pl-deco .ct.br{bottom:-290px;right:-290px}
.pl-deco .ct.lg{width:820px;height:820px}
.pl-deco .ct.br.lg{bottom:-400px;right:-400px}
.pl-deco .ct.rev{animation-direction:reverse;animation-duration:190s}
.pl-deco.fx-flip .g1{right:auto;left:-150px}
.pl-deco.fx-flip .g2{left:auto;right:-170px}
.pl-deco{--ti:56px;--bi:84px}
.pl-deco.fx-hero{--ti:100px;--bi:100px}
.pl-deco.fx-cta{--ti:90px;--bi:44px}
.pl-deco .cb{position:absolute;width:32px;height:32px;border:0 solid rgba(10,107,184,.4);animation:plBr 7s ease-in-out infinite}
.pl-deco .cb.tl{top:var(--ti);left:22px;border-top-width:2px;border-left-width:2px;border-top-left-radius:7px}
.pl-deco .cb.tr{top:var(--ti);right:22px;border-top-width:2px;border-right-width:2px;border-top-right-radius:7px;animation-delay:-1.7s}
.pl-deco .cb.bl{bottom:var(--bi);left:22px;border-bottom-width:2px;border-left-width:2px;border-bottom-left-radius:7px;animation-delay:-3.4s}
.pl-deco .cb.br{bottom:var(--bi);right:22px;border-bottom-width:2px;border-right-width:2px;border-bottom-right-radius:7px;animation-delay:-5.1s}
.pl-deco.fx-dark .cb{border-color:rgba(255,255,255,.3)}
.pl-deco.fx-dark .g1{background:radial-gradient(circle,rgba(56,214,196,.22),transparent 66%)}
.pl-deco.fx-dark .g2{background:radial-gradient(circle,rgba(242,180,94,.2),transparent 66%)}
.pl-deco.fx-dark .ct{color:rgba(130,200,255,.17)}
.pl-deco.fx-hero .g1{background:radial-gradient(circle,rgba(56,214,196,.14),transparent 66%)}
.pl-deco.fx-hero .g2{background:radial-gradient(circle,rgba(242,180,94,.13),transparent 66%)}
@keyframes plDrift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-36px,28px,0) scale(1.14)}}
@keyframes plSpin{to{transform:rotate(360deg)}}
@keyframes plBr{0%,100%{opacity:.3}50%{opacity:.95}}
@keyframes plPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.34)}70%,100%{box-shadow:0 0 0 18px rgba(255,255,255,0)}}
.pl-deco.off *{animation-play-state:paused}
/* stats: gradient figures and an accent line that draws in */
.pl-stats b{background:linear-gradient(120deg,#0B2540 20%,#0E7FD6 100%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.pl-stats>div{position:relative}
.pl-stats>div::before{content:"";position:absolute;left:0;top:-1px;width:0;height:3px;border-radius:3px;background:linear-gradient(90deg,#0E7FD6,#38D6C4);transition:width .9s var(--ease) .25s}
.pl-stats>div+div::before{left:24px}
.pl-stats>div.in::before{width:46px}
/* the dark panel in Geospatial AI */
.pl-dp{position:relative;overflow:hidden;isolation:isolate}
.pl-dp::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(130,200,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(130,200,255,.08) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(120% 130% at 100% 0,#000,transparent 70%);mask-image:radial-gradient(120% 130% at 100% 0,#000,transparent 70%)}
.pl-dp::after{content:"";position:absolute;right:-80px;top:-80px;width:250px;height:250px;border-radius:50%;z-index:-1;background:radial-gradient(circle,rgba(56,214,196,.45),transparent 65%);animation:plDrift 11s ease-in-out infinite alternate}
/* the module panels */
.pl-mp{position:relative;overflow:hidden;isolation:isolate}
.pl-mp::before{content:"";position:absolute;right:-100px;top:-100px;width:320px;height:320px;border-radius:50%;z-index:-1;background:radial-gradient(circle,rgba(14,127,214,.15),transparent 66%);animation:plDrift 14s ease-in-out infinite alternate}
.pl-mp::after{content:"";position:absolute;left:0;bottom:0;width:280px;height:210px;z-index:-1;background-image:radial-gradient(rgba(14,127,214,.24) 1.3px,transparent 1.7px);background-size:18px 18px;-webkit-mask-image:radial-gradient(120% 120% at 0 100%,#000,transparent 70%);mask-image:radial-gradient(120% 120% at 0 100%,#000,transparent 70%)}
/* the closing band */
.pl-dec.close .btns .btn.p{animation:plPulse 3.4s ease-out infinite}
@media (max-width:900px){
.pl-deco .cb{display:none}
.pl-deco .g1{width:340px;height:340px;top:-140px;right:-130px}
.pl-deco .g2{width:360px;height:360px;bottom:-150px;left:-140px}
.pl-deco .ct{width:420px;height:420px}
.pl-deco .ct.tr{top:-170px;right:-170px}
.pl-deco .ct.bl{bottom:-190px;left:-190px}
.pl-deco .ct.tl{top:-170px;left:-170px}
.pl-deco .ct.br,.pl-deco .ct.br.lg{bottom:-190px;right:-190px}
.pl-deco .ct.lg{width:520px;height:520px}
.pl-deco.fx-hero .g1{width:240px;height:240px;top:-110px;right:-110px}
}
@media (max-width:640px){
.pl-stats>div:nth-child(2n)::before{left:16px}
.pl-stats>div:nth-child(2n+1)::before{left:0}
}
@media (prefers-reduced-motion:reduce){
.pl-deco *,.pl-dp::after,.pl-mp::before,.pl-dec.close .btns .btn.p{animation:none!important}
.pl-stats>div::before{transition:none}
}

/* ---------- Platforms page: the Welcome story and finishing touches ---------- */
.pl-flow{position:relative}
.pl-fn{position:relative;z-index:1}
.pl-fl i{display:none}
.pl-pk{position:absolute;z-index:0;top:50%;left:var(--c0,11%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(circle,#fff 0,#8CE9DC 38%,#0E7FD6 74%);box-shadow:0 0 14px 4px rgba(56,214,196,.65),0 0 34px 10px rgba(14,127,214,.3)}
.pl-pk::before{content:"";position:absolute;right:100%;top:50%;width:56px;height:4px;margin-top:-2px;border-radius:4px;background:linear-gradient(90deg,transparent,rgba(56,214,196,.6))}
.pl-flow.vert .pl-pk{top:var(--c0,11%);left:50%}
.pl-flow.vert .pl-pk::before{right:auto;bottom:100%;top:auto;left:50%;width:4px;height:56px;margin:0 0 0 -2px;background:linear-gradient(180deg,transparent,rgba(56,214,196,.6))}
.pl-fn i{position:relative;isolation:isolate}
.pl-fn i::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;opacity:0;background:linear-gradient(135deg,#0E7FD6,#38D6C4)}
.pl-flow.live .pl-pk{animation:plPkH 7s linear infinite}
.pl-flow.live.vert .pl-pk{animation-name:plPkV}
.pl-flow.live .pl-fn{animation:plLit 7s ease-in-out infinite}
.pl-flow.live .pl-fn i{animation:plLitC 7s ease-in-out infinite}
.pl-flow.live .pl-fn i::before{animation:plLitB 7s ease-in-out infinite}
.pl-flow.live .pl-fn:nth-of-type(2),.pl-flow.live .pl-fn:nth-of-type(2) i,.pl-flow.live .pl-fn:nth-of-type(2) i::before{animation-delay:1.4s}
.pl-flow.live .pl-fn:nth-of-type(3),.pl-flow.live .pl-fn:nth-of-type(3) i,.pl-flow.live .pl-fn:nth-of-type(3) i::before{animation-delay:2.8s}
.pl-flow.live .pl-fn:nth-of-type(4),.pl-flow.live .pl-fn:nth-of-type(4) i,.pl-flow.live .pl-fn:nth-of-type(4) i::before{animation-delay:4.2s}
@keyframes plPkH{0%,8%{left:var(--c0);opacity:0}10%{left:var(--c0);opacity:1}13.57%{left:var(--r0)}26.43%{left:var(--l1)}30%{left:var(--c1)}33.57%{left:var(--r1)}46.43%{left:var(--l2)}50%{left:var(--c2)}53.57%{left:var(--r2)}66.43%{left:var(--l3)}70%{left:var(--c3);opacity:1}75%,100%{left:var(--c3);opacity:0}}
@keyframes plPkV{0%,8%{top:var(--c0);opacity:0}10%{top:var(--c0);opacity:1}13.57%{top:var(--r0)}26.43%{top:var(--l1)}30%{top:var(--c1)}33.57%{top:var(--r1)}46.43%{top:var(--l2)}50%{top:var(--c2)}53.57%{top:var(--r2)}66.43%{top:var(--l3)}70%{top:var(--c3);opacity:1}75%,100%{top:var(--c3);opacity:0}}
@keyframes plLit{0%,26%,100%{transform:translateY(0);border-color:rgba(11,37,64,.08);box-shadow:0 1px 2px rgba(11,37,64,.05),0 14px 34px rgba(11,37,64,.06)}9%,17%{transform:translateY(-5px);border-color:rgba(14,127,214,.5);box-shadow:0 0 0 1.5px rgba(14,127,214,.4),0 24px 50px -10px rgba(14,127,214,.4)}}
@keyframes plLitC{0%,26%,100%{color:#0E7FD6}9%,17%{color:#fff}}
@keyframes plLitB{0%,26%,100%{opacity:0}9%,17%{opacity:1}}
/* module capabilities appear one after another when a module is opened */
.pl-mp:not([hidden]) .pl-feat li{animation:plTile .5s var(--ease) both}
.pl-feat li:nth-child(2){animation-delay:.06s!important}.pl-feat li:nth-child(3){animation-delay:.12s!important}.pl-feat li:nth-child(4){animation-delay:.18s!important}.pl-feat li:nth-child(5){animation-delay:.24s!important}.pl-feat li:nth-child(6){animation-delay:.3s!important}.pl-feat li:nth-child(7){animation-delay:.36s!important}.pl-feat li:nth-child(8){animation-delay:.42s!important}.pl-feat li:nth-child(n+9){animation-delay:.48s!important}
@keyframes plTile{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
/* a faint light sweeps across the Data intelligence panel */
.pl-sweep{position:absolute;top:0;bottom:0;left:0;width:110px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(130,200,255,.2),transparent);transform:translateX(-130px)}
.pl-dp.live .pl-sweep{animation:plSweep 6.5s linear infinite}
@keyframes plSweep{0%{transform:translateX(-130px)}62%,100%{transform:translateX(900px)}}
/* a very fine grain over the large gradients */
.pl-deco{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .05 0 0 0 0 .16 0 0 0 0 .26 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E");background-size:160px 160px}
@media (prefers-reduced-motion:reduce){.pl-flow.live .pl-pk,.pl-flow.live .pl-fn,.pl-flow.live .pl-fn i,.pl-flow.live .pl-fn i::before,.pl-dp.live .pl-sweep,.pl-mp:not([hidden]) .pl-feat li{animation:none!important}}

/* insights: common questions (list and answer; the answer box is as tall as the longest answer, so nothing moves) */
.qa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:18px;align-items:start}
.qa-l{display:flex;flex-direction:column;gap:6px}
.qa-b{display:flex;align-items:flex-start;gap:14px;width:100%;padding:12px 16px;border:1px solid transparent;border-radius:14px;background:transparent;font:inherit;text-align:left;color:#0B2540;cursor:pointer;transition:background .2s,border-color .2s}
.qa-b:hover{background:rgba(255,255,255,.6)}
.qa-b[aria-selected=true]{background:#fff;border-color:rgba(14,127,214,.35);box-shadow:0 8px 20px rgba(11,37,64,.05)}
.qa-n{flex:none;font-size:.76rem;font-weight:600;letter-spacing:.08em;color:#0E7FD6;padding-top:3px}
.qa-q{font-size:1rem;line-height:1.4}
.qa-b[aria-selected=true] .qa-q{font-weight:600}
.qa-r{display:grid;padding:clamp(22px,3vw,36px);border-radius:22px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 14px 34px rgba(11,37,64,.06)}
.qa-p{grid-area:1/1;display:flex;flex-direction:column;gap:12px;visibility:hidden;opacity:0;transition:opacity .25s}
.qa-p.on{visibility:visible;opacity:1}
.qa-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.qa-p h3{margin:0;font-family:var(--disp);font-weight:400;font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.2;letter-spacing:-.02em;color:#0B2540}
.qa-p p{margin:0;font-size:1.02rem;line-height:1.65;color:#4D6E86}
.qa-lab{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:10px;padding:10px 14px 10px 16px;border-radius:14px;background:#EAF4FB;color:#0B2540;text-decoration:none;transition:background .2s}
.qa-lab span{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#0E7FD6}
.qa-lab b{font-weight:600;font-size:.95rem}
.qa-lab svg{width:16px;height:16px;fill:none;stroke:#0E7FD6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.qa-lab:hover{background:#D9ECF9}
@media (max-width:900px){.qa{grid-template-columns:1fr}.qa-l{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:8px;margin:0 -16px;padding:0 16px 4px}.qa-l::-webkit-scrollbar{display:none}.qa-b{flex:none;width:min(78vw,300px);scroll-snap-align:start;background:rgba(255,255,255,.6)}.qa-lab{margin-top:6px;flex-wrap:wrap;row-gap:2px}.qa-lab span{flex-basis:100%}}

/* insights: myth or fact (all cards share one grid cell, so the deck is as tall as the tallest card and nothing moves) */
.mf{max-width:880px}
.mf-dots{display:flex;gap:6px;margin-bottom:14px}
.mf-dots i{flex:1;height:5px;border-radius:3px;background:rgba(11,37,64,.1);transition:background .3s}
.mf-dots i.ok{background:#1C8C6E}.mf-dots i.no{background:#D9643A}.mf-dots i.cur{background:#0E7FD6}
.mf-deck{display:grid;padding:clamp(24px,3.4vw,40px);border-radius:24px;background:#fff;border:1px solid rgba(11,37,64,.08);box-shadow:0 16px 40px rgba(11,37,64,.07)}
.mf-c{grid-area:1/1;display:flex;flex-direction:column;gap:16px;visibility:hidden;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.mf-c.on{visibility:visible;opacity:1;transform:none}
.mf-k{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0E7FD6}
.mf-c h3{margin:0;font-family:var(--disp);font-weight:400;font-size:clamp(1.5rem,2.8vw,2.3rem);line-height:1.22;letter-spacing:-.02em;color:#0B2540}
.mf-btns{display:flex;gap:12px}
.mf-pick{flex:1;max-width:200px;padding:14px 18px;border-radius:14px;border:1.5px solid rgba(11,37,64,.14);background:#F4F8FB;font:inherit;font-size:1.05rem;font-weight:600;color:#0B2540;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.mf-pick:hover{border-color:#0E7FD6}
.mf-c.done .mf-pick{cursor:default;opacity:.55}
.mf-c.done .mf-pick.right{opacity:1;background:#E3F3EC;border-color:#1C8C6E;color:#14654F}
.mf-c.done .mf-pick.wrong{opacity:1;background:#FBE9E1;border-color:#D9643A;color:#9A3B17}
.mf-why{display:flex;flex-direction:column;gap:10px;align-items:flex-start;visibility:hidden;opacity:0;transition:opacity .3s}
.mf-c:not(.on){pointer-events:none}
.mf-c.on.done .mf-why{visibility:visible;opacity:1}
.mf-verdict{display:block;height:1.5em;line-height:1.5;font-size:1rem}.mf-c.ok .mf-verdict{color:#14654F}.mf-c.no .mf-verdict{color:#9A3B17}
.mf-why p,.mf-msg{margin:0;font-size:1.02rem;line-height:1.6;color:#4D6E86;max-width:62ch}
.mf-next,.mf-again{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;border:0;background:#0E7FD6;color:#fff;font:inherit;font-weight:600;cursor:pointer}
.mf-next svg,.mf-again svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mf-end{justify-content:center;align-items:flex-start}
.mf-wait{font-size:.95rem;color:#8AA2B5;transition:opacity .2s}.mf-c.done .mf-wait{opacity:0;visibility:hidden}
.mf-again{background:transparent;color:#0E7FD6;border:1.5px solid #0E7FD6}
@media (min-width:901px){.mf{max-width:none}.mf-c:not(.mf-end){display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:clamp(32px,5vw,72px);row-gap:16px;align-content:start}.mf-c:not(.mf-end)>.mf-k{grid-column:1;grid-row:1}.mf-c:not(.mf-end)>h3{grid-column:1;grid-row:2}.mf-btns{grid-column:1;grid-row:3;align-self:start}.mf-why,.mf-wait{grid-column:2;grid-row:1/4;align-self:center}.mf-why{padding-left:clamp(24px,3vw,40px);border-left:1px solid rgba(11,37,64,.1)}}
@media (max-width:900px){.mf-wait{display:none}}
@media (max-width:560px){.mf-pick{max-width:none}}

/* technical insights: video bar along the bottom */
.ti-pp{display:none}
.ti-m{border:1px solid rgba(11,37,64,.1);background:#F4F7FA;box-shadow:inset 0 0 0 4px #fff}
#ti-inflow .ti-m{aspect-ratio:1280/688}#ti-hydro .ti-m{aspect-ratio:1280/796}   /* each frame takes its video's own shape, so no white bands */
.ti-bar{position:absolute;left:0;right:0;bottom:0}
.ti-track{position:relative;height:3px;background:rgba(11,37,64,.14);cursor:pointer;touch-action:none;transition:height .15s}
.ti-track::before{content:'';position:absolute;left:0;right:0;top:-12px;bottom:0}
.ti-m:hover .ti-track,.ti-track:focus-visible{height:5px}.ti-track:focus-visible{outline:2px solid #0E7FD6;outline-offset:2px}
.ti-track i{position:absolute;left:0;top:0;bottom:0;width:0;background:#0E7FD6}

/* case studies: no caption bar over the images */
.pr-cap{display:none!important}
/* papers: the latest few, the rest behind a button */
.pbs:not(.all) .pb-x{display:none}
.pb-more{display:flex;justify-content:center;margin-top:22px}
.pb-tog{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;border:1.5px solid #0E7FD6;background:#fff;color:#0E7FD6;font:inherit;font-weight:600;cursor:pointer;transition:background .2s,color .2s}
.pb-tog:hover{background:#0E7FD6;color:#fff}
.pb-tog svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.pb-tog[aria-expanded=true] svg{transform:rotate(180deg)}

/* ---------- Platforms page: the corner decorations stay still ---------- */
.pl-deco .g,.pl-deco .ct,.pl-deco .cb,.pl-dp::after,.pl-mp::before{animation:none!important}

/* ---------- Platforms page: no corner decorations ---------- */
.pl-deco{display:none!important}
.pl-dp::after,.pl-mp::before,.pl-body::after{content:none!important;display:none!important}
