:root{--bg: #0b0a1f;--bg2: #17143a;--tx: #f4f1ff;--mut: #b9b3e6;--pink: #ff3e9d;--cyan: #2de2e6;--yellow: #ffd23f;--violet: #7c5cff;--green: #6bff8f;--red: #ff4d6d;--p1: #ff4d6d;--p2: #35d0ff;--p3: #ffd23f;--p4: #6bff8f;--panel: rgba(18, 15, 48, .82);--line: rgba(255, 255, 255, .16);--r: 18px;--fs: 16px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}:root.hc{--bg: #000;--panel: rgba(0, 0, 0, .94);--line: #fff;--mut: #fff;--tx: #fff}:root.big{--fs: 19px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--tx);font:500 var(--fs) / 1.35 Inter,"Segoe UI",system-ui,Arial,sans-serif;overscroll-behavior:none;touch-action:manipulation;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0}.stage,.ui{position:absolute;inset:0}.stage canvas,.pv-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.ui{pointer-events:none}.ui>*{pointer-events:auto}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.calm *,.calm *:before,.calm *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.btn{appearance:none;border:0;border-radius:14px;padding:.7em 1.2em;font-weight:800;cursor:pointer;color:#fff;background:linear-gradient(180deg,#8f73ff,#6a47ee);box-shadow:0 4px #3d28a8,0 8px 18px #00000059;transition:transform .08s,filter .15s;min-height:44px;letter-spacing:.02em}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(3px);box-shadow:0 1px #3d28a8}.btn.hot{background:linear-gradient(180deg,#ff6bb5,#ff3e9d);box-shadow:0 4px #a8206a,0 8px 18px #00000059}.btn.good{background:linear-gradient(180deg,#4fe38a,#1fb865);box-shadow:0 4px #0f7a40,0 8px 18px #00000059;color:#05281a}.btn.ghost{background:#ffffff1a;box-shadow:none;border:2px solid var(--line)}.btn.big{font-size:1.35em;padding:.75em 1.8em}.btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.5)}.hc .btn{border:3px solid #fff}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(12px + var(--safe-t)) calc(14px + var(--safe-r)) calc(12px + var(--safe-b)) calc(14px + var(--safe-l));overflow-y:auto}.panel{background:var(--panel);border:2px solid var(--line);border-radius:var(--r);padding:18px 20px;box-shadow:0 18px 50px #00000080;backdrop-filter:blur(8px);width:min(100%,720px);max-height:100%;overflow-y:auto}.panel.wide{width:min(100%,1040px)}.panel h1,.panel h2{margin:0 0 12px;font-weight:900;letter-spacing:.02em}.panel h2{font-size:1.5em}.panel h3{margin:14px 0 6px;font-size:1.05em;color:var(--yellow)}.panel p{margin:6px 0;color:var(--mut)}.head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.head h2{margin:0;flex:1}.row{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}.row .lbl{flex:1}.row .lbl small{display:block;color:var(--mut);font-size:.8em}.row input[type=range]{flex:2;accent-color:var(--pink);min-width:80px}.row input[type=checkbox]{width:26px;height:26px;accent-color:var(--pink)}.row select,.field{background:#ffffff1a;border:2px solid var(--line);border-radius:10px;padding:8px 10px;min-height:42px}.row .val{min-width:54px;text-align:right;font-variant-numeric:tabular-nums}.field{width:100%;user-select:text;-webkit-user-select:text}.grid{display:grid;gap:12px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 12px;border-radius:999px;border:2px solid var(--line);background:#ffffff12;cursor:pointer;font-weight:700}.chip.on{background:var(--violet);border-color:#fff}.card{border:2px solid var(--line);border-radius:14px;padding:10px 12px;background:#ffffff0f}.card.pick{cursor:pointer;text-align:left}.card.pick.on{border-color:var(--yellow);background:#ffd23f24}.badge{display:inline-block;padding:2px 8px;border-radius:8px;font-size:.75em;font-weight:800;background:#ffffff24}.err{color:var(--red);font-weight:700;min-height:1.4em}.logo{text-align:center;margin-bottom:18px}.wordmark{font-size:clamp(2.2rem,9vw,5.2rem);font-weight:1000;letter-spacing:.05em;line-height:1;filter:drop-shadow(0 6px 0 rgba(0,0,0,.45))}.wordmark span{display:inline-block;animation:bob 2.4s ease-in-out infinite;text-shadow:0 0 24px currentColor}.wordmark span:nth-child(5n+1){color:#ff3e9d}.wordmark span:nth-child(5n+2){color:#ffd23f}.wordmark span:nth-child(5n+3){color:#2de2e6}.wordmark span:nth-child(5n+4){color:#b9a2ff}.wordmark span:nth-child(5n){color:#6bff8f}.sub{color:var(--mut);letter-spacing:.3em;font-size:.8em;margin-top:6px;text-transform:uppercase}@keyframes bob{50%{transform:translateY(-8px) rotate(-2deg)}}.menu{display:grid;gap:10px;width:min(100%,360px)}.menu .btn{font-size:1.15em}.menu-foot{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}#toasts{position:fixed;left:50%;bottom:calc(18px + var(--safe-b));transform:translate(-50%);display:grid;gap:8px;z-index:99;pointer-events:none;width:min(92vw,520px)}.toast{padding:10px 14px;border-radius:12px;background:#231c58;border:2px solid var(--line);font-weight:700;text-align:center;animation:pop .2s ease-out}.toast.error{background:#5a1230;border-color:var(--red)}.toast.good{background:#0f4a2c;border-color:var(--green)}@keyframes pop{0%{transform:scale(.9);opacity:0}}.pc1{--pc: var(--p1)}.pc2{--pc: var(--p2)}.pc3{--pc: var(--p3)}.pc4{--pc: var(--p4)}.lab-hud{position:absolute;left:12px;top:12px;padding:8px 14px;border-radius:12px;background:#0b0a1fcc;font-weight:700;pointer-events:none}.mg-touch{position:absolute;inset:auto 0 0;height:180px;pointer-events:none;z-index:5}.mg-stick{position:absolute;left:calc(22px + var(--safe-l));bottom:26px;width:128px;height:128px;border-radius:50%;background:#ffffff1f;border:3px solid rgba(255,255,255,.35);touch-action:none;pointer-events:auto;display:grid;place-items:center}.mg-knob{width:54px;height:54px;border-radius:50%;background:#ffffff8c}.mg-btns{position:absolute;right:calc(22px + var(--safe-r));bottom:26px;display:flex;gap:16px;align-items:flex-end;pointer-events:auto}.mg-btn{width:92px;height:92px;border-radius:50%;border:3px solid rgba(255,255,255,.5);background:#7c5cff8c;color:#fff;font:900 30px Inter,sans-serif;touch-action:none}.mg-btn.b{background:#ff3e9d8c;width:72px;height:72px;font-size:24px}.mg-btn.on{transform:scale(.93);filter:brightness(1.3)}@media (max-height: 520px){.panel{padding:10px 14px}.logo{margin-bottom:8px}.menu{gap:6px}.btn{min-height:38px;padding:.45em 1em}}@media (max-width: 520px){.row{flex-wrap:wrap}}.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}.lgrid .card{display:grid;gap:2px;justify-items:start}.lgrid small{color:var(--mut)}.lgrid .feat{font-size:.72em}.lgrid .mm{background:#0000004d;border-radius:10px;padding:2px;align-self:center;justify-self:center}.lgrid .blurb{grid-column:1 / -1;margin:2px 0}.chars{display:flex;gap:6px;flex-wrap:wrap}.char{width:44px;height:44px;border-radius:50%;border:3px solid var(--line);background:linear-gradient(135deg,var(--a),var(--b));font-weight:900;color:#fff;text-shadow:0 1px 2px #000;cursor:pointer}.char.on{border-color:#fff;transform:scale(1.12);box-shadow:0 0 0 3px var(--violet)}.char:disabled{opacity:.25;cursor:not-allowed}.prow{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:8px;border:2px solid var(--pc, var(--line));border-radius:14px;margin-bottom:8px;background:#ffffff0d}.prow .sym{font-size:1.4em;color:var(--pc);text-align:center}.prow .cfg{display:grid;gap:6px}.prow .top{display:flex;gap:6px}.prow .top .field{flex:1;min-width:0}.prow select{min-width:110px}.stepper{display:flex;align-items:center;gap:10px}.stepper b{min-width:2.5em;text-align:center;font-size:1.3em}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 760px){.two{grid-template-columns:1fr}}.codebox{display:flex;align-items:center;gap:12px;margin-bottom:8px}.code{font-size:2em;letter-spacing:.3em;color:var(--yellow)}.rooms{display:grid;gap:8px;margin-bottom:8px;max-height:40vh;overflow-y:auto}.game{position:absolute;inset:0;overflow:hidden}.hud{position:absolute;inset:0;pointer-events:none;padding:calc(8px + var(--safe-t)) calc(10px + var(--safe-r)) calc(8px + var(--safe-b)) calc(10px + var(--safe-l))}.hud>*{pointer-events:none}.hud .actions,.hud .menubtn,.hud .dialog-wrap.on,.hud .actions *{pointer-events:auto}.sb{position:absolute;left:calc(8px + var(--safe-l));top:calc(8px + var(--safe-t));display:grid;gap:6px}.pcard{display:grid;grid-template-columns:24px auto auto auto;gap:2px 8px;align-items:center;padding:6px 10px;border-radius:14px;background:var(--panel);border:3px solid var(--pc);min-width:190px;font-weight:800;transition:transform .2s}.pcard .sym{color:var(--pc);font-size:1.1em;grid-row:span 2}.pcard .nm{grid-column:2 / 5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.pcard .coins{color:var(--yellow)}.pcard .shards{color:var(--cyan)}.pcard .items{font-size:.9em}.pcard.now{transform:scale(1.06);box-shadow:0 0 0 3px var(--pc),0 6px 20px #00000080}.round{position:absolute;left:50%;top:calc(8px + var(--safe-t));transform:translate(-50%);padding:6px 16px;border-radius:999px;background:var(--panel);border:2px solid var(--line);font-weight:800;white-space:nowrap}.menubtn{position:absolute;right:calc(8px + var(--safe-r));top:calc(8px + var(--safe-t));min-width:48px;padding:.3em .8em}.banner{position:absolute;left:50%;top:calc(54px + var(--safe-t));transform:translate(-50%) translateY(-8px);padding:8px 18px;border-radius:14px;background:#ffd23ff2;color:#2a1a00;font-weight:900;opacity:0;transition:.2s;max-width:80vw;text-align:center}.banner.on{opacity:1;transform:translate(-50%)}.ticker{position:absolute;left:50%;top:38%;transform:translate(-50%) scale(.9);padding:10px 20px;border-radius:16px;background:#120f30e6;border:2px solid var(--line);font-weight:800;font-size:1.15em;opacity:0;transition:.25s;max-width:86vw;text-align:center}.ticker.on{opacity:1;transform:translate(-50%) scale(1)}.bigdice{position:absolute;left:50%;top:22%;transform:translate(-50%);font-size:clamp(3rem,12vw,6rem);font-weight:1000;color:#fff;text-shadow:0 5px 0 #3d28a8,0 0 30px #7c5cff;opacity:0}.bigdice.on{animation:dicepop 1.4s ease-out forwards}@keyframes dicepop{0%{opacity:0;transform:translate(-50%) scale(.3)}20%{opacity:1;transform:translate(-50%) scale(1.25)}35%{transform:translate(-50%) scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-30px)}}.floats{position:absolute;inset:0;overflow:hidden}.float{position:absolute;transform:translate(-50%,-50%);font-weight:1000;font-size:1.5em;text-shadow:0 2px 0 #000,0 0 10px #000;animation:floatup 1.4s ease-out forwards;white-space:nowrap}.float.good{color:var(--yellow)}.float.bad{color:var(--red)}.float.info{color:#fff}@keyframes floatup{to{transform:translate(-50%,-150%);opacity:0}}.actions{position:absolute;left:50%;bottom:calc(14px + var(--safe-b));transform:translate(-50%);display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center;max-width:94vw}.actions .roll{font-size:1.5em;padding:.7em 1.6em;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.06)}}.dialog-wrap{position:absolute;inset:0;display:none;place-items:center;background:#05041473}.dialog-wrap.on{display:grid}.dialog{width:min(94vw,560px)}.dialog .offer{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.dialog .offer .lbl{flex:1}.dialog .offer small{display:block;color:var(--mut)}.cover{position:absolute;inset:0;display:grid;place-items:center;background:#08061ee0;z-index:10;text-align:center;padding:16px;overflow-y:auto;pointer-events:auto}.cover .panel{text-align:left}.count{font-size:clamp(5rem,22vw,11rem);font-weight:1000;color:#fff;text-shadow:0 8px 0 #3d28a8,0 0 40px var(--pink);animation:dicepop .9s ease-out}.mg-hud{position:absolute;left:0;right:0;top:0;padding:calc(10px + var(--safe-t)) 14px;display:flex;gap:14px;justify-content:center;font-weight:900;font-size:1.15em;text-shadow:0 2px 0 #000;pointer-events:none;z-index:6}.mg-hud span{background:#0b0a1fb3;padding:6px 14px;border-radius:12px}.mg-hint{position:absolute;left:0;right:0;bottom:calc(190px + var(--safe-b));text-align:center;font-weight:800;text-shadow:0 2px 0 #000;pointer-events:none;z-index:6}.rank{display:grid;gap:8px;margin:10px 0}.rank .rrow{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;padding:8px 12px;border-radius:12px;border:3px solid var(--pc, var(--line));background:#ffffff0f;font-weight:800}.rank .rrow.w{background:#ffd23f29}.rank .pos{font-size:1.4em;text-align:center}.pausebtns{display:grid;gap:10px;margin-top:8px}.conn{position:absolute;left:50%;bottom:70px;transform:translate(-50%);padding:6px 14px;border-radius:12px;background:#5a1230;border:2px solid var(--red);font-weight:800;pointer-events:none}@media (max-width: 760px),(max-height: 520px){.sb{left:calc(6px + var(--safe-l));right:calc(66px + var(--safe-r));top:calc(6px + var(--safe-t));display:flex;gap:4px;flex-wrap:nowrap;overflow:hidden}.pcard{min-width:0;flex:1 1 0;padding:3px 6px;grid-template-columns:16px 1fr;font-size:.78em;border-width:2px}.pcard .nm{grid-column:2;max-width:none}.pcard .sym{grid-row:auto}.pcard .coins,.pcard .shards,.pcard .items{grid-column:auto;display:inline}.pcard .items{grid-column:1 / -1}.round{top:calc(62px + var(--safe-t));font-size:.78em;padding:3px 12px}.banner{top:calc(92px + var(--safe-t));font-size:.9em}.menubtn{top:calc(6px + var(--safe-t))}}@media (min-width: 900px) and (min-aspect-ratio: 5/4){.screen.side{align-items:flex-start;padding-left:max(5vw,24px)}.screen.side .logo{text-align:left}}select{color-scheme:dark;background:#251f5c;color:#fff}select option{background:#251f5c;color:#fff}.foot{position:sticky;bottom:-18px;padding:10px 0 2px;margin-top:8px;text-align:right;background:linear-gradient(180deg,transparent,var(--panel) 35%)}.game.mg-on .hud>:not(.menubtn){display:none}.game.finale-on .hud>:not(.menubtn){display:none}.game.finale-on .menubtn{display:none}.cover.finale{background:transparent;place-items:center start;padding-left:max(4vw,16px)}.cover.finale .panel{width:min(100%,440px)}@media (max-aspect-ratio: 5/4){.cover.finale{place-items:end center;padding:8px}}textarea.field{min-height:84px;resize:vertical;font:500 .78em/1.25 ui-monospace,Consolas,monospace;word-break:break-all}.qrrow{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.qrrow>div{flex:1;min-width:200px;display:grid;gap:8px}.invites{display:grid;gap:10px;margin:8px 0}.invite{border-color:var(--cyan)}.scanbox{margin-top:8px}.scan-video{width:100%;max-height:52vh;border-radius:12px;background:#000;object-fit:cover}
