:root{--cream:#fff6e9;--peach:#ffd9b8;--coral:#f08a74;--coral-deep:#d9634d;--cocoa:#4a3328;--cocoa-soft:#7a5a48;--sage:#9fbf9a;--butter:#ffe08a;--gold:#f2b640;--lilac:#c9b4e8;--shadow:0 10px 30px #4a33282e;--radius:18px;--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font-body);color:var(--cocoa);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#f6dcc3;margin:0;overflow:hidden}#scene{touch-action:none;cursor:default;width:100%;height:100%;display:block;position:fixed;inset:0}#scene.grab{cursor:grab}#scene.grabbing{cursor:grabbing}#scene.pointer{cursor:pointer}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#topbar{justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:absolute;top:0;left:0;right:0}.brand{font-family:var(--font-display);color:var(--cocoa);text-shadow:0 2px #ffffff80;align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.brand-emoji{filter:drop-shadow(0 2px 2px #00000026);font-size:26px}.top-actions{gap:10px;display:flex}.pill{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--cocoa);font-family:var(--font-display);box-shadow:var(--shadow);cursor:pointer;background:#fff6e9d9;border:0;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:15px;font-weight:500;transition:transform .15s,background .15s;display:inline-flex}.pill:hover{background:#fff;transform:translateY(-1px)}.pill:active{transform:translateY(1px)scale(.98)}.pill.icon-only{padding:10px 13px;font-size:17px}.badge{background:var(--coral);color:#fff;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.hint{color:var(--cream);font-family:var(--font-display);letter-spacing:.2px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);white-space:normal;text-align:center;background:#4a3328c7;border-radius:999px;flex-direction:column;align-items:center;gap:2px;max-width:min(92vw,520px);padding:10px 20px;font-size:15px;transition:opacity .35s,transform .35s;display:flex;position:absolute;top:78px;left:50%;transform:translate(-50%);pointer-events:none!important}.hint-sub{opacity:.8;font-size:12px;font-weight:400}.hint-sub.hidden{display:none}.hint.hidden{opacity:0;transform:translate(-50%)translateY(-6px)}.wallet{border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:200px;box-shadow:var(--shadow);transform-origin:20% 100%;background:#fff6e9e0;border:2px solid #fff9;padding:14px 16px 16px;transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .35s;position:absolute;bottom:22px;left:22px}.wallet.away{opacity:0;transition:transform .32s cubic-bezier(.5,0,.75,0),opacity .22s;transform:translateY(36px)scale(.8)rotate(-4deg);pointer-events:none!important}.wallet-head{font-family:var(--font-display);justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.wallet-title{color:var(--cocoa-soft);letter-spacing:.5px;font-size:16px;font-weight:600}.token-tray{flex-wrap:wrap;gap:8px;max-width:200px;display:flex}.token-tray:empty{display:none}.token{cursor:grab;touch-action:none;background:radial-gradient(circle at 35% 30%,#fff3b0,#f2b640 55%,#c98a1d 100%);border-radius:50%;place-items:center;width:44px;height:44px;font-size:20px;transition:transform .15s,opacity .2s;animation:.6s cubic-bezier(.34,1.56,.64,1) backwards token-in;display:grid;box-shadow:inset 0 -3px #0000002e,inset 0 2px #ffffff80,0 4px 8px #4a332840}@keyframes token-in{0%{opacity:0;transform:scale(0)rotate(-60deg)translateY(12px)}to{opacity:1;transform:scale(1)rotate(0)translateY(0)}}.token:after{content:"🍌";filter:saturate(.85)}.token:hover{transform:translateY(-3px)rotate(-6deg)}.token.dragging{opacity:.25;cursor:grabbing;transform:scale(.9)}.token.spent{opacity:0;transform:scale(0)}.refill{background:var(--sage);color:#244a2a;width:100%;font-family:var(--font-display);cursor:pointer;border:0;border-radius:12px;margin-top:4px;padding:10px 12px;font-size:14px;font-weight:500;transition:transform .15s}.refill:hover{transform:translateY(-1px)}.result{transition:opacity .4s,transform .4s cubic-bezier(.2,.9,.3,1.2);position:absolute;bottom:26px;right:26px}.result.hidden{opacity:0;transform:translateY(20px)scale(.96);pointer-events:none!important}.result-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:300px;box-shadow:var(--shadow);text-align:center;background:#fff6e9eb;border:2px solid #ffffffb3;border-radius:22px;padding:22px 22px 20px}.rarity{font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;color:#555;background:#e5e5e5;border-radius:999px;margin-bottom:8px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.rarity.common{color:#6a6259;background:#e7e3dc}.rarity.uncommon{color:#2e6b3a;background:#d7ecd2}.rarity.rare{color:#2f4fa8;background:#d9e4ff}.rarity.epic{color:#6b3fb5;background:#eadcff}.rarity.legendary{color:#6a4300;background:linear-gradient(90deg,#ffe08a,#f2b640)}.result-card h2{font-family:var(--font-display);color:var(--cocoa);margin:4px 0 8px;font-size:26px;font-weight:600}.result-card p{color:var(--cocoa-soft);margin:0 0 14px;font-size:14px;line-height:1.45}.new-tag{font-family:var(--font-display);color:var(--coral-deep);margin-bottom:14px;font-size:13px}.primary{background:var(--coral);color:#fff;font-family:var(--font-display);box-shadow:0 6px 0 var(--coral-deep);cursor:pointer;border:0;border-radius:999px;padding:12px 26px;font-size:16px;font-weight:600;transition:transform .1s,box-shadow .1s}.primary:hover{transform:translateY(-1px)}.primary:active{box-shadow:0 2px 0 var(--coral-deep);transform:translateY(4px)}.collection{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#4a332859;place-items:center;transition:opacity .3s;display:grid;position:absolute;inset:0}.collection.hidden{opacity:0;pointer-events:none!important}.collection-panel{background:var(--cream);width:min(680px,100vw - 40px);max-height:calc(100vh - 60px);box-shadow:var(--shadow);border:3px solid #fff;border-radius:26px;padding:24px 26px 20px;overflow:auto}.collection-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.collection-head h2{font-family:var(--font-display);margin:0;font-size:26px;font-weight:600}.close{background:var(--peach);width:36px;height:36px;color:var(--cocoa);cursor:pointer;border:0;border-radius:50%;font-size:16px}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:14px;display:grid}.slot{border:2px solid var(--peach);text-align:center;background:#fff;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;display:flex}.slot.locked{opacity:.55;filter:grayscale(.7);background:#f7efe6;border-style:dashed}.slot img{image-rendering:auto;width:84px;height:84px}.slot .slot-name{font-family:var(--font-display);font-size:14px;font-weight:500}.slot .slot-owned{color:var(--cocoa-soft);font-size:12px}.slot .rarity{margin:0;padding:2px 8px;font-size:10px}.collection-foot{text-align:center;color:var(--cocoa-soft);margin:18px 0 0;font-size:13px}#loading{z-index:10;background:#f6dcc3;place-items:center;transition:opacity .6s;display:grid;position:fixed;inset:0}#loading.hidden{opacity:0;pointer-events:none!important}.loading-inner{text-align:center;font-family:var(--font-display);color:var(--cocoa)}.loading-emoji{font-size:54px;animation:1.4s ease-in-out infinite bob}.loading-text{margin-top:10px;font-size:16px}@keyframes bob{0%,to{transform:translateY(0)rotate(-8deg)}50%{transform:translateY(-10px)rotate(8deg)}}.hidden{display:none}.hint.hidden,.result.hidden{display:block}.collection.hidden,#loading.hidden{display:grid}@media (width<=640px){#topbar{padding:12px 14px}.brand-name{display:none}.pill{padding:9px 12px;font-size:14px}.hint{max-width:calc(100vw - 24px);font-size:13px;top:64px}.wallet{min-width:150px;padding:10px 12px 12px;bottom:12px;left:12px}.token{width:38px;height:38px;font-size:17px}.token-tray{max-width:200px}.result{bottom:12px;left:12px;right:12px}.result-card{width:auto;padding:16px 16px 14px}.result-card h2{font-size:22px}.collection-panel{border-radius:20px;padding:18px 16px 14px}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.slot img{width:64px;height:64px}}@media (height<=500px) and (orientation:landscape){.wallet{min-width:0;padding:8px 10px 10px}.token{width:34px;height:34px;font-size:15px}.result-card{width:260px;padding:14px 16px 12px}}
