/* ============================================
   KATSUMI — REDESIGNED HOMEPAGE
   Brand colors strictly from brand book 2026
============================================= */
:root{
  --midnight:#0B0C0E;
  --midnight-2:#13151A;
  --crimson:#851D2D;
  --crimson-glow:#B22A3D;
  --merlot:#452136;
  --tidal:#0D2C3F;
  --tempura:#EDE1C5;
  --tempura-2:#D4C9AE;
  --line:rgba(237,225,197,0.12);
  --line-strong:rgba(237,225,197,0.22);
  --serif:'PT Serif', Georgia, serif;
  --display:'Bebas Neue', 'Barlow Condensed', sans-serif;
  --sub:'Barlow Condensed', 'Oswald', sans-serif;
  --jp:'Noto Serif JP', serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  margin:0;
  background:var(--midnight);
  color:var(--tempura);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
::selection{background:var(--crimson);color:var(--tempura);}

/* Film-grain overlay — sits above everything for cinematic feel */
body::before{
  content:"";
  position:fixed;inset:0;
  z-index:9999;
  pointer-events:none;
  opacity:.35;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .65 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ============================================
   NAV
============================================= */
.nav{
  position:fixed;top:0;left:0;right:0;
  z-index:200;
  padding:18px 36px;
  display:flex;align-items:center;justify-content:space-between;
  transition:background .35s ease, padding .35s ease, border-color .35s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(11,12,14,0.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  padding:14px 36px;
}
.nav__brand{
  font-family:var(--display);
  font-size:24px;
  letter-spacing:0;
  color:#fff;
}
.nav__brand .dot{color:var(--crimson-glow);}
.nav__logo{display:block;height:22px;width:auto;}
.nav__links{
  display:flex;gap:34px;align-items:center;
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--sub);
  font-weight:500;
  font-size:13px;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.nav__links a{
  position:relative;padding:6px 0;
  transition:color .25s;
}
.nav__links a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--crimson-glow);
  transition:right .35s ease;
}
.nav__links a:hover{color:#fff;}
.nav__links a:hover::after{right:0;}
.nav__cta{
  margin-left:auto;
  font-family:var(--sub);
  font-weight:600;
  font-size:12.5px;
  letter-spacing:.24em;
  text-transform:uppercase;
  padding:11px 22px;
  border:1px solid var(--tempura);
  color:var(--tempura);
  transition:background .25s, color .25s, border-color .25s;
}
.nav__cta:hover{background:var(--crimson);border-color:var(--crimson);color:#fff;}
.nav__mobile-reserve{display:none;} /* injected by JS; revealed only in the mobile burger menu */
.nav__burger{display:none;flex-direction:column;gap:5px;padding:8px;}
.nav__burger span{display:block;width:22px;height:1.5px;background:var(--tempura);}

/* ============================================
   HERO
============================================= */
.hero{
  position:relative;min-height:100vh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 36px 60px;
  overflow:hidden;
}
.hero__bg{
  position:absolute;inset:0;
  background:url('images/food-spread-hero.jpg') center 55% / cover no-repeat;
  filter:saturate(1.04) contrast(1.04);
  transform:scale(1.04);
  animation:slowZoom 22s ease-out forwards;
}
@keyframes slowZoom{ to{transform:scale(1);} }
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    /* Top-to-bottom: lighter top so food is visible, very heavy bottom for title legibility */
    linear-gradient(180deg, rgba(11,12,14,0.45) 0%, rgba(11,12,14,0.1) 22%, rgba(11,12,14,0.55) 65%, rgba(11,12,14,0.96) 100%),
    /* Left-side fade — extra darkening behind the title block */
    linear-gradient(90deg, rgba(11,12,14,0.55) 0%, rgba(11,12,14,0) 55%),
    /* Subtle vignette pulling focus toward the food in the upper-right */
    radial-gradient(80% 70% at 65% 35%, transparent 0%, rgba(11,12,14,0.45) 100%);
}
.hero__inner{position:relative;z-index:2;max-width:1500px;margin:0 auto;width:100%;}
.hero__eyebrow{
  font-family:var(--sub);
  font-weight:500;
  font-size:13px;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--tempura-2);
  display:flex;align-items:center;gap:14px;
  margin-bottom:28px;
  opacity:0;animation:fadeUp 1s ease .6s forwards;
}
.hero__eyebrow::before{
  content:"";display:inline-block;width:42px;height:1px;background:var(--crimson-glow);
}
.hero__title{
  font-family:var(--display);
  font-size:clamp(4rem, 14vw, 15rem);
  line-height:.85;
  letter-spacing:-0.01em;
  color:var(--tempura);
  margin:0;
  text-transform:uppercase;
  opacity:0;animation:fadeUp 1.1s ease .15s forwards;
}
.hero__title .accent{ color:var(--crimson-glow); display:inline-block;}
.hero__logo{
  display:block;
  width:clamp(300px, 50vw, 760px);
  height:auto;
  max-width:100%;
}
.hero__sub{
  display:flex;align-items:flex-end;justify-content:space-between;gap:30px;
  margin-top:32px;flex-wrap:wrap;
  opacity:0;animation:fadeUp 1s ease .85s forwards;
}
.hero__tag{
  font-family:var(--serif);
  font-style:italic;font-weight:400;
  font-size:clamp(1.1rem, 2.05vw, 1.6rem);
  color:var(--tempura);
  letter-spacing:.01em;
  max-width:48ch;
}
.hero__tag .kanji{
  font-family:var(--jp);
  font-style:normal;
  color:var(--crimson-glow);
  margin-right:10px;
  font-size:.78em;
  letter-spacing:.04em;
}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  font-family:var(--sub);
  font-weight:600;
  font-size:13px;
  letter-spacing:.26em;
  text-transform:uppercase;
  padding:16px 30px;
  display:inline-flex;align-items:center;gap:10px;
  transition:all .3s ease;
  border:1px solid transparent;
}
.btn--primary{background:var(--crimson);color:#fff;}
.btn--primary:hover{background:var(--crimson-glow);transform:translateY(-2px);}
.btn--ghost{border-color:var(--tempura);color:var(--tempura);}
.btn--ghost:hover{background:var(--tempura);color:var(--midnight);}
.btn .arrow{display:inline-block;transition:transform .3s;}
.btn:hover .arrow{transform:translateX(4px);}

/* Scroll cue */
.hero__scroll{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  font-family:var(--sub);font-size:11px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--tempura-2);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  opacity:0;animation:fadeUp 1s ease 1.2s forwards;
  z-index:3;
}
.hero__scroll::after{
  content:"";width:1px;height:36px;background:var(--tempura-2);
  animation:scrollLine 2s ease-in-out infinite;
  transform-origin:top;
}
@keyframes scrollLine{
  0%,100%{transform:scaleY(.4);opacity:.4;}
  50%{transform:scaleY(1);opacity:1;}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(28px);}
  to{opacity:1;transform:translateY(0);}
}

/* Side rotated tagline */
.side-rail{
  position:fixed;top:50%;left:14px;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:center;
  font-family:var(--sub);
  font-size:11px;
  letter-spacing:.5em;
  text-transform:uppercase;
  color:var(--tempura-2);
  opacity:.55;
  z-index:80;
  pointer-events:none;
  white-space:nowrap;
}
.side-rail--right{
  left:auto;right:14px;
  transform:translateY(-50%) rotate(90deg);
}

/* ============================================
   MANIFESTO — Hero + Body
============================================= */
.section{
  padding:120px 36px;
  position:relative;
}
.container{max-width:1280px;margin:0 auto;}
.section-label{
  font-family:var(--sub);
  font-weight:500;
  font-size:12px;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--crimson-glow);
  display:inline-flex;align-items:center;gap:14px;
  margin-bottom:34px;
}
.section-label::before{
  content:"";width:42px;height:1px;background:var(--crimson-glow);
}

/* === Manifesto full-bleed hero === */
.manifesto-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-start;
  padding:140px 36px 100px;
  overflow:hidden;
  background:var(--midnight);
}
.manifesto-hero__bg{
  position:absolute;inset:0;
  background:url('images/manifesto-hero.jpg') 0% 25% / cover no-repeat;
  filter:saturate(1.04) contrast(1.04);
  transform:scale(1.04);
  transition:transform 14s ease-out;
}
.manifesto-hero.is-in .manifesto-hero__bg{transform:scale(1);}
.manifesto-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    /* Mild top fade for nav/headline legibility */
    linear-gradient(180deg, rgba(11,12,14,0.55) 0%, rgba(11,12,14,0.15) 25%, rgba(11,12,14,0) 50%, rgba(11,12,14,0.4) 100%),
    /* Right-side darken behind the headline block */
    linear-gradient(90deg, rgba(11,12,14,0) 0%, rgba(11,12,14,0) 50%, rgba(11,12,14,0.35) 75%, rgba(11,12,14,0.7) 100%);
}
.manifesto-hero__inner{
  position:relative;z-index:2;
  max-width:1280px;
  margin:0 auto;
  width:100%;
  display:flex;
  justify-content:flex-end;
}
.manifesto-hero__content{
  max-width:560px;
  width:100%;
}
.manifesto-hero__title{
  font-family:var(--display);
  font-size:clamp(2.8rem, 7vw, 6.5rem);
  line-height:.88;
  text-transform:uppercase;
  letter-spacing:-.005em;
  margin:18px 0 24px;
  color:var(--tempura);
}
.manifesto-hero__title em{
  font-style:normal;
  color:var(--crimson-glow);
  font-family:var(--jp);
  font-size:.4em;
  display:block;
  letter-spacing:.06em;
  margin-top:18px;
  font-weight:700;
}
.manifesto-hero__caption{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.05rem, 1.55vw, 1.3rem);
  color:var(--tempura);
  margin:0;
  max-width:42ch;
  line-height:1.55;
  border-left:2px solid var(--crimson-glow);
  padding-left:20px;
}
.manifesto-hero__body{
  font-family:var(--serif);
  font-size:1rem;
  line-height:1.7;
  color:var(--tempura-2);
  margin:22px 0 0;
  max-width:48ch;
  padding-left:22px;
}
.manifesto-hero__scroll{
  position:absolute;
  bottom:30px;left:50%;transform:translateX(-50%);
  font-family:var(--sub);
  font-size:11px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--tempura-2);
  z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.manifesto-hero__scroll::after{
  content:"";width:1px;height:32px;background:var(--tempura-2);
  animation:scrollLine 2s ease-in-out infinite;
  transform-origin:top;
}

/* === Manifesto body (text + pillars below the hero) === */
.manifesto-body{background:var(--midnight);}
.manifesto-body__inner{
  display:grid;
  grid-template-columns:1.1fr 1.4fr;
  gap:80px;
  align-items:start;
}
.manifesto-body__copy p{
  font-size:1.12rem;
  line-height:1.75;
  color:var(--tempura);
  margin:0 0 1.4em;
}
.manifesto-body__copy p.lead{
  font-size:1.5rem;
  font-style:italic;
  line-height:1.55;
  color:var(--tempura);
  letter-spacing:.005em;
  margin-bottom:1.8em;
  font-family:var(--serif);
}
.pillars{
  display:grid;grid-template-columns:1fr;
  gap:34px;
  padding-left:40px;
  border-left:1px solid var(--line-strong);
}
.pillar h4{
  font-family:var(--display);
  font-size:1.7rem;
  letter-spacing:.04em;
  margin:0 0 6px;
  text-transform:uppercase;
  color:var(--tempura);
}
.pillar .pillar__jp{
  font-family:var(--jp);
  font-size:.95rem;
  color:var(--crimson-glow);
  display:block;
  margin-bottom:14px;
}
.pillar p{font-size:.97rem;line-height:1.6;color:var(--tempura-2);margin:0;}

/* ============================================
   MENU
============================================= */
.menu{background:linear-gradient(180deg, var(--midnight) 0%, #0F1115 100%);}
.menu__head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:40px;
  flex-wrap:wrap;margin-bottom:64px;
}
.menu__title{
  font-family:var(--display);
  font-size:clamp(3rem, 9vw, 8rem);
  line-height:.85;
  text-transform:uppercase;
  margin:0;
  color:var(--tempura);
}
.menu__sub{
  font-family:var(--serif);font-style:italic;
  font-size:1.05rem;color:var(--tempura-2);
  max-width:36ch;margin:0;
}
.menu-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
}
.dish{
  position:relative;
  display:flex;flex-direction:column;
  background:var(--midnight-2);
  border:1px solid var(--line);
  overflow:hidden;
  transition:transform .5s ease, border-color .5s ease;
}
.dish:hover{transform:translateY(-4px);border-color:var(--line-strong);}
.dish__media{
  position:relative;aspect-ratio:4/5;overflow:hidden;
}
.dish__media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.4s cubic-bezier(.2,.8,.2,1), filter .5s;
  filter:saturate(1.05);
}
.dish:hover .dish__media img{transform:scale(1.06);}
.dish__body{
  padding:26px 26px 30px;
  display:flex;flex-direction:column;gap:10px;
  flex:1;
}
.dish__cat{
  font-family:var(--sub);font-size:11px;
  letter-spacing:.36em;text-transform:uppercase;
  color:var(--crimson-glow);
}
.dish__name{
  font-family:var(--display);
  font-size:1.7rem;line-height:1.05;text-transform:uppercase;
  margin:0;letter-spacing:.01em;
  color:var(--tempura);
}
.dish__desc{
  font-family:var(--serif);font-style:italic;
  font-size:.95rem;line-height:1.55;
  color:var(--tempura-2);margin:0;flex:1;
}
.dish__price{
  font-family:var(--sub);font-weight:600;
  font-size:14px;letter-spacing:.18em;
  color:var(--tempura);
  border-top:1px solid var(--line);
  padding-top:14px;margin-top:10px;
  display:flex;justify-content:space-between;align-items:center;
}
.dish__price small{
  font-family:var(--serif);font-style:italic;
  font-weight:400;font-size:11px;
  letter-spacing:.04em;color:var(--tempura-2);
  text-transform:none;
}
/* Grid placement for editorial feel */
.dish:nth-child(1){grid-column:span 5;}
.dish:nth-child(2){grid-column:span 4;}
.dish:nth-child(3){grid-column:span 3;}
.dish:nth-child(4){grid-column:span 4;}
.dish:nth-child(5){grid-column:span 4;}
.dish:nth-child(6){grid-column:span 4;}
.menu__cta{
  margin-top:60px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:18px;
}
.menu__cta p{font-family:var(--serif);font-style:italic;color:var(--tempura-2);margin:0;}

/* === Typographic Menu (tabs + columns + dot leaders) === */
.menu__tabs{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--line);
  margin:0 0 60px;
}
.menu__tab{
  font-family:var(--sub);
  font-weight:600;
  font-size:13px;
  letter-spacing:.32em;
  text-transform:uppercase;
  padding:18px 28px;
  color:var(--tempura-2);
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:color .25s ease, border-color .25s ease;
  background:transparent;
}
.menu__tab:hover{color:var(--tempura);}
.menu__tab.is-active{
  color:var(--tempura);
  border-bottom-color:var(--crimson-glow);
}
.menu__panel{display:none;}
.menu__panel.is-active{display:block;animation:menuFade .5s ease;}
@keyframes menuFade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.menu__columns{
  column-count:2;
  column-gap:90px;
  column-rule:1px solid var(--line);
}
.menu__category{
  break-inside:avoid-column;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  margin:0 0 60px;
  display:block;
}
.menu__cat-title{
  font-family:var(--display);
  font-size:2.1rem;
  line-height:1;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--crimson-glow);
  margin:0 0 6px;
}
.menu__cat-title .sep{margin:0 6px;color:var(--tempura-2);font-weight:400;}
.menu__category-note{
  font-family:var(--sub);
  font-size:11px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--tempura-2);
  margin:0 0 20px;
}
.menu__sub-title{
  font-family:var(--sub);
  font-weight:700;
  font-size:11.5px;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--tempura);
  margin:24px 0 14px;
  display:flex;
  align-items:baseline;
  gap:14px;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.menu__sub-title:first-of-type{margin-top:18px;}
.menu__sub-note{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:11.5px;
  letter-spacing:.02em;
  text-transform:none;
  color:var(--tempura-2);
}
.menu__items{
  list-style:none;
  margin:0 0 6px;
  padding:0;
}
.menu__items li{
  margin-bottom:12px;
  break-inside:avoid;
}
.menu__row{
  display:flex;
  align-items:baseline;
  gap:8px;
  width:100%;
}
.menu__name{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.02rem;
  color:var(--tempura);
  letter-spacing:.005em;
}
.menu__name sup{
  color:var(--crimson-glow);
  font-weight:400;
  margin-left:2px;
  font-size:.7em;
  top:-.5em;
}
.menu__name .menu__alt{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  color:var(--tempura-2);
  margin-left:8px;
  font-size:.95em;
}
.menu__alt-inline{
  font-family:var(--sub);
  font-style:normal;
  font-weight:500;
  font-size:10.5px;
  letter-spacing:.22em;
  color:var(--tempura-2);
  text-transform:uppercase;
  margin-left:8px;
}
.menu__name .tags{
  font-family:var(--sub);
  font-weight:600;
  font-size:9.5px;
  letter-spacing:.28em;
  color:var(--crimson-glow);
  margin-left:10px;
  text-transform:uppercase;
  white-space:nowrap;
}
.menu__dots{
  flex:1;
  border-bottom:1px dotted rgba(237,225,197,0.18);
  position:relative;
  top:-4px;
  margin:0 6px;
  min-width:18px;
}
.menu__price{
  font-family:var(--sub);
  font-weight:700;
  font-size:14.5px;
  letter-spacing:.06em;
  color:var(--tempura);
  white-space:nowrap;
}
.menu__desc{
  font-family:var(--serif);
  font-style:italic;
  font-size:.92rem;
  line-height:1.55;
  color:var(--tempura-2);
  margin:4px 0 0;
  max-width:48ch;
}
.menu__legend{
  margin:60px 0 14px;
  padding:18px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:var(--sub);
  font-size:10.5px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--tempura-2);
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  justify-content:center;
}
.menu__legend strong{color:var(--crimson-glow);font-weight:700;margin-right:6px;letter-spacing:.18em;}
.menu__legend sup{color:var(--crimson-glow);}

/* === Nomikai · Happy Hour === */
.hh{
  background:
    linear-gradient(180deg, rgba(13,44,63,0.32), rgba(11,12,14,0) 70%),
    var(--midnight);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.hh__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:40px;
  flex-wrap:wrap;
  margin:0 0 56px;
}
.hh__title{
  font-family:var(--display);
  font-size:clamp(3rem, 7vw, 5.5rem);
  line-height:.9;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--tempura);
  margin:6px 0 0;
}
.hh__lede{
  font-family:var(--serif);
  font-style:italic;
  color:var(--tempura-2);
  font-size:1.05rem;
  max-width:46ch;
  margin:18px 0 0;
}
.hh__when{
  text-align:right;
  flex-shrink:0;
  padding:14px 22px;
  border:1px solid var(--line-strong);
  border-radius:2px;
}
.hh__when-label{
  display:block;
  font-family:var(--sub);
  font-weight:700;
  font-size:11px;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--tempura-2);
}
.hh__when-time{
  display:block;
  font-family:var(--display);
  font-size:1.9rem;
  letter-spacing:.04em;
  color:var(--crimson-glow);
  margin-top:4px;
}
.hh__columns{
  column-count:2;
  column-gap:90px;
  column-rule:1px solid var(--line);
}

@media (max-width: 768px){
  .hh__columns{column-count:1;column-rule:none;}
  .hh__head{margin-bottom:40px;}
  .hh__when{text-align:left;}
}

@media (max-width: 768px){
  .menu__columns{column-count:1;column-rule:none;}
  .menu__tabs{flex-wrap:wrap;}
  .menu__tab{padding:14px 20px;font-size:11.5px;letter-spacing:.24em;flex:1;text-align:center;}
  .menu__cat-title{font-size:1.7rem;}
  .menu__legend{gap:14px;font-size:9.5px;letter-spacing:.18em;}
}

/* ============================================
   TEAM
============================================= */
.team{background:var(--midnight);}
.team__head{
  display:grid;grid-template-columns:1fr 1.2fr;gap:60px;
  align-items:end;margin-bottom:80px;
}
.team__title{
  font-family:var(--display);
  font-size:clamp(3rem, 8vw, 7rem);
  line-height:.88;text-transform:uppercase;
  margin:0;color:var(--tempura);
}
.team__intro{
  font-size:1.08rem;line-height:1.7;color:var(--tempura);
  font-style:italic;
  border-left:1px solid var(--crimson-glow);
  padding-left:24px;
}
.team__grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:36px;
  max-width:900px;
  margin:0 auto;
}
.member{
  position:relative;
  border-top:1px solid var(--line-strong);
  padding-top:32px;
  display:flex;flex-direction:column;gap:12px;
}
.member::before{
  content:"";position:absolute;top:-1px;left:0;width:60px;height:1px;
  background:var(--crimson-glow);
  transition:width .5s ease;
}
.member:hover::before{width:100%;}
.member__role{
  font-family:var(--sub);font-size:11px;
  letter-spacing:.4em;text-transform:uppercase;
  color:var(--crimson-glow);
}
.member__name{
  font-family:var(--display);
  font-size:2.1rem;line-height:1;text-transform:uppercase;
  margin:0;letter-spacing:.005em;color:var(--tempura);
}
.member__bio{
  font-family:var(--serif);font-size:.97rem;line-height:1.65;
  color:var(--tempura-2);margin:14px 0 0;
}

/* ============================================
   ROOM (Full-bleed hero)
============================================= */
.room-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  padding:0 36px 80px;
  overflow:hidden;
  background:var(--midnight);
}
.room-hero__bg{
  position:absolute;inset:0;
  background:url('images/room-night.jpg') center 55% / cover no-repeat;
  filter:saturate(1.02) contrast(1.04);
  transform:scale(1.04);
  transition:transform 12s ease-out;
}
.room-hero.is-in .room-hero__bg{transform:scale(1);}
.room-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(11,12,14,0.55) 0%, rgba(11,12,14,0.15) 30%, rgba(11,12,14,0.92) 95%),
    linear-gradient(90deg, rgba(11,12,14,0.55) 0%, rgba(11,12,14,0) 45%);
}
.room-hero__inner{
  position:relative;z-index:2;
  max-width:1280px;
  margin:0 auto;
  width:100%;
}
.room-hero__title{
  font-family:var(--display);
  font-size:clamp(3rem,9vw,8.5rem);
  line-height:.85;
  text-transform:uppercase;
  margin:18px 0 22px;
  color:var(--tempura);
  letter-spacing:-.005em;
  max-width:14ch;
}
.room-hero__title em{font-style:normal;color:var(--crimson-glow);}
.room-hero__caption{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.05rem, 1.6vw, 1.25rem);
  color:var(--tempura);
  margin:0;
  max-width:46ch;
  line-height:1.55;
}

/* ============================================
   VISIT
============================================= */
.visit{
  background:#0A0B0E;
  border-top:1px solid var(--line);
  padding-top:140px;padding-bottom:140px;
  position:relative;
}
.visit::before{
  content:"勝";
  font-family:var(--jp);
  font-weight:700;
  position:absolute;
  top:30px;right:-30px;
  font-size:36rem;
  line-height:1;
  color:var(--crimson);
  opacity:.04;
  pointer-events:none;
  user-select:none;
}
.visit__inner{position:relative;z-index:1;}
.visit__head{margin-bottom:80px;text-align:center;}
.visit__title{
  font-family:var(--display);
  font-size:clamp(3rem,10vw,9rem);
  line-height:.85;text-transform:uppercase;
  margin:0;color:var(--tempura);
}
.visit__sub{
  font-family:var(--serif);font-style:italic;
  font-size:1.15rem;color:var(--tempura-2);
  margin:14px 0 0;
}
.visit__grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:50px;
  margin-bottom:70px;
}
.info-block h5{
  font-family:var(--sub);font-weight:500;
  font-size:11.5px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--crimson-glow);margin:0 0 16px;
}
.info-block p, .info-block .line{
  font-family:var(--serif);font-size:1.02rem;
  line-height:1.7;color:var(--tempura);margin:0 0 4px;
}
.info-block .line strong{font-weight:700;letter-spacing:.04em;}
.info-block a{
  border-bottom:1px solid var(--line-strong);
  transition:border-color .3s, color .3s;
}
.info-block a:hover{color:var(--crimson-glow);border-color:var(--crimson-glow);}
.visit__cta{
  display:flex;justify-content:center;gap:18px;flex-wrap:wrap;
}

/* ============================================
   FOOTER
============================================= */
.footer{
  background:var(--midnight);
  border-top:1px solid var(--line);
  padding:60px 36px 40px;
  font-size:.92rem;
}
.footer__inner{
  max-width:1280px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:24px;
}
.footer__brand{
  font-family:var(--display);font-size:24px;
  letter-spacing:.2em;color:var(--tempura);
}
.footer__brand .jp{
  font-family:var(--jp);font-size:14px;color:var(--crimson-glow);
  margin-left:14px;letter-spacing:.04em;
}
.footer__logo{display:block;height:26px;width:auto;}
.footer__nav{
  display:flex;gap:26px;
  font-family:var(--sub);font-size:12px;
  letter-spacing:.28em;text-transform:uppercase;
}
.footer__nav a:hover{color:var(--crimson-glow);}
.footer__legal{
  margin-top:32px;padding-top:24px;
  border-top:1px solid var(--line);
  text-align:center;
  font-family:var(--sub);font-size:11px;
  letter-spacing:.32em;text-transform:uppercase;
  color:var(--tempura-2);
}

/* ============================================
   REVEAL animations on scroll
============================================= */
.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s ease, transform 1s ease;}
.reveal.is-in{opacity:1;transform:none;}
.reveal-stagger > * {opacity:0;transform:translateY(24px);transition:opacity .9s ease, transform .9s ease;}
.reveal-stagger.is-in > *{opacity:1;transform:none;}
.reveal-stagger.is-in > *:nth-child(2){transition-delay:.12s;}
.reveal-stagger.is-in > *:nth-child(3){transition-delay:.24s;}
.reveal-stagger.is-in > *:nth-child(4){transition-delay:.36s;}
.reveal-stagger.is-in > *:nth-child(5){transition-delay:.48s;}
.reveal-stagger.is-in > *:nth-child(6){transition-delay:.60s;}

/* ============================================
   RESPONSIVE
============================================= */
@media (max-width: 1024px){
  .nav__links{display:none;}
  .nav__links.is-open{
    display:flex; position:fixed; top:56px; left:0; right:0; transform:none;
    background:rgba(11,12,14,0.97); flex-direction:column; align-items:center;
    padding:30px 20px; gap:18px; border-bottom:1px solid rgba(237,225,197,0.15);
    z-index:199;
  }
  .nav__cta{display:none !important;}
  .nav__mobile-reserve{display:inline-flex;align-items:center;justify-content:center;}
  .nav__burger{display:flex;}
  .manifesto-body__inner{grid-template-columns:1fr;gap:40px;}
  .pillars{padding-left:0;border-left:none;border-top:1px solid var(--line-strong);padding-top:40px;}
  .manifesto-hero{padding:120px 24px 60px;min-height:90vh;align-items:flex-start;}
  .manifesto-hero__bg{background-position:0% 25%;}
  .manifesto-hero__inner{justify-content:flex-start;}
  .manifesto-hero__content{max-width:100%;}
  .manifesto-hero__bg::after{
    background:
      linear-gradient(180deg, rgba(11,12,14,0.7) 0%, rgba(11,12,14,0.25) 30%, rgba(11,12,14,0) 60%, rgba(11,12,14,0.55) 100%);
  }
  .menu-grid > .dish{grid-column:span 6 !important;}
  .team__head{grid-template-columns:1fr;gap:30px;}
  .team__grid{grid-template-columns:1fr;gap:50px;}
  .visit__grid{grid-template-columns:1fr;gap:40px;text-align:left;}
  .room-hero{padding:0 24px 60px;min-height:90vh;}
  .room-hero__bg::after{
    background:linear-gradient(180deg, rgba(11,12,14,0.5) 0%, rgba(11,12,14,0.3) 30%, rgba(11,12,14,0.95) 90%);
  }
  .side-rail{display:none;}
}
@media (max-width: 640px){
  body{font-size:16px;}
  .nav{padding:14px 20px;}
  .nav.scrolled{padding:12px 20px;}
  .nav__cta{padding:9px 16px;font-size:11px;}
  .hero{padding:0 20px 50px;}
  .hero__eyebrow{font-size:10px;letter-spacing:.2em;gap:10px;margin-bottom:20px;}
  .hero__eyebrow::before{width:24px;}
  .hero__tag{font-size:1.05rem;max-width:100%;}
  .hero__sub{flex-direction:column;align-items:flex-start;gap:20px;margin-top:20px;}
  .hero__actions{flex-direction:column;width:100%;gap:10px;}
  .hero__actions .btn{width:100%;text-align:center;justify-content:center;}
  .hero__scroll{display:none;}
  .section{padding:80px 20px;}
  .footer{padding:40px 20px 30px;}
  .menu-grid > .dish{grid-column:span 12 !important;}
  .room-hero{padding:0 20px 50px;min-height:80vh;}
  .room-hero__title{margin-top:12px;}
  .manifesto-hero{padding:100px 20px 60px;min-height:80vh;}
  .manifesto-hero__title{margin-top:12px;}
  .manifesto-hero__caption{font-size:1rem;padding-left:14px;}
  .footer__inner{flex-direction:column;text-align:center;gap:18px;}
  .visit::before{font-size:18rem;right:-50px;}
  .pillars{padding-top:32px;margin-top:40px;}
}


/* ============================================================
   EVENTS & INQUIRIES PAGE
   ============================================================ */

/* ---- HERO ---- */
.events-hero{
  position:relative;
  min-height:80vh;
  display:flex;
  align-items:flex-end;
  padding:160px 36px 100px;
  overflow:hidden;
  background:var(--midnight);
}
.events-hero__bg{
  position:absolute;inset:0;
  background:url('images/room-night.jpg') center 35% / cover no-repeat;
  filter:saturate(0.85) brightness(0.75);
  transform:scale(1.04);
  transition:transform 14s ease-out;
}
.events-hero.is-in .events-hero__bg{transform:scale(1);}
.events-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(11,12,14,0.55) 0%, rgba(11,12,14,0.15) 35%, rgba(11,12,14,0.95) 100%),
    radial-gradient(ellipse at 30% 80%, rgba(133,29,45,0.18) 0%, transparent 60%);
}
.events-hero__inner{
  position:relative;z-index:2;
  max-width:1280px;margin:0 auto;width:100%;
}
.events-hero__title{
  font-family:var(--display);
  font-size:clamp(3.5rem, 9vw, 8rem);
  line-height:0.88;
  color:var(--tempura);
  letter-spacing:-0.005em;
  margin:18px 0 28px;
}
.events-hero__lead{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.05rem, 1.5vw, 1.35rem);
  line-height:1.55;
  color:var(--tempura);
  max-width:580px;
  margin:0 0 36px;
  border-left:2px solid var(--crimson-glow);
  padding-left:18px;
}
.events-hero__ctas{display:flex;gap:16px;flex-wrap:wrap;}

/* ---- WHAT WE HOST ---- */
.offerings__head{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:60px;
  align-items:end;
  margin-bottom:80px;
}
.offerings__title{
  font-family:var(--display);
  font-size:clamp(2.4rem, 5.5vw, 5rem);
  line-height:0.92;
  color:var(--tempura);
  letter-spacing:-0.005em;
  margin:6px 0 0;
}
.offerings__intro{
  font-family:var(--serif);font-style:italic;
  font-size:18px;line-height:1.6;
  color:var(--tempura-2);
  margin:0;
  max-width:520px;
}
.offerings__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.offering-card{
  position:relative;
  border-top:1px solid var(--line-strong);
  padding:32px 26px 30px;
  background:linear-gradient(180deg, rgba(237,225,197,0.02) 0%, transparent 60%);
}
.offering-card__num{
  font-family:var(--sub);
  font-weight:600;
  font-size:11px;
  letter-spacing:.4em;
  color:var(--crimson-glow);
  margin-bottom:24px;
}
.offering-card__title{
  font-family:var(--display);
  font-size:36px;
  line-height:0.95;
  color:var(--tempura);
  letter-spacing:0.005em;
  margin:0 0 18px;
}
.offering-card__body{
  font-family:var(--serif);
  font-size:14.5px;
  line-height:1.7;
  color:var(--tempura);
  margin:0 0 22px;
}
.offering-card__tag{
  font-family:var(--sub);
  font-weight:600;
  font-size:11px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--tempura-2);
  padding-top:14px;
  border-top:1px solid var(--line);
}

/* ---- CAPACITY ---- */
.capacity{
  background:linear-gradient(180deg, var(--midnight) 0%, var(--midnight-2) 100%);
}
.capacity__head{
  text-align:center;
  margin-bottom:70px;
}
.capacity__head .section-label{justify-content:center;}
.capacity__title{
  font-family:var(--display);
  font-size:clamp(2.4rem, 5.5vw, 5rem);
  line-height:0.92;
  color:var(--tempura);
  letter-spacing:-0.005em;
  margin:6px 0 0;
}
.capacity__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:50px;
  max-width:980px;
  margin:0 auto;
}
.capacity__stat{
  text-align:center;
  padding-top:30px;
  border-top:1px solid var(--line-strong);
}
.capacity__num{
  font-family:var(--display);
  font-size:clamp(4rem, 8vw, 7rem);
  line-height:0.85;
  color:var(--crimson-glow);
  letter-spacing:-0.01em;
  margin-bottom:14px;
}
.capacity__label{
  font-family:var(--sub);
  font-weight:600;
  font-size:13px;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--tempura);
  margin-bottom:14px;
}
.capacity__note{
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  line-height:1.55;
  color:var(--tempura-2);
  margin:0;
}
.capacity__footnote{
  text-align:center;
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  color:var(--tempura-2);
  max-width:560px;
  margin:60px auto 0;
  line-height:1.6;
}

/* ---- HOW IT WORKS ---- */
.how__head{
  margin-bottom:60px;
}
.how__title{
  font-family:var(--display);
  font-size:clamp(2.4rem, 5.5vw, 5rem);
  line-height:0.92;
  color:var(--tempura);
  letter-spacing:-0.005em;
  margin:6px 0 0;
}
.how__steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:50px;
}
.how__step{
  position:relative;
}
.how__num{
  font-family:var(--display);
  font-size:64px;
  line-height:1;
  color:var(--crimson-glow);
  letter-spacing:-0.01em;
  margin-bottom:18px;
  opacity:0.7;
}
.how__step-title{
  font-family:var(--display);
  font-size:28px;
  color:var(--tempura);
  letter-spacing:0.005em;
  margin:0 0 14px;
}
.how__step p{
  font-family:var(--serif);
  font-size:15px;
  line-height:1.7;
  color:var(--tempura);
  margin:0;
}

/* ============================================================
   FORM
   ============================================================ */

.inquire{
  background:var(--midnight);
}
.inquire__head{
  text-align:center;
  margin-bottom:60px;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
.inquire__head .section-label{justify-content:center;}
.inquire__title{
  font-family:var(--display);
  font-size:clamp(2.4rem, 5.5vw, 5rem);
  line-height:0.92;
  color:var(--tempura);
  letter-spacing:-0.005em;
  margin:6px 0 28px;
}
.inquire__lead{
  font-family:var(--serif);
  font-style:italic;
  font-size:17px;
  line-height:1.6;
  color:var(--tempura);
  margin:0;
}
.inquire__hint{
  display:block;
  margin-top:14px;
  font-style:normal;
  font-family:var(--sub);
  font-size:11px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--tempura-2);
}
.inquire__direct{
  text-align:center;
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  color:var(--tempura-2);
  margin:50px auto 0;
}
.inquire__direct a{
  color:var(--tempura);
  text-decoration:none;
  border-bottom:1px solid var(--crimson-glow);
  padding-bottom:1px;
  transition:color .25s;
}
.inquire__direct a:hover{color:var(--crimson-glow);}

.form{
  max-width:880px;
  margin:0 auto;
}
.form__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:32px 28px;
  margin-bottom:32px;
}
.form__field{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.form__field--full{
  grid-column:1 / -1;
  margin-bottom:32px;
}
.form__label{
  font-family:var(--sub);
  font-weight:600;
  font-size:11px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--tempura-2);
}
.form__label .req{
  color:var(--crimson-glow);
  margin-left:2px;
}
.form__opt{
  letter-spacing:.18em;
  text-transform:none;
  font-weight:400;
  font-style:italic;
  color:var(--tempura-2);
  opacity:0.7;
}
.req{color:var(--crimson-glow);}

.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form input[type="number"],
.form input[type="date"],
.form select,
.form textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line-strong);
  padding:10px 0 12px;
  font-family:var(--serif);
  font-size:16px;
  color:var(--tempura);
  outline:none;
  transition:border-color .25s, color .25s;
  font-feature-settings:"tnum";
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;
}
.form input::placeholder,
.form textarea::placeholder{
  color:var(--tempura-2);
  opacity:0.55;
  font-style:italic;
}
.form input:focus,
.form select:focus,
.form textarea:focus{
  border-bottom-color:var(--crimson-glow);
}
.form input:invalid:not(:placeholder-shown){
  border-bottom-color:var(--crimson);
}

/* Custom select arrow */
.form select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23D4C9AE' stroke-width='1.5'/></svg>");
  background-repeat:no-repeat;
  background-position:right 4px center;
  background-size:12px 8px;
  padding-right:24px;
  cursor:pointer;
}
.form select:invalid,
.form select option[value=""]{
  color:var(--tempura-2);
}
.form select option{
  background:var(--midnight);
  color:var(--tempura);
}

.form textarea{
  resize:vertical;
  min-height:120px;
  line-height:1.6;
  font-style:italic;
  padding-top:14px;
}

/* Date input — strip the default browser chrome */
.form input[type="date"]::-webkit-calendar-picker-indicator{
  filter:invert(0.85) opacity(0.6);
  cursor:pointer;
}
.form input[type="number"]{
  -moz-appearance:textfield;
}
.form input[type="number"]::-webkit-outer-spin-button,
.form input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* Honeypot — hide visually but available to bots */
.form__honeypot{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}

.form__footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  flex-wrap:wrap;
  padding-top:8px;
  border-top:1px solid var(--line);
  padding-top:32px;
}
.form__submit{
  min-width:240px;
  justify-content:center;
}
.form__submit:disabled{
  opacity:0.55;
  cursor:not-allowed;
  pointer-events:none;
}

/* Status messages */
.form__status{
  margin-top:24px;
  text-align:center;
}
.form__status-success,
.form__status-error{
  display:inline-block;
  padding:16px 24px;
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  line-height:1.5;
  max-width:560px;
  border-left:2px solid var(--crimson-glow);
  text-align:left;
}
.form__status-success{
  background:rgba(182,42,61,0.08);
  color:var(--tempura);
}
.form__status-mark{
  color:var(--crimson-glow);
  font-weight:bold;
  margin-right:8px;
}
.form__status-error{
  background:rgba(133,29,45,0.15);
  border-left-color:var(--crimson);
  color:var(--tempura);
}

/* ============================================================
   RESPONSIVE — events page
   ============================================================ */
@media (max-width: 900px){
  .events-hero{padding:130px 24px 70px;min-height:70vh;}
  .events-hero__title{font-size:clamp(3rem, 14vw, 5.5rem);}
  .events-hero__ctas{flex-direction:column;align-items:flex-start;}
  .events-hero__ctas .btn{width:100%;justify-content:center;}

  .offerings__head{grid-template-columns:1fr;gap:24px;margin-bottom:50px;}
  .offerings__grid{grid-template-columns:1fr;gap:24px;}

  .capacity__grid{grid-template-columns:1fr;gap:40px;}
  .capacity__head{margin-bottom:50px;}

  .how__steps{grid-template-columns:1fr;gap:36px;}

  .form__grid{grid-template-columns:1fr;gap:26px;}
  .form__field--full{margin-bottom:26px;}
  .form__footer{flex-direction:column;}
  .form__submit{width:100%;}
}
