:root{--kraft:#a87e46;--kraft-deep:#6e4f27;--ink:#1d1710;--ink-soft:#3a2d1c;--stamp:#c23524;--stamp-deep:#9c2317;--stock:#f4eddd;--stock-aged:#e9dec4;--line:#2b1b10;--wood:#d9a865;--wall:#7fb6b3;--green:#6aa84f;--gold:#f6c343;--sky:#ffe6a3;--display:"Permanent Marker",cursive;--body:"Libre Franklin",system-ui,sans-serif;--mono:"Fragment Mono",monospace}*{box-sizing:border-box}html,body{height:100%;font-family:var(--body);color:var(--ink);-webkit-tap-highlight-color:transparent;background:#2b241a;margin:0;overflow:hidden}#stage{position:fixed;inset:0}#game canvas{display:block}#ui{transform-origin:0 0;pointer-events:none;width:960px;height:540px;position:absolute;top:0;left:0}#ui>*{pointer-events:auto}#rotate{background:var(--wall);color:#fff;font-family:var(--display);text-align:center;z-index:50;justify-content:center;align-items:center;padding:2rem;font-size:1.8rem;display:none;position:fixed;inset:0}@media (orientation:portrait) and (width<=700px){#rotate{display:flex}}.panel{border:3px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;gap:10px;padding:14px 16px;display:flex;position:absolute;box-shadow:0 10px 22px #140c0459}.panel h2{font-family:var(--display);margin:0;font-size:26px;font-weight:400;line-height:1}.panel h3{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:12px}.panel p{margin:0;font-size:14px;line-height:1.4}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:1}.btn{font:900 15px/1 var(--body);letter-spacing:.05em;text-transform:uppercase;border:3px solid var(--line);background:var(--gold);color:var(--ink);cursor:pointer;box-shadow:0 4px 0 var(--line);border-radius:999px;padding:11px 18px;transition:transform 80ms}.btn:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.btn.go{background:var(--green);color:#fff}.btn.red{background:var(--stamp);color:#fff}.btn.dark{background:var(--ink);color:#fff}.btn.ghost{background:#fff}.btn.sm{padding:8px 12px;font-size:12px}.btn:disabled{opacity:.45;cursor:default;box-shadow:0 4px 0 var(--line)}.chip{font:800 12px/1 var(--body);letter-spacing:.05em;text-transform:uppercase;border:2.5px dashed var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:999px;padding:9px 12px}.chip.on{background:var(--stamp);color:#fff;border-style:solid}.chip.lock{background:var(--stock-aged);color:var(--ink);cursor:default;border-style:solid}.bubble{border:3px solid var(--line);background:#fff;border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600;line-height:1.3;position:absolute;box-shadow:0 6px 14px #140c044d}.bubble:after{content:"";border:8px solid #0000;border-top:10px solid var(--line);border-bottom:0;position:absolute;bottom:-14px;left:24px}.bubble b{color:var(--stamp-deep)}.mono{font-family:var(--mono);font-weight:400}.call{font-family:var(--mono);color:#fff;background:var(--ink);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.5}.call .k{color:#c9a15e}.cards{align-items:stretch;gap:10px;display:flex}.card{border:3px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;flex:1;gap:6px;min-width:0;padding:10px;display:flex}.card.pick{outline:4px solid var(--gold);outline-offset:1px}.card .name{text-transform:uppercase;min-height:30px;font-size:13px;font-weight:900;line-height:1.15}.card .meta{font-family:var(--mono);color:var(--ink-soft);font-size:11px}.card .flag{background:var(--stock-aged);color:var(--ink-soft);border-radius:8px;padding:4px 6px;font-size:11px;font-weight:800}.card .flag.bad{color:var(--stamp-deep);background:#fde0dc}.stars{color:var(--gold);letter-spacing:1px;-webkit-text-stroke:1px var(--line);font-size:14px}.stars .off{color:#e0d6c0}.serves{align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex}.serves button{font:800 12px var(--body);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;width:30px;height:26px}.serves button.on{background:var(--stamp);color:#fff}.pots{gap:12px;display:flex}.pot{border:3px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;flex:1;gap:6px;min-width:0;padding:10px;display:flex}.pot.empty{color:var(--ink-soft);text-transform:uppercase;border-style:dashed;justify-content:center;align-items:center;font-size:12px;font-weight:800}.pot .step{height:34px;font-size:13px;font-weight:600;line-height:1.3;overflow:hidden}.bar{border:2px solid var(--line);background:#f1e4c8;border-radius:6px;height:10px;overflow:hidden}.bar i{background:var(--green);height:100%;transition:width .2s linear;display:block}.bar.heat i{background:var(--stamp)}.pot.alarm{animation:.4s infinite alarm}@keyframes alarm{50%{box-shadow:0 0 0 4px var(--stamp)}}.pot.ready{outline:4px solid var(--green)}.ticket{border:3px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;width:134px;height:58px;padding:6px 8px;font-size:11px;line-height:1.25;transition:transform .15s;position:absolute;box-shadow:0 4px 10px #140c044d}.ticket .top{background:var(--green);border-radius:4px;height:8px;margin:-2px 0 4px}.ticket.warn .top{background:var(--gold)}.ticket.late .top{background:var(--stamp)}.ticket.late{animation:.5s infinite alarm}.ticket b,.ticket .line{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.ticket b{font-size:11px}.ticket .line{color:var(--ink-soft);font-size:10px}.ticket .small{display:none}.ticket.active{outline:4px solid var(--gold);transform:translateY(-4px)}.ticket.cooking{opacity:.75}.ticket .bar{height:7px;margin-top:3px}.hud{background:var(--ink);color:#fff;border:3px solid var(--line);font-family:var(--mono);border-radius:10px;padding:6px 12px;font-size:18px;position:absolute}.hint{text-align:center;color:#fff;text-shadow:0 0 4px var(--line),0 0 4px var(--line),2px 2px 0 var(--line);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:900;position:absolute;bottom:8px;left:0;right:0}.verdict{text-align:center;width:520px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.verdict .big{font-family:var(--display);font-size:34px;line-height:1}.verdict .big.bad{color:var(--stamp)}.verdict .stars{font-size:34px}.verdict ul{margin:0;padding:0;font-size:14px;line-height:1.5;list-style:none}.title{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.title .panel{text-align:center;align-items:center;width:560px}.title h1{font-family:var(--display);margin:0;font-size:44px;font-weight:400;line-height:1}.title .sub{max-width:44ch;font-size:15px}input.nick{font:800 18px var(--body);border:3px solid var(--line);text-align:center;text-transform:uppercase;border-radius:10px;width:240px;padding:10px 12px}.plates{justify-content:center;gap:8px;display:flex}.plate{border:3px solid var(--line);background:#fff;border-radius:50%;place-items:center;width:40px;height:28px;font-size:12px;font-weight:900;display:grid}.plate.served{background:var(--gold)}.plate.late{background:#f7a072}.plate.sent_back,.plate.missed{color:var(--stamp);background:#e0d6c0;border-style:dashed}.scores{grid-template-columns:28px 1fr 60px 60px 70px;align-items:center;gap:4px 8px;width:100%;font-size:14px;display:grid}.scores .h{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:11px}.scores .me{color:var(--stamp-deep);font-weight:900}.board{color:#fff;background:#2f3b33;border-radius:10px;width:100%;padding:12px}.board .scores .h{color:#c9a15e}.tabs{gap:6px;display:flex}.tabs .chip.on{background:var(--gold);color:var(--ink)}.small{color:var(--ink-soft);font-size:12px}.link{color:var(--stamp-deep);font-weight:800}
