/* v10: boot gate. The 3D canvas stays behind an opaque cover until every stage in window.gameReady is done
   (assets, rigs, colliders, clips, camera, shaders); the warm-up draws behind it, never on show. */
#scene-cover{position:fixed;inset:0;z-index:4;background:#211713;opacity:1;transition:opacity .6s ease;pointer-events:none}
body:not(.booting) #scene-cover{opacity:0}
body.booting .top,body.booting .tools,body.booting .party-strip,body.booting .utility-tools,body.booting .ticket,body.booting .map-label,body.booting #map,
body.booting .controls,body.booting .touch,body.booting #interact,body.booting #crosshair,body.booting .grip-button,body.booting .subtitle,
body.booting #chef-guide,body.booting #v7-reticle,body.booting .room-badge{visibility:hidden!important}
#loading .load-bar{width:min(360px,70vw);height:8px;margin:18px auto 6px;background:#3a2a20;border:1px solid #5a4030;border-radius:5px;overflow:hidden}
#loading #load-fill{display:block;height:100%;width:0;background:#d9a54b;transition:width .25s ease}
#loading #load-step{font:12px ui-monospace,monospace;color:#b89a78;margin:0}

/* v10: touch layout (phones/tablets). Desktop key hints and the minimap go; the recipe ticket and chef card shrink to
   corner cards; the move pad, jump and run buttons are thumb-sized. Landscape phones drop the ticket entirely. */
#touch-actions{display:none}
@media (pointer:coarse){
 .controls,.map-label,#map{display:none!important}
 .top{transform:scale(.8);transform-origin:top left}
 .tools{transform:scale(.78);transform-origin:top right;flex-wrap:wrap;justify-content:flex-end;max-width:62vw}
 .party-strip{display:none!important}
 .ticket{transform:scale(.72);transform-origin:top left;max-width:300px}
 .ticket #session,.ticket .steps{display:none}
 #chef-guide{transform:scale(.72);transform-origin:top right;max-width:320px}
 .utility-tools{position:fixed!important;left:auto!important;right:6px!important;top:42%!important;bottom:auto!important;flex-direction:column;align-items:flex-end;transform:scale(.72);transform-origin:top right}
 .touch{display:grid!important;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(2,58px);gap:6px;left:14px!important;bottom:calc(14px + env(safe-area-inset-bottom))!important}
 .touch button{width:58px;height:58px;font-size:22px;border-radius:12px}
 .touch [data-move="KeyW"]{grid-column:2;grid-row:1}.touch [data-move="KeyA"]{grid-column:1;grid-row:2}.touch [data-move="KeyS"]{grid-column:2;grid-row:2}.touch [data-move="KeyD"]{grid-column:3;grid-row:2}
 #touch-actions{display:flex;gap:8px;position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:6}
 #touch-actions button{width:62px;height:62px;border-radius:50%;font:700 12px ui-monospace,monospace;background:#2a1d17e6;color:#f2d9a6;border:2px solid #d9a54b}
 #touch-actions button[aria-pressed="true"]{background:#d9a54b;color:#21140f}
 .grip-button{right:14px!important;bottom:calc(14px + env(safe-area-inset-bottom))!important}
}
@media (pointer:coarse) and (max-height:500px){
 .ticket{display:none!important}
 #chef-guide{transform:scale(.55);max-width:300px}
 .utility-tools{display:none!important}
 #touch-actions{bottom:calc(14px + env(safe-area-inset-bottom));right:180px}
}
body.booting #touch-actions,body:not(.playing) #touch-actions{display:none!important}

/* ---- v10 emotion wheel (emotes-v10.js): a greasy order wheel, six slots around a stamped hub ---- */
#emote-wheel{position:fixed;left:50%;top:50%;width:min(420px,86vw);height:min(420px,86vw);transform:translate(-50%,-50%);z-index:60;border-radius:50%;
 background:radial-gradient(circle at 50% 50%,rgba(38,28,20,.92) 0 32%,rgba(28,21,15,.82) 33% 100%);box-shadow:0 18px 50px rgba(0,0,0,.55),inset 0 0 0 3px rgba(222,186,128,.35)}
#emote-wheel[hidden]{display:none}
#emote-wheel .ew-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-4deg);width:34%;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;text-align:center;
 background:#e8d9b5;color:#3b2417;box-shadow:inset 0 0 0 2px #7a4a2a,inset 0 0 18px rgba(120,80,30,.45);font-family:var(--bc-display,Impact,'Arial Black',sans-serif)}
#emote-wheel .ew-hub b{font-size:clamp(16px,3.4vw,22px);letter-spacing:.06em}#emote-wheel .ew-hub small{font:600 11px var(--bc-mono,Consolas,monospace);opacity:.75}
#emote-wheel button{position:absolute;left:50%;top:50%;width:30%;transform:translate(-50%,-50%) rotate(var(--a)) translate(min(140px,29vw)) rotate(calc(-1 * var(--a)));
 display:grid;justify-items:center;gap:2px;padding:10px 4px;border-radius:14px;border:2px solid rgba(222,186,128,.35);background:rgba(245,232,204,.07);color:#f2e6cc;
 font:700 14px var(--bc-body,Bahnschrift,'Trebuchet MS',sans-serif);cursor:pointer}
#emote-wheel button span{font-size:28px;line-height:1}#emote-wheel button kbd{font:600 10px var(--bc-mono,Consolas,monospace);opacity:.65}
#emote-wheel button:hover,#emote-wheel button:focus-visible,#emote-wheel button.sel{background:#e8d9b5;color:#3b2417;outline:none;border-color:#c0392b}
#emote-wheel .ew-dot{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:0;border-radius:50%;background:#e0a030;box-shadow:0 0 0 3px rgba(0,0,0,.45);pointer-events:none;z-index:2}
#emote-wheel .ew-dot.far{background:#c0392b}
#emote-button.held{filter:brightness(1.3)}#emote-button small{opacity:.7;font-size:.8em}
#emote-wheel button.on{border-color:#e0a030;box-shadow:0 0 0 2px rgba(224,160,48,.4)}
#emote-button{position:fixed;right:16px;bottom:118px;z-index:30}
body:not(.playing) #emote-button{display:none}
#emote-button.on{border-color:#e0a030}
