:root{--navy:#0b2942;--navy2:#123b59;--paper:#f1eee7;--red:#e12d46;--cyan:#58cde2;--violet:#a775de;--ink:#edf2f4;--muted:#93a2ad;--line:rgba(255,255,255,.16);--pad:clamp(24px,5.4vw,88px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--navy);color:var(--ink);font-family:Manrope,sans-serif;overflow-x:hidden}.grain{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.loader{position:fixed;inset:0;background:var(--paper);z-index:50;display:grid;place-items:center;transition:opacity .7s,visibility .7s}.loader img{width:145px}.loader span{position:absolute;bottom:15%;width:130px;height:1px;background:#d0cbc2;overflow:hidden}.loader span:after{content:"";display:block;height:100%;width:50%;background:var(--red);animation:load 1.2s infinite}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(200%)}}.loader.done{opacity:0;visibility:hidden}.rail{position:fixed;z-index:31;right:0;top:0;width:3px;height:100vh;background:#ffffff10}.rail span{display:block;width:100%;height:0;background:linear-gradient(var(--red),var(--cyan))}header{position:fixed;z-index:20;top:0;left:0;right:0;height:84px;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:#0b2942bb;backdrop-filter:blur(16px)}.logo img{display:block;width:90px;filter:brightness(0) invert(1)}nav{display:flex;gap:32px}nav a,.contact-link{color:var(--ink);text-decoration:none;font:500 11px "DM Mono";letter-spacing:.08em;text-transform:uppercase}.contact-link{justify-self:end}.contact-link b{color:var(--red);margin-left:10px}.menu{display:none;background:none;border:0}.scene{position:relative;min-height:100vh;padding:140px var(--pad) 100px}.hero{overflow:hidden;min-height:100vh;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 73% 48%,#286282 0,transparent 37%)}.hero-kicker{position:absolute;top:110px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font:10px "DM Mono";letter-spacing:.15em;color:var(--muted)}h1,h2{font-weight:500;letter-spacing:-.065em;line-height:.9;margin:0}.hero h1{font-size:clamp(58px,8.3vw,138px);position:relative;z-index:2}.hero h1 em,.intro h2 em,.reach h2 em{font-family:Georgia,serif;font-weight:400;color:var(--cyan)}.hero-text{position:absolute;z-index:3;right:var(--pad);bottom:122px;width:min(390px,30vw);font-size:17px;line-height:1.65;color:#bbc6cb}.round-link{position:absolute;z-index:4;left:var(--pad);bottom:110px;width:106px;height:106px;border:1px solid #ffffff55;border-radius:50%;display:grid;place-content:center;gap:8px;text-align:center;color:var(--ink);text-decoration:none;font:10px "DM Mono";text-transform:uppercase;transition:.3s}.round-link:hover{background:var(--red);border-color:var(--red);transform:scale(1.08)}.globe-wrap{position:absolute;width:min(54vw,780px);height:min(54vw,780px);right:-4vw;top:9vh;display:grid;place-items:center;background:radial-gradient(circle,rgba(88,205,226,.18),transparent 61%);border-radius:50%}.globe{width:70%;filter:brightness(1.22) saturate(.92) contrast(1.12) drop-shadow(0 18px 48px rgba(0,0,0,.28));animation:float 6s ease-in-out infinite;transform-origin:center}@keyframes float{50%{transform:translateY(-15px) rotate(2deg)}}.orbit{position:absolute;border:1px solid #ffffff22;border-radius:50%;transform:rotate(-20deg)}.orbit-one{width:80%;height:42%}.orbit-two{width:54%;height:86%;transform:rotate(35deg)}.ticker{position:absolute;bottom:0;left:0;width:100%;border-top:1px solid var(--line);height:42px;overflow:hidden;white-space:nowrap}.ticker div{font:10px/42px "DM Mono";letter-spacing:.18em;color:var(--muted);animation:ticker 28s linear infinite}.ticker span{margin-left:18px}@keyframes ticker{to{transform:translateX(-50%)}}.section-no{font:11px "DM Mono";letter-spacing:.2em;color:var(--red);margin-bottom:65px}.intro{background:var(--paper);color:#0b2033}.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw}.intro h2,.flow h2,.products h2,.reach h2,.reliability h2,.closing h2{font-size:clamp(56px,7.2vw,112px)}.intro .lead{font-size:clamp(20px,2.1vw,31px);line-height:1.38;margin-top:4px}.intro .copy p:not(.lead){font-size:17px;line-height:1.7;color:#536472}.statement{margin-top:120px;border-top:1px solid #0b203344;padding-top:30px;display:grid;grid-template-columns:1fr 2fr}.statement span{font:11px "DM Mono";letter-spacing:.15em;color:var(--red)}.statement p{font-size:clamp(25px,3.5vw,52px);line-height:1.2;margin:0;letter-spacing:-.03em}.flow{background:#0b2942;min-height:125vh}.flow-stage{margin-top:100px;display:grid;grid-template-columns:repeat(4,1fr);position:relative}.flow-stage article{padding:38px 28px 20px 0;min-height:230px;border-top:1px solid var(--line)}.flow-stage small,.flow-stage article p{color:var(--muted)}.flow-stage small{font:11px "DM Mono"}.flow-stage h3{font-size:29px;margin:50px 0 15px}.flow-stage p{font-size:15px;line-height:1.55;max-width:240px}.flow-line{position:absolute;left:0;right:0;top:0;height:1px;background:#ffffff1f}.flow-line i{position:absolute;top:-4px;width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 25px var(--cyan);animation:flowdot 5s linear infinite}@keyframes flowdot{to{left:100%}}.capability-strip{position:absolute;bottom:60px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font:10px "DM Mono";letter-spacing:.12em;color:var(--cyan)}.products{background:#e9e5dc;color:#0a1d30}.products-head{display:flex;justify-content:space-between;align-items:flex-end}.products-head p{max-width:410px;color:#5d6b76;line-height:1.6}.product-tabs{margin-top:70px;border-top:1px solid #0a1d3033;border-bottom:1px solid #0a1d3033;display:flex;overflow-x:auto}.product-tabs button{white-space:nowrap;border:0;background:none;padding:20px 24px;color:#68747d;font:11px "DM Mono";cursor:pointer}.product-tabs button:first-child{padding-left:0}.product-tabs button.active{color:var(--red)}.product-display{min-height:410px;padding-top:60px;display:grid;grid-template-columns:1fr 3fr}.product-index{font:12px "DM Mono";color:#7b858b}.product-index span{color:var(--red)}.product-group{display:none;grid-template-columns:1.2fr 1fr;gap:70px}.product-group.active{display:grid;animation:fade .5s}.product-group h3{font-size:clamp(26px,3vw,45px);line-height:1.24;margin:0;font-weight:500;letter-spacing:-.03em}.product-group ul{list-style:none;margin:0;padding:0}.product-group li{border-top:1px solid #0a1d3033;padding:12px 0;font:13px "DM Mono"}.reach{background:#102f49;overflow:hidden}.reach-head{display:grid;grid-template-columns:1.4fr .6fr;gap:5vw}.reach-head p{align-self:end;color:#9eabb4;line-height:1.65;max-width:420px}.map{width:min(1060px,88vw);margin:-20px auto 0;position:relative}.map img{width:100%;filter:brightness(1.5) grayscale(1);opacity:.58}.pulse{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 #e12d4688;animation:pulse 2s infinite}.p1{left:77%;top:57%}.p2{left:48%;top:43%;animation-delay:.5s}.p3{left:66%;top:60%;animation-delay:1s}@keyframes pulse{70%{box-shadow:0 0 0 18px #e12d4600}}.locations{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line)}.locations div{padding:20px 12px;border-right:1px solid var(--line)}.locations b{font:9px "DM Mono";color:var(--red)}.locations span,.locations small{display:block}.locations span{font:13px "DM Mono";margin-top:18px}.locations small{font:8px "DM Mono";color:var(--muted);margin-top:5px}.reliability{background:var(--paper);color:#0a1d30}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:100px;background:#0a1d3033;border:1px solid #0a1d3033}.pillars article{background:var(--paper);padding:38px;min-height:290px}.pillars span{font:11px "DM Mono";color:var(--red)}.pillars h3{font-size:25px;line-height:1.2;margin:70px 0 18px}.pillars p{color:#596975;line-height:1.6;font-size:15px}.closing{background:radial-gradient(circle at 65% 40%,#2b6688,#0b2942 45%);min-height:100vh;display:flex;flex-direction:column;justify-content:space-between}.closing-inner{margin:auto 0}.closing h2{font-size:clamp(68px,11vw,170px)}.email{display:inline-flex;gap:35px;margin-top:55px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:10px;font:15px "DM Mono"}.email b{color:var(--red)}.address{float:right;margin-top:62px;max-width:370px;font:10px/1.7 "DM Mono";color:var(--muted)}footer{border-top:1px solid var(--line);padding-top:26px;display:grid;grid-template-columns:1fr auto auto;gap:45px;align-items:center;font:9px "DM Mono";color:var(--muted)}footer img{width:82px;filter:brightness(0) invert(1)}@keyframes fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:800px){header{height:70px}.logo img{width:76px}nav,.contact-link{display:none}.menu{display:block;justify-self:end}.menu i{display:block;width:24px;height:1px;background:white;margin:6px}.hero-kicker span:nth-child(2){display:none}.hero h1{font-size:clamp(54px,16vw,88px)}.globe-wrap{width:95vw;height:95vw;right:-38vw;top:23vh;opacity:.65}.hero-text{position:relative;right:auto;bottom:auto;width:78%;margin:40px 0 110px}.round-link{bottom:65px}.intro-grid,.reach-head{grid-template-columns:1fr}.intro-grid .copy{margin-top:40px}.statement{grid-template-columns:1fr;margin-top:80px;gap:25px}.flow-stage{grid-template-columns:1fr 1fr;margin-top:60px}.flow-stage article{padding-right:18px}.flow-stage h3{margin-top:28px}.capability-strip{display:none}.products-head{display:block}.products-head p{margin-top:30px}.product-display{grid-template-columns:1fr;padding-top:38px}.product-index{margin-bottom:30px}.product-group,.product-group.active{grid-template-columns:1fr;gap:38px}.map{width:130%;margin-left:-15%;margin-top:40px}.locations{grid-template-columns:repeat(2,1fr)}.pillars{grid-template-columns:1fr}.address{float:none;margin-top:55px}.closing h2{font-size:17vw}footer{grid-template-columns:1fr 1fr}footer span:nth-child(2){display:none}.scene{padding-top:110px}.section-no{margin-bottom:45px}}
@media(max-width:800px){nav.mobile-open{display:flex;position:fixed;inset:70px 0 auto 0;background:#0b2942;padding:35px var(--pad);flex-direction:column;border-bottom:1px solid var(--line)}nav.mobile-open a{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.globe,.ticker div,.flow-line i,.pulse{animation:none}}
@media (min-width:801px) and (max-width:1100px){.hero h1{max-width:58%;font-size:clamp(58px,8.2vw,88px)}.globe-wrap{width:49vw;height:49vw;right:-3vw;top:50%;transform:translateY(-50%)}.hero-text{width:38vw}.hero-kicker{gap:24px}.hero-kicker span{white-space:nowrap}}
@media (max-width:800px){.hero-kicker{top:104px;display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;align-items:start}.hero-kicker span:nth-child(1){grid-column:1;grid-row:1}.hero-kicker span:nth-child(2){display:block;grid-column:1/-1;grid-row:2;text-align:center;font-size:9px;letter-spacing:.11em}.hero-kicker span:nth-child(3){grid-column:2;grid-row:1;text-align:right;font-size:9px;letter-spacing:.11em}.hero{padding-top:152px}}

/* Version 1.03: targeted hero and loader refinements */
.loader{background:var(--navy)}
.loader img{filter:brightness(0) invert(1)}

@media (min-width:1101px) and (max-width:1400px){
  .globe-wrap{top:50%;transform:translateY(-50%)}
}

/* Version 1.04: navigation motion, logo scale and kicker alignment */
.hero-kicker{align-items:center}
.logo img{width:140px}
nav a,.contact-link{position:relative;padding-bottom:7px}
nav a::after,.contact-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .38s cubic-bezier(.4,0,.2,1)}
nav a:hover::after,nav a:focus-visible::after,.contact-link:hover::after,.contact-link:focus-visible::after{transform:scaleX(1)}

@media (max-width:800px){
  .logo img{width:140px}
  .hero-kicker{display:block;text-align:center}
  .hero-kicker span:nth-child(1),.hero-kicker span:nth-child(3){display:none}
  .hero-kicker span:nth-child(2){display:block;text-align:center}
}

/* Version 1.06: company copy and CEO quotation */
.intro .section-no,.statement>span{font-size:13px}
.intro .lead{font-size:clamp(20px,2.1vw,31px)}
.intro .copy p:not(.lead){font-size:17px}
.statement blockquote{margin:0}
.statement blockquote p{font-size:clamp(25px,3.5vw,52px);line-height:1.2;margin:0;letter-spacing:-.03em}
.statement cite{display:flex;align-items:baseline;gap:12px;margin-top:30px;font-style:normal}
.statement cite strong{font:600 13px Manrope,sans-serif;color:#0b2033}
.statement cite small{font:500 11px "DM Mono";letter-spacing:.08em;text-transform:uppercase;color:#3b9eb1}

/* Version 1.08: responsive company-section typography */
@media (min-width:801px) and (max-width:1100px){
  .intro-grid{grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);gap:clamp(36px,5vw,70px)}
}

@media (max-width:800px){
  .intro .lead{font-size:clamp(24px,4.8vw,32px)}
  .intro .copy p:not(.lead){font-size:19.5px}
  .statement blockquote p{font-size:clamp(29px,5vw,38px)}
}

/* Version 1.09: compact, scroll-driven how-we-work section */
.flow{min-height:clamp(800px,72vh,950px)}
.flow .section-no{font-size:13px}
.flow-line i{left:0;animation:none;transform:translateX(-50%);transition:left .08s linear}

/* Version 1.10: viewport-timed, continuous responsive flow path */
.flow{min-height:clamp(880px,79vh,1045px)}
.flow-line{height:100%;background:none;pointer-events:none}
.flow-line i{top:0;transform:translate(-50%,-50%);transition:left .08s linear,top .08s linear}

/* Version 1.18: rectangular, wrapping product category buttons */
.product-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:70px;border:0;overflow:visible}
.product-tabs button,.product-tabs button:first-child{flex:0 0 auto;padding:12px 17px;border:1px solid rgba(10,29,48,.28);border-radius:0;background:transparent;color:#52616d;font:300 14px/1.25 "DM Mono";transition:background-color .28s ease,border-color .28s ease,color .28s ease}
.product-tabs button:hover,.product-tabs button:focus-visible{background:#0a1d30;border-color:#0a1d30;color:#fff}
.product-tabs button.active,.product-tabs button.active:hover,.product-tabs button.active:focus-visible{background:var(--red);border-color:var(--red);color:#fff}

@media(max-width:800px){
  .product-tabs{margin-top:52px}
}

/* Version 1.19: category illustrations and responsive portfolio spacing */
.product-tabs button::before,.product-tabs button::after{content:none;display:none}
.product-display{min-height:500px}
.product-group{position:relative}
.product-illustration{position:absolute;z-index:0;top:86px;left:calc(-33.333% - 12px);width:clamp(230px,25vw,410px);height:auto;max-height:310px;object-fit:contain;object-position:left top;opacity:.92;pointer-events:none}
.product-group h3,.product-group ul{position:relative;z-index:1}

@media(min-width:801px) and (max-width:1100px){
  .products-head{display:grid;grid-template-columns:minmax(340px,1fr) minmax(280px,.75fr);column-gap:clamp(55px,7vw,90px);align-items:start}
  .products-head p{margin-top:0}
  .product-illustration{top:92px;left:calc(-33.333% - 6px);width:clamp(155px,20vw,220px);max-height:220px}
}

@media(max-width:800px){
  .product-illustration{display:none}
  .product-display{min-height:410px}
}

/* Version 1.21: Global Reach typography, borders and SVG-locked locations */
.reach .section-no{font-size:13px}
.reach-head p{align-self:start;margin-top:0}
.locations{border-left:1px solid var(--line)}
.locations b{font-size:12px}
.locations small{font-size:10px}
.pulse{transform:translate(-50%,-50%)}
.p-hong-kong{left:82.109%;top:53.478%;animation-delay:0s}
.p-istanbul{left:56.757%;top:43.177%;animation-delay:.2s}
.p-mumbai{left:70.090%;top:55.250%;animation-delay:.4s}
.p-alexandria{left:57.217%;top:49.217%;animation-delay:.6s}
.p-beijing{left:81.649%;top:41.882%;animation-delay:.8s}
.p-switzerland{left:50.353%;top:40.017%;animation-delay:1s}

/* Version 1.22: synchronized outward city pulses with a longer rest */
.pulse{
  animation:none;
  box-shadow:none;
}
.pulse::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(225,45,70,.78);
  border-radius:50%;
  opacity:0;
  transform:scale(.25);
  animation:cityPulse 4.4s cubic-bezier(.2,.7,.25,1) infinite;
  animation-delay:0s;
}
@keyframes cityPulse{
  0%{opacity:.8;transform:scale(.25)}
  24%{opacity:0;transform:scale(3.4)}
  100%{opacity:0;transform:scale(3.4)}
}
@media(prefers-reduced-motion:reduce){
  .pulse::after{animation:none}
}

/* Version 1.23: two-column Flexibility section with interactive FAQ */
.flexibility{background:var(--paper);color:#0a1d30}
.flexibility .section-no{font-size:13px}
.flexibility-layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(480px,1.14fr);gap:clamp(70px,9vw,150px);align-items:start}
.flexibility h2{font-size:clamp(56px,6.4vw,104px)}
.flexibility-intro>p{max-width:570px;margin:42px 0 0;color:#596975;font-size:18px;line-height:1.7}
.faq-list{padding-top:4px}
.faq-item{border-bottom:1px solid rgba(10,29,48,.28)}
.faq-question{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:start;padding:25px 0;border:0;background:none;color:#0a1d30;text-align:left;cursor:pointer;font:500 clamp(18px,1.55vw,24px)/1.35 Manrope,sans-serif}
.faq-question:focus-visible{outline:1px solid var(--red);outline-offset:5px}
.faq-mark{display:block;color:var(--red);font:300 28px/1 "DM Mono"}
.faq-mark::before{content:"+"}
.faq-answer{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1),opacity .28s ease}
.faq-answer>p{min-height:0;overflow:hidden;margin:0;padding:0 54px 0 0;color:#596975;font-size:15px;line-height:1.7;transition:padding-bottom .42s cubic-bezier(.22,1,.36,1)}
.faq-item:hover .faq-answer,.faq-item.is-open .faq-answer{grid-template-rows:1fr;opacity:1}
.faq-item:hover .faq-answer>p,.faq-item.is-open .faq-answer>p{padding-bottom:25px}
.faq-item:hover .faq-mark::before,.faq-item.is-open .faq-mark::before{content:"−"}

@media(max-width:800px){
  .flexibility-layout{grid-template-columns:1fr;gap:64px}
  .flexibility-intro>p{margin-top:30px;font-size:17px}
  .faq-question{padding:22px 0;font-size:18px}
  .faq-answer>p{padding-right:34px;font-size:15px}
}

@media(prefers-reduced-motion:reduce){
  .faq-answer,.faq-answer>p{transition:none}
}

/* Version 1.24: compact Flexibility section and explicit FAQ state */
.flexibility{min-height:0;padding-top:clamp(110px,8vw,140px);padding-bottom:clamp(90px,8vw,130px)}
.flexibility h2{font-size:5vw}
.faq-item.is-open .faq-answer{grid-template-rows:1fr;opacity:1}
.faq-item.is-open .faq-answer>p{padding-bottom:25px}
.faq-item.is-open .faq-mark::before{content:"−"}
.faq-item:hover:not(.is-open) .faq-answer{grid-template-rows:0fr;opacity:0}
.faq-item:hover:not(.is-open) .faq-answer>p{padding-bottom:0}
.faq-item:hover:not(.is-open) .faq-mark::before{content:"+"}

@media(max-width:800px){
  .flexibility h2{font-size:clamp(48px,12vw,72px)}
}

/* Version 1.25: 15% more vertical breathing room in Flexibility */
.flexibility{
  padding-top:clamp(127px,9.2vw,161px);
  padding-bottom:clamp(104px,9.2vw,150px);
}

/* Version 1.26: stable accordion section height and earlier stacked layout */
.flexibility{height:900px;min-height:900px}

@media(max-width:1060px){
  .flexibility{height:1100px;min-height:1100px}
  .flexibility-layout{grid-template-columns:1fr;gap:64px}
  .flexibility-intro>p{max-width:680px}
}

@media(max-width:480px){
  .flexibility{height:1180px;min-height:1180px}
}

/* Version 1.28: retain responsive Flexibility type after Contact rollback */
@media(max-width:1060px){
  .flexibility h2{font-size:clamp(48px,5vw,64px)}
  .flexibility-intro>p{font-size:clamp(17px,1.8vw,20px);max-width:720px}
}

/* Version 1.29: refined single-column Contact composition */
.closing{padding-top:119px;overflow:hidden;background-size:135% 135%;animation:contactGlow 18s ease-in-out infinite alternate}
.closing-inner{margin:0}
.closing .section-no{font-size:13px}
.closing h2 span{display:block;opacity:0;transform:translateY(30px)}
body[data-scene="6"] .closing h2 span{animation:contactLineIn .78s cubic-bezier(.22,1,.36,1) forwards}
body[data-scene="6"] .closing h2 span:nth-child(2){animation-delay:.13s}
.contact-copy{max-width:680px;margin:42px 0 0;color:#b8c4ca;font-size:17px;line-height:1.65}
.closing .email{position:relative;display:inline-flex;gap:14px;margin-top:34px;padding-bottom:10px;border-bottom:0;font-size:19px;transition:color .3s ease}
.closing .email::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left center;transition:transform .42s cubic-bezier(.22,1,.36,1)}
.closing .email:hover,.closing .email:focus-visible{color:var(--red)}
.closing .email:hover::after,.closing .email:focus-visible::after{transform:scaleX(1)}
.closing .email b{display:inline-block;margin-left:0;color:var(--red)}
.closing .email:hover b,.closing .email:focus-visible b{animation:contactArrow .7s ease-in-out infinite alternate}
.contact-office{margin-top:52px}
.contact-office>strong{display:block;margin-bottom:20px;color:var(--muted);font:500 11px "DM Mono";letter-spacing:.14em}
.contact-office address{font:400 13px/1.5 "DM Mono";font-style:normal;color:#b9c5cb}
.contact-office address b{display:block;margin-bottom:13px;color:var(--ink);font-weight:500;letter-spacing:.07em}
.closing footer{margin-top:auto;grid-template-columns:1fr auto auto auto}
.footer-links{display:flex;gap:28px}
.footer-links a{color:var(--muted);text-decoration:none;transition:color .25s ease}
.footer-links a:hover,.footer-links a:focus-visible{color:var(--ink)}
@keyframes contactGlow{from{background-position:43% 45%}to{background-position:58% 56%}}
@keyframes contactLineIn{to{opacity:1;transform:translateY(0)}}
@keyframes contactArrow{to{transform:translate(4px,-4px)}}

@media(max-width:800px){
  .closing{padding-top:94px;min-height:1050px}
  .contact-copy{font-size:16px}
  .closing .email{font-size:19px}
  .closing footer{grid-template-columns:1fr 1fr;gap:22px}
  .closing footer .footer-links{justify-self:end}
}

@media(prefers-reduced-motion:reduce){
  .closing{animation:none}
  .closing h2 span{opacity:1;transform:none;animation:none!important}
  .closing .email:hover b,.closing .email:focus-visible b{animation:none}
}

/* Version 1.30: scroll-scrubbed Contact headline and corrected hierarchy */
.closing h2 span{opacity:1;animation:none!important;will-change:transform}
.contact-label{display:block;margin-top:40px;color:var(--muted);font:500 14px "DM Mono";letter-spacing:.14em}
.closing .email{margin-top:12px}
.contact-office{margin-top:48px}
.closing footer{font-size:13px}
.closing footer img{width:100px}
.closing .footer-links a{font-size:13px}

@media(max-width:800px){
  .closing footer>span:nth-child(2){display:inline}
}

@media(prefers-reduced-motion:reduce){
  .closing h2 span{transform:none!important}
}

/* Version 1.31: final Contact scale, copy rhythm and mobile footer */
.closing .footer-links{gap:14px}
.closing .footer-links a{color:#fff}

@media(max-width:850px){
  .closing footer{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px}
  .closing footer>img{grid-row:1}
  .closing footer>span:nth-child(2){grid-row:2;display:block}
  .closing footer .footer-links{grid-row:3;justify-self:center;gap:14px}
  .closing footer>span:last-child{grid-row:4}
}

@media(prefers-reduced-motion:reduce){
  .closing .footer-links a::after{transition:none}
}

/* Version 1.32: desktop headline restoration and separate legal controls */
.closing h2{font-size:clamp(68px,11vw,170px)}
.closing .footer-links{align-items:center}
.closing .footer-separator{color:var(--muted)}
.closing .legal-link{position:relative;padding-bottom:5px}
.closing .legal-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .38s cubic-bezier(.4,0,.2,1)}
.closing .legal-link:hover::after,.closing .legal-link:focus-visible::after{transform:scaleX(1)}

@media(max-width:850px){
  .closing h2{font-size:15vw}
}

@media(prefers-reduced-motion:reduce){
  .closing .legal-link::after{transition:none}
}

/* Version 1.32: Privacy and Legal pages */
.policy-page{min-height:100vh;background:var(--paper);color:#0a1d30}
.policy-header{position:relative;height:96px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;background:var(--navy);border-bottom:1px solid var(--line)}
.policy-header img{display:block;width:120px;filter:brightness(0) invert(1)}
.policy-header>a:last-child{color:var(--ink);text-decoration:none;font:500 12px "DM Mono";letter-spacing:.08em}
.policy-main{padding:clamp(80px,9vw,150px) var(--pad) 120px}
.policy-kicker{color:var(--red);font:400 13px "DM Mono";letter-spacing:.18em}
.policy-main h1{margin:48px 0 22px;font-size:clamp(58px,9vw,140px);font-weight:500;letter-spacing:-.065em;line-height:.9}
.policy-updated{margin:0;color:#687681;font:400 12px "DM Mono";letter-spacing:.06em}
.policy-content{width:min(820px,100%);margin:clamp(72px,8vw,120px) 0 0 auto}
.policy-content section{display:grid;grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);gap:44px;padding:27px 0;border-top:1px solid rgba(10,29,48,.22)}
.policy-content h2{margin:0;font:500 14px/1.45 "DM Mono";letter-spacing:.02em}
.policy-content p{margin:0;color:#52636f;font-size:16px;line-height:1.75}
.policy-content a{color:#0a1d30;text-decoration-color:var(--red);text-underline-offset:4px}
.policy-footer{padding:28px var(--pad);display:grid;grid-template-columns:1fr auto auto;gap:42px;align-items:center;background:var(--navy);color:var(--muted);font:400 11px "DM Mono"}
.policy-footer img{width:100px;filter:brightness(0) invert(1)}
@media(max-width:700px){
  .policy-header{height:80px}.policy-header img{width:100px}
  .policy-main{padding-top:72px;padding-bottom:90px}
  .policy-main h1{margin-top:34px}
  .policy-content{margin-top:64px}
  .policy-content section{grid-template-columns:1fr;gap:14px}
  .policy-footer{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px}
}

/* Version 1.12: portfolio typography and interaction refinements */
.products .section-no,.product-index{font-size:13px}
.products-head{align-items:flex-start}
.products-head p{margin-top:0}
.product-tabs{position:relative}
.product-tabs button{position:relative;font-size:14px}
.product-tabs button::before{content:"";position:absolute;left:24px;right:24px;bottom:7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .38s cubic-bezier(.4,0,.2,1)}
.product-tabs button:first-child::before{left:0}
.product-tabs button:hover::before,.product-tabs button:focus-visible::before{transform:scaleX(1)}
.product-tabs button:first-child{padding-left:18px}
.product-tabs button.active::after{content:"";position:absolute;left:8px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--red);transform:translateY(-50%)}
.product-tabs button.active:first-child::after{left:3px}
.product-tabs .tab-indicator{position:absolute;left:0;bottom:0;height:2px;background:var(--red);pointer-events:none;transition:width .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1)}
.product-group.active{animation:productReveal .68s cubic-bezier(.22,1,.36,1) both}
.product-group.active h3{animation:productReveal .68s cubic-bezier(.22,1,.36,1) both}
.product-group li{font-size:15px}
.product-group.active li{animation:productReveal .62s cubic-bezier(.22,1,.36,1) both}
.product-group.active li:nth-child(2){animation-delay:.035s}.product-group.active li:nth-child(3){animation-delay:.07s}.product-group.active li:nth-child(4){animation-delay:.105s}.product-group.active li:nth-child(5){animation-delay:.14s}.product-group.active li:nth-child(6){animation-delay:.175s}.product-group.active li:nth-child(7){animation-delay:.21s}
@keyframes productReveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:800px){
  .products-head p{margin-top:30px}
}

@media(prefers-reduced-motion:reduce){
  .product-tabs .tab-indicator,.product-tabs button::before{transition:none}
  .product-group.active,.product-group.active h3,.product-group.active li{animation:none}
}

/* Version 1.20: final supplied portfolio artwork and reference-matched placement */
.product-tabs button::before,
.product-tabs button::after{content:none!important;display:none!important}
.product-display{min-height:670px}
.product-illustration{
  top:72px;
  left:calc(-33.333% - 12px);
  width:clamp(620px,58vw,980px);
  max-width:none;
  max-height:none;
  opacity:.75;
  object-fit:contain;
  object-position:left top;
}

@media(min-width:801px) and (max-width:1100px){
  .product-display{min-height:520px}
  .product-illustration{
    top:82px;
    left:calc(-33.333% - 6px);
    width:clamp(390px,52vw,570px);
    max-height:none;
  }
}

@media(max-width:800px){
  .product-illustration{display:none}
  .product-display{min-height:410px}
}

/* Version 1.33: coherent fluid typography across viewport sizes */
@media(min-width:801px){
  nav a,.contact-link{font-size:clamp(11px,.72vw,14px)}
  nav{gap:clamp(32px,2.25vw,44px)}
  .hero-kicker{font-size:clamp(10px,.62vw,12px)}
  .hero-text{font-size:clamp(17px,1.02vw,20px)}
  .intro .copy p:not(.lead){font-size:clamp(17px,1vw,19px)}
  .flow-stage h3{font-size:clamp(29px,1.85vw,35px)}
  .flow-stage p{font-size:clamp(15px,.9vw,17px)}
  .products-head p,.reach-head p{font-size:clamp(16px,1vw,19px)}
  .flexibility-intro>p{font-size:clamp(18px,1.05vw,20px)}
  .faq-answer>p{font-size:clamp(15px,.9vw,17px)}
  .contact-copy{font-size:clamp(17px,1.02vw,20px)}
  .policy-content p{font-size:clamp(16px,1vw,18px)}
}

@media(max-width:800px){
  .hero-text{font-size:clamp(16px,4.25vw,19px)}
  .flow-stage h3{font-size:clamp(27px,6vw,31px)}
  .flow-stage p{font-size:clamp(15px,3.8vw,17px)}
  .products-head p,.reach-head p{font-size:clamp(16px,4.2vw,18px)}
}

/* Version 1.34: immersive navigation and dimensional hero details */
.hero-text{bottom:100px}
.globe-wrap .globe{position:relative;z-index:2}
.globe-wrap .orbit-back{z-index:1}
.globe-wrap .orbit-front{z-index:3;clip-path:inset(48% 0 0 0)}
.contact-link{transition:color .3s ease}
.contact-link:hover,.contact-link:focus-visible{color:var(--red)}
.contact-link b{display:inline-block}
.contact-link:hover b,.contact-link:focus-visible b{animation:navArrow .7s ease-in-out infinite alternate}
.flow-line i{width:13px;height:13px;top:-6px;box-shadow:0 0 12px 3px rgba(88,205,226,.72),0 0 34px 9px rgba(88,205,226,.3)}
@keyframes navArrow{to{transform:translate(4px,-4px)}}

@media(max-width:800px){
  body.menu-open{overflow:hidden}
  .hero h1{font-size:clamp(54px,14vw,88px)}
  header .logo,header .menu{position:relative;z-index:3}
  .menu{grid-column:3;justify-self:end;width:36px;height:36px;padding:5px;cursor:pointer}
  .menu i{width:26px;height:2px;margin:0;transition:transform .5s cubic-bezier(.22,1,.36,1),background-color .3s ease}
  .menu i+ i{margin-top:8px}
  .menu.is-open i:first-child{transform:translateY(4.5px) rotate(45deg)}
  .menu.is-open i:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  nav,nav.mobile-open{
    display:flex;
    position:fixed;
    inset:0;
    z-index:2;
    min-height:100dvh;
    padding:clamp(120px,20vh,170px) var(--pad) 70px;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:clamp(18px,4vh,34px);
    border:0;
    background:radial-gradient(circle at 78% 28%,#245b7b 0,transparent 38%),var(--navy);
    opacity:0;
    visibility:hidden;
    transform:translateY(-18px);
    transition:opacity .42s ease,visibility .42s ease,transform .55s cubic-bezier(.22,1,.36,1);
  }
  nav.mobile-open{opacity:1;visibility:visible;transform:none}
  nav a,nav.mobile-open a{
    display:block;
    padding:0 0 7px;
    color:var(--ink);
    font:400 clamp(31px,9vw,54px)/1.05 Manrope,sans-serif;
    letter-spacing:-.045em;
    text-transform:none;
    opacity:0;
    transform:translateX(-28px);
    transition:opacity .42s ease,transform .52s cubic-bezier(.22,1,.36,1),color .3s ease;
  }
  nav.mobile-open a{opacity:1;transform:none}
  nav.mobile-open a:nth-child(2){transition-delay:.045s}
  nav.mobile-open a:nth-child(3){transition-delay:.09s}
  nav.mobile-open a:nth-child(4){transition-delay:.135s}
  nav.mobile-open a:nth-child(5){transition-delay:.18s}
  nav .mobile-contact{display:flex;align-items:center;color:var(--red)}
}

@media(min-width:801px){.mobile-contact{display:none}}

@media(prefers-reduced-motion:reduce){
  .contact-link:hover b,.contact-link:focus-visible b{animation:none}
  .menu i,nav,nav a{transition:none!important}
}

/* Version 1.35: mobile hero flow and matching footer-link motion */
.closing .privacy-link{position:relative;padding-bottom:5px}
.closing .privacy-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .38s cubic-bezier(.4,0,.2,1)}
.closing .privacy-link:hover::after,.closing .privacy-link:focus-visible::after{transform:scaleX(1)}

@media(max-width:800px){
  .hero-text{bottom:auto}
}

@media(prefers-reduced-motion:reduce){
  .closing .privacy-link::after{transition:none}
}

/* Version 1.36: policy hierarchy, return-link motion and 404 page */
.policy-updated{width:min(820px,100%);margin-left:auto}
.policy-header .back-to-site{position:relative;padding-bottom:6px}
.policy-header .back-to-site::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left center;transition:transform .38s cubic-bezier(.4,0,.2,1)}
.policy-header .back-to-site:hover::after,.policy-header .back-to-site:focus-visible::after{transform:scaleX(1)}

.error-page{min-height:100vh;overflow:hidden;background:var(--paper);color:#0a1d30}
.error-main{position:relative;min-height:calc(100vh - 96px);display:grid;place-items:center;padding:80px var(--pad)}
.error-content{position:relative;z-index:1;width:min(760px,100%);text-align:center}
.error-kicker{color:var(--red);font:400 13px "DM Mono";letter-spacing:.18em}
.error-code{margin:22px 0 18px;font:300 clamp(130px,19vw,300px)/.9 Manrope,sans-serif;letter-spacing:-.08em}
.error-content p{margin:0 auto;color:#586975;font-size:clamp(17px,1.2vw,21px);line-height:1.65}
.error-actions{display:flex;justify-content:center;gap:14px;margin-top:46px}
.error-actions a{min-width:220px;padding:17px 24px;border:1px solid rgba(10,29,48,.3);color:#0a1d30;text-decoration:none;font:400 13px "DM Mono";letter-spacing:.04em;transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.error-actions a:hover,.error-actions a:focus-visible{border-color:var(--red);background:var(--red);color:#fff}

@media(max-width:700px){
  .policy-updated{width:100%;margin-left:0}
  .error-main{min-height:calc(100vh - 80px);padding-top:60px;padding-bottom:60px}
  .error-actions{flex-direction:column;align-items:stretch}
  .error-actions a{min-width:0}
}

@media(prefers-reduced-motion:reduce){
  .policy-header .back-to-site::after,.error-actions a{transition:none}
}

/* Version 1.37: dates belong to the policy index; 404 remains deliberately clean */
.policy-main>.policy-updated{display:none}

/* Short laptop viewports: preserve the desktop composition without affecting tall screens */
@media(min-width:1000px) and (max-height:850px){
  .hero{padding-top:110px;padding-bottom:70px}
  .hero h1{max-width:58%;font-size:clamp(64px,7vw,108px);transform:translateY(-28px)}
  .globe-wrap{
    width:min(45vw,calc(100vh - 150px),650px);
    height:min(45vw,calc(100vh - 150px),650px);
    right:1.5vw;
    top:50%;
    transform:translateY(-50%);
  }
  .hero-text{bottom:72px;width:min(340px,25vw);font-size:14px;line-height:1.55}
  .round-link{width:88px;height:88px;bottom:84px;font-size:9px}
}

/* Version 1.38.5: wide portfolio artwork and compact responsive stage */
@media(min-width:801px){
  .product-display{min-height:clamp(390px,29vw,500px);padding-top:50px}
  .product-illustration{
    top:58px;
    width:clamp(560px,52vw,850px);
  }
}

@media(min-width:801px) and (max-width:1100px){
  .product-display{min-height:clamp(330px,39vw,410px);padding-top:44px}
  .product-illustration{
    top:58px;
    width:clamp(430px,55vw,590px);
  }
}

@media(min-width:1000px) and (max-height:850px){
  .products{padding-top:100px;padding-bottom:62px}
  .products .section-no{margin-bottom:42px}
  .products .product-tabs{margin-top:42px}
  .products .product-display{min-height:380px;padding-top:42px}
  .products .product-illustration{top:52px;width:clamp(560px,48vw,760px)}
}

/* Version 1.38.6: final alignment refinements */
@media(min-width:801px){
  .hero-text{right:calc(var(--pad) + 3vw)}
}

.product-group h3{font-size:clamp(26px,3vw,35px)}

.contact-office{margin-bottom:clamp(54px,7vh,90px)}
.closing footer>span,
.closing footer .footer-links,
.closing footer .footer-links a{line-height:1}
.closing .privacy-link,
.closing .legal-link{display:inline-flex;align-items:center;padding-bottom:0}
.closing .privacy-link::after,
.closing .legal-link::after{bottom:-6px}

@media(min-width:1061px) and (max-height:850px){
  .flexibility h2{font-size:clamp(52px,4.2vw,66px)}
}

/* Version 1.38.7: allow the mobile FAQ section to grow with open answers */
@media(max-width:800px){
  .flexibility{height:auto}
}
