@font-face{font-family:'Sunyang Brush';src:url('assets/fonts/sunyang-brush.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#e2d4b6;--ink:#504d3d;--muted:#827152;--line:#88704d44;--dark:#30271c;--seal:#85513e;--pale:#f0e4c8;--display:'Kaiti SC','STKaiti','KaiTi',serif;--body:'Songti SC','STSong',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body)}button,a,input,summary{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;cursor:pointer}a{text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--seal);outline-offset:5px}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}.quiet-link{padding:8px 0;border:0;background:none;font-size:12px;letter-spacing:.08em}.quiet-link:hover{color:#30271c}.page-header{max-width:1540px;margin:auto;padding:20px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.page-header>span{font-size:11px;letter-spacing:.25em;color:var(--muted)}main{max-width:1540px;margin:auto;padding:0 34px 24px}.intro{text-align:center;margin:10px 0 26px}.intro>p{font-size:10px;color:var(--muted);letter-spacing:.45em}.intro h1{font:400 40px/1.3 var(--display);letter-spacing:.3em;padding-left:.3em;margin:12px 0}.intro>div{font-size:12px;letter-spacing:.16em;color:var(--muted)}.scene{position:relative}.scene-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#88704d66 transparent;overscroll-behavior-x:contain;scroll-behavior:smooth}.scene-world{position:relative;aspect-ratio:2/1;overflow:hidden;isolation:isolate;background:#c9b88e}.scene-world>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 55%;transition:filter 1s}.scene-wash{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 45px #dbcaa144;transition:background 1s}.spot{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:11px;min-height:48px;padding:10px 15px;border:1px solid #ffffffd9;border-radius:2px;background:#30271c78;color:#fff;white-space:nowrap;font:21px/1.2 var(--display);letter-spacing:.08em;text-shadow:0 1px 4px #140f0aaa;transform:translate(-50%,-100%);transition:background .25s,opacity .4s}.spot i{display:grid;place-items:center;width:27px;height:27px;border:1px solid #fff;border-radius:50%;font:21px/1 var(--body);font-style:normal}.spot:after{content:'';position:absolute;left:50%;top:100%;height:20px;border-left:1px solid #fff8e2cc}.spot:hover{background:#30271cb0}.spot:focus-visible{outline-color:#fff5da}.entrance{left:16%;top:62%}.window{left:33%;top:69%}.hall{left:55%;top:79%}.kitchen{left:82%;top:47%}.scene-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;color:var(--muted);font-size:10px;letter-spacing:.15em}.pan-guide{display:none}.conversation{display:flex;align-items:center;justify-content:space-between;gap:45px;padding:22px 0 26px;border-top:1px solid var(--line)}.speaker,.eyebrow{font-size:10px;letter-spacing:.22em;color:var(--muted)}.conversation h2{font:400 26px/1.4 var(--display);margin:8px 0}.conversation h2:focus{outline:none}.conversation p{font-size:13px;line-height:1.9;margin:0;max-width:650px;color:#716149}.conversation-actions{min-width:220px;display:flex;flex-direction:column;gap:9px}.ink-button,.text-button{padding:12px 18px;border:1px solid #88704d88;background:transparent;font:17px/1.25 var(--display);letter-spacing:.07em;min-height:44px}.ink-button{background:#504735;color:#f2e6ca;border-color:#504735}.ink-button>span{margin-left:24px}.ink-button:hover:not(:disabled){background:#393224}.text-button{font-size:14px}.text-button:hover{background:#f0e4c866}.menu-sheet{position:absolute;z-index:5;right:24px;top:24px;width:325px;padding:28px;background:#eee1c5fa;border:1px solid #fff5ddaa;box-shadow:0 14px 50px #30271c35;max-height:calc(100% - 70px);overflow-y:auto}.close-menu{position:absolute;right:12px;top:10px;border:0;background:none;font:26px var(--body);width:32px;height:32px}.menu-sheet h2{font:24px/1.4 var(--display);font-weight:400;margin:10px 0}.menu-note{font-size:12px;line-height:1.7;color:var(--muted)}.dish{display:flex;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid var(--line);cursor:pointer}.dish input{appearance:none;width:17px;height:17px;flex-shrink:0;border:1px solid #88704d;background:transparent;display:grid;place-content:center}.dish input:checked:after{content:'✓';color:var(--seal);font-size:16px}.dish-name{font:21px var(--display)}.dish small{display:block;font:11px/1.6 var(--body);color:var(--muted);margin-top:6px}.selection-note{font-size:11px;color:var(--seal);min-height:17px}.menu-sheet .ink-button{width:100%;font-size:16px}.seat-mark{position:absolute;color:#fff5d9;background:#504735bc;padding:5px 10px;font:14px var(--display);transform:translate(-50%,-50%)}.seat-mark span{color:#e8c390}.table-meal{position:absolute;transform:translate(-50%,-50%);display:flex;gap:3px;align-items:center}.table-meal svg{width:38px;height:25px;filter:drop-shadow(0 2px 1px #30271c55)}.food-journey{padding:24px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:35px}.food-journey h2{font:25px/1.5 var(--display);font-weight:400}.route{border-bottom:1px solid var(--line);padding:12px 0}.route summary{font:19px var(--display);cursor:pointer}.route p{font-size:13px;line-height:1.9;color:#716149}.steps{display:flex;justify-content:center;gap:42px;padding:20px 0;border-top:1px solid var(--line)}.steps span{font-size:12px;letter-spacing:.12em;color:#9c8c6d}.steps b{font-size:10px;font-weight:400;margin-right:9px}.steps .active{color:#58452e}.steps .active:after{content:'·';margin-left:10px;color:var(--seal)}footer{display:flex;justify-content:space-between;gap:25px;color:var(--muted);font-size:10px;letter-spacing:.1em;padding-top:16px}footer details{max-width:450px}footer summary{cursor:pointer}footer p{line-height:1.9}.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}.steam{position:absolute;pointer-events:none;left:91%;top:37%;width:12px;height:48px;border-left:2px solid #fff5de66;border-radius:50%;opacity:0;filter:blur(2px)}.steam-two{left:92%;animation-delay:2.6s!important}@media(prefers-reduced-motion:no-preference){.steam{animation:steam 5s ease-out infinite}.menu-sheet{animation:unfold .35s ease-out}@keyframes steam{10%{opacity:.4}80%{opacity:0;transform:translate(-8px,-34px) scaleX(1.8)}}@keyframes unfold{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:900px){.menu-sheet{right:14px;top:14px;width:300px;padding:22px}.conversation{gap:25px}.conversation-actions{min-width:180px}.spot{font-size:18px;padding:9px 12px;gap:8px}.spot i{width:23px;height:23px;font-size:18px}}@media(max-width:600px){.page-header{padding:14px 18px}.page-header>span{display:none}main{padding:0 16px 22px}.intro{margin:12px 0 22px}.intro h1{font-size:32px}.intro>div{font-size:11px;letter-spacing:.03em}.scene-scroll{margin:0 -16px}.scene-world{width:780px;height:430px;aspect-ratio:auto}.spot{font-size:18px}.pan-guide{display:block;text-align:center;font-size:10px;color:var(--muted);letter-spacing:.13em;margin:12px 0}.scene-caption{font-size:9px;letter-spacing:.04em;gap:8px}.scene-caption>span:last-child{display:none}.conversation{display:block;padding:20px 0}.conversation h2{font-size:25px}.conversation-actions{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.conversation-actions>:only-child{grid-column:1/-1}.menu-sheet{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:calc(100dvh - 30px);padding:24px;z-index:10;box-shadow:0 0 0 100vmax #30271c66}.food-journey{grid-template-columns:1fr;gap:0;padding:16px 0}.food-journey h2{font-size:23px}.steps{gap:0;justify-content:space-between;padding:20px 0}.steps span{font-size:10px;letter-spacing:0}.steps b{margin-right:5px}footer{font-size:9px}.table-meal svg{width:29px}.steam{top:40%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.room-exterior{position:absolute;pointer-events:none;max-width:none;overflow:hidden}

#painterActor{position:absolute;z-index:1;pointer-events:none;transform:translate(-50%,-96.6%);max-width:none}
/* Horizontal comic balloon. Its downward tip tracks the speaker's crown. */
.speech-bubble{position:absolute;z-index:4;width:max-content;max-width:260px;padding:12px 21px;border:1.5px solid #292b26;border-radius:48% 46% 43% 47% / 38% 44% 40% 42%;background:#fffef9;color:#171a16;pointer-events:none;font:400 24px/1.4 'Sunyang Brush','Kaiti SC',cursive;font-synthesis:none;letter-spacing:.04em;filter:drop-shadow(0 1px 0 #0000000d)}
.speech-bubble:before,.speech-bubble:after{content:'';position:absolute;left:var(--tail-x,50%);top:calc(100% - 1px);transform:translateX(-50%);width:20px;height:18px;clip-path:polygon(0 0,100% 0,50% 100%);background:#292b26}
.speech-bubble:after{top:calc(100% - 2px);width:16px;height:17px;background:#fffef9}
.speech-bubble small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.speech-bubble #speechText{display:block;writing-mode:horizontal-tb;white-space:normal;line-height:1.4;text-align:center;-webkit-text-stroke:0}
body[data-actor-moving=true] [data-place],body[data-actor-moving=true] #actions{pointer-events:none;opacity:.45}
@media(max-width:600px){.speech-bubble{font-size:22px;max-width:230px;padding:10px 18px}}

body[data-actor-moving=true] [data-place]{visibility:hidden}

#hostActor{position:absolute;pointer-events:none;z-index:1;max-width:none}

.entrance{transform:translate(0,-50%);min-height:42px;padding:8px 13px}.entrance:after{display:none}
.window,.hall{min-width:48px;justify-content:center;padding:9px 14px}.window:after,.hall:after{height:14px}
/* Warm window light and soft botanical shadows on the projected food list. */
.menu-open{overflow:hidden}
.menu-shade{position:fixed;inset:0;z-index:20;background:#3a342978;backdrop-filter:sepia(.18) brightness(.88);cursor:pointer}
.menu-sheet{position:fixed;z-index:21;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:38px 45px 32px;border:1px solid #fff0ba66;border-radius:3px;background-color:#d5bd7e;background-image:url('assets/menu-window-shadow.svg'),radial-gradient(ellipse at 42% 43%,#fff2bf 0%,#f4df9f 42%,#d7c087 78%,#c1ac79 100%);background-size:100% 100%;box-shadow:0 0 55px 16px #f4d58924,0 26px 90px #16150f80,inset 0 0 42px #a38b5055;color:#514527;isolation:isolate;animation:none}
.menu-sheet:before{content:'';position:fixed;inset:-12px;z-index:-1;pointer-events:none;clip-path:polygon(22% 0,78% 0,100% 18%,100% 82%,78% 100%,22% 100%,0 82%,0 18%);background:#ffe8a526;filter:blur(14px)}
.menu-sheet h2{font-family:'Sunyang Brush',var(--display);font-size:28px;margin:12px 0}
.menu-sheet .eyebrow{letter-spacing:.3em;color:#77643b}.menu-sheet .menu-note,.menu-sheet .dish small{color:#79653f}
.menu-sheet .dish{padding:18px 0;border-color:#8d774b44}.menu-sheet .dish-name{font-size:24px;font-family:'Sunyang Brush',var(--display)}
.menu-sheet .ink-button{background:#655331;border-color:#655331;color:#fff0c9}.menu-sheet .ink-button:disabled{opacity:.42}
.menu-sheet .close-menu{top:12px;right:12px;color:#6e5e37}.menu-sheet .selection-note{color:#78513a;line-height:1.6}
@media(prefers-reduced-motion:no-preference){.menu-shade{animation:dimRoom .4s ease-out}.menu-sheet{animation:projectMenu .5s ease-out}@keyframes dimRoom{from{opacity:0}to{opacity:1}}@keyframes projectMenu{from{opacity:0;filter:blur(3px);transform:translate(-50%,-48%) scale(.98)}to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}}}
@media(max-width:600px){.menu-sheet{inset:50% auto auto 50%;width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:30px 26px 24px}.menu-sheet .dish{padding:15px 0}}
.scene-actions{position:absolute;right:18px;bottom:18px;z-index:3;display:flex;gap:10px;padding:7px;background:#eee1c5ed;border:1px solid #88704d66}
.scene-actions button{min-width:78px}.intro{margin:4px 0 24px}.intro h1{margin:8px 0}
@media(max-width:600px){.scene-actions{position:sticky;left:16px;bottom:16px;width:max-content;max-width:calc(100vw - 32px);margin-top:-70px}.intro{margin:8px 0 18px}}

/* Food and brush lettering float directly over the dimmed restaurant. */
.menu-sheet{width:min(980px,calc(100vw - 48px));padding:42px 22px 26px;max-height:calc(100dvh - 32px);background:none;border:0;border-radius:0;box-shadow:none;isolation:auto;overflow-x:hidden;overflow-y:auto;color:#fff0ce}
.menu-sheet:before{display:none}
.menu-shade{background:radial-gradient(ellipse at 50% 43%,#332c1d88,#29271bc4);backdrop-filter:brightness(.82) sepia(.15)}
.menu-sheet>.eyebrow,.menu-sheet>.menu-note{display:none}
.menu-sheet #menuTitle{margin:0 0 36px;padding:10px 0 16px;text-align:center;font:400 clamp(30px,4.6vw,52px)/1.5 'Sunyang Brush',var(--display);letter-spacing:.09em;color:#ffedbe;text-shadow:0 2px 12px #302817,0 0 28px #fce3a238;white-space:nowrap;overflow:visible}
.menu-sheet #menuTitle span{display:inline-block;will-change:transform,opacity}
.menu-sheet #dishes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.menu-sheet .dish{display:flex;position:relative;flex-direction:column;gap:8px;margin:0;padding:0 0 12px;border:0;text-align:center;min-width:0}
.menu-sheet .dish input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;z-index:2;cursor:pointer}
.food-portrait{position:relative;display:block;width:100%;aspect-ratio:1;transition:transform .35s ease,filter .35s ease;filter:drop-shadow(0 10px 14px #211a1940)}
.food-portrait img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}
.menu-sheet .dish .dish-name{font:400 29px/1.4 'Sunyang Brush',var(--display);letter-spacing:.16em;color:#f5e6c5;text-shadow:0 2px 8px #201c11}
.food-selected{position:absolute;right:16%;bottom:8%;display:grid;place-items:center;width:28px;height:28px;border:1px solid #f8e2a8;border-radius:50%;background:#75613bed;color:#fff1c5;font-size:19px;opacity:0;transform:scale(.7);transition:opacity .2s,transform .2s}
.dish input:checked~.food-portrait{filter:drop-shadow(0 0 17px #fff0bc90);transform:translateY(-7px)}
.dish input:checked~.food-portrait .food-selected{opacity:1;transform:scale(1)}
.dish:has(input:focus-visible){outline:1px solid #ffe5a8;outline-offset:5px;border-radius:8px}
.menu-sheet .selection-note{margin:20px 0 16px;text-align:center;font:13px/1.6 var(--body);letter-spacing:.07em;color:#f0ddb6;min-height:21px}
.menu-sheet #prepare{display:block;width:auto;min-width:210px;margin:0 auto;padding:12px 25px;border:1px solid #e4c98c99;background:#d2b77a26;color:#ffecc2;font:22px/1.4 'Sunyang Brush',var(--display);box-shadow:0 4px 20px #19150e26}
.menu-sheet #prepare:hover:not(:disabled){background:#d2b77a45}.menu-sheet #prepare:disabled{opacity:.4}
.menu-sheet .close-menu{position:absolute;top:0;right:0;width:42px;height:42px;color:#f9e5b5;font-size:29px}
.table-meal img{object-fit:contain;width:48px;height:40px}
.menu-sheet.leaving{pointer-events:none}
@media(prefers-reduced-motion:no-preference){
 .menu-sheet{animation:foodReveal .55s ease-out both}
 .menu-sheet #menuTitle span{animation:brushHover 4s ease-in-out infinite;animation-delay:calc(var(--i)*-.22s)}
 .menu-sheet .food-portrait img{animation:foodHover 5s ease-in-out infinite;animation-delay:calc(var(--dish-i)*-.8s)}
 .menu-sheet.leaving #menuTitle span{animation:brushWind 1.05s cubic-bezier(.3,0,.75,1) forwards;animation-delay:calc(var(--i)*.025s)}
 .menu-sheet.leaving #dishes,.menu-sheet.leaving .selection-note,.menu-sheet.leaving #prepare,.menu-sheet.leaving .close-menu{animation:foodFade .8s ease-in forwards}
 @keyframes brushHover{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
 @keyframes foodHover{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
 @keyframes brushWind{0%{opacity:1;filter:blur(0);transform:translate(0,0)}35%{opacity:.85}100%{opacity:0;filter:blur(7px);transform:translate(var(--wind-x),var(--wind-y)) rotate(var(--wind-turn)) scale(.8)}}
 @keyframes foodFade{to{opacity:0;transform:translate(20px,-12px);filter:blur(4px)}}
 @keyframes foodReveal{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}
}
@media(max-width:600px){
 .menu-sheet{width:calc(100vw - 24px);padding:44px 12px 20px;max-height:calc(100dvh - 24px)}
 .menu-sheet #menuTitle{font-size:clamp(25px,6.9vw,36px);letter-spacing:.03em;margin-bottom:20px}
 .menu-sheet #dishes{gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}
 .menu-sheet .dish .dish-name{font-size:19px;letter-spacing:.02em;white-space:nowrap}
 .food-selected{width:22px;height:22px;font-size:15px;right:7%;bottom:0}
 .menu-sheet .selection-note{font-size:11px;letter-spacing:0;min-height:36px;margin-top:20px}
 .menu-sheet #prepare{font-size:20px;min-width:180px}.table-meal img{width:34px;height:28px}
}

/* Compact vertical food choices float beside the kitchen counter. */
.menu-sheet{
 inset:50% clamp(34px,7vw,110px) auto auto;
 transform:translateY(-45%);
 width:min(290px,calc(100vw - 40px));
 padding:24px 12px 18px;
 max-height:calc(100dvh - 44px);
}
.menu-sheet #menuTitle{
 margin:0 0 12px;
 padding:0 34px 6px 0;
 text-align:left;
 font-size:clamp(25px,2.5vw,34px);
 letter-spacing:.035em;
}
.menu-sheet #dishes{display:flex;flex-direction:column;gap:3px}
.menu-sheet .dish{
 display:grid;
 grid-template-columns:92px minmax(0,1fr);
 align-items:center;
 gap:8px;
 min-height:92px;
 padding:0;
 text-align:left;
}
.food-portrait{width:92px;height:92px;aspect-ratio:auto}
.menu-sheet .dish .dish-name{font-size:23px;letter-spacing:.08em;white-space:nowrap}
.food-selected{right:3px;bottom:3px;width:23px;height:23px;font-size:15px}
.dish input:checked~.food-portrait{transform:translateX(-5px)}
.menu-sheet .selection-note{margin:8px 0 9px;text-align:left;padding-left:100px;min-height:18px;font-size:11px}
.menu-sheet #prepare{min-width:172px;margin:0 0 0 auto;padding:9px 18px;font-size:19px}
.menu-sheet .close-menu{top:-5px;right:5px}
@media(max-width:600px){
 .menu-sheet{inset:50% 12px auto auto;transform:translateY(-45%);width:214px;padding:18px 8px 14px;max-height:calc(100dvh - 24px)}
 .menu-sheet #menuTitle{font-size:24px;line-height:1.35;margin-bottom:8px;padding-right:28px;white-space:normal}
 .menu-sheet .dish{grid-template-columns:64px minmax(0,1fr);gap:5px;min-height:64px}
 .food-portrait{width:64px;height:64px}
 .menu-sheet .dish .dish-name{font-size:17px}
 .menu-sheet .selection-note{padding-left:69px;margin:5px 0;min-height:16px}
 .menu-sheet #prepare{min-width:145px;padding:8px 10px;font-size:17px}
}

/* Eight cutout dishes occupy the central two-row area from the reference. */
.menu-sheet{inset:50% auto auto 25%;transform:translateY(-50%);width:47%;max-width:760px;padding:30px 12px 18px;max-height:calc(100dvh - 32px)}
.menu-sheet #menuTitle{text-align:center;font-size:clamp(24px,2.7vw,40px);padding:0 0 12px;margin-bottom:12px;white-space:nowrap}
.menu-sheet #dishes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 10px}
.menu-sheet .dish{display:flex;flex-direction:column;gap:2px;min-height:0;text-align:center;padding:0}
.menu-sheet .food-portrait{width:clamp(62px,7.8vw,125px);height:clamp(62px,7.8vw,125px)}
.menu-sheet .dish .dish-name{font-size:clamp(15px,1.6vw,24px);letter-spacing:.04em}
.menu-sheet .selection-note{padding:0;text-align:center;margin:20px 0 10px;min-height:18px}
.menu-sheet #prepare{margin:0 auto}
.table-meal{max-width:170px;flex-wrap:wrap;justify-content:center}
@media(max-width:700px){
 .menu-sheet{left:5%;width:90%;max-height:calc(100dvh - 24px);padding:28px 8px 16px}
 .menu-sheet #menuTitle{font-size:clamp(22px,5vw,30px);white-space:normal}
 .menu-sheet #dishes{gap:16px 5px}
 .menu-sheet .food-portrait{width:clamp(54px,16vw,90px);height:clamp(54px,16vw,90px)}
 .menu-sheet .dish .dish-name{font-size:15px}
}

/* A single floating row above the guests. */
.dining-guest{position:absolute;z-index:1;transform:translate(-50%,-100%);pointer-events:none}
.waiting-guests{position:absolute;z-index:1;transform:translate(-50%,-100%);pointer-events:none}
@media(prefers-reduced-motion:no-preference){.waiting-guests{animation:queueAppear 1.2s ease-out both}@keyframes queueAppear{from{opacity:0}to{opacity:1}}}
.guest-banquet{position:absolute;inset:0;pointer-events:none;z-index:1}
.guest-banquet img{position:absolute;object-fit:contain;transform:translate(-50%,-100%);filter:drop-shadow(0 1px 1px #39281485)}
.menu-shade{background:none;backdrop-filter:none;animation:none}
.menu-open .seat-mark,.menu-open .scene-actions{visibility:hidden}
.menu-shade{background:rgba(0,0,0,.7);backdrop-filter:none}
.menu-open.thinking-ready #painterActor{visibility:hidden}
#thinkingPainter{position:fixed;transform:translate(-50%,-100%);pointer-events:none;filter:brightness(1.14) drop-shadow(0 0 12px #ffdf9b8c) drop-shadow(0 0 35px #ffdc9259);z-index:-1}
#thinkingWords{position:fixed;margin:0;color:#fff0cc;font:20px/1.7 'Sunyang Brush',var(--display);letter-spacing:.08em;text-shadow:0 2px 6px #000,0 0 15px #efd49d60;pointer-events:none}
.menu-sheet.leaving #thinkingWords{animation:foodFade .9s ease-in forwards}
.menu-sheet.leaving #thinkingPainter{opacity:0;transition:opacity 1.6s ease}
@media(max-width:700px){#thinkingWords{font-size:16px;max-width:200px}}
.menu-sheet{inset:var(--menu-top,220px) auto auto var(--menu-left,4%);width:var(--menu-width,92%);max-width:none;max-height:none;transform:none;padding:0;overflow:visible;animation:none}
.menu-sheet #menuTitle{font-size:clamp(24px,2.7vw,38px);margin:0 0 22px;padding:0;color:#fff1cf;text-shadow:0 2px 3px #372817,0 0 10px #372817}
.menu-sheet #dishes{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:10px;overflow:visible}
.menu-sheet .food-portrait{width:min(100%,110px);height:auto;aspect-ratio:1;filter:drop-shadow(0 12px 6px #35271985) drop-shadow(0 0 5px #fff1c9a0)}
.menu-sheet .dish .dish-name{font-size:clamp(14px,1.65vw,23px);text-shadow:0 2px 3px #251c0f,0 0 7px #251c0f}
.menu-sheet .selection-note{display:none}
.menu-sheet #prepare{position:fixed;margin:0;min-width:155px;padding:9px 15px;background:#51432bc9;border-color:#ffe3ac;color:#fff0cf;box-shadow:0 5px 18px #30231750;font-size:19px}
.menu-sheet .close-menu{top:-3px;right:0;text-shadow:0 2px 4px #302317}
@media(prefers-reduced-motion:no-preference){
 .menu-sheet .food-portrait img{animation:foodHoverHigh 4s ease-in-out infinite;animation-delay:calc(var(--dish-i)*-.45s)}
 .menu-sheet.leaving #dishes{animation:none}
 .menu-sheet.leaving .dish{animation:dishWind 1.3s cubic-bezier(.25,.1,.65,1) forwards;animation-delay:calc(var(--dish-i)*.055s)}
 .menu-sheet.leaving #menuTitle span{animation:letterWindWide 1.25s ease-in forwards;animation-delay:calc(var(--i)*.03s)}
 @keyframes foodHoverHigh{0%,100%{transform:translateY(3px) rotate(-2deg)}50%{transform:translateY(-13px) rotate(2deg)}}
 @keyframes dishWind{20%{opacity:1;transform:translate(-8px,-12px) scale(1.08)}100%{opacity:0;transform:translate(150px,-145px) rotate(20deg) scale(.35);filter:blur(12px)}}
 @keyframes letterWindWide{to{opacity:0;transform:translate(230px,-130px) rotate(22deg) scale(.5);filter:blur(12px)}}
}
@media(max-width:700px){
 .menu-sheet #dishes{display:flex;flex-direction:row;gap:15px;overflow-x:auto;overflow-y:hidden;padding:20px 8px 22px;margin-top:-12px;scrollbar-width:thin;overscroll-behavior-x:contain;touch-action:pan-x}
 .menu-sheet .dish{flex:0 0 70px}
 .menu-sheet .food-portrait{width:70px;height:70px}
 .menu-sheet #menuTitle{font-size:24px;margin-bottom:16px;padding-right:28px}
 .menu-sheet #prepare{font-size:17px;min-width:145px}
}

/* Warm gilt lattice corners frame the invitation to order. */
.menu-sheet #prepare{padding:15px 24px;min-width:184px;border:1px solid #c5a66a;border-radius:7px 1px;background:linear-gradient(135deg,#655638ed,#30291fed);box-shadow:inset 0 0 0 4px #382f22,inset 0 0 0 5px #b39a636e,0 6px 20px #0005;color:#ffedbf;letter-spacing:.12em;transition:box-shadow .3s,background .3s}
.menu-sheet #prepare:before,.menu-sheet #prepare:after{content:'';position:absolute;width:17px;height:17px;pointer-events:none;background:linear-gradient(#dbbc7d,#dbbc7d) 5px 5px/8px 1px no-repeat,linear-gradient(#dbbc7d,#dbbc7d) 5px 5px/1px 8px no-repeat;border-left:1px solid #dbbc7d;border-top:1px solid #dbbc7d}
.menu-sheet #prepare:before{left:8px;top:8px}
.menu-sheet #prepare:after{right:8px;bottom:8px;transform:rotate(180deg)}
.menu-sheet #prepare:hover:not(:disabled){background:linear-gradient(135deg,#7b6844,#423724);box-shadow:inset 0 0 0 4px #382f22,inset 0 0 0 5px #d7bd81aa,0 0 22px #e7c98a3b}
.menu-sheet #prepare:disabled{opacity:.58}
#thinkingWords{font-size:0;line-height:1;text-shadow:none;filter:drop-shadow(0 2px 3px #000)}
.thought-line{display:flex;flex-wrap:wrap;align-items:center;min-height:30px}
.thought-glyph{display:block;width:22px;height:22px;flex:0 0 22px}
.thought-dots{display:flex;gap:5px;margin:8px 0 0 3px;height:8px;align-items:center}
.thought-dots i{width:4px;height:4px;background:#edd6a2;box-shadow:0 0 6px #e9d5a36b}
@media(prefers-reduced-motion:no-preference){
 .thought-glyph{animation:thoughtType .18s steps(3,end) both;animation-delay:calc(var(--char)*.04s)}
 .thought-dots i{animation:thoughtPulse 1.5s ease-in-out infinite}
 .thought-dots i:nth-child(2){animation-delay:.2s}.thought-dots i:nth-child(3){animation-delay:.4s}
 @keyframes thoughtType{from{opacity:0;transform:translateY(3px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
 @keyframes thoughtPulse{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
}
@media(max-width:700px){.thought-glyph{width:16px;height:16px;flex-basis:16px}.thought-line{min-height:24px}.menu-sheet #prepare{min-width:166px;padding:13px 20px}}
.menu-sheet #prepare{min-width:0;padding:13px 18px;letter-spacing:.06em}
.menu-sheet #prepare>span{margin-left:7px}

.queue-number{position:absolute;z-index:2;pointer-events:none;height:auto;transform:translate(-50%,-100%);filter:drop-shadow(0 1px 1px #32291f) drop-shadow(0 0 3px #473621);}
@media(prefers-reduced-motion:no-preference){.queue-number{animation:queueNumberFloat 3.6s ease-in-out infinite}@keyframes queueNumberFloat{0%,100%{transform:translate(-50%,-100%)}50%{transform:translate(-50%,calc(-100% - 3px))}}}

/* Each dish is anchored by its base to the painted tabletop, including on resize. */
.table-meal{inset:0;transform:none;display:block;max-width:none;pointer-events:none;z-index:1}
.table-meal img,.guest-banquet img{position:absolute;object-fit:contain;object-position:center bottom;transform:translate(-50%,-100%);filter:drop-shadow(0 1px 1px #39281465)}
.queue-ticket{transform:translate(-50%,-100%);font-size:18px;padding:9px 15px;white-space:nowrap;z-index:2}
.header-actions{display:flex;align-items:center;gap:14px}
#musicToggle[aria-pressed="false"]{opacity:.7}
@media(max-width:600px){.header-actions{gap:8px}.header-actions .quiet-link{font-size:11px;padding:8px 9px}}
