/* Responsive motion: native scrolling for touch, subtle depth for a mouse. */
html{overflow-x:clip}body{overflow-x:clip}main,section,.menu-layout>*{min-width:0}
.hero-content>.eyebrow,.hero-content>h1,.hero-content>p,.hero-actions{animation:weston-arrive 1s cubic-bezier(.16,1,.3,1) both}
.hero-content>h1{animation-delay:.12s}.hero-content>p{animation-delay:.24s}.hero-actions{animation-delay:.36s}
@keyframes weston-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.hero-seal{animation:seal-drift 7s ease-in-out infinite}
@keyframes seal-drift{0%,100%{transform:translateY(0) rotate(12deg)}50%{transform:translateY(-10px) rotate(7deg)}}
.button{position:relative;overflow:hidden;min-height:44px;transition:background .25s,transform .25s,box-shadow .25s}
.button:after{content:'';position:absolute;inset:-60% auto -60% -50%;width:25%;background:linear-gradient(90deg,transparent,#ffffff35,transparent);transform:skewX(-20deg);pointer-events:none;transition:left .7s}
.button:active{transform:scale(.97)}.button span,.text-link span,.spaces-grid i{transition:transform .3s}
@media(hover:hover) and (pointer:fine){.button:hover:after{left:135%}.button:hover span,.text-link:hover span,.spaces-grid a:hover i{transform:translate(3px,-3px)}.gallery button:hover img{transform:scale(1.07)}.menu-item{transition:background .3s,padding .3s}.menu-item:hover{background:#d9bb8715;padding-left:10px;padding-right:10px}}
.gallery button:active img{transform:scale(.98)}.gallery button:focus-visible img{transform:scale(1.04)}.reveal-pending:focus-within{opacity:1;transform:none}
.ticker.motion-ticker{position:relative;padding:20px 64px 20px 0;overflow:hidden;display:block}
.ticker-track{display:flex;width:max-content;animation:ticker-travel 36s linear infinite}
.ticker-group{display:flex;align-items:center;gap:38px;padding-right:38px;flex-shrink:0;white-space:nowrap}
.ticker-group b:last-child{margin-left:0}.ticker.motion-paused .ticker-track,.ticker.offscreen .ticker-track{animation-play-state:paused}
@keyframes ticker-travel{to{transform:translateX(-50%)}}
.motion-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);height:40px;width:54px;border:1px solid #10292330;color:var(--green);background:var(--cream);font-size:10px;border-radius:0;box-shadow:0 0 25px 20px var(--cream)}
.tour-controls{display:flex;gap:10px;margin-left:20px}.tour-controls button{width:44px;height:44px;border:1px solid #d9bb8760;background:transparent;color:var(--gold);font-size:20px;transition:background .2s,transform .2s}.tour-controls button:active{transform:scale(.94)}.tour-controls button:disabled{opacity:.3;cursor:default}.scroll-story .tour-controls{display:none}
.spaces.motion-ready:not(.scroll-story) .spaces-grid{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0;scrollbar-width:thin;scrollbar-color:#d9bb8770 transparent;padding:5px 0 14px;overscroll-behavior-x:contain}
.spaces.motion-ready:not(.scroll-story) .spaces-grid>a{flex:0 0 43%;min-width:0;padding-top:0;scroll-snap-align:start}
.spaces.motion-ready:not(.scroll-story) .spaces-grid img{height:clamp(250px,37vw,420px)}
.spaces-caption>span:first-child{margin-right:auto}.spaces-caption{gap:10px}.space-count{min-width:48px}
#booking input,#booking select,#booking textarea{transition:border-color .25s,background .25s}#booking input:focus,#booking select:focus,#booking textarea:focus{border-bottom-color:#967443;background:#ffffff25}
#lightbox[open]{animation:lightbox-open .25s ease-out}#lightbox img{touch-action:pan-y}#lightbox button{min-width:44px;min-height:44px}
@keyframes lightbox-open{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@media(max-width:1100px){
header{height:90px;padding:0 5%;gap:18px}header>.button{margin-left:auto}.burger{display:grid;place-items:center;background:none;border:0;color:var(--gold);font-size:24px;width:44px;height:44px;flex-shrink:0}
nav{display:none;position:absolute;top:90px;left:0;right:0;background:var(--deep);padding:22px 6%;flex-direction:column;gap:4px;max-height:calc(100svh - 90px);overflow-y:auto;box-shadow:0 14px 25px #0003}nav.open{display:flex;animation:nav-arrive .25s ease-out}nav a{padding:10px 0;font-size:13px;min-height:44px}header.scrolled nav{top:78px}
.categories button,.tabs button{min-height:44px}.menu-toolbar{flex-wrap:wrap}.search{min-width:150px;flex:1}.search input{width:100%;min-width:0}.spaces .section-top{display:block}.spaces .section-top>p{margin-top:18px}
}
@keyframes nav-arrive{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media(max-width:760px){
header{padding:0 4%;gap:8px}header.scrolled nav{top:74px}header>.button{font-size:9px;gap:8px;padding:9px 11px}.wordmark{font-size:25px;letter-spacing:3px}.wordmark span{letter-spacing:2px;font-size:7px}
.hero h1{font-size:clamp(49px,10.3vw,73px)}.hero-actions{flex-wrap:wrap;gap:20px}.hero-content{max-width:100%}.hero{min-height:610px}.story-images{height:clamp(310px,95vw,420px)}
.spaces.motion-ready:not(.scroll-story) .spaces-grid>a{flex-basis:83%}.spaces.motion-ready:not(.scroll-story) .spaces-grid img{height:330px}.spaces-caption{flex-wrap:wrap}.spaces-caption>span:first-child{flex-basis:100%;margin-bottom:6px}.tour-controls{margin-left:auto}.spaces-grid h3{font-size:28px}
.gallery img{height:clamp(145px,44vw,230px)}.gallery{gap:10px}.reveal-pending{transition-duration:.6s;transform:translateY(18px)}
#booking input,#booking select,#booking textarea,.search input{font-size:16px;min-height:44px}.form-row{gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}form label{min-width:0}.search{order:3;flex-basis:100%}.back-top{width:44px;height:44px;bottom:max(16px,env(safe-area-inset-bottom))}.ticker-group{gap:25px;padding-right:25px}.ticker-track{animation-duration:32s}
footer{column-gap:12px}footer>p{font-size:20px}.hours>div{flex-wrap:wrap}
}
@media(max-width:360px){header>.button>span{display:none}header>.button{font-size:8px;padding:8px}.hero h1{font-size:47px}.section{padding-left:6%;padding-right:6%}.live h2{font-size:40px}.phone{font-size:26px}}
@media(hover:none){.button:hover{transform:none}.spaces-grid a:hover img,.gallery button:hover img{transform:none}.hero-seal{animation:none}}
@media(prefers-reduced-motion:reduce){
*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.reveal-pending{opacity:1;transform:none}.ticker-track{transform:none}.ticker-group[aria-hidden]{display:none}.ticker.motion-ticker{padding:18px}.ticker-group{white-space:normal;flex-wrap:wrap;justify-content:center;gap:15px;width:100%;padding:0}.ticker-track{width:100%}.motion-toggle{display:none}
}
