:root{--bg:#0f0f0f;--text:#f5f5f5;--muted:#b7aea4;--oak:#7a5b3a;--copper:#c8793a;--smoke:#2b2b2b;--line:rgba(245,241,235,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}body.lock{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.welcome{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#080808;transition:opacity .9s ease,visibility .9s}.welcome.is-hidden{opacity:0;visibility:hidden}.welcome-bg,.hero-bg{position:absolute;inset:0;background:url('assets/hero-fire.webp') center/cover;filter:saturate(1.1) contrast(1.05);opacity:.72}.welcome:after,.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 72%,rgba(196,122,58,.22),transparent 34%),linear-gradient(180deg,rgba(0,0,0,.25),#0f0f0f 96%)}.welcome-inner{position:relative;z-index:2;text-align:center;padding:2rem}.welcome-logo{width:min(500px,82vw);margin:auto}.welcome p{font-family:Georgia,serif;font-size:clamp(1.2rem,3vw,2rem);color:#e7d5c0}.lang-switch,.mini-btn{border:1px solid rgba(200,121,58,.35);background:rgba(15,15,15,.58);color:var(--text);padding:.75rem 1rem;border-radius:999px;backdrop-filter:blur(12px);cursor:pointer}.lang-switch{margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.9rem 1.25rem;border-radius:999px;font-weight:700;letter-spacing:.03em;border:1px solid rgba(245,245,245,.2);cursor:pointer}.btn-primary{background:var(--copper);color:#101010;border-color:var(--copper);box-shadow:0 18px 60px rgba(196,122,58,.28)}.btn-ghost{background:rgba(245,245,245,.06);backdrop-filter:blur(10px)}.site-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(16px,4vw,54px);background:linear-gradient(180deg,rgba(15,15,15,.88),rgba(15,15,15,0));pointer-events:none}.site-header>*{pointer-events:auto}.brand img{width:170px}.nav{display:flex;gap:1.4rem}.nav a{font-size:.92rem;color:#e8ded0}.header-actions{display:flex;gap:.7rem}.section-full{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden}.hero-bg{will-change:transform}.glow{position:absolute;width:50vw;height:50vw;bottom:-20vw;left:20vw;background:radial-gradient(circle,rgba(196,122,58,.22),transparent 60%);animation:pulse 5s ease-in-out infinite}.hero-content{position:relative;z-index:2;text-align:center;max-width:min(1120px,94vw);padding:5.6rem 1.2rem 1.4rem}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:clamp(.68rem,1.15vw,.78rem);color:var(--copper);font-weight:800}.hero h1{font-family:Georgia,serif;font-size:clamp(4rem,10.2vw,9.4rem);line-height:.78;margin:.12em 0 .08em;letter-spacing:.055em}.hero h1 span{color:var(--copper)}.hero p{font-size:clamp(1rem,1.9vw,1.32rem);color:#dfd4c8;margin:.45rem auto 0;max-width:1040px;line-height:1.45}.hero-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.35rem}.story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.05fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(3.2rem,6.2vw,5.8rem) clamp(20px,5vw,80px);border-top:1px solid var(--line)}.story-copy{max-width:720px}.story-copy p:not(.eyebrow){max-width:640px;font-size:clamp(1rem,1.35vw,1.18rem)}.story-visual{position:relative;margin:0;min-height:clamp(300px,34vw,520px);overflow:hidden;border-radius:34px;border:1px solid var(--line);background:#151515}.story-visual img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:saturate(1.04) contrast(1.04);transform:scale(1.02)}.story-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(15,15,15,.84)),radial-gradient(circle at 60% 20%,rgba(200,121,58,.16),transparent 38%)}.story-visual figcaption{position:absolute;left:24px;right:24px;bottom:20px;z-index:2;color:#f5f1eb;font-family:Georgia,serif;font-size:clamp(1.25rem,2vw,2.05rem);line-height:1.1}h2{font-family:Georgia,serif;font-size:clamp(2.15rem,5.1vw,4.75rem);line-height:.96;margin:.16em 0}p{line-height:1.75;color:var(--muted)}.visual-row{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:1rem;padding:0 clamp(16px,4vw,70px) 4.6rem}.image-card{position:relative;min-height:340px;overflow:hidden;border-radius:28px;background:#181818}.image-card.tall{min-height:450px}.image-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.image-card:hover img{transform:scale(1.06)}.image-card h3{position:absolute;left:24px;bottom:20px;font-family:Georgia,serif;font-size:2rem}.menu-section,.reservation,.reviews,.contact{padding:clamp(3.4rem,6.3vw,5.8rem) clamp(16px,4.6vw,74px);border-top:1px solid var(--line)}.section-head{max-width:900px}.tabs{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.35rem 0 1.8rem}.tab{border:1px solid var(--line);border-radius:999px;padding:.75rem 1rem;background:#151515;color:var(--text);cursor:pointer}.tab.active{background:var(--copper);color:#111;border-color:var(--copper)}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.dish{padding:.86rem;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#191919,#111)}.dish img{aspect-ratio:16/10;object-fit:cover;border-radius:18px;margin-bottom:.78rem}.dish h3{font-family:Georgia,serif;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.08;margin:.22rem 0}.badge{display:inline-block;color:var(--copper);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}.chef{display:grid;grid-template-columns:.78fr 1fr;gap:clamp(1.5rem,4.5vw,4.8rem);align-items:center;padding:3.2rem clamp(16px,4.6vw,74px)}.chef img{border-radius:34px;max-height:560px;width:100%;object-fit:cover}.chef strong{color:var(--copper);font-size:1.2rem}.reservation-app{display:grid;grid-template-columns:minmax(280px,320px) 1fr;gap:1rem}.reserve-panel,.floor-wrap{border:1px solid var(--line);border-radius:28px;background:#151515;padding:.9rem}.reserve-panel{display:grid;gap:.8rem;align-content:start}label span{display:block;color:var(--muted);margin-bottom:.4rem}select,input{width:100%;background:#0f0f0f;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:.78rem .9rem}.full{width:100%}.table-detail{min-height:74px;padding:.9rem;border-radius:18px;background:#0f0f0f;color:var(--muted);line-height:1.45}.floor{width:100%;height:auto;max-height:520px;display:block}.floor rect:first-child{fill:#101010}.floor .line{fill:none;stroke:var(--oak);stroke-width:2}.floor text{fill:#f5f1eb;font:700 18px Arial}.table{cursor:pointer}.table circle,.table rect{fill:#222;stroke:#7a5b3a;stroke-width:3;transition:.25s}.table.available circle,.table.available rect{stroke:#c8793a}.table.reserved circle,.table.reserved rect{stroke:#b7aea4;opacity:.55}.table.occupied circle,.table.occupied rect{stroke:#4a4a4a;opacity:.38}.table.selected circle,.table.selected rect{fill:rgba(196,122,58,.25);filter:drop-shadow(0 0 12px rgba(196,122,58,.8))}.reviews{overflow:hidden}.review-track{display:flex;gap:1rem;animation:marquee 24s linear infinite}.review-track p{min-width:360px;border:1px solid var(--line);border-radius:24px;padding:1.2rem;background:#151515}.contact{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(420px,1.22fr);gap:1.4rem;align-items:center}.map{min-height:360px;border-radius:28px;border:1px solid var(--line);background:linear-gradient(135deg,#171717,#2a211b);display:grid;place-items:center;color:var(--copper);letter-spacing:.2em;overflow:hidden}.map img{width:100%;height:100%;min-height:360px;object-fit:cover;display:block}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}.sparks,.ember-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.spark{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:#e7974b;box-shadow:0 0 14px #e7974b;animation:rise linear infinite}@keyframes rise{to{transform:translateY(-105vh) translateX(var(--x));opacity:0}}@keyframes pulse{50%{opacity:.4;transform:scale(1.08)}}@keyframes marquee{to{transform:translateX(-50%)}}.audio-btn{display:inline-flex;align-items:center;gap:.5rem}.audio-btn img{width:18px;height:18px;display:block;filter:drop-shadow(0 0 8px rgba(200,121,58,.35))}.audio-btn.is-active{border-color:var(--copper);box-shadow:0 0 22px rgba(196,122,58,.18)}

@media(max-height:780px) and (min-width:901px){
  .story{padding-top:3rem;padding-bottom:3rem}
  .story h2,.menu-section h2,.reservation h2,.contact h2{font-size:clamp(2.2rem,4.6vw,4.05rem)}
  .story-visual{min-height:340px}
  .menu-section,.reservation,.reviews,.contact{padding-top:3rem;padding-bottom:3.2rem}
  .dish img{aspect-ratio:16/8.8}
  .reservation-app{grid-template-columns:300px 1fr}
  .floor{max-height:430px}
}
@media(max-height:780px) and (min-width:901px){
  .site-header{padding-top:12px;padding-bottom:12px}
  .brand img{width:148px}
  .hero-content{padding-top:4.8rem;padding-bottom:1rem}
  .hero h1{font-size:clamp(4rem,9.1vw,8.3rem);line-height:.76;margin:.08em 0 .04em}
  .hero p{font-size:clamp(1rem,1.55vw,1.18rem);line-height:1.38}
  .hero-ctas{margin-top:1.05rem}
  .btn{min-height:44px;padding:.78rem 1.15rem}
}
@media(max-height:680px) and (min-width:901px){
  .hero-content{padding-top:4.2rem}
  .hero h1{font-size:clamp(3.6rem,8.1vw,7.2rem)}
  .eyebrow{letter-spacing:.2em}
}

@media(max-width:900px){.nav{display:none}.brand img{width:138px}.site-header{padding:14px}.audio-btn span{font-size:0}.audio-btn:after{content:none}.story,.chef,.reservation-app,.contact{grid-template-columns:1fr}.story-visual{min-height:320px}.visual-row,.menu-grid{grid-template-columns:1fr}.image-card,.image-card.tall{min-height:320px}.hero-content{padding:5.2rem 1rem 1.2rem}.hero h1{font-size:clamp(3.35rem,18vw,6.5rem);line-height:.82}.hero p{font-size:1rem;line-height:1.5}.hero-ctas{margin-top:1.15rem}.header-actions{gap:.35rem}.mini-btn{padding:.65rem .75rem}.reviews .review-track p{min-width:280px}}


/* EMBER & OAK — MASTER FIRE SYSTEM v1.0 / Phase 1: Glow System */
:root{
  --fire-copper:196,121,58;
  --fire-amber:226,151,75;
  --fire-glow-max:.25;
}

.welcome,
.hero,
.story-visual,
.image-card,
.chef,
.dish,
.floor-wrap,
.map{
  isolation:isolate;
}

.welcome-inner,
.hero-content{
  z-index:4;
}

.fire-glow{
  position:absolute;
  pointer-events:none;
  z-index:1;
  border-radius:999px;
  opacity:var(--fire-glow-max);
  filter:blur(26px) saturate(1.15);
  mix-blend-mode:screen;
  background:
    radial-gradient(circle at 52% 62%, rgba(var(--fire-amber),.30), transparent 0 22%, transparent 62%),
    radial-gradient(circle at 48% 56%, rgba(var(--fire-copper),.22), transparent 0 34%, transparent 68%);
  animation:emberGlow 5.8s ease-in-out infinite;
}

.fire-glow-welcome{
  width:min(980px,82vw);
  height:min(620px,56vw);
  left:50%;
  bottom:-18%;
  transform:translateX(-50%);
}

.fire-glow-hero{
  width:min(1120px,86vw);
  height:min(680px,58vw);
  left:50%;
  bottom:-24%;
  transform:translateX(-50%);
  opacity:.22;
  animation-duration:6.6s;
}

.glow{
  width:min(980px,72vw);
  height:min(600px,48vw);
  left:50%;
  bottom:-26%;
  transform:translateX(-50%);
  background:
    radial-gradient(circle at 50% 64%, rgba(var(--fire-copper),.18), transparent 0 26%, transparent 62%);
  opacity:.62;
  filter:blur(18px);
  animation:emberBreath 7.2s ease-in-out infinite;
}

.story-visual::after,
.image-card::after,
.chef::after,
.dish::after,
.floor-wrap::after,
.map::after{
  content:"";
  position:absolute;
  pointer-events:none;
  inset:auto 8% -22% 8%;
  height:46%;
  border-radius:999px;
  background:radial-gradient(circle at 50% 50%, rgba(var(--fire-copper),.16), transparent 66%);
  filter:blur(22px);
  opacity:.32;
  mix-blend-mode:screen;
  transform:translateZ(0);
  animation:sectionGlow 8.5s ease-in-out infinite;
}

.story-visual,
.image-card,
.chef,
.dish,
.floor-wrap,
.map{
  position:relative;
  overflow:hidden;
}

.story-visual::after,
.image-card::after{
  opacity:.42;
}

.chef::after{
  inset:auto 42% -18% 4%;
  height:40%;
  opacity:.24;
}

.dish::after,
.floor-wrap::after,
.map::after{
  opacity:.16;
}

.btn-primary{
  box-shadow:
    0 18px 60px rgba(var(--fire-copper),.24),
    0 0 0 1px rgba(var(--fire-amber),.12) inset;
}

.btn-primary:hover,
.mini-btn:hover,
.tab.active{
  box-shadow:
    0 14px 46px rgba(var(--fire-copper),.22),
    0 0 22px rgba(var(--fire-copper),.10);
}

@keyframes emberGlow{
  0%,100%{opacity:.16;transform:translateX(-50%) scale(.98);}
  45%{opacity:var(--fire-glow-max);transform:translateX(-50%) scale(1.035);}
  68%{opacity:.20;transform:translateX(-50%) scale(1.015);}
}

@keyframes emberBreath{
  0%,100%{opacity:.42;transform:translateX(-50%) scale(.99);}
  50%{opacity:.68;transform:translateX(-50%) scale(1.055);}
}

@keyframes sectionGlow{
  0%,100%{opacity:.16;transform:scale(.98);}
  50%{opacity:.34;transform:scale(1.04);}
}

@media(max-width:900px){
  .fire-glow-welcome,
  .fire-glow-hero{
    width:118vw;
    height:70vw;
    bottom:-16vw;
  }
  .glow{
    width:108vw;
    height:68vw;
    bottom:-18vw;
  }
  .story-visual::after,
  .image-card::after,
  .chef::after{
    opacity:.24;
  }
}

@media(prefers-reduced-motion:reduce){
  .fire-glow,
  .glow,
  .story-visual::after,
  .image-card::after,
  .chef::after,
  .dish::after,
  .floor-wrap::after,
  .map::after{
    animation:none!important;
  }
}

/* EMBER & OAK — MASTER FIRE SYSTEM v1.0 / Phase 2: Embers */
.sparks,
.ember-particles{
  z-index:1;
  mix-blend-mode:screen;
  contain:layout paint;
}

.ember-particles{
  opacity:.72;
}

.spark,
.ember-spark{
  position:absolute;
  border-radius:999px;
  background:radial-gradient(circle, #ffd093 0%, #e7974b 46%, rgba(200,121,58,.12) 76%, transparent 100%);
  box-shadow:
    0 0 7px rgba(255,169,78,.72),
    0 0 18px rgba(200,121,58,.26);
  filter:blur(var(--ember-blur,0));
  transform:translate3d(0,0,0) scale(.82);
  animation:emberRise var(--ember-duration,10s) cubic-bezier(.2,.55,.28,1) infinite;
  will-change:transform,opacity;
}

.hero .sparks{
  opacity:.86;
  mask-image:linear-gradient(180deg, transparent 0%, #000 28%, #000 82%, transparent 100%);
}

.welcome .ember-particles{
  mask-image:radial-gradient(circle at 50% 64%, #000 0 52%, transparent 78%);
}

@keyframes emberRise{
  0%{
    opacity:0;
    transform:translate3d(0,0,0) scale(.58);
  }
  11%{
    opacity:var(--ember-opacity,.52);
  }
  48%{
    opacity:calc(var(--ember-opacity,.52) * .82);
    transform:translate3d(calc(var(--ember-drift,10px) * .38), calc(var(--ember-rise,-86vh) * .44), 0) scale(1);
  }
  100%{
    opacity:0;
    transform:translate3d(var(--ember-drift,10px), var(--ember-rise,-86vh), 0) scale(.42);
  }
}

@media(max-width:900px){
  .hero .sparks{opacity:.62;}
  .welcome .ember-particles{opacity:.52;}
}

@media(prefers-reduced-motion:reduce){
  .spark,
  .ember-spark{
    animation:none!important;
    opacity:.18!important;
  }
}

/* EMBER & OAK — MASTER FIRE SYSTEM v1.0 / Phase 3: Heat Haze */
.heat-haze{
  position:absolute;
  inset:-8%;
  z-index:2;
  pointer-events:none;
  opacity:.055;
  mix-blend-mode:screen;
  filter:blur(10px) contrast(1.08);
  background:
    radial-gradient(ellipse at 42% 78%, rgba(255,218,165,.18), transparent 0 18%, transparent 55%),
    repeating-linear-gradient(92deg,
      rgba(245,241,235,.00) 0 22px,
      rgba(245,241,235,.10) 23px 25px,
      rgba(200,121,58,.04) 26px 34px,
      rgba(245,241,235,.00) 35px 58px);
  transform:translate3d(0,0,0) scale(1.03);
  animation:heatDrift 13s ease-in-out infinite alternate;
  will-change:transform,opacity;
  mask-image:radial-gradient(ellipse at 50% 72%, #000 0 34%, rgba(0,0,0,.7) 52%, transparent 78%);
}

.heat-haze-welcome{opacity:.045;}
.heat-haze-hero{opacity:.065;}

.fire-zone::before,
.chef::before{
  content:"";
  position:absolute;
  inset:-10%;
  pointer-events:none;
  z-index:2;
  opacity:.045;
  mix-blend-mode:screen;
  filter:blur(9px);
  background:
    radial-gradient(ellipse at 55% 72%, rgba(255,202,128,.16), transparent 0 26%, transparent 64%),
    repeating-linear-gradient(96deg,
      transparent 0 28px,
      rgba(245,241,235,.075) 29px 31px,
      transparent 32px 62px);
  animation:heatDriftSoft 16s ease-in-out infinite alternate;
  mask-image:linear-gradient(180deg, transparent 0%, #000 24%, #000 82%, transparent 100%);
}

.chef{position:relative;overflow:hidden;}
.chef > *{position:relative;z-index:3;}

.fire-zone > *{position:relative;z-index:3;}

@keyframes heatDrift{
  0%{transform:translate3d(-1.2%,.8%,0) scale(1.03) skewX(-.35deg);opacity:.038;}
  42%{transform:translate3d(.9%,-.45%,0) scale(1.055) skewX(.28deg);opacity:.066;}
  100%{transform:translate3d(1.4%,-1.1%,0) scale(1.04) skewX(-.18deg);opacity:.052;}
}

@keyframes heatDriftSoft{
  0%{transform:translate3d(-.8%,.5%,0) scale(1.02);opacity:.028;}
  55%{transform:translate3d(.7%,-.6%,0) scale(1.04);opacity:.052;}
  100%{transform:translate3d(1%,-.9%,0) scale(1.025);opacity:.038;}
}

@media(max-width:900px){
  .heat-haze{opacity:.032;filter:blur(8px);}
  .fire-zone::before,.chef::before{opacity:.028;}
}

@media(prefers-reduced-motion:reduce){
  .heat-haze,
  .fire-zone::before,
  .chef::before{
    animation:none!important;
    opacity:.025!important;
  }
}


/* EMBER & OAK — MASTER FIRE SYSTEM v1.0 / Phase 4: Chef + Open Kitchen Effects */
.fire-zone{
  transform:translateZ(0);
}

.fire-zone img,
.chef img{
  filter:saturate(1.04) contrast(1.04) brightness(.98);
}

.fire-rim{
  position:absolute;
  left:8%;
  right:8%;
  bottom:0;
  height:42%;
  z-index:2;
  pointer-events:none;
  opacity:.34;
  mix-blend-mode:screen;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(var(--fire-amber),.24), transparent 0 30%, transparent 70%),
    linear-gradient(180deg, transparent, rgba(var(--fire-copper),.14));
  filter:blur(14px);
  animation:localFireBreath 6.8s ease-in-out infinite;
}

.fire-zone-counter .fire-rim{
  opacity:.22;
  height:34%;
  animation-duration:8.2s;
}

.local-embers{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  overflow:hidden;
  mix-blend-mode:screen;
  opacity:.72;
  mask-image:linear-gradient(180deg, transparent 0%, #000 24%, #000 72%, transparent 100%);
}

.local-ember{
  position:absolute;
  width:var(--local-size,2px);
  height:var(--local-size,2px);
  border-radius:999px;
  background:radial-gradient(circle, #ffd49c 0%, #e7974b 42%, rgba(200,121,58,.18) 74%, transparent 100%);
  box-shadow:
    0 0 8px rgba(255,169,78,.55),
    0 0 18px rgba(200,121,58,.18);
  opacity:0;
  transform:translate3d(0,0,0);
  animation:localEmberRise var(--local-duration,9s) cubic-bezier(.22,.6,.24,1) infinite;
  will-change:transform,opacity;
}

.chef-fire{
  isolation:isolate;
}

.chef-fire-halo{
  position:absolute;
  left:clamp(16px,4.6vw,74px);
  top:50%;
  width:min(440px,42vw);
  height:min(500px,52vw);
  transform:translateY(-50%);
  border-radius:999px;
  pointer-events:none;
  z-index:1;
  opacity:.20;
  mix-blend-mode:screen;
  filter:blur(28px);
  background:
    radial-gradient(ellipse at 42% 62%, rgba(var(--fire-amber),.24), transparent 0 28%, transparent 68%),
    radial-gradient(ellipse at 58% 42%, rgba(var(--fire-copper),.15), transparent 0 34%, transparent 72%);
  animation:chefHaloBreath 9.5s ease-in-out infinite;
}

.chef-fire img{
  position:relative;
  z-index:3;
  box-shadow:
    0 24px 80px rgba(0,0,0,.36),
    0 0 44px rgba(var(--fire-copper),.10);
}

.chef-fire > div{
  position:relative;
  z-index:4;
}

.chef-embers{
  left:clamp(16px,4.6vw,74px);
  right:auto;
  width:min(560px,48vw);
  opacity:.46;
  z-index:4;
  mask-image:linear-gradient(180deg, transparent 4%, #000 28%, #000 74%, transparent 100%);
}

@keyframes localFireBreath{
  0%,100%{opacity:.20;transform:translateY(4px) scale(.985);}
  48%{opacity:.40;transform:translateY(-2px) scale(1.025);}
  72%{opacity:.28;transform:translateY(0) scale(1.01);}
}

@keyframes localEmberRise{
  0%{opacity:0;transform:translate3d(0,0,0) scale(.58);}
  14%{opacity:var(--local-opacity,.38);}
  52%{opacity:calc(var(--local-opacity,.38) * .72);transform:translate3d(calc(var(--local-drift,10px) * .45), calc(var(--local-rise,-210px) * .52), 0) scale(.94);}
  100%{opacity:0;transform:translate3d(var(--local-drift,10px), var(--local-rise,-210px), 0) scale(.38);}
}

@keyframes chefHaloBreath{
  0%,100%{opacity:.14;transform:translateY(-50%) scale(.98);}
  50%{opacity:.24;transform:translateY(-50%) scale(1.045);}
}

@media(max-width:900px){
  .fire-rim{opacity:.22;height:34%;}
  .local-embers{opacity:.46;}
  .chef-fire-halo{width:82vw;height:58vw;top:30%;opacity:.14;}
  .chef-embers{width:86vw;opacity:.32;}
}

@media(prefers-reduced-motion:reduce){
  .fire-rim,
  .local-ember,
  .chef-fire-halo{
    animation:none!important;
  }
  .local-ember{display:none;}
}


/* EMBER & OAK — MASTER FIRE SYSTEM v1.0 / Phase 5: Final tuning
   Goal: living fire atmosphere, not a visible effect. Subtle, premium, performant. */
:root{
  --fire-glow-max:.21;
}

.fire-glow{
  opacity:.16;
  filter:blur(34px) saturate(1.08);
  animation-duration:7.4s;
}

.fire-glow-welcome{opacity:.17;}
.fire-glow-hero{opacity:.18;}

.glow{
  opacity:.46;
  filter:blur(24px);
  animation-duration:8.6s;
}

.spark,
.ember-spark,
.local-ember{
  will-change:transform, opacity;
  backface-visibility:hidden;
}

.hero .sparks{opacity:.74;}
.ember-particles{opacity:.52;}
.local-embers{opacity:.42;}
.chef-embers{opacity:.26;}

.heat-haze{
  opacity:.045;
  mix-blend-mode:screen;
}
.heat-haze-welcome{opacity:.035;}
.heat-haze-hero{opacity:.05;}
.fire-zone .heat-haze{opacity:.035;}
.chef-fire .heat-haze{opacity:.028;}

.fire-rim{
  opacity:.28;
  animation-duration:9s;
}

.chef-fire-halo{
  opacity:.16;
  animation-duration:9.6s;
}

.image-card::after,
.story-visual::after{
  opacity:.30;
  animation-duration:10s;
}

.dish::after,
.floor-wrap::after,
.map::after{
  opacity:.11;
}

/* Keep sections visually consistent after the fire effects were added. */
.visual-row{padding-bottom:clamp(3.2rem,5vw,4.6rem);}
.menu-section,.reservation,.reviews,.contact{padding-top:clamp(3rem,5.6vw,5.2rem);padding-bottom:clamp(3rem,5.6vw,5.2rem);}
.image-card{box-shadow:0 20px 70px rgba(0,0,0,.22);}
.story-visual,.floor-wrap,.map,.dish{box-shadow:0 16px 50px rgba(0,0,0,.18);}

@media(max-width:900px){
  .hero .sparks{opacity:.56;}
  .ember-particles{opacity:.38;}
  .local-embers{opacity:.26;}
  .heat-haze{opacity:.024;}
  .fire-glow{opacity:.13;filter:blur(28px) saturate(1.04);}
  .glow{opacity:.35;}
}

@media(prefers-reduced-motion:reduce){
  .spark,
  .ember-spark,
  .local-ember{display:none!important;}
  .fire-glow,
  .glow,
  .heat-haze,
  .fire-rim,
  .chef-fire-halo{animation:none!important;}
}


/* EMBER & OAK — Final UX review: desktop spacing, mobile UX, real map layer */
@media(min-width:901px){
  .site-header{
    min-height:92px;
    align-items:flex-start;
    padding-top:24px;
  }
  .nav{
    padding-top:14px;
  }
  .header-actions{
    padding-top:0;
  }
  .story,
  .menu-section,
  .reservation,
  .reviews,
  .contact{
    scroll-margin-top:96px;
  }
  .section-head h2{
    max-width:980px;
  }
  .menu-grid{
    align-items:start;
  }
  .reservation-app{
    align-items:start;
  }
}

.story{
  min-height:auto;
}

.story-copy h2{
  max-width:720px;
}

.menu-section h2,
.reservation h2,
.contact h2{
  text-wrap:balance;
}

.map-button{
  width:100%;
  border:none;
  padding:0;
  cursor:pointer;
  text-align:left;
  position:relative;
}

.map-button img{
  transition:transform .9s ease, filter .9s ease;
}

.map-button:hover img{
  transform:scale(1.035);
  filter:saturate(1.08) contrast(1.05);
}

.map-overlay{
  position:absolute;
  left:clamp(18px,3vw,34px);
  right:clamp(18px,3vw,34px);
  bottom:clamp(18px,3vw,34px);
  z-index:4;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  color:#f5f1eb;
  pointer-events:none;
}

.map-overlay strong{
  font-family:Georgia,serif;
  font-size:clamp(1.5rem,3vw,3rem);
  line-height:.95;
  max-width:380px;
}

.map-overlay em{
  font-style:normal;
  color:var(--copper);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.76rem;
  font-weight:800;
  padding:.8rem 1rem;
  border:1px solid rgba(200,121,58,.36);
  border-radius:999px;
  background:rgba(15,15,15,.62);
  backdrop-filter:blur(10px);
}

.map::after{
  z-index:2;
  background:
    radial-gradient(circle at 46% 48%, rgba(200,121,58,.10), transparent 36%),
    linear-gradient(180deg, rgba(15,15,15,.06), rgba(15,15,15,.38));
}

.menu-btn{
  display:none;
}

@media(max-width:900px){
  body.lock .site-header{
    display:none;
  }

  .site-header{
    align-items:center;
    background:linear-gradient(180deg,rgba(15,15,15,.96),rgba(15,15,15,.72));
    backdrop-filter:blur(14px);
  }

  .brand img{
    width:118px;
  }

  .menu-btn{
    display:inline-flex;
  }

  .nav{
    position:fixed;
    top:72px;
    left:14px;
    right:14px;
    display:grid;
    gap:.2rem;
    padding:.85rem;
    border:1px solid rgba(200,121,58,.28);
    border-radius:24px;
    background:rgba(15,15,15,.94);
    backdrop-filter:blur(18px);
    transform:translateY(-14px);
    opacity:0;
    pointer-events:none;
    transition:.28s ease;
  }

  .nav.is-open{
    transform:none;
    opacity:1;
    pointer-events:auto;
  }

  .nav a{
    padding:.95rem 1rem;
    border-radius:16px;
    background:rgba(255,255,255,.035);
    font-size:1rem;
  }

  .header-actions{
    align-items:center;
  }

  .audio-btn{
    width:44px;
    min-width:44px;
    justify-content:center;
  }

  .story,
  .menu-section,
  .reservation,
  .reviews,
  .contact{
    padding-left:18px;
    padding-right:18px;
  }

  h2{
    font-size:clamp(2rem,12vw,3.55rem);
  }

  .story{
    gap:1.2rem;
    padding-top:3rem;
    padding-bottom:3rem;
  }

  .story-copy h2{
    font-size:clamp(2.2rem,13vw,4.1rem);
  }

  .story-copy p:not(.eyebrow){
    font-size:1rem;
  }

  .visual-row{
    gap:1rem;
    padding-bottom:3rem;
  }

  .image-card h3{
    font-size:1.65rem;
  }

  .tabs{
    gap:.5rem;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:.4rem;
    scrollbar-width:none;
  }

  .tabs::-webkit-scrollbar{
    display:none;
  }

  .tab{
    white-space:nowrap;
    flex:0 0 auto;
  }

  .dish{
    padding:.75rem;
  }

  .dish img{
    aspect-ratio:16/9;
  }

  .chef{
    padding-top:3rem;
    padding-bottom:3rem;
  }

  .reservation-app{
    gap:.85rem;
  }

  .reserve-panel{
    position:relative;
    z-index:3;
  }

  .floor-wrap{
    overflow:auto;
  }

  .floor{
    min-width:720px;
  }

  .contact{
    gap:1.1rem;
  }

  .contact h2{
    font-size:clamp(2.8rem,16vw,4.8rem);
  }

  .map,
  .map img{
    min-height:330px;
  }

  .map-overlay{
    display:block;
  }

  .map-overlay strong{
    display:block;
    margin-bottom:.8rem;
  }

  .map-overlay em{
    display:inline-flex;
  }
}

@media(max-width:520px){
  .site-header{
    padding:10px 12px;
  }

  .brand img{
    width:96px;
  }

  .mini-btn{
    padding:.58rem .68rem;
  }

  .menu-btn,
  #langBtn2{
    font-size:.82rem;
  }

  .hero-content{
    padding-top:4.7rem;
  }

  .hero h1{
    font-size:clamp(3.1rem,17vw,5.25rem);
  }

  .hero-ctas{
    display:grid;
    width:min(100%,360px);
    margin-left:auto;
    margin-right:auto;
  }

  .hero-ctas .btn{
    width:100%;
  }

  .welcome-logo{
    width:min(360px,82vw);
  }

  .welcome p{
    font-size:1.2rem;
  }

  .review-track p{
    min-width:260px;
  }
}


/* Mobile duplicate-flow fix: story visual now uses atmosphere image and gets cleaner spacing before Experience. */
@media(max-width:900px){
  .story{
    padding-bottom:2.2rem;
  }
  .visual-row{
    padding-top:.4rem;
  }
}
