*,*::before,*::after{box-sizing:border-box}

/* ============================================================
   TOKENS — Nocturnal Lantern
   ============================================================ */
:root{
  /* surfaces */
  --ink:#0E0A08;
  --ink-2:#171210;
  --ink-3:#221A15;
  --ink-4:#080604;
  --paper:#F4EFE6;
  --paper-2:#EBE4D5;

  /* light source */
  --amber:#F0A030;
  --amber-hot:#F7B54D;
  --ember:#C8442A;
  --jade:#2F8A6B;
  --gold:#D9B061;
  --haze:rgba(240,160,48,.10);

  /* text */
  --text:#F1E9DC;
  --text-mute:#B8AC9A;
  --text-dim:#7C7264;
  --text-ink:#171210;
  --text-ink-mute:#5A4E42;

  /* structural */
  --line:rgba(217,176,97,.16);
  --line-strong:rgba(217,176,97,.35);
  --line-paper:rgba(23,18,16,.14);

  /* type */
  --display:'Fraunces',Georgia,'Times New Roman',serif;
  --ui:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --body:'Newsreader',Georgia,'Times New Roman',serif;

  /* frame */
  --max:1180px;
  --radius:6px;
  --radius-lg:10px;
  --hdr:64px;
  --band-y:clamp(4rem,9vw,8rem);
  --gutter:clamp(1rem,3vw,2rem);

  /* space */
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2rem; --s5:2.5rem;
  --s6:3rem; --s8:4rem; --s10:5rem; --s12:6rem;

  /* motion */
  --dur-1:240ms;
  --dur-2:600ms;
  --dur-3:1000ms;
  --dur-loop:8s;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.22,.61,.36,1);
}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);
  font-family:var(--body);font-size:1.0625rem;line-height:1.6;
  font-variation-settings:'opsz' 16,'wght' 420;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:var(--radius)}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--amber);color:var(--ink);
  padding:.75rem 1rem;font-family:var(--ui);font-weight:700;letter-spacing:.06em}
.skip:focus{left:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1,h2,h3,h4{margin:0}
h1,h2{font-family:var(--display);line-height:1.02;letter-spacing:-.028em}
h1{font-size:clamp(2.8rem,8vw,5.6rem);
   font-style:italic;
   font-variation-settings:'opsz' 144,'wght' 420,'SOFT' 100;
   letter-spacing:-.035em}
h2{font-size:clamp(2rem,5vw,3.4rem);
   font-variation-settings:'opsz' 72,'wght' 460,'SOFT' 60}
h2 em{font-style:italic;font-variation-settings:'opsz' 72,'wght' 420,'SOFT' 100;
   color:var(--amber);letter-spacing:-.03em}
h3{font-family:var(--ui);font-size:.875rem;font-weight:600;
   letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
h4{font-family:var(--ui);font-size:.75rem;font-weight:700;
   letter-spacing:.14em;text-transform:uppercase}

p{margin:0 0 var(--s2)}
.lead{font-family:var(--body);font-size:clamp(1.15rem,2vw,1.4rem);
  font-variation-settings:'opsz' 32,'wght' 380;
  line-height:1.5;color:var(--text-mute);max-width:56ch}
.eyebrow{font-family:var(--ui);font-size:.75rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--amber);
  margin:0 0 var(--s3);display:flex;align-items:center;gap:.75rem}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--gold);opacity:.6}
.prose p{max-width:64ch;color:var(--text-mute)}
.prose strong{color:var(--text);font-variation-settings:'wght' 520}

/* hero display: letter-by-letter reveal wrapping */
.headline{display:inline-block}
.headline .word{display:inline-block;white-space:nowrap;margin-right:.28em}
.headline .word:last-child{margin-right:0}
.headline .ltr{display:inline-block;overflow:hidden;vertical-align:top}
.headline .ltr::after{content:attr(data-c);display:inline-block;transform:translateY(105%);
  transition:transform var(--dur-2) var(--ease-out);transition-delay:var(--d,0ms)}
.headline.in .ltr::after{transform:none}

/* ============================================================
   UTILITY BAR
   ============================================================ */
.util{background:var(--ink-4);color:var(--text-mute);font-family:var(--ui);
  font-size:.8125rem;font-weight:500;border-bottom:1px solid var(--line)}
.util .wrap{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);align-items:center;
  padding-block:.65rem;justify-content:center}
.util a{color:var(--text);text-decoration:none;font-weight:600;
  transition:color var(--dur-1) var(--ease-out)}
.util a:hover{color:var(--amber)}
.dot{width:.55rem;height:.55rem;border-radius:50%;display:inline-block;margin-right:.5rem;
  background:var(--text-dim);vertical-align:.02em;position:relative}
.is-open .dot{background:var(--jade);animation:pulse 2.4s ease-in-out infinite}
.is-shut .dot{background:var(--ember)}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(47,138,107,.6)}
  50%{box-shadow:0 0 0 6px rgba(47,138,107,0)}
}

/* ============================================================
   HEADER
   ============================================================ */
.hdr{position:sticky;top:0;z-index:40;
  background:rgba(14,10,8,.86);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:var(--s3);height:var(--hdr)}
.brand{display:flex;flex-direction:column;text-decoration:none;margin-right:auto;line-height:1}
.brand b{font-family:var(--display);font-weight:600;font-size:1.35rem;
  color:var(--text);letter-spacing:-.015em;
  font-variation-settings:'opsz' 48,'wght' 580,'SOFT' 40}
.brand span{font-family:var(--display);font-style:italic;font-size:.78rem;
  font-variation-settings:'opsz' 14,'wght' 400,'SOFT' 100;
  color:var(--gold);margin-top:.15rem;letter-spacing:0;text-transform:none;opacity:.85}
.nav{display:flex;gap:var(--s3);align-items:center}
.nav a{font-family:var(--ui);font-size:.875rem;font-weight:500;
  text-decoration:none;color:var(--text-mute);position:relative;padding:.4rem 0;
  transition:color var(--dur-1) var(--ease-out)}
.nav a:hover{color:var(--text)}
.nav a[aria-current="page"]{color:var(--text);
  font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 24,'wght' 480,'SOFT' 80;
  font-size:1rem;letter-spacing:-.005em}
.nav__ph{color:var(--text-mute);font-family:var(--ui);font-size:.875rem;
  font-weight:500;text-decoration:none;font-variant-numeric:tabular-nums;
  margin-left:auto;transition:color var(--dur-1) var(--ease-out)}
.nav__ph:hover{color:var(--text)}
.nav__cta{font-family:var(--ui);font-size:.875rem;font-weight:600;
  text-decoration:none;color:var(--amber);display:inline-flex;align-items:center;gap:.45rem;
  transition:color var(--dur-1) var(--ease-out)}
.nav__cta:hover{color:var(--amber-hot)}
.nav__cta span{display:inline-block;transition:transform var(--dur-1) var(--ease-out)}
.nav__cta:hover span{transform:translateX(4px)}
@media (max-width:800px){
  .nav a.opt{display:none}
  .nav__ph{display:none}
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--ui);font-size:.9375rem;font-weight:600;letter-spacing:.02em;
  padding:.85rem 1.4rem;border-radius:var(--radius);text-decoration:none;
  border:1px solid transparent;cursor:pointer;position:relative;overflow:hidden;
  transition:color var(--dur-1) var(--ease-out),
    border-color var(--dur-1) var(--ease-out),
    transform var(--dur-1) var(--ease-out)}
.btn::before{content:"";position:absolute;inset:0;background:var(--amber);
  transform-origin:left;transform:scaleX(0);
  transition:transform var(--dur-1) var(--ease-out);z-index:-1}
.btn > *{position:relative;z-index:1}
.btn--go{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.btn--go::before{background:var(--amber-hot)}
.btn--go:hover::before{transform:scaleX(1)}
.btn--go:hover{color:var(--ink);border-color:var(--amber-hot)}
.btn--line{color:var(--text);border-color:var(--line-strong);background:transparent}
.btn--line:hover{color:var(--ink);border-color:var(--amber)}
.btn--line:hover::before{transform:scaleX(1)}
.btn--sm{padding:.55rem .95rem;font-size:.8125rem}
.on-paper .btn--line{color:var(--ink);border-color:var(--line-paper)}
.on-paper .btn--line:hover{color:var(--ink)}

/* ============================================================
   SECTIONS
   ============================================================ */
.band{padding-block:var(--band-y);position:relative}
.band--tight{padding-block:calc(var(--band-y) * .7)}
.band--lift{background:var(--ink-2)}
.band--paper{background:var(--paper);color:var(--text-ink)}
.band--paper h2{color:var(--text-ink)}
.band--paper .lead{color:var(--text-ink-mute)}
.band--paper .prose p{color:var(--text-ink-mute)}
.band--paper .prose strong{color:var(--text-ink)}
.band--paper .eyebrow{color:var(--ember)}
.band--paper .eyebrow::before{background:var(--ember);opacity:.5}
.band--dark{background:var(--ink-4)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* Section markers */
.mk-num{position:absolute;top:calc(var(--band-y) - .5rem);right:var(--gutter);
  font-family:var(--display);font-style:italic;font-size:.9rem;
  font-variation-settings:'opsz' 24,'wght' 460,'SOFT' 80;
  color:var(--gold);opacity:.75;letter-spacing:.02em;
  display:flex;align-items:center;gap:.5rem;pointer-events:none;z-index:1}
.mk-num::before{content:"";width:24px;height:1px;background:currentColor;opacity:.6}
@media (max-width:900px){.mk-num{position:static;margin-bottom:var(--s3);
  transform:none;justify-content:flex-start}
  .mk-num::before{width:16px}}
.band--paper .mk-num{color:var(--ember);opacity:.6}
.mk-brush{display:block;width:64px;height:14px;margin-bottom:var(--s3);color:var(--gold);opacity:.7}
.mk-brush path{stroke:currentColor;stroke-width:1.4;fill:none;stroke-linecap:round}
.band--paper .mk-brush{color:var(--ember);opacity:.5}
.band--edge{border-top:1px solid var(--line)}
.mk-cap{font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 24,'wght' 400,'SOFT' 100;
  font-size:1.1rem;color:var(--amber);margin:0 0 var(--s2);letter-spacing:-.01em}
.band--paper .mk-cap{color:var(--ember)}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding-top:var(--s8);padding-bottom:var(--s8);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;top:20%;right:-10%;width:65%;height:70%;
  background:radial-gradient(closest-side,var(--haze),transparent 70%);
  pointer-events:none;z-index:0}
.hero .wrap{position:relative;z-index:1}
.hero__grid{display:grid;gap:var(--s6);grid-template-columns:1fr}
@media (min-width:960px){.hero__grid{grid-template-columns:1fr 1.05fr;align-items:center;gap:var(--s10)}}
.hero__img{position:relative;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.7),0 0 0 1px var(--line);isolation:isolate}
.hero__img img{width:100%;aspect-ratio:5/4;object-fit:cover;
  animation:kenburns 12s var(--ease-soft) infinite alternate}
.hero__img::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 50%,transparent 40%,rgba(14,10,8,.55) 100%),
    linear-gradient(180deg,transparent 60%,rgba(14,10,8,.4) 100%);z-index:2}
.hero__stamp{position:absolute;left:var(--s3);bottom:var(--s3);z-index:3;
  background:rgba(14,10,8,.72);backdrop-filter:blur(8px);
  border:1px solid var(--line-strong);border-radius:var(--radius);
  padding:.55rem .85rem;font-family:var(--ui);font-size:.6875rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
@keyframes kenburns{
  from{transform:scale(1.02) translate(0,0)}
  to{transform:scale(1.10) translate(-1.5%,-1.5%)}
}
.steam{position:absolute;top:-10%;right:22%;width:44px;height:120px;z-index:3;
  opacity:.55;pointer-events:none;animation:steam 6s var(--ease-soft) infinite}
.steam path{stroke:#fff;stroke-width:1.6;fill:none;stroke-linecap:round}
@keyframes steam{
  0%{transform:translateY(20px) scale(.9);opacity:0}
  25%{opacity:.55}
  75%{opacity:.4}
  100%{transform:translateY(-40px) scale(1.05);opacity:0}
}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.facts{list-style:none;margin:var(--s6) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3) var(--s4)}
@media (min-width:600px){.facts{grid-template-columns:repeat(4,1fr)}}
.facts li{display:flex;flex-direction:column;gap:.35rem;
  padding-top:var(--s2);border-top:1px solid var(--line)}
.facts b{font-family:var(--display);font-size:1.75rem;line-height:1;
  font-variation-settings:'opsz' 48,'wght' 500,'SOFT' 20;
  color:var(--amber);font-variant-numeric:tabular-nums}
.facts span{font-family:var(--ui);font-size:.6875rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.roll{display:inline-block;overflow:hidden;vertical-align:baseline}
.roll span{display:inline-block;transform:translateY(105%);
  transition:transform var(--dur-2) var(--ease-out)}
.roll.in span{transform:none}

/* ============================================================
   CHIP
   ============================================================ */
.chip{display:inline-flex;align-items:center;justify-content:center;
  min-width:2.7rem;height:2.1rem;padding:0 .5rem;background:var(--ink-3);
  border:1px solid var(--line-strong);border-radius:var(--radius);
  font-family:var(--ui);font-weight:700;font-size:.9375rem;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1;
  color:var(--amber);position:relative;overflow:hidden;
  transition:box-shadow var(--dur-1) var(--ease-out)}
.chip--lg{min-width:3.6rem;height:2.7rem;font-size:1.15rem}
.chip--sm{min-width:2.1rem;height:1.65rem;font-size:.75rem;padding:0 .35rem}
.on-paper .chip{background:var(--paper-2);border-color:var(--line-paper);color:var(--ink)}

/* ============================================================
   MENU GALLERY
   ============================================================ */
.gallery{margin-top:var(--s10)}
.gallery__hero{display:block;text-decoration:none;color:inherit;text-align:center;
  margin-bottom:var(--s10);position:relative}
.gallery__hero .frame{position:relative;width:min(560px,100%);margin:0 auto var(--s4);
  aspect-ratio:5/4}
.gallery__hero .frame::before{content:"";position:absolute;inset:-12% -8%;z-index:0;
  background:radial-gradient(closest-side,var(--haze),transparent 72%);pointer-events:none}
.gallery__hero .frame::after{content:"";position:absolute;inset:0;z-index:2;
  border-radius:var(--radius-lg);pointer-events:none;
  background:radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(14,10,8,.35) 100%)}
.gallery__hero img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;
  border-radius:var(--radius-lg);
  filter:brightness(.98) saturate(1.05) contrast(1.05);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.8);
  transition:transform var(--dur-3) var(--ease-soft)}
.gallery__hero:hover img{transform:scale(1.02)}
.gallery__grid{display:grid;gap:var(--s6) var(--s4);grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){.gallery__grid{grid-template-columns:repeat(4,1fr)}}
.gallery__item{display:block;text-decoration:none;color:inherit;text-align:center;position:relative}
.gallery__item .frame{position:relative;aspect-ratio:1/1;margin-bottom:var(--s3);
  max-width:220px;margin-inline:auto}
.gallery__item .frame::before{content:"";position:absolute;inset:-20%;z-index:0;
  background:radial-gradient(closest-side,var(--haze),transparent 68%);pointer-events:none;
  transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);opacity:.55}
.gallery__item:hover .frame::before{opacity:1;transform:scale(1.1)}
.gallery__item img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;
  border-radius:50%;
  filter:brightness(.94) saturate(1.05) contrast(1.04);
  box-shadow:0 24px 48px -20px rgba(0,0,0,.7),inset 0 0 0 1px rgba(217,176,97,.15);
  transition:transform var(--dur-3) var(--ease-soft)}
.gallery__item:hover img{transform:scale(1.05)}
.gallery__k{display:block;font-family:var(--ui);font-size:.6875rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  margin:0 0 .5rem;opacity:.85}
.gallery__name{margin:0;font-family:var(--display);font-style:italic;text-transform:none;
  font-variation-settings:'opsz' 32,'wght' 440,'SOFT' 80;
  font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--text);
  letter-spacing:-.02em;line-height:1.18;
  display:flex;align-items:center;justify-content:center;gap:.55rem;flex-wrap:wrap}
.gallery__code{font-family:var(--ui);font-style:normal;font-size:.75rem;font-weight:700;
  letter-spacing:.04em;color:var(--amber);
  padding:.22rem .45rem;border:1px solid var(--line-strong);border-radius:4px;line-height:1;
  font-variant-numeric:tabular-nums;background:var(--ink-3);white-space:nowrap}
.gallery__hero .gallery__name{font-size:clamp(1.7rem,3.2vw,2.5rem);letter-spacing:-.028em}
.gallery__hero .gallery__code{font-size:.9rem;padding:.35rem .6rem}
.gallery__hero p{margin:var(--s2) auto 0;color:var(--text-mute);font-size:1rem;
  font-family:var(--body);max-width:48ch;line-height:1.55}
.gallery__hero .hot{margin-left:.35rem}
.gallery__item .hot{margin-top:.4rem}
.eyebrow-inline{font-family:var(--ui);font-size:.6875rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin:0 0 .6rem}
.on-paper .eyebrow-inline{color:var(--ember)}

/* ============================================================
   MENU INDEX
   ============================================================ */
.idx-head{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:baseline;
  justify-content:space-between;padding-top:var(--s4);margin-top:var(--s8);
  border-top:1px solid var(--line-strong)}
.idx-head h3{font-family:var(--display);text-transform:none;letter-spacing:-.015em;
  font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:500;color:var(--text);
  font-variation-settings:'opsz' 32,'wght' 520}
.idx-head p{margin:0;font-size:.9375rem;color:var(--text-mute);max-width:36ch}
.idx{display:flex;flex-wrap:wrap;gap:.5rem;margin:var(--s4) 0 var(--s6);padding:0;list-style:none}
.idx a{display:inline-flex;align-items:baseline;gap:.5rem;text-decoration:none;
  font-family:var(--ui);font-size:.875rem;font-weight:500;
  padding:.5rem .85rem;border:1px solid var(--line);border-radius:24px;
  background:var(--ink-2);color:var(--text);
  transition:border-color var(--dur-1) var(--ease-out),
    background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.idx a:hover{border-color:var(--amber);background:var(--ink-3);color:var(--amber)}
.idx em{font-style:normal;font-size:.7rem;font-weight:700;
  color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:.05em}
.menu-end{padding-top:var(--s4);border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between}
.menu-end p{margin:0;max-width:46ch;color:var(--text-mute);font-size:.9375rem}

/* ============================================================
   SPICE FLAG
   ============================================================ */
.hot{display:inline-flex;align-items:center;gap:.32rem;font-family:var(--ui);
  font-size:.625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ember);border:1px solid currentColor;border-radius:24px;padding:.2rem .55rem .2rem .5rem}
.hot::before{content:"";width:.65rem;height:.85rem;background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 32'><path d='M12 2 C 9 6 6 10 6 17 C 6 25 9 30 12 30 C 15 30 18 25 18 17 C 18 12 15 10 14 6 C 13 8 12 9 11 8 C 11 5 12 4 12 2Z M9 22 C 9 18 11 16 12 14 C 13 16 14 18 14 22 C 14 25 13 27 12 27 C 11 27 9 25 9 22Z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 32'><path d='M12 2 C 9 6 6 10 6 17 C 6 25 9 30 12 30 C 15 30 18 25 18 17 C 18 12 15 10 14 6 C 13 8 12 9 11 8 C 11 5 12 4 12 2Z M9 22 C 9 18 11 16 12 14 C 13 16 14 18 14 22 C 14 25 13 27 12 27 C 11 27 9 25 9 22Z'/></svg>") center/contain no-repeat}

/* ============================================================
   SPLIT
   ============================================================ */
.split{display:grid;gap:var(--s6);grid-template-columns:1fr;align-items:center}
@media (min-width:900px){
  .split{grid-template-columns:1fr 1fr;gap:var(--s10)}
  .split--flip .split__img{order:-1}
}
.split__img{position:relative;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.split__img img{width:100%;aspect-ratio:5/4;object-fit:cover;
  filter:brightness(.94) saturate(1.05);
  transition:transform var(--dur-3) var(--ease-soft)}
.on-paper .split__img img{filter:none}
.split__img::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 65%,rgba(14,10,8,.35) 100%)}
.on-paper .split__img::after{background:none}

/* ============================================================
   CAROUSEL / FINDINGS
   ============================================================ */
.carousel{margin:var(--s6) 0 var(--s6);position:relative}
.carousel__track{list-style:none;margin:0;padding:0;
  display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;outline:none}
.carousel__track::-webkit-scrollbar{display:none}
.finding{flex:0 0 100%;min-width:100%;scroll-snap-align:start;
  display:grid;grid-template-columns:auto 1fr;gap:var(--s3);
  align-items:center;padding:var(--s5) 0;min-height:260px}
@media (min-width:760px){
  .finding{grid-template-columns:9rem 1fr;gap:var(--s5);
    padding:var(--s6) var(--s2);min-height:340px}
}
@media (max-width:600px){
  .finding{grid-template-columns:1fr;gap:.6rem;padding:var(--s4) 0}
}
.finding__n{font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 144,'wght' 380,'SOFT' 100;
  font-size:clamp(3.5rem,9vw,7rem);line-height:.85;color:var(--amber);
  letter-spacing:-.03em;text-align:right;padding-right:.25rem}
@media (max-width:600px){.finding__n{text-align:left;font-size:3rem}}
.finding__k{display:block;font-family:var(--ui);font-size:.6875rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 .5rem;opacity:.85}
.finding h3{font-family:var(--display);text-transform:none;letter-spacing:-.02em;
  font-size:clamp(1.5rem,3vw,2.2rem);font-weight:500;color:var(--text);
  margin-bottom:.75rem;line-height:1.15;
  font-variation-settings:'opsz' 48,'wght' 480,'SOFT' 40}
.finding p{color:var(--text-mute);font-size:1.05rem;line-height:1.6;margin:0;max-width:60ch}
.finding p a{color:var(--amber);text-decoration:none;white-space:nowrap;
  border-bottom:1px solid rgba(240,160,48,.35);padding-bottom:1px;margin-left:.35rem;
  transition:border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.finding p a:hover{color:var(--amber-hot);border-bottom-color:var(--amber-hot)}
.carousel__controls{display:flex;align-items:center;gap:var(--s3);
  padding-top:var(--s3);margin-top:var(--s2);
  border-top:1px solid var(--line);flex-wrap:wrap}
.carousel__pos{font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 24,'wght' 460,'SOFT' 80;
  color:var(--gold);font-size:1rem;letter-spacing:.005em;
  font-variant-numeric:tabular-nums;min-width:5rem}
.carousel__dots{display:flex;gap:.7rem;flex:1;justify-content:center;flex-wrap:wrap}
.carousel__dot{width:6px;height:6px;background:var(--line-strong);border-radius:50%;
  border:0;padding:0;cursor:pointer;
  transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}
.carousel__dot:hover{background:var(--amber)}
.carousel__dot--active{background:var(--amber);transform:scale(1.8)}
.carousel__nav{display:flex;gap:var(--s3);align-items:center}
.carousel__btn{background:transparent;border:0;padding:.4rem 0;cursor:pointer;
  font-family:var(--ui);font-size:.9375rem;font-weight:500;
  color:var(--text-mute);display:inline-flex;align-items:center;gap:.4rem;
  transition:color var(--dur-1) var(--ease-out)}
.carousel__btn:hover:not(:disabled){color:var(--amber)}
.carousel__btn:disabled{opacity:.3;cursor:not-allowed}
.carousel__btn span{display:inline-block;transition:transform var(--dur-1) var(--ease-out)}
.carousel__btn[data-next]:hover:not(:disabled) span{transform:translateX(4px)}
.carousel__btn[data-prev]:hover:not(:disabled) span{transform:translateX(-4px)}
.rates-line{margin-top:var(--s6);padding-top:var(--s4);
  border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);align-items:baseline;
  font-family:var(--ui);font-size:.9375rem;color:var(--text-mute)}
.rates-line a{display:inline-flex;align-items:baseline;gap:.5rem;
  text-decoration:none;color:var(--text-mute);
  transition:color var(--dur-1) var(--ease-out)}
.rates-line a:hover{color:var(--text)}
.rates-line b{font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 24,'wght' 460,'SOFT' 80;
  color:var(--amber);font-size:1.15rem;line-height:1;font-variant-numeric:tabular-nums;
  letter-spacing:-.01em}
.rates-line em{font-style:normal;font-size:.8125rem;color:var(--text-dim);margin-left:.4rem}

/* ============================================================
   AREAS
   ============================================================ */
.areas{display:grid;gap:var(--s3);grid-template-columns:1fr;margin-top:var(--s6)}
@media (min-width:700px){.areas{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.areas{grid-template-columns:repeat(3,1fr)}}
.area{background:var(--ink-3);border:1px solid var(--line);
  border-radius:var(--radius);padding:var(--s4);position:relative;
  transition:border-color var(--dur-1) var(--ease-out)}
.area::before{content:"";position:absolute;top:0;left:0;width:40px;height:1px;
  background:var(--gold);opacity:.7}
.area:hover{border-color:var(--line-strong)}
.area h3{font-family:var(--display);text-transform:none;letter-spacing:-.01em;
  font-size:1.35rem;font-weight:500;color:var(--text);margin-bottom:.5rem;
  font-variation-settings:'opsz' 32,'wght' 520}
.area p{font-size:.9375rem;color:var(--text-mute);margin:0 0 var(--s2)}
.area em{font-family:var(--ui);font-style:normal;font-size:.6875rem;
  font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);display:block}
.area em a{color:var(--amber);text-decoration:none}

/* ============================================================
   FAQ
   ============================================================ */
.faq{max-width:78ch;margin-top:var(--s4)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:var(--s3) 3rem var(--s3) 0;
  position:relative;
  font-family:var(--display);font-size:clamp(1.05rem,2vw,1.25rem);font-weight:500;
  color:var(--text);letter-spacing:-.01em;line-height:1.35;
  font-variation-settings:'opsz' 24,'wght' 480,'SOFT' 30;
  transition:color var(--dur-1) var(--ease-out)}
.faq summary:hover{color:var(--amber)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.5rem;top:50%;
  width:14px;height:14px;
  background:
    linear-gradient(var(--amber),var(--amber)) center/14px 1.5px no-repeat,
    linear-gradient(var(--amber),var(--amber)) center/1.5px 14px no-repeat;
  transform:translateY(-50%);
  transition:transform var(--dur-1) var(--ease-out)}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{font-family:var(--body);font-size:1rem;color:var(--text-mute);
  margin:0 0 var(--s3);max-width:66ch;line-height:1.6}

/* ============================================================
   CONTACT
   ============================================================ */
.contact{display:grid;gap:var(--s6);grid-template-columns:1fr}
@media (min-width:900px){.contact{grid-template-columns:1fr 1.1fr;gap:var(--s10)}}
.hours{list-style:none;margin:var(--s4) 0 var(--s4);padding:0;max-width:26rem}
.hours li{display:flex;justify-content:space-between;gap:var(--s2);padding:.7rem 0;
  border-bottom:1px solid var(--line);font-family:var(--ui);font-size:.9375rem;
  font-weight:500;color:var(--text-mute)}
.hours li b{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.cinfo{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:var(--s3)}
.cinfo a{font-family:var(--display);font-size:1.15rem;
  font-variation-settings:'opsz' 32,'wght' 500,'SOFT' 25;
  text-decoration:none;color:var(--text);
  border-bottom:1px solid rgba(240,160,48,.4);padding-bottom:2px;
  transition:color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}
.cinfo a:hover{color:var(--amber);border-color:var(--amber)}
.cinfo small{display:block;font-family:var(--ui);font-size:.6875rem;
  font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.3rem}
.mapbox{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
  position:relative;background:var(--ink-3);min-height:340px}
.mapbox img{width:100%;height:100%;position:absolute;inset:0;
  aspect-ratio:auto;object-fit:cover;opacity:.35;filter:saturate(.7)}
.mapbox__over{position:relative;z-index:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:var(--s3);text-align:center;
  padding:var(--s6) var(--s3);min-height:340px}
.mapbox__over p{font-family:var(--ui);font-size:.9375rem;font-weight:500;
  color:var(--text);margin:0;line-height:1.6}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{background:var(--ink-4);color:var(--text-dim);
  padding-block:var(--s8);font-size:.875rem;border-top:1px solid var(--line)}
.foot__grid{display:grid;gap:var(--s6);grid-template-columns:1fr}
@media (min-width:760px){.foot__grid{grid-template-columns:2fr 1fr 1fr}}
.foot h4{color:var(--gold);margin-bottom:var(--s2)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.foot a{color:var(--text-mute);text-decoration:none;
  transition:color var(--dur-1) var(--ease-out)}
.foot a:hover{color:var(--amber)}
.foot__base{margin-top:var(--s6);padding-top:var(--s4);
  border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:var(--s3);
  justify-content:space-between;font-size:.75rem;color:var(--text-dim)}

/* ============================================================
   MENU PAGE — full menu list
   ============================================================ */
.menu-toc{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:var(--s6) 0 0;padding:0;
  padding-top:var(--s4);border-top:1px solid var(--line)}
.menu-toc a{display:inline-flex;align-items:baseline;gap:.4rem;text-decoration:none;
  font-family:var(--ui);font-size:.8125rem;font-weight:500;
  padding:.4rem .75rem;border:1px solid var(--line);border-radius:24px;
  background:var(--ink-2);color:var(--text-mute);
  transition:border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.menu-toc a:hover{border-color:var(--amber);color:var(--amber)}
.menu-toc em{font-style:normal;font-size:.7rem;font-weight:600;color:var(--gold);
  font-variant-numeric:tabular-nums}

.mn{padding-block:var(--s10);scroll-margin-top:calc(var(--hdr) + 1rem);position:relative}
.mn + .mn{border-top:1px solid var(--line)}
.mn__head{margin-bottom:var(--s5);max-width:70ch}
.mn__head h2{font-family:var(--display);font-style:italic;text-transform:none;letter-spacing:-.03em;
  font-size:clamp(2rem,4.5vw,3rem);font-weight:460;color:var(--text);
  font-variation-settings:'opsz' 96,'wght' 460,'SOFT' 100;line-height:1;margin-bottom:.5rem}
.mn__head p{font-family:var(--body);color:var(--text-mute);font-size:1rem;
  font-variation-settings:'opsz' 24,'wght' 400;margin:0;line-height:1.5}
.mn__count{display:inline-block;margin-left:.5rem;font-family:var(--ui);font-style:normal;
  font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
  vertical-align:.35em}

.mn__list{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:var(--s3) var(--s8)}
@media (min-width:760px){.mn__list{grid-template-columns:1fr 1fr}}
.mn__item{display:grid;grid-template-columns:auto 1fr auto;
  gap:.65rem var(--s3);align-items:baseline;
  padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.mn__item:last-child{border-bottom:0}
.mn__item .chip{grid-row:span 2;align-self:start;margin-top:.2rem}
.mn__item.no-code{grid-template-columns:1fr auto}
.mn__name{font-family:var(--display);font-style:italic;font-size:1.05rem;
  font-variation-settings:'opsz' 24,'wght' 460,'SOFT' 60;
  letter-spacing:-.015em;color:var(--text);line-height:1.2;
  display:inline-flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.mn__price{font-family:var(--ui);font-weight:600;font-size:.9375rem;
  color:var(--amber);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em}
.mn__desc{grid-column:2 / -1;font-family:var(--body);font-size:.9375rem;
  color:var(--text-mute);margin:0;line-height:1.5}
.mn__item.no-code .mn__desc{grid-column:1 / -1}

/* Legend */
.mn-legend{padding:var(--s4);background:var(--ink-3);border:1px solid var(--line);
  border-radius:var(--radius);display:grid;gap:var(--s3);grid-template-columns:1fr;
  margin-top:var(--s6)}
@media (min-width:760px){.mn-legend{grid-template-columns:repeat(3,1fr)}}
.mn-legend dt{font-family:var(--ui);font-size:.6875rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem}
.mn-legend dd{margin:0;font-family:var(--body);font-size:.9375rem;color:var(--text-mute);line-height:1.5}

/* ============================================================
   ABOUT PAGE — story bits
   ============================================================ */
.pull{margin:var(--s6) 0;padding:var(--s5) 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 96,'wght' 400,'SOFT' 100;
  font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.2;letter-spacing:-.025em;
  color:var(--text);max-width:56ch}
.pull::before{content:"\201C";display:block;font-size:2.5em;line-height:.5;
  color:var(--amber);opacity:.5;margin-bottom:.15em}
.pull cite{display:block;margin-top:var(--s3);font-family:var(--ui);
  font-style:normal;font-size:.75rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}

.trio{display:grid;gap:var(--s5);grid-template-columns:1fr;margin-top:var(--s6)}
@media (min-width:900px){.trio{grid-template-columns:repeat(3,1fr)}}
.trio__col{padding-top:var(--s3);border-top:1px solid var(--line-strong)}
.trio__col .num{display:block;font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 72,'wght' 400,'SOFT' 100;
  font-size:2.6rem;line-height:.9;color:var(--gold);margin-bottom:.75rem;opacity:.85}
.trio__col h3{font-family:var(--display);text-transform:none;letter-spacing:-.015em;
  font-size:1.5rem;font-weight:500;color:var(--text);margin-bottom:.5rem;
  font-variation-settings:'opsz' 32,'wght' 500,'SOFT' 50}
.trio__col p{color:var(--text-mute);font-size:.9375rem;line-height:1.55;margin:0}

/* Note / signed hand-note */
.note{margin:var(--s8) 0 0;padding:var(--s5);
  border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(240,160,48,.03),transparent 40%);
  max-width:56ch}
.note p{font-family:var(--body);font-size:1.05rem;color:var(--text);line-height:1.55;
  font-variation-settings:'opsz' 24,'wght' 400;margin:0 0 var(--s2)}
.note cite{display:block;margin-top:var(--s3);font-family:var(--display);font-style:italic;
  font-variation-settings:'opsz' 24,'wght' 480,'SOFT' 80;
  font-size:1rem;color:var(--gold);letter-spacing:-.005em}

/* ============================================================
   MOTION — scroll reveals
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(28px);
  transition:opacity var(--dur-2) var(--ease-out),
    transform var(--dur-2) var(--ease-out)}
[data-reveal].in{opacity:1;transform:none}
[data-stagger] > *{opacity:0;transform:translateY(24px);
  transition:opacity var(--dur-2) var(--ease-out),
    transform var(--dur-2) var(--ease-out)}
[data-stagger].in > *{opacity:1;transform:none}
[data-stagger].in > *:nth-child(1){transition-delay:0ms}
[data-stagger].in > *:nth-child(2){transition-delay:80ms}
[data-stagger].in > *:nth-child(3){transition-delay:160ms}
[data-stagger].in > *:nth-child(4){transition-delay:240ms}
[data-stagger].in > *:nth-child(5){transition-delay:320ms}
[data-stagger].in > *:nth-child(6){transition-delay:400ms}
[data-stagger].in > *:nth-child(n+7){transition-delay:480ms}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important}
  [data-reveal],[data-stagger] > *{opacity:1!important;transform:none!important}
  .headline .ltr::after{transform:none!important}
  .roll span{transform:none!important}
  .hero__img img{animation:none!important}
  .steam{display:none}
  .is-open .dot{animation:none!important}
}
