/* SANCHINA R18: scene-wide surprise lottery. Visual/reward UI only. */
.reward-panel{background:radial-gradient(circle at 50% 22%,#fff0c0 0,transparent 62%),#fffaf0;box-shadow:0 25px 70px #1e293a77;border:2px solid #f3d9a3;padding:20px 17px 21px;max-height:calc(100dvh - 34px);scrollbar-width:thin}
.reward-step h2{margin:4px 0 6px;color:#24313d;font-size:clamp(21px,6vw,27px)}
.reward-kicker{font-size:14px;color:#c17b15;letter-spacing:.12em}
.reward-panel .reward-lotto-intro{margin:2px auto 8px;color:#9a5f35;font-weight:800;font-size:14px}
.reward-panel .reward-status{font-size:12px;padding:7px 10px;margin:4px 0 8px}
.lottery-preview{width:100%;max-width:340px;margin:0 auto;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.lottery-candidates{display:flex;gap:7px;white-space:nowrap;padding:4px 3px 6px;animation:lotto-marquee 9s linear infinite alternate;justify-content:flex-start;width:max-content;max-width:none}
.lottery-chip{display:inline-flex;align-items:center;flex-shrink:0;border:1px solid #efc66c;background:#fff8d9;color:#995321;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;box-shadow:0 2px 4px #b4862922}
@keyframes lotto-marquee{0%{transform:translateX(1%)}100%{transform:translateX(-32%)}}
.reward-panel .pack-button{padding:5px 5px 1px;cursor:pointer}
.reward-panel .pack-art{position:relative;overflow:hidden;isolation:isolate;width:min(72vw,238px);height:230px;transform:rotate(-3deg);padding:12px;border:7px solid #f1bd50;border-radius:23px;background:linear-gradient(150deg,#ffeeb1,#ffdf86 42%,#f7a773);box-shadow:0 13px 23px #ad713956,0 0 0 4px #fff5d0 inset;color:#704215;animation:rewardFloat 1.9s ease-in-out infinite;gap:0;justify-content:space-between}
@keyframes rewardFloat{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(0deg) translateY(-6px)}}
.reward-panel .pack-scene{position:absolute;inset:0;z-index:-1;opacity:.25;filter:saturate(1.3) blur(3px)}
.reward-panel .pack-scene img{width:100%;height:100%;object-fit:cover}
.reward-panel .pack-art::after{content:'✦';position:absolute;right:8px;top:47px;font-size:30px;color:#fff5bb;filter:drop-shadow(0 1px 3px #be692d)}
.reward-panel .pack-top{font-size:14px;letter-spacing:.02em;background:#fff2cc;border-radius:999px;padding:4px 13px;white-space:nowrap}
.reward-panel .pack-mystery{display:grid;place-items:center;width:104px;height:104px;border:4px solid #fffef0;background:linear-gradient(145deg,#00b96b,#00794b);color:#fff;border-radius:50%;box-shadow:0 8px 15px #157a6444,0 0 0 5px #e3bf6888;font-size:65px;line-height:1;font-weight:900;text-shadow:0 3px 4px #035f39}
.reward-panel .pack-art b{font-size:17px;color:#76481b;background:#ffebbac9;border-radius:10px;padding:3px 9px;line-height:1.2}
.reward-panel .pack-bottom{font-weight:900;font-size:11px;letter-spacing:.04em}
.reward-panel .pack-caption{margin:10px auto 5px;font-size:14px;color:#007849}
.reward-panel .pack-button.is-opening .pack-art{animation:lottoOpen .16s linear infinite;filter:brightness(1.14)}
.reward-panel .pack-button.is-opening .pack-mystery{animation:lottoMystery .23s ease-in-out infinite alternate}
@keyframes lottoOpen{0%{transform:translateX(-4px) rotate(-8deg)}50%{transform:translateX(6px) rotate(4deg)}100%{transform:translateX(-3px) rotate(-4deg)}}
@keyframes lottoMystery{to{transform:scale(1.16) rotate(10deg)}}
.reward-panel .reward-card-wrap{max-width:290px;margin:9px auto 4px;animation:lottoPop .6s cubic-bezier(.12,.88,.2,1.16) both}
@keyframes lottoPop{from{opacity:0;transform:scale(.6) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0)}}
.reward-panel .reward-card-wrap .collect-card{background:#fff;box-shadow:0 9px 25px #b9873566;border:4px solid #efbd57;border-radius:21px}
.reward-panel .reward-card-wrap .collect-art{aspect-ratio:1.52}
.collect-art img.lottery-scene-art{object-fit:cover;object-position:var(--lotto-x,50%) var(--lotto-y,50%);transform:scale(var(--lotto-zoom,1));transform-origin:var(--lotto-x,50%) var(--lotto-y,50%)}
.collect-name[lang="zh-Hans"]{font-size:clamp(16px,4.4vw,21px);line-height:1.35;word-break:break-word}
.collect-py[lang="zh-Latn-pinyin"]{font-size:13px;line-height:1.5;color:#657f76;overflow-wrap:anywhere}
.collect-jp{font-size:12px;color:#715d45;padding:0 9px;line-height:1.5}
.reward-panel .reward-pronounce-hint{font-size:12px;color:#13694c;font-weight:800;margin:7px auto 4px}
.reward-panel .speak-card{height:39px;width:39px;display:grid;place-items:center;font-size:20px;cursor:pointer;background:#d6f8e3;box-shadow:0 2px 5px #0a7a4433}
.reward-panel .speak-card:active{transform:scale(.9)}
.reward-panel #viewCatalogAfter{margin-top:11px;background:#06c755;border:0;min-height:48px;font-size:15px}
.reward-panel #keepPlaying{margin-top:9px}
@media(max-height:710px){.reward-panel .pack-art{height:187px;width:196px}.reward-panel .pack-mystery{width:78px;height:78px;font-size:48px}.reward-panel .reward-card-wrap{max-width:233px}}
@media(prefers-reduced-motion:reduce){.reward-panel .pack-art,.reward-panel .pack-button.is-opening .pack-art,.reward-panel .pack-mystery,.lottery-candidates,.reward-panel .reward-card-wrap{animation:none!important}}

/* R19: reproduce the actual GAME QUIZ light-green speaker SVG and pulse. */
.speak-card.sanchina-speaker{
 appearance:none;position:relative;flex:0 0 39px;display:grid;place-items:center;
 width:39px;height:39px;min-width:39px;padding:0;border:0;border-radius:50%;
 background:#eaf8f0;color:#078b52;box-shadow:0 2px 6px rgba(6,108,63,.12);
 font-size:initial;line-height:1;cursor:pointer;touch-action:manipulation;
}
.speak-card.sanchina-speaker .speakerIcon{width:25px;height:25px;display:block;fill:currentColor}
.speak-card.sanchina-speaker:active{transform:scale(.91)}
.speak-card.sanchina-speaker.speaking{animation:r19SpeakerPulse .46s ease-in-out infinite;
 box-shadow:0 0 0 5px rgba(25,183,101,.13),0 0 20px rgba(25,183,101,.58)}
.speak-card.sanchina-speaker.speaking .speakerIcon{animation:r19SpeakerTalk .23s ease-in-out infinite alternate}
@keyframes r19SpeakerPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.08);filter:brightness(1.08)}}
@keyframes r19SpeakerTalk{from{transform:scale(.92)}to{transform:scale(1.12)}}
/* R19: two slim right-aligned choices (no oversized pill). */
.reward-panel .reward-actions{display:flex;flex-direction:column;align-items:flex-end;gap:9px;margin:12px 0 0}
.reward-panel #viewCatalogAfter,.reward-panel #keepPlaying{
 box-sizing:border-box;display:flex;align-items:center;justify-content:center;
 width:min(100%,312px);min-height:44px;padding:10px 12px;margin:0;
 border-radius:12px;font-size:clamp(12px,3.7vw,14px);font-weight:900;
 line-height:1.3;letter-spacing:-.025em;white-space:nowrap;
}
.reward-panel #viewCatalogAfter{background:#06c755;color:white;border:1.5px solid #06c755;box-shadow:0 3px 0 #028e45}
.reward-panel #keepPlaying{background:#fff;color:#007c49;border:1.5px solid #06c755;box-shadow:none}
.reward-panel .reward-pronounce-hint{font-size:12px;margin:8px auto 5px}
.reward-panel .lottery-candidates{animation:lotto-marquee-r19 16s linear infinite;will-change:transform;}
@keyframes lotto-marquee-r19{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:360px){.reward-panel #viewCatalogAfter,.reward-panel #keepPlaying{font-size:12px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.speak-card.sanchina-speaker.speaking,.speak-card.sanchina-speaker.speaking .speakerIcon,.reward-panel .lottery-candidates{animation:none!important}}
