:root{
  color-scheme: light;
  --linen:#FAF6F0;
  --alabaster:#F3ECE1;
  --parchment:#EDE3D3;
  --green:#1C2D27;
  --green-soft:#2B3F37;
  --charcoal:#34322F;
  --muted:#5E6159;
  --sage:#758476;
  --sage-ink:#56645A;
  --brass:#C5A059;
  --brass-ink:#8E6F2E;
  --white:#FFFDF9;
  --serif:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --sans:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --script:"Pinyon Script","Snell Roundhand","Apple Chancery",cursive;
  --wrap:1180px;
  --gutter:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--linen);color:var(--charcoal);font-family:var(--serif);font-size:1.2rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{max-width:100%}
:focus-visible{outline:1px solid var(--brass-ink);outline-offset:4px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.caps{font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--green);text-wrap:balance;margin:0;line-height:1.08}
h2{font-size:clamp(2.2rem,4.6vw,3.6rem)}
h2 em,h1 em,h3 em{font-style:italic;font-weight:400}
p{margin:0}

/* The concept ribbon */
.concept-note{background:var(--green);color:rgba(250,246,240,.92);text-align:center;padding-block:10px}
.concept-note .wrap{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;align-items:baseline}
.concept-note .caps{font-size:.6rem;letter-spacing:.2em;color:var(--brass)}
.concept-note p{font-size:.98rem;font-style:italic;color:rgba(250,246,240,.86)}

.quiet{display:inline-flex;align-items:center;gap:.7em;text-decoration:none;font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--green);padding-block:.5em;background:linear-gradient(var(--brass),var(--brass)) left bottom/100% 1px no-repeat;transition:background-size .5s ease,color .3s ease}
.quiet::after{content:"";width:22px;height:1px;background:currentColor;transition:width .4s ease}
.quiet:hover{color:var(--brass-ink);background-size:30% 1px}
.quiet:hover::after{width:36px}
.framed{display:inline-block;text-decoration:none;border:1px solid var(--brass);padding:1em 2.2em;font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--green);position:relative;transition:background .4s ease,color .4s ease;background:transparent;cursor:pointer}
.framed::before{content:"";position:absolute;inset:4px;border:1px solid rgba(197,160,89,.45);pointer-events:none}
.framed:hover{background:var(--green);color:var(--linen)}

.estate-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(250,246,240,.94);backdrop-filter:blur(6px);border-bottom:1px solid rgba(197,160,89,.5)}
.estate-head .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding-block:14px}
.nav{display:flex;gap:clamp(12px,1.6vw,24px);flex-wrap:nowrap}
.nav a{white-space:nowrap;letter-spacing:.16em;font-size:.62rem;text-decoration:none;color:var(--green);padding-block:4px;background:linear-gradient(var(--brass),var(--brass)) center bottom/0 1px no-repeat;transition:background-size .35s ease}
.nav a:hover{background-size:100% 1px}
.brand{text-align:center;text-decoration:none;color:var(--green);line-height:1}
.brand .name{display:block;font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2rem);font-style:italic;font-weight:500}
.brand .est{display:block;margin-top:5px;color:var(--sage-ink);font-size:.56rem}
.head-right{display:flex;justify-content:flex-end;align-items:center;gap:18px}
.basket{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--green)}
.basket svg{width:30px;height:30px}
.menu-btn{display:none;background:none;border:0;color:var(--green);cursor:pointer;padding:6px 0;font-family:var(--sans)}
.mobile-nav{display:none}

.foyer{position:relative;overflow:hidden;border-bottom:1px solid rgba(197,160,89,.5);min-height:clamp(520px,68vw,760px);display:grid;place-items:center}
.foyer-scene{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center 40%}
.foyer-wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(250,246,240,.15),rgba(250,246,240,.05) 50%,rgba(28,45,39,.18))}
.foyer-copy{position:relative;text-align:center;max-width:640px;margin-inline:16px;background:radial-gradient(closest-side,rgba(250,246,240,.94),rgba(250,246,240,.82) 62%,rgba(250,246,240,0));padding:clamp(40px,6vw,64px) clamp(24px,5vw,56px)}
.foyer-copy .caps{color:var(--sage-ink)}
.foyer-copy h1{font-size:clamp(2.6rem,6.4vw,5.2rem);margin-top:16px}
.foyer-copy .script{font-family:var(--script);font-size:clamp(2.4rem,5vw,3.8rem);color:var(--brass-ink);line-height:1.1;margin-top:6px}
.foyer-copy .lede{max-width:34ch;margin:18px auto 26px;font-size:1.22rem;color:var(--charcoal)}
.rule-orn{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--brass)}
.rule-orn::before,.rule-orn::after{content:"";height:1px;width:60px;background:var(--brass)}

.calling{padding-block:clamp(64px,9vw,120px)}
.calling .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(32px,6vw,90px);align-items:center}
.monogram{justify-self:center;width:min(300px,70vw)}
.letter .caps{color:var(--sage-ink)}
.letter h2{margin-top:14px}
.letter p{margin-top:20px;max-width:56ch;font-size:1.24rem}
.letter .sig{font-family:var(--script);font-size:2.4rem;color:var(--green);margin-top:18px;line-height:1}

.rooms{background:var(--alabaster);padding-block:clamp(64px,8vw,110px);border-block:1px solid rgba(197,160,89,.4)}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:clamp(36px,5vw,60px)}
.section-head .caps{color:var(--sage-ink);display:block;margin-bottom:12px}
.section-head p.sub{max-width:44ch;color:var(--muted)}
.room-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,32px)}
.room{text-decoration:none;color:var(--green);display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.arch{width:100%;aspect-ratio:5/7;max-width:100%;border-radius:999px 999px 0 0;border:1px solid var(--brass);padding:8px;background:var(--linen);transition:transform .5s ease}
.arch-inner{width:100%;height:100%;border-radius:999px 999px 0 0;overflow:hidden;background:var(--parchment);border:1px solid rgba(197,160,89,.5)}
.arch-inner img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.room:hover .arch{transform:translateY(-6px)}
.room:hover .arch-inner img{transform:scale(1.05)}
.room h3{font-size:1.7rem;font-style:italic;font-weight:400}
.room .caps{color:var(--sage-ink);font-size:.6rem}
.room .open-now{font-family:var(--sans);font-size:.55rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-ink)}

.ledger{padding-block:clamp(70px,9vw,130px)}
.ledger-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:clamp(18px,2.4vw,30px)}
.volume{position:relative;display:flex;flex-direction:column;text-decoration:none;color:var(--linen);padding:clamp(18px,2vw,26px);min-height:300px;box-shadow:0 1px 0 rgba(0,0,0,.06),0 18px 40px -26px rgba(28,45,39,.55);background-color:var(--c);background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),linear-gradient(90deg,rgba(0,0,0,.22),rgba(0,0,0,0) 7%,rgba(255,255,255,.05) 9%,rgba(0,0,0,0) 12%);transition:transform .5s ease,box-shadow .5s ease}
.volume:hover{transform:translateY(-5px) rotate(-.3deg);box-shadow:0 1px 0 rgba(0,0,0,.06),0 28px 50px -28px rgba(28,45,39,.7)}
.volume.feature{grid-row:span 2;min-height:560px}
.volume::after{content:"";position:absolute;top:0;right:28px;width:14px;height:64px;background:var(--ribbon,var(--brass));clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);transition:height .5s ease}
.volume:hover::after{height:84px}
.plate{flex:1;border:1px solid rgba(197,160,89,.85);outline:1px solid rgba(197,160,89,.4);outline-offset:-7px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:clamp(22px,3vw,40px) clamp(16px,2vw,28px);gap:18px}
.plate .caps{color:var(--brass);font-size:.6rem}
.plate h3{color:var(--white);font-size:clamp(1.8rem,2.6vw,2.4rem);text-shadow:0 1px 0 rgba(0,0,0,.25)}
.feature .plate h3{font-size:clamp(2.4rem,4vw,3.4rem)}
.plate .excerpt{color:rgba(250,246,240,.86);font-size:1.12rem;max-width:34ch}
.plate .meta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;color:rgba(250,246,240,.78);font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.plate .gather{font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);border-top:1px solid rgba(197,160,89,.6);padding-top:12px}
.crest{width:64px;height:64px;color:var(--brass)}
.feature .crest{width:96px;height:96px}
.ledger-foot{display:flex;justify-content:center;margin-top:clamp(36px,5vw,56px)}

.supper{background:var(--green);color:var(--linen);padding-block:clamp(70px,9vw,120px);text-align:center;position:relative;overflow:hidden}
.supper .script{font-family:var(--script);font-size:clamp(2.8rem,6vw,4.8rem);color:var(--brass);line-height:1.1}
.supper p.body{max-width:52ch;margin:22px auto 0;color:rgba(250,246,240,.84);font-size:1.26rem}
.supper .caps{color:rgba(197,160,89,.9);margin-top:28px;display:block}
.supper .lights{position:absolute;inset:0 0 auto 0;height:90px;width:100%;opacity:.9}

.pantry{padding-block:clamp(70px,9vw,130px)}
.shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px) clamp(18px,2.4vw,32px)}
.piece{text-decoration:none;color:var(--charcoal);display:flex;flex-direction:column;gap:14px}
.still{position:relative;aspect-ratio:4/3;max-width:100%;overflow:hidden;background:var(--alabaster);border:1px solid rgba(197,160,89,.45)}
.still img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.piece:hover .still img{transform:scale(1.045)}
.still .why{position:absolute;inset:auto 0 0 0;padding:16px 18px;background:linear-gradient(0deg,rgba(28,45,39,.9),rgba(28,45,39,0));color:var(--linen);font-style:italic;font-size:1.08rem;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}
.piece:hover .why,.piece:focus-visible .why{opacity:1;transform:none}
.piece .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid rgba(197,160,89,.5);padding-top:12px}
.piece h3{font-size:1.55rem;font-weight:500}
.piece .caps{color:var(--sage-ink);font-size:.58rem;white-space:nowrap}
.piece .home{font-family:var(--sans);font-size:.6rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-ink);opacity:0;transition:opacity .4s ease}
.piece:hover .home{opacity:1}
.pantry-foot{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center;margin-top:clamp(40px,5vw,64px);border-top:1px solid rgba(197,160,89,.5);padding-top:24px}
.pantry-foot p{color:var(--muted);font-size:1.05rem;max-width:60ch}

.guest{background:var(--alabaster);border-top:1px solid rgba(197,160,89,.45);padding-block:clamp(64px,8vw,110px)}
.guest .card{max-width:760px;margin-inline:auto;text-align:center;border:1px solid var(--brass);outline:1px solid rgba(197,160,89,.45);outline-offset:-9px;background:var(--linen);padding:clamp(36px,6vw,64px) clamp(20px,5vw,60px)}
.guest .caps{color:var(--sage-ink)}
.guest h2{margin-top:12px;font-size:clamp(2rem,4vw,3rem)}
.guest p.body{margin:14px auto 28px;max-width:46ch;color:var(--muted)}
.guest form{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:stretch}
.guest label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.guest input{flex:1 1 260px;max-width:360px;border:0;border-bottom:1px solid var(--green);background:transparent;padding:.8em .2em;font-family:var(--serif);font-size:1.2rem;color:var(--green)}
.guest input::placeholder{color:#8B8A82;font-style:italic}
.guest input:focus{outline:none;border-bottom-color:var(--brass-ink)}
.thanks{margin-top:18px;font-style:italic;color:var(--sage-ink);min-height:1.6em}

.estate-foot{background:var(--green);color:rgba(250,246,240,.8);padding-block:56px 36px}
.estate-foot .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.estate-foot .name{font-style:italic;font-size:1.9rem;color:var(--linen)}
.estate-foot p{font-size:1.05rem;margin-top:10px;max-width:36ch}
.estate-foot .caps{color:var(--brass);display:block;margin-bottom:14px}
.estate-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.estate-foot a{text-decoration:none}
.estate-foot a:hover{color:var(--brass)}
.fine{grid-column:1/-1;border-top:1px solid rgba(197,160,89,.35);padding-top:20px;margin-top:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-family:var(--sans);font-size:.64rem;letter-spacing:.12em;color:rgba(250,246,240,.6)}

/* ---- The Pantry room ---- */
.room-head{background:var(--alabaster);border-bottom:1px solid rgba(197,160,89,.45);padding-block:clamp(48px,7vw,86px)}
.room-head .inner{max-width:760px}
.room-head .caps{color:var(--sage-ink);display:block;margin-bottom:14px}
.room-head h1{font-size:clamp(2.4rem,5.4vw,4.2rem)}
.room-head p.lede{margin-top:20px;font-size:1.26rem;color:var(--charcoal);max-width:56ch}
.crumb{display:inline-flex;align-items:center;gap:10px;margin-bottom:26px;text-decoration:none;color:var(--sage-ink);font-family:var(--sans);font-size:.6rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.crumb:hover{color:var(--brass-ink)}
.wing{padding-block:clamp(56px,7vw,96px)}
.wing+.wing{border-top:1px solid rgba(197,160,89,.4)}
.wing.tinted{background:var(--alabaster)}
.wing-head{margin-bottom:clamp(30px,4vw,48px);max-width:62ch}
.wing-head .caps{color:var(--brass-ink);display:block;margin-bottom:12px}
.wing-head h2{font-size:clamp(1.9rem,3.6vw,2.8rem)}
.wing-head p{margin-top:14px;color:var(--muted);max-width:52ch}
.pieces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.8vw,38px) clamp(18px,2.4vw,30px)}
.item{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--charcoal);border-top:1px solid rgba(197,160,89,.5);padding-top:18px}
.item .kicker{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.item .kicker .caps{color:var(--sage-ink);font-size:.56rem}
.item h3{font-size:1.5rem;font-weight:500}
.item p{color:var(--muted);font-size:1.08rem;max-width:44ch}
.item .shot{aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(197,160,89,.45);background:var(--parchment)}
.item .shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.item:hover .shot img{transform:scale(1.045)}
.item .doorway{font-family:var(--sans);font-size:.58rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-ink);display:inline-flex;align-items:center;gap:.6em;margin-top:auto;padding-top:6px}
.item .doorway::after{content:"";width:18px;height:1px;background:currentColor;transition:width .4s ease}
.item:hover .doorway::after{width:30px}
.item.is-door{background:linear-gradient(180deg,rgba(243,236,225,.75),rgba(243,236,225,0) 70%)}
.wing.tinted .item.is-door{background:linear-gradient(180deg,rgba(250,246,240,.8),rgba(250,246,240,0) 70%)}
.disclosure{border:1px solid var(--brass);outline:1px solid rgba(197,160,89,.4);outline-offset:-7px;padding:clamp(22px,3vw,34px);margin-top:clamp(40px,5vw,64px);text-align:center}
.disclosure p{font-style:italic;color:var(--muted);max-width:56ch;margin-inline:auto}
.disclosure .caps{color:var(--brass-ink);display:block;margin-bottom:12px;font-size:.6rem}

@media (max-width:900px){
  .ledger-grid{grid-template-columns:1fr 1fr}
  .volume.feature{grid-column:1/-1;grid-row:auto;min-height:440px}
  .shelf,.pieces{grid-template-columns:repeat(2,minmax(0,1fr))}
  .room-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calling .wrap{grid-template-columns:1fr}
  .estate-foot .wrap{grid-template-columns:1fr 1fr}
  .estate-foot .wrap>div:first-child{grid-column:1/-1}
}
@media (max-width:760px){
  .nav{display:none}
  .menu-btn{display:inline-block}
  .estate-head .wrap{grid-template-columns:auto 1fr auto}
  .basket .caps{display:none}
  .mobile-nav{display:grid;gap:14px;padding:6px var(--gutter) 20px;border-top:1px solid rgba(197,160,89,.35)}
  .mobile-nav[hidden]{display:none}
  .mobile-nav a{text-decoration:none;color:var(--green)}
}
@media (max-width:560px){
  body{font-size:1.12rem}
  .ledger-grid,.shelf,.pieces{grid-template-columns:1fr}
  .volume{min-height:260px}
  .foyer{min-height:600px}
  .piece .home,.item .doorway{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
