:root{--ink:#1b1340;--pink:#ff5ccd;--yellow:#ffd23f;--blue:#3a86ff;--green:#3bd16f;--card:rgba(255,255,255,.92)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#7fd1ff;font-family:"Baloo 2",system-ui,sans-serif;color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none}#app{position:fixed;top:0;right:0;bottom:0;left:0}#app canvas{display:block;width:100%;height:100%}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui .panel,#ui button,#ui input,#ui select,#ui .click{pointer-events:auto}button{font-family:inherit;font-weight:800;font-size:18px;border:none;border-radius:14px;padding:10px 18px;cursor:pointer;color:#fff;background:var(--blue);box-shadow:0 5px #00000040;transition:transform .08s}button:hover{transform:translateY(-2px) rotate(-1deg)}button:active{transform:translateY(3px);box-shadow:0 2px #00000040}button.pink{background:var(--pink)}button.yellow{background:var(--yellow);color:var(--ink)}button.green{background:var(--green)}button.ghost{background:#1b13401f;color:var(--ink);box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed}input,select{font-family:inherit;font-size:18px;font-weight:700;border:3px solid var(--ink);border-radius:12px;padding:8px 12px;outline:none;background:#fff;color:var(--ink);min-width:0}.panel{background:var(--card);border-radius:22px;padding:18px;box-shadow:0 10px #1b13402e,0 20px 50px #00000026;border:3px solid var(--ink)}.logo{font-size:clamp(48px,9vw,110px);font-weight:800;line-height:.85;color:#fff;-webkit-text-stroke:3px var(--ink);text-shadow:0 8px 0 var(--ink);letter-spacing:-2px;transform:rotate(-4deg);animation:wob 3s ease-in-out infinite;margin:0}.logo span{color:var(--yellow)}@keyframes wob{50%{transform:rotate(2deg) scale(1.04)}}.sub{font-weight:800;color:#fff;-webkit-text-stroke:1px var(--ink);font-size:20px;text-shadow:0 2px 0 var(--ink)}#menu{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;padding:24px;gap:24px;align-items:center;overflow:auto}#menu .left{flex:1 1 380px;max-width:480px;display:flex;flex-direction:column;gap:14px}#menu .right{flex:1 1 380px;max-width:440px;max-height:calc(100vh - 48px);overflow:auto;margin-left:auto;display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>input{flex:1}.label{font-weight:800;font-size:14px;text-transform:uppercase;opacity:.7;letter-spacing:1px;margin-bottom:4px}.swatches{display:flex;gap:6px;flex-wrap:wrap}.sw{width:30px;height:30px;border-radius:50%;border:3px solid rgba(0,0,0,.2);cursor:pointer;pointer-events:auto}.sw.on{border-color:var(--ink);transform:scale(1.15)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{pointer-events:auto;cursor:pointer;padding:4px 10px;border-radius:10px;background:#1b134014;font-weight:700;font-size:15px;border:2px solid transparent}.chip.on{background:var(--yellow);border-color:var(--ink)}.roomlist{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow:auto}.roomrow{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#1b134012;border-radius:10px;font-weight:700}.roomrow button{padding:4px 12px;font-size:15px}.err{color:#e63946;font-weight:800;min-height:1em}#lobby{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;padding:20px;gap:20px;align-items:flex-start;justify-content:space-between}#lobby .col{width:360px;max-width:46vw;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 40px)}.code{font-size:54px;font-weight:800;letter-spacing:8px;line-height:1;color:var(--pink);-webkit-text-stroke:2px var(--ink)}.plist{display:flex;flex-direction:column;gap:4px;max-height:38vh;overflow:auto}.prow{display:flex;align-items:center;gap:8px;font-weight:800;font-size:18px;padding:4px 8px;border-radius:10px}.prow.me{background:#ffd23f59}.dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--ink);flex:none}.chat{display:flex;flex-direction:column;gap:8px}.chatlog{height:180px;overflow:auto;font-weight:600;font-size:15px;display:flex;flex-direction:column;gap:2px}.chatlog .sys{opacity:.6;font-style:italic}.emotebar{display:flex;gap:4px;flex-wrap:wrap}.emotebar button{font-size:22px;padding:4px 8px;background:#fff;box-shadow:0 3px #0003;border:2px solid var(--ink)}.big-start{font-size:28px;padding:14px}#hud{position:absolute;top:0;right:0;bottom:0;left:0}.hud-top{position:absolute;top:12px;left:50%;transform:translate(-50%);text-align:center}.hud-title{font-size:34px;font-weight:800;color:#fff;-webkit-text-stroke:2px var(--ink);text-shadow:0 4px 0 var(--ink);white-space:nowrap}.hud-meta{font-weight:800;color:#fff;text-shadow:0 2px 0 var(--ink),0 0 6px rgba(0,0,0,.5);font-size:18px}.timer{font-size:30px;font-weight:800;color:#fff;-webkit-text-stroke:1.5px var(--ink)}.timer.hot{color:#ff4d4d;animation:pulse .5s infinite}@keyframes pulse{50%{transform:scale(1.15)}}.hud-players{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:3px}.hp{display:flex;align-items:center;gap:6px;background:#ffffffd9;border-radius:10px;padding:2px 10px 2px 4px;font-weight:800;font-size:15px;border:2px solid var(--ink)}.hp.done{background:#b8f5c8}.hp.dead{opacity:.5}.hp .st{margin-left:auto;padding-left:10px}.hud-bottom{position:absolute;bottom:18px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.powerbar{width:340px;max-width:80vw;height:26px;border:3px solid var(--ink);border-radius:14px;background:#fffc;overflow:hidden}.powerfill{height:100%;width:0;background:linear-gradient(90deg,#3bd16f,#ffd23f 60%,#ff4d4d)}.hint{font-weight:800;color:#fff;text-shadow:0 2px 0 var(--ink),0 0 6px rgba(0,0,0,.6);font-size:16px;text-align:center}.strokes{position:absolute;bottom:18px;left:18px;font-size:26px;font-weight:800;color:#fff;-webkit-text-stroke:1.5px var(--ink);text-shadow:0 3px 0 var(--ink)}.itemslot{position:absolute;bottom:18px;right:18px;width:96px;height:96px;border-radius:20px;background:#ffffffd9;border:4px solid var(--ink);display:flex;align-items:center;justify-content:center;font-size:54px;flex-direction:column}.itemslot small{font-size:13px;font-weight:800;line-height:1}.itemslot.has{animation:pulse 1s infinite;background:#fff7c2}.feed{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.feed div{background:#1b1340bf;color:#fff;padding:3px 10px;border-radius:10px;font-weight:700;font-size:15px;animation:slidein .25s}@keyframes slidein{0%{transform:translate(40px);opacity:0}}.announce{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);font-size:clamp(40px,8vw,96px);font-weight:800;color:var(--yellow);-webkit-text-stroke:3px var(--ink);text-shadow:0 6px 0 var(--ink);white-space:nowrap;animation:boom .5s cubic-bezier(.2,1.6,.4,1);text-align:center}.announce small{display:block;font-size:.35em;color:#fff;-webkit-text-stroke:1.5px var(--ink)}@keyframes boom{0%{transform:translate(-50%,-50%) scale(0) rotate(-20deg)}}.hud-chat{position:absolute;left:12px;bottom:190px;width:340px;max-width:70vw;display:flex;flex-direction:column;gap:2px}.hud-chat .msg{background:#1b134099;color:#fff;padding:2px 8px;border-radius:8px;font-weight:600;font-size:14px;width:fit-content;max-width:100%}.hud-chat input{pointer-events:auto;font-size:15px;padding:4px 8px}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1b134059}.results{min-width:min(560px,94vw);max-height:86vh;overflow:auto}.results h2{margin:0 0 10px;font-size:36px;text-align:center}.results table{width:100%;border-collapse:collapse;font-weight:800;font-size:18px}.results td{padding:5px 8px;border-bottom:2px dashed rgba(27,19,64,.15)}.results .pts{color:var(--green)}.helpkeys{position:absolute;bottom:120px;right:18px;font-size:13px;font-weight:700;color:#fff;text-shadow:0 1px 0 var(--ink),0 0 4px rgba(0,0,0,.6);text-align:right;line-height:1.35}.emotewheel{position:absolute;bottom:70px;left:12px;display:grid;grid-template-columns:repeat(4,auto);gap:5px}.emotewheel button{font-size:22px;padding:4px 10px;background:#fff;border:3px solid var(--ink);position:relative}.emotewheel button i{position:absolute;bottom:0;right:4px;font-size:11px;font-style:normal;color:var(--ink)}.topbtns{position:absolute;top:12px;right:12px;display:flex;gap:8px}.topbtns button{padding:6px 12px;font-size:15px}.touch{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.touch button{position:absolute;pointer-events:auto}.tshoot{right:24px;bottom:130px;width:110px;height:110px;border-radius:50%;font-size:22px}.titem{right:150px;bottom:150px;width:70px;height:70px;border-radius:50%;font-size:30px;padding:0}.tloft{right:24px;bottom:250px;display:flex;flex-direction:column;gap:6px}.tloft button{position:static;width:56px;height:44px;padding:0}.modal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1b134066;pointer-events:auto}.spectate{position:absolute;top:110px;left:50%;transform:translate(-50%);font-weight:800;color:#fff;text-shadow:0 2px 0 var(--ink);font-size:18px}@media(max-width:760px){#lobby{flex-direction:column;overflow:auto}#lobby .col{width:100%;max-width:none}.hud-title{font-size:22px}.helpkeys{display:none}.hud-players{transform:scale(.8);transform-origin:top left}.emotewheel{bottom:auto;top:60px}.emotewheel button{font-size:18px}}
