




:root { --background:#100e0c; --foreground:#f2e8d7; --card:#191511; --card-foreground:#f2e8d7; --popover:#191511; --popover-foreground:#f2e8d7; --primary:#bd7440; --primary-foreground:#fff6e7; --secondary:#f2e8d7; --secondary-foreground:#100e0c; --muted:#25201b; --muted-foreground:#c3b6a3; --accent:#c77d45; --accent-foreground:#100e0c; --border:#6a4b34; --input:#6a4b34; --ring:#dfa86b; --radius:0; --serif:"Italiana",Georgia,serif; --sans:"DM Sans",Arial,sans-serif; }

* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--background); color:var(--foreground); font:400 16px/1.6 var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; }
button,a { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible { outline:2px solid #e4ad78; outline-offset:7px; }
::selection { background:#c77d45; color:#100e0c; }
.page-gutter { padding-inline:5.5vw; }
.skip-link { position:fixed; top:12px; left:12px; z-index:100; background:var(--foreground); color:var(--background); padding:12px 20px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.hero { isolation:isolate; position:relative; min-height:760px; height:100svh; max-height:1100px; overflow:hidden; background:#080807; }
.site-header { position:relative; z-index:3; display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:34px; }
.wordmark { display:inline-block; font-family:var(--serif); font-size:36px; line-height:1.1; letter-spacing:.26em; color:#c77d45; }
.site-header nav { display:flex; gap:48px; align-items:center; }
.site-header nav a { font-family:var(--serif); font-size:22px; position:relative; display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
.site-header nav a::after { content:""; position:absolute; bottom:-5px; left:0; height:1px; width:0; background:#c77d45; transition:width .25s ease; }
.site-header nav a:hover::after { width:100%; }
.espresso-scene { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.espresso-video,.espresso-poster { position:absolute; width:100%; height:100%; object-fit:cover; object-position:70% center; transform:scale(1.22); transform-origin:72% 64%; }
.espresso-video { transition:opacity .6s ease; }
.is-hidden { opacity:0; }
.hero-copy { position:relative; z-index:2; padding-top:clamp(126px,16vh,195px); pointer-events:none; }
.hero h1 { margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(70px,6.65vw,108px); line-height:1.07; letter-spacing:-.035em; }
.hero h1 span { display:block; }
.hero-copy p { font-family:var(--serif); font-size:clamp(21px,1.85vw,29px); margin:32px 0 38px; max-width:770px; line-height:1.45; }
.mobile-break { display:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:30px; min-height:64px; padding:18px 28px; font-family:var(--serif); font-size:25px; line-height:1.25; transition:background .25s ease,transform .25s ease; pointer-events:auto; }
.button svg { width:25px; height:25px; stroke-width:1.2; flex-shrink:0; transition:transform .25s ease; }
.button:hover svg { transform:translateX(4px); }
.button-copper { background:#ae6734; color:#fff5e6; }
.button-copper:hover { background:#955729; }
.hero-bottom { position:absolute; bottom:36px; width:100%; display:flex; justify-content:center; }
.demo-note { display:flex; align-items:center; gap:20px; font-family:var(--serif); font-size:17px; letter-spacing:.025em; color:#e1d0b7; }
.demo-note>span { width:35px; height:1px; background:#8b6e50; }
.motion-toggle { position:absolute; z-index:4; bottom:28px; right:5.5vw; display:flex; align-items:center; justify-content:center; gap:9px; background:#100e0c99; border:1px solid #b1947059; border-radius:30px; min-height:44px; padding:10px 15px; font-size:13px; }
.motion-toggle svg { width:15px; height:15px; }
.motion-toggle:hover { background:#312318; }
.menu-section { isolation:isolate; position:relative; overflow:hidden; background:#f2e8d7; color:#17100b; padding:40px 0 65px; min-height:690px; }
.menu-topline { display:flex; justify-content:space-between; align-items:center; position:relative; z-index:2; }
.menu-topline .wordmark { font-size:30px; color:#995528; }
.menu-topline p { margin:0; font-size:12px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:#965027; }
.menu-content { position:relative; z-index:2; }
h2 { font-family:var(--serif); font-weight:400; margin:0; line-height:1.08; letter-spacing:-.035em; }
.menu-content h2 { font-size:clamp(56px,6.1vw,94px); margin:32px 0 34px; }
.copper-dot { color:#bc733e; }
.menu-list { width:48%; max-width:640px; margin:0; }
.menu-row { display:flex; justify-content:space-between; align-items:baseline; gap:20px; border-bottom:1px solid #bf824b72; padding:10px 4px; font-family:var(--serif); font-size:29px; line-height:1.4; }
.menu-row:last-child { border-bottom:0; }
.menu-row dd { margin:0; white-space:nowrap; font-variant-numeric:tabular-nums; }
.example-note { font-size:13px; margin-top:22px; color:#73573f; }
.menu-image { position:absolute; right:0; bottom:0; width:58%; height:83%; z-index:-1; mask-image:linear-gradient(to right,transparent 0%,#000 25%); }
.menu-image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.visit-section { position:relative; overflow:hidden; isolation:isolate; background:#100e0c; }
.visit-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:75% center; z-index:-2; }
.visit-section::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#100e0cf0 0%,#100e0cce 37%,#100e0c15 76%,#100e0c05); }
.visit-content { padding-top:65px; padding-bottom:38px; }
.visit-content h2 { font-size:clamp(48px,4.6vw,76px); max-width:1000px; margin-bottom:38px; }
.opening-hours { width:360px; max-width:100%; }
.opening-hours h3 { margin:0 0 14px; font-size:12px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:#dfa272; }
.opening-hours dl { margin:0; font-family:var(--serif); font-size:24px; }
.opening-hours dl>div { display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid #785936; padding:7px 0; }
.opening-hours dd { margin:0; }
.visit-cta { border-radius:99px; margin-top:30px; font-size:22px; min-height:60px; }
.fiction-note { max-width:790px; font-family:var(--serif); font-size:17px; color:#e4cbb0; margin:26px 0 6px; }
.location-note { margin:0; font-size:13px; color:#bfa990; }
.site-footer { display:flex; align-items:center; gap:24px; padding-top:26px; padding-bottom:28px; position:relative; }
.site-footer::before { content:""; position:absolute; top:0; left:5.5vw; right:5.5vw; height:1px; background:#886744; }
.site-footer .wordmark { font-size:23px; }
.footer-line { flex:1; height:1px; background:#785936; }
.site-footer>a:last-child { font-size:12px; letter-spacing:.16em; color:#d59a66; }
@media(min-width:1600px) { .hero-copy { padding-top:175px; } }
@media(max-width:1100px) and (min-width:701px) { .hero { min-height:720px; } .hero-copy { padding-top:150px; } .hero h1 { font-size:7vw; } .hero-copy p { max-width:500px; font-size:23px; } .button { font-size:23px; } .espresso-video,.espresso-poster { object-position:60% center; } .menu-row { font-size:25px; } .menu-section { min-height:640px; } .menu-content h2 { font-size:6.5vw; } }
@media(max-width:700px) {
  .page-gutter { padding-inline:24px; }
  .hero { min-height:860px; height:100svh; max-height:1000px; }
  .site-header { padding-top:26px; gap:12px; }
  .wordmark { font-size:26px; letter-spacing:.22em; }
  .site-header nav { gap:17px; }
  .site-header nav a { font-family:var(--sans); font-size:13px; white-space:nowrap; }
  .hero-copy { padding-top:62px; }
  .hero h1 { font-size:clamp(45px,11.3vw,74px); max-width:610px; line-height:1.12; letter-spacing:-.035em; }
  .hero h1 span:last-child { max-width:540px; }
  .hero-copy p { margin:22px 0 25px; font-size:21px; line-height:1.45; max-width:420px; }
  .mobile-break { display:initial; }
  .button { min-height:55px; padding:15px 23px; font-size:21px; gap:27px; }
  .button svg { width:21px; height:21px; }
  .espresso-scene { top:280px; bottom:45px; }
  .espresso-video,.espresso-poster { object-position:78% bottom; transform:scale(1.04); transform-origin:75% bottom; }
  .hero-bottom { bottom:23px; justify-content:flex-start; }
  .demo-note { font-family:var(--sans); font-size:11px; gap:0; letter-spacing:0; }
  .demo-note>span { display:none; }
  .motion-toggle { right:24px; bottom:13px; font-size:12px; padding:9px 11px; }
  .motion-toggle svg { width:13px; height:13px; }
  .menu-section { padding:32px 0 0; }
  .menu-topline .wordmark { font-size:23px; }
  .menu-topline p { font-size:10px; letter-spacing:.14em; max-width:180px; text-align:right; }
  .menu-content h2 { font-size:clamp(44px,10.4vw,64px); margin:30px 0 27px; max-width:560px; overflow-wrap:break-word; }
  .menu-list { width:100%; max-width:100%; }
  .menu-row { font-size:26px; padding:11px 0; }
  .example-note { font-size:12px; max-width:260px; margin:22px 0 26px; }
  .menu-image { position:relative; width:100%; height:310px; z-index:0; mask-image:none; margin-top:0; }
  .menu-image img { object-position:center 60%; }
  .visit-content { padding-top:45px; padding-bottom:32px; }
  .visit-content h2 { font-size:48px; max-width:450px; margin-bottom:32px; }
  .opening-hours { width:290px; }
  .opening-hours h3 { font-size:12px; letter-spacing:.16em; }
  .opening-hours dl { font-size:24px; }
  .visit-section::before { background:linear-gradient(90deg,#100e0ced 0%,#100e0ccf 55%,#100e0c75); }
  .visit-image { object-position:65% center; }
  .visit-cta { font-size:19px; gap:16px; padding:16px 22px; }
  .fiction-note { margin-top:28px; font-size:17px; max-width:390px; }
  .location-note { max-width:310px; font-size:12px; }
  .site-footer { gap:17px; padding-top:23px; padding-bottom:25px; }
  .site-footer::before { left:24px; right:24px; }
  .site-footer .wordmark { font-size:20px; }
  .site-footer>a:last-child { font-size:11px; letter-spacing:.08em; }
}
@media(max-width:370px) { .page-gutter { padding-inline:18px; } .site-header nav { gap:12px; } .site-header nav a { font-size:12px; } .wordmark { font-size:24px; } .hero h1 { font-size:43px; } .demo-note { max-width:220px; font-size:10px; } .hero-copy p { font-size:19px; } .visit-cta { font-size:17px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }


.hero h1,h2 { font-family:"Bodoni Moda",Georgia,serif; font-weight:500; }
.hero h1 { font-size:clamp(70px,6.45vw,104px); }
.hero-copy p,.site-header nav a,.button,.demo-note,.menu-row,.opening-hours dl,.fiction-note { font-family:Georgia,"Times New Roman",serif; }
.hero-copy p { font-size:clamp(20px,1.65vw,27px); }
.espresso-video,.espresso-poster { object-position:82% center; transform:scale(1.15); }
.visit-content h2 { font-size:clamp(48px,4.4vw,74px); }
@media(max-width:700px) {
 .hero h1 { font-size:clamp(44px,10.9vw,72px); }
 .site-header nav a { font-family:var(--sans); font-size:14px; }
 .hero-copy p { font-size:18px; }
 .espresso-video,.espresso-poster { object-position:78% bottom; transform:scale(1.04); }
 .demo-note { font-family:var(--sans); font-size:12px; max-width:230px; }
 .motion-toggle { font-size:12px; }
 .visit-content h2 { font-size:46px; }
 .menu-topline p { font-size:12px; letter-spacing:.08em; }
 .site-footer>a:last-child { font-size:12px; }
}
@media(max-width:370px) { .hero h1 { font-size:41px; } .site-header nav a { font-size:13px; } .demo-note { max-width:200px; font-size:12px; } }
@media(min-width:701px) {
 .menu-image { width:52%; mask-image:linear-gradient(to right,transparent,#000 24%),linear-gradient(to bottom,transparent,#000 17%); mask-composite:intersect; }
 .visit-image { object-position:75% 20%; }
 .visit-section::before { background:linear-gradient(90deg,#100e0c80,transparent 65%); }
}
@media(max-width:700px) {
 .espresso-scene { top:330px; mask-image:linear-gradient(to bottom,transparent,#000 75px); }
 .espresso-video,.espresso-poster { object-position:91% bottom; }
}
.opening-hours h3 { font-size:14px; }
@media(max-width:700px) { .menu-content h2 { font-size:clamp(28px,9.1vw,60px); overflow-wrap:normal; } }

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
