:root{
  --bg:#f3eddf;
  --cream:#f3eddf;
  --paper:#fbf8f0;
  --paper-2:#eee4d1;
  --ink:#17261c;
  --forest:#1f4c31;
  --forest-deep:#163622;
  --moss:#76845a;
  --terra:#b85f3d;
  --gold:#d6a249;
  --muted:#677066;
  --line:rgba(23,38,28,.16);
  --shadow:0 24px 70px rgba(35,48,31,.14);
  --radius:28px;
  --display:Georgia,'Times New Roman',serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --max:1240px;
  --ease:cubic-bezier(.2,.72,.25,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 84% 8%,rgba(214,162,73,.18),transparent 22rem),
    radial-gradient(circle at 5% 32%,rgba(118,132,90,.12),transparent 24rem),
    var(--cream);
  font-family:var(--sans);
  line-height:1.5;
  overflow-x:hidden;
}
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:20;
  opacity:.22;
  background-image:radial-gradient(rgba(23,38,28,.14) .55px,transparent .7px);
  background-size:4px 4px;
}

.panel{position:relative;height:155vh;background:var(--bg)}
.panel.short{height:132vh}
.pin{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--bg)}
.pin>.hero,.pin>.burger-section,.pin>.reviews-section,.pin>.faq-section,.pin>.visit-section{flex:1 1 auto}
.pin>.burger-section,.pin>.reviews-section,.pin>.faq-section,.pin>.visit-section{width:min(100% - 40px,var(--max));padding-top:76px;padding-bottom:76px}
.pin>.visit-section{width:100%;min-height:100svh}
.pin .faq-heading{position:static}
.panel-dark,.panel-dark .pin{background:var(--forest-deep)}
.js-animation-failed [data-reveal],.js-animation-failed .motion-word-inner{opacity:1!important;filter:none!important;transform:none!important;clip-path:none!important}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 14px;background:var(--forest);color:white;border-radius:10px;transform:translateY(-160%)}
.skip-link:focus{transform:none}

.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:50;
  min-height:78px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:28px;
  padding:12px clamp(20px,4vw,58px);
  border-bottom:1px solid transparent;
  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.site-header.is-scrolled{background:rgba(251,248,240,.9);border-color:var(--line);box-shadow:0 8px 30px rgba(31,47,35,.08);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:12px;min-width:max-content}
.brand img{width:47px;height:47px;object-fit:cover;border-radius:12px;mix-blend-mode:multiply}
.brand span{display:grid;line-height:1.05}
.brand strong{font-family:var(--display);font-size:1.04rem}
.brand small{margin-top:5px;color:var(--muted);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}
.site-nav{justify-self:center;display:flex;align-items:center;gap:clamp(18px,2.4vw,36px)}
.site-nav a{position:relative;font-size:.8rem;font-weight:700;letter-spacing:.06em}
.site-nav a::after{content:'';position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--terra);transition:right .3s var(--ease)}
.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a.is-active::after{right:0}
.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border-radius:999px;font-weight:800}
.header-cta{padding:0 20px;background:var(--forest);color:white;font-size:.78rem;box-shadow:0 10px 24px rgba(31,76,49,.2)}
.cta-short{display:none}
.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:var(--paper);align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu-toggle>span:not(.sr-only){width:19px;height:2px;background:var(--forest);border-radius:2px;transition:transform .25s ease,opacity .25s ease}

.hero{
  width:min(100% - 40px,var(--max));
  min-height:100svh;
  margin:0 auto;
  padding:132px 0 64px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.82fr);
  gap:clamp(44px,7vw,100px);
  align-items:center;
}
.hero-copy{padding-bottom:2vh;will-change:transform,opacity}
.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 22px;color:var(--forest);font-size:.69rem;font-weight:900;letter-spacing:.19em;text-transform:uppercase}
.eyebrow>span{width:34px;height:1px;background:currentColor}
.hero h1{max-width:780px;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(4.1rem,7.2vw,7.45rem);line-height:.83;letter-spacing:-.065em}
.hero-line{display:block}
.hero-script{margin-top:.18em;color:var(--terra);font-style:italic;font-weight:400;letter-spacing:-.05em}
.hero-intro{max-width:620px;margin:34px 0 0;color:#455047;font-size:clamp(1rem,1.25vw,1.18rem);line-height:1.75}
.hero-actions{display:flex;align-items:center;gap:22px;margin-top:32px}
.button{padding:0 22px;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--forest);color:white;box-shadow:0 14px 30px rgba(31,76,49,.22)}
.button-primary:hover{box-shadow:0 18px 38px rgba(31,76,49,.27)}
.button-text{padding-inline:4px;border-radius:0;border-bottom:1px solid var(--ink);font-size:.86rem;min-height:38px}
.hero-facts{display:flex;gap:clamp(24px,4vw,54px);margin:42px 0 0;padding:26px 0 0;border-top:1px solid var(--line)}
.hero-facts div{display:grid;gap:2px}
.hero-facts dt{font-family:var(--display);font-size:1.9rem;color:var(--forest);line-height:1}
.hero-facts dd{margin:0;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.hero-visual{position:relative;align-self:center;max-width:520px;justify-self:end}
.hero-photo-wrap{position:relative;border-radius:210px 210px 26px 26px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.7);background:var(--paper);will-change:transform}
.hero-photo-wrap::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 10px rgba(255,255,255,.12);pointer-events:none}
.hero-photo-wrap>img{width:100%;height:min(66svh,680px);min-height:520px;object-fit:cover;object-position:center;transition:transform 1.4s var(--ease)}
.hero-visual:hover .hero-photo-wrap>img{transform:scale(1.035)}
.hero-stamp{position:absolute;right:18px;bottom:20px;width:116px;height:116px;display:grid;place-content:center;text-align:center;border-radius:50%;background:var(--paper);color:var(--forest);box-shadow:0 14px 30px rgba(18,43,27,.2);transform:rotate(-8deg);animation:stamp-float 4.8s ease-in-out infinite}
.hero-stamp span{font-size:.6rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.hero-stamp strong{font-family:var(--display);font-size:1.05rem;font-style:italic}
.hero-caption{display:flex;justify-content:space-between;gap:18px;margin:14px 4px 0;color:var(--muted);font-size:.76rem}
.hero-caption span{color:var(--forest);font-weight:900;letter-spacing:.12em}

.values-marquee{overflow:hidden;background:var(--forest);color:#f9f3e5;border-block:1px solid rgba(255,255,255,.15)}
.values-track{display:flex;align-items:center;width:max-content;gap:27px;padding:14px 0;animation:marquee 34s linear infinite}
.values-track span{font-family:var(--display);font-style:italic;font-size:1rem;white-space:nowrap}
.values-track i{color:var(--gold);font-style:normal;font-size:.72rem}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes stamp-float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-8px) rotate(-4deg)}}

.section{width:min(100% - 40px,var(--max));margin:0 auto;padding:clamp(88px,11vw,150px) 0}
.section-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr);gap:60px;align-items:end;margin-bottom:52px}
.section-heading h2{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(3.1rem,6.8vw,6.4rem);line-height:.9;letter-spacing:-.055em}
.section-heading h2 em{color:var(--terra);font-weight:400}
.section-heading>p{margin:0 0 8px;color:var(--muted);font-size:1.02rem;line-height:1.7}
.signature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.signature-card{min-width:0}
.signature-card-wide{grid-column:span 2}
.signature-card a{display:block;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 38px rgba(35,48,31,.08);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.signature-card a:hover{transform:translateY(-6px);box-shadow:0 24px 52px rgba(35,48,31,.14)}
.signature-photo{height:360px;overflow:hidden;background:var(--paper-2)}
.signature-card:not(.signature-card-wide) .signature-photo{height:360px}
.signature-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.signature-card a:hover img{transform:scale(1.045)}
.signature-info{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:18px 18px 20px}
.dish-number{display:grid;place-items:center;min-width:38px;height:27px;padding:0 8px;border-radius:999px;background:var(--forest);color:white;font-size:.66rem;font-weight:900;letter-spacing:.08em}
.signature-info h3{margin:1px 0 0;font-family:var(--display);font-size:1.08rem;line-height:1.25}
.signature-info strong{color:var(--terra);font-size:.82rem;white-space:nowrap}
.placeholder-section{min-height:42vh;display:grid;place-items:center;border-top:1px solid var(--line)}

.scroll-progress{position:fixed;inset:0 0 auto;height:3px;z-index:90;background:transparent;pointer-events:none}
.scroll-progress span{display:block;width:100%;height:100%;background:var(--terra);transform:scaleX(0);transform-origin:left center;will-change:transform}

.quick-visit{
  width:min(100% - 40px,var(--max));
  margin:26px auto 0;
  display:grid;
  grid-template-columns:1fr 1fr .8fr auto;
  align-items:center;
  gap:0;
  overflow:hidden;
  background:rgba(251,248,240,.72);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 14px 40px rgba(35,48,31,.06);
}
.quick-visit>div{display:grid;gap:4px;min-height:76px;padding:17px 22px;border-right:1px solid var(--line)}
.quick-visit span{color:var(--muted);font-size:.61rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.quick-visit strong{font-family:var(--display);font-size:.92rem;line-height:1.3}
.quick-visit>a{align-self:stretch;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 24px;background:var(--forest);color:white;font-size:.76rem;font-weight:900}

.anatomy-section{padding-bottom:clamp(100px,12vw,170px)}
.anatomy-heading{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.6fr);gap:70px;align-items:end;margin-bottom:46px}
.anatomy-heading h2,.story-copy h2,.burger-intro h2,.menu-heading h2,.visit-copy h2{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(3.5rem,7.2vw,7rem);line-height:.87;letter-spacing:-.058em}
.anatomy-heading h2 em,.story-copy h2 em,.burger-intro h2 em,.menu-heading h2 em,.visit-copy h2 em{color:var(--terra);font-weight:400}
.anatomy-copy{padding-bottom:8px}
.anatomy-copy>p{margin:0;color:var(--muted);font-size:1.02rem;line-height:1.75}
.feature-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.feature-actions button{border:0;cursor:pointer}
.button-outline{border:1px solid currentColor!important;background:transparent;color:var(--forest)}
.anatomy-figure{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.anatomy-image-wrap{overflow:hidden;background:#f5efe3}.anatomy-image-wrap picture,.burger-media picture{display:block;width:100%;height:100%}
.anatomy-image-wrap img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.anatomy-figure figcaption,.burger-figure figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:18px 22px 21px;border-top:1px solid var(--line)}
.anatomy-figure figcaption span,.burger-figure figcaption span{color:var(--forest);font-size:.65rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.anatomy-figure figcaption strong,.burger-figure figcaption strong{font-family:var(--display);font-size:1.2rem;font-weight:400;text-align:right}
.diagram-legend{display:none;margin:16px 0 0;padding:0;list-style:none}

.story-section{padding:clamp(90px,11vw,150px) max(20px,calc((100vw - var(--max))/2));background:var(--forest-deep);color:#f6f0e5;overflow:hidden}
.story-inner{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(0,1fr);gap:clamp(50px,8vw,110px);align-items:center}
.story-visual{position:relative}
.story-photo{height:720px;border-radius:260px 260px 28px 28px;overflow:hidden;background:#203f2b;box-shadow:0 30px 80px rgba(4,20,11,.28)}
.story-photo img{width:100%;height:110%;object-fit:cover;object-position:center;transform:translateY(var(--parallax-y,0px)) scale(1.01);will-change:transform}
.story-year{position:absolute;right:-28px;bottom:38px;width:148px;height:148px;display:grid;place-content:center;text-align:center;border-radius:50%;background:var(--gold);color:var(--forest-deep);box-shadow:0 18px 40px rgba(0,0,0,.2);transform:rotate(7deg)}
.story-year span{font-size:.62rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.story-year strong{font-family:var(--display);font-size:2.5rem;line-height:1}
.story-section .eyebrow{color:#d9d3a6}
.story-copy h2{font-size:clamp(3.5rem,6.4vw,6.4rem)}
.story-copy h2 em{color:#e3b067}
.story-copy>p{max-width:650px;color:rgba(246,240,229,.74);font-size:1.05rem;line-height:1.8}
.story-copy blockquote{margin:34px 0 0;padding:24px 0 0;border-top:1px solid rgba(255,255,255,.18);font-family:var(--display);font-size:clamp(1.3rem,2vw,1.8rem);font-style:italic;line-height:1.45;color:#fff}
.promise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:84px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.12);border-radius:22px;overflow:hidden}
.promise-grid article{min-height:230px;padding:28px 24px;background:#183b28}
.promise-grid span{color:#d9d3a6;font-size:.65rem;font-weight:900;letter-spacing:.14em}.promise-grid h3{margin:40px 0 10px;font-family:var(--display);font-size:1.35rem;font-weight:400}.promise-grid p{margin:0;color:rgba(246,240,229,.65);font-size:.86rem;line-height:1.65}

.craft-section{padding-top:clamp(100px,12vw,170px)}
.craft-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.craft-card{display:grid;grid-template-columns:minmax(180px,.8fr) 1fr;min-height:390px;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 42px rgba(35,48,31,.08)}
.craft-card-large{grid-column:1/-1;grid-template-columns:minmax(360px,.9fr) 1fr;min-height:520px}
.craft-photo{overflow:hidden;background:var(--paper-2)}
.craft-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.craft-card:hover .craft-photo img{transform:scale(1.035)}
.craft-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,4vw,52px)}
.craft-body .eyebrow{margin-bottom:15px}.craft-body h3{margin:0;font-family:var(--display);font-size:clamp(2rem,3.3vw,3.5rem);font-weight:400;line-height:.95;letter-spacing:-.04em}.craft-body>p:not(.eyebrow){color:var(--muted);line-height:1.75}
.text-link{align-self:flex-start;min-height:44px;margin-top:10px;padding:0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font-size:.78rem;font-weight:900;cursor:pointer}

.burger-section{width:min(100% - 40px,var(--max));margin:0 auto;padding:clamp(40px,6vw,80px) 0 clamp(100px,12vw,170px);display:grid;grid-template-columns:minmax(280px,.46fr) minmax(0,1fr);gap:clamp(38px,6vw,78px);align-items:center}
.burger-intro h2{font-size:clamp(3.3rem,6vw,6.2rem)}
.burger-intro>p:not(.eyebrow){color:var(--muted);line-height:1.75}.burger-intro .feature-actions{align-items:stretch;flex-direction:column}.burger-intro .feature-actions .button{width:100%}
.burger-figure{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}
.burger-media{overflow:hidden;background:#f4ecdf}.burger-media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}

.menu-section{position:relative;padding:clamp(90px,11vw,150px) 20px;background:#e8dfcf;border-block:1px solid var(--line)}
.menu-shell{width:min(100%,var(--max));margin:0 auto}
.menu-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.5fr);gap:70px;align-items:end;margin-bottom:42px}
.menu-heading h2{font-size:clamp(3.6rem,7vw,7rem)}.menu-heading>p{margin:0 0 8px;color:var(--muted);line-height:1.7}
.menu-toolbar{position:sticky;top:78px;z-index:15;display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px;background:rgba(251,248,240,.9);border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 38px rgba(35,48,31,.08);backdrop-filter:blur(16px)}
.menu-search{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:54px;padding:0 14px;border:1px solid var(--line);border-radius:13px;background:white}
.menu-search>span[aria-hidden]{font-size:1.45rem;line-height:1;transform:rotate(-12deg)}
.menu-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:1rem}.menu-search input::placeholder{color:#858a82}
.menu-search button{width:42px;height:42px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.5rem;cursor:pointer;opacity:0;pointer-events:none}.menu-search:focus-within button,.menu-search input:not(:placeholder-shown)+button{opacity:1;pointer-events:auto}
.category-trigger{display:none;min-height:54px;padding:0 16px;border:1px solid var(--line);border-radius:13px;background:white;text-align:left;cursor:pointer}.category-trigger span{display:block;color:var(--muted);font-size:.58rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.category-trigger strong{display:block;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.category-trigger i{font-style:normal}
.category-pills{display:flex;gap:9px;overflow-x:auto;padding:17px 2px 8px;scrollbar-width:none;scroll-snap-type:x proximity}.category-pills::-webkit-scrollbar{display:none}
.category-pills button{flex:0 0 auto;min-height:44px;padding:0 17px;border:1px solid var(--line);border-radius:999px;background:rgba(251,248,240,.66);color:var(--ink);font-size:.73rem;font-weight:800;cursor:pointer;scroll-snap-align:start;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}.category-pills button:hover{transform:translateY(-2px)}.category-pills button[aria-pressed="true"],.category-pills button.is-active{background:var(--forest);border-color:var(--forest);color:white}
.menu-meta{display:flex;justify-content:space-between;gap:20px;margin:26px 0 14px;color:var(--muted);font-size:.75rem}.menu-meta p{margin:0;font-weight:800}.menu-meta span{font-style:italic}
.menu-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.menu-item{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:17px;min-height:136px;padding:10px 17px 10px 10px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(35,48,31,.06);color:inherit;font:inherit;text-align:left;cursor:pointer;opacity:1;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s ease;content-visibility:auto;contain-intrinsic-size:136px}
.menu-item:hover,.menu-item:focus-visible{transform:translateY(-3px);border-color:rgba(31,76,49,.45);box-shadow:0 18px 36px rgba(35,48,31,.1);outline:none}
.menu-item.is-highlighted{animation:item-highlight 1.4s ease;border-color:var(--terra);box-shadow:0 0 0 4px rgba(184,95,61,.14)}
@keyframes item-highlight{0%,100%{background:var(--paper)}45%{background:#f6ddcb}}
.menu-item-photo{width:112px;height:112px;border-radius:12px;overflow:hidden;background:var(--paper-2)}.menu-item-photo img{width:100%;height:100%;object-fit:cover}.menu-item-photo.is-empty{display:grid;place-items:center;color:var(--forest);font-family:var(--display);font-size:1.4rem;background:linear-gradient(145deg,#e7ddc8,#f7f1e6)}
.menu-item-copy{min-width:0}.menu-item-topline{display:flex;align-items:center;gap:7px;margin-bottom:8px}.menu-item-number{display:inline-grid;place-items:center;min-width:37px;height:24px;padding:0 7px;border-radius:999px;background:var(--forest);color:white;font-size:.63rem;font-weight:900;letter-spacing:.07em}.menu-item-badge{color:var(--terra);font-size:.61rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.menu-item h3{margin:0;font-family:var(--display);font-size:1.04rem;font-weight:400;line-height:1.28}.menu-item-category{display:block;margin-top:6px;color:var(--muted);font-size:.68rem}.menu-item-price{color:var(--forest);font-size:.84rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.menu-empty{text-align:center;padding:70px 20px;background:rgba(251,248,240,.48);border:1px dashed var(--line);border-radius:22px}.menu-empty strong{font-family:var(--display);font-size:1.6rem}.menu-empty p{color:var(--muted)}.menu-empty button{margin:auto;cursor:pointer}

.reviews-section{padding-block:clamp(100px,12vw,165px)}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.reviews-grid blockquote{display:flex;flex-direction:column;min-height:350px;margin:0;padding:30px;background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 38px rgba(35,48,31,.07)}.stars{color:var(--gold);letter-spacing:.13em}.reviews-grid blockquote>p{margin:58px 0 30px;font-family:var(--display);font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.35}.reviews-grid footer{display:grid;gap:3px;margin-top:auto}.reviews-grid footer strong{font-size:.8rem}.reviews-grid footer span{color:var(--muted);font-size:.7rem}

.faq-section{width:min(100% - 40px,var(--max));margin:0 auto;padding:0 0 clamp(110px,13vw,180px);display:grid;grid-template-columns:minmax(260px,.52fr) minmax(0,1fr);gap:clamp(50px,9vw,120px);align-items:start}.faq-heading{position:sticky;top:120px}.faq-heading h2{margin:0;font-family:var(--display);font-size:clamp(3rem,5.5vw,5.3rem);font-weight:400;line-height:.92;letter-spacing:-.05em}.faq-heading>p:not(.eyebrow){color:var(--muted);line-height:1.7}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:18px;list-style:none;cursor:pointer;font-family:var(--display);font-size:clamp(1.15rem,2vw,1.45rem)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;font-family:var(--sans);transition:transform .3s ease,background .3s ease,color .3s ease}.faq-list details[open] summary span{transform:rotate(45deg);background:var(--forest);color:white}.faq-list details p{max-width:650px;margin:-5px 52px 26px 0;color:var(--muted);line-height:1.75}

.visit-section{position:relative;min-height:760px;padding:clamp(90px,11vw,150px) max(20px,calc((100vw - var(--max))/2)) 60px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);gap:clamp(50px,9vw,120px);align-items:center;background:var(--forest-deep);color:#f7f0e4;overflow:hidden}.visit-section::before{content:'';position:absolute;left:-14vw;bottom:-36vw;width:62vw;height:62vw;border:1px solid rgba(255,255,255,.08);border-radius:50%}.visit-copy,.visit-card,.visit-signoff{position:relative}.visit-copy>img{width:78px;height:78px;margin-bottom:42px;border-radius:18px;object-fit:cover;mix-blend-mode:screen}.visit-section .eyebrow{color:#d9d3a6}.visit-copy h2{font-size:clamp(4rem,7vw,7rem)}.visit-copy h2 em{color:#e3b067}.visit-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:38px}.button-light{background:#f7f0e4;color:var(--forest-deep)}.button-ghost-light{border:1px solid rgba(255,255,255,.35);color:white}.visit-card{padding:30px;border:1px solid rgba(255,255,255,.16);border-radius:24px;background:rgba(255,255,255,.06);backdrop-filter:blur(12px)}.visit-card>div{display:grid;grid-template-columns:88px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.13)}.visit-card span{color:#d9d3a6;font-size:.62rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.visit-card strong{font-family:var(--display);font-size:1.1rem;font-weight:400;line-height:1.5}.visit-card small{color:rgba(255,255,255,.58);font-family:var(--sans);font-size:.72rem}.visit-card>p{margin:22px 0 0;color:rgba(255,255,255,.52);font-size:.7rem;line-height:1.7}.visit-signoff{position:absolute;left:max(20px,calc((100vw - var(--max))/2));bottom:24px;margin:0;color:rgba(255,255,255,.36);font-family:var(--display);font-style:italic}

dialog{color:var(--ink)}dialog::backdrop{background:rgba(10,20,13,.58);backdrop-filter:blur(5px)}
.category-sheet{width:min(92vw,760px);max-height:min(82vh,780px);margin:auto auto 0;padding:0;border:0;border-radius:24px 24px 0 0;background:var(--paper);box-shadow:0 -20px 70px rgba(0,0,0,.2);transform:translateY(18px);opacity:0;transition:transform .32s var(--ease),opacity .32s ease;overflow:auto}.category-sheet[open]{transform:none;opacity:1}.sheet-handle{width:46px;height:4px;margin:10px auto 2px;border-radius:999px;background:var(--line)}.category-sheet header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;background:rgba(251,248,240,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.category-sheet header span{color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.category-sheet header h2{margin:2px 0 0;font-family:var(--display);font-size:1.55rem}.category-sheet header button,.dialog-close{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:white;font-size:1.4rem;cursor:pointer}.category-sheet-groups{display:grid;gap:22px;padding:22px}.category-sheet-group h3{margin:0 0 10px;color:var(--muted);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase}.category-sheet-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.category-sheet-buttons button{min-height:50px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:white;text-align:left;font-size:.8rem;font-weight:800;cursor:pointer}.category-sheet-buttons button[aria-current="true"]{background:var(--forest);color:white;border-color:var(--forest)}
.dish-dialog{width:min(92vw,880px);max-height:88vh;margin:auto;padding:0;border:0;border-radius:26px;background:var(--paper);box-shadow:0 30px 100px rgba(0,0,0,.3);overflow:hidden}.dish-dialog[open]{display:grid;grid-template-columns:1fr 1fr}.dialog-close{position:absolute;right:14px;top:14px;z-index:2;background:rgba(251,248,240,.94)}.dish-dialog-photo{min-height:500px;background:var(--paper-2)}.dish-dialog-photo img{width:100%;height:100%;object-fit:cover}.dish-dialog-photo.is-empty{display:grid;place-items:center;color:var(--forest);font-family:var(--display);font-size:3rem}.dish-dialog-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,62px)}.dish-dialog-topline{display:flex;gap:10px;color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.dish-dialog-body h2{margin:22px 0 8px;font-family:var(--display);font-size:clamp(2rem,4vw,3.6rem);font-weight:400;line-height:.95}.dish-dialog-body>p{min-height:22px;margin:0;color:var(--terra);font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.dish-dialog-body>strong{margin:28px 0;color:var(--forest);font-size:1.1rem}.dish-dialog-body .button{align-self:flex-start}

.motion-ready [data-reveal]{opacity:0;filter:blur(4px);transform:translate3d(var(--reveal-x,0),var(--reveal-y,28px),0) scale(.985);will-change:opacity,filter,transform;transition:opacity .76s var(--ease),filter .76s var(--ease),transform .76s var(--ease)}
.motion-ready [data-reveal].is-visible{opacity:1;filter:none;transform:translate3d(0,0,0) scale(1)}
.motion-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.12em 0;margin:-.12em 0}
.motion-ready .word-reveal .motion-word-inner{display:inline-block;opacity:0;transform:translate3d(0,118%,0) rotate(2deg);transform-origin:left bottom;will-change:opacity,transform;transition:opacity .64s var(--ease),transform .78s var(--ease);transition-delay:var(--word-delay,0ms)}
.motion-ready .word-reveal.is-past .motion-word-inner{transform:translate3d(0,-112%,0) rotate(-2deg);transition-delay:0ms}
.motion-ready .word-reveal.is-word-visible .motion-word-inner{opacity:1;transform:translate3d(0,0,0) rotate(0)}
.scroll-motion.motion-ready [data-reveal],.scroll-motion.motion-ready .motion-word-inner{transition:none}
.scroll-motion .signature-photo img,.scroll-motion .craft-photo img,.scroll-motion .anatomy-image-wrap img,.scroll-motion .burger-media img{transition:none!important;will-change:transform}
.motion-ready .hero-kicker,.motion-ready .hero-intro,.motion-ready .hero-actions,.motion-ready .hero-facts,.motion-ready .hero-visual{opacity:0;transform:translateY(22px);animation:hero-in .82s var(--ease) forwards}
.motion-ready .hero-kicker{animation-delay:.06s}.motion-ready .hero-intro{animation-delay:.31s}.motion-ready .hero-actions{animation-delay:.39s}.motion-ready .hero-facts{animation-delay:.47s}.motion-ready .hero-visual{animation-delay:.2s;transform:translateY(26px) scale(.98)}
@keyframes hero-in{to{opacity:1;transform:none}}

@media (max-width:1040px){
  .site-nav{gap:16px}.site-nav a{font-size:.7rem}.header-cta{padding-inline:14px;font-size:.7rem}
  .hero{grid-template-columns:minmax(0,1fr) minmax(340px,.76fr);gap:48px}
  .hero h1{font-size:clamp(4rem,8vw,6.5rem)}
  .hero-photo-wrap>img{min-height:500px}
}

@media (max-width:900px){
  .panel,.panel.short{height:auto}
  .pin{position:relative;top:auto;min-height:0;display:block;overflow:hidden}
  .pin>.burger-section,.pin>.reviews-section,.pin>.faq-section,.pin>.visit-section{width:min(100% - 40px,var(--max));padding-top:0;padding-bottom:0}
  .pin>.visit-section{width:100%;min-height:0}
  html{scroll-padding-top:76px}
  .site-header{min-height:70px;padding:10px 16px;grid-template-columns:1fr auto auto;gap:10px}
  .brand img{width:44px;height:44px}.brand small{display:none}
  .header-cta{grid-column:2;grid-row:1;min-height:44px;padding-inline:15px}
  .menu-toggle{display:flex;grid-column:3;grid-row:1;z-index:2}
  .menu-toggle[aria-expanded="true"]>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"]>span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"]>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .site-nav{position:fixed;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;padding:90px 28px 34px;background:rgba(251,248,240,.98);transform:translateX(100%);visibility:hidden;pointer-events:none;transition:transform .45s var(--ease),visibility 0s linear .45s}
  .site-nav.is-open{transform:none;visibility:visible;pointer-events:auto;transition:transform .45s var(--ease),visibility 0s}
  .site-nav a{width:100%;padding:11px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:clamp(2rem,8vw,3.4rem);font-weight:400;letter-spacing:-.04em}
  .hero{min-height:auto;padding-top:112px;grid-template-columns:1fr;gap:52px}
  .hero-copy{max-width:760px}.hero h1{font-size:clamp(4.4rem,11vw,7rem)}
  .hero-visual{width:min(100%,620px);max-width:none;justify-self:center}.hero-photo-wrap>img{height:min(74svh,700px)}
  .quick-visit{grid-template-columns:repeat(2,1fr)}.quick-visit>div:nth-child(2){border-right:0}.quick-visit>a{min-height:66px}
  .anatomy-heading,.menu-heading{grid-template-columns:1fr;gap:26px}.anatomy-copy{max-width:680px}
  .story-inner{grid-template-columns:1fr;gap:64px}.story-visual{width:min(100%,560px);margin:auto}.story-photo{height:660px}.story-copy{max-width:760px}.promise-grid{grid-template-columns:repeat(2,1fr)}
  .craft-grid{grid-template-columns:1fr}.craft-card-large{grid-column:auto}.craft-card,.craft-card-large{grid-template-columns:minmax(280px,.8fr) 1fr;min-height:430px}
  .burger-section{grid-template-columns:1fr}.burger-intro{max-width:680px}.burger-intro .feature-actions{flex-direction:row}.burger-intro .feature-actions .button{width:auto}
  .reviews-grid{grid-template-columns:repeat(2,1fr)}.reviews-grid blockquote:last-child{grid-column:1/-1;min-height:270px}
  .faq-section{grid-template-columns:1fr}.faq-heading{position:static;max-width:660px}
  .visit-section{grid-template-columns:1fr;min-height:auto;padding-bottom:90px}.visit-copy{max-width:760px}.visit-card{max-width:680px}
}

@media (max-width:780px){
  html{scroll-padding-top:72px}
  .site-header{min-height:68px;padding:9px 14px;grid-template-columns:1fr auto auto}
  .brand img{width:42px;height:42px}.brand small{display:none}
  .menu-toggle{display:flex;z-index:2}
  .menu-toggle[aria-expanded="true"]>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"]>span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"]>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .site-nav{position:fixed;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:90px 28px 34px;background:rgba(251,248,240,.98);transform:translateX(100%);visibility:hidden;pointer-events:none;transition:transform .45s var(--ease),visibility 0s linear .45s}
  .site-nav.is-open{transform:none;visibility:visible;pointer-events:auto;transition:transform .45s var(--ease),visibility 0s}
  .site-nav a{width:100%;padding:12px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:clamp(2rem,10vw,3.4rem);font-weight:400;letter-spacing:-.04em}
  .hero{width:min(100% - 28px,var(--max));min-height:auto;padding:108px 0 74px;grid-template-columns:1fr;gap:44px}
  .hero h1{font-size:clamp(3.6rem,16.5vw,6rem);line-height:.86}
  .hero-intro{margin-top:26px;line-height:1.65}
  .hero-actions{align-items:stretch;flex-direction:column;gap:12px}.button{width:100%}.button-text{min-height:48px;border:1px solid var(--line);border-radius:999px}
  .hero-facts{justify-content:space-between;gap:10px;margin-top:32px}.hero-facts dt{font-size:1.55rem}.hero-facts dd{font-size:.6rem}
  .hero-visual{max-width:none;width:100%;justify-self:stretch}
  .hero-photo-wrap{border-radius:160px 160px 22px 22px}.hero-photo-wrap>img{height:72svh;min-height:480px;max-height:640px}
  .hero-stamp{width:102px;height:102px}
  .section{width:min(100% - 28px,var(--max));padding:82px 0}
  .section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:34px}.section-heading h2{font-size:clamp(3rem,14vw,5rem)}.section-heading>p{max-width:35rem}
  .signature-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 22px;overscroll-behavior-inline:contain;scrollbar-width:none}
  .signature-grid::-webkit-scrollbar{display:none}
  .signature-card,.signature-card-wide{flex:0 0 min(84vw,360px);scroll-snap-align:center;grid-column:auto}
  .signature-photo,.signature-card:not(.signature-card-wide) .signature-photo{height:350px}
  .signature-info{grid-template-columns:auto 1fr;}.signature-info strong{grid-column:2}
  .quick-visit{width:calc(100% - 28px);margin-top:18px;grid-template-columns:1fr 1fr}.quick-visit>div{min-height:82px;padding:15px 14px}.quick-visit>div:nth-child(3){border-top:1px solid var(--line)}.quick-visit>a{grid-column:1/-1;min-height:54px}
  .anatomy-heading h2,.story-copy h2,.burger-intro h2,.menu-heading h2,.visit-copy h2{font-size:clamp(3.15rem,14vw,5.3rem)}
  .anatomy-figure{border-radius:20px}.anatomy-image-wrap{aspect-ratio:1/1}.anatomy-image-wrap img{width:100%;max-width:none;height:100%;margin-left:0;aspect-ratio:auto;object-fit:cover;object-position:center}
  .anatomy-figure figcaption,.burger-figure figcaption{align-items:flex-start;flex-direction:column;gap:7px;padding:14px 15px 16px}.anatomy-figure figcaption strong,.burger-figure figcaption strong{text-align:left;font-size:1rem}
  .diagram-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.diagram-legend li{min-height:44px;display:flex;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:rgba(251,248,240,.6);font-size:.72rem;font-weight:800}
  .story-section{padding-inline:14px}.story-photo{height:540px;border-radius:190px 190px 22px 22px}.story-year{right:-3px;bottom:20px;width:116px;height:116px}.story-year strong{font-size:2rem}.promise-grid{margin-top:58px}
  .craft-card,.craft-card-large{grid-template-columns:1fr;min-height:0}.craft-photo{height:330px}.craft-body{padding:28px 22px 32px}.craft-body h3{font-size:2.4rem}
  .burger-section{width:calc(100% - 28px)}.burger-intro .feature-actions{align-items:stretch;flex-direction:column}.burger-intro .feature-actions .button{width:100%}.burger-figure{border-radius:20px}.burger-media{aspect-ratio:1/1}.burger-media img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
  .menu-section{padding-inline:14px}.menu-toolbar{top:68px;grid-template-columns:minmax(0,1fr) auto;padding:8px}.category-trigger{display:grid;grid-template-columns:1fr auto;column-gap:9px;align-items:center}.category-trigger span,.category-trigger strong{grid-column:1}.category-trigger i{grid-column:2;grid-row:1/3}.category-pills{display:none}.menu-meta span{display:none}.menu-results{grid-template-columns:1fr}.menu-item{grid-template-columns:92px minmax(0,1fr) auto;min-height:112px;padding:10px 13px 10px 10px;gap:13px;contain-intrinsic-size:112px}.menu-item-photo{width:92px;height:92px}.menu-item h3{font-size:1rem}
  .reviews-grid{grid-template-columns:1fr}.reviews-grid blockquote,.reviews-grid blockquote:last-child{grid-column:auto;min-height:290px}.reviews-grid blockquote>p{margin-top:38px}
  .faq-section{width:calc(100% - 28px);padding-bottom:92px}.faq-list summary{min-height:74px}.faq-list details p{margin-right:0}
  .visit-section{padding-inline:20px}.visit-copy>img{width:66px;height:66px;margin-bottom:32px}.visit-actions{align-items:stretch;flex-direction:column}.visit-actions .button{width:100%}.visit-card{padding:22px}.visit-card>div{grid-template-columns:76px 1fr}.visit-signoff{left:20px}
  .dish-dialog{width:100%;max-width:none;max-height:92svh;margin:auto 0 0;border-radius:24px 24px 0 0}.dish-dialog[open]{display:grid;grid-template-columns:1fr}.dish-dialog-photo{min-height:0;height:38svh}.dish-dialog-body{padding:28px 22px calc(28px + env(safe-area-inset-bottom))}.dish-dialog-body .button{width:100%}
  .category-sheet{width:100%;max-width:none;max-height:88svh}
}

@media (max-width:420px){
  .hero-caption{font-size:.68rem}.hero-photo-wrap>img{height:66svh}
  .values-track{animation-duration:27s}
  .signature-card,.signature-card-wide{flex-basis:88vw}.signature-photo,.signature-card:not(.signature-card-wide) .signature-photo{height:330px}
  .brand strong{font-size:.9rem}.header-cta{width:62px;padding:0}.cta-long{display:none}.cta-short{display:inline}.menu-toggle{width:44px;height:44px}
  .hero{width:calc(100% - 24px)}.hero h1{font-size:clamp(3.45rem,17vw,5rem)}
  .hero-facts dd{max-width:82px}
  .promise-grid{grid-template-columns:1fr}.promise-grid article{min-height:190px}.promise-grid h3{margin-top:25px}
  .diagram-legend{grid-template-columns:1fr 1fr}
  .menu-search{padding-inline:10px;gap:8px}.menu-search>span[aria-hidden]{display:none}.category-trigger{padding-inline:11px}.category-trigger strong{max-width:102px}
  .menu-item{grid-template-columns:82px minmax(0,1fr);min-height:102px}.menu-item-photo{width:82px;height:82px}.menu-item-price{grid-column:2;justify-self:start}.menu-item-category{display:none}
  .category-sheet-buttons{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  html:not(.motion-forced){scroll-behavior:auto}
  html:not(.motion-forced) *,html:not(.motion-forced) *::before,html:not(.motion-forced) *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  html:not(.motion-forced) .motion-ready [data-reveal],html:not(.motion-forced) .motion-ready .hero-kicker,html:not(.motion-forced) .motion-ready .hero-line,html:not(.motion-forced) .motion-ready .hero-intro,html:not(.motion-forced) .motion-ready .hero-actions,html:not(.motion-forced) .motion-ready .hero-facts,html:not(.motion-forced) .motion-ready .hero-visual{opacity:1;transform:none}
  html:not(.motion-forced) .values-track{animation:none}
  html:not(.motion-forced) .story-photo img{transform:none!important}
}


/* ============================================================
   Ported motion layer -- v3
   The five heading entrances, the drifting leaves, the panel
   aura, the dot rail and the card spotlight all come from the
   v1 build. Everything here is driven by the scroll loop in
   app.js; the rules below only hold the resting state.
   ============================================================ */

/* The pin centres its section with grid rather than flex.
   As a flex item the section gets flex-grow:1, and a grown item has no free
   space left for its own `margin:0 auto` to absorb -- so every section that
   sizes itself with `width:min(100% - 40px, var(--max)); margin:0 auto` was
   being stretched edge to edge and losing its gutters. A grid child keeps
   that width and those auto margins, while a section with no width of its
   own (the dark story and visit bands) still stretches full bleed.
   The aura and the leaf layer are absolutely positioned, so neither takes
   part in the layout. */
.pin{display:grid;align-content:center;justify-items:stretch}
.pin>section{position:relative;z-index:2}

.panel.flow{height:auto}
/* The aura is inset -18%, so it reaches past the panel on both sides. Pinned
   panels clip it with the pin's own overflow:hidden; a flow panel has no such
   clip, and the aura was widening the document. `clip` rather than `hidden`
   because `hidden` would make the panel a scroll container and break any
   position:sticky inside it. */
.panel.flow{overflow-x:clip}
.panel.flow>section{position:relative;z-index:2}

/* ---------- panel aura ---------- */
.bg-aura{
  position:absolute;inset:-18%;z-index:0;pointer-events:none;will-change:transform;
  background:
    radial-gradient(ellipse 55% 48% at 14% 20%,rgba(118,132,90,.30),transparent 62%),
    radial-gradient(ellipse 50% 55% at 86% 78%,rgba(214,162,73,.28),transparent 58%);
}
.panel-dark .bg-aura{
  background:
    radial-gradient(ellipse 55% 48% at 14% 20%,rgba(214,162,73,.20),transparent 62%),
    radial-gradient(ellipse 50% 55% at 86% 78%,rgba(184,95,61,.24),transparent 58%);
}

/* ---------- drifting leaves ---------- */
.leaves{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.leaves i{
  position:absolute;top:-8%;display:block;border-radius:0 62% 0 62%;
  background:rgba(118,132,90,.38);opacity:.5;
  animation:leafFall linear infinite;
}
.panel-dark .leaves i{background:rgba(214,162,73,.34)}
@keyframes leafFall{
  0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0}
  10%{opacity:.5}
  88%{opacity:.32}
  100%{transform:translateY(118vh) translateX(var(--drift,30px)) rotate(300deg);opacity:0}
}

/* ---------- dot rail ---------- */
.dots{
  position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:55;
  display:flex;flex-direction:column;gap:13px;
}
.dots button{
  width:10px;height:10px;border-radius:50%;border:1px solid rgba(23,38,28,.34);
  background:transparent;cursor:pointer;padding:0;position:relative;
  transition:background .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease);
}
.dots button:hover{transform:scale(1.4)}
.dots button[aria-current="true"]{background:var(--terra);border-color:var(--terra);transform:scale(1.35)}
.dots button::after{
  content:attr(data-label);position:absolute;right:20px;top:50%;transform:translateY(-50%);
  font-size:.7rem;white-space:nowrap;color:var(--muted);opacity:0;
  transition:opacity .2s;font-family:var(--sans);
}
.dots button:hover::after{opacity:1}
.dots.on-dark button{border-color:rgba(247,240,228,.5)}
.dots.on-dark button[aria-current="true"]{background:#e3b067;border-color:#e3b067}
.dots.on-dark button::after{color:rgba(247,240,228,.8)}
/* The rail is a desktop affordance: below the unpin breakpoint the panels
   scroll normally and the page already has the header nav. */
@media (max-width:900px){.dots{display:none}}

/* ---------- card spotlight ---------- */
.spot{position:relative}
.spot::after{
  content:'';position:absolute;inset:0;border-radius:inherit;
  opacity:0;pointer-events:none;z-index:4;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(214,162,73,.22),transparent 62%);
  transition:opacity .3s;
}
.spot:hover::after{opacity:1}

/* ---------- heading entrances (resting states) ---------- */
.motion-ready .mask-wipe{clip-path:inset(0 100% 0 0)}
.motion-ready .scale-punch{opacity:0;transform:scale(.74)}
.motion-ready .blur-focus{opacity:0;filter:blur(16px)}
.motion-ready .rise-rotate{opacity:0;transform:translateY(46px) rotate(-2.5deg)}
.fx-head{will-change:transform,opacity,filter,clip-path}

/* ---------- hero headline, letter by letter on load ---------- */
.split-word{display:inline-block}
.split-char{display:inline-block}
.motion-ready .char-reveal .split-char{
  opacity:0;transform:translateY(.5em);
  animation:charIn .72s var(--ease) forwards;
  animation-delay:calc(var(--ci,0) * 34ms + .14s);
}
@keyframes charIn{to{opacity:1;transform:none}}

/* If the script never reaches the loop, nothing may be left invisible. */
.js-animation-failed .mask-wipe,.js-animation-failed .scale-punch,
.js-animation-failed .blur-focus,.js-animation-failed .rise-rotate,
.js-animation-failed .split-char{
  opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;
}

/* ---------- proposal footer ---------- */
.proposal-note{
  position:relative;z-index:30;margin:0;padding:26px 6vw 34px;
  background:var(--forest-deep);color:rgba(243,237,223,.62);
  font-size:.74rem;line-height:1.6;text-align:center;
}


/* ============================================================
   Pinned sections have one screen each
   ------------------------------------------------------------
   A pinned panel only holds still while it is shorter than the
   viewport. Anything taller scrolls away under position:sticky,
   and its heading -- which the scroll loop only touches while it
   is on screen -- is left frozen at its hidden resting state.

   So each pinned section is re-laid-out to fit a screen instead
   of being scaled down: the signature dishes become one row of
   four, the craft cards one row of three stacked photo-over-text,
   and the bowl diagram moves beside its heading rather than under
   it. Photographs keep their height; only the air between things
   is spent. Below 901px none of this applies -- the panels unpin
   and every section returns to its natural stacked layout.
   ============================================================ */
@media (min-width:901px){

  /* The pin centres its section, so the section's own generous top-and-bottom
     air is only pushing content out of the screen. It cannot go to nothing,
     though: the header is fixed, and a centred section with thin padding
     slides its heading underneath the logo. So the top keeps enough to clear
     the header and the bottom gives up almost everything. */
  .pin>section{padding-top:96px;padding-bottom:44px}
  .pin>.section{padding-top:96px;padding-bottom:44px}

  /* ---- hero ---- */
  /* The header is fixed, so the hero must start below it or the eyebrow
     renders underneath the logo. Everything else in the hero gives up the
     space that padding costs. */
  .pin>.hero{padding-top:96px;padding-bottom:22px}
  .pin>.hero h1{font-size:clamp(3.6rem,6.2vw,6.2rem)}
  .pin>.hero .hero-photo-wrap>img{height:min(52svh,470px)}
  .pin>.hero .hero-intro{margin-top:20px}
  .pin>.hero .hero-facts{margin-top:22px;padding-top:16px}
  .pin>.hero .hero-actions{margin-top:20px}
  .pin>.hero .eyebrow{margin-bottom:16px}

  /* ---- start here: four dishes, one row ---- */
  .pin>.start-section .section-heading{margin-bottom:34px}
  .pin>.start-section .signature-grid{grid-template-columns:repeat(4,1fr)}
  .pin>.start-section .signature-card-wide{grid-column:auto}
  .pin>.start-section .signature-photo,
  .pin>.start-section .signature-card:not(.signature-card-wide) .signature-photo{height:340px}

  /* ---- the bowl: diagram beside the heading, not beneath it ---- */
  .pin>.anatomy-section{
    display:grid;grid-template-columns:minmax(300px,.62fr) minmax(0,1fr);
    gap:56px;align-items:center;
  }
  .pin>.anatomy-section .anatomy-heading{
    grid-template-columns:1fr;gap:26px;margin-bottom:0;align-items:start;
  }
  .pin>.anatomy-section .anatomy-figure{margin:0}
  .pin>.anatomy-section .anatomy-image-wrap img{aspect-ratio:5/4;max-height:60svh}

  /* ---- our story ---- */
  .pin>.story-section{padding-top:96px;padding-bottom:44px}
  .pin>.story-section .story-photo{height:min(54svh,500px);border-radius:190px 190px 24px 24px}
  .pin>.story-section .promise-grid{margin-top:38px}
  .pin>.story-section .promise-grid article{min-height:0;padding:20px 20px 22px}
  .pin>.story-section .promise-grid h3{margin:18px 0 8px}

  /* ---- made here: three cards, one row, photo over text ---- */
  .pin>.craft-section .section-heading{margin-bottom:26px}
  .pin>.craft-section .craft-grid{grid-template-columns:repeat(3,1fr)}
  .pin>.craft-section .craft-card,
  .pin>.craft-section .craft-card-large{
    grid-column:auto;grid-template-columns:1fr;grid-template-rows:196px auto;min-height:0;
  }
  .pin>.craft-section .craft-body{padding:22px 24px 26px}

  /* ---- visit ---- */
  .pin>.visit-section{padding-top:96px;padding-bottom:56px;min-height:0}
  .pin>.visit-section .visit-copy>img{width:64px;height:64px;margin-bottom:26px}
  .pin>.visit-section .visit-copy h2{font-size:clamp(3.2rem,5vw,4.6rem)}
  .pin>.visit-section .visit-actions{margin-top:28px}
  .pin>.visit-section .visit-card>div{padding:16px 0}
  .pin>.visit-section .visit-signoff{bottom:16px}
}
