/* ============================================================
   CHEF EFUA MENSAH — a portfolio served as a tasting menu
   charcoal #191817 · saffron #E3A008 · palm #3F6C45
   rice paper #FBF6EE · pepper #C03A2B
   ============================================================ */

@font-face{
  font-family:"EB Garamond";
  src:url("../fonts/eb-garamond.woff2") format("woff2");
  font-weight:400 600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"EB Garamond";
  src:url("../fonts/eb-garamond-italic.woff2") format("woff2");
  font-weight:400 600; font-style:italic; font-display:swap;
}
@font-face{
  font-family:"Instrument Sans";
  src:url("../fonts/instrument-sans.woff2") format("woff2");
  font-weight:400 700; font-style:normal; font-display:swap;
}

:root{
  --charcoal:#191817;
  --char-2:#201e1c;
  --paper:#FBF6EE;
  --paper-72:rgba(251,246,238,.72);
  --paper-55:rgba(251,246,238,.55);
  --hairline:rgba(251,246,238,.16);
  --hairline-soft:rgba(251,246,238,.09);
  --saffron:#E3A008;
  --palm:#3F6C45;
  --palm-bright:#8FBF97;   /* AA text on charcoal */
  --pepper:#C03A2B;
  --pepper-bright:#E2694F; /* AA-large text on charcoal */
  --serif:"EB Garamond", Georgia, serif;
  --sans:"Instrument Sans", system-ui, sans-serif;
  --gutter:clamp(1.25rem, 5vw, 5rem);
  --ease-out:cubic-bezier(.22,.9,.3,1);
  --ease-pop:cubic-bezier(.3,1.5,.45,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:var(--charcoal);
  background-image:radial-gradient(120% 90% at 50% 0%, #221f1c 0%, var(--charcoal) 58%);
  color:var(--paper);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

::selection{background:var(--saffron);color:var(--charcoal)}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--charcoal)}
::-webkit-scrollbar-thumb{background:#3a3733;border-radius:5px;border:2px solid var(--charcoal)}
::-webkit-scrollbar-thumb:hover{background:var(--saffron)}

a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--saffron);outline-offset:3px;border-radius:2px;
}
img,svg{max-width:100%;display:block}

.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.skip-link{
  position:fixed;top:.6rem;left:.6rem;z-index:100;transform:translateY(-300%);
  background:var(--saffron);color:var(--charcoal);font-weight:600;text-decoration:none;
  padding:.55em 1em;border-radius:3px;transition:transform .2s;
}
.skip-link:focus-visible{transform:none}

/* ---------- shared type ---------- */
.cap{
  font-family:var(--sans);font-size:.72rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--paper-72);
}
.cap b{color:var(--saffron);font-weight:600}
em{font-family:var(--serif);font-style:italic}

/* dot leaders — the fine-dining line */
.leader{display:flex;align-items:baseline;gap:.7em}
.leader .dots{
  flex:1 1 2rem;min-width:1.5rem;height:.9em;
  background-image:radial-gradient(circle, rgba(251,246,238,.42) 1px, transparent 1.4px);
  background-size:9px 3px;background-position:0 100%;background-repeat:repeat-x;
}
.leader .l-end{color:var(--paper-72);text-align:right}

/* ---------- masthead ---------- */
.masthead{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:.9rem var(--gutter);
  background:linear-gradient(rgba(25,24,23,.92), rgba(25,24,23,.72) 70%, transparent);
  backdrop-filter:blur(6px);
}
.brand{display:flex;align-items:baseline;gap:.65rem;text-decoration:none}
.brand svg{width:26px;height:26px;align-self:center;flex:none}
.brand-word{font-family:var(--serif);font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.brand-sub{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--paper-55);white-space:nowrap}
.mast-nav{display:flex;align-items:center;gap:clamp(.9rem,2.4vw,2rem)}
.mast-nav a{
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  color:var(--paper-72);padding:.35em 0;border-bottom:1px solid transparent;
  transition:color .25s,border-color .25s;white-space:nowrap;
}
@media (max-width:1050px){.brand-sub{display:none}}
.mast-nav a:hover{color:var(--paper);border-color:var(--saffron)}
.mast-reserve{
  border:1px solid var(--saffron)!important;border-radius:2em;padding:.5em 1.15em!important;
  color:var(--saffron)!important;
}
.mast-reserve:hover{background:var(--saffron);color:var(--charcoal)!important}
@media (max-width:760px){.mast-nav a:not(.mast-reserve){display:none}.brand-sub{display:none}}

/* ---------- course tracker rail ---------- */
.tracker{
  position:fixed;right:1.1rem;top:50%;transform:translateY(-50%);z-index:40;
  display:flex;flex-direction:column;gap:.55rem;
}
.tracker a{
  display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;
  font-family:var(--serif);font-size:.72rem;color:var(--paper-55);text-decoration:none;
  border:1px solid transparent;transition:color .3s,border-color .3s,background .3s;
}
.tracker a:hover{color:var(--paper);border-color:var(--hairline)}
.tracker a.done{color:var(--saffron)}
.tracker a.active{color:var(--charcoal);background:var(--saffron);border-color:var(--saffron)}
@media (max-width:1100px){.tracker{display:none}}

/* ---------- hero / amuse-bouche ---------- */
.hero{
  min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:7rem var(--gutter) 4rem;position:relative;
}
.hero-kicker{display:flex;align-items:center;gap:1rem;margin-bottom:clamp(1.4rem,3vh,2.4rem)}
.hero-kicker::before,.hero-kicker::after{content:"";width:clamp(2rem,6vw,4.5rem);height:1px;background:var(--hairline)}
.hero h1{
  font-family:var(--serif);font-weight:500;font-style:normal;line-height:.98;
  font-size:clamp(3.2rem, 11vw, 8.4rem);letter-spacing:.01em;
}
.hero h1 em{font-weight:400;color:var(--saffron)}
.hero-deck{
  font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,2.4vw,1.55rem);
  color:var(--paper-72);max-width:34em;margin-top:1.4rem;
}
.hero-fig{margin:clamp(.6rem,2vh,1.6rem) 0 0;width:clamp(150px,22vh,210px)}
.hero-fig .steam path{fill:none;stroke:var(--paper);stroke-width:2.6;stroke-linecap:round;opacity:0;transform-box:fill-box;transform-origin:center}
.hero-fig.in .steam path{animation:steam var(--sd,5s) ease-in-out infinite;animation-delay:var(--so,0s)}
.menu-fleuron{width:30px;height:30px;margin:0 auto 1rem;opacity:.95;display:block}
.hero-amuse{
  width:min(620px,88vw);margin-top:clamp(1.4rem,3.5vh,2.6rem);
  font-family:var(--serif);font-size:1.05rem;
}
.hero-amuse .l-name{font-style:italic;white-space:nowrap}
@media (max-width:640px){
  .hero-amuse .leader{flex-direction:column;align-items:center;gap:.35rem;text-align:center}
  .hero-amuse .dots{display:none}
  .hero-amuse .l-end{text-align:center}
}
.hero-cue{
  margin-top:clamp(1.8rem,5vh,3.2rem);text-decoration:none;display:inline-flex;align-items:center;gap:.8rem;
  transition:color .3s;
}
.hero-cue:hover{color:var(--saffron)}
.hero-cue .arrow{width:1px;height:2.4rem;background:var(--paper-55);position:relative;display:inline-block}
.hero-cue .arrow::after{
  content:"";position:absolute;bottom:0;left:-3.5px;width:8px;height:8px;
  border-right:1px solid var(--paper-55);border-bottom:1px solid var(--paper-55);transform:rotate(45deg);
}
@keyframes cue-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.hero-cue .arrow{animation:cue-drift 2.6s ease-in-out infinite}

/* amuse plate assembles on arrival */
.js .hero-fig .ha{
  opacity:0;transform:scale(.72);transform-box:fill-box;transform-origin:center;
  transition:opacity .8s var(--ease-out),transform .9s var(--ease-pop);
  transition-delay:calc(var(--i,0)*.24s);
}
.hero-fig.in .ha{opacity:1;transform:none}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:calc(var(--d,0)*.12s)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- the menu card (tonight) ---------- */
.tonight{padding:clamp(5rem,12vh,9rem) var(--gutter);display:grid;place-items:center}
.menu-card{
  width:min(680px,100%);border:1px solid var(--hairline);padding:clamp(2rem,6vw,4rem) clamp(1.4rem,5vw,3.6rem);
  position:relative;background:linear-gradient(160deg, rgba(251,246,238,.035), rgba(251,246,238,0) 55%);
}
.menu-card::before,.menu-card::after{
  content:"";position:absolute;inset:8px;border:1px solid var(--hairline-soft);pointer-events:none;
}
.menu-card::after{inset:11px;border-color:transparent}
.menu-card-head{text-align:center;margin-bottom:2.6rem}
.menu-card-head .cap{color:var(--saffron)}
.menu-card-head h2{
  font-family:var(--serif);font-weight:500;font-size:clamp(2rem,5vw,2.9rem);margin:.35em 0 .2em;
}
.menu-card-head p{font-family:var(--serif);font-style:italic;color:var(--paper-72)}
.menu-rows{list-style:none;display:flex;flex-direction:column;gap:1.05rem}
.menu-row{
  text-decoration:none;font-family:var(--serif);font-size:clamp(1.02rem,2.4vw,1.2rem);
  transition:color .25s;
}
.menu-row:hover .mr-name{color:var(--saffron)}
.menu-row .mr-no{
  font-family:var(--sans);font-size:.66rem;letter-spacing:.2em;color:var(--saffron);
  width:2.3em;flex:none;
}
.menu-row .mr-name{font-style:italic;transition:color .25s}
.menu-row .l-end{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}
.menu-card-foot{
  margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--hairline-soft);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--serif);font-style:italic;color:var(--paper-72);font-size:.98rem;
}

/* ---------- course scenes ---------- */
.course{min-height:205vh;position:relative}
.course-pin{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.course-scene{
  width:100%;max-width:1240px;margin:0 auto;padding:6rem var(--gutter) 3rem;
  display:grid;grid-template-columns:minmax(0,30rem) minmax(0,1fr);
  gap:clamp(1.6rem,5vw,5rem);align-items:center;
}
.course--flip .course-scene{grid-template-columns:minmax(0,1fr) minmax(0,30rem)}
.course--flip .course-copy{order:2}
.course--flip .course-fig{order:1}

.c-no{display:flex;align-items:center;gap:.9rem;margin-bottom:1.2rem}
.c-no .c-rule{width:2.4rem;height:1px;background:var(--saffron);display:inline-block;flex:none}
.c-no .cap{color:var(--saffron)}
.c-temp{
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--paper-55);
  border:1px solid var(--hairline);border-radius:2em;padding:.32em .8em;
}
.c-temp--hot{color:var(--pepper-bright);border-color:rgba(226,105,79,.4)}
.c-temp--cold{color:var(--palm-bright);border-color:rgba(143,191,151,.4)}
.c-name{
  font-family:var(--serif);font-weight:500;line-height:1.06;
  font-size:clamp(2rem,4.6vw,3.4rem);margin-bottom:1.1rem;text-wrap:balance;
}
.c-name em{color:var(--saffron);font-weight:400}
.c-desc{color:var(--paper-72);max-width:32em;margin-bottom:1.5rem}
.c-lines{list-style:none;display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.8rem;max-width:30rem}
.c-lines .leader{font-family:var(--serif);font-size:.98rem}
.c-lines .l-name{font-style:italic;color:var(--paper-72)}
.c-lines .l-end{font-family:var(--sans);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}

/* course figure + plate */
.course-fig{margin:0;position:relative;display:grid;place-items:center}
.course-fig .plate{
  width:min(560px, 78vw, 62vh);height:auto;
}
.js .course-fig{transform:translateY(calc((1 - var(--p,0)) * 5vh))}
@media (prefers-reduced-motion:reduce){.js .course-fig{transform:none}}

/* --- plate assembly states (driven by .s1—.s5 on .course) --- */
.js .plate .pl{opacity:0;transform:scale(.93);transition:opacity .9s var(--ease-out),transform 1s var(--ease-out)}
.course.s1 .plate .pl{opacity:1;transform:none}

.js .plate .draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s cubic-bezier(.45,.05,.25,1)}
.course.s2 .plate .sauce .draw{stroke-dashoffset:0}
.js .plate .sauce .pool{opacity:0;transform:scale(.55);transition:opacity .8s var(--ease-out),transform 1s var(--ease-out)}
.course.s2 .plate .sauce .pool{opacity:1;transform:none}

.js .plate .protein > *{opacity:0;transform:translateY(14px) scale(.86);transition:opacity .7s var(--ease-out),transform .8s var(--ease-out);transition-delay:calc(var(--i,0)*.13s)}
.course.s3 .plate .protein > *{opacity:1;transform:none}

.js .plate .garnish > *{opacity:0;transform:scale(0);transition:opacity .45s ease,transform .6s var(--ease-pop);transition-delay:calc(var(--i,0)*.07s)}
.course.s4 .plate .garnish > *{opacity:1;transform:none}

.plate .pl,.plate .sauce .pool,.plate .sauce .draw,.plate .protein > *,.plate .garnish > *,.plate .steam path,.plate .chill > *{
  transform-box:fill-box;transform-origin:center;
}

/* served: at 94% a saffron ring blooms and the menu lines ink in */
.js .plate .ring{opacity:0;transform:scale(.955);transition:opacity 1s var(--ease-out),transform 1.1s var(--ease-out)}
.course.s6 .plate .ring{opacity:.55;transform:none}
.js .course .c-lines li{opacity:.75;transition:opacity .7s ease}
.js .course .c-lines li:nth-child(2){transition-delay:.14s}
.js .course .c-lines li:nth-child(3){transition-delay:.28s}
.course.s6 .c-lines li{opacity:1}

/* steam wisps */
.plate .steam path{
  fill:none;stroke:var(--paper);stroke-width:3;stroke-linecap:round;opacity:0;
}
.course.s5 .plate .steam path{animation:steam var(--sd,5s) ease-in-out infinite;animation-delay:var(--so,0s)}
.course:not(.is-near).s5 .plate .steam path{animation-play-state:paused}
@keyframes steam{
  0%{transform:translate(0,14px) scale(.92);opacity:0}
  28%{opacity:.34}
  62%{opacity:.2}
  100%{transform:translate(7px,-52px) scale(1.05);opacity:0}
}

/* chill shimmer (cold course) */
.plate .chill *{opacity:0}
.course.s5 .plate .chill *{animation:glint var(--sd,3s) ease-in-out infinite;animation-delay:var(--so,0s)}
.course:not(.is-near).s5 .plate .chill *{animation-play-state:paused}
@keyframes glint{0%,100%{opacity:0;transform:scale(.5)}45%{opacity:.75;transform:scale(1)}}

/* ---------- provenance flip card ---------- */
.prov{perspective:1200px;width:min(21.5rem,100%)}
.prov-btn{
  display:block;width:100%;background:none;border:none;padding:0;cursor:pointer;
  text-align:left;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;
}
.prov-inner{
  position:relative;display:block;min-height:8.6rem;
  transition:transform .8s cubic-bezier(.35,.1,.2,1);transform-style:preserve-3d;
}
.prov-btn:hover .prov-inner,.prov-btn:focus-visible .prov-inner,.prov-btn[aria-expanded="true"] .prov-inner{transform:rotateY(180deg)}
.prov-face{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:.45rem;
  padding:1.1rem 1.3rem;border:1px solid var(--hairline);backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:3px;
}
.prov-front{background:var(--char-2)}
.prov-front .prov-item{font-family:var(--serif);font-style:italic;font-size:1.18rem;line-height:1.3}
.prov-front .prov-cue{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--saffron);margin-top:.3rem}
.prov-back{
  background:var(--paper);color:var(--charcoal);transform:rotateY(180deg);
  border-color:var(--paper);
}
.prov-back .cap{color:rgba(25,24,23,.6)}
.prov-back p{font-family:var(--serif);font-size:.95rem;line-height:1.5}
@media (prefers-reduced-motion:reduce){
  .prov-inner{transition:none}
  .prov-btn:hover .prov-inner,.prov-btn:focus-visible .prov-inner,.prov-btn[aria-expanded="true"] .prov-inner{transform:none}
  .prov-face{transition:opacity .14s linear}
  .prov-btn:hover .prov-front,.prov-btn:focus-visible .prov-front,.prov-btn[aria-expanded="true"] .prov-front{opacity:0}
  .prov-back{opacity:0;transform:none}
  .prov-btn:hover .prov-back,.prov-btn:focus-visible .prov-back,.prov-btn[aria-expanded="true"] .prov-back{opacity:1}
}

/* ---------- intermezzo rules between courses ---------- */
.entremet{
  display:flex;align-items:center;justify-content:center;gap:1.4rem;
  padding:0 var(--gutter);color:var(--paper-55);
}
.entremet::before,.entremet::after{content:"";height:1px;width:min(9rem,20vw);background:var(--hairline-soft)}
.entremet svg{width:22px;height:22px;flex:none;opacity:.75}

/* ---------- the chef ---------- */
.chef{
  padding:clamp(6rem,14vh,10rem) var(--gutter);max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2.5rem,6vw,6rem);
}
.section-mark{display:flex;align-items:center;gap:.9rem;margin-bottom:1.4rem}
.section-mark::before{content:"";width:2.4rem;height:1px;background:var(--saffron)}
.section-mark .cap{color:var(--saffron)}
.chef h2,.dining h2,.press h2,.reserve h2{
  font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05;margin-bottom:1.2rem;text-wrap:balance;
}
.chef h2 em,.dining h2 em,.press h2 em,.reserve h2 em{color:var(--saffron);font-weight:400}
.chef-bio p{color:var(--paper-72);max-width:36em;margin-bottom:1.1rem}
.chef-bio p strong{color:var(--paper);font-weight:600}
.chef-note{font-size:.82rem;color:var(--paper-55);margin-top:1.6rem;max-width:34em}
.chef-note a{color:var(--paper-72)}
.chef-note a:hover{color:var(--saffron)}
.chef-side .chef-portrait{width:min(240px,55%);margin-bottom:2rem}
.chef-side h3{font-family:var(--sans);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--saffron);margin-bottom:1.1rem}
.seasons{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.seasons .leader{font-family:var(--serif);font-size:.98rem}
.seasons .l-yr{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;color:var(--paper-55);width:3.6em;flex:none}
.seasons .l-name{font-style:italic}
.seasons .l-end{font-family:var(--sans);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
@media (max-width:880px){.chef{grid-template-columns:1fr}}

/* ---------- private dining ---------- */
.dining{padding:clamp(5rem,12vh,9rem) var(--gutter);max-width:1240px;margin:0 auto}
.dining-lede{max-width:38em;color:var(--paper-72);margin-bottom:3rem}
.dining-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.2rem}
.dine-card{
  border:1px solid var(--hairline);padding:1.8rem 1.6rem;border-radius:3px;position:relative;
  transition:border-color .3s,transform .35s var(--ease-out),background .3s;background:rgba(251,246,238,.015);
}
.dine-card:hover{border-color:rgba(227,160,8,.45);transform:translateY(-4px);background:rgba(251,246,238,.035)}
.dine-card svg{width:44px;height:44px;margin-bottom:1.2rem}
.dine-card h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.45rem;margin-bottom:.5rem}
.dine-card p{color:var(--paper-72);font-size:.95rem;margin-bottom:1.1rem}
.dine-card .leader{font-family:var(--serif);font-size:.92rem;color:var(--paper-72)}
.dine-card .leader span:first-child,.dine-card .l-end{white-space:nowrap}
.dine-card .l-end{font-family:var(--sans);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}

/* ---------- press ---------- */
.press{padding:clamp(5rem,12vh,9rem) var(--gutter);max-width:1000px;margin:0 auto;text-align:center}
.press-quotes{display:flex;flex-direction:column;gap:clamp(2.6rem,7vh,4.5rem);margin:3rem 0 2.4rem}
.press-quotes blockquote p{
  font-family:var(--serif);font-style:italic;font-weight:400;line-height:1.3;
  font-size:clamp(1.4rem,3.4vw,2.3rem);text-wrap:balance;
}
.press-quotes blockquote p::before{content:"“";color:var(--saffron)}
.press-quotes blockquote p::after{content:"”";color:var(--saffron)}
.press-quotes cite{
  display:block;margin-top:1rem;font-style:normal;font-family:var(--sans);
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--paper-55);
}
.press-note{font-size:.82rem;color:var(--paper-55);max-width:34em;margin:0 auto}

/* ---------- reservations ---------- */
.reserve{padding:clamp(5rem,12vh,9rem) var(--gutter) clamp(6rem,14vh,10rem);display:grid;place-items:center}
.reserve-card{
  width:min(720px,100%);border:1px solid var(--hairline);padding:clamp(2rem,6vw,3.6rem);
  background:linear-gradient(160deg, rgba(251,246,238,.04), rgba(251,246,238,0) 60%);position:relative;
}
.reserve-card::before{content:"";position:absolute;inset:8px;border:1px solid var(--hairline-soft);pointer-events:none}
.reserve-head{text-align:center;margin-bottom:2.4rem}
.reserve-head p{font-family:var(--serif);font-style:italic;color:var(--paper-72);max-width:30em;margin:0 auto}
.res-form{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem;position:relative;z-index:1}
.res-form[hidden]{display:none}
.field{display:flex;flex-direction:column;gap:.45rem}
.field--wide{grid-column:1/-1}
.field label{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--paper-72)}
.field input,.field select,.field textarea{
  background:rgba(251,246,238,.045);border:1px solid var(--hairline);border-radius:3px;
  color:var(--paper);font-family:var(--serif);font-size:1.05rem;padding:.7em .85em;
  transition:border-color .25s,background .25s;width:100%;
}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 49%,var(--paper-55) 50%),linear-gradient(-45deg,transparent 49%,var(--paper-55) 50%);background-size:7px 7px;background-position:calc(100% - 20px) 55%,calc(100% - 13px) 55%;background-repeat:no-repeat}
.field select option{background:var(--char-2);color:var(--paper)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(251,246,238,.32)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--saffron);background:rgba(251,246,238,.06);outline:none}
.field textarea{resize:vertical;min-height:5.2em}
.hp-field{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.res-submit{
  grid-column:1/-1;margin-top:.6rem;cursor:pointer;
  background:var(--saffron);color:var(--charcoal);border:1px solid var(--saffron);border-radius:2em;
  font-family:var(--sans);font-weight:600;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;
  padding:1.05em 2em;transition:background .25s,color .25s,transform .25s var(--ease-out);
}
.res-submit:hover{background:transparent;color:var(--saffron);transform:translateY(-2px)}
.res-success{text-align:center;padding:2.5rem 0 1rem}
.res-success .big{font-family:var(--serif);font-style:italic;font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:.8rem}
.res-success p{color:var(--paper-72)}
.res-fine{grid-column:1/-1;font-size:.8rem;color:var(--paper-55);text-align:center;margin-top:.4rem}
@media (max-width:640px){.res-form{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.site-foot{border-top:1px solid var(--hairline-soft);padding:2.6rem var(--gutter) 3rem;max-width:1240px;margin:0 auto}
.foot-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.4rem;flex-wrap:wrap}
.foot-row + .foot-row{margin-top:1.6rem}
.foot-nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.foot-nav a{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--paper-55);transition:color .25s}
.foot-nav a:hover{color:var(--saffron)}
.foot-fine{font-size:.8rem;color:var(--paper-55)}
.foot-credit{font-family:var(--serif);font-style:italic;font-size:.95rem;color:var(--paper-72)}
.foot-credit a{color:var(--paper);text-decoration-color:var(--saffron);text-underline-offset:3px}
.foot-credit a:hover{color:var(--saffron)}

/* ---------- guide & process pages ---------- */
.doc{max-width:820px;margin:0 auto;padding:9rem var(--gutter) 5rem}
.doc-hero{margin-bottom:4rem}
.doc-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,7vw,4.6rem);line-height:1.02;margin:.4em 0 .5em;text-wrap:balance}
.doc-hero h1 em{color:var(--saffron);font-weight:400}
.doc-hero .lede{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,2.4vw,1.35rem);color:var(--paper-72);max-width:34em}
.doc h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,4vw,2.4rem);margin:3.2rem 0 1rem;line-height:1.1}
.doc h2 em{color:var(--saffron);font-weight:400}
.doc h3{font-family:var(--sans);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--saffron);margin:2.2rem 0 .8rem}
.doc p{color:var(--paper-72);margin-bottom:1.05rem;max-width:64ch}
.doc p strong{color:var(--paper)}
.doc ul,.doc ol{margin:0 0 1.2rem 1.2rem;color:var(--paper-72)}
.doc li{margin-bottom:.5rem;max-width:60ch}
.doc li::marker{color:var(--saffron)}
.doc a{color:var(--paper);text-decoration-color:var(--saffron);text-underline-offset:3px}
.doc a:hover{color:var(--saffron)}
.doc pre{
  background:var(--char-2);border:1px solid var(--hairline-soft);border-radius:4px;
  padding:1.1rem 1.3rem;overflow-x:auto;margin:0 0 1.3rem;font-size:.83rem;line-height:1.55;
}
.doc code{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;color:#EFD9A6}
.doc p code,.doc li code{background:var(--char-2);padding:.12em .4em;border-radius:3px;font-size:.86em}
.doc .callout{
  border:1px solid var(--hairline);border-left:3px solid var(--saffron);border-radius:3px;
  padding:1.1rem 1.4rem;margin:1.6rem 0;background:rgba(251,246,238,.025);
}
.doc .callout p{margin:0}
.pass-log{list-style:none;margin:0 0 1.4rem;display:flex;flex-direction:column;gap:1.2rem}
.pass-log > li{border:1px solid var(--hairline-soft);border-radius:4px;padding:1.2rem 1.4rem;margin:0;max-width:none}
.pass-log .cap{color:var(--saffron);display:block;margin-bottom:.6rem}
.pass-log ul{margin:0 0 0 1.1rem}
.doc-foot-nav{display:flex;gap:1.6rem;flex-wrap:wrap;margin-top:4rem;padding-top:1.8rem;border-top:1px solid var(--hairline-soft)}

/* ---------- content-visibility for long page ---------- */
.chef,.dining,.press,.reserve{content-visibility:auto;contain-intrinsic-size:auto 700px}

/* ---------- responsive course scene ---------- */
@media (max-width:880px){
  .course{min-height:185vh}
  .course-pin{align-items:flex-start}
  .course-scene,.course--flip .course-scene{
    grid-template-columns:1fr;gap:1.2rem;
    padding-top:4.4rem;padding-bottom:1.6rem;
  }
  .course--flip .course-copy{order:2}
  .course--flip .course-fig{order:1}
  .course-fig{order:-1}
  .course--flip .course-fig{order:-1}
  .course-fig .plate{width:min(36vh,78vw)}
  .c-name{font-size:clamp(1.65rem,6.6vw,2.2rem)}
  .c-desc{margin-bottom:1rem;font-size:.95rem}
  .c-lines{margin-bottom:1rem;gap:.4rem}
  .c-lines .leader{font-size:.9rem}
  .prov-inner{min-height:7.8rem}
  .c-no{margin-bottom:.8rem}
}

/* ---------- reduced motion: the menu arrives fully plated ---------- */
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none}
  .js .hero-fig .ha{opacity:1;transform:none;transition:none}
  .js .plate .pl,.js .plate .sauce .pool,.js .plate .protein > *,.js .plate .garnish > *{
    opacity:1!important;transform:none!important;transition:none!important;
  }
  .js .plate .draw{stroke-dasharray:none!important;stroke-dashoffset:0!important;transition:none!important}
  .course.s5 .plate .steam path,.plate .steam path{animation:none!important;opacity:.22!important;transform:none!important}
  .js .plate .ring{opacity:.55!important;transform:none!important;transition:none!important}
  .js .course .c-lines li{opacity:1!important;transition:none!important}
  .hero-fig .steam path,.hero-fig.in .steam path{animation:none!important;opacity:.18!important;transform:none!important}
  .course.s5 .plate .chill *,.plate .chill *{animation:none!important;opacity:.55!important;transform:none!important}
  .hero-cue .arrow{animation:none}
  .dine-card:hover,.res-submit:hover{transform:none}
  *{scroll-behavior:auto}
}
