.visual-rule{height:54px;display:flex;align-items:center;justify-content:center;margin:14px 0 18px;border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);border-radius:10px;color:var(--accent);font-size:20px;font-weight:900;letter-spacing:2px}.visual-rule b{font-size:10px;margin:0 10px}.game-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.game-actions button{border-radius:9px;padding:13px 8px;font-weight:900;font-size:10px;letter-spacing:.4px}.game-actions [data-match]{grid-column:1/-1;background:var(--accent);color:#18131d;display:flex;justify-content:space-between}.game-actions .friend,.game-actions .practice{background:#292332;color:white;border:1px solid var(--line)}
.visual-arena{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;gap:14px;max-width:760px;margin:22px auto}.fighter{position:relative;min-height:205px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ffffff1a;border-radius:24px;background:radial-gradient(circle at 50% 25%,#ffffff13,transparent 55%),#0d0c1188;box-shadow:inset 0 0 30px #0006}.fighter.me{border-color:#d2ff5a66}.fighter .avatar{font-size:76px;filter:drop-shadow(0 10px 12px #0009);animation:floaty 2.4s ease-in-out infinite}.fighter b{font-size:14px;margin-top:8px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fighter em{position:absolute;top:10px;right:10px;background:var(--purple);color:#1a1023;border-radius:99px;padding:5px 8px;font-size:9px;font-style:normal;font-weight:950}.fighter span{font-size:9px;color:var(--muted);letter-spacing:1px;margin-top:8px}.score-dots{display:flex;gap:5px;margin-top:10px}.score-dots i{width:12px;height:12px;border-radius:50%;border:1px solid #696171;background:#1a171e}.score-dots i.won{background:var(--lime);border-color:var(--lime);box-shadow:0 0 10px #d2ff5a}.versus{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;align-content:center;background:linear-gradient(145deg,var(--pink),var(--purple));color:#1a1020;transform:rotate(-5deg);box-shadow:0 8px 0 #120d18}.versus b{font-size:24px;line-height:1}.versus span{font-size:8px;font-weight:950}.play-prompt{text-align:center;margin:8px 0 2px}.play-prompt b{font-size:20px;color:white}.play-prompt span{display:block;font-size:12px;margin-top:4px}.choices{max-width:760px;margin:12px auto 20px}.choice{min-height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px}.choice>span{font-size:58px;filter:drop-shadow(0 8px 8px #0008);transition:transform .15s}.choice small{font-size:10px;font-weight:950;letter-spacing:1.2px}.choice:hover:not(:disabled)>span{transform:scale(1.15) rotate(-5deg)}.choice.chosen{background:#39481f;box-shadow:0 0 25px #d2ff5a33}.waiting-visual{display:flex;flex-direction:column;align-items:center;gap:7px;margin:22px}.waiting-visual .pulse-ring{font-size:44px;animation:pulse 1.3s infinite}.waiting-visual small{color:var(--muted);font-size:9px;letter-spacing:1.5px}.round-reveal{margin:18px auto;max-width:620px;text-align:center}.round-reveal>div{display:flex;justify-content:center;gap:18px}.reveal-card,.reveal-move{min-width:112px;min-height:112px;display:grid;place-items:center;align-content:center;background:#f5efff;color:#17121c;border:5px solid white;border-radius:14px;box-shadow:0 10px 20px #0007;transform:rotate(-3deg)}.reveal-card:nth-child(2),.reveal-move:nth-child(2){transform:rotate(3deg)}.reveal-card span{font-size:38px;font-family:Georgia,serif}.reveal-move span{font-size:52px}.reveal-card small,.reveal-move small{font-size:9px;font-weight:900;margin-top:5px;max-width:95px;overflow:hidden;text-overflow:ellipsis}.round-reveal>b{display:block;margin-top:14px;font-size:12px;color:var(--muted)}.result{display:flex;flex-direction:column;align-items:center;text-align:center}.result>span{font-size:68px;animation:winpop .55s cubic-bezier(.2,1.7,.5,1)}.result>b{font-size:30px}.result>small{font-size:12px;margin-top:7px}.empty-fighter{opacity:.5}
@keyframes floaty{50%{transform:translateY(-7px) rotate(2deg)}}@keyframes pulse{50%{transform:scale(1.18);filter:drop-shadow(0 0 10px var(--lime))}}@keyframes winpop{from{transform:scale(.2) rotate(-20deg)}to{transform:scale(1) rotate(0)}}
@media(max-width:640px){.game{padding:16px}.game-art{height:100px;font-size:70px}.visual-rule{height:45px;margin:10px 0 14px}.in-game #room{padding-top:66px;padding-bottom:126px}.in-game .room-head{display:none}.in-game .visual-arena{grid-template-columns:1fr 50px 1fr;gap:6px;margin:6px 0 10px}.in-game .fighter{min-height:174px;border-radius:18px}.in-game .fighter .avatar{font-size:60px}.in-game .versus{width:48px;height:48px}.in-game .versus b{font-size:18px}.in-game .score-dots{gap:3px}.in-game .score-dots i{width:9px;height:9px}.in-game .play-prompt{margin:4px 0}.in-game .play-prompt b{font-size:18px}.in-game .choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));padding:9px 10px calc(9px + env(safe-area-inset-bottom));gap:7px}.in-game .choice{min-height:88px;padding:7px 3px}.in-game .choice>span{font-size:38px}.in-game .choice small{font-size:8px}.in-game .round-reveal{margin:10px 0}.in-game .reveal-card,.in-game .reveal-move{min-width:90px;min-height:90px}.in-game .reveal-move span{font-size:42px}.in-game .result>span{font-size:58px}.in-game .result>b{font-size:24px}.in-game .room-actions{justify-content:center}.in-game .proof{margin-top:22px}}
@media(prefers-reduced-motion:reduce){.fighter .avatar,.waiting-visual .pulse-ring,.result>span{animation:none}}

/* Illustrated native-game worlds */
.game-room{position:relative;isolation:isolate;overflow:hidden;background-position:center;background-size:cover!important;min-height:650px}.game-room.rps{background-image:linear-gradient(#09070d44,#09070da8),url('/assets/arcade/rps-arena.webp')!important}.game-room.highcard{background-image:linear-gradient(#09070d33,#09070d99),url('/assets/arcade/highcard-arena.webp')!important}.game-room.oddseven{background-image:linear-gradient(#09070d22,#09070d99),url('/assets/arcade/oddseven-arena.webp')!important}.game-room:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#09070daa 0,transparent 24%,transparent 68%,#09070dea 100%)}.game-room .room-head{position:relative;z-index:2;padding:10px 14px;border-radius:14px;background:#09070db5;backdrop-filter:blur(10px)}.game-room .visual-arena{height:350px;max-width:none;align-items:start;padding-top:12px}.game-room .fighter{min-height:74px;max-width:210px;padding:10px 15px;justify-self:start;align-items:flex-start;background:#09070dcc;border:2px solid #ffffff24;border-radius:14px;box-shadow:0 7px 20px #0009;backdrop-filter:blur(8px)}.game-room .fighter:last-child{justify-self:end;align-items:flex-end}.game-room .fighter .avatar{display:none}.game-room .fighter b{margin:0}.game-room .fighter span{margin-top:4px}.game-room .fighter em{top:-9px;right:-8px}.game-room .versus{align-self:start;margin-top:4px}.game-room .play-prompt{width:max-content;min-width:150px;margin:-84px auto 8px;padding:10px 18px;border:1px solid #ffffff26;border-radius:99px;background:#09070ddd;backdrop-filter:blur(8px)}.game-room .choices{position:relative;z-index:3}.game-room .choice{background:linear-gradient(145deg,#231b30ee,#100d16ee);box-shadow:0 10px 0 #08060b,0 15px 30px #0008;border:2px solid #ffffff2b}.game-room .choice:active:not(:disabled){transform:translateY(7px);box-shadow:0 3px 0 #08060b}.game-room .round-reveal{position:absolute;z-index:4;left:50%;top:48%;transform:translate(-50%,-50%);width:min(92%,620px);padding:18px;border-radius:22px;background:#08060bd9;box-shadow:0 0 70px #000;backdrop-filter:blur(10px);animation:reveal-in .35s cubic-bezier(.2,1.5,.5,1)}.game-room .result{position:absolute;z-index:5;left:50%;top:48%;transform:translate(-50%,-50%);min-width:min(90%,430px);padding:25px;border:2px solid var(--lime);border-radius:24px;background:#0a0710ed;box-shadow:0 0 80px #d2ff5a50}.game-room .room-actions,.game-room .proof{position:relative;z-index:6}.game.rps .game-art{background-image:linear-gradient(#120d1733,#120d17aa),url('/assets/arcade/rps-arena.webp')}.game.highcard .game-art{background-image:linear-gradient(#120d1733,#120d17aa),url('/assets/arcade/highcard-arena.webp')}.game.oddseven .game-art{background-image:linear-gradient(#120d1733,#120d17aa),url('/assets/arcade/oddseven-arena.webp')}.game .game-art{background-size:cover;background-position:center;border-radius:12px;text-shadow:0 5px 15px #000;overflow:hidden}.game .game-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#0002,transparent)}@keyframes reveal-in{from{opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(-3deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* Compact mobile app bar */
@media(max-width:640px){.ms-arcade header:not(.ms-topbar){height:62px!important;padding:0 12px!important;display:grid!important;grid-template-columns:auto 1fr 14px;gap:10px!important;background:#071008;border-bottom:1px solid #29432c}.ms-arcade header:not(.ms-topbar) .brand{font-size:15px!important;gap:5px!important;white-space:nowrap}.ms-arcade header:not(.ms-topbar) .brand span{margin-left:-4px}.ms-arcade .brand .ms-mark{width:23px!important;height:23px!important}.ms-arcade header:not(.ms-topbar) nav{min-width:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2px!important;align-items:center}.ms-arcade header:not(.ms-topbar) nav a{display:flex;min-width:0;min-height:42px;align-items:center;justify-content:center;text-align:center;border-radius:8px;font-size:10px;line-height:1.05;font-weight:800;padding:4px 2px}.ms-arcade header:not(.ms-topbar) nav a.selected{flex-direction:column;background:#b6ff4312;color:white}.ms-arcade header:not(.ms-topbar) nav sup{font-size:6px;padding:2px 3px;margin-top:2px}.ms-arcade header:not(.ms-topbar) .account{width:9px;height:9px;min-width:9px;margin:0;border-radius:50%;font-size:0;background:var(--lime);box-shadow:0 0 10px var(--lime)}.game-room{min-height:100dvh}.in-game #room.game-room{padding:58px 10px 126px;background-position:center top!important}.in-game .game-room .visual-arena{height:calc(100dvh - 280px);min-height:330px;margin:0;padding-top:12px}.in-game .game-room .fighter{min-height:62px;padding:8px 9px}.in-game .game-room .fighter b{font-size:11px}.in-game .game-room .fighter span{display:none}.in-game .game-room .score-dots{margin-top:6px}.in-game .game-room .versus{margin-top:5px}.in-game .game-room .play-prompt{position:absolute;z-index:3;left:50%;bottom:118px;transform:translateX(-50%);margin:0}.in-game .game-room .round-reveal{top:53%;padding:13px}.in-game .game-room .result{top:50%}.in-game .game-room .proof{display:none}.in-game .game-room .room-actions{position:absolute;right:10px;top:66px}.in-game .game-room .room-actions button:not(#back):not(#rematch){display:none}.in-game .game-room .room-actions #back{display:none}}

@media(min-width:641px){.in-game{overflow:hidden}.in-game>header,.in-game>.preview,.in-game main>.hero,.in-game main>#notice,.in-game main>#identity,.in-game main>#arenas,.in-game main>.bottom-grid,.in-game main>#house-fees,.in-game main>.trust,.in-game>.feedback-open,.in-game>footer{display:none!important}.in-game main{max-width:none;padding:0;margin:0}.in-game #room{position:fixed;inset:0;z-index:1000;width:100vw;height:100dvh;min-height:0;margin:0;padding:72px 32px 24px;border:0;border-radius:0;overflow-y:auto;background-position:center!important}.in-game .mobile-gamebar{position:absolute;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;top:0;left:0;right:0;height:58px;padding:7px 18px;background:#08060bdc;border-bottom:1px solid #ffffff20;z-index:20;backdrop-filter:blur(10px)}.in-game .mobile-gamebar b{text-align:center}.in-game .mobile-gamebar span{font-size:11px;color:var(--lime)}.in-game .room-head{display:none}.in-game .game-room .visual-arena{height:calc(100dvh - 250px);min-height:390px;margin:0}.in-game .game-room .play-prompt{position:absolute;left:50%;bottom:154px;transform:translateX(-50%);margin:0}.in-game .game-room .choices{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:min(760px,80vw);margin:0}.in-game .game-room .choice{min-height:112px}.in-game .game-room .round-reveal,.in-game .game-room .result{top:48%}.in-game .game-room .proof{display:none}.in-game .game-room .room-actions{position:absolute;right:18px;top:68px}.in-game .game-room .room-actions button:not(#rematch){display:none}}
