@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/cormorant-garamond.ttf') format('truetype'); }
:root { --milk:#f3efe6; --ink:#2c3330; --petrol:#1b3839; --gold:#c8a77b; --line:rgba(44,51,48,.25); --gutter:clamp(24px,5vw,88px); --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif; --sans:Arial,Helvetica,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--milk); color:var(--ink); font:400 16px/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
img { display:block; width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
::selection { background:var(--petrol); color:var(--milk); }
:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
.container { width:min(100%,1600px); margin-inline:auto; padding-inline:var(--gutter); }
.header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px var(--gutter); min-height:100px; border-bottom:1px solid var(--line); }
.wordmark { font-size:28px; line-height:1; letter-spacing:-1px; font-weight:600; }
.wordmark span { display:inline-block; font-size:18px; margin-left:9px; vertical-align:top; color:#956c3d; }
.brand-caption { display:block; margin-top:8px; font:400 10px/1.2 var(--sans); letter-spacing:.16em; color:var(--ink); }
.navigation { display:flex; align-items:center; gap:clamp(24px,3.7vw,58px); font-size:14px; }
.navigation>a { padding-block:8px; }
.navigation>a:hover { text-decoration:underline; text-underline-offset:6px; }
.nav-book { border-bottom:1px solid currentColor; }
.menu-toggle { display:none; }
.time-label { display:flex; gap:18px; align-items:center; font-size:12px; text-transform:uppercase; letter-spacing:.14em; line-height:1.4; }
.time-label time { font-variant-numeric:tabular-nums; }
.time-label span { opacity:.75; }
.hero-top { display:grid; grid-template-columns:1fr 270px; column-gap:5%; padding-block:37px 43px; }
.hero-top>.time-label { grid-column:1/-1; margin-bottom:20px; }
h1 { font-size:clamp(48px,6.6vw,106px); line-height:1.02; letter-spacing:-.055em; }
.hero-brand { font-family:var(--sans); font-size:.79em; font-weight:500; letter-spacing:-.065em; }
.hero-aside { display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:24px; padding-bottom:6px; }
.hero-aside p { max-width:260px; font-size:15px; line-height:1.65; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; border:1px solid currentColor; padding:15px 23px; font-size:13px; line-height:1.4; transition:background .25s,color .25s; }
.button:hover { background:var(--ink); color:var(--milk); }
.hero-photo { padding-inline:var(--gutter); padding-bottom:var(--gutter); }
.hero-photo img { height:auto; max-height:64vh; object-fit:cover; object-position:center 57%; }
.skip-link { position:fixed; z-index:20; top:12px; left:12px; padding:12px 20px; background:var(--milk); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.scene { padding-block:clamp(80px,9.5vw,152px); }
.scene h2,.transition-copy h2 { font-size:clamp(44px,5.8vw,90px); line-height:1.06; letter-spacing:-.035em; }
em { font-weight:400; }
.section-intro .time-label { margin-bottom:35px; }
.section-intro h2 { margin-bottom:65px; }
.dish h3,.autumn h3 { font-size:clamp(27px,2.5vw,38px); line-height:1.13; letter-spacing:-.025em; }
.dish-copy { padding-top:23px; }
.dish-copy p,.seasonal-copy p { margin-top:13px; font-size:15px; max-width:34ch; line-height:1.7; }
.breakfast-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(25px,4vw,70px); align-items:start; }
.breakfast-grid img { aspect-ratio:4/5; height:auto; object-fit:cover; object-position:center; }
.breakfast-grid h3 { min-height:3lh; }
.together { background:#e9e6db; }
.together-layout { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:7%; }
.together-copy .time-label { margin-bottom:45px; }
.together h2 { font-size:clamp(42px,4.9vw,74px); }
.prose { max-width:37ch; line-height:1.8; }
.together .prose { margin-top:33px; }
.together-photo { margin-top:55px; }
.lunch { background:#f0ece2; }
.lunch-heading { margin-block:32px 60px; }
.lunch-heading h2 { max-width:1050px; }
.lunch-layout { display:grid; grid-template-columns:1.8fr .8fr; gap:6%; align-items:end; }
.lunch-copy { padding-bottom:20px; }
.text-link { display:inline-flex; align-items:center; gap:18px; padding:13px 0; border:0; border-bottom:1px solid currentColor; background:none; font:400 14px/1.4 var(--sans); text-align:left; }
.text-link span { font-size:22px; }
.text-link:hover { border-bottom-color:transparent; }
.text-link:disabled { color:inherit; opacity:.65; cursor:not-allowed; }
.lunch-copy .text-link { margin-top:27px; }
.guests { background:#e0d6c5; }
.guests-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; margin-bottom:70px; }
.guests-heading .time-label { padding-top:12px; }
.guests-heading h2 { width:67%; }
.guests-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(25px,4vw,70px); }
.guests-layout img { aspect-ratio:1; height:auto; object-fit:cover; object-position:center; }
figcaption { border-top:1px solid var(--line); margin-top:24px; padding-top:15px; text-transform:uppercase; font-size:12px; letter-spacing:.14em; }
.autumn { background:#ceb391; }
.autumn-layout { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); column-gap:clamp(25px,4vw,70px); row-gap:23px; }
.soup-dish,.autumn-pair { display:contents; }
.autumn-layout img { aspect-ratio:1; height:auto; object-fit:cover; object-position:center; }
.soup-dish>img { grid-column:1/4; grid-row:1; }
.autumn-pair>img { grid-column:4/7; grid-row:1; }
.soup-dish>.dish-copy { grid-column:1/3; grid-row:2; padding-top:0; }
.seasonal-copy { grid-column:3/7; grid-row:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(25px,4vw,70px); }
.seasonal-copy h3 { font-size:clamp(26px,2.4vw,36px); }
.autumn-layout h3 { min-height:calc(clamp(27px,2.5vw,38px) * 2.26); }
.autumn-action { display:flex; justify-content:flex-end; margin-top:42px; }
.evening-transition { background:#344646; color:var(--milk); padding-top:clamp(70px,7.5vw,120px); }
.transition-copy { display:grid; grid-template-columns:1fr 2fr; column-gap:5%; margin-bottom:65px; }
.transition-copy .time-label { align-self:start; margin-top:12px; }
.transition-copy h2 { grid-column:2; }
.transition-copy>p:last-child { grid-column:2; margin-top:26px; max-width:100%; }
.transition-photo img { width:100%; height:auto; object-fit:contain; }
.dinner { background:var(--petrol); color:var(--milk); }
.dinner-intro .time-label { margin-bottom:40px; }
.dinner-intro .prose { margin-top:35px; margin-left:auto; max-width:44ch; }
.dinner-menu { margin-top:90px; }
.dinner-row { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:15%; margin-top:100px; }
.dinner-row:first-child { margin-top:0; }
.dinner-row img { max-width:540px; }
.dinner-row-reverse img { grid-column:2; grid-row:1; justify-self:end; }
.dinner-row-reverse .dinner-copy { grid-column:1; grid-row:1; padding-left:8%; }
.dinner-copy { border-top:1px solid rgba(243,239,230,.3); padding-top:35px; }
.dinner-copy h3 { font-size:clamp(36px,4vw,60px); line-height:1.08; letter-spacing:-.025em; }
.dinner-copy p { margin-top:25px; max-width:34ch; color:#d6d9d0; font-size:16px; line-height:1.8; }
.dinner-menu-button { margin-top:30px; transition:background .3s,color .3s; }
.dinner-menu-button:hover { background:var(--milk); color:var(--petrol); }
.guest-voices { background:var(--petrol); color:var(--milk); border-block:1px solid rgba(243,239,230,.25); }
.voices-label { padding-top:28px; }
.hero-marquee { background:var(--milk); border-block:1px solid var(--line); margin-bottom:32px; }
.marquee-window { width:100%; overflow:auto; scrollbar-width:thin; }
.marquee-track { width:max-content; display:flex; }
.marquee-group { display:flex; flex-shrink:0; }
.marquee-group[hidden] { display:none; }
.marquee-group p { display:flex; align-items:center; white-space:nowrap; padding-block:36px; font:400 clamp(26px,3vw,42px)/1.3 var(--serif); }
.marquee-group span { font:400 12px/1.4 var(--sans); margin-left:22px; }
.marquee-group b { margin-inline:45px; color:var(--gold); font-size:24px; font-weight:400; }
.hero-marquee .marquee-group p { padding:28px 32px; font:400 12px/1.6 var(--sans); letter-spacing:.18em; }
.hero-marquee .marquee-group p::after { content:'·'; margin-left:32px; color:#956c3d; }
.marquee-animated .marquee-window { overflow:hidden; }
.marquee-animated .marquee-track { animation:marquee var(--marquee-duration,220s) linear infinite; }
@keyframes marquee { to { transform:translateX(-50%); } }
.late-evening { background:var(--petrol); color:var(--milk); padding-block:clamp(120px,13vw,208px); }
.late-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:10%; align-items:center; }
.late-copy .time-label { margin-bottom:45px; }
.late-copy .prose { margin-top:33px; color:#d6d9d0; }
.late-copy h2 { font-size:clamp(42px,5vw,76px); }
.late-photo { padding-top:60px; }
.finale { background:#152f30; color:var(--milk); padding-top:clamp(70px,7vw,112px); }
.finale-top { display:flex; justify-content:space-between; align-items:end; gap:30px; padding-bottom:48px; }
.finale-top h2 { font:400 clamp(90px,15.3vw,235px)/.9 var(--sans); letter-spacing:-.065em; }
.finale-top p { max-width:22ch; font:400 clamp(24px,2.8vw,40px)/1.18 var(--serif); padding-bottom:8px; }
.final-photo { padding-inline:var(--gutter); }
.final-photo img { max-height:720px; object-fit:cover; object-position:center; }
.final-action { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-block:48px 70px; }
.final-action p { font-size:14px; }
.final-action p span { margin-left:20px; font-variant-numeric:tabular-nums; }
.final-action .button:hover { color:#152f30; background:var(--milk); }
.footer { background:#152f30; color:var(--milk); border-top:1px solid rgba(243,239,230,.25); padding-block:40px 55px; }
.footer-inner { display:flex; justify-content:space-between; gap:45px; }
.footer dl { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(30px,5vw,80px); margin:0; font-size:13px; }
.footer dt { color:#c5cec6; }
.footer dd { margin:8px 0 0; letter-spacing:.1em; }
.footer .wordmark span { color:var(--gold); }
.photo-frame { overflow:hidden; min-width:0; }
.soup-dish>.photo-frame { grid-column:1/4; grid-row:1; }
.autumn-pair>.photo-frame { grid-column:4/7; grid-row:1; }
.dinner-row>.photo-frame { width:100%; max-width:540px; }
.dinner-row-reverse>.photo-frame { grid-column:2; grid-row:1; justify-self:end; }
[data-reveal] { --reveal-x:0px; --reveal-scale:1; --reveal-duration:.8s; transition:opacity var(--reveal-duration) cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0s),transform var(--reveal-duration) cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0s); }
.reveal-left { --reveal-x:-40px; }
.reveal-right { --reveal-x:40px; }
.reveal-food { --reveal-scale:.98; }
.reveal-calm { --reveal-duration:1.05s; }
.reveal-pending { opacity:0; transform:translateX(var(--reveal-x)) scale(var(--reveal-scale)); }
.reveal-visible { opacity:1; transform:none; }
.photo-hover img { transition:transform .7s cubic-bezier(.22,.61,.36,1); }
.photo-parallax img { transform:translateY(var(--parallax-y,0px)) scale(1.05); }
.text-link { transition:border-color .3s; }
.text-link span { transition:transform .3s; }
@media (hover:hover) and (pointer:fine) and (min-width:761px) {
  .photo-hover:hover img { transform:scale(1.03); }
  .text-link:not(:disabled):hover span { transform:translateX(3px); }
}
@media (max-width:760px) {
  .reveal-left { --reveal-x:-20px; }
  .reveal-right { --reveal-x:20px; }
  .dinner-row>.photo-frame { max-width:none; }
  .dinner-row-reverse>.photo-frame { grid-column:auto; grid-row:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .reveal-pending { opacity:1; transform:none; }
  .photo-frame img { transform:none!important; }
}
@media (min-width:1700px) { .final-photo { max-width:1600px; margin-inline:auto; } }
@media (min-width:761px) and (max-width:1050px) {
  .hero-top { grid-template-columns:1fr 220px; column-gap:3%; }
  .hero-aside p { font-size:14px; }
  h1 { font-size:6.3vw; }
  .button { padding-inline:17px; }
  .breakfast-grid { grid-template-columns:1fr; gap:44px; }
  .breakfast-grid h3 { min-height:0; }
  .lunch-layout { grid-template-columns:1.4fr 1fr; gap:5%; }
  .together-layout,.late-layout { gap:6%; }
  .together h2,.late-copy h2 { font-size:43px; }
  .autumn-layout { grid-template-columns:1fr; row-gap:45px; }
  .soup-dish,.autumn-pair { display:block; }
  .soup-dish>.dish-copy { padding-top:23px; }
  .seasonal-copy { grid-template-columns:1fr; gap:25px; padding-top:23px; }
  .autumn-layout h3 { min-height:0; }
  .dinner-row { gap:9%; }
  .footer-inner { flex-direction:column; }
}
@media (min-width:1700px) { .hero-photo { max-width:1600px; margin-inline:auto; } }
@media (max-width:760px) {
  .header { padding-block:23px; min-height:78px; position:relative; flex-wrap:wrap; }
  .wordmark { font-size:25px; }
  .navigation { width:100%; gap:18px; flex-wrap:wrap; font-size:14px; }
  .js .menu-toggle { display:flex; align-items:center; gap:12px; background:none; border:0; padding:10px 0 10px 10px; font-size:14px; }
  .menu-lines { width:20px; height:10px; border-top:1px solid; border-bottom:1px solid; }
  .js .navigation { display:none; padding-block:12px; }
  .js .navigation.is-open { display:flex; }
  .hero-top { grid-template-columns:1fr; padding-top:28px; padding-bottom:30px; }
  .hero-top>.time-label { margin-bottom:25px; }
  h1 { font-size:clamp(42px,9.2vw,70px); line-height:1.12; letter-spacing:-.05em; }
  .hero-aside { margin-top:26px; gap:20px; }
  .hero-aside p { max-width:300px; }
  .hero-photo { padding-inline:0; padding-bottom:0; }
  .hero-photo img { height:auto; max-height:none; object-fit:contain; }
  .scene { padding-block:76px; }
  .scene h2,.transition-copy h2 { font-size:clamp(39px,7.9vw,60px); line-height:1.12; letter-spacing:-.035em; }
  .time-label { gap:12px; font-size:12px; letter-spacing:.09em; }
  .section-intro .time-label { margin-bottom:27px; }
  .section-intro h2 { margin-bottom:42px; }
  .breakfast-grid { grid-template-columns:1fr; gap:44px; }
  .breakfast-grid h3 { min-height:0; }
  .dish h3,.autumn h3 { font-size:27px; }
  .dish-copy { padding-top:18px; }
  .dish-copy p,.seasonal-copy p { font-size:14px; line-height:1.7; }
  .together-layout,.lunch-layout,.late-layout { grid-template-columns:1fr; gap:35px; }
  .together-copy .time-label,.late-copy .time-label { margin-bottom:28px; }
  .together-photo { margin-top:0; }
  .together .prose { margin-top:24px; }
  .prose { max-width:42ch; font-size:16px; }
  .lunch-heading { margin-block:28px 38px; }
  .lunch-copy { padding-bottom:0; }
  .lunch-copy .text-link { margin-top:20px; }
  .guests-heading { display:block; margin-bottom:40px; }
  .guests-heading .time-label { padding:0; margin-bottom:28px; }
  .guests-heading h2 { width:100%; }
  .guests-layout { grid-template-columns:1fr; gap:45px; }
  figcaption { margin-top:19px; padding-top:12px; }
  .autumn-layout { grid-template-columns:1fr; row-gap:45px; }
  .soup-dish,.autumn-pair { display:block; }
  .soup-dish>.dish-copy { padding-top:18px; }
  .seasonal-copy { grid-template-columns:1fr; gap:24px; padding-top:18px; }
  .autumn-layout h3 { min-height:0; }
  .autumn-action { justify-content:flex-start; margin-top:30px; }
  .evening-transition { padding-top:76px; }
  .transition-copy { display:block; margin-bottom:38px; }
  .transition-copy .time-label { margin:0 0 28px; }
  .transition-copy>p:last-child { margin-top:24px; font-size:16px; }
  .transition-photo img { height:auto; object-fit:contain; }
  .dinner-intro .time-label { margin-bottom:28px; }
  .dinner-intro .prose { margin-top:26px; margin-left:0; }
  .dinner-menu { margin-top:45px; }
  .dinner-row { grid-template-columns:1fr; gap:28px; margin-top:60px; }
  .dinner-row img { max-width:none; }
  .dinner-row-reverse img,.dinner-row-reverse .dinner-copy { grid-column:auto; grid-row:auto; padding-left:0; }
  .dinner-copy { padding-top:24px; }
  .dinner-copy h3 { font-size:clamp(32px,7.5vw,48px); line-height:1.13; }
  .dinner-copy p { margin-top:17px; max-width:40ch; }
  .marquee-group p { font-size:28px; padding-block:27px; }
  .marquee-group b { margin-inline:28px; }
  .late-evening { padding-block:108px 85px; }
  .late-photo { padding-top:5px; width:91%; margin-left:auto; }
  .late-copy .prose { margin-top:24px; }
  .finale { padding-top:70px; }
  .finale-top { display:block; padding-bottom:35px; }
  .finale-top h2 { font-size:19.5vw; line-height:1; }
  .finale-top p { margin-top:26px; font-size:30px; }
  .final-photo { padding-inline:0; }
  .final-photo img { height:auto; max-height:none; object-fit:contain; }
  .final-action { flex-direction:column; align-items:flex-start; padding-block:32px 48px; gap:25px; }
  .footer { padding-block:35px 45px; }
  .footer-inner { flex-direction:column; gap:35px; }
  .footer dl { grid-template-columns:1fr 1fr; gap:28px 20px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .marquee-window { overflow:visible; }
  .marquee-track { width:100%; }
  .marquee-group { display:block; width:100%; }
  .marquee-group p { display:block; white-space:normal; padding-inline:var(--gutter); }
  .marquee-group b { display:inline-block; }
  .hero-marquee .marquee-group p { white-space:normal; padding-inline:var(--gutter); }
}
