/* Shared toy-world materials and phone-sized game scenes. */
:root{--ink:#4f4268;--muted:#695c77;--ui-shadow:#bba9c8;--paper:#fff9ed}
body{color:var(--ink)}h1,h2,h3{letter-spacing:-.025em}.page-heading h1{font-size:28px;text-shadow:none}small,.tiny,.small-print{color:#625570}.btn,.icon-button{border:2px solid #fff9ef;box-shadow:inset 0 2px #ffffffb3,0 4px var(--ui-shadow);color:#56466c}.btn:active,.icon-button:active{transform:translateY(3px);box-shadow:inset 0 1px 3px #82709844,0 1px var(--ui-shadow)}.game-coin{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff8ad,#ffd057 65%,#e8a12e);border:2px solid #ffeaa0;box-shadow:inset 0 0 0 2px #dc9d37,0 3px #c48a32;color:#bd8129;vertical-align:middle;flex-shrink:0}.game-coin svg{width:16px;height:16px;fill:#fff0a3;stroke-width:1.8}.wallet{display:flex;align-items:center;gap:7px;padding:7px 11px;background:#fff8d9;border:2px solid white;border-radius:20px;font-weight:900;white-space:nowrap}.game-hand{display:inline-block;width:40px;height:50px;filter:drop-shadow(0 3px 1px #90623b44)}.game-hand svg{height:100%;width:100%}.flying-coin{position:fixed;z-index:99999;pointer-events:none}.hunter-earned{display:flex;justify-content:center;gap:15px}.hunter-earned .game-coin{width:55px;height:55px}.hunter-earned svg{width:30px;height:30px}
.shop-building{display:block;background-size:contain;background-position:center bottom;background-repeat:no-repeat;width:100%;height:100%;filter:drop-shadow(0 8px 4px #53674b33)}.street-world{position:relative;isolation:isolate;min-height:220px;border-radius:28px;background:linear-gradient(#c8e9f3 0 54%,#c3dca6 54% 70%,#f3dec0 70%);overflow:hidden;border:3px solid #fff7e4}.street-sky{position:absolute;inset:4% 0 50%;background:radial-gradient(ellipse at 25% 20%,#fff9 0 13%,transparent 14%),radial-gradient(ellipse at 70% 45%,#fff7 0 11%,transparent 12%)}.street-ground{position:absolute;inset:78% 0 0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 30px,#dbc7a855 30px 32px)}.hunter-shops{height:100%;display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding:0 22px 12px}.hunter-shop,.hunter-shop.locked{flex:0 0 42%;min-width:180px;height:100%;scroll-snap-align:center;background:none;border:0;border-radius:0;box-shadow:none;padding:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:3px;color:#514464}.hunter-shop:before{display:none}.hunter-shop .shop-building{min-height:0}.hunter-shop strong{background:#fff9e8e8;border:2px solid white;border-radius:10px;padding:4px 8px;font-size:15px;line-height:1.15}.hunter-shop small{margin:0;font-size:11px}.hunter-shop.locked .shop-building{filter:grayscale(.7) drop-shadow(0 6px 3px #53674b33);opacity:.68}.adventure-header{display:flex;align-items:center;gap:10px;padding:4px 0}.adventure-header>div{flex:1}.adventure-header h1{font-size:23px;margin:0}.adventure-header p{font-size:12px;margin:4px 0}.player-closeup{display:block;width:56px;height:60px;overflow:hidden;background:#dcf0e9;border:2px solid white;border-radius:18px;flex-shrink:0}.player-closeup .levi{width:67px;height:100px;max-width:none;transform:translateX(-6px)}.player-closeup .art-lucy{width:73px;height:98px;transform:translateX(-8px)}.hunter-tools{margin:7px 0;display:flex;gap:8px}.hunter-tools .btn{flex:1;padding:8px;font-size:13px;min-height:44px}.hunter-tools svg{width:23px;height:23px}.hunter-tools .icon-button{min-width:44px}.delivery-journey{border:2px solid #fff8e8;border-radius:20px;background:#e1efd8;padding:6px 12px;color:#4c6250;box-shadow:0 3px #a9bb98;display:flex;align-items:center;gap:15px;width:100%;text-align:left}.delivery-road{position:relative;height:44px;flex:1;min-width:100px;background:linear-gradient(transparent 58%,#c4b7a2 58% 91%,transparent 91%)}.delivery-road:after{content:'';position:absolute;inset:77% 0 auto;height:2px;background:repeating-linear-gradient(90deg,white 0 7px,transparent 7px 14px)}.road-truck{position:absolute;left:clamp(0px,calc(var(--journey)*.72),72%);bottom:0;width:55px;height:43px;z-index:1;transition:left 1s linear}.road-truck .world-art{width:100%;height:100%}.road-house{position:absolute;right:0;top:0;background:#fff0bb;border-radius:9px;padding:3px}.road-house svg{width:27px;height:27px}.delivery-journey strong{font-size:13px;max-width:140px}.delivery-journey.ready{background:#fff0b7}.town-bottom-tools{display:flex;gap:8px}.town-bottom-tools .btn{flex:1;min-height:44px;padding:7px;font-size:13px}
.friend-closeup{position:relative;display:block;width:80px;height:84px;overflow:hidden;border:2px solid #fff8eb;border-radius:24px;background:#e1f1e6;flex-shrink:0;box-shadow:0 3px #b6c8b8}.friend-closeup>.art-friends{position:absolute;top:0;left:-20px!important;width:120px!important;height:120px!important;max-width:none;aspect-ratio:1;transform:none}.friend-closeup>.pal-leo{position:absolute;top:0;left:-10px;width:100px!important;height:150px!important;max-width:none;transform:none!important}.closeup-bunny>.art-friends{top:-10px}.closeup-frog>.art-friends{top:-7px}.portrait:has(.friend-closeup){background:none!important;border:0;box-shadow:none;overflow:visible!important}.little-trade-friend .portrait:has(.friend-closeup){width:80px;height:84px}.little-trade-friend .portrait>.friend-closeup{width:80px;height:84px}.little-trade-friend:has(.friend-closeup){height:90px;gap:15px;margin:0}.lucy,.clay-pal{filter:drop-shadow(0 5px 3px #765a4833)}.lucy-celebration .levi{object-fit:contain}.shopkeeper.in-scene{position:absolute;z-index:1;left:4%;bottom:4%;top:auto;background:none;padding:0}.shopkeeper.in-scene .friend-closeup{width:58px;height:64px;border:0;border-radius:0;background:none;box-shadow:none}.shopkeeper.in-scene .friend-closeup .art-friends{left:-16px!important;width:90px!important;height:90px!important}.shopkeeper.in-scene .friend-closeup .pal-leo{width:78px!important;height:117px!important}
.shop-header{display:flex;align-items:center;gap:10px}.shop-header h1{flex:1;font-size:22px;margin:0;line-height:1.05}.shop-header>.icon-button svg{transform:rotate(180deg)}.shop-footer{display:flex;gap:6px}.shop-footer .btn{flex:1;font-size:12px;padding:6px;min-height:44px}.shop-footer svg{width:23px;height:23px}.shop-scene{position:relative;box-shadow:0 5px #baa084!important}.shop-color-0{--accent:#a2d9d4}.shop-color-1{--accent:#efc08f}.shop-color-2{--accent:#cdb2dc}.shop-color-3{--accent:#b7dcb8}.shop-color-4{--accent:#dc9fd0}.shop-color-5{--accent:#8acccd}.shop-color-6{--accent:#d5b16d}.shop-color-3,.shop-color-4,.shop-color-5,.shop-color-6{background-image:url('./assets/mobile-world/interiors.webp')!important;background-size:200% 200%!important}.shop-color-3{background-position:0 0!important}.shop-color-4{background-position:100% 0!important}.shop-color-5{background-position:0 100%!important}.shop-color-6{background-position:100% 100%!important}.shop-scene .shelves{position:absolute;inset:27% 13% 25%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr 1fr;gap:6% 4%;margin:0}.shop-scene .toy-card{height:100%;min-height:0;padding:0;border:0;box-shadow:none;background:none;display:flex;align-items:center;justify-content:center;position:relative}.shop-scene .toy-card:before,.shop-scene .toy-card:after{display:none}.shop-scene .toy-card>.toy,.shop-scene .toy-card>.world-art{width:95%;height:95%;margin:0;max-width:115px;max-height:115px}.shop-scene .toy-card>.toy-name{position:absolute;bottom:-12px;font-size:9px;background:#fff9e9;border-radius:5px;padding:2px 4px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#59465a}.price-tag{position:absolute;right:-5px;bottom:5px;display:flex;align-items:center;gap:2px;background:#fff4b8;border:1px solid white;box-shadow:0 2px #b5a069;border-radius:10px;padding:2px 4px;font-size:11px;font-weight:800}.price-tag .game-coin{width:15px;height:15px;border-width:1px}.price-tag svg{width:9px;height:9px}.toy-card.sold>.toy{opacity:.4;filter:grayscale(.8)}.toy-card.sold>.price-tag svg{width:18px;height:18px}.toy{filter:drop-shadow(0 5px 3px #74574122);border-radius:0}.size-mini{--size:.84}.size-xl{--size:1.12}.size-regular{--size:1}.little-toy>.toy,.tray-toy>.toy{scale:var(--size,1)}.material-ultra{filter:drop-shadow(0 0 3px #e9c56866) drop-shadow(0 5px 3px #74574122)}.material-rare{filter:drop-shadow(0 0 3px #bc92d544) drop-shadow(0 5px 3px #74574122)}
.hunter-trade{display:grid;grid-template-rows:84px 30px minmax(230px,1fr) 95px 44px;gap:8px;max-width:730px;margin:auto}.trade-friend-header{display:flex;align-items:center;gap:10px}.trade-friend-header>div{flex:1}.trade-friend-header h1{font-size:23px;margin:0}.trade-friend-header small{font-size:11px}.trade-speech{font-size:12px;text-align:center;overflow:hidden}.trade-mat{transform:none!important;border:4px solid #fff8ee!important;border-radius:20px!important;padding:0!important;box-shadow:0 5px #b880a3!important;background:#e9b1d4!important}.offer-zone{box-shadow:inset 0 3px 5px #b77b9b22!important;background:radial-gradient(ellipse at center,#fff2 0 45%,transparent 46%)!important;border-bottom:3px solid white;margin:0!important}.offer-toys{gap:7px}.offer-toys>button{border-radius:18px;background:#ffffff1c;box-shadow:inset 0 2px 5px #98507933;border:1px dashed #fffc}.hunter-trade .trade-mat{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr) 48px}.hunter-trade .opponent-actions{height:28px;display:none;justify-content:space-around;padding:2px;background:#fff5df}.hunter-trade .opponent-actions:has(.lit){display:flex}.hunter-trade .trade-mat:has(.opponent-actions .lit){grid-template-rows:28px minmax(0,1fr) minmax(0,1fr) 48px}.hunter-trade .opponent-actions .mat-symbol{min-height:0;padding:0;background:none;box-shadow:none;border:0}.hunter-trade .opponent-actions svg{width:22px;height:22px;filter:none}.hunter-trade .offer-zone{min-height:0;padding:3px 8px;display:flex;align-items:center}.hunter-trade .offer-label{font-size:11px;width:38px;flex-shrink:0}.hunter-trade .offer-toys{height:100%;min-height:0;flex:1;display:flex;justify-content:center;align-items:center;position:static}.hunter-trade .offer-toys>button{position:static!important;transform:none!important;max-height:100%;padding:0;display:grid;place-items:center}.hunter-trade .offer-toys .toy{width:78px;height:78px;max-height:100%;margin:0}.hunter-trade .trade-actions{margin:0;gap:0}.hunter-trade .trade-actions .mat-symbol{min-height:44px;padding:4px;border-radius:0;box-shadow:none}.hunter-trade .mat-symbol svg{width:30px;height:30px;filter:drop-shadow(0 2px #fff8)}.hunter-trade .trade-tray{min-height:0;padding:0;border:0;background:none;box-shadow:none}.hunter-trade .tray-grid{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;gap:8px;padding:3px;scroll-snap-type:x mandatory}.hunter-trade .tray-toy{flex:0 0 88px;height:100%;min-height:0;padding:0;scroll-snap-align:start;background:#fff5e6;border-radius:18px;box-shadow:0 3px #c7b3a8;display:flex;align-items:center;justify-content:center;flex-direction:column}.hunter-trade .tray-toy .toy{width:65px;height:65px}.hunter-trade .tray-toy>span:not(.toy){font-size:9px;line-height:1.1}.trade-footer{display:flex;justify-content:space-between;gap:8px}.trade-footer .btn{font-size:12px;min-height:40px;padding:6px 12px}.little-trade .offer-toys{background:radial-gradient(ellipse at center,#b67ba133 0 45%,transparent 47%)}
.passport-pages{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fdf3d7;border:5px solid #c5b0ce;border-radius:12px;box-shadow:0 5px #a292ac;overflow:hidden;margin:14px 0}.passport-page{padding:12px;background:repeating-linear-gradient(0deg,transparent 0 24px,#b89c7420 25px 26px)}.passport-page:first-child{box-shadow:inset -12px 0 15px -12px #826d55}.passport-page+.passport-page{border-left:1px solid #c5b593}.passport-page>p{margin:0 0 10px;font-size:13px}.hunter-stickers{display:grid;grid-template-columns:repeat(3,1fr);max-height:300px;gap:7px;padding:0;background:none;border-radius:0}.passport-sticker{display:grid;place-items:center;background:#fff9ee;border:2px dashed #c7b692;border-radius:14px;aspect-ratio:1;rotate:-3deg}.passport-sticker:nth-child(even){rotate:3deg}.passport-sticker .toy{width:100%;height:100%;max-width:65px;max-height:65px}.passport-sticker.collected{border-style:solid;box-shadow:0 2px #bbaa89}.passport-sticker.missing .toy{filter:brightness(0);opacity:.16}.passport-shop{display:flex!important;gap:8px!important}.unlock-picture{position:relative;width:70px;height:86px;flex-shrink:0}.unlock-picture>.shop-building{filter:brightness(0);opacity:.2}.unlock-picture>span:not(.shop-building){position:absolute;inset:0}.passport-shop strong{font-size:12px}.passport-shop small{font-size:10px}.parcel-button{display:grid;place-items:center;width:100%;background:none;border:0;position:relative}.parcel-button>.world-art{width:240px;height:230px}.parcel-button .game-hand{position:absolute;bottom:5%;right:25%}.parcel-reveal{position:relative;height:260px;display:grid;place-items:center;isolation:isolate}.parcel-reveal>.world-art{position:absolute;bottom:0;width:210px;height:160px}.parcel-reveal>.toy{width:170px;height:170px;z-index:2}.parcel-rays{position:absolute;inset:0;background:repeating-conic-gradient(#ffe3a144 0 15deg,transparent 15deg 30deg);border-radius:50%;z-index:-1}.photo-card{position:relative;background:#fffaf1!important;border:7px solid #fffaf1;border-bottom-width:12px;border-radius:7px;box-shadow:0 5px 12px #77685933;rotate:-1deg}.photo-card:before,.photo-card:after{content:'';position:absolute;width:42px;height:18px;background:#d0c0dfb3;rotate:-30deg;z-index:2;top:-6px;left:-14px}.photo-card:after{left:auto;right:-12px;top:auto;bottom:-4px;background:#bfdbbcb3}.photo-card>small{font-size:10px;font-weight:700;color:#77647d}.photo-card>span{font-size:13px}.confirm-row.swapping .confirm-group{animation:none}.confirm-row.swapping>div:first-child .toy{animation:swap-give .75s ease-in-out forwards}.confirm-row.swapping>div:last-child .toy{animation:swap-get .75s ease-in-out forwards}@keyframes swap-give{to{transform:translateX(130%) scale(.75);opacity:.1}}@keyframes swap-get{to{transform:translateX(-130%) scale(.75);opacity:.1}}
@media(prefers-reduced-motion:no-preference){.adventure-header .lucy,.town-player .lucy,.room-lucy .lucy{animation:character-breathe 4s ease-in-out infinite}.friend-closeup:not(.closeup-leo)>.clay-pal{animation:friend-breathe 4s ease-in-out infinite}.parcel-reveal>.toy{animation:parcel-rise 1s ease-out both}.parcel-button>.world-art{animation:parcel-wiggle 2s ease-in-out infinite}.passport-shop.open .shop-building{animation:sticker-pop .45s ease-out}.material-ultra:not(#squish .toy){animation:rare-glimmer 5s ease-in-out infinite}@keyframes character-breathe{50%{translate:0 -3px;rotate:1deg}}@keyframes friend-breathe{50%{translate:0 -2px}}@keyframes parcel-rise{from{transform:translateY(70px) scale(.3);opacity:0}to{transform:translateY(-30px);opacity:1}}@keyframes parcel-wiggle{0%,75%,100%{rotate:0deg}80%{rotate:-4deg}90%{rotate:4deg}}@keyframes sticker-pop{from{scale:.8}to{scale:1}}@keyframes rare-glimmer{50%{filter:drop-shadow(0 0 5px #e7bb7999) drop-shadow(0 5px 3px #74574122)}}}
/* The game stage uses the browser's usable height; collections and books may scroll. */
body[data-mode=free]{--nav-clearance:126px}.bottom-nav{padding:5px;border:3px solid #fffaf1;box-shadow:0 5px #b9a6ca;background:#f2e6f3}.bottom-nav button{border-radius:20px;box-shadow:none}.bottom-nav button.active{background:linear-gradient(#fff5bc,#ffdb87);box-shadow:inset 0 2px white,0 4px #c7a15c}.bottom-nav button>span:last-child{font-size:11px;font-weight:750}.nav-toy,.nav-toy>.world-art{width:48px;height:48px!important}.play-tabs svg{width:23px;height:23px}.hunter-shop:focus-visible{outline:3px solid #78639c;outline-offset:-3px}.shop-scene .toy-card{min-height:0!important}.hunter-trade .offer-zone,.hunter-trade .offer-toys{min-height:0!important}.request-more:before{display:none}.squish-stage #squish>.toy{will-change:filter}.discovery-buddy{position:absolute;right:0;bottom:0;width:75px;height:112px;pointer-events:none}.discovery-buddy .lucy{width:100%;height:100%;object-fit:contain}.squish-stage{position:relative}
@media(max-width:760px){
body .app,body[data-mode=free] .app{padding:0 12px calc(var(--nav-clearance,90px) + env(safe-area-inset-bottom));}
body .topbar,body[data-mode=free] .topbar{height:64px;flex:0 0 64px}.game-logo{width:115px!important;height:60px!important;object-fit:contain}.lucy-brand{display:none}.top-actions .icon-button{width:44px;height:44px;min-width:44px;min-height:44px;padding:7px}.top-actions .world-art{width:30px;height:30px}.top-actions{gap:8px}
body .bottom-nav,body[data-mode=free] .bottom-nav{bottom:calc(9px + env(safe-area-inset-bottom));height:70px;width:calc(100% - 24px);max-width:420px;border-radius:24px}body .bottom-nav button,body[data-mode=free] .bottom-nav button{height:57px;min-height:0;min-width:0;flex:1;padding:0;gap:0}body[data-mode=free] .bottom-nav{height:106px;border-radius:28px}body[data-mode=free] .bottom-nav button{height:92px;border-radius:23px}body[data-mode=free] .bottom-nav .nav-toy,body[data-mode=free] .nav-toy>.world-art{width:82px;height:82px!important}
body:is([data-place=town],[data-place=shop],[data-place=trade]) .app,body[data-mode=free] .app:has(.little-trade){height:100svh;min-height:0;display:flex;flex-direction:column;padding-bottom:calc(var(--nav-clearance,90px) + env(safe-area-inset-bottom))}body:is([data-place=town],[data-place=shop],[data-place=trade]) #main{flex:1;min-height:0}
body[data-mode=hunt][data-place=town] #main{display:grid;grid-template-rows:64px 48px minmax(0,1fr) 58px 44px;gap:8px}.adventure-header h1{font-size:20px}.adventure-header p{margin:2px 0}.hunter-tools{display:flex;flex-wrap:nowrap;margin:0;gap:6px}.hunter-tools .btn{min-height:44px;padding:4px;font-size:12px}.street-world{min-height:0}.hunter-shops{padding:0 12px 8px;gap:8px}.hunter-shop,.hunter-shop.locked{min-width:148px;flex-basis:48%;padding:0}.hunter-shop strong{font-size:12px;padding:3px 5px}.hunter-shop small{font-size:10px}.town-bottom-tools .btn{font-size:11px;padding:4px}.delivery-journey{padding:3px 8px;gap:8px}.delivery-journey strong{font-size:11px;max-width:105px}
body[data-mode=free][data-place=town] .town-scene{height:100%;min-height:0}body[data-mode=free] .town-player>.lucy{height:180px;width:135px}
body[data-mode=hunt][data-place=shop] #main{display:grid;grid-template-rows:48px minmax(0,1fr) 48px;gap:10px}.shop-header h1{font-size:20px}.shop-header .wallet{font-size:14px;padding:5px}.shop-scene{height:100%;min-height:0!important;aspect-ratio:auto;margin:0!important}.shop-scene .shelves{inset:26% 8% 24%;gap:9% 6%}.shop-scene .toy-card>.toy{max-height:95px}.shop-footer .btn{font-size:11px}.shop-footer .icon-button{min-width:44px;min-height:44px;width:44px}
body[data-mode=free][data-place=shop] #main{display:flex;flex-direction:column;gap:10px}.little-shop{flex:1;min-height:0!important;height:auto}.little-footer{height:56px;flex-shrink:0;margin:0;gap:12px}.little-footer .btn{min-height:52px;min-width:80px}.little-footer .btn>.world-art{width:36px;height:36px}.little-shelf .little-toy{min-height:0;height:100%;max-height:145px}.little-shelf .little-toy>.toy{max-height:100%}
.hunter-trade{height:100%;grid-template-rows:64px 24px minmax(0,1fr) 78px 40px;gap:6px}.friend-closeup,.little-trade-friend .portrait>.friend-closeup{width:62px;height:64px;border-radius:18px}.friend-closeup>.art-friends{width:96px!important;height:96px!important;left:-17px!important}.friend-closeup>.pal-leo{width:78px!important;height:117px!important;left:-8px}.trade-friend-header h1{font-size:20px}.trade-friend-header small{font-size:10px}.trade-friend-header .icon-button{min-width:44px;min-height:44px;width:44px;padding:6px}.hunter-trade .trade-mat{grid-template-rows:minmax(0,1fr) minmax(0,1fr) 44px}.hunter-trade .offer-toys .toy{width:65px;height:65px}.hunter-trade .tray-toy{flex-basis:76px}.hunter-trade .tray-toy .toy{width:55px;height:55px}.hunter-trade .trade-footer .btn{min-height:38px}.little-trade{grid-template-rows:66px minmax(0,1fr) 76px 44px;gap:7px}.little-trade-friend,.little-trade-friend:has(.pal-leo){height:66px;margin:0}.little-trade-friend .portrait:has(.friend-closeup){width:62px;height:64px}.little-trade .offer-zone{min-height:0!important}.little-trade .offer-toys{min-height:0!important}
body[data-place=play] #main{display:flex;flex-direction:column;gap:7px}body[data-place=play] .page-heading,body[data-place=play] .footer-note{display:none}.play-tabs{margin:0;flex-shrink:0}.play-tabs .btn{padding:5px;min-height:40px}.play-toolbar{min-height:36px;flex-shrink:0}.play-toolbar>span{display:none}.play-board,body[data-mode=free] .play-board{flex:none;height:auto;min-height:0;width:100%;max-height:none;aspect-ratio:760/640!important;margin:8px 0 16px}.photo-tools{margin:0;flex-shrink:0;gap:4px}.photo-tools .btn{min-height:40px;padding:4px;font-size:10px}.play-toolbar [data-action=clearplay]{margin:0!important}
dialog{max-height:calc(100svh - 24px);padding:16px}.modal-top{margin-bottom:8px}.modal-top h2{font-size:22px}.squish-stage,.little-modal .squish-stage{height:clamp(150px,34svh,245px)}.squish-stage #squish>.toy,.little-modal .squish-stage #squish>.toy{width:190px;height:190px}.toy-story{margin:5px 0;font-size:11px}.rare-discovery{margin:3px 0}.modal-actions .btn,.little-modal .modal-actions .btn{min-height:52px}.hunter-job-target .toy{width:105px;height:105px}.hunter-job-stars{margin:4px}.hunter-match-choices .little-toy{min-height:85px}.hunter-match-choices .toy{width:72px;height:72px}.passport-page{padding:7px}.hunter-stickers{gap:4px}.passport-shop{gap:4px!important}.unlock-picture{width:45px;height:61px}.passport-shop strong{font-size:10px}.hunter-unlocks>div{padding:5px 0}.parcel-button>.world-art{width:200px;height:190px}
}
.hunter-trade,.hunter-trade>*{min-width:0;width:100%;box-sizing:border-box}.hunter-trade .trade-tray,.hunter-trade .tray-grid{min-width:0;max-width:100%}.trade-speech{white-space:normal}.hunter-trade .trade-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.hunter-trade .offer-toys{min-width:0}.hunter-trade .offer-toys>button{min-width:0;flex:0 1 78px}.hunter-trade .trade-friend-header>div{min-width:0}.hunter-trade .offer-label{font-size:9px}
.reward-wallet{display:flex;align-items:center;justify-content:center;gap:8px}.parcel-lid{position:absolute;bottom:110px;left:calc(50% - 90px);width:180px;height:42px;border:3px solid #fff1b9;border-radius:9px;background:#b79bd4;box-shadow:0 5px #8865a1;z-index:3;display:grid;place-items:center;animation:lid-lift .8s ease-out forwards}.parcel-lid svg{width:26px;color:#fff1ad}@keyframes lid-lift{to{transform:translate(70px,-100px) rotate(28deg);opacity:0}}.opening-friends{display:flex;justify-content:center}.shop-header:has(+.shop-color-3) .wallet{background:#daf0df}.shop-header:has(+.shop-color-4) .wallet{background:#f3daf0}.shop-header:has(+.shop-color-5) .wallet{background:#d6eff0}.shop-header:has(+.shop-color-6) .wallet{background:#f7e4b9}.shop-scene+.shop-footer .btn{background:color-mix(in srgb,var(--accent,#d0e9df) 40%,#fff6e9)}
@media(prefers-reduced-motion:reduce){.parcel-lid{display:none}}
@media(min-width:900px){
body .bottom-nav{height:92px;bottom:20px}body[data-mode=free] .bottom-nav{height:120px;bottom:20px;width:min(480px,calc(100vw - 24px));max-width:480px}body[data-mode=free] .bottom-nav button{height:102px}body[data-mode=free] .bottom-nav .nav-toy,body[data-mode=free] .bottom-nav .nav-toy>.world-art{width:94px;height:94px!important}body[data-mode=free] #main{padding-bottom:152px}
body #main{padding-bottom:116px}
body[data-mode=hunt][data-place=trade] #main{display:flex;flex-direction:column}
body[data-mode=hunt][data-place=trade] .hunter-trade{height:auto;flex:1;min-height:460px}
body[data-place=play] .topbar{height:76px}
body[data-place=play] .page-heading{margin:8px 0}
body[data-place=play] .page-heading h1{font-size:28px;margin:0}
body[data-place=play] .page-heading p{margin:3px 0}
body[data-place=play] .play-tabs{margin:8px 0}
body[data-place=play] .play-toolbar{margin:6px 0}
body[data-place=play] .play-board{height:auto;max-height:none;max-width:min(100%,720px,calc(55vh * 760 / 430));margin:12px auto 20px;aspect-ratio:760/430!important}
body[data-place=play] .photo-tools{margin:8px 0}
body[data-place=play] .photo-tools .btn{padding:6px 12px;min-height:38px}
}
@media(min-width:761px){body[data-mode=hunt]:is([data-place=town],[data-place=shop],[data-place=trade]) .app{height:100svh;min-height:0;display:flex;flex-direction:column;padding-bottom:110px}body[data-mode=hunt]:is([data-place=town],[data-place=shop],[data-place=trade]) .topbar{flex:0 0 100px}body[data-mode=hunt]:is([data-place=town],[data-place=shop],[data-place=trade]) #main{flex:1;min-height:0}body[data-mode=hunt][data-place=town] #main{display:grid;grid-template-rows:64px 48px minmax(180px,1fr) 58px 44px;gap:8px}.street-world{min-height:0}.hunter-shops{padding-top:4px}.hunter-shop,.hunter-shop.locked{flex-basis:26%;min-width:170px}.hunter-tools{margin:0}.hunter-trade{height:100%;grid-template-rows:72px 26px minmax(210px,1fr) 80px 40px;gap:7px}.trade-friend-header .friend-closeup{width:68px;height:70px}body[data-mode=hunt][data-place=shop] .app{padding-bottom:0;height:auto;min-height:100svh}body[data-mode=hunt][data-place=shop] #main{display:grid;grid-template-rows:auto 50px minmax(300px,1fr) 48px;gap:12px;width:100%;max-width:1100px;margin-inline:auto}body[data-mode=hunt][data-place=shop] .hunter-progress{margin:0;height:58px}.shop-scene{height:100%;min-height:0!important;aspect-ratio:auto;margin:0!important}.shop-scene .shelves{inset:26% 17% 25%}.shop-scene .toy-card>.toy{max-width:120px;max-height:120px}}
/* Preserve square sprite cells even when a shelf row is wide and shallow. */
.shop-scene .toy-card{container-type:size}.shop-scene .toy-card>.toy,.shop-scene .toy-card>.world-art{width:min(95cqw,90cqh,115px)!important;height:min(95cqw,90cqh,115px)!important;flex-shrink:0}.hunter-shops,.hunter-trade .tray-grid,.play-toys{scrollbar-width:none}.hunter-shops::-webkit-scrollbar,.hunter-trade .tray-grid::-webkit-scrollbar,.play-toys::-webkit-scrollbar{display:none}
.hunter-job-target{display:grid;place-items:center}.hunter-job-stars{display:flex;align-items:center;justify-content:center;gap:8px}.hunter-job-stars .game-coin{width:24px;height:24px}

/* Individual transparent cutouts preserve the full artwork without atlas bleed. */
.building-0{background-image:url('./assets/mobile-world/toy-shop.webp')}.building-1{background-image:url('./assets/mobile-world/bakery.webp')}.building-2{background-image:url('./assets/mobile-world/dumpling-shop.webp')}.building-3{background-image:url('./assets/mobile-world/ice-cream-shop.webp')}.building-4{background-image:url('./assets/mobile-world/candy-shop.webp')}.building-5{background-image:url('./assets/mobile-world/toy-truck.webp')}.building-6{background-image:url('./assets/mobile-world/secret-bakery.webp')}.building-7{background-image:url('./assets/mobile-world/fountain.webp')}

/* Fit Play to the usable screen; only the collection scrolls. */
body[data-place=play] #main{max-width:960px;margin:auto;min-width:0}
.play-collection{margin:18px 0 8px;min-width:0;flex:none}.play-collection-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.play-collection-heading h2,.play-games h2{font-size:20px;margin:0;color:#785591}.play-collection-heading small{font-size:12px;color:#806c8b}.play-collection-heading>div:last-child{display:flex;gap:8px}.play-collection-heading .icon-button{width:44px;height:44px;min-width:44px;min-height:44px;font-size:27px;padding:0}
.play-collection .play-toys,body[data-mode=free] .play-collection .play-toys{display:flex;gap:10px;height:auto;min-height:168px;max-height:none;padding:10px 10px 14px;margin:0;border:2px solid #f4e1c5;border-radius:20px;background:#f5e7d3;box-shadow:0 4px #d2b58e;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scroll-padding:10px;scrollbar-width:thin}
.play-collection .play-toys .tray-toy{display:flex;flex-direction:column;align-items:center;justify-content:start;flex:0 0 112px;min-width:112px;min-height:144px;padding:8px 5px;border:2px solid #fffaf0;border-radius:17px;background:#fff8ec;scroll-snap-align:start;touch-action:pan-x pan-y}
.play-collection .play-toys .toy{width:96px;height:96px;flex:none;max-width:none}.play-collection .play-toys .tray-toy>span:not(.toy){font-size:12px;line-height:1.2;white-space:normal;min-height:29px;display:block;text-align:center}.play-collection .tray-toy small{font-size:11px;min-height:13px;color:#80648c}
.play-games{margin:24px 0 16px;padding:16px;background:#eee4f3;border:2px solid #fff9ef;border-radius:23px;flex:none}.play-games .dumpling-games{margin:14px 0 4px;gap:24px}.play-games .game-app-icon{width:96px;height:96px}
body[data-place=play] .photo-tools{flex-wrap:wrap;justify-content:center}.play-toolbar{flex-wrap:wrap}body[data-place=play] .board-sticker{font-size:12px;padding:6px 9px;max-width:55%}
@media(max-width:760px){body[data-place=play] .app{height:100svh;min-height:0;display:flex;flex-direction:column;padding-bottom:calc(var(--nav-clearance,90px) + env(safe-area-inset-bottom))}body[data-place=play] #main{flex:1;width:100%;min-height:0;gap:6px;margin:0 auto;padding:0}body[data-place=play] .play-board{flex:1;aspect-ratio:auto!important;height:auto;min-height:0;margin:0 0 5px}body[data-place=play] .play-toolbar{min-height:24px;margin:0;font-size:11px}body[data-place=play] .photo-tools{margin:0;flex-wrap:nowrap}body[data-place=play] .photo-tools .btn{min-height:34px;padding:3px 6px;font-size:10px}.play-collection{margin:0}.play-collection-heading{margin-bottom:4px;gap:4px}.play-collection-heading h2{font-size:15px}.play-collection-heading small{font-size:10px}.play-collection-heading .icon-button{width:36px;height:36px;min-width:36px;min-height:36px}.play-collection .play-toys{min-height:116px;height:116px;padding:4px 6px 6px;gap:7px}.play-collection .play-toys .tray-toy{flex-basis:88px;min-width:88px;min-height:0;padding:3px}.play-collection .play-toys .toy{width:68px;height:68px}.play-collection .play-toys .tray-toy>span:not(.toy){font-size:10px;min-height:24px}.play-collection .tray-toy small{position:absolute;top:3px;right:4px;background:#fff2c8;border-radius:8px;padding:0 3px}.play-games{margin:3px 0 0;padding:4px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.play-games h2{font-size:14px}.play-games .dumpling-games{margin:0;gap:12px}.play-games .game-app-icon{width:56px;height:56px}}

@media(min-width:900px){body[data-place=play] .app{height:100svh;min-height:0;display:flex;flex-direction:column;padding-bottom:124px}body[data-place=play] .topbar{flex:0 0 70px}body[data-place=play] #main{flex:1;min-height:0;width:100%;padding:0;grid-template-rows:44px 48px 28px minmax(0,1fr) 44px 72px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}body[data-place=play] .page-heading p,body[data-place=play] .page-heading .eyebrow{display:none}body[data-place=play] .page-heading,body[data-place=play] .play-tabs,body[data-place=play] .play-toolbar{grid-column:1/-1;margin:0}body[data-place=play] .play-board{grid-column:1;grid-row:4;height:100%;min-height:0;aspect-ratio:auto!important;margin:0;max-width:100%}body[data-place=play] .photo-tools{grid-column:1;grid-row:5;margin:0}body[data-place=play] .play-collection{grid-column:2;grid-row:4/6;margin:0;height:100%;min-height:0;display:flex;flex-direction:column}body[data-place=play] .play-collection .play-toys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y proximity}body[data-place=play] .play-collection .tray-toy{min-width:0;width:100%}body[data-place=play] .play-games{grid-column:1/-1;margin:0;padding:4px 16px;display:flex;align-items:center;justify-content:center;gap:24px}body[data-place=play] .play-games .dumpling-games{margin:0}body[data-place=play] .play-games .game-app-icon{width:60px;height:60px}body[data-place=play] .footer-note{display:none}.play-collection-heading h2{font-size:18px}.play-collection-heading small{font-size:11px}}
