.shelf-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.shelf-head h1{font:700 clamp(38px,6vw,64px) Georgia,serif;margin:0 0 7px}.collection-count{padding:13px 18px;border:1px solid var(--line);border-radius:17px;background:#4e3a30b8;text-align:center}.collection-count strong{display:block;font-size:27px}.collection-count span{font-size:11px;text-transform:uppercase;letter-spacing:.09em}.cabinet{padding:24px 24px 42px;border:13px solid #52392d;border-radius:18px 18px 9px 9px;background:#795744;box-shadow:none}.flower-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 18px}.flower-slot{position:relative;min-height:214px;padding:14px 10px 18px;border-radius:10px 10px 3px 3px;background:#d8bda5;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;color:#3c2a22}.flower-slot:after{content:"";position:absolute;left:-8px;right:-8px;bottom:-18px;height:19px;border-radius:3px;background:#52392d}.flower-image{width:132px;height:142px;object-fit:contain}.flower-slot h2{margin:7px 0 0;font:700 18px Georgia,serif}.level{position:absolute;top:9px;right:9px;padding:4px 7px;border-radius:999px;background:#f5e5d6;font-size:10px;font-weight:800}.locked{background:#a88975;color:#49362c}.locked .flower-image{display:none}.mystery{height:142px;display:grid;place-items:center;font:800 48px Georgia,serif;opacity:.55}.locked h2{opacity:.72}.requirement{margin-top:6px;font-size:11px;font-weight:700;opacity:.75}.progress-card{margin-top:26px}.progress-track{height:10px;border-radius:999px;background:#594236;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:#d3ad8d}.progress-copy{display:flex;justify-content:space-between;gap:12px;margin-top:9px;color:var(--muted);font-size:13px}.flower-slot[data-key]{border:0;cursor:pointer;transition:transform .2s,background .2s}.flower-slot[data-key]:hover{transform:translateY(-4px);background:#e3cbb6}.flower-slot[data-key]:hover .flower-image{filter:drop-shadow(0 0 18px #ffd99d)}.reward-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:#241710b8;opacity:0;pointer-events:none;transition:opacity .22s}.reward-modal.open{opacity:1;pointer-events:auto}.reward-box{position:relative;width:min(430px,100%);padding:30px;border-radius:25px;background:#d8bda5;color:#3c2a22;text-align:center;transform:scale(.88);transition:transform .25s;border:3px solid #f1dfcf}.reward-modal.open .reward-box{transform:scale(1)}.reward-flower{width:180px;height:180px;object-fit:contain;animation:rewardGlow 1s ease-in-out infinite alternate}.reward-box h2{font:700 32px Georgia,serif;margin:8px 0}.reward-box p{font-size:17px;line-height:1.55;color:#5f4436}.close-reward{position:absolute;top:12px;right:14px;border:0;background:transparent;font-size:25px;cursor:pointer;color:#5c4033}.special .reward-flower{width:220px;height:220px;animation:specialGlow .7s ease-in-out infinite alternate}.special h2{font-size:38px}.sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.sparkles i{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;animation:sparkle 1.1s infinite}.sparkles i:nth-child(1){left:12%;top:18%}.sparkles i:nth-child(2){left:83%;top:25%;animation-delay:.25s}.sparkles i:nth-child(3){left:22%;top:72%;animation-delay:.45s}.sparkles i:nth-child(4){left:76%;top:76%;animation-delay:.65s}.sparkles i:nth-child(5){left:49%;top:9%;animation-delay:.8s}#shelf-fireworks{position:fixed;inset:0;z-index:999;pointer-events:none}@keyframes rewardGlow{0%{filter:drop-shadow(0 0 5px #e7b76b)}to{filter:drop-shadow(0 0 22px #f7cb7c) drop-shadow(0 0 35px #ff9bc9)}}@keyframes specialGlow{0%{filter:drop-shadow(0 0 8px #fff)}to{filter:drop-shadow(0 0 30px #ff8bc5) drop-shadow(0 0 45px #ffd86e)}}@keyframes sparkle{0%,to{opacity:.2;transform:scale(.5)}50%{opacity:1;transform:scale(1.5)}}@media(max-width:800px){.flower-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shelf-head{align-items:flex-start}.flower-slot{min-height:198px}}@media(max-width:470px){.shelf-head{flex-direction:column}.collection-count{align-self:stretch}.cabinet{padding:14px 12px 32px;border-width:9px}.flower-grid{gap:25px 10px}.flower-image,.mystery{width:105px;height:115px}.flower-slot{min-height:170px}.flower-slot h2{font-size:15px}}
