@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Bodoni+Moda:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');

:root { --coal:#171613; --ink:#24221e; --cream:#eee7d8; --muted:#b0a89a; --ember:#db713e; --wine:#542520; --line:rgba(238,231,216,.2); --display:'Bodoni Moda',Georgia,serif; --sans:'Barlow',Arial,sans-serif; --width:1280px; }
* { box-sizing:border-box; }
body { margin:0; background:var(--coal); color:var(--cream); font-family:var(--sans); line-height:1.6; }
html { scroll-behavior:smooth; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
h1,h2,h3,p { margin:0; }
h1,h2 { font-family:var(--display); font-weight:500; line-height:1.03; letter-spacing:-.045em; }
h2 { font-size:clamp(2.6rem,4.8vw,5rem); }
em { font-weight:500; color:var(--ember); }
::selection { background:var(--ember); color:var(--coal); }
:focus-visible { outline:2px solid var(--ember); outline-offset:6px; }
section[id] { scroll-margin-top:24px; }
.wrap { width:min(calc(100% - 112px),var(--width)); margin-inline:auto; }
.section { padding-block:110px; }
.skip-link { position:fixed; top:12px; left:12px; z-index:20; padding:12px 20px; background:var(--cream); color:var(--coal); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.concept-bar { padding:9px 32px; display:flex; justify-content:space-between; gap:20px; background:#0e0e0c; color:var(--muted); font-size:.72rem; }
.concept-bar a { color:var(--cream); }
.site-header { position:absolute; inset:auto 0; z-index:10; padding:24px 56px; display:flex; align-items:center; justify-content:space-between; gap:30px; border-bottom:1px solid var(--line); }
.wordmark { font-family:var(--display); font-size:2rem; line-height:1; letter-spacing:.06em; display:inline-flex; flex-direction:column; }
.wordmark span { font:500 .6rem var(--sans); letter-spacing:.48em; margin-top:9px; }
#restaurant-nav { display:flex; align-items:center; gap:34px; font-size:.85rem; }
#restaurant-nav a { transition:color .2s; }
#restaurant-nav a:hover { color:var(--ember); }
.nav-reserve { border-bottom:1px solid var(--ember); padding-bottom:6px; }
.menu-toggle { display:none; }
.hero { min-height:max(850px,calc(100svh - 36px)); position:relative; display:flex; align-items:center; padding:155px 56px 110px; isolation:isolate; overflow:hidden; }
.hero-image { position:absolute!important; inset:0; z-index:-2; }
.hero-image::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#171613 2%,#171613df 25%,transparent 75%),linear-gradient(0deg,#171613,transparent 40%); }
.hero-copy { width:min(100%,1280px); margin-inline:auto; }
.eyebrow { font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ember); }
.hero h1 { margin-top:26px; font-size:clamp(5rem,8vw,9rem); line-height:.94; }
.hero h1 em { color:var(--cream); }
.hero-description { margin-top:30px; color:var(--muted); font-size:1.05rem; }
.hero-actions { display:flex; align-items:center; gap:32px; margin-top:34px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; padding:15px 25px; background:var(--ember); color:var(--coal); font-weight:600; font-size:.85rem; transition:background .25s,transform .25s; }
.button:hover { background:#eb905b; transform:translateY(-3px); }
.link-light { font-size:.85rem; border-bottom:1px solid var(--line); padding-block:8px; }
.link-light span { margin-left:16px; }
.hero-bottom { position:absolute; bottom:32px; left:56px; right:56px; display:flex; justify-content:space-between; gap:24px; color:var(--muted); font-size:.65rem; letter-spacing:.1em; }
.hero-image .image-caption { right:56px; left:auto; bottom:130px; }
.section-meta { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:18px; margin-bottom:55px; font-size:.7rem; letter-spacing:.1em; }
.section-meta span:first-child { color:var(--ember); }
.section-meta span:last-child { color:var(--muted); }
.story-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:90px; }
.story-copy p + p { margin-top:20px; }
.story-copy { color:var(--muted); max-width:440px; }
.text-link { display:inline-block; color:var(--cream); border-bottom:1px solid var(--ember); padding-bottom:5px; margin-top:26px; font-size:.83rem; transition:color .2s; }
.text-link:hover { color:var(--ember); }
.story-note { margin-top:65px; padding-left:25px; border-left:2px solid var(--ember); display:flex; align-items:center; gap:55px; }
.story-note span { color:var(--ember); font-size:.65rem; letter-spacing:.14em; }
.story-note p { font-family:var(--display); font-size:1.4rem; line-height:1.3; }
.signatures { background:#201e19; }
.heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; margin-bottom:48px; }
.heading-row > p { max-width:330px; color:var(--muted); }
.dish-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.photo-container { position:relative; overflow:hidden; background-color:#32271f; }
.image-caption { position:absolute; left:24px; bottom:20px; z-index:2; color:#e4c8a8; font-size:.6rem; letter-spacing:.16em; }
.dish .photo-container { aspect-ratio:4/5; transition:filter .4s; }
.dish:hover .photo-container { filter:brightness(1.12); }
.entree-image { background-color:#201c19; }
.appetizer-image { background-color:#201c19; }
.cocktail-image { background-color:#201c19; }
.dish-title { margin-top:22px; display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.dish h3 { font-family:var(--display); font-size:1.45rem; font-weight:500; }
.dish-title > span { font-size:.8rem; color:var(--ember); }
.dish > p { margin-top:8px; color:var(--muted); font-size:.85rem; }
.menu { color:var(--coal); background:var(--cream); width:100%; padding-inline:max(56px,calc((100% - 1280px)/2)); }
.menu .section-meta { border-color:#24221e33; }
.menu .section-meta span:last-child { color:#6b6256; }
.menu-intro { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:end; }
.menu-intro > div { max-width:440px; color:#62594c; }
.menu-note { margin-top:16px; font-size:.75rem; }
.menu-index { display:flex; flex-wrap:wrap; gap:28px; margin-top:45px; padding-block:18px; border-block:1px solid #24221e33; font-size:.8rem; }
.menu-index a:hover { color:#a44824; }
.menu-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px 90px; margin-top:55px; }
.menu-category h3 { font:500 2rem var(--display); border-bottom:1px solid #24221e33; padding-bottom:18px; }
.menu-category h3 > span { font:500 .7rem var(--sans); color:#a44824; margin-right:18px; }
dl { margin:0; }
.menu-category dl > div { padding-top:23px; }
.menu-category dt { display:flex; justify-content:space-between; gap:24px; font-size:1rem; font-weight:600; }
.menu-category dt span { font-weight:400; color:#89563d; }
.menu-category dd { margin:5px 28px 0 0; color:#6b6256; font-size:.85rem; }
.cocktails { grid-column:1/-1; }
.cocktails dl { display:grid; grid-template-columns:1fr 1fr; gap:0 90px; }
.philosophy { display:grid; grid-template-columns:1fr 1fr; background:var(--wine); }
.chef-image { min-height:670px; }
.philosophy-copy { padding:100px 11%; align-self:center; }
.philosophy h2 { margin-block:28px; }
.philosophy h2 em { color:#dfa475; }
.philosophy-copy > p:not(.eyebrow) { color:#d1b5a5; margin-top:18px; }
.signature { display:block; margin-top:35px; font-family:var(--display); font-style:italic; font-size:1.7rem; }
.gallery-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:28px; }
.interior-image,.bar-image { min-height:440px; }
.interior-image { background-color:#201c19; }
.bar-image { background-color:#201c19; }
.artwork-note { color:var(--muted); font-size:.7rem; margin-top:16px; }
.visit { background:#22211c; }
.visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:110px; }
.visit h2 { margin-top:25px; }
.fiction-note { max-width:370px; margin-top:30px; color:var(--muted); font-size:.85rem; }
.visit-details { display:grid; gap:35px; }
.visit-details h3 { font-size:.72rem; color:var(--ember); letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px; }
.visit-details p { font-size:1.15rem; }
.muted { font-size:.75rem; color:var(--muted); }
.hours > div { display:flex; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid var(--line); font-size:.9rem; }
.hours dd { margin:0; color:var(--muted); }
.reservations { text-align:center; display:flex; flex-direction:column; align-items:center; }
.reservations h2 { font-size:clamp(3rem,6vw,6.5rem); margin-top:30px; }
.reservations > p:not(.eyebrow) { max-width:560px; color:var(--muted); margin-top:30px; font-size:.9rem; }
.reservations .button { margin-top:30px; }
.site-footer { border-top:1px solid var(--line); padding-top:50px; }
.footer-top { display:grid; grid-template-columns:1fr 1fr 1fr; gap:50px; padding-bottom:50px; }
.footer-top > p { font:500 1.5rem/1.35 var(--display); color:var(--muted); }
.footer-top nav { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; font-size:.8rem; }
.footer-top nav a:hover { color:var(--ember); }
.footer-bottom { border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; padding-block:22px; font-size:.7rem; color:var(--muted); }
.reveal { opacity:0; transform:translateY(20px); transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }
@media (max-width:1050px) {
  .wrap { width:calc(100% - 64px); } .section { padding-block:85px; }
  .site-header { padding:22px 32px; } .menu-toggle { display:flex; flex-direction:column; gap:7px; padding:14px 4px; border:0; background:none; cursor:pointer; }
  .menu-toggle span { height:1px; width:27px; background:var(--cream); transition:transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }
  #restaurant-nav { display:none; position:absolute; top:100%; left:0; width:100%; padding:25px 32px; background:var(--coal); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:8px; }
  #restaurant-nav.mobile-open { display:flex; } #restaurant-nav a { padding:10px 0; }
  .hero { padding-inline:32px; min-height:max(800px,calc(100svh - 36px)); } .hero-bottom { left:32px; right:32px; }

  .story-grid,.menu-intro,.visit-grid { gap:45px; } .menu { width:100%; padding-inline:32px; }
  .menu-grid,.cocktails dl { column-gap:45px; } .dish-grid { gap:18px; } .dish h3 { font-size:1.2rem; }
  .philosophy-copy { padding:70px 35px; } .chef-image { min-height:620px; }
  .footer-top { gap:25px; } .footer-top nav { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .concept-bar { padding:9px 20px; font-size:.65rem; align-items:center; } .concept-bar span { max-width:210px; } .concept-bar a { white-space:nowrap; }
  .wrap { width:calc(100% - 40px); } .section { padding-block:65px; } .site-header { padding:20px; }
  .wordmark { font-size:1.7rem; } .hero { padding:155px 20px 110px; min-height:max(780px,calc(100svh - 52px)); }
  .hero h1 { font-size:clamp(3.7rem,12.5vw,6rem); } .hero-description { font-size:1rem; }
 .hero-image .image-caption { display:none; }
  .hero-bottom { left:20px; right:20px; font-size:.58rem; } .hero-bottom > span { max-width:190px; }
  .hero-actions { gap:22px; flex-wrap:wrap; } .section-meta { margin-bottom:35px; font-size:.6rem; }
  .story-grid,.menu-intro,.menu-grid,.visit-grid,.philosophy { grid-template-columns:1fr; gap:35px; }
  .story-copy { max-width:none; } .story-note { gap:24px; align-items:flex-start; flex-direction:column; margin-top:35px; }
  .heading-row { align-items:flex-start; flex-direction:column; gap:20px; margin-bottom:35px; }
  .heading-row .text-link { margin-top:0; } .heading-row > p { max-width:450px; }
  .dish-grid { grid-template-columns:1fr; gap:40px; } .dish .photo-container { aspect-ratio:5/4; } .dish h3 { font-size:1.5rem; }
  .menu { width:100%; padding-inline:20px; } .menu-index { gap:14px 25px; margin-top:30px; }
  .menu-grid { margin-top:35px; gap:40px; } .cocktails { grid-column:auto; } .cocktails dl { grid-template-columns:1fr; }
  .chef-image { min-height:420px; } .philosophy { gap:0; } .philosophy-copy { padding:60px 20px; }
  .gallery-grid { grid-template-columns:1fr; gap:20px; } .interior-image { min-height:340px; } .bar-image { min-height:280px; }
  .visit-grid { gap:45px; } .footer-top { grid-template-columns:1fr 1fr; gap:35px; } .footer-top nav { grid-column:1/-1; grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; gap:10px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; }
  .reveal { opacity:1; transform:none; }
}

/* Local photography: SVG viewports exclude collage borders without editing assets. */
.photo { position:absolute; inset:0; width:100%; height:100%; display:block; }
.photo-mobile { display:none; }
.photo-container:not(.hero-image)::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,rgba(14,12,10,.78),transparent 32%); }
@media (max-width:1050px) {
  .hero-image .photo { width:115%; left:-15%; }
}
@media (max-width:760px) {
  .hero-image .photo { width:150%; left:-50%; }
  .hero-image::after { background:linear-gradient(90deg,rgba(23,22,19,.9),rgba(23,22,19,.48)),linear-gradient(0deg,#171613,transparent 45%); }
  .appetizer-image .photo-desktop { display:none; }
  .appetizer-image .photo-mobile { display:block; }
}
