/* Doughnut Run polish layer: result stars and level-card thumbnails. Sits on top of game.css. */
.stars .star-pop{display:inline-block;opacity:.25;transform:scale(.4);animation:star-pop .45s cubic-bezier(.2,1.6,.4,1) forwards}
.stars .star-pop.on{opacity:1;text-shadow:0 0 18px #feb300aa}
@keyframes star-pop{0%{transform:scale(.3) rotate(-25deg)}70%{transform:scale(1.35) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
.level-art{aspect-ratio:1200/680;height:auto!important;background-size:cover!important;background-position:center!important}
.level-card:not(:disabled) .level-art{transition:transform .35s ease}
.level-card:not(:disabled):hover .level-art{transform:scale(1.04)}
.level-card{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.level-card:not(:disabled):hover{box-shadow:0 12px 40px #ff8fbd22}
@media (prefers-reduced-motion:reduce){.stars .star-pop{animation:none;transform:none}.level-card:not(:disabled):hover .level-art{transform:none}}
#modal-content{position:relative}
#modal-content canvas.confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
/* Tray: labelled Flip / Undo, clear stock counts, spent tools greyed out. */
.mini-actions .act-btn{width:auto;height:38px;min-width:0;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:700 11px/1 Space,system-ui,sans-serif;letter-spacing:.6px;text-transform:uppercase;color:#f4e6ea;border-color:#ffffff2e;background:#ffffff0d}
.act-btn .act-ico{font-size:18px;line-height:1;color:var(--pink,#ffb1c1)}
.act-btn .act-lbl b{font-weight:700;color:var(--amber,#feb300)}
.act-btn:disabled{opacity:.35;cursor:default}
.act-btn:not(:disabled):active{transform:translateY(1px)}
.tool .count{font:700 10px Mono,monospace;letter-spacing:0;border-radius:999px;padding:2px 7px;border:0;background:#2f5a45;color:#b9ffd8}
.tool .count i{font-style:normal;opacity:.8}
.tool.selected .count{background:var(--amber,#feb300);color:#492d00}
.tool.empty{opacity:.38;filter:grayscale(1)}
.tool.empty .count{background:#3b373d;color:#c9b8c1}
.tool:focus-visible,.act-btn:focus-visible{outline:2px solid var(--pink,#ffb1c1);outline-offset:2px}
@media (max-width:900px){.tool .count i{display:none}}
/* Share a win. */
.share-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 4px}
.share-label{font:700 10px Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:#ffb1c1;margin-right:4px}
.share-btn{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border-radius:10px;border:1px solid #ffffff26;background:#ffffff0d;color:#f4eef1;font:700 15px Space,sans-serif;text-decoration:none;cursor:pointer}
.share-btn:hover{background:#ffb1c1;color:#1b0f14;border-color:#ffb1c1}
.share-row .secondary{min-height:44px}
/* "New #1" celebration over the win card. */
.crown-pop{position:absolute;inset:0;z-index:6;display:grid;place-items:start center;padding:24px 16px;background:radial-gradient(ellipse at 50% 30%,#3a2a0af2,#120d05f5 70%);border-radius:inherit;animation:crown-in .35s ease-out}
.crown-card{position:sticky;top:16px;width:min(460px,100%);text-align:center;padding:26px 22px 20px;border-radius:22px;background:linear-gradient(160deg,#2b2109,#171208);border:2px solid #ffd23f;box-shadow:0 0 0 6px #ffd23f22,0 20px 60px #000c,inset 0 0 40px #ffd23f1c;overflow:hidden}
.crown-card::after{content:"";position:absolute;inset:-40% auto -40% -60%;width:40%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,#fff5,transparent);animation:crown-shine 2.4s ease-in-out .4s infinite}
.crown-emoji{font-size:84px;line-height:1;filter:drop-shadow(0 8px 20px #ffb00088);animation:crown-bounce 1.1s cubic-bezier(.3,1.6,.5,1) both}
.crown-eyebrow{display:block;margin-top:10px;font:700 12px Mono,monospace;letter-spacing:.3em;color:#ffd23f}
.crown-card h2{margin:6px 0 4px;font-size:clamp(40px,8vw,58px);line-height:1;letter-spacing:-.04em;color:#fff4c2;text-shadow:0 0 30px #ffd23f66}
.crown-level{margin:8px 0 0;color:#f3e3b5;font-size:15px}
.crown-stat{margin:6px 0 0;font-size:20px;color:#fff}
.crown-stat b{color:#ffd23f}
.crown-note{margin:10px 0 0;color:#e8d9ad;font-size:14px}
.crown-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.crown-actions>*{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;text-decoration:none}
.crown-actions .primary{background:linear-gradient(#ffe98a,#ffb000);color:#2a1a00;border-color:#ffd23f}
@keyframes crown-in{from{opacity:0}to{opacity:1}}
@keyframes crown-bounce{0%{transform:translateY(-60px) scale(.4) rotate(-20deg);opacity:0}60%{transform:translateY(6px) scale(1.15) rotate(6deg);opacity:1}100%{transform:none}}
@keyframes crown-shine{0%{left:-60%}55%,100%{left:130%}}
@media (prefers-reduced-motion:reduce){.crown-pop,.crown-emoji,.crown-card::after{animation:none}}
@media (max-height:520px){.crown-pop{padding:10px}.crown-card{padding:14px 16px 12px}.crown-emoji{font-size:54px}.crown-card h2{font-size:38px}.crown-actions{margin-top:10px}}
