.reward-celebration{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:25px;padding:24px 45px;border:4px solid #b5974f;border-radius:28px;background:radial-gradient(ellipse at 25% 45%,#fff4a9,transparent 55%),linear-gradient(120deg,#fff9db,#faffea);box-shadow:0 7px #756d4355;color:#234c55}
.reward-stage{position:relative;min-width:0;min-height:0;align-self:stretch;display:grid;place-items:center;padding:14px;isolation:isolate}
.reward-halo{position:absolute;width:94%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 8deg,#f1c75233 0deg 10deg,transparent 10deg 30deg);mask-image:radial-gradient(#000 20%,transparent 72%);z-index:-1;animation:treasure-halo 25s linear infinite}.reward-halo:after{content:'';position:absolute;inset:15%;border:2px solid #daa34555;border-radius:50%;box-shadow:0 0 0 24px #fffefa66}
.reward-card-link{display:block;width:min(100%,290px);position:relative;transform:rotate(-4deg);filter:drop-shadow(9px 17px 11px #84733144);animation:treasure-arrive .85s cubic-bezier(.2,.7,.2,1) both;transition:transform .2s}
.reward-card-link:hover{transform:rotate(0) translateY(-4px)}.reward-card-link:focus-visible{outline:5px solid #2d8995;outline-offset:10px;border-radius:12px}
.reward-card-link .gakumon-card{width:100%;aspect-ratio:.68}.reward-card-link .card-name{font-size:22px}.reward-card-link .card-id{font-size:20px}.reward-card-link .gakumon-card>.sprite{filter:drop-shadow(0 5px 3px #67361833)}
.reward-tech-card{position:relative;overflow:hidden;aspect-ratio:.68;padding:10px;border:5px solid #e6d094;border-radius:19px;background:linear-gradient(145deg,#315969,#152b3b);outline:2px solid #907f4e;box-shadow:inset 0 0 0 2px #fff6,0 5px #606747;color:#fff3c9;display:flex;flex-direction:column;gap:10px}
.reward-card-top{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:900;padding:8px 5px;border-bottom:1px solid #d5d2a077}.reward-card-top b{font:900 17px Arial;color:#ffecba}
.reward-tech-image{position:relative;min-height:0;flex:1;border:2px solid var(--reward-ink);border-radius:9px;overflow:hidden;background:#f8e8b0;display:grid;place-items:center}.reward-tech-image>img{width:100%;height:100%;object-fit:contain}.reward-tech-image>span{position:absolute;bottom:8px;left:8px;display:grid;place-items:center;width:64px;height:64px;border:3px solid #fbd66e;border-radius:50%;background:#244554ee;box-shadow:0 3px 8px #0006}.reward-tech-image .hand-icon{width:56px;height:56px}
.reward-tech-card>strong{display:grid;place-items:center;min-height:62px;font-size:22px;line-height:1.3;text-align:center;padding:3px 0 8px;color:#fff5cb;letter-spacing:.03em}.reward-card-shine{position:absolute;inset:-80% -60%;background:linear-gradient(110deg,transparent 42%,#fff4 47%,#fff8 50%,transparent 54%);transform:translateX(-85%);pointer-events:none;animation:treasure-shine 1.8s .45s both}
.reward-copy{position:relative;z-index:2;max-width:480px;width:100%;justify-self:center;min-width:0}.reward-clear{font-size:17px;font-weight:800;color:#68806f;margin:0 0 12px}.reward-copy h2{font-size:clamp(30px,3.7vw,48px);line-height:1.22;color:#245761;margin:0 0 17px;text-shadow:2px 3px #fff;letter-spacing:.02em}
.reward-discovery{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:5px 18px;background:#ffe387;border:2px solid #e2b557;border-radius:12px;font-size:24px;font-weight:900;color:#9b5724;transform:rotate(-3deg);box-shadow:0 3px #c1924233;margin-bottom:17px;animation:discovery-pop .55s .45s both}.reward-discovery>span{font-size:28px}.reward-discovery>b{font:900 34px Arial}
.reward-kind{font-size:16px;color:#55776d;font-weight:800;margin:0 0 5px}.reward-copy h3{font-size:clamp(24px,2.7vw,36px);color:#244c58;line-height:1.3;margin:0 0 24px;overflow-wrap:anywhere}
.reward-actions{display:grid;gap:14px}.reward-actions .game-button{display:flex;align-items:center;justify-content:center;gap:15px;min-height:62px;padding:10px 14px;font-size:21px;line-height:1.3;touch-action:manipulation}.reward-actions .reward-primary{min-height:70px;font-size:25px}.reward-actions>div{display:grid;grid-template-columns:1fr 1fr;gap:14px}.reward-actions a:focus-visible{outline:4px solid #205b7a;outline-offset:4px}
.reward-sparks{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.reward-sparks i{position:absolute;top:-30px;left:calc(var(--spark)*7.5%);width:9px;height:18px;border-radius:3px;background:#e0b24e;opacity:0;animation:treasure-confetti 2.5s calc(var(--spark)*.06s) ease-out both}.reward-sparks i:nth-child(3n){background:#72c6b5}.reward-sparks i:nth-child(3n + 1){background:#f5ac81}.reward-sparks i:nth-child(even){width:13px;height:13px;border-radius:50%}
@keyframes treasure-arrive{0%{opacity:0;transform:translateY(45px) rotate(-12deg) scale(.72)}70%{opacity:1;transform:translateY(-6px) rotate(-2deg) scale(1.02)}100%{opacity:1;transform:rotate(-4deg)}}
@keyframes treasure-halo{to{transform:rotate(360deg)}}
@keyframes treasure-shine{to{transform:translateX(85%)}}
@keyframes discovery-pop{0%{opacity:0;transform:rotate(-8deg) scale(.4)}70%{opacity:1;transform:rotate(-2deg) scale(1.08)}100%{opacity:1;transform:rotate(-3deg)}}
@keyframes treasure-confetti{10%{opacity:.85}90%{opacity:.75}100%{opacity:0;transform:translate(35px,600px) rotate(260deg)}}
@media(min-width:900px){
 body[data-screen="reward"] .screen-subtitle{display:none}.reward-celebration{height:var(--play-height);min-height:440px;padding:20px 6%;max-width:1200px;margin:auto;box-sizing:border-box;gap:5%}
 .reward-card-link{width:min(31dvh,310px);max-width:90%}.reward-copy h2{font-size:clamp(29px,5dvh,45px);margin-bottom:15px}.reward-copy h3{font-size:clamp(25px,4.3dvh,36px);margin-bottom:20px}.reward-clear{margin-bottom:10px}
}
@media(min-width:900px) and (max-height:760px){
 .reward-celebration{padding-block:12px}.reward-card-link{width: min(42dvh,290px)}.reward-clear{font-size:15px;margin-bottom:6px}.reward-discovery{font-size:22px;min-height:41px;margin-bottom:12px;padding-block:3px}.reward-copy h2{margin-bottom:12px}.reward-copy h3{margin-bottom:17px}.reward-actions{gap:12px}.reward-actions .game-button{min-height:56px;font-size:20px}.reward-actions .reward-primary{min-height:62px;font-size:23px}
}
@media(max-width:899px){
 .reward-celebration{grid-template-columns:1fr;gap:15px;padding:18px 15px 25px;border-radius:22px}.reward-stage{min-height:325px;padding:6px}.reward-card-link{width:210px}.reward-halo{width:330px}.reward-card-link .card-name{font-size:18px}.reward-tech-card{padding:7px;gap:7px;border-width:4px;border-radius:15px}.reward-card-top{font-size:12px;padding:5px 2px}.reward-card-top b{font-size:13px}.reward-tech-card>strong{min-height:48px;font-size:18px}.reward-tech-image>span{width:50px;height:50px;bottom:6px;left:6px}.reward-tech-image .hand-icon{width:44px;height:44px}
 .reward-copy{text-align:center}.reward-copy h2{font-size:33px;margin-bottom:13px}.reward-copy h2 br{display:none}.reward-clear{font-size:15px;margin-bottom:8px}.reward-discovery{font-size:23px;min-height:43px;margin-bottom:13px}.reward-kind{font-size:15px}.reward-copy h3{font-size:28px;margin-bottom:20px}.reward-actions .game-button{min-height:58px;font-size:19px}.reward-actions .reward-primary{min-height:64px;font-size:23px}.reward-actions>div{gap:10px}
}
@media(prefers-reduced-motion:reduce){.reward-celebration *{animation:none!important;transition:none!important}.reward-sparks,.reward-card-shine{display:none}}

/* A rare discovery opens in a gold-lit night sky; the card stays readable after the reveal. */
.rare-reward{border-color:#efca68;color:#fff7d5;background:radial-gradient(ellipse at 25% 50%,#594d87 0,transparent 53%),linear-gradient(125deg,#162945,#302754 65%,#182d4d);box-shadow:0 6px #8e6529,0 0 30px #e4bf6555,inset 0 0 0 3px #f8dd8c33}
.rare-aurora{position:absolute;inset:-60%;z-index:-1;pointer-events:none;background:conic-gradient(from 35deg,transparent,#ba76ef33,transparent,#5fbede33,transparent,#eac96a33,transparent);filter:blur(30px);animation:treasure-halo 28s linear infinite}
.rare-reward .reward-halo{width:135%;background:repeating-conic-gradient(from 8deg,#ffe59c66 0deg 4deg,transparent 5deg 18deg);mask-image:radial-gradient(#000 12%,transparent 68%);animation:treasure-halo 34s linear infinite}
.rare-reward .reward-halo:after{border:2px solid #ffe4a866;inset:19%;box-shadow:0 0 0 14px #b7ecff11,0 0 0 18px #ffe4a833,0 0 40px #ffe4a844}
.rare-reward .reward-card-link{animation:rare-card-reveal 1.4s cubic-bezier(.17,.75,.27,1) both;filter:drop-shadow(0 0 18px #ffd27499) drop-shadow(10px 16px 7px #05072066)}
.rare-reward .gakumon-card,.rare-reward .reward-tech-card{outline:3px solid #ffe399;outline-offset:3px;box-shadow:0 0 0 7px #9b803555,0 0 26px #ecc86855;overflow:hidden}
.rare-card-glint{position:absolute;inset:0;overflow:hidden;border-radius:16px;pointer-events:none}.rare-card-glint:after{content:'';position:absolute;inset:-50%;background:linear-gradient(115deg,transparent 39%,#fff1 44%,#fff9 48%,#fff3 52%,transparent 57%);animation:rare-glint 2s .65s both}
.rare-burst{position:absolute;inset:0;display:grid;place-items:center;z-index:-1;pointer-events:none}.rare-burst:before,.rare-burst:after{content:'';position:absolute;width:240px;aspect-ratio:1;border:4px solid #ffe7a8;border-radius:50%;box-shadow:0 0 28px #ffe39c88,inset 0 0 28px #ffe39c66;animation:rare-ring-burst 1.5s .55s both}.rare-burst:after{animation-delay:.8s;border-color:#a9e9ff;border-width:2px}
.rare-star-ring{position:absolute;inset:0;pointer-events:none;z-index:2}.rare-star-ring i{position:absolute;left:10%;top:15%;font-style:normal;font-size:36px;color:#ffe5a2;text-shadow:0 0 16px #ffc94d;animation:rare-star 2.8s 1s ease-in-out infinite alternate}.rare-star-ring i:nth-child(2){left:83%;top:24%;font-size:25px;animation-delay:1.2s}.rare-star-ring i:nth-child(3){left:80%;top:72%;animation-delay:1.6s}.rare-star-ring i:nth-child(4){left:8%;top:76%;font-size:26px;animation-delay:1.8s}.rare-star-ring i:nth-child(5){left:52%;top:3%;font-size:23px;animation-delay:1.4s}.rare-star-ring i:nth-child(6){left:42%;top:91%;font-size:25px;animation-delay:2s}
.rare-reward .reward-copy{animation:rare-copy-reveal .7s .7s both}.rare-reward .reward-clear{color:#c7dbe5}.rare-banner{display:inline-flex;align-items:center;gap:10px;padding:7px 15px;margin-bottom:13px;border:1px solid #ffe1a3;border-radius:50px;background:#ecbf551c;color:#ffe3a1;font-size:18px;font-weight:900;letter-spacing:.05em}.rare-banner>span{color:#fff2b6}
.rare-reward .reward-copy h2{color:#fff1b0;text-shadow:0 3px #785326,0 0 20px #ffd77233;font-size:clamp(32px,4.2vw,54px);line-height:1.2}.rare-reward .reward-copy h2>span{color:#ffdb73}.rare-reward .reward-copy h3{color:#fffbea;text-shadow:0 2px #0005}.rare-reward .reward-kind{color:#c9dcef}.rare-reward .reward-discovery{background:linear-gradient(110deg,#fff8c2,#f8c75c);color:#734216;border-color:#ffe7a8;box-shadow:0 0 18px #ffdc6d33;animation-delay:1.05s}
.rare-reward .reward-primary{border-color:#ffeab0;background:linear-gradient(#ffe395 0 42%,#e5a53e 43%);color:#51391e;text-shadow:0 1px #fff4cf;box-shadow:0 5px #936321}.rare-reward .reward-primary:hover{filter:brightness(1.06)}
.rare-reward .reward-sparks i{left:var(--x);width:10px;height:20px;border-radius:2px;background:#ffda72;animation:rare-confetti 4.5s var(--delay) cubic-bezier(.12,.62,.33,1) both}.rare-reward .reward-sparks i:nth-child(3n){background:#a6eaff}.rare-reward .reward-sparks i:nth-child(3n + 1){background:#e6bbff}.rare-reward .reward-sparks i:nth-child(4n){width:13px;height:13px;clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%);background:#fff3b3}
@keyframes rare-card-reveal{0%{opacity:0;transform:translateY(35px) rotate(-16deg) scale(.35);filter:brightness(1.6) drop-shadow(0 0 35px #ffe8a4)}35%{opacity:1;transform:translateY(10px) rotate(8deg) scale(.75)}67%{transform:translateY(-12px) rotate(-6deg) scale(1.08)}100%{opacity:1;transform:rotate(-4deg)}}
@keyframes rare-ring-burst{0%{opacity:0;transform:scale(.25)}20%{opacity:.9}100%{opacity:0;transform:scale(2.5)}}
@keyframes rare-glint{0%{transform:translateX(-90%)}100%{transform:translateX(90%)}}
@keyframes rare-copy-reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes rare-confetti{0%{opacity:0;transform:translate(0,-20px) rotate(0)}10%{opacity:1}80%{opacity:.9}100%{opacity:0;transform:translate(var(--dx),780px) rotate(620deg)}}
@keyframes rare-star{from{opacity:.4;transform:scale(.7) rotate(-12deg)}to{opacity:1;transform:scale(1.12) rotate(12deg)}}
@media(min-width:900px) and (max-height:800px){.rare-reward .reward-copy h2{font-size:36px;margin-bottom:10px}.rare-reward .rare-banner{font-size:15px;padding:5px 12px;margin-bottom:9px}.rare-reward .reward-clear{font-size:14px;margin-bottom:7px}.rare-reward .reward-copy h3{font-size:28px;margin-bottom:14px}.rare-reward .reward-kind{font-size:14px}.rare-reward .reward-discovery{margin-bottom:10px}}
@media(max-width:899px){.rare-reward .reward-stage{min-height:345px}.rare-reward .reward-copy h2{font-size:34px}.rare-reward .reward-copy h2 br{display:block}.rare-banner{font-size:16px}.rare-star-ring{inset:0 max(0px,calc((100% - 340px)/2))}.rare-reward .reward-halo{width:420px}}
@media(prefers-reduced-motion:reduce){.rare-burst,.rare-card-glint,.rare-star-ring{display:none}.rare-reward .reward-card-link{filter:drop-shadow(0 0 18px #ffd27499)}}
