/* Reward moments around the live matchroom. Local concept only. */
.matchroom-events .milestone-card{overflow:hidden;background:linear-gradient(135deg,rgba(77,87,90,.38),rgba(19,26,28,.87));border-color:rgba(230,239,246,.22)}
.matchroom-events .points-card{left:2%;bottom:12%;width:252px;padding:20px 22px;gap:15px;border-color:rgba(255,192,82,.3);background:radial-gradient(ellipse at 0 50%,rgba(224,144,26,.18),transparent 75%),linear-gradient(135deg,rgba(60,59,48,.64),rgba(20,25,26,.9))}
.matchroom-events .points-card .dribs-icon{width:47px;height:47px;flex-basis:47px;filter:drop-shadow(0 0 14px #f9a72138)}
.matchroom-events .points-value{font-size:1.35rem;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.matchroom-events .points-copy{font-size:.8125rem;color:#d0d0c8;margin-top:5px}
.matchroom-events .badge-card{width:285px;top:20%;border-color:rgba(211,173,239,.25)}
.matchroom-events .badge-content>img{width:49px;height:55px;filter:drop-shadow(0 0 13px #b04ae52b)}
.matchroom-events .badge-content .card-title{font-size:1.0625rem}
.milestone-shimmer{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.12) 48%,transparent 68%);opacity:0;transform:translateX(-120%)}
.matchroom-events .streak-card{width:286px;top:47%;left:auto;right:0}
.matchroom-events .streak-content>img{width:48px;height:50px;filter:drop-shadow(0 0 12px #ffbd3030)}
.matchroom-events .streak-steps{margin-top:20px;gap:8px}
.matchroom-events .streak-steps>span{height:6px}
.matchroom-events .streak-steps.is-complete>span:last-child{box-shadow:0 0 16px #83eb5960}
.matchroom-events .reward-card{left:0;right:auto;top:23%;width:302px;padding:22px;border-color:rgba(168,192,142,.35);background:radial-gradient(ellipse at 100% 0,rgba(104,182,67,.16),transparent 65%),radial-gradient(ellipse at 0 100%,rgba(245,128,29,.13),transparent 60%),linear-gradient(135deg,rgba(57,69,67,.6),rgba(18,25,26,.93));transition:opacity .2s,transform .35s cubic-bezier(.2,.8,.25,1),visibility 0s .2s,box-shadow .7s,border-color .7s}
.matchroom-events .reward-card.is-visible{transition-delay:0s}
.matchroom-events .reward-card:before{content:'';position:absolute;left:24px;right:24px;top:0;height:1px;opacity:.55;background:linear-gradient(90deg,#fb5600,#d5ac25,#5de30e)}
.matchroom-events .reward-card.is-unlocked{border-color:rgba(147,223,101,.42);box-shadow:inset 0 1px 0 #ffffff14,0 18px 50px #00000045,0 0 32px #77c63112}
.reward-seal{position:relative;width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;background:#9bad8610;border:1px solid #bad7a429;border-radius:16px}
.reward-seal svg,.reward-seal img{position:absolute;width:31px;height:31px;object-fit:contain;transition:opacity .3s,transform .45s cubic-bezier(.2,.8,.25,1);color:#c1d5b3}
.reward-seal .reward-verified{width:42px;height:42px;opacity:0;transform:scale(.6) rotate(-16deg);filter:drop-shadow(0 0 10px #92ed3b24)}
.is-unlocked .reward-lock{opacity:0;transform:scale(.7) translateY(-5px)}
.is-unlocked .reward-verified{opacity:1;transform:scale(1) rotate(0deg)}
.matchroom-events .reward-content{gap:14px}
.matchroom-events .reward-content .card-title{font-size:1.0625rem;line-height:1.3;letter-spacing:-.02em}
.reward-copy{font-size:.8125rem;line-height:1.5;color:#c1c9c6;margin-top:5px!important}
.reward-footer{display:flex;align-items:center;gap:8px;border-top:1px solid #ffffff14;margin-top:19px;padding-top:13px;font-size:.75rem;color:#b5c2b5}
.reward-status-dot{height:6px;width:6px;flex-shrink:0;border-radius:50%;background:#8e9888;transition:background .4s,box-shadow .4s}
.is-unlocked .reward-footer{color:#caeeaf}.is-unlocked .reward-status-dot{background:#a7ed62;box-shadow:0 0 10px #a7ed6255}
@media(prefers-reduced-motion:no-preference){
  .badge-card.is-visible .milestone-shimmer,.reward-card.is-unlocked .milestone-shimmer{animation:milestone-shine 1.1s .1s ease-out both}
  .points-card.is-visible .dribs-icon{animation:earned-coin .65s cubic-bezier(.2,.8,.25,1) both}
  .badge-card.is-visible .badge-content>img{animation:achievement-reveal .65s cubic-bezier(.2,.8,.25,1) both}
  .matchroom-scene:not(.is-running) .matchroom-events *{animation-play-state:paused!important}
}
@keyframes milestone-shine{0%{opacity:0;transform:translateX(-120%)}20%{opacity:1}100%{opacity:0;transform:translateX(120%)}}
@keyframes earned-coin{0%{transform:translateY(5px) rotate(-18deg) scale(.75)}65%{transform:translateY(-2px) rotate(6deg) scale(1.08)}100%{transform:translateY(0) rotate(0) scale(1)}}
@keyframes achievement-reveal{0%{transform:scale(.72) rotate(-10deg)}65%{transform:scale(1.1) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
@media(max-width:1100px) and (min-width:901px){.matchroom-events .badge-card,.matchroom-events .streak-card{width:253px}.matchroom-events .reward-card{width:270px;left:-2%}.matchroom-events .badge-content .card-title,.matchroom-events .reward-content .card-title{font-size:.9375rem}}
@media(max-width:560px){
  .matchroom-events .points-card{width:234px;left:0;bottom:12%;padding:16px 18px;gap:12px}
  .matchroom-events .points-card .dribs-icon{width:39px;height:39px;flex-basis:39px}
  .matchroom-events .points-value{font-size:1.1875rem}
  .matchroom-events .badge-card{width:242px;left:0;top:18%}
  .matchroom-events .badge-content>img{width:40px;height:45px}
  .matchroom-events .badge-content .card-title{font-size:.9375rem}
  .matchroom-events .streak-card{width:248px;top:46%;right:0}
  .matchroom-events .streak-content>img{width:38px;height:40px}
  .matchroom-events .reward-card{width:268px;max-width:100%;top:24%;left:0;padding:18px}
  .matchroom-events .reward-card .card-label{font-size:.6875rem;letter-spacing:.08em}
  .matchroom-events .reward-content .card-title{font-size:1rem}
  .reward-seal{width:46px;height:46px;flex-basis:46px}.reward-seal .reward-verified{width:36px;height:36px}
  .reward-copy{font-size:.75rem}.reward-footer{margin-top:15px;padding-top:11px;font-size:.6875rem}
}
@media(prefers-reduced-motion:reduce){.matchroom-events *{animation:none!important;transition:none!important}.milestone-shimmer{display:none}}

/* Faster entrances match the 1.4× live sequence without speeding up the handset float. */
@media(prefers-reduced-motion:no-preference){
  .phone-chat-line{animation-duration:.26s}
  .matchroom-events .event-card{transition-duration:.15s,.22s,0s}
  .matchroom-events .reward-card{transition-duration:.15s,.22s,0s,.5s,.5s}
}
