:root {
  --ink: #142034;
  --muted: #667286;
  --night: #101a2b;
  --night-deep: #0b1423;
  --white: #fff;
  --cloud: #f7f8fb;
  --line: #e4e8f0;
  --aqua: #9ee5e5;
  --purple: #bbadfd;
  --radius: 18px;
  --max: 1160px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid #6fbdd3; outline-offset: 5px; }
.container { width: min(var(--max), calc(100% - 64px)); margin-inline: auto; }
.skip-link { position: absolute; top: -120px; left: 16px; z-index: 999; padding: 12px 18px; background: white; border: 2px solid #2563eb; border-radius: 8px; }
.skip-link:focus { top: 15px; }
.site-header { position: relative; z-index: 50; height: 88px; background: var(--night); color: white; border-bottom: 1px solid rgba(255,255,255,.09); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; gap: 12px; }
.brand img { flex: 0 0 auto; }
.brand-wordmark { color: #fff; letter-spacing: .085em; font-size: 16px; line-height: 1; font-weight: 850; }
.brand-wordmark span { font-weight: 450; }
.main-nav { display: flex; align-items: center; gap: 40px; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.75); }
.main-nav a { transition: color .2s ease; }
.main-nav a:hover { color: #fff; }
.main-nav .nav-contact { color: #0f2336; background: #d0f3f0; padding: 13px 18px; border-radius: 8px; }
.nav-contact span { margin-left: 12px; }
.menu-toggle { display: none; border: 0; padding: 8px; color: white; background: none; cursor: pointer; }
.menu-toggle span { display: block; width: 23px; height: 2px; margin: 5px 0; background: currentColor; border-radius: 2px; }
.hero { overflow: hidden; position: relative; isolation: isolate; background: radial-gradient(ellipse at 72% 34%, #1b3650 0%, transparent 42%), linear-gradient(125deg,#101a2b 0%,#15243a 60%,#101d30 100%); color: #fff; }
.hero:before { position: absolute; inset: 0; z-index: -1; content: ""; opacity: .17; background-image: linear-gradient(to right,rgba(187,208,243,.2) 1px,transparent 1px),linear-gradient(to bottom,rgba(187,208,243,.2) 1px,transparent 1px); background-size: 77px 77px; mask-image: linear-gradient(90deg, transparent 4%, black 100%); }
.hero-glow { width: 440px; height: 440px; border-radius: 50%; position: absolute; right: -220px; top: -200px; background: #37c9d2; opacity: .12; filter: blur(115px); pointer-events: none; }
.hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; min-height: 590px; gap: 12px; padding-top: 54px; padding-bottom: 74px; }
.hero-copy { position: relative; z-index: 2; max-width: 600px; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(209,231,245,.2); border-radius: 100px; background: rgba(255,255,255,.055); padding: 10px 14px; color: #b8d7e9; font-size: 10px; letter-spacing: .155em; font-weight: 700; }
.eyebrow-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #99ede2; box-shadow: 0 0 0 4px rgba(153,237,226,.1); }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { letter-spacing: -.043em; }
h1 { margin: 31px 0 25px; font-size: clamp(48px,5.15vw,78px); line-height: 1.055; font-weight: 750; }
h1 span { display: block; color: #a6e7e4; }
.hero-description { font-size: 16px; max-width: 485px; line-height: 1.85; color: #bdc9da; margin-bottom: 32px; }
.hero-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 28px; font-weight: 700; border-radius: 9px; font-size: 13px; padding: 17px 21px; transition: transform .2s,background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: #baf0eb; color: #11283b; }
.button-primary:hover { background: #d0f8f3; }
.button-ghost { background: rgba(255,255,255,.08); color: white; border: 1px solid rgba(255,255,255,.16); }
.button-ghost:hover { background: rgba(255,255,255,.15); }
.hero-footnote { display:flex;align-items:center;gap:13px;margin:38px 0 0;color:#8e9fb4;font-size:11px;letter-spacing:.04em; }
.mini-line { height:1px;width:34px;background:#6893a6; }
.hero-art { align-self: center; justify-self: center; width: 100%; max-width: 645px; min-width: 0; margin: -2% -5% -5% 0; }
.hero-art img { width: 100%; height: auto; filter: drop-shadow(0 30px 65px rgba(0,0,0,.1)); }
.hero-bottom { height: 12px; background: linear-gradient(90deg,#a7e6dd,#a8b9f8,#e6cbde); }
.section { padding: 110px 0; }
.section-kicker { font-size: 11px; letter-spacing: .19em; font-weight: 800; color: #548b9d; margin-bottom: 19px; }
.intro { background: #fff; }
.intro-inner { display: grid; grid-template-columns: 1fr 2fr; column-gap: 60px; align-items: start; }
.intro .section-kicker { padding-top: 10px; }
.intro h2 { font-size: clamp(28px,3.2vw,45px); line-height: 1.24; max-width: 710px; font-weight: 700; margin: 0; }
.intro h2 em { color: #658b90; font-style: normal; }
.intro-inner > p:last-child { grid-column: 2; max-width: 690px; color: var(--muted); line-height: 1.8; margin: 22px 0 0; font-size: 15px; }
.services { background: var(--cloud); }
.section-heading { display: flex; gap: 60px; justify-content: space-between; align-items: end; margin-bottom: 43px; }
.section-heading h2 { font-size: clamp(33px,4vw,51px); line-height: 1.15; max-width: 530px; margin: 0; }
.section-heading h2 span { color: #73999c; }
.section-heading > p { max-width: 337px; color: var(--muted); font-size: 14px; line-height: 1.9; margin: 0 0 4px; }
.service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.service-card { background: #fff; border: 1px solid #edf0f4; border-radius: var(--radius); padding: 32px; min-height: 350px; display: flex; flex-direction: column; box-shadow: 0 14px 50px rgba(25,43,67,.035); transition: transform .25s ease,box-shadow .25s ease; }
.service-card:hover { transform: translateY(-5px);box-shadow:0 22px 50px rgba(25,43,67,.08); }
.service-icon { width: 58px; height: 58px; border-radius: 15px; display:flex;align-items:center;justify-content:center;margin-bottom:29px; }
.service-icon svg { width: 30px; height: 30px; }
.service-icon-violet { background: #eeebff; color: #7868bc; }
.service-icon-teal { background: #e2f6f5; color: #33898c; }
.service-icon-orange { background: #fff0e6; color: #b67a51; }
.service-number { color: #8291a3; font-size: 10px; font-weight: 800; letter-spacing: .15em; margin-bottom: 11px; }
.service-card h3 { font-size: 22px; line-height: 1.2; letter-spacing: -.035em; margin-bottom: 15px; }
.service-card p { color: var(--muted); font-size: 13px; line-height: 1.85; margin: 0; }
.service-line { display: block; margin-top:auto; padding-top: 25px; border-bottom: 2px solid #e6ebef; width: 38px; }
.approach { background: #fff; }
.approach-inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(45px,8vw,150px); align-items:center; }
.approach-copy h2 {font-size:clamp(44px,5vw,67px);line-height:1.12;margin:0 0 23px;}
.approach-copy h2 span { color: #7a9ca0; }
.approach-copy > p:not(.section-kicker) { color:var(--muted);line-height:1.85;font-size:15px;max-width:440px;margin-bottom:24px; }
.text-link { display:inline-flex;align-items:center;gap:15px;font-size:13px;font-weight:800;padding-bottom:9px;border-bottom:1px solid #7caaac; }
.text-link:hover { color:#297c85; }
.approach-steps { list-style:none;padding:0;margin:0; }
.approach-steps li { display:grid;grid-template-columns:62px 1fr;gap:20px;padding:27px 0;border-bottom:1px solid #e7eaf0; }
.approach-steps li:first-child { border-top:1px solid #e7eaf0; }
.step-index { color:#74a5aa;font-weight:800;font-size:19px;padding-top:1px; }
.approach-steps h3 { margin:0 0 8px;font-size:22px; }
.approach-steps p { color:var(--muted);font-size:13px;line-height:1.7;margin:0; }
.contact {padding-top:35px;padding-bottom:110px;}
.contact-panel { position:relative;isolation:isolate; overflow:hidden; padding:73px clamp(32px,8vw,110px); border-radius:23px;color:white; background:linear-gradient(115deg,#14243b 0%,#1b3447 65%,#1b4654 100%); }
.contact-panel:after { content:"";position:absolute;right:-100px;top:-180px;width:600px;height:600px;border:1px solid rgba(200,237,244,.1);border-radius:50%;box-shadow:0 0 0 90px rgba(183,232,234,.025),0 0 0 175px rgba(183,232,234,.02);z-index:-1;pointer-events:none; }
.contact-orb { position:absolute;right:13%;top:18%;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#aff1e9 0%,#71aab1 36%,#314f75 76%);opacity:.55;filter:blur(1px);pointer-events:none;z-index:-1;box-shadow:0 18px 95px rgba(104,226,229,.18); }
.contact-panel .section-kicker { color:#9ddcd7; }
.contact-panel h2 { font-size:clamp(44px,5vw,69px);line-height:1.06;margin:0 0 22px; }
.contact-panel > p:not(.section-kicker):not(.contact-caption) {color:#c7d7e5;font-size:15px;line-height:1.85;max-width:490px;margin-bottom:28px;}
.button-contact { background:#cbf4ef;color:#153442; }
.contact-pending { display:inline-flex;align-items:center;gap:11px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.2);color:#e3edf4;border-radius:9px;padding:15px 18px;font-size:13px;font-weight:650; }
.pending-dot { height:7px;width:7px;background:#acece1;border-radius:50%; }
.contact-caption {font-size:11px;margin:15px 0 0;color:#a8c0ce;}
.footer { background: #101a2b; color:white; }
.footer-main { min-height:145px;display:flex;align-items:center;justify-content:space-between;gap:30px; }
.footer-main p { color:#9caebf;font-size:12px;margin:0; }
.back-top { color:#bed9df;font-size:12px;display:flex;gap:12px;align-items:center; }
.footer-bottom {display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 0;border-top:1px solid rgba(255,255,255,.1);font-size:11px;color:#8193a7;}
@media (max-width:960px) {
 .container { width:min(var(--max),calc(100% - 42px)); }
 .hero-inner { grid-template-columns:1.05fr .95fr; min-height:540px; }
 h1 {font-size:clamp(43px,6vw,60px);}
 .hero-description {font-size:14px;}
 .hero-art { margin-right:-15%;width:110%; }
 .service-card {padding:25px;min-height:370px;}
 .service-card h3 {font-size:19px;}
 .section-heading { gap:30px;}
 .intro-inner {column-gap:30px;}
}
@media (max-width:700px) {
 html {scroll-padding-top:74px;}
 .container {width:calc(100% - 38px);}
 .site-header {height:72px;}
 .brand-wordmark {font-size:14px;}
 .brand img {height:35px;width:35px;}
 .menu-toggle {display:block;}
 .main-nav {display:none;position:absolute;top:72px;left:0;right:0;background:#142339;flex-direction:column;align-items:stretch;gap:0;padding:10px 19px 18px;border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 15px 22px rgba(0,0,0,.16);}
 .main-nav.is-open {display:flex;}
 .main-nav a {padding:15px 10px;}
 .main-nav .nav-contact {align-self:flex-start;padding:12px 16px;margin-top:8px;}
 .hero-inner {grid-template-columns:1fr;gap:0;padding-top:64px;padding-bottom:28px;}
 .hero-copy {max-width:540px;}
 h1 {font-size:clamp(43px,9.2vw,66px);margin-top:27px;}
 .hero-description {font-size:15px;line-height:1.75;max-width:500px;}
 .hero-footnote {margin-top:29px;}
 .hero-art {width:min(570px,110%);margin:10px auto -30px;}
 .section {padding:75px 0;}
 .intro-inner {display:block;}
 .intro h2 {font-size:clamp(29px,7vw,43px);}
 .intro-inner > p:last-child {margin-top:22px;}
 .section-heading {display:block;}
 .section-heading h2 {font-size:clamp(34px,7vw,48px);}
 .section-heading > p {max-width:510px;margin:18px 0 0;}
 .service-grid {grid-template-columns:1fr;gap:15px;}
 .service-card {min-height:unset;padding:28px;}
 .service-icon {margin-bottom:22px;}
 .approach-inner {grid-template-columns:1fr;gap:40px;}
 .approach-copy h2 {font-size:clamp(44px,9vw,60px);}
 .approach-steps li {padding:23px 0;}
 .contact {padding-top:0;padding-bottom:75px;}
 .contact-panel {padding:62px 31px 55px;}
 .contact-orb {width:200px;height:200px;right:-100px;top:-45px;opacity:.22;}
 .footer-main {flex-wrap:wrap;gap:17px;padding:35px 0;min-height:unset;}
 .footer-main p {width:100%;order:3;}
 .footer-bottom {font-size:10px;flex-wrap:wrap;}
}
@media (max-width:400px) {
 .container {width:calc(100% - 32px);}
 .button {font-size:12px;padding:15px 16px;gap:12px;}
 .hero-actions {gap:10px;}
 .eyebrow {letter-spacing:.08em;font-size:9px;}
 .contact-panel {padding-inline:24px;}
}
@media (prefers-reduced-motion:reduce) {html {scroll-behavior:auto;} *,*:before,*:after {transition:none!important;animation:none!important;} }
[hidden] { display: none !important; }
