
:root{--abyss:#071d2e;--hull:#0f3550;--teal:#4cc2ab;--foam:#e7f3ef;--paper:#fbfdfc;--ink:#14232e;--mute:#5b6e7a;
--fd:'Bricolage Grotesque',system-ui,sans-serif;--fb:'Instrument Sans',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 1.0625rem/1.6 var(--fb);color:var(--ink);background:var(--paper)}
a{color:inherit}:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.w{max-width:1160px;margin:0 auto;padding:0 28px}
header{position:absolute;inset:0 0 auto;z-index:10;color:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;padding-top:26px;padding-bottom:26px;gap:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 1.05rem var(--fd);letter-spacing:.02em}
.mark{width:34px;color:var(--teal)}
nav{display:flex;gap:26px;align-items:center;flex-wrap:wrap}nav a{text-decoration:none;color:#b9cdd8;font-size:.95rem}
nav a:hover,nav a[aria-current]{color:#fff}
nav .lg{color:var(--teal);font-weight:600}
.hero{background:radial-gradient(1200px 600px at 75% 40%,#0d3a57 0%,var(--abyss) 60%);color:#fff;padding:150px 0 0;overflow:hidden}
.hero .w{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.hero h1{font:700 clamp(2.6rem,6.2vw,5.2rem)/0.98 var(--fd);letter-spacing:-.035em;margin:0 0 26px}
.hero p{font-size:1.2rem;line-height:1.55;color:#bcd2dd;max-width:34ch;margin:0 0 34px}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--teal);color:var(--abyss);font:600 1rem var(--fb);padding:15px 26px;border-radius:999px;text-decoration:none}
.btn:hover{background:#6fd6c2}.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px #3b6680;margin-left:10px}
.plan{width:100%;height:auto;overflow:visible}
.plan .wl,.plan .bt{stroke:#1f4d69;stroke-width:1}.plan .cl{stroke:#2d6684;stroke-width:1;stroke-dasharray:8 5}.plan .bl{stroke:#3b6f8c;stroke-width:1.5}
.plan .hull path{fill:none;stroke:var(--teal);stroke-width:1.6;stroke-dasharray:700;stroke-dashoffset:700;animation:draw 1.6s cubic-bezier(.6,0,.2,1) forwards;animation-delay:calc(var(--i)*90ms + 200ms)}
.plan .dwl{stroke:#fff;stroke-width:1.2;opacity:0;animation:fade .8s 1.9s forwards}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:.55}}
@media (prefers-reduced-motion:reduce){.plan .hull path{animation:none;stroke-dashoffset:0}.plan .dwl{animation:none;opacity:.55}}
.strip{margin-top:70px;border-top:1px solid #1d4660;display:grid;grid-template-columns:repeat(3,1fr)}
.strip div{padding:26px 0 34px;color:#9fbccb;font-size:.95rem;border-right:1px solid #1d4660;padding-right:24px}
.strip div+div{padding-left:24px}.strip div:last-child{border:0}.strip b{display:block;color:#fff;font:600 1.1rem var(--fd);margin-bottom:4px}
section{padding:110px 0}
h2{font:700 clamp(2rem,4vw,3.1rem)/1.05 var(--fd);letter-spacing:-.03em;margin:0 0 20px;max-width:18ch}
.lead{font-size:1.2rem;color:var(--mute);max-width:56ch;margin:0 0 56px}
.svc{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.svc article{padding:30px 30px 10px 0}.svc article+article{padding-left:30px;border-left:1px solid #d3dfdc}
.svc h3{font:600 1.45rem/1.15 var(--fd);letter-spacing:-.015em;margin:0 0 12px}
.svc p{color:var(--mute);margin:0 0 14px}.svc ul{list-style:none;padding:0;margin:0}.svc li{padding:9px 0;border-top:1px solid #e3ece9;font-size:.97rem}
.dark{background:var(--abyss);color:#fff}.dark .lead{color:#9fbccb}
.proj{display:grid;grid-template-columns:1fr 1.25fr;gap:60px;padding:60px 0;border-top:1px solid #1d4660}
.proj h3{font:700 clamp(1.8rem,3.4vw,2.6rem)/1 var(--fd);letter-spacing:-.03em;margin:0 0 10px}
.proj .meta{color:var(--teal);font-weight:600;margin:0}
.proj p{color:#c3d6df;margin:0 0 22px;max-width:60ch}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.nums div{border-left:2px solid var(--teal);padding-left:14px}.nums strong{display:block;font:700 1.9rem/1 var(--fd);letter-spacing:-.02em;color:#fff}.nums span{font-size:.88rem;color:#9fbccb}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:28px;margin-bottom:70px}
.p figure{margin:0}.p .ph{aspect-ratio:4/5;background:var(--foam);border-radius:4px;overflow:hidden;display:grid;place-items:center;font:700 3rem var(--fd);color:var(--hull)}
.p img{width:100%;height:100%;object-fit:cover;display:block}.p h3{font:600 1.25rem var(--fd);margin:16px 0 2px}.p p{margin:0;color:var(--mute)}
.spec{display:grid;grid-template-columns:repeat(2,1fr);gap:0 50px;border-top:2px solid var(--ink)}
.spec div{padding:20px 0;border-bottom:1px solid #d3dfdc}.spec b{font:600 1.1rem var(--fd);display:block}.spec span{color:var(--mute)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;border-top:2px solid var(--ink)}
.steps div{padding:24px 24px 0 0}.steps div+div{padding-left:24px;border-left:1px solid #d3dfdc}
.steps b{font:600 1.15rem var(--fd);display:block;margin-bottom:6px}.steps b::before{counter-increment:s;content:counter(s);color:var(--teal);margin-right:10px}
.steps span{color:var(--mute)}
.cta{background:var(--teal);color:var(--abyss);padding:90px 0}
.cta h2{max-width:20ch}.cta .row{display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap}
.cta dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 22px;font-size:1.05rem}.cta dt{font-weight:600}.cta dd{margin:0}
.cta a{font-weight:600}
.page{background:var(--abyss);color:#fff;padding:170px 0 80px}.page h1{font:700 clamp(2.6rem,6vw,4.6rem)/1 var(--fd);letter-spacing:-.035em;margin:0 0 18px;max-width:16ch}.page p{color:#bcd2dd;font-size:1.2rem;max-width:52ch;margin:0}
footer{background:#04131f;color:#7f9aaa;padding:36px 0;font-size:.9rem}footer .w{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
@media (max-width:860px){.hero .w,.proj{grid-template-columns:1fr}.hero{padding-top:130px}.svc,.steps,.spec,.strip{grid-template-columns:1fr}
.svc article+article,.steps div+div{padding-left:0;border-left:0;border-top:1px solid #d3dfdc}.strip div{border-right:0;padding-left:0!important;border-bottom:1px solid #1d4660}.nums{grid-template-columns:1fr 1fr 1fr}section{padding:80px 0}nav{gap:16px}}
