*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#318f82;color:#fff1b1;font-family:"Arial Rounded MT Bold",Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #fff4bc;outline-offset:5px}a{color:inherit;text-decoration:none}.shop{width:100%;height:100%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(#329789,#6bbdaf 85%,#39a497)}.scene{width:1536px;height:1024px;position:relative;flex:none;transform-origin:center;isolation:isolate}.backdrop{position:absolute;width:100%;height:100%;inset:0;object-fit:fill;z-index:-2}.shop-title{position:absolute;top:20px;left:300px;width:840px;text-align:center}.shop-title h1{font-size:68px;margin:0;font-weight:1000;letter-spacing:-2px;text-shadow:0 3px 0 #32796d}.shop-title p{font-size:23px;font-weight:900;letter-spacing:2px;margin:4px;color:#ff99bd}.pill{border:0;background:transparent;position:relative;display:flex;align-items:center;justify-content:center;width:180px;height:70px;isolation:isolate;color:#fff0b3;font-weight:1000;font-size:24px;letter-spacing:.3px;filter:drop-shadow(0 5px 3px #21463b45);transition:transform .2s,filter .2s}.pill:before{content:"";position:absolute;inset:0;background:var(--pill) center/100% 100% no-repeat;z-index:-1}.pill span{position:relative;text-shadow:0 2px 1px #6d33313d;transform:translateY(-2px)}.pill:hover{filter:drop-shadow(0 6px 5px #21463b55) brightness(1.06);transform:translateY(-2px)}button.pill:active,a.pill:active{transform:translateY(2px) scale(1.025,.94)}.pink{--pill:url(assets/pill-pink.webp)}.cream{--pill:url(assets/pill-cream.webp);color:#be456b}.white{--pill:url(assets/pill-white.webp);color:#79b89a}.ticker{position:absolute;top:20px;right:302px;width:115px;height:50px;font-size:25px}.top-links{position:absolute;right:105px;top:91px;display:flex;gap:12px}.top-links .pill{width:115px;height:48px;font-size:20px}.stock{position:absolute;inset:0;pointer-events:none}.box{position:absolute;width:143px;height:185px;padding:0;border:0;background:none;pointer-events:auto;transform-origin:center bottom;z-index:3;--glow:#ffb3d8;will-change:transform;transition:filter .28s}.box-art{position:absolute;inset:0;display:block;transform-origin:50% 90%;transition:transform .35s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(3px 6px 3px #143d4055)}.package{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:hue-rotate(var(--hue))}.box-face{position:absolute;left:12%;top:29%;width:38%;height:35%;object-fit:cover;border-radius:50%;box-shadow:0 1px 2px #fff7}.box-label{position:absolute;top:12%;left:8%;right:8%;font-size:12px;color:#fff1b3;font-weight:900;text-shadow:0 1px 2px #51345e;line-height:1.1}.box-code{position:absolute;bottom:11%;left:16%;font-size:12px;font-weight:900;color:#fff6d6}.box:before{content:"";position:absolute;inset:-12px;border-radius:20px;background:var(--glow);filter:blur(19px);opacity:0;transition:opacity .3s;z-index:-1}.box:hover:before,.box:focus-visible:before{opacity:.68}
.box:not(.selected):not(.travel):hover:before,.box:not(.selected):not(.travel):focus-visible:before{opacity:.9;inset:-16px}.box:not(.travel):not(.selected):hover .box-art,.box:not(.travel):not(.selected):focus-visible .box-art{transform:translateY(-12px) scale(1.035)}.box.selected{z-index:12;filter:drop-shadow(0 0 8px var(--glow))}.box.selected:before{opacity:.6;animation:glow 3.2s ease-in-out infinite}.box.selected .box-art{animation:inside 6s ease-in-out infinite}.box.selected:hover:before{opacity:.95}.box.selected:hover .box-art{animation:none;transform:rotate(-1.2deg) scale(1.015)}.box.travel{z-index:15}.box.travel:before{opacity:.4}.box-reflection{position:absolute;inset:0;transform:translateY(100%) scaleY(-1);opacity:0;pointer-events:none;filter:blur(2px);mask-image:linear-gradient(to top,#0008,transparent 28%)}.selected .box-reflection{opacity:.2}.counter-shadow{position:absolute;left:590px;top:890px;width:355px;height:32px;background:#263529;filter:blur(14px);border-radius:50%;opacity:0;transition:opacity .4s;z-index:2}.counter-glow{position:absolute;left:490px;top:850px;width:550px;height:90px;border-radius:50%;filter:blur(25px);opacity:0;transition:opacity .5s;z-index:1;pointer-events:none}.counter-button{position:absolute;top:838px;width:245px;height:100px;z-index:20;font-size:29px}.counter-button:after{content:"";position:absolute;inset:0;background:var(--pill) center/100% 100% no-repeat;transform:translateY(95%) scaleY(-1);opacity:.25;mask-image:linear-gradient(to top,#000,transparent 52%);filter:blur(2px);z-index:-2;pointer-events:none}.shuffle{left:201px}.twitter{left:941px;width:220px}.copy{left:1182px;width:235px}.shop-hint{position:absolute;top:968px;width:100%;text-align:center;margin:0;font-size:20px;font-weight:900;letter-spacing:3px}.lamp{position:absolute;top:0;width:110px;height:150px;transform-origin:50% 0;z-index:23;cursor:grab;outline-offset:-10px}.lamp img{width:100%;height:100%;object-fit:contain}.lamp-left{left:54px}.lamp-right{right:4px}.lucky-cat{position:absolute;left:1471px;top:315px;width:63px;height:104px}.lucky-cat>img{width:100%;height:100%;object-fit:contain}.lucky-cat .cat-paw{position:absolute;left:2%;top:0;width:31%;height:40%;transform-origin:center 90%;animation:wave 2.4s ease-in-out infinite}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,15px);padding:12px 22px;border-radius:24px;background:#204f48ee;color:#fff1b7;opacity:0;transition:.2s;z-index:100;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #ffffff88;border-radius:28px;padding:20px 28px;background:linear-gradient(135deg,#fbedc4,#bde7d8);color:#2a655d;width:min(1000px,94vw);height:min(900px,92dvh);box-shadow:0 20px 100px #123e5280;overflow:hidden}dialog::backdrop{background:#123b398a;backdrop-filter:blur(8px)}.viewer-layout{height:100%;display:flex;flex-direction:column}.viewer-layout header{display:flex;align-items:center;justify-content:space-between}.viewer-layout h2{margin:5px 0;font-size:28px}.viewer-layout small{font-size:14px;letter-spacing:2px}.close{width:80px;height:58px;font-size:36px}.tabs{display:flex;justify-content:center;gap:10px}.tabs .pill{width:130px;height:55px;font-size:19px}.tabs [aria-pressed=true]{filter:drop-shadow(0 0 6px #ec79a8)}.media-area{position:relative;flex:1;min-height:0;display:grid;place-items:center;margin-top:12px}.media-area>img{height:100%;width:100%;min-height:0;object-fit:contain;border-radius:14px}.media-area>p{font-size:20px}.media-prev,.media-next{position:absolute;top:45%;width:55px;height:55px;font-size:35px}.media-prev{left:0}.media-next{right:0}#media-count{text-align:center;margin:8px 0 0;font-size:14px}[hidden]{display:none!important}.forest-signature{z-index:30!important}@keyframes inside{0%,68%,82%,100%{transform:rotate(0)}71%{transform:rotate(-.8deg)}74%{transform:rotate(.9deg)}78%{transform:rotate(-.4deg)}}@keyframes glow{50%{opacity:.83}}@keyframes wave{50%{transform:rotateX(30deg) rotate(-8deg)}}@media(max-width:700px){.forest-signature{transform:scale(.8);transform-origin:left bottom}.shop{overflow:auto}.shop-hint{font-size:24px}.viewer-layout h2{font-size:21px}dialog{padding:16px}.tabs .pill{width:100px}.top-links .pill{font-size:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.lamp:before{content:"";position:absolute;top:0;left:50%;width:3px;height:48px;background:linear-gradient(90deg,#bb682e,#ffe49b,#b66b34)}.lamp img{position:absolute;top:43px;left:0;height:110px}.lucky-cat>img:first-child{clip-path:polygon(0 0,71% 0,71% 57%,100% 57%,100% 100%,0 100%)}.lucky-cat .cat-paw{left:71%;top:19%;width:29%;height:42%;object-fit:fill}.pill:before{filter:drop-shadow(0 2px 1px #59364633)}
.shop{display:block;position:relative}.shop:after{content:"";display:block;width:var(--scene-width,100%);height:100%;pointer-events:none}.mobile-toolbar{display:none}.box-reflection .box-art{animation:none!important;transform:none!important}.box-reflection .box-face{display:none}@media(max-width:700px){.shop{height:calc(100% - 62px);overflow-x:auto;overflow-y:hidden}.mobile-toolbar{position:fixed;bottom:0;left:0;right:0;height:62px;display:flex;justify-content:center;align-items:center;gap:8px;background:#348b7e;z-index:40}.mobile-toolbar button{border:0;border-radius:24px;background:#ffe6a8;padding:12px 16px;color:#af3d67;font-weight:900;font-size:14px;box-shadow:inset 0 2px 2px #fff,0 3px 3px #205b53}.forest-signature{bottom:68px!important}.toast{bottom:75px}}

/* Approved polish: fixed proportions, moulded lettering, grounded cat. */
@font-face{font-family:DollLettering;src:url(assets/LilitaOne-Regular.ttf) format('truetype');font-weight:400;font-style:normal;font-display:swap}
.shop{background:linear-gradient(to bottom,#369f96 0%,#53b5a7 calc(var(--counter-start,93vh) - 2px),#80d1c4 var(--counter-start,93vh),#329f92 calc(var(--counter-start,93vh) + 5px),#2a8d82 100%)}
.pill{--letter-face:#fff0b3;--letter-edge:#c09255;--letter-shadow:#78464b;--letter-highlight:#fffbe7}
.pill.cream{--letter-face:#d65083;--letter-edge:#9c335f;--letter-shadow:#9f684a;--letter-highlight:#ffbfda}
.pill.white{--letter-face:#91c9a5;--letter-edge:#569575;--letter-shadow:#5a8871;--letter-highlight:#e5ffec}
.pill span{font-family:DollLettering,'Arial Rounded MT Bold',sans-serif;font-weight:400;letter-spacing:.7px;line-height:1.05;color:var(--letter-face);-webkit-text-stroke:.35px var(--letter-edge);paint-order:stroke fill;text-shadow:0 -1px 0 var(--letter-highlight),.5px 1px 0 var(--letter-edge),1px 2px 0 var(--letter-edge),1px 3px 1px var(--letter-shadow),0 4px 3px #58392c30;transform:translateY(-3px)}
.pill:active span{text-shadow:0 -1px 0 var(--letter-highlight),0 1px 0 var(--letter-edge),0 2px 1px var(--letter-shadow)}
.counter-button span{font-size:31px}.top-links .pill span{font-size:21px}.ticker span{font-size:28px}.tabs .pill span{font-size:20px}.close span{font-size:36px}.media-prev span,.media-next span{font-size:35px}
.lucky-cat{top:322px}.lucky-cat:before{content:'';position:absolute;left:5%;right:3%;height:5px;bottom:0;background:#6a513c65;filter:blur(2px);border-radius:50%;z-index:-1}
.mobile-toolbar button{font-family:DollLettering,'Arial Rounded MT Bold',sans-serif;font-weight:400;letter-spacing:.4px;text-shadow:0 -1px #ffe8f1,0 1px #853652}
/* Fixed-size hand; press deformation is anchored to its fingertip. */
#doll-cursor{position:fixed;inset:auto;margin:0;padding:0;border:0;background:none;width:0;height:0;overflow:visible;pointer-events:none;z-index:2147483647;opacity:0;contain:layout style}
#doll-cursor::backdrop{background:transparent;pointer-events:none}
#doll-cursor img{position:absolute;left:-9.95px;top:-.37px;width:33.55px;height:45px;max-width:none;transform-origin:9.95px .37px;pointer-events:none;filter:drop-shadow(0 1px 1px #4b254040);transition:transform 100ms ease-out,filter 100ms ease-out}
#doll-cursor.pressed img{transform:scale(1.055,.92);filter:brightness(.97) drop-shadow(0 .5px .5px #4b254040)}
@media(hover:hover) and (pointer:fine){html.vinyl-cursor-active,html.vinyl-cursor-active *{cursor:none!important}}
@media(prefers-reduced-motion:reduce){#doll-cursor img{transition:none}#doll-cursor.pressed img{transform:none}}

/* Final shop polish: retain a sharp centre, soften only the outer joins. */
.lucky-cat{top:328px}
.ticker{left:150px;right:auto;top:36px;width:230px;height:100px;z-index:21}
.ticker span{font-size:54px}
.ticker:hover{transform:none;filter:drop-shadow(0 5px 3px #21463b45)}
button.ticker:active{transform:translateY(2px) scale(1.025,.94)}
.backdrop{border-radius:18px;mask-image:linear-gradient(to right,transparent,#000 var(--edge-x,0px),#000 calc(100% - var(--edge-x,0px)),transparent),linear-gradient(to bottom,transparent,#000 var(--edge-y,0px),#000 calc(100% - var(--edge-y,0px)),transparent);mask-composite:intersect}
.scene:before{content:'';position:absolute;inset:6px;border-radius:28px;box-shadow:0 0 32px 6px #ffc3d938,0 0 75px 14px #f4a6cc20;z-index:-3;pointer-events:none}
.stock.shuffling .box{pointer-events:none}
.stock.shuffling .box:before{opacity:0}
.stock.shuffling .box .box-art{transform:none!important}

/* Slightly smaller ticker, brighter perimeter and responsive foliage. */
.ticker{left:180px;top:46px;width:184px;height:80px}
.ticker span{font-size:43.2px}
.scene:before{box-shadow:0 0 36px 8px #ffc3d954,0 0 85px 18px #f4a6cc30}
.leafy-border{position:absolute;inset:-75px -90px auto;width:calc(100% + 180px);height:calc(100% + 95px);object-fit:fill;z-index:0;pointer-events:none;filter:drop-shadow(0 3px 4px #153e4030)}
.shop-foreground{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6;object-fit:fill}

.shop-title{z-index:1}

.shop-foreground{mask-image:url(assets/shop-foreground-mask.webp);mask-size:100% 100%;mask-repeat:no-repeat}

/* Close-up corrections: foreground joins and precise lamp silhouette. */
.ticker{top:64px}
.shop-foreground{clip-path:url(#foreground-outline);mask-image:url(assets/shop-foreground-mask.webp),linear-gradient(to right,transparent,#000 var(--edge-x,0px),#000 calc(100% - var(--edge-x,0px)),transparent);mask-size:100% 100%;mask-composite:intersect}
.lower-leaves{inset:95px -45px auto;width:calc(100% + 90px);height:calc(100% - 100px);z-index:7;mask-image:linear-gradient(to bottom,transparent 47%,#000 64%);filter:drop-shadow(0 3px 3px #153e4020)}

/* Extra lower-left coverage, reusing the approved foliage artwork. */
.corner-leaves{inset:250px auto auto -95px;width:calc(100% + 130px);height:calc(100% - 120px);z-index:8;mask-image:linear-gradient(to bottom,transparent 42%,#000 58%),linear-gradient(to right,#000 0%,#000 8%,transparent 14%);mask-composite:intersect;filter:drop-shadow(0 3px 3px #153e4020)}

/* Compact sound controls; visible inside the modal too. */
.sound-toggle{position:fixed;right:18px;bottom:12px;width:132px;height:48px;z-index:45}
.sound-toggle span,.viewer-sound span{font-size:17px}
.viewer-sound{width:132px;height:48px;margin-left:auto;margin-right:14px}
@media(max-width:700px){.sound-toggle{bottom:72px;right:10px}.viewer-sound{width:105px;margin-right:4px}.viewer-sound span{font-size:14px}}

/* Approved first real package: preserve artwork and native proportions. */
.finished-package{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:146px;height:185px;overflow:hidden}
.package.package-finished{left:-15.4%;top:-1%;width:130.35%;height:auto;object-fit:contain;filter:none;clip-path:polygon(11.9% 3.5%,14.7% 2%,82.7% 1.2%,86.6% .8%,88.2% 1.5%,88.5% 90.5%,83.2% 98.2%,12% 95.3%)}

/* Keep viewer controls outside the media's flexible sizing area. */
.viewer-layout>header,.viewer-layout>.tabs{flex-shrink:0;position:relative;z-index:1}
.media-area{overflow:hidden}

/* Approved vinyl wordmark: subtitle cropped out; native proportions preserved. */
.shop-title.vinyl-title{left:408px;top:14px;width:720px;height:130px;overflow:hidden;pointer-events:none}
.vinyl-title>p{display:none}
.vinyl-title>img{position:absolute;left:-11px;top:-54px;width:732px;height:auto;max-width:none;filter:drop-shadow(0 3px 2px #164f4938)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Reuse the approved raised subtitle artwork at the counter foot. */
.shop-hint.personality-caption{top:960px;left:calc(50% - 360px);width:720px;height:42px;font-size:0;background:url(assets/pump-doll-title.png) center -259px / 1000px auto no-repeat;pointer-events:none}
