@font-face{font-family:'Changa One';src:url('fonts/changa-one-latin-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--sky:#141313;--ink:#fff9ef;--cream:#fff9ef;--gold:#dfb76a;--red:#d93835;--display:'Changa One',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:dark;scrollbar-color:var(--red) var(--sky)}body{margin:0;background:var(--sky);color:var(--ink);font-family:var(--display)}h1,h2,h3,p{margin:0;font-weight:400}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:6px}a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}::selection{background:var(--red);color:#fff}
.nav{position:fixed;z-index:30;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:30px;padding:20px 16px;font-size:18px;line-height:24px;background:var(--sky)}.nav a{text-transform:uppercase;white-space:nowrap}.nav a[aria-current]{text-decoration:underline;text-underline-offset:7px}.skip-link{position:fixed;left:16px;top:80px;z-index:100;transform:translateX(-150%);padding:12px;background:var(--red);color:#fff}.skip-link:focus{transform:none}
.journey{position:relative}.chapter{position:absolute;top:calc(var(--at,0)*100svh);width:1px;height:1px}.stage{position:relative;background:var(--sky);overflow:clip}#journey-canvas{position:absolute;inset:0;width:100%;height:100%;display:none}.story-panel{padding:90px 24px 60px;text-align:center}.story-panel h1,.story-panel h2{font-size:75px;line-height:.8}.story-panel p{font-size:22px;line-height:1.3;margin-top:24px}.story-panel a{display:inline-block;font-size:20px;margin-top:20px;text-decoration:underline;text-underline-offset:6px}
.interactive .journey{height:3525svh}.interactive .stage{position:sticky;top:0;height:100svh;min-height:560px}.interactive #journey-canvas{display:block}.interactive .story-copy{position:absolute;inset:0;pointer-events:none}.interactive .story-panel{position:absolute;left:15%;right:15%;top:16%;padding:0;transform-origin:center;will-change:transform,opacity;visibility:hidden;pointer-events:none}.interactive .story-panel.is-visible{visibility:visible;pointer-events:auto}.interactive .story-panel h1,.interactive .story-panel h2{color:var(--ink)}.interactive .story-panel p{font-size:21px}.interactive .story-panel[data-at="4.4"],.interactive .story-panel[data-at="5.9"],.interactive .story-panel[data-at="7"]{top:12%;}
.journey-bottom{display:none}.interactive .journey-bottom{display:flex;position:absolute;bottom:22px;left:30px;right:30px;justify-content:space-between;align-items:center;gap:15px;font-size:14px;line-height:20px;color:var(--ink)}.journey-bottom a{text-decoration:underline;text-underline-offset:5px}
.welcome{position:relative;display:grid;grid-template-columns:1.4fr 1fr;align-items:center;background:var(--sky);padding:65px 5vw 50px;gap:3vw}.welcome>img{display:block;width:100%;height:auto}.welcome-copy h2{font-size:64px;line-height:.85;transform:rotate(-4deg);transform-origin:left}.welcome-copy>p{margin-top:24px;font-size:22px;line-height:1.25}.welcome-copy address{font:normal 19px/1.5 Arial,sans-serif;margin-top:26px}.welcome-copy address a{display:inline-block;margin-top:10px}.welcome-copy dl{display:grid;grid-template-columns:auto 1fr;gap:10px 28px;font:16px/1.4 Arial,sans-serif;margin:24px 0}.welcome-copy dd{margin:0}.welcome-links{display:flex;gap:20px;flex-wrap:wrap;font-size:20px}.welcome-links a{text-decoration:underline;text-underline-offset:6px}.interactive .welcome{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;padding-top:85px;padding-bottom:70px;will-change:transform,opacity}.interactive .welcome.is-visible{visibility:visible;pointer-events:auto}
.practical,.questions{padding:85px 8vw 60px;scroll-margin-top:70px;background:var(--sky)}.practical h2,.questions h2{font-size:60px;line-height:.85;margin-bottom:30px}.practical>p{font-size:22px;line-height:1.3;max-width:650px}.practical details,.questions details{margin-top:30px;max-width:950px}.practical summary,.questions summary{font-size:28px;line-height:1.15;cursor:pointer}.practical-info,.questions details p{font:17px/1.6 Arial,sans-serif;margin-top:20px;max-width:700px}.practical-info p{margin-bottom:15px}.menu-items{columns:2;column-gap:8vw;padding-top:30px}.menu-items p{break-inside:avoid;font:17px/1.5 Arial,sans-serif;margin-bottom:25px}.menu-items strong{display:block;font:28px/1.1 var(--display);margin-bottom:10px}
.footer{background:var(--sky);color:var(--gold);border-top:1px solid #5b4430;padding:64px 8vw 40px}
.footer-top{display:grid;grid-template-columns:1.7fr 1fr 1.3fr;gap:40px 6vw;max-width:1180px}
.footer-mark{display:block;font:400 42px/.82 var(--display);color:var(--cream)}.footer-mark span{color:var(--red)}
.footer-brand p{margin-top:16px;font:15px/1.55 Arial,sans-serif;color:var(--gold);max-width:40ch}
.footer-social{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:15px;color:var(--cream);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--red)}.footer-social svg{width:22px;height:22px;fill:var(--red)}
.footer-col h2{font:400 22px/1 var(--display);color:var(--gold);margin-bottom:15px}
.footer-col a{display:block;font:15px/1.95 Arial,sans-serif;color:var(--cream);text-decoration:none}.footer-col a:hover{color:var(--gold);text-decoration:underline;text-underline-offset:4px}
.footer-col address{font-style:normal;font:normal 15px/1.6 Arial,sans-serif;color:var(--cream)}.footer-col address a{display:inline}
.footer-hours{margin-top:14px;font:14px/1.6 Arial,sans-serif;color:var(--gold)}
.footer-order{display:inline-block;margin-top:16px;font:400 18px/1 var(--display);color:var(--cream);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--red)}
.footer-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 25px;max-width:1180px;margin-top:44px;padding-top:22px;border-top:1px solid #5b4430;font:13px/1.5 Arial,sans-serif;color:var(--gold)}.footer-bar a{color:var(--gold);text-decoration:underline;text-underline-offset:4px}
.asset-error{padding:80px 24px;font:18px/1.5 Arial,sans-serif}
:root:not(.interactive) .chapter{position:static;display:block;scroll-margin-top:80px}
.interactive #kitchen-copy{left:56%;right:5%;top:17%}.interactive #food-copy{left:6%;right:52%;top:15%}.interactive #rolls-copy{left:4%;right:58%;top:12%}.interactive #turn-copy h2{font-size:62px}
@media(max-width:760px){.interactive #kitchen-copy,.interactive #food-copy,.interactive #rolls-copy{left:6%;right:6%;top:14%}.interactive #turn-copy h2{font-size:46px}}
@media(max-width:760px){.nav{gap:10px;row-gap:7px;flex-wrap:wrap;padding:14px 8px;font-size:12px;line-height:18px}.interactive .story-panel{left:6%;right:6%;top:16%}.story-panel h1,.story-panel h2{font-size:54px;line-height:.85}.interactive .story-panel p{font-size:19px;max-width:320px;margin:18px auto 0}.story-panel a{font-size:19px;margin-top:16px}.interactive .journey-bottom{left:17px;right:17px;bottom:18px;font-size:12px}.scene-name{display:none}.welcome{grid-template-columns:1fr;gap:15px;padding:60px 22px 45px}.welcome>img{width:100%;max-height:32svh;object-fit:contain}.welcome-copy h2{font-size:42px}.welcome-copy>p{font-size:19px;margin-top:15px}.welcome-copy address{font-size:15px;line-height:1.4;margin-top:17px}.welcome-copy address a{margin-top:6px}.welcome-copy dl{font-size:14px;gap:6px 20px;margin:16px 0}.welcome-links{font-size:17px;gap:15px}.interactive .welcome{padding:62px 22px 60px;align-content:center}.interactive .welcome>img{max-height:29svh}.practical,.questions{padding:70px 24px 40px}.practical h2,.questions h2{font-size:50px}.practical>p{font-size:20px}.menu-items{columns:1}.practical summary,.questions summary{font-size:25px}.footer{padding:48px 24px 34px}.footer-top{grid-template-columns:1fr;gap:34px}.footer-mark{font-size:38px}.footer-bar{flex-direction:column;gap:8px;margin-top:34px}}
@media(max-height:680px) and (min-width:761px){.interactive .story-panel{top:14%}.story-panel h1,.story-panel h2{font-size:58px}.welcome-copy h2{font-size:44px}.welcome-copy address{font-size:16px;margin-top:15px}.welcome-copy dl{font-size:14px;margin:14px 0}.welcome-copy>p{font-size:18px;margin-top:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.nav{position:sticky}.chapter{position:static}.story-panel{padding:65px 24px}}

/* Flat festival palette: black and red, with white lettering and gold details. */
.nav{border-bottom:1px solid #5b4430}.nav a:hover,.nav a[aria-current]{color:var(--gold)}
.story-panel h1 span{color:var(--red)}.story-panel p{color:var(--gold)}.story-panel a,.welcome-links a,.practical-info a{color:var(--cream);text-decoration-color:var(--red)}
.scene-name{color:var(--gold)}
.welcome-copy h2{color:var(--red)}.welcome-copy>p,.welcome-copy dt{color:var(--gold)}
.practical{background:#7d2427}.practical h2,.questions h2,.menu-items strong{color:var(--gold)}.practical-info a{text-decoration:underline;text-decoration-color:var(--gold)}
.questions{border-top:1px solid #5b4430}.questions summary{color:var(--cream)}.questions details a{color:var(--gold);text-decoration:underline}

/* The opening is a real horizontal tabletop; the camera then tilts into the street. */
.table-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:36px auto}.table-gallery figure{margin:0}.table-gallery img{display:block;width:100%;height:auto}.table-gallery figcaption{margin-top:12px;font-size:20px;color:var(--gold)}.interactive .table-gallery{display:none}

.interactive .story-panel h1,.interactive .story-panel h2{color:#141313}
.interactive .story-panel h1 span{color:var(--red)}
.interactive .story-panel p{color:#603b26}
.interactive .story-panel a{color:#8c292b}
.interactive .at-table #home-copy{left:8%;right:8%;top:11%;text-align:center}
.interactive .at-table #home-copy h1{font-size:64px}
.interactive .at-table #home-copy p{margin:16px auto 0}
.interactive .at-table #home-copy a{margin-top:12px}
.meal-caption{display:none}
.interactive .journey-bottom a,.interactive .scene-name{background:#141313;padding:6px 10px}
.interior-still{display:block;width:min(100%,1100px);height:auto;margin:35px auto 0}.interactive .interior-still{display:none}
@media(max-width:900px){.table-gallery{grid-template-columns:1fr;max-width:420px}.interactive .at-table #home-copy{top:11%}.interactive .at-table #home-copy h1{font-size:50px}.interactive .at-table #home-copy p{font-size:17px;margin-top:12px}.interactive .at-table #home-copy a{font-size:17px}.interactive .meal-caption.is-visible{font-size:19px;bottom:65px;padding:10px 17px}}

@media(max-width:760px){.interactive .at-table #home-copy h1{color:var(--cream)}.interactive .at-table #home-copy p{color:var(--gold)}.interactive .at-table #home-copy a{background:var(--sky);color:var(--cream);padding:5px 12px}.interactive .at-table #home-copy{top:10%}}

.hall-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:1100px;margin:40px auto}.hall-gallery figure{margin:0}.hall-gallery img{display:block;width:100%;height:auto}.hall-gallery figcaption{font-size:20px;color:var(--gold);margin-top:12px}.interactive .hall-gallery{display:none}@media(max-width:760px){.hall-gallery{grid-template-columns:1fr;max-width:420px}}

/* Food captions and the final wall are part of the scroll journey. */
.interactive .meal-caption.is-visible{display:block;position:absolute;left:6%;right:55%;top:35%;bottom:auto;text-align:center;padding:0;pointer-events:none;color:#141313;will-change:transform,opacity}
.interactive .meal-caption.on-right{left:55%;right:6%}
.meal-caption h2{font:400 clamp(42px,4.4vw,64px)/.93 var(--display);text-wrap:balance}.meal-caption p{font:18px/1.4 Arial,sans-serif;max-width:35ch;margin:18px auto 0;color:#603b26;text-wrap:pretty}
.arrival-content{display:none}.interactive .arrival-content{display:block;position:absolute;inset:0;pointer-events:none}
.interactive .practical,.interactive .questions,.interactive .welcome{display:none}
.arrival-panel{position:absolute;left:48%;right:8%;top:15%;color:#141313;opacity:0;visibility:hidden;pointer-events:none;padding:25px 30px;background:#e4dfd4;max-height:72%;overflow:auto;scrollbar-width:thin;scrollbar-color:#8c292b #e4dfd4}
.arrival-panel.is-visible{visibility:visible;pointer-events:auto}.arrival-panel>h2{font-size:52px;line-height:.95;margin-bottom:20px}.arrival-panel>p{font:18px/1.5 Arial,sans-serif;margin-bottom:20px}
.arrival-panel .welcome-copy h2{font-size:54px;transform:none}.arrival-panel .welcome-copy>p,.arrival-panel .welcome-copy dt{color:#603b26}.arrival-panel .welcome-links a{color:#8c292b}.arrival-panel .welcome-copy address{margin-top:20px}.arrival-panel .welcome-copy dl{margin:20px 0}
.arrival-menu p{font:17px/1.5 Arial,sans-serif;margin-top:22px}.arrival-menu strong{display:block;font:27px/1.1 var(--display);color:#8c292b;margin-bottom:7px}
.arrival-questions details{margin-top:25px}.arrival-questions summary{font-size:25px;line-height:1.1;cursor:pointer}.arrival-questions p{font:17px/1.5 Arial,sans-serif;margin-top:13px}.arrival-questions a{color:#8c292b;text-decoration:underline}
@media(max-width:760px){.interactive .meal-caption.is-visible{padding:11px 15px;bottom:67px;max-width:91%}.meal-caption h2{font-size:22px}.meal-caption p{font-size:14px;line-height:1.35;margin-top:6px}.arrival-panel{left:5%;right:5%;top:30%;max-height:60%;padding:16px 13px}.arrival-panel>h2{font-size:35px;margin-bottom:15px}.arrival-panel>p{font-size:15px;line-height:1.35;margin-bottom:14px}.arrival-menu p{font-size:15px;line-height:1.35;margin-top:15px}.arrival-menu strong{font-size:23px;margin-bottom:5px}.arrival-questions details{margin-top:19px}.arrival-questions summary{font-size:23px}.arrival-questions p{font-size:15px;line-height:1.4;margin-top:10px}.arrival-panel .welcome-copy h2{font-size:35px}.arrival-panel .welcome-copy>p{font-size:17px;margin-top:12px}.arrival-panel .welcome-copy address{margin-top:13px}.arrival-panel .welcome-copy dl{margin:13px 0}.arrival-panel .welcome-links{gap:12px;font-size:16px}}

@media(max-width:760px){.arrival-panel{top:15%;max-height:75%}}
@media(max-width:760px){.interactive .meal-caption.is-visible,.interactive .meal-caption.on-right{left:6%;right:6%;top:14%;bottom:auto;max-width:none;padding:0}.meal-caption h2{font-size:44px}.meal-caption p{font-size:16px;line-height:1.4;max-width:32ch;margin-top:16px}}

/* Impeccable polish: a prominent Order CTA, legible dish captions, softened cards. */
.nav a[target="_blank"]{background:var(--red);color:#fff;padding:6px 17px;border-radius:999px;letter-spacing:.02em}
.nav a[target="_blank"]:hover,.nav a[target="_blank"]:focus-visible{background:var(--gold);color:#141313;text-decoration:none}
.meal-caption h2,.meal-caption p{text-shadow:0 1px 2px rgba(255,249,239,.85),0 0 18px rgba(255,249,239,.55)}
.interior-still{border-radius:16px}
/* Arrival panels read as flat notices mounted on the wall, not floating cards. */
.arrival-panel{border-radius:6px;background:#ece7d9;border:1px solid rgba(58,39,22,.42);box-shadow:inset 0 0 0 3px rgba(255,255,255,.4),0 1px 3px rgba(0,0,0,.14)}
.arrival-panel>h2{color:#8c292b}
/* Food name + description on a carved wooden menu board. */
.interactive .meal-caption.is-visible{padding:16px 26px 20px;border-radius:9px;color:var(--cream);background:linear-gradient(90deg,transparent 30%,rgba(0,0,0,.15) 30.5%,transparent 31%),linear-gradient(90deg,transparent 63%,rgba(0,0,0,.13) 63.5%,transparent 64%),linear-gradient(158deg,#71512f 0%,#573b23 52%,#472f19 100%);border:4px solid #392512;box-shadow:inset 0 0 0 2px rgba(223,183,106,.55),inset 0 3px 12px rgba(0,0,0,.4),inset 0 -4px 10px rgba(0,0,0,.32),0 12px 26px -12px rgba(20,12,4,.6)}
.interactive .meal-caption h2{color:var(--gold);text-shadow:0 2px 0 rgba(0,0,0,.5),0 -1px 0 rgba(255,255,255,.1)}
.interactive .meal-caption p{color:#efdcbb;text-shadow:0 1px 1px rgba(0,0,0,.5);max-width:34ch}
@media(max-width:760px){.interactive .meal-caption.is-visible{padding:12px 16px 14px}}

/* Full-screen loading splash until the illustrated world is ready. */
.loader{position:fixed;inset:0;z-index:200;background:var(--sky);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:24px;text-align:center;transition:opacity .55s ease,visibility .55s ease}
.loader-mark{font:400 clamp(42px,7vw,74px)/.82 var(--display);color:var(--cream)}
.loader-mark span{color:var(--red)}
.loader-tag{font:400 15px/1.5 Arial,sans-serif;color:var(--gold);letter-spacing:.03em;text-transform:uppercase}
.loader-spin{width:46px;height:46px;border-radius:50%;border:4px solid rgba(223,183,106,.22);border-top-color:var(--gold);animation:loader-turn .8s linear infinite}
@keyframes loader-turn{to{transform:rotate(360deg)}}
.loaded .loader{opacity:0;visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){.loader{transition:none}.loader-spin{animation-duration:2.4s}}
@media(max-width:760px){.nav a[target="_blank"]{padding:5px 12px}}

/* Impeccable/Hallmark pass: intro-band legibility, themed chrome, tighter type. */
html,body{overflow-x:clip}
@media(min-width:761px){.interactive .at-table #home-copy h1,.interactive .at-table #home-copy p{text-shadow:0 0 4px rgba(255,249,239,.98),0 0 9px rgba(255,249,239,.9),0 0 24px rgba(255,249,239,.75)}}
.story-panel h1,.story-panel h2,.welcome-copy h2,.footer-mark,.meal-caption h2,.practical h2,.questions h2,.arrival-panel>h2{letter-spacing:-.01em}
.welcome-copy dl,.welcome-copy address,.footer-hours,.footer-col address,.practical-info,.arrival-menu{font-variant-numeric:tabular-nums}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--sky)}
::-webkit-scrollbar-thumb{background:var(--red);border-radius:8px;border:3px solid var(--sky)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}
.practical summary,.questions summary,.arrival-questions summary{list-style:none;padding-left:32px;position:relative}
.practical summary::-webkit-details-marker,.questions summary::-webkit-details-marker,.arrival-questions summary::-webkit-details-marker{display:none}
.practical summary::before,.questions summary::before,.arrival-questions summary::before{content:"";position:absolute;left:3px;top:.30em;width:11px;height:11px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;opacity:.72;transform:rotate(-45deg);transition:transform .22s ease}
.practical details[open]>summary::before,.questions details[open]>summary::before,.arrival-questions details[open]>summary::before{transform:rotate(45deg)}
.practical summary:hover,.questions summary:hover{color:var(--gold)}
