
:root{
  --bg:#FBFDFE; --white:#fff; --mist:#F3F7FA; --ice:#EAF6FB; --line:#E2E9EF; --line-2:#D3DEE7;
  --ink:#0C1B33; --ink-2:#43506A; --ink-3:#6E7A90;
  --cyan:#2FBDE6; --cyan-ink:#0A7299; --indigo:#141A7E; --indigo-2:#232BA0; --teal:#0B7C78; --green:#05D872; --green-ink:#047A45; --green-wash:#E8FAF1;
  --c-av:#0A8FC0; --c-ra:#2B5BD7; --c-sp:#0B8C7E; --c-ta:#7B3FB5;
  --h:'Manrope','Segoe UI',system-ui,sans-serif; --b:'DM Sans','Segoe UI',system-ui,-apple-system,sans-serif; --m:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --top:38px; --nav:74px;
  --s1:0 1px 2px rgba(12,27,51,.05),0 1px 1px rgba(12,27,51,.03);
  --s2:0 1px 2px rgba(12,27,51,.04),0 12px 32px -14px rgba(12,27,51,.16);
  --s3:0 30px 60px -28px rgba(20,26,126,.28);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav) + 16px)}
body{font-family:var(--b);font-size:1.05rem;line-height:1.7;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
.wrap{max-width:1220px;margin:0 auto;padding:0 2rem}
.skip{position:absolute;left:-999px;top:0;z-index:400;background:var(--indigo);color:#fff;padding:.6rem 1rem}
.skip:focus{left:1rem;top:1rem}
h1,h2,h3,h4{font-family:var(--h);color:var(--ink);letter-spacing:-.025em}

/* Top bar */
.topbar{height:var(--top);background:var(--ink);color:rgba(255,255,255,.78);font-size:.82rem}
.topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1340px}
.topbar span{display:inline-flex;align-items:center;gap:.45rem}
.topbar svg{width:14px;height:14px;stroke:var(--cyan);stroke-width:2;fill:none}
.topbar a{color:#fff;text-decoration:none;font-weight:500}
.topbar a:hover{text-decoration:underline}
.topbar .tb-r{display:flex;gap:1.4rem}

/* Header */
.site-header{position:sticky;top:0;z-index:100;height:var(--nav);background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:0 10px 30px -20px rgba(12,27,51,.35)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:1340px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex-shrink:0}
.brand img{width:44px;height:auto}
.brand b{display:block;font-family:var(--h);font-weight:800;font-size:1.02rem;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.brand small{display:block;font-family:var(--m);font-size:.7rem;color:var(--cyan-ink);letter-spacing:.02em;margin-top:2px}
.nav{display:flex;align-items:center;gap:.15rem}
.nav a{position:relative;font-weight:500;font-size:.93rem;color:var(--ink-2);text-decoration:none;padding:.55rem .75rem;border-radius:8px;white-space:nowrap;transition:color .2s}
.nav a::after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:.2rem;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--cyan),var(--green));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}
.nav a.active{color:var(--ink);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--b);font-weight:700;font-size:.98rem;text-decoration:none;padding:.85rem 1.45rem;border-radius:10px;border:1.5px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s;white-space:nowrap}
.btn svg{width:17px;height:17px;stroke:currentColor;stroke-width:2.2;fill:none;transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.btn-primary{background:var(--indigo);color:#fff;box-shadow:0 10px 22px -12px rgba(20,26,126,.7)}
.btn-primary:hover{background:var(--indigo-2);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--indigo);color:var(--indigo)}
.btn-sm{padding:.6rem 1.05rem;font-size:.9rem}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;align-items:center;justify-content:center}
.menu-btn svg{width:22px;height:22px;stroke:var(--ink);stroke-width:2;fill:none}
.mobile-nav{display:none}

/* Hero */
.hero{position:relative;overflow:hidden;padding:5rem 0 0;background:linear-gradient(180deg,#F1F9FD 0%,var(--bg) 100%)}
.hero-mesh{position:absolute;inset:-20%;pointer-events:none;background:
  radial-gradient(35% 40% at 78% 30%,rgba(47,189,230,.20),transparent 70%),
  radial-gradient(30% 35% at 60% 80%,rgba(5,216,114,.12),transparent 70%),
  radial-gradient(30% 30% at 15% 20%,rgba(20,26,126,.07),transparent 70%);animation:mesh 22s ease-in-out infinite alternate}
@keyframes mesh{to{transform:translate3d(-4%,3%,0) scale(1.05)}}
.hero-grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;opacity:.45;-webkit-mask-image:radial-gradient(70% 60% at 70% 35%,#000,transparent 75%);mask-image:radial-gradient(70% 60% at 70% 35%,#000,transparent 75%)}
#waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:300px;pointer-events:none}
.hero .wrap{position:relative}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.tag{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--m);font-size:.8rem;font-weight:500;color:var(--teal);background:#fff;border:1px solid var(--line);border-radius:100px;padding:.35rem .9rem .35rem .55rem;box-shadow:var(--s1);margin-bottom:1.6rem}
.tag i{width:8px;height:8px;border-radius:50%;background:var(--green);animation:ping 2.6s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(5,216,114,.55)}70%{box-shadow:0 0 0 8px rgba(5,216,114,0)}100%{box-shadow:0 0 0 0 rgba(5,216,114,0)}}
.hero h1{font-weight:800;font-size:clamp(2.4rem,4.5vw,3.85rem);line-height:1.07;letter-spacing:-.04em;margin-bottom:1.4rem}
.hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--indigo) 0%,var(--cyan-ink) 50%,var(--teal) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:1.15rem;line-height:1.75;color:var(--ink-2);max-width:54ch;margin-bottom:2.2rem}
.cta-row{display:flex;gap:.8rem;flex-wrap:wrap}

.orbit{position:relative;width:100%;max-width:500px;aspect-ratio:1;margin-left:auto}
.orbit svg.rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ring{fill:none;stroke:var(--line-2);stroke-width:1}
.ring.dash{stroke-dasharray:3 7}
.spin{transform-origin:250px 250px;animation:spin linear infinite}
.spin.s1{animation-duration:38s}.spin.s2{animation-duration:60s;animation-direction:reverse}.spin.s3{animation-duration:90s}
@keyframes spin{to{transform:rotate(360deg)}}
.core{position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 24px 60px -20px rgba(10,114,153,.45),0 0 0 10px rgba(255,255,255,.6),0 0 0 11px var(--line)}
.core img{width:66%}
.core::before{content:"";position:absolute;inset:-26px;border-radius:50%;background:radial-gradient(circle,rgba(47,189,230,.22),transparent 70%);animation:breathe 5s ease-in-out infinite;z-index:-1}
@keyframes breathe{50%{transform:scale(1.12);opacity:.6}}
.chip{position:absolute;display:inline-flex;align-items:center;gap:.45rem;font-family:var(--m);font-size:.78rem;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:100px;padding:.38rem .8rem;box-shadow:var(--s2);animation:bob 6s ease-in-out infinite}
.chip i{width:7px;height:7px;border-radius:50%}
.chip.k1{left:2%;top:18%}.chip.k1 i{background:var(--cyan)}
.chip.k2{right:0;top:30%;animation-delay:-1.5s}.chip.k2 i{background:var(--indigo)}
.chip.k3{left:6%;bottom:16%;animation-delay:-3s}.chip.k3 i{background:var(--green)}
.chip.k4{right:6%;bottom:8%;animation-delay:-4.5s}.chip.k4 i{background:var(--teal)}
@keyframes bob{50%{transform:translateY(-8px)}}

.stats{position:relative;z-index:1;margin:4.5rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--s2)}
.stats div{padding:1.6rem 1.8rem;position:relative}
.stats div+div{border-left:1px solid var(--line)}
.stats strong{display:block;font-family:var(--h);font-weight:800;font-size:2.3rem;letter-spacing:-.04em;line-height:1.1;color:var(--indigo)}
.stats span{font-size:.92rem;color:var(--ink-3);font-weight:500}
.hero-foot{height:8.5rem}

/* Sections */
.section{position:relative;padding:6.5rem 0}
.section.alt{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.label{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--m);font-size:.82rem;font-weight:500;color:var(--cyan-ink);margin-bottom:1rem}
.label b{font-weight:600;color:var(--ink-3)}
.label::after{content:"";width:40px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}
.sh{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem 4rem;align-items:end;margin-bottom:3.2rem}
.sh h2{font-weight:800;font-size:clamp(1.95rem,3.3vw,2.75rem);line-height:1.12}
.sh p{font-size:1.1rem;color:var(--ink-2)}
.prose p{color:var(--ink-2);margin-bottom:1.1rem}
.prose p:last-child{margin-bottom:0}

/* Overview */
.ov{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.ov .prose p:first-child{font-size:1.2rem;line-height:1.65;color:var(--ink);font-family:var(--h);font-weight:600;letter-spacing:-.01em}
.pills4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:3.5rem}
.pl{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.6rem 1.4rem;overflow:hidden;transition:box-shadow .3s,transform .3s}
.pl::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--cyan),var(--green));transform:scaleX(.18);transform-origin:left;transition:transform .5s}
.pl:hover{box-shadow:var(--s2);transform:translateY(-3px)}
.pl:hover::before{transform:scaleX(1)}
.ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--ice);margin-bottom:1rem}
.ico svg{width:22px;height:22px;stroke:var(--cyan-ink);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pl h3{font-size:1.03rem;font-weight:700;margin-bottom:.3rem}
.pl p{font-size:.95rem;color:var(--ink-2);line-height:1.55}
.ov-side{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:2rem;box-shadow:var(--s2);overflow:hidden}
.ov-side h3{font-size:1.1rem;font-weight:700;margin-bottom:1.2rem}
.ov-side canvas{display:block;width:100%;height:220px;border-radius:12px;background:var(--mist)}
.legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;font-family:var(--m);font-size:.78rem;color:var(--ink-3)}
.legend span{display:inline-flex;align-items:center;gap:.4rem}
.legend i{width:9px;height:9px;border-radius:50%}

/* Products */
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.prod{--a:var(--cyan);position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.8rem;transition:transform .3s,box-shadow .3s,border-color .3s}
.prod:hover{transform:translateY(-5px);box-shadow:var(--s3);border-color:color-mix(in srgb,var(--a) 35%,var(--line))}
.prod-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.plogo{position:relative;width:96px;height:96px;border-radius:20px;background:#fff;padding:7px;border:1px solid var(--line)}
.plogo::before{content:"";position:absolute;inset:-5px;border-radius:24px;background:conic-gradient(from var(--ang,0deg),transparent 0 60%,var(--a) 80%,transparent 100%);z-index:-1;opacity:0;transition:opacity .3s}
.prod:hover .plogo::before{opacity:1;animation:rot 3s linear infinite}
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes rot{to{--ang:360deg}}
.plogo img{width:100%;height:100%;object-fit:contain;border-radius:14px}
.ptag{font-family:var(--m);font-size:.75rem;font-weight:500;color:var(--a);background:color-mix(in srgb,var(--a) 9%,#fff);border:1px solid color-mix(in srgb,var(--a) 22%,#fff);border-radius:100px;padding:.25rem .7rem;text-align:right}
.prod h3{font-size:1.5rem;font-weight:800;margin-bottom:.6rem}
.prod p{color:var(--ink-2);font-size:.98rem;line-height:1.65;flex:1;margin-bottom:1.4rem}
.plink{align-self:flex-start;display:inline-flex;align-items:center;gap:.45rem;font-weight:700;font-size:.95rem;color:var(--a);text-decoration:none;padding-bottom:3px;border-bottom:2px solid color-mix(in srgb,var(--a) 30%,transparent);transition:gap .2s,border-color .2s}
.plink:hover{gap:.75rem;border-color:var(--a)}
.plink svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.2;fill:none}
.prod.wide{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;gap:2.2rem;align-items:center;padding:2.2rem;background:linear-gradient(110deg,#fff 55%,color-mix(in srgb,var(--a) 7%,#fff))}
.prod.wide .plogo{width:128px;height:128px}
.prod.wide p{margin-bottom:0;max-width:70ch}
.prod.wide .ptag{display:inline-block;margin-bottom:.7rem}
.prod.wide .plink{align-self:center}

/* Services */
.svcs{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line-2)}
.svc{display:grid;grid-template-columns:44px 1fr;gap:1rem;padding:2.2rem 2rem 2.2rem 0;border-bottom:1px solid var(--line-2);transition:background .3s}
.svc:nth-child(odd){padding-right:3rem;border-right:1px solid var(--line-2)}
.svc:nth-child(even){padding-left:3rem}
.num{font-family:var(--m);font-size:.9rem;font-weight:600;color:var(--cyan-ink);padding-top:.2rem}
.svc h3{font-size:1.2rem;font-weight:700;margin-bottom:.8rem;line-height:1.3}
.svc ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}
.svc li{font-size:.92rem;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:8px;padding:.35rem .75rem;line-height:1.4;transition:border-color .2s,color .2s}
.svc:hover li{border-color:color-mix(in srgb,var(--cyan) 45%,var(--line))}

/* Cases */
.cases{display:flex;flex-direction:column;gap:1.2rem}
.case{display:grid;grid-template-columns:300px 1fr;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:box-shadow .3s}
.case:hover{box-shadow:var(--s2)}
.case-meta{padding:2rem;background:linear-gradient(160deg,var(--ice),#fff);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.8rem}
.case-meta .cn{font-family:var(--m);font-size:.8rem;color:var(--ink-3)}
.case-meta .ct{align-self:flex-start;font-family:var(--m);font-size:.76rem;font-weight:500;color:var(--teal);background:#fff;border:1px solid var(--line);border-radius:100px;padding:.2rem .7rem}
.case-meta h3{font-size:1.22rem;font-weight:800;line-height:1.3}
.case-steps{display:grid;grid-template-columns:repeat(3,1fr)}
.cs{padding:2rem 1.7rem;position:relative}
.cs+.cs{border-left:1px dashed var(--line-2)}
.cs b{display:flex;align-items:center;gap:.5rem;font-family:var(--m);font-size:.78rem;font-weight:600;color:var(--ink-3);margin-bottom:.7rem}
.cs b i{width:8px;height:8px;border-radius:50%;background:var(--cyan)}
.cs:nth-child(2) b i{background:var(--indigo)}
.cs.out b i{background:var(--green)}
.cs.out b{color:var(--green-ink)}
.cs p{font-size:.97rem;color:var(--ink-2);line-height:1.6}
.cs.out p{color:var(--ink);font-weight:500}

/* Team */
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-bottom:3rem}
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.mem{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.6rem 1.4rem 1.3rem;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.mem:hover{transform:translateY(-4px);box-shadow:var(--s2)}
.av{position:relative;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin-bottom:1.1rem;font-family:var(--h);font-weight:800;font-size:1.1rem;color:var(--indigo);background:var(--ice)}
.av::before{content:"";position:absolute;inset:-3px;border-radius:50%;padding:2px;background:conic-gradient(var(--cyan),var(--green),var(--indigo),var(--cyan));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.mem h3{font-size:1.03rem;font-weight:700;line-height:1.3}
.role{font-weight:700;font-size:.86rem;color:var(--cyan-ink);margin:.2rem 0 .75rem;line-height:1.4}
.mem p{font-size:.92rem;color:var(--ink-2);line-height:1.6;flex:1}
.loc{display:flex;align-items:center;gap:.4rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line);font-family:var(--m);font-size:.76rem;color:var(--ink-3)}
.loc svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;flex-shrink:0}

/* Press */
.press{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.pr{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:2.2rem;transition:transform .3s,box-shadow .3s}
.pr:hover{transform:translateY(-4px);box-shadow:var(--s2)}
.pr h3{font-size:1.35rem;font-weight:800;margin:.2rem 0 .5rem}
.pr p{color:var(--ink-2);flex:1;margin-bottom:1.5rem}

/* Careers */
.careers{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.careers h3{font-size:1.3rem;font-weight:800;margin-bottom:1rem}
.careers .prose strong{color:var(--indigo)}
.cv{margin-top:1.6rem;display:flex;align-items:center;gap:.8rem;padding:1.1rem 1.3rem;border-radius:14px;background:var(--ice);border:1px solid color-mix(in srgb,var(--cyan) 25%,#fff)}
.cv svg{width:20px;height:20px;stroke:var(--cyan-ink);stroke-width:2;fill:none;flex-shrink:0}
.cv a{color:var(--indigo);font-weight:700}
.jobs{list-style:none;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.jobs li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;border-bottom:1px solid var(--line);transition:background .2s}
.jobs li:last-child{border-bottom:0}
.jobs li:hover{background:var(--mist)}
.jobs span{font-weight:600}
.jobs a{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;font-size:.88rem;color:var(--indigo);text-decoration:none}
.jobs a svg{width:15px;height:15px;stroke:currentColor;stroke-width:2.2;fill:none;transition:transform .2s}
.jobs li:hover a svg{transform:translateX(3px)}

/* Contact */
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:3.5rem;align-items:start}
.ci{display:flex;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}
.ci:first-child{padding-top:0}
.ci .ico{margin:0;flex-shrink:0}
.ci strong{display:block;font-family:var(--h);font-weight:700;font-size:.98rem}
.ci span,.ci a{color:var(--ink-2)}
.ci a{color:var(--cyan-ink);font-weight:700}
.intl{margin-top:1.6rem}
.intl strong{display:block;font-family:var(--h);font-weight:700;margin-bottom:.7rem}
.intl a{display:inline-flex;align-items:center;gap:.45rem;margin:0 .5rem .5rem 0;padding:.5rem .95rem;border-radius:100px;border:1px solid var(--line-2);background:#fff;color:var(--ink);font-weight:600;font-size:.93rem;text-decoration:none;transition:border-color .2s,color .2s}
.intl a:hover{border-color:var(--cyan-ink);color:var(--cyan-ink)}
.intl a svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none}
.form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:2.3rem;box-shadow:var(--s2)}
.form h3{font-size:1.35rem;font-weight:800;margin-bottom:1.4rem}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.f{margin-bottom:1.1rem}
.f label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.4rem}
.f input,.f textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--mist);border:1.5px solid var(--line);border-radius:12px;padding:.8rem 1rem;transition:border-color .2s,box-shadow .2s,background .2s}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--cyan-ink);background:#fff;box-shadow:0 0 0 4px rgba(47,189,230,.16)}
.f textarea{min-height:140px;resize:vertical}
.f .err{display:none;color:#B42318;font-size:.85rem;margin-top:.35rem;font-weight:600}
.f.bad input,.f.bad textarea{border-color:#B42318}
.f.bad .err{display:block}
.form .btn{width:100%}
.fstat{margin-top:1rem;font-size:.93rem;color:var(--green-ink);font-weight:700;min-height:1.4em}
.consent-note{margin-top:.9rem;font-size:.85rem;color:var(--ink-3)}
.consent-note a{color:var(--cyan-ink);font-weight:600}

/* CTA */
.cta{position:relative;overflow:hidden;border-radius:26px;padding:3.4rem;background:linear-gradient(115deg,#EAF6FB 0%,#F4FBF7 100%);border:1px solid var(--line);display:grid;grid-template-columns:1.4fr auto;gap:2rem;align-items:center}
.cta canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cta > div{position:relative}
.cta h2{font-weight:800;font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.15;margin-bottom:.6rem}
.cta p{color:var(--ink-2);font-size:1.06rem}
.cta .cta-row{position:relative}

/* Page hero (sub-pages) */
.page-hero{position:relative;overflow:hidden;padding:4.5rem 0 3.5rem;background:linear-gradient(180deg,#F1F9FD,var(--bg));border-bottom:1px solid var(--line)}
.page-hero .wrap{position:relative}
.crumbs{font-family:var(--m);font-size:.82rem;color:var(--ink-3);margin-bottom:1.2rem}
.crumbs a{color:var(--cyan-ink);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.page-hero h1{font-weight:800;font-size:clamp(2.2rem,4.2vw,3.4rem);line-height:1.1;letter-spacing:-.04em;max-width:20ch;margin-bottom:1rem}
.page-hero .lede{font-size:1.15rem;color:var(--ink-2);max-width:64ch}
.meta{display:inline-block;margin-top:1.2rem;font-family:var(--m);font-size:.8rem;color:var(--ink-3);border:1px solid var(--line);border-radius:100px;padding:.3rem .85rem;background:#fff}
.doc{display:grid;grid-template-columns:250px 1fr;gap:4rem;padding:3.5rem 0 6rem}
.toc{position:sticky;top:calc(var(--nav) + 24px);align-self:start;border-left:1px solid var(--line-2);padding-left:1.1rem}
.toc strong{display:block;font-family:var(--m);font-size:.8rem;font-weight:600;color:var(--ink-3);margin-bottom:.7rem}
.toc a{display:block;padding:.32rem 0;color:var(--ink-2);text-decoration:none;font-size:.93rem;font-weight:500;transition:color .2s}
.toc a:hover,.toc a.on{color:var(--indigo)}
.toc a.on{font-weight:700}

/* Shared document typography (pages + popup) */
.doc-body h2{font-weight:800;font-size:1.5rem;margin:2.8rem 0 .9rem;scroll-margin-top:calc(var(--nav) + 20px)}
.doc-body h2:first-child{margin-top:0}
.doc-body h3{font-weight:700;font-size:1.08rem;margin:1.5rem 0 .5rem}
.doc-body p,.doc-body li{color:var(--ink-2);max-width:76ch}
.doc-body p{margin-bottom:1rem}
.doc-body ul{margin:0 0 1rem 1.2rem}
.doc-body li{margin-bottom:.4rem}
.doc-body a{color:var(--cyan-ink);font-weight:700}
.doc-body strong{color:var(--ink)}
.table-wrap{overflow-x:auto;margin:1.2rem 0 1.6rem;border:1px solid var(--line);border-radius:14px;background:#fff}
table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:620px}
th,td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--h);font-weight:700;font-size:.88rem;background:var(--mist)}
td{color:var(--ink-2)}
tr:last-child td{border-bottom:0}
td code{font-family:var(--m);font-size:.82rem;background:var(--ice);padding:.12rem .45rem;border-radius:6px;color:var(--indigo)}
.doc-body .btn-secondary{display:inline-flex;align-items:center;gap:.5rem;font:inherit;font-weight:700;font-size:.93rem;color:var(--indigo);background:#fff;border:1.5px solid var(--line-2);border-radius:10px;padding:.65rem 1.1rem;cursor:pointer;text-decoration:none}
.doc-body .btn-secondary:hover{border-color:var(--indigo)}

/* CSR content */
.csr-pillars{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;margin-top:1rem}
.csr-pillar{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.9rem;transition:transform .3s,box-shadow .3s}
.csr-pillar:hover{transform:translateY(-3px);box-shadow:var(--s2)}
.csr-pillar .icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:var(--green-wash);margin-bottom:1rem}
.csr-pillar .icon svg{width:23px;height:23px;stroke:var(--green-ink);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.csr-pillar h3{font-weight:800;font-size:1.18rem;margin:0 0 .55rem}
.csr-pillar p{margin-bottom:.9rem}
.csr-pillar ul{list-style:none;margin:0}
.csr-pillar li{position:relative;padding:.28rem 0 .28rem 1.5rem;font-size:.97rem}
.csr-pillar li::before{content:"";position:absolute;left:0;top:.72rem;width:8px;height:8px;border-radius:2px;transform:rotate(45deg);background:linear-gradient(135deg,var(--cyan),var(--green))}
.csr-pillar.feature{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;background:linear-gradient(120deg,var(--ice),var(--green-wash));border-color:transparent}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1rem}
.principles div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;border-top:3px solid var(--cyan)}
.principles div:nth-child(2){border-top-color:var(--indigo)}
.principles div:nth-child(3){border-top-color:var(--green)}
.principles strong{display:block;font-family:var(--h);font-weight:800;margin-bottom:.35rem}
.principles p{font-size:.96rem;margin:0}
.cta-band{margin-top:3.5rem;padding:2.4rem;border-radius:20px;background:linear-gradient(115deg,#EAF6FB,#F4FBF7);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-band h3{font-weight:800;font-size:1.45rem;margin:0 0 .3rem}
.cta-band p{margin:0}
.cta-band .btn{background:var(--indigo);color:#fff;font-weight:700}
.doc-body .cta-band a.btn{color:#fff}

/* Footer */
.site-footer{position:relative;background:#fff;border-top:1px solid var(--line);padding:4.5rem 0 2rem;overflow:hidden}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:linear-gradient(90deg,var(--indigo),var(--cyan),var(--green));background-size:200% 100%;animation:sweep 8s linear infinite}
@keyframes sweep{to{background-position:200% 0}}
.fg{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.3fr;gap:2.5rem}
.fb p{margin-top:1rem;color:var(--ink-2);font-size:.95rem;max-width:34ch}
.fc strong{display:block;font-family:var(--m);font-size:.8rem;font-weight:600;color:var(--ink-3);margin-bottom:.9rem}
.fc a,.fc button,.fc span{display:block;color:var(--ink-2);text-decoration:none;font-size:.95rem;padding:.26rem 0;background:none;border:0;font:inherit;font-size:.95rem;text-align:left;cursor:pointer}
.fc span{cursor:default}
.fc a:hover,.fc button:hover{color:var(--indigo)}
.fbot{margin-top:3.2rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.88rem;color:var(--ink-3)}
.fbot nav{display:flex;gap:1.2rem;flex-wrap:wrap}
.fbot a,.fbot button{color:var(--ink-2);text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}
.fbot a:hover,.fbot button:hover{color:var(--indigo);text-decoration:underline}

/* Reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

/* Consent popup */
.consent{position:fixed;left:50%;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:300;width:min(760px,calc(100% - 2rem));transform:translate(-50%,30px);opacity:0;visibility:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .35s,visibility .35s;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 70px -24px rgba(12,27,51,.4);padding:1.5rem 1.6rem;display:grid;grid-template-columns:auto 1fr;gap:1.2rem}
.consent.show{transform:translate(-50%,0);opacity:1;visibility:visible}
.consent .cico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--ice)}
.consent .cico svg{width:24px;height:24px;stroke:var(--cyan-ink);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.consent h2{font-size:1.08rem;font-weight:800;margin-bottom:.3rem}
.consent p{font-size:.94rem;color:var(--ink-2);line-height:1.55;margin-bottom:1rem}
.consent .links{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.linkchip{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.86rem;font-weight:700;color:var(--cyan-ink);background:var(--ice);border:1px solid color-mix(in srgb,var(--cyan) 25%,#fff);border-radius:100px;padding:.35rem .85rem;cursor:pointer;text-decoration:none}
.linkchip:hover{background:#fff;border-color:var(--cyan-ink)}
.linkchip svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}
.consent .acts{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.txtbtn{background:none;border:0;font:inherit;font-weight:700;font-size:.9rem;color:var(--indigo);cursor:pointer;padding:.5rem .3rem;text-decoration:underline;text-underline-offset:3px}

/* Modals */
.modal{position:fixed;inset:0;z-index:350;display:grid;place-items:center;padding:1rem;background:rgba(12,27,51,.42);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.modal.show{opacity:1;visibility:visible}
.sheet{width:100%;max-width:820px;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 40px 100px -30px rgba(12,27,51,.5);transform:translateY(16px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.modal.show .sheet{transform:none}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#F5FAFD,#fff)}
.ptabs{display:flex;gap:.3rem;background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:.25rem}
.ptab{font:inherit;font-weight:700;font-size:.9rem;color:var(--ink-2);background:none;border:0;border-radius:9px;padding:.5rem 1rem;cursor:pointer}
.ptab[aria-selected="true"]{background:#fff;color:var(--indigo);box-shadow:var(--s1)}
.xbtn{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;flex-shrink:0}
.xbtn svg{width:18px;height:18px;stroke:var(--ink);stroke-width:2.2;fill:none}
.sheet-body{overflow:auto;padding:2rem 2.2rem}
.sheet-body .pt{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.4rem}
.sheet-body .pl-lede{color:var(--ink-2);margin-bottom:.4rem}
.sheet-body .meta{margin:0 0 1.8rem}
.sheet-body .meta + h2{margin-top:.4rem}
.sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.4rem;border-top:1px solid var(--line);background:var(--mist)}
.sheet-foot a{font-weight:700;color:var(--cyan-ink);font-size:.93rem}
.prefcard{width:100%;max-width:560px;max-height:calc(100vh - 2rem);overflow:auto;background:#fff;border-radius:22px;padding:2rem;transform:translateY(16px);transition:transform .35s}
.modal.show .prefcard{transform:none}
.prefcard h2{font-size:1.35rem;font-weight:800;margin-bottom:.4rem}
.prefcard > p{color:var(--ink-2);font-size:.96rem;margin-bottom:1.2rem}
.pref{display:flex;justify-content:space-between;gap:1.2rem;padding:1rem 0;border-top:1px solid var(--line)}
.pref strong{display:block;font-family:var(--h);font-weight:700;font-size:.97rem}
.pref span{display:block;color:var(--ink-2);font-size:.9rem;line-height:1.5}
.sw{position:relative;flex-shrink:0;width:48px;height:28px}
.sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.sw i{position:absolute;inset:0;border-radius:100px;background:#C8D3DD;transition:background .2s}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.sw input:checked+i{background:var(--teal)}
.sw input:checked+i::after{transform:translateX(20px)}
.sw input:disabled{cursor:not-allowed}.sw input:disabled+i{opacity:.55}
.sw input:focus-visible+i{outline:3px solid var(--cyan);outline-offset:2px}
.macts{display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line)}

/* Responsive */
@media (max-width:1240px){
  .nav,.head-cta{display:none}
  .menu-btn{display:inline-flex}
  .mobile-nav{display:block;position:fixed;top:calc(var(--nav));left:0;right:0;z-index:99;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 20px 40px -20px rgba(12,27,51,.3);padding:.5rem 1.5rem 1.5rem;max-height:calc(100vh - var(--nav));overflow:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility .2s}
  .mobile-nav.open{opacity:1;visibility:visible;transform:none}
  .mobile-nav a{display:block;padding:.85rem 0;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink);text-decoration:none}
  .mobile-nav a.active{color:var(--cyan-ink)}
  .mobile-nav a:last-child{border-bottom:0}
}
@media (max-width:1024px){
  .topbar .tb-l{display:none}.topbar .wrap{justify-content:center}
  .hero-grid,.ov,.careers,.contact,.about-intro,.sh,.cta{grid-template-columns:1fr;gap:2.5rem}
  .orbit{margin:0 auto;max-width:440px}
  .pills4{grid-template-columns:1fr 1fr}
  .prods{grid-template-columns:1fr 1fr}
  .prod.wide{grid-template-columns:auto 1fr}
  .prod.wide .plink{grid-column:2}
  .svcs{grid-template-columns:1fr}
  .svc:nth-child(odd){padding-right:0;border-right:0}
  .svc:nth-child(even){padding-left:0}
  .case{grid-template-columns:1fr}
  .case-meta{border-right:0;border-bottom:1px solid var(--line)}
  .team{grid-template-columns:1fr 1fr}
  .fg{grid-template-columns:1fr 1fr 1fr}.fb{grid-column:1/-1}
  .doc{grid-template-columns:1fr;gap:2rem}
  .toc{position:static}
  .csr-pillar.feature{grid-template-columns:1fr;gap:1rem}
}
@media (max-width:760px){
  :root{--nav:66px}
  .wrap{padding:0 1.25rem}
  .topbar{display:none}
  .section{padding:4.5rem 0}
  .hero{padding-top:3rem}
  .chip{font-size:.7rem}
  .stats{grid-template-columns:1fr 1fr}
  .stats div:nth-child(3){border-left:0}
  .stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .pills4,.prods,.press,.team,.csr-pillars,.principles,.row{grid-template-columns:1fr}
  .prod.wide{grid-template-columns:1fr;gap:1.2rem}
  .prod.wide .plink{grid-column:auto}
  .case-steps{grid-template-columns:1fr}
  .cs+.cs{border-left:0;border-top:1px dashed var(--line-2)}
  .form{padding:1.5rem}
  .cta{padding:2rem}
  .fg{grid-template-columns:1fr 1fr}
  .consent{grid-template-columns:1fr;padding:1.3rem}
  .consent .cico{display:none}
  .consent .acts .btn{flex:1}
  .sheet-body{padding:1.4rem}
  .ptab{padding:.45rem .7rem;font-size:.84rem}
  .brand b{font-size:.93rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
  .rv{opacity:1;transform:none}
}


/* =================== Refinements =================== */
:root{--ease:cubic-bezier(.2,.75,.2,1)}
body{padding-bottom:env(safe-area-inset-bottom,0px)}
.site-header{top:env(safe-area-inset-top,0px)}
.site-header .progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--indigo),var(--cyan),var(--green));transform-origin:left;transform:scaleX(var(--p,0));opacity:.9}
.topbar .soc{display:inline-flex;gap:.45rem;margin-left:.4rem}
.topbar .soc a{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:rgba(255,255,255,.08)}
.topbar .soc a:hover{background:rgba(255,255,255,.18);text-decoration:none}
.topbar .soc svg{width:12px;height:12px;fill:#fff;stroke:none}

/* hero: orbit refined with depth parallax and a sweeping arc */
.hero{padding-top:4.5rem}
.hero h1{font-size:clamp(2.2rem,3.7vw,3.15rem);max-width:19ch}
.nav a{padding:.55rem .62rem;font-size:.91rem}
.site-header .wrap{gap:1.1rem}
@media (max-width:1420px){.nav a{padding:.5rem .48rem;font-size:.88rem}.brand b{font-size:.95rem}}
.orbit{transition:transform .6s var(--ease);transform:translate3d(calc(var(--mx,0)*-10px),calc(var(--my,0)*-10px),0)}
.orbit .chip{transition:translate .6s var(--ease);translate:calc(var(--mx,0)*18px) calc(var(--my,0)*18px)}
.orbit .core{transition:translate .6s var(--ease);translate:calc(-50% + var(--mx,0)*6px) calc(-50% + var(--my,0)*6px);transform:none}
.sweep{transform-origin:250px 250px;animation:spin 14s linear infinite}
.chip{font-family:var(--b);font-weight:700;font-size:.82rem;padding:.42rem .9rem .42rem .45rem;gap:.55rem}
.chip img{width:24px;height:24px;border-radius:7px;object-fit:contain;background:#fff;border:1px solid var(--line)}
.chip i{display:none}
.chip.k1{left:-2%;top:16%}.chip.k2{right:-4%;top:26%}.chip.k3{left:0;bottom:18%}.chip.k4{right:0;bottom:7%}
.pulse-dot{animation:pulse 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes pulse{50%{transform:scale(1.8);opacity:.35}}
.stats strong{font-size:2.1rem}
#waves{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}

/* section rhythm */
.section{padding:6rem 0}
.rv{transition:opacity .9s var(--ease),transform .9s var(--ease)}

/* spotlight that follows the pointer on cards */
.spot{position:relative;isolation:isolate}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--x,50%) var(--y,50%),rgba(47,189,230,.10),transparent 70%)}
.spot:hover::after{opacity:1}

/* products: 2x2 */
.prods{grid-template-columns:repeat(2,1fr)}
.prod p{max-width:58ch}

/* services track switch */
.track-switch{display:inline-flex;gap:.3rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.3rem;box-shadow:var(--s1);margin-bottom:2.4rem;position:relative}
.track-switch .ind{position:absolute;top:.3rem;bottom:.3rem;left:0;border-radius:10px;background:var(--indigo);box-shadow:0 10px 22px -12px rgba(20,26,126,.7);transition:transform .45s var(--ease),width .45s var(--ease);z-index:0}
.track-switch button{position:relative;z-index:1;font:inherit;font-weight:700;font-size:.97rem;color:var(--ink-2);background:none;border:0;border-radius:10px;padding:.8rem 1.4rem;cursor:pointer;transition:color .3s;display:flex;align-items:center;gap:.6rem;text-align:left}
.track-switch button small{display:block;font-family:var(--m);font-weight:500;font-size:.72rem;color:var(--ink-3);transition:color .3s}
.track-switch button[aria-selected="true"]{color:#fff}
.track-switch button[aria-selected="true"] small{color:rgba(255,255,255,.7)}
.track{display:none}
.track.on{display:block;animation:fadeup .6s var(--ease)}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.track-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:end;margin-bottom:2rem}
.track-intro h3{font-size:1.6rem;font-weight:800}
.track-intro p{color:var(--ink-2)}
.models{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:2.6rem}
.models .pl h3{font-size:1.05rem}
.sub-h{font-family:var(--m);font-size:.82rem;font-weight:600;color:var(--ink-3);margin:0 0 .2rem}
.svc .lead-sm{font-size:.97rem;color:var(--ink-2);line-height:1.65}
.svc .subt{font-family:var(--m);font-size:.8rem;font-weight:600;color:var(--cyan-ink);margin:-.3rem 0 .8rem}
.mw{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.mw div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;transition:border-color .2s}
.svc:hover .mw div{border-color:color-mix(in srgb,var(--cyan) 45%,var(--line))}
.mw b{display:block;font-family:var(--h);font-size:.95rem;margin-bottom:.25rem}
.mw p{font-size:.9rem;color:var(--ink-2);line-height:1.55}
.svc.full{grid-column:1/-1;border-right:0!important;padding-right:0!important}
.track-cta{margin-top:2.4rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:1.4rem 1.6rem;border-radius:16px;background:linear-gradient(115deg,var(--ice),var(--green-wash));border:1px solid var(--line)}
.track-cta p{color:var(--ink);font-weight:600}

/* team */
.team{grid-template-columns:repeat(3,1fr)}
.mem.ph,.ph-card{border-style:dashed;background:repeating-linear-gradient(135deg,#fff,#fff 12px,#FAFCFE 12px,#FAFCFE 24px)}
.tag-ph{display:inline-block;align-self:flex-start;font-family:var(--m);font-size:.72rem;font-weight:600;color:#8A5A00;background:#FFF4DA;border:1px solid #F3DCA0;border-radius:100px;padding:.15rem .65rem;margin-bottom:.8rem}
.advisory{margin-top:3rem;display:grid;grid-template-columns:.8fr 1.2fr;gap:2.5rem;align-items:center;padding:2rem;border-radius:22px;background:linear-gradient(115deg,var(--ice),#fff 60%);border:1px solid var(--line)}
.advisory h3{font-size:1.4rem;font-weight:800;margin-bottom:.4rem}
.advisory > div > p{color:var(--ink-2)}
.csr-link{margin-top:1.4rem;display:inline-flex}

/* partnerships */
.partners{display:grid;grid-template-columns:1.2fr .8fr;gap:1.5rem}
.partner{background:#fff;border:1px solid var(--line);border-radius:20px;padding:2.2rem;transition:transform .3s,box-shadow .3s}
.partner:hover{transform:translateY(-4px);box-shadow:var(--s2)}
.partner .pmark{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}
.partner .pmark span{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-family:var(--h);font-weight:800;color:#fff;background:linear-gradient(135deg,var(--indigo),var(--cyan-ink))}
.partner h3{font-size:1.3rem;font-weight:800}
.partner .site{font-family:var(--m);font-size:.82rem;color:var(--cyan-ink);font-weight:500}
.partner p{color:var(--ink-2)}
.partner.become{background:linear-gradient(140deg,var(--indigo) 0%,#1B2AA0 55%,#0A6F9A 100%);border-color:transparent;color:#D8DEFA;position:relative;overflow:hidden}
.partner.become h3{color:#fff;margin-bottom:.6rem}
.partner.become p{color:#C9D1F5;margin-bottom:1.5rem}
.partner.become .btn{background:#fff;color:var(--indigo)}
.partner.become canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.7}
.partner.become > *:not(canvas){position:relative}

/* news: mini LinkedIn */
.lif{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:start}
.li-co{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--s1)}
.li-co .cover{height:78px;background:linear-gradient(120deg,var(--indigo),#1E5FB8 55%,var(--cyan));position:relative;overflow:hidden}
.li-co .cover::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-100%);animation:shine 5s ease-in-out infinite}
@keyframes shine{60%,100%{transform:translateX(100%)}}
.li-co .bd{padding:0 1.3rem 1.3rem}
.li-co .av2{width:68px;height:68px;border-radius:14px;background:#fff;border:3px solid #fff;box-shadow:var(--s2);margin-top:-34px;padding:5px}
.li-co h3{font-size:1.08rem;font-weight:800;margin:.7rem 0 .1rem}
.li-co .sub{font-size:.85rem;color:var(--ink-3)}
.li-co .acts{display:grid;gap:.6rem;margin-top:1.1rem}
.btn-li{background:#0A66C2;color:#fff}.btn-li:hover{background:#004182}
.btn-yt{background:#fff;color:var(--ink);border-color:var(--line-2)}.btn-yt:hover{border-color:#FF0000}
.btn-li svg,.btn-yt svg{fill:currentColor;stroke:none!important;width:17px;height:17px}
.btn-yt svg{fill:#FF0000}
.btn-li:hover svg,.btn-yt:hover svg{transform:none}
.feed-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}
.preview-note{font-family:var(--m);font-size:.74rem;color:#8A5A00;background:#FFF4DA;border:1px solid #F3DCA0;border-radius:100px;padding:.2rem .7rem}
.feed-nav{display:flex;gap:.5rem}
.feed-nav button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:#fff;cursor:pointer;display:grid;place-items:center;transition:border-color .2s}
.feed-nav button:hover{border-color:var(--indigo)}
.feed-nav svg{width:16px;height:16px;stroke:var(--indigo);stroke-width:2.2;fill:none}
.feed-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2.4rem)/3);gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 2px 12px}
.feed-track::-webkit-scrollbar{display:none}
.post{scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);transition:transform .3s,box-shadow .3s}
.post:hover{transform:translateY(-4px);box-shadow:var(--s2)}
.post .ph{display:flex;gap:.6rem;align-items:center;padding:.85rem .9rem .6rem}
.post .ph img{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);padding:3px;background:#fff}
.post .ph b{display:block;font-size:.85rem;line-height:1.25}
.post .ph span{display:block;font-size:.74rem;color:var(--ink-3)}
.post .ph .in{margin-left:auto;width:19px;height:19px;fill:#0A66C2;flex-shrink:0}
.post .tx{margin:0 .9rem .75rem;font-size:.87rem;color:var(--ink-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post .thumb{aspect-ratio:1.91/1;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.post .thumb svg,.post .thumb img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s var(--ease)}
.post:hover .thumb svg,.post:hover .thumb img{transform:scale(1.04)}
.post .ft{display:flex;align-items:center;gap:.4rem;padding:.6rem .9rem;font-size:.76rem;color:var(--ink-3)}
.post .rx{display:flex}
.post .rx i{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #fff;margin-left:-4px}
.post .rx i:first-child{margin-left:0;background:#378FE9}.post .rx i:nth-child(2){background:#DF704D}.post .rx i:nth-child(3){background:#6DAE4F}
.post .rx svg{width:9px;height:9px;fill:#fff}
.post .vw{margin-left:auto;font-weight:700;color:#0A66C2}
.li-live:empty{display:none}
.press{margin-top:2.5rem}

/* careers */
.jobs a{cursor:pointer}
.intern{margin-top:3rem;display:grid;grid-template-columns:1.3fr .7fr;gap:2.5rem;padding:2.4rem;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:var(--s1);position:relative;overflow:hidden}
.intern::before{content:"";position:absolute;right:-120px;top:-140px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(47,189,230,.16),transparent 70%);animation:breathe 7s ease-in-out infinite}
.intern > *{position:relative}
.intern h3{font-size:1.45rem;font-weight:800;margin-bottom:.8rem}
.intern .prose p{margin-bottom:.8rem}
.intern .kv{border-left:1px solid var(--line);padding-left:2rem;display:grid;gap:1.1rem;align-content:start}
.intern .kv b{display:block;font-family:var(--m);font-size:.76rem;font-weight:600;color:var(--ink-3);margin-bottom:.1rem}
.intern .kv a{color:var(--cyan-ink);font-weight:700;word-break:break-all}
.toast{position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--ink);color:#fff;border-radius:14px;padding:.85rem 1rem .85rem 1.2rem;font-size:.92rem;z-index:320;opacity:0;visibility:hidden;transition:opacity .25s,transform .35s var(--ease),visibility .25s;display:flex;gap:1rem;align-items:center;max-width:calc(100% - 2rem);box-shadow:0 30px 60px -20px rgba(12,27,51,.5)}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.toast button{background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:8px;padding:.45rem .8rem;font:inherit;font-weight:700;font-size:.84rem;cursor:pointer;white-space:nowrap}
.toast button:hover{background:rgba(255,255,255,.24)}

/* contact */
.f select{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--mist);border:1.5px solid var(--line);border-radius:12px;padding:.8rem 1rem}
.f select:focus{outline:none;border-color:var(--cyan-ink);background:#fff;box-shadow:0 0 0 4px rgba(47,189,230,.16)}
.intl span.loc2{display:inline-flex;align-items:center;gap:.45rem;margin:0 .5rem .5rem 0;padding:.5rem .95rem;border-radius:100px;border:1px solid var(--line-2);background:#fff;font-weight:600;font-size:.93rem}
.ci .soclinks a{margin-right:.8rem}

/* footer social */
.fsoc{display:flex;gap:.5rem;margin-top:1.2rem}
.fsoc a{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;transition:border-color .2s,transform .2s}
.fsoc a:hover{border-color:var(--indigo);transform:translateY(-2px)}
.fsoc svg{width:17px;height:17px}
.fsoc .li svg{fill:#0A66C2}.fsoc .yt svg{fill:#FF0000}

/* CSR view */
#csrView{display:none}
body.view-csr main#main{display:none}
body.view-csr #csrView{display:block}
.csr-ph{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.5rem}
.csr-ph .csr-pillar{border-style:dashed}

@media (max-width:1024px){
  .track-intro,.partners,.lif,.intern,.advisory{grid-template-columns:1fr}
  .models{grid-template-columns:1fr 1fr 1fr}
  .team{grid-template-columns:1fr 1fr}
  .feed-track{grid-auto-columns:calc((100% - 1.2rem)/2)}
  .intern .kv{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:1.4rem}
  .csr-ph{grid-template-columns:1fr}
}
@media (max-width:760px){
  .models,.mw,.prods,.team{grid-template-columns:1fr}
  .track-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .track-switch button{padding:.7rem .8rem;font-size:.88rem}
  .track-switch button small{display:none}
  .feed-track{grid-auto-columns:86%}
  .orbit .chip{display:none}
  .intern{padding:1.6rem}
}

/* =================== Multi-page additions =================== */
/* canvases by class */
.hero canvas.waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:300px;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.page-hero canvas.waves{position:absolute;left:0;right:0;bottom:-40px;width:100%;height:190px;pointer-events:none;opacity:.8;-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}
.ov-side canvas.harmony{display:block;width:100%;height:220px;border-radius:12px;background:var(--mist)}
.cta canvas.net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.page-hero{padding:4.2rem 0 4.6rem}
.page-hero .wrap{z-index:1}
.page-hero h1{max-width:22ch}

/* hero chips: products + services */
.chip.k1{left:-4%;top:20%}.chip.k2{right:-6%;top:22%}.chip.k3{left:-2%;bottom:24%}.chip.k4{right:-4%;bottom:20%}
.chip.srv{text-decoration:none;background:linear-gradient(135deg,#fff,#F1F8FC);border-color:color-mix(in srgb,var(--cyan) 35%,var(--line));pointer-events:auto}
.chip.srv:hover{border-color:var(--indigo)}
.chip .si{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:linear-gradient(135deg,var(--indigo),var(--cyan-ink))}
.chip .si.hc{background:linear-gradient(135deg,var(--teal),var(--green))}
.chip .si svg{width:14px;height:14px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.chip.s1{left:24%;top:-2%;animation-delay:-2.2s}.chip.s2{left:18%;bottom:-3%;animation-delay:-3.7s}

/* header with dropdowns */
.nav{gap:0}
.nav .ni{position:relative}
.nav .nl{display:inline-flex;align-items:center;gap:.25rem}
.nav .nl .cr{width:12px;height:12px;stroke:currentColor;stroke-width:2.4;fill:none;transition:transform .25s}
.nav .ni:hover .nl .cr,.nav .ni:focus-within .nl .cr,.nav .ni.open .nl .cr{transform:rotate(180deg)}
.nav .ni.active>.nl{color:var(--ink);font-weight:700}
.nav .ni.active>.nl::after{transform:scaleX(1)}
.dd{position:absolute;top:calc(100% + 12px);left:-.4rem;min-width:320px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px -24px rgba(20,26,126,.32);padding:.5rem;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s,transform .3s var(--ease),visibility .22s;z-index:150}
.dd::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.dd::after{content:"";position:absolute;top:-6px;left:1.6rem;width:11px;height:11px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.nav .ni:hover>.dd,.nav .ni:focus-within>.dd,.nav .ni.open>.dd{opacity:1;visibility:visible;transform:none}
.nav .dd a{display:flex;align-items:center;gap:.85rem;padding:.6rem .7rem;border-radius:11px;white-space:normal;color:var(--ink);font-weight:600;font-size:.93rem;transition:background .2s}
.nav .dd a::after{display:none}
.nav .dd a:hover,.nav .dd a.on{background:var(--mist)}
.dd .di{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--ice);flex-shrink:0;transition:transform .25s var(--ease)}
.dd .di.hc{background:var(--green-wash)}
.dd .di svg{width:19px;height:19px;stroke:var(--cyan-ink);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.dd .di.hc svg{stroke:var(--green-ink)}
.dd img{width:40px;height:40px;border-radius:11px;object-fit:contain;border:1px solid var(--line);background:#fff;padding:2px;flex-shrink:0;transition:transform .25s var(--ease)}
.nav .dd a:hover .di,.nav .dd a:hover img{transform:scale(1.06)}
.dd b{display:block;font-size:.93rem;line-height:1.3}
.dd small{display:block;font-weight:400;font-size:.8rem;color:var(--ink-3);line-height:1.35;margin-top:.1rem}
.nav .dd a.ddall{justify-content:center;border-top:1px solid var(--line);margin-top:.3rem;border-radius:0 0 11px 11px;font-size:.86rem;color:var(--indigo);padding:.7rem}
.mobile-nav a.sub{padding-left:1rem;font-weight:500;color:var(--ink-2);font-size:.95rem}
.mobile-nav a.on{color:var(--cyan-ink)}

/* SPA preview pages */
.page{display:none}
.page.on{display:block;animation:pgin .5s var(--ease)}
@keyframes pgin{from{opacity:0}to{opacity:1}}

/* home */
.prods.four{grid-template-columns:repeat(4,1fr)}
.prod.mini{text-decoration:none;color:inherit;padding:1.5rem}
.prod.mini .plogo{width:72px;height:72px}
.prod.mini h3{font-size:1.25rem}
.prod.mini p{font-size:.93rem}
.prod.mini .ptag{font-size:.68rem}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.choice{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:22px;padding:2.3rem;text-decoration:none;color:inherit;transition:transform .3s,box-shadow .3s,border-color .3s}
.choice:hover{transform:translateY(-5px);box-shadow:var(--s3);border-color:color-mix(in srgb,var(--cyan) 35%,var(--line))}
.choice .ico{width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,var(--indigo),var(--cyan-ink))}
.choice .ico.hc{background:linear-gradient(135deg,var(--teal),var(--green))}
.choice .ico svg{stroke:#fff;width:25px;height:25px}
.choice .who{font-family:var(--m);font-size:.78rem;font-weight:500;color:var(--cyan-ink);margin:.4rem 0 .4rem}
.choice h3{font-size:1.6rem;font-weight:800;margin-bottom:.7rem}
.choice p{color:var(--ink-2);flex:1;margin-bottom:1.4rem}

/* about */
.locs3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.links2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem}
.links2 .pr{text-decoration:none;color:inherit}
.links2 .pr p{margin-bottom:1rem}
.empty-pr{max-width:640px}
.empty-pr p{margin-bottom:0}

/* product page */
.prod-head{display:grid;grid-template-columns:auto 1fr;gap:2.4rem;align-items:center}
.prod-head .plogo.big{width:170px;height:170px;border-radius:30px;padding:12px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 60px -28px var(--a)}
.prod-head .plogo.big img{width:100%;height:100%;object-fit:contain;border-radius:18px}
.prod-head .ptag{--a:inherit;display:inline-block;margin-bottom:.8rem;font-family:var(--m);font-size:.78rem;font-weight:500;color:var(--a);background:color-mix(in srgb,var(--a) 9%,#fff);border:1px solid color-mix(in srgb,var(--a) 22%,#fff);border-radius:100px;padding:.25rem .75rem}
.prod-head h1{margin-bottom:.8rem}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.feat{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}
.feat .fn{font-family:var(--m);font-weight:600;font-size:.9rem;color:var(--a);background:color-mix(in srgb,var(--a) 10%,#fff);border-radius:10px;width:42px;height:42px;display:grid;place-items:center}
.feat p{font-size:1rem;color:var(--ink);padding-top:.5rem}
.feat::before{background:linear-gradient(90deg,var(--a),var(--green))!important}
.others{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.other{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;text-decoration:none;color:var(--ink);transition:transform .3s,box-shadow .3s,border-color .3s}
.other:hover{transform:translateY(-3px);box-shadow:var(--s2);border-color:color-mix(in srgb,var(--a) 40%,var(--line))}
.other img{width:58px;height:58px;border-radius:12px;object-fit:contain;border:1px solid var(--line);padding:3px}
.other b{display:block;font-family:var(--h);font-size:1.05rem}
.other small{display:block;color:var(--ink-3);font-size:.84rem}

/* blog */
.blog-empty{max-width:720px;margin:0 auto;text-align:center;background:#fff;border:1px solid var(--line);border-radius:24px;padding:3rem 2rem;box-shadow:var(--s2)}
.blog-empty .ico{margin:0 auto 1.2rem;width:58px;height:58px;border-radius:16px}
.blog-empty h3{font-size:1.6rem;font-weight:800;margin-bottom:.6rem}
.blog-empty p{color:var(--ink-2);margin-bottom:1.6rem}
.blog-empty .cta-row{justify-content:center}

@media (max-width:1300px){.nav .nl{padding:.5rem .5rem;font-size:.9rem}}
@media (max-width:1240px){.dd{display:none}}
@media (max-width:1024px){.prods.four{grid-template-columns:1fr 1fr}.choices,.links2,.feats{grid-template-columns:1fr}.locs3,.others{grid-template-columns:1fr 1fr}.prod-head{grid-template-columns:1fr}.prod-head .plogo.big{width:130px;height:130px}}
@media (max-width:760px){.prods.four,.locs3,.others{grid-template-columns:1fr}}

/* brand logo (official artwork) */
.brand img.brand-logo{width:auto;height:62px}
.site-footer .brand img.brand-logo{height:70px}
.core img{width:72%}
@media (max-width:760px){.brand img.brand-logo{height:48px}}
