@charset "UTF-8";

/* BELVEDERE · Vino, luce e una bella serata. */
:root {
  --wine: #461622; --wine-light: #63283a; --gold: #f2cd7e; --paper: #fcf7ec;
  --bg: #461622; --surface: #39121d; --ink: #fcf7ec; --muted: #d7bac0;
  --line: rgba(252,247,236,.2); --accent: #f2cd7e; --button-ink: #461622;
  --menu-bg: #fcf7ec; --menu-ink: #461622; --menu-muted: #705c61;
  --serif: 'Bodoni Moda', 'Bodoni MT', Didot, 'Times New Roman', serif;
  --sans: 'DM Sans', Arial, sans-serif; --gutter: clamp(22px, 5vw, 88px);
  --header-height: 94px;
  color-scheme: dark;
}
:root[data-theme='day'] {
  --bg: #fcf7ec; --surface: #f3eadc; --ink: #461622; --muted: #705c61;
  --line: rgba(70,22,34,.22); --accent: #66263a; --button-ink: #fcf7ec;
  --menu-bg: #461622; --menu-ink: #fcf7ec; --menu-muted: #d7bac0;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--sans); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.scroll-locked { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, select { cursor: pointer; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
button { -webkit-appearance: none; }
img { max-width: 100%; display: block; }
figure, p, h1, h2, h3, dl, dd { margin: 0; }
button { border: 0; }
::selection { background: var(--gold); color: var(--wine); }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid currentColor; outline-offset: 6px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; top: 0; left: 20px; padding: 12px 20px; background: var(--gold); color: var(--wine); z-index: 200; transform: translateY(-120%); }
.skip-link:focus { transform: translateY(10px); }
.icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 24px; height: 24px; display: inline-block; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.icon-button { width: 44px; min-height: 44px; padding: 10px; display: grid; place-items: center; border: 1px solid transparent; border-radius: 50%; background: transparent; transition: background .2s, border-color .2s; }
.icon-button:hover { border-color: var(--line); background: var(--line); }
.button { min-height: 52px; display: inline-flex; justify-content: center; align-items: center; gap: 22px; padding: 14px 24px; background: var(--accent); color: var(--button-ink); border-radius: 3px; font-size: 0.875rem; font-weight: 600; line-height: 1.5; transition: background .2s, transform .25s, box-shadow .25s; }
.button:hover { transform: translateY(-3px); box-shadow: 0 8px 24px #0002; }
.button:hover .icon { transform: translate(2px,-2px); }
.button .icon { transition: transform .25s; }
.button:disabled { opacity: .6; cursor: wait; transform: none; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 26px; padding: 10px 0; border-bottom: 1px solid currentColor; font-size: 0.875rem; font-weight: 500; line-height: 1.5; }
.text-link .icon { width: 21px; transition: transform .25s; }
.text-link:hover .icon { transform: translateX(5px); }
.eyebrow, .section-label { font-size: 0.75rem; font-weight: 500; letter-spacing: .11em; line-height: 1.6; }
.section { padding: 96px var(--gutter); }
.section-label { display: flex; justify-content: space-between; gap: 24px; padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.section-label > :last-child { letter-spacing: .01em; font-size: 0.875rem; }
h2 { font-family: var(--serif); font-size: clamp(38px, 4.4vw, 72px); font-weight: 500; line-height: 1.17; letter-spacing: -.045em; }
h2 em { font-weight: 500; }
.reading-progress { position: fixed; inset: 0 auto auto 0; height: 3px; width: 100%; background: var(--gold); transform-origin: left; transform: scaleX(0); z-index: 120; }
.header { min-height: var(--header-height); padding: 15px var(--gutter); position: sticky; top: 0; z-index: 60; background: var(--bg); display: flex; align-items: center; justify-content: space-between; gap: 28px; border-bottom: 1px solid var(--line); transition: box-shadow .3s; }
.header.scrolled { box-shadow: 0 6px 30px #0002; }
.wordmark { font-family: var(--serif); font-size: 2.25rem; line-height: 1.05; letter-spacing: -.065em; font-weight: 600; flex-shrink: 0; }
.wordmark span { display: block; font-family: var(--sans); font-size: 0.75rem; letter-spacing: .15em; line-height: 1.5; margin-top: 7px; }
.wordmark { display:flex; align-items:center; width:194px; max-width:31vw; }
.brand-logo { display:block; width:100%; height:auto; aspect-ratio:97/33; object-fit:contain; flex:none; opacity:1; transform:none; }
.brand-logo-wine { display:none; }
:root[data-theme='day'] .brand-logo-gold { display:none; }
:root[data-theme='day'] .brand-logo-wine { display:block; }
.footer-brand { display:flex; justify-content:center; margin:64px auto 34px; }
.footer-brand img { width:min(650px,85vw); height:auto; }
.special-feature { display:grid; grid-template-columns:1.1fr 1fr; gap:6vw; align-items:center; background:var(--surface); border-bottom:1px solid var(--line); padding-top:65px; padding-bottom:65px; }
.special-feature.without-image { grid-template-columns:1fr; }
.special-copy { max-width:750px; }
.special-copy .eyebrow { color:var(--accent); }
.special-copy h2 { margin:20px 0; font-size:clamp(36px,4.1vw,66px); }
.special-copy > p { white-space:pre-line; color:var(--muted); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.special-meta { display:flex; gap:24px; flex-wrap:wrap; padding:20px 0; font-size:1rem; }
.special-meta span:empty { display:none; }
.special-feature > img { width:100%; height:370px; object-fit:cover; border-radius:2px; }
.special-dialog { width:min(760px,94vw); max-height:90svh; overflow:auto; padding:35px; border:1px solid var(--line); background:var(--bg); color:var(--ink); }
.special-dialog::backdrop { background:#16070cda; }
.special-dialog > .icon-button { float:right; font-size:2rem; }
.special-dialog h2 { font-size:clamp(30px,4vw,48px); margin:20px 0; }
.special-dialog > p { white-space:pre-line; margin-bottom:25px; }
.special-dialog > .button { margin-top:25px; }
.special-dialog .dish p { color:var(--muted); }
@media(max-width:700px) { .wordmark { width:165px; max-width:43vw; } .special-feature { grid-template-columns:1fr; gap:30px; } .special-feature > img { height:280px; } .special-dialog { padding:22px; } }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px,2.4vw,40px); }
.desktop-nav a { font-size: 0.875rem; position: relative; padding: 9px 0; }
.desktop-nav a::after { content: ''; position: absolute; bottom: 2px; left: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.desktop-nav a:hover::after, .desktop-nav a[aria-current='location']::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 8px; }
.language-control select { border: 0; color: var(--ink); background: var(--bg); padding: 9px 4px; min-height: 44px; font-size: 0.875rem; }
.header-reserve { margin-left: 12px; }
.mobile-toggle { display: none; position: relative; }
.mobile-toggle span { position: absolute; width: 22px; height: 1px; background: currentColor; transition: transform .2s; }
.mobile-toggle span:first-child { transform: translateY(-4px); }
.mobile-toggle span:last-child { transform: translateY(4px); }
.mobile-toggle[aria-expanded='true'] span:first-child { transform: rotate(45deg); }
.mobile-toggle[aria-expanded='true'] span:last-child { transform: rotate(-45deg); }
.mobile-nav { position: fixed; top: var(--header-height); bottom: 0; left: 0; right: 0; overflow-y: auto; padding: 35px var(--gutter); z-index: 59; background: var(--bg); }
.mobile-nav a { display: flex; align-items: baseline; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: clamp(26px,7vw,48px); line-height: 1.25; }
.mobile-nav a > :first-child { font-family: var(--sans); font-size: 0.75rem; color: var(--muted); }
.hero { position: relative; min-height: min(830px, calc(100svh - var(--header-height))); background: #26161a; color: var(--paper); overflow: hidden; }
.hero-image, .hero-shade { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; }
.hero-image { object-position: center 54%; transform: scale(1.06); animation: hero-arrive 1.8s cubic-bezier(.22,.61,.36,1) both; will-change: transform; }
.hero-shade { background: linear-gradient(180deg,rgba(35,13,21,.7),rgba(23,14,18,.2) 36%,rgba(28,9,18,.8)), linear-gradient(90deg,rgba(32,12,20,.43),transparent 75%); }
.hero-content { position: relative; min-height: inherit; padding: 32px var(--gutter) 44px; display: flex; flex-direction: column; }
.hero-eyebrow { display: flex; justify-content: space-between; gap: 24px; font-size: 0.75rem; letter-spacing: .15em; }
.hero-side-note { font-style: italic; font-size: 0.875rem; letter-spacing: 0; }
.hero h1 { font-family: var(--serif); font-size: clamp(72px, 15.2vw, 242px); font-weight: 500; letter-spacing: -.065em; line-height: 1.07; margin: 14px 0 16px -.01em; white-space: nowrap; animation: text-arrive 1.1s .12s both; }
.hero-period { color: var(--gold); }
.hero-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex: 1; padding: 15px 0 30px; animation: text-arrive 1.2s .3s both; }
.hero-script { font-family: var(--serif); font-size: clamp(34px,3.9vw,60px); line-height: 1.2; font-style: italic; letter-spacing: -.04em; margin-bottom: 16px; }
.hero-intro > p:not(.hero-script) { color: #f5e9e4; font-size: 1rem; line-height: 1.8; }
.hero-menu { margin-top: 22px; }
.reservation-orbit { width: 166px; aspect-ratio: 1; flex-shrink: 0; border-radius: 50%; background: var(--gold); color: var(--wine); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 9px; position: relative; transform: rotate(7deg); transition: transform .4s, background .3s; margin-right: 14px; margin-bottom: 12px; box-shadow: 0 6px 30px #0002; }
.reservation-orbit::after { content:''; position: absolute; inset:-9px; border:1px dashed #f2cd7e9c; border-radius: 50%; animation: orbit 36s linear infinite; }
.reservation-orbit .orbit-top { font-size: 0.75rem; letter-spacing: .06em; max-width: 88%; text-align: center; line-height: 1.35; }
.reservation-orbit .icon { width: 35px; height: 35px; stroke-width: 1.15; }
.reservation-orbit > :last-child { font-size: 0.8125rem; font-weight: 500; max-width: 90%; text-align: center; }
.reservation-orbit:hover { transform: rotate(-7deg) scale(1.04); background: #ffe0a0; }
.scroll-cue { display: flex; justify-content: space-between; align-items: center; padding-top: 20px; border-top: 1px solid #ffffff45; font-size: 0.75rem; letter-spacing: .05em; }
.scroll-cue span:last-child { font-size: 1.25rem; animation: down 2.5s infinite; }
.marquee { overflow: hidden; padding: 19px 0; background: var(--gold); color: var(--wine); }
.marquee-track { display: flex; width: max-content; animation: marquee 35s linear infinite; }
.marquee span { display: flex; gap: 34px; align-items: center; padding-right: 34px; white-space: nowrap; font-size: 0.8125rem; letter-spacing: .12em; }
.marquee b { font-size: 1.5rem; font-weight: 400; line-height: 1; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.about { padding-bottom: 70px; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; align-items: center; margin: 62px 0 50px; }
.about-copy h2 { margin-bottom: 28px; }
.about-copy > p:not(.about-signature) { max-width: 470px; color: var(--muted); line-height: 1.9; }
.about-signature { font-family: var(--serif); font-style: italic; color: var(--accent); font-size: 1.75rem; letter-spacing: -.035em; margin: 24px 0; }
.about-photos { position: relative; padding: 0 0 70px 70px; }
.about-main-photo { position: relative; }
.about-main-photo img { width: 100%; height: clamp(300px,36vw,535px); object-fit: cover; border-radius: 180px 180px 2px 2px; }
.about-main-photo figcaption { font-size: 0.75rem; padding: 10px 0; text-align: right; color: var(--muted); }
.about-food-photo { position: absolute; left: -15px; bottom: 0; width: 43%; padding: 8px 8px 14px; background: var(--gold); color: var(--wine); transform: rotate(-8deg); box-shadow: 4px 9px 30px #0003; }
.about-food-photo img { aspect-ratio: 4/5; width: 100%; height: auto; object-fit: cover; }
.about-food-photo figcaption { font-family: var(--serif); font-style: italic; font-size: 1.1875rem; padding-top: 6px; text-align: center; line-height: 1.3; }
.photo-word { position: absolute; right: -15px; bottom: 26px; font-family: var(--serif); font-style: italic; font-size: clamp(38px,5vw,70px); color: var(--accent); transform: rotate(-7deg); }
.notice { display: flex; align-items: baseline; gap: 35px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 22px 0; margin-top: 80px; }
.notice-label { flex-shrink: 0; font-size: 0.75rem; color: var(--accent); letter-spacing: .08em; }
.notice p { color: var(--muted); font-size: 0.875rem; }
.menu { background: var(--menu-bg); color: var(--menu-ink); --line: color-mix(in srgb, var(--menu-ink) 22%, transparent); }
.menu-heading { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: end; padding: 55px 0 56px; }
.menu-heading > div { max-width: 360px; padding-bottom: 6px; }
.menu-heading p { line-height: 1.8; }
.price-note { display: inline-block; margin-top: 22px; color: var(--menu-muted); font-size: 0.75rem; }
.menu-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: clamp(40px,6vw,95px); align-items: start; }
.menu-sidebar { position: sticky; top: calc(var(--header-height) + 35px); }
.menu-tabs { display: flex; flex-direction: column; }
.menu-tabs button { background: transparent; display: flex; align-items: center; gap: 14px; text-align: left; padding: 20px 10px; border-bottom: 1px solid var(--line); min-height: 68px; font-size: 1rem; transition: padding .2s, background .2s; }
.menu-tabs button:first-child { border-top: 1px solid var(--line); }
.menu-tabs .tab-number { font-size: 0.75rem; opacity: .65; }
.menu-tabs .icon { width: 20px; margin-left: auto; opacity: 0; transform: translateX(-5px); transition: all .25s; }
.menu-tabs button:hover { background: var(--line); }
.menu-tabs button[aria-selected='true'] { font-weight: 600; padding-left: 16px; }
.menu-tabs button[aria-selected='true'] .icon { opacity: 1; transform: none; }
.menu-side-note { padding-top: 48px; }
.menu-side-note > span { font-family: var(--serif); font-size: 2.75rem; line-height: 1.1; letter-spacing: -.05em; display: block; margin-bottom: 26px; }
.menu-side-note p { font-size: 0.875rem; max-width: 190px; opacity: .75; }
.menu-side-note .text-link { margin-top: 12px; }
.menu-panel { scroll-margin-top: calc(var(--header-height) + 40px); }
.menu-panel.is-selected { animation: panel-in .4s ease both; }
.menu-panel h3 { font-family: var(--serif); font-size: 1.8125rem; line-height: 1.3; font-weight: 500; padding: 0 0 22px; border-bottom: 1px solid var(--line); }
.dish { display: flex; justify-content: space-between; gap: 30px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid var(--line); }
.dish-info { min-width: 0; }
.dish h4 { font-size: 1rem; margin: 0 0 6px; font-weight: 500; line-height: 1.5; }
.dish p { font-size: 0.875rem; color: var(--menu-muted); line-height: 1.6; }
.dish-price { white-space: nowrap; font-size: 1rem; font-variant-numeric: tabular-nums; }
.dish-price span { font-size: 0.75rem; color: var(--menu-muted); padding-left: 3px; }
.gallery { overflow: hidden; padding-right: 0; }
.gallery .section-label { margin-right: var(--gutter); }
.gallery-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; padding: 52px var(--gutter) 45px 0; }
.gallery-controls { display: flex; align-items: center; gap: 12px; padding-bottom: 5px; }
.gallery-count { font-size: 0.75rem; letter-spacing: .07em; margin-right: 18px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.round-button { width: 48px; height: 48px; border: 1px solid var(--line); background: transparent; color: inherit; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; transition: color .25s, background .25s; }
.round-button:hover { background: var(--accent); color: var(--button-ink); }
.round-button.previous .icon { transform: rotate(180deg); }
.gallery-track { display: flex; align-items: flex-start; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--accent) transparent; padding: 0 var(--gutter) 22px 0; scroll-padding-inline: 0 var(--gutter); }
.gallery-item { flex: 0 0 43%; padding: 0; background: transparent; text-align: left; scroll-snap-align: start; position: relative; }
.gallery-item:nth-child(even) { flex-basis: 30%; padding-top: 45px; }
.gallery-photo { display: block; position: relative; overflow: hidden; border-radius: 2px; }
.gallery-photo img { width: 100%; height: 370px; object-fit: cover; transition: transform .65s cubic-bezier(.2,.65,.3,1); }
.gallery-item:nth-child(even) img { height: 300px; }
.gallery-item:hover img { transform: scale(1.04); }
.gallery-item .gallery-zoom { position: absolute; right: 15px; bottom: 15px; border: 1px solid #fff8; width: 38px; height: 38px; border-radius: 50%; background: #24111c55; color: white; display: grid; place-items: center; transition: background .2s; }
.gallery-item:hover .gallery-zoom { background: var(--wine); }
.gallery-caption { padding: 16px 0 0; display: flex; justify-content: space-between; gap: 14px; font-size: 0.875rem; }
.gallery-caption > :last-child { font-size: 0.75rem; color: var(--muted); }
.gallery-hint { font-size: 0.75rem; color: var(--muted); margin-top: 18px; padding-right: var(--gutter); }
.occasions { padding-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.occasion { border-top: 1px solid var(--line); padding-top: 30px; }
.occasion .eyebrow { color: var(--accent); }
.occasion h2 { margin: 20px 0; font-size: clamp(30px,3.1vw,48px); }
.occasion p { color: var(--muted); max-width: 430px; margin-bottom: 22px; }
.reserve { background: var(--surface); border-top: 1px solid var(--line); }
.reserve-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: clamp(50px,8vw,120px); margin-top: 55px; }
.reserve-copy > p { color: var(--muted); max-width: 410px; margin-top: 26px; }
.reservation-phone { display: block; font-family: var(--serif); font-size: clamp(25px,2.7vw,40px); line-height: 1.4; margin-top: 27px; }
.reserve-copy > .eyebrow { font-size: 0.75rem; color: var(--muted); }
.hours { margin-top: 40px; max-width: 380px; }
.hours h3 { font-size: 1rem; font-weight: 500; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.hours dl > div { display: grid; grid-template-columns: 1fr 1.1fr; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 0.875rem; }
.hours dd { text-align: right; color: var(--muted); }
.reservation-form { min-width: 0; padding: 34px; border: 1px solid var(--line); background: var(--bg); border-radius: 3px; }
.form-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-family: var(--serif); font-size: 1.8125rem; font-style: italic; line-height: 1.4; letter-spacing: -.04em; margin-bottom: 24px; }
.form-title > :last-child { color: var(--accent); font-style: normal; font-family: var(--sans); font-size: 2.0625rem; }
.preview-notice { font-size: 0.75rem; line-height: 1.7; padding: 12px 15px; border-left: 2px solid var(--accent); background: var(--line); color: var(--ink); margin-bottom: 25px; }
.form-field { margin-bottom: 22px; min-width: 0; }
.form-field label { display: block; margin-bottom: 7px; font-size: 0.875rem; }
.form-field label small { color: var(--muted); font-size: 0.75rem; }
.form-field input, .form-field select, .form-field textarea { display: block; width: 100%; min-width: 0; min-height: 49px; padding: 12px 11px; border: 1px solid var(--line); border-radius: 2px; background: transparent; color: var(--ink); outline-offset: 2px; transition: border-color .2s; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: var(--accent); }
.form-field input::placeholder, .form-field textarea::placeholder { color: var(--muted); opacity: .7; font-size: 0.875rem; }
.form-field select option { background: var(--bg); color: var(--ink); }
.form-field textarea { resize: vertical; min-height: 100px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.form-submit { width: 100%; justify-content: space-between; }
.form-disclaimer { font-size: 0.75rem; color: var(--muted); text-align: center; margin-top: 15px; line-height: 1.6; }
.form-status { padding: 15px; border: 1px solid var(--accent); margin-top: 20px; font-size: 0.875rem; }
.form-status[data-kind='error'] { border-color: #e27c7c; }
.footer { padding-bottom: 25px; }
.footer-top { display: grid; grid-template-columns: 1.15fr 1fr 1.2fr; gap: 7vw; align-items: start; }
.footer h2 { font-size: clamp(34px,3.6vw,58px); margin-top: 23px; }
.footer h3 { font-size: 0.875rem; font-weight: 500; margin-bottom: 22px; }
.footer address { font-style: normal; font-size: 0.875rem; line-height: 1.9; color: var(--muted); }
.footer-address .text-link, .footer-contact .text-link { margin-top: 16px; }
.footer-contact > a:not(.text-link) { display: block; font-size: 0.875rem; margin-bottom: 8px; color: var(--muted); overflow-wrap: anywhere; }
.footer-contact > a:hover { color: var(--accent); }
.footer-word { font-family: var(--serif); font-size: clamp(65px,15.8vw,280px); letter-spacing: -.065em; line-height: 1.2; font-weight: 500; color: var(--accent); margin-top: 54px; white-space: nowrap; text-align: center; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 25px 0 0; border-top: 1px solid var(--line); font-size: 0.75rem; }
.footer-bottom p { color: var(--muted); }
.motion-toggle { background: transparent; color: var(--muted); display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 5px; font-size: 0.75rem; }
.motion-toggle .icon { width: 17px; height: 17px; }
.back-top { display: inline-flex; gap: 18px; align-items: center; min-height: 44px; }
.back-top > :last-child { font-size: 1.3125rem; }
.lightbox { position: fixed; inset: 0; border: 1px solid #ffffff30; border-radius: 3px; background: #201017; color: var(--paper); width: calc(100% - 40px); max-width: 1300px; max-height: 95svh; padding: 16px 24px 22px; overflow-y: auto; }
.lightbox::backdrop { background: #14060eea; backdrop-filter: blur(12px); }
.lightbox[open] { animation: panel-in .25s ease both; }
.lightbox-top { display: flex; align-items: center; justify-content: space-between; font-size: 0.75rem; letter-spacing: .08em; }
.lightbox-stage { display: grid; grid-template-columns: 48px minmax(0,1fr) 48px; align-items: center; gap: 20px; margin-top: 10px; }
.lightbox-stage img { width: 100%; height: 70svh; object-fit: contain; }
.lightbox-stage .round-button { border-color: #ffffff55; }
.lightbox > p { text-align: center; margin-top: 18px; font-size: 0.875rem; }
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s cubic-bezier(.21,.6,.32,1); }
.js .reveal.visible { opacity: 1; transform: none; }
@keyframes hero-arrive { from { transform: scale(1.12); } to { transform: scale(1.02); } }
@keyframes text-arrive { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes panel-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes orbit { to { transform: rotate(360deg); } }
@keyframes down { 0%,100% { transform: translateY(-3px); } 50% { transform: translateY(3px); } }
html.motion-paused { scroll-behavior: auto; }
html.motion-paused *, html.motion-paused *::before, html.motion-paused *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.motion-paused .reveal { opacity: 1 !important; transform: none !important; }
@media (min-width: 1700px) {
  :root { --gutter: max(88px, calc((100vw - 1530px) / 2)); }
  .hero h1 { font-size: 15rem; }
  .footer-word { font-size: 15.3125rem; }
}
@media (max-width: 1180px) {
  :root { --header-height: 86px; }
  .header { gap: 20px; }
  .desktop-nav { gap: 18px; }
  .header-reserve { padding: 12px 15px; gap: 12px; margin-left: 2px; }
  .wordmark { font-size: 1.9375rem; }
  .wordmark span { font-size: 0.75rem; }
  .about-grid { gap: 7vw; }
  .menu-layout { grid-template-columns: 215px minmax(0,1fr); gap: 50px; }
  .gallery-photo img { height: 320px; }
  .gallery-item:nth-child(even) img { height: 260px; }
  .footer-top { gap: 30px; grid-template-columns: 1fr 1fr 1.15fr; }
}
@media (max-width: 960px) {
  .desktop-nav { display: none; }
  .mobile-toggle { display: grid; }
  .section { padding-top: 70px; padding-bottom: 70px; }
  .hero { min-height: 680px; }
  .hero-content { padding-top: 30px; }
  .hero h1 { margin-top: 32px; }
  .hero-bottom { padding-top: 30px; }
  .hero-eyebrow { font-size: 0.75rem; }
  .hero-side-note { display: none; }
  .about-grid { gap: 38px; }
  .about-photos { padding-left: 30px; }
  .about-food-photo { left: -8px; width: 48%; }
  .photo-word { bottom: 32px; right: -6px; }
  .menu-heading { gap: 40px; }
  .menu-layout { grid-template-columns: 185px minmax(0,1fr); gap: 34px; }
  .menu-tabs button { gap: 9px; padding: 18px 7px; font-size: 0.875rem; }
  .menu-tabs button[aria-selected='true'] { padding-left: 10px; }
  .menu-tabs .icon { width: 16px; }
  .reserve-layout { gap: 36px; }
  .reservation-form { padding: 24px; }
  .form-row { gap: 10px; }
  .occasions { padding-top: 15px; gap: 40px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 36px; }
  .footer-top > :first-child { grid-column: 1/-1; }
  .footer-top h2 br { display: none; }
  .footer-word { margin-top: 35px; }
}
@media (max-width: 700px) {
  :root { --header-height: 80px; }
  html { scroll-padding-top: 96px; }
  .header { padding: 12px var(--gutter); gap: 10px; }
  .wordmark { font-size: 1.8125rem; }
  .header-actions { gap: 2px; }
  .header-reserve { display: none; }
  .theme-toggle { width: 37px; }
  .section { padding-top: 55px; padding-bottom: 55px; }
  .section-label { padding-bottom: 18px; gap: 15px; font-size: 0.75rem; letter-spacing: .08em; }
  .section-label > :last-child { font-size: 0.75rem; max-width: 50%; text-align: right; }
  h2 { font-size: clamp(38px,8.7vw,57px); }
  .hero { min-height: 670px; min-height: max(610px,calc(91svh - var(--header-height))); }
  .hero-content { padding-top: 28px; padding-bottom: 22px; }
  .hero h1 { font-size: clamp(57px,14.8vw,105px); margin: 30px 0 5px; }
  .hero-image { object-position: 56% center; }
  .hero-shade { background: linear-gradient(180deg,#230d16ba, #170e1230 30%, #1c0912dd), linear-gradient(90deg,#200c145c, transparent 90%); }
  .hero-bottom { gap: 16px; padding-bottom: 27px; align-items: flex-end; }
  .hero-script { font-size: clamp(31px,7vw,47px); margin-bottom: 12px; }
  .hero-intro > p:not(.hero-script) { font-size: 0.875rem; }
  .hero-menu { font-size: 0.8125rem; gap: 15px; margin-top: 18px; }
  .reservation-orbit { width: 124px; margin-right: 0; margin-bottom: 9px; gap: 7px; }
  .reservation-orbit .orbit-top { font-size: 0.75rem; letter-spacing: .03em; }
  .reservation-orbit .icon { width: 28px; height: 28px; }
  .reservation-orbit > :last-child { font-size: 0.75rem; }
  .reservation-orbit::after { inset: -6px; }
  .marquee { padding: 15px 0; }
  .marquee span { font-size: 0.75rem; gap: 22px; padding-right: 22px; }
  .marquee b { font-size: 1.25rem; }
  .about-grid { grid-template-columns: 1fr; gap: 45px; margin-top: 36px; margin-bottom: 35px; }
  .about-copy > p:not(.about-signature) { max-width: none; }
  .about-photos { max-width: 460px; width: 100%; justify-self: center; padding-left: 70px; }
  .about-main-photo img { height: 420px; }
  .about-food-photo { width: 42%; left: 5px; }
  .photo-word { font-size: 3.375rem; right: 0; }
  .notice { flex-direction: column; gap: 9px; padding: 20px 0; margin-top: 43px; }
  .notice p { font-size: 0.8125rem; }
  .menu-heading { grid-template-columns: 1fr; gap: 24px; padding: 35px 0 24px; }
  .menu-heading > div { max-width: 100%; }
  .price-note { margin-top: 12px; }
  .menu-layout { grid-template-columns: minmax(0,1fr); gap: 27px; }
  .menu-sidebar { position: static; }
  .menu-tabs { flex-direction: row; overflow-x: auto; gap: 8px; padding: 6px 3px 12px; scrollbar-width: thin; }
  .menu-tabs button, .menu-tabs button:first-child { flex-shrink: 0; min-height: 46px; border: 1px solid var(--line); border-radius: 2px; padding: 11px 14px; font-size: 0.875rem; white-space: nowrap; }
  .menu-tabs button[aria-selected='true'] { padding: 11px 14px; color: var(--menu-bg); background: var(--menu-ink); }
  .menu-tabs .tab-number, .menu-tabs .icon { display: none; }
  .menu-side-note { display: none; }
  .menu-panel h3 { font-size: 1.6875rem; padding-bottom: 16px; }
  .dish { padding: 18px 0; gap: 20px; }
  .dish h4 { font-size: 1rem; }
  .dish p { font-size: 0.875rem; }
  .dish-price { font-size: 0.9375rem; }
  .dish-price span { display: none; }
  .gallery-heading { flex-direction: column; align-items: flex-start; padding-top: 35px; gap: 28px; padding-bottom: 28px; }
  .gallery-controls { align-self: flex-end; }
  .gallery-count { margin-right: 8px; }
  .gallery-track { gap: 18px; }
  .gallery-item { flex-basis: 82%; }
  .gallery-item:nth-child(even) { flex-basis: 72%; padding-top: 25px; }
  .gallery-photo img { height: 320px; }
  .gallery-item:nth-child(even) img { height: 270px; }
  .gallery-caption { font-size: 0.8125rem; }
  .occasions { grid-template-columns: 1fr; gap: 40px; padding-top: 0; }
  .occasion h2 { font-size: 2.25rem; }
  .occasion p { max-width: none; }
  .reserve-layout { grid-template-columns: 1fr; gap: 38px; margin-top: 35px; }
  .reserve-copy > p { max-width: none; }
  .reservation-phone { font-size: 2rem; }
  .hours { max-width: none; margin-top: 30px; }
  .reservation-form { padding: 24px 20px; }
  .form-title { font-size: 1.8125rem; }
  .form-field input, .form-field select, .form-field textarea { font-size: 1rem; }
  .footer-top { grid-template-columns: 1fr; gap: 32px; }
  .footer-top > :first-child { grid-column: auto; }
  .footer h2 { font-size: 2.75rem; }
  .footer-top h2 br { display: initial; }
  .footer h3 { margin-bottom: 13px; }
  .footer-word { font-size: 14.7vw; margin-top: 32px; }
  .footer-bottom { flex-wrap: wrap; gap: 10px 15px; }
  .footer-bottom > p { flex-basis: 100%; }
  .motion-toggle { margin-right: auto; }
  .lightbox { width: calc(100% - 18px); padding: 10px 12px 20px; }
  .lightbox-stage { grid-template-columns: 38px minmax(0,1fr) 38px; gap: 7px; }
  .lightbox-stage .round-button { width: 38px; height: 38px; }
  .lightbox-stage img { height: 65svh; }
}
@media (max-width: 380px) {
  :root { --gutter: 18px; }
  .wordmark { font-size: 1.625rem; }
  .wordmark span { display: none; }
  .hero-eyebrow { font-size: 0.75rem; letter-spacing: .08em; }
  .hero-bottom { flex-wrap: wrap; gap: 28px; }
  .hero-intro { flex: 1 1 100%; }
  .reservation-orbit { width: 108px; margin-left: auto; margin-top: -8px; }
  .hero { min-height: 710px; }
  .hero h1 { font-size: 14.5vw; }
  .about-photos { padding-left: 50px; }
  .about-main-photo img { height: 340px; }
  .photo-word { font-size: 2.8125rem; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .gallery-photo img { height: 260px; }
  .gallery-item:nth-child(even) img { height: 230px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; }
}
@media print {
  :root { --bg: white; --ink: black; --muted: #444; --menu-bg: white; --menu-ink: black; --menu-muted: #444; --line: #ccc; color-scheme: light; }
  .header, .hero, .marquee, .about, .gallery, .occasions, .reserve, .footer, .menu-sidebar, .reading-progress { display: none; }
  .section { padding: 20px; }
  .menu-layout, .menu-heading { display: block; }
  .menu-heading { padding: 20px 0; }
  .menu-panel, .menu-panel[hidden] { display: block !important; margin-top: 26px; }
  #panel-spezial[hidden] { display: none !important; }
  .dish { break-inside: avoid; padding: 10px 0; }
  .js .reveal { opacity: 1; transform: none; }
  h2 { font-size: 2.125rem; }
}
.menu-tabs .special-menu-tab{background:#f2cd7e24;border-left:3px solid #b58036}.menu-tabs .special-menu-tab .tab-number{color:#a57727;opacity:1;font-size:1.1rem}.menu-recommendation{font-size:.875rem;font-weight:600;letter-spacing:.06em;color:#77551e;margin-bottom:13px}.special-menu-summary{white-space:pre-line;padding:20px 0 8px;line-height:1.7}.special-menu-meta{font-size:.95rem;font-weight:500;padding:8px 0 18px}.menu-special-reserve{margin-top:25px}.menu-tabs button>span:not(.tab-number){min-width:0;overflow-wrap:anywhere}@media(max-width:700px){.menu-tabs .special-menu-tab{border-left:0;border-top:3px solid #b58036}}
