:root{color:#1b2a49;background:#fff3c4;font-family:ui-rounded,Nunito,Arial Rounded MT Bold,Segoe UI,system-ui,sans-serif;font-size:20px}*{box-sizing:border-box}body{margin:0}.screen{flex-direction:column;align-items:center;gap:12px;min-height:100dvh;padding:16px;display:flex}.hero{font-size:96px;line-height:1.1}.status{text-align:center;justify-content:center}h1{margin:0;font-size:32px}button.big{min-width:64px;min-height:64px;font:inherit;cursor:pointer;color:#fff;background:#2a9df4;border:4px solid #1b2a49;border-radius:20px;padding:8px 16px;font-size:32px}button.big:disabled{color:#6b7280;cursor:default;background:#c9ced6}button.big:focus-visible{outline-offset:2px;outline:4px solid #e63946}button.go{background:#4caf50}button.card{color:#1b2a49;background:#fff;flex-direction:column;align-items:center;min-height:128px;display:flex}button.card small{font-size:18px}button.pic{background:#fff;min-height:88px;font-size:48px}.code{width:min(100%,420px);font:inherit;letter-spacing:.3em;text-align:center;text-transform:uppercase;border:4px solid #1b2a49;border-radius:20px;min-height:80px;font-size:48px}.keys,.grid,.row,.slots,.nick{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.keys{max-width:560px}.who{max-width:720px}.pics{max-width:360px}.slots{font-size:56px}.slot{text-align:center;background:#fff;border:4px solid #1b2a49;border-radius:16px;min-width:72px}.part .val{text-align:center;min-width:120px;font-size:32px}.dot{vertical-align:middle;border:3px solid #1b2a49;border-radius:50%;width:32px;height:32px;display:inline-block}.nick strong{align-self:center;font-size:28px}.preview{touch-action:pan-y;background:#cdeefd;border:4px solid #1b2a49;border-radius:20px;width:min(100%,320px);height:260px}.error{font-size:40px}.error small{font-size:14px}.world{touch-action:none;-webkit-user-select:none;user-select:none;background:#bfe6ff;position:fixed;inset:0}.label,.sign,.emote{pointer-events:none;white-space:nowrap;-webkit-user-select:none;user-select:none}.label{text-overflow:ellipsis;color:#1b2a49;background:#ffffffd9;border-radius:10px;max-width:140px;padding:2px 8px;font-size:14px;font-weight:700;overflow:hidden}.label.me{background:#ffd23f}.sign{filter:drop-shadow(0 2px 2px #0000004d);font-size:56px}.emote{font-size:40px}.joystick{touch-action:none;background:#ffffff73;border:4px solid #1b2a49;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:24px;left:24px}.joystick .knob{pointer-events:none;background:#2a9df4;border:4px solid #1b2a49;border-radius:50%;width:64px;height:64px}.hud-right{flex-direction:column;align-items:flex-end;gap:16px;display:flex;position:absolute;bottom:24px;right:24px}button.big.hop{background:#4caf50;border-radius:50%;min-width:120px;min-height:120px;font-size:56px}.nap{background:#fff;border:4px solid #1b2a49;border-radius:20px;padding:4px 16px;font-size:32px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.overlay{z-index:100;background:#fff3c4;position:absolute;inset:0}.build-tools{flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px}button.big.on{color:#1b2a49;background:#ffd23f}button.big.paint{text-shadow:0 0 4px #fff}.tray{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:16px;left:200px;right:170px}.tray .tabs{gap:8px;display:flex}.tray .tab{background:#fff;padding:4px 12px}.tray .tab.on{background:#ffd23f}.tray .pieces{background:#ffffffbf;border:4px solid #1b2a49;border-radius:20px;gap:8px;padding:4px;display:flex;overflow-x:auto}.tray .piece{background:#fff;flex:none;min-width:72px;min-height:72px;padding:4px;font-size:40px}.tray .piece.on{background:#ffd23f}.tray .piece.sparkle{animation:1.2s ease-out 2 sparkle}@keyframes sparkle{0%,to{transform:scale(1);box-shadow:0 0 #ffd23f}40%{transform:scale(1.25)rotate(-8deg);box-shadow:0 0 24px 8px #ffd23f}}.build-tools.shake{background:#e6394640;border-radius:16px;outline:4px solid #e63946;animation:.4s build-shake}@keyframes build-shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.social{flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;top:88px;right:24px}.hush{background:#fff;border:4px solid #1b2a49;border-radius:20px;padding:0 12px;font-size:40px}.panel{z-index:50;background:#fffffff2;border:4px solid #1b2a49;border-radius:24px;flex-wrap:wrap;justify-content:center;gap:10px;padding:12px;display:flex;position:absolute}.panel.emotes{width:360px;top:88px;right:110px}.panel.phrases{flex-direction:column;align-items:stretch;width:min(520px,100vw - 260px);top:88px;right:110px}.panel.phrases .tabs,.panel.phrases .list{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}button.big.phrase{color:#1b2a49;background:#fff;flex-direction:column;align-items:center;min-width:112px;padding:4px 8px;font-size:32px;display:flex}button.big.phrase:disabled{color:#6b7280;background:#c9ced6}button.big.phrase small{font-size:14px}button.big.tab{color:#1b2a49;background:#fff}button.big.tab.on{background:#ffd23f}.bubble{white-space:normal;text-align:center;color:#1b2a49;background:#fff;border:3px solid #1b2a49;border-radius:18px;max-width:220px;padding:6px 14px;font-size:20px;font-weight:700;display:inline-block}.quests{gap:8px;display:flex;position:absolute;top:16px;right:24px}.quest{background:#fff;border:4px solid #1b2a49;border-radius:20px;place-items:center;min-height:64px;padding:0 16px;font-size:32px;display:grid}.panel.dialog{flex-wrap:nowrap;align-items:center;width:min(560px,100vw - 32px);bottom:150px;left:50%;transform:translate(-50%)}.dialog .face{font-size:72px}.dialog p{margin:4px 0 0;font-size:20px}.dialog .answers{gap:8px;display:flex}.panel.player-menu{flex-direction:column;align-items:center;width:min(360px,100vw - 32px);top:50%;left:50%;transform:translate(-50%,-50%)}button.big.wide{align-items:center;gap:8px;width:100%;font-size:40px;display:flex}button.big.wide small{text-align:left;font-size:18px}.celebrate{z-index:90;text-align:center;background:#fff3c4eb;flex-direction:column;justify-content:center;align-items:center;gap:8px;animation:.4s ease-out pop-in;display:flex;position:absolute;inset:0}.celebrate .confetti{font-size:56px}.celebrate .prize{font-size:160px;line-height:1;animation:1.2s ease-out 2 sparkle}.celebrate p{margin:0;font-size:40px;font-weight:700}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}}.npc-mark{color:#e63946;text-shadow:0 0 6px #fff,0 0 6px #fff;font-size:44px;font-weight:900;animation:.7s ease-in-out infinite alternate mark-bounce;display:inline-block}@keyframes mark-bounce{to{transform:translateY(-14px)}}.celebrate .confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.celebrate .confetti span{font-size:40px;animation:linear infinite confetti-fall;position:absolute;top:-48px}@keyframes confetti-fall{to{transform:translateY(110vh)rotate(540deg)}}.admin{color:#111;background:#fff;min-height:100dvh;padding:12px;font:14px/1.4 system-ui,sans-serif}.admin section{border-top:1px solid #ccc;margin-top:8px}.admin h2{margin:8px 0;font-size:16px}.admin button{margin:2px}.admin td{vertical-align:top;padding:2px 6px}.admin .split{flex-wrap:wrap;gap:12px;display:flex}.admin .joincode{letter-spacing:.2em;margin:4px 0;font:700 64px monospace}.admin pre{background:#f4f4f4;max-height:240px;padding:6px;overflow:auto}.privacy{color:#4a5a7a;margin-top:auto;font-size:.7rem}
