@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:#071a35;--navy2:#0b2b52;--blue:#1297f5;--cyan:#65d5f5;--ink:#10233f;--muted:#60718a;--line:#e1e9f2;--pale:#f3f8fc;--white:#fff;--radius:20px;--shadow:0 14px 40px #08244812}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.65;background:white}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.15;letter-spacing:-.035em;margin:0 0 16px}h1{font-size:clamp(2.5rem,5.6vw,4.7rem);font-weight:800}h2{font-size:clamp(1.8rem,3vw,2.7rem)}h3{font-size:1.25rem}p{margin:0 0 16px;color:var(--muted)}a{color:inherit;text-decoration:none}.site-header{height:86px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:white;position:relative;z-index:5}.brand{display:inline-flex;align-items:center;gap:10px;font:800 .86rem/1.05 Manrope,sans-serif;letter-spacing:-.03em}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--cyan),var(--blue));font-size:1.8rem;color:white;font-weight:800}.nav{display:flex;align-items:center;gap:clamp(16px,2.3vw,32px);font-size:.88rem;font-weight:600}.nav a{opacity:.82;transition:opacity .2s,color .2s}.nav a:hover,.nav a.active{opacity:1;color:var(--cyan)}.nav .nav-cta{opacity:1;background:var(--blue);padding:11px 18px;border-radius:999px;color:white}.menu-toggle{display:none;background:none;border:0;color:white;font-size:1.6rem}.hero{min-height:600px;background:radial-gradient(ellipse at 80% 45%,#155ba4 0,transparent 42%),linear-gradient(115deg,var(--navy),#09264a 70%,#0a3b70);padding:90px max(7vw,28px);display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:40px;color:white;overflow:hidden}.hero h1 span,.page-hero h1 span{color:var(--cyan)}.hero .lead,.page-hero .lead{color:#d4e3f5;max-width:570px;font-size:1.12rem}.eyebrow{font-size:.75rem;letter-spacing:.17em;font-weight:700;color:var(--blue);margin-bottom:16px}.hero .eyebrow,.page-hero .eyebrow,.callout .eyebrow{color:var(--cyan)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--blue);color:white;padding:13px 21px;border-radius:999px;font:700 .92rem "DM Sans",sans-serif;border:1px solid var(--blue);cursor:pointer;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 24px #1297f544}.button-outline{background:transparent;border-color:#8aa7c9}.button-light{background:white;color:var(--navy);border-color:white}.hero-art{min-height:370px;position:relative;display:grid;place-items:center}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-one{width:300px;height:300px;background:linear-gradient(135deg,#26c6f4aa,#1271e355);right:8%;top:3%}.orb-two{width:180px;height:180px;border:1px solid #7ce3ff88;right:0;bottom:6%;box-shadow:0 0 80px #168bff33}.glass-card{position:relative;z-index:1;background:#ffffff12;border:1px solid #ffffff38;backdrop-filter:blur(16px);border-radius:24px;padding:30px;width:min(100%,360px);box-shadow:0 30px 70px #00122a55;transform:rotate(-3deg)}.mini-label,.glass-card small{display:block;color:#b8d7f3;font-size:.7rem;letter-spacing:.12em}.glass-card strong{display:block;font:700 1.65rem Manrope;margin:15px 0 30px}.chart{height:100px;display:flex;align-items:end;gap:12px;border-bottom:1px solid #ffffff4a;padding:0 0 10px}.chart i{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(var(--cyan),var(--blue));height:var(--h,60%)}.chart i:nth-child(1){height:30%}.chart i:nth-child(2){height:45%}.chart i:nth-child(3){height:40%}.chart i:nth-child(4){height:70%}.chart i:nth-child(5){height:56%}.chart i:nth-child(6){height:85%}.chart i:nth-child(7){height:100%}.glass-card small{margin-top:15px;letter-spacing:0}.section{padding:88px max(7vw,28px)}.section-heading{text-align:center;max-width:680px;margin:0 auto 42px}.section-heading>p:last-child{font-size:1.05rem}.card-grid{display:grid;gap:22px}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.two{grid-template-columns:repeat(2,1fr)}.feature-card{border:1px solid var(--line);padding:30px;border-radius:var(--radius);box-shadow:var(--shadow);background:white}.icon{width:48px;height:48px;border-radius:14px;background:#e5f5ff;color:var(--blue);display:grid;place-items:center;font-size:1.6rem;margin-bottom:23px}.feature-card p{margin-bottom:0}.callout{padding:54px max(7vw,28px);background:linear-gradient(115deg,#0b2b52,#0872bd);color:white;display:flex;align-items:center;justify-content:space-between;gap:28px}.callout h2{margin-bottom:10px}.callout p:not(.eyebrow){color:#d6e8f8;margin-bottom:0}.page-hero{padding:88px max(7vw,28px);background:radial-gradient(ellipse at 90% 0,#104a83 0,transparent 45%),var(--navy);color:white}.page-hero h1{max-width:900px;font-size:clamp(2.5rem,5vw,4.3rem)}.page-hero .lead{max-width:690px}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}.quote-card{padding:42px;border-radius:var(--radius);background:linear-gradient(140deg,#eaf7ff,#f7fbff);border:1px solid #d7edfb}.quote-mark{font:800 5rem/1 Manrope;color:var(--blue)}blockquote{margin:10px 0 22px;font:700 1.6rem/1.4 Manrope;color:var(--navy)}.quote-card p{font-size:.85rem}.muted{background:var(--pale)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.steps>div{border-top:2px solid var(--line);padding-top:22px}.steps b{color:var(--blue);font:800 1.8rem Manrope}.steps h3{margin-top:20px}.service-card{display:flex;gap:22px;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow)}.service-icon{flex:0 0 54px;height:54px;border-radius:16px;background:#e5f5ff;color:var(--blue);display:grid;place-items:center;font-size:1.8rem}.service-card .eyebrow{margin-bottom:8px}.service-card h2{font-size:1.6rem}.service-card ul{padding-left:20px;color:var(--muted)}.service-card li{margin:5px 0}.filters{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-bottom:32px}.filter{border:1px solid var(--line);background:white;border-radius:999px;padding:10px 18px;color:var(--ink);cursor:pointer;font:600 .9rem "DM Sans"}.filter.active,.filter:hover{background:var(--navy);color:white;border-color:var(--navy)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:white}.project-visual{height:210px;position:relative;display:grid;place-items:center;overflow:hidden;color:white}.project-visual>span{position:absolute;left:22px;top:16px;font:800 1rem Manrope;opacity:.75}.visual-blue{background:linear-gradient(135deg,#0a2850,#148ce1)}.visual-purple{background:linear-gradient(135deg,#28265f,#a77af5)}.visual-teal{background:linear-gradient(135deg,#064b5a,#22c9b7)}.visual-bars{display:flex;align-items:end;gap:13px;height:100px}.visual-bars i{width:25px;border-radius:6px 6px 0 0;background:#ffffffbd;height:35%}.visual-bars i:nth-child(2){height:55%}.visual-bars i:nth-child(3){height:45%}.visual-bars i:nth-child(4){height:80%}.visual-bars i:nth-child(5){height:100%}.cloud-shape{font-size:6rem;text-shadow:0 12px 40px #0003}.device-shape{width:100px;height:130px;border:5px solid #ffffffc9;border-radius:15px;padding:25px 10px;display:flex;flex-direction:column;gap:10px;transform:rotate(8deg)}.device-shape i{height:9px;border-radius:9px;background:#ffffffb5}.project-copy{padding:25px}.project-copy .eyebrow{font-size:.68rem;margin-bottom:8px}.project-copy h2{font-size:1.35rem}.project-copy p:not(.eyebrow){font-size:.95rem}.tag{display:inline-block;border-radius:999px;background:#edf6fc;color:#28618c;font-size:.75rem;padding:5px 10px}.filter-empty{text-align:center;margin-top:22px}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.contact-info h2{font-size:2rem}.contact-detail{display:flex;gap:16px;margin:28px 0}.contact-detail>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#e5f5ff;color:var(--blue);font-size:1.3rem}.contact-detail p{margin:3px 0}.note{padding:18px;background:var(--pale);border-left:3px solid var(--blue);border-radius:8px;margin-top:32px;font-size:.9rem}.note p{font-size:.85rem;margin:6px 0 0}.contact-form{padding:32px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.contact-form label{display:block;font-weight:700;font-size:.9rem;margin:0 0 7px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #d5e0ec;border-radius:10px;padding:13px 14px;margin-bottom:18px;font:inherit;color:var(--ink);background:white}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:3px solid #1297f522;border-color:var(--blue)}.contact-form textarea{resize:vertical}.form-status{margin:14px 0 0;font-weight:600}.footer{background:#06162d;color:white;padding:38px max(5vw,24px) 24px;display:grid;grid-template-columns:1fr 1fr;gap:15px 30px;align-items:center}.footer>p{color:#a9bdd3;margin:0}.footer-links{justify-self:end;display:flex;gap:22px;font-size:.88rem;color:#c6d7e8}.footer-links a:hover{color:var(--cyan)}.footer small{grid-column:1/-1;border-top:1px solid #ffffff1a;padding-top:20px;color:#8ca4bd;font-size:.75rem}.error-page{min-height:100vh;background:radial-gradient(ellipse at 50% 80%,#104c83 0,transparent 45%),var(--navy);color:white;display:flex;flex-direction:column}.error-main{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px 90px}.error-number{font:800 clamp(7rem,22vw,15rem)/.95 Manrope;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:2px var(--cyan);text-shadow:0 0 70px #1599f544}.error-main h1{font-size:clamp(2rem,5vw,3.5rem)}.error-main .lead{max-width:560px;color:#b8cde3}.error-help{margin-top:25px;color:#b8cde3}.error-help a{color:var(--cyan);text-decoration:underline}.error-nav{gap:25px}
@media(max-width:900px){.nav{gap:14px;font-size:.82rem}.hero{padding-top:65px;padding-bottom:65px}.three,.project-grid{grid-template-columns:repeat(2,1fr)}.four{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.split,.contact-layout{gap:35px}.service-card{padding:22px;gap:15px}}
@media(max-width:680px){.site-header{height:74px;padding:0 22px}.menu-toggle{display:block}.nav{display:none;position:absolute;left:0;right:0;top:74px;padding:18px 24px 25px;background:var(--navy);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 16px 24px #00102035}.nav.open{display:flex}.nav a{padding:12px 0}.nav .nav-cta{text-align:center;margin-top:10px;padding:12px}.hero{grid-template-columns:1fr;padding:65px 24px 48px;gap:5px}.hero-art{min-height:260px}.orb-one{width:220px;height:220px}.glass-card{width:290px;padding:23px}.section{padding:62px 24px}.page-hero{padding:62px 24px}.three,.two,.project-grid,.split,.contact-layout{grid-template-columns:1fr}.four{grid-template-columns:repeat(2,1fr);gap:12px}.feature-card{padding:22px}.callout{padding:42px 24px;align-items:flex-start;flex-direction:column}.steps{grid-template-columns:1fr 1fr;gap:18px}.service-card{flex-direction:column}.contact-form{padding:22px}.footer{grid-template-columns:1fr;gap:15px}.footer-links{justify-self:start;flex-wrap:wrap;gap:15px}.footer small{grid-column:auto}.error-nav{display:flex;position:static;padding:0;background:none;box-shadow:none;flex-direction:row}.error-nav a{padding:0}.error-page .site-header{gap:12px}.error-page .brand{font-size:.7rem}.error-page .brand-mark{width:34px;height:34px}}
@media(max-width:390px){.four{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.actions .button{width:100%}}
/* Portfolio images: keep them inside their cards */
.project-image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 210px;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
}

/* Prevent images from overflowing portfolio cards */
.project-card {
  min-width: 0;
  overflow: hidden;
}

.project-grid {
  min-width: 0;
}

.project-copy {
  overflow-wrap: break-word;
}