:root{--bg1:#fff0f6;--bg2:#eaf4ff;--ink:#4a3a6b;--ink-soft:#7d6f99;--card:#fffe;--pink:#ff7eb3;--green:#4cc98a;--yellow:#ffbf2e;--purple:#a67cf7;--shadow:0 6px 0 #5a3c8c1f, 0 12px 30px #5a3c8c1f;--radius:22px;color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:"Baloo 2",Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;min-height:100%;margin:0}body{background-color:var(--bg1);background-image:radial-gradient(circle at 20px 20px, #fff 3px, transparent 4px), radial-gradient(circle at 60px 60px, #ffe0ee 3px, transparent 4px), linear-gradient(160deg, var(--bg1), var(--bg2));-webkit-user-select:none;user-select:none;touch-action:manipulation;background-size:80px 80px,80px 80px,100% 100%;background-attachment:fixed}button{font:inherit;color:inherit;cursor:pointer}.screen{min-height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;align-items:center;gap:14px;display:flex}.center-load{justify-content:center}.spinner{font-size:64px;animation:1s linear infinite spin}.topbar{align-items:center;gap:8px;width:100%;max-width:1100px;display:flex}.topbar-title{text-align:center;flex:1;font-size:20px;font-weight:800}.icon-btn{background:#fff;border:none;border-radius:16px;place-items:center;width:46px;height:46px;font-size:22px;display:grid;box-shadow:0 4px #5a3c8c26}.icon-btn:active{transform:translateY(3px);box-shadow:0 1px #5a3c8c26}.icon-btn.lang{color:var(--purple);font-size:15px;font-weight:800}.mini-code{letter-spacing:4px;color:var(--purple);background:#fff;border-radius:12px;padding:2px 14px}.mini-title{color:var(--pink)}.card{background:var(--card);width:100%;max-width:460px;box-shadow:var(--shadow);border:3px solid #fff;border-radius:28px;flex-direction:column;gap:12px;padding:20px;display:flex}.lbl{color:var(--ink-soft);margin-bottom:-6px;font-weight:700}.center{text-align:center}.hint{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.3}.input{width:100%;font:inherit;color:var(--ink);-webkit-user-select:text;user-select:text;background:#fff;border:3px solid #eadcff;border-radius:18px;outline:none;padding:12px 16px;font-size:20px;font-weight:700}.input:focus{border-color:var(--purple)}.input.small{border-radius:14px;padding:6px 12px;font-size:16px}.code-input{text-transform:uppercase;letter-spacing:6px;text-align:center;flex:1;min-width:0}.btn{color:#fff;background:var(--purple);text-shadow:0 1px #0000001f;border:none;border-radius:18px;padding:12px 16px;font-size:18px;font-weight:800;transition:transform 80ms,box-shadow 80ms,filter .2s;box-shadow:0 5px #00000024}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #00000024}.btn:disabled{filter:grayscale(.8)opacity(.6);cursor:default}.btn.big{padding:14px 18px;font-size:22px}.btn.pink{background:linear-gradient(180deg, #ff9cc6, var(--pink))}.btn.green{background:linear-gradient(180deg, #6fe0a5, var(--green))}.btn.yellow{background:linear-gradient(180deg, #ffd466, var(--yellow));color:#6b4a00;text-shadow:none}.btn.purple{background:linear-gradient(180deg, #c0a2ff, var(--purple))}.link-btn{color:var(--purple);background:0 0;border:none;font-size:17px;font-weight:800}.join-row,.row2{gap:10px;display:flex}.row2>*{flex:1}.join-row .btn{white-space:nowrap}.toggle{color:var(--ink-soft);align-items:center;gap:10px;font-weight:700;line-height:1.2;display:flex}.toggle input{display:none}.toggle span{background:#e6ddf5;border-radius:20px;flex:none;width:52px;height:30px;transition:background .2s;position:relative}.toggle span:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 4px #00000026}.toggle input:checked+span{background:var(--green)}.toggle input:checked+span:after{transform:translate(22px)}.toggle.disabled{opacity:.6}.hero{text-align:center;margin-top:8px}.hero-pets{justify-content:center;gap:10px;display:flex}.hero-pets span{border:4px solid var(--c);width:64px;height:64px;box-shadow:0 5px 0 var(--c);animation:1.2s ease-in-out infinite bounce;animation-delay:var(--d);background:#fff;border-radius:50%;place-items:center;font-size:44px;display:grid}.logo{color:var(--pink);text-shadow:3px 3px #fff,6px 6px #ffc2dc;letter-spacing:1px;margin:10px 0 0;font-size:clamp(40px,11vw,64px);font-weight:800;line-height:1}.tagline{color:var(--ink-soft);margin:6px 0 0;font-size:18px;font-weight:700}.install-hint{color:var(--ink-soft);text-align:center;max-width:420px;margin:0;font-size:14px}.wiggle{animation:.4s wiggle}.modal{z-index:50;background:#4a3a6b66;place-items:center;padding:16px;animation:.2s fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal-card{background:#fff;border-radius:28px;width:100%;max-width:480px;padding:22px;animation:.35s cubic-bezier(.2,1.6,.4,1) pop}.modal-card h2{color:var(--pink);margin:0 0 8px}.rules{padding-left:0;font-size:18px;line-height:1.35;list-style:none}.rules li{margin-bottom:10px}.modal-card .btn{width:100%}.seat-row,.seat{background:var(--l);border:3px solid var(--c);border-radius:20px;align-items:center;gap:12px;padding:10px;display:flex;position:relative}.seat.empty{opacity:.8;background:#fff;border-style:dashed}.seat-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.pet-badge{border:3px solid var(--c);background:#fff;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;font-size:32px;display:grid}.pet-badge.dim{filter:grayscale(.6)opacity(.6);animation:1.6s ease-in-out infinite bounce}.seat-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:19px;font-weight:800}.seat.empty .seat-name{color:var(--ink-soft);font-size:16px;font-weight:700}.tag{color:var(--ink-soft);background:#fff;border-radius:10px;margin-right:4px;padding:0 8px;font-size:12px;font-weight:700;display:inline-block}.x-btn{width:34px;height:34px;color:var(--ink-soft);background:#fff;border:none;border-radius:50%;font-weight:800}.seg{background:#fff;border-radius:14px;gap:3px;padding:3px;display:flex}.seg button{white-space:nowrap;background:0 0;border:none;border-radius:11px;flex:1;padding:5px 4px;font-size:14px;font-weight:700}.seg button.on{background:var(--c);color:#fff}.room-code{justify-content:center;gap:8px;display:flex}.room-code span{color:#fff;background:var(--c);border-radius:18px;place-items:center;width:62px;height:72px;font-size:44px;font-weight:800;animation:.5s cubic-bezier(.2,1.6,.4,1) both pop;display:grid;box-shadow:0 5px #0000001f}.room-code span:nth-child(2){animation-delay:80ms}.room-code span:nth-child(3){animation-delay:.16s}.room-code span:nth-child(4){animation-delay:.24s}.share-row{align-items:center;gap:14px;display:flex}.share-row>div{flex-direction:column;gap:8px;display:flex}#qr{border:3px solid #eadcff;border-radius:14px;flex:none}.waiting-dots:after{content:"";animation:1.5s steps(4,end) infinite dots}.pop-in{animation:.4s cubic-bezier(.2,1.6,.4,1) pop}.screen.game{padding-bottom:max(10px, env(safe-area-inset-bottom));gap:10px}.play{flex-direction:column;flex:1;align-items:center;gap:10px;width:100%;max-width:1200px;display:flex}.board-wrap{--size:min(calc(100vw - 20px), calc(100dvh - 340px), 720px);width:var(--size);height:var(--size);flex:none;min-width:280px;min-height:280px}.panel{flex-direction:column;gap:8px;width:100%;max-width:720px;display:flex}@media (orientation:landscape) and (min-width:700px){.play{flex-direction:row;justify-content:center;align-items:flex-start}.board-wrap{--size:min(calc(100dvh - 80px), calc(100vw - 360px), 820px)}.panel{flex:none;width:320px}}.board{width:100%;height:100%;box-shadow:var(--shadow);background:#fff;border:5px solid #fff;border-radius:26px;outline:3px solid #f1e6ff;position:relative;container-type:size}.cell{place-items:center;width:6.66667%;height:6.66667%;padding:1.5px;display:grid;position:absolute}.cell:before{content:"";background:#f7f3ff;border:1.5px solid #e8defa;border-radius:28%;position:absolute;top:1.5px;bottom:1.5px;left:1.5px;right:1.5px}.cell.alt:before{background:#fdf7fb}.cell.start:before{background:var(--c);border-color:var(--c)}.cell.start span{color:#fff;font-size:3.2cqw;font-weight:800;position:relative}.homecell:before{background:var(--l);border-color:var(--c)}.homecell span{color:var(--c);font-size:2.6cqw;font-weight:800;position:relative}.stable{background:var(--c);border-radius:24px;width:40%;height:40%;padding:1.6%;transition:box-shadow .3s;position:absolute}.stable.turn{animation:1.2s ease-in-out infinite glow}.stable-in{background:var(--l);background-image:radial-gradient(circle at 10px 10px,#fff9 2.5px,#0000 3px);background-size:22px 22px;border-radius:18px;width:100%;height:100%;position:relative}.stable-pet{opacity:.16;place-items:center;font-size:18cqw;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.slot{border:2px dashed var(--c);background:#fffc;border-radius:50%;width:6.6%;height:6.6%;position:absolute;transform:translate(-50%,-50%)}.stable-name{white-space:nowrap;text-overflow:ellipsis;max-width:90%;color:var(--c);filter:brightness(.85);background:#fff;border-radius:20px;padding:0 2cqw;font-size:2.6cqw;font-weight:800;position:absolute;bottom:3%;left:50%;overflow:hidden;transform:translate(-50%)}.stable.s0 .stable-name,.stable.s1 .stable-name{top:3%;bottom:auto}.goal{width:20%;height:20%;position:absolute}.tri{background:var(--c);position:absolute;top:0;bottom:0;left:0;right:0}.tri.t0{clip-path:polygon(0 0,50% 50%,0 100%)}.tri.t1{clip-path:polygon(0 0,100% 0,50% 50%)}.tri.t2{clip-path:polygon(100% 0,100% 100%,50% 50%)}.tri.t3{clip-path:polygon(0 100%,50% 50%,100% 100%)}.goal-star{place-items:center;font-size:5cqw;animation:2s ease-in-out infinite twinkle;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.token{z-index:5;pointer-events:auto;width:6.1%;height:6.1%;transition:left .17s ease-out,top .17s ease-out;position:absolute;transform:translate(-50%,-50%)}.token span{border:.55cqw solid var(--c);width:100%;height:100%;box-shadow:0 .6cqw 0 var(--c), 0 1cqw 1.4cqw #0000002e;background:#fff;border-radius:50%;place-items:center;font-size:3.9cqw;line-height:1;display:grid}.token.finished{width:4.2%;height:4.2%}.token.finished span{font-size:2.7cqw}.token.moving{z-index:20}.token.hop span{animation:.18s ease-out hop}.token.can{z-index:15;cursor:pointer}.token.can span{box-shadow:0 .6cqw 0 var(--c), 0 0 0 .8cqw #fff, 0 0 0 1.4cqw var(--c), 0 0 3cqw 1cqw var(--c);animation:.7s ease-in-out infinite bounce}.token.can:after{content:"👆";pointer-events:none;font-size:3cqw;animation:.9s ease-in-out infinite tap;position:absolute;top:60%;left:60%}.token.flying{z-index:25;transition:left .8s cubic-bezier(.4,-.5,.5,1.4),top .8s cubic-bezier(.4,-.5,.5,1.4)}.token.flying span{animation:.8s ease-in-out spinout}.fx-layer{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.bubble{pointer-events:none;z-index:30;white-space:nowrap;background:#fff;border-radius:20px;padding:2px 14px;font-size:20px;font-weight:800;animation:1.6s ease-out forwards floatup;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px #0000001a}.bubble.kick{color:#ff4d8d;font-size:26px}.bubble.ouch{color:var(--ink-soft);opacity:0;animation-delay:.15s}.bubble.finish{color:#e6a100;font-size:26px}.bubble.six{color:var(--purple)}.bubble.nomove{color:var(--ink-soft)}.bubble.emote{box-shadow:none;background:0 0;font-size:12cqw;animation:1.6s ease-out forwards emote}.shake{animation:.45s shake}.players{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}@media (orientation:landscape) and (min-width:700px){.players{grid-template-columns:1fr}}.pchip{background:#fff;border:3px solid #0000;border-radius:16px;align-items:center;gap:6px;min-width:0;padding:4px 8px;transition:all .2s;display:flex}.pchip.active{border-color:var(--c);background:var(--l);transform:scale(1.03)}.pchip.off{opacity:.55}.pchip-pet{font-size:22px}.pchip-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:15px;font-weight:800;overflow:hidden}.pchip-name b{color:var(--ink-soft);font-weight:700}.stars{white-space:nowrap;font-size:12px}.stars i{color:#d9ccef;font-style:normal}.turn-box{background:var(--l,#fff);border:3px solid var(--c,#eadcff);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px 14px;transition:background .3s,border-color .3s;display:flex;position:relative}.msg{text-align:center;min-height:27px;font-size:18px;font-weight:800;line-height:1.3}.msg.pop{animation:.35s cubic-bezier(.2,1.6,.4,1) pop}.dice-row{justify-content:center;align-items:center;gap:18px;min-height:84px;display:flex}.roll-btn.hidden{display:none}.timer{background:#fff9;border-radius:4px;height:6px;overflow:hidden}.timer i{background:var(--c);border-radius:4px;width:100%;height:100%;display:block}.timer.hidden{visibility:hidden}.emotes{background:#fff;border-radius:18px;justify-content:space-between;padding:4px;display:flex}.emotes button{background:0 0;border:none;border-radius:12px;width:42px;height:42px;padding:0;font-size:26px}.emotes button:active{background:#f5efff;transform:scale(1.3)}.dice-scene{--s:70px;width:var(--s);height:var(--s);perspective:400px;cursor:pointer;flex:none}.dice-scene.ready{animation:.9s ease-in-out infinite bounce}.cube{width:100%;height:100%;transform-style:preserve-3d;position:relative}.cube.spinning{animation:.5s linear infinite diceSpin!important}.face{border:3px solid var(--c,#ddd);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#fff;border-radius:16px;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:9px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 -5px #0000000f}.face i{border-radius:50%;margin:2px;display:block}.face i.pip{background:var(--c,#555);box-shadow:inset 0 -2px #0000002e}.f1 i.pip{background:#ff4d8d;margin:0}.f1{transform:translateZ(35px)}.f6{transform:rotateY(180deg)translateZ(35px)}.f2{transform:rotateY(90deg)translateZ(35px)}.f5{transform:rotateY(-90deg)translateZ(35px)}.f3{transform:rotateX(90deg)translateZ(35px)}.f4{transform:rotateX(-90deg)translateZ(35px)}.end{z-index:40;background:#4a3a6b59;place-items:center;padding:16px;animation:.3s fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.end.win{background:radial-gradient(circle,#ffe6828c,#ff7eb373)}.end-card{text-align:center;width:100%;max-width:440px;box-shadow:var(--shadow);background:#fff;border-radius:32px;padding:22px;animation:.5s cubic-bezier(.2,1.6,.4,1) pop}.end-card h1{color:var(--pink);margin:0;font-size:40px;line-height:1.1}.end.lose h1{color:var(--purple)}.end-card p{color:var(--ink-soft);margin:4px 0 10px;font-size:17px;font-weight:700}.trophy{font-size:44px;animation:1s ease-in-out infinite twinkle}.dance{filter:drop-shadow(0 6px 0 var(--c));font-size:96px;line-height:1.1;animation:.8s ease-in-out infinite dance}.sad-pet{font-size:90px;line-height:1.1;animation:2s ease-in-out infinite sway;display:inline-block;position:relative}.sad-pet .tear{font-size:28px;animation:1.2s ease-in infinite tear;position:absolute;top:30px;right:-4px}.sad-pet.cheer{animation:.8s ease-in-out infinite dance}.sad-pet .flex{font-size:40px;animation:.4s cubic-bezier(.2,1.6,.4,1) pop;position:absolute;top:10px;right:-30px}.ranks{flex-direction:column;gap:6px;margin:0 0 14px;padding:0;list-style:none;display:flex}.ranks li{background:var(--l);text-align:left;border-radius:14px;align-items:center;gap:8px;padding:4px 12px;font-size:18px;font-weight:800;display:flex}.ranks .stars{margin-left:auto}.medal{font-size:22px}#toasts{left:50%;top:max(64px, calc(env(safe-area-inset-top) + 56px));z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:calc(100% - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--ink);color:#fff;text-align:center;border-radius:18px;padding:10px 18px;font-weight:700;transition:opacity .4s,transform .4s;animation:.3s cubic-bezier(.2,1.6,.4,1) pop}.toast.out{opacity:0;transform:translateY(-10px)}.conn-status{bottom:max(12px, env(safe-area-inset-bottom));opacity:0;visibility:hidden;pointer-events:none;color:#5a3d00;z-index:70;background:#ffbf2e;border-radius:16px;padding:8px 18px;font-weight:800;transition:transform .3s,opacity .3s,visibility .3s;position:fixed;left:50%;transform:translate(-50%,20px)}.conn-status.show{opacity:1;visibility:visible;transform:translate(-50%)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-14%)}}@keyframes hop{0%{transform:translateY(0)scale(1)}45%{transform:translateY(-45%)scale(.95,1.08)}to{transform:translateY(0)scale(1.08,.92)}}@keyframes spinout{0%{transform:rotate(0)scale(1)}50%{transform:rotate(540deg)scale(1.5)}to{transform:rotate(1080deg)scale(1)}}@keyframes tap{0%,to{transform:translate(0)}50%{transform:translate(-15%,-15%)}}@keyframes glow{0%,to{box-shadow:0 0 0 0 var(--c)}50%{box-shadow:0 0 0 6px var(--c), 0 0 24px 8px var(--c)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes fade{0%{opacity:0}}@keyframes floatup{0%{opacity:0;transform:translate(-50%,-20%)scale(.6)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}80%{opacity:1;transform:translate(-50%,-110%)scale(1)}to{opacity:0;transform:translate(-50%,-140%)scale(.9)}}@keyframes emote{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}20%{opacity:1;transform:translate(-50%,-60%)scale(1.2)rotate(-8deg)}40%{transform:translate(-50%,-70%)scale(1)rotate(8deg)}to{opacity:0;transform:translate(-50%,-160%)scale(.8)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px,4px)rotate(-1deg)}40%{transform:translate(7px,-4px)rotate(1deg)}60%{transform:translate(-5px,2px)}80%{transform:translate(4px,-2px)}}@keyframes wiggle{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes diceSpin{0%{transform:rotateX(0)rotateY(0)rotate(0)}to{transform:rotateX(360deg)rotateY(720deg)rotate(180deg)}}@keyframes twinkle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.2)rotate(15deg)}}@keyframes dance{0%,to{transform:rotate(-10deg)translateY(0)}50%{transform:rotate(10deg)translateY(-12px)}}@keyframes sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes tear{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(40px)}}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.end .row2{flex-wrap:wrap}.end .row2 .btn{white-space:nowrap;font-size:18px}@media (max-width:420px){.end-card h1{font-size:32px}.dance,.sad-pet{font-size:72px}}.board-wrap{position:relative}.board-wrap.is3d{height:calc(var(--size) * .8)}.board3d,.dice3d{touch-action:none;width:100%;height:100%;display:block}.board-wrap>.fx-layer{pointer-events:none;z-index:5;position:absolute;top:0;bottom:0;left:0;right:0}.board-wrap>.board{position:relative}.dice-box{cursor:pointer;border-radius:50%;flex:none;width:104px;height:104px;transition:filter .3s}.dice-box.ready{filter:drop-shadow(0 0 12px var(--c));animation:1.1s ease-in-out infinite bounce}.dice-box .dice-scene{margin:17px}.pet-img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.pet-img.emoji{place-items:center;display:grid}.hero-pets span{background:radial-gradient(circle at 50% 35%, #fff, var(--c) 160%);width:84px;height:84px;overflow:hidden}.hero-pets .pet-img{transform:scale(1.25)translateY(4%)}.pet-badge{background:radial-gradient(circle at 50% 35%, #fff, var(--l) 120%);overflow:hidden}.pet-badge .pet-img{transform:scale(1.2)translateY(4%)}.pchip-pet{object-fit:contain;flex:none;width:34px;height:34px;font-size:22px}.turn-pet{object-fit:contain;vertical-align:middle;width:40px;height:40px;margin-right:4px;animation:1.2s ease-in-out infinite bounce;display:inline-block}.msg{justify-content:center;align-items:center;gap:2px;display:flex}.rank-pet{object-fit:contain;width:34px;height:34px}.dance .pet-img,.sad-pet .pet-img{width:150px;height:150px;margin:0 auto}.dance,.sad-pet{filter:drop-shadow(0 10px 8px #5a3c8c40)}.sad-pet .tear{top:58px;right:18px}.sad-pet .flex{top:30px;right:-10px}@media (max-width:420px){.dance .pet-img,.sad-pet .pet-img{width:120px;height:120px}}.btn.gold{color:#6b4a00;text-shadow:none;background:linear-gradient(#ffe07a,#ffb300)}.btn.sky{background:linear-gradient(#9fd6ff,#5fb2f5)}.profile-row{align-items:center;gap:14px;display:flex}.avatar-btn{background:radial-gradient(circle at 50% 35%,#fff,#ffd6e7 130%);border:4px solid #fff;border-radius:30px;flex:none;width:108px;height:108px;padding:0;animation:3s ease-in-out infinite wobble;position:relative;overflow:visible;box-shadow:0 5px #ffc2dc,0 10px 20px #ff7eb34d}.avatar-btn .pet-img{border-radius:26px;overflow:hidden}.avatar-btn .pet-img.photo{object-fit:cover}.avatar-btn .cam{background:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:20px;animation:1.4s ease-in-out infinite bounce;display:grid;position:absolute;bottom:-8px;right:-8px;box-shadow:0 3px #5a3c8c26}.profile-fields{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.pet-pick{gap:6px;display:flex}.pet-pick button{aspect-ratio:1;background:#f7f2ff;border:3px solid #0000;border-radius:16px;flex:1;max-width:56px;padding:2px;transition:transform .15s,border-color .15s}.pet-pick button.on{border-color:var(--c);box-shadow:0 4px 0 var(--c);background:#fff;transform:scale(1.1)rotate(-4deg)}@keyframes wobble{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.studio .modal-card{flex-direction:column;gap:10px;max-width:460px;max-height:calc(100dvh - 24px);padding:16px;display:flex;overflow-y:auto}.studio-head{justify-content:space-between;align-items:center;display:flex}.studio-head h2{margin:0}.studio-stage{aspect-ratio:1;border-radius:24px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 4px #fff,0 6px 18px #5a3c8c2e}.studio-stage canvas{width:100%;height:100%;display:block}.studio-stage video{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.st-count{color:#fff;text-shadow:0 6px #ff5c9e,0 0 30px #ff5c9e99;pointer-events:none;place-items:center;font-size:150px;font-weight:800;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.st-count.go{animation:.7s ease-out countpop}.st-flash{opacity:0;pointer-events:none;background:#fff;position:absolute;top:0;bottom:0;left:0;right:0}.st-flash.go{animation:.6s ease-out flash}.st-msg{text-align:center;color:#fff;background:#4a3a6b8c;border-radius:14px;width:calc(100% - 24px);padding:4px 10px;font-size:15px;font-weight:800;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.st-row{justify-content:center;gap:8px;display:flex}.st-row.costumes button{background:#f7f2ff;border:3px solid #0000;border-radius:16px;width:52px;height:52px;font-size:28px;transition:transform .15s}.st-row.costumes button.on{border-color:var(--pink);background:#fff;transform:scale(1.12)}.st-row.frames button{background:var(--f);border:4px solid #fff;border-radius:50%;width:36px;height:36px;box-shadow:0 0 0 2px #eadcff}.st-row.frames button.on{box-shadow:0 0 0 3px var(--ink);transform:scale(1.12)}.st-actions{flex-wrap:wrap;gap:8px;display:flex}.st-actions>*{white-space:nowrap;text-align:center;flex:1}.st-actions.hidden,.st-msg.hidden{display:none}.st-pick{cursor:pointer;place-items:center;display:grid}.st-privacy{text-align:center;color:var(--ink-soft);margin:0;font-size:13px}@keyframes countpop{0%{opacity:0;transform:scale(2.2)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes flash{0%{opacity:.95}to{opacity:0}}.share-card{flex-direction:column;gap:10px;max-height:calc(100dvh - 24px);display:flex;overflow-y:auto}.share-card img{border-radius:18px;width:100%;box-shadow:0 6px 18px #5a3c8c33}.share-card a.btn{text-align:center;text-decoration:none}.btn.fb{background:linear-gradient(#4d8df7,#1877f2)}.board-screen{gap:10px}.lb-title{color:#f0a500;text-shadow:2px 2px #fff,4px 4px #ffe07a;font-size:34px;font-weight:800}.trophy-spin{animation:1.4s ease-in-out infinite twinkle;display:inline-block}.lb-tabs{width:100%;max-width:460px}.lb-tabs button{padding:8px;font-size:16px}.lb-body{flex-direction:column;align-items:stretch;gap:12px;width:100%;max-width:560px;display:flex}.lb-body>.spinner{align-self:center;margin-top:40px}.podium{justify-content:center;align-items:flex-end;gap:8px;padding-top:26px;display:flex}.pod{flex-direction:column;flex:1;align-items:center;max-width:170px;display:flex;position:relative}.pod-pet{width:92px;height:92px;animation:1.2s ease-in-out infinite bounce;animation-delay:var(--d);filter:drop-shadow(0 6px 6px #5a3c8c40)}.p1 .pod-pet{width:118px;height:118px}.pod-crown{z-index:2;font-size:42px;animation:2s ease-in-out infinite crown;position:absolute;top:-30px}.pod-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:17px;font-weight:800;overflow:hidden}.pod-pts{color:var(--ink-soft);font-size:15px;font-weight:800}.pod-block{background:linear-gradient(180deg, var(--l,#f1e6ff), var(--c,#d9ccef));transform-origin:bottom;width:100%;animation:.7s cubic-bezier(.2,1.4,.4,1) both rise;animation-delay:var(--d);border-radius:18px 18px 8px 8px;place-items:start center;margin-top:6px;padding-top:8px;font-size:38px;display:grid;box-shadow:inset 0 -8px #00000014,0 6px #5a3c8c1a}.p1 .pod-block{height:130px}.p2 .pod-block{height:96px}.p3 .pod-block{height:72px}.pod.empty .pod-block{opacity:.4}.pod.me .pod-name:after{content:" 💖"}.lb-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lb-list li{animation:.4s ease-out both slidein;animation-delay:var(--d);background:#fff;border-radius:18px;align-items:center;gap:8px;padding:6px 12px;font-weight:800;display:flex;box-shadow:0 3px #5a3c8c14}.lb-list li.me{background:var(--l);outline:3px solid var(--c);animation:.4s ease-out both slidein,1.5s ease-in-out infinite glowme}.lb-list .rank{background:var(--l);width:32px;height:32px;color:var(--ink);border-radius:50%;flex:none;place-items:center;display:grid}.row-pet{flex:none;width:38px;height:38px}.lb-list .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lb-list .nm b{color:var(--ink-soft)}.lb-list .wins{color:var(--ink-soft);font-size:14px}.lb-list .pts{text-align:right;min-width:64px}.me-card{box-shadow:var(--shadow);background:linear-gradient(135deg,#fff,#fff4d6);border:3px solid #ffd23f;border-radius:24px;align-items:center;gap:12px;padding:10px 12px;display:flex}.me-avatar{object-fit:cover;border-radius:18px;flex:none;width:64px;height:64px}.me-info{flex:1;min-width:0}.me-name{font-size:18px;font-weight:800}.me-rank{color:var(--ink-soft);font-weight:700}.me-rank b{color:#f0a500;font-size:20px}.me-stats{color:var(--ink-soft);font-size:14px;font-weight:700}.lb-toggle{justify-content:center}.lb-empty-pets{justify-content:center;gap:6px;display:flex}.lb-empty-pets .pet-img{width:64px;height:64px;animation:1.2s ease-in-out infinite bounce}.lb-empty-pets .pet-img:nth-child(2){animation-delay:.15s}.lb-empty-pets .pet-img:nth-child(3){animation-delay:.3s}.lb-empty-pets .pet-img:nth-child(4){animation-delay:.45s}.points-earned{color:#f0a500;text-shadow:2px 2px #fff3b0;min-height:0;margin:-6px 0 8px;font-size:30px;font-weight:800}.points-earned.go{animation:.5s cubic-bezier(.2,1.6,.4,1) pop}.share-win{width:100%;margin-bottom:10px}.dance .pet-img.photo{object-fit:cover;border:5px solid #fff;border-radius:36px}@keyframes rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes crown{0%,to{transform:translateY(0)rotate(-10deg)}50%{transform:translateY(-8px)rotate(10deg)}}@keyframes slidein{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:none}}@keyframes glowme{0%,to{box-shadow:0 0 0 0 var(--c)}50%{box-shadow:0 0 14px 2px var(--c)}}.code-input::placeholder{letter-spacing:1px;font-size:17px}
