/* Quiet late-night typography and clear table-side speech. */
@font-face{font-family:DinerMyeongjo;src:url('./assets/fonts/nanum-myeongjo.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--reading-serif:DinerMyeongjo,'Times New Roman','Noto Serif CJK KR',serif}
#guest-dialog #talk-name,.sheet-header h2,#story-dialog .sheet-header h2,#report-dialog .sheet-header h2,.kitchen-header h2,.process-heading h3,.room-task b,.completed-dish h3,.completed-dish>strong{font-family:var(--reading-serif);font-weight:400;letter-spacing:.015em;text-shadow:none;font-synthesis:none;line-height:1.45}
.room-task b{font-size:clamp(21px,5.2vw,29px);margin:6px 0 12px}
.process-heading h3{font-size:clamp(24px,6.4vw,33px);margin:8px 0 12px}
.kitchen-header h2{font-size:clamp(18px,4.5vw,24px)}
#guest-dialog .talk-card{padding-top:16px}
#guest-dialog .talk-header{margin-bottom:12px}
#guest-dialog #talk-name{font-size:28px;margin:5px 0 8px}
#guest-dialog #talk-profile{font-size:14px;line-height:1.7;margin-bottom:10px;color:#534733}
#guest-dialog .talk-notes{margin:8px 0 12px}
#guest-dialog .talk-player-line{margin:14px 0 18px 18px;padding:13px 16px;background:#f5eddb url('./assets/ui-washi-v21.webp') center/580px;border:0;border-left:3px solid #9b7d42;border-radius:0;box-shadow:0 2px 4px #50321926;color:#403928;text-shadow:none}
#guest-dialog .talk-player-line::before{content:none}
#guest-dialog .talk-owner-label{display:block;font:600 13px/1.5 var(--sans);letter-spacing:.04em;color:#6a5030;margin:0 0 7px}
#guest-dialog #talk-player-words{margin:0;font:400 16px/1.85 var(--reading-serif);color:#403928;overflow-wrap:anywhere}
#guest-dialog .talk-speech{padding:18px 17px;margin-top:14px;min-height:0}
#guest-dialog #talk-line{font:400 17px/1.9 var(--reading-serif);color:#403523;margin:0}
#guest-dialog .talk-choices:empty{display:none}
/* Appliance markers are wooden nameplates fastened to the kitchen's surfaces. */
.kitchen-screen .room-hotspot span{font:400 15px/1.5 var(--reading-serif);color:#fff0cc;min-width:72px;min-height:44px;display:flex;justify-content:center;align-items:center;padding:8px 14px;border:4px solid #76502b;border-image:var(--walnut-frame) 10.2% / 1 / 0 stretch;border-radius:0;background:linear-gradient(#76502b30,#28180e60),url('./assets/ui-walnut-v21.webp') center/260px;box-shadow:0 3px 4px #0008,inset 0 1px #e9bf7b55;text-shadow:0 1px 1px #000;white-space:nowrap}
.kitchen-screen .station-next span{color:#fff0c4;filter:drop-shadow(0 0 5px #ffc96570)}
.kitchen-screen .room-task{border:5px solid #76502b;border-image:var(--walnut-frame) 10.2% / 1 / 0 stretch;border-radius:0}
.kitchen-screen .room-task>span{font:400 14px/1.8 var(--reading-serif);color:#f3dfb8}
.kitchen-screen .measure-status{background:#f1e5c9 url('./assets/ui-washi-v21.webp') center/600px;border:3px solid #bda979;border-radius:2px;box-shadow:0 3px 6px #28180755;color:#483e2b}
.kitchen-screen .measure-status>b{font-weight:500}
.kitchen-screen .measure-progress{border-radius:2px;background:#b49a6e40;box-shadow:inset 0 1px 3px #4e351a55}
.kitchen-screen .measure-progress>i{background:linear-gradient(90deg,#ac7c38,#d5b56a);border-radius:2px}
/* The sole enabled next action has a gold rim, while the paper and wood remain visible. */
#kitchen-footer .primary:not(:disabled){border:2px solid #e5c276;background-image:linear-gradient(#f3d79720,#341c1133),url('./assets/ui-walnut-v21.webp');box-shadow:inset 0 1px 2px #fff0b9aa,inset 0 -2px 2px #46250f,0 0 0 1px #8d642c,0 0 15px #e2b65370,0 4px 0 #301d10;color:#fff1c8;font:500 17px/1.6 var(--reading-serif);animation:next-action-gold 2.8s ease-in-out infinite}
@keyframes next-action-gold{50%{box-shadow:inset 0 1px 2px #fff0b9cc,inset 0 -2px 2px #46250f,0 0 0 1px #b58b42,0 0 20px #e2b65399,0 4px 0 #301d10}}
#kitchen-footer>p:empty,.process-heading>p:empty,.action-counter:empty{display:none}
#kitchen-footer .primary{margin-bottom:4px}
@media(max-width:359px){#guest-dialog .talk-card{padding-left:14px;padding-right:14px}#guest-dialog #talk-player-words{font-size:15px}#guest-dialog #talk-line{font-size:16px}#guest-dialog .talk-player-line{margin-left:10px}.kitchen-screen .room-hotspot span{font-size:13px;min-width:64px;padding:7px 10px}#kitchen-footer .primary:not(:disabled){font-size:16px}}
@media(prefers-reduced-motion:reduce){#kitchen-footer .primary:not(:disabled){animation:none}}

/* The speaking guest sits immediately beside her/his own name and words. */
#guest-dialog .talk-guest-message{display:flex;align-items:flex-start;gap:13px;margin:18px 0 12px}
#guest-dialog .talk-guest-message .talk-portrait{position:relative;inset:auto;flex:0 0 64px;width:64px;height:auto;aspect-ratio:3/4;margin:1px 0 0;overflow:hidden;filter:none;border:0;background:none}
#guest-dialog .talk-guest-message .talk-portrait .actor{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:3/4}
#guest-dialog .talk-guest-copy{flex:1;min-width:0}
#guest-dialog .talk-guest-copy #talk-name{font:500 17px/1.6 var(--reading-serif);margin:0 0 5px;color:#5c4328}
#guest-dialog .talk-guest-copy #talk-profile{font:400 12px/1.6 var(--reading-serif);margin:0 0 7px}
#guest-dialog .talk-guest-copy .talk-speech{margin:5px 0 0;padding:15px 16px}
#guest-dialog .talk-guest-copy .talk-speech::before{left:-6px;top:15px}
#guest-dialog .talk-player-line{margin-left:70px}
#guest-dialog .talk-notes{margin:4px 0 10px}
@media(max-width:359px){#guest-dialog .talk-guest-message{gap:10px}#guest-dialog .talk-guest-message .talk-portrait{flex-basis:52px;width:52px}#guest-dialog .talk-player-line{margin-left:38px}#guest-dialog .talk-guest-copy .talk-speech{padding:13px 12px}}

/* The service count is a small printed tally slip, separate from actionable signs. */
.service-bar.is-serving{gap:10px}
#service-hint{white-space:pre-line;word-break:keep-all;overflow-wrap:break-word;line-height:1.85;margin:0;max-width:100%}
.service-progress{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:6px 12px;max-width:100%;min-height:0;color:#66543a;background:#e4d4b5 url('./assets/ui-washi-v21.webp') center/400px;border:0;border-radius:1px;box-shadow:inset 0 1px #fff3d4a6,0 2px 3px #0004;font:400 11px/1.65 var(--reading-serif);letter-spacing:.02em;pointer-events:none}
.service-progress>span{white-space:nowrap}
.service-progress b{font:500 12px/1.65 var(--reading-serif);font-variant-numeric:tabular-nums;color:#4f412d;margin-left:4px}
.service-progress>i{width:1px;height:13px;background:#9f89634d}
@media(max-width:359px){.service-progress{gap:9px;padding:5px 10px}.service-progress b{font-size:11px}#service-hint{font-size:11px}}
/* One quiet printed typeface throughout game UI; the approved movie is untouched. */
.game-app,.sheet,#guest-dialog{--sans:DinerMyeongjo,'Times New Roman',serif;--serif:DinerMyeongjo,'Times New Roman',serif;--brush:DinerMyeongjo,'Times New Roman',serif;font-family:var(--reading-serif);font-synthesis:none}
.sheet-header h2,#story-dialog .sheet-header h2,#report-dialog .sheet-header h2{font:400 23px/1.5 var(--reading-serif);letter-spacing:.01em;margin-top:4px}
#story-content .story-choice-heading h3{font:400 21px/1.6 var(--reading-serif);letter-spacing:0}
#story-content .story-choice-heading>span,#story-content .story-choice-heading p{font:400 12px/1.7 var(--reading-serif)}
/* Call attention to the label, not a giant outline around the appliance. */
.kitchen-screen .room-hotspot.station-next{border:0;outline:0;box-shadow:none;animation:none}
.kitchen-screen .room-hotspot.station-next span{border:2px solid #e5c276;border-image:none;color:#fff0c4;filter:none;box-shadow:inset 0 1px #f9dfa488,0 0 12px #e6bc6266,0 3px 4px #0008;animation:appliance-label-heartbeat 2.6s ease-in-out infinite;transform-origin:center}
@keyframes appliance-label-heartbeat{0%,25%,80%,100%{transform:translate(-50%,50%) scale(1)}40%{transform:translate(-50%,50%) scale(1.055)}55%{transform:translate(-50%,50%) scale(1)}65%{transform:translate(-50%,50%) scale(1.03)}}
.kitchen-screen .room-hotspot:focus-visible{outline:0}
.kitchen-screen .room-hotspot:focus-visible span{outline:2px solid #f6d796;outline-offset:3px}
.kitchen-header #kitchen-back,.scene-controls #area-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:0;padding:7px 10px;border:3px solid #76502b;border-image:var(--walnut-frame) 10.2% / 1 / 0 stretch;border-radius:0;background:linear-gradient(#76502b35,#28180e75),url('./assets/ui-walnut-v21.webp') center/240px;color:#f8e6be;box-shadow:0 2px 3px #0006,inset 0 1px #e4ba7255;font:400 13px/1.5 var(--reading-serif);white-space:nowrap;text-shadow:0 1px #28180e}
#kitchen-back .back-label{font:inherit;color:inherit;letter-spacing:0}
.kitchen-header #kitchen-back:active,.scene-controls #area-toggle:active{transform:translateY(1px);box-shadow:inset 0 1px 4px #0c0608a6}
.game-app #resume-kitchen{border:2px solid #e5c276;border-radius:1px;background:#f1e3c7 url('./assets/ui-washi-v21.webp') center/420px;color:#584328;min-height:44px;font:400 14px/1.7 var(--reading-serif);box-shadow:0 0 12px #e1b76088,0 2px 4px #0006;animation:none}
.game-dock #story-badge{animation:none;filter:drop-shadow(0 0 3px #ffc45e88)}
/* Ingredients are the primary view; refilling is a compact secondary row. */
#kitchen-footer.fridge-footer{max-height:47dvh;padding-top:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
.recipe-ingredients{margin:0 0 10px;color:#f7e7c1}
.recipe-ingredients>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
.recipe-ingredients h3{font:400 16px/1.5 var(--reading-serif);margin:0;color:#f7e7c1}
#fridge-selection-status{font:400 13px/1.6 var(--reading-serif);color:#e5c276}
.recipe-ingredient-cards{display:grid;grid-template-columns:repeat(var(--ingredient-columns),minmax(0,1fr));gap:8px}
.required-ingredient{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;padding:7px 5px;background:#f3e6ca url('./assets/ui-washi-v21.webp') center/400px;border:2px solid #d2b470;box-shadow:0 2px 3px #0004;text-align:center;color:#51412a}
.required-ingredient>.food-art{width:38px!important;height:38px;flex:0 0 38px;aspect-ratio:1;border:0;border-radius:0;padding:0;opacity:1;filter:none}
.required-ingredient>b{font:500 13px/1.5 var(--reading-serif);overflow-wrap:anywhere}
.required-ingredient>.ingredient-state{font:400 11px/1.5 var(--reading-serif);color:#8a632b;border:0;border-radius:0;padding:0;background:none}
.required-ingredient.is-ready{border-color:#7e9a60;background-image:linear-gradient(#d5dfb844,#d5dfb844),url('./assets/ui-washi-v21.webp')}
.required-ingredient.is-ready>.ingredient-state{color:#45683c;font-weight:600}
.fridge-footer .stock-inspector{padding-top:8px;border-top:1px solid #c7a9744d;margin:0 0 10px}
.fridge-footer .stock-inspector>div:first-child{margin-bottom:5px;font-size:12px}
.fridge-footer .refill-order{grid-template-columns:126px minmax(0,1fr);gap:8px}
.fridge-footer .quantity-stepper{grid-template-columns:44px minmax(30px,1fr) 44px;gap:2px}
.fridge-footer .quantity-stepper button{min-width:44px;min-height:44px;height:44px;padding:5px;font-size:18px}
.fridge-footer .quantity-stepper input{height:44px;width:100%;min-width:0;font-size:16px}
#kitchen-footer.fridge-footer .refill-order>[data-refill]{min-height:44px;padding:7px 5px;font:400 12px/1.5 var(--reading-serif)}
.fridge-footer>.primary{min-height:48px!important;padding:10px!important;font-size:15px!important}
.paste-status{text-align:center;font:400 14px/1.8 var(--reading-serif);color:#f1d89b;margin:12px 18px}
@media(max-width:359px){.sheet-header h2,#story-dialog .sheet-header h2,#report-dialog .sheet-header h2{font-size:21px}#story-content .story-choice-heading h3{font-size:20px}.recipe-ingredients h3{font-size:15px}.required-ingredient>b{font-size:14px}.recipe-ingredient-cards{gap:6px}#kitchen-back{font-size:12px}.fridge-footer .refill-order{grid-template-columns:122px minmax(0,1fr);gap:6px}}
@media(prefers-reduced-motion:reduce){.kitchen-screen .room-hotspot.station-next span{animation:none}}
:root{--sans:var(--reading-serif);--serif:var(--reading-serif);--brush:var(--reading-serif)}
.cinema,.cinema button{font-family:'Noto Sans CJK KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif}
.required-ingredient>.food-art{width:44px!important;height:44px;flex-basis:44px}
.required-ingredient>b{font-size:14px}
.required-ingredient>.ingredient-state{font-size:12px}
.choice-arrow,.back-mark{display:none}
/* Keep the refrigerator in view: one illustrated checklist, no repeated instructions. */
#kitchen-footer.fridge-footer{max-height:36dvh;padding:8px 14px max(12px,env(safe-area-inset-bottom))}
.fridge-footer .recipe-ingredients{margin:0 0 8px}
.fridge-footer .recipe-ingredients>header{margin-bottom:5px}
.fridge-footer .recipe-ingredients h3{font:400 13px/1.5 var(--reading-serif)}
.fridge-footer #fridge-selection-status{font-size:12px}
.fridge-footer .recipe-ingredient-cards{display:flex;flex-wrap:wrap;gap:5px}
.fridge-footer .required-ingredient{flex:0 1 auto;flex-direction:row;gap:4px;min-height:36px;padding:3px 7px;border-width:1px;text-align:left}
.fridge-footer .required-ingredient>.food-art{width:28px!important;height:28px;flex:0 0 28px}
.fridge-footer .required-ingredient>b{display:flex;align-items:center;gap:3px;font:400 12px/1.5 var(--reading-serif)}
.ingredient-check{width:16px;height:16px;fill:none;stroke:#3f6137;stroke-width:3.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.fridge-footer .required-ingredient.is-ready>b{font-weight:700}
.fridge-footer .stock-inspector{margin-bottom:8px;padding-top:6px}
/* Doors themselves are the controls; the open door edge remains a generous close target. */
.fridge-view{padding-top:0;overflow:hidden}
.fridge-cabinet{width:min(100%,calc((100dvh - 290px)*.563));min-width:280px}
.fridge-door{pointer-events:none}
.fridge-door-touch{position:absolute;left:9%;width:82%;z-index:4;padding:0;background:none;border:0;border-radius:0;box-shadow:none;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.touch-freezer{top:9.5%;height:28.5%}
.touch-fridge{top:38.5%;height:53%}
.freezer-open .touch-freezer,.fridge-open .touch-fridge{left:0;width:13%;min-width:44px}
.fridge-door-touch:focus-visible{outline:2px solid #f0d28e;outline-offset:-2px}
.door-handle-cue{position:absolute;left:9%;top:48%;width:27%;height:12%;max-height:24px;border-radius:40%;pointer-events:none}
.touch-fridge .door-handle-cue{top:31%;height:7%}
.door-needed[aria-expanded=false] .door-handle-cue{box-shadow:0 0 5px 2px #f2cd78,0 0 16px 6px #efc36b66;animation:handle-warmth 3s ease-in-out infinite}
@keyframes handle-warmth{0%,70%,100%{opacity:.55}35%{opacity:1}}
.fridge-door-touch[aria-expanded=true] .door-handle-cue{display:none}
/* A raised wooden plaque lifts twice, then rests. The ink never flashes. */
#kitchen-screen #kitchen-footer .primary:not(:disabled),#guest-dialog #talk-next:not(:disabled),.game-app #night-action:not(:disabled),#report-content #report-next:not(:disabled),#stock-prep .primary:not(:disabled),.game-app #resume-kitchen:not(:disabled){
  --action-shadow:inset 0 2px 1px #fff1bf99,inset 2px 0 2px #e5bf7855,inset -2px -3px 3px #281508cc,0 6px 0 #372313,0 8px 0 1px #1f150ccc,0 12px 10px #100a0870,0 0 13px #e6b75555;
  border:2px solid #e5c276;box-shadow:var(--action-shadow);transform-origin:center;animation:action-plaque-heartbeat 3.2s ease-in-out infinite;will-change:scale;transition:translate .1s,scale .1s,box-shadow .1s;
}
@keyframes action-plaque-heartbeat{0%,24%,49%,68%,100%{scale:1;translate:0 0;box-shadow:var(--action-shadow)}34%{scale:1.018;translate:0 -2px;box-shadow:var(--action-shadow),0 0 20px #efc46e88}58%{scale:1.009;translate:0 -1px;box-shadow:var(--action-shadow),0 0 16px #efc46e66}}
#kitchen-screen #kitchen-footer .primary:not(:disabled):active,#guest-dialog #talk-next:not(:disabled):active,.game-app #night-action:not(:disabled):active,#report-content #report-next:not(:disabled):active,#stock-prep .primary:not(:disabled):active,.game-app #resume-kitchen:not(:disabled):active{animation:none;scale:.995;translate:0 4px;box-shadow:inset 0 2px 4px #211208aa,0 2px 0 #372313,0 4px 4px #100a0866}
@media(prefers-reduced-motion:reduce){.door-needed[aria-expanded=false] .door-handle-cue,#kitchen-screen #kitchen-footer .primary:not(:disabled),#guest-dialog #talk-next:not(:disabled),.game-app #night-action:not(:disabled),#report-content #report-next:not(:disabled),#stock-prep .primary:not(:disabled),.game-app #resume-kitchen:not(:disabled){animation:none;will-change:auto}}
/* A guest's name never spills into the next counter seat. */
.customer .customer-name{max-width:96%;min-width:0;min-height:44px;padding:4px 5px;font:400 10px/1.5 var(--reading-serif);white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.customer .customer-name[hidden]{display:none}
/* Printed hierarchy across reports, rewards, menus and kitchen headings. */
#report-dialog .sheet-header h2{font-size:20px;line-height:1.5}
#report-content .report-heading h3{font:400 22px/1.6 var(--reading-serif);margin:9px 0 4px}
#report-content .next-goal h4{font-size:14px}
#report-content .report-heading{margin-bottom:15px}
#report-content .report-heading p{font-size:12px}
#report-content .night-stamp{font-size:11px;letter-spacing:2px;padding:4px 12px}
#report-content .growth-banner{padding:13px 12px;gap:12px}
#report-content .growth-banner h3{font:400 19px/1.6 var(--reading-serif);margin:3px 0}
#report-content .growth-banner .level-tile{width:48px;height:60px;flex-basis:48px;font-size:10px}
#report-content .growth-banner .level-tile b{font:400 27px/1.2 var(--reading-serif)}
#report-content .score-delta{font:400 23px/1.4 var(--reading-serif)}
#report-content .score-delta small{font-size:11px}
#report-content .report-metric strong,#report-content .till-heading>strong{font:400 23px/1.5 var(--reading-serif)}
#report-content h4,#report-content .upcoming-items>h3,#report-content .reward-heading h3{font:400 18px/1.6 var(--reading-serif);word-break:keep-all;overflow-wrap:normal}
#report-content .reward-heading .level-tile{width:48px;height:60px;flex-basis:48px;font-size:10px}
#report-content .reward-heading .level-tile b{font-size:27px}
#report-content .reward-conditions,#report-content .next-item-note{font:400 12px/1.8 var(--reading-serif)}
#report-content .next-goal{padding:14px 12px}
#report-content .next-goal h4{font-size:17px;margin:0 0 12px}
.level-growth{display:grid;grid-template-columns:1fr auto;gap:7px;font:400 13px/1.5 var(--reading-serif);margin-bottom:14px}
.level-growth>b{font-weight:400;font-size:12px}
.level-growth progress{grid-column:1/-1;width:100%;height:13px}
#report-content .goal-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.goal-condition{min-width:0;font:400 12px/1.5 var(--reading-serif);color:#776646}
.goal-condition header{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}
.goal-condition b{font-size:12px;font-weight:400}.goal-condition.met b{color:#42633c}
.goal-condition progress{display:block;width:100%;height:7px;margin:0 0 5px}
.goal-condition small{font-size:10px}
.next-goal progress{appearance:none;border:0;background:#a8976f33;border-radius:1px;box-shadow:inset 0 1px 3px #65502f38;overflow:hidden}
.next-goal progress::-webkit-progress-bar{background:#a8976f33;box-shadow:inset 0 1px 3px #65502f38}
.next-goal progress::-webkit-progress-value{background:linear-gradient(#9aa46d,#687c49)}
.next-goal progress::-moz-progress-bar{background:linear-gradient(#9aa46d,#687c49)}
/* Keep Korean dish words whole, including 덮밥, across every illustrated menu. */
.reward-foods small,.menu-card h3,.talk-order,.completed-dish strong,.unlock-item-grid h4,.next-dish{word-break:keep-all;overflow-wrap:normal;line-break:strict}
#report-content .reward-foods small{font:400 12px/1.7 var(--reading-serif);display:block}
#report-content .reward-foods>div{min-width:0;padding:8px 4px}
.kitchen-screen .kitchen-header h2{font:400 20px/1.5 var(--reading-serif);word-break:keep-all}
.kitchen-screen .process-heading h3,.kitchen-screen .completed-dish h3{font:400 23px/1.6 var(--reading-serif)}
.kitchen-screen .completed-dish strong{font:400 20px/1.6 var(--reading-serif)}
@media(max-width:359px){#report-content .report-heading h3{font-size:20px}#report-content .reward-heading h3{font-size:17px}#report-content .reward-foods small{font-size:11px}.kitchen-screen .kitchen-header h2{font-size:18px}}
/* Quiet service notes sit together just above the dock, not as a second big button. */
@media(orientation:portrait){.service-bar.is-serving{width:min(92vw,368px);max-width:none;bottom:calc(var(--safe-bottom) + 112px);gap:5px}.service-bar.is-serving #service-hint{font:400 11px/1.8 var(--reading-serif);text-align:center}.service-bar.is-serving .service-progress{order:-1;padding:0 5px 4px;background:none;box-shadow:none;border-bottom:1px solid #b99a6155;border-radius:0;font-size:10px;line-height:1.5;color:#c9b691}.service-bar.is-serving .service-progress b{font-size:11px;color:#efdbb6}.service-bar.is-serving .service-progress>i{height:10px;background:#c8aa6a55}}
/* Growth is a brass inlay in a carved timber channel, never the native green bar. */
.progress-hud progress{appearance:none;border:1px solid #2f1c0e;border-radius:1px;height:7px;background:#2f2116;box-shadow:inset 0 1px 3px #100a08,0 1px #c29a5b55;overflow:hidden}
.progress-hud progress::-webkit-progress-bar{background:#2f2116;box-shadow:inset 0 1px 3px #100a08}
.progress-hud progress::-webkit-progress-value{background:linear-gradient(#ecd29a,#b58a42 50%,#8b632b);box-shadow:inset 0 1px #fff0bd88}
.progress-hud progress::-moz-progress-bar{background:linear-gradient(#ecd29a,#b58a42 50%,#8b632b);box-shadow:inset 0 1px #fff0bd88}
.progress-hud .hud-atmosphere{color:#e7cca0}
/* The same restrained scale applies beyond the report. */
.stock-prep .stock-prep-heading h3{font:400 20px/1.6 var(--reading-serif)}
.kitchen-screen .room-task b{font:400 21px/1.6 var(--reading-serif)}
.kitchen-screen .heat-lesson h4{font:400 20px/1.6 var(--reading-serif)}
.sheet .sheet-header h2{font-size:21px;line-height:1.5}
.upcoming .reward-heading h3,.upcoming-items>h3{font:400 18px/1.6 var(--reading-serif);word-break:keep-all}
/* A photographed Bakelite stove handle turns inside its fixed metal collar. */
.kitchen-screen #gas-dial{border:3px solid #9e8b65;background:radial-gradient(circle at 35% 28%,#d3c4a0,#7b704f 62%,#30291d 66%);box-shadow:inset 0 1px 2px #fff0c1aa,inset 0 -2px 3px #251b10,0 4px 4px #140d0999;border-radius:50%}
.kitchen-screen #gas-dial i{inset:-8%;background:url('./assets/gas-knob-v24.webp') center/100% 100% no-repeat;filter:drop-shadow(1px 3px 2px #110c0880)}
.kitchen-screen #gas-dial i::after{display:none}
/* Full-bleed kitchen photography: no flat green stage or letterbox bands. */
#kitchen-screen{background-color:#281a11;background-size:cover;background-position:center}
#kitchen-screen::before{background:linear-gradient(#180e0840,transparent 40%,#180e0866)}
#kitchen-screen #kitchen-content{background:transparent}
#kitchen-content .fridge-view{padding:0;min-height:100%;background:transparent}
#kitchen-content .fridge-cabinet{width:100%;min-width:0;max-width:none}
#kitchen-content .fridge-pages:empty{display:none}
#kitchen-content .process-view{background:linear-gradient(#20140c66,#160e0866);min-height:100%}
#kitchen-content .kitchen-room-art{max-width:none}
#kitchen-content .completed-dish{background:radial-gradient(ellipse,#a7733022,#180e0877)}
#kitchen-screen #kitchen-content .prep-scene{width:100%;max-width:none;border-radius:0;box-shadow:none;background:none}
#kitchen-content .recipe-frame{inset:-.82%;border-radius:0;clip-path:inset(.8%)}
/* A complete stove: the native pan/burner picture joins a real front fascia.
   The one live knob is mounted on that fascia, not in a separate UI panel. */
#kitchen-screen #kitchen-content .prep-scene.stove-unit{height:auto;aspect-ratio:auto;overflow:visible;margin:7px 0 0}
.stove-unit .heat-worktop{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:4px solid #887659;border-bottom:0;background:#8a795d;box-shadow:inset 1px 1px #e5d3a677;isolation:isolate}
#kitchen-content .stove-unit .heat-worktop .cook-object{inset:0;width:100%;height:100%;transform:none;aspect-ratio:1;touch-action:pan-y}
.stove-unit .stove-front{position:relative;width:100%;aspect-ratio:5.35;background:url('./assets/stove-front-v25.webp') center/100% 100% no-repeat;margin-top:-1px;isolation:isolate}
.stove-front .dial-wrap{position:absolute;left:30%;top:52%;width:13.5%;min-width:44px;aspect-ratio:1;transform:translate(-50%,-50%);padding:0}
#kitchen-screen .stove-front #gas-dial{position:absolute;inset:0;width:100%;height:100%;min-height:44px;border:0;background:none;box-shadow:none;border-radius:50%}
#kitchen-screen .stove-front #gas-dial i{inset:-8%;filter:drop-shadow(1px 2px 1px #201309aa)}
.stove-front .dial-guide{display:none}
.stove-front .dial-demo{inset:0;width:100%;height:100%}
.stove-front .stove-off-tick,.stove-front .stove-high-tick{position:absolute;top:70%;font:700 10px/1 var(--reading-serif);color:#302519;text-shadow:0 1px #e3d3b877;pointer-events:none}
.stove-front .stove-off-tick{left:20%}.stove-front .stove-high-tick{left:38%}
.stove-front .stove-enamel{position:absolute;left:83%;top:65%;transform:translate(-50%,-50%);font:400 10px/1 var(--reading-serif);color:#493c2a;white-space:nowrap;text-shadow:0 1px #f0dfc188}
#kitchen-content .stove-controls{padding:0 18px;margin:0 auto 3px}
#kitchen-content .stove-controls .cook-look{margin:0 0 3px;font-size:12px;line-height:1.5}
#kitchen-content .stove-controls .heat-label{line-height:1.5}
#kitchen-content .stove-controls .heat-meter{height:12px;margin-bottom:0}
.stove-tools{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;padding:5px 12px}
.stove-tools .guide-replay,.stove-tools .subtle-action{margin:0;min-height:44px;font-size:11px}
#kitchen-footer .heat-actions{margin:0;gap:8px}
#kitchen-footer .heat-actions button{min-height:48px}
#kitchen-screen #kitchen-footer [data-work=heat-stop]:not(.at-ideal){animation:none}
.customer .customer-name{padding:5px 8px;max-width:96%;min-height:44px;font:400 13px/1.5 var(--reading-serif)}
.customer-name .customer-name-text{display:block;font:inherit;color:inherit;white-space:nowrap}
.customer-name small{display:block;font:400 10px/1.5 var(--reading-serif);margin-top:1px;color:#e9d1a2}
@media(max-height:730px){#kitchen-content .station-stove .process-heading{padding-top:0}#kitchen-content .station-stove .process-heading h3{font-size:20px;margin:3px 0}#kitchen-content .station-stove .process-heading>span{font-size:10px}}
@media(max-height:730px){#kitchen-content .station-stove .process-heading{display:flex;align-items:center;justify-content:center;gap:8px;min-height:30px;padding:0 12px}#kitchen-content .station-stove .process-heading h3{font-size:18px;line-height:1.5;margin:0}#kitchen-content .station-stove .process-heading>span{font-size:10px}}
/* Keep the complete stove and its handle visible together on portrait phones. */
#kitchen-content .station-stove .process-heading{display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:0 12px}
#kitchen-content .station-stove .process-heading h3{font-size:20px;line-height:1.5;margin:0}
#kitchen-content .station-stove .process-heading>span{font-size:10px}
@media(max-height:730px){#kitchen-screen .kitchen-header{padding-top:5px;padding-bottom:5px}#kitchen-content .station-stove #cook-look{display:none}#kitchen-content .station-stove .process-heading{min-height:30px}#kitchen-content .station-stove .process-heading h3{font-size:18px}}
.customer-name .customer-name-text{white-space:normal;word-break:keep-all;overflow-wrap:normal;line-height:1.4}
.stove-unit .live-gas{left:16%;bottom:9%;width:68%;height:10%}
#kitchen-content .stove-controls .heat-label{margin:2px 0 3px}
#kitchen-screen #kitchen-content .prep-scene.stove-unit{margin-top:3px}
@media(max-height:730px){#kitchen-content .station-stove{padding-top:0}#kitchen-screen>#location-nav{margin-top:0;margin-bottom:2px}#kitchen-screen .kitchen-header{padding-top:4px;padding-bottom:4px}}
@media(max-height:730px){#kitchen-screen>#location-nav.location-nav{margin-top:0;margin-bottom:2px}}
#kitchen-content .station-stove{padding-top:3px}
#kitchen-content .station-stove #cook-look{display:none}
#kitchen-screen>#location-nav.location-nav{margin:2px auto 3px}
@media(max-height:730px){#kitchen-screen>#location-nav.location-nav{margin:0 auto 2px}}
@media(min-width:650px){#kitchen-screen #kitchen-content .prep-scene.stove-unit{max-width:560px;margin-left:auto;margin-right:auto}}

/* v26: small horizontal service plaques, with a quiet physical invitation. */
@property --cue-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.customer .customer-name{display:flex;align-items:center;justify-content:center;width:max-content;min-width:86px;max-width:calc(120% - 8px);height:30px;min-height:30px;padding:3px 8px;border-radius:4px;font:400 11px/1.4 var(--reading-serif);white-space:nowrap;overflow:visible;box-shadow:inset 0 1px #e9c58d38,inset 0 -2px #22130880,0 3px 4px #0005}
.customer-name .customer-name-text{display:block;white-space:nowrap;word-break:keep-all;line-height:1.4}
.customer-name::after{content:'';position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%);background:none;border:0;pointer-events:auto}
.customer .customer-name.order-ready{border-color:#e6c477;animation:service-plaque-beat 3.6s ease-in-out infinite}
.customer-name.order-ready::before,.fridge-door-touch.first-door-hint::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:2px;pointer-events:none;background:conic-gradient(from var(--cue-angle),#b48a4644 0deg,#d4ab5f88 245deg,#fff1bb 287deg,#e8be6d 312deg,#b48a4644 360deg);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;animation:service-gold-trace 4s linear infinite;filter:drop-shadow(0 0 3px #edc67599)}
@keyframes service-gold-trace{to{--cue-angle:360deg}}
@keyframes service-plaque-beat{0%,34%,60%,100%{transform:translateX(-50%) translateY(0) scale(1)}42%{transform:translateX(-50%) translateY(-1px) scale(1.025)}50%{transform:translateX(-50%) translateY(0) scale(1)}55%{transform:translateX(-50%) translateY(-.5px) scale(1.015)}}
.customer .customer-name:active{animation:none;transform:translateX(-50%) translateY(1px) scale(.98)}
.fridge-door-touch.first-door-hint{border-radius:15px;box-shadow:inset 0 0 0 1px #ebc77b88,inset 0 0 13px #e9b85b33}
.fridge-door-touch.first-door-hint::before{inset:3px;padding:3px;filter:drop-shadow(0 0 5px #edc675cc);animation-duration:3.4s}
/* Continue the room's own ceiling/floor behind the service notes and dock. */
.scene:not(.outside){background:#35251a}
.scene:not(.outside)::before{content:none}
.scene:not(.outside)::after{background:linear-gradient(#150d0740,transparent 30%,transparent 68%,#160d0733)}
.scene-backfill{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden;background:#35251a}
.scene-backfill>div{position:absolute;left:0;width:100%;background-image:var(--scene-room-image,url('./assets/room-bare-v19.webp'));background-repeat:repeat-x;background-position:calc(50% + var(--scene-art-pan,0px)) top;background-size:var(--scene-art-width,100vw) 850%}
.ceiling-extension{top:0;height:calc(var(--scene-art-top,25dvh) + 1px)}
.scene-backfill>.floor-extension{top:calc(var(--scene-art-bottom,75dvh) - 1px);bottom:0;background-position:calc(50% + var(--scene-art-pan,0px)) bottom}
.outside .scene-backfill{display:none}

/* Keep plaques below the full serving-vessel silhouette, including used dishes. */
.customer .customer-name{top:calc(130% + 8px);bottom:auto}
.customer .wait-meter{top:calc(130% + 43px);bottom:auto}
.customer .customer-name,.customer .customer-payment{left:var(--guest-center,50%)}
.customer .served-dish{left:calc(var(--guest-center,50%) - 27%)}
.customer .wait-meter{left:calc(var(--guest-center,50%) - 27%)}
/* Compact location signs; invisible extra height keeps the touch target generous. */
#location-nav.location-nav.location-nav,#kitchen-screen>#location-nav.location-nav.location-nav{width:min(78vw,296px);max-width:296px;margin-top:5px;margin-bottom:6px;gap:0;border-width:2px}
#location-nav.location-nav.location-nav button{position:relative;min-height:32px;padding:4px 6px;font:400 12px/1.5 var(--reading-serif);border-width:1px}
#location-nav.location-nav.location-nav button::after{content:'';position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
#location-nav.location-nav .nav-cooking-note{font-size:9px}
/* Remaining growth first, then the three independent level conditions. */
#progress-hud.progress-hud{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:5px;width:min(calc(100vw - 96px),340px);max-width:340px;padding:6px 10px;font:400 10px/1.5 var(--reading-serif)}
.progress-hud .hud-level{grid-row:1;align-self:center;font:400 15px/1.4 var(--reading-serif);color:#f3d495}
.hud-growth{min-width:0;display:grid;gap:4px;font-size:11px}
.hud-growth strong{font-weight:400;color:#ffe3a2}
#progress-hud .hud-growth progress{width:100%;height:7px}
.hud-conditions{grid-column:1/-1;display:flex;justify-content:space-between;gap:5px;padding-top:4px;border-top:1px solid #be9b5b44;font-size:9px;color:#dbc8a7;white-space:nowrap}
.hud-conditions b{font-weight:400;color:#f0d4a4}
.hud-conditions .met,.hud-conditions .met b{color:#d5caa6}
/* One work space: do not put a second kitchen room behind the prep photograph. */
#kitchen-content .process-view{background:linear-gradient(#21150ed9,#2b1b11a6),url('./assets/ui-walnut-v21.webp') center/600px; padding-top:0}
#kitchen-content .process-view .process-heading{padding:10px 16px;background:linear-gradient(#1e120a55,#2f1c1144);border-bottom:1px solid #c69e5b44}
#kitchen-content .process-view .prep-scene:not(.stove-unit),#kitchen-content .process-view .prep-scene .cook-object,#kitchen-content .process-view .recipe-frame{border-radius:0}
#kitchen-content .process-view .prep-scene:not(.stove-unit){margin-top:0}
#progress-hud.progress-hud{width:min(calc(100vw - 80px),340px)}
.game-hud #settings-open{position:fixed;right:calc(var(--safe-right) + 12px);width:44px;height:44px;min-height:44px}
/* A small front arc of blue burner jets, tucked below the vessel rather than on it. */
.stove-unit .live-gas{left:22%;bottom:17%;width:56%;height:7%;mix-blend-mode:normal;filter:blur(.25px) drop-shadow(0 0 1px #78bbdf66);clip-path:ellipse(50% 48% at 50% 52%);mask-image:linear-gradient(90deg,#000 0 36%,transparent 44% 56%,#000 64% 100%)}
.stove-unit.fire-on .live-gas{opacity:calc(.35 + var(--gas-strength,0)*.45);transform:scaleY(calc(.5 + var(--gas-strength,0)*.45));transform-origin:50% 80%}
.stove-unit .live-gas path{animation:none;transform:none}
.stove-unit .gas-jet{transform-box:fill-box;transform-origin:center bottom;animation:burner-shimmer 1.7s ease-in-out infinite alternate}
@keyframes burner-shimmer{0%,100%{transform:scaleY(.93);opacity:.85}37%{transform:scaleY(1);opacity:1}71%{transform:scaleY(.97);opacity:.93}}
@media(prefers-reduced-motion:reduce){.stove-unit .gas-jet{animation:none}}
#kitchen-content .station-stove.process-view .process-heading{padding:0 12px;min-height:30px}

@media(prefers-reduced-motion:reduce){.customer .customer-name.order-ready,.customer-name.order-ready::before,.fridge-door-touch.first-door-hint::before{animation:none}}
/* One native portrait work photograph fills the cooking area, without an inset. */
#kitchen-content:has(.photo-workspace){overflow:hidden}
#kitchen-content .photo-workspace{height:var(--work-height,100%);min-height:100%;padding:0;overflow:hidden;background:#281c13;isolation:isolate}
#kitchen-screen #kitchen-content .photo-workspace .prep-scene{position:absolute;left:50%;top:50%;width:var(--work-width);height:var(--work-height-source);max-width:none;max-height:none;aspect-ratio:auto;margin:0;transform:translate(-50%,-50%);z-index:0}
#kitchen-content .photo-workspace .process-heading{position:relative;z-index:2;flex-shrink:0;padding:7px 12px 12px;pointer-events:none;border:0;background:linear-gradient(#20140a9c,transparent);text-shadow:0 1px 3px #000}
#kitchen-content .photo-workspace .process-heading>span{font-size:10px}
#kitchen-content .photo-workspace .process-heading h3{font-size:19px;line-height:1.4;margin:2px 0 3px}
#kitchen-content .photo-workspace .process-heading p{font-size:11px;line-height:1.6}
#kitchen-content .photo-workspace .action-counter{position:absolute;bottom:5px;left:0;right:0;z-index:2;padding:7px 10px;background:linear-gradient(transparent,#160e0899);text-shadow:0 1px 3px #000;pointer-events:none}
#kitchen-content .photo-workspace .measure-status,#kitchen-content .photo-workspace .paste-status{position:absolute;bottom:7px;left:5%;right:5%;z-index:2;margin:0;padding:9px 12px}
/* No rendered gas flame layer. Heat logic, sound and dial remain independent. */
.live-gas,.stove-burner{display:none!important}
/* Stable, identical paper tabs; icon and text align independently of their natural widths. */
.game-dock{align-items:stretch}
.game-dock>button{display:grid;grid-template-rows:34px 16px;justify-items:center;align-content:center;gap:4px;height:66px;min-height:66px;padding:6px 3px;box-sizing:border-box;transform:none;translate:none;scale:none;border-radius:1px;background-position:center,center 40%}
.game-dock>button>span{width:34px;height:34px;margin:0;align-self:center;flex-shrink:0}
.game-dock>button>b{display:block;align-self:center;margin:0;font:400 11px/16px var(--reading-serif);white-space:nowrap}
.game-dock>button:active{transform:none;translate:0 1px;scale:none}
/* A clear red unread dot uses the existing attention gate. */
.game-dock #story-badge{width:12px;height:12px;min-width:0;right:6px;top:6px;border:2px solid #fff0d2;border-radius:50%;background:#d62f35;box-shadow:0 0 4px 1px #ff594c,0 0 10px 3px #f33a3677;filter:none;animation:unread-glow 1.6s ease-in-out infinite;transform:none}
.game-dock #story-badge::before,.game-dock #story-badge::after{content:none;display:none;animation:none}
/* Reports are compact printed figures, with no decorative star suffixes. */
.score-delta.gain::after{content:none;display:none}
.score-delta.gain{animation:none}
.placement-halo{display:none}
#report-content .next-goal h4{font-size:14px}
#report-content .report-heading{padding:8px 0 13px}
#report-content .report-heading h3{font:400 20px/1.5 var(--reading-serif);margin:5px 0}
#report-content h4,#report-content .earned-gallery h4,#report-content .upcoming-items>h3,#report-content .reward-heading h3{font:400 14px/1.5 var(--reading-serif);margin:0 0 8px}
#report-content .growth-banner{padding:10px;gap:10px;margin-bottom:12px}
#report-content .growth-banner h3{font:400 16px/1.5 var(--reading-serif)}
#report-content .report-metric{padding:10px 11px;margin-bottom:10px;min-height:0}
#report-content .report-metric-pair{gap:8px}
#report-content .report-metric-pair .report-metric{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:4px 6px}
#report-content .report-metric-pair .report-metric h4{grid-column:1/-1;font-size:13px;margin:0 0 2px}
#report-content .report-metric strong{font:400 21px/1.4 var(--reading-serif)}
#report-content .report-metric strong>small{font-size:11px}
#report-content .report-metric-pair .report-metric>.score-delta{font:400 15px/1.4 var(--reading-serif);margin:0}
#report-content .score-delta{font-size:19px}
#report-content .score-delta small{font-size:10px}
/* Korean level caption above its centered number, in every level badge. */
.level-tile,.progress-hud .hud-level{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;line-height:1;margin:0;padding:5px}
.level-tile>small,.progress-hud .hud-level>small{display:block;font:400 10px/1.2 var(--reading-serif);letter-spacing:0;color:inherit;margin:0}
#report-content .level-tile,#report-content .growth-banner .level-tile,#report-content .reward-heading .level-tile{width:44px;height:54px;flex:0 0 44px;gap:3px;border-radius:3px}
#report-content .level-tile>b,#report-content .growth-banner .level-tile>b,#report-content .reward-heading .level-tile>b{display:block;font:400 24px/1 var(--reading-serif);margin:0;color:inherit}
.progress-hud .hud-level{min-width:32px;padding:0;gap:2px}
.progress-hud .hud-level>strong{font:400 18px/1 var(--reading-serif);color:inherit}
.game-dock>button,.game-dock>button.active{border:2px solid transparent}
#app .game-dock>button:active{transform:none;translate:0 1px}
.music-settings{padding:12px 14px;background:#f1e3c5 url('./assets/ui-washi-v21.webp') center/500px;border:1px solid #b49b6f;color:#51432d}
.music-settings>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font:400 14px/1.5 var(--reading-serif)}
.music-settings #music-toggle{min-height:44px;min-width:64px;padding:6px 12px;font:400 12px/1.5 var(--reading-serif);background:#4a5b42;color:#fff0c5;border:1px solid #a18c5e;border-radius:2px}
.music-settings #music-toggle[aria-pressed=false]{background:#c9b995;color:#65543b}
.music-settings label{display:flex;justify-content:space-between;margin:9px 0 0;font:400 12px/1.5 var(--reading-serif)}
.music-settings input[type=range]{appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer}
.music-settings input[type=range]::-webkit-slider-runnable-track{height:7px;background:linear-gradient(#b89b64,#765731);border-radius:2px;border:1px solid #8e7146}
.music-settings input[type=range]::-webkit-slider-thumb{appearance:none;width:20px;height:26px;margin-top:-10px;background:#f2dfad;border:2px solid #96723b;border-radius:3px;box-shadow:0 2px 2px #52351355}
.music-settings input[type=range]::-moz-range-track{height:7px;background:#a78a54;border-radius:2px}
.music-settings input[type=range]::-moz-range-thumb{width:18px;height:24px;background:#f2dfad;border:2px solid #96723b;border-radius:3px}

/* Approved full-screen stove art; the one working knob belongs to its center mount. */
#kitchen-screen.immersive-heat{background:#3e2b1c}
.immersive-heat::before{display:none}
#kitchen-screen.immersive-heat #kitchen-content{position:absolute;inset:0;overflow:hidden}
.immersive-heat .kitchen-header{background:linear-gradient(#23140ddb,#26170bb3);border:0;box-shadow:none}
#kitchen-screen.immersive-heat #location-nav{z-index:6}
#kitchen-content .immersive-heat .process-view{background:none}
#kitchen-screen.immersive-heat .process-view{height:100%;padding:0;background:none}
#kitchen-screen.immersive-heat #kitchen-content .native-stove{position:absolute;left:50%;top:50%;margin:0;max-width:none;transform:translate(-50%,-50%);overflow:visible}
#kitchen-content .native-stove .heat-worktop{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border:0;background:none;box-shadow:none}
#kitchen-content .native-stove .heat-worktop .cook-object{aspect-ratio:auto;touch-action:none}
#kitchen-content .native-stove .recipe-frame{inset:0;clip-path:none}
#kitchen-content .native-stove .stove-front{position:absolute;inset:0;margin:0;width:100%;height:100%;aspect-ratio:auto;background:none;pointer-events:none}
#kitchen-content .native-stove .dial-wrap{left:50%;top:83.6%;width:22%;min-width:44px;pointer-events:auto}
#kitchen-content .native-stove #gas-dial i{inset:0;filter:drop-shadow(1px 2px 2px #1a100aaa)}
#kitchen-screen.immersive-heat .process-heading{position:absolute;z-index:3;left:8%;right:8%;top:var(--heat-caption-top,118px);padding:0;min-height:24px;border:0;background:none;text-shadow:0 1px 3px #000}
#kitchen-screen.immersive-heat .stove-controls{position:absolute;z-index:3;left:8%;right:8%;top:calc(var(--heat-caption-top,118px) + 27px);width:auto;margin:0;padding:0;color:#fff1cb;text-shadow:0 1px 3px #000}
#kitchen-screen.immersive-heat .heat-label{font-size:10px;margin:0 0 4px}
#kitchen-screen.immersive-heat .heat-meter{height:9px;margin:0}
.native-stove-state{display:block;font:400 10px/1.4 var(--reading-serif);text-align:right;margin-bottom:2px}
#kitchen-screen.immersive-heat #kitchen-footer{position:absolute;z-index:5;left:0;right:0;bottom:0;padding:7px 14px calc(7px + env(safe-area-inset-bottom));background:linear-gradient(#352417aa,#352417eb);border:0}
#kitchen-screen.immersive-heat #kitchen-footer button{min-height:44px;font-size:13px;padding:8px}
@media(max-height:740px){#kitchen-screen.immersive-heat .process-heading{display:none}#kitchen-screen.immersive-heat .stove-controls{top:var(--heat-caption-top,105px)}}
/* Small printed report figures, without an oversized frame around each number. */
#report-content .report-metric-pair .report-metric{border:0;border-image:none;box-shadow:none;padding:8px;min-width:0;grid-template-columns:minmax(0,1fr) auto;gap:3px 4px}
#report-content .report-metric-pair .report-metric h4{font-size:12px;white-space:nowrap}
#report-content .report-metric-pair .report-metric strong{font-size:20px;white-space:nowrap}
#report-content .report-metric-pair .report-metric>.score-delta{font-size:13px;white-space:nowrap}
#kitchen-content .native-stove .recipe-frame{inset:-.4%;clip-path:inset(.4%)}

#kitchen-content .native-stove .dial-wrap{height:auto;aspect-ratio:1;width:19%}

/* v29: place step labels lower on the empty workbench, without instruction paragraphs. */
#kitchen-screen #kitchen-content .photo-workspace .process-heading{position:absolute;top:clamp(32px,7%,50px);left:12px;right:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;background:none;min-height:0}
#kitchen-content .photo-workspace .process-heading h3{font-size:19px;line-height:1.4;margin:0}
#kitchen-content .process-heading>p{display:none}
#progress-hud.progress-hud{left:calc(var(--safe-left) + 12px)}
@media(orientation:landscape) and (min-height:551px){#progress-hud.progress-hud{left:calc(var(--safe-left) + 22px)}}

.music-credit{display:block;font:400 10px/1.6 var(--reading-serif);margin:2px 0 0;color:#6d5b40}.music-credit a{color:inherit;text-underline-offset:2px}

#kitchen-content .legacy-workspace .process-heading{margin-top:32px;background:none;border:0}
@media(orientation:landscape) and (max-height:550px){#progress-hud.progress-hud{left:40%}}

/* Compact paper conversation folio; replies retain the original washi slips. */
#guest-dialog{max-height:88dvh}
#guest-dialog .talk-card{padding-top:12px}
#guest-dialog .talk-guest-message{margin-top:4px;margin-bottom:8px}
#guest-dialog .talk-player-line{margin-top:4px;margin-bottom:12px}
#guest-dialog .talk-choices{gap:8px;margin-top:12px;padding:0 0 4px}
/* Focus keeps keyboard navigation without drawing an extra ring. */
:focus{outline:none!important;outline-offset:0!important}
.kitchen-screen .room-hotspot:focus-visible span{outline:none!important}
