.game-shell{position:relative}.platform-lobby{position:relative;color:#302151;background:#f4efff;min-height:540px;padding:26px 34px 22px;display:flex;align-items:center;justify-content:center;background-image:radial-gradient(ellipse at 5% 90%,#d7f5ee,transparent 55%),radial-gradient(ellipse at 95% 0%,#e3d5ff,transparent 60%)}.platform-lobby[hidden]{display:none}.game-shell.in-lobby .canvas-wrap{display:none}.game-shell.in-lobby .game-hud{background:#f4efff;color:#49366b;border-bottom:1px solid #ded3ef}.game-shell.in-lobby .player small,.game-shell.in-lobby .scoreboard>span{color:#9d89b8}.game-shell.in-lobby .scoreboard b{font-size:17px;color:#8b68b9;letter-spacing:1px}.game-shell.in-lobby .game-controls{background:#e7dff5;color:#806b9b}.game-shell.in-lobby .game-controls button{background:#d7cbea;color:#71538f}.game-controls button:disabled{opacity:.35;cursor:default}.lobby-inner{width:100%;max-width:580px;text-align:center}.platform-wordmark{font:800 18px 'Outfit',sans-serif;color:#7851c5;letter-spacing:-.6px}.platform-wordmark span{color:#f28c70;margin-left:3px}.lobby-kicker{font-size:9px;color:#a48dbb;font-weight:800;letter-spacing:1.8px;display:block;margin-top:5px}.lobby-inner h2{font:800 36px/1.08 'Outfit',sans-serif;letter-spacing:-1px;margin:17px 0 9px}.lobby-sub{color:#8a769f;font-size:13px;line-height:1.5;margin:0 0 22px}.duel-faces{display:flex;align-items:center;justify-content:center;gap:26px;margin:19px 0 25px}.lobby-face{width:70px;height:70px;display:grid;place-items:center;border-radius:22px;font:800 35px 'Outfit',sans-serif;color:#244657;background:#56d5ed;box-shadow:0 5px 0 #23aac230;border:3px solid #fff}.lobby-face.rival-face{background:#ff9b99;color:#813e5a;box-shadow:0 5px 0 #dc697a30}.lobby-face.unknown{background:#e6dcf6;color:#aa8cca;border:2px dashed #c3addc;box-shadow:none}.face-block small{display:block;font-weight:700;font-size:10px;margin-top:10px;color:#87729e}.duel-faces>b{font:800 16px 'Outfit',sans-serif;color:#b49acb;margin-bottom:23px}.lobby-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lobby-choice{border:0;border-radius:17px;background:#7146d5;color:#fff;box-shadow:0 4px 0 #51329b;padding:18px 16px;text-align:left;display:flex;gap:12px;align-items:center;min-height:83px}.lobby-choice.friend-choice{background:#ffdc75;color:#614369;box-shadow:0 4px 0 #ddba5e}.choice-icon{font:800 26px 'Outfit',sans-serif;width:30px;text-align:center;flex-shrink:0}.lobby-choice b{display:block;font:700 18px 'Outfit',sans-serif}.lobby-choice small{font-size:10px;opacity:.75;display:block;margin-top:4px}.practice-link,.lobby-back{border:0;background:transparent;color:#8a70a8;font-weight:700;font-size:12px;padding:13px}.practice-link{margin-top:9px}.lobby-note{font-size:9px;line-height:1.5;color:#a58fba;margin:6px 0 0}.lobby-primary,.lobby-secondary{border:0;border-radius:13px;padding:13px 22px;font-weight:800;font-size:13px;background:#7146d5;color:#fff;box-shadow:0 3px 0 #54339c}.lobby-secondary{background:#e5daf4;color:#79569f;box-shadow:none}.lobby-buttons{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}.search-status{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#9376ad}.search-status i{width:7px;height:7px;border-radius:50%;background:#9d72d4;animation:pulse 1.4s infinite}.search-status i:nth-child(2){animation-delay:.2s}.search-status i:nth-child(3){animation-delay:.4s}.room-box{border:1px solid #d7c7eb;border-radius:16px;background:#fff9;padding:17px 20px;text-align:left;margin:18px auto;max-width:420px}.room-box label,.room-box>span{font-size:9px;font-weight:800;letter-spacing:1.5px;color:#a185b7}.room-code-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:7px}.room-code-row strong{font:800 29px 'Outfit',sans-serif;letter-spacing:5px}.room-code-row button{background:#eee6f9;color:#8159ac;border:0;border-radius:9px;padding:9px 12px;font-weight:700;font-size:11px}.room-box input{display:block;width:100%;margin:9px 0 0;background:#f6f0ff;border:1px solid #d3bfe8;border-radius:10px;padding:12px;font:700 19px 'Outfit',sans-serif;color:#614277;text-transform:uppercase;letter-spacing:4px}.room-status{font-size:11px;color:#9477a9;line-height:1.5;min-height:17px}.ready-chip{display:inline-block;border-radius:20px;background:#d2f4df;color:#458262;font-weight:800;font-size:9px;padding:5px 11px;margin-top:8px}.room-tabs{display:flex;gap:4px;background:#e9dff5;padding:4px;border-radius:12px;margin:20px auto 15px;max-width:340px}.room-tabs button{border:0;border-radius:9px;background:transparent;color:#9677ad;padding:10px 15px;flex:1;font-size:12px;font-weight:700}.room-tabs button[aria-selected=true]{background:#fff;color:#704395;box-shadow:0 2px 3px #4d296415}.countdown{font:900 100px 'Outfit',sans-serif;color:#7851c5;margin:32px 0}.result button[data-platform-menu]{display:block;background:transparent;color:#fff;box-shadow:none;font-size:12px;margin:12px auto 0;padding:8px}.game-shell.in-lobby .player-face{opacity:.8}@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}@media(max-width:1100px){.platform-lobby{padding:23px;min-height:480px}.lobby-choice{padding:15px 12px;gap:7px}.lobby-choice b{font-size:16px}}@media(max-width:620px){.platform-lobby{padding:22px 16px;min-height:440px}.lobby-inner h2{font-size:28px;margin-top:15px}.lobby-sub{font-size:11px;margin-bottom:17px}.duel-faces{gap:23px;margin:17px 0 24px}.lobby-face{width:58px;height:58px;border-radius:18px;font-size:29px}.lobby-actions{gap:10px;grid-template-columns:1fr}.lobby-choice{min-height:64px;padding:12px 16px}.lobby-choice b{font-size:17px}.lobby-choice small{font-size:10px}.lobby-choice .choice-icon{margin-right:5px}.platform-wordmark{font-size:16px}.lobby-kicker{font-size:8px}.practice-link{font-size:11px}.lobby-note{font-size:8px}.room-code-row strong{font-size:25px}.room-box{padding:14px}.lobby-primary,.lobby-secondary{font-size:12px;padding:12px 15px}.game-shell.in-lobby .scoreboard b{font-size:12px}}@media(prefers-reduced-motion:reduce){.search-status i{animation:none}}
.game-controls .frame-actions{display:flex;align-items:center;gap:12px}.game-rating{width:112px;flex-shrink:0}.rating-votes{display:flex;justify-content:space-between;gap:10px}.game-controls .rating-votes button{width:48px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:3px 0;background:transparent;border:0;border-radius:7px;color:#2ba4ff;line-height:1}.rating-votes svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.game-controls .rating-votes button span{font:700 10px 'DM Sans',sans-serif;color:#acbdd4}.game-shell.in-lobby .rating-votes button span{color:#596b8b}.game-shell.in-lobby .rating-votes button{background:transparent;color:#159eff}.game-controls .rating-votes button[aria-pressed=true]{background:transparent;box-shadow:none}.rating-votes button[aria-pressed=true] svg{fill:currentColor;stroke-width:1.8}.rating-track{height:3px;background:#bbc8df;border-radius:4px;overflow:hidden;margin-top:3px}.rating-track span{display:block;height:100%;width:82.5%;background:#28a1ff}.game-controls{min-height:68px}.game-shell.in-lobby .game-controls{background:#fff9}@media(max-width:620px){.game-controls .frame-actions{gap:7px}.game-rating{width:91px}.game-controls .rating-votes button{width:39px;height:42px}.rating-votes{gap:6px}.rating-votes svg{width:20px;height:20px}.game-controls .rating-votes button span{font-size:9px}.game-controls p{max-width:145px}}
.lobby-friend-search{display:block;width:100%;max-width:440px;margin:0 auto 12px;border:1px solid #d9c9ed;border-radius:12px;background:#fff9;padding:12px 15px;font:12px 'DM Sans',sans-serif;color:#6a4787}.lobby-friend-list{max-width:440px;margin:0 auto;max-height:240px;overflow:auto;display:grid;gap:8px}.lobby-friend-row{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #e0d3f0;border-radius:14px;background:#fff9;padding:10px 13px;color:#654381;width:100%}.lobby-friend-row:hover{background:#fff;border-color:#ae80d8}.picker-avatar{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:13px;background:#99dce5;font-size:22px;color:#497b8e}.picker-avatar.coral{background:#ffb5ae;color:#ad6675}.picker-avatar.purple{background:#ceb3ed;color:#8460ab}.picker-identity{flex:1}.picker-identity b{font-size:13px}.picker-identity small{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:10px;color:#a289b5}.picker-identity i{width:6px;height:6px;background:#c8bdcf;border-radius:50%}.picker-identity i.online{background:#79c8a5}.picker-invite{font-size:11px;font-weight:800;color:#8b57c4}.picker-options{display:flex;justify-content:center;flex-wrap:wrap;gap:0 8px;max-width:480px;margin:8px auto 0}.picker-options .practice-link{font-size:10px;margin:0;padding:8px}.picker-empty{padding:20px;font-size:12px;color:#9e83b3}@media(max-width:620px){.lobby-friend-list{max-height:225px}.lobby-friend-row{padding:9px;gap:9px}.picker-identity small{font-size:9px}.picker-invite{font-size:10px}}
.waiting-game{display:flex;align-items:center;gap:11px;max-width:430px;margin:14px auto 20px;text-align:left;padding:9px 12px;border:1px solid #d9caed;border-radius:13px;background:#fff7}.waiting-game img{width:48px;height:35px;object-fit:cover;border-radius:8px}.waiting-game>span{flex:1;font:700 13px 'Outfit',sans-serif}.waiting-game small{display:block;font-size:8px;letter-spacing:1px;color:#aa8fbd;margin-top:3px}.waiting-game>b{font-size:10px;color:#9975b3}.waiting-seats{display:flex;align-items:center;justify-content:center;gap:16px;margin:20px 0}.waiting-seat{width:170px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 8px;background:#ffffff80;border:1px solid #d9c9ec;border-radius:20px}.waiting-seat .duel-faces{margin:0}.waiting-seat .lobby-face{width:65px;height:65px;font-size:32px;border-radius:20px}.waiting-seat>b{font-size:13px}.waiting-seat.empty{background:#e8ddf65c;border:2px dashed #cbb5e3}.waiting-seat .search-status{font-size:9px;gap:4px;flex-wrap:wrap}.waiting-seat .search-status i{width:4px;height:4px}.waiting-ready{background:#d8efe4;color:#609681;border-radius:20px;padding:5px 10px;font-size:9px;font-weight:700}.waiting-vs{color:#b199c4;font:800 14px 'Outfit',sans-serif}.waiting-code{display:flex;align-items:center;justify-content:space-between;max-width:350px;margin:auto;background:#fff8;border-radius:12px;padding:10px 15px}.waiting-code>span{font-size:8px;letter-spacing:1px;color:#a68bb9}.waiting-code strong{font:800 19px 'Outfit',sans-serif;letter-spacing:3px;display:inline-block;color:#77519a;margin-left:10px}.waiting-code button{border:0;background:#e9ddf8;border-radius:8px;padding:8px 11px;font-size:10px;color:#8055a3}.waiting-tip{font-size:10px;color:#a68abb;margin:13px 0}.waiting-seats+.room-status{font-size:10px}@media(max-width:620px){.waiting-game{margin-top:12px;margin-bottom:15px}.waiting-seats{gap:8px;margin:16px 0}.waiting-seat{width:130px;padding:14px 5px}.waiting-seat .lobby-face{width:54px;height:54px}.waiting-seat .search-status{font-size:8px}.waiting-tip{font-size:9px}.waiting-game>b{font-size:9px}.waiting-code strong{font-size:18px}.waiting-game+h2{font-size:25px}}
.friend-ready-status{font-size:12px;font-weight:700;color:#589b80;margin:0 0 16px}.friend-ready-status span{display:block;font-size:10px;font-weight:400;color:#a288b6;margin-top:7px}
#match-exit{width:min(460px,calc(100% - 28px));border:0;border-radius:22px;padding:0;background:#f6efff;color:#56377b}#match-exit::backdrop{background:#24193c80}.match-exit-body{text-align:center;padding:28px}.match-exit-body h2{font:800 27px 'Outfit',sans-serif;margin:12px 0}.match-exit-body p{font-size:12px;color:#9a80ad;line-height:1.7}.forfeit-demo{margin-top:24px;border-top:1px solid #e4d6f0;padding-top:17px}.forfeit-demo small{display:block;font-size:8px;letter-spacing:1px;color:#b09ac1}.forfeit-demo button{border:0;background:transparent;color:#9875b0;font-size:11px;padding:10px}.result-reason{font-size:13px;line-height:1.6;color:#fff0d1;max-width:320px;margin:12px auto}.result-reason:empty{display:none}
.incoming-rematch{border-top:1px solid #ffffff30;margin:20px auto 0;padding-top:18px;max-width:340px}.incoming-rematch[hidden]{display:none}.incoming-rematch>small{font-size:9px;letter-spacing:1px;color:#c6b5e8}.incoming-rematch p{font-size:15px;color:#fff5db;margin:10px 0 14px}.incoming-rematch>div{display:flex;justify-content:center;gap:10px}.result .incoming-rematch button{font-size:12px;padding:11px 16px;margin:0}.result .incoming-rematch [data-decline-rematch]{background:#ffffff20;color:#fff;box-shadow:none}

.result button[data-platform-menu][hidden]{display:none}

.rematch-clock,.incoming-rematch .rematch-clock{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0;font-size:13px;font-weight:700}.rematch-clock strong{display:inline-block;min-width:38px;padding:5px 8px;border-radius:9px;background:#d4ff83;color:#273348;font-size:16px;font-variant-numeric:tabular-nums}

.rematch-clock strong.is-urgent{background:#c92a3c;color:#fff;box-shadow:0 0 0 3px #ff64744d;animation:rematch-urgent-pulse 0.8s ease-in-out infinite}

@keyframes rematch-urgent-pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 3px #ff64744d}50%{transform:scale(1.12);box-shadow:0 0 0 7px #ff647422}}
@media(prefers-reduced-motion:reduce){.rematch-clock strong.is-urgent{animation:none}}

#countdown-sound{display:grid;place-items:center;padding:7px;cursor:pointer}#countdown-sound svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#countdown-sound .sound-off{display:none}#countdown-sound[aria-pressed="true"] .sound-on{display:none}#countdown-sound[aria-pressed="true"] .sound-off{display:block}

.rating-votes svg{transform-origin:center;transition:fill .16s ease}.rating-votes svg.vote-pop{animation:vote-pop .32s ease-out}@keyframes vote-pop{0%{transform:scale(1)}40%{transform:scale(1.24)}70%{transform:scale(.94)}100%{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.rating-votes svg{transition:none}.rating-votes svg.vote-pop{animation:none}}

.lobby-note:empty{display:none}
.lobby-back-button{min-width:104px;min-height:44px;margin-top:18px}

.duel-faces .face-block small{position:relative}
.opponent-kind{display:block;position:absolute;top:100%;left:0;right:0;margin-top:4px;font-size:9px;font-weight:500;color:#a38ab8}
.lobby-fallback-note,.lobby-friend-availability{font-size:11px;line-height:1.6;color:#9276aa;margin:16px 0 22px}
.lobby-friend-availability{margin-top:-9px}
.lobby-friends-empty{padding:16px 20px;text-align:center;color:#987eac;font-size:12px;line-height:1.6}
.lobby-friends-empty img{display:block;margin:0 auto 10px}
.lobby-friend-row .picker-avatar{background:transparent}
.lobby-friend-row .picker-avatar svg{width:46px;height:46px;display:block}
.lobby-friend-row .picker-identity{min-width:0;overflow-wrap:anywhere}
.picker-presence{font-size:10px;color:#a58db5;flex-shrink:0}
.picker-presence.online{color:#5f9c80}
.game-hud .rival>span:first-child{overflow-wrap:anywhere}
.choice-icon svg{display:block;width:26px;height:26px}
.live-invite{position:fixed;z-index:10000;right:24px;bottom:24px;max-width:350px;padding:24px;border-radius:22px;background:#fff8eb;color:#3a285c;box-shadow:0 12px 60px #32185a38}.live-invite[hidden]{display:none}.live-invite p{margin:8px 0 16px}.live-invite button{padding:12px 16px;border:0;border-radius:12px;background:#764bd6;color:white;font:700 14px inherit;margin-right:8px;cursor:pointer}.live-invite button:last-child{background:#ede2fa;color:#715198}.lobby-friend-row button{border:0;border-radius:12px;background:#7950d1;color:white;padding:10px 16px;font:700 13px inherit;cursor:pointer}.lobby-friend-row button:disabled{opacity:.5;cursor:default}.room-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.online-game #game{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:5/3;object-fit:contain}.online-game .game-canvas{overflow:visible}.live-status{position:absolute;left:50%;top:8px;transform:translateX(-50%);z-index:7;border-radius:12px;background:#fff5d8;color:#674b82;font-size:12px;padding:6px 12px;pointer-events:none}.live-status:empty{display:none}
.game-shell.online-game .canvas-wrap{aspect-ratio:5/3!important;overflow:hidden;min-height:0}.game-shell.online-game #game{position:relative!important;left:0!important;top:0!important;width:100%!important;height:auto!important;transform:none!important;max-width:100%!important}

.room-actions .lobby-secondary{min-width:140px;min-height:44px}
.room-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;margin:20px auto;color:#8966aa;font-size:13px}
.room-spinner{display:inline-block;width:20px;height:20px;flex-shrink:0;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:room-spin .8s linear infinite}
.room-code-row strong{user-select:all;color:#654381;white-space:nowrap}
.room-code-row button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:84px;min-height:44px}
.room-code-row svg{width:18px;height:18px;flex-shrink:0}
.room-join-form{max-width:420px;margin:auto}.room-join-form .room-box{margin-bottom:20px}.room-join-form .lobby-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:150px;min-height:44px}
.room-join-form input{min-width:0}.room-join-form input::placeholder{font:400 14px 'DM Sans',sans-serif;letter-spacing:0;text-transform:none}.room-join-form[aria-busy=true] input,.lobby-inner button:disabled{opacity:.55;cursor:default}
.lobby-inner:has(.room-box) .lobby-note,.lobby-inner:has(.room-loading) .lobby-note{font-size:12px;max-width:420px;margin:14px auto 0}
@keyframes room-spin{to{transform:rotate(360deg)}}
@media(max-width:380px){.room-code-row{gap:8px}.room-code-row strong{font-size:23px;letter-spacing:3px}.room-code-row button{min-width:70px;padding:8px}.room-actions .lobby-secondary{min-width:120px}}
@media(prefers-reduced-motion:reduce){.room-spinner{animation:none}}

.lobby-friend-search[hidden]{display:none}
.picker-options [data-action="manage-friends"]{min-height:44px;font-size:12px;padding:12px 18px}
.friend-list-empty .lobby-friends-empty{padding:4px 12px}
.friend-list-empty .lobby-friends-empty img{width:120px;height:90px;margin-bottom:6px}
.friend-list-empty .lobby-friends-empty p{margin:6px 0}
