/* Bubbly playtest theme. Gameplay, item IDs and save schema are unchanged. */
:root{--ink:#443653;--green:#166f73;--line:#e2d9e9;--cream:#fffdf8;--pink:#ffd5e4;--yellow:#ffdb76;color:var(--ink);background:#fff7ee;font-family:'Trebuchet MS',Verdana,sans-serif}
body{background:radial-gradient(circle at 6% 18%,#fff0ba 0,transparent 25%),radial-gradient(circle at 96% 50%,#e5f6ed 0,transparent 27%),#fff7ee}
h1,h2,h3,.brand{font-family:'Arial Rounded MT Bold','Trebuchet MS',sans-serif;font-weight:900;letter-spacing:-1px;color:#514065}
h1{line-height:1.12}h2{line-height:1.2}h3{line-height:1.2}
button{font-weight:700;min-height:56px;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease;scroll-margin-block:105px}
button:focus-visible,input:focus-visible{outline:4px solid #733da3;outline-offset:5px;box-shadow:0 0 0 8px #fff!important}
button:disabled{opacity:.65;box-shadow:none!important;transform:none!important}
button:active:not(:disabled){transform:translateY(3px)}
.topbar{border-bottom:3px solid #f0e4dc;padding-top:20px;padding-bottom:20px}
.brand{font-size:30px;min-height:56px;letter-spacing:-1px}.brand small{font-size:9px;font-weight:700;letter-spacing:1.4px;color:#766285}
.brand-mark{background:#b9eee0;border:3px solid #fff;width:54px;height:54px;border-radius:21px;box-shadow:0 4px 0 #85c8b6;transform:rotate(-8deg)}
.wallet{border:2px solid #edc465;background:#ffedac;padding:10px 17px;box-shadow:0 3px 0 #ead096;font-size:18px;color:#745224}
.wallet>span{color:#a06b22}.wallet small{font-size:12px}
.icon-button{width:56px;min-width:56px;min-height:56px;border:2px solid #ded2e8;background:white;box-shadow:0 4px 0 #dfd1e9;color:#695578}
.eyebrow{font-size:11px;letter-spacing:1.5px;color:#756384}.quiet,.mini,.magic-note,.footnote{color:#74677c}
.primary,.secondary,.danger{min-height:64px;border-radius:22px;padding:16px 26px;font-size:18px;font-weight:900;border:2px solid transparent;line-height:1.25}
.primary{background:linear-gradient(#23878a,#176e72);border-color:#146065;color:white;box-shadow:inset 0 3px 0 #ffffff33,0 6px 0 #104e58,0 9px 0 #1d5c6010}
.primary:hover{background:linear-gradient(#269596,#187b7d)}
.primary:active:not(:disabled){box-shadow:inset 0 2px 0 #ffffff22,0 2px 0 #104e58}
.secondary{min-height:58px;background:#ffecaa;border-color:#e6c067;box-shadow:inset 0 3px 0 #fff9,0 5px 0 #d7ad60;color:#654e2f}
.secondary:hover{background:#ffe393}.secondary:active:not(:disabled){box-shadow:0 2px 0 #d7ad60}
.text-button{background:#f4eaff;border:2px solid #d7c4e8;box-shadow:0 3px 0 #d3bfdc;text-decoration:none;border-radius:17px;padding:13px 18px;font-size:14px;min-height:56px;color:#604a79}
.danger{background:#ffe1e4;border-color:#e6b3bf;box-shadow:0 4px 0 #d49eab;color:#933951;font-size:16px}
.welcome{background:linear-gradient(125deg,#fff0bb,#fbe7e7 62%,#e5f2ec);border:3px solid #fff;border-radius:38px;box-shadow:0 7px 0 #edddcc;min-height:448px}
.welcome-copy{padding:44px 18px 37px 40px}.welcome h1{font-size:clamp(38px,4.6vw,64px);color:#5b4271;letter-spacing:-2px}.welcome p{font-size:17px;color:#716179}
.welcome-art{background:radial-gradient(ellipse at center,#fff9dc 0 47%,#f4ca8c55 48% 49%,transparent 50%)}
.hero-pet{width:352px;filter:drop-shadow(0 8px 0 #aa718714)}
.floating-label{border:3px solid white;box-shadow:0 4px 0 #eac7d6;background:#ffd5e5;color:#8b4768;font:800 19px 'Trebuchet MS',sans-serif;top:32px;left:7px}
.art-flower{color:#ef92ab;text-shadow:3px 5px #fff8}.art-star{color:#67bcb2}.art-caption{font:700 12px 'Trebuchet MS',sans-serif;color:#81687a}
.progress-note{font-size:13px;font-weight:700;color:#755e79;flex-wrap:wrap}.progress-track{height:10px;background:#decddc;width:110px}.progress-track i{background:#9d7bd0}
.section-heading h2{font-size:34px}.chapter{border:3px solid #fff;border-radius:29px;box-shadow:0 5px 0 #e2d8e5;background:#fffcfa}
.chapter-heading{padding:24px 18px;background:#cef0df;border-bottom:2px dashed #a9d3c1}.chapter-1 .chapter-heading{background:#ffe2b8;border-color:#efc88f}.chapter-2 .chapter-heading{background:#e6d9ff;border-color:#cab3ed}
.chapter-heading h3{font-size:24px}.chapter-heading small{color:#6f5976;font-weight:900}.chapter-icon{background:#fff9;border-radius:19px;padding:8px;box-shadow:0 3px 0 #00000008}
.chapter-count{font-weight:900;color:#6f557d;background:white;border:2px solid #ffffffa0;padding:9px}
.route{padding:14px}.job{border:2px solid #eadff0;background:#faf4fd;box-shadow:0 3px 0 #e0d2e7;border-radius:20px;min-height:91px;margin-bottom:9px;padding:10px;gap:12px}
.job:hover:not(:disabled){background:#f3e7ff}.job.next{background:#ffe9a6;border-color:#e5bb5c;box-shadow:0 4px 0 #d5ad56}.job.done{background:#e6f4e9;border-color:#bad9c3}
.job-avatar{width:57px;height:60px;background:#ffe7cf;border:2px solid white;box-shadow:0 2px 0 #dfc4b2}.job-avatar svg{width:89px;margin:-7px 0 0 -17px}
.job strong{font-size:17px;color:#58456c}.job small{font-size:12px;color:#776581}.job-status{display:grid;place-items:center;min-width:30px;height:30px;background:white;border-radius:50%;color:#306e60;font-weight:900;font-size:22px}
.bottom-nav{border:3px solid white;box-shadow:0 6px 0 #d8c4e4,0 10px 26px #69527322;border-radius:28px;background:#fffaf9;padding:7px;gap:5px}
.bottom-nav button{min-height:64px;min-width:145px;border:2px solid transparent;border-radius:20px;color:#756083;padding:10px 17px}
.bottom-nav button span{font-size:14px}.bottom-nav button.active{background:#e8d8ff;border-color:#c4a4df;color:#563777;box-shadow:inset 0 -4px 0 #cdb3e1}.bottom-nav button.active span{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.studio-heading h1{font-size:40px}.studio-heading{gap:18px}.studio-layout{gap:24px}
.brief,.wardrobe,.reveal-card{border:3px solid white;border-radius:30px;box-shadow:0 5px 0 #dfd4e7;background:#fffdfb}
.brief{background:#f5ebff;padding:24px}.brief h2{font-size:27px;color:#61497c}.criteria{gap:10px}
.criterion{display:flex;align-items:center;gap:6px;font-size:14px;line-height:1.4;font-weight:700;padding:11px 12px;border:2px solid #dfccef;border-radius:17px;background:#fffafd;color:#6b517d;min-height:48px}
.criterion.met{background:#daf1df;border-color:#93c6a3;color:#345b43}.criterion>span:first-child{font-size:19px;font-weight:900}
.tag-symbol{font-size:1.25em;display:inline-block;line-height:1.1;vertical-align:middle}.mini{font-size:13px;margin-top:16px}
.pet-stage{background:radial-gradient(circle at 8% 26%,#ffffffa0 0 10px,transparent 11px),radial-gradient(circle at 90% 46%,#ffffffa0 0 16px,transparent 17px),linear-gradient(135deg,#bee9e0,#d7dcfa);border:4px solid white;border-radius:36px;box-shadow:0 6px 0 #b9d6d4;min-height:407px}
.pet-stage:before{background:linear-gradient(#fffdf0,#fff0d6);border:5px solid #ffffff91;box-shadow:0 0 0 5px #c3e0da70;top:45px;height:87%;width:86%;left:7%;border-radius:48% 48% 30% 30%}
.stage-top{font-size:10px;font-weight:900;color:#51797b;top:18px}.stage-pet{width:350px;margin-top:25px;filter:drop-shadow(0 4px 0 #745b7910)}
.nameplate{font:900 17px 'Trebuchet MS',sans-serif;border:3px solid white;box-shadow:0 3px 0 #e2c1d0;background:#ffe0ec;color:#844a6c;bottom:17px;padding:10px 24px}.nameplate span{color:#cd7397}.magic-note{font-size:12px;line-height:1.5;margin:16px 6px}
.wardrobe{padding:25px}.wardrobe-heading h2{font-size:29px}.wardrobe-heading .eyebrow{font-size:10px}.wardrobe-heading>span{font-size:13px;font-weight:900;background:#fff0bc;padding:9px;border-radius:12px;color:#8a662b;white-space:nowrap}
.slot-tabs{gap:8px;padding:20px 0 16px;border-color:#e4d9ed}.slot-tabs button{min-height:84px;font-size:13px;font-weight:900;border:2px solid #e1d4ec;background:#faf5ff;border-radius:20px;box-shadow:0 4px 0 #dfd0e8;padding:8px 5px;color:#735882}
.slot-glyph{height:36px;font-size:31px;margin-bottom:5px;line-height:32px}.slot-glyph svg{height:100%;width:100%;max-width:47px;display:block;margin:auto}
.slot-tabs .selected{background:#d8f0e4;border:3px solid #579f8b;box-shadow:inset 0 -4px 0 #abdbca,0 3px 0 #78b59f;color:#275e50;padding:7px 4px}
.items-grid{gap:15px;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:20px}
.item-card{position:relative;border:3px solid #ebdcec;border-radius:24px;background:#fff5ee;box-shadow:0 5px 0 #e2d0dd;padding:13px 9px;min-height:218px}
.item-card:hover{border-color:#b7a0d0;background:#fff0e9}.item-card.selected{padding:13px 9px;background:#e2f4e6;border:3px solid #3b8c70;box-shadow:0 5px 0 #84b59d}
.item-card.selected:after{content:'✓';position:absolute;top:8px;right:8px;width:28px;height:28px;display:grid;place-items:center;border:2px solid white;border-radius:50%;color:white;background:#32785f;font-size:18px;font-weight:900;box-shadow:0 2px 0 #27624e}
.item-art{height:119px;padding:8px;filter:drop-shadow(0 4px 0 #76507614)}.item-card strong{font-size:16px;line-height:1.25;margin-top:11px;color:#5c4471}.item-card small{font-size:11px;line-height:1.7;color:#75627e;margin-top:9px}.item-label{font-size:11px;color:#56715d;font-weight:900;padding:10px 0 0}
.remove-card{border-style:dashed;background:#faf6fc;box-shadow:none}.clear-symbol{color:#ad96bd;font-size:47px}
.studio-tools{gap:11px;margin-top:23px}.studio-tools .secondary,.studio-tools .text-button{min-height:56px;font-size:14px;padding:13px 15px;flex:1 1 130px}
.reveal-action{padding-top:24px;margin-top:24px}.reveal-action p{font-size:12px;margin-top:17px;color:#756780}
.species-switch{gap:12px}.species-switch button{min-height:58px;border:2px solid #decee9;box-shadow:0 4px 0 #d7c6e0;border-radius:19px;background:white;font-size:17px;padding:12px 22px}.species-switch .selected{background:#ffedaa;border:3px solid #d0a653;box-shadow:0 3px 0 #b99352}
.leave-button{font-size:13px;margin-top:22px}.reveal-page h1{font-size:46px}.reveal-page>p{font-size:17px;color:#75617e}.reveal-pet{background:radial-gradient(circle,#fff4c8,#fbe0ed);border:5px solid white;box-shadow:0 7px 0 #e7cede}.reveal-star{animation:none;color:#e7b04b;text-shadow:2px 3px white}
.reveal-card h2{font-size:27px}.result-line{font-size:15px;line-height:1.6;padding:13px 0;border-color:#ede1f1}.result-line b{display:inline-grid;place-items:center;background:#e1f0e4;border-radius:50%;width:25px;height:25px}.result-line.matched{color:#356c4e}.reward-box{border:2px solid #ecca77;border-radius:23px;background:#fff0bd;padding:20px;box-shadow:0 4px 0 #ead596}.reward-box>span{font-size:34px}.reward-box small{font-size:12px;margin-top:5px}.reveal-buttons{gap:19px}
.shop-intro h1{color:#684984}.shop-intro p,.shop-footer p{color:#796282}.shop-mode{gap:12px;margin:28px 0}.shop-mode button{min-height:60px;background:#fffdf8;border:2px solid #ddcbe9;box-shadow:0 4px 0 #d9c6e4;border-radius:21px;padding:13px 22px;font-size:16px}.shop-mode .selected{background:#e9d8ff;border-color:#b496cc;box-shadow:inset 0 -4px 0 #cfb5e5;color:#583a73}
.shop-filter{gap:10px;margin-bottom:30px}.shop-filter button{min-height:56px;border:2px solid #ddcde7;border-radius:20px;background:#fffafc;box-shadow:0 3px 0 #e0d0e6;font-size:14px;font-weight:900;padding:12px 19px}.shop-filter .selected{border-color:#579f8b;background:#dcf1e6;box-shadow:inset 0 -3px 0 #afd7c8;color:#2b5f50}
.catalog{gap:22px}.catalog-card{border:3px solid white;box-shadow:0 5px 0 #e5d4e5;border-radius:27px;padding:17px;background:#fffcfa}.catalog-card .item-art{height:151px;background:linear-gradient(#fff0d9,#ffe2e6);border:2px solid white;border-radius:23px;padding:17px}.catalog-card h3{font-size:23px;line-height:1.2}.catalog-card p{font-size:12px;color:#7c6186;line-height:1.65}.catalog-card button{min-height:60px;font-size:15px;border-radius:19px;line-height:1.35;padding:12px 9px}.owned-label{font-size:13px;font-weight:900;color:#53755c}.shop-footer p{font-size:14px}.shop-footer .primary{margin-top:7px}
dialog{border:4px solid white;border-radius:32px;background:#fffbf5;box-shadow:0 9px 0 #d7bce3,0 25px 80px #56336640}dialog::backdrop{background:#50415c69}dialog p{font-size:15px}dialog button{margin-top:10px}dialog input{min-height:58px;font-size:20px;border:2px solid #c6aed6;border-radius:18px}#toast:not(:empty){bottom:113px;border:3px solid white;background:#654d7d;border-radius:23px;font-size:15px;box-shadow:0 5px 0 #463255}
@media(max-width:1100px){.chapters{gap:13px}.chapter-heading{padding:20px 12px;gap:8px}.chapter-heading h3{font-size:21px}.chapter-icon{font-size:25px;padding:6px}.job{gap:7px}.job-avatar{width:49px;height:53px}.job-avatar svg{width:79px;margin:-7px 0 0 -16px}.job strong{font-size:16px}.job small{font-size:11px}.wardrobe{padding:18px}.slot-tabs{gap:5px}.slot-tabs button{font-size:12px}.wardrobe-heading h2{font-size:26px}}
@media(max-width:850px) and (min-width:701px){.studio-layout{grid-template-columns:1fr 1fr;gap:16px}.studio-page{margin:0 24px}.slot-tabs{display:grid;grid-template-columns:repeat(3,minmax(56px,1fr))}.items-grid{gap:10px}.item-card strong{font-size:14px}.item-card small{font-size:10px}.item-art{height:105px}.brief{padding:20px}.brief h2{font-size:24px}.stage-pet{width:300px}.pet-stage{min-height:364px}.studio-heading h1{font-size:35px}}
@media(max-width:700px){
 .topbar{padding:15px 16px}.brand{font-size:25px;letter-spacing:-1px;gap:8px}.brand small{font-size:7px;letter-spacing:.7px}.brand-mark{width:43px;height:45px;border-radius:17px;flex-shrink:0;font-size:23px}.top-actions{gap:9px}.wallet{font-size:15px;padding:9px 12px}.icon-button{width:52px;min-width:52px;min-height:56px;font-size:23px}
 .map-page,.studio-page,.shop-page{padding:26px 17px 135px}.welcome{border-radius:31px}.welcome-copy{padding:29px 23px 14px}.welcome h1{font-size:42px;letter-spacing:-1.4px}.welcome p{font-size:16px}.welcome-buttons{gap:17px}.welcome-buttons .primary,.welcome-buttons .secondary{width:100%;font-size:17px}.welcome-art{height:303px}.hero-pet{width:283px}.floating-label{left:12px;top:23px;font-size:15px}.art-star{font-size:55px;right:13px}.art-flower{left:13px;bottom:28px;font-size:70px}.art-caption{font-size:10px}.progress-note{font-size:12px;gap:8px}.progress-track{width:85px}.welcome .eyebrow{font-size:10px}
 .section-heading h2{font-size:31px}.section-heading .eyebrow{font-size:9px}.chapters{gap:23px}.chapter-heading{padding:20px}.chapter-heading h3{font-size:24px}.chapter-icon{font-size:28px;padding:8px}.route{grid-template-columns:1fr;padding:15px}.job{min-height:89px;margin-bottom:8px;padding:12px;gap:12px;flex-wrap:nowrap}.job-avatar{width:57px;height:59px}.job-avatar svg{width:89px;margin:-7px 0 0 -17px}.job strong{font-size:18px}.job small{font-size:13px;max-width:none}.job-status{position:static;margin-left:auto;flex-shrink:0;font-size:22px}
 .bottom-nav{bottom:10px;width:calc(100% - 24px);padding:6px;gap:3px;border-radius:24px}.bottom-nav button{min-width:0;min-height:64px;flex:1;padding:7px 4px;gap:8px;border-radius:18px;font-size:25px}.bottom-nav button span{font-size:12px;white-space:nowrap}
 .studio-heading{gap:12px;flex-wrap:wrap;margin-bottom:24px}.studio-heading h1{font-size:34px;letter-spacing:-1px}.studio-heading .eyebrow{font-size:10px}.studio-heading .text-button{font-size:13px;min-height:56px;padding:12px 16px}.studio-layout{gap:25px}.brief{padding:22px}.brief h2{font-size:25px;line-height:1.25}.criterion{font-size:13px;padding:10px 11px;min-height:48px}.mini{font-size:12px;line-height:1.5}.criteria{gap:8px}
 .pet-stage{min-height:342px;border-radius:30px}.stage-pet{width:295px;margin-top:19px}.stage-top{font-size:9px;left:15px;right:15px;top:16px}.pet-stage:before{top:39px}.nameplate{font-size:15px;bottom:14px;padding:9px 20px}.magic-note{font-size:11px;margin:16px 8px}
 .wardrobe{padding:20px 15px;border-radius:28px}.wardrobe-heading h2{font-size:26px}.wardrobe-heading .eyebrow{font-size:9px;letter-spacing:1px}.wardrobe-heading>span{padding:7px;font-size:12px}.slot-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.slot-tabs button{min-height:84px;font-size:11px;padding:9px 3px;border-radius:16px}.slot-tabs .selected{padding:8px 2px}.slot-glyph{height:31px;margin-bottom:6px}.items-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.item-card,.item-card.selected{padding:12px 7px;border-radius:22px;min-height:220px}.item-art{height:110px;padding:7px}.item-card strong{font-size:15px}.item-card small{font-size:11px}.item-label{font-size:11px}.studio-tools{gap:12px;margin-top:25px}.studio-tools .secondary,.studio-tools .text-button{min-height:58px;font-size:14px;padding:13px 12px}.primary,.secondary{font-size:17px}.reveal-action .primary{min-height:66px;font-size:17px}.reveal-action p{font-size:12px}.leave-button{font-size:13px}
 .reveal-page{padding:0 19px;margin-bottom:135px}.reveal-page h1{font-size:37px}.reveal-page>p{font-size:16px}.reveal-layout{gap:28px}.reveal-pet{max-width:345px}.reveal-pet svg{max-width:315px}.reveal-card{padding:24px}.reveal-card h2{font-size:27px}.result-line{font-size:14px}.reward-box{gap:12px;padding:18px}.reveal-buttons .primary,.reveal-buttons .secondary{min-height:64px;font-size:16px}
 .shop-intro h1{font-size:36px}.shop-intro p{font-size:15px}.shop-mode{gap:9px}.shop-mode button{padding:12px 16px;font-size:14px;min-height:60px}.shop-filter{gap:9px}.shop-filter button{font-size:13px;min-height:56px;padding:11px 14px}.catalog{gap:15px}.catalog-card{padding:11px 9px;border-radius:24px}.catalog-card .item-art{height:125px;padding:12px;border-radius:19px}.catalog-card h3{font-size:19px;margin:16px 0 9px}.catalog-card p{font-size:11px;margin-bottom:17px}.catalog-card button{min-height:64px;font-size:13px;padding:10px 6px;line-height:1.35;border-radius:17px}.owned-label{font-size:12px;line-height:1.4}.shop-footer p{font-size:13px}.shop-footer .primary{min-height:64px}.footnote{font-size:11px}
}
@media(max-width:360px){.topbar{padding:12px 10px;gap:6px}.brand{font-size:22px;gap:6px}.brand small{font-size:6px;letter-spacing:.35px}.brand-mark{width:35px;height:40px;font-size:20px;border-radius:14px}.top-actions{gap:7px}.wallet{padding:8px 9px;font-size:14px}.icon-button{width:49px;min-width:49px}.map-page,.studio-page,.shop-page{padding-left:12px;padding-right:12px}.welcome-copy{padding:25px 18px 13px}.welcome h1{font-size:37px}.welcome-art{height:281px}.hero-pet{width:260px}.floating-label{font-size:13px;left:5px}.progress-note{font-size:11px}.progress-track{width:65px}.chapter-heading{padding:17px 13px;gap:10px}.chapter-heading h3{font-size:22px}.chapter-icon{font-size:24px;margin:0}.chapter-count{font-size:11px;padding:7px}.job{gap:9px}.job strong{font-size:17px}.job small{font-size:12px}.bottom-nav{width:calc(100% - 16px);gap:1px;padding:5px}.bottom-nav button span{font-size:11px}.bottom-nav button{padding:7px 3px}.studio-heading h1{font-size:30px}.brief{padding:18px}.brief h2{font-size:23px}.criterion{font-size:12px;padding:9px}.pet-stage{min-height:312px}.stage-pet{width:265px}.stage-top{font-size:8px}.nameplate{font-size:14px;padding:8px 17px}.wardrobe{padding:19px 13px}.wardrobe-heading h2{font-size:24px}.wardrobe-heading .eyebrow{font-size:8px}.slot-tabs{grid-template-columns:repeat(3,minmax(56px,1fr));gap:8px}.slot-tabs button{font-size:13px}.items-grid{gap:10px}.item-card strong{font-size:14px}.item-card small{font-size:10px}.item-art{height:100px}.item-card,.item-card.selected{min-height:213px;padding:11px 6px}.catalog{gap:11px}.catalog-card h3{font-size:18px}.catalog-card .item-art{height:112px}.catalog-card p{font-size:10px}.catalog-card button{font-size:12px}.shop-mode button{font-size:13px;padding:10px}.reveal-page h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active:not(:disabled){transform:none}}
.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduce-motion button:active:not(:disabled){transform:none}
