@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* A cinematic, typographic identity: ink, aluminium and signal blue. */
:root{--blue:#719bff;--muted:#a4adbd}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:500}
header{border-radius:100px;background:linear-gradient(110deg,#c4d6ff13,#0b101bbd 50%,#c4d6ff0a);box-shadow:inset 0 1px 0 #ffffff25,0 12px 35px #0003;padding-inline:32px}
header nav{gap:36px}header .contact{border-radius:100px;padding:12px 24px;background:#eff4ff;color:#0a101d;border:0}
header .contact:hover{background:#b6ccff;color:#0a101d}
.hero-content{animation:none;padding-top:140px;padding-bottom:70px}
.hero h1{font-size:clamp(60px,7.4vw,114px);font-weight:500;line-height:.98;letter-spacing:-.075em;max-width:1120px}
h1 em,h2 em,.closing h2 span{background:linear-gradient(110deg,#e4eeff 0%,#8cb1ff 42%,#547aff 90%);background-clip:text;-webkit-background-clip:text;color:#9bb9ff;-webkit-text-fill-color:transparent}
.hero .eyebrow{background:none;border:0;padding:0;display:flex;align-items:center;gap:12px;letter-spacing:.14em;font-size:10px;color:#b5c8ee;margin-bottom:28px}
.hero .eyebrow:before{content:'';width:7px;height:7px;background:#89aeff;box-shadow:0 0 16px #719bff80;border-radius:50%}
.hero .intro{font-size:16px;line-height:1.6;max-width:420px;margin:24px 0}
.button{border-radius:100px;background:#dce7ff;box-shadow:none;border:0;gap:36px}
.button span{background:#19326612;border-radius:50%}
.button:hover{background:#b6ccff;box-shadow:none}
.hero-bottom{font-size:10px}.hero-bottom>span{letter-spacing:.13em;color:#73849f}
.hero-bottom a{font-size:12px}
.section-top{grid-template-columns:.62fr 1.65fr 1fr;gap:44px;align-items:end}
.section-top>.eyebrow{align-self:start;padding-top:10px;letter-spacing:.14em;font-size:10px}
.section-top h2{font-size:clamp(44px,5.3vw,82px);line-height:1.02;letter-spacing:-.07em}
.section-top>p:last-child{font-size:15px;line-height:1.8;padding-bottom:4px;max-width:330px}
.services{margin-top:64px;gap:20px}
.services article{border-radius:12px;background:#000;border-color:#b9ccf122;padding:32px;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.services article:before{left:0;right:0;background:linear-gradient(90deg,#658fff80,transparent 65%)}
.services article:nth-child(2):before,.services article:nth-child(3):before{background:linear-gradient(90deg,#d2defb50,transparent 65%)}
.services .number{font-family:'Space Grotesk',sans-serif;font-size:72px;line-height:1;font-weight:400;letter-spacing:-.08em;color:#000;-webkit-text-stroke:1px #97b2e366;position:absolute;top:28px;right:30px}
.service-icon{height:132px;width:160px;margin:20px 0 42px;color:#93b3ff;display:flex;align-items:center}
.service-icon svg{display:block;width:160px;height:132px;overflow:visible}
.services h3{font-size:clamp(24px,2.1vw,34px);letter-spacing:-.055em;line-height:1.15;max-width:11em}
.services p{font-size:15px;line-height:1.75;min-height:95px;margin:22px 0 32px;color:#98a2b4}
.tags{border-top:1px solid #c5d7ff1a;padding-top:22px;gap:16px}
.tags span{border:0;border-radius:0;background:none;padding:0;color:#8596b3;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.02em}
.tags span:before{content:'+';color:#719bff;margin-right:7px}
.approach{padding:96px 0 0;margin-top:20px;gap:9%;border:0;border-radius:0;background:none;overflow:visible;box-shadow:none}
.approach h2{font-size:clamp(42px,4.6vw,72px);letter-spacing:-.065em;line-height:1.04}
.approach .eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:32px}
.approach-intro{font-size:15px;line-height:1.8;max-width:400px;margin-top:28px}
.steps{gap:0;border-top:1px solid #abc7ff35}
.steps article,.steps article:first-child,.steps article:last-child{background:transparent;border:0;border-bottom:1px solid #abc7ff25;border-radius:0;padding:28px 0;box-shadow:none;gap:28px;backdrop-filter:none;-webkit-backdrop-filter:none}
.steps article>span{font-size:11px;padding-top:5px;color:#8eafff}
.steps h3{font-size:26px;letter-spacing:-.045em}
.steps p{font-size:14px;line-height:1.75;max-width:480px;color:#929eb3}
.closing{padding:90px 0 80px;margin-top:120px;border:0;border-top:1px solid #adc7ff2b;border-bottom:1px solid #adc7ff2b;border-radius:0;display:grid;grid-template-columns:1fr 240px;column-gap:50px;align-items:center;background:none;box-shadow:none}
.closing .eyebrow{grid-column:1/-1;font-size:10px;letter-spacing:.14em;margin-bottom:42px;color:#8f9eb8}
.closing h2{font-size:clamp(60px,7.8vw,122px);line-height:.98;letter-spacing:-.075em;margin:0}
.closing .dark{width:200px;height:200px;border-radius:50%;background:linear-gradient(145deg,#e7eeff,#94b5ff 55%,#537bf2);display:flex;flex-direction:column-reverse;justify-content:center;gap:12px;text-align:center;padding:28px;font-size:13px;line-height:1.4;box-shadow:inset 0 2px 1px #fff9,inset 0 -3px 8px #162f7650;color:#071328}
.closing .dark span{font-size:64px;line-height:1;width:auto;height:auto;background:none;font-weight:400}
.closing .dark:hover{background:linear-gradient(145deg,#fff,#c5d7ff 55%,#93b5ff);box-shadow:inset 0 2px 1px #fff9;transform:translateY(-3px)}
footer{padding-top:40px;padding-bottom:44px}footer p,footer>a:not(.logo){font-size:12px}footer small{font-family:'IBM Plex Mono',monospace;font-size:10px}
@media(min-width:1800px){.hero-content{padding-top:125px}.hero .intro{max-width:460px}.services article{padding:42px}.service-icon{margin-bottom:50px}}
@media(max-width:1000px){.hero h1{font-size:clamp(56px,7.8vw,78px)}.section-top{grid-template-columns:1fr 2fr;gap:24px}.section-top>p:last-child{grid-column:2}.services article{padding:24px}.services .number{font-size:56px;right:22px}.service-icon{width:120px;height:110px}.service-icon svg{width:120px}.services p{min-height:150px}.closing{grid-template-columns:1fr 180px}.closing .dark{width:170px;height:170px}.steps h3{font-size:23px}}
@media(max-width:600px){header{padding-inline:18px}header .contact{padding:10px 15px}.hero-content{padding-top:140px;padding-bottom:100px}.hero h1{font-size:clamp(42px,10.5vw,62px);line-height:1.03}.hero .eyebrow{font-size:9px;letter-spacing:.07em;gap:9px}.hero .intro{font-size:15px;max-width:310px}.section-top{display:block}.section-top h2{font-size:46px}.section-top>p:last-child{max-width:100%;margin-top:24px}.services{margin-top:36px;gap:18px}.services article{padding:28px}.services .number{font-size:72px;top:26px;right:28px}.service-icon{margin:6px 0 28px;height:120px;width:140px}.service-icon svg{width:140px;height:120px}.services h3{font-size:30px}.services p{min-height:0}.approach{padding:64px 0 0;gap:34px;margin-top:0}.approach h2{font-size:44px}.steps h3{font-size:23px}.closing{margin-top:70px;padding:48px 0;grid-template-columns:1fr;gap:30px}.closing .eyebrow{margin:0}.closing h2{font-size:clamp(48px,12vw,72px)}.closing .dark{width:140px;height:140px;font-size:11px;justify-self:end;padding:20px;gap:6px}.closing .dark span{font-size:46px}footer{row-gap:24px}}
@media(prefers-reduced-motion:reduce){.closing .dark:hover{transform:none}}

/* Neutral metal palette with a restrained blue signal. */
:root{--fg:#f1f1f2;--muted:#a6a8ae;--blue:#a5b4ce}
h1 em,h2 em,.closing h2 span{background:linear-gradient(110deg,#f0f0f2,#bfc2c9 65%,#9399a5);background-clip:text;-webkit-background-clip:text;color:#c8cbd1;-webkit-text-fill-color:transparent}
header{background:linear-gradient(110deg,#ffffff10,#0d1015da 50%,#ffffff06);border-color:#ffffff24;box-shadow:inset 0 1px 0 #ffffff20,0 12px 35px #0003;backdrop-filter:blur(24px) saturate(25%);-webkit-backdrop-filter:blur(24px) saturate(25%)}
header .contact{background:#e9e9ec;color:#121419}header .contact:hover{background:#fff;color:#121419}
.hero .eyebrow{color:#b1b4bc}.hero .eyebrow:before{background:#a5b4ce;box-shadow:0 0 10px #a5b4ce30}
.hero .intro,.section-top>p:last-child,.approach-intro{color:#aeb1ba}
.hero-bottom>span,.section-top>.eyebrow,.approach .eyebrow,.closing .eyebrow{color:#8b909b}
.hero-bottom a{color:#c1c3c9}
.hero .button,.button{background:linear-gradient(120deg,#ebebee,#c9cbd1);color:#17191e;box-shadow:inset 0 1px 0 #fff8}
.button:hover{background:#f5f5f6;box-shadow:none}.button span{background:#16181b0c}
.services article{border-color:#ffffff22}
.services article:before,.services article:nth-child(2):before,.services article:nth-child(3):before{background:linear-gradient(90deg,#d5d7dd55,transparent 65%)}
.services .number{-webkit-text-stroke-color:#b9bdc44f}
.service-icon,.services article:nth-child(2) .service-icon,.services article:nth-child(3) .service-icon{color:#b9bec8;filter:saturate(.12)}
.services p,.steps p{color:#a2a5af}
.tags{border-color:#ffffff18}.tags span{color:#9298a3}.tags span:before{color:#a5b4ce}
.steps{border-color:#ffffff30}.steps article,.steps article:first-child,.steps article:last-child{border-bottom-color:#ffffff20}.steps article>span{color:#a5b4ce}
.closing{border-top-color:#ffffff26;border-bottom-color:#ffffff26}
.closing .dark{background:linear-gradient(145deg,#f5f5f6,#c9ccd3 55%,#999fa9);color:#17191e;box-shadow:inset 0 2px 1px #fff9,inset 0 -3px 8px #20232935}
.closing .dark:hover{background:linear-gradient(145deg,#fff,#e2e3e7 55%,#c4c7ce);box-shadow:inset 0 2px 1px #fff9}
::selection{background:#a9b1bf;color:#101217}
.pipeline-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}

/* Translucent glass navigation with a soft reflective rim. */
header{isolation:isolate;background:linear-gradient(115deg,rgba(255,255,255,.12),rgba(255,255,255,.025) 36%,rgba(255,255,255,.065) 72%,rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.27);backdrop-filter:blur(24px) saturate(115%);-webkit-backdrop-filter:blur(24px) saturate(115%);box-shadow:inset 0 1px 1px rgba(255,255,255,.3),inset 0 -1px 1px rgba(255,255,255,.08),0 8px 28px rgba(0,0,0,.16)}
header:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:linear-gradient(170deg,rgba(255,255,255,.1),transparent 45%,rgba(255,255,255,.02) 75%);box-shadow:inset 1px 0 1px rgba(255,255,255,.13),inset -1px 0 1px rgba(255,255,255,.1)}
header .contact{background:rgba(255,255,255,.12);color:#f1f1f2;border:1px solid rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
header .contact:hover{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.4)}
@supports not (backdrop-filter:blur(1px)){header{background:rgba(22,25,31,.94)}}

/* One-time, staggered entrances driven by viewport intersection. */
.scroll-reveal{opacity:0;translate:0 26px;transition:opacity .75s ease var(--reveal-delay,0ms),translate .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}
.services article.scroll-reveal,.steps article.scroll-reveal{transition:opacity .75s ease var(--reveal-delay,0ms),translate .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}
.scroll-reveal.scroll-visible{opacity:1;translate:0 0}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;translate:none;transition:none!important}}
footer address{font-style:normal;font-size:12px;line-height:1.65;color:var(--muted)}
.contact-page{padding:190px var(--page-gutter) 100px;min-height:80vh}
.contact-page>.eyebrow{font-size:10px;color:#a6a8ae;letter-spacing:.14em;margin-bottom:30px}
.contact-page h1{font-size:clamp(64px,8.5vw,132px);line-height:1;letter-spacing:-.075em;max-width:1100px}
.contact-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:12%;margin-top:70px;border-top:1px solid #ffffff26;padding-top:44px}
.contact-message>p:first-child{font-size:20px;line-height:1.7;max-width:560px;color:#c0c3ca;margin:0 0 32px}
.contact-email{font-family:'Space Grotesk',sans-serif;font-size:clamp(24px,3vw,44px);letter-spacing:-.04em;display:inline-block;border-bottom:1px solid #ffffff50;padding-bottom:8px;overflow-wrap:anywhere}
.contact-email:hover{color:#fff;border-color:#fff}.contact-email span{margin-left:18px}
.contact-note{font-size:14px;color:#9096a2;max-width:430px;margin-top:26px;line-height:1.8}
.enquiry-form{display:grid;gap:24px;margin-top:32px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.enquiry-form label{display:block;font-size:13px;color:#c4c7ce}.optional{color:#858b96;font-size:12px}
.enquiry-form input,.enquiry-form textarea{display:block;width:100%;margin-top:10px;padding:14px 16px;border:1px solid #ffffff26;border-radius:10px;background:#ffffff04;color:#f1f1f2;font:16px/1.5 'DM Sans',sans-serif;outline-offset:3px}
.enquiry-form textarea{resize:vertical;min-height:150px}.enquiry-form input:focus,.enquiry-form textarea:focus{outline:1px solid #bfc7d6;border-color:#bfc7d6}.enquiry-form textarea::placeholder{color:#7e8592}
.enquiry-form .button{justify-self:start;font:500 14px 'DM Sans',sans-serif;cursor:pointer;padding:16px 24px}.enquiry-form .button:disabled{opacity:.5;cursor:wait;transform:none}
.form-status{font-size:14px;line-height:1.6;min-height:1.6em;margin:0;color:#c4c7ce}.form-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:600px){.form-row{grid-template-columns:1fr;gap:24px}}
.contact-location>.eyebrow{font-size:10px;color:#9298a3;margin:0 0 20px}
.contact-location address{font-style:normal;font-family:'Space Grotesk',sans-serif;font-size:30px;line-height:1.45;letter-spacing:-.04em}.contact-location address span{color:#a6a8ae}
.map-link{display:inline-flex;gap:30px;border-bottom:1px solid #ffffff35;margin-top:24px;padding-bottom:8px;font-size:14px}.map-link:hover{border-color:#fff}
.contact-detail{border-top:1px solid #ffffff20;margin-top:40px;padding-top:24px}.contact-detail>span{font:10px 'IBM Plex Mono',monospace;color:#9298a3;letter-spacing:.1em}.contact-detail p{font-size:14px;line-height:1.8;color:#a6a8ae}
@media(max-width:600px){.contact-page{padding-top:140px;padding-bottom:60px}.contact-page h1{font-size:clamp(46px,12vw,66px)}.contact-layout{grid-template-columns:1fr;gap:46px;margin-top:42px;padding-top:30px}.contact-message>p:first-child{font-size:17px}.contact-location address{font-size:27px}}
@media(max-width:600px){footer address{grid-column:1/-1;grid-row:3}footer small{grid-column:1/-1;text-align:left}}

/* Research topics: editorial R&D block */
.research{margin:90px max(2.5%,calc((100% - 2100px)/2)) 0;padding:clamp(28px,3vw,56px);display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,2fr);gap:clamp(32px,4vw,72px);background:#ffffff02;border:1px solid #ffffff20;border-radius:20px}
.research .section-top{display:block}
.research .section-top>.eyebrow{padding:0;margin:0 0 28px;font-size:12px;letter-spacing:.1em}
.research .section-top h2{font-size:clamp(34px,3vw,54px);line-height:1.08;letter-spacing:-.055em}
.research .section-top>p:last-child{max-width:38ch;font-size:16px;line-height:1.75;margin:24px 0 0;padding:0}
.research-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3vw,56px);margin:0;padding:0;border:0}
.research-topics article{min-width:0;border-left:1px solid #ffffff20;padding-left:clamp(24px,2.5vw,44px)}
.research-topics .eyebrow{font-size:12px;color:#9298a3;margin:0 0 28px;letter-spacing:.1em}
.research-topics h3{font-size:clamp(24px,2vw,34px);line-height:1.2;letter-spacing:-.04em;max-width:22ch;min-height:2.4em}
.research-topics article>p:last-child{font-size:16px;line-height:1.8;max-width:48ch;color:#a6a8ae;margin:24px 0 0}
@media(max-width:1100px){.research{grid-template-columns:1fr;gap:36px}.research .section-top>p:last-child{max-width:60ch}.research-topics{border-top:1px solid #ffffff20;padding-top:32px}.research-topics article{border:0;padding:0}}
@media(max-width:700px){.research{margin:64px 5% 0;padding:28px 24px;border-radius:20px}.research-topics{grid-template-columns:1fr;gap:32px}.research-topics h3{min-height:0}.research-topics article>p:last-child{margin-top:18px}.research-topics .eyebrow{margin-bottom:18px}}

/* Match services and research outer edges. */
.expertise{padding-inline:max(2.5%,calc((100% - 2100px)/2))}
@media(max-width:700px){.expertise{padding-inline:5%}}

/* Restrained color accents on the service and research surfaces. */
.services article:nth-child(1){background:radial-gradient(ellipse at 0% 0%,#a58bfa18,transparent 68%),#090b10;border-color:#b5a1ee30}
.services article:nth-child(2){background:radial-gradient(ellipse at 50% 0%,#ce9c7018,transparent 68%),#090b10;border-color:#d4ae8230}
.services article:nth-child(3){background:radial-gradient(ellipse at 100% 0%,#cc8cad18,transparent 68%),#090b10;border-color:#dca7c130}
.services article:nth-child(1) .service-icon{filter:sepia(.3) saturate(1.4);color:#b8a5e2}
.services article:nth-child(2) .service-icon{filter:sepia(.65) saturate(.85);color:#d2b695}
.services article:nth-child(3) .service-icon{filter:sepia(.25) hue-rotate(290deg) saturate(.8);color:#d1adc8}
.services article:nth-child(1):before{background:linear-gradient(90deg,#ad8fe57a,transparent 75%)}
.services article:nth-child(2):before{background:linear-gradient(90deg,#d7ab747a,transparent 75%)}
.services article:nth-child(3):before{background:linear-gradient(90deg,#d49dbe7a,transparent 75%)}
.research{background:radial-gradient(ellipse at 0% 100%,#ac86dc13,transparent 65%),radial-gradient(ellipse at 100% 0%,#c9a57612,transparent 60%),#0b0e13;border-color:#bba8cf35}
.research .section-top h2 em{background:linear-gradient(100deg,#c5b1e8,#d9bac4 65%,#e0c69d);background-clip:text;-webkit-background-clip:text;color:#c5b1e8;-webkit-text-fill-color:transparent}
.research-topics article:first-child>.eyebrow{color:#cbb08f}
.research-topics article:last-child>.eyebrow{color:#b7a5d6}
