@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#031b35;--deep:#021225;--blue:#0877bd;--ice:#83c9f4;--muted:#a1b6cd;--line:rgba(160,199,229,.19);--white:#f4f8fc;font-family:Manrope,Arial,sans-serif;color:var(--white);background:var(--deep);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}.wrap{width:min(1320px,calc(100% - 100px));margin-inline:auto}.skip{position:absolute;left:20px;top:-100px;z-index:20;background:var(--white);color:var(--navy);padding:14px}.skip:focus{top:20px}:focus-visible{outline:3px solid var(--ice);outline-offset:6px}.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:3}.brand{width:206px;display:flex;flex-direction:column;gap:10px}.brand img{width:206px;height:auto}.brand span{font-size:.65rem;letter-spacing:.25em;color:var(--muted)}nav{display:flex;align-items:center;gap:36px;font-size:.875rem}nav a{transition:color .2s}nav a:hover{color:var(--ice)}.nav-contact{border:1px solid var(--line);border-radius:40px;padding:12px 22px}.hero{min-height:650px;position:relative;display:flex;align-items:center;padding-block:75px 100px;isolation:isolate}.hero-art{position:absolute;z-index:-1;top:0;bottom:35px;right:-30px;width:72%;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,transparent,black 27%);-webkit-mask-image:linear-gradient(90deg,transparent,black 27%)}.hero-art img{height:100%;width:100%;object-fit:cover;object-position:70% center;animation:float 9s ease-in-out infinite}.hero-copy{width:65%;position:relative}.eyebrow{font-size:.75rem;letter-spacing:.19em;font-weight:700;color:var(--ice);margin:0 0 28px}h1{font-size:clamp(3rem,5.6vw,5.2rem);font-weight:500;letter-spacing:-.055em;line-height:1.1;margin:0 0 30px}h1 span{color:var(--ice)}.intro{font-size:1.0625rem;line-height:1.85;max-width:470px;color:var(--muted);margin:0 0 32px}.button{display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;min-height:52px;padding:15px 26px;border-radius:40px;background:var(--white);color:var(--navy);transition:background .2s,transform .2s}.button:hover{background:var(--ice);transform:translateY(-2px)}.hero-bottom{position:absolute;bottom:25px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:18px;color:var(--muted);font-size:.7rem;letter-spacing:.13em}.hero-bottom a{display:flex;align-items:center;gap:14px;letter-spacing:0;font-size:.75rem}.scroll-mark{height:28px;width:17px;border:1px solid var(--muted);border-radius:10px;position:relative}.scroll-mark:after{content:'';position:absolute;width:2px;height:7px;background:var(--ice);left:6px;top:5px}.services{padding-block:75px 85px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px}.section-heading .eyebrow{margin-bottom:18px}h2{font-size:clamp(2.1rem,3.6vw,3.25rem);font-weight:500;line-height:1.18;letter-spacing:-.045em;margin:0}.section-heading>p{color:var(--muted);font-size:.9375rem;line-height:1.8;margin:0 0 5px}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.service{min-height:265px;padding:28px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;position:relative;background:rgba(6,36,64,.25);transition:background .3s}.service:hover{background:#082d4d}.number{color:var(--ice);font-size:.7rem;letter-spacing:.14em;font-weight:600}.service h3{font-size:1.375rem;letter-spacing:-.035em;font-weight:500;line-height:1.3;margin:28px 0 14px}.service p{font-size:1rem;line-height:1.75;color:var(--muted);margin:0}.service-link{margin-top:auto;padding-top:22px;color:var(--ice);font-size:.8125rem;text-decoration:underline;text-underline-offset:5px}.service-link:hover{color:white}.group-section{background:#06223e;border-block:1px solid var(--line)}.group-inner{padding-block:56px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.group-inner p:not(.eyebrow){color:var(--muted);line-height:1.85;font-size:1rem;margin:0}.group-inner .eyebrow{margin-bottom:17px}.contact{padding-block:78px;display:flex;align-items:center;justify-content:space-between;gap:35px}.contact h2{font-size:clamp(2.2rem,4.4vw,4rem)}.contact .eyebrow{margin-bottom:20px}.contact p:not(.eyebrow){color:var(--muted);font-size:1rem;line-height:1.7;max-width:570px;margin-bottom:0}.contact-action{text-align:center;flex-shrink:0}.contact-action>span{display:block;font-size:.75rem;color:var(--muted);margin-top:13px}.footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-block:28px;font-size:.75rem;color:var(--muted);gap:25px}.footer img{width:135px;height:auto}.footer-links{display:flex;gap:24px}.footer-links a:hover{color:white}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.025)}}
@media(min-width:1600px){.hero{min-height:730px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{min-height:600px}.hero-copy{width:76%}.hero-art{right:-25px;width:85%;opacity:.75}.hero-bottom span:nth-child(2){display:none}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service{min-height:250px}.group-inner{gap:40px}.section-heading>p{max-width:270px}}
@media(max-width:650px){.wrap{width:calc(100% - 40px)}.header{height:92px}.brand,.brand img{width:150px}.brand span{font-size:.6rem}nav{gap:0}nav>a:not(.nav-contact){display:none}.nav-contact{font-size:.75rem;padding:11px 14px}.hero{align-items:flex-start;min-height:720px;padding-top:54px;padding-bottom:260px}.hero-copy{width:100%}.hero-copy .eyebrow{font-size:.63rem;letter-spacing:.13em;margin-bottom:23px}h1{font-size:clamp(2.6rem,9vw,3.7rem);margin-bottom:22px}.intro{font-size:.9375rem;line-height:1.75;max-width:340px;margin-bottom:25px}.hero-art{inset:auto -20px 23px auto;width:100%;height:360px;opacity:.75;mask-image:linear-gradient(180deg,transparent,black 30%);-webkit-mask-image:linear-gradient(180deg,transparent,black 30%)}.hero-art img{object-fit:contain;object-position:right center}.hero-bottom{bottom:10px}.hero-bottom a{font-size:.65rem}.hero-bottom>span{font-size:.62rem}.services{padding-block:54px 55px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{max-width:100%;margin-top:20px;font-size:.875rem}.section-heading .eyebrow{font-size:.7rem}.service{padding:23px 18px;min-height:270px}.service h3{font-size:1.125rem;margin-top:24px}.service p{font-size:1rem}.number{font-size:.625rem;letter-spacing:.08em}.service-link{font-size:.75rem}.group-inner{grid-template-columns:1fr;gap:24px;padding-block:45px}.contact{display:block;padding-block:55px}.contact-action{text-align:left;margin-top:30px}.contact-action>span{padding-left:20px}.footer{align-items:flex-start;flex-wrap:wrap;padding-block:25px;gap:20px}.footer-links{width:100%;justify-content:space-between}.footer>span{font-size:.65rem;align-self:center}}
@media(max-width:360px){.service-grid{grid-template-columns:1fr}.service{min-height:220px}.hero-bottom a{max-width:130px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-art img{animation:none}.reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}

@media(max-width:500px){.service-grid{grid-template-columns:1fr}.service{min-height:220px;padding:25px}.service h3{font-size:1.375rem;margin-top:20px}.service p{max-width:38ch}.number{font-size:.75rem}}

/* Independent layers keep the automatic drift and pointer tilt smooth. */
.hero-motion{width:100%;height:100%;transform-origin:65% 50%;transition:transform .65s cubic-bezier(.2,.65,.3,1);will-change:transform}
.hero-art img{animation:hero-drift 10s ease-in-out infinite;transform-origin:65% 50%;will-change:transform}
@keyframes hero-drift{0%,100%{transform:translate3d(-12px,12px,0) rotate(-5deg) scale(1.035)}50%{transform:translate3d(12px,-20px,0) rotate(5deg) scale(1.09)}}

.site-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--deep)}
.hero-art{z-index:-2}
.hero-atmosphere{position:absolute;inset:0 -30px 35px;z-index:-1;pointer-events:none;overflow:hidden;mask-image:linear-gradient(180deg,transparent,black 12%,black 85%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,black 12%,black 85%,transparent)}
.hero-atmosphere:before,.hero-atmosphere:after{content:'';position:absolute;width:900px;height:650px;border-radius:50%;background:radial-gradient(ellipse,rgba(8,119,189,.42),rgba(8,119,189,.14) 40%,transparent 68%);animation:banner-light 12s ease-in-out infinite alternate;will-change:transform,opacity}
.hero-atmosphere:before{left:-350px;top:-200px}
.hero-atmosphere:after{right:-320px;bottom:-280px;background:radial-gradient(ellipse,rgba(32,139,209,.38),rgba(25,94,172,.16) 40%,transparent 68%);animation-delay:-6s;animation-direction:alternate-reverse}
.hero-particles{position:absolute;inset:0}
.hero-particles i{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:#83c9f4;box-shadow:0 0 16px 4px rgba(83,185,248,.45);opacity:.5;animation:particle-drift calc(var(--duration) * .6) ease-in-out var(--delay) infinite}
.contact{position:relative;padding-block:90px;gap:60px}
.contact-action{text-align:left;flex-shrink:1;min-width:300px;max-width:40%}
.contact-details{display:grid;gap:24px;margin-bottom:30px}
.contact-detail{display:block;width:fit-content;max-width:100%;transition:color .2s}
.contact-detail span{display:block;font-size:.875rem;color:var(--muted);margin-bottom:5px}
.contact-detail strong{font-size:1.75rem;font-weight:500;letter-spacing:-.025em;overflow-wrap:anywhere;line-height:1.4}
.contact-detail[href^="mailto:"] strong{font-size:1.35rem}
.contact-detail:hover{color:var(--ice)}
.contact-social{display:block;width:fit-content;font-size:.875rem;color:var(--muted);margin-top:17px;text-decoration:underline;text-underline-offset:5px}
.contact-social:hover{color:var(--ice)}
.footer{position:relative;flex-wrap:wrap}
@keyframes banner-light{from{transform:translate3d(-60px,-40px,0) scale(.85);opacity:.45}to{transform:translate3d(220px,110px,0) scale(1.3);opacity:1}}
@keyframes particle-drift{0%,100%{transform:translate3d(-12px,45px,0);opacity:.25}50%{transform:translate3d(40px,-65px,0);opacity:.9}}
.motion-idle .hero-art img,.motion-idle .hero-atmosphere *,.motion-idle .hero-atmosphere:before,.motion-idle .hero-atmosphere:after,.page-hidden .hero-art img,.page-hidden .hero-atmosphere *,.page-hidden .hero-atmosphere:before,.page-hidden .hero-atmosphere:after{animation-play-state:paused}
@media(max-width:1000px){.contact{gap:35px}.contact-action{min-width:275px}}
@media(max-width:650px){.contact{padding-block:60px}.contact-action{max-width:100%;min-width:0;margin-top:35px}.contact-details{gap:22px}.contact-detail strong{font-size:1.8rem}.contact-detail[href^="mailto:"] strong{font-size:1.25rem}.hero-atmosphere{inset:0 -20px 25px}.hero-atmosphere:before,.hero-atmosphere:after{width:650px}.footer{gap:20px}}
@keyframes banner-light-soft{from{transform:translate3d(0,0,0);opacity:.35}to{transform:translate3d(12px,8px,0);opacity:1}}
@keyframes hero-drift-soft{0%,100%{transform:rotate(-1deg) scale(1.035)}50%{transform:rotate(1deg) scale(1.05)}}
@keyframes particle-glow{0%,100%{opacity:.2}50%{opacity:.85}}
@media(prefers-reduced-motion:reduce){.hero-art img{animation:hero-drift-soft 18s ease-in-out infinite}.hero-atmosphere:before,.hero-atmosphere:after{animation-name:banner-light-soft;animation-duration:10s}.hero-particles i{animation:particle-glow 8s ease-in-out var(--delay) infinite}.hero-motion{transform:none!important;transition:none;will-change:auto}}

/* Full-width atmosphere; content stays aligned with the rest of the page. */
.hero{display:block;padding:0;overflow:hidden;background:radial-gradient(ellipse at 72% 38%,rgba(8,77,132,.28),transparent 68%),var(--deep)}
.hero-inner{position:relative;min-height:inherit;display:flex;align-items:center;padding-block:75px 100px}
.hero-atmosphere{inset:0 0 35px}
.hero-art{mask-image:linear-gradient(90deg,transparent,black 27%,black 82%,transparent),linear-gradient(180deg,black 80%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,transparent,black 27%,black 82%,transparent),linear-gradient(180deg,black 80%,transparent);-webkit-mask-composite:source-in}
@media(max-width:650px){.hero-inner{align-items:flex-start;padding-block:54px 260px}.hero-atmosphere{inset:0 0 25px}.hero-art{mask-image:linear-gradient(180deg,transparent,black 30%,black 80%,transparent),linear-gradient(90deg,transparent,black 20%,black 80%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,black 30%,black 80%,transparent),linear-gradient(90deg,transparent,black 20%,black 80%,transparent)}}
