:root{--paper:#f9f7ef;--ink:#292e28;--muted:#62665d;--sage:#e8ebdf;--line:#d6d8ca;--display:'Cormorant Garamond',Georgia,serif;--body:'DM Sans',Arial,sans-serif;--gutter:24px;--header-height:72px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default}img{max-width:100%;display:block}figure,p,h1,h2,h3,dl,dd{margin:0}button{border:0}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:2px solid #697754;outline-offset:5px}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.06;letter-spacing:-.035em}h2{font-size:clamp(43px,4.4vw,66px)}h3{font-size:32px}.wrap{width:min(100% - var(--gutter)*2,1248px);margin-inline:auto}.section{padding-block:72px}.section-heading{max-width:770px;margin-bottom:32px}.section-heading p{margin-top:17px;color:var(--muted);font-size:16px}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:52px;padding:12px 23px;border:1px solid transparent;font-size:13px;font-weight:500;white-space:nowrap;border-radius:0;transition:background .2s,color .2s,transform .2s}.button span{font-size:20px;line-height:1}.button:active{transform:scale(.98)}.button-light{background:var(--paper);color:var(--ink)}.button-outline{border-color:#fff;background:#00000026;color:#fff}.button-dark{background:var(--ink);color:var(--paper)}.text-link{display:inline-flex;gap:28px;align-items:center;font-size:13px;font-weight:500;min-height:44px;border-bottom:1px solid var(--ink)}.text-link span{font-size:21px}.icon-button{display:grid;place-items:center;width:44px;height:44px;background:transparent;padding:8px}.skip-link{position:fixed;top:-100px;left:20px;z-index:300;background:var(--paper);padding:12px}.skip-link:focus{top:10px}
.site-header{position:fixed;top:0;left:0;right:0;z-index:30;height:var(--header-height);padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--paper);border-bottom:1px solid #292e2814}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:52px;height:52px;border-radius:50%}.brand span{font-family:var(--display);letter-spacing:.08em;font-size:23px}.header-actions{display:flex;align-items:center;gap:12px}.socials{display:flex;align-items:center;gap:2px}.social-link{width:44px;height:44px;display:grid;place-items:center;transition:opacity .2s}.social-link svg{width:19px;height:19px;fill:currentColor}.desktop-nav{display:none;gap:36px;align-items:center;font-size:13px}.desktop-nav a{padding-block:12px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px}.menu-toggle span{width:22px;height:1px;background:currentColor}
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;isolation:isolate;background:#5d5d56;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;z-index:-2}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.23) 10%,rgba(0,0,0,.26) 35%,rgba(0,0,0,.44) 100%)}.hero-content{color:#fff;padding-block:140px 60px}.hero h1{font-size:clamp(62px,9.3vw,140px);letter-spacing:.01em;line-height:1.03;margin:15px 0 18px;text-shadow:0 1px 5px #0003}.hero-intro{font-size:17px;line-height:1.6;text-shadow:0 1px 4px #0008;max-width:350px}.hero-buttons{display:flex;gap:12px;margin-top:30px}.hero .eyebrow{text-shadow:0 1px 4px #0008}
.portrait{aspect-ratio:3 / 4;overflow:hidden;align-self:start;width:100%;min-width:0}.portrait img{width:100%;height:100%;display:block;object-fit:cover}.about{display:grid;grid-template-columns:1fr;gap:42px;align-items:center}.about-copy{max-width:450px}.about-copy>p:not(.eyebrow){margin-top:22px;color:var(--muted)}.about-copy>.eyebrow{margin-bottom:19px}.about-copy .text-link{margin-top:26px}.about-image{margin:0}.menu-section{background:var(--sage)}.menu-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}.menu-card{min-width:0;scroll-margin-top:24px}.menu-card h3{margin:0}.menu-card>p{color:var(--muted);font-size:14px;margin-top:12px;line-height:1.6}.menu-items{margin-top:19px;font-size:14px}.menu-items>div{display:grid;grid-template-columns:1fr auto;gap:16px;padding-block:9px;border-top:1px solid #929b8540}.menu-items small{font-size:11px;color:var(--muted);white-space:nowrap}.menu-items dd{font-variant-numeric:tabular-nums}.menu-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:38px;padding-top:24px;border-top:1px solid #929b8550}.menu-bottom p{color:var(--muted);font-size:12px}.signature{display:grid;grid-template-columns:1fr;align-items:center;gap:40px}.signature-image{width:100%;aspect-ratio:5 / 4;overflow:hidden}.signature-image img{width:100%;height:100%;object-fit:cover;object-position:50% 66%}.signature-copy .eyebrow{margin-bottom:18px}.signature-copy>p:not(.eyebrow){color:var(--muted);max-width:440px;margin-top:22px}.signature-copy .button{margin-top:30px}.gallery-section{padding-top:0}.gallery-grid{display:grid;grid-template-columns:1fr;gap:26px;align-items:start}.gallery-item{display:block;padding:0;position:relative;background:transparent;text-align:left;width:100%}.gallery-item img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}.gallery-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:11px;font-size:12px;color:var(--muted)}.gallery-caption span:last-child{font-size:23px;line-height:1.5}.reviews-section{border-top:1px solid var(--line)}.rating{display:flex;align-items:center;gap:14px!important;flex-wrap:wrap}.rating strong{font-size:25px;color:var(--ink);font-weight:500}.stars{letter-spacing:3px;color:#6b7859;white-space:nowrap;font-size:16px}.half-star{display:inline-block;position:relative;color:#d6d8ca}.half-star::before{content:"★";position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden;color:#6b7859}.reviews-grid{display:grid;grid-template-columns:1fr;gap:32px}.review{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:25px}.review blockquote{margin:18px 0 27px;font-family:var(--display);font-size:25px;line-height:1.35;letter-spacing:-.015em}.review-person{display:flex;align-items:center;gap:12px;margin-top:auto}.review-person img{border-radius:50%;width:40px;height:40px}.review-person cite{font:500 12px var(--body);font-style:normal;line-height:1.5}.review .text-link{font-size:11px;border-bottom-color:var(--line);margin-top:15px;gap:12px}.visit-section{background:var(--sage)}.visit-top{display:grid;grid-template-columns:1fr;gap:36px;margin-bottom:34px}.visit-top address{font-style:normal;margin-top:27px;color:var(--muted)}.phone{display:block;width:fit-content;margin-top:14px}.visit-top .button{margin-top:27px}.hours{padding-top:4px}.hours h3{font-size:32px}.hours dl{margin-top:24px}.hours dl>div{display:grid;grid-template-columns:1fr auto;gap:18px;font-size:13px;padding-block:6px}.hours dd{font-variant-numeric:tabular-nums;white-space:nowrap}.hours p{margin-top:24px;color:var(--muted);font-size:13px}.map-shell{width:100%;height:430px;overflow:hidden;background:#eceee7}.map{display:block;width:100%;height:100%;border:0;background:#eceee7;transform-origin:top left}.footer{padding-block:50px 24px}.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:32px 20px;font-size:12px}.footer-brand{grid-column:1/-1;display:flex;align-items:center;gap:20px;font-size:28px;font-family:var(--display);letter-spacing:.05em}.footer-brand img{border-radius:50%;width:80px;height:80px}.footer nav{display:flex;flex-direction:column;gap:10px}.footer-top>div>p{margin-bottom:9px}.footer-top>.socials{align-self:start;grid-column:1/-1}.footer-bottom{border-top:1px solid var(--line);margin-top:35px;padding-top:22px;display:flex;flex-direction:column;gap:8px;font-size:10px;color:var(--muted)}
dialog{border:0;padding:0}dialog::backdrop{background:#0009}.navigation-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(100%,480px);height:100dvh;max-height:none;max-width:100%;background:var(--paper);color:var(--ink);padding:24px;overflow:auto}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top img{border-radius:50%}.close-button{font-size:32px;font-weight:400}.navigation-dialog nav{display:flex;flex-direction:column;gap:18px;padding-block:52px;font-family:var(--display);font-size:43px;line-height:1.3}.navigation-dialog nav a{width:fit-content}.navigation-bottom{border-top:1px solid var(--line);padding-top:28px;font-size:13px}.navigation-bottom .socials{margin-top:18px}.lightbox{position:fixed;inset:0;margin:auto;width:100vw;height:100dvh;max-width:none;max-height:none;background:rgba(19,22,18,.97);color:white}.lightbox::backdrop{background:#131612}.lightbox-close{position:absolute;right:18px;top:16px;font-size:35px;z-index:2}.lightbox-stage{width:100%;height:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px;padding:72px 8px 24px}.lightbox figure{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:18px;pointer-events:none}.lightbox figure img{object-fit:contain;width:100%;min-height:0;max-height:calc(100dvh - 165px);pointer-events:auto}.lightbox figcaption{font-size:12px;text-align:center;line-height:1.5;min-height:36px}.lightbox-prev,.lightbox-next{font-size:24px}.lightbox .icon-button:focus-visible{outline-color:#fff}

.section-heading>.eyebrow{color:var(--muted);font-size:11px;margin:0 0 18px}
.cafe-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:10px;border-bottom:1px solid var(--line)}
.cafe-highlights>a{padding:18px 14px 18px 0;min-width:0;transition:color .2s}
.cafe-highlights>a:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}
.cafe-highlights>a:nth-child(-n+2){border-bottom:1px solid var(--line)}
.highlight-label{display:block;font-size:14px;font-weight:500;line-height:1.4}
.highlight-detail{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-top:5px}
.highlight-detail>span{font-size:16px;line-height:1.4;transition:transform .2s}
.about-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:17px;margin-top:26px;display:grid;gap:7px}
.about-note>span:last-child{font-size:12px;color:var(--muted)}
.menu-shortcuts{display:flex;border-top:1px solid #929b8570;border-bottom:1px solid #929b8570;margin-bottom:28px}
.menu-shortcuts a{display:flex;justify-content:space-between;align-items:center;flex:1;gap:12px;min-height:50px;font-size:13px;font-weight:500;padding-right:14px;transition:background .2s}
.menu-shortcuts a+a{border-left:1px solid #929b8570;padding-left:14px}
.menu-card-heading{display:flex;align-items:center;gap:14px;margin-top:22px}.menu-number{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.coffee-detail{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:20px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
.coffee-detail>img{width:112px;height:auto;aspect-ratio:1;object-fit:cover}.coffee-detail .eyebrow{font-size:9px;letter-spacing:.14em;margin:0}
.coffee-detail p{font-family:var(--display);font-size:24px;line-height:1.12;margin-top:7px}.coffee-detail .text-link{font-size:11px;gap:12px;margin-top:8px}
.visit-guide{border-top:1px solid #929b8570;padding-top:26px;margin-bottom:32px;scroll-margin-top:22px}
.visit-guide h3{font-size:29px;margin-bottom:22px}.visit-guide dl{display:grid;gap:18px}.visit-guide dl>div{border-left:1px solid #929b8580;padding-left:16px}
.lucide-icon{flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.visit-contact address{display:grid;grid-template-columns:20px minmax(0,1fr);gap:11px;align-items:start}.visit-contact address>.lucide-icon{margin-top:4px}.visit-contact .phone{display:flex;align-items:center;gap:11px}.visit-contact .phone .lucide-icon{width:18px;height:18px;stroke-width:1.8}.visit-contact .button{gap:12px}.visit-contact .button .lucide-icon{width:17px;height:17px;stroke-width:1.8}.hours h3{display:flex;align-items:center;gap:10px}.hours h3 .lucide-icon{width:24px;height:24px;stroke-width:1.55}.visit-guide dt{display:flex;align-items:center;gap:9px}.visit-guide dt .lucide-icon{width:17px;height:17px;stroke-width:1.8;color:#56634d}
.visit-guide dt{font-size:13px;font-weight:500}.visit-guide dd{font-size:12px;color:var(--muted);line-height:1.6;margin-top:5px;max-width:250px}
.menu-board-dialog{position:fixed;inset:0;margin:auto;width:min(1100px,100vw);height:100dvh;max-width:100%;max-height:100dvh;background:var(--paper);color:var(--ink);overflow:hidden}
.menu-board-dialog[open]{display:flex;flex-direction:column}.menu-board-toolbar{flex-shrink:0;padding:16px 20px;border-bottom:1px solid var(--line)}
.menu-board-toolbar h2{font-size:30px;letter-spacing:-.02em}.menu-board-toolbar p{font-size:11px;color:var(--muted);margin-top:5px}
.menu-board-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.board-zoom{min-height:44px;display:flex;gap:26px;align-items:center;background:var(--ink);color:var(--paper);padding:8px 16px;font-size:12px}
.board-close{font-size:32px}.menu-board-viewport{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;background:#e2e3d9;position:relative}
.menu-board-viewport>img{flex:none;margin-block:auto;width:100%;height:auto;max-width:none;cursor:zoom-in;object-fit:contain;display:block}
.menu-board-viewport.is-zoomed>img{width:max(1800px,160%);cursor:zoom-out}.menu-board-viewport:focus-visible{outline:2px solid #697754;outline-offset:-3px}
.menu-board-hint{padding:12px 20px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);flex-shrink:0}


@media(max-width:389px){:root{--gutter:20px}.brand span{font-size:20px}.site-header{padding-inline:14px;gap:8px}.header-actions{gap:2px}.header-actions .social-link{width:36px}.hero h1{font-size:57px}.hero-buttons .button{padding-inline:17px;gap:20px}}
@media(max-width:767px){.hero-image{object-position:58% 50%}}
@media(min-width:768px){.cafe-highlights{grid-template-columns:repeat(4,minmax(0,1fr));padding-block:22px}.cafe-highlights>a{padding-block:2px;padding-right:20px}.cafe-highlights>a:nth-child(-n+2){border-bottom:0}.cafe-highlights>a+a{padding-left:24px;border-left:1px solid var(--line)}.menu-shortcuts{max-width:510px;margin-bottom:32px}.coffee-detail{grid-template-columns:130px minmax(0,1fr);gap:22px}.coffee-detail>img{width:130px}.visit-guide dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.menu-board-dialog{height:min(90dvh,1000px)}.menu-board-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center}.menu-board-actions{gap:20px;margin:0}:root{--gutter:40px}.section{padding-block:96px}.site-header{padding-inline:40px}.hero-content{padding-bottom:76px}.hero-intro{font-size:19px}.about{grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about-image{width:100%}.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.menu-card h3{font-size:30px}.menu-card>p{min-height:45px}.menu-items{font-size:12px}.menu-bottom{flex-direction:row;justify-content:space-between;align-items:center}.signature{grid-template-columns:1fr 1fr;gap:8%}.signature-image{aspect-ratio:4 / 5}.gallery-section{padding-top:0}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.reviews-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.review blockquote{font-size:23px}.visit-top{grid-template-columns:1.2fr 1fr;gap:8%;margin-bottom:40px}.visit-top h2{max-width:440px}.footer-top{grid-template-columns:1.4fr 1fr .65fr auto;gap:32px}.footer-brand{grid-column:auto;display:flex;align-items:flex-start;flex-direction:column;gap:8px;font-size:23px}.footer-top>.socials{grid-column:auto}.footer-bottom{flex-direction:row;justify-content:space-between}.lightbox-stage{grid-template-columns:60px minmax(0,1fr) 60px;max-width:1500px;margin:auto;padding:70px 30px 30px}.lightbox figcaption{font-size:14px}.map-shell{height:480px}}
@media(min-width:1024px){.desktop-nav{display:flex}.menu-toggle{display:none}.header-actions{min-width:156px;justify-content:flex-end}.hero-content{padding-bottom:78px}.hero-intro br{display:none}.hero-intro{max-width:460px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.menu-card h3{font-size:37px}.menu-items{font-size:14px}.review blockquote{font-size:27px}.footer-brand{flex-direction:row;align-items:center}.footer-brand img{width:72px;height:72px}.site-header{padding-inline:4vw}.about-copy{margin-left:5%}.signature-copy{padding-right:25px}}




@media(hover:hover) and (pointer:fine){
.button-light:hover{background:#e8ebdf}
.button-outline:hover{background:#f9f7ef;color:var(--ink)}
.button-dark:hover{background:#4b5744}
.text-link:hover{color:#5c6b4d}
.social-link:hover{opacity:.65}
.desktop-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.gallery-item:hover img{transform:scale(1.025)}
.lightbox .icon-button:hover{background:#ffffff18}

.cafe-highlights>a:hover{color:#5c6b4d}
.cafe-highlights>a:hover .highlight-detail>span{transform:translate(2px,-2px)}
.menu-shortcuts a:hover{background:#ffffff50}
.board-zoom:hover{background:#4b5744}
}

@media(min-width:768px){.about-image{width:min(100%,460px);justify-self:end}}

.site-header{transition:background-color 220ms var(--ease-out),border-color 220ms var(--ease-out),color 220ms var(--ease-out)}.site-header:not(.is-scrolled){background:transparent;border-bottom-color:transparent;color:#fff}.site-header:not(.is-scrolled) .brand,.site-header:not(.is-scrolled) .desktop-nav,.site-header:not(.is-scrolled) .header-actions{filter:drop-shadow(0 1px 8px rgba(0,0,0,.58))}.site-header:not(.is-scrolled) .menu-toggle span{background:#fff}.site-header:not(.is-scrolled) a:focus-visible,.site-header:not(.is-scrolled) button:focus-visible{outline-color:#fff}.site-header:not(.is-scrolled) .reading-progress{background:#fff}

@media (min-width:768px){
  .hero-content{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:clamp(24px,4vw,56px);align-items:end}
  .hero-branding h1{margin-bottom:0}
  .hero-branding{transform:translateY(clamp(24px,2vw,30px))}
  .hero-actions{justify-self:end;width:100%;text-align:right}
  .hero-actions .hero-intro{margin-left:auto;max-width:210px}
  .hero-actions .hero-buttons{flex-direction:column;align-items:stretch}
}

@media (min-width:1024px){
  .hero-content{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}
  .hero-actions .hero-intro{max-width:360px}
  .hero-actions .hero-buttons{flex-direction:row;justify-content:flex-end}
}

@media (min-width:768px) and (max-height:640px){
  .hero-content{position:absolute;right:40px;bottom:26px;left:40px;width:auto;margin:0;padding:0}
  .hero-stamp{display:none}
  .hero-actions .hero-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
  .hero-actions .button{min-height:44px;padding:8px 10px;gap:6px;font-size:11px}
}
