/* The home page is a short visual journey from the bay to the coast. */
.page-home .site-header{position:fixed;left:0;right:0;top:0;height:84px;background:rgba(7,25,34,.78);backdrop-filter:blur(18px);border-bottom:1px solid #ffffff20}
.page-home .header-inner{max-width:none}
.page-home .hero-scroll{height:185svh;min-height:0;background:#0a202a}
.page-home .hero{position:sticky;top:0;width:100%;height:100svh;min-height:570px;max-height:none;max-width:none;isolation:isolate;background:#102b35}
.hero-media,.hero-coast{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.hero-media,.hero-lens-media{transform:translate3d(var(--bridge-x,0px),0,0) scale(var(--bridge-scale,1));transform-origin:78% 48%;will-change:transform}
.hero-coast{z-index:2;clip-path:circle(var(--coast-radius,200px) at 78% 48%);will-change:clip-path}
.hero-coast:after{content:'';position:absolute;inset:0;opacity:var(--coast-scrim,0);background:linear-gradient(90deg,#071b26a8,#071b2610 68%),linear-gradient(0deg,#102b35 0%,#102b3599 15%,transparent 42%)}
.hero-water-camera{position:absolute;inset:0;overflow:hidden;opacity:var(--water-mix,0);transform:scale(var(--coast-scale,1.18));will-change:transform;z-index:2}.hero-water-image{height:100%;width:100%;object-position:50% 100%;filter:saturate(1.08) contrast(1.03);animation:coast-drift 24s ease-in-out infinite alternate;will-change:transform}
.hero .hero-media>.hero-image,.hero-lens-image{height:100%;width:100%;inset:0;object-position:center 55%;transform-origin:65% 60%;animation:ambient-camera 22s ease-in-out infinite alternate;filter:saturate(1.4) contrast(1.12) brightness(1.04)}
.hero .hero-shade,.hero-lens-shade{z-index:1;background:linear-gradient(90deg,#071b26b8,#071b2620 62%,#071b2626),linear-gradient(0deg,#102b35b0,transparent 28%);pointer-events:none}
.hero .hero-content{z-index:3;padding:clamp(125px,15svh,190px) clamp(24px,6.1vw,104px) 180px;margin:0;max-width:none;opacity:var(--first-opacity,1);transform:translateY(var(--first-y,0px));will-change:transform,opacity;pointer-events:none}
.hero .hero-content h1{font-size:clamp(76px,min(8.9vw,14svh),148px);line-height:.9;margin:24px 0 27px;letter-spacing:-.055em}
.hero-line{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.hero-line>span{display:block;animation:headline-in 1.25s cubic-bezier(.16,1,.3,1) both;transform-origin:left bottom}
.hero-line:nth-child(2)>span{animation-delay:.13s}.hero-line:nth-child(3)>span{animation-delay:.26s}
.hero .hero-content p{font-size:13px;line-height:1.8;max-width:360px;margin:0}
.hero .hero-eyebrow{animation:soft-arrive 1s .15s both;font-size:9px;letter-spacing:.2em}
.hero-coast-copy{position:absolute;z-index:3;top:clamp(150px,21svh,270px);left:clamp(24px,6.1vw,104px);right:24px;opacity:var(--second-opacity,0);transform:translateY(var(--second-y,70px));pointer-events:none;will-change:opacity,transform}
.scene-title{font:500 clamp(85px,min(12.2vw,19svh),202px)/.84 var(--serif);letter-spacing:-.055em;color:var(--white);margin:30px 0 25px}
.scene-title em{color:var(--sage)}.hero-coast-copy>p:last-child{color:#d7e9ed;font-size:14px;line-height:1.65}
.hero-action{position:absolute;z-index:5;bottom:126px;left:clamp(24px,6.1vw,104px)}
.hero-action .button{min-width:245px;min-height:60px;box-shadow:0 10px 40px #071b2635}
.hero-action .button svg{transition:transform .3s}.hero-action .button:hover svg{transform:rotate(45deg)}
.hero-peek-label{position:absolute;right:9%;top:73%;z-index:3;display:flex;flex-direction:column;gap:7px;color:#f1f3e7;text-align:right;opacity:var(--peek-opacity,1);font-size:9px;letter-spacing:.17em;pointer-events:none}
.hero-peek-label:before{content:'';position:absolute;right:0;bottom:calc(100% + 15px);height:53px;width:1px;background:#f1f3e78a;transform:rotate(28deg);transform-origin:bottom}
.hero-peek-label>span:first-child{font:italic 23px var(--serif);letter-spacing:0;text-transform:lowercase}
.hero-scene-nav{position:absolute;z-index:5;bottom:129px;right:clamp(24px,6.1vw,104px);display:flex;gap:30px}
.hero-scene-nav button{display:flex;align-items:center;gap:10px;position:relative;background:none;border:0;border-bottom:1px solid #ffffff40;padding:12px 0 16px;color:#bed1d9;font-size:12px;min-width:105px;transition:color .25s}
.hero-scene-nav button>span{font-size:9px;color:#a5c1ca}.hero-scene-nav button[aria-pressed=true]{color:white}
.hero-scene-nav button:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--sage);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.hero-scene-nav button[aria-pressed=true]:after{transform:scaleX(1)}
.motion-toggle{position:absolute;right:clamp(24px,4.3vw,72px);top:112px;z-index:6;border:1px solid #ffffff50;border-radius:50px;background:#0b233444;color:#e4e8da;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 13px;font-size:9px;min-height:36px}
.motion-toggle:hover{background:#24505dc0}.pause-icon{font-size:12px}.hero.ambient-paused .hero-image,.hero.ambient-paused .hero-lens-image,.hero.ambient-paused .hero-line>span{animation-play-state:paused}
.hero .hero-side{display:none}.hero .hero-bottom{z-index:5;padding:23px 0}.hero .hero-bottom>a{font-size:10px}.hero .hero-bottom .hero-progress{width:80px}
.kinetic-band{position:relative;overflow:hidden;padding:42px 0 55px;border-bottom:1px solid var(--line);background:#0e2732}
.kinetic-meta{display:flex;justify-content:space-between;padding:0 clamp(24px,6.1vw,104px);font-size:9px;letter-spacing:.15em;color:#9dbfc8;margin-bottom:28px}
.kinetic-track{display:flex;align-items:center;gap:48px;width:max-content;transform:translate3d(var(--band-x,0),0,0);font:500 clamp(80px,10.8vw,182px)/1 var(--serif);letter-spacing:-.04em;white-space:nowrap;color:var(--sage);will-change:transform}
.outline-type{-webkit-text-stroke:1px #80aeb5;color:transparent}.kinetic-star{font:100px var(--sans);display:block;transform:rotate(var(--star-turn,0deg));color:#8abebd}
.page-home .quick-paths{position:relative;z-index:2;background:var(--paper);max-width:none}
.page-home .quick-paths>a{transition:background .3s,padding .3s}.page-home .quick-paths>a:hover{padding-left:18px;background:#214954}.page-home .quick-paths>a+a:hover{padding-left:42px}
.page-home .intro h2{font-size:clamp(48px,4.8vw,76px)}
.area-visual{isolation:isolate}.area-visual>img{position:relative;z-index:1}.area-visual>.area-outgoing{position:absolute;inset:0;height:100%;width:100%;z-index:0}.area-visual:after{z-index:2}.area-visual .photo-caption{z-index:3}
.location-tabs button{transition:color .3s}.location-tabs button:hover{color:var(--sage)}
.property-photo .image-arrow{transition:transform .3s,background .3s}.property-photo:hover .image-arrow{transform:rotate(45deg);background:var(--sage);color:#102b35}.property-photo>img{transition:transform 1.3s cubic-bezier(.2,.65,.2,1),filter .7s}.property-photo:hover>img{transform:scale(1.075);filter:brightness(1) saturate(.9)}
.contact-band .band-line{transition:transform 1.4s cubic-bezier(.2,.65,.2,1)}.contact-band:hover .band-line{transform:translate(-55px,40px) scale(1.15)}
.will-reveal{transform:translateY(42px);transition:opacity .85s,transform 1s cubic-bezier(.16,1,.3,1)}.will-reveal.is-visible{transform:none}
@keyframes ambient-camera{from{transform:scale(1.06) translate(-1%,-.4%)}to{transform:scale(1.23) translate(1.8%,1.2%)}}
@keyframes coast-drift{from{transform:scale(1.04) translate(-.8%,.4%)}to{transform:scale(1.18) translate(1.6%,-1%)}}
@keyframes headline-in{from{transform:translateY(120%) rotate(4deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes soft-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.hero .hero-content h1{font-size:clamp(76px,10vw,115px)}.hero-peek-label{right:7%;top:66%}.hero-scene-nav{gap:18px}.hero-scene-nav button{min-width:90px}.hero-action{bottom:125px}.hero-coast-copy{top:24svh}}
@media(max-width:800px){.page-home .site-header{height:76px}.page-home .site-header nav{top:75px}.page-home .hero{min-height:650px;top:0;height:100svh}.page-home .hero-scroll{height:max(175svh,1120px)}.hero .hero-content{padding-top:150px}.hero .hero-content h1{font-size:clamp(70px,11.8vw,102px)}.hero-coast{clip-path:circle(var(--coast-radius,150px) at 80% 42%)}.hero-action{bottom:140px}.hero-scene-nav{bottom:80px;left:24px;right:auto;gap:22px}.hero-scene-nav button{font-size:10px;min-width:105px;padding:9px 0}.hero-peek-label{display:none}.motion-toggle{top:96px;right:24px}.hero .hero-bottom{padding:18px 0}.hero .hero-bottom .hero-progress{width:40px}.hero-coast-copy{top:26svh}.scene-title{font-size:clamp(90px,16vw,140px)}.kinetic-band{padding:30px 0 40px}.kinetic-meta{font-size:8px}.kinetic-track{font-size:110px;gap:30px}.kinetic-star{font-size:60px}.page-home .quick-paths>a:hover,.page-home .quick-paths>a+a:hover{padding-left:15px}}
@media(max-width:540px){.page-home .hero{min-height:660px}.hero .hero-content{padding:140px 24px 225px}.hero .hero-content h1{font-size:clamp(56px,17vw,82px);line-height:.94;margin:22px 0 23px}.hero .hero-eyebrow{font-size:7px;letter-spacing:.12em}.hero .hero-content p{font-size:11px;max-width:255px}.hero-coast{clip-path:circle(var(--coast-radius,90px) at 82% 36%)}.hero-action{bottom:145px;left:24px}.hero-action .button{min-height:54px;min-width:225px;font-size:11px}.hero-scene-nav{bottom:88px}.hero-scene-nav button{font-size:10px}.hero-coast-copy{left:24px;top:200px}.hero-coast-copy>.eyebrow{font-size:8px}.scene-title{font-size:clamp(75px,23vw,110px);margin:25px 0}.hero-coast-copy>p:last-child{font-size:12px}.hero .hero-bottom{margin:0 24px;padding:19px 0;font-size:7px}.hero .hero-bottom>a{font-size:8px;gap:8px}.hero .hero-bottom .hero-progress{width:25px}.motion-toggle{top:94px;font-size:8px;padding:7px 10px;min-height:31px}.kinetic-meta{font-size:7px;gap:25px}.kinetic-meta>span:last-child{text-align:right}.kinetic-track{font-size:85px;gap:23px}.kinetic-star{font-size:48px}.page-home .intro h2{font-size:46px}}
@media(max-height:700px) and (min-width:801px){.page-home .hero{min-height:560px}.hero .hero-content{padding-top:115px;padding-bottom:180px}.hero .hero-content h1{font-size:76px;margin:16px 0 18px}.hero .hero-content p{font-size:11px}.hero-action{bottom:85px}.hero-action .button{min-height:48px}.hero .hero-bottom{padding:15px 0}.hero-scene-nav{bottom:90px}.hero-coast-copy{top:140px}.scene-title{font-size:110px}.hero-coast-copy>p:last-child{font-size:12px}.motion-toggle{top:100px}}
html:not(.has-scroll-motion) .page-home .hero-scroll{height:auto;min-height:0}html:not(.has-scroll-motion) .page-home .hero{position:relative;top:auto}
.motion-reduced .hero .hero-image,.motion-reduced .hero-line>span,.motion-reduced .hero-eyebrow{animation:none}.motion-reduced .motion-toggle{display:none}.motion-reduced .hero[data-static-scene=bay] .hero-coast{display:none}.motion-reduced .hero[data-static-scene=coast] .hero-coast{clip-path:none}.motion-reduced .hero .hero-content,.motion-reduced .hero-coast-copy{transform:none}.motion-reduced .hero .hero-content{opacity:1}.motion-reduced .hero[data-static-scene=coast] .hero-content{opacity:0}.motion-reduced .hero[data-static-scene=coast] .hero-coast-copy{opacity:1}
@media(prefers-reduced-motion:reduce){.hero .hero-image,.hero-line>span,.hero .hero-eyebrow{animation:none!important}.hero-media,.hero-coast>img,.kinetic-track,.kinetic-star{transform:none!important}.page-home .hero-scroll{height:auto;min-height:0}.page-home .hero{position:relative;top:0}.motion-toggle{display:none}.hero-peek-label{display:none}.will-reveal{opacity:1;transform:none}.property-photo>img{transition:none}.hero-scene-nav button:after{transition:none}}

/* Compact screens retain both scenes without a clipped sticky stage. */
@media(max-height:599px){.page-home .hero-scroll{height:auto;min-height:0}.page-home .hero{position:relative;min-height:650px;height:650px}.hero-coast-copy{top:160px}.hero-peek-label{display:none}}
/* Keep the default document useful when scripts are unavailable. */
html:not(.experience-ready) .hero-image,html:not(.experience-ready) .hero-line>span,html:not(.experience-ready) .hero-eyebrow{animation:none!important}
html:not(.experience-ready) .hero-scene-nav,html:not(.experience-ready) .motion-toggle,html:not(.navigation-ready) .menu-toggle,html:not(.navigation-ready) .location-tabs,html:not(.navigation-ready) .topic-buttons,html:not(.navigation-ready) [data-copy-email]{display:none}
@media(max-width:800px){html:not(.navigation-ready) .site-header{position:relative;height:auto}html:not(.navigation-ready) .header-inner{flex-wrap:wrap;padding-top:18px;padding-bottom:10px;gap:12px}html:not(.navigation-ready) .site-header nav{position:static;display:flex;flex-wrap:wrap;gap:10px 20px;width:100%;border:0;padding:0;background:transparent}html:not(.navigation-ready) .site-header nav .nav-contact{margin:0}}

/* The opening lens samples the same bay image, then dissolves into water. */
.hero-lens-view,.hero-lens-media,.hero-lens-shade{position:absolute;inset:0;overflow:hidden}
.hero-lens-view{transform:scale(1.1);transform-origin:78% 48%;opacity:calc(1 - var(--water-mix,0))}
.hero-lens-image{position:absolute;object-fit:cover}

.hero-coast:after{z-index:3}
@media(max-width:800px){.hero-media,.hero-lens-media,.hero-lens-view{transform-origin:80% 42%}}
@media(max-width:540px){.hero-media,.hero-lens-media,.hero-lens-view{transform-origin:82% 36%}}
.motion-reduced .hero-lens-image,html:not(.experience-ready) .hero-lens-image{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-lens-image{animation:none!important}.hero-lens-view,.hero-lens-media{transform:none!important}}

.hero.ambient-paused .hero-water-image{animation-play-state:paused}
.motion-reduced .hero-water-image,html:not(.experience-ready) .hero-water-image{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-water-image{animation:none!important}.hero-water-camera{transform:none!important}}
