@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#071b32;--blue:#087dd9;--cyan:#00a8ff;--muted:#6b7a8b;--light:#f3f6f9;--line:#dce4eb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,'Arial',sans-serif;color:#172638;background:#fff}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}em{font-style:normal;color:var(--blue)}.accent{color:var(--cyan)}.header{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:space-between;padding:20px 5%;transition:.35s;background:rgba(5,19,36,.22);color:white;border-bottom:1px solid #ffffff25}.header.scrolled{background:#fff;color:var(--navy);box-shadow:0 6px 35px #071b3210;border-color:var(--line)}.brand{display:flex;gap:12px;align-items:center}.brand-symbol{font-size:40px;font-weight:800;letter-spacing:-8px;line-height:1}.brand-symbol span{font-size:21px;color:var(--cyan);vertical-align:9px;letter-spacing:0}.brand-text{font-size:20px;font-weight:800;letter-spacing:2px;line-height:1.1}.brand-text small{display:block;font-size:8px;letter-spacing:2.6px;margin-top:6px}.nav{display:flex;align-items:center;gap:27px}.nav>a{font-size:12px;font-weight:700;transition:color .2s}.nav>a:hover{color:var(--cyan)}.nav .nav-cta{background:var(--blue);color:#fff;padding:14px 20px}.nav-cta span{margin-left:18px}.menu-toggle{display:none}.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--cyan);z-index:110}.loader{position:fixed;inset:0;z-index:120;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;transition:opacity .7s,visibility .7s}.loader.done{opacity:0;visibility:hidden}.loader-logo{font-size:clamp(42px,7vw,92px);font-weight:800;letter-spacing:.12em;animation:loaderIn 1s both}.loader-logo .mark{color:var(--cyan);font-size:.55em;vertical-align:10px}.loader-caption{letter-spacing:5px;font-size:10px;margin:18px 0 35px}.loader-track{height:2px;background:#ffffff24;width:200px}.loader-track span{display:block;height:100%;width:0;background:var(--cyan);animation:load 1.3s forwards}@keyframes load{to{width:100%}}@keyframes loaderIn{from{opacity:0;filter:blur(15px);letter-spacing:.45em}to{opacity:1;filter:blur(0);letter-spacing:.12em}}.hero{height:min(900px,100svh);min-height:720px;position:relative;color:white;background:linear-gradient(115deg,#06172c,#123a59);overflow:hidden}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 78% 40%,#246c8a 0,transparent 45%),linear-gradient(135deg,#071b32,#0b304c)}.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.53;animation:heroZoom 10s ease-out both}.hero-bg:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#041324ed 5%,#06172ca8 55%,#071b3240)}@keyframes heroZoom{from{transform:scale(1.13)}to{transform:scale(1)}}.hero-content{position:relative;z-index:2;padding:clamp(175px,20vh,235px) 8% 110px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:3px;color:var(--blue);display:inline-flex;align-items:center;gap:12px}.eyebrow.light{color:#9bdcff}.pulse{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 6px #00a8ff30}.hero h1{font-size:clamp(55px,7.6vw,126px);line-height:1.06;letter-spacing:-.075em;max-width:1100px;margin:25px 0 30px;font-weight:800}.hero h1 em{color:#8fd9ff}.hero-content>p{max-width:580px;font-size:16px;line-height:1.9;color:#d6e4ef}.hero-actions{display:flex;gap:14px;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;padding:17px 24px;border:1px solid transparent;font-size:12px;font-weight:800;transition:background .25s,transform .25s,color .25s}.btn:hover{transform:translateY(-4px)}.btn-blue{background:var(--blue);color:white}.btn-blue:hover{background:#005fae}.btn-outline{border-color:#ffffff85;color:#fff}.btn-outline:hover{background:white;color:var(--navy)}.btn-white{background:#fff;color:var(--navy)}.hero-bottom{position:absolute;z-index:2;bottom:35px;left:8%;right:8%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#b8cddd}.section{padding:125px 8%}.grid-bg{background-color:var(--light);background-image:linear-gradient(#0b47710a 1px,transparent 1px),linear-gradient(90deg,#0b47710a 1px,transparent 1px);background-size:55px 55px}.intro{display:grid;grid-template-columns:1fr 2fr;gap:10%}.intro-left{display:flex;flex-direction:column;align-items:flex-start}.vertical-rule{height:130px;width:1px;background:var(--blue);margin:30px 0}.small-label{font-size:10px;letter-spacing:2px;line-height:2}.intro-right h2,.section-head h2,.two-col h2,.contact-intro h2{font-size:clamp(40px,5vw,78px);letter-spacing:-.065em;line-height:1.16;margin:25px 0}.intro-right>p,.two-col p,.contact-intro p{font-size:16px;line-height:2;color:#637385;max-width:670px}.pill-list{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.pill-list span{border:1px solid #c8d6e0;padding:10px 14px;font-size:11px;font-weight:700}.text-link{display:inline-flex;gap:35px;border-bottom:1px solid var(--blue);padding-bottom:12px;font-size:12px;font-weight:800;color:var(--blue);margin-top:20px}.section-head{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:55px}.section-head h2{margin-bottom:12px}.section-head p{color:var(--muted);line-height:1.8}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{background:white;min-width:0;overflow:hidden;border:1px solid var(--line);transition:transform .3s,box-shadow .3s}.service-card:hover{transform:translateY(-7px);box-shadow:0 22px 60px #09243b1c}.photo{background-image:var(--fallback);background-size:cover;background-position:center;overflow:hidden;position:relative;min-height:250px;background-color:#102e46}.photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .7s}.service-card:hover img,.gallery-item:hover img{transform:scale(1.07)}.service-card-body{padding:26px 25px 32px;position:relative;min-height:230px}.card-index{font-size:10px;color:var(--blue);font-weight:800;letter-spacing:2px}.service-card h3{font-size:21px;letter-spacing:-.04em;margin:19px 0 10px}.service-card p{font-size:12px;line-height:1.9;color:var(--muted);max-width:290px}.round-arrow{position:absolute;bottom:24px;right:24px;border:1px solid var(--line);border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.statement{padding:140px 8%;background:linear-gradient(125deg,#061a31,#0b4164);color:white;position:relative;overflow:hidden}.statement:after{content:'';position:absolute;width:650px;height:650px;border:1px solid #ffffff13;border-radius:50%;right:-100px;top:-200px;box-shadow:0 0 0 90px #ffffff06,0 0 0 180px #ffffff04}.statement h2{font-size:clamp(42px,5.9vw,92px);line-height:1.2;letter-spacing:-.07em;margin:25px 0 38px;position:relative;z-index:1}.statement em{color:#82d7ff}.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.process-item{padding:24px 15px 0 0;border-top:2px solid var(--blue)}.process-item>span{color:var(--blue);font-size:11px;font-weight:800}.process-item h3{font-size:17px;margin:25px 0 14px}.process-item p{font-size:12px;line-height:1.9;color:var(--muted)}.brand-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:40px 0 10px}.brand-tile{border:1px solid var(--line);padding:38px 12px;text-align:center;font-size:clamp(14px,1.6vw,23px);font-weight:800;letter-spacing:-.04em;transition:.3s}.brand-tile:hover{background:var(--navy);color:white;border-color:var(--navy)}.disclaimer{font-size:11px;color:var(--muted);line-height:1.7}.page-hero{padding:190px 8% 95px;min-height:500px}.page-hero h1{font-size:clamp(60px,8vw,128px);letter-spacing:-.08em;line-height:1.05;margin:24px 0 30px}.page-hero p{max-width:650px;line-height:1.9;color:#637385}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about-photo,.detail-photo{min-height:540px}.two-cards{display:grid;grid-template-columns:1fr 1fr;gap:25px}.info-card{border:1px solid var(--line);padding:45px;background:white}.info-card h3{font-size:30px;letter-spacing:-.05em;margin:24px 0}.info-card p{line-height:1.9;color:var(--muted)}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 30px}.feature{padding:23px 0;border-bottom:1px solid #ced9e3;font-weight:700;display:flex;gap:24px}.feature span{color:var(--blue)}.next-service{display:flex;justify-content:space-between;gap:30px;font-weight:800}.next-service a:hover{color:var(--blue)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:35px}.filter{padding:12px 16px;border:1px solid var(--line);background:white;font-size:11px;font-weight:800}.filter.active,.filter:hover{background:var(--navy);color:white}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.gallery-item{border:0;padding:0;position:relative;text-align:left;color:white;overflow:hidden;min-height:390px}.gallery-item .photo{position:absolute;inset:0;height:100%}.gallery-item .photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#06172cdd,transparent 65%)}.gallery-caption{position:absolute;z-index:1;bottom:27px;left:30px;right:30px}.gallery-caption small{font-size:10px;letter-spacing:2px;color:#b5d4e6}.gallery-caption strong{font-size:24px;display:flex;justify-content:space-between;margin-top:12px}.gallery-item[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:150;background:#020b15f5;display:flex;align-items:center;justify-content:center}.lightbox[hidden]{display:none}.lightbox img{max-width:82vw;max-height:80vh;object-fit:contain}.lightbox button{position:absolute;background:#ffffff15;color:white;border:1px solid #ffffff35;font-size:26px;padding:10px 17px}.lightbox-close{right:25px;top:25px}.lightbox-prev{left:25px}.lightbox-next{right:25px}.lightbox-label{position:absolute;bottom:28px;color:white}.technology-row{display:grid;grid-template-columns:70px 1fr 1.5fr 35px;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:30px 0}.technology-row>span:first-child{color:var(--blue);font-size:11px}.technology-row h3{font-size:32px;letter-spacing:-.04em;margin:0}.technology-row p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}.tech-arrow{font-size:25px;color:var(--blue)}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%}.contact-detail{display:flex;flex-direction:column;border-top:1px solid var(--line);padding:24px 0;gap:10px;font-size:12px}.contact-detail span{color:var(--muted)}.enquiry-form{background:var(--light);padding:40px}.enquiry-form label{display:flex;flex-direction:column;font-size:11px;font-weight:800;gap:10px;margin-bottom:22px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{background:white;border:1px solid #d5e0e9;border-radius:0;padding:15px;font-size:13px;outline:none;width:100%;color:var(--navy)}.enquiry-form :is(input,select,textarea):focus{border-color:var(--blue)}.form-status{font-size:11px;color:var(--muted);line-height:1.8}.legal{max-width:900px}.legal h2{margin-top:30px}.legal p{line-height:1.9;color:var(--muted)}.footer{background:#061628;color:white;padding:95px 8% 25px}.footer-top{display:flex;justify-content:space-between;gap:70px}.footer h2{font-size:clamp(52px,6vw,100px);letter-spacing:-.07em;line-height:1.1;margin:24px 0 35px}.footer h2 em{color:#7ad1ff}.footer-links{display:flex;gap:70px;padding-top:10px}.footer-links>div{display:flex;flex-direction:column;gap:15px;min-width:125px}.footer-links b{font-size:11px;color:#78d2ff;margin-bottom:14px}.footer-links a{font-size:11px;color:#c0d1df}.footer-links a:hover{color:white}.footer-bottom{border-top:1px solid #ffffff22;display:flex;justify-content:space-between;gap:20px;padding-top:28px;margin-top:90px;font-size:10px;color:#a4b8c9}.backtop{position:fixed;bottom:28px;right:28px;width:45px;height:45px;background:var(--blue);color:white;border:0;z-index:60;opacity:0;pointer-events:none;transition:.3s}.backtop.visible{opacity:1;pointer-events:auto}.reveal{opacity:0;transform:translateY(32px);filter:blur(5px);transition:opacity .8s,transform .8s,filter .8s}.reveal.in{opacity:1;transform:none;filter:none}.split .word{display:inline-block;opacity:0;transform:translateY(24px);filter:blur(8px);transition:opacity .65s,transform .65s,filter .65s}.split.in .word{opacity:1;transform:translateY(0);filter:blur(0)}.cursor-dot,.cursor-ring{display:none}@media(pointer:fine) and (prefers-reduced-motion:no-preference){.cursor-dot,.cursor-ring{display:block;position:fixed;left:0;top:0;z-index:200;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%)}.cursor-dot{width:6px;height:6px;background:var(--cyan)}.cursor-ring{width:35px;height:35px;border:1px solid var(--cyan);transition:width .2s,height .2s,background .2s}.cursor-ring.hover{width:65px;height:65px;background:#00a8ff18}}
@media(max-width:1100px){.nav{gap:15px}.nav>a{font-size:11px}.service-grid{grid-template-columns:repeat(2,1fr)}.process-grid{grid-template-columns:repeat(3,1fr)}.brand-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.header{padding:16px 6%}.brand-symbol{font-size:31px}.brand-text{font-size:16px}.menu-toggle{display:flex;flex-direction:column;gap:6px;background:transparent;border:0;padding:10px}.menu-toggle span{display:block;width:25px;height:2px;background:currentColor}.nav{position:absolute;top:100%;left:0;right:0;background:white;color:var(--navy);padding:25px 6%;display:none;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 18px 30px #0002}.nav.open{display:flex}.nav>a{padding:14px 0;font-size:13px;border-bottom:1px solid var(--line)}.nav .nav-cta{padding:16px;margin-top:15px}.hero{min-height:680px;height:90svh}.hero-content{padding:175px 6% 80px}.hero h1{font-size:clamp(48px,10vw,80px)}.hero-content>p{font-size:13px}.hero-bottom{left:6%;right:6%;font-size:8px}.section{padding:80px 6%}.intro,.two-col,.contact-layout{grid-template-columns:1fr;gap:35px}.vertical-rule{height:45px}.service-grid,.gallery,.two-cards,.feature-grid{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr 1fr}.brand-grid{grid-template-columns:1fr 1fr}.page-hero{padding:155px 6% 65px;min-height:400px}.page-hero h1{font-size:clamp(50px,11vw,78px)}.about-photo,.detail-photo{min-height:330px}.statement{padding:90px 6%}.footer{padding:70px 6% 25px}.footer-top{flex-direction:column}.footer-links{gap:35px;flex-wrap:wrap}.footer-bottom{flex-direction:column;margin-top:65px}.technology-row{grid-template-columns:30px 1fr 25px}.technology-row p{grid-column:2;grid-row:2}.tech-arrow{grid-column:3;grid-row:1}.enquiry-form{padding:25px}.form-row{grid-template-columns:1fr;gap:0}.gallery-item{min-height:310px}}@media(max-width:450px){.hero-actions{flex-direction:column;align-items:flex-start}.process-grid,.brand-grid{grid-template-columns:1fr}.hero-bottom span:first-child{display:none}.hero-bottom{justify-content:flex-end}.footer-links{gap:45px}.service-card-body{min-height:210px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.split .word{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.loader{display:none}.hero-bg img{animation:none}}

/* COMSOL 2026 enhancements */
.header,.header.scrolled{background:#000!important;color:#fff!important;border-bottom:1px solid #222!important;box-shadow:0 6px 25px #0002}
.nav>a{color:#fff}.nav>a:hover,.nav>a.active{color:#16a7f0!important}.nav .nav-cta{color:#fff!important}.nav .nav-cta:hover{background:#0875b9}
.loader{background:#000}.loader-track span{background:#149de4}
.footer-address{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;padding:24px 0;border-top:1px solid #ffffff30;color:#fff;font-size:13px}.footer-address span{max-width:470px}.footer-address a{color:#69c7ff}
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}.enquiry-form button:disabled{opacity:.65;cursor:wait}
@media(max-width:900px){.nav,.nav.open{background:#000!important;color:#fff!important}.nav>a{color:#fff!important;border-color:#333}.header{background:#000!important}}
@media(prefers-reduced-motion:reduce){.loader-logo,.loader-track span{animation:none}}
