:root{--ink:#132b31;--paper:#f5f7f6;--gutter:clamp(24px,5vw,96px);color-scheme:dark;font-family:Manrope,Arial,sans-serif;color:var(--paper);background:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:7px}button{border:0;background:none}h1,h2,p{margin:0}h1,h2,.display{font-family:Prata,Georgia,serif;font-weight:400;letter-spacing:-.045em;line-height:1.15;font-size:clamp(48px,5.8vw,112px)}em{font-style:normal}h1{font-size:clamp(60px,7.8vw,150px);line-height:1.08}h1 em,.display em,h2 em{color:inherit}header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:30px var(--gutter);transition:color .3s}.wordmark{font-size:21px;letter-spacing:.23em;line-height:1.6;position:relative}.brand-line{display:block;width:29px;height:1px;background:currentColor;margin-top:3px}nav{display:flex;align-items:center;gap:40px;font-size:13px}nav a{padding:12px 0}nav span{padding-left:12px}.film{position:relative}.stage{position:relative}.scene{min-height:100svh;position:relative;isolation:isolate;overflow:hidden}.media,.shade,.light-wash{position:absolute;inset:0;z-index:-2}.media{background:#193b43;overflow:hidden}.media img,.media video,.media picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.media video{opacity:0;transition:opacity .7s}.media video.ready{opacity:1}.shade{z-index:-1;background:linear-gradient(90deg,rgba(3,22,29,.37),rgba(3,22,29,.04) 85%),linear-gradient(0deg,rgba(3,22,29,.35),transparent 60%,rgba(3,22,29,.18))}.copy{position:absolute;left:var(--gutter);right:var(--gutter);top:50%;transform:translateY(-50%)}.hero-copy{top:auto;bottom:17%;transform:none}.hero-feeling{margin-top:35px}.scroll-cue{position:absolute;left:var(--gutter);bottom:40px;font-size:11px;letter-spacing:.07em;display:flex;align-items:center;gap:22px}.scroll-cue span{font-size:23px}.city .copy{top:58%}.feelings .feeling-words{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--gutter);font-size:clamp(48px,6.5vw,124px)}.feeling-words p{padding:20px}.feeling-words p:not(:first-child){display:none}.detail{font-size:14px;line-height:1.8;letter-spacing:.015em;margin-top:32px}.service-next{margin-top:48px}.light-wash{z-index:-1;background:rgba(232,242,241,.87)}.story{color:var(--ink)}.story-copy{position:absolute;inset:18% var(--gutter) auto}.story-brand{font-size:clamp(62px,13.8vw,264px);font-weight:400;letter-spacing:.055em;line-height:1.2;margin-bottom:7vh}.story h2{font-size:clamp(35px,4.1vw,78px)}.story .detail{margin-top:5vh}.contact-copy{position:relative;padding:19svh var(--gutter) 120px}.contact h2{font-size:clamp(58px,7vw,134px)}.invitation{font-size:14px;line-height:1.9;margin-top:28px}.contact-links{display:flex;gap:45px;margin-top:32px;font-size:24px}.contact-links a{border-bottom:1px solid #ffffff70;padding-bottom:10px}footer{position:absolute;bottom:25px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;font-size:11px;line-height:1.6}footer a{padding:12px 0}.journey-progress{position:fixed;bottom:0;left:0;right:0;height:2px;background:#ffffff20;z-index:21}.journey-progress span{display:block;height:100%;background:currentColor;transform:scaleX(0);transform-origin:left}.floating-contact{position:fixed;bottom:calc(30px + env(safe-area-inset-bottom));right:var(--gutter);z-index:19;font-size:12px;padding:10px 0;border-bottom:1px solid currentColor;opacity:0;visibility:hidden;transition:color .3s}.floating-contact span{margin-left:18px}.film-controls{position:fixed;bottom:calc(30px + env(safe-area-inset-bottom));left:var(--gutter);z-index:19;font-size:10px;letter-spacing:.04em}.film-controls button{padding:10px 0;opacity:.7}.hero .scroll-cue{bottom:90px}body.light .header,body.light .floating-contact,body.light .film-controls{color:var(--ink)}dialog{position:fixed;inset:auto 0 0 auto;margin:0;width:min(540px,100%);max-width:100%;padding:64px 44px calc(52px + env(safe-area-inset-bottom));border:0;background:var(--paper);color:var(--ink);max-height:90svh}dialog::backdrop{background:#06191ccc}body:has(dialog[open]){overflow:hidden}dialog h2{font-size:44px;margin:42px 0 20px}dialog>p:not(.wordmark){font-size:14px;line-height:1.7}dialog>a{font-size:13px}.sheet-links{display:flex;flex-direction:column;font-size:25px;margin:25px 0 32px}.sheet-links a{padding:17px 0;border-bottom:1px solid #18343c40}.close-sheet{position:absolute;right:22px;top:14px;font-size:32px;padding:10px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip:focus{position:fixed;top:12px;left:12px;z-index:100;background:white;color:black;padding:16px}.mobile-only{display:none}.motion .film{height:1650svh}.motion .stage{position:sticky;top:0;height:100svh;overflow:hidden}.motion .scene{position:absolute;inset:0;min-height:0;height:100%;visibility:hidden}.motion .hero{visibility:visible}.motion .hero-feeling,.motion .service-next{position:absolute;inset:0;margin:0}.motion .feeling-words p{display:block;position:absolute;left:0;right:0;visibility:hidden}.motion .feeling-words p:first-child{visibility:visible}.motion .media{will-change:transform}.motion .copy{will-change:transform,opacity}.motion .contact-copy{height:100%}html:not(.motion) .journey-progress{display:none}html:not(.motion) .hero{min-height:130svh}html:not(.motion) .service{min-height:140svh}html:not(.motion) .feeling-words{position:relative;display:block;padding:130px 24px}html:not(.motion) .feeling-words p{display:block}html:not(.motion) .contact{min-height:110svh}
@media(min-width:701px) and (max-height:780px){.contact-copy{padding-top:15svh}.contact h2{font-size:clamp(60px,6vw,92px)}.invitation{margin-top:20px}.contact-links{margin-top:20px}.story-brand{margin-bottom:4vh}}
@media(max-width:700px){:root{--gutter:24px}.header{padding:22px var(--gutter)}.wordmark{font-size:17px}.about-link{display:none}nav{font-size:12px}h1{font-size:clamp(42px,10.8vw,56px);line-height:1.19;letter-spacing:-.045em}h2,.display{font-size:clamp(37px,9.4vw,49px);line-height:1.25;letter-spacing:-.05em}.hero-copy{bottom:28%}.hero-feeling{font-size:clamp(44px,11vw,59px)}.copy{top:47%}.hero .copy{top:auto}.city .copy{top:56%}.ocean h2 br{display:none}.ocean h2{max-width:340px}.feelings .feeling-words{font-size:clamp(36px,9.1vw,49px)}.feeling-words p{padding:24px}.detail{font-size:12px;line-height:1.9;margin-top:24px}.mobile-only{display:block}.story-copy{top:27%}.story-brand{font-size:clamp(48px,12.5vw,68px);letter-spacing:.035em;margin-bottom:50px}.story h2{font-size:32px;line-height:1.3}.story h2 br{display:none}.story .detail{margin-top:35px}.contact-copy{padding-top:20svh}.contact h2{font-size:45px;line-height:1.2}.contact h2 br{display:none}.invitation{font-size:12px;margin-top:24px;max-width:305px}.invitation br{display:none}.contact-links{font-size:20px;gap:30px;margin-top:30px}footer{bottom:calc(25px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:0 20px;font-size:10px}footer>span{width:100%;margin-bottom:3px}.floating-contact{font-size:11px;bottom:calc(24px + env(safe-area-inset-bottom))}.film-controls{bottom:calc(26px + env(safe-area-inset-bottom));font-size:9px}.hero .scroll-cue{bottom:130px}.shade{background:linear-gradient(0deg,#071e2b70,transparent 100%),linear-gradient(90deg,#061d2b35,transparent)}.motion .film{height:1400svh}dialog{padding:50px 26px calc(35px + env(safe-area-inset-bottom))}dialog h2{font-size:36px}body.at-contact .film-controls{visibility:hidden}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.hero-feeling{margin-top:30px}}

body.at-contact .film-controls{visibility:hidden}.hero .shade{background:linear-gradient(90deg,rgba(3,22,29,.58),rgba(3,22,29,.06) 90%),linear-gradient(0deg,rgba(3,22,29,.28),transparent 70%)}

.nowrap{white-space:nowrap}.shade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,22,29,.25),transparent 22%)}
@media(max-width:700px){h1,h2,.display,.feelings .feeling-words{letter-spacing:-.025em}.story h2{letter-spacing:-.02em}.contact h2{font-size:43px}.contact-copy{padding-top:17svh}.contact .invitation{margin-top:20px}}
/* Final contact composition and interaction polish. */
html{scrollbar-gutter:stable}
a,button{touch-action:manipulation}
.link-arrow{display:inline-block;transition:transform .25s ease}
@media(hover:hover){a:hover .link-arrow{transform:translate(3px,-3px)}nav a:hover,.direct-contacts a:hover,.sheet-channel:hover,footer a:hover{opacity:.75}}
.contact-links{align-items:center;gap:32px;font-size:clamp(22px,2.1vw,36px)}
.contact-links a{display:inline-flex;align-items:center;gap:30px;padding:8px 0 12px}
.direct-contacts{display:flex;gap:30px;flex-wrap:wrap;font-size:15px;font-style:normal;line-height:1.8;margin-top:22px}
.direct-contacts a{padding:5px 0;transition:opacity .2s}

.contact .invitation{max-width:470px;text-wrap:pretty}
footer{align-items:center}footer .back-to-start{opacity:.75}
dialog{padding-top:50px;padding-bottom:calc(35px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
dialog[open]{animation:sheet-enter .35s cubic-bezier(.2,.75,.25,1) both}
dialog[open]::backdrop{animation:backdrop-enter .3s ease both}
dialog.closing{animation:sheet-exit .2s ease both}dialog.closing::backdrop{animation:backdrop-enter .2s ease reverse both}
dialog h2{margin-top:34px;margin-bottom:16px;letter-spacing:-.035em}
.sheet-links{margin:24px 0;font-size:23px}
.sheet-links a{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 0;line-height:1.35}
.sheet-links small{display:block;font-size:11px;font-weight:400;line-height:1.6;margin-top:5px;color:#526469}
.sheet-channel{display:inline-block;padding:9px 0;font-size:12px}
.close-sheet{width:48px;height:48px;display:grid;place-items:center;line-height:1;padding:0}
@keyframes sheet-enter{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}
@keyframes sheet-exit{to{opacity:0;transform:translateY(20px)}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@media(max-width:700px){
 .contact-copy{padding-top:15svh}.contact h2{font-size:clamp(40px,10.8vw,46px)}
 .contact-links{font-size:22px;gap:20px;margin-top:24px}.contact-links a{gap:24px}
 .direct-contacts{font-size:13px;gap:8px 24px;margin-top:17px}.direct-contacts a{padding:2px 0}
 
 footer{font-size:10px;gap:0 12px;justify-content:space-between}footer>span{margin-bottom:1px}
 dialog{padding:38px 26px calc(24px + env(safe-area-inset-bottom))}dialog h2{font-size:36px;margin-top:28px}
 .sheet-links{font-size:20px;margin:20px 0 14px}.sheet-links a{padding:15px 0}.sheet-links small{font-size:11px}
}
@media(max-height:650px){dialog{padding-top:24px}.sheet-links{margin:12px 0}.sheet-links a{padding:10px 0}dialog h2{margin-top:18px;font-size:32px}.sheet-channel{padding:5px 0}}

/* A denied autoplay or a motion preference must still allow explicit playback. */
.film-controls button{min-height:44px;touch-action:manipulation}
.media-needs-start .film-controls button{opacity:1;border-bottom:1px solid currentColor}
body.at-contact.media-needs-start .film-controls{visibility:visible;bottom:calc(105px + env(safe-area-inset-bottom))}
