:root{--ink:#3b2748;--ink-soft:#6e5a7b;--cream:#fffaf6;--panel:#fffaf6e6;--line:#3b27481a;--pink:#ff6f9a;--pink-deep:#e5508a;--pink-soft:#ffe3ec;--mint:#4fc597;--gold:#ffc93d;--shadow:0 14px 34px #50285a2e, 0 2px 6px #50285a1a;--radius:26px;--font:var(--font-fredoka), ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--stick-size:clamp(104px, 33vw, 150px);--tbtn-size:clamp(50px, 17vw, 70px);--tbtn-gap:clamp(8px, 2.4vw, 10px)}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:manipulation;background:#f6ede8;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}kbd{font-family:var(--font)}.app,.stage{position:fixed;inset:0}.game-canvas{touch-action:none;width:100%;height:100%;display:block}.ui{pointer-events:none;z-index:10;position:fixed;inset:0}.ui>*{pointer-events:auto}.btn{background:var(--cream);border:0;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:0 24px;font-size:18px;font-weight:600;transition:transform .15s cubic-bezier(.2,.9,.3,1.4),box-shadow .15s;display:inline-flex;box-shadow:0 6px 16px #50285a24,inset 0 -3px #3b27480f}.btn:hover{transform:translateY(-2px)scale(1.02)}.btn:active{transform:translateY(1px)scale(.98)}.btn:focus-visible,.choice:focus-visible,.char:focus-visible{outline:3px solid var(--pink);outline-offset:3px}.btn-primary{color:#fff;background:linear-gradient(180deg, #ff8ab0, var(--pink-deep));box-shadow:0 8px 20px #e5508a59,inset 0 -3px #00000014}.btn-ghost{box-shadow:inset 0 0 0 2px var(--line);background:#ffffffb3}.btn kbd{color:inherit;opacity:.8;background:#3b274814;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:600}.loader{background:#f6ede8;place-content:center;justify-items:center;gap:10px;display:grid;position:fixed;inset:0}.loader p{margin:0;font-weight:600}.loader-shuttle{animation:1.2s cubic-bezier(.45,0,.55,1) infinite shuttle-hop}@keyframes shuttle-hop{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-36px)rotate(180deg)}}.title-screen{pointer-events:none;justify-items:start;gap:18px;display:grid;position:absolute;top:50%;left:max(24px,6vw);transform:translateY(-50%)}.title-screen>*{pointer-events:auto;animation:.6s cubic-bezier(.2,.9,.3,1.2) both rise}.title-screen>:nth-child(2){animation-delay:80ms}.title-screen>:nth-child(3){animation-delay:.16s}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}.logo{letter-spacing:-.02em;margin:0;font-size:clamp(64px,11vw,132px);font-weight:700;line-height:.88;display:grid}.logo-a,.logo-b{z-index:0;position:relative}.logo-a:before,.logo-b:before{content:attr(data-text);z-index:-1;color:#fff;-webkit-text-stroke:.2em #fff;position:absolute;inset:0}.logo-a{color:#ff8fb4}.logo-a:before{text-shadow:0 10px 24px #e5508a59}.logo-b{color:var(--ink);margin-left:.5em}.logo-b:before{text-shadow:0 10px 24px #3b27484d}.tagline{background:var(--cream);border-radius:999px;margin:0;padding:6px 14px;font-size:16px;font-weight:500;box-shadow:0 4px 12px #50285a1f}.title-menu{gap:12px;width:min(260px,70vw);margin-top:10px;display:grid}.leaderboard{top:calc(max(16px, env(safe-area-inset-top)) + 58px);right:max(16px, env(safe-area-inset-right));width:300px;padding:18px 18px 14px;animation:.6s cubic-bezier(.2,.9,.3,1.2) .2s both rise;position:absolute}.leaderboard header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.leaderboard h3{margin:0}.leaderboard header small{color:var(--ink-soft);font-size:12px;font-weight:600}.leaderboard ol{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.leaderboard li{min-height:52px;box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:16px;grid-template-columns:26px auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px 8px 10px;display:grid}.leaderboard li.rank-1{box-shadow:inset 0 0 0 2px #ffd36e}.lb-skeleton{animation:1.2s ease-in-out infinite pulse;background:#fff9!important}@keyframes pulse{50%{opacity:.5}}.lb-av{display:inline-flex;position:relative}.crown{filter:drop-shadow(0 1px 1px #50281459);pointer-events:none;width:26px;height:18px;position:absolute;top:-15px;left:50%;transform:translate(-50%)rotate(-12deg)}.medal{color:#fff;background:#c9b8a6;border-radius:50%;place-items:center;width:26px;height:26px;font-size:14px;font-weight:700;display:grid;box-shadow:inset 0 -2px #0000001f}.rank-1 .medal{background:linear-gradient(#ffd96a,#f0a21a)}.rank-2 .medal{background:linear-gradient(#e3e7ef,#a9b0bf)}.rank-3 .medal{background:linear-gradient(#f2b98a,#c97c45)}.lb-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.lb-wins{justify-items:end;line-height:1;display:grid}.lb-wins b{font-size:20px}.lb-wins small{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:600}.lb-empty{color:var(--ink-soft);margin:12px 2px 4px;font-weight:600}.lb-foot{color:var(--ink-soft);margin:10px 2px 0;font-size:14px}.lb-all-link{font-size:14px}.lb-sheet-wrap{z-index:30}.lb-sheet{width:min(640px,100%)}.lb-sheet header>span{gap:2px;display:grid}.lb-sheet header small{color:var(--ink-soft);font-weight:600}.lb-row{text-align:right;grid-template-columns:34px 40px minmax(0,1fr) 56px 56px 76px;align-items:center;gap:10px;display:grid}.lb-row>:nth-child(2),.lb-row>:nth-child(3){text-align:left}.lb-row>:first-child{justify-self:center}.lb-head{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:0 14px 8px 12px;font-size:12px;font-weight:700}.lb-all{gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.lb-all li{min-height:54px;box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:16px;padding:10px 14px 8px 12px}.lb-all li.rank-1{box-shadow:inset 0 0 0 2px #ffd36e}.lb-all li.me{background:color-mix(in srgb, var(--pink) 12%, white);box-shadow:inset 0 0 0 2px var(--pink)}.lb-all li b{font-size:19px}.lb-rank{color:var(--ink-soft);font-weight:700}.leaderboard li[role=button],.lb-all li[role=button]{cursor:pointer;transition:transform .12s,box-shadow .12s}.leaderboard li[role=button]:hover,.lb-all li[role=button]:hover,.leaderboard li[role=button]:focus-visible,.lb-all li[role=button]:focus-visible{box-shadow:inset 0 0 0 2px var(--pink), 0 6px 14px -8px #3b274859;outline:none;transform:translateY(-1px)}.player-sheet-wrap{z-index:31;background:#f6ede899}.panel.player-sheet{background:#fffaf6fa}.player-name{align-items:center;min-width:0;font-size:24px;font-weight:800;display:flex}.player-name>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-rank{justify-items:center;gap:4px;line-height:1;display:grid}.player-rank b{font-size:22px}.player-rank .medal{width:34px;height:34px;font-size:17px}.player-rank small{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:700}.player-sheet .profile-head.rank-1{box-shadow:inset 0 0 0 2px #ffd36e}.player-sheet .lb-av .crown{width:34px;height:24px;top:-18px}.lb-you{color:#fff;background:var(--pink-deep);vertical-align:2px;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-style:normal;font-weight:700}.lb-loading{text-align:center}.panel{background:var(--panel);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.panel h2{margin:0 0 16px;font-size:28px;font-weight:700}.panel h3{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 10px;font-size:14px;font-weight:600}.panel h3:first-child{margin-top:0}.select-screen{pointer-events:none;justify-content:space-between;align-items:center;gap:24px;padding:24px;display:flex;position:absolute;inset:0}.select-screen>.panel{pointer-events:auto;width:min(380px,42vw);max-height:calc(100% - 16px);animation:.45s cubic-bezier(.2,.9,.3,1.2) both rise;overflow-y:auto}.char-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.char{--accent:var(--pink);box-shadow:inset 0 0 0 2px var(--line);background:#fffc;border:0;border-radius:20px;justify-items:center;gap:6px;padding:12px 6px 10px;font-weight:600;transition:transform .15s,box-shadow .15s;display:grid;position:relative}.char:hover:not(:disabled){transform:translateY(-2px)}.char.on{box-shadow:inset 0 0 0 3px var(--accent), 0 6px 16px #50285a24;background:#fff}.char.on:after{content:"✓";color:#fff;background:var(--ink);border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;display:grid;position:absolute;top:6px;right:8px}.char.locked{opacity:.8}.char.locked>span{color:var(--ink-soft)}.char.peek{opacity:1;box-shadow:inset 0 0 0 3px var(--ink), 0 6px 16px #50285a24}.char-progress{color:var(--ink-soft);margin-top:-4px;font-size:12px;font-weight:700}.char .lock{top:6px;right:6px}.unlock-bar{background:#fff;border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.unlock-bar i{background:var(--accent);border-radius:999px;min-width:10px;height:100%;display:block}.char.locked .avatar img{filter:grayscale(.6)brightness(1.05)}.lock{background:var(--ink);border-radius:50%;width:22px;height:22px;position:absolute;top:10px;right:12px}.lock:before{content:"";background:#fff;border-radius:2px;width:8px;height:6px;position:absolute;top:10px;left:7px}.lock:after{content:"";box-sizing:border-box;border:2px solid #fff;border-bottom:0;border-radius:4px 4px 0 0;width:6px;height:7px;position:absolute;top:5px;left:8px}.avatar{border-radius:50%;flex:none;display:inline-block;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffffb3}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar.photo{box-shadow:0 0 0 2px #fff,0 1px 4px #50285a33}.avatar-btn{cursor:zoom-in;background:0 0;border:0;border-radius:50%;flex:none;padding:0;display:inline-grid}.avatar-btn:hover .avatar{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--pink)}.avatar-btn:focus-visible{outline:3px solid var(--pink);outline-offset:2px}.sheet-wrap.photo-preview-wrap{z-index:40;cursor:zoom-out;background:#3b274873}.photo-preview{justify-items:center;gap:12px;margin:0;animation:.18s ease-out both photo-in;display:grid}.photo-preview img{object-fit:cover;width:min(320px,80vw,62vh);height:min(320px,80vw,62vh);box-shadow:0 0 0 4px #fff, var(--shadow);background:#fff;border-radius:28px;display:block}.photo-preview figcaption{color:var(--ink);box-shadow:var(--shadow);background:#fffaf6f2;border-radius:999px;padding:6px 16px;font-weight:700}@keyframes photo-in{0%{opacity:0;transform:scale(.85)}}@media (prefers-reduced-motion:reduce){.photo-preview{animation:none}}.char-info{--accent:var(--pink);background:color-mix(in srgb, var(--accent) 18%, white);border-radius:18px;margin-top:14px;padding:14px 18px}.char-info b{font-size:22px}.char-info .tag{letter-spacing:.1em;text-transform:uppercase;vertical-align:3px;background:#fff;border-radius:999px;margin-left:10px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.char-info p{color:var(--ink-soft);margin:6px 0 0}.choices{gap:8px;display:grid}.choices.compact{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.choice{text-align:left;box-shadow:inset 0 0 0 2px var(--line);background:#ffffffbf;border:0;border-radius:16px;gap:2px;padding:12px 16px;transition:box-shadow .15s,background .15s;display:grid}.choice b{font-size:17px;font-weight:600}.choice small{color:var(--ink-soft);font-size:13px;line-height:1.3}.choice.on{box-shadow:inset 0 0 0 3px var(--pink);background:#fff}.venue-pick{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.venue-tile{aspect-ratio:16/10;cursor:pointer;background:#eadfd9;border:0;border-radius:14px;padding:0;transition:transform .12s;position:relative;overflow:hidden}.venue-tile img,.venue-tile i{object-fit:cover;width:100%;height:100%;display:block}.venue-note{margin:8px 2px 0}.venue-note b{color:var(--ink);font-weight:700}.venue-tile[data-venue=gym] i{background:linear-gradient(#f4ddd6,#f3c9d6 55%,#79d5a6)}.venue-tile[data-venue=rooftop] i{background:linear-gradient(#5d4c8c,#e98fb0 60%,#6cc7a0)}.venue-tile[data-venue=park] i{background:linear-gradient(#bfe4f6,#d9f0c4 55%,#7fcf72)}.venue-tile:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #ffffffbf}.venue-tile:hover{transform:translateY(-1px)}.venue-tile:focus-visible{outline:3px solid var(--pink);outline-offset:3px}.venue-tile.on:after{box-shadow:inset 0 0 0 3px var(--pink)}.venue-tile.on:before{content:"✓";z-index:1;color:#fff;background:var(--ink);border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:grid;position:absolute;top:5px;right:5px}.row{gap:12px;margin-top:22px;display:flex}.row .btn{flex:1;justify-content:center}.sheet-wrap,.modal-wrap{-webkit-backdrop-filter:blur(3px);background:#f6ede859;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;animation:.2s both fade;display:grid;position:absolute;inset:0}.modal-wrap.over{background:radial-gradient(#fff0f659,#3b274840)}@keyframes fade{0%{opacity:0}}.sheet{width:min(1040px,100%);max-height:calc(100vh - 32px);padding:28px;animation:.35s cubic-bezier(.2,.9,.3,1.2) both rise;overflow-y:auto}.sheet header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.sheet header h2{margin:0}.move-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.move{box-shadow:inset 0 0 0 2px var(--line);background:linear-gradient(160deg,#e7fbf2,#fff6f9);border-radius:20px;align-content:start;display:grid;overflow:hidden}.move-art{aspect-ratio:16/9;background:linear-gradient(160deg,#f8efe9,#e9f7f0);position:relative}.move-art img{object-fit:cover;width:100%;height:100%;animation:.35s both fade;display:block}.art-wait{background:linear-gradient(100deg,#0000 30%,#ffffff8c 50%,#0000 70%) -100% 0/200% 100%;animation:1.2s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{to{background-position:100% 0}}.move-keys{align-items:flex-end;display:flex;position:absolute;bottom:12px;left:12px}.move-keys .arrow-pad .key{border-radius:10px;min-width:34px;height:34px;margin:1px}.move-keys .arrow-pad{-webkit-backdrop-filter:blur(6px);background:#ffffffb8;border-radius:16px;padding:5px 6px}.move-text{padding:12px 18px 16px}.move-text b{font-size:20px}.move-text p{color:var(--ink-soft);margin:4px 0 0}.pad{color:#fff;background:var(--ink);vertical-align:3px;border-radius:999px;place-items:center;min-width:26px;height:26px;margin-left:6px;padding:0 6px;font-size:11px;display:inline-grid}.key{color:#fff;background:linear-gradient(180deg, #ff8ab0, var(--pink-deep));border-radius:12px;place-items:center;min-width:44px;height:44px;margin:2px;padding:0 10px;font-size:18px;font-weight:600;display:inline-grid;box-shadow:0 4px #c43f74,0 6px 14px #e5508a4d}.howto-actions{flex-wrap:wrap;justify-content:flex-end;margin-top:0}.howto-actions .btn,.keys-signin .btn{white-space:nowrap}.keys-signin{background:var(--pink-soft);box-shadow:inset 0 0 0 2px var(--pink);border-radius:16px;justify-content:space-between;align-items:center;gap:14px;margin:-6px 0 16px;padding:12px 14px 12px 16px;animation:.25s cubic-bezier(.2,.9,.3,1.2) both rise;display:flex}.keys-signin>span{gap:2px;display:grid}.keys-signin small{color:var(--ink-soft)}.keys-sheet-wrap{z-index:30}.sheet.keys-sheet{width:min(520px,100%)}.keys-sheet header>span{gap:2px;display:grid}.keys-sheet header small{color:var(--ink-soft);font-weight:600}.key-binds{gap:8px;margin:0;padding:0;list-style:none;display:grid}.key-binds li{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:6px 8px 6px 16px;font-weight:600;display:flex}.key-bind{min-width:64px;height:40px;font:700 16px var(--font);color:#fff;background:linear-gradient(180deg, #ff8ab0, var(--pink-deep));cursor:pointer;border:0;border-radius:11px;padding:0 14px;box-shadow:0 3px #c43f74}.key-bind.listening{color:var(--pink-deep);background:var(--pink-soft);box-shadow:inset 0 0 0 2px var(--pink);animation:1s ease-in-out infinite pulse}.keys-note{min-height:2.6em;margin:12px 2px 0}.keys-note.on{color:var(--pink-deep);font-weight:600}.key.wide{min-width:90px}.tips .key,.arrow-pad .key{color:var(--ink);background:#fff;box-shadow:0 3px #3b274826,0 4px 10px #50285a1f}.arrow-pad{justify-items:center;display:grid}.key svg{fill:currentColor;width:14px;height:14px}.key.arrows{grid-auto-flow:column;gap:2px}.key.arrows svg{width:11px;height:11px}.tips{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:20px;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px;padding:16px 18px;display:grid}.tips p{align-items:center;gap:10px;margin:0;line-height:1.35;display:flex}.tips .key{flex:none;min-width:64px;height:32px;font-size:13px}.ring-icon{border:4px solid var(--gold);width:30px;height:30px;box-shadow:inset 0 0 0 5px #fff, inset 0 0 0 9px var(--gold);border-radius:50%;flex:none}.settings-cols{grid-template-columns:1fr 1fr;gap:28px;display:grid}.segmented{background:#3b274812;border-radius:999px;grid-template-columns:repeat(4,1fr);padding:5px;display:grid}.segmented button{background:0 0;border:0;border-radius:999px;padding:10px 0;font-weight:600}.segmented button.on{color:var(--pink-deep);background:#fff;box-shadow:0 3px 10px #50285a24}.toggles{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:18px;margin-top:12px;overflow:hidden}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex;position:relative}.toggle-row+.toggle-row{border-top:2px solid var(--line)}.toggle-row span{display:grid}.toggle-row b{font-size:17px;font-weight:600}.toggle-row small{color:var(--ink-soft);font-size:14px}.toggle-row input{opacity:0;pointer-events:none;position:absolute}.switch{background:#e5dfe8;border-radius:999px;flex:none;width:58px;height:34px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .2s cubic-bezier(.2,.9,.3,1.3);position:absolute;top:4px;left:4px;box-shadow:0 2px 6px #3b274840}.toggle-row input:checked+.switch{background:var(--pink-deep)}.toggle-row input:checked+.switch:after{transform:translate(24px)}.toggle-row input:focus-visible+.switch{outline:3px solid var(--pink);outline-offset:2px}.volume{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:18px;align-items:center;gap:14px;padding:14px 18px;font-weight:600;display:flex}.volume input{accent-color:var(--pink-deep);flex:1}.saved-note{color:var(--ink-soft);margin:18px 0 0;font-size:14px}.modal{text-align:center;gap:10px;width:min(340px,100%);animation:.35s cubic-bezier(.2,.9,.3,1.2) both rise;display:grid}.modal h2{margin-bottom:6px}.modal .btn{justify-content:center}.result{width:min(400px,100%)}.result.won h2{color:var(--pink-deep)}.final{justify-content:center;align-items:center;gap:18px;margin-bottom:6px;display:flex}.final span{justify-items:center;gap:4px;font-weight:600;display:grid}.final b{white-space:nowrap;flex:none;font-size:48px;font-weight:700}.final>span{flex:1 1 0;align-self:flex-start;min-width:0}.final small{text-align:center;overflow-wrap:anywhere;max-width:100%;line-height:1.25}.final i{opacity:.4;font-style:normal}.stats{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 8px;display:grid}.stats div{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:14px;padding:10px}.stats dt{color:var(--ink-soft);font-size:13px}.stats dd{margin:0;font-size:24px;font-weight:700}.unlock-note{background:var(--pink-soft);color:var(--pink-deep);border-radius:14px;margin:0 0 6px;padding:10px;font-weight:600}.pause-btn{top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));background:var(--cream);border:0;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:absolute;box-shadow:0 6px 16px #50285a29}.pause-btn svg{width:22px;fill:var(--ink)}.scoreboard{top:max(14px, env(safe-area-inset-top));background:var(--cream);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.sb-side{align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.sb-score{min-width:46px;height:40px;box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:14px;place-items:center;padding:0 8px;font-size:26px;font-weight:700;animation:.35s cubic-bezier(.2,.9,.3,1.6) bump;display:grid}.sb-score.gp{color:#fff;background:var(--pink-deep)}@keyframes bump{0%{transform:scale(1.35)}}.sb-sep{background:var(--line);border-radius:2px;width:2px;height:26px}.sb-avatars{display:flex}.sb-side.pair .sb-av+.sb-av{margin-left:-8px}.sb-av{border-radius:50%;display:inline-flex}.sb-av .avatar{box-shadow:0 0 0 2px #fff}.sb-av.serving .avatar{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--gold)}.sb-side.pair .sb-name{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:15px;overflow:hidden}.final-avatars{gap:4px;display:flex!important}.serve-dot{background:var(--gold);border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 3px #ffc93d4d}.hud-right{top:max(20px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));pointer-events:none;grid-auto-flow:column;place-items:center end;gap:8px;display:grid;position:absolute}.chip{background:var(--cream);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px 8px 10px;font-weight:600;display:flex;box-shadow:0 6px 16px #50285a24}.chip svg{width:18px;height:18px;fill:var(--pink-deep)}.serve-hint{top:calc(max(14px, env(safe-area-inset-top)) + 70px);box-shadow:var(--shadow);pointer-events:none;background:#fffaf6eb;border-radius:20px;justify-items:center;gap:2px;padding:10px 20px;font-size:18px;font-weight:700;animation:.3s both rise;display:grid;position:absolute;left:50%;transform:translate(-50%)}.serve-hint span{color:var(--ink-soft);font-size:14px;font-weight:500}.serve-hint kbd{background:var(--pink-soft);color:var(--pink-deep);border-radius:6px;padding:0 6px;font-weight:700}.keys-hint{left:max(16px, env(safe-area-inset-left));bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;background:#fffaf6e6;border-radius:999px;padding:10px 16px;font-size:15px;position:absolute;box-shadow:0 4px 12px #50285a1f}.keys-hint b{color:var(--pink-deep);margin-left:8px;font-weight:600}.keys-hint b:first-child{margin-left:0}.callout{pointer-events:none;justify-items:center;gap:4px;animation:1.6s cubic-bezier(.2,.9,.3,1.3) both callout;display:grid;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.callout.tone-win,.callout.tone-lose{animation-duration:2.4s;top:16%}.callout-text{color:#fff;-webkit-text-stroke:7px #ff7a6b;paint-order:stroke fill;text-shadow:0 10px 24px #ff7a6b59;font-size:clamp(56px,10vw,110px);font-weight:700;line-height:1}.tone-out .callout-text{-webkit-text-stroke-color:#7c6cf0;text-shadow:0 10px 24px #7c6cf059}.tone-win .callout-text{-webkit-text-stroke-color:var(--pink-deep)}.tone-lose .callout-text{-webkit-text-stroke-color:var(--ink-soft);font-size:clamp(44px,7vw,80px)}.callout-sub{background:var(--ink);color:#fff;border-radius:999px;padding:6px 16px;font-size:17px;font-weight:600}@keyframes callout{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}14%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}22%{transform:translate(-50%,-50%)scale(1)}78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-62%)scale(.96)}}.pops{pointer-events:none;position:absolute;inset:0}.pop{color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;white-space:nowrap;font-size:22px;font-weight:700;animation:1.1s cubic-bezier(.2,.9,.3,1.3) both pop;position:absolute;transform:translate(-50%,-50%)}.pop-perfect{color:#fff6c9;-webkit-text-stroke-color:#f0a21a;font-size:30px}.pop-late,.pop-miss{color:#fff;-webkit-text-stroke-color:#8f7d9a}.pop-shot{-webkit-text-stroke-color:var(--pink-deep)}.pop-perfect,.pop-late,.pop-shot{animation:.8s cubic-bezier(.2,.9,.3,1.3) both pop-low}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%)scale(.5)}18%{opacity:1;transform:translate(-50%,-60%)scale(1.1)}70%{opacity:1;transform:translate(-50%,-90%)scale(1)}to{opacity:0;transform:translate(-50%,-130%)scale(.95)}}@keyframes pop-low{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}75%{opacity:1;transform:translate(-50%,-30%)scale(1)}to{opacity:0;transform:translate(-50%,-10%)scale(.95)}}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.pop{-webkit-text-stroke-width:3.5px;font-size:14px}.pop-perfect{font-size:18px}.callout-text{-webkit-text-stroke-width:5px;font-size:40px}.tone-lose .callout-text{font-size:34px}.callout-sub{padding:4px 12px;font-size:14px}}.fps{color:#fff;pointer-events:none;background:#3b2748bf;border-radius:10px;padding:4px 10px;font-size:13px;font-weight:600;position:absolute;bottom:12px;right:12px}.chip.watchers svg{color:var(--pink-deep)}.chip.watchers svg path{fill:none}.chip.updating{color:#7a4b00;background:#ffe7a8}.update-banner{bottom:max(16px, env(safe-area-inset-bottom));z-index:40;width:max-content;max-width:min(440px,100% - 32px);box-shadow:var(--shadow), inset 0 0 0 2px var(--pink);background:#fffaf6f7;border-radius:18px;align-items:center;gap:12px;padding:10px 10px 10px 16px;font-size:14px;animation:.3s both banner-in;display:flex;position:absolute;left:50%;transform:translate(-50%)}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,10px)}}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.update-banner{top:max(10px, env(safe-area-inset-top));bottom:auto}}.update-banner.busy{box-shadow:var(--shadow), inset 0 0 0 2px #f5c451;padding-right:16px}.update-banner .btn{min-height:40px;padding:0 18px;font-size:15px}.chip.watching{color:#fff;background:var(--pink-deep)}.chip.ping i{background:var(--mint);border-radius:50%;width:10px;height:10px}.chip.ping.meh i{background:var(--gold)}.chip.ping.bad i{background:#ff6b6b}.chip.serve-clock{font-variant-numeric:tabular-nums;min-width:74px;color:var(--ink);transition:background .2s,color .2s}.chip.serve-clock svg{fill:none;color:var(--pink-deep)}.chip.serve-clock.meh{background:#fff1cf}.chip.serve-clock.bad{color:#fff;background:#ff6b6b;animation:1s ease-in-out infinite clock-pulse}.chip.serve-clock.bad svg{color:#fff}@keyframes clock-pulse{50%{transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){.chip.serve-clock.bad{animation:none}}.modal-note{color:var(--ink-soft);margin:-4px 0 6px}.btn:disabled{opacity:.6;cursor:default;transform:none}.name-field{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);gap:6px;font-size:14px;font-weight:600;display:grid}.name-row{gap:8px;display:flex}.name-row input,.join-row input{min-width:0;height:48px;font:600 18px var(--font);color:var(--ink);letter-spacing:normal;text-transform:none;box-shadow:inset 0 0 0 2px var(--line);-webkit-user-select:text;user-select:text;background:#fff;border:0;border-radius:16px;outline:none;flex:1;padding:0 16px}.name-row input:focus,.join-row input:focus{box-shadow:inset 0 0 0 3px var(--pink)}.dice{width:48px;height:48px;color:var(--pink-deep);box-shadow:inset 0 0 0 2px var(--line);background:#fff;border:0;border-radius:16px;place-items:center;display:grid}.dice svg{fill:currentColor;width:24px}.compact-grid .char{padding:10px 4px 8px;font-size:14px}.online-screen .options .btn{justify-content:center}.online-screen .options>.btn,.online-screen .setup-body>.btn{width:100%}.hint{color:var(--ink-soft);margin:8px 2px 0;font-size:14px}.row.tight{align-items:stretch;margin-top:10px}.row.tight .choices{flex:1}.join-row{gap:8px;margin-top:10px;display:flex}.join-row input{letter-spacing:.3em;text-transform:uppercase}.net-error{color:#b43c3c;background:#ffe6e6;border-radius:14px;margin:12px 0 0;padding:10px 14px;font-weight:600}.net-wait{text-align:center;justify-items:center;gap:12px;padding:18px 0 6px;display:grid}.net-wait>b{font-size:22px}.net-wait small{color:var(--ink-soft);font-size:14px}.net-wait .invite{overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-width:100%}.party-code{letter-spacing:.18em;box-shadow:inset 0 0 0 3px var(--pink);background:#fff;border-radius:20px;padding:4px 18px 4px 28px;font-size:54px!important}.waiting{align-items:center;gap:8px;font-weight:600;display:flex}.spinner{border:5px solid var(--pink-soft);border-top-color:var(--pink-deep);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite spin}.spinner.small{border-width:3px;width:18px;height:18px}@keyframes spin{to{transform:rotate(1turn)}}.top-actions{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));align-items:center;gap:10px;display:flex;position:absolute}.emotes-btn{background:var(--cream);cursor:pointer;border:0;border-radius:50%;place-items:center;width:46px;height:46px;transition:transform .15s;display:grid;box-shadow:0 6px 16px #50285a29}.emotes-btn:hover{transform:translateY(-2px)}.guide-btn{text-decoration:none}.guide-icon{width:28px;fill:var(--pink);stroke:var(--ink);stroke-width:1.6px}.guide-icon path{fill:none;stroke:#fff;stroke-width:3.4px;stroke-linecap:round}.guide-icon .dot{fill:#fff;stroke:none}.smile-icon{width:28px;fill:var(--gold);stroke:var(--ink);stroke-width:1.6px}.smile-icon .eye{fill:var(--ink);stroke:none}.smile-icon .mouth{fill:none;stroke-linecap:round}.account-chip{background:var(--cream);border:0;border-radius:999px;align-items:center;gap:8px;height:46px;padding:0 18px 0 8px;font-size:16px;font-weight:600;display:flex;box-shadow:0 6px 16px #50285a29}.account-chip>span:only-child{padding-left:10px}.account{width:min(860px,100%)}.auth{gap:14px;max-width:440px;margin:0 auto;display:grid}.auth-tabs{grid-template-columns:1fr 1fr}.auth-lead{color:var(--ink-soft);margin:0}.auth-form{gap:14px;display:grid}.auth-form .btn{justify-content:center;margin-top:4px}.field{gap:6px;display:grid}.field>span,.field>label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:14px;font-weight:600}.field input,.pw-row input{width:100%;min-width:0;height:48px;font:500 17px var(--font);color:var(--ink);box-shadow:inset 0 0 0 2px var(--line);-webkit-user-select:text;user-select:text;background:#fff;border:0;border-radius:16px;outline:none;padding:0 16px}.field input:focus,.pw-row input:focus{box-shadow:inset 0 0 0 3px var(--pink)}.pw-row{display:block;position:relative}.pw-row input{padding-right:76px}.pw-toggle{background:#3b274812;border:0;border-radius:12px;height:34px;padding:0 12px;font-size:13px;font-weight:600;position:absolute;top:7px;right:7px}.field-note{color:var(--ink-soft);font-size:14px}.field-note.ok{color:#2f9e6e;font-weight:600}.field-note.bad{color:#c43c5a;font-weight:600}.link{color:var(--pink-deep);text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.profile-head{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:20px;align-items:center;gap:16px;padding:16px;display:flex}.photo-pick{flex:none;justify-items:center;gap:6px;max-width:120px;display:grid}.photo-pick-av{place-items:center;display:grid;position:relative}.photo-pick-av .spinner{position:absolute}.photo-edit{background:var(--pink);cursor:pointer;border:0;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;bottom:-4px;right:-6px;box-shadow:0 0 0 2px #fff,0 3px 8px #50285a40}.photo-edit:disabled{opacity:.6;cursor:default}.photo-edit svg{fill:none;stroke:#fff;stroke-width:2px;stroke-linejoin:round;width:17px}.photo-remove{font-size:12px}.photo-error{text-align:center;margin:0;font-size:12px}.profile-id{flex:1;gap:6px;min-width:0;display:grid}.profile-id small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile h3{margin-top:22px}.profile h3 .count,.options h3 .count{letter-spacing:0;color:var(--pink-deep);margin-left:8px}.stats-wide{grid-template-columns:repeat(4,1fr)}.stats-wide small{color:var(--ink-soft);font-size:12px;display:block}.ach-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.ach{box-shadow:inset 0 0 0 2px var(--line);opacity:.6;background:#fff9;border-radius:16px;gap:2px;padding:12px;display:grid}.ach i{color:var(--ink-soft);font-size:20px;font-style:normal}.ach b{font-weight:600}.ach small{color:var(--ink-soft);font-size:12px;line-height:1.3}.ach.earned{opacity:1;background:#fff8e0;box-shadow:inset 0 0 0 2px #ffd36e}.ach.earned i{color:#f0a21a}.history{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3b274840 transparent;gap:6px;max-height:280px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.history::-webkit-scrollbar{width:6px}.history::-webkit-scrollbar-thumb{background:#3b274840;border-radius:3px}.history li{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:14px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.wl{color:#fff;border-radius:10px;place-items:center;width:30px;height:30px;font-weight:700;display:grid}.wl.w{background:var(--mint)}.wl.l{background:#b9a9c2}.vs{font-weight:600;display:grid}.vs small,.history .when{color:var(--ink-soft);font-size:13px;font-weight:500}.save-note{color:var(--ink-soft);margin:0 0 6px;font-weight:600}.save-note.ok{color:#2f9e6e}.save-note.bad{color:#c43c5a}.new-ach{color:#c7811a;margin-top:4px;display:block}.online-left{pointer-events:none;flex-direction:column;gap:14px;width:min(380px,42vw);max-height:calc(100% - 16px);display:flex}.online-left>*{pointer-events:auto}.online-left>.panel{animation:.45s cubic-bezier(.2,.9,.3,1.2) both rise}.online-left>.picker{flex:0 auto;min-height:0;overflow-y:auto}.online-left>.room-chat-card{flex-shrink:0}.online-right{pointer-events:none;flex-direction:column;gap:14px;width:min(380px,42vw);max-height:calc(100% - 16px);display:flex}.online-right>.panel{pointer-events:auto;animation:.45s cubic-bezier(.2,.9,.3,1.2) both rise}.online-right>.options{flex:0 auto;min-height:0;overflow-y:auto}@media (min-width:721px) and (min-height:501px){.online-right>.options .options-back{z-index:1;background:linear-gradient(#fffaf600,#fffaf6f7 12px);margin:10px -24px -24px;padding:12px 24px 24px;position:sticky;bottom:-24px}}.open-rooms{flex-shrink:0;padding:16px 18px}.open-rooms .open-rooms-head h3{margin-bottom:8px}.open-rooms .room-list{gap:6px}.open-rooms .room-list li{padding-block:4px}.open-rooms-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.open-rooms-head .link{font-size:14px}.room-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.rl-vs{align-items:center;width:38px;display:flex}.rl-vs .avatar{flex-shrink:0;box-shadow:0 0 0 2px #fff}.rl-vs .avatar+.avatar{margin-top:12px;margin-left:-14px}.rl-live{align-items:center;gap:5px;font-weight:700;display:flex}.live-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.4s ease-in-out infinite live-pulse}@keyframes live-pulse{50%{opacity:.35}}.rl-meta svg{fill:currentColor;width:13px;height:13px;margin:0 1px -2px 0}.rl-meta svg path{fill:none}.rooms-sheet h3:not(:first-of-type){margin-top:18px}.rooms-sheet-wrap{z-index:30;pointer-events:auto}.sheet.rooms-sheet{width:min(560px,100%)}.rooms-sheet header>span{gap:2px;display:grid}.rooms-sheet header small{color:var(--ink-soft);font-weight:600}.room-list li{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px 6px 10px;display:grid}.room-list .btn{min-height:0;padding:8px 16px}.rl-info{min-width:0;line-height:1.25;display:grid}.rl-info>b,.rl-info>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rl-info small{color:var(--ink-soft);font-size:12px}.rl-teams{align-items:center;gap:6px;margin-top:2px;display:flex}.rl-team+.rl-team:before{content:"vs";color:var(--ink-soft);margin-right:6px;font-size:11px;font-weight:700}.rl-team{align-items:center;gap:2px;display:flex}.rl-free{border:2px dashed var(--line);border-radius:50%;width:18px;height:18px}.rl-teams small{margin-left:4px;font-size:12px;font-weight:700}.room-slot[role=button]{cursor:pointer;transition:box-shadow .15s}.room-slot[role=button]:hover,.room-slot[role=button]:focus-visible{box-shadow:inset 0 0 0 2px var(--pink);outline:none}.room-slot.picked{box-shadow:inset 0 0 0 3px var(--pink);background:var(--pink-soft)}.member-sheet-wrap{z-index:30;background:#f6ede880}.panel.member-dialog{gap:18px;width:min(360px,100%);padding:24px;display:grid}.member-head{text-align:center;justify-items:center;gap:6px;min-width:0;display:grid}.member-head b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:24px;overflow:hidden}.member-head small{color:var(--ink-soft);font-weight:600}.member-btns{gap:10px;display:grid}.member-btns .btn,.member-btns .add-friend,.member-btns .add-friend .btn,.member-btns .kick .btn{justify-content:center;width:100%}.member-btns .kick .btn{color:#c2410c}.panel.member-dialog{max-height:calc(100% - 32px);overflow-y:auto}.panel.member-dialog.with-auth{width:min(420px,100%)}.member-signin{background:var(--pink-soft);text-align:center;border-radius:16px;gap:10px;padding:12px 14px;display:grid}.member-signin p{color:var(--ink-soft);margin:0;font-size:15px}.member-auth{text-align:left;box-shadow:inset 0 0 0 2px var(--line);border-radius:18px;padding:14px}.member-auth .auth-lead{margin-top:10px}.member-btns .add-friend{grid-template-columns:minmax(0,1fr)}.room-visibility{margin:0}.setup-summary,.setup-quick{display:none}.room{gap:12px;min-width:0;display:grid}.room-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.room-head>span{display:grid}.room-head small{color:var(--ink-soft);font-weight:600}.room-head .party-code{letter-spacing:.18em;padding:2px 10px 2px 16px;font-size:28px!important}.room-head .btn{min-height:42px;padding:0 16px;font-size:15px}.room-teams{grid-template-columns:1fr 1fr;gap:10px;display:grid}.room-team{background:#3b27480d;border-radius:18px;gap:8px;min-width:0;padding:10px;display:grid}.room-team.mine{background:color-mix(in srgb, var(--pink) 12%, white)}.room-team h3{margin:0 2px}.room-slot{min-height:58px;box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:8px 10px;display:flex}.room-slot.open{box-shadow:inset 0 0 0 2px var(--line);background:0 0;border:2px dashed #0000;flex-direction:column;justify-content:center;align-items:flex-start;gap:0}.room-name{min-width:0;display:grid}.room-name b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-name small{color:var(--pink-deep);font-size:12px;font-weight:600}.room-empty{color:var(--ink-soft);font-weight:600}.sponsor{box-shadow:inset 0 0 0 2px var(--line);background:linear-gradient(140deg,#fff0f5,#fff8f1);border-radius:20px;grid-template-columns:minmax(220px,.9fr) 1.1fr;gap:22px;margin-top:22px;padding:20px;display:grid}.contact-card{box-shadow:inset 0 0 0 2px var(--line);background:linear-gradient(140deg,#eef5ff,#fff8f1);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 22px;margin-top:16px;padding:18px 20px;display:flex}.contact-card h3{margin:0 0 2px}.contact-card p{color:var(--ink-soft);margin:0}.contact-links{flex-wrap:wrap;gap:10px;display:flex}.btn-facebook,.btn-zalo{color:#fff;justify-content:center;gap:10px;padding-left:18px;text-decoration:none}.btn-facebook{background:#1877f2;box-shadow:0 8px 20px #1877f247}.btn-zalo{background:#0068ff;box-shadow:0 8px 20px #0068ff47}.contact-icon{flex:none;width:24px;height:24px}.sponsor-board{box-shadow:inset 0 0 0 6px var(--ink), 0 8px 18px #3b27482e;text-align:center;background:#fff8f1;border-radius:14px;align-self:start;justify-items:center;gap:6px;padding:22px 12px;display:grid}.sponsor-board b{font-size:30px;font-weight:700;line-height:1.1}.sponsor-board span{letter-spacing:.14em;text-transform:uppercase;color:var(--pink-deep);font-size:14px;font-weight:600}.sponsor-body h3{margin-top:0}.sponsor-body p{color:var(--ink-soft);margin:0 0 10px}.sponsor-body ul{color:var(--ink);margin:0 0 14px;padding-left:20px}.sponsor-body li{margin:4px 0}.sponsor-body li::marker{color:var(--pink-deep)}.sponsor-form textarea{width:100%;font:500 16px var(--font);color:var(--ink);box-shadow:inset 0 0 0 2px var(--line);resize:vertical;-webkit-user-select:text;user-select:text;background:#fff;border:0;border-radius:16px;outline:none;padding:12px 16px}.sponsor-form textarea:focus{box-shadow:inset 0 0 0 3px var(--pink)}.sponsor-form .row.tight .btn{flex:1;justify-content:center}.sponsor-done{background:#e6f8ef;border-radius:14px;padding:14px 16px;font-weight:600;color:#2f7d58!important}.sponsor-actions{margin-top:0}.sponsor-actions .btn{flex:0 auto}.admin{-webkit-user-select:text;user-select:text;width:min(900px,100%)}.admin-tools{gap:8px;display:flex}.admin-filter{grid-template-columns:repeat(5,1fr);margin-bottom:14px}.admin-filter button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.admin-filter .count{background:#3b274814;border-radius:999px;min-width:22px;padding:1px 6px;font-size:12px}.admin-filter button.on .count{color:#fff;background:var(--pink-deep)}.admin-empty{text-align:center;padding:26px 0}.admin-entry{box-shadow:inset 0 0 0 2px var(--line);background:linear-gradient(140deg,#fff0f5,#fff8f1);border-radius:20px;justify-content:space-between;align-items:center;gap:14px;margin-top:12px;padding:14px 16px;display:flex}.admin-entry span{display:grid}.admin-entry small{color:var(--ink-soft)}.requests{gap:10px;margin:0;padding:0;list-style:none;display:grid}.request{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:18px;gap:8px;padding:16px 18px;display:grid}.request.is-approved{box-shadow:inset 0 0 0 2px #4fc5978c}.request.is-declined{opacity:.72}.request-head{align-items:center;gap:10px;display:flex}.request-brand{overflow-wrap:anywhere;font-size:19px}.request-head .when{white-space:nowrap;margin-left:auto}.request .when{color:var(--ink-soft);font-size:13px;font-weight:500}.status-pill{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.status-pill.new{color:#a8336a;background:var(--pink-soft)}.status-pill.contacted{color:#7a5a00;background:#fff1c7}.status-pill.approved{color:#24714f;background:#def6ea}.status-pill.declined{color:#6e5a7b;background:#eee8f1}.request-contact{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:6px 16px;font-weight:600;display:flex}.request-contact a{color:var(--pink-deep);text-underline-offset:2px}.request-contact .tag{color:var(--ink-soft);background:#3b274812;border-radius:8px;padding:2px 8px;font-size:12px}.request-msg{white-space:pre-wrap;overflow-wrap:anywhere;background:#fbf6f2;border-radius:12px;margin:0;padding:10px 12px}.request-msg.none{color:var(--ink-soft);background:0 0;padding:0;font-style:italic}.request-foot{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.request-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.request-actions .btn{min-height:40px;padding:0 16px;font-size:15px}.request-actions .btn.danger{color:#b43c3c}.touch{pointer-events:none;-webkit-touch-callout:none;height:0;position:absolute;inset:auto 0 0}.stick{left:max(18px, env(safe-area-inset-left));bottom:max(18px, env(safe-area-inset-bottom));width:var(--stick-size);height:var(--stick-size);pointer-events:auto;touch-action:none;background:#fffaf673;border-radius:50%;position:absolute;box-shadow:inset 0 0 0 3px #fffc}.stick:before{content:"";inset:calc(var(--stick-size) * -.2);border-radius:50%;position:absolute}.stick.on{background:#fffaf699}.knob{width:calc(var(--stick-size) * .43);height:calc(var(--stick-size) * .43);margin:calc(var(--stick-size) * -.215) 0 0 calc(var(--stick-size) * -.215);background:var(--cream);pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 6px 14px #50285a40}.touch-buttons{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));grid-template-columns:repeat(3, var(--tbtn-size));gap:var(--tbtn-gap);pointer-events:auto;grid-template-areas:"dive drop smash""jump jump clear";display:grid;position:absolute}.tbtn{height:var(--tbtn-size);color:#fff;background:linear-gradient(180deg, #ff8ab0, var(--pink-deep));touch-action:none;border:0;border-radius:50%;font-size:clamp(12px,3.6vw,14px);font-weight:700;box-shadow:0 5px #c43f74,0 8px 16px #50285a40}.tbtn:active,.tbtn.down{transform:translateY(3px);box-shadow:0 2px #c43f74}.tbtn.smash{grid-area:smash}.tbtn.clear{background:linear-gradient(#ffd86b,#f5a524);grid-area:clear;box-shadow:0 5px #c7811a}.tbtn.drop{background:linear-gradient(#8fe3c0,#3fb487);grid-area:drop;box-shadow:0 5px #2d8c68}.tbtn.jump{background:linear-gradient(#a9b6ff,#6f7ff0);border-radius:999px;grid-area:jump;box-shadow:0 5px #5160c8}.tbtn.dive{background:linear-gradient(#d1c2ff,#9c86f2);grid-area:dive;box-shadow:0 5px #7b66cf}@media (max-width:860px){.move-grid,.tips{grid-template-columns:1fr 1fr}.settings-cols{grid-template-columns:1fr;gap:0}.settings-cols>div+div h3{margin-top:18px}}@media (max-width:720px){.select-screen{pointer-events:auto;flex-direction:column;justify-content:space-between;align-items:stretch;gap:10px;padding:12px;overflow-y:auto}.select-screen>.panel{width:100%;max-height:none;padding:16px;overflow:visible}.select-screen>.picker{flex-shrink:0}.online-left{flex-shrink:0;gap:10px;width:100%;max-height:none}.online-left>.picker{flex-shrink:0;padding:16px;overflow:visible}.room-chat-card .chat-lines{height:96px}.online-right{flex-shrink:0;gap:10px;width:100%;max-height:none}.online-right>.panel{padding:16px}.online-right>.options{overflow:visible}.select-screen:not(.online-screen)>.options{z-index:2;position:sticky;bottom:0}.online-right:has(>.options.folded){z-index:2;position:sticky;bottom:0}.sb-name,.keys-hint{display:none}.scoreboard{left:calc(max(16px, env(safe-area-inset-left)) + 60px);right:calc(max(16px, env(safe-area-inset-right)) + 60px);width:fit-content;margin-inline:auto;transform:none}.hud-right{top:calc(max(14px, env(safe-area-inset-top)) + 62px);grid-auto-flow:column}.serve-hint{top:calc(max(14px, env(safe-area-inset-top)) + 112px);white-space:nowrap}.choices:not(.compact) .choice small{display:none}.title-screen{top:auto;left:16px;right:16px;bottom:max(24px, env(safe-area-inset-bottom));transform:none}.title-menu{width:100%}.leaderboard{top:calc(max(16px, env(safe-area-inset-top)) + 56px);width:auto;padding:12px 14px 10px;left:16px;right:16px}.leaderboard ol{gap:6px;margin-top:8px}.leaderboard li{min-height:42px;padding:4px 10px 4px 8px}.lb-foot{display:none}.lb-row{grid-template-columns:28px 36px minmax(0,1fr) 44px 48px;gap:8px}.lb-rate{display:none}.sheet{padding:18px}}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.char-grid{grid-template-columns:repeat(6,1fr);gap:6px}.char{padding:8px 2px 6px;font-size:12px}.char .avatar{width:44px!important;height:44px!important}.char.on:after{display:none}.select-screen .char-grid{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;grid-template-rows:repeat(2,auto);grid-template-columns:none;grid-auto-columns:calc(18.1818% - 5.45455px);grid-auto-flow:column;margin:0 -16px;padding:2px 16px 4px;scroll-padding:0 16px;overflow-x:auto}.select-screen .char-grid::-webkit-scrollbar{display:none}.online-screen .char-grid{grid-template-rows:auto}.select-screen .char{scroll-snap-align:start}.setup-summary{text-align:left;width:100%;box-shadow:inset 0 0 0 2px var(--line);background:#fff;border:0;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.setup-text{min-width:0;display:grid}.setup-text small{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-size:11px;font-weight:700}.setup-text b{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.setup-toggle{color:var(--pink-deep);flex-shrink:0;align-items:center;gap:4px;font-size:14px;font-weight:700;display:flex}.setup-toggle svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;transition:transform .2s}.options.open .setup-toggle svg{transform:rotate(180deg)}.options.folded .setup-body,.options.folded .room,.options.folded .options-back{display:none}.options.folded .setup-quick{display:flex}.options.folded .setup-quick .btn{white-space:nowrap;justify-content:center;padding:0 12px}.options.folded .row{margin-top:12px}.options.open .setup-body h3:first-child{margin-top:14px}}@media (orientation:landscape) and (max-height:500px){.title-screen{gap:8px}.logo{font-size:clamp(44px,16vh,80px)}.tagline{padding:4px 12px;font-size:14px}.title-menu{gap:8px;width:230px;margin-top:2px}.title-menu .btn{min-height:40px;font-size:16px}.leaderboard{top:calc(max(12px, env(safe-area-inset-top)) + 54px);width:260px;padding:12px 14px 10px}.leaderboard ol{gap:6px;margin-top:8px}.leaderboard li{min-height:40px;padding:4px 10px 4px 8px}.leaderboard .avatar{width:28px!important;height:28px!important}.lb-foot{display:none}.select-screen{align-items:flex-start;gap:12px;padding:12px}.select-screen>.panel{max-height:calc(100% - 4px);padding:16px}.select-screen>.panel h2{font-size:24px}.online-left{pointer-events:auto;gap:10px;max-height:calc(100% - 4px);margin:0 -8px;padding:0 8px 8px;overflow-y:auto}.online-left>.picker{flex-shrink:0;padding:16px;overflow:visible}.online-left .picker h2{font-size:24px}.online-right{justify-content:space-between;align-self:stretch;gap:10px;max-height:calc(100% - 4px)}.online-right>.panel{padding:16px}.select-screen>.options.folded{align-self:flex-end}.char-info{margin-top:8px;padding:8px 12px}.char-info b{font-size:18px}.modal-wrap,.sheet-wrap{padding:8px}.sheet{max-height:calc(100vh - 16px);padding:18px}.result{grid-template-columns:repeat(3,1fr);width:min(640px,100%);max-height:calc(100vh - 16px);overflow-y:auto}.result>:not(.btn){grid-column:1/-1}.result h2{margin-bottom:0}.result .stats{grid-template-columns:repeat(4,1fr);margin-bottom:0}.result .stats div{padding:6px}.final b{font-size:36px}.final .avatar{width:40px!important;height:40px!important}}@media (max-width:720px) and (max-height:739px){.leaderboard{display:none}}@media (max-width:640px){.sponsor{grid-template-columns:1fr}.admin header{flex-wrap:wrap}.admin-tools .btn{min-height:42px;padding:0 16px;font-size:16px}.admin-filter{border-radius:20px;flex-wrap:wrap;gap:2px;display:flex}.admin-filter button{flex:1 0 auto;padding:8px 12px}.request-head{flex-wrap:wrap}.request-actions{margin-left:0}.stats-wide,.ach-grid{grid-template-columns:1fr 1fr}.profile-head{flex-wrap:wrap}}@media (max-width:520px){.move-grid,.tips{grid-template-columns:1fr}.move-keys{min-height:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nametags{pointer-events:none;position:absolute;inset:0;overflow:hidden}.nametag{max-width:96px;color:var(--ink);font:600 10.5px/1.2 var(--font);white-space:nowrap;will-change:transform;background:#fffaf6db;border-radius:999px;align-items:center;gap:3px;padding:1px 6px;display:flex;position:absolute;top:0;left:0;box-shadow:0 2px 4px #50285a29,inset 0 0 0 1.5px #9cc4ff}.nametag.mate{box-shadow:0 2px 4px #50285a29, inset 0 0 0 1.5px var(--pink)}.nametag.me{background:var(--pink);color:#fff;box-shadow:0 2px 4px #50285a33}.nametag-name{text-overflow:ellipsis;overflow:hidden}.nametag-serve{background:var(--gold);color:var(--ink);font:700 9px/1.2 var(--font);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;gap:2px;padding:1px 6px 1px 3px;display:none;position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%);box-shadow:0 2px 5px #50285a33}.nametag-serve svg{fill:#fff;width:11px;height:11px;stroke:var(--ink);stroke-width:1.5px;stroke-linejoin:round;transform:rotate(-20deg)}.nametag-serve .cork{fill:var(--pink)}.nametag.serving{outline:2px solid var(--gold);outline-offset:1px}.nametag.serving .nametag-serve{animation:1.2s ease-in-out infinite serve-badge;display:flex}@keyframes serve-badge{50%{transform:translate(-50%)translateY(-2px)}}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.nametag{max-width:72px;padding:1px 5px;font-size:9px}.nametag-serve{font-size:8px}.nametag-serve svg{width:10px;height:10px}}@media (prefers-reduced-motion:reduce){.nametag.serving .nametag-serve{animation:none}}.chat-panel{top:calc(max(20px, env(safe-area-inset-top)) + 48px);right:max(16px, env(safe-area-inset-right));z-index:3;-webkit-backdrop-filter:blur(8px);width:min(300px,50vw - 172px);max-height:min(380px,100vh - 150px);box-shadow:var(--shadow);background:#fffaf6db;border-radius:20px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.chat-panel header{flex:none;align-items:center;gap:8px;padding:10px 10px 6px 16px;display:flex}.chat-panel header small{color:var(--ink-soft);font-size:12px}.chat-close{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:30px;height:30px;margin-left:auto;display:grid}.chat-close:hover{background:var(--line)}.chat-close svg{fill:none;width:18px;stroke:var(--ink);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.chat-lines{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3b274840 transparent;flex:0 auto;height:136px;min-height:48px;margin:0;padding:2px 16px 8px;font-size:14px;line-height:1.35;list-style:none;overflow-y:auto}.chat-lines::-webkit-scrollbar{width:6px}.chat-lines::-webkit-scrollbar-thumb{background:#3b274840;border-radius:3px}.chat-lines li{overflow-wrap:anywhere;padding:3px 0}.chat-empty{color:var(--ink-soft)}.chat-who{font-weight:700}.chat-who.me{color:var(--pink-deep)}.chat-who.mate{color:#8b3fa8}.chat-who.opp{color:#3f7fd6}.room-chat-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.room-chat-card header{align-items:center;gap:8px;padding:10px 10px 4px 16px;display:flex}.room-chat-card .chat-lines{height:120px}.room-chat-fab{align-self:flex-start;animation:.35s cubic-bezier(.2,.9,.3,1.2) both rise}.chat-quick{scrollbar-width:none;flex:none;gap:6px;padding:6px 12px;display:flex;overflow-x:auto}.chat-quick::-webkit-scrollbar{display:none}.chat-quick button{background:var(--pink-soft);color:var(--ink);font:600 13px var(--font);cursor:pointer;border:0;border-radius:999px;flex:none;padding:5px 11px}.chat-quick button:hover:not(:disabled){background:#ffd0df}.chat-form{flex:none;gap:6px;padding:6px 10px 10px;display:flex}.chat-form input{min-width:0;color:var(--ink);font:500 14px var(--font);box-shadow:inset 0 0 0 2px var(--line);background:#fff;border:0;border-radius:999px;flex:1;padding:9px 14px}.chat-form input:focus{box-shadow:inset 0 0 0 2px var(--pink);outline:none}@media (pointer:coarse){.chat-form input{font-size:16px}}.chat-form button{background:var(--pink);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid}.chat-form button:disabled,.chat-quick button:disabled{opacity:.45;cursor:default}.chat-form button svg{fill:#fff;width:18px}.chat-dock{top:calc(max(20px, env(safe-area-inset-top)) + 48px);right:max(16px, env(safe-area-inset-right));z-index:3;pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute}.chat-fab{background:var(--cream);width:52px;height:52px;box-shadow:var(--shadow);cursor:pointer;pointer-events:auto;border:0;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.chat-fab svg{width:24px;fill:var(--pink-deep)}.chat-badge{background:var(--pink);color:#fff;min-width:22px;height:22px;font:700 12px var(--font);border-radius:999px;place-items:center;padding:0 6px;display:grid;position:absolute;top:-3px;right:-3px;box-shadow:0 0 0 2px #fff}.chat-toast{max-width:min(240px,50vw - 240px);box-shadow:var(--shadow);overflow-wrap:anywhere;background:#fffaf6f0;border-radius:16px;order:-1;padding:8px 14px;font-size:14px;animation:3.5s both chat-toast}@keyframes chat-toast{0%{opacity:0;transform:translateY(6px)}8%,85%{opacity:1;transform:none}to{opacity:0}}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.chat-dock{top:auto;right:auto;bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--stick-size) + 22px);left:max(16px, env(safe-area-inset-left));flex-direction:row-reverse}.chat-toast{order:0;max-width:min(240px,100vw - 110px);font-size:13px}.chat-fab{width:46px;height:46px}.chat-panel{top:auto;right:max(12px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--stick-size) + 14px);left:max(12px, env(safe-area-inset-left));z-index:4;width:auto;max-width:420px;max-height:min(320px, calc(100vh - var(--stick-size) - 130px));background:#fffaf6f7;margin:0 auto}.chat-lines{height:112px;font-size:13px}}@media (orientation:landscape) and (max-height:500px){.chat-panel{bottom:max(10px, env(safe-area-inset-bottom));left:calc(max(18px, env(safe-area-inset-left)) + var(--stick-size) + 12px);right:calc(max(14px, env(safe-area-inset-right)) + var(--tbtn-size) * 3 + var(--tbtn-gap) * 2 + 12px);max-width:360px;max-height:calc(100vh - 86px)}.chat-lines{height:64px}}html.chat-typing .touch,html.chat-typing .emote-dock{visibility:hidden}html.chat-typing .chat-panel{bottom:calc(var(--kb,0px) + 8px);left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));max-width:480px;max-height:calc(var(--vvh,100vh) - 16px)}@media (orientation:landscape) and (max-height:500px){html.chat-typing .chat-panel header{display:none}html.chat-typing .chat-lines{min-height:0;padding-top:8px}}@media (prefers-reduced-motion:reduce){.chat-toast{animation:none}}@media (max-width:400px){.scoreboard{gap:6px;padding:6px 10px}.sb-score{min-width:38px;height:34px;padding:0 6px;font-size:22px}}.emote-count{color:var(--ink-soft);margin:-4px 0 12px;font-weight:600}.emote-icon{background:var(--pink-soft);border-radius:50%;place-items:center;width:46px;height:46px;font-size:26px;line-height:1;display:grid}.emote-card{font-size:13px}.emote-card.locked .emote-icon{filter:grayscale(.9);opacity:.55}.emote-on-key{background:var(--pink);color:#fff;min-width:20px;height:20px;font:700 12px var(--font);border-radius:6px;place-items:center;padding:0 5px;display:grid;position:absolute;top:6px;left:8px}.emote-card.on:after{display:none}.emote-info b{font-size:20px}.emote-side h3{margin:16px 0 8px}.emote-keys{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.emote-slot{position:relative}.emote-slot-main{width:100%;box-shadow:inset 0 0 0 2px var(--line);color:var(--ink);cursor:pointer;background:#fff;border:0;border-radius:16px;align-items:center;gap:8px;padding:6px 8px;transition:box-shadow .15s,transform .15s;display:flex}.emote-slot-main:disabled{cursor:default}.emote-slot.can-drop .emote-slot-main:hover{box-shadow:inset 0 0 0 3px var(--pink);transform:translateY(-2px)}.emote-slot-main kbd{background:var(--pink-soft);min-width:22px;height:22px;color:var(--pink-deep);font:700 13px var(--font);border-radius:7px;place-items:center;display:grid}.emote-slot-main .emote-icon{background:0 0;width:38px;height:38px;font-size:22px}.emote-slot.empty .emote-icon{color:var(--ink-soft);opacity:.5;font-size:18px}.emote-clear{background:var(--ink);color:#fff;width:22px;height:22px;font:700 14px/1 var(--font);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px}.emote-dock{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:3;pointer-events:none;position:absolute}.emote-dock:not(.inline){display:none}.emote-dock.inline{z-index:5;position:relative;bottom:auto;right:auto}.emote-dock.inline .emote-fab{width:40px;height:40px}.emote-dock.inline .emote-fab svg{width:22px;height:22px}.emote-dock.inline .emote-pop{animation-name:drop-in;top:50px;bottom:auto}@keyframes drop-in{0%{opacity:0;transform:translateY(-10px)}}.emote-fab{background:var(--cream);width:52px;height:52px;box-shadow:var(--shadow);cursor:pointer;pointer-events:auto;border:0;border-radius:50%;place-items:center;display:grid;position:relative}.emote-pop{box-shadow:var(--shadow);pointer-events:auto;background:#fffaf6f2;border-radius:20px;grid-template-columns:repeat(3,54px);gap:6px;padding:8px;animation:.2s both rise;display:grid;position:absolute;bottom:62px;right:0}.emote-pop button{height:54px;box-shadow:inset 0 0 0 2px var(--line);cursor:pointer;background:#fff;border:0;border-radius:14px;place-items:center;display:grid;position:relative}.emote-pop button:disabled{opacity:.4;cursor:default}.emote-pop button:hover:not(:disabled){box-shadow:inset 0 0 0 3px var(--pink)}.emote-pop .emote-icon{background:0 0;width:auto;height:auto;font-size:26px}.emote-pop kbd{color:var(--ink-soft);font:700 11px var(--font);position:absolute;top:3px;left:5px}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.emote-dock:not(.inline){display:block}.emote-dock.inline{display:none}.emote-dock{right:auto;left:max(16px, env(safe-area-inset-left));bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--stick-size) + 22px)}.emote-dock.with-chat{bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--stick-size) + 78px)}.emote-fab{width:46px;height:46px}.emote-pop{grid-template-columns:repeat(3,50px);bottom:56px;left:0;right:auto}.emote-pop button{height:50px}.emote-icon{width:40px;height:40px;font-size:22px}.emote-keys{gap:6px}.emote-slot-main{gap:4px;padding:4px 6px}.emote-slot-main .emote-icon{width:32px;height:32px;font-size:20px}.emote-side h3{margin:10px 0 6px}.emote-info p{font-size:14px}}@media (max-width:720px){.final{gap:10px}.final b{font-size:40px}.final-avatars>*+*{margin-left:-14px}}.signout-bottom{display:none}@media (max-width:720px){.signout-top{display:none}.signout-bottom{margin-top:24px;display:block}.signout-bottom .btn{color:#b43c3c;justify-content:center;width:100%}.profile-head{flex-wrap:nowrap;gap:14px}.profile-head .avatar{width:60px!important;height:60px!important}.profile-id small{white-space:normal;overflow-wrap:anywhere}}.room-slot{position:relative}.room-slot.swapping{box-shadow:inset 0 0 0 3px var(--gold);animation:1.2s ease-in-out infinite swap-glow}@keyframes swap-glow{50%{box-shadow:inset 0 0 0 3px var(--gold), 0 0 0 4px #ffc93d40}}.swap-note{text-align:left;background:#fff6db;border-radius:16px;gap:8px;margin:10px 0 4px;padding:10px 14px;display:grid;box-shadow:inset 0 0 0 2px #ffc93d99}.swap-note p{margin:0}.swap-note .link{justify-self:start}.swap-note.ask{background:var(--pink-soft);box-shadow:inset 0 0 0 2px var(--pink)}.swap-note .row .btn{flex:1;justify-content:center}@media (prefers-reduced-motion:reduce){.room-slot.swapping{animation:none}}html.pad-nav :focus{outline:3px solid var(--ink);outline-offset:3px}html.pad-nav .toggle-row input:focus+.switch{outline:3px solid var(--ink);outline-offset:2px}.howto-vi{width:fit-content;color:var(--pink-deep);margin:14px auto 0;font-size:15px;font-weight:600;display:block}.bell-btn{position:relative}.bell-icon{width:26px;fill:var(--gold);stroke:var(--ink);stroke-width:1.6px;stroke-linejoin:round}.bell-icon .clapper{fill:none;stroke-linecap:round}.bell-btn.ringing .bell-icon{transform-origin:50% 12%;animation:4s ease-in-out infinite bell-ring}@keyframes bell-ring{0%,82%,to{transform:rotate(0)}85%{transform:rotate(14deg)}88%{transform:rotate(-12deg)}91%{transform:rotate(8deg)}94%{transform:rotate(-5deg)}}.bell-badge{color:#fff;text-align:center;min-width:20px;height:20px;box-shadow:0 0 0 2px var(--cream);background:#e53958;border-radius:999px;padding:0 5px;font-size:12px;font-weight:700;line-height:20px;position:absolute;top:-3px;right:-3px}.online-screen>.top-actions{z-index:3;pointer-events:auto}.online-screen.has-bell>.online-right{max-height:calc(100% - 74px);margin-top:58px}.picker-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.picker-bell{display:none}.picker-head .bell-btn{flex:none;width:42px;height:42px}@media (max-width:720px),(orientation:landscape) and (max-height:500px){.picker-bell{display:contents}.online-screen>.top-actions{display:none}}@media (orientation:landscape) and (max-height:500px){.online-screen.has-bell>.online-right{max-height:calc(100% - 4px);margin-top:0}}@media (max-width:720px){.online-screen.has-bell>.online-right{max-height:none;margin-top:0}}.friends-sheet-wrap{z-index:32;background:#f6ede899}.panel.friends-sheet{background:#fffaf6fa;width:min(640px,100%)}.friends-sheet h3{align-items:baseline;gap:10px;margin:18px 0 8px;display:flex}.friends-sheet h3 small{color:var(--mint);letter-spacing:0;text-transform:none;font-size:14px;font-weight:600}.friends-sheet .notes,.friends-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.friends-sheet .note,.friend{box-shadow:inset 0 0 0 2px var(--line);background:#fff;border-radius:18px;align-items:center;gap:12px;padding:10px 12px;display:flex}.friends-sheet .note.invite{background:linear-gradient(140deg,#fff0f5,#fff8f1);box-shadow:inset 0 0 0 2px #ff6f9a59}.friends-sheet .note.accepted{background:#effaf4}.note-text,.friend-who{flex:1;min-width:0}.friend-who{display:grid}.friend-who b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.friend-who small{color:var(--ink-soft);align-items:center;gap:6px;font-size:14px;display:flex}.friend-who small.ok{color:#23825d}.friend-who small.bad{color:#c2384f}.friend .dot{background:#c9bfc7;border-radius:50%;width:9px;height:9px}.friend.is-online .dot,.friend.is-room .dot{background:var(--mint)}.friend.is-match .dot{background:var(--gold)}.friend.is-offline{opacity:.75}.friend-acts{flex:none;align-items:center;gap:8px;display:flex}.friend-acts .btn{min-height:40px;padding:0 16px;font-size:15px}.friend-remove{color:var(--ink-soft);font-size:14px}.friends-empty{margin-top:14px}.room-head-btns{flex-wrap:wrap;gap:8px;display:flex}.add-friend{gap:4px;display:grid}.profile-id .add-friend{justify-items:start;margin-top:8px}.profile-id .add-friend .btn{min-height:40px;padding:0 18px;font-size:15px}@media (max-width:560px){.friends-sheet .note,.friend{flex-wrap:wrap}.friend-acts{justify-content:flex-end;width:100%}}@media (prefers-reduced-motion:reduce){.bell-btn.ringing .bell-icon{animation:none}}.room-slot.open .room-empty:has(.spinner){align-items:center;gap:8px;display:inline-flex}
