/* ═══════════════════════════════════════════════════════════
   KŌRA SOCIAL — SMOKE & GOLD Design System
   ═══════════════════════════════════════════════════════════ */
:root {
  --bg:          #09090A;
  --surface:     #111111;
  --elevated:    #1A1816;
  --gold:        #C9A84C;
  --gold-light:  #E8C97A;
  --gold-dim:    #8A6E30;
  --cream:       #F2EBD9;
  --muted:       #A89880;
  --bronze:      #8C5E3C;
  --amber:       #D4872A;
  --nav-h:       68px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:hidden; }

body {
  background: var(--bg);
  color: var(--cream);
  font-family:'Jost',sans-serif;
  font-weight:300;
  line-height:1.8;
  overflow-x:hidden;
  cursor:none;
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* ── Grain overlay ── */
body::after {
  content:'';
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
  pointer-events:none;
  z-index:9500;
}

/* ── Type ── */
.section-chip {
  display:inline-block;
  font-family:'Jost',sans-serif;
  font-size:10px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
  border:1px solid rgba(201,168,76,.2);
  padding:.35rem .9rem;
  margin-bottom:1.2rem;
}
.section-h2 {
  font-family:'Cinzel',serif;
  font-size:clamp(1.9rem,4vw,3.1rem);
  font-weight:400;
  color:var(--cream);
  line-height:1.15;
  margin-bottom:1.4rem;
}
.text-center { text-align:center; }
.section-head { margin-bottom:3.5rem; }
.container { max-width:1200px; margin:0 auto; padding:0 2rem; }
p { color:var(--muted); line-height:1.9; font-size:1.03rem; }

/* ═══ LOADER ═══════════════════════════════════════════════ */
.loader {
  position:fixed; inset:0;
  background:#000;
  z-index:9999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2rem;
}
.loader-line {
  width:0;
  height:1px;
  background:linear-gradient(to right, transparent, var(--gold), transparent);
  animation:loader-expand 1s cubic-bezier(.16,1,.3,1) .2s forwards;
  max-width:300px;
  width:300px;
  transform:scaleX(0);
  transform-origin:center;
}
@keyframes loader-expand {
  to { transform:scaleX(1); }
}
.loader-logo {
  font-family:'Cinzel',serif;
  font-size:clamp(1.2rem,4vw,2rem);
  letter-spacing:.25em;
  color:var(--cream);
  opacity:0;
  animation:loader-fade 0.8s ease .9s forwards;
}
@keyframes loader-fade {
  to { opacity:1; }
}
.loader.done {
  opacity:0;
  pointer-events:none;
  transition:opacity .6s ease .3s;
}

/* ═══ CUSTOM CURSOR ════════════════════════════════════════ */
.cursor-dot {
  width:8px; height:8px;
  border-radius:50%;
  background:var(--gold);
  position:fixed; top:0; left:0;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  mix-blend-mode:screen;
  transition:width .15s,height .15s;
}
.cursor-trail {
  position:fixed; inset:0;
  pointer-events:none;
  z-index:9997;
  width:100%; height:100%;
}
body.cursor-big .cursor-dot { width:16px; height:16px; }
@media(hover:none){.cursor-dot,.cursor-trail{display:none;}body{cursor:auto;}}

/* ═══ SCROLL BAR ══════════════════════════════════════════ */
.scroll-bar {
  position:fixed; top:0; left:0;
  height:2px;
  background:linear-gradient(to right,var(--gold-dim),var(--gold),var(--gold-light));
  z-index:10000;
  width:0;
}

/* ═══ NAV ═════════════════════════════════════════════════ */
.nav {
  position:fixed; top:0; left:0; right:0;
  height:var(--nav-h);
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 2.5rem;
  transition:background .4s, backdrop-filter .4s, box-shadow .4s;
}
.nav.sticky {
  background:rgba(9,9,10,.9);
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(201,168,76,.12);
}
.nav-brand {
  display:flex; align-items:center; gap:.7rem;
  text-decoration:none;
  font-family:'Cinzel',serif;
  font-size:.95rem;
  letter-spacing:.22em;
  color:var(--gold);
}
.nav-compass {
  width:28px; height:28px;
  color:var(--gold);
  animation:compass-spin 90s linear infinite;
}
@keyframes compass-spin { to { transform:rotate(360deg); } }
.nav-links {
  display:flex; align-items:center; gap:2rem;
}
.nav-links a {
  font-family:'Jost',sans-serif;
  font-size:12px;
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  text-decoration:none;
  position:relative;
  transition:color .25s;
}
.nav-links a::after {
  content:'';
  position:absolute; bottom:-4px; left:0; right:0;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.nav-links a:hover { color:var(--cream); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-reserve {
  color:var(--gold) !important;
  border:1px solid var(--gold-dim);
  padding:.5rem 1.2rem;
  transition:background .3s, color .3s !important;
  position:relative; overflow:hidden;
}
.nav-reserve::before {
  content:'';
  position:absolute; top:0; left:-100%; bottom:0;
  width:100%;
  background:var(--gold);
  transition:left .3s ease;
  z-index:-1;
}
.nav-reserve:hover { color:var(--bg) !important; }
.nav-reserve:hover::before { left:0; }
.nav-reserve::after { display:none !important; }

.nav-burger {
  display:none;
  flex-direction:column; gap:5px;
  background:none; border:none;
  cursor:none; padding:4px;
}
.nav-burger span { display:block; width:22px; height:1px; background:var(--cream); }
@media(max-width:860px) { .nav-links{display:none;} .nav-burger{display:flex;} }

/* ═══ DRAWER ══════════════════════════════════════════════ */
.drawer {
  position:fixed; top:0; right:-100%; bottom:0;
  width:min(320px,85vw);
  background:var(--elevated);
  border-left:1px solid var(--gold-dim);
  z-index:1100;
  padding:4rem 2.5rem;
  display:flex; align-items:center;
  transition:right .4s cubic-bezier(.16,1,.3,1);
}
.drawer.open { right:0; }
.drawer-x {
  position:absolute; top:1.2rem; right:1.2rem;
  background:none; border:none;
  color:var(--muted); font-size:1.1rem;
  cursor:none; transition:color .2s;
}
.drawer-x:hover { color:var(--gold); }
.drawer-nav { display:flex; flex-direction:column; gap:1.8rem; }
.drawer-nav a {
  font-family:'Cinzel',serif; font-size:1.05rem;
  color:var(--muted); text-decoration:none;
  transition:color .25s;
}
.drawer-nav a:hover { color:var(--gold); }
.drawer-reserve {
  margin-top:.5rem;
  padding:.75rem 0;
  border:1px solid var(--gold-dim);
  text-align:center;
  transition:background .3s, color .3s !important;
}
.drawer-reserve:hover { background:var(--gold); color:var(--bg) !important; }
.drawer-veil {
  position:fixed; inset:0;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(4px);
  z-index:1050;
  opacity:0; pointer-events:none;
  transition:opacity .4s;
}
.drawer-veil.open { opacity:1; pointer-events:auto; }

/* ═══ HERO ════════════════════════════════════════════════ */
.hero {
  position:relative;
  height:100vh; min-height:600px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.hero-img-wrap {
  position:absolute; inset:0;
}
.hero-img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  filter:brightness(.45) contrast(1.15) saturate(.7);
  transform:scale(1.04);
  transition:transform 8s ease-out;
}
.hero.loaded .hero-img { transform:scale(1); }
.hero-scrim {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 70% at 50% 50%, rgba(140,94,60,.18) 0%, transparent 70%),
    linear-gradient(to bottom, rgba(0,0,0,.3) 0%, rgba(0,0,0,.5) 100%);
  z-index:1;
}
.hero-compass-rose {
  position:absolute;
  width:min(65vw,580px);
  height:min(65vw,580px);
  z-index:2;
  animation:compass-spin 120s linear infinite;
  opacity:.55;
  pointer-events:none;
}
.embers {
  position:absolute; inset:0;
  z-index:3; pointer-events:none;
  width:100%; height:100%;
}
.hero-content {
  position:relative; z-index:4;
  text-align:center;
  display:flex; flex-direction:column;
  align-items:center; gap:1.8rem;
}
.hero-region-label {
  font-family:'Jost',sans-serif;
  font-size:10px; font-weight:500;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold-dim);
}
.hero-title {
  font-family:'Cinzel',serif;
  font-size:clamp(3rem,9vw,7.5rem);
  font-weight:400;
  letter-spacing:.18em;
  color:var(--cream);
  line-height:1;
  display:flex; flex-direction:column;
  align-items:center; gap:.6rem;
}
.hero-word {
  display:block;
  opacity:0;
  transform:translateY(30px) skewY(3deg);
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.hero-word.show { opacity:1; transform:none; }
.hero-word:nth-child(3) { transition-delay:.25s; }
.hero-divider {
  width:120px; height:1px;
  background:linear-gradient(to right,transparent,var(--gold),transparent);
  opacity:0;
  transition:opacity .8s ease .6s;
}
.hero-divider.show { opacity:1; }
.hero-tagline {
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:clamp(1rem,2.5vw,1.5rem);
  font-weight:300;
  letter-spacing:.15em;
  color:var(--gold);
}
.hero-scroll-cue {
  position:absolute; bottom:2.5rem; left:50%;
  transform:translateX(-50%);
  z-index:4;
  display:flex; flex-direction:column;
  align-items:center; gap:.5rem;
  opacity:.45;
}
.hero-scroll-cue span {
  font-size:9px; letter-spacing:.25em;
  text-transform:uppercase; color:var(--muted);
}
.cue-line {
  width:1px; height:45px;
  background:linear-gradient(to bottom,var(--gold),transparent);
  animation:cue-drop 1.8s ease-in-out infinite;
}
@keyframes cue-drop {
  0%{transform:scaleY(0);transform-origin:top;opacity:0}
  50%{transform:scaleY(1);transform-origin:top;opacity:1}
  100%{transform:scaleY(0);transform-origin:bottom;opacity:0}
}

/* ── Wipe-in animation ── */
.wipe-in {
  clip-path:polygon(0 0,0 0,0 100%,0 100%);
  transition:clip-path .9s cubic-bezier(.16,1,.3,1);
}
.wipe-in.show { clip-path:polygon(0 0,110% 0,110% 100%,0 100%); }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.5s; }
.delay-4 { transition-delay:.8s; }

/* ═══ BUTTONS ═════════════════════════════════════════════ */
.btn-gold {
  display:inline-block;
  font-family:'Jost',sans-serif;
  font-size:11px; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold);
  text-decoration:none;
  border:1px solid var(--gold);
  padding:.95rem 2.5rem;
  cursor:none;
  position:relative; overflow:hidden;
  transition:color .35s;
  background:none;
}
.btn-gold::before {
  content:'';
  position:absolute; top:0; left:-100%; bottom:0;
  width:100%;
  background:var(--gold);
  transition:left .35s ease;
  z-index:0;
}
.btn-gold span { position:relative; z-index:1; }
.btn-gold:hover { color:var(--bg); }
.btn-gold:hover::before { left:0; }
.btn-full { display:block; width:100%; text-align:center; margin-top:1.5rem; }

/* ═══ MANIFESTO ═══════════════════════════════════════════ */
.manifesto {
  padding:9rem 2rem;
  background:var(--surface);
  text-align:center;
  position:relative;
}
.manifesto::before,.manifesto::after {
  content:'';
  position:absolute;
  left:10%; right:10%;
  height:1px;
  background:linear-gradient(to right,transparent,var(--gold-dim),transparent);
}
.manifesto::before { top:0; }
.manifesto::after  { bottom:0; }
.manifesto-inner { max-width:820px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:1.5rem; }
.manifesto-ornament { width:200px; opacity:.7; }
.manifesto-quote {
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:clamp(1.7rem,4vw,3rem);
  font-weight:300;
  color:var(--cream);
  line-height:1.45;
  letter-spacing:.04em;
}
/* Character reveal */
.js-char-reveal .char {
  display:inline;
  opacity:0;
  filter:blur(4px);
  transition:opacity .4s, filter .4s;
}
.js-char-reveal.revealed .char { opacity:1; filter:none; }
.js-char-reveal .char:nth-child(n) { transition-delay:calc(var(--ci,0) * 18ms); }

/* ═══ CHRONICLE ═══════════════════════════════════════════ */
.chronicle {
  padding:6rem 0;
  background:var(--bg);
  position:relative;
}
.chronicle-thread {
  position:absolute;
  left:50%; top:0; bottom:0;
  width:4px;
  transform:translateX(-50%);
  pointer-events:none;
  z-index:0;
}
.chronicle-entry {
  display:grid;
  grid-template-columns:47fr 53fr;
  min-height:540px;
  position:relative; z-index:1;
  border-bottom:1px solid rgba(201,168,76,.07);
}
/* Flip: image occupies the left column, text the right */
.chronicle-entry--flip .chronicle-image { grid-column:1; grid-row:1; }
.chronicle-entry--flip .chronicle-text  { grid-column:2; grid-row:1; }
.chronicle-text {
  display:flex; flex-direction:column; justify-content:center;
  padding:4.5rem 4rem;
}
.chronicle-image {
  position:relative; overflow:hidden;
  min-height:480px;
}
.chronicle-image img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .7s ease, filter .8s ease, opacity .6s ease;
}
.chronicle-image-label {
  position:absolute;
  bottom:1.5rem; left:1.5rem;
  font-family:'Jost',sans-serif;
  font-size:9px; letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--gold-dim);
  border:1px solid rgba(201,168,76,.2);
  padding:.3rem .7rem;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(4px);
}

/* Photo develop effect */
.js-photo-develop img {
  filter:grayscale(.9) blur(6px) brightness(.6);
  opacity:.7;
  transform:scale(1.06);
}
.js-photo-develop.developed img {
  filter:grayscale(0) blur(0) brightness(1);
  opacity:1;
  transform:scale(1);
}

/* Brush reveal */
.js-brush-reveal {
  clip-path:polygon(0 0,0 0,0 100%,0 100%);
  transition:clip-path .85s cubic-bezier(.16,1,.3,1);
}
.js-brush-reveal.revealed {
  clip-path:polygon(0 0,110% -5%,110% 105%,0 100%);
}

@media(max-width:768px) {
  .chronicle-entry,.chronicle-entry--flip {
    grid-template-columns:1fr;
  }
  /* Image always appears above text on mobile regardless of DOM / column order */
  .chronicle-entry .chronicle-image,
  .chronicle-entry--flip .chronicle-image {
    grid-column:1; grid-row:1;
    min-height:340px;
  }
  .chronicle-entry .chronicle-text,
  .chronicle-entry--flip .chronicle-text {
    grid-column:1; grid-row:2;
    padding:2.5rem 1.5rem;
  }
  .chronicle-thread { display:none; }
}

@media(max-width:1100px) and (min-width:769px) {
  .chronicle-text { padding:3.5rem 2.5rem; }
}

/* ═══ KITCHEN (Signature Dishes) ══════════════════════════ */
.kitchen {
  padding:7rem 0;
  background:var(--surface);
  position:relative;
}
.kitchen::before {
  content:'';
  position:absolute; top:0; left:10%; right:10%;
  height:1px;
  background:linear-gradient(to right,transparent,var(--gold-dim),transparent);
}
.kitchen-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
  margin-top:1rem;
}

/* 3D flip card */
.kitchen-card {
  height:400px;
  perspective:1000px;
  cursor:none;
}
.kitchen-card-front,
.kitchen-card-back {
  position:absolute; inset:0;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
  border:1px solid rgba(201,168,76,.1);
}
.kitchen-card { position:relative; transform-style:preserve-3d; }
.kitchen-card-front {
  overflow:hidden;
}
.kitchen-card-front img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.kitchen-card:hover .kitchen-card-front img { transform:scale(1.06); }
.kitchen-card-scrim {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.2) 50%,transparent 100%);
}
.kitchen-card-info {
  position:absolute; bottom:1.5rem; left:1.5rem; right:1.5rem;
}
.card-region {
  display:block;
  font-family:'Jost',sans-serif;
  font-size:9px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-dim); margin-bottom:.4rem;
}
.card-name {
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:1.4rem; color:var(--cream);
}
.kitchen-card-back {
  background:var(--elevated);
  transform:rotateY(180deg);
  display:flex; flex-direction:column;
  justify-content:center;
  padding:2rem 1.8rem;
}
.kitchen-card-back .card-region { color:var(--gold-dim); }
.kitchen-card-back .card-name { font-size:1.25rem; color:var(--gold); margin-bottom:.8rem; }
.kitchen-card-back p { font-size:.87rem; margin-bottom:1.2rem; line-height:1.65; }
.card-price {
  display:block;
  font-family:'Cinzel',serif;
  font-size:1.1rem; color:var(--cream);
  margin-bottom:1.2rem;
}
.card-order {
  font-family:'Jost',sans-serif;
  font-size:10px; letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold); text-decoration:none;
  border:1px solid var(--gold-dim);
  padding:.55rem 1.2rem;
  text-align:center;
  transition:background .3s,color .3s;
  display:block;
}
.card-order:hover { background:var(--gold); color:var(--bg); }
.kitchen-card:hover .kitchen-card-front { transform:rotateY(-180deg); }
.kitchen-card:hover .kitchen-card-back  { transform:rotateY(0deg); }

/* Flip entrance animation */
.js-flip-in {
  transform:rotateY(-90deg) translateZ(-10px);
  opacity:0;
  transition:transform .7s cubic-bezier(.16,1,.3,1), opacity .5s ease;
  transition-delay:var(--d,0ms);
}
.js-flip-in.entered {
  transform:rotateY(0) translateZ(0);
  opacity:1;
}

@media(max-width:1000px) { .kitchen-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:580px)  { .kitchen-grid{grid-template-columns:1fr;} .kitchen-card{height:340px;} }

/* ═══ MENU SECTION ════════════════════════════════════════ */
.menu-section {
  padding:7rem 0;
  background:var(--bg);
  position:relative; overflow:hidden;
}
.menu-grid-bg {
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(201,168,76,.025) 60px),
    repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(201,168,76,.025) 60px);
  pointer-events:none;
}
.region-scroll { overflow-x:auto; scrollbar-width:none; margin:3rem 0 0; padding:0 2rem; }
.region-scroll::-webkit-scrollbar { display:none; }
.region-tabs { display:flex; gap:.5rem; min-width:max-content; padding-bottom:.5rem; }
.rtab {
  font-family:'Jost',sans-serif;
  font-size:11px; font-weight:400;
  letter-spacing:.16em;
  color:var(--muted);
  background:none;
  border:1px solid rgba(201,168,76,.12);
  padding:.6rem 1.3rem;
  cursor:none;
  transition:all .25s;
  white-space:nowrap;
}
.rtab:hover { color:var(--cream); border-color:var(--gold-dim); }
.rtab.active { color:var(--gold); border-color:var(--gold); background:rgba(201,168,76,.06); }

.cat-row { display:flex; gap:0; margin:1.5rem 2rem 2.5rem; border-bottom:1px solid rgba(201,168,76,.1); }
.cpill {
  font-family:'Jost',sans-serif;
  font-size:11px; letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--muted);
  background:none; border:none;
  padding:.65rem 1.3rem;
  cursor:none; transition:color .2s;
  position:relative;
}
.cpill::after {
  content:'';
  position:absolute; bottom:-1px; left:0; right:0;
  height:2px; background:var(--gold);
  transform:scaleX(0);
  transition:transform .3s ease;
}
.cpill.active { color:var(--cream); }
.cpill.active::after { transform:scaleX(1); }
.cpill:hover { color:var(--cream); }

.dish-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1px;
  padding:0 2rem;
  background:rgba(201,168,76,.06);
}
.dish-card {
  background:var(--bg);
  padding:1.5rem 1.8rem;
  cursor:none;
  transition:background .2s;
  animation:dish-appear .4s cubic-bezier(.16,1,.3,1) both;
  animation-delay:var(--i,0);
}
.dish-card:hover { background:var(--elevated); }
@keyframes dish-appear {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:none; }
}
.dish-meta { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.3rem; }
.dish-name { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.12rem; color:var(--gold); }
.dish-price { font-family:'Cinzel',serif; font-size:.88rem; color:var(--cream); margin-left:1rem; white-space:nowrap; }
.dish-origin { font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:.5rem; }
.dish-desc { font-size:.85rem; color:var(--muted); line-height:1.6; }
.no-dishes { grid-column:1/-1; text-align:center; padding:3rem; font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--muted); }

/* ═══ FLAVOR COMPASS ══════════════════════════════════════ */
.compass-section {
  padding:7rem 0;
  background:var(--surface);
  position:relative;
}
.compass-section::before {
  content:'';
  position:absolute; top:0; left:10%; right:10%;
  height:1px;
  background:linear-gradient(to right,transparent,var(--gold-dim),transparent);
}
.compass-layout {
  display:grid;
  grid-template-columns:520px 1fr;
  gap:4rem;
  align-items:center;
}
.compass-chart-wrap { display:flex; justify-content:center; }
.compass-svg { width:100%; max-width:500px; }
.compass-sector {
  cursor:none;
  transition:fill .3s;
}
.compass-sector:hover { fill:rgba(201,168,76,.08); }
.compass-sector.active { fill:rgba(201,168,76,.14); }
.compass-results { min-height:280px; }
.compass-hint {
  font-family:'Cormorant Garamond',serif;
  font-style:italic; font-size:1.1rem;
  color:var(--muted);
}
.compass-result-label {
  font-family:'Cinzel',serif;
  font-size:.95rem; color:var(--gold);
  letter-spacing:.1em;
  margin-bottom:2rem;
}
.compass-dish-list { display:flex; flex-direction:column; gap:1rem; }
.compass-dish-item { border-left:2px solid var(--gold-dim); padding-left:1rem; }
.compass-dish-name { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.05rem; color:var(--cream); }
.compass-dish-sub { font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-dim); }
@media(max-width:900px) {
  .compass-layout { grid-template-columns:1fr; gap:3rem; }
  .compass-svg { max-width:420px; }
}

/* ═══ GALLERY — 3D COVERFLOW ═════════════════════════════ */
.space {
  padding:7rem 0 5rem;
  background:var(--bg);
  position:relative;
  overflow:hidden;
}
.space::before {
  content:'';
  position:absolute; top:0; left:10%; right:10%;
  height:1px;
  background:linear-gradient(to right,transparent,var(--gold-dim),transparent);
}
.coverflow-wrap {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  padding:2rem 1rem;
}
.coverflow {
  position:relative;
  width:min(700px,85vw);
  height:min(420px,56vw);
  perspective:1400px;
  transform-style:preserve-3d;
}
.cf-slide {
  position:absolute; inset:0;
  backface-visibility:hidden;
  transition:transform .6s cubic-bezier(.16,1,.3,1), opacity .6s ease, filter .6s ease;
  overflow:hidden;
  border:1px solid rgba(201,168,76,.1);
}
.cf-slide img {
  width:100%; height:100%;
  object-fit:cover;
  pointer-events:none;
}
.cf-caption {
  position:absolute; bottom:1.5rem; left:1.8rem; right:1.8rem;
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:clamp(.95rem,2vw,1.3rem);
  color:var(--cream);
  text-shadow:0 2px 20px rgba(0,0,0,.9);
  opacity:0;
  transform:translateY(8px);
  transition:opacity .4s, transform .4s;
}
.cf-slide.cf-active .cf-caption { opacity:1; transform:none; }

/* States assigned by JS */
.cf-slide[data-state="active"] {
  transform:translateX(0) translateZ(0) rotateY(0) scale(1);
  opacity:1; filter:brightness(1);
  z-index:5;
}
.cf-slide[data-state="prev1"] {
  transform:translateX(-60%) translateZ(-200px) rotateY(35deg) scale(.82);
  opacity:.65; filter:brightness(.55);
  z-index:3;
}
.cf-slide[data-state="prev2"] {
  transform:translateX(-90%) translateZ(-400px) rotateY(45deg) scale(.65);
  opacity:.3; filter:brightness(.35);
  z-index:1;
}
.cf-slide[data-state="next1"] {
  transform:translateX(60%) translateZ(-200px) rotateY(-35deg) scale(.82);
  opacity:.65; filter:brightness(.55);
  z-index:3;
}
.cf-slide[data-state="next2"] {
  transform:translateX(90%) translateZ(-400px) rotateY(-45deg) scale(.65);
  opacity:.3; filter:brightness(.35);
  z-index:1;
}
.cf-slide[data-state="hidden"] {
  transform:translateX(120%) translateZ(-500px) scale(.5);
  opacity:0; z-index:0;
}

.cf-arrow {
  background:none;
  border:1px solid var(--gold-dim);
  color:var(--gold);
  width:46px; height:46px;
  cursor:none;
  font-size:1.1rem;
  transition:background .25s, color .25s, border-color .25s;
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.cf-arrow:hover { background:var(--gold); color:var(--bg); border-color:var(--gold); }
.cf-dots {
  display:flex; justify-content:center; gap:.6rem;
  margin-top:2rem;
}
.cf-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--gold-dim); border:none;
  cursor:none; transition:background .25s, transform .25s;
}
.cf-dot.active { background:var(--gold); transform:scale(1.4); }

/* ═══ RESERVATIONS ════════════════════════════════════════ */
.table-section {
  position:relative;
  padding:9rem 2rem;
  overflow:hidden;
}
.table-bg {
  position:absolute; inset:0;
}
.table-bg img {
  width:100%; height:100%;
  object-fit:cover;
  filter:brightness(.28) contrast(1.1) saturate(.6);
}
.table-scrim {
  position:absolute; inset:0;
  background:rgba(0,0,0,.45);
}
.table-content {
  position:relative; z-index:2;
  max-width:700px; margin:0 auto;
}
.reservation-box {
  border:1px solid var(--gold-dim);
  padding:4rem;
  background:rgba(10,10,10,.75);
  backdrop-filter:blur(16px);
}
.reservation-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  font-weight:300;
  color:var(--cream);
  line-height:1.25;
  margin:1rem 0 1.8rem;
}
.reservation-title em { font-style:italic; color:var(--gold); }
.res-form { text-align:left; }
.res-row { display:flex; gap:1.5rem; margin-bottom:1.5rem; }
.res-row .res-field { flex:1; }
.res-field { margin-bottom:1.2rem; }
.res-field label {
  display:block;
  font-size:9px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-dim);
  margin-bottom:.45rem;
}
.res-field input,
.res-field select,
.res-field textarea {
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--gold-dim);
  color:var(--cream);
  font-family:'Jost',sans-serif;
  font-size:.95rem; font-weight:300;
  padding:.55rem 0;
  outline:none;
  transition:border-color .3s;
  -webkit-appearance:none;
  border-radius:0;
}
.res-field select { background:rgba(10,10,10,.8); cursor:none; }
.res-field select option { background:#111; }
.res-field input:focus,
.res-field select:focus,
.res-field textarea:focus { border-color:var(--gold); }
.res-field input::placeholder { color:rgba(242,235,217,.25); }
.res-note { font-size:.8rem; color:var(--muted); text-align:center; margin-top:1.2rem; opacity:.6; }
@media(max-width:600px) {
  .res-row { flex-direction:column; gap:0; }
  .reservation-box { padding:2.5rem 1.5rem; }
}

/* ═══ SANCTUM ══════════════════════════════════════════════ */
.sanctum {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:600px;
  background:var(--surface);
}
.sanctum-img {
  position:relative; overflow:hidden;
}
.sanctum-img img {
  width:100%; height:100%;
  object-fit:cover;
  filter:brightness(.55) saturate(.8);
  transition:transform .7s ease;
}
.sanctum:hover .sanctum-img img { transform:scale(1.04); }
.sanctum-content {
  display:flex; flex-direction:column;
  justify-content:center;
  padding:5rem 4rem;
}
.sanctum-content p { margin-bottom:2.5rem; }
@media(max-width:768px) {
  .sanctum { grid-template-columns:1fr; }
  .sanctum-img { min-height:280px; }
  .sanctum-content { padding:3rem 1.5rem; }
}

/* ═══ MODAL ════════════════════════════════════════════════ */
.modal {
  position:fixed; inset:0;
  display:flex; align-items:center; justify-content:center;
  z-index:2000;
  pointer-events:none; opacity:0;
  transition:opacity .3s;
}
.modal.open { pointer-events:auto; opacity:1; }
.modal-box {
  background:var(--elevated);
  border:1px solid var(--gold-dim);
  padding:3rem;
  max-width:480px; width:calc(100% - 2rem);
  position:relative;
  transform:translateY(24px) scale(.97);
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.modal.open .modal-box { transform:none; }
.modal-close {
  position:absolute; top:1rem; right:1rem;
  background:none; border:none;
  color:var(--muted); cursor:none;
  font-size:1rem; transition:color .2s;
}
.modal-close:hover { color:var(--gold); }
.modal-box h3 { font-family:'Cinzel',serif; font-size:1.3rem; color:var(--cream); margin-bottom:.7rem; }
.modal-veil {
  position:fixed; inset:0;
  background:rgba(0,0,0,.75);
  backdrop-filter:blur(6px);
  z-index:1900;
  opacity:0; pointer-events:none;
  transition:opacity .3s;
}
.modal-veil.open { opacity:1; pointer-events:auto; }

/* ═══ LOCATION ═════════════════════════════════════════════ */
.location { padding:7rem 0; background:var(--bg); }
.location-split {
  max-width:1200px; margin:0 auto;
  padding:0 2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5rem; align-items:center;
}
.location-address { margin:1.5rem 0 2rem; }
.location-address p {
  font-family:'Cormorant Garamond',serif;
  font-size:1.1rem; font-style:italic;
  color:var(--muted); margin-bottom:.3rem;
}
.hours {
  width:100%;
  border-collapse:collapse;
  margin-bottom:2.5rem;
}
.hours td {
  padding:.6rem 0;
  border-bottom:1px solid rgba(201,168,76,.08);
  font-size:.88rem;
}
.hours td:first-child { color:var(--muted); }
.hours td:last-child { font-family:'Cinzel',serif; font-size:.82rem; color:var(--cream); text-align:right; }
.social-row { display:flex; gap:1rem; }
.social-btn {
  width:42px; height:42px;
  border:1px solid rgba(201,168,76,.2);
  display:flex; align-items:center; justify-content:center;
  font-family:'Cinzel',serif; font-size:.75rem;
  color:var(--muted); text-decoration:none;
  cursor:none;
  transition:color .25s, border-color .25s, transform .25s;
}
.social-btn:hover { color:var(--gold); border-color:var(--gold); transform:scale(1.1); }
.map-frame {
  border:1px solid var(--gold-dim);
  padding-bottom:65%;
  position:relative;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(201,168,76,.08) 0%,transparent 65%),
    linear-gradient(160deg,#12100D 0%,#0A0A0A 100%);
}
.map-pin-wrap {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:.8rem;
}
.map-pin {
  width:14px; height:14px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 20px rgba(201,168,76,.7),0 0 50px rgba(201,168,76,.25);
  animation:pin-pulse 2s ease-in-out infinite;
}
@keyframes pin-pulse {
  0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,.5);}
  50%{box-shadow:0 0 0 14px rgba(201,168,76,0);}
}
.map-pin-wrap p { font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dim); }
@media(max-width:768px) {
  .location-split { grid-template-columns:1fr; gap:3rem; }
}

/* ═══ FOOTER ═══════════════════════════════════════════════ */
.footer { background:var(--surface); padding:5rem 2rem 3rem; text-align:center; }
.footer-rule {
  height:1px;
  background:linear-gradient(to right,transparent,var(--gold),transparent);
  margin-bottom:4rem;
}
.footer-core { max-width:900px; margin:0 auto; }
.footer-brand { margin-bottom:2.5rem; }
.footer-logo-text {
  font-family:'Cinzel',serif;
  font-size:clamp(2rem,5vw,3.5rem);
  letter-spacing:.2em;
  background:linear-gradient(135deg,var(--gold-dim) 0%,var(--gold-light) 50%,var(--gold-dim) 100%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer 4s linear infinite;
}
@keyframes shimmer {
  to { background-position:200% center; }
}
.footer-tagline {
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:1.1rem;
  color:var(--gold-dim);
  margin-top:.5rem;
}
.footer-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 2rem; margin-bottom:2.5rem; }
.footer-nav a { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .25s; }
.footer-nav a:hover { color:var(--gold); }
.footer-copy { font-size:.78rem; color:rgba(168,152,128,.4); }

/* ═══ BACK TO TOP ══════════════════════════════════════════ */
.btt {
  position:fixed; bottom:2rem; right:2rem;
  width:46px; height:46px;
  border:1px solid var(--gold-dim);
  background:rgba(10,10,10,.8);
  color:var(--gold);
  font-size:1rem;
  cursor:none; z-index:500;
  opacity:0; pointer-events:none;
  transition:opacity .3s, transform .25s, border-color .25s;
}
.btt.show { opacity:1; pointer-events:auto; }
.btt:hover { border-color:var(--gold); transform:translateY(-3px); }
