@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--navy:#071b27;--navy2:#0c2c3b;--sea:#16485a;--foam:#dfe9e3;--sand:#e8dfcf;--lime:#c5d96a;--ink:#10232c;--muted:#8da3a7;--line:rgba(223,233,227,.2);--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--mono:"DM Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--navy);color:var(--foam);font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.topbar{height:84px;position:absolute;z-index:20;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 5.5vw;border-bottom:1px solid var(--line);background:rgba(7,27,39,.25);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;font-size:15px;font-weight:700;letter-spacing:-.04em}.brand small{display:block;font:9px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#a5b8b5;margin-top:3px}.brand-mark{width:37px;height:37px;border:1px solid var(--lime);color:var(--lime);display:grid;place-items:center;border-radius:50%;font:italic 22px var(--serif)}.desktop-nav{display:flex;gap:38px;margin-left:auto;margin-right:42px}.desktop-nav a,.nav-cta{font:10px var(--mono);text-transform:uppercase;letter-spacing:.13em;color:#c0ceca;transition:color .25s}.desktop-nav a:hover,.nav-cta:hover{color:var(--lime)}.nav-cta{border:1px solid rgba(197,217,106,.6);padding:13px 17px;border-radius:30px;color:var(--lime)}.nav-cta span{margin-left:18px}.menu-toggle{display:none;background:none;border:0;color:white}.mobile-menu{display:none}
.hero{height:min(920px,100svh);min-height:700px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 53% 70%,#1b5363 0%,#0d3547 32%,#071b27 75%)}#sea{position:absolute;inset:0;width:100%;height:100%;opacity:.7}.hero-grain{position:absolute;inset:0;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E")}.hero-copy{position:absolute;z-index:3;left:12vw;top:24%;max-width:650px}.eyebrow{font:10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--lime);margin:0 0 24px}.eyebrow-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:10px;vertical-align:2px;box-shadow:0 0 12px var(--lime)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(64px,9.5vw,142px);line-height:.91;letter-spacing:-.085em;max-width:760px;margin:0 0 28px;font-weight:500}.hero-intro{max-width:410px;color:#b4c7c5;font-size:16px;line-height:1.7}.round-link{display:flex;align-items:center;gap:20px;margin-top:42px;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase}.round-link b{width:42px;height:42px;border:1px solid var(--lime);border-radius:50%;display:grid;place-items:center;color:var(--lime);font-size:18px;font-weight:400;transition:transform .3s,background .3s}.round-link:hover b{transform:translateY(5px);background:rgba(197,217,106,.12)}.hero-boat{position:absolute;z-index:2;width:min(62vw,850px);right:2vw;bottom:12%;filter:drop-shadow(0 25px 35px rgba(0,0,0,.35));animation:boatfloat 7s ease-in-out infinite}.hero-boat svg{width:100%;overflow:visible}.hero-meta{position:absolute;bottom:34px;left:5.5vw;right:5.5vw;display:flex;justify-content:space-between;color:#9eb5b4;font:9px var(--mono);letter-spacing:.14em;text-transform:uppercase}.hero-word{position:absolute;right:5vw;top:19%;font:10px var(--mono);letter-spacing:.22em;line-height:1.8;text-align:right;color:rgba(221,234,226,.38)}.hero-word em{font-style:normal;color:var(--lime)}@keyframes boatfloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-13px) rotate(.5deg)}}
.intro-band{padding:150px 12vw 155px;display:grid;grid-template-columns:1fr 2.1fr 1.2fr;gap:5vw;align-items:start;background:var(--foam);color:var(--ink)}.section-index{font:9px var(--mono);letter-spacing:.15em;color:#6d8586;text-transform:uppercase}.intro-band h2,.content-section h2,.services-heading h2,.work-head h2,.contact-section h2{font-size:clamp(48px,6.3vw,92px);line-height:.98;letter-spacing:-.075em;font-weight:500;margin:0}.intro-band h2 em,.content-section h2 em,.services-heading h2 em,.work-head h2 em,.contact-section h2 em{font-family:var(--serif);font-weight:500}.intro-side{font-size:15px;line-height:1.8;color:#536b70;max-width:300px;margin:45px 0 0}
.content-section{padding:145px 12vw;display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:4vw;align-items:center;min-height:580px;border-bottom:1px solid var(--line);position:relative}.content-section:nth-of-type(even){background:#0a2431}.section-main{max-width:650px}.content-section h2{font-size:clamp(46px,5.6vw,78px);margin-bottom:27px}.section-text{color:#a9bfbd;line-height:1.8;font-size:15px;max-width:510px}.text-link{display:inline-flex;gap:28px;margin-top:25px;padding-bottom:10px;border-bottom:1px solid var(--lime);font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}.graphic-orbit{width:min(23vw,280px);aspect-ratio:1;border:1px solid rgba(197,217,106,.4);border-radius:50%;display:grid;place-items:center;position:relative;justify-self:center;transform:rotate(-18deg)}.graphic-orbit:before,.graphic-orbit:after{content:"";position:absolute;border:1px solid rgba(197,217,106,.24);border-radius:50%;inset:13% -12%;transform:rotate(48deg)}.graphic-orbit:after{inset:28% -5%;transform:rotate(-42deg)}.graphic-orbit span{font:10px var(--mono);letter-spacing:.3em;color:#a9c1b6}.graphic-orbit b{font:italic 44px var(--serif);color:var(--lime);font-weight:500}.graphic-orbit i{position:absolute;right:4%;top:12%;font-style:normal;color:var(--lime);font-size:22px}.section-image{width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:48% 48% 4px 4px}.section-image img{width:100%;height:100%;object-fit:cover}
.services-wrap{padding:140px 12vw 155px;background:var(--sand);color:var(--ink)}.services-heading{margin:70px 0 65px 18%}.services-heading h2{font-size:clamp(52px,7vw,100px)}.services-heading .eyebrow{color:#657c73}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(16,35,44,.25);border-left:1px solid rgba(16,35,44,.25)}.service-card{min-height:230px;padding:28px 30px;border-right:1px solid rgba(16,35,44,.25);border-bottom:1px solid rgba(16,35,44,.25);position:relative;transition:background .35s,transform .35s}.service-card:hover{background:#d6dfc8;transform:translateY(-5px)}.card-no{font:10px var(--mono);color:#78908a}.service-card h3{font:500 clamp(22px,2.2vw,32px) var(--serif);margin:42px 0 12px}.service-card p{font-size:12px;line-height:1.7;color:#657a78;max-width:260px}.card-arrow{position:absolute;right:25px;top:25px;color:#758c77}
.work-section{padding:140px 12vw 160px;background:#0b2937}.work-head{margin:70px 0 65px 18%}.work-head h2{font-size:clamp(52px,7vw,100px)}.work-list{border-top:1px solid var(--line)}.work-item{display:grid;grid-template-columns:80px 1fr 40px;align-items:center;padding:30px 10px;border-bottom:1px solid var(--line);transition:padding .35s,color .35s}.work-item:hover{padding-left:25px;color:var(--lime)}.work-no,.work-item>div>p{font:9px var(--mono);letter-spacing:.13em;color:#8ca6a4;text-transform:uppercase}.work-item h3{font:500 clamp(25px,3vw,42px) var(--serif);margin:5px 0}.work-item small{font-size:12px;color:#9eb5b0}.work-arrow{font-size:24px;color:var(--lime)}
.contact-section{padding:145px 12vw 40px;min-height:600px;background:linear-gradient(160deg,#17495a,#071b27 70%);position:relative;overflow:hidden}.contact-section:before{content:"";position:absolute;width:80vw;height:80vw;max-width:1000px;max-height:1000px;border:1px solid rgba(220,235,224,.13);border-radius:50%;right:-24%;top:-55%}.contact-section h2{font-size:clamp(70px,11vw,150px);margin:0 0 45px}.contact-mail{font:clamp(18px,2.5vw,30px) var(--serif);border-bottom:1px solid var(--lime);padding-bottom:12px;display:inline-flex;gap:60px;color:var(--lime)}.contact-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:130px;padding:24px 0;color:#a2b8b4;font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase}
footer{padding:35px 5.5vw;display:flex;align-items:center;justify-content:space-between;background:#04131c;color:#a4b9b4}footer p{font:italic 16px var(--serif);margin:0}footer>div{display:flex;gap:25px;font:9px var(--mono);text-transform:uppercase;letter-spacing:.1em}
.cursor-glow{position:fixed;z-index:1;width:280px;height:280px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(120,190,185,.08),transparent 70%);transform:translate(-50%,-50%);opacity:0;transition:opacity .3s}.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:900px){.desktop-nav,.nav-cta{display:none}.menu-toggle{display:flex;flex-direction:column;gap:6px;padding:10px}.menu-toggle i{width:25px;height:1px;background:var(--foam);display:block}.mobile-menu{position:fixed;z-index:19;inset:0;background:#071b27;padding:120px 9vw 50px;display:flex;flex-direction:column;gap:0;transform:translateY(-105%);transition:transform .5s cubic-bezier(.7,0,.2,1)}.mobile-menu.open{transform:translateY(0)}.mobile-menu a{font:clamp(30px,8vw,54px) var(--serif);padding:17px 0;border-bottom:1px solid var(--line)}.mobile-menu span{float:right;color:var(--lime)}.hero{min-height:760px}.hero-copy{left:8vw;top:23%;right:8vw}.hero-boat{width:90vw;right:-13vw;bottom:12%}.hero-word{top:14%;right:8vw}.intro-band{padding:100px 8vw;grid-template-columns:1fr 2fr}.intro-band .section-index{grid-column:1/-1}.intro-side{grid-column:2;margin:0}.content-section{padding:100px 8vw;grid-template-columns:1fr 1fr}.content-section>.section-index{grid-column:1/-1}.graphic-orbit{width:32vw}.services-wrap,.work-section{padding:100px 8vw}.service-grid{grid-template-columns:repeat(2,1fr)}.contact-section{padding:110px 8vw 35px}footer{padding:30px 8vw;flex-wrap:wrap;gap:25px}}
@media(max-width:560px){.topbar{height:70px;padding:0 6vw}.hero{height:850px;min-height:0}.hero-copy{top:22%}.hero h1{font-size:clamp(62px,16vw,92px)}.hero-intro{font-size:14px;max-width:300px}.hero-boat{width:125vw;right:-36vw;bottom:16%}.hero-meta{left:6vw;right:6vw;font-size:8px}.hero-word{font-size:8px}.intro-band{padding:85px 8vw;display:block}.intro-band .section-index{margin-bottom:55px}.intro-band h2{font-size:55px}.intro-side{margin:35px 0 0}.content-section{padding:85px 8vw;display:flex;flex-direction:column;align-items:flex-start;gap:35px}.content-section>.section-index{width:100%}.content-section h2{font-size:54px}.graphic-orbit{width:58vw;align-self:center;margin:25px 0}.section-image{width:80%;align-self:center}.services-wrap,.work-section{padding:85px 8vw}.services-heading,.work-head{margin:55px 0 45px}.services-heading h2,.work-head h2{font-size:58px}.service-grid{grid-template-columns:1fr}.service-card{min-height:190px}.service-card h3{margin-top:30px}.work-item{grid-template-columns:35px 1fr 25px;padding:25px 0}.work-item small{display:block;line-height:1.5}.contact-section{padding:90px 8vw 30px;min-height:550px}.contact-section h2{font-size:78px}.contact-mail{font-size:19px;gap:20px}.contact-bottom{margin-top:100px;flex-direction:column;gap:12px}footer{align-items:flex-start;flex-direction:column}footer>div{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* V3: accessibility and editable motion preference */
.skip-link{position:absolute;left:-9999px;top:1rem;z-index:9999;background:var(--lime);color:var(--navy);padding:.8rem 1rem}
.skip-link:focus{left:1rem}
.motion-subtle .reveal{transition-duration:1.2s}
.motion-expressive .reveal{transition-duration:.55s}
@media(prefers-reduced-motion:reduce){.reveal{transition:none!important}}
