:root{--ink:#171312;--muted:#695f5b;--paper:#fffdfa;--soft:#f7f1ea;--line:#e6dad0;--coral:#b94f3d;--coral-dark:#8e372c;--teal:#0e6b66;--mint:#dce7de;--gold:#c59c43;--rose:#f3c5bd;--shadow:0 20px 55px #17131229;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.22, 1, .36, 1);--scroll-progress:0%;--cursor-x:50vw;--cursor-y:50vh;--hero-shift:0px;--hero-scale:1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.site-shell{position:relative;overflow:hidden}.scroll-progress{z-index:80;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.scroll-progress span{background:linear-gradient(90deg, var(--coral), var(--gold), var(--teal));height:100%;transform:scaleX(var(--scroll-progress));transform-origin:0;width:100%;display:block}.ambient-cursor{height:460px;left:var(--cursor-x);mix-blend-mode:multiply;opacity:.64;pointer-events:none;top:var(--cursor-y);transition:opacity .5s var(--ease-soft);z-index:1;background:radial-gradient(circle,#f3c5bd3d,#0000 64%);width:460px;position:fixed;transform:translate(-50%,-50%)}.site-loader{background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;transition:opacity .72s var(--ease-out), visibility .72s var(--ease-out);visibility:hidden;z-index:100;place-items:center;display:grid;position:fixed;inset:0}.motion-ready .site-loader{opacity:1;pointer-events:auto;visibility:visible}.site-loader-hidden,.motion-ready .site-loader.site-loader-hidden{opacity:0;pointer-events:none;visibility:hidden}.loader-mark{place-items:center;gap:18px;display:grid;overflow:hidden}.loader-mark span{animation:loader-word .9s var(--ease-out) both;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,8vw,7rem);line-height:.94}.loader-mark i{animation:loader-line .9s var(--ease-out) .12s both;background:linear-gradient(90deg, transparent, var(--rose), var(--gold), transparent);width:min(360px,64vw);height:1px;display:block}.motion-ready [data-reveal]{filter:blur(14px);opacity:0;transition:opacity .9s var(--ease-out) var(--reveal-delay,0s), transform 1.1s var(--ease-out) var(--reveal-delay,0s), filter .9s var(--ease-out) var(--reveal-delay,0s), clip-path 1.1s var(--ease-out) var(--reveal-delay,0s);will-change:opacity, transform, filter;transform:translateY(44px)scale(.985)}.motion-ready [data-reveal=hero]{transform:translateY(24px)scale(.99)}.motion-ready [data-reveal=image]{clip-path:inset(12% 0 round 8px);transform:translateY(54px)scale(.96)}.motion-ready [data-reveal].is-visible{clip-path:inset(0 round 8px);filter:blur();opacity:1;transform:translate(0,0)scale(1)}.magnetic{transition:transform .42s var(--ease-soft), box-shadow .42s var(--ease-soft), background .42s var(--ease-soft), color .42s var(--ease-soft);will-change:transform;position:relative;overflow:hidden}.magnetic:after{content:"";transition:left .62s var(--ease-out);background:linear-gradient(110deg,#0000,#ffffff47,#0000);width:70%;position:absolute;inset:0 auto 0 -90%;transform:skew(-18deg)}.magnetic:hover{transform:translateY(-3px)scale(1.015);box-shadow:0 18px 42px #1713122e}.magnetic:hover:after{left:125%}.magnetic svg{transition:transform .42s var(--ease-soft);flex:none}.magnetic:hover svg{transform:translate(2px)}.interactive-card{transition:border-color .48s var(--ease-soft), box-shadow .52s var(--ease-soft), transform .52s var(--ease-soft);will-change:transform;position:relative;transform:translateZ(0)}.interactive-card:before{content:"";opacity:0;pointer-events:none;transition:opacity .42s var(--ease-soft), transform .8s var(--ease-out);z-index:1;background:linear-gradient(130deg,#0000 20%,#ffffff4d,#0000 74%);position:absolute;inset:0;transform:translate(-42%)}.interactive-card:hover{border-color:#b94f3d52;transform:translateY(-8px);box-shadow:0 28px 70px #17131224}.interactive-card:hover:before{opacity:1;transform:translate(42%)}.site-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:nav-drop .9s var(--ease-out) .52s both;z-index:20;background:#fffdfae0;border:1px solid #e6dad0b8;border-radius:8px;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:13px 14px 13px 20px;display:grid;position:fixed;top:18px;left:24px;right:24px;transform:translateY(-18px);box-shadow:0 16px 40px #17131214}.brand{align-items:center;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:700;display:inline-flex}.site-header nav{gap:22px;display:flex}.site-header nav a,.header-action{color:#3b332f;font-size:.93rem;font-weight:700}.site-header nav a{position:relative}.site-header nav a:after{background:var(--coral);content:"";transform-origin:100%;height:2px;transition:transform .36s var(--ease-soft);width:100%;position:absolute;bottom:-7px;left:0;transform:scaleX(0)}.site-header nav a:hover:after{transform-origin:0;transform:scaleX(1)}.header-action{background:var(--ink);color:var(--paper);border-radius:8px;justify-self:end;align-items:center;gap:8px;padding:11px 15px;display:inline-flex}.hero{isolation:isolate;align-items:end;min-height:88svh;padding:144px 6vw 56px;display:flex;position:relative;overflow:hidden}.hero:before{background:linear-gradient(90deg, #171312d1, #1713125c), var(--hero-image);content:"";transform:translate3d(0, var(--hero-shift), 0) scale(var(--hero-scale));transform-origin:50%;z-index:-2;background-position:50%;background-size:cover;position:absolute;inset:-7%}.hero:after{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle at 18% 72%,#f3c5bd42,#0000 28%),linear-gradient(#0000 58%,#17131257);position:absolute;inset:0}.hero-content{color:#fffdfa;z-index:2;max-width:820px;position:relative}.eyebrow{color:var(--coral);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.82rem;font-weight:900}.hero .eyebrow{color:var(--rose)}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:0}h1{text-wrap:balance;max-width:780px;margin-bottom:24px;font-family:Georgia,Times New Roman,serif;font-size:5.4rem;line-height:.96}h2{margin-bottom:18px;font-family:Georgia,Times New Roman,serif;font-size:3rem;line-height:1.05}h3{margin-bottom:10px;font-size:1.22rem;line-height:1.2}.hero-copy{color:#fffdfae6;max-width:660px;font-size:1.26rem;line-height:1.65}.hero-actions,.contact-list{flex-wrap:wrap;gap:12px;display:flex}.primary-action,.secondary-action{z-index:0;border-radius:8px;align-items:center;gap:9px;min-height:48px;padding:14px 18px;font-weight:900;display:inline-flex}.primary-action{background:var(--coral);color:#fffdfa}.primary-action:hover{background:var(--coral-dark)}.secondary-action{color:var(--ink);background:#fffdfaeb}.hero-stats{grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px;max-width:650px;margin:46px 0 0;display:grid}.hero-stats div{border-left:3px solid var(--rose);transition:border-color .36s var(--ease-soft), transform .42s var(--ease-soft);padding-left:14px}.hero-stats div:hover{border-color:var(--gold);transform:translateY(-3px)}.marquee-band{background:var(--ink);color:var(--paper);border-block:1px solid #fffdfa1f;padding:18px 0;overflow:hidden}.marquee-track{will-change:transform;gap:24px;width:max-content;animation:34s linear infinite marquee;display:flex}.marquee-track span{color:#fffdfab8;text-transform:uppercase;white-space:nowrap;align-items:center;gap:24px;font-size:.86rem;font-weight:900;display:inline-flex}.marquee-track span:after{background:var(--gold);content:"";border-radius:999px;width:6px;height:6px;display:inline-block}.hero-stats dt{font-size:1.55rem;font-weight:900}.hero-stats dd{color:#fffdfac7;margin:4px 0 0}.booking-band,.section-shell,.gallery-section,.team-section,.reviews-section,.visit-section,.membership-band{padding:92px 6vw}.booking-band{background:var(--soft);grid-template-columns:minmax(260px,.74fr) minmax(320px,1fr);align-items:start;gap:40px;display:grid}.section-heading{text-align:center;max-width:720px;margin:0 auto 42px}.section-heading p:not(.eyebrow),.feature-intro p:not(.eyebrow),.membership-copy p,.visit-details p{color:var(--muted);font-size:1.04rem;line-height:1.72}.section-heading.compact{text-align:left;max-width:520px;margin:0}.booking-form{border:1px solid var(--line);box-shadow:var(--shadow);transition:box-shadow .52s var(--ease-soft), transform .52s var(--ease-soft);background:#fffdfa;border-radius:8px;gap:16px;padding:24px;display:grid;position:relative}.booking-form:hover{transform:translateY(-5px);box-shadow:0 30px 82px #1713122e}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-group{gap:7px;display:grid}.field-group label{color:#463d38;font-size:.86rem;font-weight:900}.field-group input,.field-group select,.agent-input input{border:1px solid var(--line);color:var(--ink);min-height:46px;transition:border-color .26s var(--ease-soft), box-shadow .26s var(--ease-soft), transform .26s var(--ease-soft);background:#fffdfa;border-radius:8px;outline:none;padding:0 13px}.field-group input:focus,.field-group select:focus,.agent-input input:focus{border-color:var(--teal);transform:translateY(-1px);box-shadow:0 0 0 3px #0e6b6621}.full{justify-content:center;width:100%}.booking-confirmation{background:var(--mint);color:#124743;animation:confirmation-rise .52s var(--ease-out) both;border:1px solid #0e6b6629;border-radius:8px;align-items:center;gap:9px;margin:0;padding:12px 14px;font-weight:800;line-height:1.45;display:flex}.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;display:grid}.service-card,.team-card,.review-card{border:1px solid var(--line);background:#fffdfa;border-radius:8px;overflow:hidden}.service-card img{aspect-ratio:4/3;object-fit:cover;height:auto;transition:filter .7s var(--ease-soft), transform .9s var(--ease-out);width:100%}.service-card:hover img,.gallery-tile:hover img{filter:saturate(1.08)contrast(1.04);transform:scale(1.06)}.service-card-body{padding:22px}.service-meta{color:var(--teal);flex-wrap:wrap;gap:10px;margin-bottom:13px;font-size:.82rem;font-weight:900;display:flex}.service-card p,.feature-item p,.team-card p,.review-card p{color:var(--muted);line-height:1.65}.feature-band{background:var(--ink);color:#fffdfa;padding:92px 6vw}.feature-layout{grid-template-columns:minmax(280px,.8fr) minmax(320px,1fr);align-items:start;gap:48px;max-width:1180px;margin:0 auto;display:grid}.feature-intro p:not(.eyebrow),.feature-item p{color:#fffdfab8}.feature-list{gap:18px;display:grid}.feature-item{border:1px solid #fffdfa29;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:16px;padding:22px;display:grid;overflow:hidden}.feature-item span{background:var(--gold);color:var(--ink);height:42px;transition:transform .52s var(--ease-soft);border-radius:8px;justify-content:center;align-items:center;width:42px;display:inline-flex}.feature-item:hover span{transform:rotate(-6deg)scale(1.08)}.gallery-section{background:#fffdfa}.gallery-grid{grid-template-columns:1.2fr .8fr .8fr;gap:16px;display:grid}.gallery-tile{border-radius:8px;margin:0;position:relative;overflow:hidden}.gallery-tile.large{grid-row:span 2}.gallery-tile img{aspect-ratio:1;object-fit:cover;height:100%;transition:filter .7s var(--ease-soft), transform 1s var(--ease-out);width:100%}.gallery-tile.large img{aspect-ratio:4/5}.gallery-tile figcaption{color:#fffdfa;max-width:calc(100% - 24px);transition:background .42s var(--ease-soft), transform .42s var(--ease-soft);z-index:2;background:#171312bd;padding:9px 11px;font-weight:900;position:absolute;bottom:12px;left:12px;right:auto}.gallery-tile:hover figcaption{background:#0e6b66db;transform:translateY(-4px)}.team-section{background:var(--soft)}.team-grid,.review-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.team-card,.review-card{padding:26px}.team-card svg{color:var(--coral);transition:transform .52s var(--ease-soft);margin-bottom:18px}.team-card:hover svg{transform:rotate(8deg)scale(1.08)}.team-role{margin-bottom:10px;font-weight:900;color:var(--teal)!important}.membership-band{background:var(--mint);grid-template-columns:minmax(260px,.8fr) minmax(320px,1fr);align-items:center;gap:36px;display:grid}.membership-copy{max-width:560px}.membership-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.membership-list li{min-height:58px;transition:box-shadow .42s var(--ease-soft), transform .42s var(--ease-soft);background:#fffdfac7;border:1px solid #0e6b6624;border-radius:8px;align-items:center;gap:12px;padding:14px 16px;font-weight:900;display:flex}.membership-list li:hover{transform:translate(8px);box-shadow:0 16px 36px #0e6b661f}.membership-list svg{color:var(--teal);flex:none}.reviews-section{background:#fffdfa}.stars{color:var(--gold);gap:4px;margin-bottom:18px;display:flex}.stars svg{animation:star-breathe 2.6s var(--ease-soft) infinite}.stars svg:nth-child(2){animation-delay:90ms}.stars svg:nth-child(3){animation-delay:.18s}.stars svg:nth-child(4){animation-delay:.27s}.stars svg:nth-child(5){animation-delay:.36s}.review-card p{font-size:1.05rem}.review-card span{color:var(--coral);font-weight:900}.visit-section{background:var(--ink);color:#fffdfa;grid-template-columns:minmax(300px,.72fr) minmax(340px,1fr);align-items:stretch;gap:28px;display:grid}.visit-details{align-self:center}.visit-details h2{margin-bottom:8px}.contact-list{margin:26px 0}.contact-list a,.hours-list{transition:background .36s var(--ease-soft), border-color .36s var(--ease-soft), transform .36s var(--ease-soft);border:1px solid #fffdfa29;border-radius:8px;align-items:center;gap:10px;padding:12px 14px;display:flex}.contact-list a:hover{background:#fffdfa14;border-color:#fffdfa57;transform:translateY(-2px)}.hours-list{align-items:start;margin-bottom:22px}.hours-list p{color:#fffdfac7;margin-bottom:4px}.map-link{background:var(--gold);color:var(--ink)}.map-frame{min-height:460px;transition:border-color .42s var(--ease-soft), box-shadow .52s var(--ease-soft), transform .52s var(--ease-soft);border:1px solid #fffdfa2e;border-radius:8px;position:relative;overflow:hidden}.map-frame:after{content:"";pointer-events:none;background:linear-gradient(120deg,#c59c432e,#0000 32%);position:absolute;inset:0}.map-frame:hover{border-color:#c59c4380;transform:translateY(-6px);box-shadow:0 30px 90px #00000038}.map-frame iframe{border:0;width:100%;height:100%}.site-footer{border-top:1px solid var(--line);background:#fffdfa;justify-content:space-between;align-items:center;padding:26px 6vw;display:flex}.site-footer div,.site-footer a{align-items:center;gap:10px;font-weight:900;display:inline-flex}.site-footer svg{color:var(--coral)}.agent-panel{border:1px solid var(--line);width:390px;max-height:min(660px,100svh - 44px);animation:agent-rise .72s var(--ease-out) 1s both;z-index:30;background:#fffdfa;border-radius:8px;grid-template-rows:auto minmax(160px,1fr) auto auto;display:grid;position:fixed;bottom:22px;right:22px;overflow:hidden;box-shadow:0 28px 80px #17131240}.agent-header{background:var(--ink);color:#fffdfa;justify-content:space-between;align-items:center;padding:16px;display:flex}.agent-title{align-items:center;gap:12px;display:flex}.agent-title p{margin:0;font-weight:900}.agent-title span{color:#fffdfaad;font-size:.82rem}.agent-icon{background:var(--coral);border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.icon-button,.agent-launcher{border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-button{color:inherit;background:#fffdfa1f;width:38px;height:38px}.agent-messages{gap:10px;max-height:288px;padding:16px;display:grid;overflow-y:auto}.message{max-width:92%;animation:message-in .38s var(--ease-out) both;border-radius:8px;padding:11px 12px;line-height:1.45}.message.agent{background:var(--soft);color:var(--ink);justify-self:start}.message.guest{background:var(--teal);color:#fffdfa;justify-self:end}.message.loading{align-items:center;gap:8px;display:inline-flex}.message.loading svg{animation:.9s linear infinite spin}.agent-suggestions{flex-wrap:wrap;gap:8px;padding:0 16px 14px;display:flex}.agent-suggestions button{border:1px solid var(--line);color:var(--ink);min-height:36px;transition:background .32s var(--ease-soft), border-color .32s var(--ease-soft), transform .32s var(--ease-soft);background:#fffdfa;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.agent-suggestions button:hover{background:var(--soft);border-color:#b94f3d47;transform:translateY(-2px)}.agent-suggestions svg{color:var(--coral);flex:none}.agent-input{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:8px;padding:14px;display:grid}.agent-input input{min-width:0}.icon-button.send{background:var(--coral);color:#fffdfa;width:46px;height:46px}.agent-launcher{background:var(--ink);box-shadow:var(--shadow);color:#fffdfa;width:58px;height:58px;animation:agent-rise .54s var(--ease-out) both;z-index:30;position:fixed;bottom:22px;right:22px}@keyframes nav-drop{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes loader-word{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}@keyframes loader-line{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes confirmation-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes star-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.08)}}@keyframes agent-rise{0%{opacity:0;transform:translateY(22px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes message-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (hover:none),(pointer:coarse){.ambient-cursor{display:none}.interactive-card:hover,.magnetic:hover,.booking-form:hover,.map-frame:hover{transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.ambient-cursor,.site-loader,.scroll-progress{display:none!important}.motion-ready [data-reveal],.motion-ready [data-reveal].is-visible{clip-path:none;filter:none;opacity:1;transform:none}.hero:before{transform:none}}@media (max-width:1100px){h1{font-size:4.4rem}h2{font-size:2.55rem}.service-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.site-header{grid-template-columns:1fr auto;gap:12px;padding:11px 12px;top:12px;left:12px;right:12px}.site-header nav{display:none}.hero{min-height:86svh;padding:124px 20px 42px}h1{font-size:3.2rem}h2{font-size:2.2rem}.hero-copy{font-size:1.05rem}.hero-stats,.booking-band,.feature-layout,.membership-band,.visit-section,.team-grid,.review-grid{grid-template-columns:1fr}.booking-band,.section-shell,.gallery-section,.team-section,.reviews-section,.visit-section,.membership-band,.feature-band{padding:68px 20px}.section-heading{text-align:left}.service-grid,.gallery-grid{grid-template-columns:1fr}.gallery-tile.large{grid-row:auto}.gallery-tile.large img,.gallery-tile img{aspect-ratio:4/3}.map-frame{min-height:360px}.site-footer{flex-direction:column;align-items:start;gap:16px}.agent-panel{width:calc(100vw - 24px);max-height:calc(100svh - 24px);bottom:12px;right:12px}}@media (max-width:560px){.hero{min-height:84svh}.hero-actions,.field-row,.contact-list{grid-template-columns:1fr;display:grid}.primary-action,.secondary-action,.header-action{justify-content:center}.hero-stats{gap:16px}.booking-form{padding:18px}.agent-messages{max-height:250px}}
