:root{--paper:#f7f3eb;--ink:#273c30;--green:#344a3c;--sage:#e5e9dc;--line:#344a3c35;--muted:#566353;--serif:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.75 Inter,Arial,sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.04em;line-height:1}h1{font-size:clamp(62px,6.8vw,108px)}h2{font-size:clamp(46px,5vw,76px)}h3{font-size:32px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}[hidden]{display:none!important}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;top:10px;left:10px;z-index:100;background:var(--paper);padding:12px}.demo-strip{font-size:8px;letter-spacing:.12em;text-align:center;background:var(--green);color:var(--paper);height:23px;line-height:23px}header{padding:23px 5%;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{font:38px/.85 var(--serif);letter-spacing:-1.8px;white-space:nowrap}.brand i{font-size:30px}.brand small{display:block;font:8px/1 Inter,Arial,sans-serif;letter-spacing:2px;margin-top:12px}nav{display:flex;align-items:center;gap:30px;font-size:11px}.pill{display:inline-flex;gap:35px;justify-content:space-between;align-items:center;background:var(--green);color:var(--paper);padding:15px 24px;border:1px solid var(--green);border-radius:50px;font-size:11px;line-height:1.5}.pill:hover{background:#213a29}.pill.light{background:var(--paper);color:var(--green)}#menu{display:none}.eyebrow{font-size:9px;letter-spacing:.16em;line-height:1.5}.hero{display:grid;grid-template-columns:45% 55%;min-height:730px}.hero-copy{padding:90px 8% 70px 11%;display:flex;align-items:start;flex-direction:column;justify-content:center}.hero h1{margin:24px 0 30px}.hero-copy>p:not(.eyebrow){font-size:12px;color:var(--muted)}.hero .pill{margin-top:30px}.hero-copy>small{margin-top:50px;font-size:8px;letter-spacing:.17em}.hero-image{position:relative;overflow:hidden}.hero-image img{position:absolute;width:100%;height:100%;object-position:66% center}.hero-image span{position:absolute;bottom:30px;left:30px;letter-spacing:.14em;font-size:9px;background:#f7f3ebe6;padding:10px 15px}.pad{padding:85px 7%}.intro{display:grid;grid-template-columns:.7fr 1.5fr 1fr;gap:35px;align-items:start}.intro>p:last-child{padding-top:8px;font-size:12px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:40px}.section-head h2{margin-top:20px}.section-head>p{font-size:12px;color:var(--muted)}.line{display:inline-block;padding:10px 0;border-bottom:1px solid var(--ink);font-size:11px}.services-home{padding-top:20px}.service{display:grid;grid-template-columns:100px 1fr 100px 32px;gap:20px;padding:27px 0;border-top:1px solid var(--line);align-items:center}.service h3{font-size:30px}.service p:not(.price):not(.eyebrow){font-size:11px;color:var(--muted);margin-top:9px}.price{font:29px/1.2 var(--serif)}.price small{display:block;font:9px/1.5 Inter;margin-top:6px}.service>a{font-size:24px}.people{background:var(--sage)}.people>img{width:100%;height:480px;object-position:center 40%}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding-top:35px}.team-grid .eyebrow{margin-top:14px}.team-grid article>p:not(.eyebrow){font-size:11px;margin:16px 0;color:var(--muted)}.gallery{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.gallery img{width:100%;height:100%;max-height:650px}.gallery .pad{align-self:center;padding:75px 13%}.gallery h2{margin:23px 0}.gallery p:not(.eyebrow){font-size:12px;color:var(--muted);margin-bottom:15px}.reviews h2{margin:20px 0 40px}.reviews>div{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}blockquote{font:27px/1.3 var(--serif);margin:0}cite{display:block;font:9px/1.5 Inter;margin-top:22px;letter-spacing:.03em}.closing{text-align:center;background:var(--green);color:var(--paper)}.closing h2{margin:20px 0 35px}.closing>.line{margin-left:24px;border-color:currentColor}footer{padding:65px 7% 110px;display:grid;grid-template-columns:1.2fr 1fr .7fr;gap:35px;font-size:11px}footer>div:last-of-type a{display:block;margin:7px 0}footer .fine{grid-column:1/-1;font-size:9px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.fine a{text-decoration:underline}.page-intro{padding-bottom:45px}.page-intro h1{margin:22px 0 25px}.page-intro>p:last-child{max-width:460px;font-size:13px;color:var(--muted)}.filters{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:25px}.filters button{background:none;border:0;border-bottom:2px solid transparent;padding:9px 0;font-size:12px}.filters button[aria-pressed=true]{border-color:var(--green)}.menu-section{padding-top:5px}.note{font-size:10px;color:var(--muted);margin:15px 0}.booking-layout,.gift-layout,.visit-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:13%;padding-top:30px}.booking-layout aside h2{font-size:55px;margin-bottom:25px}.booking-layout aside>p{margin-top:20px;font-size:12px}form label{font-size:11px;display:block;margin-bottom:20px}input,select,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #344a3c70;padding:10px 0;border-radius:0;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid #819b76;outline-offset:4px}fieldset{border:0;border-top:1px solid var(--line);padding:25px 0;margin:0}legend{padding:0 12px 0 0;font-size:10px;letter-spacing:.12em}.two{display:grid;grid-template-columns:1fr 1fr;gap:25px}#booking-status,#gift-result{margin-top:25px;font-size:13px}dialog{width:min(550px,92vw);background:var(--paper);color:var(--ink);padding:40px;border:0;max-height:90dvh;overflow:auto}dialog::backdrop{background:#17271ed0}.close-dialog{float:right;border:0;background:none;font-size:26px;padding:0 5px}dialog h2{margin:20px 0}dl{margin:25px 0}dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}dd{margin:0;text-align:right}.gift-art{background:var(--green);color:var(--paper);padding:45px;text-align:center;align-self:start;aspect-ratio:1.5;display:flex;flex-direction:column;justify-content:center;box-shadow:12px 12px 0 #dfe3d5}.gift-art>span{font:45px/1 var(--serif)}.gift-art p{font-size:8px;letter-spacing:.15em;margin:25px 0 15px}.gift-art strong{font:60px/1 var(--serif)}.gift-art small{font-size:7px;letter-spacing:.15em;margin-top:25px}.visit-grid h2{font-size:49px;margin-bottom:25px}.visit-grid details{border-top:1px solid var(--line);padding:17px 0;font-size:12px}.visit-grid details:first-of-type{margin-top:35px}summary{cursor:pointer}.visit-grid details p{padding-top:15px;color:var(--muted)}.map-art{background:repeating-linear-gradient(30deg,transparent 0 50px,#f8f5ec 50px 60px),repeating-linear-gradient(105deg,#dce3d0 0 75px,#f8f5ec 75px 84px);height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-top:25px}.map-art span{font-size:13px;letter-spacing:.15em}.map-art i{font-size:34px;font-style:normal}.map-art small{font-size:8px;letter-spacing:.15em}#chat-launch{position:fixed;bottom:20px;right:24px;border:0;background:var(--green);color:var(--paper);padding:14px 21px;border-radius:30px;font-size:11px;box-shadow:0 3px 20px #0002;z-index:20}#chat-launch span{margin-left:25px}#chat{position:fixed;right:24px;bottom:83px;width:min(350px,calc(100vw - 32px));background:var(--paper);box-shadow:0 10px 60px #0003;z-index:25;padding:22px;border:1px solid var(--line);max-height:75dvh;overflow:auto}.chat-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.chat-head button{border:0;background:none;font-size:25px}#chat>label{font-size:10px}#chat select{font-size:12px}#chat-disclosure{font-size:9px;color:var(--muted);margin:12px 0}#chat-log{max-height:210px;overflow:auto;font-size:12px}#chat-log p{padding:12px;background:var(--sage);margin-bottom:9px}#chat-log p.user{background:#e9e0ce}.chat-chips{display:flex;gap:10px;margin:12px 0}.chat-chips button{font-size:10px;border:1px solid var(--line);border-radius:20px;background:none;padding:5px 10px}#chat-form{display:flex;gap:10px}#chat-form button{border:0;background:var(--green);color:var(--paper);padding:8px 12px}#chat-input{font-size:12px}
@media(max-width:900px){nav{gap:16px}.hero{min-height:660px}.hero-copy{padding-left:10%}.intro{grid-template-columns:1fr 1.5fr}.intro>p:last-child{grid-column:2}.service{grid-template-columns:70px 1fr 70px 25px;gap:12px}.people>img{height:370px}.booking-layout,.gift-layout,.visit-grid{gap:7%}.gallery .pad{padding:50px 10%}footer .brand{font-size:30px}}
@media(max-width:700px){html{scroll-padding-top:20px}header{padding:21px 6%;position:relative}.brand{font-size:32px}#menu{display:block;border:0;background:none;font-size:12px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:24px;z-index:10;box-shadow:0 20px 30px #0001}nav.open{display:grid;gap:18px;justify-items:start}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:60px 7% 45px}.hero h1{font-size:66px}.hero-copy>small{margin-top:30px}.hero-image{height:430px}.pad{padding:60px 7%}.intro{grid-template-columns:1fr;gap:22px}.intro>p:last-child{grid-column:auto}.section-head{display:block}.section-head>.line,.section-head>p{margin-top:25px}.service{grid-template-columns:1fr 65px 24px;gap:12px;padding:22px 0}.service>.eyebrow{grid-column:1/-1}.service h3{font-size:29px}.service p:not(.price):not(.eyebrow){font-size:12px}.people>img{height:300px}.team-grid,.reviews>div{grid-template-columns:1fr;gap:35px}.team-grid article{border-bottom:1px solid var(--line);padding-bottom:25px}.gallery{grid-template-columns:1fr}.gallery img{height:400px}.gallery .pad{padding:60px 7%}.closing>.line{margin:20px 0 0;display:table;margin-left:auto;margin-right:auto}footer{grid-template-columns:1fr;padding:55px 7% 110px;gap:28px}.page-intro h1{font-size:64px}.booking-layout,.gift-layout,.visit-grid{grid-template-columns:1fr;gap:40px}.booking-layout{padding-top:0}.booking-layout aside{order:2}.two{grid-template-columns:1fr;gap:0}input,select,textarea{font-size:16px}.gift-art{padding:30px}.gift-art>span{font-size:40px}.filters{gap:20px}.menu-section{padding-top:0}#chat{right:16px}#chat-launch{right:16px}.visit-grid{padding-top:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

.gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:28px 0 8px}
.gallery .gallery-pair img{height:auto;aspect-ratio:1;max-height:none;width:100%}

/* Hero frame size is unchanged; the team portrait keeps its complete composition. */
.hero-image video{position:absolute;width:100%;height:100%;object-fit:cover;object-position:48% center}
#hero-film-toggle{position:absolute;top:20px;right:20px;z-index:1;border:1px solid #344a3c50;border-radius:30px;background:#f7f3ebe6;padding:8px 14px;font-size:10px}
.people>img{height:auto;object-position:center;aspect-ratio:3/2}
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
.scroll-heading{will-change:translate}
.scroll-heading-left{translate:calc(35px - var(--intro-motion,0)*95px) 0}
.scroll-heading-right{translate:calc(var(--services-motion,0)*140px) 0}
}
@media(max-width:700px),(prefers-reduced-motion:reduce){.scroll-heading{translate:none}}

/* A 16:9 video plane uses the frame height; only its sides are cropped. */
.hero-image video{width:auto;height:100%;max-width:none;aspect-ratio:16/9;left:48%;transform:translateX(-48%);object-fit:contain}
.gallery-focus{display:grid;place-items:center;overflow:hidden}
.gallery .gallery-focus>img{width:100%;height:auto;max-height:none;object-fit:contain;aspect-ratio:1}
.gallery-lead{display:inline-block}
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .gallery-story{height:150svh;position:relative}
 .gallery-story>.gallery{position:sticky;top:20px;height:min(88svh,760px);min-height:620px;overflow:hidden}
 .gallery-story .gallery>.pad{padding:35px 10%;width:100%}
 .gallery-story h2{font-size:clamp(40px,4.5vw,68px)}
 .gallery-focus img{clip-path:inset(calc((1 - var(--gallery-reveal,1))*35%) calc((1 - var(--gallery-reveal,1))*5%) calc((1 - var(--gallery-reveal,1))*12%) calc((1 - var(--gallery-reveal,1))*36%));will-change:clip-path}
 .gallery-lead{translate:calc((1 - var(--gallery-title,1))*-32vw) 0;will-change:translate}
 .gallery-feeling{opacity:var(--gallery-feeling,1)}
 .gallery-pair img{transform:scale(calc(.2 + var(--gallery-grow,1)*.8));transform-origin:center bottom;opacity:calc(.15 + var(--gallery-grow,1)*.85);will-change:transform}
 .gallery-pair img:nth-child(2){transform-origin:right bottom}
}
@media(max-width:700px){.gallery .gallery-focus>img{height:auto}.gallery-focus{width:100%}}

/* Native-sized desktop film: 1280 by 720, with horizontal clipping only. */
@media(min-width:701px){
 .hero{min-height:720px}
 .hero-copy{padding-top:40px;padding-bottom:40px}
 .hero h1{font-size:clamp(60px,6vw,90px);margin:20px 0 24px}
 .hero-copy>small{margin-top:25px}
 .hero .pill{margin-top:22px}
 .hero-image{height:720px;align-self:start}
 .hero-image video{width:1280px;height:720px;aspect-ratio:16/9}
}
@media(max-width:700px){.hero-image video{height:430px;width:764.4444px}}

@media(min-width:701px) and (prefers-reduced-motion:no-preference){.people.pad{padding-bottom:45px}.gallery-story .gallery>.pad{padding-top:22px;padding-bottom:22px}}

/* Staff film inherits the photograph's responsive 3:2 frame. */
.team-film-frame{width:100%;aspect-ratio:3/2;position:relative;overflow:hidden}
.team-film-frame video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.film-toggle{position:absolute;top:20px;right:20px;z-index:1;border:1px solid #344a3c50;border-radius:30px;background:#f7f3ebe6;padding:8px 14px;font-size:10px}
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .scroll-heading-left{translate:calc((1 - var(--intro-motion,0))*clamp(80px,10vw,140px) - var(--intro-motion,0)*60px) 0}
 .scroll-heading-right{translate:calc(var(--services-motion,0)*clamp(150px,22vw,320px)) 0}
}

/* Staff video never grows taller than the source's native 720px. */
.team-film-frame{max-width:1280px;max-height:720px;margin-inline:auto}
.team-film-frame video{position:absolute;width:auto;max-width:none;height:100%;aspect-ratio:16/9;left:50%;transform:translateX(-50%);object-fit:contain}
.hero-visual{position:absolute;inset:0}
.cut-definitions{position:absolute;pointer-events:none;overflow:hidden}
.cut-scissors{position:absolute;z-index:2;pointer-events:none;opacity:0;color:#b69a68;filter:drop-shadow(0 1px 2px #f7f3eb);transform:translate(-50%,-50%)}
@media(prefers-reduced-motion:no-preference){.hero-visual{mask:url(#hero-strip-mask);-webkit-mask:url(#hero-strip-mask)}}
@media(prefers-reduced-motion:reduce){.cut-scissors{display:none}}

@media(prefers-reduced-motion:no-preference){
 .review-reveal{opacity:0;translate:0 24px}
 .review-reveal.review-visible{opacity:1;translate:0 0;transition:opacity 600ms ease,translate 700ms cubic-bezier(.2,.65,.3,1);transition-delay:calc(var(--review-order,0)*300ms)}
}
@media(max-width:700px){.review-reveal.review-visible{transition-delay:0ms}}

.cut-scissors{width:36px;height:36px;padding:4px;border-radius:50%;background:#f7f3ebed;color:#344a3c;filter:none;box-shadow:0 2px 8px #0002}
@media(min-width:701px) and (min-height:760px) and (prefers-reduced-motion:no-preference){
 .hero-scroll-ready .hero-story{height:calc(var(--hero-stage-height,720px) + 80svh)}
 .hero-scroll-ready .hero-story>.hero{position:sticky;top:0}
}

/* Natural gallery flow: no sticky hold or artificial scroll track. */
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .gallery-story{height:auto}
 .gallery-story>.gallery{position:relative;top:auto;height:auto;min-height:0}
 .review-reveal.review-visible{transition-delay:0ms}
}

@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .hero-copy{position:relative;z-index:3}
 .hero-heading-moving{translate:var(--hero-copy-shift,0px) 0;will-change:translate}
}
.cut-scissors{z-index:5;scale:none}

.hero-heading-static,.hero-heading-moving{display:block}

.hero-copy>h1{margin-bottom:0}
.hero-copy>p.hero-heading-moving{align-self:stretch;font-family:var(--serif);font-size:clamp(60px,6vw,90px);font-weight:400;letter-spacing:-.04em;line-height:1;color:var(--ink);margin:0 0 24px}
@media(max-width:700px){.hero-copy>p.hero-heading-moving{font-size:66px}}
