/* Drip* — styles. Fonts: Poppins (display) + Inter (text), self-hosted. */
@font-face{font-family:Poppins;font-weight:400;font-display:swap;src:url(assets/fonts/poppins-400.woff) format("woff")}
@font-face{font-family:Poppins;font-weight:500;font-display:swap;src:url(assets/fonts/poppins-500.woff) format("woff")}
@font-face{font-family:Poppins;font-weight:700;font-display:swap;src:url(assets/fonts/poppins-700.woff) format("woff")}
@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(assets/fonts/inter-400.woff) format("woff")}
@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(assets/fonts/inter-500.woff) format("woff")}
@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(assets/fonts/inter-600.woff) format("woff")}
:root{--olive:#5e653b;--olive-d:#343522;--olive-dd:#24251c;--coffee:#684431;--gold:#c9a36b;--gold-l:#e3c28d;--cream:#f2e6d5;--sand:#f0e4d2;--paper:#f7f1e8;--ink:#25251f;--muted:#6f6a5d;--line:rgba(63,65,42,.2);--display:Poppins,"Segoe UI",Arial,sans-serif;--sans:Inter,"Segoe UI",Arial,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);--gut:clamp(20px,7.2vw,110px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
html.intro-lock,html.intro-lock body,body.nav-open{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,input{font:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.arr{width:.85em;height:.85em;flex:none;transition:transform .35s var(--ease)}
a:hover>.arr,button:hover>.arr{transform:translate(2px,-2px)}

/* ===== header ===== */
.topbar{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:20px 5.1%;color:#f6ead8;transition:transform .5s var(--ease),background .4s,padding .4s,box-shadow .4s}
.topbar:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,20,13,.45),transparent);pointer-events:none;transition:opacity .4s}
.topbar.solid{background:rgba(36,37,28,.95);padding-top:12px;padding-bottom:12px;box-shadow:0 8px 30px #0003}.topbar.solid:before{opacity:0}
.topbar.hide{transform:translateY(-105%)}
.brand{position:relative;z-index:2;font:700 42px/1 var(--display);letter-spacing:-.07em;display:flex;align-items:flex-start}.brand sup{font-size:.55em;color:var(--gold-l);margin-left:1px;line-height:1;transition:transform .8s var(--ease)}.brand:hover sup{transform:rotate(180deg)}
.nav{position:relative;display:flex;align-items:center;gap:clamp(16px,2.1vw,34px);font:500 11px var(--sans);letter-spacing:.1em;text-transform:uppercase}
.nav a{position:relative;padding:6px 0;opacity:.92}.nav a:not(.nav-cta):after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-l);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.nav a:hover:after,.nav a[aria-current]:after{transform:scaleX(1);transform-origin:left}.nav a:hover{color:var(--gold-l)}
.nav .nav-cta{display:inline-flex;gap:8px;align-items:center;border:1px solid #e8d3b5a8;padding:12px 20px;border-radius:40px;transition:background .3s,color .3s}.nav .nav-cta:hover{background:var(--cream);color:var(--olive-d)}
.menu-toggle{display:none}
.progress{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);transform:scaleX(var(--p,0));transform-origin:left}

/* ===== intro: coffee bean cracks, page tears open ===== */
.intro{position:fixed;inset:0;z-index:1000;overflow:hidden;--T:3.2s;--bw:clamp(120px,17vw,200px)}
.no-intro .intro,.intro.done{display:none}
.intro-half{position:absolute;top:0;bottom:0;width:56%;z-index:2;will-change:transform;background:linear-gradient(100deg,transparent 18%,rgba(255,205,150,.07) 36%,transparent 52%),radial-gradient(120% 90% at 50% 40%,#48291a,#1d110a 72%)}
.intro-l{left:0;animation:hl var(--T) both}.intro-r{right:0;animation:hr var(--T) both}
.intro-gap{position:absolute;top:0;bottom:0;left:40%;width:20%;z-index:1;background:linear-gradient(90deg,#ecdcbf,#fff7e6 50%,#ecdcbf);box-shadow:0 0 90px 30px rgba(255,214,150,.5);transform:scaleX(0);animation:gap var(--T) both;will-change:transform}
.intro-bean{position:absolute;z-index:3;left:50%;top:50%;width:var(--bw);height:calc(var(--bw)*1.5);margin:calc(var(--bw)*-.75) 0 0 calc(var(--bw)/-2);animation:bw var(--T) both}
.intro-bean svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;will-change:transform}
.bl{transform-origin:100% 60%;animation:bl var(--T) both}.br{transform-origin:0 60%;animation:br var(--T) both}
.intro-chips{position:absolute;left:50%;top:50%;z-index:4}
.intro-chips i{position:absolute;left:0;top:0;width:var(--s);height:calc(var(--s)*1.4);border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 35% 30%,#a8754c,#3a2013);opacity:0;animation:chip 1.4s cubic-bezier(.12,.8,.25,1) calc(1s + var(--dl)) both}
.intro-chips i.p{background:#f4e6cb;border-radius:2px 40% 3px 30%;height:var(--s)}
.intro-tag{position:absolute;z-index:3;left:0;right:0;bottom:9vh;text-align:center;color:#e9d5b8;font:500 11px var(--sans);letter-spacing:.34em;text-transform:uppercase;animation:tag var(--T) both}
.intro-tag sup{font-size:.9em;color:var(--gold-l)}
@keyframes hl{0%,31%{transform:none;animation-timing-function:cubic-bezier(.2,.9,.2,1)}50%,54.7%{transform:translateX(-7vw);animation-timing-function:cubic-bezier(.75,0,.2,1)}84.4%,100%{transform:translateX(-104%)}}
@keyframes hr{0%,31%{transform:none;animation-timing-function:cubic-bezier(.2,.9,.2,1)}50%,54.7%{transform:translateX(7vw);animation-timing-function:cubic-bezier(.75,0,.2,1)}84.4%,100%{transform:translateX(104%)}}
@keyframes gap{0%,30%{transform:scaleX(0);opacity:1}50%,54.7%{transform:scaleX(1);animation-timing-function:cubic-bezier(.75,0,.2,1)}84.4%,100%{transform:scaleX(5.3);opacity:0}}
@keyframes bw{0%{opacity:0;transform:scale(.5) rotate(-16deg)}16%{opacity:1;transform:scale(1) rotate(0)}20%{transform:rotate(-3deg)}23%{transform:rotate(3deg)}26%{transform:rotate(-2.5deg)}29%{transform:rotate(2deg)}31%{transform:rotate(0)}80%{opacity:1}90%,100%{opacity:0}}
@keyframes bl{0%,31%{transform:none;filter:none}35%{filter:drop-shadow(0 0 16px rgba(255,215,160,.95))}50%,54.7%{transform:translate(-7vw,-1.2vh) rotate(-9deg);filter:drop-shadow(0 0 14px rgba(255,215,160,.6));animation-timing-function:cubic-bezier(.75,0,.2,1)}84.4%,100%{transform:translate(-58vw,5vh) rotate(-26deg)}}
@keyframes br{0%,31%{transform:none;filter:none}35%{filter:drop-shadow(0 0 16px rgba(255,215,160,.95))}50%,54.7%{transform:translate(7vw,1.2vh) rotate(9deg);filter:drop-shadow(0 0 14px rgba(255,215,160,.6));animation-timing-function:cubic-bezier(.75,0,.2,1)}84.4%,100%{transform:translate(58vw,-5vh) rotate(26deg)}}
@keyframes chip{0%{opacity:0;transform:translate(0,0) scale(.3)}8%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--r)) scale(1)}}
@keyframes tag{0%,6%{opacity:0;transform:translateY(10px)}16%,26%{opacity:.9;transform:none}32%,100%{opacity:0}}

/* ===== reveal system (only when JS is on) ===== */
.js [data-in]{opacity:0;transform:translateY(26px);transition:opacity .9s ease var(--d,0s),transform 1s var(--ease) var(--d,0s)}
.js.ready [data-in]{opacity:1;transform:none}
.js [data-r]{opacity:0;transform:translateY(34px);transition:opacity .9s ease var(--sd,0s),transform 1s var(--ease) var(--sd,0s)}
.js [data-r].in{opacity:1;transform:none}
.js [data-r=zoom]{transform:scale(.93)}
.js [data-r=img]{opacity:1;transform:none}
.js [data-r=img] img{clip-path:inset(0 0 100% 0);transition:clip-path 1.25s cubic-bezier(.77,0,.18,1) var(--sd,0s),transform .9s var(--ease)}
.js [data-r=img].in img{clip-path:inset(0)}
.js .feat[data-r=img] div{opacity:0;transform:translateY(18px);transition:opacity .8s ease calc(var(--sd,0s) + .55s),transform .9s var(--ease) calc(var(--sd,0s) + .55s)}.js .feat[data-r=img].in div{opacity:1;transform:none}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.wd>span{display:inline-block}
.js .wd>span{transform:translateY(112%);transition:transform 1s var(--ease) calc(var(--w)*65ms)}
.js .in .wd>span,.js .wd.in>span{transform:none}
.js [data-title]:not(.in) .wd>span{transform:translateY(112%)}
.js .page-hero.ready-in [data-title] .wd>span,.js.ready .page-hero [data-title] .wd>span{transform:none}

/* ===== buttons / links ===== */
.btn{display:inline-flex;align-items:center;gap:12px;min-height:50px;padding:14px 24px;border-radius:50px;background:var(--cream);color:var(--olive-d);font:600 12px var(--sans);letter-spacing:.04em;border:1px solid transparent;transition:background .35s,color .35s,box-shadow .35s,transform .4s var(--ease);will-change:transform}
.btn:hover{background:var(--gold);box-shadow:0 12px 30px #0d0b0740}
.btn-line{background:transparent;color:var(--cream);border-color:#f2e6d58c}.btn-line:hover{background:var(--cream);color:var(--olive-d)}
.btn-dark{background:var(--olive-d);color:var(--cream)}.btn-dark:hover{background:var(--olive);color:#fff}
.play{display:grid;place-items:center;width:22px;height:22px;border:1px solid currentColor;border-radius:50%;font-size:7px;padding-left:2px}
.link{display:inline-flex;gap:8px;align-items:center;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--olive);padding-bottom:8px;background:linear-gradient(var(--gold),var(--gold)) 0 100%/100% 1px no-repeat;transition:background-size .4s var(--ease),color .3s}
.link:hover{background-size:0 1px;color:var(--olive-d)}.link-l{color:var(--gold-l)}
.eyebrow{display:flex;gap:13px;align-items:center;font:600 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#d9b77d}.eyebrow:after{content:"";width:55px;height:1px;background:currentColor;opacity:.6}
.kicker{font:600 10px var(--sans);letter-spacing:.23em;text-transform:uppercase;color:var(--olive);display:block}

/* ===== floating beans ===== */
.fb{position:absolute;width:30px;height:45px;color:#5a351f;z-index:2;pointer-events:none;opacity:.85;animation:fl 7s ease-in-out infinite}
.fb.b1{top:30%;left:46%;transform:rotate(25deg)}.fb.b2{bottom:22%;right:44%;width:22px;height:33px;animation-delay:-2.5s;transform:rotate(-35deg)}.fb.b3{top:16%;right:30%;width:18px;height:27px;animation-delay:-4s}
@keyframes fl{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -16px;rotate:14deg}}

/* ===== hero ===== */
.hero{position:relative;isolation:isolate;height:min(920px,100svh);min-height:700px;display:flex;align-items:center;padding:130px var(--gut) 110px;background:#211d13;color:#f8eddd;overflow:hidden}
.hero-photo{position:absolute;z-index:-2;inset:0 0 0 auto;width:62%;overflow:hidden}
.js .hero-photo{clip-path:inset(0 0 0 100%);transition:clip-path 1.5s cubic-bezier(.77,0,.18,1) .05s}.js.ready .hero-photo{clip-path:inset(0)}
.hp{position:absolute;inset:-7% 0;background:url(assets/img/hero-premium.webp) center/cover;will-change:transform}
.js.ready .hero-photo{animation:kb 3s var(--ease) both}@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#211d13 0,#211d13 36%,rgba(33,29,19,.9) 43%,rgba(33,29,19,.3) 68%,rgba(33,29,19,.06) 100%)}
.hero:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,rgba(20,18,12,.4),transparent 25%,transparent 78%,rgba(20,18,12,.25))}
.hero-copy{position:relative;z-index:3;width:52%;max-width:700px}
.hero h1{font:500 clamp(50px,6vw,94px)/.94 var(--display);letter-spacing:-.05em;margin:26px 0 24px}
.ln{display:block;white-space:nowrap;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}.ln>span{display:inline-block}
.js .ln>span{transform:translateY(112%);transition:transform 1.15s var(--ease) calc(.1s + var(--l)*.14s)}.js.ready .ln>span{transform:none}
.hero h1 em{font-style:normal;color:#d6ad74}
.hero-copy p{font-size:15px;line-height:1.85;color:#f3e7d6d9;max-width:420px;margin:0}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-stamp{position:absolute;z-index:4;right:7.6%;top:19%;width:150px;height:150px;border:1px solid #e3c18a;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(35,27,15,.82);box-shadow:0 0 0 7px rgba(219,185,129,.09);color:#e7c68e}
.hero-stamp span{font:600 8px var(--sans);letter-spacing:.17em;text-align:center;max-width:96px;line-height:1.7}.hero-stamp b{font:700 28px var(--display);letter-spacing:-.06em;color:#f4e5ce}.hero-stamp i{font-style:normal;font-size:17px;line-height:1;animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-orbit{position:absolute;z-index:1;right:4.5%;top:13%;width:340px;height:340px;border:1px solid #e0c08a45;border-radius:50%;pointer-events:none;animation:spin 40s linear infinite}.hero-orbit:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#dfbd85;top:19%;right:7%;box-shadow:0 0 16px #dfbd85}
.hero-note{position:absolute;z-index:4;left:var(--gut);bottom:38px;display:flex;align-items:center;gap:13px;font:500 9px var(--sans);letter-spacing:.17em;text-transform:uppercase;color:#f3e5d1}
.mouse{width:17px;height:27px;border:1px solid #e5d4ba;border-radius:10px;position:relative}.mouse:after{content:"";position:absolute;left:7px;top:5px;width:2px;height:5px;border-radius:3px;background:#e5d4ba;animation:wheel 1.6s ease-in-out infinite}@keyframes wheel{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(7px);opacity:1}}
.hero-bottom{position:absolute;right:var(--gut);bottom:42px;z-index:4;display:flex;gap:27px;color:#e9ddc9a6;font:500 8px var(--sans);letter-spacing:.19em}.hero-bottom span:first-child{color:#d6b77f}
.steam{position:absolute;z-index:2;right:39%;top:24%;width:12px;height:72px;border-radius:50%;border-left:2px solid #f8ead4a0;filter:blur(1.5px);opacity:0;animation:steam 4.8s ease-in-out infinite;pointer-events:none}.s2{right:36.5%;top:21%;height:58px;animation-delay:1.4s}.s3{right:42%;top:26%;height:48px;animation-delay:2.6s}
@keyframes steam{0%{opacity:0;transform:translateY(18px) scaleX(.8)}25%{opacity:.55}75%{opacity:.3}100%{opacity:0;transform:translateY(-45px) scaleX(1.3)}}

/* ===== sections ===== */
.section{padding:clamp(70px,9vw,120px) var(--gut)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:46px}
.sec-head p{max-width:350px;color:var(--muted);font-size:14px;line-height:1.85;margin:0}
.section h2,.foot-top h2{font-size:clamp(40px,5.2vw,76px);line-height:1.03;letter-spacing:-.045em;margin-top:14px}
.intro-sec{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;background:var(--sand)}
.intro-photo{position:relative;height:clamp(380px,40vw,580px)}.intro-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.95)}
.photo-tag{position:absolute;bottom:22px;left:-25px;background:var(--olive);color:var(--cream);padding:19px 24px;font:500 17px var(--display);box-shadow:0 14px 35px #17160d26}
.intro-copy p{font-size:15px;line-height:2;color:var(--muted);max-width:520px;margin:24px 0 30px}
.cats,.glimpse{background:#f8f3eb}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feat{position:relative;min-height:clamp(380px,34vw,480px);overflow:hidden;background:#d6c6ad;display:block}
.feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.feat:hover img{transform:scale(1.07)}
.feat:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#17170fd6,rgba(23,23,15,.28) 40%,transparent 72%)}
.feat div{position:absolute;z-index:1;left:28px;right:20px;bottom:28px;color:#fff}.feat small{font:600 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#e8c991}
.feat h3{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.03em;margin:8px 0 10px}.feat span{display:inline-flex;gap:7px;align-items:center;font:600 10px var(--sans);letter-spacing:.15em;text-transform:uppercase}
.marquee{background:var(--olive);color:var(--cream);overflow:hidden;white-space:nowrap;padding:20px 0;font:500 clamp(22px,2.4vw,32px) var(--display);letter-spacing:-.02em}
.mq{display:flex;width:max-content;animation:mq 34s linear infinite}.mq span{flex:none}.mq b{color:var(--gold);font-weight:400;margin:0 22px}@keyframes mq{to{transform:translateX(-50%)}}
.favs{background:#eee3d4}
.dish-grid,.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dish{background:#faf6ef;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}.dish:hover{transform:translateY(-6px);box-shadow:0 22px 44px #3a2f1a1f}
.dish-ph{height:clamp(240px,22vw,300px);overflow:hidden;background:#e2d5c3}.dish-ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.dish:hover img{transform:scale(1.06)}
.dish-tx{padding:20px 22px 24px}.dish small{font:600 9px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--olive)}.dish h3{font-size:22px;letter-spacing:-.025em;line-height:1.2;margin:8px 0}.dish p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.dish p:empty{display:none}.dish strong{display:block;margin-top:12px;font:600 13px var(--sans);color:var(--coffee)}
.quote{position:relative;background:var(--olive-d);color:var(--cream);text-align:center;padding:clamp(70px,9vw,110px) 8%;overflow:hidden}
.quote blockquote{font:500 clamp(28px,3.8vw,54px)/1.2 var(--display);letter-spacing:-.035em;max-width:880px;margin:0 auto 22px}.quote p{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0}
.qb .fb{color:#7a5030;opacity:.5}.qb .b1{top:18%;left:9%}.qb .b2{bottom:16%;right:8%;left:auto;width:34px;height:51px}
.g-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;grid-template-rows:clamp(170px,18vw,250px) clamp(170px,18vw,250px);gap:12px}
.g-grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.g-grid img:first-child{grid-row:span 2}.g-grid img:nth-child(4){grid-column:2/4}
.g-grid>*{overflow:hidden}.g-grid img:hover{transform:scale(1.04)}
.visit{background:var(--sand);display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}
.visit>div:not(.visit-card)>p{color:var(--muted);line-height:2;font-size:14px;max-width:430px;margin:22px 0 30px}
.visit-card{position:relative;overflow:hidden;background:var(--olive);color:var(--cream);padding:clamp(30px,4vw,48px)}.visit-card:after{content:"✳";position:absolute;right:-15px;bottom:-68px;font:180px var(--display);color:#ffffff12;animation:spin 30s linear infinite}
.visit-card h3{font-size:clamp(30px,3.4vw,42px);letter-spacing:-.04em;margin:12px 0 18px}.visit-card p{font-size:14px;line-height:2;color:#f1e4d1d6;margin:0 0 22px}

/* ===== footer (large-type) ===== */
.foot{background:#ebe1d0;padding:clamp(10px,1.5vw,18px)}
.foot-top{position:relative;background:var(--olive);color:var(--cream);border-radius:28px 28px 0 0;padding:clamp(44px,6vw,80px) clamp(24px,5vw,64px) clamp(90px,10vw,130px)}.foot-top .kicker{color:var(--gold-l)}
.foot-top h2{font-size:clamp(34px,4.6vw,66px);max-width:760px}
.foot-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.foot-card{position:relative;margin-top:-52px;background:#fff;border-radius:28px;padding:clamp(28px,4vw,52px) clamp(22px,4vw,48px) 22px;overflow:hidden}
.foot-cols{display:grid;grid-template-columns:1.3fr .8fr 1fr 1.3fr;gap:clamp(22px,3vw,48px)}
.fc h4{font:600 14px var(--display);margin-bottom:16px}.fc{display:flex;flex-direction:column;gap:9px;font-size:13px;color:#4a483c;align-items:flex-start}
.fc p{margin:0 0 6px;line-height:1.6;max-width:260px}.fc a{position:relative;transition:color .25s,transform .35s var(--ease)}.fc a:hover{color:var(--olive);transform:translateX(4px)}
.soc{display:flex;gap:10px;margin-top:10px}.soc a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f3ede2;color:var(--olive-d);transition:background .3s,color .3s,transform .4s var(--ease)!important}.soc a:hover{background:var(--olive);color:#fff;transform:translateY(-3px)!important}.soc svg{width:17px;height:17px}
.wa-form{display:flex;width:100%;max-width:340px;background:#f6f3ee;border-radius:10px;overflow:hidden;border:1px solid transparent;transition:border-color .3s}.wa-form:focus-within{border-color:var(--olive)}
.wa-form input{flex:1;min-width:0;border:0;background:transparent;padding:14px 14px;font-size:13px;color:var(--ink);outline:0}.wa-form button{border:0;background:var(--olive);color:#fff;padding:0 16px;cursor:pointer;display:grid;place-items:center;transition:background .3s}.wa-form button:hover{background:var(--olive-d)}
.foot-word{display:flex;align-items:center;justify-content:center;gap:clamp(10px,2vw,28px);margin:clamp(30px,4vw,56px) 0 6px;color:var(--olive);font:700 clamp(96px,22vw,330px)/.86 var(--display);letter-spacing:-.07em;user-select:none;overflow:hidden;padding-bottom:.08em}
.foot-word span{display:inline-block}
.js .foot-word span{transform:translateY(105%);transition:transform 1.1s var(--ease) calc(var(--i)*90ms)}.js .foot-word.in span{transform:none}
.foot-word em{font:500 clamp(14px,2.4vw,36px)/1.15 var(--display);letter-spacing:-.01em;font-style:normal;color:var(--coffee);width:min-content;align-self:center;margin-top:.9em}
.foot-copy{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0;padding-top:16px;color:#6c685a;font-size:11px}
.wa-float{position:fixed;z-index:70;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#1fae62;color:#fff;box-shadow:0 8px 28px #0003;transition:transform .3s var(--ease)}.wa-float:hover{transform:translateY(-4px) scale(1.06)}.wa-float svg{width:29px;height:29px}.wa-float:before{content:"";position:absolute;inset:0;border-radius:50%;background:#1fae62;z-index:-1;animation:ping 2.6s ease-out infinite}@keyframes ping{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.7);opacity:0}}

/* ===== inner pages ===== */
.page-hero{position:relative;overflow:hidden;min-height:clamp(380px,38vw,490px);display:flex;align-items:flex-end;padding:150px var(--gut) 66px;background:var(--olive-d);color:var(--cream)}
.ph-bg{position:absolute;inset:-12% 0;background:linear-gradient(90deg,#24251df0,#24251d70),url(assets/img/hero-premium.webp) center 55%/cover;opacity:.55}
.ph-in{position:relative;z-index:3}.page-hero h1{font-size:clamp(50px,7vw,96px);line-height:.98;letter-spacing:-.055em;margin:20px 0 18px}.page-hero p{max-width:480px;color:#e7ddc9;font-size:14px;line-height:1.85;margin:0}
.page-hero .fb.b1{top:28%;left:auto;right:16%}.page-hero .fb.b2{bottom:22%;right:8%}
.menu-main{padding-top:clamp(44px,5vw,68px)}
.tools{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.chip{border:1px solid #c9c0b1;padding:12px 20px;border-radius:40px;font:500 11px var(--sans);letter-spacing:.05em;color:var(--olive-d);transition:background .3s,color .3s,border-color .3s}.chip.on,.chip:hover{background:var(--olive);border-color:var(--olive);color:var(--cream)}
.picks{grid-template-columns:repeat(4,1fr);margin-bottom:34px}.picks .dish-ph{height:clamp(200px,19vw,270px)}.picks h3{font-size:18px}
.jump{position:sticky;top:60px;z-index:20;display:flex;gap:8px 20px;padding:14px 0;margin-bottom:10px;background:var(--paper);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;white-space:nowrap}.jump::-webkit-scrollbar{display:none}
.jump a{font:500 10px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#777164;padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}.jump a:hover,.jump a.on{color:var(--olive);border-color:var(--gold)}
.mcat{margin:clamp(40px,5vw,64px) 0}
.mcat-t{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:12px}
.mph{width:76px;height:76px;border-radius:50%;overflow:hidden;flex:none;background:#e7ddce;box-shadow:0 0 0 4px var(--paper),0 0 0 5px var(--gold)}.mph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.mcat:hover .mph img{transform:scale(1.12) rotate(3deg)}
.no{font:500 11px var(--sans);letter-spacing:.15em;color:#a68b60}.mcat h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.035em;margin:0}.mcat-t i{font-style:normal;color:#b89b6c;margin-left:auto;animation:spin 18s linear infinite}
.mitems{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,56px)}
.mi{padding:17px 0;border-bottom:1px solid var(--line);transition:padding .4s var(--ease)}.mi:hover{padding-left:10px}
.mi-h{display:flex;align-items:baseline;gap:12px}.mi-h h3{font:500 17px/1.3 var(--display);letter-spacing:-.02em}.mi-h u{flex:1;min-width:16px;border-bottom:1px dotted rgba(63,65,42,.4);text-decoration:none;transform:translateY(-4px)}.mi-h strong{font:600 13px var(--sans);color:var(--coffee);white-space:nowrap}
.mi p{margin:6px 0 0;font-size:12.5px;line-height:1.65;color:var(--muted);max-width:420px}
.foot-note{margin-top:44px;color:#777164;font-size:11px;line-height:1.8}
.story{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.story-ph{height:clamp(380px,42vw,580px);overflow:hidden}.story-ph img{width:100%;height:100%;object-fit:cover}
.story p{font-size:14px;line-height:2;color:var(--muted)}
.wall{columns:3;column-gap:18px}.wall figure{margin:0 0 18px;break-inside:avoid;background:#e8dece;overflow:hidden}.wall img{width:100%;transition:transform .9s var(--ease)}.wall figure:hover img{transform:scale(1.05)}.wall figcaption{padding:12px 14px;font:500 9px var(--sans);letter-spacing:.19em;color:#777164;background:var(--paper)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:22px}.cbox{background:var(--sand);padding:clamp(26px,3.5vw,42px)}.cbox h3{font-size:clamp(24px,2.6vw,34px);letter-spacing:-.035em;margin:12px 0 14px}.cbox p{font-size:14px;line-height:1.95;color:var(--muted);margin:0 0 22px}
.map{margin-top:24px;overflow:hidden;border:1px solid #d8cebe}.map iframe{display:block;width:100%;height:clamp(300px,34vw,400px);border:0;filter:grayscale(.35) sepia(.08)}

/* ===== page transition ===== */
body{animation:pgIn .6s ease both}body.leaving{opacity:0;transition:opacity .22s ease}@keyframes pgIn{from{opacity:.0}to{opacity:1}}

/* ===== responsive ===== */
@media(max-width:1050px){.nav{gap:15px;font-size:9.5px}.hero-copy{width:55%}.hero-stamp{right:5%;width:128px;height:128px}.hero-orbit{width:280px;height:280px}.picks{grid-template-columns:repeat(2,1fr)}.foot-cols{grid-template-columns:1fr 1fr}}
@media(max-width:850px){
.topbar{padding:14px 5%}.topbar:not(.solid){background:transparent}.brand{font-size:38px}
.menu-toggle{display:flex;position:relative;z-index:3;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #e8d5b7a0;border-radius:50%;background:transparent;padding:0;cursor:pointer}
.menu-toggle span{width:17px;height:1.5px;background:#f4e7d4;transition:transform .35s var(--ease)}.nav-open .menu-toggle span:first-child{transform:translateY(3.7px) rotate(45deg)}.nav-open .menu-toggle span:last-child{transform:translateY(-3.7px) rotate(-45deg)}
.nav{position:fixed;inset:0;z-index:2;padding:112px 9% 40px;background:rgba(32,33,24,.985);flex-direction:column;align-items:stretch;gap:0;font-size:inherit;letter-spacing:0;text-transform:none;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s,visibility .3s,transform .4s var(--ease);overflow-y:auto}
.nav-open .nav{opacity:1;visibility:visible;transform:none}
.nav a{font:500 27px var(--display);letter-spacing:-.02em;padding:12px 0;border-bottom:1px solid #ffffff1c;opacity:0;transform:translateY(14px);transition:opacity .4s,transform .5s var(--ease),color .3s}.nav a:after{display:none}.nav-open .nav a{opacity:1;transform:none;transition-delay:calc(var(--k,0)*50ms + .1s)}
.nav .nav-cta{justify-content:center;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-top:22px;border:1px solid #d6b77f;padding:16px}
.hero{height:auto;min-height:max(780px,100svh);max-height:none;padding:118px 6% 0;align-items:flex-start;flex-direction:column}
.hero-photo{position:absolute;inset:auto 0 0 0;width:100%;height:52%}.hp{background-image:url(assets/img/hero-mobile.webp);background-position:center 55%}
.js .hero-photo{clip-path:inset(100% 0 0 0)}
.hero:before{background:linear-gradient(180deg,#211d13 0,#211d13 40%,rgba(33,29,19,.88) 52%,rgba(33,29,19,.1) 75%,rgba(33,29,19,.25))}
.hero-copy{width:100%;max-width:560px}.hero h1{font-size:clamp(42px,11.6vw,72px);margin:20px 0 16px}.hero-copy p{font-size:14px;max-width:400px}
.hero-stamp{width:96px;height:96px;right:5%;top:auto;bottom:17%;gap:4px}.hero-stamp span{font-size:5.5px;max-width:66px}.hero-stamp b{font-size:20px}.hero-stamp i{font-size:12px}
.hero-orbit,.steam,.hero-bottom{display:none}.hero-note{left:6%;bottom:20px;font-size:8px}.fb.b1{top:42%;left:auto;right:8%}.fb.b2,.fb.b3{display:none}
.section{padding:72px 6%}.sec-head{display:block}.sec-head p{margin-top:16px}.intro-sec,.visit,.story{grid-template-columns:1fr;gap:36px}.intro-photo{margin-left:12px;height:420px}.photo-tag{left:-12px}
.feat-grid,.dish-grid{grid-template-columns:1fr 1fr}.feat:last-child{grid-column:1/-1;min-height:340px}.dish-grid .dish:last-child{grid-column:1/-1}
.g-grid{grid-template-columns:1fr 1fr;grid-template-rows:200px 150px 150px}.g-grid img:first-child{grid-row:auto;grid-column:1/3;object-position:50% 40%}.g-grid img:nth-child(4){grid-column:1/3}
.mitems,.contact{grid-template-columns:1fr}.wall{columns:2}.foot-cols{grid-template-columns:1fr 1fr}.fc-brand,.fc-join{grid-column:1/-1}.jump{top:56px}
.page-hero{padding:128px 6% 50px}.foot-top{padding-bottom:100px}
}
@media(max-width:560px){
.hero{min-height:max(800px,100svh)}.hero h1{font-size:clamp(42px,11.8vw,60px)}.actions{gap:9px;margin-top:24px}.btn{min-height:46px;padding:12px 18px;font-size:11px}
.feat-grid,.dish-grid,.picks{grid-template-columns:1fr}.feat,.feat:last-child{min-height:380px}.dish-ph{height:250px}.picks .dish-ph{height:230px}
.g-grid{grid-template-rows:200px 140px 140px;gap:8px}.wall{columns:1}.mph{width:60px;height:60px}.mcat-t{gap:12px}.mi-h h3{font-size:15.5px}
.foot-cols{grid-template-columns:1fr}.foot-copy{font-size:10px}.foot-card{padding-bottom:18px}.wa-float{right:14px;bottom:14px;width:50px;height:50px}.fb{opacity:.6}
.intro-tag{font-size:9px;letter-spacing:.24em}
}
@media(hover:hover) and (pointer:fine){.mag{transition:transform .25s var(--ease),background .35s,color .35s,box-shadow .35s}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js [data-r],.js [data-in],.js .wd>span,.js .ln>span,.js .foot-word span{opacity:1!important;transform:none!important;clip-path:none!important}.intro{display:none}}
