/* Shoreline rhythm: staggered typography, living imagery, and real wave footage. */
.shoreline-surface{position:relative;isolation:isolate}
.shoreline-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;background:#563b2c}
.shoreline-video{width:100%;height:100%;display:block;object-fit:cover;object-position:center 75%;filter:sepia(.64) saturate(.55) brightness(.8);opacity:.75}
.shoreline-atmosphere::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,#39251dda,#39251d70 60%,#39251d4d)}
.film-section .shoreline-atmosphere{height:min(640px,80vh);mask-image:linear-gradient(#000 45%,transparent);-webkit-mask-image:linear-gradient(#000 45%,transparent)}
.film-section .shoreline-atmosphere::after{background:linear-gradient(110deg,#39251dde,#39251d73 75%)}
.marquee.shoreline-surface{background:#5b4434;color:#ffecd7;border-color:#af886833}
.marquee .shoreline-video{opacity:.68;filter:sepia(.75) saturate(.55) brightness(.85)}
.marquee .shoreline-atmosphere::after{background:linear-gradient(90deg,#3d2a22a3,#3d2a2260)}
.contact .shoreline-video{opacity:.32}
.contact .shoreline-atmosphere::after{background:linear-gradient(110deg,#3b2419d9,#3b241970)}
.coastal-entry{transition:opacity 1s cubic-bezier(.22,1,.36,1),translate 1.25s cubic-bezier(.22,1,.36,1);transition-delay:var(--coastal-delay,0ms)}
.coastal-motion .coastal-entry:not(.coastal-shown){opacity:0;translate:0 28px}
.coastal-motion .coastal-entry.coastal-shown{opacity:1;translate:0 0}
.coastal-heading{position:relative}
.coastal-heading em{background:linear-gradient(110deg,#a4724c 10%,#a4724c 35%,#c5986f 48%,#a4724c 61%,#a4724c 95%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:coastal-light 11s ease-in-out infinite;animation-play-state:paused}
.film-section .coastal-heading em,.international .coastal-heading em,.contact .coastal-heading em{background-image:linear-gradient(110deg,#d3ad86 10%,#d3ad86 35%,#f5d9b9 48%,#d3ad86 61%,#d3ad86 95%)}
.coastal-heading.coastal-active em{animation-play-state:running}
.coastal-image{translate:0 var(--coastal-y,0px);animation:coastal-image-drift 18s ease-in-out infinite alternate;animation-play-state:paused;transform-origin:center}
.coastal-image.coastal-active{animation-play-state:running}
.project-image-button,.location-card,.service{overflow:hidden}
.project-image-button .coastal-image{min-height:100%;transform:scale(1.045)}
.location-card .coastal-image{transform:scale(1.04)}
.developer-grid button{position:relative;transition:background .55s,color .55s,padding .55s;overflow:hidden}
.developer-grid button::after{content:"";position:absolute;inset-inline:20px;bottom:0;height:2px;background:#9c6c47;transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.developer-grid button:hover,.developer-grid button:focus-visible{background:#caa67915;color:#986942}
.developer-grid button:hover::after,.developer-grid button:focus-visible::after,.developer-grid button[aria-pressed=true]::after{transform:scaleX(1)}
[dir=rtl] .developer-grid button::after{transform-origin:right}
.hero-actions a,.header-cta,.button,.enquiry-submit{transition:background .3s,box-shadow .35s,translate .35s}
.hero-actions a:hover,.button:hover,.enquiry-submit:hover{translate:0 -3px;box-shadow:0 9px 22px #4c2c2318}
@keyframes coastal-image-drift{0%{transform:scale(1.045) translateX(-.4%)}100%{transform:scale(1.085) translateX(.4%)}}
@keyframes coastal-light{0%,100%{background-position:100% 50%}55%{background-position:0 50%}}
.motion-paused .coastal-image,.motion-paused .coastal-heading em{animation-play-state:paused!important}
.motion-paused .coastal-entry{opacity:1!important;translate:none!important;transition:none}
.motion-paused .coastal-image{translate:none!important}
@media(max-width:600px){.coastal-motion .coastal-entry:not(.coastal-shown){translate:0 18px}.film-section .shoreline-atmosphere{height:440px}.coastal-entry{transition-duration:.85s,1s}.contact .shoreline-video{object-position:67% center}.coastal-heading em{animation-duration:14s}}
@media(prefers-reduced-motion:reduce){html:not(.motion-enabled) .coastal-entry{opacity:1!important;translate:none!important;transition:none!important}html:not(.motion-enabled) .coastal-image,html:not(.motion-enabled) .coastal-heading em{animation:none!important;translate:none!important}.developer-grid button::after{transition:none}}
