.play{--ink:#1b1b1b;--cream:#fffaf0;--cream2:#f6eedc;--yellow:#ffd34d;--accent:#3c9a52;--accent-dk:#2a7a3e;--dirt:#7a5532;--spring:cubic-bezier(.28, 1.6, .5, 1);font-family:var(--font);-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#0b0f1e;position:fixed;inset:0;overflow:hidden}.play-canvas{cursor:pointer;width:100%;height:100%;display:block}.phud{z-index:5;align-items:center;gap:8px;display:flex;position:absolute}.phud.left{top:10px;left:10px}.phud.right{top:10px;right:10px}.phud.bottom{flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100vw - 20px);bottom:14px;left:50%;transform:translate(-50%)}.pchip{background:var(--cream);border:3px solid var(--ink);font:700 21px var(--font);box-shadow:0 4px 0 var(--ink);color:var(--ink);animation:pchipIn .5s var(--spring) both;border-radius:14px;align-items:center;gap:7px;padding:4px 13px 4px 9px;display:inline-flex;position:relative}.phud.left .pchip:nth-child(2){animation-delay:60ms}@keyframes pchipIn{0%{opacity:0;transform:translateY(-14px)scale(.85)}}.pchip img{width:34px;height:17px;image-rendering:pixelated}.pnum{font-variant-numeric:tabular-nums;min-width:2ch}.pchip.money{background:linear-gradient(#fffdf6,#fff3d0)}.pfloat{border:3px solid var(--ink);font:18px "Luckiest Guy", var(--font);letter-spacing:.03em;color:var(--ink);white-space:nowrap;pointer-events:none;box-shadow:0 3px 0 var(--ink);background:#7ee36b;border-radius:10px;margin-top:4px;padding:1px 9px;animation:1.3s cubic-bezier(.2,.9,.3,1) forwards pfloat;position:absolute;top:100%;left:50%;transform:translate(-50%)}.pfloat.neg{background:#ff9a8a}@keyframes pfloat{0%{opacity:0;transform:translate(-50%,-6px)scale(.4)}18%{opacity:1;transform:translate(-50%,4px)scale(1.15)}30%{transform:translate(-50%,2px)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,22px)scale(.95)}}.pchip.full{background:var(--yellow);animation:.8s ease-in-out infinite pfull}@keyframes pfull{50%{transform:scale(1.06)}}.pchip.bump{animation:pbump .45s var(--spring)}.pchip.full.bump{animation:pbump .45s var(--spring), pfull .8s .45s ease-in-out infinite}@keyframes pbump{0%{transform:scale(1)}30%{background:#fff3b0;transform:scale(1.28)rotate(-4deg)}to{transform:scale(1)}}.bag-ico{border:3px solid var(--ink);background:linear-gradient(135deg,#d0a06a,#a07040);border-radius:4px 4px 8px 8px;width:18px;height:20px;position:relative}.bag-ico:before{content:"";border:3px solid var(--ink);border-bottom:0;border-radius:6px 6px 0 0;height:7px;position:absolute;top:-8px;left:3px;right:3px}.pbtn{color:var(--ink);background:var(--cream);border:3px solid var(--ink);font:700 18px var(--font);cursor:pointer;box-shadow:0 4px 0 var(--ink);transition:transform .12s var(--spring), box-shadow .12s, filter .12s;-webkit-tap-highlight-color:transparent;border-radius:14px;align-items:center;gap:6px;padding:8px 15px;text-decoration:none;display:inline-flex;position:relative}.pbtn:hover:not(:disabled){box-shadow:0 6px 0 var(--ink);filter:brightness(1.04);transform:translateY(-2px)}.pbtn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transition-duration:40ms;transform:translateY(3px)}.pbtn.primary{background:linear-gradient(#ffe27a, var(--yellow))}.phud.bottom .pbtn{animation:pbtnIn .45s var(--spring) both}.phud.bottom .pbtn:nth-child(2){animation-delay:50ms}.phud.bottom .pbtn:nth-child(3){animation-delay:.1s}.phud.bottom .pbtn:nth-child(4){animation-delay:.15s}@keyframes pbtnIn{0%{opacity:0;transform:translateY(18px)scale(.9)}}.phud.bottom .pbtn.primary{animation:pbtnIn .45s var(--spring) both, pnudge 2.4s 1s ease-in-out infinite}@keyframes pnudge{0%,86%,to{transform:none}90%{transform:translateY(-4px)rotate(-1.5deg)}95%{transform:translateY(0)rotate(1deg)}}.pbtn:disabled{opacity:.5;cursor:default;filter:grayscale(.4)}.pbtn img{width:28px;height:14px;image-rendering:pixelated}.ptip{background:var(--cream);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);text-align:center;z-index:4;pointer-events:none;max-width:calc(100vw - 40px);animation:ptipIn .5s var(--spring) both;border-radius:14px;margin:0;padding:8px 14px;font-size:18px;position:absolute;top:66px;left:50%;transform:translate(-50%)}@keyframes ptipIn{0%{opacity:0;transform:translate(-50%,-10px)scale(.9)}}.poverlay{z-index:20;background:radial-gradient(circle at 50% 45%,#0a0e2259,#050814b3);justify-content:center;align-items:center;padding:12px;animation:.22s ease-out pfade;display:flex;position:absolute;inset:0}@keyframes pfade{0%{opacity:0}}.ppanel{background:var(--cream);border:4px solid var(--ink);width:100%;max-width:640px;max-height:calc(100svh - 24px);box-shadow:0 8px 0 var(--ink), 0 24px 50px #00000059;animation:ppop .42s var(--spring);scrollbar-width:thin;border-radius:18px;padding:18px 18px 20px;position:relative;overflow:auto}.ppanel:before{content:"";background:repeating-linear-gradient(90deg, var(--accent) 0 26px, #4fb468 26px 52px);border-bottom:3px solid var(--ink);height:10px;position:absolute;top:0;left:0;right:0}.ppanel>section{padding-top:6px}.ppanel.scrub{color:#fff;text-align:center;background:radial-gradient(circle at 50% 30%,#3e3860,#1c1934 60%,#120f22);border-color:#000;max-width:440px;overflow:hidden}.ppanel.scrub:before{display:none}@keyframes ppop{0%{opacity:0;transform:translateY(24px)scale(.86)}60%{opacity:1}}.ppanel h2{font:30px "Luckiest Guy", var(--font);letter-spacing:.02em;color:var(--ink);text-shadow:0 2px #fff;margin:0 0 4px;padding-right:40px}.ppanel h3{font:22px "Luckiest Guy", var(--font);letter-spacing:.03em;color:var(--dirt);align-items:center;gap:8px;margin:18px 0 8px;display:flex}.ppanel h3:after{content:"";background:repeating-linear-gradient(90deg,#d8cfbf 0 8px,#0000 8px 14px);border-radius:3px;flex:1;height:3px}.psub{color:#5c554a;margin:0 0 10px;font-size:17px}.perr{color:#c02a2a;margin:6px 0;font-weight:700;animation:.4s pshake}@keyframes pshake{25%{transform:translate(-5px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.pclose{z-index:2;border:3px solid var(--ink);width:40px;height:40px;font:700 24px var(--font);cursor:pointer;box-shadow:0 3px 0 var(--ink);transition:transform .15s var(--spring);color:var(--ink);background:#fff;border-radius:50%;line-height:1;position:absolute;top:18px;right:12px}.pclose:hover{background:#ffe6e0;transform:rotate(90deg)scale(1.08)}.pclose:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)scale(.95)}.shop-rows,.sell-list{margin:0;padding:0;list-style:none}.shop-rows li{border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);animation:prowIn .4s var(--spring) both;background:#fff;border-radius:14px;grid-template-columns:96px 1fr auto;align-items:center;gap:10px;margin:0 0 8px;padding:10px 12px;display:grid}.shop-rows li:nth-child(2){animation-delay:40ms}.shop-rows li:nth-child(3){animation-delay:80ms}@keyframes prowIn{0%{opacity:0;transform:translateY(10px)}}.sr-label{font:15px "Luckiest Guy", var(--font);color:#fff;background:var(--dirt);border:3px solid var(--ink);text-align:center;letter-spacing:.03em;border-radius:10px;padding:4px 6px 2px;transform:rotate(-3deg)}.sr-cur b{font-size:19px;display:block}.sr-line{color:#6a6358;font-size:15px;line-height:1.2;display:block}.sell-junk{margin:0 0 10px}.sell-list li{border-top:2px dashed #d8cfbf;grid-template-columns:54px 1fr auto auto;align-items:center;gap:8px;padding:6px 4px;display:grid}.sell-list img{width:54px;height:54px;transition:transform .2s var(--spring)}.sell-list li:hover img{transform:scale(1.12)rotate(-6deg)}.sl-name{font-size:18px}.book-meter{border:3px solid var(--ink);background:#e9e0cc;border-radius:10px;height:14px;margin:0 0 12px;overflow:hidden}.book-meter span{border-right:3px solid var(--ink);height:100%;transition:width .6s var(--spring);background:repeating-linear-gradient(-45deg,#ffd34d 0 10px,#ffc21a 10px 20px);display:block}.book-grid{grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:10px;display:grid}.book-card{border:3px solid var(--ink);text-align:center;box-shadow:0 4px 0 var(--ink);animation:pcardIn .45s var(--spring) both;animation-delay:calc(var(--i,0) * 25ms);transition:transform .18s var(--spring);background:#fff;border-radius:16px;flex-direction:column;align-items:center;padding:8px 6px 9px;display:flex;position:relative;overflow:hidden}.book-card:before{content:"";background:var(--tc);border-bottom:2px solid var(--ink);height:7px;position:absolute;inset:0 0 auto}@keyframes pcardIn{0%{opacity:0;transform:translateY(14px)scale(.85)}}.book-card:hover{transform:translateY(-3px)rotate(-1deg)}.bc-art{background:radial-gradient(circle, color-mix(in srgb, var(--tc) 45%, transparent), transparent 68%);border-radius:50%;place-items:center;width:86px;height:86px;margin-top:4px;display:grid;position:relative}.book-card img{z-index:1;width:80px;height:80px;transition:transform .25s var(--spring);position:relative}.book-card:hover img{transform:scale(1.12)rotate(-6deg)}.book-card.t4 .bc-art:after,.book-card.t5 .bc-art:after{content:"";background:conic-gradient(from 0deg, transparent 0 8%, color-mix(in srgb, var(--tc) 55%, transparent) 10%, transparent 13% 33%, color-mix(in srgb, var(--tc) 55%, transparent) 35%, transparent 38% 58%, color-mix(in srgb, var(--tc) 55%, transparent) 60%, transparent 63% 83%, color-mix(in srgb, var(--tc) 55%, transparent) 85%, transparent 88%);border-radius:50%;animation:7s linear infinite pspin;position:absolute;inset:-6px}@keyframes pspin{to{transform:rotate(1turn)}}.book-card.t4,.book-card.t5{background:linear-gradient(#fff, color-mix(in srgb, var(--tc) 14%, #fff))}.book-card.unknown{background:#eee8dc;border-style:dashed;border-color:#9a907e;box-shadow:0 4px #b9ae98}.book-card.unknown:before{opacity:.35}.book-card.unknown .bc-art{background:radial-gradient(circle,#0000000f,#0000 68%)}.book-card.unknown .bc-art:after{display:none}.book-card.unknown img{opacity:.45}.bc-name{margin-top:2px;font-size:17px;font-weight:700;line-height:1.1}.bc-tier{font:13px "Luckiest Guy", var(--font);letter-spacing:.04em;color:var(--tt)}.bc-count{color:#6a6358;font-size:13px}.scrub-title{font:32px "Luckiest Guy", var(--font);letter-spacing:.02em;color:var(--yellow);text-shadow:0 3px #000,0 0 18px #ffd34d59;margin:0 0 6px}.scrub-title.done{animation:pstamp .5s var(--spring)}@keyframes pstamp{0%{opacity:0;transform:scale(2.2)rotate(-8deg)}60%{opacity:1}to{transform:none}}.scrub-canvas{aspect-ratio:1;touch-action:none;cursor:grab;width:100%;max-width:360px;margin:0 auto;display:block}.scrub-canvas:active{cursor:grabbing}.scrub-hint{color:#c9c3e6;margin:2px 0 0;font-size:16px;animation:1.6s ease-in-out infinite phint}@keyframes phint{50%{opacity:.55}}.scrub-meter{background:#2a2440;border:3px solid #000;border-radius:12px;max-width:300px;height:18px;margin:8px auto 0;position:relative;overflow:hidden}.scrub-meter span{background:repeating-linear-gradient(-45deg,#7ee36b 0 10px,#62cc52 10px 20px) 0 0/28px 28px;border-right:3px solid #000;height:100%;transition:width .18s ease-out;animation:.8s linear infinite pstripe;display:block}@keyframes pstripe{to{background-position:28px 0}}.scrub-result{animation:ppop .45s var(--spring)}.scrub-name{font:34px "Luckiest Guy", var(--font);letter-spacing:.02em;text-shadow:0 3px #000;margin:2px 0 0}.scrub-tier{font:19px "Luckiest Guy", var(--font);letter-spacing:.05em;color:#1b1b1b;animation:ptier .5s .12s var(--spring) both;border:3px solid #000;border-radius:10px;margin:4px 0;padding:3px 12px 1px;display:inline-block;box-shadow:0 3px #000}@keyframes ptier{0%{transform:scale(0)rotate(-12deg)}}.scrub-value{color:#f1ecff;margin:4px 0 8px;font-size:19px}.scrub-value b{color:var(--yellow)}.scrub-first{background:var(--yellow);color:#1b1b1b;animation:ptier .5s .25s var(--spring) both;border:3px solid #000;border-radius:12px;margin:4px 0 8px;padding:6px 10px;font-weight:700;box-shadow:0 3px #000}.scrub-actions{justify-content:center;gap:8px;margin-top:8px;display:flex}.scrub .pbtn{color:#1b1b1b}.pfade{opacity:0;pointer-events:none;z-index:30;background:radial-gradient(circle,#12142a,#000);transition:opacity .4s ease-in-out;position:absolute;inset:0}.pfade.on{opacity:1;pointer-events:auto}.parrive{z-index:31;pointer-events:none;animation:2.2s cubic-bezier(.3,1.4,.5,1) forwards parrive;position:absolute;top:22%;left:50%;transform:translate(-50%)}.parrive span{font:clamp(30px, 7vw, 54px) "Luckiest Guy", var(--font);letter-spacing:.03em;color:#fff;text-shadow:0 4px #1b1b1b;white-space:nowrap;border-bottom:6px solid var(--rc,var(--yellow));background:#1b1b1b59;border-radius:18px;padding:8px 26px 4px;display:block}.parrive.mr-fields{--rc:#74b356}.parrive.mr-woods{--rc:#3f8a4a}.parrive.mr-mountain{--rc:#9a9ab0}.parrive.mr-ice{--rc:#8ad0f0}.parrive.mr-cavern{--rc:#9a6ad0}.parrive.mr-beach{--rc:#f0c870}@keyframes parrive{0%{opacity:0;transform:translate(-50%,-20px)scale(.6)}14%{opacity:1;transform:translate(-50%)scale(1.05)}22%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)scale(.98)}}.book-tabs{flex-wrap:wrap;gap:6px;margin:8px 0 10px;display:flex}.btab{border:3px solid var(--ink);font:700 15px var(--font);cursor:pointer;box-shadow:0 3px 0 var(--ink);transition:transform .12s var(--spring);color:var(--ink);background:#fff;border-radius:12px;padding:5px 11px}.btab:hover{transform:translateY(-2px)}.btab:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.btab.on{background:var(--yellow);transform:translateY(-2px)rotate(-2deg)}.btab.locked{color:#8a8070;box-shadow:none;background:#ece6da;border-style:dashed}.map-list{flex-direction:column;gap:9px;display:flex}.map-row{text-align:left;border:3px solid var(--ink);font-family:var(--font);cursor:pointer;box-shadow:0 4px 0 var(--ink);color:var(--ink);transition:transform .14s var(--spring), box-shadow .14s;animation:prowIn .4s var(--spring) both;background:#fff;border-radius:14px;grid-template-columns:1fr auto;grid-template-areas:"name meta""line meta";align-items:center;gap:0 10px;padding:10px 12px 10px 14px;display:grid;position:relative}.map-row:nth-child(2){animation-delay:40ms}.map-row:nth-child(3){animation-delay:80ms}.map-row:nth-child(4){animation-delay:.12s}.map-row:nth-child(5){animation-delay:.16s}.map-row:nth-child(6){animation-delay:.2s}.map-row:nth-child(7){animation-delay:.24s}.map-row:disabled{cursor:default}.map-row:not(:disabled):hover{box-shadow:0 6px 0 var(--ink);transform:translateY(-2px)translate(2px)}.map-row:not(:disabled):active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.map-row.here{background:#fff3c4}.map-row.locked{box-shadow:none;color:#6a6254;background:#ece6da;border-style:dashed}.mr-name{font:21px "Luckiest Guy", var(--font);letter-spacing:.02em;grid-area:name}.mr-line{color:#5c554a;grid-area:line;font-size:15px;line-height:1.2}.mr-meta{color:var(--dirt);white-space:nowrap;grid-area:meta;font-size:15px;font-weight:700}.map-row:not(.locked){border-left-width:12px}.map-row:not(.locked):after{content:"";background:#ffffffb3;border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:-9px}.mr-fields{border-left-color:#74b356}.mr-woods{border-left-color:#2f5a34}.mr-mountain{border-left-color:#8a8a9a}.mr-ice{border-left-color:#8ac8e8}.mr-cavern{border-left-color:#6a4a9a}.mr-beach{border-left-color:#e8c070}@media (max-width:520px){.pchip{gap:5px;padding:3px 9px 3px 7px;font-size:17px}.pchip img{width:28px;height:14px}.pbtn{padding:7px 11px;font-size:16px}.shop-rows li{grid-template-columns:1fr auto}.sr-label{grid-column:1/-1;justify-self:start}.ppanel{padding:16px 12px}.ppanel h2{font-size:23px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.bc-art{width:70px;height:70px}.book-card img{width:66px;height:66px}.bc-name{font-size:15px}.sell-list li{grid-template-columns:44px 1fr auto auto}.sell-list img{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.ppanel,.pchip,.pbtn,.book-card,.map-row,.shop-rows li,.parrive,.scrub-result,.scrub-tier,.scrub-first,.scrub-title.done,.phud.bottom .pbtn,.phud.bottom .pbtn.primary{animation:none!important}.book-card.t4 .bc-art:after,.book-card.t5 .bc-art:after{animation:none}}
