/* Local design candidate: reinterpret the archived 夜宴 02 palette and framing.
   All facts, links, page structure and brand wordmark stay in the source HTML. */
:root {
  --ink: #100807;
  --black: #1c0c0a;
  --red: #a5221e;
  --red-d: #651411;
  --red-a: rgba(165, 34, 30, .16);
  --gold: #dfb879;
  --gold-d: #ac8045;
  --gold-a: rgba(223, 184, 121, .12);
  --cream: #f1ddbb;
  --white: #f8eddc;
}

body {
  background: radial-gradient(ellipse 110% 58% at 50% 0, #30100d 0, #100807 75%);
}
nav {
  background: rgba(17, 7, 6, .94);
  border-bottom-color: rgba(223, 184, 121, .3);
}
nav.scrolled { background: rgba(17, 7, 6, .97); }
.nav-cta, .btn-fire {
  clip-path: none;
  border: 1px solid rgba(223, 184, 121, .55);
  border-radius: 3px;
  background: linear-gradient(135deg, #a5221e, #651411);
  box-shadow: none;
}
.btn-ghost { border-radius: 3px; }

/* The original 夜宴 02 used nested gilt frames and a wine-red canvas. */
.hero {
  width: min(1480px, calc(100% - 32px));
  height: auto;
  min-height: max(670px, calc(100vh - 108px));
  margin: 84px auto 24px;
  border: 1px solid rgba(223, 184, 121, .35);
  border-radius: 22px;
  background: #230b09;
  box-shadow: 0 24px 90px rgba(0, 0, 0, .36);
}
.hero::before {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(223, 184, 121, .13);
  border-radius: 13px;
  pointer-events: none;
  z-index: 11;
}
.hero-fire-panel {
  margin: 27px 0 27px 27px;
  border: 1px solid rgba(223, 184, 121, .3);
  border-radius: 18px;
  background: radial-gradient(ellipse at 52% 60%, #591511 0, #250908 48%, #130706 100%);
}
.hfp-gradient {
  animation: none;
  background: radial-gradient(ellipse 60% 70% at 50% 88%, rgba(137, 25, 18, .44), transparent 76%);
}
.hfp-kanji {
  font-size: clamp(180px, 24vw, 320px);
  -webkit-text-stroke: 1px rgba(233, 192, 123, .9);
  text-shadow: 0 6px 34px rgba(0, 0, 0, .5);
  animation: none;
}
.hfp-label { color: rgba(241, 221, 187, .76); letter-spacing: .17em; }
.hero-divider { display: none; }
.hero-content {
  padding: clamp(58px, 6vw, 80px) clamp(36px, 5vw, 75px);
  background: linear-gradient(130deg, #1a0908, #2a0d0a 72%, #1d0908);
}
.hero-content::before { display: none; }
.hero-bar { display: none; }
.h-eyebrow {
  clip-path: none;
  border-color: rgba(223, 184, 121, .45);
  border-radius: 30px;
  background: rgba(19, 7, 6, .42);
}
.h1 { font-size: clamp(48px, 5.9vw, 82px); letter-spacing: .08em; }
.h1 em { color: var(--cream); }
.h-en { color: var(--gold); letter-spacing: .38em; }
.h-tagline { color: var(--cream); }
.h-tagline small { color: rgba(241, 221, 187, .7); }
.h-slogan { color: rgba(248, 237, 220, .72); }
.h-info { color: rgba(248, 237, 220, .78); }
.h-line-help { color: rgba(248, 237, 220, .77); }
.scroll-hint { display: none; }

.opening-gift {
  width: min(1400px, calc(100% - 32px));
  margin: 0 auto 28px;
  border: 1px solid rgba(223, 184, 121, .35);
  border-radius: 8px;
  background: linear-gradient(110deg, #441411, #210b09);
}
.mbar { border-color: rgba(223, 184, 121, .3); }
.sh2, .rh-title { color: var(--cream); }
.res-hero, .menu-hero, .loc-hero, .about-hero, .blog-hero {
  background: linear-gradient(145deg, #180908, #3a100d 70%, #180908);
}
a:focus-visible, button:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

@media (max-width: 1100px) {
  .hero { height: auto; min-height: 0; }
  .hero-fire-panel { height: clamp(180px, 30vw, 300px); margin: 16px 16px 0; }
  .hero-content { padding: 48px clamp(26px, 5vw, 52px) 54px; }
}
@media (max-width: 700px) {
  .hero { width: calc(100% - 16px); margin-top: 74px; border-radius: 13px; }
  .hero::before { inset: 7px; border-radius: 7px; }
  .hero-fire-panel { height: 190px; margin: 11px 11px 0; border-radius: 9px; }
  .hfp-kanji { font-size: 190px; }
  .hero-content { padding: 30px 24px 42px; }
  .h1 { font-size: clamp(43px, 12vw, 64px); }
  .h-en { letter-spacing: .26em; }
  .h-actions { gap: 10px; }
  .opening-gift { width: calc(100% - 16px); padding: 25px 21px; }
}
