/* ==============================================================
   흑연 자림 · Heukyeon Jarim — Korean Fine Dining
   Design system: obsidian black + scarlet + gold + charcoal
   Typography: Cormorant Garamond (display) + Noto Serif KR (Korean) + Inter
   Mood: cinematic-dark + editorial-luxe
   ============================================================== */

:root{
  --black:#0a0908;
  --black-2:#13110f;
  --black-3:#1a1714;
  --char:#2a2520;
  --line:rgba(212,175,55,.12);
  --gold:#d4af37;
  --gold-2:#b8932e;
  --gold-soft:#e7c763;
  --scarlet:#9b1c1c;
  --scarlet-2:#c0392b;
  --ivory:#f3ece1;
  --paper:#d9cfb8;
  --mute:#8b837a;
  --mute-2:#5b554c;
  --shadow-1: 0 1px 0 rgba(255,255,255,.04), 0 30px 60px -30px rgba(0,0,0,.6);

  --serif-display: 'Cormorant Garamond', 'Noto Serif KR', 'Times New Roman', serif;
  --serif-kr: 'Noto Serif KR', 'Cormorant Garamond', serif;
  --sans: 'Inter', 'Apple SD Gothic Neo', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, sans-serif;

  --max: 1320px;
  --gut: clamp(20px, 4vw, 64px);
  --rad: 4px;
}

*{box-sizing:border-box}
*::selection{background:var(--gold);color:var(--black)}

html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--black);
  color:var(--ivory);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  cursor:none;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:none;background:none;border:0;color:inherit}

/* ============================================================
   SPOTLIGHT CURSOR
   ============================================================ */
.spotlight{
  position:fixed;
  left:0; top:0;
  width:560px; height:560px;
  margin-left:-280px; margin-top:-280px;
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  background: radial-gradient(closest-side,
    rgba(212,175,55,.18) 0%,
    rgba(212,175,55,.10) 18%,
    rgba(212,175,55,.04) 38%,
    rgba(0,0,0,0) 70%);
  mix-blend-mode:screen;
  transition: opacity .25s;
  opacity:0;
}
.spotlight.is-on{opacity:1}
.cursor-dot{
  position:fixed;top:0;left:0;width:6px;height:6px;border-radius:50%;
  background:var(--gold);pointer-events:none;z-index:10000;
  transform:translate(-50%,-50%) translate3d(0,0,0);
  transition:transform 0.05s ease;mix-blend-mode:normal;opacity:0
}
.cursor-dot.is-on{opacity:1}
.cursor-dot.is-click{
  width:18px;height:18px;background:transparent;border:2px solid var(--gold);
  animation:dotClick 0.4s ease-out;
}
@keyframes dotClick{
  0%{width:6px;height:6px;background:var(--gold)}
  50%{width:24px;height:24px;background:transparent;border-width:3px}
  100%{width:6px;height:6px;background:var(--gold)}
}

@media (max-width:768px), (hover:none){
  .spotlight{display:none}
  body{cursor:auto}
  button,a{cursor:pointer}
}

/* ============================================================
   DEMO BANNER
   ============================================================ */
.demo-banner{
  position:fixed; top:0; left:0; right:0;
  z-index:50;
  display:flex; align-items:center; gap:12px;
  padding:8px 18px;
  background:linear-gradient(90deg, #260a0a, #3a0f0f);
  border-bottom:1px solid rgba(212,175,55,.24);
  font-size:12.5px;
  letter-spacing:.04em;
  color:#f5e9d2;
}
.demo-banner__dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--scarlet-2);
  box-shadow: 0 0 0 4px rgba(192,57,43,.28);
  animation:pulseDot 1.6s infinite;
}
@keyframes pulseDot{
  0%,100%{box-shadow:0 0 0 4px rgba(192,57,43,.28)}
  50%{box-shadow:0 0 0 8px rgba(192,57,43,.04)}
}
.demo-banner__text{flex:1;min-width:0}
.demo-banner__close{
  font-size:22px; line-height:1; padding:4px 8px;
  color:#f5e9d2;
  border-radius:50%;
  transition:transform .25s, color .25s;
}
.demo-banner__close:hover{transform:rotate(90deg);color:var(--gold)}
body.has-banner .nav{top:36px}
body.has-banner .drawer__close{top:80px}

/* ============================================================
   NAV — hamburger fullscreen
   ============================================================ */
.nav{
  position:fixed; left:0; right:0; top:0;
  z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px clamp(20px, 4vw, 40px);
  transition: background .35s ease, top .25s ease;
  background:linear-gradient(180deg, rgba(10,9,8,.55) 0%, rgba(10,9,8,0) 100%);
}
.nav.is-scrolled{background:rgba(10,9,8,.86); backdrop-filter: blur(14px) saturate(120%); -webkit-backdrop-filter: blur(14px) saturate(120%); border-bottom:1px solid var(--line)}
.nav__brand{display:inline-flex;align-items:center;gap:14px}
.nav__brand-mark{
  display:inline-grid;place-items:center;
  width:42px;height:42px;border:1px solid var(--gold);border-radius:2px;
  font-family:var(--serif-kr);font-size:22px;color:var(--gold);
  letter-spacing:0;
}
.nav__brand-name{
  font-family:var(--serif-display);
  font-size:20px;letter-spacing:.06em;
  color:var(--ivory);
}
.nav__brand-name em{font-style:normal;color:var(--mute);font-size:13px;letter-spacing:.10em;margin-left:6px}

.nav__burger{
  position:relative;
  width:48px;height:48px;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  border:1px solid var(--gold);
  border-radius:2px;
  transition:background .25s;
}
.nav__burger:hover{background:rgba(212,175,55,.08)}

/* PC nav (≥769px): hamburger 숨김 + 인라인 메뉴 표시 */
@media (min-width:769px){
  .nav__menu-pc{
    display:flex;gap:32px;align-items:center;
    font-family:var(--font-display);font-size:14px;letter-spacing:0.04em;
  }
  .nav__menu-pc a{
    color:var(--ivory);text-decoration:none;padding:8px 0;
    border-bottom:1px solid transparent;transition:border-color 0.2s,color 0.2s;
  }
  .nav__menu-pc a:hover{color:var(--gold);border-bottom-color:var(--gold)}
  .nav__burger{display:none}
}
@media (max-width:768px){
  .nav__menu-pc{display:none}
}
.nav__burger span{
  display:block;width:22px;height:1.5px;background:var(--gold);
  transition: transform .35s, opacity .25s;
}

/* ============================================================
   DRAWER fullscreen
   ============================================================ */
.drawer{
  position:fixed; inset:0;
  z-index:60;
  background:radial-gradient(circle at 30% 30%, #1a1612 0%, #08070b 100%);
  opacity:0; pointer-events:none;
  transform:translateY(2vh);
  transition: opacity .55s ease, transform .65s ease;
  overflow-y:auto;
}
.drawer.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}
.drawer__close{
  position:absolute; top:60px; right:24px;
  width:48px; height:48px;
  display:grid; place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  font-size:30px; font-weight:300; color:var(--gold);
  z-index:2;
  transition: transform .35s, color .25s, background .25s;
}
.drawer__close:hover{transform:rotate(90deg);background:var(--gold);color:var(--black)}
.drawer__inner{
  max-width:1100px;margin:0 auto;
  padding:140px clamp(24px, 6vw, 80px) 80px;
  display:flex;flex-direction:column;gap:48px;
  min-height:100%;
}
.drawer__menu{display:flex;flex-direction:column;gap:0}
.drawer__menu a{
  position:relative;
  display:flex; align-items:baseline; gap:24px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-family:var(--serif-display);
  font-size:clamp(28px, 5vw, 54px);
  color:var(--ivory);
  letter-spacing:.02em;
  transition: color .35s, padding-left .35s;
}
.drawer__menu a::before{
  content:attr(data-letter);
  font-family:var(--sans);
  font-size:11px; color:var(--gold); letter-spacing:.18em;
  width:34px;
}
.drawer__menu a em{
  font-style:italic; color:var(--mute);
  font-size:14px; letter-spacing:.06em;
  margin-left:auto;
}
.drawer__menu a:hover{color:var(--gold-soft);padding-left:14px}
.drawer__foot{display:flex;flex-wrap:wrap;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:32px}
.drawer__login,.drawer__signup{font-family:var(--sans);font-size:13px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
.drawer__login:hover,.drawer__signup:hover{color:var(--gold)}
.drawer__signup{padding:8px 16px;border:1px solid var(--gold);color:var(--gold);border-radius:2px}
.drawer__cta{margin-left:auto;font-family:var(--serif-display);font-size:18px;color:var(--gold);letter-spacing:.04em}
.drawer__meta{font-size:12.5px;color:var(--mute);letter-spacing:.04em;line-height:1.9;margin:0}

/* ============================================================
   GLOBAL TYPOGRAPHY HELPERS
   ============================================================ */
.section__head{max-width:880px;margin:0 auto 64px;padding:0 var(--gut)}
.section__head--center{text-align:center}
.section__eyebrow{
  display:inline-block;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.32em;
  color:var(--gold);
  text-transform:uppercase;
  margin:0 0 22px;
}
.section__title{
  font-family:var(--serif-display);
  font-weight:300;
  font-size:clamp(34px, 5.4vw, 70px);
  line-height:1.05;
  letter-spacing:-.02em;
  color:var(--ivory);
  margin:0 0 22px;
}
.section__lede{
  font-family:var(--serif-kr);
  font-size:clamp(15px, 1.4vw, 18px);
  color:var(--paper);
  line-height:1.85;
  margin:0 0 18px;
  font-weight:300;
}
.section__more{
  display:inline-block;
  margin-top:42px;
  font-family:var(--sans);
  font-size:12px; letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  border-bottom:1px solid var(--gold);
  padding:6px 0;
  transition: letter-spacing .35s;
}
.section__more:hover{letter-spacing:.32em}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px;
  font-family:var(--sans); font-size:13px;
  letter-spacing:.18em; text-transform:uppercase;
  border:1px solid currentColor;
  border-radius:2px;
  transition:all .35s;
}
.btn--gold{background:var(--gold);color:var(--black);border-color:var(--gold)}
.btn--gold:hover{background:var(--gold-soft);border-color:var(--gold-soft);transform:translateY(-2px)}
.btn--ghost{color:var(--paper);border-color:rgba(243,236,225,.30)}
.btn--ghost:hover{color:var(--gold);border-color:var(--gold)}
.btn span{transition:transform .35s}
.btn:hover span{transform:translateX(4px)}

/* ============================================================
   01. HERO — cinematic-fade-black + slow-zoom + InkStroke + TextSplit
   ============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  padding:120px clamp(24px, 6vw, 80px);
}
.hero__bg{
  position:absolute; inset:0;
  z-index:0;
}
.hero__img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  position:absolute; inset:0;
  animation: heroZoom 22s ease-out forwards;
  opacity:0;
}
@keyframes heroZoom{
  0%{transform:scale(1.04);opacity:0}
  10%{opacity:1}
  100%{transform:scale(1.16);opacity:1}
}
.hero__vignette{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at center, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 70%, rgba(0,0,0,.95) 100%),
    linear-gradient(180deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.20) 30%, rgba(0,0,0,.30) 60%, rgba(0,0,0,.95) 100%);
}
.hero__noise{
  position:absolute; inset:0;
  background-image:
    repeating-radial-gradient(circle at 20% 30%, rgba(255,255,255,.012) 0, rgba(255,255,255,.012) 1px, transparent 1px, transparent 3px);
  mix-blend-mode:overlay;
  opacity:.7;
}
.hero__inner{
  position:relative; z-index:2;
  max-width:1080px;
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:18px;
}
.hero__eyebrow{
  font-family:var(--sans);
  font-size:12px; letter-spacing:.30em;
  color:var(--gold);
  text-transform:uppercase;
  margin:0;
  display:inline-flex;align-items:center;gap:14px;
  padding:10px 22px;
  border:1px solid rgba(212,175,55,.45);
  border-radius:99px;
  backdrop-filter: blur(6px);
}
.hero__star{color:var(--gold);letter-spacing:.20em}

.hero__title{
  font-family:var(--serif-display);
  font-weight:400;
  font-size:clamp(58px, 11vw, 168px);
  line-height:.96;
  letter-spacing:-.02em;
  color:var(--ivory);
  margin:8px 0 6px;
  text-shadow:0 6px 24px rgba(0,0,0,.6);
}
.hero__sub{
  font-family:var(--serif-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(18px, 2.4vw, 30px);
  letter-spacing:.04em;
  color:var(--gold-soft);
  margin:0;
}

.hero__ink{
  width:min(80vw, 600px);
  height:48px;
  margin:6px auto;
  overflow:visible;
}
.hero__ink path{
  stroke-dasharray:1200;
  stroke-dashoffset:1200;
  animation: inkDraw 2.4s ease-out 1.4s forwards;
  filter: drop-shadow(0 0 6px rgba(212,175,55,.5));
}
@keyframes inkDraw{
  to{stroke-dashoffset:0}
}

.hero__lede{
  font-family:var(--serif-kr);
  font-weight:300;
  font-size:clamp(15px, 1.5vw, 19px);
  line-height:1.95;
  color:var(--paper);
  max-width:680px;
  margin:6px 0 8px;
}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.hero__scroll{
  position:absolute;
  bottom:36px; left:50%; transform:translateX(-50%);
  font-size:10px; letter-spacing:.30em;
  color:var(--gold);
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.hero__scroll span{
  width:1px;height:36px;
  background:linear-gradient(180deg, var(--gold) 0%, transparent 100%);
  animation: scrollDot 2s infinite;
}
@keyframes scrollDot{
  0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom}
}

/* TextSplit anim */
.text-split{position:relative;display:inline-block}
.text-split .ts-char{
  display:inline-block;
  opacity:0;
  transform:translateY(60%);
  filter:blur(8px);
  animation: tsIn .9s ease-out forwards;
}
.text-split .ts-space{display:inline-block;width:.36em}
@keyframes tsIn{
  to{opacity:1;transform:translateY(0);filter:blur(0)}
}

/* ============================================================
   02. ABOUT
   ============================================================ */
.about{
  padding:140px var(--gut);
  background: linear-gradient(180deg, var(--black) 0%, var(--black-2) 100%);
}
.about__grid{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns: 1.05fr .95fr;
  gap:80px; align-items:start;
}
.about__copy p{font-family:var(--serif-kr);font-weight:300;color:var(--paper);font-size:16.5px;line-height:1.95;margin:0 0 18px}
.about__copy p.about__lead{font-size:19px;color:var(--ivory);font-style:italic}
.about__pillars{
  list-style:none;padding:0;margin:32px 0 0;
  display:grid; grid-template-columns:repeat(2, 1fr); gap:18px 24px;
}
.about__pillars li{
  font-family:var(--sans); font-size:14px; color:var(--paper);
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:2px;
  background:rgba(212,175,55,.02);
}
.about__pillars strong{display:block;color:var(--gold);font-family:var(--serif-display);font-size:22px;letter-spacing:0;margin-bottom:4px;font-weight:500}

.about__visual{display:flex;flex-direction:column;gap:18px}
.about__photo{margin:0;position:relative;overflow:hidden;border:1px solid var(--line)}
.about__photo--main img{aspect-ratio:4/5;object-fit:cover;width:100%;transition:transform 1.2s}
.about__photo--side img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform 1.2s}
.about__photo:hover img{transform:scale(1.04)}
.about__photo figcaption{
  position:absolute;left:14px;bottom:12px;
  font-family:var(--serif-display);font-style:italic;
  font-size:14px; color:var(--gold-soft);
  text-shadow:0 1px 4px rgba(0,0,0,.7);
}

/* ============================================================
   03. SIGNATURE
   ============================================================ */
.signature{
  padding:140px var(--gut);
  background: linear-gradient(180deg, var(--black-2) 0%, var(--black) 100%);
  text-align:center;
}
.signature__grid{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:32px;
}
.dish-card{
  text-align:left;
  position:relative;
  overflow:hidden;
  background:var(--black-2);
  border:1px solid var(--line);
  transition: transform .55s, border-color .55s;
}
.dish-card:hover{transform:translateY(-6px);border-color:rgba(212,175,55,.4)}
.dish-card img{
  aspect-ratio:1;
  object-fit:cover;
  width:100%;
  transition:transform 1.4s;
}
.dish-card:hover img{transform:scale(1.08)}
.dish-card__body{padding:24px 22px 28px}
.dish-card__num{
  font-family:var(--sans); font-size:11px;
  color:var(--gold); letter-spacing:.30em;
}
.dish-card__body h3{
  font-family:var(--serif-display); font-weight:400;
  font-size:24px; color:var(--ivory);
  margin:6px 0 4px;
}
.dish-card__sub{
  font-family:var(--serif-display); font-style:italic;
  font-size:13.5px; color:var(--gold-soft);
  margin:0 0 12px;
}
.dish-card__desc{
  font-family:var(--serif-kr); font-weight:300;
  font-size:14px; color:var(--paper);
  line-height:1.85; margin:0;
}

/* ============================================================
   04. CHEFS
   ============================================================ */
.chefs{
  padding:140px var(--gut);
  background: var(--black);
  text-align:center;
}
.chefs__grid{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:36px;
}
.chef-card{text-align:center}
.chef-card img{
  aspect-ratio:3/4;
  object-fit:cover;
  width:100%;
  filter:grayscale(.96) contrast(1.06);
  transition:filter .8s, transform 1.2s;
}
.chef-card:hover img{filter:grayscale(.05) contrast(1.04);transform:scale(1.03)}
.chef-card h3{
  font-family:var(--serif-display); font-weight:400;
  font-size:22px; color:var(--ivory);
  margin:18px 0 4px;
}
.chef-card h3 em{display:block;font-style:italic;font-size:13px;color:var(--mute);margin-top:2px}
.chef-card p{font-family:var(--serif-kr);font-weight:300;font-size:13.5px;color:var(--paper);margin:0;line-height:1.7}

/* ============================================================
   05. SEASONAL
   ============================================================ */
.seasonal{
  padding:140px var(--gut);
  background: linear-gradient(180deg, var(--black) 0%, var(--black-2) 100%);
}
.seasonal__strip{max-width:1100px;margin:0 auto;text-align:center}
.seasonal__quote{
  font-family:var(--serif-display); font-style:italic;
  font-size:clamp(18px, 2.2vw, 24px);
  line-height:1.6;
  color:var(--gold-soft);
  max-width:780px; margin:0 auto 56px;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.seasonal__quote em{display:block;font-style:normal;font-size:13px;color:var(--mute);letter-spacing:.10em;font-family:var(--sans);margin-top:14px}
.seasonal__cards{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:28px;
  margin-bottom:48px;
  text-align:left;
}
.seasonal-card{
  padding:32px 28px;
  border:1px solid var(--line);
  background: linear-gradient(180deg, rgba(212,175,55,.04) 0%, transparent 100%);
  transition: transform .45s, border-color .45s;
}
.seasonal-card:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.4)}
.seasonal-card__date{font-family:var(--sans);font-size:12px;letter-spacing:.16em;color:var(--gold)}
.seasonal-card h3{font-family:var(--serif-display);font-weight:400;font-size:26px;color:var(--ivory);margin:10px 0 10px}
.seasonal-card p{font-family:var(--serif-kr);font-weight:300;font-size:14.5px;color:var(--paper);margin:0;line-height:1.85}

/* ============================================================
   06. PRESS
   ============================================================ */
.press{
  padding:120px 0;
  background: var(--black);
  overflow:hidden;
}
.press .section__eyebrow{padding-left:var(--gut)}
.press__marquee{margin-top:32px;overflow:hidden}
.press__track{
  display:flex; gap:24px;
  animation: pressScroll 36s linear infinite;
  width:max-content;
}
@keyframes pressScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.press-card{
  flex:0 0 320px;
  background:var(--black-2);
  border:1px solid var(--line);
  padding:0;
}
.press-card img{
  aspect-ratio:4/5;
  width:100%; object-fit:cover;
  filter:contrast(1.05) brightness(.96);
}
.press-card__quote{
  font-family:var(--serif-display); font-style:italic;
  font-size:18px; color:var(--ivory);
  padding:18px 22px 6px;
  margin:0;
}
.press-card__source{
  font-family:var(--sans); font-size:11px; letter-spacing:.20em;
  color:var(--gold); padding:0 22px 22px;
  margin:0; text-transform:uppercase;
}

/* ============================================================
   07. TESTIMONIALS
   ============================================================ */
.testimonials{
  padding:140px var(--gut);
  background: linear-gradient(180deg, var(--black) 0%, var(--black-2) 100%);
}
.testimonials__grid{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns:repeat(2, 1fr);
  gap:32px;
}
.quote-card{
  margin:0;
  padding:36px 36px 30px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(212,175,55,.04) 0%, transparent 100%);
  position:relative;
  transition: transform .45s, border-color .45s;
}
.quote-card::before{
  content:"\201C";
  position:absolute; top:8px; left:18px;
  font-family:var(--serif-display); font-style:italic;
  font-size:80px; color:var(--gold);
  line-height:1; opacity:.55;
}
.quote-card:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.4)}
.quote-card p{
  font-family:var(--serif-display); font-style:italic; font-weight:300;
  font-size:21px; line-height:1.55;
  color:var(--ivory);
  margin:14px 0 24px;
  padding-top:14px;
}
.quote-card cite{
  display:block;
  font-style:normal;
  font-family:var(--sans);
  font-size:11px; letter-spacing:.20em;
  color:var(--gold); text-transform:uppercase;
}
@media(max-width:768px){.testimonials__grid{grid-template-columns:1fr}}

/* ============================================================
   08. OMAKASE
   ============================================================ */
.omakase{
  padding:140px var(--gut);
  background: linear-gradient(180deg, var(--black-2) 0%, var(--black) 100%);
}
.omakase__steps{
  list-style:none;padding:0;margin:0;
  max-width:980px;
  margin:0 auto;
  display:flex; flex-direction:column;
}
.omakase__steps li{
  position:relative;
  display:grid; grid-template-columns: 100px 1fr;
  gap:32px; align-items:start;
  padding:32px 0 32px 0;
  border-top:1px solid var(--line);
}
.omakase__steps li:last-child{border-bottom:1px solid var(--line)}
.omakase__num{
  font-family:var(--serif-display);
  font-style:italic; font-weight:300;
  font-size:46px;
  color:var(--gold);
  line-height:1;
}
.omakase__steps h3{
  font-family:var(--serif-display); font-weight:400;
  font-size:26px; color:var(--ivory);
  margin:0 0 6px;
  letter-spacing:.02em;
}
.omakase__steps p{
  font-family:var(--serif-kr); font-weight:300;
  color:var(--paper); font-size:15.5px;
  line-height:1.9; margin:0;
}

/* ============================================================
   08. WINE
   ============================================================ */
.wine{
  padding:140px var(--gut);
  background: var(--black);
}
.wine__split{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.wine__copy p{
  font-family:var(--serif-kr); font-weight:300;
  color:var(--paper); font-size:16px;
  line-height:1.9; margin:0 0 28px;
}
.wine__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.wine__list li{
  display:grid; grid-template-columns: 130px 1fr;
  gap:24px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-family:var(--serif-kr); font-weight:300;
  font-size:15px;
  color:var(--paper);
}
.wine__list li:first-child{border-top:1px solid var(--line)}
.wine__cat{
  font-family:var(--sans); font-size:11px;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold);
}
.wine__photos{display:grid;grid-template-rows:1.2fr 1fr;gap:18px}
.wine__photos figure{margin:0;overflow:hidden;border:1px solid var(--line)}
.wine__photos img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s}
.wine__photos figure:first-child img{aspect-ratio:4/5}
.wine__photos figure:hover img{transform:scale(1.04)}

/* ============================================================
   AWARDS — timeline
   ============================================================ */
.awards{
  padding:140px var(--gut);
  background: var(--black);
}
.awards__timeline{
  max-width:980px; margin:0 auto;
  position:relative;
  padding-left:32px;
}
.awards__timeline::before{
  content:"";
  position:absolute; left:0; top:8px; bottom:8px;
  width:1px; background:linear-gradient(180deg, var(--gold), transparent);
}
.award-item{
  display:grid; grid-template-columns:130px 1fr;
  gap:32px;
  padding:28px 0;
  border-bottom:1px solid var(--line);
  position:relative;
}
.award-item::before{
  content:"";
  position:absolute; left:-37px; top:42px;
  width:11px; height:11px; border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px var(--black), 0 0 12px var(--gold);
}
.award-item:last-child{border-bottom:0}
.award-item__year{
  font-family:var(--serif-display); font-style:italic; font-weight:300;
  font-size:48px; color:var(--gold);
  line-height:1;
}
.award-item h3{
  font-family:var(--serif-display); font-weight:400;
  font-size:24px; color:var(--ivory);
  margin:0 0 8px;
}
.award-item p{
  font-family:var(--serif-kr); font-weight:300;
  font-size:15px; color:var(--paper);
  line-height:1.85; margin:0;
}
.awards__note{
  text-align:center;
  font-size:11px;
  color:var(--mute-2);
  letter-spacing:.10em;
  margin-top:32px;
}
@media (max-width:768px){
  .award-item{grid-template-columns:1fr;gap:8px}
}

/* ============================================================
   09. STATS
   ============================================================ */
.stats{
  padding:120px var(--gut);
  background: linear-gradient(180deg, var(--black) 0%, #100c08 50%, var(--black) 100%);
  text-align:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stats__eyebrow{margin-bottom:48px}
.stats__grid{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns:repeat(5, 1fr);
  gap:18px;
}
.stat{padding:20px 16px}
.stat__num{
  display:block;
  font-family:var(--serif-display); font-weight:300;
  font-size:clamp(40px, 5vw, 72px);
  color:var(--gold);
  line-height:1;
  margin-bottom:10px;
  letter-spacing:-.02em;
}
.stat p{
  font-family:var(--serif-kr); font-weight:300;
  font-size:13.5px; color:var(--paper);
  margin:0; letter-spacing:.04em;
}
.stats__disclaimer{font-size:11px;color:var(--mute-2);letter-spacing:.10em;margin-top:32px}

/* ============================================================
   10. PRIVATE
   ============================================================ */
.private{
  position:relative;
  padding:140px var(--gut);
  background:
    linear-gradient(rgba(10,9,8,.86), rgba(10,9,8,.86)),
    radial-gradient(ellipse at 30% 40%, rgba(155,28,28,.16) 0%, transparent 60%),
    var(--black);
  text-align:center;
  overflow:hidden;
}
.private__inner{max-width:780px;margin:0 auto}
.private__lead{
  font-family:var(--serif-kr); font-weight:300;
  font-size:17px; color:var(--paper);
  line-height:1.95; margin:0 0 32px;
}
.private__features{
  list-style:none;padding:0;
  display:flex; flex-wrap:wrap; gap:14px; justify-content:center;
  margin:0 0 36px;
}
.private__features li{
  padding:10px 20px;
  border:1px solid rgba(212,175,55,.30);
  font-family:var(--serif-kr); font-weight:300;
  font-size:14px; color:var(--paper);
  border-radius:99px;
}
.private__features strong{color:var(--gold);font-family:var(--serif-display);font-weight:500;letter-spacing:.02em}

/* ============================================================
   11. VISIT
   ============================================================ */
.visit{
  padding:140px var(--gut);
  background: linear-gradient(180deg, var(--black) 0%, var(--black-2) 100%);
}
.visit__grid{
  max-width:var(--max);margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:64px; align-items:center;
}
.visit__copy p{
  font-family:var(--serif-kr); font-weight:300;
  color:var(--paper); font-size:16px;
  line-height:1.95; margin:0 0 28px;
}
.visit__info{display:grid;grid-template-columns: 84px 1fr;gap:14px 24px;margin:0 0 28px;font-size:14.5px}
.visit__info dt{font-family:var(--sans);font-size:11px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;padding-top:4px}
.visit__info dd{font-family:var(--serif-kr);font-weight:300;color:var(--ivory);margin:0;line-height:1.8}
.visit__photo{margin:0;overflow:hidden;border:1px solid var(--line)}
.visit__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s}
.visit__photo:hover img{transform:scale(1.04)}

/* ============================================================
   12. CTA
   ============================================================ */
.cta{
  padding:140px var(--gut);
  background:
    radial-gradient(ellipse at center, rgba(212,175,55,.08) 0%, transparent 70%),
    var(--black);
  text-align:center;
  border-top:1px solid var(--line);
}
.cta__inner{max-width:760px;margin:0 auto}
.cta__title{
  font-family:var(--serif-display); font-weight:300;
  font-size:clamp(40px, 6.4vw, 84px);
  line-height:1.05; letter-spacing:-.02em;
  color:var(--ivory);
  margin:18px 0 22px;
}
.cta__lede{
  font-family:var(--serif-kr); font-weight:300;
  font-size:17px; color:var(--paper);
  line-height:1.9; margin:0 0 36px;
}
.cta__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}

/* ============================================================
   13. FOOTER
   ============================================================ */
.foot{
  padding:96px var(--gut) 32px;
  background: #050403;
  border-top:1px solid var(--line);
}
.foot__grid{
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap:48px;
}
.foot__brand{display:flex;flex-direction:column;gap:8px}
.foot__mark{
  display:inline-grid;place-items:center;
  width:48px; height:48px;
  border:1px solid var(--gold);
  font-family:var(--serif-kr); font-size:24px; color:var(--gold);
}
.foot__brand h3{font-family:var(--serif-display);font-weight:400;font-size:26px;color:var(--ivory);margin:14px 0 4px}
.foot__brand h3 em{display:block;font-style:italic;font-size:13px;color:var(--mute);margin-top:2px}
.foot__brand p{font-family:var(--serif-kr);font-weight:300;color:var(--mute);font-size:13px;line-height:1.8;margin:0}
.foot__col h4{font-family:var(--sans);font-size:11px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin:0 0 18px}
.foot__col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.foot__col li,.foot__col a{font-family:var(--serif-kr);font-weight:300;font-size:13.5px;color:var(--paper);line-height:1.6}
.foot__col a:hover{color:var(--gold)}
.foot__bottom{
  max-width:var(--max);margin:64px auto 0;
  padding-top:24px;
  border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;
  font-size:11.5px; color:var(--mute-2); letter-spacing:.04em;
}
.foot__bottom p{margin:0}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .about__grid,.wine__split,.visit__grid{grid-template-columns:1fr;gap:48px}
  .signature__grid,.chefs__grid{grid-template-columns:repeat(2, 1fr)}
  .seasonal__cards{grid-template-columns:1fr}
  .stats__grid{grid-template-columns:repeat(3, 1fr)}
  .foot__grid{grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:768px){
  body{font-size:15px}
  .nav__brand-name em{display:none}
  .signature__grid,.chefs__grid{grid-template-columns:1fr}
  .stats__grid{grid-template-columns:repeat(2, 1fr)}
  .foot__grid{grid-template-columns:1fr;gap:28px}
  .omakase__steps li{grid-template-columns:1fr;gap:8px}
  .hero__cta .btn{flex:1;justify-content:center}
  input,textarea,select{font-size:16px !important}
}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease, transform 1s ease}
.reveal.is-in{opacity:1;transform:translateY(0)}

/* V3.4.8 (사용자 요청 2026-05-01): 모바일 hero 좌우 슬라이드 애니메이션 (30s ease-in-out alternate) */
@media (max-width: 768px) {
  .hero__img {
    object-fit: cover !important;
    height: 100% !important;
    width: auto !important;
    min-width: 100%;
    animation: heroPanLR 18s ease-in-out infinite alternate;
  }
}
@keyframes heroPanLR {
  0%   { object-position: 0% center; }
  100% { object-position: 100% center; }
}

/* V3.4.9 (2026-05-01): restaurant hero__img opacity 0 → 1 (IntersectionObserver fade 무시) + 배너 padding */
.hero__img {
  opacity: 1 !important;
}
.hero__bg {
  opacity: 1 !important;
}
/* 상단 배너 아래로 페이지 시작 — PC + 모바일 */
body {
  padding-top: 47px !important;  /* PC banner h=47 정확히 맞춤 (V3.4.16) */
}

/* V3.4.15 (2026-05-01): restaurant 모바일 배너 영역 확실히 분리 */
@media (max-width: 768px) {
  body {
    padding-top: 64px !important;
  }
  .demo-banner, [class*='banner']:not(.has-banner) {
    height: 64px !important;
    min-height: 64px !important;
    overflow: hidden !important;
    z-index: 99999 !important;
  }
}
