/* ==========================================================================
   Cendre — wood-fired tasting room, Mayfair
   ========================================================================== */

:root{
  --ink:        #0B0A08;
  --ink-2:      #121009;
  --ink-3:      #1B1811;
  --bone:       #EDE6D8;
  --bone-2:     #E3DACA;
  --paper:      #F2EDE3;
  --ember:      #C0562F;
  --brass:      #B79A63;
  --mute:       rgba(237,230,216,.52);
  --mute-ink:   rgba(11,10,8,.56);
  --hair:       rgba(237,230,216,.14);
  --hair-ink:   rgba(11,10,8,.14);

  --serif: "Bodoni Moda", "Didot", "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --pad: clamp(20px, 5vw, 76px);
  --ease: cubic-bezier(.16,1,.3,1);
  --ease-2: cubic-bezier(.65,.05,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--ink); color:var(--bone);
  font-family:var(--sans); font-weight:300; font-size:clamp(15px,.4vw + 14px,17px);
  line-height:1.65; letter-spacing:.005em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-locked{ overflow:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ margin:0; font-weight:400; }
p{ margin:0 0 1.1em; }
::selection{ background:var(--ember); color:var(--paper); }

.wrap{ width:100%; max-width:1340px; margin-inline:auto; padding-inline:var(--pad); }

.skip{
  position:fixed; top:-100px; left:var(--pad); z-index:400; padding:12px 18px;
  background:var(--bone); color:var(--ink); font-size:13px; transition:top .3s;
}
.skip:focus{ top:16px; }
:focus-visible{ outline:1px solid var(--brass); outline-offset:4px; }

/* ─── shared type ───────────────────────────────────────── */
.label{
  font-size:11px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--mute); margin:0 0 22px;
}
.sec-title{
  font-family:var(--serif); font-size:clamp(2.1rem,5.2vw,4.4rem);
  line-height:1.02; letter-spacing:-.018em;
}
.sec-title em{ font-style:italic; color:var(--brass); }
.sec-note{ max-width:46ch; color:var(--mute); }
.kicker{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--bone);
  margin:0 0 clamp(20px,3vw,34px);
}
.kicker i{ width:4px; height:4px; border-radius:50%; background:var(--ember); display:block; }

.link-underline{ position:relative; font-size:13px; letter-spacing:.14em; text-transform:uppercase; padding-bottom:5px; }
.link-underline::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:currentColor; transform-origin:right; transform:scaleX(1); transition:transform .5s var(--ease);
}
.link-underline:hover::after{ transform:scaleX(0); transform-origin:left; }

/* ─── buttons ───────────────────────────────────────────── */
.btn{
  --bg:var(--bone); --fg:var(--ink);
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  padding:17px 34px; border:0; cursor:pointer; overflow:hidden; isolation:isolate;
  background:var(--bg); color:var(--fg); border-radius:999px;
  font-family:var(--sans); font-size:12px; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase; white-space:nowrap;
  transition:color .45s var(--ease);
}
.btn span{ position:relative; z-index:2; }
.btn::before{
  content:""; position:absolute; inset:0; z-index:1; background:var(--ember);
  transform:translateY(101%); border-radius:inherit; transition:transform .5s var(--ease);
}
.btn:hover{ color:var(--paper); }
.btn:hover::before{ transform:translateY(0); }
.btn--sm{ padding:13px 26px; font-size:11px; }
.btn--block{ width:100%; padding:19px 34px; }

/* ─── grain + cursor ────────────────────────────────────── */
.grain{
  position:fixed; inset:-120%; z-index:300; pointer-events:none; opacity:.16;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite; mix-blend-mode:overlay;
}
@keyframes grain{
  0%{transform:translate(0,0)} 20%{transform:translate(-4%,3%)} 40%{transform:translate(3%,-3%)}
  60%{transform:translate(-2%,-4%)} 80%{transform:translate(4%,2%)} 100%{transform:translate(0,0)}
}

.cursor,.cursor-dot{ position:fixed; top:0; left:0; z-index:310; pointer-events:none; border-radius:50%; opacity:0; }
.cursor{
  width:42px; height:42px; margin:-21px 0 0 -21px; border:1px solid rgba(237,230,216,.5);
  display:grid; place-items:center; transition:width .4s var(--ease),height .4s var(--ease),background .4s,border-color .4s,opacity .3s;
  backdrop-filter:invert(.06);
}
.cursor-dot{ width:5px; height:5px; margin:-2.5px 0 0 -2.5px; background:var(--bone); transition:opacity .3s,transform .3s; }
.cursor.is-active{ width:92px; height:92px; margin:-46px 0 0 -46px; background:var(--ember); border-color:transparent; }
.cursor.is-active + .cursor-dot,.cursor.is-hide + .cursor-dot{ opacity:0; }
.cursor__label{
  font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--paper);
  opacity:0; transform:scale(.8); transition:opacity .3s,transform .3s;
}
.cursor.is-active .cursor__label{ opacity:1; transform:scale(1); }
@media (hover:none),(pointer:coarse){ .cursor,.cursor-dot{ display:none; } }

/* ─── loader ────────────────────────────────────────────── */
.loader{
  position:fixed; inset:0; z-index:500; background:var(--ink);
  display:grid; place-items:center; transition:opacity .8s var(--ease),visibility .8s;
}
.loader.is-done{ opacity:0; visibility:hidden; }
.loader__inner{ width:min(560px,82vw); }
.loader__mark{
  display:flex; justify-content:center; gap:.04em; font-family:var(--serif);
  font-size:clamp(2.6rem,9vw,5.4rem); letter-spacing:.06em; line-height:1;
}
.loader__mark span{ opacity:0; transform:translateY(26px); animation:letterUp .9s var(--ease) forwards; }
.loader__mark span:nth-child(1){animation-delay:.05s} .loader__mark span:nth-child(2){animation-delay:.12s}
.loader__mark span:nth-child(3){animation-delay:.19s} .loader__mark span:nth-child(4){animation-delay:.26s}
.loader__mark span:nth-child(5){animation-delay:.33s} .loader__mark span:nth-child(6){animation-delay:.4s}
@keyframes letterUp{ to{ opacity:1; transform:none; } }
.loader__meta{
  display:flex; justify-content:space-between; margin:28px 0 12px;
  font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--mute);
}
.loader__bar{ height:1px; background:var(--hair); overflow:hidden; }
.loader__bar i{ display:block; height:100%; width:0%; background:var(--bone); }

/* ─── nav ───────────────────────────────────────────────── */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:clamp(16px,2.2vw,28px) 0; padding-top:calc(clamp(16px,2.2vw,28px) + env(safe-area-inset-top,0px));
  transition:background .5s var(--ease),padding .5s var(--ease),border-color .5s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(11,10,8,.72); backdrop-filter:blur(16px) saturate(1.2);
  padding:12px 0; padding-top:calc(12px + env(safe-area-inset-top,0px)); border-bottom-color:var(--hair);
}
.nav.is-hidden{ transform:translateY(-104%); }
.nav{ transition:transform .55s var(--ease),background .5s,padding .5s,border-color .5s; }
.nav__in{ display:flex; align-items:center; gap:24px; width:100%; max-width:1340px; margin-inline:auto; padding-inline:var(--pad); }
.nav__logo{ display:flex; align-items:center; gap:10px; }
.nav__flame{ width:17px; height:17px; color:var(--ember); }
.nav__word{ font-family:var(--serif); font-size:23px; letter-spacing:.18em; text-transform:uppercase; }
.nav__links{ display:flex; gap:clamp(14px,2.4vw,36px); margin-inline:auto; }
.nav__links a{ position:relative; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); transition:color .35s; }
.nav__links a em{ font-style:normal; font-size:9px; color:var(--ember); margin-right:5px; opacity:0; transform:translateX(-4px); display:inline-block; transition:.35s var(--ease); }
.nav__links a:hover{ color:var(--bone); }
.nav__links a:hover em{ opacity:1; transform:none; }
.nav__end{ display:flex; align-items:center; gap:14px; }

.burger{ display:none; width:44px; height:44px; background:none; border:0; cursor:pointer; padding:0; position:relative; }
.burger i{ position:absolute; left:11px; width:22px; height:1px; background:var(--bone); transition:.4s var(--ease); }
.burger i:nth-child(1){ top:19px; } .burger i:nth-child(2){ top:25px; width:14px; }
.burger.is-open i:nth-child(1){ top:22px; transform:rotate(45deg); }
.burger.is-open i:nth-child(2){ top:22px; width:22px; transform:rotate(-45deg); }

.drawer{
  position:fixed; inset:0; z-index:190; background:var(--ink-2);
  padding:clamp(96px,16vh,150px) var(--pad) 40px; display:flex; flex-direction:column; justify-content:space-between;
  clip-path:inset(0 0 100% 0); transition:clip-path .8s var(--ease); visibility:hidden;
}
.drawer.is-open{ clip-path:inset(0 0 0 0); visibility:visible; }
.drawer__links{ display:flex; flex-direction:column; }
.drawer__links a{
  font-family:var(--serif); font-size:clamp(2rem,10vw,3.2rem); line-height:1.5;
  border-bottom:1px solid var(--hair); padding:6px 0; opacity:0; transform:translateY(22px);
}
.drawer.is-open .drawer__links a{ animation:letterUp .7s var(--ease) forwards; }
.drawer__links a:nth-child(1){animation-delay:.12s} .drawer__links a:nth-child(2){animation-delay:.18s}
.drawer__links a:nth-child(3){animation-delay:.24s} .drawer__links a:nth-child(4){animation-delay:.3s}
.drawer__links a:nth-child(5){animation-delay:.36s} .drawer__links a:nth-child(6){animation-delay:.42s}
.drawer__links a em{ font-style:normal; font-family:var(--sans); font-size:11px; color:var(--ember); vertical-align:super; margin-right:12px; }
.drawer__foot{ display:flex; gap:32px; flex-wrap:wrap; font-size:13px; color:var(--mute); }

/* ─── hero ──────────────────────────────────────────────── */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  padding:140px 0 clamp(22px,3.4vh,40px); overflow:hidden;
}
.hero__media{ position:absolute; inset:-8% 0; z-index:0; }
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 60%;
  filter:saturate(.68) contrast(1.06) brightness(.6) sepia(.16);
  transform:scale(1.14); animation:kenburns 26s var(--ease-2) infinite alternate;
}
@keyframes kenburns{ from{ transform:scale(1.14) } to{ transform:scale(1.02) translateY(-1.5%) } }
.hero__veil{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 90% at 20% 20%, rgba(11,10,8,.15), rgba(11,10,8,.86) 72%),
    linear-gradient(to top, var(--ink) 2%, rgba(11,10,8,.35) 48%, rgba(11,10,8,.66) 100%);
}
.hero__in{ position:relative; z-index:2; width:100%; max-width:1340px; margin-inline:auto; padding-inline:var(--pad); }
.hero__title{
  font-family:var(--serif); font-size:clamp(2.9rem,8.4vw,8.2rem); line-height:.95;
  letter-spacing:-.028em; margin:0 0 clamp(22px,3vw,34px); max-width:15ch;
}
.hero__title em{ font-style:italic; color:var(--bone-2); }
.line{ display:block; overflow:hidden; padding-bottom:.06em; }
.line > span{ display:block; transform:translateY(110%); transition:transform 1.1s var(--ease); }
.is-ready .line > span{ transform:translateY(0); }
.is-ready .line:nth-child(2) > span{ transition-delay:.09s; }
.is-ready .line:nth-child(3) > span{ transition-delay:.18s; }
.hero__sub{ max-width:48ch; color:rgba(237,230,216,.72); font-size:clamp(15px,1.1vw,18px); }
.hero__cta{ display:flex; align-items:center; gap:clamp(20px,3vw,40px); flex-wrap:wrap; margin-top:10px; }
.hero__foot{
  position:relative; z-index:2; width:100%; max-width:1340px; margin:clamp(30px,6vh,76px) auto 0;
  padding-inline:var(--pad); display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
}
.hero__meta{ display:flex; gap:clamp(22px,4vw,64px); margin:0; flex-wrap:wrap; }
.hero__meta dt{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--mute); margin-bottom:7px; }
.hero__meta dd{ margin:0; font-family:var(--serif); font-size:clamp(15px,1.3vw,19px); }
.scroller{ display:flex; flex-direction:column; align-items:center; gap:10px; font-size:9px; letter-spacing:.24em; text-transform:uppercase; color:var(--mute); }
.scroller i{ width:1px; height:56px; background:linear-gradient(var(--mute),transparent); position:relative; overflow:hidden; }
.scroller i::after{ content:""; position:absolute; inset:0; background:var(--bone); animation:scrollLine 2.2s var(--ease) infinite; }
@keyframes scrollLine{ 0%{transform:translateY(-100%)} 60%,100%{transform:translateY(100%)} }

/* ─── marquee ───────────────────────────────────────────── */
.marquee{ overflow:hidden; border-block:1px solid var(--hair); padding:20px 0; background:var(--ink); }
.marquee__track{ display:flex; gap:44px; width:max-content; animation:slide 38s linear infinite; align-items:center; }
.marquee__track span{ font-family:var(--serif); font-size:clamp(17px,2vw,26px); font-style:italic; white-space:nowrap; color:rgba(237,230,216,.8); }
.marquee__track b{ color:var(--ember); font-size:11px; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ─── story ─────────────────────────────────────────────── */
.story{ padding:clamp(88px,15vh,190px) 0; background:var(--ink); }
.story__grid{ display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(36px,7vw,110px); align-items:start; }
.story__text{
  font-family:var(--serif); font-size:clamp(1.35rem,2.65vw,2.5rem); line-height:1.3;
  letter-spacing:-.012em; margin:0 0 clamp(40px,6vw,74px); max-width:23ch;
}
.story__text .w{ opacity:.14; transition:opacity .5s var(--ease); }
.story__text .w.on{ opacity:1; }
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,28px); border-top:1px solid var(--hair); padding-top:26px; }
.stat strong{ display:block; font-family:var(--serif); font-size:clamp(2rem,3.6vw,3.3rem); font-weight:400; line-height:1; }
.stat span{ display:block; margin-top:8px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); }
.story__fig{ margin:0; }
.img-mask{ overflow:hidden; position:relative; }
.img-mask::after{
  content:""; position:absolute; inset:0; background:var(--ink); transform-origin:top;
  transition:transform 1.15s var(--ease);
}
.img-mask.is-in::after{ transform:scaleY(0); transform-origin:bottom; }
.img-mask img{ width:100%; height:100%; object-fit:cover; filter:saturate(.62) contrast(1.04) sepia(.2) brightness(.94); transform:scale(1.06); }
.story__fig .img-mask{ aspect-ratio:3/4; }
.story__fig figcaption{ margin-top:14px; font-size:12px; letter-spacing:.06em; color:var(--mute); }

/* ─── menu ──────────────────────────────────────────────── */
.menu{ position:relative; background:var(--paper); color:var(--ink); padding:clamp(80px,13vh,150px) 0 clamp(70px,11vh,130px); }
.menu .label,.menu .sec-note{ color:var(--mute-ink); }
.menu .sec-title em{ color:var(--ember); }
.sec-head{ max-width:760px; margin-bottom:clamp(44px,6vw,80px); }
.sec-head .sec-note{ margin-top:22px; }
.courses{ list-style:none; margin:0; padding:0; border-top:1px solid var(--hair-ink); }
.course{
  position:relative; display:grid; grid-template-columns:70px 1fr auto; align-items:baseline; gap:clamp(12px,2vw,34px);
  padding:clamp(20px,2.4vw,30px) 14px; border-bottom:1px solid var(--hair-ink); cursor:default;
  transition:background .5s var(--ease); isolation:isolate;
}
.course::before{
  content:""; position:absolute; inset:0; z-index:-1; background:var(--ink);
  transform:scaleY(0); transform-origin:bottom; transition:transform .55s var(--ease);
}
.course:hover::before{ transform:scaleY(1); transform-origin:top; }
.course:hover{ color:var(--paper); }
.course:hover .course__n{ color:var(--brass); }
.course:hover h3{ transform:translateX(16px); }
.course:hover p{ color:rgba(242,237,227,.6); transform:translateX(16px); }
.course__n{ font-family:var(--serif); font-style:italic; font-size:15px; color:var(--ember); transition:color .5s; letter-spacing:.04em; }
.course h3{ font-family:var(--serif); font-size:clamp(1.15rem,2.4vw,2rem); line-height:1.15; letter-spacing:-.01em; transition:transform .6s var(--ease); }
.course p{ grid-column:2; margin:8px 0 0; font-size:13.5px; color:var(--mute-ink); max-width:52ch; transition:transform .6s var(--ease) .04s,color .5s; }
.menu__foot{ display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; margin-top:clamp(30px,4vw,48px); font-size:13px; color:var(--mute-ink); }
.menu__foot p{ margin:0; max-width:52ch; }

.course-preview{
  position:fixed; top:0; left:0; z-index:150; width:262px; height:330px; margin:0; overflow:hidden;
  pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.86) rotate(-3deg);
  transition:opacity .45s var(--ease),transform .55s var(--ease);
}
.course-preview img{ width:100%; height:100%; object-fit:cover; filter:saturate(.7) contrast(1.06) sepia(.16); }
.course-preview.is-on{ opacity:1; transform:translate(-50%,-50%) scale(1) rotate(-3deg); }
@media (hover:none),(pointer:coarse){ .course-preview{ display:none; } }

/* ─── kitchen ───────────────────────────────────────────── */
.kitchen{ padding:clamp(88px,15vh,190px) 0; background:var(--ink); overflow:hidden; }
.kitchen__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,120px); align-items:center; }
.kitchen__media{ position:relative; padding-bottom:16%; }
.kitchen__a{ margin:0; aspect-ratio:4/5; }
.kitchen__b{ margin:0; position:absolute; right:-6%; bottom:0; width:46%; aspect-ratio:3/4; border:6px solid var(--ink); }
.kitchen__copy p{ color:rgba(237,230,216,.68); max-width:46ch; }
.pull{
  margin:26px 0 30px; padding-left:22px; border-left:1px solid var(--ember);
  font-family:var(--serif); font-style:italic; font-size:clamp(1.1rem,1.9vw,1.55rem);
  line-height:1.45; color:var(--bone);
}
.sign{ font-family:var(--serif); font-style:italic; font-size:16px; color:var(--brass) !important; margin-top:28px; }

/* ─── the room ──────────────────────────────────────────── */
.room{ position:relative; height:440vh; background:var(--ink-2); }
.room__sticky{ position:sticky; top:0; height:100svh; overflow:hidden; display:flex; flex-direction:column; justify-content:center; gap:clamp(18px,3vh,36px); padding:clamp(66px,9vh,100px) 0 clamp(28px,4vh,48px); }
.room__head{ flex:0 0 auto; }
.room__track{ display:flex; gap:clamp(16px,2.2vw,34px); padding-inline:var(--pad); width:max-content; will-change:transform; }
.slide{ margin:0; width:clamp(260px,34vw,480px); flex:0 0 auto; }
.slide img{ width:100%; height:clamp(240px,46vh,440px); object-fit:cover; filter:saturate(.6) contrast(1.05) sepia(.2) brightness(.82); transition:filter .7s var(--ease),transform .8s var(--ease); }
.slide:hover img{ filter:saturate(.85) contrast(1.05) sepia(.08) brightness(1); }
.slide figcaption{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-top:14px; border-top:1px solid var(--hair); padding-top:12px; }
.slide figcaption b{ font-family:var(--serif); font-weight:400; font-size:clamp(15px,1.5vw,21px); }
.slide figcaption span{ font-size:11.5px; color:var(--mute); text-align:right; }
.room__rail{ width:min(1340px,100% - var(--pad)*2); margin-inline:auto; height:1px; background:var(--hair); }
.room__rail i{ display:block; height:100%; width:12%; background:var(--bone); transform-origin:left; }

/* ─── cellar ────────────────────────────────────────────── */
.cellar{ position:relative; padding:clamp(96px,17vh,210px) 0; overflow:hidden; background:var(--ink); }
.cellar__bg{ position:absolute; inset:-10% 0; z-index:0; }
.cellar__bg img{ width:100%; height:100%; object-fit:cover; filter:sepia(.3) brightness(.26) saturate(.8); }
.cellar::after{ content:""; position:absolute; inset:0; background:linear-gradient(to right,var(--ink) 6%,rgba(11,10,8,.8) 52%,rgba(11,10,8,.58)); }
.cellar__in{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,90px); align-items:center; }
.cellar__copy p{ color:rgba(237,230,216,.7); max-width:44ch; margin-top:22px; }
.pours{ list-style:none; margin:0; padding:0; }
.pour{
  display:grid; grid-template-columns:96px 1fr auto; gap:18px; align-items:baseline;
  padding:20px 0; border-bottom:1px solid var(--hair);
}
.pour:first-child{ border-top:1px solid var(--hair); }
.pour b{ font-weight:400; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute); }
.pour span{ font-family:var(--serif); font-size:clamp(15px,1.5vw,20px); }
.pour em{ font-style:normal; font-size:13px; color:var(--brass); white-space:nowrap; }

/* ─── reserve ───────────────────────────────────────────── */
.reserve{ background:var(--bone); color:var(--ink); padding:clamp(80px,14vh,170px) 0; }
.reserve .label{ color:var(--mute-ink); }
.reserve .sec-title em{ color:var(--ember); }
.reserve__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,120px); align-items:start; }
.reserve__info p{ color:var(--mute-ink); max-width:42ch; margin-top:22px; }
.info{ display:grid; grid-template-columns:1fr 1fr; gap:26px 24px; margin:clamp(30px,4vw,48px) 0 0; border-top:1px solid var(--hair-ink); padding-top:30px; }
.info dt{ font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--mute-ink); margin-bottom:8px; }
.info dd{ margin:0; font-family:var(--serif); font-size:clamp(15px,1.3vw,18px); line-height:1.45; }
.info a:hover{ color:var(--ember); }

.form{ background:var(--paper); padding:clamp(24px,3.2vw,42px); border:1px solid var(--hair-ink); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ display:block; margin-bottom:18px; }
.field > span{ display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute-ink); margin-bottom:9px; }
.field input,.field select,.field textarea{
  width:100%; padding:13px 0; border:0; border-bottom:1px solid var(--hair-ink); background:transparent;
  font-family:var(--serif); font-size:17px; color:var(--ink); border-radius:0;
  transition:border-color .4s var(--ease);
}
.field textarea{ font-family:var(--sans); font-size:14.5px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:rgba(11,10,8,.3); font-family:var(--sans); font-size:14px; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:0; border-bottom-color:var(--ember); }
.field input.err,.field textarea.err{ border-bottom-color:var(--ember); }
.field select{ appearance:none; cursor:pointer; background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%); background-position:right 6px center,right 1px center; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
.chips{ border:0; padding:0; margin:6px 0 24px; }
.chips legend{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute-ink); margin-bottom:12px; padding:0; }
.chips label{ display:inline-block; margin:0 8px 8px 0; cursor:pointer; }
.chips input{ position:absolute; opacity:0; pointer-events:none; }
.chips span{
  display:block; padding:11px 20px; border:1px solid var(--hair-ink); border-radius:999px;
  font-size:12px; letter-spacing:.1em; transition:.4s var(--ease);
}
.chips label:hover span{ border-color:var(--ink); }
.chips input:checked + span{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.chips input:focus-visible + span{ outline:1px solid var(--ember); outline-offset:3px; }
.form .btn{ --bg:var(--ink); --fg:var(--paper); margin-top:6px; }
.form__msg{ margin:16px 0 0; font-size:13px; min-height:20px; color:var(--mute-ink); }
.form__msg.ok{ color:var(--ember); font-family:var(--serif); font-size:16px; font-style:italic; }

/* ─── footer ────────────────────────────────────────────── */
.foot{ background:var(--ink); padding:clamp(70px,10vh,120px) 0 30px; overflow:hidden; }
.foot__grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:clamp(28px,4vw,60px); padding-bottom:clamp(40px,6vw,70px); }
.foot__note{ color:var(--mute); max-width:38ch; font-size:14px; }
.foot__list{ list-style:none; margin:0; padding:0; display:grid; gap:11px; align-content:start; }
.foot__list a{ font-size:13.5px; color:var(--mute); transition:color .35s; }
.foot__list a:hover{ color:var(--bone); }
.foot__word{
  font-family:var(--serif); font-size:clamp(4rem,19vw,17rem); line-height:.82; letter-spacing:-.03em;
  text-align:center; color:transparent; -webkit-text-stroke:1px rgba(237,230,216,.22);
  user-select:none; margin-bottom:24px;
}
.foot__base{
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;
  border-top:1px solid var(--hair); padding-top:22px; font-size:11.5px; letter-spacing:.06em; color:var(--mute);
}
.foot__credit em{
  font-family:var(--serif); font-style:italic; font-size:14px; letter-spacing:.02em;
  color:var(--brass); transition:color .4s var(--ease);
}
.foot__credit:hover em{ color:var(--bone); }

/* ─── reveal ────────────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease),transform .9s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ─── responsive ────────────────────────────────────────── */
@media (max-width:1080px){
  .nav__links{ display:none; }
  .burger{ display:block; }
  .story__grid,.kitchen__grid,.cellar__in,.reserve__grid{ grid-template-columns:1fr; }
  .story__fig{ max-width:440px; }
  .kitchen__media{ order:2; max-width:520px; }
  .foot__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .hero{ min-height:92svh; padding-top:112px; }
  .kicker{ font-size:10px; letter-spacing:.18em; gap:10px; }
  .hero__title{ font-size:clamp(2.5rem,12.4vw,3.2rem); }
  .hero__sub{ font-size:15px; max-width:36ch; }
  .nav__word{ font-size:20px; letter-spacing:.14em; }
  .hero__foot{ flex-direction:column; align-items:flex-start; }
  .scroller{ display:none; }
  .hero__meta{ gap:22px 30px; }
  .stats{ grid-template-columns:1fr 1fr; gap:24px 16px; }
  .course{ grid-template-columns:40px 1fr; padding-inline:8px; }
  .course:hover h3,.course:hover p{ transform:none; }
  .pour{ grid-template-columns:1fr auto; }
  .pour b{ grid-column:1/-1; }
  .form__row,.info{ grid-template-columns:1fr; }
  .room{ height:360vh; }
  .foot__grid{ grid-template-columns:1fr; }
  .foot__base{ flex-direction:column; gap:8px; }
  .btn--sm{ padding:11px 18px; letter-spacing:.14em; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
  .reveal,.line > span,.story__text .w{ opacity:1 !important; transform:none !important; }
  .img-mask::after{ display:none; }
  .grain{ display:none; }
  .room{ height:auto; }
  .room__sticky{ position:static; height:auto; }
  .room__track{ width:100%; overflow-x:auto; padding-bottom:16px; }
}
