*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;max-width:100%}html,body,#root{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#03040a;width:100%;min-height:100%;margin:0;font-family:Arial,sans-serif;overflow:hidden auto}button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-family:inherit}img,svg,canvas{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.app-scroll{scrollbar-width:none;-ms-overflow-style:none}.app-scroll::-webkit-scrollbar{display:none}.game-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}@media (width<=380px){.game-top{grid-template-columns:repeat(2,minmax(0,1fr))}}.turn-animate{animation:.7s turnPulse}@keyframes turnPulse{0%{text-shadow:0 0 6px #d340ff55;transform:scale(1)}40%{text-shadow:0 0 20px #d340ff;transform:scale(1.22)}to{text-shadow:0 0 6px #d340ff55;transform:scale(1)}}.voice-status{animation:1s ease-in-out infinite voicePulse}.piece{transition:transform .2s,box-shadow .2s}.selected-piece{animation:1s ease-in-out infinite selectedPulse}.move-dot{animation:1s ease-in-out infinite dotPulse}.dice-row{justify-content:center;gap:8px;margin:14px 0 10px;display:flex}.dice-face{color:#fff;background:linear-gradient(135deg,#120022,#281056);border:1px solid #00d9ff;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:34px;line-height:1;display:flex;box-shadow:0 0 18px #00d9ff66,inset 0 0 12px #ffffff18}.enemy-dice{border-color:#b3f;box-shadow:0 0 18px #b3f6,inset 0 0 12px #ffffff18}.dice-rolling .dice-face{animation:.45s ease-in-out infinite diceRoll}.reaction-layer{pointer-events:none;z-index:35;position:absolute;inset:0;overflow:hidden}.game-reaction{text-shadow:0 0 12px #fff,0 0 22px #9d4edd;filter:drop-shadow(0 0 18px #8a2cff);will-change:transform, opacity, filter;background:radial-gradient(circle,#9d4edd57,#00f5d414 58%,#0000 72%);border-radius:50%;place-items:center;width:78px;height:78px;font-size:54px;line-height:1;animation:2.2s ease-out forwards reactionFloat;display:grid;position:absolute;bottom:34%;transform:translate(-50%)}.game-reaction:before,.game-reaction:after{content:attr(data-emoji);opacity:0;pointer-events:none;position:absolute;inset:0}.reaction-burst{filter:drop-shadow(0 0 18px #ff9e00)drop-shadow(0 0 26px #9d4edd);animation:2.2s cubic-bezier(.18,.9,.22,1) forwards reactionBurst}.reaction-burst:before{animation:1.9s ease-out forwards reactionParticleLeft}.reaction-burst:after{animation:1.9s ease-out forwards reactionParticleRight}.reaction-heart{filter:drop-shadow(0 0 18px #ff38ff)drop-shadow(0 0 22px #9d4edd);animation:2.2s ease-out forwards reactionHeart}.reaction-heart:before{animation:1.9s ease-out forwards reactionHeartLeft}.reaction-heart:after{animation:1.9s ease-out forwards reactionHeartRight}.reaction-bounce{filter:drop-shadow(0 0 16px #00f5d4)drop-shadow(0 0 18px #9d4edd);animation:2.1s ease-out forwards reactionBounce}.reaction-trophy{filter:drop-shadow(0 0 20px #ff9e00)drop-shadow(0 0 24px #00f5d4);animation:2.2s ease-out forwards reactionTrophy}.reaction-shock{filter:drop-shadow(0 0 18px #00b4d8)drop-shadow(0 0 22px #fff8);animation:2s ease-out forwards reactionShock}.reaction-fire{filter:drop-shadow(0 0 20px #ff3d8b)drop-shadow(0 0 24px #ff9e00);animation:2.2s ease-out forwards reactionFire}@keyframes selectedPulse{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes dotPulse{0%{opacity:.6;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}to{opacity:.6;transform:scale(.8)}}@keyframes reactionFloat{0%{opacity:0;transform:translate(-50%,18px)scale(.55)rotate(-8deg)}18%{opacity:1;transform:translate(-50%)scale(1.18)rotate(4deg)}70%{opacity:1;transform:translate(-50%,-78px)scale(1)rotate(-3deg)}to{opacity:0;transform:translate(-50%,-116px)scale(.82)rotate(8deg)}}@keyframes reactionBurst{0%{opacity:0;transform:translate(-50%,18px)scale(.45)rotate(-18deg)}22%{opacity:1;transform:translate(-50%,-12px)scale(1.42)rotate(8deg)}58%{opacity:1;transform:translate(-50%,-70px)scale(1.08)rotate(-4deg)}to{opacity:0;transform:translate(-50%,-126px)scale(.74)rotate(18deg)}}@keyframes reactionParticleLeft{18%{opacity:.9;transform:translate(-16px,-8px)scale(.72)rotate(-22deg)}to{opacity:0;transform:translate(-68px,-92px)scale(.34)rotate(-55deg)}}@keyframes reactionParticleRight{18%{opacity:.9;transform:translate(16px,-8px)scale(.72)rotate(22deg)}to{opacity:0;transform:translate(68px,-92px)scale(.34)rotate(55deg)}}@keyframes reactionHeart{0%{opacity:0;transform:translate(-50%,16px)scale(.45)}20%{opacity:1;transform:translate(-50%,-10px)scale(1.36)}45%{transform:translate(-50%,-44px)scale(.98)}68%{opacity:1;transform:translate(-50%,-80px)scale(1.16)}to{opacity:0;transform:translate(-50%,-122px)scale(.72)}}@keyframes reactionHeartLeft{20%{opacity:.72;transform:translate(-20px,-10px)scale(.55)}to{opacity:0;transform:translate(-48px,-104px)scale(.28)}}@keyframes reactionHeartRight{20%{opacity:.72;transform:translate(20px,-10px)scale(.55)}to{opacity:0;transform:translate(48px,-104px)scale(.28)}}@keyframes reactionBounce{0%{opacity:0;transform:translate(-50%,22px)scale(.5)rotate(-10deg)}20%{opacity:1;transform:translate(-50%,-26px)scale(1.34)rotate(8deg)}38%{transform:translate(-50%)scale(1.02)rotate(-4deg)}62%{opacity:1;transform:translate(-50%,-58px)scale(1.14)rotate(5deg)}to{opacity:0;transform:translate(-50%,-116px)scale(.72)rotate(-10deg)}}@keyframes reactionTrophy{0%{opacity:0;filter:brightness();transform:translate(-50%,12px)scale(.4)}24%{opacity:1;filter:brightness(1.35);transform:translate(-50%,-10px)scale(1.5)}48%{transform:translate(-50%,-54px)scale(1.05)}to{opacity:0;filter:brightness();transform:translate(-50%,-124px)scale(.78)}}@keyframes reactionShock{0%{opacity:0;transform:translate(-50%,10px)scale(.45)rotate(0)}18%{opacity:1;transform:translate(-50%,-10px)scale(1.32)rotate(-8deg)}32%{transform:translate(-50%,-28px)scale(1.1)rotate(8deg)}46%{transform:translate(-50%,-48px)scale(1.2)rotate(-6deg)}to{opacity:0;transform:translate(-50%,-118px)scale(.72)rotate(10deg)}}@keyframes reactionFire{0%{opacity:0;transform:translate(-50%,18px)scale(.48)skew(-6deg)}22%{opacity:1;transform:translate(-50%,-16px)scale(1.42)skew(5deg)}58%{opacity:1;transform:translate(-50%,-82px)scale(1.06)skew(-4deg)}to{opacity:0;transform:translate(-50%,-136px)scale(.72)skew(6deg)}}@keyframes diceRoll{0%{transform:rotate(0)scale(1)}50%{transform:rotate(18deg)scale(1.12)}to{transform:rotate(-18deg)scale(1)}}.match-intro-card{animation:2.6s forwards introCard}.match-intro-pieces{justify-content:center;align-items:center;gap:26px;display:flex}.intro-piece{border-radius:50%;width:72px;height:72px;animation:.7s forwards piecePop}.white-piece{background:radial-gradient(circle at 35% 30%,#fff,#bfc4ff 70%);border:1px solid #00d9ff;box-shadow:0 0 28px #00d9ff}.black-piece{background:radial-gradient(circle at 35% 30%,#4c4169,#05000c 70%);border:1px solid #b3f;box-shadow:0 0 28px #b3f}.intro-vs{color:#d340ff;font-size:44px;font-weight:900;animation:.8s forwards vsPop}@keyframes piecePop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes vsPop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes introCard{0%{opacity:0;transform:scale(.92)}15%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes voicePulse{0%{opacity:.45}50%{opacity:1;text-shadow:0 0 12px #7ee35d}to{opacity:.45}}
