:root{color:#273126;font-synthesis:none;text-rendering:optimizelegibility;background:#e5d6a8;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:radial-gradient(circle at 10% 20%,#fff8dabf,#0000 25%),#e5d6a8;min-height:100vh}button,input{font:inherit}button{color:#273126;background:#eaca38;border:3px solid #273126;border-radius:16px 12px 18px 13px;padding:13px 18px;font-weight:800;box-shadow:3px 4px #273126}button:active{transform:translate(2px,2px);box-shadow:1px 2px #273126}button:disabled{opacity:.55}.eyebrow{letter-spacing:.16em;margin:0 0 5px;font-size:12px;font-weight:900}.host-shell{width:min(1180px,100%);margin:0 auto;padding:18px}.host-header{justify-content:space-between;align-items:end;gap:20px;margin-bottom:12px;display:flex}.host-header h1{letter-spacing:-.05em;margin:0;font-size:clamp(36px,6vw,72px);line-height:.85;transform:rotate(-2deg)}.host-stats{flex-wrap:wrap;justify-content:end;gap:10px;display:flex}.host-stats span,.workflow span{background:#f8efcf;border:2px solid #273126;border-radius:13px 9px 15px 10px;padding:8px 11px;box-shadow:2px 3px #273126d9}.game-frame{aspect-ratio:4/3;background:#f4e7bd;border:5px solid #273126;border-radius:24px 15px 28px 18px;width:100%;position:relative;overflow:hidden;box-shadow:7px 9px #273126b8}.game-frame canvas{width:100%;height:100%;display:block}.lobby{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f4e7bdd4;place-items:center;padding:24px;transition:all .25s;display:grid;position:absolute;inset:0}.lobby>div{text-align:center;background:#f8efcf;border:4px solid #273126;border-radius:24px 17px 28px 19px;width:min(430px,90%);padding:22px;box-shadow:6px 7px #273126}.lobby h2{margin:3px 0 10px}.lobby img{width:min(210px,60%)}.lobby code{overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.game-message{text-align:center;background:#fff8dff0;border:3px solid #273126;border-radius:12px 16px 10px 15px;max-width:min(80%,680px);padding:9px 16px;font-weight:800;position:absolute;bottom:16px;left:50%;transform:translate(-50%)rotate(-.6deg);box-shadow:3px 4px #273126bd}.workflow{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:16px;font-size:13px;font-weight:800;display:flex}.workflow b{font-size:20px}.controller-shell{touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;min-height:100vh;padding:20px;display:grid}.join-card,.controller{background:#f8efcf;border:4px solid #273126;border-radius:28px 18px 32px 21px;width:min(480px,100%);padding:24px;box-shadow:7px 9px #273126}.join-card h1,.controller h1{margin:0;font-size:42px;line-height:1}.join-card label{gap:7px;margin:22px 0 14px;font-weight:800;display:grid}.join-card input{background:#fff9e6;border:3px solid #273126;border-radius:13px 9px 15px 10px;width:100%;padding:13px;font-size:18px}.join-card button{width:100%}.join-error{color:#a13e31;min-height:20px;font-weight:800}.controller header,.controller footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.player-dot{border:3px solid #273126;border-radius:48% 52% 44% 56%;flex-shrink:0;width:42px;height:42px;box-shadow:3px 3px #273126}.controller-hint{min-height:48px;margin:14px 0 8px}.controller h1{overflow-wrap:anywhere}.controller-status{text-align:center;background:#eef0c8;border:2px dashed #718b4e;border-radius:14px 10px 16px 11px;min-height:50px;padding:10px;font-weight:800}.joystick{aspect-ratio:1;touch-action:none;background:#e7dba9;border:4px solid #273126;border-radius:50%;place-items:center;width:min(72vw,300px);margin:22px auto;display:grid;position:relative}.joystick-ring{border:3px dashed #2731267a;border-radius:50%;position:absolute;inset:18%}.joystick-knob{aspect-ratio:1;will-change:transform;background:#eaca38;border:4px solid #273126;border-radius:48% 52% 44% 56%;width:31%;position:absolute;box-shadow:4px 5px #273126c7}.joystick>span{letter-spacing:.16em;opacity:.6;font-size:12px;font-weight:900;position:absolute;bottom:9%}.controller footer{font-size:13px;font-weight:800}[hidden]{display:none!important}@media (width<=700px){.host-shell{padding:10px}.host-header{align-items:start}.host-stats{gap:5px;font-size:11px}.host-stats span{padding:5px 7px}.workflow{display:none}.game-message{font-size:11px;bottom:8px}}
