@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@400;500;600;700;800&display=swap');

    /* IMAGE GUIDE — replace the files inside /images using the same names. */
    :root {
      --ink: #100b07;
      --ink-soft: #1b120b;
      --cream: #f3e8d2;
      --cream-deep: #e7d5b3;
      --gold: #cb8d1d;
      --gold-light: #e9b340;
      --chile: #a73313;
      --teal: #073c39;
      --hero-image: url('images/hero.jpg');
      --flavor-image: url('images/authentic-flavor.jpg');
      --bar-image: url('images/bar-banner.jpg');
      --gift-image: url('images/gift-certificate-banner.jpg');
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; scroll-padding-top: 84px; }
    body { margin: 0; color: #fff; background: var(--ink); font-family: 'Work Sans', Arial, sans-serif; }
    body.menu-open { overflow: hidden; }
    a { color: inherit; text-decoration: none; }
    button { color: inherit; font: inherit; }
    img { max-width: 100%; display: block; }
    :focus-visible { outline: 3px solid var(--gold-light); outline-offset: 4px; }
    .container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
    .display { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; letter-spacing: -.035em; }
    .script { font-family: Georgia, 'Times New Roman', serif; font-style: italic; }
    .gold { color: var(--gold-light); }
    .kicker { margin: 0 0 14px; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .27em; text-transform: uppercase; }
    .section-title { margin: 0; color: #3a190f; font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1.05; }
    .section-title.light { color: #f3d28a; }
    .ornament { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--gold); margin: 16px 0; }
    .ornament::before, .ornament::after { content: ''; width: 58px; height: 1px; background: currentColor; }
    .cornered { position: relative; }
    .cornered::after { content: ''; position: absolute; inset: 10px; pointer-events: none; border: 1px solid rgba(203, 141, 29, .65); clip-path: polygon(0 0, 12% 0, 12% 1px, 1px 1px, 1px 14%, 0 14%, 0 0, 100% 0, 100% 14%, calc(100% - 1px) 14%, calc(100% - 1px) 1px, 88% 1px, 88% 0, 100% 0, 100% 100%, 88% 100%, 88% calc(100% - 1px), calc(100% - 1px) calc(100% - 1px), calc(100% - 1px) 86%, 100% 86%, 100% 100%, 0 100%, 0 86%, 1px 86%, 1px calc(100% - 1px), 12% calc(100% - 1px), 12% 100%, 0 100%); }

    .button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 30px; border: 2px solid #f0bf55; border-radius: 5px; color: #fffdf5; background: linear-gradient(135deg, #a93413, #681707); box-shadow: 0 10px 28px rgba(0,0,0,.25); clip-path: none; font-size: .83rem; font-weight: 800; letter-spacing: .06em; text-shadow: 0 2px 3px rgba(0,0,0,.8); text-transform: uppercase; transition: transform .2s, filter .2s; }
    .button:hover { transform: translateY(-2px); filter: brightness(1.13); }
    .button.teal { background: linear-gradient(135deg, #0b6761, #06413e); }
    .button.gold-button { background: linear-gradient(135deg, #d39726, #9a5c0d); }

    .site-header { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 10px clamp(20px, 5vw, 72px); position: fixed; inset: 0 0 auto; z-index: 50; background: rgba(12, 8, 5, .94); border-block: 1px solid var(--gold); box-shadow: 0 8px 30px rgba(0,0,0,.24); backdrop-filter: blur(14px); }
    .header-logo { width: clamp(92px, 11vw, 142px); height: 62px; display: flex; align-items: center; position: relative; z-index: 3; }
    .header-logo img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 5px 7px rgba(0,0,0,.72)) drop-shadow(0 0 11px rgba(231,166,47,.24)); }
    .brand { color: #e5a72d; font-size: clamp(1.35rem, 2.5vw, 2.15rem); line-height: .82; transform: rotate(-2deg); text-shadow: 0 2px #54210f; }
    .brand small { display: block; margin-top: 8px; font-family: 'Work Sans', sans-serif; font-size: .32em; letter-spacing: .12em; text-transform: uppercase; transform: rotate(2deg); }
    .main-nav { display: flex; align-items: center; gap: clamp(16px, 2.8vw, 40px); font-size: .74rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
    .main-nav > a:not(.button) { padding-block: 14px; position: relative; }
    .main-nav > a:not(.button)::after { content: ''; position: absolute; inset: auto 50% 7px; height: 2px; background: var(--gold); transition: inset .2s; }
    .main-nav > a:not(.button):hover::after { inset-inline: 0; }
    .menu-toggle { display: none; width: 46px; height: 42px; border: 1px solid var(--gold); background: transparent; cursor: pointer; }
    .menu-toggle span { display: block; width: 22px; height: 2px; margin: 5px auto; background: var(--gold-light); }

    .hero { min-height: 100svh; padding: 150px 24px 76px; display: grid; place-items: center; overflow: hidden; position: relative; text-align: center; background-image: linear-gradient(180deg, rgba(15,8,3,.05), rgba(10,6,3,.83)), radial-gradient(circle at 65% 26%, rgba(248,168,70,.55), transparent 36%), var(--hero-image), linear-gradient(#24130c,#24130c); background-position: center; background-size: cover; background-attachment: fixed; }
    .hero::before, .parallax-panel::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at center, transparent 25%, rgba(0,0,0,.42) 100%); pointer-events: none; }
    .hero-content { max-width: 800px; position: relative; z-index: 2; }
    .hero-logo { width: min(280px, 55vw); aspect-ratio: 1 / 1; max-height: 270px; margin: 18px auto 26px; display: grid; place-items: center; border: 2px dashed rgba(248,223,170,.72); color: #f8dfaa; background-image: url('images/logo.png'); background-position: center; background-repeat: no-repeat; background-size: contain; text-shadow: 0 3px 18px rgba(0,0,0,.8); }
    .hero-logo img { width: 100%; height: 100%; display: none; object-fit: contain; }
    .hero-logo span { padding: 12px 18px; background: rgba(10,6,3,.52); font-size: .78rem; font-weight: 800; letter-spacing: .18em; line-height: 1.7; text-transform: uppercase; }
    .hero-logo.has-logo { border-color: transparent; background-image: none; }
    .hero-logo.has-logo img { display: block; }
    .hero-logo.has-logo .logo-instruction { display: none; }
    .hero-logo small { color: #efd08e; font-size: .68em; letter-spacing: .08em; text-transform: none; }
    .hero .lead { margin: 0 auto 30px; font-size: clamp(1rem, 2vw, 1.25rem); line-height: 1.65; }
    .hero .lead span { display: block; color: #f2cb79; font-size: 1.45em; }
    .scroll-cue { position: absolute; z-index: 3; bottom: 20px; left: 50%; transform: translateX(-50%); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; }
    .scroll-cue::after { content: ''; display: block; width: 1px; height: 26px; margin: 8px auto 0; background: var(--gold); }

    .flavor { display: grid; grid-template-columns: 1fr 1fr; min-height: 590px; background: var(--cream); color: #2b1b13; }
    .flavor-copy { padding: clamp(70px, 9vw, 130px) clamp(34px, 7vw, 110px); display: grid; place-items: center; text-align: center; }
    .flavor-copy > div { max-width: 490px; }
    .flavor-title { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; letter-spacing: -.035em; }
    .flavor-copy p:last-child { font-size: 1.02rem; line-height: 1.85; }
    .flavor-photo { min-height: 520px; position: relative; background-image: linear-gradient(rgba(9,5,2,.18),rgba(9,5,2,.3)), var(--flavor-image), radial-gradient(circle at 50% 42%,#b74c20,#3d160d 72%); background-position: center; background-size: cover; background-attachment: fixed; }

    .parallax-panel { min-height: 570px; display: grid; align-items: center; overflow: hidden; position: relative; background-position: center; background-size: cover; background-attachment: fixed; }
    .bar-panel { background-image: linear-gradient(90deg, rgba(5,4,3,.36), rgba(5,4,3,.08) 48%, rgba(5,4,3,.38)), var(--bar-image), linear-gradient(125deg,#251004,#8d421d,#0c3d39); }
    .parallax-panel.bar-panel::before { background: radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,.28) 100%); }
    .banner-copy { width: min(580px, 90%); margin-left: auto; margin-right: 8vw; padding: 100px 30px; position: relative; z-index: 2; text-align: center; }
    .banner-copy h2 { margin: 0; font-size: clamp(2.7rem, 6vw, 5.4rem); line-height: 1.08; text-transform: uppercase; }
    .banner-copy .script { display: block; color: #fff; font-size: .56em; text-transform: none; }
    .banner-copy p { margin: 18px auto 28px; max-width: 430px; line-height: 1.7; }
    .bar-panel .banner-copy { width: min(620px, 92%); margin-inline: auto; padding: 82px 34px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; transform: none; text-align: center; text-shadow: 0 3px 15px rgba(0,0,0,.95); }
    .bar-panel .banner-copy::before { content: ''; position: absolute; right: 25%; bottom: 48px; left: 25%; height: 2px; background: linear-gradient(90deg,transparent,#e7ad39 30%,#fff0af 50%,#e7ad39 70%,transparent); box-shadow: 0 0 18px rgba(231,173,57,.5); }

    .favorites { padding: 86px 0 90px; overflow: hidden; color: #2d1a11; background: radial-gradient(circle at 50% 0,#fff8e9,var(--cream)); }
    .favorites-head { margin-bottom: 38px; text-align: center; }
    .carousel-shell { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; align-items: center; gap: 14px; }
    .carousel-window { overflow: hidden; position: relative; touch-action: pan-y; }
.favorites-grid { display: flex; width: 100%; transform: translateX(0); transition: transform .65s ease; will-change: transform; }
.favorites-grid.no-transition { transition: none; }
.favorites-page { min-width: 0; flex: 0 0 100%; display: grid; grid-template-columns: repeat(var(--items-per-page, 4), minmax(0,1fr)); gap: 18px; }
.favorite-card { min-width: 0; padding: 8px; border-radius: 18px; text-align: center; cursor: pointer; transition: transform .2s, background .2s, box-shadow .2s; }
.favorite-card:hover, .favorite-card:focus-visible { transform: translateY(-5px); background: rgba(255,255,255,.7); box-shadow: 0 18px 35px rgba(68,34,13,.13); }
    .dish-photo { aspect-ratio: 1 / .9; margin-bottom: 20px; position: relative; overflow: hidden; border: 2px solid #dfb763; border-radius: 16px 16px 4px 4px; box-shadow: 0 13px 28px rgba(68,34,13,.18); background-image: linear-gradient(145deg, rgba(255,174,47,.15), rgba(44,11,4,.38)), var(--photo), radial-gradient(circle at center,#b9471b,#36120c); background-position: center; background-size: cover; }
    .dish-photo::after { display: none; }
    .favorite-card h3 { min-height: 42px; margin: 0 0 10px; color: #3b190f; font-size: .88rem; line-height: 1.35; letter-spacing: .06em; text-transform: uppercase; }
.favorite-card p { margin: 0; color: #70594b; font-size: .76rem; line-height: 1.6; }
.dish-open { margin-top: 14px; border: 0; border-bottom: 1px solid currentColor; color: var(--chile); background: transparent; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
    .carousel-btn { width: 44px; height: 44px; border: 1px solid #d08722; border-radius: 50%; color: #fff; background: var(--chile); cursor: pointer; font-size: 1.4rem; box-shadow: 0 6px 18px rgba(95,27,8,.25); }
    .carousel-dots { display: flex; justify-content: center; gap: 9px; margin: 32px 0; }
    .carousel-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #c8ac7b; cursor: pointer; }
    .carousel-dot.active { background: var(--chile); transform: scale(1.3); }
    .favorites-action { text-align: center; }
    .favorites-action .button { color: #fff8e8; border: 2px solid #e0a52d; background: linear-gradient(180deg,#8f2c12,#5f1709); box-shadow: inset 0 1px rgba(255,239,194,.32), 0 5px 0 #3d0d04, 0 17px 30px rgba(76,24,7,.32); }
    .favorites-action .button:hover { color: #fff; background: linear-gradient(180deg,#b13a17,#741d0b); }

    .gift-panel { min-height: 570px; background-image: linear-gradient(90deg, rgba(2,39,37,.34), rgba(1,24,23,.1) 52%, rgba(1,22,21,.36)), var(--gift-image), linear-gradient(135deg,#073c39,#0e645b 55%,#152a1f); }
    .parallax-panel.gift-panel::before { background: radial-gradient(ellipse at center,rgba(0,0,0,.58) 0,rgba(0,0,0,.3) 38%,rgba(0,0,0,.06) 68%,rgba(0,0,0,.3) 100%); }
    .gift-panel .banner-copy { margin-inline: auto; }

    .visit { padding: 92px 0; background: linear-gradient(rgba(14,9,5,.95),rgba(14,9,5,.95)), repeating-linear-gradient(45deg,#21150d 0 12px,#191009 12px 24px); }
    .visit-head { margin-bottom: 42px; text-align: center; }
    .visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
    .location-card { overflow: hidden; border: 1px solid rgba(203,141,29,.7); background: #1b120c; box-shadow: 0 20px 40px rgba(0,0,0,.24); }
    .location-info { padding: 34px; }
    .location-number { color: var(--gold-light); font-size: .68rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
    .location-card h3 { margin: 10px 0 15px; color: #f7db9e; font-size: 1.6rem; }
    .address { min-height: 48px; margin: 0 0 24px; color: #d9c9b5; line-height: 1.6; }
    .hours { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0; color: #d9c9b5; font-size: .84rem; line-height: 1.5; }
    .hours dt { color: var(--gold); font-weight: 800; }
    .hours dd { margin: 0; }
    .map-frame { width: 100%; height: 285px; display: block; border: 0; filter: sepia(.15) saturate(.9); }

    .site-footer { padding: 50px 0 30px; text-align: center; border-top: 1px solid var(--gold); background: #0b0704; }
    .footer-grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; }
    .footer-logo { width: 118px; height: 84px; display: flex; align-items: center; justify-self: start; }
    .footer-logo img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0,0,0,.55)); }
    .designer-credit { margin: 0; color: #bba283; font-size: .78rem; letter-spacing: .04em; }
    .designer-credit a { color: var(--gold-light); border-bottom: 1px solid rgba(233,179,64,.45); transition: color .2s, border-color .2s; }
    .designer-credit a:hover { color: #fff0c8; border-color: currentColor; }
    .footer-button { justify-self: end; }
.copyright { margin: 30px 0 0; color: #a98e6b; font-size: .76rem; }

.dish-dialog { width: min(920px, calc(100% - 32px)); max-height: calc(100svh - 32px); padding: 0; overflow: auto; border: 1px solid var(--gold); color: #2d1a11; background: var(--cream); box-shadow: 0 28px 90px rgba(0,0,0,.55); }
.dish-dialog::backdrop { background: rgba(7,4,2,.84); backdrop-filter: blur(7px); }
.dish-dialog[open] { display: grid; grid-template-columns: 1.15fr .85fr; }
.dialog-photo { min-height: 520px; background-image: linear-gradient(145deg,rgba(255,174,47,.12),rgba(44,11,4,.28)),var(--photo),radial-gradient(circle at center,#b9471b,#36120c); background-position: center; background-size: cover; }
.dialog-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(34px,5vw,68px); }
.dialog-copy h2 { margin: 0 0 20px; color: #3b190f; font-size: clamp(2rem,4vw,3.6rem); line-height: 1.05; }
.dialog-copy > p:last-of-type { margin: 0 0 28px; color: #70594b; line-height: 1.8; }
.dialog-close { width: 44px; height: 44px; position: absolute; z-index: 2; top: 12px; right: 12px; border: 1px solid var(--gold); border-radius: 50%; color: #fff; background: var(--chile); cursor: pointer; font-size: 1.8rem; line-height: 1; }

/* CINEMATIC + 3D FINISH */
body::before { content: ''; position: fixed; z-index: 100; inset: 0; pointer-events: none; box-shadow: inset 0 0 120px rgba(0,0,0,.28); mix-blend-mode: multiply; }
.site-header { background: linear-gradient(180deg,rgba(22,14,8,.98),rgba(8,5,3,.95)); border-top-color: #efbd51; border-bottom-color: #7b4a10; box-shadow: inset 0 1px rgba(255,221,149,.12), inset 0 -1px rgba(0,0,0,.75), 0 14px 45px rgba(0,0,0,.46); }
.site-header::after { content: ''; position: absolute; inset: auto 6vw -2px; height: 2px; background: linear-gradient(90deg,transparent,#e8ad36 18%,#fff0ab 50%,#e8ad36 82%,transparent); opacity: .75; }
.button { position: relative; text-shadow: 0 2px 2px rgba(0,0,0,.48); box-shadow: inset 0 1px 0 rgba(255,238,185,.38), inset 0 -8px 15px rgba(80,12,2,.2), 0 5px 0 #5f1708, 0 16px 32px rgba(0,0,0,.34); transform: translateY(0) translateZ(0); }
.button:hover { transform: translateY(-4px) scale(1.015); box-shadow: inset 0 1px 0 rgba(255,238,185,.52), inset 0 -8px 15px rgba(80,12,2,.2), 0 8px 0 #5f1708, 0 24px 38px rgba(0,0,0,.42); }
.button:active { transform: translateY(3px); box-shadow: inset 0 1px 0 rgba(255,238,185,.25), 0 2px 0 #5f1708, 0 8px 16px rgba(0,0,0,.34); }
.hero { isolation: isolate; background-image: linear-gradient(180deg,rgba(8,4,2,.12),rgba(12,5,2,.28) 42%,rgba(7,4,2,.91)), radial-gradient(ellipse at 72% 18%,rgba(255,167,64,.52),transparent 43%), var(--hero-image), linear-gradient(#24130c,#24130c); box-shadow: inset 0 -90px 120px rgba(0,0,0,.56); }
.hero::before { background: radial-gradient(ellipse at 50% 43%,transparent 8%,rgba(0,0,0,.18) 58%,rgba(0,0,0,.72) 100%); }
.hero-content { padding: 26px clamp(22px,4vw,54px) 34px; border: 1px solid rgba(239,194,93,.23); border-radius: 32px 6px 32px 6px; background: rgba(10,6,3,.24); box-shadow: inset 0 1px rgba(255,237,192,.12), 0 35px 80px rgba(0,0,0,.34); backdrop-filter: blur(2px); }
.hero-content::before { content: ''; position: absolute; inset: -20% 14% auto; height: 42%; z-index: -1; background: radial-gradient(ellipse,rgba(236,160,45,.25),transparent 70%); filter: blur(18px); }
.hero-logo { border-color: rgba(248,223,170,.38); filter: none; transform: none; }
.hero-logo.has-logo { transform: none; filter: drop-shadow(0 9px 10px rgba(0,0,0,.48)); }
.hero .lead { text-shadow: 0 3px 12px rgba(0,0,0,.9); }
.flavor-copy { position: relative; background: radial-gradient(circle at 50% 35%,rgba(255,255,255,.82),transparent 57%), linear-gradient(135deg,#f8efde,#e3cda4); box-shadow: inset -18px 0 35px rgba(91,49,19,.13); }
.flavor-copy::after { content: ''; position: absolute; inset: 28px; pointer-events: none; border: 1px solid rgba(168,107,25,.25); box-shadow: inset 0 0 30px rgba(255,255,255,.28); }
.flavor-title { text-shadow: 0 2px 0 rgba(255,255,255,.8), 0 10px 22px rgba(92,40,15,.18); }
.flavor-photo { box-shadow: inset 22px 0 44px rgba(0,0,0,.34), inset 0 0 90px rgba(0,0,0,.28); }
.parallax-panel { isolation: isolate; box-shadow: inset 0 0 120px rgba(0,0,0,.48); }
.parallax-panel::before { background: radial-gradient(ellipse at center,transparent 12%,rgba(0,0,0,.68) 100%); }
.banner-copy { border: 1px solid rgba(230,174,62,.32); border-radius: 34px 6px 34px 6px; background: linear-gradient(145deg,rgba(11,8,5,.66),rgba(9,7,5,.34)); box-shadow: inset 0 1px rgba(255,238,191,.15), 0 34px 70px rgba(0,0,0,.38); backdrop-filter: blur(7px); transform: perspective(1100px) rotateY(-2deg) translateZ(18px); }
.banner-copy h2 { text-shadow: 0 4px 0 rgba(61,27,4,.9), 0 15px 32px rgba(0,0,0,.72); }
.gift-panel .banner-copy { width: min(620px, 92%); margin-inline: auto; padding: 82px 34px; border: 0; border-radius: 0; color: #fff; background: transparent; box-shadow: none; backdrop-filter: none; transform: none; text-align: center; text-shadow: 0 3px 3px #000, 0 0 14px #000, 0 0 30px rgba(0,0,0,.95); }
.gift-panel .banner-copy h2 { color: #fff8e8; text-shadow: 0 3px 3px #000, 0 0 12px #000, 0 0 30px #000; }
.gift-panel .banner-copy::before { content: ''; position: absolute; right: 25%; bottom: 48px; left: 25%; height: 2px; background: linear-gradient(90deg,transparent,#e7ad39 30%,#fff0af 50%,#e7ad39 70%,transparent); box-shadow: 0 0 18px rgba(231,173,57,.5); }
.favorites { background: radial-gradient(ellipse at 50% 0,#fffdf4 0,#f3e8d2 55%,#d8bd8c 120%); box-shadow: inset 0 25px 65px rgba(104,61,20,.15), inset 0 -25px 65px rgba(104,61,20,.12); }
.favorite-card { border: 1px solid rgba(171,111,29,.22); background: linear-gradient(145deg,rgba(255,255,255,.76),rgba(232,211,173,.48)); box-shadow: inset 0 1px rgba(255,255,255,.9), 0 12px 25px rgba(62,30,8,.12); transform-style: preserve-3d; }
.favorite-card:hover, .favorite-card:focus-visible { transform: perspective(900px) translateY(-9px) rotateX(2deg) rotateY(-2deg); background: linear-gradient(145deg,#fffdf7,#ead5af); box-shadow: inset 0 1px #fff, 0 28px 50px rgba(68,34,13,.25); }
.dish-photo { border-color: #f0c768; box-shadow: inset 0 0 35px rgba(0,0,0,.2), 0 6px 0 #9c661a, 0 18px 32px rgba(68,34,13,.28); transform: translateZ(24px); }
.carousel-btn { border-color: #f0c05b; box-shadow: inset 0 1px rgba(255,255,255,.35), 0 4px 0 #641707, 0 12px 25px rgba(95,27,8,.32); transition: transform .2s, filter .2s; }
.carousel-btn:hover { transform: translateY(-3px) scale(1.06); filter: brightness(1.16); }
.location-card { border-color: rgba(235,181,69,.68); background: linear-gradient(145deg,#24170e,#100a06); box-shadow: inset 0 1px rgba(255,224,151,.08), 0 8px 0 #5a350d, 0 30px 65px rgba(0,0,0,.4); transform: perspective(1100px) rotateX(.6deg); transition: transform .3s, box-shadow .3s; }
.location-card:hover { transform: perspective(1100px) translateY(-7px) rotateX(1.6deg); box-shadow: inset 0 1px rgba(255,224,151,.12), 0 11px 0 #5a350d, 0 42px 75px rgba(0,0,0,.52); }
.map-frame { border-top: 1px solid rgba(224,167,52,.5); box-shadow: inset 0 20px 40px rgba(0,0,0,.25); }
.site-footer { background: radial-gradient(ellipse at 50% 0,#24150a,#080503 72%); box-shadow: inset 0 1px rgba(255,217,132,.15); }
.dish-dialog { border: 1px solid #e7b64e; background: linear-gradient(145deg,#fff7e8,#e5cfaa); box-shadow: 0 45px 120px rgba(0,0,0,.72), 0 0 0 8px rgba(154,93,15,.12); }
.reveal-ready { opacity: 0; transform: translateY(42px) scale(.985); transition: opacity .85s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal-ready.reveal-visible { opacity: 1; transform: translateY(0) scale(1); }

    @media (max-width: 900px) {
      .menu-toggle { display: block; position: relative; z-index: 3; }
      .main-nav { display: none; position: fixed; inset: 0; padding: 120px 28px 40px; flex-direction: column; justify-content: center; background: rgba(12,8,5,.98); font-size: 1rem; }
      .main-nav.open { display: flex; }
      .main-nav > a:not(.button) { padding: 12px; }
      .flavor { grid-template-columns: 1fr; }
      .flavor-photo { min-height: 460px; order: -1; }
  .visit-grid { grid-template-columns: 1fr; }
  .dish-dialog[open] { grid-template-columns: 1fr; }
  .dialog-photo { min-height: 360px; }
      .footer-grid { grid-template-columns: 1fr; }
      .footer-logo, .footer-button { justify-self: center; }
    }

    @media (max-width: 600px) {
      html { scroll-padding-top: 72px; }
      .site-header { min-height: 72px; }
      .header-logo { width: 92px; height: 52px; }
      .brand { font-size: 1.35rem; }
      .hero { min-height: 780px; padding-top: 126px; background-attachment: scroll; }
      .hero-logo { width: min(230px, 58vw); max-height: 230px; }
      .flavor-photo, .parallax-panel { background-attachment: scroll; }
      .banner-copy, .gift-panel .banner-copy { margin-inline: auto; padding: 84px 18px; }
      .bar-panel { background-image: linear-gradient(rgba(5,4,3,.26),rgba(5,4,3,.46)), var(--bar-image), linear-gradient(125deg,#251004,#8d421d,#0c3d39); }
      .parallax-panel.bar-panel { min-height: 680px; align-items: center; }
      .parallax-panel.bar-panel::before { background: radial-gradient(ellipse at center,rgba(0,0,0,.34),rgba(0,0,0,.14) 54%,rgba(0,0,0,.42) 100%); }
      .bar-panel .banner-copy { width: 100%; margin: 0; padding: 84px 24px; text-align: center; }
      .bar-panel .banner-copy::before { top: auto; right: 24%; bottom: 48px; left: 24%; width: auto; height: 2px; background: linear-gradient(90deg,transparent,#e7ad39 30%,#fff0af 50%,#e7ad39 70%,transparent); }
      .parallax-panel.gift-panel { min-height: 680px; align-items: center; }
      .parallax-panel.gift-panel::before { background: radial-gradient(ellipse at center,rgba(0,0,0,.7) 0,rgba(0,0,0,.48) 42%,rgba(0,0,0,.16) 72%,rgba(0,0,0,.4) 100%); }
      .gift-panel .banner-copy { width: 100%; margin: 0; padding: 84px 24px; text-align: center; }
      .gift-panel .banner-copy::before { right: 24%; bottom: 48px; left: 24%; }
      .carousel-shell { grid-template-columns: 38px minmax(0,1fr) 38px; gap: 8px; }
      .carousel-btn { width: 38px; height: 38px; }
    .dialog-photo { min-height: 280px; }
      .dish-photo { max-width: 330px; margin-inline: auto; }
      .location-info { padding: 28px 24px; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
      .hero, .flavor-photo, .parallax-panel { background-attachment: scroll; }
    }
