/* ============================================================
   AURA — Dining in the Glow
   A luminous tasting experience. Video-led, ethereal modern-luxe.
   ============================================================ */

:root{
  --ink:#07070c;          /* deep midnight */
  --ink-2:#0c0c16;        /* panel */
  --paper:#f2ede3;        /* warm off-white text */
  --muted:#9a9488;        /* muted text */
  --glow:#e9c982;         /* champagne / amber aura */
  --glow-soft:#f0d9a6;
  --aura:#8fa7d6;         /* cool spectral counter-glow */
  --hair:rgba(242,237,227,.12);
  --hair-strong:rgba(242,237,227,.22);
  --shadow:0 30px 80px -30px rgba(0,0,0,.8);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:'Jost',system-ui,sans-serif;
  font-weight:300;
  line-height:1.6;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--glow);color:var(--ink)}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ---------- typographic primitives ---------- */
.serif{font-family:'Marcellus',serif;font-weight:400}
.micro{
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);
}
.section-label{
  display:inline-flex;align-items:center;gap:1rem;margin-bottom:1.6rem;
}
.section-label::before{content:"";width:34px;height:1px;background:var(--glow);opacity:.7}

.hairline{height:1px;width:100%;background:var(--hair);transform-origin:left;}

/* ---------- film grain + vignette ---------- */
.grain{
  position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}
.vignette{
  position:fixed;inset:0;z-index:88;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 42%,transparent 52%,rgba(0,0,0,.55) 100%);
}

/* ---------- preloader ---------- */
.preloader{
  position:fixed;inset:0;z-index:200;background:var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;
  transition:opacity 1s ease,visibility 1s ease;
}
.preloader.done{opacity:0;visibility:hidden}
.preloader__mark{
  font-family:'Marcellus',serif;font-size:2.4rem;letter-spacing:.5em;color:var(--glow);
  text-indent:.5em;
  animation:auraPulse 2.4s ease-in-out infinite;
}
.preloader__line{width:140px;height:1px;background:var(--hair);overflow:hidden}
.preloader__line span{display:block;height:100%;width:100%;background:var(--glow);
  transform:translateX(-100%);animation:load 1.6s cubic-bezier(.7,0,.3,1) infinite}
@keyframes load{to{transform:translateX(100%)}}
@keyframes auraPulse{0%,100%{text-shadow:0 0 18px rgba(233,201,130,.25)}50%{text-shadow:0 0 40px rgba(233,201,130,.65)}}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.6rem clamp(1.25rem,4vw,3.5rem);
  transition:background .5s ease,padding .5s ease,backdrop-filter .5s ease;
}
.nav.scrolled{
  background:rgba(7,7,12,.72);backdrop-filter:blur(14px);
  padding:1rem clamp(1.25rem,4vw,3.5rem);border-bottom:1px solid var(--hair);
}
.nav__mark{font-family:'Marcellus',serif;font-size:1.3rem;letter-spacing:.42em;color:var(--paper);text-indent:.42em}
.nav__links{display:flex;gap:2.2rem}
.nav__links a{position:relative;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);opacity:.82}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--glow);transition:width .4s cubic-bezier(.16,1,.3,1)}
.nav__links a:hover{opacity:1}
.nav__links a:hover::after{width:100%}
.nav__reserve{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  border:1px solid var(--hair-strong);border-radius:100px;padding:.65rem 1.4rem;
  transition:border-color .4s ease,color .4s ease,background .4s ease;
}
.nav__reserve:hover{border-color:var(--glow);color:var(--glow)}
@media(max-width:880px){.nav__links{display:none}}

/* ============================================================
   HERO — video led
   ============================================================ */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;align-items:flex-end}
.hero__media{position:absolute;inset:0;z-index:-3}
.hero__media video,.hero__media img{
  width:100%;height:100%;object-fit:cover;
}
.hero__media img{position:absolute;inset:0}
/* video fades in over poster once playing */
.hero__media video{opacity:0;transition:opacity 1.2s ease}
.hero__media video.playing{opacity:1}

/* aura glow that sits behind the headline */
.hero__aura{
  position:absolute;left:6vw;bottom:24vh;width:min(60vw,720px);height:min(60vw,720px);z-index:-2;
  background:radial-gradient(circle,rgba(233,201,130,.26),rgba(143,167,214,.08) 48%,transparent 72%);
  pointer-events:none;will-change:transform,opacity;
  animation:auraDrift 12s ease-in-out infinite alternate;
}
@keyframes auraDrift{0%{transform:translate(0,0) scale(1);opacity:.85}100%{transform:translate(3%,-4%) scale(1.08);opacity:1}}

.hero__scrim{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(to top,rgba(7,7,12,.92) 0%,rgba(7,7,12,.45) 38%,rgba(7,7,12,.15) 62%,rgba(7,7,12,.55) 100%),
    linear-gradient(to right,rgba(7,7,12,.7) 0%,transparent 55%);
}
.hero__content{
  position:relative;width:100%;
  padding:0 clamp(1.25rem,5vw,5rem) clamp(3rem,9vh,6rem);
  max-width:1500px;margin:0 auto;
}
.hero__eyebrow{margin-bottom:1.5rem;color:var(--glow-soft)}
.hero__title{
  font-family:'Marcellus',serif;font-weight:400;
  font-size:clamp(3.2rem,11vw,9.5rem);line-height:.95;letter-spacing:.01em;
  text-shadow:0 0 60px rgba(0,0,0,.5);
}
.hero__title em{font-style:italic;color:var(--glow)}
.hero__line{display:block;overflow:hidden}
.hero__line>span{display:block;transform:translateY(110%)}
.hero.ready .hero__line>span{transform:translateY(0);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.hero.ready .hero__line:nth-child(2)>span{transition-delay:.12s}
.hero__sub{margin-top:1.8rem;max-width:46ch;color:var(--paper);opacity:.85;font-size:clamp(.92rem,1.4vw,1.08rem)}
.hero__cta{margin-top:2.4rem;display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}

/* glowing primary button */
.btn-glow{
  position:relative;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;
  padding:1rem 2.2rem;border-radius:100px;color:var(--ink);background:var(--glow);
  font-weight:400;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .5s ease;
  box-shadow:0 0 0 rgba(233,201,130,0);
}
.btn-glow:hover{transform:translateY(-2px);box-shadow:0 14px 40px -8px rgba(233,201,130,.55)}
.btn-ghost{
  font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);
  display:inline-flex;align-items:center;gap:.7rem;opacity:.85;transition:opacity .4s ease,gap .4s ease;
}
.btn-ghost::after{content:"";width:26px;height:1px;background:var(--glow);transition:width .4s ease}
.btn-ghost:hover{opacity:1;gap:1rem}
.btn-ghost:hover::after{width:42px}

.hero__scrollcue{
  position:absolute;right:clamp(1.25rem,5vw,5rem);bottom:clamp(3rem,9vh,6rem);
  display:flex;align-items:center;gap:.8rem;writing-mode:vertical-rl;z-index:2;
}
.hero__scrollcue .micro{letter-spacing:.3em}
.hero__cueline{width:1px;height:54px;background:var(--hair-strong);position:relative;overflow:hidden}
.hero__cueline::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--glow);animation:cue 2.2s cubic-bezier(.7,0,.3,1) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(260%)}}

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto{
  padding:clamp(6rem,16vh,11rem) clamp(1.25rem,6vw,6rem);
  max-width:1100px;margin:0 auto;text-align:center;
}
.manifesto__text{
  font-family:'Marcellus',serif;font-weight:400;
  font-size:clamp(1.5rem,3.4vw,2.7rem);line-height:1.4;letter-spacing:.005em;
}
.manifesto__text .w{display:inline-block;opacity:.18;transition:opacity .5s ease}
.manifesto__text .w.lit{opacity:1}
.manifesto__text em{font-style:italic;color:var(--glow)}
.manifesto .hairline{margin-top:clamp(3rem,7vh,5rem)}

/* ============================================================
   LIGHT — philosophy split with parallax image
   ============================================================ */
.light{
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center;
  padding:clamp(3rem,8vh,7rem) clamp(1.25rem,6vw,6rem);max-width:1500px;margin:0 auto;
}
.light__copy h2{
  font-family:'Marcellus',serif;font-weight:400;font-size:clamp(2rem,4.5vw,3.6rem);
  line-height:1.08;margin-bottom:1.6rem;
}
.light__copy h2 em{font-style:italic;color:var(--glow)}
.light__copy p{color:var(--muted);max-width:48ch;margin-bottom:1.2rem;font-size:1.02rem}
.light__copy p strong{color:var(--paper);font-weight:400}
.light__media{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px;box-shadow:var(--shadow)}
.light__media img{width:100%;height:120%;object-fit:cover;will-change:transform}
.light__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(7,7,12,.5),transparent 60%)}
@media(max-width:880px){.light{grid-template-columns:1fr}}

/* ============================================================
   MENU
   ============================================================ */
.menu{padding:clamp(4rem,10vh,8rem) clamp(1.25rem,6vw,6rem);max-width:1500px;margin:0 auto}
.menu__head{text-align:center;margin-bottom:clamp(3rem,7vh,5rem)}
.menu__title{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(2.2rem,5vw,4rem);line-height:1}
.menu__title em{font-style:italic;color:var(--glow)}
.menu__note{margin-top:1.2rem;color:var(--muted);font-size:.92rem;letter-spacing:.04em}

.menu__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(3rem,6vw,7rem)}
@media(max-width:880px){.menu__grid{grid-template-columns:1fr}}
.course{
  display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;
  padding:1.6rem 0;border-top:1px solid var(--hair);
  opacity:.26;transition:opacity .6s ease;
}
.course.lit{opacity:1}
.course__num{font-family:'Marcellus',serif;font-size:1rem;color:var(--glow);opacity:.7;padding-top:.2rem;min-width:2ch;transition:text-shadow .6s ease}
.course.lit .course__num{text-shadow:0 0 18px rgba(233,201,130,.7)}
.course__name{font-family:'Marcellus',serif;font-weight:400;font-size:1.28rem;line-height:1.25;transition:text-shadow .6s ease}
.course.lit .course__name{text-shadow:0 0 30px rgba(233,201,130,.28)}
.course__desc{color:var(--muted);font-size:.92rem;margin-top:.45rem;max-width:42ch}
.menu__note--lit{margin-top:2.4rem;text-align:center;color:var(--muted);font-size:.8rem;letter-spacing:.18em}

/* ============================================================
   THE DARK ROOM — signature cursor-spotlight reveal (AURA only)
   ============================================================ */
.darkroom{
  position:relative;min-height:104vh;display:grid;place-items:center;
  background:#040409;overflow:hidden;text-align:center;
  padding:clamp(4rem,12vh,9rem) clamp(1.5rem,6vw,6rem);
}
.darkroom__layer{grid-area:1/1;max-width:62ch;pointer-events:none}
.darkroom__eyebrow{margin-bottom:1.8rem}
.darkroom h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(2.1rem,5.4vw,4.4rem);line-height:1.12}
.darkroom h2 em{font-style:italic;color:var(--glow)}
.darkroom__lede{margin-top:1.8rem;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.7;max-width:46ch;margin-inline:auto}
/* dim base layer barely visible in the dark */
.darkroom__dim{opacity:.07;color:var(--paper)}
.darkroom__dim h2 em{color:var(--paper)}
/* bright layer revealed only where the light falls */
.darkroom__lit{
  color:var(--glow-soft);
  -webkit-mask-image:radial-gradient(circle 230px at var(--mx,50%) var(--my,46%),#000 0%,rgba(0,0,0,.65) 46%,transparent 74%);
  mask-image:radial-gradient(circle 230px at var(--mx,50%) var(--my,46%),#000 0%,rgba(0,0,0,.65) 46%,transparent 74%);
}
/* the soft glow disc itself */
.darkroom__glow{
  position:absolute;width:520px;height:520px;border-radius:50%;left:0;top:0;z-index:0;pointer-events:none;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(233,201,130,.16),rgba(233,201,130,.05) 38%,transparent 66%);
  will-change:left,top;
}
.darkroom__hint{position:absolute;bottom:clamp(1.5rem,5vh,3rem);left:50%;transform:translateX(-50%);opacity:.34}
@media (hover:none){.darkroom__hint{opacity:.5}}

/* ============================================================
   ATMOSPHERE — full-bleed image band w/ parallax
   ============================================================ */
.atmos{position:relative;height:80vh;min-height:520px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.atmos__bg{position:absolute;inset:-12% 0;z-index:-2}
.atmos__bg img{width:100%;height:100%;object-fit:cover;will-change:transform}
.atmos__scrim{position:absolute;inset:0;z-index:-1;background:radial-gradient(80% 80% at 50% 50%,rgba(7,7,12,.35),rgba(7,7,12,.85))}
.atmos__quote{
  font-family:'Marcellus',serif;font-weight:400;font-size:clamp(1.6rem,4vw,3.2rem);
  line-height:1.32;text-align:center;max-width:18ch;padding:0 1.5rem;text-shadow:0 0 50px rgba(0,0,0,.6);
}
.atmos__quote em{font-style:italic;color:var(--glow)}

/* ============================================================
   CHEF
   ============================================================ */
.chef{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,5rem);align-items:center;
  padding:clamp(4rem,10vh,8rem) clamp(1.25rem,6vw,6rem);max-width:1500px;margin:0 auto}
.chef__media{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px;box-shadow:var(--shadow)}
.chef__media img{width:100%;height:115%;object-fit:cover;will-change:transform}
.chef__copy h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(2rem,4.5vw,3.4rem);margin-bottom:.4rem}
.chef__role{color:var(--glow);font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;margin-bottom:1.6rem;display:block}
.chef__copy p{color:var(--muted);margin-bottom:1.1rem;max-width:50ch}
.chef__sign{font-family:'Marcellus',serif;font-style:italic;color:var(--paper);font-size:1.1rem;opacity:.8;margin-top:.4rem}
@media(max-width:880px){.chef{grid-template-columns:1fr}.chef__media{order:-1}}

/* ============================================================
   RESERVE
   ============================================================ */
.reserve{
  position:relative;padding:clamp(5rem,13vh,9rem) clamp(1.25rem,6vw,6rem);
  text-align:center;overflow:hidden;
}
.reserve__aura{
  position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);
  width:min(90vw,900px);height:min(90vw,900px);z-index:-1;
  background:radial-gradient(circle,rgba(233,201,130,.15),transparent 66%);
}
.reserve__title{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(2.6rem,7vw,5.5rem);line-height:1}
.reserve__title em{font-style:italic;color:var(--glow)}
.reserve__sub{margin-top:1.4rem;color:var(--muted);max-width:44ch;margin-inline:auto}
.reserve__cta{margin-top:2.6rem}
.reserve__cols{
  margin-top:clamp(3rem,7vh,5rem);display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;
  max-width:880px;margin-inline:auto;text-align:center;
}
.reserve__cols .micro{display:block;margin-bottom:.7rem;color:var(--glow);opacity:.8}
.reserve__cols p:not(.micro){color:var(--paper);opacity:.85;font-size:.95rem;line-height:1.7}
@media(max-width:680px){.reserve__cols{grid-template-columns:1fr;gap:1.6rem}}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{padding:clamp(3rem,7vh,5rem) clamp(1.25rem,6vw,6rem) 3rem;max-width:1500px;margin:0 auto}
.footer__mark{font-family:'Marcellus',serif;font-size:1.6rem;letter-spacing:.5em;color:var(--glow);text-indent:.5em;margin-bottom:2rem;text-align:center}
.footer__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.4rem;font-size:.86rem;color:var(--muted);line-height:1.8}
.footer__grid a:hover{color:var(--glow)}
.footer__fine{margin-top:2.6rem;font-size:.72rem;color:var(--muted);opacity:.6;letter-spacing:.03em;max-width:70ch}
@media(max-width:680px){.footer__grid{grid-template-columns:1fr 1fr}}

/* ---------- reveal utility ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .hero__line>span{transform:none}
}
