.shop-page{background:#181818}.shop-page .shell{max-width:1440px;padding-inline:clamp(18px,4vw,56px)}
.shop-page main{padding:22px 0 72px}.shop-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.shop-heading h1{font:400 clamp(28px,3vw,38px)/1.2 var(--sans);letter-spacing:-.04em;margin:0}
.shop-game-link{display:flex;align-items:center;gap:20px;font-size:13px;color:#b4b4b4;min-height:44px}
.shop-wallet{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px;padding:16px 20px;background:linear-gradient(110deg,#2c2c2c,#232323);box-shadow:inset 0 1px #ffffff05,0 3px 12px #0002;border-radius:16px}
.shop-balance{display:flex;align-items:center;gap:13px;background:none;border:0;padding:0;text-align:left;color:#eee;min-height:48px}
.shop-balance small{display:block;color:#b1b1b1;font-size:11px;line-height:1.5}.shop-balance strong{font-size:28px;font-weight:400;letter-spacing:-.04em;line-height:1.15}
.wallet-history-arrow{font-size:13px;align-self:flex-end;margin-bottom:5px;color:#8a8a8a}
.play-coin{position:relative;display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:repeating-conic-gradient(from 15deg,#5e5e5e 0deg 2deg,#b5b5b5 2deg 3deg);padding:3px;box-shadow:0 3px 2px #111,0 6px 9px #0004}
.play-coin:before{content:'';position:absolute;inset:3px;border-radius:50%;background:linear-gradient(125deg,#dedede,#8c8c8c 58%,#c5c5c5);box-shadow:inset 0 0 0 1px #d6d6d6,inset 0 0 0 3px #909090}
.play-coin i{z-index:1;width:16px;height:16px;background:linear-gradient(140deg,#5b5b5b,#8d8d8d);clip-path:polygon(0 0,42% 0,42% 42%,58% 42%,58% 0,100% 0,100% 42%,58% 42%,58% 58%,100% 58%,100% 100%,58% 100%,58% 58%,42% 58%,42% 100%,0 100%,0 58%,42% 58%,42% 42%,0 42%)}
.shop-daily{display:flex;align-items:center;gap:24px}.shop-daily>span{color:#b4b4b4;font-size:12px}.shop-daily button{border:0;border-radius:10px;padding:12px 17px;min-height:44px;background:linear-gradient(#484848,#353535);box-shadow:inset 0 1px #ffffff0e,0 2px 5px #0003;color:#e0e0e0;font-size:13px;white-space:nowrap}
.shop-daily button:disabled{background:#ffffff05;box-shadow:none;color:#909090}
.shop-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:30px;align-items:start}
.shop-showcase{position:sticky;top:18px;min-width:0;border-radius:20px;background:linear-gradient(145deg,#262626,#202020);box-shadow:0 5px 22px #0002;overflow:hidden}
.shop-page .world-motion{opacity:.16}
.shop-showroom{position:relative;height:clamp(235px,calc(100dvh - 490px),420px);background:radial-gradient(ellipse at 45% 38%,#333,#222 72%);overflow:hidden}
.shop-preview,.shop-preview-fallback{position:absolute;inset:0}.shop-preview canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.shop-preview-fallback{display:grid;place-items:center;pointer-events:none}.shop-preview-fallback svg{width:62%;height:80%;filter:drop-shadow(0 14px 8px #0005)}
.shop-preview-caption{position:absolute;left:23px;bottom:19px;color:#a0a0a0;font-size:10px;letter-spacing:.07em}
.shop-roll{position:absolute;right:17px;bottom:13px;border:0;border-radius:9px;padding:9px 15px;min-height:40px;background:#ffffff0d;box-shadow:inset 0 1px #ffffff08;color:#ccc;font-size:12px}.shop-roll:disabled{opacity:.4}
.shop-item-details{padding:23px 25px 18px}.shop-item-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.shop-item-kind{color:#a0a0a0;font-size:11px}.shop-item-details h2{font:400 clamp(23px,2.3vw,30px)/1.3 var(--sans);letter-spacing:-.025em;margin:7px 0 0}.shop-item-number{color:#555;font-size:28px;font-weight:300;letter-spacing:-.05em}
.shop-item-details>p{color:#aaa;font-size:13px;line-height:1.65;margin:14px 0 23px;min-height:22px}
.shop-buy-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.shop-price{font-size:23px;letter-spacing:-.02em}.shop-price small{font-size:11px;color:#a0a0a0;margin-left:8px;letter-spacing:0}
.shop-buy{min-height:46px;min-width:148px;border:0;border-radius:11px;background:linear-gradient(#e0e0e0,#aaa);color:#202020;box-shadow:inset 0 1px #ffffff70,0 4px 7px #0004;font-size:13px;padding:12px 20px}
.shop-buy:disabled{background:#ffffff08;color:#969696;box-shadow:none}.shop-item-details .shop-product-note{margin:15px 0 0;font-size:11px;min-height:18px;color:#929292}
.shop-tabs{display:flex;gap:3px;padding:4px;background:#1117;border-radius:11px;margin-bottom:15px;max-width:max-content}.shop-tabs button{min-height:38px;border:0;border-radius:8px;background:transparent;color:#929292;font-size:12px;padding:9px 18px;white-space:nowrap}.shop-tabs button[aria-pressed=true]{background:linear-gradient(#3c3c3c,#303030);color:#e4e4e4;box-shadow:0 2px 4px #0003}
.shop-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 11px}
.shop-product{min-width:0;position:relative;background:none;border:0;border-radius:13px;color:#b5b5b5;padding:0;text-align:left;outline-offset:4px}
.shop-product-art{height:clamp(110px,11.5vw,160px);display:grid;place-items:center;border-radius:12px;background:radial-gradient(ellipse at 42% 28%,#353535,#252525 80%);box-shadow:inset 0 1px #ffffff05,inset 0 -1px #0004,0 3px 4px #0002;transition:background .2s,box-shadow .2s}
.shop-product-art svg{width:90%;height:94%;filter:drop-shadow(0 5px 3px #0004);transition:transform .2s}
.shop-product[aria-pressed=true] .shop-product-art{background:radial-gradient(ellipse at 45% 20%,#484848,#303030);box-shadow:inset 0 1px #ffffff0c,inset 0 -2px #9a9a9a,0 3px 4px #0002}
.shop-product-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin:9px 1px 4px;color:#c7c7c7}.shop-product-price{display:block;font-size:11px;margin:0 1px;color:#898989;min-height:15px}
.shop-product[aria-pressed=true] .shop-product-name{color:#f2f2f2}.shop-product-equipped{position:absolute;right:10px;top:9px;font-size:11px;color:#eee}
.shop-empty{color:#999;padding:30px 5px;font-size:13px;line-height:1.7}
.shop-feedback{position:fixed;z-index:130;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#383838;box-shadow:0 8px 30px #0006;max-width:calc(100% - 32px);padding:13px 18px;border-radius:12px;display:flex;align-items:center;gap:18px}
.shop-feedback p{margin:0;font-size:13px;line-height:1.5}.shop-feedback button{border:0;border-radius:7px;min-height:34px;background:#555;color:#eee;font-size:12px;padding:5px 12px;white-space:nowrap}
.shop-ledger{color:#ddd;position:fixed;inset:0;border:0;border-radius:20px;background:linear-gradient(145deg,#2d2d2d,#222);width:440px;max-width:calc(100vw - 28px);max-height:80dvh;padding:24px;box-shadow:0 25px 80px #0009}
.shop-ledger::backdrop{background:#0008;backdrop-filter:blur(7px)}.shop-ledger-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.shop-ledger-heading h2{margin:0;font:400 21px var(--sans);letter-spacing:-.025em}.shop-ledger-heading button{width:40px;height:40px;border:0;border-radius:10px;background:#ffffff06;font-size:22px;color:#bbb}
.shop-ledger-note{font-size:11px;color:#999;margin:10px 0 22px}.shop-ledger ol{list-style:none;margin:0;padding:0}.shop-ledger li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;box-shadow:0 1px #ffffff05;font-size:13px}.shop-ledger li small{display:block;margin-top:5px;font-size:10px;color:#999}.shop-ledger li strong{font-size:16px;font-weight:400;white-space:nowrap}
.shop-page :is(button,a){touch-action:manipulation}.shop-page button:active:not(:disabled){transform:translateY(1px)}
@media(hover:hover){.shop-product:hover .shop-product-art svg{transform:translateY(-3px)}.shop-buy:hover:not(:disabled){filter:brightness(1.08)}}
@media(max-width:1080px){.shop-layout{gap:20px;grid-template-columns:1fr 1fr}.shop-products{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-product-art{height:150px}.shop-daily{gap:14px}}
@media(max-width:700px){
 .shop-page .shell{padding-inline:16px}.shop-page main{padding:14px 0 40px}.shop-heading{margin-bottom:17px}.shop-heading h1{font-size:27px}.shop-game-link{font-size:12px;gap:12px}
 .shop-wallet{padding:13px 15px;margin-bottom:17px;gap:12px;border-radius:13px}.shop-balance{gap:10px}.play-coin{width:36px;height:36px}.shop-balance strong{font-size:24px}.shop-balance small{font-size:10px}.wallet-history-arrow{display:none}
 .shop-daily{flex-direction:column-reverse;align-items:flex-end;gap:5px}.shop-daily>span{font-size:10px;max-width:185px;text-align:right}.shop-daily button{font-size:11px;min-height:38px;padding:9px 12px}
 .shop-layout{display:block}.shop-showcase{position:relative;top:auto;border-radius:16px}.shop-showroom{height:260px}.shop-item-details{padding:16px 19px 15px}.shop-item-details h2{font-size:24px}.shop-item-details>p{font-size:12px;margin:10px 0 15px}.shop-item-kind{font-size:10px}.shop-price{font-size:22px}.shop-buy{min-height:44px;min-width:143px}.shop-item-details .shop-product-note{margin-top:11px;font-size:10px}
 .shop-preview-caption{left:18px;bottom:18px;font-size:9px}.shop-roll{right:12px;bottom:10px}.shop-collection{margin-top:22px}.shop-tabs{margin-bottom:13px}.shop-tabs button{padding:8px 18px;font-size:12px}.shop-products{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}.shop-product-art{height:112px}.shop-product-name{font-size:11px}.shop-product-price{font-size:10px}
 .shop-ledger{padding:19px}.shop-ledger li{font-size:12px}
}
@media(max-width:360px){.shop-products{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-product-art{height:132px}.shop-showroom{height:230px}.shop-daily>span{max-width:145px}.shop-buy{min-width:128px}.shop-tabs button{padding-inline:15px}}
@media(prefers-reduced-motion:reduce){.shop-page *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* The object stays centre stage from approval to the ownership reveal. */
.shop-purchase{position:fixed;inset:0;width:410px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 32px);margin:auto;padding:22px 26px 18px;overflow:auto;border:0;border-radius:24px;color:#ddd;background:radial-gradient(ellipse at 50% 0,#ffffff09,transparent 65%),linear-gradient(145deg,#303030,#202020);box-shadow:inset 0 1px #ffffff0b,0 28px 90px #0009;text-align:center;overscroll-behavior:contain}
.shop-purchase::backdrop{background:#101010ba;backdrop-filter:blur(8px)}
.purchase-close{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:none;color:#aaa;font-size:23px}
.purchase-art{position:relative;isolation:isolate;display:grid;place-items:center;height:194px;margin:4px 0 4px;pointer-events:none}
.purchase-art::before{content:'';position:absolute;inset:12px 14%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#ffffff0d,transparent 69%);opacity:.5}
#purchase-object{width:210px;height:190px;max-width:100%;transform:translateY(0);filter:drop-shadow(0 14px 12px #0005)}
#purchase-object svg{width:100%;height:100%;display:block}
.purchase-seal{position:absolute;right:calc(50% - 77px);bottom:16px;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:linear-gradient(130deg,#efefef,#aaa);box-shadow:0 0 0 5px #272727,0 5px 10px #0004;color:#333;font-size:14px;opacity:0}
.shop-purchase[data-phase=success] .purchase-seal,.shop-purchase[data-phase=owned] .purchase-seal,.shop-purchase[data-phase=equipping] .purchase-seal,.shop-purchase[data-phase=equipped] .purchase-seal{opacity:1}
.purchase-kicker{font-size:11px;letter-spacing:.04em;color:#a6a6a6;margin:3px 0 8px;min-height:16px}
.shop-purchase h2{margin:0;font:500 27px/1.25 var(--sans);letter-spacing:-.04em}
.purchase-kind{font-size:11px;color:#999;line-height:1.5;margin:8px 0 22px}
.purchase-receipt{display:flex;flex-direction:column;justify-content:center;min-height:78px;padding:15px 16px;border-radius:13px;background:#15151570;box-shadow:inset 0 1px 4px #0002;margin-bottom:17px;text-align:left}
.purchase-charge,.purchase-wallet{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:#a9a9a9}
.purchase-charge{margin-bottom:13px}.purchase-charge strong{font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;color:#e1e1e1}
.purchase-wallet>span:last-child{display:flex;gap:10px;align-items:center}.purchase-wallet b{font-weight:400;font-size:12px;font-variant-numeric:tabular-nums}.purchase-wallet b:last-child{color:#ddd}.purchase-wallet i{font-style:normal;color:#747474}
.purchase-receipt[data-confirmed=true] .purchase-charge,.purchase-receipt[data-confirmed=true] .purchase-wallet i,.purchase-receipt[data-confirmed=true] #purchase-after{display:none}
.purchase-receipt[data-confirmed=true] #purchase-before{color:#ddd;font-size:16px}
.purchase-actions{display:grid;gap:5px}.purchase-actions button{width:100%;min-height:46px;border:0;border-radius:11px;font:500 13px/1.4 var(--sans);padding:10px 14px;touch-action:manipulation}
#purchase-primary{background:linear-gradient(140deg,#e8e8e8,#b8b8b8);color:#282828;box-shadow:inset 0 1px #ffffff90,0 3px 8px #0003}
#purchase-primary:disabled{opacity:.45}#purchase-secondary{background:none;color:#a0a0a0;min-height:40px;font-weight:400;font-size:12px}
.purchase-error{font-size:12px;line-height:1.6;color:#ddd;margin:0 0 14px}.purchase-error[hidden]{display:none}
.purchase-art>i{position:absolute;left:50%;top:48%;width:4px;height:4px;background:#dcdcdc;border-radius:1px;opacity:0;--x:104px;--y:-30px}
.purchase-art>i:nth-of-type(2){--x:68px;--y:-74px}.purchase-art>i:nth-of-type(3){--x:-91px;--y:-52px}.purchase-art>i:nth-of-type(4){--x:-108px;--y:35px}.purchase-art>i:nth-of-type(5){--x:-49px;--y:77px}.purchase-art>i:nth-of-type(6){--x:92px;--y:54px}
.shop-purchase[data-celebrating=true] #purchase-object{animation:purchase-reveal 850ms cubic-bezier(.16,.8,.2,1) both}
.shop-purchase[data-celebrating=true] .purchase-art::before{animation:purchase-halo 950ms ease-out both}
.shop-purchase[data-celebrating=true] .purchase-art>i{animation:purchase-spark 900ms 80ms cubic-bezier(.15,.65,.3,1) both}
.shop-purchase[data-celebrating=true] .purchase-seal{animation:purchase-stamp 500ms 180ms cubic-bezier(.18,.8,.2,1) both}
@keyframes purchase-reveal{0%{transform:translateY(5px) scale(.91)}55%{transform:translateY(-8px) scale(1.06)}100%{transform:none}}
@keyframes purchase-halo{0%{opacity:.3;transform:scale(.55)}45%{opacity:1;transform:scale(1.15)}100%{opacity:.5;transform:scale(1)}}
@keyframes purchase-stamp{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes purchase-spark{0%{opacity:0;transform:translate(calc(var(--x)*.35),calc(var(--y)*.35)) scale(.5)}20%{opacity:.85}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(70deg) scale(.35)}}
.shop-purchase :is(button,a):focus-visible{outline:1.5px solid #c7c7c7;outline-offset:3px}
@media(max-width:700px){.shop-purchase{padding:17px 20px 13px;border-radius:21px}.purchase-art{height:165px}#purchase-object{width:190px;height:166px}.shop-purchase h2{font-size:25px}.purchase-kind{margin-bottom:17px}.purchase-receipt{margin-bottom:13px}.purchase-seal{bottom:8px}}
@media(max-height:640px){.purchase-art{height:128px}#purchase-object{height:130px;width:154px}.purchase-kind{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.shop-purchase *, .shop-purchase *::before{animation:none!important;transition:none!important}}
