/* Conversations remain at the table; preparation lives in a separate full-screen kitchen. */
.guest-dialog {position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,530px);max-width:100%;max-height:94dvh;overflow:visible;border:0;padding:0;background:transparent;color:#f4e5c9;box-shadow:none;}
.guest-dialog::backdrop {background:#08191c80;backdrop-filter:blur(1px);}
.talk-close {position:absolute;right:15px;top:-40px;z-index:3;width:34px;height:34px;border:1px solid #e2cb9d66;border-radius:50%;padding:0;color:#f4dec0;background:#192e30;font-size:24px;}
.talk-portrait {position:relative;width:150px;height:200px;margin:0 0 -3px 20px;pointer-events:none;overflow:hidden;filter:drop-shadow(0 -8px 30px #e0a65c24);}
.talk-portrait .actor {position:absolute;inset:0;width:100%;height:100%;}
.talk-card {position:relative;padding:22px 24px calc(22px + env(safe-area-inset-bottom));border:1px solid #ba9c6c;border-bottom:0;border-radius:24px 24px 0 0;background:linear-gradient(120deg,#213c3d,#12292d);box-shadow:0 -6px 50px #0004;}
.talk-card>.eyebrow {font-size:8px;color:#c7ad7d;letter-spacing:2px;}
#talk-name {font:25px var(--serif);color:#fae8c8;margin:6px 0 5px;}#talk-name small {font:10px var(--sans);color:#d7b273;border:1px solid #ac946b;padding:3px 7px;border-radius:10px;vertical-align:middle;}
#talk-profile {font:11px/1.7 var(--sans);color:#c4c7ad;margin:0;}#talk-regular {font:9px/1.5 var(--sans);color:#9ba997;margin:5px 0 14px;}
.talk-speech {position:relative;padding:18px 18px 26px;background:#f9efdb;color:#435341;border-radius:3px 18px 18px 18px;min-height:95px;}
.talk-speech::before {content:'';position:absolute;width:14px;height:14px;background:#f9efdb;top:-6px;left:26px;transform:rotate(45deg);}
#talk-line {position:relative;font:16px/1.8 var(--serif);margin:0;white-space:pre-line;}#talk-progress {position:absolute;right:14px;bottom:8px;font-size:10px;color:#999477;}
.talk-order {display:flex;align-items:center;gap:15px;margin:13px 0;background:#0e222655;border:1px solid #c8af7755;padding:9px 15px;border-radius:12px;}
.talk-order .food-art {width:47px;flex-shrink:0;}.talk-order>span:last-child {font-size:14px;color:#eddbb6;}.talk-order small {display:block;font-size:10px;color:#aeb6a1;margin-top:5px;}
#talk-gift {display:block;width:100%;margin-top:10px;background:#3c5145;border-color:#778461;color:#e6d4ae;font-size:11px;}
#talk-next {width:100%;min-height:51px;margin-top:16px;border-radius:15px;font-size:14px;}
#talk-next:disabled {font-size:11px;}
.resume-kitchen {position:fixed;left:50%;bottom:calc(290px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:9;padding:9px 16px;background:#eed19e;color:#314440;box-shadow:0 4px 15px #0004;border-radius:25px;font-size:11px;white-space:nowrap;}
.kitchen-screen {position:fixed;inset:0;z-index:20;background:#1c201c var(--kitchen-image,url('./assets/kitchen-room.webp')) center/cover no-repeat;isolation:isolate;color:#f5e4c4;overflow:hidden;display:flex;flex-direction:column;}
.kitchen-screen[hidden],.guest-dialog [hidden],.kitchen-screen [hidden],.served-dish[hidden],.customer-payment[hidden],.dining-chopsticks[hidden],.resume-kitchen[hidden] {display:none!important;}
.in-kitchen>.restaurant {display:none;}
.kitchen-screen::before {content:'';position:absolute;inset:0;background:linear-gradient(#0c202473,transparent 35%,#151b18c9);z-index:-1;}
.kitchen-header {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(15px + env(safe-area-inset-top)) 17px 14px;flex-shrink:0;background:#11282cec;border-bottom:1px solid #d8b7794d;z-index:4;}
.kitchen-header>button {padding:8px 12px;background:#294042;color:#e3d3b4;border-color:#65756a;border-radius:22px;font-size:11px;white-space:nowrap;}
.kitchen-header>div {flex:1;min-width:0;}.kitchen-header span {font-size:9px;letter-spacing:.5px;color:#b9c2a8;}.kitchen-header h2 {font:17px var(--serif);margin:5px 0 0;color:#f5dfb3;}.kitchen-header>#kitchen-step-count {font-size:11px;white-space:nowrap;}
#kitchen-content {position:relative;flex:1;min-height:0;overflow:auto;scrollbar-width:thin;}
#kitchen-footer {flex-shrink:0;position:relative;background:#12282ded;border-top:1px solid #b89e6955;padding:12px 20px calc(15px + env(safe-area-inset-bottom));max-height:36dvh;overflow:auto;}
#kitchen-footer>p {font-size:11px;line-height:1.7;text-align:center;color:#c2c6ac;margin:3px 0 10px;}#kitchen-footer>.primary {width:100%;min-height:46px;border-radius:13px;padding:12px;font-size:14px;}
#kitchen-footer button:disabled {opacity:.5;}
.kitchen-room-art {position:relative;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--kitchen-image,url('./assets/kitchen-room.webp')) center/cover no-repeat;}
.room-task {position:absolute;left:7%;right:7%;top:4%;padding:15px 18px;background:#142b2edf;border:1px solid #d9b87788;border-radius:16px;text-align:center;box-shadow:0 5px 30px #0003;}
.room-task small {display:block;font-size:10px;color:#d4b77f;letter-spacing:2px;}.room-task b {display:block;font:20px var(--serif);margin:7px 0;color:#f6e5c6;}.room-task span {display:block;font-size:11px;color:#b4c4b0;}
.room-hotspot {position:absolute;background:transparent;border:1px solid transparent;border-radius:18px;padding:0;box-shadow:none;}
.room-hotspot span {position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);padding:8px 15px;background:#193438e6;color:#eed8ac;border:1px solid #b19b6a88;border-radius:24px;font-size:12px;white-space:nowrap;}
.hotspot-fridge {left:1%;top:25%;width:29%;height:49%;}.hotspot-stove {left:32%;top:46%;width:38%;height:13%;}.hotspot-rice {left:76%;top:42%;width:21%;height:11%;}.hotspot-board {left:62%;top:56%;width:37%;height:13%;}
.station-next {border:2px solid #ffdd93;box-shadow:inset 0 0 25px #f2cc5d22,0 0 15px #edb95155;animation:station-call 2s ease-in-out infinite;}.station-next span {background:#e7c087;color:#314139;font-weight:700;}
@keyframes station-call {50%{box-shadow:inset 0 0 35px #f2cc5d33,0 0 30px #edb95188;border-color:#fff0c8}}
.fridge-view {position:relative;min-height:100%;display:flex;align-items:center;flex-direction:column;padding:8px 0 0;background:#1e2c28;}
.fridge-tabs {display:flex;gap:10px;justify-content:center;flex-shrink:0;margin-bottom:5px;}.fridge-tabs button {font-size:11px;padding:8px 14px;background:#354b45;color:#f3dfb6;border:1px solid #ad9a73;border-radius:20px;}
.fridge-cabinet {position:relative;width:min(100%,calc((100dvh - 290px)*.563));min-width:245px;aspect-ratio:941/1672;flex-shrink:0;perspective:800px;}
.fridge-cabinet>img {display:block;width:100%;height:100%;}.fridge-cabinet.upgraded>img {filter:brightness(1.08) saturate(.8);}
.fridge-door {position:absolute;left:9%;width:82%;padding:0;border:0;border-radius:5px;background-image:url('./assets/fridge-closed.webp');background-repeat:no-repeat;transform-origin:left center;transition:transform .65s cubic-bezier(.25,.6,.25,1),filter .65s;z-index:3;box-shadow:none;}
.door-freezer {top:9.5%;height:28.5%;background-size:121.9512% 350.8772%;background-position:50% 13.2867%;}
.door-fridge {top:38.5%;height:53%;background-size:121.9512% 188.6792%;background-position:50% 81.9149%;}
.freezer-open .door-freezer,.fridge-open .door-fridge {transform:rotateY(-105deg);filter:brightness(.68);pointer-events:none;}
.shelf-items {position:absolute;inset:0;pointer-events:none;}.shelf-items button {pointer-events:auto;}.freezer-items {z-index:1;}.fridge-items {z-index:1;}
.shelf-items[inert] button {pointer-events:none;}
.stored-ingredient {position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;width:17%;height:9%;padding:0;border:1px solid transparent;background:transparent;border-radius:8px;overflow:visible;color:#334d40;}
.stored-ingredient .food-art {width:86%;height:auto;max-height:77%;filter:drop-shadow(0 3px 1px #27372f44);}
.stored-ingredient b {position:absolute;bottom:-6px;background:#f4efdbdf;color:#486050;border-radius:8px;padding:2px 4px;font-size:8px;font-weight:500;white-space:nowrap;}
.stored-ingredient small {position:absolute;top:0;right:0;background:#213e38dc;color:#f1e5bc;padding:2px 4px;font-size:8px;border-radius:6px;}
.stored-ingredient.empty-stock .food-art {opacity:.18;filter:grayscale(1);}.stored-ingredient.stock-required {border-color:#91a47b;}.stored-ingredient.stock-selected {border:2px solid #5a8359;background:#90a56233;box-shadow:0 0 11px #9cba6b55;}
.fridge-pages {display:flex;gap:8px;margin:4px 0 8px;}.fridge-pages button {background:#3b5146;color:#ead9b8;border-color:#768667;font-size:10px;padding:5px 10px;}
.stock-inspector {display:flex;gap:10px;align-items:center;justify-content:space-between;margin:0 0 10px;font-size:12px;color:#f0d6a6;}.stock-inspector button {background:#526b4f;color:#f3e4c3;border-color:#879976;font-size:11px;padding:8px 10px;}
.needed-ingredients {display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin:1px 0 8px;}.needed-ingredients span {font-size:10px;padding:5px 9px;border:1px solid #768373;border-radius:14px;color:#b7c1aa;}.needed-ingredients .ready {color:#f9e9bc;border-color:#c5bd79;background:#5e704944;}
.fridge-locked {margin-top:9px;font-size:10px;color:#a8b79e;}.fridge-locked summary {cursor:pointer;}.fridge-locked>span {display:inline-block;margin:6px 6px 0 0;background:#263c37;padding:5px;border-radius:5px;}.neighbor-help {display:block;margin:5px auto 10px;background:#425c48;color:#eedfbc;border-color:#87966d;padding:6px 12px;font-size:10px;}
.process-view {position:relative;min-height:100%;padding:22px 0 12px;background:linear-gradient(#172c2be6,#3b291ba6),var(--kitchen-image,url('./assets/kitchen-room.webp')) center 58%/cover;display:flex;flex-direction:column;}
.process-heading {text-align:center;padding:0 25px;}.process-heading>span {font-size:10px;letter-spacing:1px;color:#d2b889;}.process-heading h3 {font:26px var(--serif);color:#f5e3bc;margin:9px 0;}.process-heading p {font:12px/1.8 var(--sans);color:#c4c8ad;max-width:360px;margin:0 auto;}
.prep-scene {position:relative;width:100%;max-width:520px;margin:10px auto 0;aspect-ratio:1.3;flex-shrink:0;background:radial-gradient(ellipse at 50% 82%,#af82432b,transparent 65%);overflow:hidden;}
.cook-object {position:absolute;inset:0;width:100%;height:100%;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;touch-action:none;-webkit-tap-highlight-color:transparent;}
.tool-art {display:block;position:absolute;width:100%;aspect-ratio:1;background-image:var(--tool-file);background-size:400% var(--tool-rows);background-position:var(--tool-x) var(--tool-y);background-repeat:no-repeat;pointer-events:none;clip-path:inset(1%);}
.cook-object>.tool-art {left:15%;top:2%;width:70%;}.prep-scene.lid .cook-object>.tool-art {width:73%;left:13.5%;top:1%;}
.portion-pot {position:absolute;width:68%;left:-3%;top:-4%;aspect-ratio:1;}.portion-pot>.tool-art {width:100%;}.portion-bowl {position:absolute;width:48%;right:1%;bottom:0;aspect-ratio:1;}.portion-rice {position:absolute;width:70%;left:2%;top:3%;aspect-ratio:1;transform-origin:50% 70%;}.scoop-flight {position:absolute;left:30%;top:40%;width:40%;aspect-ratio:1;opacity:0;pointer-events:none;}
.shaping-rice {left:25%!important;top:23%!important;width:50%!important;}.shaping-hands {position:absolute;inset:0;}.shaping-hands>.tool-art {width:95%;left:2.5%;top:2%;}
.wrapping-rice {left:25%!important;top:13%!important;width:50%!important;}.wrapping-nori {position:absolute;width:28%;aspect-ratio:1;left:5%;top:38%;transition:left .5s,top .5s,transform .5s;}.wrapping-nori.wrapped {left:37%;top:29%;transform:scale(.75);}
.oil-cruet {position:absolute;right:2%;top:3%;width:27%;aspect-ratio:1;padding:0;border:0;background:transparent;}.oil-cruet span:last-child:not(.tool-art) {position:absolute;bottom:-7px;left:0;right:0;font-size:10px;color:#e4cf9e;}.oil-sheen {position:absolute;width:27%;height:12%;left:33%;top:36%;background:radial-gradient(ellipse,#f0c65e77,#dbc56b22 70%,transparent);border-radius:50%;opacity:0;}.oil-sheen.oiled {opacity:1;}
.stove-burner {position:absolute;left:25%;top:32%;width:50%;aspect-ratio:1;opacity:0;}.fire-on .stove-burner {opacity:1;animation:blue-flame .4s ease-in-out infinite alternate;}.heat-vessel {top:0!important;}.pan-food {position:absolute;width:34%;aspect-ratio:1;left:27%;top:12%;}.pan-food>.tool-art {width:100%;}#heat-brown {position:absolute;inset:0;opacity:0;}#heat-brown>.tool-art {width:100%;}.heat-steam {opacity:0;}.fire-on .heat-steam {opacity:.7;}
.ingredient-in-action {position:absolute;left:44%;top:38%;width:18%;}.ingredient-in-action .food-art {width:100%;}.base-plate {left:18%!important;top:10%!important;width:64%!important;}.plating-food {position:absolute;left:31%;top:16%;width:38%;opacity:.3;transform:scale(.7);transition:opacity .5s,transform .5s;}.plating-food .food-art {width:100%;}.plating-food.plated {opacity:1;transform:scale(1);}
.action-counter {text-align:center;font-size:12px;color:#ead4a6;min-height:22px;padding:2px;}.subtle-action {display:block;margin:8px auto 0;font-size:11px;color:#becbb3;background:transparent;border:1px solid #80907c66;border-radius:18px;padding:7px 15px;}.action-spark {position:absolute;inset:15%;border:1px solid #e6c78a88;border-radius:50%;box-shadow:0 0 30px #dcb36d44;pointer-events:none;opacity:0;}
.stove-controls {padding:0 26px;margin:0 auto;width:100%;max-width:500px;}.stove-controls .heat-label {font-size:10px;color:#c4cfba;}.stove-controls .heat-target {color:#e4d39d;}.stove-controls .heat-meter {height:16px;margin:0 6px;}.stove-controls .perfect-zone {background:#a5b785;}.flame-dials {display:flex;gap:8px;margin:16px 0 10px;}.flame-dials button {flex:1;padding:9px;border-radius:10px;background:#253d3e;color:#d5d9bb;border-color:#6d7b6b;font-size:12px;}.flame-dials button[aria-pressed="true"] {background:#dfb67a;color:#2e413a;border-color:#f4d7a8;}.heat-actions {display:flex;gap:8px;}.heat-actions button {flex:1;font-size:11px;background:#48644f;color:#f3e0b7;border-color:#9caa7d;padding:10px 7px;}.heat-actions button:disabled {opacity:.45;}
.cooking-steam {position:absolute;left:39%;top:13%;width:23%;height:20%;background:radial-gradient(ellipse,#fff6dd55,transparent 70%);filter:blur(5px);animation:food-steam 2.5s ease-in-out infinite;pointer-events:none;}
@keyframes food-steam {0%{transform:translateY(0) scale(.8);opacity:.2}65%{opacity:.65}100%{transform:translateY(-25px) scale(1.2);opacity:0}}@keyframes blue-flame {to{filter:brightness(1.2);transform:scale(1.015)}}
.completed-dish {min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 25px;text-align:center;background:radial-gradient(ellipse,#8b663450,#152828ed 80%);}.completed-dish>.eyebrow {font-size:9px;letter-spacing:3px;color:#e3c386;}.completed-dish h3 {font:26px var(--serif);color:#f5e1bc;margin:13px 0 0;}.ready-plate {position:relative;width:70%;max-width:280px;background:radial-gradient(ellipse,#e7b66822,transparent 70%);}.ready-plate>.food-art {width:100%;}.completed-dish>strong {font:21px var(--serif);color:#eed6a8;}.completed-dish>p {font:12px/1.8 var(--sans);color:#bec8ae;}
.served-dish {position:absolute;left:27%;top:76%;width:54%;aspect-ratio:3/4;pointer-events:none;z-index:6;filter:drop-shadow(0 2px 2px #0006);}.served-dish>.food-art {width:100%;height:auto;}.dish-arriving {animation:set-dish .75s ease-out both;}.dish-steam {position:absolute;left:38%;top:19%;width:25%;height:27%;background:radial-gradient(ellipse,#fff4d455,transparent 65%);animation:food-steam 2.4s infinite;}.empty-plate {display:none;position:absolute;inset:0;background:url('./assets/cooking-vessels.webp') 66.6667% 100%/400% 200%;}.finished-meal>.food-art,.finished-meal .dish-steam {display:none;}.finished-meal .empty-plate {display:block;}
@keyframes set-dish {from{transform:translateY(35px) scale(.75);opacity:0}to{transform:none;opacity:1}}
.dining-chopsticks {position:absolute;z-index:6;left:59%;top:80%;width:24%;height:2px;border-top:1.3px solid #dbb979;border-bottom:1.3px solid #aa773f;box-shadow:0 3px 0 #b08548;transform-origin:right;animation:eating-chopsticks 3s ease-in-out infinite;pointer-events:none;}
@keyframes eating-chopsticks {0%,30%,100%{transform:rotate(-17deg) translateY(0)}60%,80%{transform:rotate(-48deg) translate(0,-12px)}}
.customer-payment {position:absolute;bottom:104%;left:50%;transform:translateX(-50%);z-index:7;width:104px;min-height:62px;padding:7px 9px;background:#f7e9cc;color:#324a40;border:1px solid #d1ac69;border-radius:13px;box-shadow:0 3px 12px #0005;animation:payment-ready 1.9s ease-in-out infinite;}.customer-payment>b {display:block;font-size:15px;font-weight:700;}.customer-payment>small {display:block;font-size:8px;color:#6d775c;margin-top:2px;}.five-stars {position:relative;display:block;overflow:hidden;width:74px;height:15px;margin:3px auto 0;font-size:15px;letter-spacing:0;line-height:15px;text-align:left;}.five-stars i,.five-stars em {position:absolute;inset:0;overflow:hidden;white-space:nowrap;font-style:normal;}.five-stars i {color:#d69d37;z-index:1;}.five-stars em {color:#c7c5ad;}
@keyframes payment-ready {50%{box-shadow:0 0 18px #edc46b80}}
.cash-flight {position:fixed;z-index:2147483647;width:76px;height:38px;display:grid;place-items:center;font:700 13px var(--serif);letter-spacing:1px;background:repeating-linear-gradient(45deg,#e6d6a9,#e6d6a9 3px,#dfcda1 3px,#dfcda1 4px);border:3px double #72836a;outline:2px solid #e4d3a9;border-radius:3px;color:#466449;box-shadow:0 3px 9px #0005;pointer-events:none;}.money-receiving {animation:wallet-credit .5s ease-out 2;}@keyframes wallet-credit {50%{color:#ffe2a1;text-shadow:0 0 18px #ffd383;transform:scale(1.09)}}
.ceramics-surface {position:absolute;inset:0;background:url('./assets/restaurant-ceramics.webp') 10.838% 41.7118%/952.381% 1298.7013% no-repeat;mask-image:linear-gradient(transparent,#000 3%,#000 97%,transparent);}.decor-ceramics.placement-installing {animation:install-surface 1.35s ease both;}@keyframes install-surface {from{opacity:0;filter:brightness(1.6)}to{opacity:1;filter:brightness(1)}}
.stock-card.ingredient-locked .food-art {filter:blur(1.2px) saturate(.2);opacity:.5;}.stock-card.ingredient-locked h3 {color:#93927e;}.stock-card.ingredient-locked button {font-size:10px;}
@media(min-width:650px){.fridge-cabinet {width:min(100%,calc((100dvh - 250px)*.563));}.process-view {padding-top:25px;}.prep-scene {width:min(100%,440px);aspect-ratio:1.5;}#kitchen-footer {padding-left:max(20px,calc((100vw - 500px)/2));padding-right:max(20px,calc((100vw - 500px)/2));}}
@media(max-height:730px){.kitchen-header {padding-top:10px;padding-bottom:9px;}.process-heading h3 {font-size:22px;}.process-view {padding-top:15px;}.prep-scene {aspect-ratio:1.6;}.process-heading p {font-size:11px;}#kitchen-footer {padding-top:9px;padding-bottom:10px;}.talk-portrait {width:120px;height:160px;}.talk-card {padding:17px 21px;}.talk-speech {min-height:80px;}#talk-line {font-size:14px;}#talk-regular {font-size:8px;margin-bottom:10px;}}
@media(prefers-reduced-motion:reduce){.station-next,.dish-arriving,.dining-chopsticks,.customer-payment,.cooking-steam,.dish-steam,.money-receiving {animation:none!important;}.fridge-door {transition:none;}}

.upgrade-card:has(.ceramics-surface) .decor-thumbnail {aspect-ratio:2/1;}
.lid.action-done .cook-object>.tool-art {animation:rice-lid-open .55s ease-out both;}
@keyframes rice-lid-open {from {opacity:.4;transform:translateY(10px) scale(.96)} to {opacity:1;transform:none}}

.wrapping-nori.wrapped {animation:wrap-nori .65s ease-out both;}
@keyframes wrap-nori {0%{left:5%;top:38%;opacity:1;transform:scale(1)}70%{left:37%;top:29%;opacity:1;transform:scale(.75)}100%{left:37%;top:29%;opacity:0;transform:scale(.75)}}
/* The service camera pans explicitly; focusing a dialog must never scroll the room. */
.scene {overflow:clip;}
.customer-payment:active:not(:disabled) {transform:translateX(-50%) scale(.98);}
.customer-name:active:not(:disabled) {transform:translateX(-50%) scale(.98);}
.resume-kitchen:active:not(:disabled) {transform:translateX(-50%) scale(.98);}

.kitchen-upgraded {--kitchen-image:url('./assets/kitchen-upgraded.webp');}
.fridge-cabinet.upgraded .fridge-door {background-image:url('./assets/fridge-upgraded.webp');}
.served-dish {top:70%;width:48%;left:30%;}
.customer-name {bottom:-43%;}
.wait-meter {bottom:-49%;}

.cutting-ingredients {position:absolute;left:25%;top:20%;width:43%;display:flex;align-items:center;justify-content:center;gap:8px;}
.cutting-ingredients .food-art {width:45%;}

/* Complete painted recipe states, never a board/plate with ingredient stickers. */
.recipe-frame {display:block;position:absolute;inset:0;background-size:800% 400%;background-repeat:no-repeat;border-radius:16px;}
.prep-scene {aspect-ratio:1;max-width:480px;width:94%;}.cook-object {overflow:visible;}
.equip-knife {position:absolute;right:5%;bottom:8%;background:#203c3a;color:#f5dfb6;border:1px solid #d8b377;z-index:5;}
.held-knife {position:absolute;left:70%;top:35%;width:42%;aspect-ratio:1;transform:translate(-65%,-30%);background:url('./assets/knife-player.webp') center/contain no-repeat;pointer-events:none;z-index:4;}
.drag-source,.drag-target {position:absolute;top:65%;padding:7px 10px;border:1px dashed #ffe4a4;border-radius:12px;background:#132a2eb3;color:#fff1cd;font-size:11px;pointer-events:none;}.drag-source{left:8%}.drag-target{right:6%}.drag-hover{background:#6c945b;border-style:solid;}
.gas-panel {display:flex;align-items:center;justify-content:center;gap:20px;margin:12px 0;}.gas-panel>span{font-size:11px;color:#d8cfb2;}
#gas-dial {position:relative;width:78px;height:78px;min-height:78px;border:4px solid #b8b19e;border-radius:50%;padding:0;background:radial-gradient(circle at 35% 30%,#65706b,#172220 75%);touch-action:none;box-shadow:0 4px 12px #0008;}#gas-dial i{display:block;position:absolute;inset:7px;pointer-events:none;}#gas-dial i::after{content:'';position:absolute;left:48%;top:0;width:4px;height:24px;border-radius:3px;background:#edc77f;}#gas-dial:active{transform:none;}
.live-gas {position:absolute;left:15%;bottom:1%;width:70%;height:25%;pointer-events:none;opacity:0;filter:drop-shadow(0 0 4px #35b6ff);}.fire-on .live-gas{opacity:1;transform:scaleY(calc(.35 + var(--gas-strength)*.65));transform-origin:bottom;}.live-gas path {transform-box:fill-box;transform-origin:bottom;animation:gas-flicker .23s ease-in-out infinite alternate;}@keyframes gas-flicker{from{transform:scaleY(.7) skewX(-5deg)}to{transform:scaleY(1.05) skewX(6deg)}}
.integrated-ready {aspect-ratio:1;width:94%;max-width:450px;margin:18px 0;}.action-done .drag-source,.action-done .drag-target {display:none;}
@media(max-height:760px){.prep-scene{width:min(88%,350px)}.gas-panel{margin:7px 0}#gas-dial{width:62px;height:62px;min-height:62px}.process-heading h3{font-size:21px}}
.prep-scene.heat {width:min(72%,300px);}
.cut-guides {position:absolute;inset:25% 0 25%;pointer-events:none;}.cut-guides i {position:absolute;top:0;bottom:0;border-left:2px dashed #f3df9ab0;}.cut-guides i.cut-done {opacity:.15;}

.live-gas {height:13%;mix-blend-mode:screen;filter:blur(.45px) drop-shadow(0 0 5px #25b7ff);}.fire-on .live-gas {opacity:.8;}

.prep-frame {background-size:400% 400%;image-rendering:auto;}
.prep-queue {display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:9px;}.prep-queue span {font-size:10px;color:#91a28f;padding:3px 8px;border-bottom:1px solid transparent;}.prep-queue .current {color:#ffe1a9;border-bottom-color:#e0bd7e;}
.heat-lesson {position:fixed;top:calc(100px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(92vw,430px);z-index:8;padding:18px 20px;background:#f5ecd3;color:#3f594b;border:2px solid #c5a56d;border-radius:16px;box-shadow:0 6px 30px #0006;pointer-events:none;}.heat-lesson small {font-size:10px;color:#917851;}.heat-lesson h4 {font:21px var(--serif);margin:8px 0;}.heat-lesson p {font-size:12px;line-height:1.9;}.heat-lesson button {pointer-events:auto;display:block;width:100%;margin-top:12px;background:#45664c;color:#f5e9c8;}
.dial-off-mark {display:block;text-align:center;font-size:12px;color:#ffdba2;}.gas-panel strong {color:#f3cb8b;font-size:11px;}#stove-state {color:#e9d39b;}.heat-actions button {font-size:13px;font-weight:700;}.held-knife{background-image:url('./assets/knife-player.webp');}.process-view .prep-scene {border-radius:15px;box-shadow:0 6px 18px #0b1b1755;}

.recipe-frame {clip-path:inset(.8% round 13px);}.held-knife {transform:translate(-15%,-83%);}

/* v17: instructions are visible on the object, and use the recognizer's paths. */
.cook-object {overflow:hidden;border-radius:15px;touch-action:none;}
.motion-guide {position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible;filter:drop-shadow(0 1px 1px #132823);}
.guide-shadow {fill:none;stroke:#172b29c9;stroke-width:2.6;stroke-linecap:round;}
.guide-line {fill:none;stroke:#fff0b3;stroke-width:1.1;stroke-dasharray:2.3 2.2;stroke-linecap:round;}
.guide-start {fill:#f9e6ac;stroke:#30483e;stroke-width:.8;}.motion-guide text{fill:#31463d;font:700 4px sans-serif;}
.guide-finger {fill:#fff9e8;stroke:#deb06a;stroke-width:.9;opacity:.92;}.is-dragging .guide-finger {opacity:0;}
.held-knife {width:84%;aspect-ratio:1;background-image:url('./assets/knife-player.webp');transform:translate(-7%,-8%);z-index:5;}
.prep-scene {width:min(86%,360px);max-width:360px;}.prep-scene:has(.measure-frame){width:min(72%,280px);}.prep-scene.assemble {width:min(94%,460px);max-width:460px;}
.plating-frame,.measure-frame {background-size:200% 200%;}
.guide-replay {align-self:center;padding:7px 16px;margin:9px auto;color:#f3dfb5;background:#223e3c;border:1px solid #a7946b;border-radius:24px;font-size:12px;}
.process-heading p {font:13px/1.7 var(--sans);color:#f4e6c8;max-width:390px;}.process-heading h3 {margin:8px 0;}.process-view{padding-top:14px;}
#step-feedback {font-size:12px;line-height:1.65;color:#ecdfbd;}
.measure-status {width:88%;max-width:400px;margin:10px auto 0;padding:11px 15px;background:#f8edcf;color:#334b41;border:1px solid #d9bc83;border-radius:13px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px;}
.measure-status b,.measure-status>span {font-size:12px;}.measure-status small{font-size:11px;width:100%;color:#64745b;}
.measure-progress{width:100%;height:12px;border-radius:9px;background:#d9d2b3;overflow:hidden;}.measure-progress i{display:block;height:100%;background:linear-gradient(90deg,#ad8047,#6c914f);border-radius:9px;}
.is-pouring {outline:0;}.original-ready {width:88%;max-width:310px;margin:8px 0 4px;min-height:260px;display:grid;place-items:center;}.original-ready>.food-art{width:100%;max-height:390px;animation:finished-food .5s ease-out both;}
@keyframes finished-food {from{opacity:.1;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.eaten-dish{display:none;position:absolute;inset:0;}.eaten-dish>.food-art{width:100%;height:auto;}.finished-meal .empty-plate {display:none;}.finished-meal .eaten-dish{display:block;}
@media(max-height:760px){.process-view{padding-top:9px}.prep-scene{width:min(80%,290px)}.prep-scene.assemble{width:min(86%,330px)}.process-heading h3{font-size:23px}.process-heading p{font-size:12px}.prep-queue{margin-top:5px}.measure-status{margin-top:5px;padding:8px 12px}.guide-replay{margin:5px auto}}
@media(prefers-reduced-motion:reduce){.original-ready>.food-art{animation:none}.guide-finger{display:none}}

.dial-wrap{position:relative;padding:10px;flex-shrink:0;}.dial-guide{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}

.held-knife{transform:translate(-7%,-8%) rotate(var(--knife-angle,14deg));transform-origin:7% 8%;}.process-heading p{word-break:keep-all;}

/* All active cooking images are full-size states, never tiny menu-process tiles. */
.prep-scene.heat{width:min(72%,280px);max-width:280px;}.heat-lesson{position:static;inset:auto;transform:none;width:100%;max-width:none;padding:12px 14px;margin:10px 0 13px;border-radius:14px;pointer-events:auto;box-shadow:0 3px 12px #0004;}.heat-lesson h4{font:17px/1.55 var(--serif);margin:5px 0;}.heat-lesson p{font-size:11px;line-height:1.8;margin:0;}.heat-lesson small{font-size:9px;}.heat-lesson #practice-live{font-size:10px;color:#627854;display:block;margin-top:6px;}.practice-actions{display:flex;gap:8px;margin-top:10px;}.heat-lesson .practice-actions button{width:auto;flex:1;font-size:11px;margin:0;padding:10px 8px;}
.stove-controls{padding:0 20px;}.dial-wrap{isolation:isolate;}.dial-demo{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);z-index:3;pointer-events:none;opacity:.58;}.dial-engaged .dial-demo{display:none;}.heat-actions button{font-size:11px;line-height:1.6;}.stove-controls>.guide-replay{display:block;margin:9px auto;}.stored-ingredient:disabled{opacity:1;}.stored-ingredient.in-stock:not(.stock-required) .food-art{opacity:.95;filter:none;}.stored-ingredient.in-stock:not(.stock-required) small{background:#667454b8;color:#faf1d7;}
@media(prefers-reduced-motion:reduce){.dial-demo{display:none}}
/* Keep the dial and stop control visible together on a portrait phone. */
.process-view:has(.heat) .process-heading p{display:none;}.prep-scene.heat{width:min(52%,200px);max-width:200px;}.process-view:has(#heat-lesson) .prep-scene.heat{width:min(46%,180px);max-width:180px;}
@media(max-height:730px){.prep-scene.heat{width:150px;max-width:150px}.process-view:has(#heat-lesson) .prep-scene.heat{width:130px;max-width:130px}.heat-lesson{padding:9px 12px;margin:6px 0 9px}.heat-lesson h4{font-size:15px}.heat-lesson p{font-size:10px}.gas-panel{margin:6px 0}.stove-controls>.guide-replay{margin:5px auto}}

.process-view:has(#heat-lesson) .prep-scene.heat{width:min(40%,150px);max-width:150px;}.process-view:has(#heat-lesson) .heat-lesson{padding:10px 12px;margin:7px 0 10px;}
.stock-inspector{display:block;margin-bottom:8px;}.stock-inspector>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}.stock-inspector>div>span{font-size:11px;color:#c2cca9;}.refill-order{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px;align-items:center;}.refill-order>[data-refill]{font-size:11px;min-height:39px;padding:8px 4px;white-space:normal;}.refill-tip{font-size:10px!important;line-height:1.6!important;color:#b8c5a5!important;margin:5px 0 8px!important;}
/* Actual heat changes the visible food, liquid surface and steam. */
.heat-burnt-layer{position:absolute;inset:0;background-size:200% 300%;background-repeat:no-repeat;pointer-events:none;transition:opacity .16s linear}.cooking-surface{position:absolute;left:20%;top:24%;width:60%;height:48%;pointer-events:none;opacity:0;clip-path:ellipse(46% 35% at 50% 53%)}.cooking-bubble{fill:none;stroke:#fff3c4;stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center;animation:cook-bubble var(--bubble-speed,1s) linear infinite}.fire-on .cooking-surface{opacity:calc(.3 + var(--gas-strength,.5)*.65)}.boiling .cooking-bubble{stroke:#ffe8b1;stroke-width:1.1}.prep-scene.heat:not(.boiling) .cooking-surface{height:38%;top:32%;opacity:calc(var(--gas-strength,0)*.48)}.surface-ripple{fill:none;stroke:#ffedb2;stroke-width:.8;opacity:.28;animation:surface-ripple var(--bubble-speed,1s) ease-in-out infinite}.cooking-steam{position:absolute;left:24%;top:0;width:54%;height:70%;pointer-events:none;opacity:0;transition:opacity .5s}.cooking-steam path{fill:none;stroke:#fff8da;stroke-width:3;stroke-linecap:round;filter:blur(1.4px);opacity:0;animation:pot-steam 2.3s ease-out infinite}.fire-on .cooking-steam{opacity:calc(var(--gas-strength,.5)*.65)}.scorching .cooking-steam path{stroke:#817363;stroke-width:5}.cook-look{font:700 13px/1.6 var(--sans);margin:9px 0 6px;color:#d7d9ad;text-align:center}.cook-look[data-look="good"]{color:#bedb9c}.cook-look[data-look="burnt"],.cook-look[data-look="dry"]{color:#f4ad86}@keyframes cook-bubble{0%{opacity:0;transform:translateY(4px) scale(.2)}25%{opacity:.65}85%{opacity:.45;transform:translateY(-4px) scale(1.5)}100%{opacity:0;transform:translateY(-5px) scale(1.9)}}@keyframes pot-steam{10%{opacity:0;transform:translateY(8px)}45%{opacity:.25}100%{opacity:0;transform:translateY(-20px)}}@keyframes surface-ripple{50%{opacity:.5;transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){.cooking-bubble,.surface-ripple,.cooking-steam path{animation:none}.fire-on .cooking-bubble{opacity:.4}}
#kitchen-inline-feedback{font:12px/1.6 var(--sans);padding:7px 10px;margin:0 0 8px;color:#ffdfa7;border:1px solid #d5b77577;background:#304c3d;border-radius:8px;pointer-events:none}
.food-condition{position:absolute;inset:0;background-repeat:no-repeat;mask-image:radial-gradient(ellipse 29% 23% at 52% 55%,#000 55%,transparent 100%);pointer-events:none;filter:sepia(.65) brightness(.58) contrast(1.25)}.food-condition.condition-raw{filter:saturate(.35) brightness(1.18) contrast(.8)}.food-condition.condition-dry{filter:sepia(.45) brightness(.76) contrast(1.15)}
