:root{--paper:#f4f0e7;--paper-dark:#e8e2d6;--ink:#2b2d26;--olive:#485344;--olive-dark:#354034;--rule:#c9c6bc;--white:#faf9f5;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}body.dialog-open{overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}::selection{background:#b9c7af;color:var(--ink)}:focus-visible{outline:2px solid #7c8b6e;outline-offset:4px}.skip-link{position:absolute;left:16px;top:-70px;z-index:50;padding:12px 17px;background:var(--white)}.skip-link:focus{top:12px}.section-shell{padding-left:clamp(26px,7vw,116px);padding-right:clamp(26px,7vw,116px)}
.site-header{position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:92px;padding:14px clamp(26px,4vw,70px);background:var(--paper)}.brand{display:inline-flex;flex-direction:column;width:max-content;font-family:var(--serif);font-size:32px;font-weight:600;line-height:.8;letter-spacing:-.055em}.brand small{margin-top:10px;font-family:var(--sans);font-size:8px;font-weight:700;line-height:1;letter-spacing:.22em;text-transform:uppercase}.desktop-nav{display:flex;gap:clamp(22px,3vw,46px);align-items:center}.desktop-nav a{position:relative;padding:13px 0;font-size:11px;font-weight:600}.desktop-nav a:after{content:'';position:absolute;bottom:8px;left:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .25s}.desktop-nav a:hover:after{transform:scaleX(1)}.header-plan{justify-self:end;padding:13px 19px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:10px;font-weight:700;transition:background .25s,color .25s}.header-plan:hover{background:var(--ink);color:var(--white)}.menu-toggle,.mobile-nav{display:none}
.hero{position:relative;min-height:clamp(720px,calc(100svh - 92px),990px);overflow:hidden;background:#928d72}.hero-scene,.hero-photo{position:absolute;inset:0}.hero-scene{overflow:hidden}.hero-photo{inset:-6% 0;background-image:url('assets/house-garden-v2.png');background-size:cover;background-position:center 53%;transform:translate3d(0,var(--hero-photo-y,0px),0) scale(1.04);will-change:transform}.hero-paper{position:absolute;left:clamp(26px,6vw,96px);bottom:clamp(38px,5vw,80px);width:min(680px,calc(100% - 52px));padding:clamp(38px,5vw,70px) clamp(35px,5vw,74px) 29px;background:#f4f0e7f5;box-shadow:0 18px 35px #17201615;transform:translate3d(0,var(--hero-paper-y,0px),0);will-change:transform}.hero-intro{max-width:360px;margin-bottom:24px;color:#4d564b;font-size:11px;font-weight:600;line-height:1.7}.hero h1{font-family:var(--serif);font-size:clamp(72px,7vw,111px);font-weight:500;letter-spacing:-.07em;line-height:.78}.hero-paper-foot{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-top:48px;padding-top:21px;border-top:1px solid var(--rule)}.quiet-link{display:inline-flex;gap:15px;align-items:center;padding-bottom:4px;border-bottom:1px solid currentColor;color:var(--olive-dark);font-size:11px;font-weight:700}.quiet-link span{font-size:17px;font-weight:400;transition:transform .3s}.quiet-link:hover span{transform:translateY(4px)}.hero-paper-foot p{color:#777a71;text-align:right;font-size:9px;line-height:1.55}
.house{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.83fr);gap:clamp(85px,10vw,175px);align-items:center;padding-top:clamp(150px,17vw,270px);padding-bottom:clamp(170px,18vw,280px)}.house-copy{max-width:620px}.house-salutation{margin-bottom:37px;font-family:var(--serif);font-size:29px;font-style:italic}.house h2{max-width:630px;font-family:var(--serif);font-size:clamp(56px,5.4vw,91px);font-weight:500;letter-spacing:-.065em;line-height:.9}.house-body{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:62px}.house-body p{max-width:250px;color:#51574e;font-size:12px;line-height:1.9}.house-figure{position:relative;height:clamp(510px,51vw,770px);margin:25px 0 0}.house-figure img{object-position:56% center}.house-figure:before{content:'';position:absolute;z-index:-1;left:-30px;top:-30px;width:100%;height:100%;background:#d9d2c3}.house-figure figcaption{position:absolute;right:0;bottom:-28px;color:#77796f;font-size:9px;font-weight:600}
.rooms{padding-top:clamp(125px,13vw,205px);padding-bottom:clamp(130px,12vw,185px);background:var(--paper-dark)}.rooms-intro{display:flex;align-items:end;justify-content:space-between;gap:50px;padding-bottom:65px}.eyebrow{margin-bottom:25px;color:var(--olive);font-size:10px;font-weight:700;letter-spacing:.01em}.rooms-intro h2,.around h2{font-family:var(--serif);font-size:clamp(62px,6.5vw,100px);font-weight:500;letter-spacing:-.065em;line-height:.86}.rooms-intro>p{max-width:280px;padding-bottom:7px;color:#555b51;font-size:12px;line-height:1.85}.room-choice-row{display:flex;gap:clamp(25px,5vw,80px);padding-bottom:22px}.room-choice{display:flex;align-items:baseline;gap:14px;min-width:0;padding:0 0 13px;border:0;border-bottom:2px solid transparent;background:none;color:#777970;text-align:left;transition:color .25s,border-color .25s}.room-choice span{font-family:var(--serif);font-size:clamp(27px,2.65vw,42px);font-weight:600;letter-spacing:-.045em;line-height:.9}.room-choice small{font-size:9px;line-height:1.4}.room-choice:hover,.room-choice.is-active{border-color:var(--olive-dark);color:var(--ink)}.room-world,.room-dialog-world{position:relative;overflow:hidden;isolation:isolate;background:#b3a990;touch-action:pan-y;cursor:grab;perspective:1200px}.room-world{height:clamp(600px,80svh,850px)}.room-world:active,.room-dialog-world:active{cursor:grabbing}.room-back,.room-front{position:absolute;inset:-4% -5%;width:110%;height:108%;max-width:none;object-fit:cover;object-position:center;pointer-events:none;user-select:none;will-change:transform;transform:translate3d(var(--pan-x,0%),var(--pan-y,0%),0) rotateY(var(--yaw,0deg)) scale(1.01);transition:transform .55s cubic-bezier(.22,.65,.3,1),opacity .45s ease,filter .45s ease}.room-front{mask-image:linear-gradient(to bottom,transparent 46%,#000 91%);-webkit-mask-image:linear-gradient(to bottom,transparent 46%,#000 91%);transform:translate3d(var(--fore-x,0%),0,0) scale(1.05)}.room-world.is-dragging .room-back,.room-world.is-dragging .room-front,.room-dialog-world.is-dragging .room-back,.room-dialog-world.is-dragging .room-front{transition:none}.room-world.is-changing .room-back,.room-world.is-changing .room-front{opacity:.18;filter:blur(7px)}.room-world-shade{position:absolute;inset:0;background:linear-gradient(0deg,#151b14ad,transparent 45%);pointer-events:none}.room-overlay{position:absolute;bottom:clamp(35px,4vw,65px);left:clamp(26px,7vw,116px);max-width:440px;color:var(--white);pointer-events:none;text-shadow:0 2px 18px #161b15}.room-overline{margin-bottom:13px;font-size:9px;font-weight:700}.room-overlay h3{font-family:var(--serif);font-size:clamp(57px,6.5vw,98px);font-weight:500;letter-spacing:-.055em;line-height:.8}.room-overlay>p:last-child{max-width:320px;margin-top:21px;font-size:11px;line-height:1.8}.expand-room{position:absolute;right:clamp(26px,6vw,105px);bottom:clamp(34px,4vw,66px);display:flex;align-items:center;gap:12px;padding:12px 0;border:0;border-bottom:1px solid #ffffffaa;background:none;color:white;font-size:10px;font-weight:700}.expand-corners{position:relative;width:17px;height:17px;border-top:1px solid white;border-left:1px solid white}.expand-corners:after{content:'';position:absolute;right:0;bottom:0;width:8px;height:8px;border-right:1px solid white;border-bottom:1px solid white}.room-under{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:27px}.room-drag-caption{display:flex;align-items:center;gap:15px;min-width:210px}.drag-symbol{font-family:var(--serif);font-size:31px;line-height:1}.room-drag-caption strong,.room-drag-caption span:last-child{display:block}.room-drag-caption strong{font-size:10px}.room-drag-caption span:last-child{margin-top:4px;color:#73766d;font-size:9px}.pan-control{display:flex;align-items:center;gap:20px;color:#646960;font-size:9px;white-space:nowrap}.pan-control input,.room-dialog-foot input{width:clamp(100px,15vw,215px);height:2px;accent-color:var(--olive-dark);cursor:pointer}.room-stay-link{padding:9px 0;border:0;border-bottom:1px solid var(--olive-dark);background:none;color:var(--olive-dark);font-size:10px;font-weight:700;white-space:nowrap}.room-stay-link:hover{color:#7a5e43}.room-disclaimer{max-width:750px;margin:46px 0 0;color:#7d7e74;font-size:9px;line-height:1.7}
.menu{display:grid;grid-template-columns:1.04fr .96fr;min-height:830px;background:var(--olive-dark);color:var(--white)}.menu-image{position:relative;min-height:830px;overflow:hidden}.menu-image img{object-position:48% center;transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}.menu-image:hover img{transform:scale(1.035)}.menu-image-caption{position:absolute;left:clamp(28px,6vw,100px);bottom:28px;font-size:9px;font-weight:600;text-shadow:0 2px 8px #152015}.menu-content{display:flex;flex-direction:column;justify-content:center;padding:clamp(85px,10vw,160px) clamp(55px,8vw,135px)}.menu-house-name{padding-bottom:18px;border-bottom:1px solid #ffffff58;font-size:9px;font-weight:700}.menu h2{max-width:540px;margin-top:42px;font-family:var(--serif);font-size:clamp(62px,5.3vw,88px);font-weight:500;letter-spacing:-.062em;line-height:.87}.menu-lead{max-width:320px;margin-top:31px;color:#d7dfd4;font-size:12px;line-height:1.8}.menu-list{margin-top:54px}.menu-list>div{padding:16px 0;border-top:1px solid #ffffff58}.menu-list h3{font-family:var(--serif);font-size:28px;font-weight:500;line-height:1}.menu-list p{margin-top:4px;color:#d0d8cc;font-size:10px;line-height:1.6}.menu-note{max-width:350px;margin-top:34px;color:#bbc6b8;font-size:9px;line-height:1.7}
.around{display:grid;grid-template-columns:minmax(260px,.67fr) minmax(0,1.33fr);gap:clamp(70px,10vw,170px);align-items:center;padding-top:clamp(170px,16vw,250px);padding-bottom:clamp(170px,16vw,250px)}.around-heading{align-self:start;padding-top:12px}.around h2{font-size:clamp(62px,5.8vw,94px)}.around-heading>p:last-child{max-width:310px;margin-top:40px;color:#555b52;font-size:12px;line-height:1.9}.around-photo{height:clamp(460px,47vw,690px)}.around-photo img{object-position:center}.around-photo figcaption{margin-top:14px;color:#72776d;font-size:9px}.glimpses{display:grid;grid-template-columns:1.16fr .84fr;gap:clamp(20px,4vw,70px);align-items:start;padding:0 clamp(26px,7vw,116px) clamp(150px,15vw,240px)}.glimpses figure:first-child{height:clamp(420px,47vw,710px)}.glimpses figure:last-child{height:clamp(310px,34vw,510px);margin-top:clamp(55px,9vw,145px)}.glimpses img{object-position:center}.glimpses figcaption{margin-top:13px;color:#72776d;font-size:9px}.invitation{display:grid;grid-template-columns:1.15fr .85fr;gap:90px;align-items:end;padding-top:clamp(125px,12vw,180px);padding-bottom:clamp(125px,12vw,180px);background:#d8ddcf}.invitation h2{font-family:var(--serif);font-size:clamp(67px,6.4vw,104px);font-weight:500;letter-spacing:-.065em;line-height:.82}.invitation>div:last-child{max-width:340px}.invitation>div:last-child p{font-size:12px;line-height:1.9}.invitation-button{margin-top:30px;padding:17px 23px;border:1px solid var(--olive-dark);background:var(--olive-dark);color:white;font-size:10px;font-weight:700;transition:background .25s,color .25s}.invitation-button:hover{background:transparent;color:var(--olive-dark)}footer{display:flex;align-items:end;justify-content:space-between;gap:35px;padding:70px clamp(26px,7vw,116px) 42px;background:var(--ink);color:var(--white)}.footer-brand{font-family:var(--serif);font-size:48px;font-weight:500;letter-spacing:-.055em;white-space:nowrap}footer p{max-width:420px;color:#c0c7bb;font-size:9px;line-height:1.8}footer>a:last-child{padding-bottom:4px;border-bottom:1px solid #fff9;font-size:10px;white-space:nowrap}
.room-dialog,.planner{max-width:none;max-height:none;border:0;padding:0;background:var(--paper);color:var(--ink)}.room-dialog::backdrop,.planner::backdrop{background:#11170fd9;backdrop-filter:blur(5px)}.room-dialog{inset:4vh 3vw;width:94vw;height:92vh;overflow:hidden}.room-dialog-world{height:calc(100% - 97px)}.room-dialog-close{position:absolute;z-index:4;right:20px;top:20px;padding:13px 16px;border:0;background:var(--paper);color:var(--ink);font-size:11px;font-weight:700}.room-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;height:97px;padding:18px 28px}.room-dialog-foot p{font-size:9px;color:#667063}.room-dialog-foot h2{font-family:var(--serif);font-size:36px;font-weight:500;line-height:.9}.room-dialog-foot label{display:flex;align-items:center;gap:17px;font-size:9px}.planner{inset:50% auto auto 50%;width:min(520px,calc(100% - 32px));max-height:calc(100svh - 32px);overflow:auto;padding:38px 40px 42px;transform:translate(-50%,-50%)}.planner-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.planner-head p{margin-bottom:12px;color:var(--olive);font-size:10px;font-weight:700}.planner-head h2{font-family:var(--serif);font-size:59px;font-weight:500;line-height:.9;letter-spacing:-.05em}.planner-close{border:0;background:none;font-size:29px;line-height:1}.planner-disclosure{margin:27px 0;color:#5f665d;font-size:11px;line-height:1.7}.planner form{display:grid;gap:11px}.planner label{color:var(--olive-dark);font-size:10px;font-weight:700}.planner select,.planner input{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--rule);border-radius:0;background:#fffdf7;color:var(--ink)}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:8px}.date-grid>div{display:grid;gap:10px}.planner-submit{margin-top:13px;padding:16px 18px;border:0;background:var(--olive-dark);color:var(--white);font-size:11px;font-weight:700}.planner-result{display:grid;gap:7px;margin-top:20px;padding:17px;background:#e1e8db;color:var(--olive-dark);font-size:11px;line-height:1.6}.planner-result[hidden]{display:none}
@media(max-width:1100px){.site-header{grid-template-columns:1fr auto auto;gap:25px}.desktop-nav{gap:19px}.header-plan{display:none}.hero{min-height:820px}.hero-paper{width:min(590px,calc(100% - 52px))}.house{gap:65px}.house-body{grid-template-columns:1fr;gap:15px;margin-top:40px}.house-body p{max-width:410px}.room-choice small{display:none}.room-under{flex-wrap:wrap}.menu-content{padding:85px 7vw}}
@media(max-width:800px){.site-header{min-height:78px;grid-template-columns:1fr auto;padding:12px 25px}.brand{font-size:29px}.desktop-nav{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:42px;height:42px;border:0;background:none}.menu-toggle span{width:24px;height:1px;background:var(--ink);transition:transform .25s}.menu-toggle[aria-expanded='true'] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded='true'] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav:not([hidden]){position:absolute;z-index:19;top:78px;left:0;right:0;display:flex;flex-direction:column;padding:18px 25px 31px;background:var(--paper);box-shadow:0 16px 25px #20271b29}.mobile-nav a,.mobile-nav button{padding:15px 0;border:0;border-bottom:1px solid var(--rule);background:none;text-align:left;font-size:14px}.mobile-nav button{color:var(--olive-dark);font-weight:700}.hero{min-height:790px}.hero-paper{bottom:32px}.house{grid-template-columns:1fr;gap:75px;padding-top:145px;padding-bottom:165px}.house-copy{max-width:620px}.house h2{max-width:570px}.house-body{grid-template-columns:1fr 1fr}.house-figure{height:600px;max-width:660px;margin-left:30px}.rooms-intro{align-items:start;flex-direction:column;gap:25px}.rooms-intro>p{max-width:480px}.room-world{height:620px}.room-overlay{max-width:350px}.menu{grid-template-columns:1fr}.menu-image{min-height:560px;height:560px}.menu-content{padding:100px 8vw 110px}.menu h2{max-width:550px}.around{grid-template-columns:1fr;gap:60px}.around-heading{max-width:650px}.around-photo{height:600px}.invitation{gap:45px}}
@media(max-width:560px){.site-header{min-height:70px;padding:10px 21px}.brand{font-size:27px}.brand small{font-size:7px}.mobile-nav:not([hidden]){top:70px}.hero{min-height:0;height:auto;padding-top:57svh;background:var(--paper)}.hero-scene{height:57svh;bottom:auto}.hero-photo{background-position:58% center}.hero-paper{position:relative;left:auto;bottom:auto;width:auto;margin:-25px 16px 0;padding:34px 22px 28px;box-shadow:none}.hero-intro{font-size:10px;margin-bottom:25px}.hero h1{font-size:clamp(62px,15vw,85px)}.hero-paper-foot{margin-top:35px;align-items:start}.hero-paper-foot p{font-size:8px}.quiet-link{font-size:10px}.house{gap:65px;padding-top:135px;padding-bottom:150px}.house-salutation{font-size:24px}.house h2{font-size:clamp(60px,13vw,80px)}.house-body{grid-template-columns:1fr;gap:20px;margin-top:40px}.house-body p{font-size:12px}.house-figure{height:500px;margin:0 0 0 17px}.house-figure:before{left:-17px;top:-17px}.rooms{padding-top:120px;padding-bottom:120px}.rooms-intro{gap:20px;padding-bottom:40px}.rooms-intro h2{font-size:68px}.rooms-intro>p{font-size:11px}.room-choice-row{gap:25px}.room-choice span{font-size:28px}.room-world{height:570px}.room-back,.room-front{inset:-6% -40%;width:180%;height:112%}.room-overlay{bottom:88px;left:25px;max-width:255px}.room-overlay h3{font-size:66px}.room-overlay>p:last-child{font-size:10px;line-height:1.65}.expand-room{right:25px;bottom:22px}.room-under{display:grid;grid-template-columns:1fr auto;gap:26px;padding-top:25px}.room-drag-caption{grid-column:1/-1}.pan-control{gap:10px;font-size:8px}.pan-control input{width:105px}.room-stay-link{font-size:9px}.room-disclaimer{margin-top:40px;font-size:9px}.menu-image{height:410px;min-height:410px}.menu-content{padding:88px 28px 100px}.menu h2{font-size:70px}.menu-list{margin-top:45px}.around{padding-top:140px;padding-bottom:130px}.around h2{font-size:73px}.around-photo{height:430px}.glimpses{display:block;padding-bottom:140px}.glimpses figure:first-child{height:420px}.glimpses figure:last-child{height:320px;margin:90px 0 0 17%}.invitation{display:block;padding-top:120px;padding-bottom:130px}.invitation h2{font-size:75px}.invitation>div:last-child{margin-top:52px}.invitation>div:last-child p{font-size:11px}footer{display:block;padding-top:60px}.footer-brand{font-size:45px}footer p{margin:50px 0 32px}.room-dialog{inset:2vh 2vw;width:96vw;height:96vh}.room-dialog-world{height:calc(100% - 102px)}.room-dialog-world .room-back,.room-dialog-world .room-front{inset:-6% -40%;width:180%;height:112%}.room-dialog-foot{height:102px;align-items:start;padding:15px}.room-dialog-foot h2{font-size:29px}.room-dialog-foot label{display:block}.room-dialog-foot input{display:block;width:130px;margin-top:13px}.planner{padding:29px 22px}.date-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-photo,.hero-paper{transform:none;will-change:auto}}

/* Room stories: an editorial pair of views, without pretending a photograph is a 3D tour. */
.rooms-editorial{padding-top:clamp(125px,12vw,200px);padding-bottom:clamp(110px,10vw,170px);overflow:hidden;background:#ebe5d9}
.rooms-opening{display:grid;grid-template-columns:minmax(130px,.28fr) 1fr;gap:clamp(45px,8vw,150px);align-items:start;padding-bottom:clamp(85px,8vw,130px)}
.rooms-opening>div{grid-column:2}
.rooms-opening h2{max-width:850px;font-family:var(--serif);font-size:clamp(78px,9.2vw,150px);font-weight:500;letter-spacing:-.075em;line-height:.78;text-wrap:balance}
.rooms-opening h2 em{font-weight:400}
.rooms-opening p{max-width:380px;margin:38px 0 0 auto;color:#4e554c;font-size:13px;line-height:1.85}
.room-story{padding-bottom:clamp(135px,13vw,210px)}
.room-story-eaves{padding-bottom:clamp(95px,9vw,150px)}
.room-story-top{display:grid;grid-template-columns:minmax(130px,.28fr) 1fr;gap:clamp(30px,5vw,90px);align-items:baseline;padding-bottom:37px}
.room-story-top h3{grid-column:2;font-family:var(--serif);font-size:clamp(55px,6.4vw,104px);font-weight:500;letter-spacing:-.065em;line-height:.85}
.room-composition{position:relative}
.room-composition figure{position:relative;overflow:hidden}
.room-composition img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;transform:translate3d(0,var(--parallax-y,0px),0);will-change:transform}
.room-primary{width:76%;height:clamp(540px,54vw,860px)}
.room-primary img{object-position:center}
.room-detail{width:34%;height:clamp(335px,32vw,500px);margin:-155px 7vw 0 auto;box-shadow:0 22px 55px #302f251b}
.room-story-eaves .room-primary{margin-left:auto}
.room-story-eaves .room-detail{margin:-155px auto 0 7vw}
.room-story-bottom{display:flex;align-items:end;justify-content:space-between;gap:55px;max-width:1080px;margin:clamp(60px,6vw,95px) auto 0}
.room-story-bottom p{max-width:480px;font-family:var(--serif);font-size:clamp(30px,3.1vw,48px);letter-spacing:-.035em;line-height:1.1}
.room-story-action{display:inline-flex;align-items:center;gap:22px;min-height:48px;padding:0 0 6px;border:0;border-bottom:1px solid var(--ink);background:none;color:var(--ink);font-size:11px;font-weight:700;white-space:nowrap;transition:gap .25s,color .25s}
.room-story-action:hover{gap:30px;color:#635b48}
.room-story-action span{font-size:19px;font-weight:400}
.rooms-note{max-width:820px;margin-left:auto;color:#686d63;font-size:10px;line-height:1.7}
@media (prefers-reduced-motion:reduce){.room-composition img{transform:none;will-change:auto}}
@media (max-width:900px){.rooms-opening{grid-template-columns:1fr;gap:45px}.rooms-opening>div{grid-column:1}.rooms-opening p{margin-left:0}.room-story-top{grid-template-columns:1fr;gap:16px}.room-story-top h3{grid-column:1}.room-composition{min-height:0}.room-primary{width:83%;height:620px}.room-detail{width:45%;height:380px;margin-top:-100px}.room-story-eaves .room-detail{margin-top:-100px}.room-story-bottom{margin-top:65px}}
@media (max-width:560px){.rooms-editorial{padding-top:120px;padding-bottom:110px}.rooms-opening{gap:38px;padding-bottom:90px}.rooms-opening h2{font-size:clamp(71px,17vw,105px)}.rooms-opening p{max-width:300px;margin-top:42px;font-size:12px}.room-story{padding-bottom:145px}.room-story-eaves{padding-bottom:105px}.room-story-top{padding-bottom:29px}.room-story-top h3{font-size:clamp(59px,15vw,86px)}.room-composition{min-height:0;padding-bottom:0}.room-primary{width:92%;height:440px}.room-story-eaves .room-primary{width:92%}.room-detail{width:61%;height:295px;margin:-50px 7vw 0 auto}.room-story-eaves .room-detail{margin:-50px auto 0 7vw}.room-story-bottom{display:block;margin-top:62px}.room-story-bottom p{max-width:355px;font-size:37px}.room-story-action{margin-top:35px;font-size:11px}.rooms-note{font-size:10px}}

.house{padding-top:clamp(145px,14vw,225px);padding-bottom:clamp(150px,15vw,235px)}

/* Scroll-linked depth continues through the photograph-led sections. */
.house-figure,.room-detail{transform:translate3d(0,var(--frame-y,0px),0);will-change:transform}
.menu-image img,.around-photo img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.09);will-change:transform;transition:none}
.menu-image:hover img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.09)}
.around-photo{overflow:hidden}
@media(prefers-reduced-motion:reduce){.house-figure,.room-detail,.menu-image img,.around-photo img{transform:none;will-change:auto}}

/* Scroll depth moves the photography; pointer movement no longer affects it. */
.house-media{width:100%;height:100%;overflow:hidden}
.house-media img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.2);will-change:transform}
.hero-photo{transform:translate3d(0,var(--hero-photo-y,0px),0) scale(1.04)}
.room-composition img{left:-5%;right:auto;width:110%;transform:translate3d(0,var(--parallax-y,0px),0)}
.menu-image img,.around-photo img,.menu-image:hover img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.09)}
@media(prefers-reduced-motion:reduce){.hero-photo,.house-media img,.room-composition img,.menu-image img,.around-photo img,.menu-image:hover img{transform:none;will-change:auto}}

/* Keep the editorial rhythm without long empty runs between sections. */
.house{padding-top:clamp(82px,7vw,112px);padding-bottom:clamp(86px,7.5vw,120px)}
.house-body{margin-top:44px}
.rooms-editorial{padding-top:clamp(72px,7vw,104px);padding-bottom:clamp(70px,6vw,92px)}
.rooms-opening{padding-bottom:clamp(45px,4.5vw,68px)}
.rooms-opening p{margin-top:28px}
.room-story{padding-bottom:clamp(72px,7vw,106px)}
.room-story-eaves{padding-bottom:clamp(58px,5.5vw,82px)}
.room-story-bottom{margin-top:clamp(40px,4vw,60px)}
.menu,.menu-image{min-height:730px}
.menu-content{padding-top:72px;padding-bottom:72px}
.around{padding-top:clamp(82px,7vw,110px);padding-bottom:clamp(82px,7vw,110px)}
.around-heading>p:last-child{margin-top:28px}
.invitation{padding-top:clamp(76px,7vw,105px);padding-bottom:clamp(76px,7vw,105px)}
footer{padding-top:55px}
@media(max-width:800px){
  .house{gap:55px;padding-top:86px;padding-bottom:96px}
  .menu-image{min-height:510px;height:510px}
  .menu-content{padding:76px 8vw 82px}
}
@media(max-width:560px){
  .house{gap:45px;padding-top:76px;padding-bottom:86px}
  .house-body{margin-top:28px}
  .rooms-editorial{padding-top:72px;padding-bottom:70px}
  .rooms-opening{padding-bottom:48px}
  .rooms-opening p{margin-top:27px}
  .room-story{padding-bottom:78px}
  .room-story-eaves{padding-bottom:62px}
  .room-story-bottom{margin-top:43px}
  .menu-image{min-height:410px;height:410px}
  .menu-content{padding:65px 28px 75px}
  .around{padding-top:82px;padding-bottom:78px}
  .invitation{padding-top:80px;padding-bottom:84px}
}

/* Booking actions borrow the feel of a printed house invitation. */
.booking-cta{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-height:58px;padding:12px 28px 15px;border:1px solid #734632;border-radius:2px;
  background:#8d5640;color:#fff9ef;box-shadow:0 7px 17px #35271d24;
  font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:-.025em;line-height:1;
  white-space:nowrap;transition:background .28s,transform .28s,box-shadow .28s
}
.booking-cta:before{content:'';position:absolute;inset:4px;border:1px solid #f3ddc6a8;pointer-events:none}
.booking-cta:hover{background:#744531;color:#fff9ef;transform:translateY(-2px);box-shadow:0 11px 22px #35271d30}
.booking-cta:active{transform:translateY(0);box-shadow:0 4px 10px #35271d28}
.site-header .header-plan.booking-cta{min-height:49px;padding:9px 21px 12px;font-size:20px}
.hero-booking{min-width:190px}
.invitation-button.booking-cta{margin-top:25px;min-height:66px;padding:15px 31px 18px;font-size:29px}
.invitation>div:last-child .booking-disclosure{margin-top:13px;color:#4d5b4b;font-size:10px;line-height:1.5}
.room-story-action{
  position:relative;min-height:61px;padding:14px 77px 17px 27px;border:1px solid #817463;background:#f2ede3;
  color:var(--ink);box-shadow:inset 0 0 0 4px #f2ede3,inset 0 0 0 5px #b8ad9c;
  font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:-.02em;line-height:1;
  white-space:nowrap;transition:background .28s,color .28s,transform .28s,box-shadow .28s
}
.room-story-action::after{content:"";position:absolute;right:20px;top:50%;width:42px;height:16px;background:#8d5640;mask:url('assets/logo-flourish.svg') center/contain no-repeat;-webkit-mask:url('assets/logo-flourish.svg') center/contain no-repeat;transform:translateY(-50%);transition:background .28s ease}
.room-story-action:hover,.room-story-action:focus-visible{gap:22px;border-color:#071e33;background:#0d2b45;color:#fffaf1;transform:translateY(-2px);box-shadow:inset 0 0 0 4px #0d2b45,inset 0 0 0 5px #e7d5b9,0 8px 16px #0d2b4540}
.room-story-action:hover::after,.room-story-action:focus-visible::after{background:#e7d5b9}
.room-story-action:active{transform:translateY(0)}
.mobile-nav .booking-cta{width:max-content;min-height:54px;margin-top:17px;padding:11px 27px 14px;border:1px solid #734632;background:#8d5640;color:#fff9ef;font-size:23px;text-align:center}
.mobile-nav .booking-cta:hover{background:#744531;color:#fff9ef}
.planner-submit.booking-cta{width:100%;margin-top:17px;font-size:24px}
.select-wrap{position:relative}
.select-wrap:after{content:'';position:absolute;right:22px;top:50%;width:9px;height:9px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:translateY(-72%) rotate(45deg);pointer-events:none}
.planner .select-wrap select{appearance:none;-webkit-appearance:none;padding-left:15px;padding-right:54px}
@media(max-width:1100px){.site-header .header-plan.booking-cta{display:none}}
@media(max-width:560px){
  .hero-paper-foot{align-items:center}
  .hero-booking{min-width:0;padding:10px 19px 13px;font-size:21px}
  .hero-paper-foot p{max-width:100px}
  .room-story-action{margin-top:30px;font-size:24px}
  .invitation-button.booking-cta{font-size:27px}
}

/* The porch has a large view and one smaller view back toward the street. */
.house-images{position:relative;min-width:0;padding-bottom:86px}
.house-images .house-figure{margin-top:0}
.house-view{position:absolute;left:-13%;bottom:0;width:57%;height:clamp(180px,18vw,270px);overflow:hidden;box-shadow:0 15px 35px #272b231f}
.house-view img,.bath-images img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.2);will-change:transform}

/* Room galleries remain off-page until a guest chooses to browse. */
.room-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;flex-shrink:0}
.gallery-dialog{width:min(1320px,96vw);height:min(900px,94svh);max-width:none;max-height:none;padding:0;border:0;background:var(--paper);color:var(--ink);overflow:hidden}
.gallery-dialog::backdrop{background:#11170fe0;backdrop-filter:blur(6px)}
.gallery-shell{display:flex;flex-direction:column;height:100%}
.gallery-head{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:20px clamp(22px,3vw,45px)}
.gallery-head p{margin-bottom:4px;color:#687062;font-size:10px;font-weight:700}
.gallery-head h2{font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:500;letter-spacing:-.05em;line-height:.9}
.gallery-close{display:flex;align-items:center;gap:12px;padding:10px 0;border:0;background:none;color:var(--ink);font-size:11px;font-weight:700}
.gallery-close span{font-size:25px;font-weight:400;line-height:.7}
.gallery-stage{position:relative;display:grid;place-items:center;flex:1;min-height:0;background:#292d26;overflow:hidden}
.gallery-stage:before{content:'';position:absolute;inset:-25px;background-image:var(--gallery-bg);background-position:center;background-size:cover;filter:blur(24px);opacity:.32}
.gallery-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.gallery-prev,.gallery-next{position:absolute;top:50%;z-index:1;min-height:44px;padding:10px 15px;border:1px solid #f4f0e7b8;background:#f4f0e7ea;color:var(--ink);font-size:10px;font-weight:700;transform:translateY(-50%);transition:background .2s}
.gallery-prev:hover,.gallery-next:hover{background:#fff}
.gallery-prev{left:15px}.gallery-next{right:15px}
.gallery-foot{display:flex;align-items:center;gap:22px;padding:12px clamp(22px,3vw,45px);background:#eee9df}
.gallery-foot>p{min-width:38px;font-size:11px;font-weight:700;white-space:nowrap}
.gallery-thumbs{display:flex;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.gallery-thumbs button{flex:0 0 80px;width:80px;height:54px;padding:2px;border:2px solid transparent;background:none;opacity:.62;transition:opacity .2s,border-color .2s}
.gallery-thumbs button:hover,.gallery-thumbs button[aria-pressed='true']{border-color:#697b65;opacity:1}
.gallery-thumbs img{width:100%;height:100%;object-fit:cover}
.gallery-note{padding:0 clamp(22px,3vw,45px) 11px;background:#eee9df;color:#6b7066;font-size:9px}

/* Modern comfort is shown as one compact editorial spread. */
.bath-feature{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr);gap:clamp(40px,7vw,105px);align-items:center;padding-bottom:clamp(65px,7vw,100px)}
.bath-copy{position:relative;z-index:1;max-width:440px}
.bath-copy .eyebrow{margin-bottom:23px}
.bath-copy h3{font-family:var(--serif);font-size:clamp(54px,5.7vw,88px);font-weight:500;letter-spacing:-.065em;line-height:.86}
.bath-copy>p:last-child{max-width:345px;margin-top:30px;color:#4e554c;font-size:12px;line-height:1.85}
.bath-images{position:relative;height:clamp(430px,45vw,610px)}
.bath-main,.bath-detail{position:absolute;overflow:hidden}
.bath-main{right:0;top:0;width:87%;height:77%}
.bath-detail{left:0;bottom:0;width:51%;height:48%;box-shadow:0 16px 35px #302f2521;transform:translate3d(0,var(--frame-y,0px),0);will-change:transform}
@media(max-width:900px){
  .house-view{left:0;width:50%}
  .bath-feature{grid-template-columns:1fr;gap:32px}
  .bath-copy{max-width:650px}
  .bath-images{height:520px}
}
@media(max-width:560px){
  .house-images{padding-bottom:55px}
  .house-images .house-figure{margin-left:17px}
  .house-view{left:0;width:58%;height:170px}
  .room-actions{margin-top:28px}
  .room-story-action{margin-top:0}
  .bath-feature{gap:30px;padding-bottom:65px}
  .bath-copy h3{font-size:65px}
  .bath-copy>p:last-child{margin-top:22px}
  .bath-images{height:400px}
  .bath-main{width:90%;height:75%}
  .bath-detail{width:59%;height:49%}
  .gallery-dialog{width:100vw;height:min(620px,calc(100svh - 24px));max-height:calc(100svh - 24px)}
  .gallery-stage{flex:1;min-height:0}
  .gallery-head{padding:15px 17px}
  .gallery-head h2{font-size:34px}
  .gallery-prev,.gallery-next{top:auto;bottom:13px;padding:10px 12px;transform:none}
  .gallery-prev{left:12px}.gallery-next{right:12px}
  .gallery-foot{gap:13px;padding:10px 12px}
  .gallery-thumbs button{flex-basis:63px;width:63px;height:48px}
  .gallery-note{padding:0 12px 9px}
}
@media(prefers-reduced-motion:reduce){.house-view img,.bath-images img,.bath-detail{transform:none;will-change:auto}}

/* Supplied logo art: blend its original white/navy field into the site surface without altering the lettering or foliage. */
.brand{display:block;width:285px;height:75px;overflow:hidden}
.brand-art{display:block;width:100%;height:100%;background:url('assets/logo-horizontal-light.png') center 45%/112% auto no-repeat;mix-blend-mode:multiply}
.brand-fallback{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
footer{background:#0a283e;color:#f5f1e8}
.footer-brand{display:block;flex:0 0 clamp(285px,31vw,400px);width:clamp(285px,31vw,400px);height:clamp(75px,8vw,105px);overflow:hidden}
.footer-brand-art{display:block;width:100%;height:100%;background:url('assets/logo-horizontal-dark.png') center 44%/112% auto no-repeat;mix-blend-mode:lighten}
@media(max-width:800px){.brand{width:68px;height:62px}.brand-art{background-size:228px auto;background-position:-12px -30px}}
@media(max-width:560px){.brand{width:61px;height:55px}.brand-art{background-size:205px auto;background-position:-10px -27px}.footer-brand{width:245px;height:228px;max-width:100%}.footer-brand-art{background-image:url('assets/logo-stacked-dark.png');background-size:112% auto;background-position:center 36%}}

/* Carry the monogram's serif rhythm into navigation and let the house image breathe. */
.site-header{min-height:120px;padding-top:20px;padding-bottom:20px}
.desktop-nav{gap:clamp(18px,2.3vw,38px)}
.desktop-nav a{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1;letter-spacing:.005em}
.desktop-nav a:after{bottom:7px}
@media(min-width:801px) and (max-width:1100px){.site-header{column-gap:18px}.desktop-nav{gap:16px}.desktop-nav a{font-size:18px;white-space:nowrap}}
.hero h1{font-weight:700;line-height:.94;letter-spacing:-.06em}
.hero-paper-foot{justify-content:flex-start;margin-top:42px}
.portfolio-disclaimer{max-width:450px;font-size:11px;line-height:1.75}
@media(max-width:800px){.site-header{min-height:88px;padding-top:13px;padding-bottom:13px}.mobile-nav:not([hidden]){top:88px}}
@media(max-width:560px){.site-header{min-height:82px;padding-top:11px;padding-bottom:11px}.mobile-nav:not([hidden]){top:82px}.hero h1{font-size:clamp(55px,14vw,75px)}.hero-paper-foot{margin-top:31px}.portfolio-disclaimer{font-size:10px}}

/* Breakfast choices change still photographs; the image itself no longer pans or follows the pointer. */
.menu-image .menu-photo,.menu-image:hover .menu-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% center;opacity:0;transform:none;will-change:opacity;transition:opacity .45s ease}
.menu-image .menu-photo.is-active{opacity:1}
.menu h2{margin-top:0}
.menu-image-inline{display:none}
.menu-list{border-bottom:1px solid #ffffff58}
.menu-choice{position:relative;display:block;width:100%;padding:18px 108px 19px 0;border:0;border-top:1px solid #ffffff58;border-radius:0;background:transparent;color:var(--white);text-align:left;transition:color .28s ease}
.menu-choice::after{content:"";position:absolute;right:0;top:50%;width:88px;height:23px;background:#d9af82;mask:url('assets/logo-flourish.svg') center/contain no-repeat;-webkit-mask:url('assets/logo-flourish.svg') center/contain no-repeat;opacity:0;transform:translate(-10px,-50%);transition:opacity .32s ease,transform .32s ease}
.menu-choice:hover,.menu-choice:focus-visible,.menu-choice.is-active{color:#f4d4ad}
.menu-choice:hover::after,.menu-choice:focus-visible::after,.menu-choice.is-active::after{opacity:1;transform:translate(0,-50%)}
.menu-choice-title{display:block;font-family:var(--serif);font-size:31px;font-weight:600;line-height:1.05}
.menu-choice-detail{display:block;margin-top:6px;color:#d0d8cc;font-size:10px;line-height:1.6}
@media(max-width:560px){.menu-choice{padding-right:85px}.menu-choice::after{width:68px}.menu-choice-title{font-size:29px}}
@media(max-width:800px){.menu>.menu-image{display:none}.menu .menu-image-inline{position:sticky;z-index:2;top:0;display:block;align-self:stretch;min-height:0;height:270px;margin:34px -8vw 0}.menu-list{margin-top:20px}}
@media(max-width:560px){.menu .menu-image-inline{height:230px;margin-right:-28px;margin-left:-28px}.menu-list{margin-top:15px}}
@media(prefers-reduced-motion:reduce){.menu-image .menu-photo,.menu-choice,.menu-choice::after{transition:none;will-change:auto}}

/* Painted leaves peek out from behind the photographs. */
.botanical{position:absolute;z-index:0;display:block;pointer-events:none;background-size:contain;background-position:center;background-repeat:no-repeat;opacity:.34;mix-blend-mode:multiply}
.house-images .house-figure,.house-images .house-view,.room-composition figure{z-index:1}
.botanical-house{top:-90px;right:-75px;width:245px;height:270px;background-image:url('assets/leaf-sprig-upright.png');transform:rotate(17deg)}
.botanical-eaves{top:9%;left:calc(24% - 125px);width:245px;height:195px;background-image:url('assets/leaf-sprig-fan.png');transform:rotate(-29deg)}
.around h2{font-size:clamp(57px,5.5vw,88px);line-height:1.06;letter-spacing:-.045em;overflow-wrap:normal}
.around-frame{position:relative;min-width:0;height:clamp(460px,47vw,690px)}
.around-frame .around-photo{position:relative;z-index:1;height:100%}
.botanical-around{bottom:-45px;left:-65px;width:260px;height:230px;background-image:url('assets/leaf-sprig-cascade.png');transform:rotate(95deg)}
.around{overflow:hidden}

/* The closing invitation is a small booking worksheet, completed on the page. */
.invitation{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);align-items:center;gap:clamp(55px,7vw,115px)}
.invitation h2{line-height:.92}
.stay-form{width:100%;max-width:510px;justify-self:end;padding:22px 0 0;border-top:1px solid #71816b}
.stay-field{min-width:0}
.stay-field label{display:block;margin-bottom:10px;color:#455542;font-size:11px;font-weight:700;letter-spacing:.02em}
.stay-field input,.stay-field select{display:block;width:100%;height:60px;padding:0 35px 4px 0;border:0;border-bottom:1px solid #82907e;border-radius:0;outline-offset:3px;background:transparent;color:#253229;font-family:var(--serif);font-size:29px;font-weight:600;line-height:1.1}
.stay-field select{appearance:none;-webkit-appearance:none;cursor:pointer}
.stay-field input{min-width:0;color-scheme:light}
.stay-field input::-webkit-calendar-picker-indicator{opacity:.6;cursor:pointer}
.stay-select-wrap{position:relative}
.stay-select-wrap:after{content:'';position:absolute;right:8px;top:22px;width:10px;height:10px;border-right:1px solid #455542;border-bottom:1px solid #455542;transform:rotate(45deg);pointer-events:none}
.stay-dates{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:28px}
.stay-form .invitation-button.booking-cta{width:100%;min-height:66px;margin-top:39px;border-color:#845c43;background:#89583f;box-shadow:inset 0 0 0 5px #89583f,inset 0 0 0 6px #ddbea6;color:#fffaf2;font-size:29px;text-align:center}
.stay-form .invitation-button.booking-cta:hover{background:#70452f;box-shadow:inset 0 0 0 5px #70452f,inset 0 0 0 6px #ddbea6;color:#fffaf2}
.stay-result{margin-top:18px;padding:15px 17px;border-left:2px solid #536952;background:#e9ede4;color:#354c38;font-size:11px;line-height:1.75}
.stay-result[hidden]{display:none}
@media(max-width:900px){.invitation{display:block}.stay-form{max-width:610px;justify-self:auto;margin-top:42px}}
@media(max-width:800px){.botanical-house{top:-65px;right:0;width:175px;height:195px}.botanical-eaves{top:4%;left:calc(17% - 95px);width:185px;height:150px}.around-frame{height:600px}.botanical-around{bottom:0;left:-112px;width:210px;height:180px}.around h2{font-size:clamp(59px,8vw,73px)}}
@media(max-width:560px){.botanical{opacity:.29}.botanical-house{top:-70px;right:0;width:150px;height:165px}.botanical-eaves{top:0;left:calc(8% - 70px);width:160px;height:125px}.around-frame{height:430px}.botanical-around{bottom:0;left:-89px;width:165px;height:145px}.around h2{font-size:clamp(57px,15vw,69px);line-height:1.09}.stay-dates{grid-template-columns:1fr;gap:24px}.stay-field input,.stay-field select{font-size:28px}.stay-form .invitation-button.booking-cta{font-size:27px}}

/* The house and bath respond to scroll; the porch photograph has no backing panel. */
.house-figure:before{display:none}
.house{overflow:hidden}
.house-copy,.bath-copy{transform:translate3d(0,var(--parallax-y,0px),0);will-change:transform}
@media(prefers-reduced-motion:reduce){.house-copy,.bath-copy{transform:none;will-change:auto}}

/* Each room has its own layered photo deck, with nearby photos visible at the sides. */
.room-gallery-deck{position:relative;z-index:1;width:100%;height:clamp(510px,53vw,730px);overflow:hidden;isolation:isolate;perspective:1500px}
.room-gallery-cards{position:absolute;inset:0}
.room-gallery-card{position:absolute;top:44%;left:50%;width:min(64%,850px);height:72%;padding:0;border:0;border-radius:0;overflow:hidden;background:#b7ad99;box-shadow:0 24px 55px #292c2335;cursor:pointer;transform-style:preserve-3d;transition:transform .95s cubic-bezier(.2,.74,.13,1),opacity .75s ease,filter .75s ease,box-shadow .75s ease}
.room-composition .room-gallery-card img{position:static;inset:auto;width:100%;height:100%;object-fit:cover;transform:none;will-change:auto}
.room-gallery-card[data-position='center']{z-index:5;opacity:1;filter:brightness(1);transform:translate(-50%,-50%) translateX(0) scale(1) rotateY(0)}
.room-gallery-card[data-position='left-one']{z-index:4;opacity:1;filter:brightness(.89);transform:translate(-50%,-50%) translateX(-49%) scale(.83) rotateY(8deg)}
.room-gallery-card[data-position='right-one']{z-index:4;opacity:1;filter:brightness(.89);transform:translate(-50%,-50%) translateX(49%) scale(.83) rotateY(-8deg)}
.room-gallery-card[data-position='left-two']{z-index:3;opacity:.85;filter:brightness(.8);transform:translate(-50%,-50%) translateX(-77%) scale(.68) rotateY(12deg)}
.room-gallery-card[data-position='right-two']{z-index:3;opacity:.85;filter:brightness(.8);transform:translate(-50%,-50%) translateX(77%) scale(.68) rotateY(-12deg)}
.room-gallery-card[data-position='hidden']{z-index:0;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.55)}
.room-gallery-card[data-position='left-one']:hover,.room-gallery-card[data-position='right-one']:hover,.room-gallery-card[data-position='left-two']:hover,.room-gallery-card[data-position='right-two']:hover{filter:brightness(1)}
.room-gallery-prev,.room-gallery-next{position:absolute;z-index:7;top:44%;display:grid;place-items:center;width:55px;height:55px;padding:0 0 6px;border:1px solid #63705e;border-radius:50%;background:#f4f0e7e8;color:#2b392d;font-family:Georgia,serif;font-size:45px;line-height:1;transform:translateY(-50%);transition:background .25s,color .25s}
.room-gallery-prev{left:clamp(22px,5vw,90px)}
.room-gallery-next{right:clamp(22px,5vw,90px)}
.room-gallery-prev:hover,.room-gallery-next:hover{background:#344a37;color:#fff}
.room-gallery-footer{position:absolute;z-index:6;right:13%;bottom:20px;left:13%;display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:46px;padding:14px 10% 0;color:#596b57}
.room-gallery-footer:before{content:'';position:absolute;z-index:-1;top:0;right:0;left:0;height:50px;border-top:1px solid #9aa594;border-radius:50% 50% 0 0;pointer-events:none}
.room-gallery-count{flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:.1em}
.room-gallery-pips{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.room-gallery-pips button{width:8px;height:8px;padding:0;border:1px solid #526851;border-radius:50%;background:transparent;transition:background .25s,transform .25s}
.room-gallery-pips button:hover,.room-gallery-pips button[aria-pressed='true']{background:#526851;transform:scale(1.25)}
@media(max-width:800px){.room-gallery-deck{height:clamp(450px,72vw,600px)}.room-gallery-card{width:69%;height:72%}.room-gallery-prev{left:18px}.room-gallery-next{right:18px}.room-gallery-footer{right:8%;left:8%;padding-right:7%;padding-left:7%}}
@media(max-width:560px){.room-gallery-deck{height:470px}.room-gallery-card{top:44%;width:78%;height:69%}.room-gallery-card[data-position='left-one']{transform:translate(-50%,-50%) translateX(-45%) scale(.83) rotateY(7deg)}.room-gallery-card[data-position='right-one']{transform:translate(-50%,-50%) translateX(45%) scale(.83) rotateY(-7deg)}.room-gallery-card[data-position='left-two']{transform:translate(-50%,-50%) translateX(-69%) scale(.68) rotateY(10deg)}.room-gallery-card[data-position='right-two']{transform:translate(-50%,-50%) translateX(69%) scale(.68) rotateY(-10deg)}.room-gallery-prev,.room-gallery-next{top:84%;width:45px;height:45px;padding-bottom:5px;font-size:37px}.room-gallery-prev{left:18px}.room-gallery-next{right:18px}.room-gallery-footer{right:20%;bottom:8px;left:20%;min-height:42px;padding:9px 0 0;gap:10px}.room-gallery-footer:before{height:34px}.room-gallery-pips{gap:7px}.room-gallery-pips button{width:6px;height:6px}}
@media(prefers-reduced-motion:reduce){.room-gallery-card,.room-gallery-prev,.room-gallery-next,.room-gallery-pips button{transition:none}}

/* An unnumbered, centered gallery marker with two related botanical endings. */
.room-gallery-footer{justify-content:center;padding:14px 0 0}
.room-gallery-pips{position:relative;z-index:1;justify-content:center}
.room-gallery-footer::after{content:'';position:absolute;top:-16px;width:92px;height:43px;background:center/contain no-repeat;opacity:.72;pointer-events:none}
.room-story-front .room-gallery-footer::after{left:5%;background-image:url('assets/gallery-sprig-garden.svg')}
.room-story-eaves .room-gallery-footer::after{right:5%;background-image:url('assets/gallery-sprig-eaves.svg')}
@media(max-width:800px){.room-gallery-footer{padding-right:0;padding-left:0}}
@media(max-width:560px){.room-gallery-footer{padding:9px 0 0}.room-gallery-footer::after{top:-12px;width:66px;height:32px}.room-story-front .room-gallery-footer::after{left:-4%}.room-story-eaves .room-gallery-footer::after{right:-4%}}

/* A photograph and the stay choices share the closing invitation. */
.invitation{display:block;padding-top:clamp(65px,6vw,90px);padding-bottom:clamp(70px,7vw,105px)}
.invitation-head h2{max-width:900px;font-size:clamp(66px,6.2vw,100px);line-height:.88}
.invitation>div.invitation-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(350px,.9fr);align-items:center;gap:clamp(45px,6vw,100px);width:100%;max-width:none;margin-top:43px}
.invitation-photo{height:clamp(360px,35vw,490px);overflow:hidden}
.invitation-photo img{object-position:center 53%;transform:translate3d(0,var(--parallax-y,0px),0) scale(1.13);will-change:transform}
.invitation-layout .stay-form{max-width:520px;margin:0;padding-top:22px}
@media(max-width:900px){.invitation>div.invitation-layout{grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:35px}.invitation-photo{height:490px}.invitation-layout .stay-dates{grid-template-columns:1fr;gap:18px;margin-top:22px}.invitation-layout .stay-field input{height:53px}.invitation-layout .stay-form .invitation-button{margin-top:27px}}
@media(max-width:620px){.invitation{padding-top:72px;padding-bottom:80px}.invitation-head h2{font-size:clamp(58px,14vw,78px)}.invitation>div.invitation-layout{display:block;margin-top:34px}.invitation-photo{height:300px}.invitation-layout .stay-form{margin-top:43px}.invitation-layout .stay-dates{grid-template-columns:1fr 1fr;gap:18px}.invitation-layout .stay-field input{font-size:21px}.invitation-layout .stay-form .invitation-button{margin-top:33px}}
@media(max-width:420px){.invitation-layout .stay-dates{grid-template-columns:1fr;gap:18px}.invitation-layout .stay-field input{font-size:27px}}
@media(prefers-reduced-motion:reduce){.invitation-photo img{transform:none;will-change:auto}}

/* Give the room selection breathing room in both the field and its native menu. */
.stay-field select{padding-left:20px;padding-right:48px}
.stay-field select option{padding:12px 20px}
.stay-select-wrap:after{right:20px}

/* Let the small garden view overlap the opposite corner of the porch photograph. */
.house-images .house-view{left:auto;right:-6%;bottom:0;width:57%}
@media(max-width:800px){.house-images .house-view{right:-4%;width:47%}}
@media(max-width:560px){.house-images .house-view{right:-2%;width:53%;height:170px}}

/* The closing room list has the same generous inset when open or closed. */
.stay-field .stay-label{display:block;margin-bottom:10px;color:#455542;font-size:11px;font-weight:700;letter-spacing:.02em}
.stay-field input[type='hidden']{display:none}
.stay-room-picker{position:relative}
.stay-room-picker summary{display:flex;align-items:center;width:100%;min-height:60px;padding:0 48px 4px 22px;border-bottom:1px solid #82907e;color:#253229;cursor:pointer;font-family:var(--serif);font-size:29px;font-weight:600;line-height:1.1;list-style:none}
.stay-room-picker summary::-webkit-details-marker{display:none}
.stay-room-options{position:absolute;z-index:30;top:calc(100% + 5px);right:0;left:0;padding:8px;border:1px solid #82907e;background:#f4f0e7;box-shadow:0 16px 34px #25322924}
.stay-room-options button{display:block;width:100%;min-height:49px;padding:8px 15px;border:0;background:transparent;color:#253229;text-align:left;font-family:var(--serif);font-size:24px;line-height:1.1;transition:background .2s}
.stay-room-options button:hover,.stay-room-options button:focus-visible,.stay-room-options button[aria-pressed='true']{background:#dddccf}
@media(max-width:560px){.stay-room-picker summary{font-size:28px}.stay-room-options{position:static;margin-top:5px;box-shadow:none}.stay-room-options button{font-size:23px}}
@media(prefers-reduced-motion:reduce){.stay-room-options button{transition:none}}

/* Keep the original hero composition while easing its type and paper weight. */
.hero-paper{background:#f4f0e780;backdrop-filter:blur(1px);box-shadow:0 20px 38px #1720161f}
.hero h1{font-weight:500;letter-spacing:-.045em;line-height:.92}

/* Give the large editorial headings a little more air without changing body copy. */
.hero h1{letter-spacing:-.025em}
.house h2{letter-spacing:-.045em}
.rooms-opening h2{letter-spacing:-.055em}
.room-story-top h3{letter-spacing:-.045em}
.bath-copy h3{letter-spacing:-.045em}
.menu h2{font-family:Newsreader,Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:.98}
.menu-lead{max-width:420px;font-family:Newsreader,Georgia,serif;font-size:clamp(21px,2vw,26px);font-weight:400;line-height:1.25}
.menu-choice-title{font-family:Newsreader,Georgia,serif;font-weight:500;line-height:1.1}
.around h2{letter-spacing:-.025em}
.invitation h2{letter-spacing:-.02em}
.invitation-head h2{line-height:1.12}
.gallery-head h2,.planner-head h2{letter-spacing:-.03em}

/* Horizontal gestures change photos; vertical touch scrolling still works. */
.room-gallery-cards,.gallery-stage{touch-action:pan-y;user-select:none}
.room-gallery-card img,.gallery-stage img{pointer-events:none;user-select:none;-webkit-user-drag:none}

/* The house introduces the rooms through a short editorial note. */
.house{padding-bottom:clamp(70px,8vw,115px)}
.house-body{display:block;max-width:500px;margin-top:clamp(34px,4vw,58px)}
.house-body .house-welcome{max-width:none;margin:0;color:#344634;font-family:Newsreader,Georgia,serif;font-size:clamp(32px,3.2vw,47px);font-weight:400;font-style:italic;letter-spacing:-.018em;line-height:1.1}
.house-detail{display:grid;grid-template-columns:29px minmax(0,1fr);column-gap:18px;max-width:440px;margin-top:31px}
.house-detail-rule{grid-row:1 / span 2;width:1px;height:100%;min-height:100px;margin-left:7px;background:linear-gradient(#a6ad96,#b26e50 42%,#d0cabc)}
.house-body .house-detail p{max-width:390px;margin:0 0 17px;color:#4d574d;font-family:Manrope,sans-serif;font-size:clamp(12px,1vw,14px);font-weight:500;line-height:1.85}
.house-body .house-detail p:last-child{margin-bottom:0}
.rooms-editorial{padding-top:clamp(35px,5vw,75px)}
.gallery-foot{justify-content:center}
.gallery-thumbs{margin-inline:auto}

/* Painted accents develop as their photographs enter the page. */
.botanical{opacity:0;transition:opacity 1.55s ease}
.botanical.is-visible{opacity:.34}
@media(max-width:560px){.house{padding-bottom:75px}.house-body{margin-top:35px}.house-detail{margin-top:24px}.house-body .house-welcome{font-size:36px}.rooms-editorial{padding-top:52px}.botanical.is-visible{opacity:.29}}
@media(prefers-reduced-motion:reduce){.botanical{opacity:.34;transition:none}}

/* Chapter motion: type arrives with the photography, then stays still. */
.motion-heading{opacity:.2;translate:0 26px;transition:opacity .9s ease,translate 1.05s cubic-bezier(.2,.7,.2,1),letter-spacing 1.05s cubic-bezier(.2,.7,.2,1)}
.motion-heading.is-revealed{opacity:1;translate:0 0}
.house h2.motion-heading,.room-story-top h3.motion-heading{letter-spacing:-.075em}
.house h2.motion-heading.is-revealed,.room-story-top h3.motion-heading.is-revealed{letter-spacing:-.045em}
.menu h2.motion-heading,.around h2.motion-heading,.invitation h2.motion-heading{letter-spacing:-.055em}
.menu h2.motion-heading.is-revealed,.around h2.motion-heading.is-revealed{letter-spacing:-.025em}
.invitation h2.motion-heading.is-revealed{letter-spacing:-.02em}
.motion-photo{opacity:.72;clip-path:inset(17% 0 0 0);transition:opacity .8s ease,clip-path 1.15s cubic-bezier(.22,.72,.18,1)}
.motion-photo.is-revealed{opacity:1;clip-path:inset(0 0 0 0)}
.house-view.motion-photo,.bath-detail.motion-photo{clip-path:inset(0 0 22% 0);transition-delay:.16s}
.house-view.motion-photo.is-revealed,.bath-detail.motion-photo.is-revealed{clip-path:inset(0 0 0 0)}
.room-gallery-deck.motion-photo{clip-path:inset(0 12% 0 12%)}
.room-gallery-deck.motion-photo.is-revealed{clip-path:inset(0 0 0 0)}
.room-story-top h3.motion-heading{transition-delay:.08s}
@media(max-width:560px){.motion-heading{translate:0 17px}.motion-photo{clip-path:inset(9% 0 0 0)}.room-gallery-deck.motion-photo{clip-path:inset(0 7% 0 7%)}}
@media(prefers-reduced-motion:reduce){.motion-heading,.motion-photo{opacity:1;translate:none;clip-path:none;transition:none}}

/* Navigation and controls acknowledge interaction without moving the photographs. */
.desktop-nav a:after{height:1.5px;background:#a76648;transform-origin:center;transition:transform .38s cubic-bezier(.2,.7,.2,1)}
.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after{transform:scaleX(1)}
.room-gallery-prev,.room-gallery-next{transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}
.room-gallery-prev:hover,.room-gallery-next:hover{border-color:#344a37;box-shadow:0 7px 20px #263b2b26}

/* The room gallery rule borrows its copper line and painted olive foliage from the house mark. */
.room-gallery-footer:before{border-top-color:#a97850;opacity:.76}
.room-gallery-footer::after{top:-33px;width:135px;height:84px;opacity:.72;filter:drop-shadow(0 1px 1px #f4f0e766)}
.room-story-front .room-gallery-footer::after{left:0;background-image:url('assets/leaf-sprig-curved.png');transform:rotate(-70deg)}
.room-story-eaves .room-gallery-footer::after{right:0;background-image:url('assets/leaf-sprig-fan.png');transform:rotate(19deg)}
.room-gallery-pips button{border-color:#6d755c}
.room-gallery-pips button:hover,.room-gallery-pips button[aria-pressed='true']{background:#ac754d;border-color:#ac754d}
@media(max-width:560px){.room-gallery-footer::after{top:-19px;width:88px;height:60px}.room-story-front .room-gallery-footer::after{left:-7%}.room-story-eaves .room-gallery-footer::after{right:-7%}}

/* A small botanical signature beside the gallery dots; the photographs stay unframed. */
.room-gallery-footer:before{display:none}
.room-gallery-footer::after{top:4px;left:50%;right:auto;width:min(300px,100%);height:42px;opacity:.58;filter:none;transform:translateX(-50%)}
.room-story-front .room-gallery-footer::after{left:50%;right:auto;background-image:url('assets/gallery-detail-garden.svg');transform:translateX(-50%)}
.room-story-eaves .room-gallery-footer::after{left:50%;right:auto;background-image:url('assets/gallery-detail-eaves.svg');transform:translateX(-50%)}
@media(max-width:560px){.room-gallery-footer::after{top:4px;width:230px;height:33px}.room-story-front .room-gallery-footer::after,.room-story-eaves .room-gallery-footer::after{left:50%;right:auto}}

/* The room photographs now carry only quiet, translucent previous/next controls. */
.room-gallery-prev,.room-gallery-next{border-color:#f4f0e780;background:#f4f0e72e;color:#26332b;box-shadow:0 2px 9px #16201612;backdrop-filter:none;-webkit-backdrop-filter:none}
.room-gallery-prev:hover,.room-gallery-next:hover{border-color:#f4f0e7cc;background:#f4f0e7ba;color:#26332b;box-shadow:0 4px 16px #16201621}
@media(max-width:560px){.room-story-action{align-self:center}}

/* A small morning drinks chapter fulfills the promise made in the hero. */
.morning-pours{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);grid-template-areas:'heading photo' 'list photo';column-gap:clamp(55px,7vw,125px);align-content:center;padding-top:clamp(74px,7vw,108px);padding-bottom:clamp(74px,7vw,108px);background:#eee8dd}
.pours-heading{grid-area:heading;align-self:end;max-width:540px}
.pours-heading h2{font-family:Newsreader,Georgia,serif;font-size:clamp(62px,6.2vw,98px);font-weight:400;letter-spacing:-.025em;line-height:.98}
.pours-heading>p{max-width:405px;margin-top:25px;color:#505b50;font-size:clamp(12px,1.05vw,15px);line-height:1.8}
.pours-photo{grid-area:photo;height:clamp(570px,54vw,760px);margin:0;overflow:hidden;background:#a6a386}
.pours-photo img{width:100%;height:100%;object-fit:cover;object-position:69% center;transform:translate3d(0,var(--parallax-y,0px),0) scale(1.13);will-change:transform}
.pours-list{grid-area:list;align-self:start;max-width:525px;margin-top:clamp(34px,4vw,62px);border-top:1px solid #a4a995}
.pour{display:grid;grid-template-columns:minmax(94px,.38fr) 1fr;gap:20px;align-items:baseline;padding:17px 0 19px;border-bottom:1px solid #a4a995}
.pour h3{font-family:Newsreader,Georgia,serif;font-size:clamp(27px,2.5vw,38px);font-weight:400;letter-spacing:-.01em;line-height:1.05}
.pour p{max-width:270px;color:#545e52;font-size:11px;line-height:1.65}
.pour-primary h3{color:#8d5640}
@media(max-width:900px){.morning-pours{column-gap:45px}.pours-heading h2{font-size:clamp(58px,7vw,76px)}.pours-photo{height:620px}.pour{grid-template-columns:1fr;gap:5px}.pour p{max-width:320px}}
@media(max-width:700px){.morning-pours{grid-template-columns:1fr;grid-template-areas:'heading' 'photo' 'list';padding-top:70px;padding-bottom:76px}.pours-heading h2{max-width:520px;font-size:clamp(58px,11vw,80px)}.pours-heading>p{margin-top:16px}.pours-photo{height:clamp(360px,90vw,520px);margin-top:34px}.pours-list{max-width:none;margin-top:31px}.pour{grid-template-columns:minmax(95px,.4fr) 1fr;gap:16px}.pour p{max-width:none}}
@media(max-width:560px){.morning-pours{padding-top:61px;padding-bottom:65px}.pours-photo{height:390px;margin-top:28px}.pours-heading h2{font-size:clamp(56px,13vw,70px)}.pour h3{font-size:30px}.pour p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.pours-photo img{transform:none;will-change:auto}}
.pour .pour-options{max-width:330px;color:#344136;font-family:Newsreader,Georgia,serif;font-size:clamp(17px,1.7vw,22px);line-height:1.16}
.pour .pour-detail{max-width:310px;margin-top:7px;color:#5d685b;font-size:11px;line-height:1.6}
@media(max-width:560px){.pour .pour-options{font-size:19px}.pour .pour-detail{font-size:11px}}
@media(max-width:560px){.footer-brand{margin-inline:auto}}

/* Each breakfast selection is a complete view of the porch table. */
.menu-image .menu-photo,.menu-image:hover .menu-photo{transition:opacity .62s cubic-bezier(.22,.61,.36,1);will-change:opacity}

/* Coffee, tea, and juice select independent full-scene photographs. */
.pours-photo{position:relative}
.pours-photo .pours-scene{position:absolute;inset:0;width:100%;height:100%;opacity:0;object-fit:cover;object-position:54% center;transition:opacity .62s cubic-bezier(.22,.61,.36,1);will-change:opacity}
.pours-photo .pours-scene.is-active{opacity:1}
.pours-photo .pours-scene[data-pour-photo='coffee']{object-position:69% center}
.pours-photo .pours-scene[data-pour-photo='tea']{object-position:57% center}
.pours-photo .pours-scene[data-pour-photo='juice']{object-position:37% center}
.pour{width:100%;border-right:0;border-left:0;border-top:0;border-radius:0;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background-color .22s ease}
.pour:hover,.pour:focus-visible,.pour.is-active{background:#ffffff45}
.pour:focus-visible{outline:2px solid #8d5640;outline-offset:3px}
.pour-title{font-family:Newsreader,Georgia,serif;font-size:clamp(27px,2.5vw,38px);font-weight:400;letter-spacing:-.01em;line-height:1.05;transition:color .22s ease}
.pour.is-active .pour-title,.pour:hover .pour-title,.pour:focus-visible .pour-title{color:#8d5640}
.pour-copy,.pour-options,.pour-detail{display:block}
@media(prefers-reduced-motion:reduce){.menu-image .menu-photo,.menu-image:hover .menu-photo,.pours-photo .pours-scene,.pour,.pour-title{transition:none;will-change:auto}}
@media(min-width:701px) and (max-width:900px){.pours-photo{height:min(60vw,560px)}}

/* Drink choices change color without moving the text or changing line breaks. */
.pour:hover,.pour:focus-visible{padding-left:0}

/* A little more town detail, kept in short readable observations. */
.around-notes{max-width:340px;margin-top:clamp(26px,3vw,40px)}
.around-notes p{margin:0 0 17px;color:#555b52;font-size:clamp(12px,1vw,14px);line-height:1.8}
.around-notes p:last-child{margin-bottom:0}

/* The live booking form no longer starts with a rule. */
.invitation-layout .stay-form{padding-top:0;border-top:0}

/* Porchside: one continuous closing scene, with the photo and booking form sharing the frame. */
.invitation.invitation-porchside{display:grid;grid-template-columns:.94fr 1.06fr;gap:0;align-items:stretch;min-height:650px;padding:0;background:#d9dfd0}
.invitation-porchside .invitation-photo{position:relative;min-height:650px;height:auto;overflow:hidden}
.invitation-porchside .invitation-photo img{position:absolute;inset:0;width:100%;height:100%;object-position:center 54%}
.invitation.invitation-porchside>div.invitation-content{align-self:center;width:100%;max-width:none;padding:clamp(42px,5vw,75px) clamp(38px,5vw,80px)}
.invitation-porchside .eyebrow{margin-bottom:21px;color:#4d604c;letter-spacing:0;text-transform:none}
.invitation-porchside .invitation-head h2{max-width:570px;font-family:Newsreader,Georgia,serif;font-size:clamp(54px,5.1vw,76px);font-weight:400;letter-spacing:-.025em;line-height:1.06}
.invitation-porchside .invitation-copy{max-width:390px;margin:18px 0 34px;color:#546153;font-size:12px;line-height:1.8}
.invitation-porchside .stay-form{max-width:470px;margin:0;padding:0;border:0;justify-self:auto}
.invitation-porchside .stay-field .stay-label,.invitation-porchside .stay-field label{margin-bottom:8px;color:#475747}
.invitation-porchside .stay-room-picker summary{min-height:56px;padding-left:16px;font-family:Newsreader,Georgia,serif;font-size:25px;font-weight:400}
.invitation-porchside .stay-field input{height:56px;font-family:Newsreader,Georgia,serif;font-size:25px;font-weight:400}
.invitation-porchside .stay-dates{gap:25px;margin-top:24px}
.invitation-porchside .stay-form .invitation-button.booking-cta{min-height:62px;margin-top:30px;font-family:Newsreader,Georgia,serif;font-size:29px;font-weight:400}
@media(max-width:1000px){.invitation.invitation-porchside{grid-template-columns:1fr 1fr}.invitation-porchside>.invitation-content{padding:45px 38px}.invitation-porchside .invitation-head h2{font-size:clamp(54px,6.3vw,78px)}.invitation-porchside .stay-dates{grid-template-columns:1fr;gap:18px}}
@media(max-width:700px){.invitation.invitation-porchside{display:block}.invitation-porchside .invitation-photo{height:315px;min-height:0}.invitation.invitation-porchside>div.invitation-content{padding:45px 26px 55px}.invitation-porchside .invitation-head h2{font-size:clamp(42px,10vw,52px)}.invitation-porchside .stay-dates{grid-template-columns:1fr 1fr;gap:18px}.invitation-porchside .stay-field input{font-size:23px}.invitation-porchside .stay-form .invitation-button.booking-cta{margin-top:30px}}
@media(max-width:420px){.invitation-porchside .stay-dates{grid-template-columns:1fr}.invitation-porchside .stay-field input{font-size:23px}}

/* A more welcoming headline without enlarging the translucent hero card. */
.hero h1{max-width:570px;font-size:clamp(62px,6vw,92px);font-weight:500;letter-spacing:-.015em;line-height:.98;text-wrap:balance}
.hero-subhead{max-width:420px;margin-top:24px;color:#31392f;font-size:13px;font-weight:600;line-height:1.7}
.hero-paper-foot{margin-top:30px}
@media(max-width:560px){.hero h1{font-size:clamp(46px,12.5vw,64px);line-height:1}.hero-subhead{margin-top:20px;font-size:12px;line-height:1.65}.hero-paper-foot{margin-top:26px}}

/* Hero: a quieter translucent pane with the supporting thought set as display type. */
.hero{min-height:clamp(690px,calc(100svh - 100px),880px)}
.hero-paper{width:min(575px,calc(100% - 52px));padding:clamp(43px,4.3vw,58px) clamp(34px,4vw,52px) 40px;background:rgba(246,243,235,.62);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 16px 38px #17201625}
.hero h1{max-width:500px;font-size:clamp(63px,6.1vw,84px);font-weight:500;letter-spacing:-.018em;line-height:.97}
.hero-subhead{max-width:460px;margin:31px 0 0;color:#253229;font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(29px,2.5vw,34px);font-style:italic;font-weight:500;letter-spacing:.006em;line-height:1.22;text-wrap:pretty}
.hero-paper-foot{margin-top:33px}
@media(max-width:800px){.hero-paper{width:min(555px,calc(100% - 52px))}.hero h1{font-size:clamp(57px,7.5vw,72px)}}
@media(max-width:560px){.hero{min-height:0}.hero-paper{width:auto;margin:-25px 16px 0;padding:36px 25px 36px;background:rgba(246,243,235,.87);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:none}.hero h1{font-size:clamp(48px,12.5vw,62px);line-height:1}.hero-subhead{max-width:none;margin:25px 0 0;font-size:clamp(25px,6.2vw,30px);line-height:1.22}.hero-paper-foot{margin-top:29px}}

/* Trim the empty band below each photo deck; let the second room begin a new chapter. */
.room-gallery-deck{height:clamp(440px,47vw,640px)}
.room-gallery-card{top:47%;height:83%}
.room-gallery-prev,.room-gallery-next{top:47%}
.room-story-bottom{margin-top:clamp(24px,2.5vw,38px)}
.room-story-front{padding-bottom:clamp(42px,5vw,70px)}
.room-story-eaves{padding-top:clamp(58px,6vw,86px);background:#e6dfd3;border-top:1px solid #cec4b4}
@media(max-width:800px){.room-gallery-deck{height:clamp(430px,58vw,500px)}.room-story-bottom{margin-top:28px}}
@media(max-width:560px){.room-gallery-deck{height:410px}.room-gallery-card{top:43%;height:76%}.room-gallery-prev,.room-gallery-next{top:82%}.room-story-bottom{margin-top:24px}.room-story-front{padding-bottom:48px}.room-story-eaves{padding-top:56px}}

/* The house remains visible through the hero pane. */
.hero-paper{background:rgba(246,243,235,.43);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:0 13px 30px #17201618}
@media(max-width:560px){.hero-paper{background:rgba(246,243,235,.69);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}

/* Make the house note read like part of the editorial typography. */
.house-body .house-detail p{max-width:420px;margin-bottom:20px;font-family:Newsreader,Georgia,serif;font-size:clamp(19px,1.6vw,23px);font-weight:400;letter-spacing:-.006em;line-height:1.45}
@media(max-width:560px){.house-body .house-detail p{font-size:19px;line-height:1.45}}

/* Give the bathroom its own pause after the second room. */
.bath-feature{padding-top:clamp(76px,7vw,112px);border-top:1px solid #cfc6b7}
.bath-copy h3{letter-spacing:-.025em;line-height:1.08}
.bath-copy>p:last-child{margin-top:clamp(28px,3vw,42px)}
@media(max-width:560px){.bath-feature{padding-top:68px}.bath-copy h3{line-height:1.1}}

/* The selection wash sits around the coffee text, with equal room in every state. */
.pours-list{max-width:560px}
.pour,.pour:hover,.pour:focus-visible,.pour.is-active{padding:22px clamp(20px,2vw,28px) 24px;border-left:0}
.pour:hover,.pour:focus-visible,.pour.is-active{background:#fffaf06b}
.pour:focus-visible{outline:2px solid #8d5640;outline-offset:2px}
@media(max-width:560px){.pour,.pour:hover,.pour:focus-visible,.pour.is-active{grid-template-columns:1fr;gap:8px;padding:20px 18px 22px}}


/* A single destination stays visible at every width. */
@media(max-width:800px){.desktop-nav{display:flex;justify-self:end}.desktop-nav a{font-size:clamp(17px,4.7vw,20px)}.menu-toggle{display:none}}
.hero-paper{background:rgba(246,243,235,.54)}
@media(max-width:560px){.hero-paper{background:rgba(246,243,235,.76)}}

/* Let the mobile hero card sit meaningfully over the photograph. */
@media(max-width:560px){.hero-paper{margin-top:calc(-1 * clamp(82px,14svh,122px));z-index:1}}

/* Quiet rules make each chapter legible as the page scrolls. Shared edges use one line. */
.house{border-block:1px solid #cfc6b7}
.room-story-front{border-block:1px solid #cfc6b7;padding-top:clamp(36px,4vw,60px)}
.room-story-eaves{border-top:0;border-bottom:1px solid #cfc6b7}
.bath-feature{border-top:0;border-bottom:1px solid #cfc6b7}
.menu{border-block:1px solid #aeb9aa}
.morning-pours,.around,.invitation-porchside{border-block:1px solid #cfc6b7}
@media(max-width:560px){
  .house{padding-top:42px;padding-bottom:62px}
  .rooms-editorial{padding-top:50px;padding-bottom:58px}
  .room-story-front{padding-top:40px;padding-bottom:52px}
  .room-story-eaves{padding-top:52px;padding-bottom:52px}
  .bath-feature{padding-top:54px;padding-bottom:62px}
  .menu-content{padding-top:62px;padding-bottom:68px}
  .morning-pours,.around{padding-top:64px;padding-bottom:64px}
}

/* Mobile hero: photograph first, then type on the page itself. */
@media(max-width:560px){
  .hero{padding-top:57svh;background:var(--paper)}
  .hero-scene{height:57svh}
  .hero-paper{position:relative;left:auto;bottom:auto;z-index:1;width:100%;margin:0;padding:34px 25px 47px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;transform:none;will-change:auto}
  .hero-paper-foot{justify-content:center;margin-top:30px;padding-top:23px}
  .hero-booking{margin-inline:auto}
}

/* Mobile: one uninterrupted transition into the first room. */
@media(max-width:560px){
  .house{padding-bottom:34px;border-bottom:0}
  .rooms-editorial{padding-top:16px}
  .room-story-front{padding-top:0;border-top:0}
  .room-gallery-prev,.room-gallery-next{top:auto;right:auto;bottom:12px;transform:none}
  .room-gallery-prev{left:calc(50% - 55px)}
  .room-gallery-next{left:calc(50% + 10px)}
  .invitation.invitation-porchside>div.invitation-content{margin-top:0;padding-top:24px}
}

/* Mobile chapter handoffs: one rule, with the content close to it. */
@media(max-width:560px){
  .bath-feature{padding-bottom:22px;border-bottom:0}
  .rooms-editorial{padding-bottom:0}
  .menu-content{padding-top:42px}
  .morning-pours{padding-bottom:28px}
  .around{padding-top:24px}
}

/* Give each mobile chapter the same space above its headline as breakfast. */
@media(max-width:560px){
  :root{--mobile-chapter-inset:42px}
  .hero-paper,.house,.rooms-editorial,.room-story-eaves,.bath-feature,.menu-content,.morning-pours,.around{padding-top:var(--mobile-chapter-inset)}
  .around-heading{padding-top:0}
  .invitation.invitation-porchside>div.invitation-content{padding-top:var(--mobile-chapter-inset)}
  .hero-paper-foot{padding-top:0;border-top:0}
  .hero-booking{min-height:70px;padding:17px 37px 20px;font-size:29px}
}

/* Bring the supplied dark logo's copper accents toward the header's soft gold. */
.footer-brand-art{filter:hue-rotate(24deg) saturate(.72)}

/* Full-screen browsing sits between the two photo controls. */
.room-gallery-prev,.room-gallery-next,.room-gallery-zoom{top:auto;right:auto;bottom:12px;width:55px;height:55px;transform:none}
.room-gallery-prev{left:calc(50% - 92px)}
.room-gallery-zoom{position:absolute;z-index:7;left:calc(50% - 27px);display:grid;place-items:center;padding:0;border:1px solid #f4f0e780;border-radius:50%;background:#f4f0e72e;color:#26332b;box-shadow:0 2px 9px #16201612;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}
.room-gallery-zoom svg{width:24px;height:24px}
.room-gallery-next{left:calc(50% + 38px)}
.room-gallery-zoom:hover{border-color:#f4f0e7cc;background:#f4f0e7ba;box-shadow:0 4px 16px #16201621}
@media(max-width:560px){
  .room-gallery-prev,.room-gallery-next,.room-gallery-zoom{width:45px;height:45px}
  .room-gallery-prev{left:calc(50% - 78px)}
  .room-gallery-zoom{left:calc(50% - 23px)}
  .room-gallery-zoom svg{width:21px;height:21px}
  .room-gallery-next{left:calc(50% + 32px)}
}
@media(prefers-reduced-motion:reduce){.room-gallery-zoom{transition:none}}

/* The mobile entrance borrows the footer navy and gives every section a real destination. */
@media(max-width:800px){
  .site-header{position:relative;z-index:30;grid-template-columns:1fr auto;background:#0a283e}
  .desktop-nav{display:none}
  .brand-art{background-image:url('assets/logo-horizontal-dark.png');mix-blend-mode:lighten;filter:hue-rotate(24deg) saturate(.72)}
  .menu-toggle{display:flex;align-items:center;justify-content:center;justify-self:end;gap:6px;width:48px;height:48px;padding:0;border:1px solid #e4d4b866;border-radius:50%;background:transparent;color:#f5f1e8}
  .menu-toggle span{display:block;width:22px;height:1px;flex:none;background:currentColor;transform:none;transition:transform .25s ease,opacity .2s ease}
  .menu-toggle[aria-expanded='true'] span:first-child{transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded='true'] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded='true'] span:last-child{transform:translateY(-7px) rotate(-45deg)}
  .mobile-nav:not([hidden]){z-index:29;top:88px;padding:9px 25px 27px;background:#0a283e;color:#f5f1e8;box-shadow:0 18px 30px #061b29a6}
  .mobile-nav a{display:block;padding:13px 4px 12px;border-bottom:1px solid #f5f1e835;font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.1;letter-spacing:.01em;transition:color .2s ease,padding-left .2s ease}
  .mobile-nav a:hover,.mobile-nav a:focus-visible{padding-left:10px;color:#e6c99b}
  .mobile-nav a:last-child{margin-top:8px;border-bottom:0;color:#e6c99b}
}
@media(max-width:560px){
  .site-header{padding-inline:20px}
  .brand{width:67px;height:57px}
  .brand-art{background-size:220px auto;background-position:-11px -29px}
  .mobile-nav:not([hidden]){top:82px}
}
@media(prefers-reduced-motion:reduce){.menu-toggle span,.mobile-nav a{transition:none}}

/* Selected mobile hero: editorial paper, with the logo's navy in the type and action. */
@media(max-width:560px){
  .hero-paper{padding:31px 25px 39px}
  .hero h1{max-width:340px;color:#0a283e;font-size:clamp(44px,13vw,52px);font-weight:500;letter-spacing:.005em;line-height:.98;text-wrap:pretty}
  .hero-subhead{max-width:300px;margin-top:19px;padding-left:16px;border-left:2px solid #ad875a;color:#4b5149;font-family:Newsreader,Georgia,serif;font-size:clamp(22px,6.15vw,24px);font-style:italic;font-weight:400;letter-spacing:0;line-height:1.3}
  .hero-paper-foot{justify-content:flex-start;margin-top:25px;padding-top:0}
  .hero-booking.booking-cta{min-height:70px;margin-inline:0;border-color:#0a283e;background:#0a283e;box-shadow:none;color:#f4f0e7}
  .hero-booking.booking-cta:before{display:none}
  .hero-booking.booking-cta:hover{background:#173d59;box-shadow:none}
}

/* The mobile title arrives on the photograph; the booking action stays on paper below. */
@media(max-width:560px){
  .hero{isolation:isolate}
  .hero-paper{position:relative;z-index:1;min-height:124px;padding:24px 25px 30px;background:var(--paper)}
  .hero h1{position:absolute;right:25px;bottom:calc(100% + 23px);left:25px;max-width:340px;color:#fffdf7;font-size:clamp(48px,13.6vw,54px);font-weight:600;letter-spacing:.005em;line-height:.94;text-shadow:3px 4px 0 #0a283e;text-wrap:balance;animation:vale-hero-title .85s cubic-bezier(.22,.65,.3,1) .08s both}
  .hero-paper-foot{justify-content:center;margin:0;padding:0}
  .hero-booking.booking-cta{margin-inline:auto}
}
@keyframes vale-hero-title{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){.hero h1{animation:none}}

/* A quiet paper card keeps the desktop headline legible over the house. */
@media(min-width:561px){
  .hero{min-height:clamp(620px,calc(100svh - 108px),930px)}
  .hero-paper{left:clamp(30px,6vw,88px);bottom:clamp(45px,6vw,80px);width:min(580px,calc(100% - 60px));padding:clamp(29px,3.5vw,45px);background:rgba(246,243,235,.43);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 16px 36px #17201624}
  .hero h1{max-width:620px;color:#292d27;font-size:clamp(54px,5.7vw,82px);font-weight:500;letter-spacing:.005em;line-height:1.01;text-shadow:none;text-wrap:balance;animation:vale-hero-title .85s cubic-bezier(.22,.65,.3,1) .08s both}
  .hero-paper-foot{justify-content:flex-start;margin-top:25px;padding:0;border:0}
  .hero-booking.booking-cta{border-color:#734632;background:#8d5640;color:#fff9ef;box-shadow:0 7px 17px #35271d24}
  .hero-booking.booking-cta:before{display:block}
  .hero-booking.booking-cta:hover{background:#744531;box-shadow:0 11px 22px #35271d30}
}
@media(prefers-reduced-motion:reduce){.hero h1{animation:none!important}}

/* Mobile header spells out the house name beside its emblem. */
.brand-name-mobile{display:none}
@media(max-width:800px){
  .brand{display:inline-flex;flex-direction:row;align-items:center;gap:7px;width:auto;height:62px;min-width:0}
  .brand-art{flex:none;width:68px;height:62px}
  .brand-name-mobile{display:block;color:#f4f0e7;font-family:var(--serif);font-size:clamp(21px,5.7vw,26px);font-weight:600;letter-spacing:-.035em;line-height:1;white-space:nowrap}
}
@media(max-width:560px){
  .brand{height:57px;gap:5px}
  .brand-art{width:67px;height:57px}
  .hero-booking.booking-cta{border-color:#734632;background:#8d5640;color:#fff9ef;box-shadow:0 7px 17px #35271d24}
  .hero-booking.booking-cta:before{display:block}
  .hero-booking.booking-cta:hover{background:#744531;box-shadow:0 11px 22px #35271d30}
}

/* Chosen mobile opening: a compact vellum card over a slow, uninterrupted photo dissolve. */
.hero-title-mobile,.hero-mobile-slides{display:none}
@media(max-width:560px){
  .hero{height:clamp(560px,calc(100svh - 82px),700px);min-height:0;padding-top:0;background:#68715c}
  .hero-scene{inset:0;height:100%}
  .hero-photo{display:none}
  .hero-mobile-slides{display:block;position:absolute;inset:0;transform:translate3d(0,var(--hero-photo-y,0px),0) scale(1.035);will-change:transform}
  .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;z-index:0;transition:opacity 2200ms ease-in-out}
  .hero-slide:first-child{object-position:57% center}
  .hero-slide.is-active{opacity:1;z-index:1}
  .hero-slide.is-entering{opacity:1;z-index:2}
  .hero-paper{position:absolute;left:19px;right:19px;bottom:26px;z-index:3;width:auto;min-height:0;margin:0;padding:19px 21px 21px;background:rgba(246,243,235,.45);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 10px 28px #1720162c;transform:none;will-change:auto}
  .hero-title-desktop{display:none}
  .hero-title-mobile{display:inline}
  .hero h1{position:static;max-width:none;color:#292d27;font-size:clamp(40px,12vw,48px);font-weight:500;letter-spacing:-.015em;line-height:1.04;text-align:center;text-shadow:none;animation:none;text-wrap:balance}
  .hero-paper-foot{justify-content:center;margin-top:16px;padding:0}
  .hero-booking.booking-cta{min-height:57px;margin-inline:auto;padding:10px 26px 13px;font-size:25px}
}
@media(prefers-reduced-motion:reduce){.hero-mobile-slides{transform:none;will-change:auto}.hero-slide{transition:none}}

/* The mobile welcome arrives in three quiet beats before the photo begins changing. */
@media(max-width:560px){
  .hero-paper{animation:vale-hero-card-enter .7s cubic-bezier(.22,.68,.26,1) .08s both}
  .hero h1{animation:vale-hero-detail-enter .72s cubic-bezier(.22,.68,.26,1) .32s both}
  .hero-paper-foot{animation:vale-hero-detail-enter .62s cubic-bezier(.22,.68,.26,1) .58s both}
}
@keyframes vale-hero-card-enter{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes vale-hero-detail-enter{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(max-width:560px) and (prefers-reduced-motion:reduce){.hero-paper,.hero h1,.hero-paper-foot{animation:none!important}}

/* Keep the desktop logo centered while the navigation sits beside booking. */
@media(min-width:801px){
  .site-header{grid-template-columns:auto 1fr auto;min-height:108px;padding-top:12px;padding-bottom:12px;align-items:center}
  .site-header .brand,.site-header .desktop-nav,.site-header .header-plan{align-self:center}
  .desktop-nav{justify-self:end;margin-right:clamp(22px,2.5vw,36px)}
}

/* Desktop chapters meet at one rule; room notes sit directly under their galleries. */
@media(min-width:801px){
  .house{padding-bottom:36px}
  .rooms-editorial{padding-top:0;padding-bottom:0}
  .room-story-front{padding-top:48px;border-top:0}
  .room-story-bottom{flex-direction:column;align-items:center;gap:24px;margin-top:16px;text-align:center}
  .room-story-bottom p{max-width:790px}
  .room-actions{align-items:center}
  .room-gallery-card{top:45%}
  .room-gallery-prev,.room-gallery-next,.room-gallery-zoom{bottom:3px}
  .bath-feature{padding-bottom:32px}
  .menu{border-top:0}
}
@media(min-width:561px) and (max-width:800px){
  .room-gallery-card{top:41.5%}
  .room-gallery-prev,.room-gallery-next,.room-gallery-zoom{bottom:3px}
}
