.daily-card{position:relative;overflow:hidden}.daily-card:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 0,#6f49ff35,transparent 52%);pointer-events:none}.daily-card.completed{border-color:#b8ff3d80}.daily-card.completed .card-icon{background:#b8ff3d;color:#071006}.daily-card.completed .card-icon:after{content:'✓';position:absolute}.daily-card.completed .card-icon{font-size:0}.daily-card.completed .card-icon:after{font-size:17px}
.finish{--rank-color:#d98a52;--rank-accent:#ffd0ac;position:relative;max-width:780px;margin:20px auto 60px;padding:30px;text-align:center;isolation:isolate}.finish:before{content:'';position:fixed;z-index:-1;inset:0;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--rank-color) 18%,transparent),transparent 38%);pointer-events:none}.result-kicker{font:800 11px Inter,sans-serif;letter-spacing:3px;color:var(--rank-accent);margin-top:4px}.medal-badge{position:relative;width:150px;height:150px;border-radius:50%;margin:24px auto 16px;display:grid;place-items:center;background:linear-gradient(145deg,var(--rank-accent),var(--rank-color) 55%,#6a442d);box-shadow:0 0 0 9px #111722,0 0 0 11px color-mix(in srgb,var(--rank-color) 65%,#fff),0 18px 55px color-mix(in srgb,var(--rank-color) 42%,transparent);animation:medal-enter .8s cubic-bezier(.16,1.35,.35,1) both}.medal-badge:before,.medal-badge:after{content:'';position:absolute;z-index:-1;top:96px;width:58px;height:95px;background:linear-gradient(135deg,var(--rank-color),#342131);clip-path:polygon(0 0,100% 0,80% 100%,50% 75%,18% 100%)}.medal-badge:before{left:6px;transform:rotate(17deg)}.medal-badge:after{right:6px;transform:rotate(-17deg)}.medal-badge i{position:absolute;inset:13px;border:3px solid #10151d;border-radius:50%;box-shadow:inset 0 0 0 5px #ffffff35}.medal-badge span{font-size:68px;color:#0a0d12;text-shadow:0 2px 0 #ffffff40}.rank-name{font:900 30px 'Barlow Condensed',sans-serif;letter-spacing:2.5px;color:var(--rank-color);text-shadow:0 0 24px color-mix(in srgb,var(--rank-color) 45%,transparent)}.finish h1{font-size:clamp(50px,8vw,78px);margin:12px 0 8px}.finish h1 em{color:var(--rank-color)}.finish>p{max-width:570px;margin:0 auto;color:#b0bac6;line-height:1.6}.finish .scorecard{position:relative;overflow:hidden;margin:28px 0 18px;border-color:color-mix(in srgb,var(--rank-color) 40%,#313b49);background:linear-gradient(145deg,color-mix(in srgb,var(--rank-color) 12%,#202936),#10151e 68%);box-shadow:0 18px 55px #0008}.finish .scorecard:after{content:'';position:absolute;right:-80px;top:-130px;width:300px;height:300px;border:50px solid color-mix(in srgb,var(--rank-color) 7%,transparent);border-radius:50%}.finish .score-main{position:relative;z-index:1;min-width:250px}.finish .score-main>b{font-size:clamp(110px,21vw,180px);line-height:.74;letter-spacing:-5px;color:var(--rank-color);text-shadow:0 0 30px color-mix(in srgb,var(--rank-color) 30%,transparent);margin:24px 0 15px}.finish .score-main small{display:block;color:var(--rank-accent);font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}.finish .score-detail{position:relative;z-index:1;align-content:center}.daily-pattern{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 0 20px;padding:14px;border:1px solid #2d3746;border-radius:10px;background:#10151d}.daily-pattern b{font-size:9px;letter-spacing:1.6px;color:#8f9aaa;margin-right:8px}.daily-pattern span{display:grid;place-items:center;width:39px;height:39px;border-radius:7px;color:#08100d;font-weight:900;box-shadow:inset 0 2px 0 #fff5}.daily-pattern .perfect{background:#54e58b}.daily-pattern .close{background:#ffd029}.daily-pattern .warm{background:#ff8c42}.daily-pattern .miss{background:#ff4057}.finish-actions .confirm-button{min-width:180px}.finish-actions .secondary{border-color:color-mix(in srgb,var(--rank-color) 50%,#46505f)}
.celebration{position:fixed;z-index:40;inset:0;overflow:hidden;pointer-events:none}.celebration i{position:absolute;top:-30px;left:var(--x);width:10px;height:24px;border-radius:2px;background:var(--color);animation:confetti-fall var(--duration) cubic-bezier(.18,.8,.35,1) var(--delay) both}
@keyframes medal-enter{0%{opacity:0;transform:translateY(-28px) scale(.45) rotate(-18deg)}70%{transform:translateY(3px) scale(1.08) rotate(3deg)}100%{opacity:1;transform:none}}@keyframes confetti-fall{0%{transform:translate3d(0,-40px,0) rotate(0);opacity:0}8%{opacity:1}100%{transform:translate3d(var(--dx),105vh,0) rotate(var(--spin));opacity:.7}}
@media(max-width:760px){.finish{margin-top:10px;padding:20px 16px}.medal-badge{width:112px;height:112px;margin-top:18px}.medal-badge span{font-size:50px}.medal-badge:before,.medal-badge:after{top:70px;width:45px;height:75px}.rank-name{font-size:24px}.finish .scorecard{display:grid;gap:20px;text-align:center}.finish .score-main>b{font-size:126px}.finish .score-detail{border-left:0;border-top:1px solid var(--line);padding:18px 0 0;grid-template-columns:1fr 1fr}.daily-pattern{gap:6px}.daily-pattern b{display:none}.daily-pattern span{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.medal-badge,.celebration i{animation:none}}
