*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0}
h1,h2,h3{font-family:var(--display);line-height:1.04;font-weight:var(--dw,600);text-wrap:balance}
.shell{width:min(1200px,100% - 2*var(--pad,24px));margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--accent-fg);padding:.6rem 1rem;z-index:100;border-radius:6px}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.progress{position:fixed;inset:0 0 auto 0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;z-index:70}
.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.top{position:sticky;top:0;z-index:60}
.topbar{display:flex;align-items:center;gap:1.5rem;min-height:66px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-family:var(--display);font-size:1.3rem;font-weight:var(--dw,600);line-height:1}
.brand small{display:block;font:500 .72rem/1.3 var(--body);color:var(--muted);margin-top:.2rem}
.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--markr,50%);border:1.5px solid var(--accent);font-size:1.05rem}
.nav{display:flex;gap:1.4rem;margin-left:auto;font-size:.92rem}
.section-link{text-decoration:none;color:var(--muted);padding:.3rem 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.section-link:hover,.section-link[aria-current]{color:var(--fg);border-color:var(--accent)}
.top-right{display:flex;align-items:center;gap:.8rem}
.open-badge{font-size:.78rem;padding:.2rem .65rem;border-radius:99px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
html[data-open="yes"] .open-badge{border-color:var(--ok);color:var(--ok)}
.languages{display:flex;border:1px solid var(--line);border-radius:99px;overflow:hidden;font-size:.8rem}
.languages a{padding:.28rem .7rem;text-decoration:none;color:var(--muted)}.languages a.active{background:var(--accent);color:var(--accent-fg)}
.button{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.4rem;border-radius:var(--btnr,99px);border:1.5px solid var(--fg);text-decoration:none;font-weight:600;font-size:1rem;background:transparent;color:inherit;cursor:pointer;font-family:inherit;transition:transform .2s,background .2s,color .2s,box-shadow .2s}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.button.ghost{border-color:var(--line)}
.text-link{text-decoration:none;border-bottom:1.5px solid var(--accent);padding-bottom:1px;font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.open-line{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:var(--muted)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}
html[data-open="yes"] .dot{background:var(--ok);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:.5rem 0;border-bottom:1px solid var(--line);text-align:left;font-weight:400}.hours td{text-align:right}
.hours tr.today th,.hours tr.today td{font-weight:700;color:var(--accent)}
.note{font-size:.9rem;color:var(--muted);margin-top:1rem}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.chips li{padding:.45rem .9rem;border:1px solid var(--line);border-radius:99px;font-size:.95rem;background:var(--chip,transparent)}
.qty{display:flex;align-items:center;gap:.5rem;flex:none}
.qty button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-size:1.3rem;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
.qty button:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.qty output{min-width:1.6ch;text-align:center;font-weight:700}
.order-text strong{display:block;font-weight:600}.order-text span{font-size:.92rem;color:var(--muted)}
.order-box label{display:grid;gap:.3rem;font-size:.9rem;font-weight:600}
.order-box input,.order-box textarea{font:inherit;padding:.7rem .8rem;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:#1d2a25}
.order-lines ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.order-lines .empty{margin:0;opacity:.65}
.order-hint{font-size:.85rem;opacity:.7;margin:0}.order-actions{display:flex;flex-wrap:wrap;gap:.6rem}.order-status{min-height:1.4em;font-size:.9rem;font-weight:600}
.cart-pill,.cart-close{display:none}
.chips button,.pill-btn{font:inherit;padding:.6rem 1.1rem;border-radius:99px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chips button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.credits{font-size:.78rem;color:var(--muted);padding-top:1.5rem}
.footer{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;padding:1.6rem 0 6rem;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);margin-top:2rem}
.footer a,.footer button{color:inherit}.footer button{border:0;background:none;font:inherit;padding:0;text-decoration:underline;cursor:pointer}
.privacy{padding:6rem 0}.privacy h1{margin-bottom:1.5rem;font-size:clamp(2rem,5vw,3.5rem)}.privacy p{max-width:64ch;margin-bottom:1rem}
.consent{position:fixed;left:16px;right:16px;bottom:84px;max-width:540px;background:#fff;color:#1d1d1d;padding:1.2rem;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.25);z-index:90}
.consent[hidden]{display:none}.consent p{font-size:.92rem;margin:0 0 .8rem}.consent-actions{display:flex;gap:.6rem}
.consent button{font:inherit;padding:.5rem 1rem;border-radius:99px;border:1.5px solid currentColor;background:none;color:inherit;cursor:pointer}
.consent button[data-consent="accept"]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.mobile-bar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:1px;background:var(--line);z-index:65;padding-bottom:env(safe-area-inset-bottom)}
.mobile-bar a{flex:1;text-align:center;padding:.95rem .5rem;background:var(--bar);backdrop-filter:blur(14px);text-decoration:none;font-weight:600;font-size:.95rem}
.mobile-bar a.primary{background:var(--accent);color:var(--accent-fg)}
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*80ms)}
.js .reveal.in{opacity:1;transform:none}
@media(min-width:900px){.mobile-bar{display:none}.footer{padding-bottom:2rem}.consent{bottom:16px}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}}
@media(max-width:899px){.nav{display:none}.top-right{margin-left:auto}.open-badge{display:none}.split{display:grid;gap:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
[hidden]{display:none!important}

/* shared motion layer: one orchestrated page-load sequence, then quiet */
.js .hero [data-stagger]>*{opacity:0;transform:translateY(26px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--d,0)*110ms + 120ms)}
.js .hero [data-stagger]>*:nth-child(1){--d:0}.js .hero [data-stagger]>*:nth-child(2){--d:1}.js .hero [data-stagger]>*:nth-child(3){--d:2}.js .hero [data-stagger]>*:nth-child(4){--d:3}.js .hero [data-stagger]>*:nth-child(5){--d:4}
@keyframes rise{to{opacity:1;transform:none}}
.js .hero [data-enter]{opacity:0;transform:scale(.96) translateY(14px);animation:enter 1.2s .25s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes enter{to{opacity:1;transform:none}}
.js .reveal{transition-duration:1s}
.js .reveal.in{transition-delay:calc(var(--i,0)*90ms)}
.js .head.reveal h2{clip-path:inset(0 0 100% 0)}
.js .head.reveal.in h2{clip-path:inset(0 0 -20% 0);transition:clip-path 1s cubic-bezier(.2,.7,.2,1),opacity .6s,transform 1s cubic-bezier(.2,.7,.2,1)}
.button{position:relative;overflow:hidden;will-change:transform}
.button::after{content:"";position:absolute;inset:0;background:radial-gradient(120px 120px at var(--x,50%) var(--y,50%),rgba(255,255,255,.35),transparent 60%);opacity:0;transition:opacity .35s}
.button:hover::after{opacity:1}
.button:active{transform:translateY(1px) scale(.98)}
.text-link{background:linear-gradient(var(--accent),var(--accent)) no-repeat 0 100%/0 2px;border-bottom:1.5px solid color-mix(in srgb,var(--accent) 35%,transparent);transition:background-size .4s}
.text-link:hover{background-size:100% 2px}
.section-link{position:relative}
.hours tr{transition:background .3s}
.hours tr.today{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent)}
.hours tr.today th{padding-left:.5rem}
img[loading="lazy"]{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1)}
img[loading="lazy"].loaded,.no-js img{opacity:1}
.top.stuck{box-shadow:0 10px 30px -22px rgba(0,0,0,.35)}
.cursor-dot{display:none}
@media(prefers-reduced-motion:reduce){.js .hero [data-stagger]>*,.js .hero [data-enter]{opacity:1;transform:none;animation:none}.js h2.reveal,.js .head.reveal h2{clip-path:none}img[loading="lazy"]{opacity:1}}

@font-face{font-family:"Cormorant Garamond";font-weight:400;src:url(/fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Cormorant Garamond";font-weight:500;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Cormorant Garamond";font-weight:600;src:url(/fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Cormorant Garamond";font-weight:500;font-style:italic;src:url(/fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Cormorant Garamond";font-weight:400;font-style:italic;src:url(/fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:400;src:url(/fonts/manrope-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:600;src:url(/fonts/manrope-latin-600-normal.woff2) format("woff2");font-display:swap}
:root{--bg:#f4f6f1;--fg:#14302a;--muted:#4b6058;--accent:#b9722f;--accent-fg:#fff;--line:rgba(20,48,42,.16);--bar:rgba(244,246,241,.92);--ok:#2f8a5a;--display:"Cormorant Garamond",Georgia,serif;--body:Manrope,system-ui,sans-serif;--dw:500;--btnr:2px;--markr:50%;--pad:clamp(20px,4vw,44px);color-scheme:light}
.top{background:rgba(244,246,241,.88);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.brand{font-style:italic;font-size:1.5rem}
.hero{position:relative;min-height:calc(100svh - 66px);display:grid;align-items:end;overflow:hidden;background:#d9dfd6}
.slides,.slide{position:absolute;inset:0}
.slide{opacity:0;animation:fadeSlide 21s infinite}
.slide.s1{animation-delay:7s}.slide.s2{animation-delay:14s}
.slide img{animation:kb 21s infinite ease-in-out}
@keyframes fadeSlide{0%{opacity:0}6%{opacity:1}33%{opacity:1}40%{opacity:0}100%{opacity:0}}
@keyframes kb{0%{transform:scale(1)}40%{transform:scale(1.05) translate(-.5%,-.5%)}100%{transform:scale(1.05)}}
.hero .veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,30,24,.62),rgba(10,30,24,.15) 60%,transparent),linear-gradient(0deg,rgba(10,30,24,.55),transparent 55%)}
.hero-copy{position:relative;z-index:2;padding:0 0 clamp(2rem,6vw,5rem)}
.hero-copy>*{max-width:640px}
.kicker{font:italic 500 1.4rem var(--display);color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.35);margin-bottom:.6rem}
.hero h1{font-size:clamp(3.6rem,11vw,9rem);font-style:italic;font-weight:500;color:#fff;letter-spacing:-.025em;text-shadow:0 2px 30px rgba(0,0,0,.35);line-height:.92}
.sub{color:#fff;font-size:1.2rem;margin:1.2rem 0 1.8rem;text-shadow:0 1px 14px rgba(0,0,0,.45)}
.hero .button.ghost{background:rgba(255,255,255,.9);border-color:transparent;color:var(--fg)}
.hero .open-line{color:#fff;margin-top:1.4rem;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.sec{padding:clamp(4rem,9vw,8rem) 0}
.order{background:#fff;border-block:1px solid var(--line)}
.head{max-width:620px;margin-bottom:clamp(2rem,4vw,3.4rem)}
.head h2{font-size:clamp(3rem,8vw,6.2rem);font-style:italic;letter-spacing:-.025em}
.head p{margin-top:1rem;color:var(--muted);font-size:1.15rem}
.dishes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.4rem}
.dish{display:grid;transition:transform .35s,box-shadow .35s;border:1px solid var(--line);background:var(--bg)}
.dish:hover{transform:translateY(-5px);box-shadow:0 26px 40px -28px rgba(20,48,42,.55)}
.dish-photo{aspect-ratio:4/5;overflow:hidden;position:relative}
.dish-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.dish:hover .dish-photo img{transform:scale(1.07)}
.dish-body{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:1rem 1rem 1.1rem}
.dish .order-text strong{font:500 1.5rem/1.1 var(--display)}
.order-item.on{outline:2px solid var(--accent);outline-offset:-2px}
.also{margin-top:3rem}.also h3{font:italic 500 1.8rem var(--display);margin-bottom:.8rem}
.rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 2rem}
.row{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--line)}
.row strong{font-weight:600}
.house .split{align-items:center}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.duo .tall{aspect-ratio:3/4;width:100%;object-fit:cover;box-shadow:0 30px 50px -34px rgba(20,48,42,.6)}
.duo .b{margin-top:3rem}
.house h2{font-size:clamp(2.6rem,6vw,4.8rem);font-style:italic}
.lead{font-size:1.25rem;color:var(--muted);margin-top:1.2rem;max-width:34ch}
.area{padding-top:0;background:#fff;border-top:1px solid var(--line)}
.bleed{position:relative;height:min(70vh,640px);overflow:hidden;display:grid;align-items:end}
.bleed .parallax{transform:translateY(calc(var(--p)*-60px)) scale(1.12)}
.bleed .veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,30,24,.55),transparent 60%)}
.bleed h2{position:relative;color:#fff;font-size:clamp(2.6rem,7vw,5.6rem);font-style:italic;padding-bottom:2.2rem;text-shadow:0 2px 24px rgba(0,0,0,.4);max-width:14ch}
.trio{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));padding-top:3rem}
.trio img,.laredo{aspect-ratio:3/2;width:100%;object-fit:cover;margin-bottom:1rem}
.laredo{display:grid;place-items:center;background:linear-gradient(180deg,#cfe4e6,#f1e7c9 70%);font:italic 500 2.6rem var(--display);color:var(--fg)}
.trio h3{font:italic 500 1.9rem var(--display)}.trio p{color:var(--muted);margin-top:.4rem}
.ways{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.ways h3{font:italic 500 1.6rem var(--display);margin-bottom:.8rem}
.ways ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem 2rem}
.ways li::before{content:"✦";color:var(--accent);margin-right:.6rem}
.visit h2{font-size:clamp(2.6rem,6vw,4.8rem);font-style:italic}
.hours-card{background:#fff;border:1px solid var(--line);padding:1.8rem;box-shadow:0 30px 50px -40px rgba(20,48,42,.5)}
.hours-card h3{font:italic 500 1.8rem var(--display);margin-bottom:.6rem}
@media(max-width:899px){.duo .b{margin-top:1.5rem}}

.hero h1{font-size:clamp(3.4rem,10vw,8.4rem)}
.dish{border-radius:4px;overflow:hidden}
.dish-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,48,42,.25),transparent 40%);opacity:0;transition:opacity .4s}
.dish:hover .dish-photo::after{opacity:1}
.marq{overflow:hidden;border-block:1px solid var(--line);padding:.8rem 0;background:#fff}
.marq div{display:flex;width:max-content;animation:slide 40s linear infinite}
.marq i{font:italic 500 1.4rem var(--display);padding:0 1.4rem;white-space:nowrap;color:var(--muted)}
.marq i::after{content:"✦";color:var(--accent);margin-left:2.8rem;font-style:normal}
@keyframes slide{to{transform:translateX(-50%)}}

.pq{margin:1.6rem 0 0;padding-left:1.1rem;border-left:2px solid var(--accent);font:italic 400 1.35rem/1.35 var(--display)}.pq cite{display:block;margin-top:.5rem;font:500 .85rem var(--body);font-style:normal;color:var(--muted)}
