:root{--ink:#102d34;--deep:#0b252c;--deepest:#071b21;--paper:#f6f4ef;--paper-2:#eaece7;--muted:#62777a;--line:#ccd6d3;--mint:#a9d8d3;--teal:#357d80;--gold:#caaa78}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans","Noto Sans SC",sans-serif;-webkit-font-smoothing:antialiased}
button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.page-wrap{width:min(calc(100% - 96px),1460px);margin-inline:auto}
.panel{position:relative;min-height:100svh;overflow:hidden}
.panel-inner{position:relative;z-index:2;min-height:100svh;padding-top:115px;padding-bottom:56px}
.light-panel{background:var(--paper)}.dark-panel{color:#f7faf7;background:var(--deep)}
.page-progress{position:fixed;z-index:100;top:0;left:0;right:0;height:3px;pointer-events:none}.page-progress span{display:block;width:100%;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left center}
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;height:84px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:rgba(248,248,244,.94);color:var(--ink);backdrop-filter:blur(18px);transition:background .5s,color .5s,box-shadow .5s}
.site-header.on-dark{background:rgba(5,27,34,.48);color:#f7faf7}.site-header.scrolled{box-shadow:0 10px 35px #071b2117}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid currentColor;border-radius:50%;font-size:24px;font-weight:500;line-height:1;letter-spacing:-.1em}.brand-icon span{color:var(--gold)}.brand-word{font-size:18px;line-height:1;letter-spacing:.05em;font-weight:700}.brand-word b{color:var(--teal)}.on-dark .brand-word b{color:var(--mint)}.brand-word small{display:block;margin-top:5px;font-size:7px;letter-spacing:.32em;font-weight:600;opacity:.63}
.desktop-nav{display:flex;align-items:center;gap:clamp(22px,3vw,54px);font-size:12px;font-weight:700;letter-spacing:.04em}.desktop-nav a{position:relative;white-space:nowrap;opacity:.8;transition:opacity .3s}.desktop-nav a::after{content:"";position:absolute;bottom:-10px;left:0;width:0;height:2px;background:var(--gold);transition:width .35s}.desktop-nav a:hover,.desktop-nav a[aria-current="page"]{opacity:1}.desktop-nav a:hover::after,.desktop-nav a[aria-current="page"]::after{width:100%}
.header-tools{display:flex;align-items:center;gap:15px}.language-button,.menu-button{border:0;background:none;color:inherit}.language-button{font-size:12px;font-weight:700;white-space:nowrap}.language-button span{font-size:16px;margin-left:5px}.menu-button{display:none;width:36px;height:36px;padding:6px}.menu-button span{display:block;width:24px;height:2px;margin:6px auto;background:currentColor}.mobile-nav[hidden]{display:none}
.eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 30px;color:var(--teal);font-size:11px;font-weight:700;letter-spacing:.22em}.eyebrow.light{color:#b2dcd7}.eyebrow-line{display:inline-block;width:28px;height:1px;background:var(--gold)}
.panel h1,.panel h2,.panel h3,.panel p{margin-top:0}.panel h1,.panel h2{font-weight:600;letter-spacing:-.065em}.panel h1 em,.panel h2 em{font-style:normal;color:var(--mint)}.light-panel h2 em{color:var(--teal)}
.hero-panel{display:flex;align-items:center}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{background:url("./assets/hero-port.png") center center/cover no-repeat;transform:scale(1.03)}.hero-shade{background:linear-gradient(90deg,#061f29f2 0%,#082b35d4 35%,#082b3570 68%,#082b3520 100%),linear-gradient(0deg,#041a21ad 0%,transparent 38%)}.hero-content{position:relative;z-index:2;padding-top:80px}.hero-content h1{font-size:clamp(60px,6.6vw,116px);line-height:1.13;margin:0 0 32px;max-width:1000px}.hero-lead{max-width:555px;color:#d4e3df;font-size:17px;line-height:1.9;margin:0 0 38px}.arrow-link{display:inline-flex;align-items:center;gap:24px;font-size:13px;font-weight:700;letter-spacing:.04em}.arrow-link.light{color:#f3f7f4}.arrow-circle{display:grid;place-items:center;width:48px;height:48px;border:1px solid #cfdfdbaa;border-radius:50%;font-size:20px;transition:background .3s,color .3s,transform .3s}.arrow-link:hover .arrow-circle{background:var(--gold);color:var(--deep);transform:rotate(45deg)}.hero-footer{position:absolute;z-index:2;left:0;right:0;bottom:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#b9d0cd;font-size:10px;font-weight:600;letter-spacing:.18em}.scroll-cue{display:flex;align-items:center;gap:14px}.scroll-cue-line{width:58px;height:1px;background:var(--gold)}
.about-layout{display:grid;grid-template-columns:52% 43%;align-items:center;justify-content:space-between;gap:5%}.about-copy{padding-right:25px}.about-copy h2{font-size:clamp(44px,4.9vw,82px);line-height:1.27;margin:0 0 30px}.section-lead{max-width:580px;color:#5b7274;font-size:16px;line-height:1.95}.about-points{display:flex;gap:0;max-width:630px;margin-top:48px;border-top:1px solid var(--line)}.about-points div{flex:1;padding:22px 16px 0 0}.about-points div+div{padding-left:18px;border-left:1px solid var(--line)}.about-points span{display:block;margin-bottom:25px;color:#789395;font-size:11px;letter-spacing:.12em}.about-points strong{font-size:17px;font-weight:600}.about-visual{position:relative;height:min(70svh,710px);min-height:380px;margin:0;overflow:hidden;background:#adc0c2}.about-visual img{width:100%;height:100%;display:block;object-fit:cover}.about-visual::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#071e27b0)}.about-visual figcaption{position:absolute;z-index:1;left:32px;right:32px;bottom:28px;display:flex;flex-direction:column;gap:8px;color:#fff;font-size:14px;font-weight:600}.about-visual figcaption span:first-child{font-size:10px;letter-spacing:.2em;color:#c9dfdd}
.focus-panel{background:#09272e}.focus-layout{display:flex;flex-direction:column;justify-content:center}.focus-heading{display:grid;grid-template-columns:1.25fr .75fr;column-gap:55px;align-items:end;margin-bottom:34px}.focus-heading .eyebrow{grid-column:1/-1;margin-bottom:20px}.focus-heading h2{font-size:clamp(42px,4.7vw,75px);line-height:1.25;margin:0}.focus-heading>p:last-child{color:#b9cecb;line-height:1.8;font-size:15px;max-width:360px;margin:0 0 7px}.focus-gallery{display:flex;gap:12px;height:clamp(275px,47svh,540px)}.focus-card{position:relative;flex:1;min-width:0;overflow:hidden;background:#184d56;transition:flex .7s cubic-bezier(.2,.72,.2,1)}.focus-card-primary{flex:1.5}.focus-card:hover{flex:1.35}.focus-card-primary:hover{flex:1.7}.focus-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.focus-card:hover img{transform:scale(1.07)}.focus-card-shade{position:absolute;inset:0;background:linear-gradient(0deg,#061d27df 0%,#061d2729 54%,transparent 100%)}.focus-card-text{position:absolute;left:24px;right:20px;bottom:22px}.focus-card-text>span{font-size:10px;letter-spacing:.16em;color:#d2e6e3}.focus-card h3{font-size:clamp(22px,2vw,34px);margin:10px 0 6px;font-weight:600;letter-spacing:-.045em}.focus-card p{font-size:12px;line-height:1.5;color:#d3e4e0;margin:0;max-width:240px}.image-note{margin:13px 0 0;color:#a6c0bc;font-size:10px;letter-spacing:.02em}
.services-panel{background:var(--paper-2)}.services-layout{display:grid;grid-template-columns:35% 60%;gap:5%;align-items:center}.services-intro h2{font-size:clamp(44px,4.5vw,75px);line-height:1.28;margin:0 0 28px}.services-intro .section-lead{font-size:15px;max-width:390px}.service-groups{display:grid;grid-template-columns:1fr 1fr;gap:30px}.service-group{min-width:0}.service-group-title{min-height:84px;border-top:2px solid var(--teal);padding-top:12px}.service-group-title span{font-size:10px;color:#739293;letter-spacing:.12em}.service-group-title h3{font-size:17px;line-height:1.4;margin:12px 0 0;font-weight:600}.service-row{min-height:72px;border-top:1px solid #cbd7d2;display:grid;grid-template-columns:25px 1fr 16px;align-items:center;gap:10px}.service-row span:first-child{font-size:10px;color:#7f9b9a}.service-row strong{font-size:16px;font-weight:600;line-height:1.4}.service-row span:last-child{font-size:18px;color:var(--teal)}.service-side-note{border-top:1px solid #cbd7d2;margin-top:0;padding:22px 0;display:flex;gap:15px}.service-side-note p{margin:0;color:#6e8485;font-size:12px;line-height:1.7}.note-mark{color:var(--teal);font-size:20px}
.process-panel{background:#072830}.process-image,.process-shade{position:absolute;inset:0}.process-image{background:url("./assets/trade.png") center center/cover no-repeat;filter:saturate(.75);opacity:.38}.process-shade{background:linear-gradient(90deg,#08272efa 0%,#08272edc 49%,#08272eaa 100%)}.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.process-intro h2{font-size:clamp(44px,5.2vw,84px);line-height:1.22;margin:0 0 28px}.process-intro>p:last-child{color:#bdd3cf;font-size:16px;line-height:1.8}.process-steps{list-style:none;margin:0;padding:0;border-top:1px solid #b1d0ca66}.process-steps li{display:grid;grid-template-columns:58px 1fr;gap:20px;padding:23px 0;border-bottom:1px solid #b1d0ca66}.process-steps li>span{color:#94c7c3;font-size:12px;letter-spacing:.1em}.process-steps h3{font-size:20px;margin:0 0 7px;font-weight:600}.process-steps p{color:#bdd2ce;font-size:13px;line-height:1.6;margin:0}
.contact-panel{display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 82% 34%,#1c5b63 0%,#103b44 27%,#0a2830 65%,#071e26 100%)}.contact-panel::before,.contact-panel::after{content:"";position:absolute;border:1px solid #a1d7d522;border-radius:50%;width:650px;height:650px;right:-80px;top:4%;pointer-events:none}.contact-panel::after{width:420px;height:420px;right:40px;top:18%;border-color:#a1d7d53b}.contact-layout{display:flex;flex-direction:column;justify-content:center;padding-bottom:0}.contact-layout h2{font-size:clamp(58px,6.4vw,112px);line-height:1.2;margin:0 0 65px;max-width:1120px}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:end}.contact-bottom>p{font-size:17px;line-height:1.85;color:#bed4d0;max-width:520px;margin:0}.contact-placeholder{border-top:1px solid #a3c3c075;padding:25px 0;display:flex;justify-content:space-between;gap:30px}.contact-placeholder span{color:#a3c5c0;font-size:13px}.contact-placeholder strong{font-size:17px;font-weight:600}.site-footer{position:relative;z-index:2;min-height:72px;border-top:1px solid #b2d0cc36;display:flex;align-items:center;justify-content:space-between;gap:25px;color:#9dbfba;font-size:10px;letter-spacing:.1em}.site-footer a:hover{color:#fff}
.section-rail{display:none}
@keyframes rise{from{opacity:0;transform:translateY(44px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes imageReveal{from{opacity:.35;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}
@keyframes lineGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:no-preference){.motion-ready .panel.is-active h1,.motion-ready .panel.is-active h2{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}.motion-ready .panel.is-active .hero-lead,.motion-ready .panel.is-active .section-lead,.motion-ready .panel.is-active .focus-heading>p:last-child,.motion-ready .panel.is-active .contact-bottom{animation:rise .9s .16s cubic-bezier(.2,.7,.2,1) both}.motion-ready .panel.is-active .focus-card,.motion-ready .panel.is-active .about-visual{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}.motion-ready .panel.is-active .focus-card:nth-child(2){animation-delay:.1s}.motion-ready .panel.is-active .focus-card:nth-child(3){animation-delay:.2s}.motion-ready .panel.is-active .service-group,.motion-ready .panel.is-active .process-steps{animation:rise .9s .12s cubic-bezier(.2,.7,.2,1) both}.motion-ready .hero-panel.is-active .hero-image{animation:imageReveal 1.5s ease-out both}}
@media(min-width:1000px) and (min-height:680px){html.fullpage-mode{scroll-behavior:auto}.fullpage-mode .section-rail{position:fixed;z-index:55;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:13px;color:var(--ink)}.section-rail.on-dark{color:#eaf7f3}.section-rail button{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:4px 0;border:0;background:none;color:inherit;font-size:10px;font-weight:700;letter-spacing:.12em}.section-rail .rail-label{opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s;white-space:nowrap}.section-rail button:hover .rail-label,.section-rail button:focus-visible .rail-label{opacity:1;transform:none}.section-rail .rail-line{display:block;width:17px;height:2px;background:currentColor;opacity:.65;transition:width .3s,background .3s}.section-rail button[aria-current="true"] .rail-line{width:34px;background:var(--gold);opacity:1}}
@media(max-width:1100px){.page-wrap{width:min(calc(100% - 70px),1460px)}.site-header{padding-inline:35px}.desktop-nav{gap:20px}.about-layout{grid-template-columns:54% 41%}.services-layout{grid-template-columns:33% 62%}.service-groups{gap:18px}.service-row strong{font-size:14px}}
@media(max-width:900px){.page-wrap{width:min(calc(100% - 48px),1460px)}.site-header{height:72px;padding-inline:24px}.desktop-nav{display:none}.menu-button{display:block}.mobile-nav{position:absolute;top:72px;left:0;right:0;padding:20px 24px 26px;display:flex;flex-direction:column;gap:19px;background:#f8f8f4;color:var(--ink);box-shadow:0 18px 32px #061b2130;font-size:14px;font-weight:600}.panel,.panel-inner{min-height:auto}.panel-inner{padding-top:110px;padding-bottom:70px}.hero-panel{min-height:100svh}.hero-content{padding-top:95px}.hero-content h1{font-size:clamp(54px,8vw,84px)}.about-layout,.services-layout,.process-layout{grid-template-columns:1fr;gap:42px}.about-copy{padding:0}.about-visual{height:430px;min-height:0}.focus-heading{grid-template-columns:1fr;gap:18px}.focus-heading .eyebrow{grid-column:1}.focus-heading h2{font-size:clamp(44px,7vw,68px)}.focus-heading>p:last-child{max-width:620px}.focus-gallery{height:430px}.services-intro h2{font-size:clamp(46px,7vw,70px)}.service-groups{gap:32px}.process-steps{max-width:650px}.contact-panel{min-height:100svh}.contact-layout{min-height:calc(100svh - 72px)}.contact-layout h2{font-size:clamp(50px,8vw,82px)}}
@media(max-width:600px){.page-wrap{width:calc(100% - 40px)}.site-header{padding-inline:20px}.brand-icon{width:30px;height:30px;font-size:20px}.brand-word{font-size:15px}.brand-word small{font-size:6px}.hero-content{padding-top:95px}.hero-content h1{font-size:clamp(48px,11vw,66px);line-height:1.2}.hero-lead{font-size:15px}.hero-footer{bottom:25px;font-size:8px}.scroll-cue-line{width:24px}.about-layout{gap:35px}.about-copy h2,.services-intro h2,.process-intro h2{font-size:clamp(42px,10vw,58px)}.section-lead{font-size:15px}.about-points{margin-top:34px}.about-points div{padding-right:8px}.about-points div+div{padding-left:10px}.about-points strong{font-size:13px}.about-visual{height:330px}.focus-heading h2{font-size:clamp(40px,9vw,56px)}.focus-gallery{display:grid;grid-template-columns:1fr;gap:10px;height:auto}.focus-card,.focus-card-primary{height:225px;flex:none}.focus-card-text{left:20px;bottom:17px}.focus-card h3{font-size:26px}.focus-card p{font-size:11px}.services-layout{gap:30px}.service-groups{grid-template-columns:1fr;gap:28px}.service-group-title{min-height:70px}.service-row{min-height:65px}.process-layout{gap:40px}.process-steps li{padding:20px 0}.contact-layout{padding-top:120px;padding-bottom:70px}.contact-layout h2{font-size:clamp(43px,9vw,62px);margin-bottom:42px}.contact-bottom{grid-template-columns:1fr;gap:34px}.contact-bottom>p{font-size:15px}.site-footer{min-height:100px;flex-wrap:wrap;justify-content:flex-start;gap:6px 22px;padding-block:17px}.site-footer span:first-child{width:100%}.contact-panel::before{right:-380px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(min-width:1000px){.focus-layout{padding-top:94px;padding-bottom:38px}.focus-heading{margin-bottom:25px}.focus-heading .eyebrow{margin-bottom:16px}.focus-gallery{height:clamp(275px,44svh,500px)}.contact-layout{min-height:calc(100svh - 72px)}}
@media(min-width:1000px) and (min-height:1000px){.focus-gallery{height:min(49svh,610px)}.service-row{min-height:86px}.service-row strong{font-size:18px}}
.process-image{opacity:.52}.process-shade{background:linear-gradient(90deg,#08272ef7 0%,#08272ed5 49%,#08272e9c 100%)}
