:root{--cream:#f7f3ea;--paper:#fffdf8;--sage:#c9d4bf;--green:#1f3b2c;--green2:#2f5a41;--accent:#e07a3f;--ink:#16211b;--muted:#5d6b62;--r:20px}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;font-size:17px}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;letter-spacing:-.02em;line-height:1.05}
h1{font-size:clamp(2.8rem,7vw,6rem)}h2{font-size:clamp(2rem,4.5vw,3.4rem);margin-bottom:.6em}h3{font-size:1.4rem;margin-bottom:.3em}
a{color:inherit}img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:1rem;display:block}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px;z-index:99}
header{position:sticky;top:0;z-index:50;background:rgba(255,253,248,.88);backdrop-filter:blur(12px);border-bottom:1px solid #0001}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.logo{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.5rem;text-decoration:none;color:var(--green)}.logo span{color:var(--accent)}
.nav ul{display:flex;gap:28px;list-style:none;padding:0;align-items:center}.nav ul a{text-decoration:none;font-weight:500}.nav ul a[aria-current]{color:var(--accent)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;background:var(--green);color:#fff!important;text-decoration:none;font-weight:600;border:0;cursor:pointer;font-size:1rem;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px);background:var(--green2)}.btn.alt{background:transparent;color:var(--green)!important;box-shadow:inset 0 0 0 2px var(--green)}.btn.acc{background:var(--accent)}
.hero{padding:72px 0 96px}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center}
.hero p.lead{font-size:1.25rem;color:var(--muted);max-width:34ch;margin:1.4rem 0 2rem}.hero h1 em{font-style:italic;color:var(--green2)}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.art{border-radius:32px;aspect-ratio:4/5;position:relative;overflow:hidden;background:radial-gradient(circle at 70% 25%,#f4c27a 0 9%,transparent 10%),radial-gradient(ellipse at 30% 110%,#2f5a41 0 45%,transparent 46%),radial-gradient(ellipse at 85% 105%,#3d7052 0 40%,transparent 41%),linear-gradient(180deg,#f7e3c6,#e9d9b8 60%,#c9d4bf)}
.art.cup{background:radial-gradient(circle at 50% 48%,#5a3420 0 17%,#f5ead8 18% 25%,transparent 26%),radial-gradient(circle at 50% 50%,#fff 0 33%,transparent 34%),linear-gradient(135deg,#c9d4bf,#9fb394)}
.art.plate{background:radial-gradient(circle at 42% 45%,#f6c445 0 7%,#fff8ec 8% 13%,transparent 14%),radial-gradient(circle at 60% 58%,#9b3a22 0 9%,transparent 10%),radial-gradient(circle at 50% 50%,#fffaf2 0 34%,#e8dfcf 35% 37%,transparent 38%),linear-gradient(135deg,#e9a77b,#e07a3f)}
.art.lights{background:radial-gradient(circle,#ffd98a 0 2px,transparent 3px) 0 0/46px 46px,radial-gradient(ellipse at 50% 120%,#2f5a41,transparent 60%),linear-gradient(180deg,#14261c,#1f3b2c)}
.badge{position:absolute;left:20px;bottom:20px;background:var(--paper);border-radius:16px;padding:14px 18px;font-weight:600;box-shadow:0 10px 30px #0002}.badge b{font-family:Fraunces,serif;font-size:1.6rem;color:var(--green)}
section{padding:96px 0}.cream{background:var(--cream)}.dark{background:var(--green);color:#f7f3ea}.dark .eyebrow{color:#f4b183}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.split .art{aspect-ratio:1}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--paper);border-radius:var(--r);padding:32px;border:1px solid #0000000d}.dark .card{background:#ffffff0d;border-color:#ffffff1a}
.card .ic{font-size:1.8rem;margin-bottom:12px}.muted{color:var(--muted)}.dark .muted{color:#cfd8cf}
blockquote{font-family:Fraunces,serif;font-size:1.35rem;line-height:1.35}.stars{color:var(--accent);letter-spacing:3px;margin-bottom:12px}
.info{display:grid;grid-template-columns:1fr 1.3fr;gap:40px}.map{border:0;width:100%;height:100%;min-height:380px;border-radius:var(--r)}
table.hours{width:100%;border-collapse:collapse}.hours td{padding:10px 0;border-bottom:1px solid #0001}.hours td:last-child{text-align:right;font-weight:600}
.note{display:inline-block;background:#fff3c4;color:#6b5200;font-size:.8rem;padding:2px 8px;border-radius:6px;font-weight:600}
.page-hero{padding:80px 0 40px}.page-hero p{font-size:1.2rem;color:var(--muted);max-width:52ch;margin-top:1rem}
.menu-nav{display:flex;gap:10px;flex-wrap:wrap;position:sticky;top:72px;background:var(--paper);padding:16px 0;z-index:5}.menu-nav a{padding:8px 18px;border-radius:999px;background:var(--cream);text-decoration:none;font-weight:500}
.menu-cat{padding:48px 0;border-top:1px solid #0001}.menu-cat .items{display:grid;grid-template-columns:1fr 1fr;gap:8px 64px}
.item{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px dashed #0002}.item h3{font-size:1.15rem;font-family:Inter,sans-serif;font-weight:600;letter-spacing:0}.item .p{font-weight:700;color:var(--green2);white-space:nowrap}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px}form .full{grid-column:1/-1}label{font-weight:600;font-size:.9rem;display:block;margin-bottom:6px}
input,select,textarea{width:100%;padding:14px 16px;border-radius:12px;border:1.5px solid #0002;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:3px solid var(--sage);border-color:var(--green2)}
footer{background:var(--ink);color:#cfd8cf;padding:64px 0 120px}footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}footer a{color:#fff}footer .logo{color:#fff}
.sticky-cta{display:none}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
@media (max-width:860px){.nav ul li:not(.keep){display:none}.hero-grid,.split,.info,.grid3,.menu-cat .items,footer .cols{grid-template-columns:1fr}.hero{padding:40px 0 64px}section{padding:64px 0}form{grid-template-columns:1fr}.art{aspect-ratio:4/3}
.sticky-cta{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:60;gap:8px}.sticky-cta .btn{flex:1;justify-content:center}
.mnav{display:flex!important;gap:18px;overflow-x:auto;padding:0 24px 12px}}
.mnav{display:none}.mnav a{text-decoration:none;font-weight:500;white-space:nowrap}
@media (max-width:860px){.nav ul li.keep{display:none}.sticky-cta .btn{padding:14px 10px;min-width:0}}
.tag{display:inline-block;font:700 .68rem/1 Inter,sans-serif;letter-spacing:.06em;padding:4px 7px;border-radius:999px;background:#dfe8d6;color:var(--green2);vertical-align:middle;margin-left:4px}
.menu-cat h3.sub{font-family:Inter,sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:32px 0 4px}
.menu-nav{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.menu-nav a{white-space:nowrap}
.item{align-items:baseline}.item p{font-size:.95rem;margin-top:2px}
@media (max-width:860px){.menu-nav{top:112px}.menu-cat{padding:32px 0}}
.hero-show{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--green)}
.slides,.slide,.hero-ov{position:absolute;inset:0}.slide{background:center/cover no-repeat;opacity:0;transition:opacity 1.8s ease;transform:scale(1.02)}
.slide.on{opacity:1;animation:kb 8s ease-out forwards}@keyframes kb{to{transform:scale(1.12)}}
.hero-ov{background:linear-gradient(180deg,rgba(18,36,26,.25) 0%,rgba(18,36,26,.15) 35%,rgba(18,36,26,.85) 100%),linear-gradient(90deg,rgba(18,36,26,.55),transparent 65%)}
.hero-inner{position:relative;padding-top:120px;padding-bottom:72px;width:100%}.hero-inner h1{max-width:12ch;text-shadow:0 2px 30px #0004}.hero-inner h1 em{color:#cfe0c3}
.hero-inner .lead{font-size:1.2rem;max-width:40ch;margin:1.2rem 0 2rem;color:#eef3ea}.hero-inner .eyebrow{color:#f4b183}
.hero-inner .badge{position:static;display:inline-block;margin-top:28px;color:var(--ink)}
.btn.light{background:#fff;color:var(--green)!important}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 2px #fff}
.photo{width:100%;border-radius:32px;aspect-ratio:1;object-fit:cover}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:14px}.g{border-radius:18px;overflow:hidden;display:block}.g.wide{grid-column:span 2;grid-row:span 2}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.g:hover img{transform:scale(1.05)}
.lb{border:0;padding:0;background:transparent;max-width:92vw;max-height:90vh}.lb::backdrop{background:rgba(10,20,14,.88)}.lb img{max-width:92vw;max-height:88vh;border-radius:12px}
.lb-x{position:fixed;top:16px;right:20px;font-size:2.4rem;background:none;border:0;color:#fff;cursor:pointer}
@media (max-width:860px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:160px}.hero-show{min-height:88vh}.hero-inner{padding-bottom:110px}}
@media (prefers-reduced-motion:reduce){.slide.on{animation:none}.slide{transition:none}}
.lb{margin:auto;position:fixed;inset:0}
@media (max-width:860px){.hero-inner{padding-bottom:120px;padding-top:90px}.hero-inner .lead{font-size:1.05rem}.hero-inner .badge{margin-top:18px}}
.g.span2{grid-column:span 2}
.lb[open]{width:100vw;height:100vh;max-width:none;max-height:none;display:flex;align-items:center;justify-content:center}
@media (max-width:860px){.hero-inner{display:flex;flex-direction:column;align-items:flex-start}.hero-inner .badge{order:-1;margin:0 0 18px;padding:10px 14px;font-size:.85rem}.hero-inner .badge b{font-size:1.2rem}}
