@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&display=swap");

:root { --ink:#182117; --forest:#263426; --moss:#385039; --cream:#f8f1df; --paper:#eee5d0; --clay:#79591d; --brand-gold:#e2b542; --line:rgba(24,33,23,.2); --serif:"Playfair Display",Georgia,serif; --sans:"DM Sans",Arial,sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.55; } a { color:inherit; text-decoration:none; } a:focus-visible { outline:3px solid var(--clay); outline-offset:4px; }
.skip { position:fixed; z-index:10; top:-4rem; left:1rem; padding:.65rem .9rem; background:var(--cream); color:var(--ink); }.skip:focus { top:1rem; }
.site-header { position:absolute; z-index:3; top:0; left:0; display:flex; width:100%; min-height:5.7rem; align-items:center; justify-content:space-between; padding:1.15rem clamp(1.25rem,4vw,4.75rem); color:var(--cream); border-bottom:1px solid rgba(248,241,223,.26); }
.wordmark,.footer-brand { display:inline-flex; align-items:center; gap:.45rem; font-family:var(--serif); line-height:1; }.wordmark-symbol { color:var(--clay); font-size:1.5rem; }.wordmark strong { display:block; font-size:1.38rem; font-weight:500; }.wordmark i,.footer-brand i { color:var(--clay); }.wordmark small { display:block; margin-top:.35rem; font-family:var(--sans); font-size:.57rem; font-weight:700; letter-spacing:.15em; }
.site-nav { display:flex; gap:clamp(1rem,2.4vw,2.7rem); font-size:.76rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }.site-nav a,.header-cta { transition:opacity .2s ease; }.site-nav a:hover,.header-cta:hover { opacity:.65; }.header-cta { padding:.68rem .9rem; border:1px solid rgba(248,241,223,.55); font-size:.73rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.hero { position:relative; display:grid; min-height:max(44rem,100svh); overflow:hidden; align-items:end; color:var(--cream); background:var(--forest); isolation:isolate; }.hero-photo { position:absolute; z-index:-3; inset:0; background:url("assets/cafe-original.webp") center / cover no-repeat; filter:saturate(.78) contrast(1.05) brightness(.65); transform:scale(1.015); }.hero-shade { position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(14,22,14,.7),rgba(14,22,14,.2) 58%,rgba(14,22,14,.48)),linear-gradient(0deg,rgba(14,22,14,.75),transparent 44%); }.hero-grain { position:absolute; z-index:-1; inset:0; opacity:.22; background-image:radial-gradient(rgba(255,255,255,.42) .55px,transparent .7px); background-size:4px 4px; mix-blend-mode:soft-light; }
.hero-content { width:100%; padding:12rem clamp(1.25rem,11vw,11rem) 9rem; }.hero-eyebrow,.kicker { margin:0 0 1.25rem; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }.hero-eyebrow { display:flex; align-items:center; gap:.65rem; }.hero-eyebrow .line { width:2.4rem; height:1px; background:currentColor; } h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:.98; } h1 { max-width:56rem; margin-bottom:1.55rem; font-size:clamp(3.8rem,7vw,6.8rem); letter-spacing:-.06em; } h1 em,h2 em { font-weight:400; }.hero-lead { max-width:30rem; margin-bottom:2rem; font-size:clamp(1rem,1.7vw,1.22rem); }.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.7rem; min-height:2.85rem; padding:.72rem 1rem; border:1px solid transparent; font-size:.73rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }.button:hover { transform:translateY(-2px); }.button-light { background:var(--cream); color:var(--ink); }.button-ghost { border-color:rgba(248,241,223,.65); }.button-dark { background:var(--ink); color:var(--cream); }.hero-footer { position:absolute; right:0; bottom:0; left:0; display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:1rem; padding:1.15rem clamp(1.25rem,4vw,4.75rem); border-top:1px solid rgba(248,241,223,.3); font-size:.61rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }.hero-index span { color:var(--clay); }.scroll-link { white-space:nowrap; }
.section-pad { padding:clamp(5rem,11vw,10rem) clamp(1.25rem,10vw,10rem); }.intro { display:grid; grid-template-columns:1.35fr .75fr; gap:clamp(2rem,9vw,10rem); background:var(--paper); } h2 { margin-bottom:0; font-size:clamp(2.8rem,5.6vw,5.2rem); letter-spacing:-.055em; }.asterisk { color:var(--clay); font-size:1rem; }.intro-copy { max-width:30rem; align-self:end; font-size:1.05rem; }.intro-copy p + p { margin-top:1.35rem; }.handwritten { display:block; margin-top:2rem; color:var(--clay); font-family:"Caveat",cursive; font-size:1.8rem; transform:rotate(-3deg); }
.photo-story { position:relative; min-height:clamp(31rem,52vw,47rem); overflow:hidden; color:var(--cream); background:var(--forest); }.photo-story-image { position:absolute; inset:0; left:46%; background-image:url("assets/cafe-exterior.webp"); background-position:center 65%; background-size:cover; filter:saturate(.88) brightness(.87); }.photo-story::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,var(--forest) 0%,var(--forest) 43%,rgba(38,52,38,.15) 62%,transparent 100%); }.photo-story-overlay { position:absolute; z-index:1; bottom:50%; left:clamp(1.25rem,10vw,10rem); transform:translateY(50%); }.photo-story-overlay span,.menu-number,.visit-aside-top,.pause-location { display:block; margin-bottom:.9rem; font-size:.67rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.photo-story-overlay strong { font-family:var(--serif); font-size:clamp(3rem,5.5vw,5.6rem); font-weight:400; line-height:.9; letter-spacing:-.055em; }.photo-story-stamp { position:absolute; z-index:1; right:clamp(1rem,4vw,4rem); bottom:2rem; display:grid; width:7rem; height:7rem; place-items:center; border:1px solid rgba(248,241,223,.7); border-radius:50%; font-size:.68rem; font-weight:700; line-height:1.05; letter-spacing:.11em; text-align:center; }
.table-section { background:var(--cream); }.table-top { display:grid; grid-template-columns:1.2fr .7fr; gap:4rem; align-items:end; margin-bottom:3.3rem; }.table-top > p { max-width:28rem; margin:0; font-size:1rem; }.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }.menu-card { display:flex; min-height:21rem; flex-direction:column; padding:clamp(1.5rem,3vw,3rem); border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.menu-card:nth-child(2) { background:#e5dac1; }.menu-icon { margin:auto 0 1.8rem; color:var(--clay); font-size:2rem; }.menu-card h3 { margin-bottom:.8rem; font-size:clamp(2rem,3.1vw,3.1rem); letter-spacing:-.05em; }.menu-card p { margin-bottom:0; font-size:.92rem; }.menu-card-note { background:linear-gradient(180deg,rgba(21,30,21,.5),rgba(21,30,21,.87)),url("assets/cafe-food.webp") center / cover; color:var(--cream); }.menu-card-note .menu-icon { color:var(--cream); }.menu-card-note a { margin-top:1.5rem; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.pause { padding:clamp(5rem,11vw,9rem) 1.25rem; background:var(--moss); color:var(--cream); text-align:center; }.pause-inner { display:flex; flex-direction:column; align-items:center; }.pause-spark { color:#d8a871; font-size:1.5rem; }.pause p { margin:1.25rem 0 0; font-family:var(--serif); font-size:clamp(2rem,4vw,4rem); line-height:1; }.pause strong { font-family:var(--serif); font-size:clamp(2rem,4vw,4rem); font-style:italic; font-weight:400; line-height:1; }.pause-location { margin:2.2rem 0 0; }
.visit { display:grid; grid-template-columns:1.2fr .8fr; gap:4rem; background:var(--paper); }.visit-main > p:not(.kicker) { margin:2rem 0; font-size:1.05rem; }.visit-aside { display:flex; min-height:24rem; flex-direction:column; padding:clamp(1.5rem,4vw,3.5rem); color:var(--cream); background:var(--ink); }.visit-aside p { margin:auto 0; font-family:var(--serif); font-size:clamp(1.8rem,3vw,3rem); line-height:1.05; }.visit-aside-bottom { align-self:flex-end; color:var(--clay); font-size:2rem; }.footer { padding:2.4rem clamp(1.25rem,4vw,4.75rem) 1.3rem; color:var(--cream); background:#10170f; }.footer-top,.footer-bottom { display:flex; justify-content:space-between; gap:1.5rem; }.footer-top { align-items:flex-start; padding-bottom:3rem; }.footer-brand { font-size:clamp(2.2rem,4vw,3.8rem); letter-spacing:-.06em; }.footer-brand span { align-self:flex-start; margin-top:.25rem; font-family:var(--sans); font-size:.7rem; letter-spacing:0; }.footer-top p { margin:.4rem 0 0; font-size:.8rem; line-height:1.6; text-align:right; }.footer-bottom { padding-top:1rem; border-top:1px solid rgba(248,241,223,.25); font-size:.66rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:760px) { .site-header { min-height:4.8rem; }.site-nav { display:none; }.header-cta { font-size:.62rem; }.wordmark strong { font-size:1.15rem; }.hero { min-height:43rem; }.hero-content { padding-top:9.5rem; padding-bottom:8.5rem; }.hero-footer { grid-template-columns:1fr auto; }.hero-note { display:none; }.intro,.table-top,.visit { grid-template-columns:1fr; gap:2.4rem; }.section-pad { padding-right:1.25rem; padding-left:1.25rem; }.intro-copy { font-size:1rem; }.photo-story-image { left:0; background-position:center 65%; }.photo-story::after { background:linear-gradient(180deg,rgba(23,32,22,.06) 0%,rgba(23,32,22,.18) 35%,rgba(23,32,22,.88) 100%); }.photo-story-overlay { right:1.25rem; bottom:2.2rem; left:1.25rem; transform:none; }.photo-story-stamp { display:none; }.menu-grid { grid-template-columns:1fr; }.menu-card { min-height:17rem; }.visit-aside { min-height:18rem; }.footer-top,.footer-bottom { flex-wrap:wrap; }.footer-top p { text-align:left; }.footer-bottom { gap:1rem; } }

/* The four headline colors stay luminous over the dark photograph. */
.hero-tint { position:absolute; z-index:-1; inset:0; background:#f8f1df; opacity:.085; pointer-events:none; }
.hero-title { position:relative; min-height:1.96em; color:#f8f1df; }
.hero-title-panel { position:absolute; top:0; left:0; display:block; width:100%; will-change:transform,opacity; }
.hero-title-panel { will-change:auto; }
.hero-title-line { display:block; }
.hero-title-line em { display:block; }
@media (max-width:760px) {
  .hero-title { min-height:2em; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-title-panel { will-change:auto; }
}

.site-nav { gap:clamp(.85rem,1.65vw,1.7rem); font-size:.81rem; }
.header-cta { white-space:nowrap; font-size:.81rem; }
.hero-title { min-height:2.08em; }
.eyebrow { display:block; margin-bottom:.4rem; color:var(--clay); font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.text-link { display:inline-flex; align-items:center; gap:.55rem; padding:.35rem 0; border-bottom:1px solid currentColor; font-size:.88rem; font-weight:700; line-height:1.4; }
.text-link:hover { color:var(--clay); }
.menu-source { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding:2rem 0 0; }
.menu-source p { max-width:35rem; margin:0; }
.menu-source .text-link { flex-shrink:0; }
.gallery { background:#e7dfca; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.5rem; }
.gallery-grid { display:grid; grid-template-columns:.9fr 1.2fr .9fr; gap:1rem; }
.gallery figure { min-width:0; margin:0; }
.gallery img { display:block; width:100%; height:clamp(18rem,32vw,28rem); object-fit:cover; }
.gallery figure:nth-child(2) img { object-position:60% center; }
.gallery figcaption { margin-top:.65rem; font-size:.76rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.reviews { display:grid; grid-template-columns:1.15fr .85fr; gap:4rem; align-items:center; color:var(--cream); background:var(--forest); }
.reviews .kicker { color:#d6bd91; }
.reviews-card { padding:clamp(1.5rem,3vw,3rem); border:1px solid rgba(248,241,223,.4); }
.reviews-card p { margin:1.25rem 0 1.7rem; font-family:var(--serif); font-size:clamp(1.55rem,2.5vw,2.25rem); line-height:1.2; }
.review-stars { color:#f2c073; font-size:1.25rem; letter-spacing:.16em; }
.visit-contact { margin-top:-.6rem!important; font-size:.89rem!important; }
.visit-contact a { border-bottom:1px solid currentColor; }
.visit-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.25rem; }
@media (max-width:1050px) {
  .site-nav { gap:.7rem; }
  .site-nav a { font-size:.72rem; }
}
@media (max-width:760px) {
  .site-header { flex-wrap:wrap; gap:.65rem; align-content:center; min-height:7.8rem; padding-block:.7rem; }
  .site-nav { display:flex; order:3; width:100%; gap:1.2rem; overflow-x:auto; scrollbar-width:none; white-space:nowrap; }
  .site-nav::-webkit-scrollbar { display:none; }
  .site-nav a { padding:.15rem 0; font-size:.75rem; }
  .header-cta { margin-left:auto; font-size:.69rem; }
  .hero-content { padding-top:12rem; }
  .hero-title { min-height:3.92em; }
  .menu-source,.section-heading { display:block; }
  .menu-source .text-link,.section-heading .text-link { margin-top:1.1rem; }
  .gallery-grid { grid-template-columns:1fr 1fr; gap:.7rem; }
  .gallery figure:first-child { grid-column:1 / -1; }
  .gallery figure:first-child img { height:22rem; }
  .gallery figure:not(:first-child) img { height:12rem; }
  .reviews { grid-template-columns:1fr; gap:2.5rem; }
}
@media (max-width:420px) {
  .wordmark small { font-size:.5rem; }
  .header-cta { padding:.55rem .6rem; }
  .hero-title { font-size:clamp(3.05rem,12vw,3.8rem); min-height:3em; }
  .hero-footer { font-size:.54rem; }
}
@media (min-width:421px) and (max-width:520px) { .hero-title { min-height:3em; } }
@media (max-width:340px) { .hero-title { min-height:4em; } }

/* An editorial photo wall, with a full-screen viewer for the original images. */
.gallery-grid { grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-rows:clamp(8rem,12vw,12rem); gap:.75rem; }
.gallery-item { position:relative; grid-column:span 3; grid-row:span 2; overflow:hidden; min-width:0; padding:0; border:0; background:var(--forest); color:#fff; text-align:left; cursor:zoom-in; }
.gallery-item:first-child { grid-column:span 6; grid-row:span 3; }
.gallery-item:nth-child(5) { grid-column:span 6; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.gallery-item:hover img { transform:scale(1.045); }
.gallery-item::after { position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.62)); content:""; pointer-events:none; }
.gallery-item > span { position:absolute; z-index:1; right:1rem; bottom:1rem; left:1rem; display:flex; justify-content:space-between; gap:1rem; font-family:var(--serif); font-size:clamp(1.05rem,1.8vw,1.7rem); }
.gallery-item:focus-visible,.gallery-lightbox button:focus-visible,.reviews-list a:focus-visible { outline:3px solid #d7a967; outline-offset:3px; }
.gallery-credit { margin:1.2rem 0 0; font-size:.78rem; }
.gallery-credit a { text-decoration:underline; text-underline-offset:.2em; }
.gallery-lightbox { position:fixed; inset:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:clamp(1rem,3vw,2rem); border:0; background:#10170f; color:var(--cream); }
.gallery-lightbox::backdrop { background:#10170f; }
.gallery-lightbox[open] { display:grid; grid-template-columns:3rem minmax(0,1fr) 3rem; align-items:center; gap:clamp(.4rem,2vw,2rem); }
.gallery-lightbox figure { grid-column:2; grid-row:1; display:flex; align-items:center; justify-content:center; flex-direction:column; min-width:0; height:100%; margin:0; }
.gallery-lightbox figure img { display:block; max-width:100%; max-height:calc(100dvh - 7rem); object-fit:contain; }
.gallery-lightbox figcaption { align-self:flex-start; margin-top:.7rem; font-family:var(--serif); font-size:1.15rem; }
.gallery-lightbox button { z-index:1; display:grid; place-items:center; width:3rem; height:3rem; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:rgba(16,23,15,.7); color:#fff; font-size:1.55rem; cursor:pointer; }
.gallery-lightbox button:hover { background:#435540; }
.gallery-close { position:absolute; top:1rem; right:1rem; }
.gallery-previous { grid-column:1; grid-row:1; }
.gallery-next { grid-column:3; grid-row:1; }
.gallery-count { position:absolute; bottom:1rem; right:1.5rem; font-size:.75rem; letter-spacing:.12em; }
.reviews { grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,5vw,6rem); }
.reviews-heading > p:last-child { max-width:26rem; margin-top:1.5rem; opacity:.8; }
.reviews-panel { overflow:hidden; border-radius:1.2rem; background:#faf9f6; color:#202124; box-shadow:0 1.4rem 3.5rem rgba(0,0,0,.18); }
.reviews-summary { padding:1.5rem 1.7rem; border-bottom:1px solid #e8e8e8; }
.reviews-source { font-size:.82rem; font-weight:700; letter-spacing:.015em; }
.reviews-rating { display:flex; align-items:center; gap:1rem; margin:.7rem 0 .15rem; }
.reviews-rating strong { font-family:var(--sans); font-size:3rem; line-height:1; }
.reviews-rating .review-stars { color:#fbbc04; font-size:1.1rem; letter-spacing:.05em; }
.reviews-meta { color:#5f6368; font-size:.78rem; }
.reviews-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.reviews-list a { display:flex; justify-content:space-between; flex-direction:column; min-height:9.5rem; padding:1.2rem; border-right:1px solid #e8e8e8; color:inherit; transition:background .2s; }
.reviews-list a:last-child { border-right:0; }
.reviews-list a:hover { background:#f1f3f4; }
.reviews-list a > span { display:block; }
.reviews-list strong { display:block; font-size:.9rem; }
.reviews-list small { display:block; margin-top:.55rem; color:#fbbc04; font-size:1rem; letter-spacing:.02em; }
.reviews-list a > span:last-child { color:#1a73e8; font-size:.72rem; font-weight:700; }
.reviews-all { display:block; padding:1rem 1.7rem; border-top:1px solid #e8e8e8; color:#1a73e8; font-size:.8rem; font-weight:700; }
@media (max-width:760px) {
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:11rem; }
  .gallery-item,.gallery-item:nth-child(5) { grid-column:span 1; grid-row:span 1; }
  .gallery-item:first-child { grid-column:span 2; grid-row:span 2; }
  .gallery-item > span { right:.7rem; bottom:.7rem; left:.7rem; font-size:1.05rem; }
  .gallery-lightbox[open] { grid-template-columns:2.7rem minmax(0,1fr) 2.7rem; gap:.2rem; padding:.5rem; }
  .gallery-lightbox button { width:2.7rem; height:2.7rem; }
  .gallery-lightbox figure img { max-height:calc(100dvh - 8rem); }
  .reviews { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .reviews-list { grid-template-columns:1fr; }
  .reviews-list a { min-height:5.5rem; border-right:0; border-bottom:1px solid #e8e8e8; }
  .reviews-list a > span:last-child { margin-top:.7rem; }
}
@media (prefers-reduced-motion:reduce) { .gallery-item img,.reviews-list a { transition:none; } }

/* Carry the supplied seal through the site identity and its browser metadata. */
.wordmark { gap:.7rem; }
.wordmark-symbol { display:block; width:3.1rem; height:3.1rem; flex:0 0 auto; padding:.08rem; border:1px solid var(--brand-gold); border-radius:50%; background:#28190e; box-shadow:0 2px 12px rgba(0,0,0,.25); object-fit:cover; }
.wordmark i,.hero-index span,.visit-aside-bottom,.pause-spark { color:var(--brand-gold); }
.reviews .asterisk { color:var(--brand-gold); }
.footer-top { align-items:center; }
.footer-brand { display:block; flex:0 0 auto; line-height:0; }
.footer-brand img { display:block; width:clamp(6.5rem,10vw,8rem); height:auto; }
.footer-top p { max-width:15rem; }
@media (max-width:760px) {
  .wordmark-symbol { width:2.8rem; height:2.8rem; }
  .footer-brand img { width:6.5rem; }
}
