@font-face{font-family:"Bodoni Moda";src:url("assets/fonts/bodoni-moda.ttf") format("truetype");font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:Manrope;src:url("assets/fonts/manrope.ttf") format("truetype");font-style:normal;font-weight:200 800;font-display:swap}
:root{--plaster:#f1ede6;--limestone:#ded4c5;--ink:#282d30;--bronze:#594c40;--olive:#6a6e58;--line:#b4a999;--paper:#faf7f1;--space-tight:.75rem;--space-group:1.5rem;--space-room:clamp(4rem,8vw,8rem);--gutter:clamp(1.25rem,4.5vw,5rem);--display:"Bodoni Moda",Georgia,serif;--body:Manrope,Arial,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:1.5rem}
body{margin:0;background:var(--plaster);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:var(--plaster)}
a,button{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.35em}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--bronze);outline-offset:6px}
.pantry :focus-visible{outline-color:var(--plaster)}
img{display:block;width:100%;height:auto}
figure,p,h1,h2{margin:0}
p{text-wrap:pretty;max-width:65ch}
h1,h2{font-family:var(--display);font-weight:400;line-height:1.07;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(2.8rem,3.6vw,4.5rem)}
h2{font-size:clamp(2.5rem,4.5vw,5rem)}
.skip-link{position:absolute;z-index:5;left:var(--gutter);top:-6rem;background:var(--ink);color:var(--plaster);padding:1rem}
.skip-link:focus{top:1rem}
.masthead{display:flex;align-items:center;justify-content:space-between;padding:1.7rem var(--gutter) 1.4rem;gap:2rem}
.brand{width:clamp(12rem,17vw,17rem);flex-shrink:0;mix-blend-mode:multiply}
.masthead nav{display:flex;gap:clamp(1rem,3.5vw,3.5rem)}
.masthead nav a{display:flex;align-items:center;min-height:44px;font-size:.9375rem;text-decoration:none;border-bottom:1px solid transparent}
.masthead nav a:hover{border-bottom-color:var(--bronze)}
.arrival{display:grid;grid-template-columns:minmax(0,2.8fr) minmax(15rem,1fr);align-items:center;padding:0 var(--gutter) 0 0;gap:clamp(2rem,4.5vw,5rem)}
.arrival-image img{aspect-ratio:1.45;object-fit:cover;object-position:50% 50%}
.arrival-copy{padding-block:2rem}
.arrival-copy p{margin-block:2rem 2.5rem;font-size:1rem;max-width:25ch;color:var(--bronze)}
.text-link{display:inline-flex;align-items:center;gap:1rem;min-height:44px;font-size:.9375rem;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.3rem}
.text-link svg{width:2rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .2s ease-out}
.text-link:hover svg{transform:translateX(.3rem)}
.opening-note{display:flex;justify-content:space-between;gap:2rem;padding:1.25rem var(--gutter) 4rem;font-size:.875rem;color:var(--bronze)}
.opening-note p:last-child{text-align:right}
.pantry{display:grid;grid-template-columns:1fr 1.65fr;align-items:center;background:var(--ink);color:var(--plaster);padding:4rem 0 4rem var(--gutter);gap:clamp(2rem,5vw,6rem)}
.pantry-copy{max-width:29rem}
.pantry-copy h2{font-size:clamp(2.6rem,4.1vw,4.5rem)}
.pantry-copy p{margin-top:2.2rem;font-weight:450;line-height:1.85;letter-spacing:.005em;max-width:35ch}
.pantry-copy .material-caption{font-size:.875rem;margin-top:3rem;color:var(--limestone)}
.pantry-copy .text-link{margin-top:2rem}
.pantry figure img{aspect-ratio:1.18;object-fit:cover;object-position:50% 55%}
.section-space{padding:var(--space-room) var(--gutter)}
.section-intro{display:grid;grid-template-columns:1.2fr 1fr;align-items:end;gap:5rem;margin-bottom:3.5rem}
.section-intro p{max-width:40ch;color:var(--bronze)}
.material-pair{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.powder-detail{padding-top:8rem}
.powder-detail img{aspect-ratio:.88;object-fit:cover;object-position:38% 50%}
figcaption{font-size:.875rem;line-height:1.6;color:var(--bronze);margin-top:1rem}
.bath{display:grid;grid-template-columns:1.7fr 1fr;align-items:center;gap:clamp(2rem,7vw,7rem);background:var(--paper);padding-left:0}
.bath figure img{aspect-ratio:1.2;object-fit:cover;object-position:43% 50%}
.bath-copy p{margin-top:2.3rem;max-width:29ch;color:var(--bronze)}
.spaces-header{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3rem}
[role=tablist]{display:flex;gap:clamp(1rem,2.5vw,2.5rem)}
[role=tab]{border:0;border-bottom:1px solid transparent;padding:.6rem .15rem;background:none;min-height:44px;min-width:44px;font-size:1rem}
[role=tab][aria-selected=true]{border-bottom-color:var(--ink)}
[role=tab]:hover{color:var(--bronze)}
#room-image{aspect-ratio:1.8;object-fit:cover;object-position:center}
#room-panel figcaption{max-width:65ch;min-height:2.8rem}
.closing{display:grid;grid-template-columns:1fr 1.8fr;align-items:center;background:var(--limestone);gap:var(--gutter);padding-left:var(--gutter)}
.closing-copy{padding-block:3rem}
.closing-copy .text-link{margin-top:3rem}
.closing-copy>p{margin-top:1.75rem;max-width:31ch;color:var(--bronze)}
.gallery-link{margin-top:1.5rem}
.about{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(2rem,7vw,7rem);background:var(--paper)}
.about>div{max-width:52ch}.about p+p{margin-top:1.5rem}.about .text-link{margin-top:2rem}
.project-intro{padding:clamp(2rem,5vw,5rem) var(--gutter) var(--space-room);display:grid;grid-template-columns:1.2fr 1fr;align-items:end;gap:clamp(2rem,7vw,7rem)}
.project-intro h1{font-size:clamp(2.75rem,5vw,5.5rem);max-width:13ch}
.project-intro p{color:var(--bronze);max-width:43ch}
.project-intro p+p{margin-top:1.25rem}
.gallery-intro{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}
.gallery-intro p{max-width:30ch;font-size:.9375rem;color:var(--bronze)}
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem clamp(.7rem,2vw,2rem);align-items:center;margin-bottom:2rem}
.gallery-filters button{border:0;border-bottom:1px solid transparent;background:none;padding:.65rem .15rem;min-height:44px;min-width:44px;font-size:1rem}
.gallery-filters button[aria-pressed=true]{border-bottom-color:var(--ink)}
.gallery-filters p{margin-left:auto;font-size:.875rem;color:var(--bronze)}
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 2rem}
.photo-grid a{display:block;cursor:zoom-in}
.photo-grid img{aspect-ratio:1.5;object-fit:cover;transition:filter .2s ease-out}
.photo-grid a:hover img{filter:brightness(.94)}
.project-contact{padding:var(--space-room) var(--gutter);background:var(--limestone);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.project-contact h2{font-size:clamp(2.5rem,4.5vw,4.5rem)}
.lightbox-open{overflow:hidden}
.photo-viewer{width:min(1280px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:1.25rem;border:0;background:var(--paper);color:var(--ink);overflow:auto}
.photo-viewer::backdrop{background:rgba(12,17,20,.92)}
.viewer-header{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1rem}
.viewer-header h2{font-family:var(--body);font-size:1rem;line-height:1.5;letter-spacing:0;font-weight:500;max-width:60ch}
.photo-viewer button{min-height:44px;min-width:44px;border:1px solid var(--bronze);background:transparent;padding:.5rem .9rem;font-size:.9375rem}
#viewer-image{width:100%;height:auto;max-height:calc(100dvh - 13rem);object-fit:contain}
.viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}
.viewer-controls p{font-size:.875rem;font-variant-numeric:tabular-nums}
#viewer-status{font-size:.875rem;color:var(--bronze)}
.closing>img{aspect-ratio:1.25;object-fit:cover}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;padding:2rem var(--gutter);font-size:.8125rem;color:var(--bronze)}
footer a{display:inline-flex;align-items:center;min-height:44px}
@media(min-width:1700px){body{max-width:1900px;margin-inline:auto}}
@media(max-width:1000px){.arrival{grid-template-columns:minmax(0,2fr) minmax(14rem,1fr);gap:2rem}.arrival-copy p{margin-block:1.5rem}.pantry{gap:2.2rem}.section-intro{gap:3rem}.closing{grid-template-columns:1fr 1.35fr}}
@media(max-width:760px){
  .masthead{padding:1rem var(--gutter) 1.25rem;flex-direction:column;gap:.6rem}
  .brand{width:12.5rem}.masthead nav{width:100%;justify-content:space-between;gap:1rem}
  .masthead nav a{font-size:.875rem}
  .arrival{display:flex;flex-direction:column;padding:0;gap:0;align-items:stretch}
  .arrival-image img{aspect-ratio:1.08;object-position:50% 50%}
  .arrival-copy{padding:2rem var(--gutter) 1rem;display:grid;grid-template-columns:1fr;gap:1.25rem}
  h1{font-size:clamp(2.8rem,11vw,4.25rem)}h2{font-size:clamp(2.5rem,10.5vw,3.75rem)}
  .arrival-copy p{margin:0;max-width:30ch;font-size:1rem}.arrival-copy .text-link{justify-self:start}
  .opening-note{padding:1rem var(--gutter) 2.5rem;flex-direction:column;gap:.4rem}.opening-note p:last-child{text-align:left;max-width:32ch}
  .pantry{display:flex;flex-direction:column;padding:3rem 0;gap:2rem;align-items:stretch}
  .pantry-copy{padding-inline:var(--gutter);max-width:none}.pantry-copy h2{font-size:clamp(2.5rem,10.5vw,3.75rem)}
  .pantry-copy p{margin-top:1.5rem;max-width:40ch}.pantry-copy .material-caption{margin-top:1.5rem}
  .pantry figure img{aspect-ratio:1.1;object-position:45% 50%}
  .section-intro{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem}
  .material-pair{grid-template-columns:1fr;gap:2.5rem}.powder-detail{padding:0;margin-left:17%}.powder-detail img{aspect-ratio:.96}
  .bath{grid-template-columns:1fr;padding-inline:0;gap:2.5rem}.bath figure img{aspect-ratio:1.1}.bath-copy{padding-inline:var(--gutter)}.bath-copy p{max-width:40ch;margin-top:1.5rem}
  .spaces-header{align-items:start;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}[role=tablist]{width:100%;justify-content:space-between;gap:1rem}
  #room-image{aspect-ratio:1.15}.closing{grid-template-columns:1fr;padding:0;gap:0}.closing-copy{padding:3rem var(--gutter)}.closing-copy .text-link{margin-top:2rem}.closing>img{aspect-ratio:1.2}
  footer{align-items:start;flex-direction:column;gap:.65rem}
  .about{grid-template-columns:1fr;gap:1.75rem}
  .project-intro{grid-template-columns:1fr;gap:1.5rem;padding-top:2rem}.project-intro h1{max-width:15ch}
  .gallery-intro{flex-direction:column;align-items:start;gap:1rem}.gallery-intro p{max-width:35ch}
  .gallery-filters{gap:.25rem 1rem}.gallery-filters p{width:100%;margin:0;padding-top:.5rem}
  .gallery-filters button{font-size:.9375rem}
  .photo-grid{grid-template-columns:1fr;gap:2rem}.project-contact{align-items:start;flex-direction:column;gap:1.75rem}
  .photo-viewer{width:calc(100% - 1rem);padding:.75rem;max-height:calc(100dvh - 1rem)}
  .viewer-header{align-items:start;gap:.75rem}.viewer-header h2{font-size:.9375rem}
  .photo-viewer button{padding:.5rem .65rem}.viewer-controls{gap:.5rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.brand{mix-blend-mode:normal}[role=tab][aria-selected=true]{border-bottom:2px solid ButtonText}}
