:root{--ink:#061423;--navy:#0a2238;--teal:#2ad1c4;--teal2:#0f8f9b;--gold:#e9c46a;--paper:#f3f1ec;--mute:#8aa3b8;--line:rgba(255,255,255,.12);
--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:"Inter","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}
body{margin:0;background:var(--ink);color:#e8eef3;font:400 17px/1.65 var(--sans);overflow-x:hidden}
a{color:inherit}img{max-width:100%;display:block}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;color:#000;padding:8px}
/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,4vw,56px);background:linear-gradient(180deg,rgba(6,20,35,.85),rgba(6,20,35,0));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.nav .logo{font:600 15px var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.nav ul a{text-decoration:none;opacity:.8}.nav ul a:hover{opacity:1}
@media(max-width:860px){.nav ul{display:none}}
/* hero */
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%}
.hero-fallback{position:absolute;inset:0;background:radial-gradient(60% 70% at 70% 40%,#0f8f9b55,transparent 60%),radial-gradient(50% 60% at 20% 80%,#2ad1c433,transparent 60%),var(--ink)}
.hero-inner{position:relative;z-index:2;height:100%;display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:40px;padding:0 clamp(20px,4vw,56px) clamp(48px,9vh,96px)}
.eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--teal)}
.hero h1{font:400 clamp(56px,9.6vw,168px)/.9 var(--serif);letter-spacing:-.025em;margin:18px 0 22px}
.hero h1 em{font-style:italic;color:var(--teal)}
.hero .lede{max-width:560px;font-size:clamp(17px,1.35vw,21px);color:#c3d3df}
.portrait{position:relative;justify-self:end;width:min(360px,28vw);aspect-ratio:4/5;border-radius:220px 220px 18px 18px;overflow:hidden;box-shadow:0 40px 120px #0008}
.portrait img{width:100%;height:115%;object-fit:cover;object-position:50% 20%;filter:grayscale(1) contrast(1.08) brightness(1.05)}
.portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0f8f9b 0%,#061423 100%);mix-blend-mode:color;opacity:.9}
.portrait figcaption{position:absolute;left:16px;bottom:14px;z-index:2;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#d8fbf7}
.scrollcue{position:absolute;left:50%;bottom:22px;z-index:2;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--mute);transform:translateX(-50%)}
@media(max-width:860px){.hero-inner{grid-template-columns:1fr;align-items:end}.portrait{position:absolute;top:84px;right:20px;width:34vw;opacity:.95}.hero-inner{padding-top:0}.hero .eyebrow{max-width:60vw}.hero h1{font-size:15vw}}
/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:999px;font:600 14px var(--sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid var(--line);transition:background .3s,color .3s}
.btn.primary{background:var(--teal);color:var(--ink);border-color:var(--teal)}
.btn:hover{background:#fff;color:var(--ink)}
/* marquee */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding:26px 0;background:#081b2d}
.marquee .track{display:flex;gap:64px;width:max-content;animation:mq 38s linear infinite;font:400 clamp(22px,2.6vw,38px) var(--serif);white-space:nowrap}
.marquee .track span::before{content:"✦";color:var(--teal);margin-right:64px;font-size:.6em;vertical-align:middle}
@keyframes mq{to{transform:translateX(-50%)}}
/* sections */
section{position:relative}
.wrap{padding:clamp(80px,14vh,160px) clamp(20px,4vw,56px);max-width:1440px;margin:auto}
.h2{font:400 clamp(40px,6vw,96px)/.98 var(--serif);letter-spacing:-.02em;margin:14px 0 30px}
.h2 em{font-style:italic;color:var(--teal)}
.big{font:400 clamp(26px,3.1vw,48px)/1.2 var(--serif);max-width:1100px;color:#dfe8ef}
.big .w{opacity:.14;transition:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.stat{padding:40px 24px 20px 0;border-right:1px solid var(--line)}.stat:last-child{border:0}
.stat b{display:block;font:400 clamp(48px,6vw,92px)/1 var(--serif);color:#fff}
.stat span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
@media(max-width:860px){.stats{grid-template-columns:1fr 1fr}.stat{border-bottom:1px solid var(--line)}}
/* timeline */
.timeline{position:relative;padding-left:40px;margin-top:20px}
.timeline .rail{position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--line)}
.timeline .rail i{position:absolute;inset:0 0 auto 0;height:0;background:linear-gradient(var(--teal),var(--gold))}
.tl{position:relative;padding:0 0 46px}
.tl::before{content:"";position:absolute;left:-38px;top:8px;width:14px;height:14px;border-radius:50%;border:2px solid var(--teal);background:var(--ink)}
.tl small{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--teal)}
.tl h3{font:400 28px/1.2 var(--serif);margin:6px 0 6px}.tl p{margin:0;color:#b4c4d1}
.about-photo{position:sticky;top:110px;border-radius:18px;overflow:hidden;aspect-ratio:4/5}
.about-photo img{width:100%;height:120%;object-fit:cover;filter:grayscale(1) contrast(1.1)}
.about-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#2ad1c4,#0a2238 70%);mix-blend-mode:multiply;opacity:.75}
/* robotic pinned */
.robotic{background:linear-gradient(180deg,var(--ink),#071a2b)}
.robo-pin{height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding:0 clamp(20px,4vw,56px)}
.robo-steps{position:relative;height:400px}
.robo-step{position:absolute;inset:0;opacity:0}
.robo-step:first-child{opacity:1}
.robo-step .n{font:400 14px var(--sans);letter-spacing:.3em;color:var(--teal)}
.robo-step h3{font:400 clamp(34px,4.2vw,64px)/1.02 var(--serif);margin:12px 0 16px}
.robo-step p{max-width:520px;color:#b9c9d6}
.robo-viz svg{width:100%;height:auto;max-height:78vh}
@media(max-width:860px){.robo-pin{grid-template-columns:1fr;height:auto;padding-block:80px}.robo-steps{height:auto}.robo-step{position:relative;opacity:1;margin-bottom:40px}}
/* horizontal */
.hscroll{overflow:hidden;background:var(--paper);color:var(--ink)}
.hs-head{padding:clamp(70px,10vh,120px) clamp(20px,4vw,56px) 30px}
.hs-track{display:flex;gap:28px;padding:0 clamp(20px,4vw,56px) 110px;width:max-content}
.cond{position:relative;flex:0 0 clamp(280px,28vw,420px);height:clamp(380px,58vh,540px);border-radius:22px;padding:30px;background:#fff;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;overflow:hidden;border:1px solid #0a223814;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.cond:hover{transform:translateY(-8px)}
.cond .idx{font:400 14px var(--sans);letter-spacing:.2em;color:var(--teal2)}
.cond h3{font:400 clamp(30px,2.8vw,44px)/1.02 var(--serif);margin:0}
.cond p{margin:0;color:#3d5265;font-size:15px}
.cond .go{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal2)}
.cond .orb{position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#2ad1c4,#0a2238 70%);opacity:.18;transition:opacity .4s}
.cond:hover .orb{opacity:.5}
.hscroll .h2 em{color:var(--teal2)}
@media(max-width:860px){.hs-track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:60px}.cond{scroll-snap-align:start}}
/* experience */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{border:1px solid var(--line);border-radius:20px;padding:30px 26px 34px;background:linear-gradient(180deg,#0c2740,#081a2c)}
.card .ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#2ad1c41a;color:var(--teal);font:600 16px var(--sans);margin-bottom:40px}
.card h3{font:400 26px/1.15 var(--serif);margin:0 0 10px}.card p{margin:0;color:#a9bccb;font-size:15px}
@media(max-width:1000px){.cards{grid-template-columns:1fr 1fr}}@media(max-width:560px){.cards{grid-template-columns:1fr}}
/* referring */
.refer{background:var(--teal);color:var(--ink)}
.refer .h2 em{color:#fff}
.refer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #06142333;margin-top:30px}
.refer-grid div{padding:28px 20px 10px 0}
.refer-grid b{display:block;font:400 clamp(30px,3vw,46px)/1 var(--serif)}
.refer-grid span{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.refer .btn{border-color:var(--ink)}.refer .btn.primary{background:var(--ink);color:#fff}
@media(max-width:860px){.refer-grid{grid-template-columns:1fr 1fr}}
/* locations */
.loc-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.map svg{width:100%;height:auto}
.loc{border-top:1px solid var(--line);padding:22px 0;display:grid;grid-template-columns:150px 1fr;gap:18px;cursor:default}
.loc h3{font:400 26px var(--serif);margin:0}.loc p{margin:0;color:#b4c4d1}
.loc:hover h3,.loc.on h3{color:var(--teal)}
.pin circle.pulse{transform-origin:center;transform-box:fill-box;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.6);opacity:0}}
@media(max-width:860px){.loc-grid{grid-template-columns:1fr}.loc{grid-template-columns:1fr;gap:4px}}
/* cta + footer */
.cta{text-align:center;overflow:hidden}
.cta .h2{font-size:clamp(54px,11vw,190px)}
.foot{border-top:1px solid var(--line);padding:40px clamp(20px,4vw,56px);display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;font-size:14px;color:var(--mute)}
.foot a{text-decoration:none}.foot a:hover{color:#fff}
/* article pages */
.page-hero{padding:180px clamp(20px,4vw,56px) 60px;max-width:1100px;margin:auto}
.page-hero h1{font:400 clamp(46px,7vw,110px)/.95 var(--serif);letter-spacing:-.02em;margin:16px 0 20px}
.page-hero p{font-size:20px;color:#c3d3df;max-width:720px}
.article{max-width:760px;margin:0 auto;padding:20px clamp(20px,4vw,56px) 110px}
.article h2{font:400 34px/1.15 var(--serif);margin:56px 0 12px;color:#fff}
.article p,.article li{color:#c7d4de}.article li{margin:6px 0}
.article .note{border-left:2px solid var(--teal);padding:4px 0 4px 18px;color:#9fb3c3;font-size:15px;margin-top:40px}
.crumbs{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}.crumbs a{text-decoration:none;color:var(--teal)}
.more{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.more a{border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:14px;text-decoration:none}.more a:hover{border-color:var(--teal);color:var(--teal)}
.bg-glow{position:fixed;inset:0;z-index:-1;background:radial-gradient(50% 50% at 85% 0%,#0f8f9b40,transparent 70%),radial-gradient(40% 40% at 0% 100%,#2ad1c41f,transparent 70%),var(--ink)}
/* cursor */
.cursor{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--teal);pointer-events:none;z-index:100;mix-blend-mode:difference;transition:width .25s,height .25s,margin .25s}
.cursor.big{width:64px;height:64px;margin:-32px 0 0 -32px;background:#fff}
@media(hover:none),(pointer:coarse){.cursor{display:none}}
.reveal{opacity:0;transform:translateY(40px)}
.line{display:block;overflow:hidden}.line>span{display:inline-block}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.big .w{opacity:1}.cursor{display:none}}
.no-js .reveal{opacity:1;transform:none}

.portrait figcaption{display:none}
/* why section */
.why{background:radial-gradient(60% 60% at 100% 0%,#0f8f9b33,transparent 70%),#071a2b}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}.why-grid.one{grid-template-columns:1fr}
.why-col{border:1px solid var(--line);border-radius:26px;padding:clamp(24px,3vw,44px);background:linear-gradient(180deg,#0c2740cc,#081a2ccc)}
.why-col.alt{background:linear-gradient(180deg,#0f3a4a,#0a2238)}
.why-tag{display:inline-block;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);background:var(--teal);border-radius:999px;padding:6px 14px;margin-bottom:22px}
.why-col.alt .why-tag{background:var(--gold)}
.why-col ul{list-style:none;margin:0;padding:0}
.why-item{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:20px 0;border-top:1px solid var(--line)}
.why-item:first-child{border-top:0}
.why-ico{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#2ad1c41a;color:var(--teal)}
.why-col.alt .why-ico{background:#e9c46a1f;color:var(--gold)}
.why-item h3{font:400 24px/1.2 var(--serif);margin:2px 0 4px}.why-item p{margin:0;color:#a9bccb;font-size:15.5px}
@media(max-width:900px){.why-grid{grid-template-columns:1fr}}
.visit{margin-top:60px}.visit-h{font:400 clamp(30px,3vw,44px) var(--serif);margin:0 0 24px}
.visit ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:v}
.visit li{border-top:2px solid var(--teal);padding-top:18px}.visit b{font:400 14px var(--sans);letter-spacing:.2em;color:var(--teal)}
.visit span{display:block;font:400 24px var(--serif);margin:6px 0}.visit p{margin:0;color:#a9bccb;font-size:15px}
@media(max-width:900px){.visit ol{grid-template-columns:1fr 1fr}}@media(max-width:520px){.visit ol{grid-template-columns:1fr}}
.article .why-item h3{color:#fff}
