*{box-sizing:border-box}body{margin:0;background:#faf5e9;color:#354b3d;font-family:system-ui,-apple-system,sans-serif}main{max-width:1000px;margin:26px auto;padding:0 20px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:750;color:#818b73}h1{font-family:Georgia,serif;font-size:46px;margin:5px 0 0;letter-spacing:-2px}h1 span{font-size:30px;margin-left:14px}button{border:1px solid #c5ceba;border-radius:12px;background:#fffdf7;padding:12px 20px;color:#354b3d;font:600 14px system-ui;cursor:pointer}button:hover{background:#e9efdf}button:focus-visible,canvas:focus-visible{outline:3px solid #cf763f;outline-offset:4px}.status{display:flex;align-items:center;gap:24px;margin-bottom:14px;font-size:14px}.status strong{background:#dfe9d6;border-radius:30px;padding:10px 18px;white-space:nowrap}canvas{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 12px 36px #3a513318;background:#e8d8b9}footer{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#7a816e;margin:18px 0}kbd{font-family:inherit;background:white;padding:4px 7px;border-radius:5px;border:1px solid #dedfce}@media(max-width:600px){main{padding:0 10px}h1{font-size:36px}.status{align-items:flex-start;gap:10px;font-size:12px}footer{flex-direction:column}.eyebrow{font-size:8px}button{padding:10px}}

[hidden]{display:none!important}
.welcome{min-height:570px;display:grid;place-items:center;padding:32px 20px;border:14px solid #93a787;border-top:65px solid #b6c9ae;border-radius:18px;background-color:#e9dbbd;background-image:linear-gradient(#d9c9a9 1px,transparent 1px),linear-gradient(90deg,#d9c9a9 1px,transparent 1px);background-size:80px 52px;box-shadow:0 12px 36px #3a513318}
.welcome-card{width:min(100%,520px);background:#fff9ed;border-radius:24px;padding:28px;text-align:center;box-shadow:0 8px 0 #aa80552b}
h2{font:32px Georgia,serif;margin:8px 0 18px}.welcome p{line-height:1.6}.portrait{width:112px;height:158px;object-fit:contain}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.primary{background:#3c664d;color:#fff;border-color:#3c664d}.primary:hover{background:#2c503a}.characters{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:24px 0}.character{display:flex;flex-direction:column;align-items:center;gap:10px;border:3px solid transparent}.character[aria-pressed="true"]{border-color:#3c664d;background:#e8eedf}.character small{color:#3c664d}#play-controls{display:flex;justify-content:flex-end;margin-bottom:12px}.victory{text-align:center;background:#fff9e9;border:1px solid #dcd5b7;padding:20px;border-radius:16px;margin-top:16px}.victory h2{margin:0}.victory p{margin:8px 0 16px}button:focus-visible{outline:3px solid #a9491d;outline-offset:4px}@media(max-width:600px){.welcome{padding:16px 10px;min-height:520px;border-width:8px;border-top-width:40px}.welcome-card{padding:20px 12px}h2{font-size:27px}}

.pixel-art{image-rendering:pixelated}
#selection .welcome-card{width:min(100%,720px)}

.pause-overlay{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:#23382c88;padding:24px;overflow:auto}.pause-overlay .welcome-card{max-height:calc(100vh - 48px);overflow:auto}.sound{margin-top:18px;font-size:13px}.sound[aria-pressed="false"]{background:#ece7dc;color:#58604f}

#characters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));max-height:60vh;overflow-y:auto;padding:6px}
.character{min-width:0;padding:12px 6px}.character span{overflow-wrap:anywhere}

.recipe-list{display:grid;gap:10px;margin:22px 0}.recipe-choice{text-align:left;display:flex;justify-content:space-between;gap:20px;align-items:center}.recipe-choice[aria-pressed="true"],.food-choice[aria-pressed="true"]{border:3px solid #3c664d;background:#e8eedf}.recipe-choice small{white-space:nowrap}.food-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.food-token{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fff9ed;border:1px solid #d9d4bf;border-radius:12px;font-size:13px}.food-token img{width:38px;height:38px}.food-options{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.food-choice{display:flex;align-items:center;flex-direction:column;gap:7px;border:3px solid transparent;padding:12px}.food-choice img{width:64px;height:64px}.food-choice small{font-weight:400}#storage .welcome-card{width:min(100%,650px)}#storage-message{min-height:2.6em;line-height:1.5}button:disabled{opacity:.48;cursor:default}#inventory-bar{padding:12px;background:#e9eddc;border-radius:14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}#capacity{font-size:13px;font-weight:600}.context-hint{min-height:1.5em;margin:12px 0;font-size:14px;font-weight:650}.dish{width:200px;max-width:100%;height:125px;object-fit:contain}.result-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.status{flex-wrap:wrap}.status strong{white-space:normal}.result-columns h3{font-size:16px}@media(max-width:600px){.result-columns{grid-template-columns:1fr}.recipe-choice{flex-wrap:wrap}.food-choice{padding:8px}.food-choice img{width:48px;height:48px}}

/* Desktop: scena intera e controlli nello stesso viewport, senza camera mobile. */
main{max-width:1640px;margin:12px auto;padding:0 16px}header{margin-bottom:8px;min-height:44px}h1{font-size:32px;margin:0;letter-spacing:-1px}h1 span{font-size:24px}.eyebrow{font-size:9px}#play{position:relative}.status{min-height:34px;margin-bottom:8px;padding-right:125px;gap:14px;font-size:12px}.status strong{padding:8px 12px}#play-controls{position:absolute;right:0;top:0;margin:0}#play-controls button{padding:7px 12px;font-size:12px}#inventory-bar{min-height:48px;padding:5px 10px;gap:12px}.food-token{padding:3px 8px}.food-token img{width:32px;height:32px}.context-hint{margin:6px 0;font-size:13px;min-height:20px}canvas{width:min(100%,calc((100dvh - 250px) * 1600 / 780));height:auto;margin:0 auto}footer{margin:8px 0;font-size:11px}.welcome{min-height:min(620px,calc(100dvh - 90px))}
#victory,#defeat{position:absolute;left:18px;bottom:45px;width:min(42%,540px);max-height:calc(100dvh - 280px);overflow:auto;margin:0;padding:16px;box-shadow:0 8px 25px #34463830;border:2px solid #b8c69c}#victory h2,#defeat h2{font-size:25px}#victory .dish{width:128px;height:80px}#victory p,#defeat p{font-size:13px}#victory .sound,#defeat .sound{margin-top:10px}#victory button,#defeat button{padding:9px 12px;font-size:12px}.result-columns{gap:8px;margin:12px 0}.result-columns .food-token{font-size:11px}.result-columns h3{font-size:13px}
@media(max-width:1000px){canvas{width:100%}#victory,#defeat{position:static;width:100%;max-height:none}.status{padding-right:115px}.status #hint{display:none}}

#characters{max-height:calc(100dvh - 330px)}

/* Menu di distribuzione: testo compatto, senza altezza fissa. */
#version{font-size:.85rem;opacity:.75;margin:0} .menu-help{font-size:.9rem;line-height:1.45;max-width:620px;margin:12px auto} #loading-status{font-size:.9rem;margin:8px 0} #menu .welcome-card{padding:20px} #menu .portrait{max-height:125px;width:auto} #menu button:disabled,#recipe-start:disabled{opacity:.5;cursor:wait}
/* Portata libera: griglia ingredienti e giudizi persistenti. */
#storage .welcome-card{display:flex;flex-direction:column;max-height:calc(100dvh - 48px)}
#storage-items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;overflow-y:auto;min-height:0;padding:4px}
#storage .food-choice{padding:8px 4px;font-size:13px;min-width:0;overflow-wrap:anywhere}
#storage .food-choice img{width:48px;height:48px}#storage .actions,#storage-message{flex-shrink:0}
/* Fascia sempre riservata sotto il canvas: nessuna sovrapposizione alla scena. */
canvas{width:min(100%,calc((100dvh - 370px) * 1600 / 620));height:auto}
#results{position:static;width:100%;height:126px;min-height:126px;box-sizing:border-box;margin:8px 0 0;padding:10px 16px;background:#fff9ed;border:1px solid #dcd5b7;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:visible}
.reaction-copy{min-width:0;flex:1}.spoken-line{display:flex;align-items:baseline;gap:14px;min-height:54px}.spoken-line strong{font-size:17px;flex-shrink:0}#reaction-text{font-size:22px;line-height:1.25;margin:8px 0;overflow-wrap:anywhere}#reaction-vote{font-size:15px;white-space:nowrap;min-width:40px}.reaction-controls{display:flex;gap:8px;align-items:center}.reaction-controls .sound{margin:0}.reaction-controls button{font-size:12px;padding:9px 12px}#result-actions{gap:8px}#mean{font-size:22px;font-weight:650;margin:0}
#review .welcome-card{width:min(100%,650px);display:flex;flex-direction:column;max-height:calc(100dvh - 48px)}#review-list{overflow-y:auto;min-height:0;padding:0 12px;text-align:left;margin-bottom:16px}#review-close{flex-shrink:0}#dish-name{font-size:14px;overflow-wrap:anywhere}.judgment{border-top:1px solid #dcd5b7;padding:12px 48px 12px 0;position:relative}.judgment p{font-size:18px;line-height:1.4;margin:6px 0}.vote{position:absolute;right:0;top:12px;font-size:15px;color:#36593f}#review-list:focus-visible{outline:3px solid #cf763f;outline-offset:2px}#serve-confirm .actions{margin-top:20px}
@media(max-width:1000px){canvas{width:100%}#results{height:auto;min-height:150px;flex-direction:column;align-items:stretch}.reaction-controls{flex-wrap:wrap}.spoken-line{flex-wrap:wrap}#storage-items{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Riepilogo cena: quattro righe scorrevoli, nomi completi. */
#dinner-final .welcome-card{width:min(100%,700px)}
#dinner-rows article{text-align:left;border-top:1px solid #dcd5b7;padding:12px 0;overflow-wrap:anywhere}
#dinner-rows h3,#dinner-rows p{margin:6px 0}#dinner-mean{font-size:24px;font-weight:650}#dinner-rating{font-size:22px}
.status{padding-right:155px}
