[hidden]{display:none!important}:root{--paper:#f6f0e4;--ink:#1d1a17;--accent:#c2412d;--card:#fffaf0;--rare:#6a4aa8;--shiny:#c99a1a;--good:#5c8a4f;--wood:#b48a5a;--wood-dark:#8a6440}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 50% 0%, #fbe7d8, var(--paper) 60%) fixed;color:var(--ink);-webkit-tap-highlight-color:transparent;min-height:100%;margin:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif}button{font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);touch-action:manipulation;border-radius:999px;padding:6px 14px;transition:transform 80ms}button:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{background:var(--ink);color:var(--paper)}button.primary{background:var(--accent);color:#fff;font-weight:800}button.small{padding:3px 10px;font-size:13px}#mute.off{opacity:.5;text-decoration:line-through}.bar{padding:max(8px, env(safe-area-inset-top)) 14px 4px;align-items:center;gap:10px;max-width:1100px;margin:0 auto;display:flex}.bar h1{margin:0 auto;font-size:clamp(26px,7vw,42px)}.tools{gap:6px;display:flex}.tools button{width:38px;height:38px;padding:0}.back{background:var(--card);border:2px solid var(--ink);width:38px;height:38px;color:var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:50%;flex:0 0 38px;place-items:center;font-weight:800;text-decoration:none;display:grid}main{grid-template-columns:minmax(0,400px) 1fr;align-items:start;gap:20px;max-width:1100px;margin:0 auto;padding:0 14px 20px;display:grid}.machine-wrap{text-align:center;position:sticky;top:8px}#machine{aspect-ratio:520/640;touch-action:none;cursor:grab;width:100%;max-width:360px;margin:0 auto;display:block}.tokens{flex-direction:column;align-items:center;gap:2px;margin-top:-4px;font-size:17px;display:flex}.tokens b{color:var(--accent);font-size:28px}.tokens.bump{animation:.5s cubic-bezier(.3,1.8,.5,1) bump}@keyframes bump{40%{transform:scale(1.25)rotate(-3deg)}}.token-row{gap:3px;min-height:14px;display:flex}.token-row i{border:2px solid var(--ink);background:linear-gradient(to bottom, #fff 50%, var(--c) 50%);border-radius:50%;width:14px;height:14px;animation:.3s ease-out tk-in}@keyframes tk-in{0%{transform:scale(0)translateY(-10px)}}.next-free{opacity:.8;font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:14px}.next-free.out{opacity:1;color:var(--accent);font-weight:800}.streak{max-width:340px;margin:10px auto 0}.streak b{font-size:14px}.path{justify-content:center;gap:5px;margin-top:4px;display:flex}.path span{background:var(--card);border:2px dashed #1d1a1766;border-radius:50%;place-items:center;width:32px;height:32px;font-size:12px;font-weight:800;display:grid}.path span.on{border:2px solid var(--ink);background:#ffe8a6}.path span.today{box-shadow:0 0 0 3px var(--accent)}.glitter{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;max-width:340px;margin:10px auto 0;font-size:13px;display:flex}.glitter-bar{border:2px solid var(--ink);background:var(--card);border-radius:999px;flex:1 0 100%;height:10px;overflow:hidden}.glitter-bar i{background:repeating-linear-gradient(45deg,#f2d16b 0 6px,#ffe8a6 6px 12px);height:100%;transition:width .5s;display:block}#trade.ready{background:#f2d16b;font-weight:800;animation:.9s ease-in-out infinite alternate glow}@keyframes glow{to{transform:scale(1.08)rotate(-2deg)}}.shelf-wrap{background:var(--card);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:22px;padding:14px}.shelf-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.shelf-head h2{margin:0}.count{opacity:.75;font-size:14px}.filters{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.filters button{box-shadow:none;padding:3px 10px;font-size:13px}.set{margin:10px 0 14px}.set header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.set header b{font-size:16px}.set header i{border:2px solid var(--ink);background:#fff;border-radius:999px;flex:80px;max-width:160px;height:9px;overflow:hidden}.set header u{background:var(--good);height:100%;transition:width .6s;display:block}.set header small{opacity:.75;font-size:12px}.set.done header b:after{content:" ★";color:var(--shiny)}.set.done .shelf{background-color:#fff6da}.set.just-done{animation:1.2s ease-out setdone}@keyframes setdone{20%{transform:scale(1.03)}40%{transform:scale(.99)}}.shelf{background:repeating-linear-gradient(to bottom, transparent 0 96px, var(--wood) 96px 104px, var(--wood-dark) 104px 108px);border-radius:10px;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:0;margin-top:6px;padding:4px 4px 0;display:grid}.slot{cursor:pointer;height:108px;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:14px;display:flex;position:relative}.slot:active:not(:disabled){transform:none}.slot img{filter:drop-shadow(0 3px 2px #0003);max-width:70px;max-height:76px;transition:transform .2s}.slot:hover img{transform:translateY(-5px)rotate(-4deg)}.slot.empty img{opacity:.12;filter:none}.slot.empty:after{content:"?";opacity:.35;font-size:24px;font-weight:900;position:absolute;bottom:38px}.slot .n{background:var(--ink);color:var(--paper);border-radius:999px;padding:0 6px;font-size:11px;position:absolute;top:4px;right:6px}.slot.shiny:before{content:"✨";position:absolute;top:2px;left:4px}.slot.rare .n{background:var(--rare)}.slot.fresh img{animation:.9s cubic-bezier(.2,1.8,.4,1) fresh}.slot.fresh{animation:1.6s ease-out slotglow}@keyframes slotglow{0%{background:radial-gradient(circle at 50% 55%,#f2d16be6,#0000 62%)}}@keyframes fresh{0%{transform:translateY(-50px)scale(1.6)rotate(-20deg)}}.empty-note{opacity:.75;text-align:center}.reveal-screen{z-index:8;background:#1d1a17b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.reveal-card{background:var(--card);border:4px solid var(--ink);text-align:center;width:100%;max-width:380px;box-shadow:8px 8px 0 var(--ink);isolation:isolate;border-radius:26px;padding:16px 18px;animation:.5s cubic-bezier(.2,1.6,.4,1) cardIn;position:relative;overflow:hidden}.reveal-card.rare{border-color:var(--rare);box-shadow:8px 8px 0 var(--rare), 0 0 40px #6a4aa880}.reveal-card.shiny{border-color:var(--shiny);box-shadow:8px 8px 0 var(--shiny), 0 0 60px #ffd250e6;background:linear-gradient(160deg,#fffaf0,#fff1c4)}.rays{z-index:-1;opacity:.55;background:repeating-conic-gradient(from 0deg, #ffdc828c 0 10deg, transparent 10deg 30deg);border-radius:50%;width:520px;height:520px;margin:-260px 0 0 -260px;animation:14s linear infinite spin;position:absolute;top:150px;left:50%;-webkit-mask:radial-gradient(circle,#000 20%,#0000 65%);mask:radial-gradient(circle,#000 20%,#0000 65%)}.reveal-card.common .rays{opacity:.25}@keyframes spin{to{transform:rotate(360deg)}}@keyframes cardIn{0%{opacity:0;transform:scale(.3)rotate(-12deg)}}.rarity{letter-spacing:2px;text-transform:uppercase;justify-content:center;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:900;display:flex}.rarity img{width:auto;height:26px}.pop{place-items:center;height:210px;display:grid;position:relative}.pop.small{height:160px}.pop img.art{object-fit:contain;filter:drop-shadow(0 8px 6px #1d1a1740);width:auto;max-width:92%;height:200px;animation:.9s cubic-bezier(.2,1.8,.4,1) popOut,1.6s ease-in-out .9s infinite alternate bob}.pop.small img.art{height:150px}@keyframes popOut{0%{transform:translateY(60px)scale(.1)rotate(30deg)}}@keyframes bob{0%{transform:translateY(0)rotate(-3deg)}to{transform:translateY(-8px)rotate(3deg)}}.stamp{border-radius:999px;margin:2px 0 0;padding:2px 12px;font-weight:900;animation:.45s cubic-bezier(.3,1.8,.5,1) .35s both stamp;display:inline-block;transform:rotate(-4deg)}.stamp.new{background:var(--accent);color:#fff;letter-spacing:2px}.stamp.spare{border:2px solid var(--ink);background:#ffe8a6;font-size:14px}@keyframes stamp{0%{opacity:0;transform:scale(2.5)rotate(-12deg)}}.reveal-card h2{margin:6px 0 2px;font-size:22px}.set-line{justify-content:center;align-items:center;gap:8px;margin:4px 0;font-size:14px;display:flex}.set-line i{border:2px solid var(--ink);background:#fff;border-radius:999px;width:90px;height:9px;overflow:hidden}.set-line u{background:var(--good);height:100%;animation:.8s ease-out .4s both fill;display:block}@keyframes fill{0%{width:0!important}}.links{flex-direction:column;gap:4px;margin:6px 0 12px;display:flex}.links a{color:var(--accent);font-weight:800}.screen{z-index:7;background:#f6f0e4eb;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.card{background:var(--card);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);text-align:center;border-radius:22px;width:100%;max-width:460px;padding:20px;position:relative}.card ol{text-align:left;padding-left:22px;line-height:1.5}.x{z-index:2;width:34px;height:34px;box-shadow:none;padding:0;position:absolute;top:10px;right:10px}.tier-key{flex-wrap:wrap;gap:4px 10px;margin-top:4px;display:flex}.tier-key span{align-items:center;gap:3px;font-size:14px;display:inline-flex}.tier-key img{width:auto;height:20px}.banner{z-index:10;pointer-events:none;text-align:center;padding:0 10px;position:fixed;top:30%;left:0;right:0}.banner b{color:#fff;-webkit-text-stroke:3px var(--ink);text-shadow:4px 4px 0 var(--ink);font-size:clamp(30px,9vw,60px);font-weight:900;display:block}.banner small{background:var(--ink);color:#fff;border-radius:999px;margin-top:6px;padding:4px 14px;font-size:16px;font-weight:800;display:inline-block}.banner.show{animation:2.2s ease-out forwards banner}@keyframes banner{0%{opacity:0;transform:scale(.3)rotate(-8deg)}10%{opacity:1;transform:scale(1.12)rotate(2deg)}18%{transform:scale(1)rotate(0)}85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}.tut{z-index:6;pointer-events:none;position:fixed;inset:0}.tut-hand{border:4px solid var(--accent);background:#c2412d33;border-radius:50%;width:54px;height:54px;animation:1s ease-in-out infinite tap;position:fixed;transform:translate(-50%,-50%)}.tut-hand.orbit{animation:1.4s linear infinite orbit}@keyframes tap{50%{transform:translate(-50%,-50%)scale(.75)}}@keyframes orbit{0%{transform:translate(-50%,-50%)rotate(0)translate(46px)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)translate(46px)rotate(-360deg)}}.tut-card{left:50%;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 8px);background:var(--ink);width:min(92vw,420px);color:var(--paper);text-align:center;pointer-events:auto;border-radius:18px;padding:10px 16px;font-weight:700;position:fixed;transform:translate(-50%)}.tut-card p{margin:0 0 4px}.tut-card button{color:var(--paper);box-shadow:none;background:0 0;border:0;padding:2px 8px;font-weight:400;text-decoration:underline}.toast{background:var(--ink);color:var(--paper);z-index:11;visibility:hidden;white-space:nowrap;border-radius:999px;padding:10px 16px;font-weight:700;transition:transform .25s,visibility .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,calc(100% + 40px))}.toast.on{visibility:visible;transform:translate(-50%)}.credit{text-align:center;padding:8px 14px max(14px, env(safe-area-inset-bottom));font-size:14px}.credit a{color:var(--ink);font-weight:700}@media (width>=761px){.shelf-wrap{max-height:calc(100vh - 80px);overflow-y:auto}.tut-card{top:64px;bottom:auto}}@media (width<=760px){main{grid-template-columns:1fr}.machine-wrap{position:static}#machine{max-width:min(300px,46vh)}.path span{width:30px;height:30px}.shelf-wrap{padding:12px 10px}.shelf{grid-template-columns:repeat(auto-fill,minmax(66px,1fr))}.slot img{max-width:60px;max-height:72px}}
