:root{--paper:#fffaf4;--cream:#fff1df;--ink:#33233a;--muted:#7d6475;--tile:#dff9f8;--aqua:#58d6d0;--aqua-dark:#167f87;--coral:#ff7f8f;--lemon:#ffd966;--mint:#9ee98d;--bubble-pink:#ffc5dc;--berry:#b457d8;--soap-blue:#8ce7ff;--shadow:rgba(98,57,81,0.2);--chunk-shadow:#5d4265}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Trebuchet MS,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at 24% 18%,rgba(255,214,128,.2),transparent 28%),radial-gradient(circle at 80% 78%,rgba(103,199,194,.18),transparent 32%),linear-gradient(135deg,#1d3329,#362647 52%,#19343c)}button{font:inherit}.app-shell{place-items:center}.app-shell,.game-surface{min-height:100svh;padding:0;display:grid}.game-surface{width:100%;height:100svh;overflow:hidden;place-items:center;background:radial-gradient(circle at center,rgba(255,244,214,.1),transparent 32%),linear-gradient(135deg,#162e29,#312043 58%,#102b35)}.topbar{width:min(960px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}.eyebrow{margin:0 0 4px;color:#9a3db2;font-size:.86rem;font-weight:800;text-transform:uppercase;text-shadow:0 1px 0 rgba(255,255,255,.9)}h1{margin:0;color:#47254f;font-size:2.75rem;line-height:.94;text-shadow:0 3px 0 rgba(255,255,255,.9),0 8px 18px rgba(180,87,216,.18)}.bubble-logo{display:block;width:min(260px,58%);width:clamp(184px,48cqw,266px);min-width:0;max-width:calc(100% - 148px);line-height:0;transform:rotate(-1.5deg);filter:drop-shadow(0 7px 0 rgba(102,50,126,.2)) drop-shadow(0 12px 16px rgba(98,57,81,.16))}.bubble-logo img{display:block;width:100%;height:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.stat-row{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.stat-pill{min-width:56px;min-width:clamp(49px,8.5cqw,58px);min-height:42px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:5px;gap:5px;padding:6px 8px;border:2px solid rgba(255,255,255,.82);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,250,242,.78)),var(--paper);box-shadow:0 3px 0 rgba(93,66,101,.18),0 10px 22px rgba(49,42,39,.18);transform:rotate(-.6deg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-pill:nth-child(2){transform:rotate(.7deg)}.stat-pill:nth-child(3){transform:rotate(-.3deg)}.stat-icon{position:relative;width:18px;height:18px;display:block;flex:0 0 auto}.stat-icon-coins{width:22px;height:22px;background:url(/assets/paw-coin.png) 50%/contain no-repeat;filter:drop-shadow(0 1px 0 rgba(255,255,255,.62)) drop-shadow(0 2px 3px rgba(139,101,0,.22))}.stat-icon-baths{width:25px;height:25px;background:url(/assets/bath-stat.png) 50%/contain no-repeat;filter:drop-shadow(0 1px 0 rgba(255,255,255,.62)) drop-shadow(0 2px 3px rgba(35,128,123,.18))}.stat-icon-scrubs{width:24px;height:24px;background:url(/assets/rainbow-soap.png) 50%/contain no-repeat;filter:drop-shadow(0 1px 0 rgba(255,255,255,.62)) drop-shadow(0 2px 3px rgba(180,87,216,.2));transform:rotate(-10deg)}.meter-copy span,.panel-label,.stat-pill span:not(.stat-icon){display:block;color:#8b4b95;font-size:.64rem;font-weight:800;text-transform:uppercase}.stat-pill strong{display:block;color:#3f2748;font-size:1.08rem;line-height:1;text-align:right;white-space:nowrap}.coin-pill{border-color:rgba(175,122,0,.28);background:linear-gradient(145deg,#fff1a8,#fffaf4 58%,#ffd6ea)}.coin-pill strong{color:#8b6500}.play-layout{width:min(960px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 250px;align-items:center;grid-gap:16px;gap:16px}.stage-wrap{width:100%;height:100svh;min-width:0;display:grid;place-items:center}.pibble-scene{position:relative;--scene-ratio:0.5628;width:min(100vw,calc(100svh * var(--scene-ratio)));height:100svh;overflow:hidden;overflow:clip;scrollbar-gutter:auto;scrollbar-width:none;isolation:isolate;container-type:inline-size;background:#dff9f8;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 26px 90px rgba(0,0,0,.36)}.pibble-scene::-webkit-scrollbar{width:0;height:0;display:none}.pibble-scene.has-background{background-image:var(--scene-background-image,none);background-position:50%;background-size:cover;background-repeat:no-repeat}.pibble-scene:before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 50% 59%,var(--rarity-soft),transparent 21%),linear-gradient(180deg,rgba(23,32,43,.25),transparent 22%,transparent 63%,rgba(33,20,34,.34));mix-blend-mode:multiply;opacity:.7;pointer-events:none}.pibble-stage{position:absolute;inset:0;z-index:3;--pibble-frame-size:118%;--pibble-frame-top:31%;background:transparent;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:none}.pibble-stage:before{content:"";position:absolute;left:10%;right:10%;bottom:14%;z-index:1;height:15%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(36,30,38,.2),transparent 66%);filter:blur(5px);pointer-events:none}.stage-background-image{z-index:0;width:100%;height:100%;object-fit:cover;object-position:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.scene-vignette,.stage-background-image{position:absolute;inset:0;pointer-events:none}.scene-vignette{z-index:2;background:linear-gradient(180deg,rgba(30,22,34,.52),transparent 18%,transparent 62%,rgba(32,21,33,.56)),radial-gradient(ellipse at center,transparent 48%,rgba(32,22,30,.18))}.scene-hud{position:absolute;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));z-index:20;pointer-events:auto}.scene-hud-top{top:max(14px,env(safe-area-inset-top));display:grid;grid-template-columns:1fr;align-items:start;grid-gap:8px;gap:8px}.scene-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.scene-hud-top .stat-row{width:100%;max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:7px;gap:7px}.scene-top-actions{display:flex;justify-content:flex-end;gap:5px}.scene-menu-button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;border:2px solid rgba(255,255,255,.82);border-radius:999px;color:#ffffff;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent 54%),linear-gradient(135deg,#9a3db2,#ff7f8f);box-shadow:0 3px 0 rgba(116,49,140,.72),0 12px 22px rgba(49,42,39,.18);font-size:.78rem;font-weight:1000;line-height:1;text-decoration:none;text-shadow:0 1px 0 rgba(76,39,89,.28);cursor:pointer}.scene-sound-button[aria-pressed=false],.sound-nav-button[aria-pressed=false]{opacity:.68;filter:saturate(.72)}.scene-menu-button:hover{transform:translateY(-1px)}.scene-menu-button:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(116,49,140,.72),0 8px 16px rgba(49,42,39,.14)}.scene-rarity-card{grid-column:1/-1;justify-self:center;z-index:6;display:inline-grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;width:max-content;max-width:min(320px,calc(100% - 28px));padding:9px 10px;border:2px solid rgba(255,255,255,.78);border-radius:999px;color:#fffaf4;background:linear-gradient(135deg,rgba(52,34,64,.76),rgba(35,128,123,.66)),rgba(39,30,48,.7);box-shadow:0 3px 0 rgba(36,22,42,.3),0 16px 30px rgba(37,26,40,.28);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none}.scene-rarity-card .rarity-dot{width:17px;height:17px;border-width:2px;box-shadow:0 4px 12px rgba(49,42,39,.18)}.scene-rarity-card p,.scene-rarity-card span,.scene-rarity-card strong{margin:0}.scene-rarity-card p{color:rgba(255,250,244,.76);font-size:.63rem;font-weight:900;line-height:1;text-transform:uppercase}.scene-rarity-card strong{display:block;overflow:hidden;margin-top:2px;color:#ffffff;font-size:.92rem;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.scene-rarity-card>span:last-child{min-width:44px;padding:5px 8px 4px;border-radius:999px;color:#5b4305;background:linear-gradient(135deg,#ffe47a,var(--rarity-accent));font-size:.82rem;font-weight:1000;text-align:center;box-shadow:inset 0 -2px 0 rgba(91,67,5,.14)}.pibble-stage:active{cursor:-webkit-grabbing;cursor:grabbing}.pibble-stage:focus-visible{box-shadow:inset 0 0 0 4px rgba(255,255,255,.9),inset 0 0 0 8px var(--rarity-accent)}.pibble-scene:has(.pibble-stage.is-clean){animation:reward-glow .82s ease-out both}.coordinate-pibble-frame,.pibble-frame{position:absolute;z-index:1;left:50%;top:var(--pibble-frame-top,15%);width:var(--pibble-frame-size,84%);aspect-ratio:1;pointer-events:none;transform:translateX(-50%)}.pibble-character,.pibble-motion{position:absolute;inset:0;pointer-events:none;backface-visibility:hidden;-webkit-backface-visibility:hidden}.pibble-character{animation:bath-enter-right .42s cubic-bezier(.2,.8,.25,1) both;will-change:opacity,transform}.pibble-stage.is-clean .pibble-character{animation:bath-exit-left 1.25s cubic-bezier(.32,.72,.32,1) both}.pibble-motion{transform-origin:50% 77%;transition:transform .18s ease;will-change:transform}.pibble-stage.is-idle-sad .pibble-motion{animation:sad-settle .42s ease-out both}.pibble-stage.is-smiling:not(.is-scrubbing):not(.is-clean) .pibble-motion{animation:smile-perk .36s cubic-bezier(.2,.8,.25,1) both}.pibble-stage.is-scrubbing .pibble-motion{animation:scrub-wiggle .36s ease-in-out infinite}.pibble-stage.is-clean .pibble-motion{animation:clean-pop .76s cubic-bezier(.2,.8,.25,1) both}.pibble-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:1;filter:drop-shadow(0 22px 18px rgba(56,43,51,.2)) drop-shadow(0 3px 0 rgba(255,255,255,.22));transform:translateZ(0) scale(1);transition:opacity .22s ease,transform .3s cubic-bezier(.2,.8,.25,1);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:opacity,transform;z-index:1}.pibble-sad-image{opacity:1;transform:translate3d(0,3px,0) scale(.995);z-index:1}.pibble-happy-image,.pibble-smile-image{opacity:0;transform:translate3d(0,5px,0) scale(.99)}.pibble-smile-image{z-index:2}.pibble-happy-image{z-index:3}.pibble-stage.show-happy .pibble-sad-image,.pibble-stage.show-happy .pibble-smile-image,.pibble-stage.show-smile .pibble-sad-image{opacity:0;transform:translate3d(0,8px,0) scale(.985)}.pibble-stage.show-smile .pibble-smile-image{opacity:1;transform:translate3d(0,-2px,0) scale(1.006)}.pibble-stage.show-happy .pibble-happy-image{opacity:1;transform:translate3d(0,-3px,0) scale(1.012)}.dirt-spot{position:absolute;z-index:3;aspect-ratio:var(--dirt-ratio,1.18);border-radius:var(--dirt-radius,44% 56% 51% 49%);transform:translate(-50%,-50%) rotate(var(--dirt-rotation,-10deg));background:radial-gradient(ellipse at var(--dirt-dark-x,38%) var(--dirt-dark-y,35%),rgba(95,55,30,var(--dirt-dark-alpha,.64)),transparent var(--dirt-dark-spread,24%)),radial-gradient(ellipse at var(--dirt-warm-x,62%) var(--dirt-warm-y,65%),rgba(135,83,40,var(--dirt-warm-alpha,.52)),transparent var(--dirt-warm-spread,32%)),rgba(104,62,34,var(--dirt-base-alpha,.38));filter:blur(var(--dirt-blur,.7px));mix-blend-mode:multiply;opacity:var(--dirt-opacity,.72);pointer-events:none;box-shadow:inset 0 0 0 1px rgba(80,47,29,.08);animation:dirt-pop-in .26s cubic-bezier(.2,.9,.25,1.25) both;transition:opacity .16s ease,transform .16s ease;will-change:transform}.dirt-spot.is-clearing{animation:dirt-fade-out .34s ease-out forwards}.dirt-spot-light{background:radial-gradient(ellipse at var(--dirt-dark-x,38%) var(--dirt-dark-y,35%),rgba(255,255,255,.88),transparent var(--dirt-dark-spread,25%)),radial-gradient(ellipse at var(--dirt-warm-x,62%) var(--dirt-warm-y,65%),rgba(238,244,240,.76),transparent var(--dirt-warm-spread,34%)),rgba(236,232,214,.64);filter:blur(var(--dirt-blur,.55px)) drop-shadow(0 1px 2px rgba(0,0,0,.3));mix-blend-mode:normal;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 1px 2px rgba(0,0,0,.2)}.suds-sheet{z-index:4;left:50%;top:68%;width:48%;height:34%;transform:translate(-50%,-50%);pointer-events:none;transition:opacity .16s ease}.bubble,.foam-dot,.suds-sheet{position:absolute;border-radius:50%}.bubble,.foam-dot{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.96),rgba(255,255,255,.3) 34%,transparent 64%),rgba(103,199,194,.24);border:1px solid rgba(255,255,255,.68);box-shadow:inset -3px -4px 8px rgba(35,128,123,.12)}.foam-dot{transform:translate(-50%,-50%)}.bubble{z-index:4;animation:bubble-pop .9s ease-out forwards}.bubble,.coin-burst{transform:translate(-50%,-50%);pointer-events:none}.coin-burst{position:absolute;z-index:6;display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:2px solid rgba(255,255,255,.9);border-radius:999px;color:#5b4305;background:linear-gradient(135deg,#ffe47a,var(--rarity-accent));box-shadow:0 14px 28px rgba(126,90,9,.18);font-size:.84rem;font-weight:900;animation:coin-float .9s ease-out forwards}.coin-burst:before{content:"";width:18px;height:18px;background:url(/assets/paw-coin.png) 50%/contain no-repeat;filter:drop-shadow(0 2px 3px rgba(139,101,0,.24))}.wash-pad{position:absolute;z-index:5;width:96px;aspect-ratio:1;transform:translate(calc(-50% + var(--soap-nudge-x, 0px)),calc(-50% + var(--soap-nudge-y, 0px))) rotate(var(--soap-rotation,-13deg));transform-origin:50% 58%;background:url(/assets/rainbow-soap.png) 50%/contain no-repeat;filter:drop-shadow(0 10px 14px rgba(35,128,123,.18));pointer-events:none;animation:soap-scrub .26s cubic-bezier(.2,.8,.25,1) both;will-change:transform,opacity}.scene-progress-row{grid-column:1/-1;justify-self:center;width:100%;max-width:calc(100% - 28px);max-width:min(560px,calc(100cqw - 28px));display:grid;grid-template-columns:minmax(0,1fr)}.scene-progress{position:relative;height:32px;overflow:hidden;border:3px solid rgba(255,255,255,.9);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.56),rgba(255,255,255,.18)),rgba(60,39,70,.58);box-shadow:0 3px 0 rgba(47,31,58,.42),0 12px 24px rgba(35,24,42,.24),inset 0 2px 4px rgba(255,255,255,.26),inset 0 -3px 5px rgba(40,25,48,.24);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-progress:after{content:"";position:absolute;inset:3px 5px auto;z-index:2;height:7px;border-radius:999px;background:rgba(255,255,255,.36);pointer-events:none}.scene-progress-fill{position:absolute;inset:0 auto 0 0;z-index:1;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.48),transparent 48%),linear-gradient(90deg,#ff7f8f,#ffd966 52%,#9ee98d);box-shadow:inset 0 -5px 8px rgba(123,72,71,.16),0 0 18px rgba(255,217,102,.32);transition:width .15s ease}.scene-progress-copy{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 10px;color:#ffffff;font-weight:1000;line-height:1;text-shadow:0 1px 0 rgba(62,36,73,.5),0 2px 6px rgba(32,23,40,.34);pointer-events:none}.scene-progress-copy span{overflow:hidden;font-size:.68rem;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.scene-progress-copy strong{flex:0 0 auto;font-size:.84rem}.control-panel{display:grid;grid-gap:14px;gap:14px;padding:14px;border:3px solid rgba(255,255,255,.94);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,241,223,.9)),var(--paper);box-shadow:0 6px 0 rgba(93,66,101,.16),0 20px 42px rgba(98,57,81,.14)}.rarity-card{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:12px;gap:12px;padding:12px;border:2px solid color-mix(in srgb,var(--rarity-accent) 46%,white);border-radius:8px;background:linear-gradient(135deg,var(--rarity-soft),rgba(255,255,255,.88) 52%,rgba(255,197,220,.2)),var(--paper);box-shadow:inset 0 -4px 0 rgba(93,66,101,.08)}.rarity-dot{width:22px;height:22px;border:3px solid rgba(255,255,255,.88);border-radius:50%;background:var(--rarity-accent);box-shadow:0 8px 18px rgba(49,42,39,.14)}.rarity-name{margin:0;color:#43214d;font-size:1.24rem;font-weight:900;line-height:1.05}.rarity-detail{margin:4px 0 0;color:var(--muted);font-size:.82rem;font-weight:800}.panel-label{margin:0 0 6px}.mood-text{margin:0;color:#43214d;font-size:1.48rem;font-weight:900}.meter-group{display:grid;grid-gap:8px;gap:8px}.meter-copy{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.meter-copy strong{font-size:1rem}.meter-track{height:18px;overflow:hidden;border-radius:999px;border:2px solid rgba(71,37,79,.12);background:rgba(255,255,255,.72);box-shadow:inset 0 2px 5px rgba(49,42,39,.14),0 2px 0 rgba(255,255,255,.75)}.meter-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.48),transparent 50%),linear-gradient(90deg,var(--coral),var(--lemon),var(--mint));transition:width .15s ease}.suds-track span{background:linear-gradient(180deg,rgba(255,255,255,.58),transparent 52%),linear-gradient(90deg,var(--soap-blue),var(--aqua),#e7fffd)}.fresh-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 14px;border:2px solid rgba(255,255,255,.82);border-radius:8px;color:white;background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 50%),linear-gradient(135deg,var(--aqua-dark),#35b9bc);font-weight:900;text-align:center;text-decoration:none;cursor:pointer;box-shadow:0 5px 0 #0b6870,0 16px 26px rgba(35,128,123,.22);transition:transform .14s ease,opacity .14s ease,background .14s ease}.fresh-button:not(:disabled):hover{transform:translateY(-2px) rotate(-.4deg);background:linear-gradient(180deg,rgba(255,255,255,.26),transparent 50%),linear-gradient(135deg,#126f77,#3cc8cb)}.fresh-button:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 #0b6870,0 8px 18px rgba(35,128,123,.16)}.fresh-button:disabled{cursor:default;opacity:.56;box-shadow:0 4px 0 rgba(26,65,68,.68),0 12px 20px rgba(20,95,101,.12)}.shop-link{background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 50%),linear-gradient(135deg,#b457d8,#ff7f8f);box-shadow:0 5px 0 #74318c,0 16px 26px rgba(180,87,216,.18)}.shop-link:hover{background:linear-gradient(180deg,rgba(255,255,255,.26),transparent 50%),linear-gradient(135deg,#9a3db2,#f06d82)}.nav-button,.secondary-button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:2px solid rgba(71,37,79,.18);border-radius:8px;color:var(--ink);background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,241,223,.86)),var(--paper);box-shadow:0 4px 0 rgba(93,66,101,.14),0 12px 20px rgba(98,57,81,.1);font-weight:900;text-align:center;text-decoration:none;cursor:pointer}.back-to-game-button{color:white;border-color:rgba(255,255,255,.78);background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 50%),linear-gradient(135deg,var(--aqua-dark),#35b9bc);box-shadow:0 5px 0 #0b6870,0 14px 24px rgba(35,128,123,.18)}.back-to-game-button:hover{background:#196e6a}.mode-toggle{min-height:46px;display:inline-grid;grid-template-columns:1fr 1fr;overflow:hidden;border:2px solid rgba(71,37,79,.18);border-radius:8px;background:rgba(255,250,242,.9);box-shadow:0 12px 20px rgba(98,57,81,.1)}.mode-toggle button{min-width:94px;border:0;padding:0 12px;color:var(--muted);background:transparent;font-weight:900;cursor:pointer}.mode-toggle button[aria-pressed=true]{color:white;background:linear-gradient(135deg,var(--aqua-dark),var(--berry))}.secondary-button:disabled{cursor:default;opacity:.42;box-shadow:none}.cosmetic-item{position:absolute;display:block;pointer-events:none;transform-origin:0 0;filter:drop-shadow(0 10px 12px rgba(49,42,39,.16))}.cosmetics-shell{align-items:start}.cosmetics-surface{width:min(1120px,100%);min-height:calc(100svh - 40px);padding:22px;display:grid;align-content:start;grid-gap:18px;gap:18px}.cosmetics-layout,.cosmetics-topbar{width:min(1040px,100%)}.cosmetics-layout{margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,360px);grid-gap:18px;gap:18px;align-items:start}.asset-editor,.coordinate-tool,.cosmetic-card,.cosmetics-preview,.equipped-strip{border:2px solid rgba(255,255,255,.9);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,241,223,.86)),var(--paper);box-shadow:0 5px 0 rgba(93,66,101,.12),0 20px 42px rgba(98,57,81,.12)}.cosmetics-preview{display:grid;grid-gap:14px;gap:14px;align-content:start;padding:16px;position:-webkit-sticky;position:sticky;top:18px}.cosmetics-preview-header,.cosmetics-shop-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.cosmetics-preview-header h2,.cosmetics-shop-header h2{margin:0;color:#43214d;font-size:1.32rem;line-height:1.05}.cosmetic-card-status,.cosmetic-state-badge,.cosmetics-shop-header>span{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 9px;border:2px solid rgba(71,37,79,.12);border-radius:999px;color:#43214d;background:rgba(255,255,255,.68);font-size:.76rem;font-weight:900;white-space:nowrap}.coordinate-stage{position:relative;--pibble-frame-size:92%;--pibble-frame-top:31%;width:min(100%,clamp(280px,40svh,420px));aspect-ratio:941/1672;justify-self:center;overflow:hidden;border:4px solid rgba(255,255,255,.92);border-radius:8px;background:radial-gradient(circle at 50% 76%,rgba(255,228,122,.24),transparent 36%),radial-gradient(circle at 18% 20%,rgba(255,197,220,.42),transparent 24%),linear-gradient(135deg,rgba(255,255,255,.86),rgba(223,249,248,.82));cursor:default;touch-action:none}.coordinate-stage.has-background{background:#dff9f8}.coordinate-background-image{z-index:0}.coordinate-stage.is-active{cursor:crosshair;box-shadow:0 0 0 4px rgba(35,128,123,.16),inset 0 0 0 2px rgba(35,128,123,.18)}.coordinate-pibble-image{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:drop-shadow(0 22px 18px rgba(116,79,56,.16))}.preview-cosmetic{z-index:2}.selected-cosmetic-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding-top:14px;border-top:2px solid rgba(71,37,79,.1)}.selected-cosmetic-copy{min-width:0}.selected-cosmetic-copy h3{margin:0;color:#43214d;font-size:1.38rem;line-height:1.05}.selected-cosmetic-copy p:last-child{margin:5px 0 0;color:var(--muted);font-size:.9rem;font-weight:850}.selected-cosmetic-stats{display:flex;gap:8px}.selected-cosmetic-stats span{min-width:76px;padding:8px 9px;border:2px solid rgba(35,128,123,.14);border-radius:8px;background:rgba(232,248,246,.54);text-align:center}.selected-cosmetic-stats small,.selected-cosmetic-stats strong{display:block}.selected-cosmetic-stats strong{color:#196e6a;font-size:1.05rem;line-height:1}.selected-cosmetic-stats small{margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase}.selected-cosmetic-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);grid-gap:9px;gap:9px}.selected-cosmetic-actions>*{min-width:0}.selected-cosmetic-note{grid-column:1/-1;margin:-2px 0 0;color:#8b6500;font-size:.88rem;font-weight:900}.cosmetics-sidebar{display:grid;grid-gap:14px;gap:14px}.equipped-strip{display:grid;grid-gap:10px;gap:10px;padding:12px}.equipped-slots{display:grid;grid-gap:8px;gap:8px}.equipped-slot{width:100%;min-height:58px;display:grid;grid-gap:3px;gap:3px;align-content:center;padding:9px 11px;border:2px solid rgba(35,128,123,.14);border-radius:8px;color:var(--ink);background:rgba(255,255,255,.64);text-align:left;cursor:pointer}.equipped-slot:disabled{cursor:default;opacity:.62}.equipped-slot span{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.equipped-slot strong{overflow:hidden;color:#43214d;font-size:.94rem;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.cosmetics-shop{display:grid;grid-gap:12px;gap:12px}.cosmetic-card{overflow:hidden;padding:0;transition:border-color .14s ease,transform .14s ease,box-shadow .14s ease}.cosmetic-card.is-selected{border-color:color-mix(in srgb,var(--aqua-dark) 45%,white);box-shadow:0 5px 0 rgba(35,128,123,.2),0 20px 42px rgba(98,57,81,.12);transform:translateY(-1px)}.cosmetic-card-button{width:100%;min-height:102px;display:grid;grid-template-columns:84px minmax(0,1fr);grid-gap:11px;gap:11px;align-items:center;border:0;padding:10px;color:inherit;background:transparent;text-align:left;cursor:pointer}.cosmetic-card-button:focus-visible,.cosmetic-card-button:hover{background:rgba(232,248,246,.38);outline:none}.cosmetic-card-preview{width:84px;height:84px;display:grid;place-items:center;overflow:hidden;border:2px solid rgba(35,128,123,.14);border-radius:8px;background:linear-gradient(135deg,rgba(232,248,246,.82),rgba(255,250,242,.86))}.cosmetic-card-preview img{width:92%;height:92%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 12px 10px rgba(75,44,34,.14))}.cosmetic-card-preview.is-background-preview img{width:100%;height:100%;object-fit:cover;filter:none}.cosmetic-card-copy{min-width:0;display:grid;grid-gap:4px;gap:4px}.cosmetic-card-copy strong{overflow:hidden;color:#43214d;font-size:1.02rem;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.cosmetic-card-status{grid-column:2;justify-self:start}.cosmetic-card-status.is-equipped{color:white;border-color:transparent;background:linear-gradient(135deg,var(--aqua-dark),var(--berry))}.cosmetic-card-status.is-owned,.cosmetic-card-status.is-ready{color:#196e6a;border-color:rgba(35,128,123,.18);background:rgba(232,248,246,.72)}.cosmetic-card-status.is-locked{color:#8b6500;border-color:rgba(175,122,0,.22);background:rgba(255,241,168,.62)}.cosmetics-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));grid-gap:6px;gap:6px;padding:5px;border:2px solid rgba(71,37,79,.12);border-radius:8px;background:rgba(255,250,242,.82)}.cosmetics-tabs button{min-width:0;min-height:38px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:.82rem;font-weight:900;cursor:pointer}.cosmetics-tabs button[aria-pressed=true]{color:white;background:linear-gradient(135deg,var(--aqua-dark),var(--berry))}.cosmetic-catalog-grid{display:grid;grid-gap:10px;gap:10px}.coordinate-tool h2,.cosmetic-card-copy h2{margin:0;font-size:1.28rem;line-height:1.05}.price-copy{margin:0;color:#8b6500;font-size:.9rem;font-weight:900}.asset-editor,.coordinate-tool{width:min(1040px,100%);margin:0 auto;padding:16px;display:grid;grid-gap:16px;gap:16px}.coordinate-tool-header{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.admin-note{margin:0;color:var(--muted);font-size:.82rem;font-weight:800}.coordinate-tool-grid{display:grid;grid-template-columns:240px 1fr;grid-gap:16px;gap:16px}.coordinate-asset{position:relative;min-height:180px;display:grid;place-items:center;overflow:hidden;border:2px dashed rgba(35,128,123,.28);border-radius:8px;background:rgba(232,248,246,.56);cursor:default}.coordinate-asset.is-active{border-color:var(--aqua-dark);cursor:crosshair}.coordinate-asset img,.coordinate-asset-cosmetic{width:94%;height:94%;pointer-events:none}.coordinate-marker{position:absolute;z-index:8;width:16px;height:16px;border:3px solid white;border-radius:50%;background:var(--coral);box-shadow:0 0 0 2px rgba(49,42,39,.52),0 8px 16px rgba(49,42,39,.2);pointer-events:none;transform:translate(-50%,-50%)}.coordinate-marker:after,.coordinate-marker:before{content:"";position:absolute;left:50%;top:50%;background:rgba(49,42,39,.58);transform:translate(-50%,-50%)}.coordinate-marker:before{width:26px;height:2px}.coordinate-marker:after{width:2px;height:26px}.coordinate-marker-pibble{background:var(--aqua)}.coordinate-caption{margin:8px 0 0;color:var(--muted);font-size:.82rem;font-weight:900;text-align:center}.coordinate-control-stack{display:grid;grid-gap:12px;gap:12px;align-content:start}.coordinate-map-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px}.coordinate-readout{display:grid;grid-gap:8px;gap:8px;padding:12px;border:2px solid rgba(35,128,123,.16);border-radius:8px;background:rgba(232,248,246,.5)}.coordinate-readout p{margin:0;color:var(--ink);font-size:.94rem;font-weight:850}.coordinate-readout div{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.82rem;font-weight:850}.coordinate-readout strong{color:var(--ink);white-space:nowrap}.coordinate-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.coordinate-fields label{display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.coordinate-fields input{width:100%;min-height:42px;border:2px solid rgba(35,128,123,.18);border-radius:8px;padding:8px 10px;color:var(--ink);background:rgba(255,255,255,.78);font:inherit;font-weight:800}.asset-editor{background:rgba(255,250,242,.9)}.asset-editor-grid{display:grid;grid-template-columns:minmax(280px,.86fr) 1fr;grid-gap:16px;gap:16px}.asset-editor-canvas{position:relative;width:min(100%,380px);aspect-ratio:1;margin:0 auto;overflow:hidden;border:2px solid rgba(35,128,123,.18);border-radius:8px;background:linear-gradient(45deg,rgba(35,128,123,.08) 25%,transparent 0),linear-gradient(-45deg,rgba(35,128,123,.08) 25%,transparent 0),linear-gradient(45deg,transparent 75%,rgba(35,128,123,.08) 0),linear-gradient(-45deg,transparent 75%,rgba(35,128,123,.08) 0),rgba(255,255,255,.68);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.asset-editor-zoom-stage{position:absolute;inset:0;transform-origin:50% 24%;will-change:transform}.asset-editor-canvas.is-drawing,.asset-editor-canvas.is-moving,.asset-editor-canvas.is-panning,.asset-editor-canvas.is-resizing,.asset-editor-canvas.is-rotating{box-shadow:0 0 0 4px rgba(35,128,123,.14),inset 0 0 0 2px rgba(35,128,123,.16)}.asset-editor-canvas.is-panning,.asset-editor-canvas.is-panning .asset-editor-asset-layer,.asset-editor-canvas.is-panning .asset-editor-zoom-stage,.asset-editor-canvas.is-panning .asset-resize-handle,.asset-editor-canvas.is-panning .mask-oval-control,.asset-editor-canvas.is-panning .mask-resize-handle,.asset-editor-canvas.is-panning .mask-rotate-handle{cursor:-webkit-grab;cursor:grab}.asset-editor-canvas.is-drawing{cursor:crosshair}.asset-editor-canvas.is-moving{cursor:-webkit-grab;cursor:grab}.asset-editor-canvas.is-resizing{cursor:default}.asset-editor-canvas.is-rotating{cursor:-webkit-grabbing;cursor:grabbing}.asset-editor-cosmetic{z-index:2;opacity:.9;filter:drop-shadow(0 12px 12px rgba(75,44,34,.14))}.asset-editor-cosmetic,.asset-editor-pibble-reference{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.asset-editor-pibble-reference{z-index:1;object-fit:cover;filter:saturate(.9) drop-shadow(0 14px 14px rgba(116,79,56,.1))}.asset-editor-asset-layer{position:absolute;display:block;transform-origin:0 0;cursor:default}.mask-oval-control{position:absolute;z-index:3;border:var(--asset-editor-oval-line,1.25px) solid rgba(151,50,34,.88);border-radius:50%;background:transparent;box-shadow:none;cursor:pointer;transform-origin:50% 50%}.mask-oval-control.is-selected{border-color:rgba(35,128,123,.96);background:transparent;box-shadow:0 0 0 var(--asset-editor-thin-line,1px) rgba(255,255,255,.92)}.mask-oval-control.is-draft{pointer-events:none;border-style:dashed;border-color:rgba(139,101,0,.82);background:transparent;box-shadow:none}.mask-resize-frame{position:absolute;z-index:5;border:var(--asset-editor-thin-line,1px) solid rgba(35,128,123,.86);border-radius:50%;pointer-events:none;transform-origin:50% 50%}.asset-resize-frame{position:absolute;inset:0;z-index:7;border:var(--asset-editor-thin-line,1px) solid rgba(35,128,123,.9);border-radius:4px;pointer-events:none}.mask-resize-handle{width:var(--asset-editor-mask-handle-size,9px);height:var(--asset-editor-mask-handle-size,9px);border:var(--asset-editor-thin-line,1px) solid white;border-radius:50%}.asset-resize-handle,.mask-resize-handle{position:absolute;background:var(--aqua-dark);box-shadow:0 0 0 var(--asset-editor-thin-line,1px) rgba(49,42,39,.42),0 var(--asset-editor-handle-shadow-y,5px) var(--asset-editor-handle-shadow-blur,9px) rgba(49,42,39,.16);pointer-events:auto}.asset-resize-handle{width:var(--asset-editor-asset-handle-size,11px);height:var(--asset-editor-asset-handle-size,11px);border:var(--asset-editor-thin-line,1px) solid white;border-radius:var(--asset-editor-asset-handle-radius,3px)}.mask-rotate-handle{position:absolute;left:50%;top:calc(-1 * var(--asset-editor-rotate-offset, 22px));z-index:2;width:var(--asset-editor-mask-handle-size,9px);height:var(--asset-editor-mask-handle-size,9px);border:var(--asset-editor-thin-line,1px) solid white;border-radius:50%;background:rgba(151,50,34,.95);box-shadow:0 0 0 var(--asset-editor-thin-line,1px) rgba(49,42,39,.42),0 var(--asset-editor-handle-shadow-y,5px) var(--asset-editor-handle-shadow-blur,9px) rgba(49,42,39,.16);cursor:-webkit-grab;cursor:grab;pointer-events:auto;transform:translate(-50%,-50%)}.mask-rotate-handle:before{position:absolute;left:50%;top:100%;width:var(--asset-editor-thin-line,1px);height:var(--asset-editor-rotate-line,14px);background:rgba(151,50,34,.72);content:"";pointer-events:none;transform:translateX(-50%)}.asset-resize-handle-n,.mask-resize-handle-n{left:50%;top:0;transform:translate(-50%,-50%);cursor:ns-resize}.asset-resize-handle-ne,.mask-resize-handle-ne{left:100%;top:0;transform:translate(-50%,-50%);cursor:nesw-resize}.asset-resize-handle-e,.mask-resize-handle-e{left:100%;top:50%;transform:translate(-50%,-50%);cursor:ew-resize}.asset-resize-handle-se,.mask-resize-handle-se{left:100%;top:100%;transform:translate(-50%,-50%);cursor:nwse-resize}.asset-resize-handle-s,.mask-resize-handle-s{left:50%;top:100%;transform:translate(-50%,-50%);cursor:ns-resize}.asset-resize-handle-sw,.mask-resize-handle-sw{left:0;top:100%;transform:translate(-50%,-50%);cursor:nesw-resize}.asset-resize-handle-w,.mask-resize-handle-w{left:0;top:50%;transform:translate(-50%,-50%);cursor:ew-resize}.asset-resize-handle-nw,.mask-resize-handle-nw{left:0;top:0;transform:translate(-50%,-50%);cursor:nwse-resize}.asset-editor-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.asset-editor-actions button[aria-pressed=true]{color:white;border-color:transparent;background:var(--aqua-dark)}.asset-shape-panel{display:grid;grid-gap:10px;gap:10px;padding:12px;border:2px solid rgba(35,128,123,.16);border-radius:8px;background:rgba(255,255,255,.58)}.asset-view-actions{display:flex}.asset-view-actions .secondary-button{width:100%}.reference-opacity-control{display:grid;grid-gap:8px;gap:8px;color:var(--muted);font-size:.82rem;font-weight:900}.reference-opacity-control span{display:flex;justify-content:space-between;gap:12px;text-transform:uppercase}.reference-opacity-control strong{color:var(--ink)}.reference-opacity-control input{width:100%;accent-color:var(--aqua-dark)}.asset-shape-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-mask-fields{grid-template-columns:repeat(5,minmax(0,1fr))}@keyframes bubble-pop{0%{opacity:0;transform:translate(-50%,-20%) scale(.5)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--drift)),-88px) scale(1.15)}}@keyframes dirt-pop-in{0%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--dirt-rotation, -10deg) - 12deg)) scale(.35)}62%{opacity:var(--dirt-opacity,.72);transform:translate(-50%,-50%) rotate(calc(var(--dirt-rotation, -10deg) + 8deg)) scale(1.18)}to{opacity:var(--dirt-opacity,.72);transform:translate(-50%,-50%) rotate(var(--dirt-rotation,-10deg)) scale(1)}}@keyframes dirt-fade-out{0%{opacity:var(--dirt-opacity,.72);transform:translate(-50%,-50%) rotate(var(--dirt-rotation,-10deg)) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--dirt-rotation, -10deg) + 6deg)) scale(.82)}}@keyframes soap-scrub{0%{opacity:0;transform:translate(calc(-50% + var(--soap-nudge-x, 0px)),calc(-50% + var(--soap-nudge-y, 0px))) rotate(var(--soap-rotation-start,-24deg)) scale(.86)}42%{opacity:1;transform:translate(calc(-50% + var(--soap-nudge-x, 0px)),calc(-50% + var(--soap-nudge-y, 0px))) rotate(var(--soap-rotation-mid,-7deg)) scale(1.06)}to{opacity:1;transform:translate(calc(-50% + var(--soap-nudge-x, 0px)),calc(-50% + var(--soap-nudge-y, 0px))) rotate(var(--soap-rotation,-13deg)) scale(1)}}@keyframes bath-enter-right{0%{opacity:0;transform:translate3d(12%,6px,0) scale(.985)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes bath-exit-left{0%,52%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:0;transform:translate3d(-16%,2px,0) scale(.99)}}@keyframes sad-settle{0%{transform:translate3d(0,-2px,0) scale(1.006)}to{transform:translate3d(0,5px,0) scale(.992)}}@keyframes smile-perk{0%{transform:translate3d(0,5px,0) scale(.992)}55%{transform:translate3d(0,-5px,0) scale(1.014)}to{transform:translateZ(0) scale(1)}}@keyframes scrub-wiggle{0%,to{transform:translateZ(0) rotate(0deg) scale(1)}35%{transform:translateZ(0) rotate(-.8deg) scale(1.006)}70%{transform:translateZ(0) rotate(.8deg) scale(1.006)}}@keyframes clean-pop{0%{transform:translateZ(0) scale(1)}42%{transform:translate3d(0,-8px,0) scale(1.025)}to{transform:translateZ(0) scale(1)}}@keyframes reward-glow{0%{box-shadow:0 0 0 1px rgba(255,255,255,.12),0 26px 90px rgba(0,0,0,.36),inset 0 0 0 0 rgba(255,228,122,0)}45%{box-shadow:0 0 0 1px rgba(255,255,255,.2),0 30px 100px rgba(0,0,0,.38),0 0 0 5px var(--rarity-soft),inset 0 0 0 5px rgba(255,255,255,.3),inset 0 0 80px rgba(255,228,122,.2)}to{box-shadow:0 0 0 1px rgba(255,255,255,.12),0 26px 90px rgba(0,0,0,.36),inset 0 0 0 0 rgba(255,228,122,0)}}@keyframes coin-float{0%{opacity:0;transform:translate(-50%,-35%) scale(.72)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--drift)),-120px) scale(1.05)}}@media (max-width:820px){.app-shell{padding:0}.game-surface{height:100svh;min-height:100svh;padding:0;align-content:center;gap:0}.topbar{align-items:start;padding:0 4px}h1{font-size:2rem}.bubble-logo{width:clamp(178px,47cqw,252px)}.stat-pill{min-width:60px;padding:7px 8px 6px}.play-layout{gap:10px}.asset-editor-grid,.coordinate-tool-grid,.cosmetics-layout,.play-layout{grid-template-columns:1fr}.cosmetics-preview{position:static}.selected-cosmetic-actions .fresh-button{grid-column:auto}.control-panel{grid-template-columns:1fr 1fr;align-items:flex-end;padding:12px;gap:12px}.control-panel>:first-child,.fresh-button{grid-column:1/-1}}@media (max-width:560px){.scene-hud-top{gap:8px}.topbar{display:grid;grid-gap:9px;gap:9px}h1{font-size:2.2rem}.bubble-logo{width:clamp(168px,46cqw,232px)}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;grid-gap:7px;gap:7px}.scene-hud-top .stat-row{max-width:none}.stat-pill{min-width:0;padding:5px 7px}.meter-copy span,.panel-label,.stat-pill span{font-size:.68rem}.stat-pill strong{font-size:.94rem}.mode-toggle,.nav-button{width:100%}.control-panel{grid-template-columns:1fr 1fr;padding:10px;gap:10px}.control-panel>:first-child,.control-panel>:nth-child(2),.meter-group{grid-column:1/-1}.fresh-button{min-height:48px;grid-column:auto}.coordinate-fields{grid-template-columns:1fr 1fr}.selected-cosmetic-panel{grid-template-columns:1fr}.equipped-slots,.selected-cosmetic-actions,.selected-cosmetic-stats{grid-template-columns:1fr 1fr}.selected-cosmetic-stats{display:grid}.cosmetics-preview-header,.cosmetics-shop-header{align-items:flex-start}.cosmetic-card-button{grid-template-columns:72px minmax(0,1fr);min-height:92px;padding:8px}.cosmetic-card-preview{width:72px;height:72px}.asset-editor-actions,.asset-mask-fields,.asset-shape-fields{grid-template-columns:1fr 1fr}.wash-pad{width:72px}}@media (max-width:380px){.scene-hud{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}.bubble-logo{width:clamp(150px,44cqw,184px)}.meter-copy span,.panel-label,.stat-pill span{font-size:.58rem}.stat-pill strong{font-size:.86rem}.scene-progress{height:28px}.scene-progress-copy{padding:0 10px}.scene-progress-copy span{font-size:.68rem}.scene-progress-copy strong{font-size:.82rem}}.scene-account-button{min-width:52px}.logout-icon-button{width:42px;min-width:42px;padding:0}.account-nav-button.logout-icon-button{width:46px;min-width:46px}.logout-icon{position:relative;width:18px;height:18px;display:block}.logout-icon:before{content:"";position:absolute;left:1px;top:3px;width:10px;height:12px;border:2px solid;border-right:0;border-radius:4px 0 0 4px}.logout-icon:after{content:"";position:absolute;right:0;top:4px;width:12px;height:10px;background:currentColor;-webkit-clip-path:polygon(0 34%,48% 34%,48% 0,100% 50%,48% 100%,48% 66%,0 66%);clip-path:polygon(0 34%,48% 34%,48% 0,100% 50%,48% 100%,48% 66%,0 66%)}.save-progress-prompt{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border:2px solid rgba(255,255,255,.82);border-radius:8px;color:#fffaf4;background:linear-gradient(135deg,rgba(47,28,61,.82),rgba(17,104,112,.78)),rgba(49,32,67,.76);box-shadow:0 4px 0 rgba(50,34,60,.24),0 12px 22px rgba(49,42,39,.18);font-size:.78rem;font-weight:900;text-align:center;text-decoration:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.account-nav-button{min-height:42px}.logout-dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:rgba(27,19,35,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.logout-dialog{width:min(420px,100%);display:grid;grid-gap:18px;gap:18px;padding:18px;border:2px solid rgba(255,255,255,.9);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,241,223,.94)),var(--paper);box-shadow:0 8px 0 rgba(93,66,101,.18),0 24px 44px rgba(16,43,53,.3)}.logout-dialog h2{margin:0;color:#47254f;font-size:1.7rem;line-height:1}.logout-dialog p{margin:8px 0 0;color:var(--muted);font-weight:800;line-height:1.4}.logout-dialog strong{color:var(--ink);overflow-wrap:anywhere}.logout-dialog-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.logout-confirm-button{background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 50%),linear-gradient(135deg,#9a3db2,#ff7f8f);box-shadow:0 5px 0 #74318c,0 16px 26px rgba(180,87,216,.18)}.login-shell{align-items:center;padding:18px}.login-surface{width:min(520px,100%);display:grid;grid-gap:14px;gap:14px}.login-back-link{justify-self:start}.login-panel{display:grid;grid-gap:16px;gap:16px;padding:18px;border:2px solid rgba(255,255,255,.9);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,241,223,.9)),var(--paper);box-shadow:0 8px 0 rgba(93,66,101,.16),0 24px 44px rgba(16,43,53,.26)}.login-copy{display:grid;grid-gap:8px;gap:8px}.login-copy p:last-child{margin:0;color:var(--muted);font-weight:700;line-height:1.45}.auth-mode-toggle{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;padding:5px;border-radius:8px;background:rgba(255,255,255,.54);box-shadow:inset 0 0 0 2px rgba(71,37,79,.08)}.auth-mode-toggle button{min-height:42px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-weight:900;cursor:pointer}.auth-mode-toggle button[aria-pressed=true]{color:#ffffff;background:linear-gradient(180deg,rgba(255,255,255,.24),transparent 50%),linear-gradient(135deg,#9a3db2,#ff7f8f);box-shadow:0 3px 0 rgba(116,49,140,.42)}.login-form{display:grid;grid-gap:12px;gap:12px}.login-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.82rem;font-weight:900}.login-form input{width:100%;min-height:48px;padding:0 12px;border:2px solid rgba(71,37,79,.16);border-radius:8px;color:var(--ink);background:rgba(255,255,255,.86);font:inherit;font-weight:800;outline:none}.login-form input:focus{border-color:rgba(22,127,135,.62);box-shadow:0 0 0 4px rgba(88,214,208,.18)}.legal-consent{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:10px;border:2px solid rgba(71,37,79,.12);border-radius:8px;background:rgba(255,255,255,.52);color:var(--muted);line-height:1.35}.legal-consent input{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--aqua-dark)}.legal-consent a,.legal-copy a{color:var(--aqua-dark);font-weight:1000;text-decoration-thickness:2px;text-underline-offset:3px}.login-message{margin:0;color:var(--muted);font-size:.88rem;font-weight:800;line-height:1.4}.legal-shell{padding:0}.legal-game-surface{overflow-y:auto;padding:14px;align-items:start;scrollbar-color:rgba(255,255,255,.42) transparent}.legal-panel{width:min(100%,calc(100svh * .5628));min-height:calc(100svh - 28px);margin:0 auto;display:grid;align-content:start;grid-gap:14px;gap:14px;padding:18px;border:2px solid rgba(255,255,255,.9);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,241,223,.92)),var(--paper);box-shadow:0 8px 0 rgba(93,66,101,.16),0 24px 44px rgba(16,43,53,.26)}.legal-header{display:grid;grid-gap:7px;gap:7px}.legal-header p:last-child{margin:0;color:var(--muted);font-size:.86rem;font-weight:900}.legal-copy{display:grid;grid-gap:13px;gap:13px}.legal-copy section{display:grid;grid-gap:7px;gap:7px}.legal-copy h2{margin:0;color:#47254f;font-size:1.08rem;line-height:1.05}.legal-copy p{margin:0;color:var(--muted);font-size:.94rem;font-weight:700;line-height:1.48}.legal-actions{position:-webkit-sticky;position:sticky;bottom:-2px;display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;padding-top:8px;background:linear-gradient(180deg,rgba(255,250,244,0),rgba(255,250,244,.96) 34%),transparent}.cosmetics-shell{display:block;min-height:100svh;overflow-x:hidden;overflow-x:clip}.cosmetics-game-surface{height:100svh;min-height:100svh;overflow:hidden}.cosmetics-scene{--cosmetics-action-height:116px;max-width:100vw}.cosmetics-scene:before{opacity:.52}.cosmetics-scene-vignette{background:linear-gradient(180deg,rgba(30,22,34,.5),transparent 20%,transparent 50%,rgba(32,21,33,.68)),radial-gradient(ellipse at center,transparent 44%,rgba(32,22,30,.22))}.cosmetics-scene-top{gap:7px}.cosmetics-title-row{align-items:flex-start}.cosmetics-logo{width:clamp(176px,44cqw,250px);max-width:calc(100% - 164px)}.cosmetics-top-actions{align-items:flex-start;flex-wrap:wrap}.cosmetics-mode-toggle{min-height:32px;grid-template-columns:repeat(2,minmax(38px,auto));border-color:rgba(255,255,255,.78);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 54%),rgba(49,32,67,.72);box-shadow:0 3px 0 rgba(50,34,60,.28),0 12px 22px rgba(49,42,39,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cosmetics-mode-toggle button{min-width:0;min-height:28px;padding:0 8px;border-radius:999px;color:rgba(255,250,244,.72);font-size:.72rem;line-height:1}.cosmetics-mode-toggle button[aria-pressed=true]{background:linear-gradient(135deg,var(--aqua-dark),var(--berry))}.cosmetics-preview-stage{position:absolute;inset:0;z-index:3;--pibble-frame-size:110%;--pibble-frame-top:39%;cursor:default;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cosmetics-preview-stage:before{content:"";position:absolute;left:12%;right:12%;bottom:calc(var(--cosmetics-action-height) + 4px);z-index:0;height:13%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(36,30,38,.22),transparent 66%);filter:blur(5px);pointer-events:none}.cosmetics-preview-stage.is-active{cursor:crosshair;box-shadow:inset 0 0 0 4px rgba(255,255,255,.72)}.cosmetics-pibble-frame{z-index:2}.cosmetics-carousel-hud{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:clamp(96px,12svh,118px);grid-gap:8px;gap:8px;max-width:calc(100% - 20px);pointer-events:none}.cosmetic-menu,.cosmetics-carousel-hud{display:grid;min-width:0;overflow-x:hidden;overflow-x:clip}.cosmetic-menu{position:relative;grid-template-columns:minmax(0,clamp(92px,18cqw,118px)) 42px minmax(0,1fr) 42px;align-items:center;grid-gap:7px;gap:7px;width:100%;max-width:100%}.cosmetic-menu-label{width:100%;min-width:0;padding:8px;border:2px solid rgba(255,255,255,.82);border-radius:999px;color:#fffaf4;background:linear-gradient(135deg,rgba(52,34,64,.74),rgba(35,128,123,.64)),rgba(39,30,48,.66);box-shadow:0 3px 0 rgba(36,22,42,.26),0 12px 22px rgba(37,26,40,.2);font-size:.74rem;text-transform:uppercase;text-shadow:0 1px 0 rgba(36,22,42,.34);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cosmetic-carousel-arrow,.cosmetic-menu-label{display:inline-flex;justify-content:center;font-weight:1000;line-height:1}.cosmetic-carousel-arrow{width:42px;height:50px;align-items:center;border:3px solid rgba(255,255,255,.86);border-radius:999px;color:#ffffff;background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 54%),linear-gradient(135deg,#9a3db2,#ff7f8f);box-shadow:0 4px 0 rgba(116,49,140,.72),0 14px 24px rgba(49,42,39,.2);font-size:1.72rem;text-shadow:0 1px 0 rgba(76,39,89,.34);cursor:pointer;pointer-events:auto}.cosmetic-carousel-arrow:disabled{cursor:default;opacity:.48}.cosmetic-carousel-arrow:not(:disabled):hover{transform:translateY(-1px)}.cosmetic-carousel-arrow:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px 0 rgba(116,49,140,.72),0 8px 16px rgba(49,42,39,.14)}.cosmetic-carousel{width:100%;min-width:0;max-width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(80px,94px);align-items:start;grid-gap:10px;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;padding:4px 1px 10px;scroll-padding-inline:10px;scroll-snap-type:x mandatory;scrollbar-width:none;pointer-events:auto}.cosmetic-carousel::-webkit-scrollbar{display:none}.cosmetic-carousel-card{position:relative;min-width:0;min-height:96px;display:grid;justify-items:center;align-content:start;grid-gap:5px;gap:5px;border:0;border-radius:0;padding:0;color:#ffffff;background:transparent;box-shadow:none;text-align:center;scroll-snap-align:start;cursor:pointer}.cosmetic-carousel-card.is-selected,.cosmetic-carousel-card:focus-visible,.cosmetic-carousel-card:hover{outline:none;transform:translateY(-3px) rotate(-1deg)}.cosmetic-carousel-card.is-equipped:after{content:"";position:absolute;right:12px;top:5px;width:16px;height:16px;border:2px solid rgba(255,255,255,.88);border-radius:50%;background:var(--mint);box-shadow:0 3px 8px rgba(32,23,40,.26)}.cosmetic-carousel-preview{width:68px;height:68px;display:grid;place-items:center;overflow:hidden;border:3px solid rgba(255,255,255,.88);border-radius:50%;background:radial-gradient(circle at 34% 22%,rgba(255,255,255,.62),transparent 32%),rgba(255,250,244,.42);box-shadow:0 4px 0 rgba(93,66,101,.18),0 14px 24px rgba(49,42,39,.2)}.cosmetic-carousel-preview img{width:88%;height:88%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 10px 10px rgba(32,23,40,.24))}.cosmetic-carousel-preview.is-background-preview img{width:100%;height:100%;object-fit:cover;filter:none}.cosmetic-carousel-preview.is-background-preview{border-radius:12px}.cosmetic-carousel-card.is-selected .cosmetic-carousel-preview{border-color:#fff1a8;box-shadow:0 4px 0 rgba(139,101,0,.22),0 0 0 5px rgba(255,241,168,.28),0 16px 26px rgba(49,42,39,.24)}.cosmetic-carousel-name{width:100%;overflow:hidden;padding:4px 6px;border-radius:999px;color:#fffaf4;background:rgba(49,32,67,.5);box-shadow:0 8px 16px rgba(32,23,40,.14);font-size:.64rem;font-weight:1000;line-height:1.08;text-overflow:ellipsis;text-shadow:0 1px 0 rgba(36,22,42,.32);white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cosmetic-carousel-multiplier{position:absolute;right:6px;top:51px;min-width:30px;padding:3px 5px;border-radius:999px;color:#5b4305;background:linear-gradient(135deg,#ffe47a,#ffd966);box-shadow:inset 0 -2px 0 rgba(91,67,5,.14);font-size:.66rem;font-weight:1000;line-height:1;text-align:center}.cosmetics-action-bar{top:auto;bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:9px;pointer-events:none}.cosmetics-action-bar>*{pointer-events:auto}.cosmetics-action-coin{min-width:100px;min-height:58px;transform:rotate(-.4deg)}.cosmetics-multiplier-pill{min-width:0;display:grid;place-items:center;padding:6px 8px;border:2px solid rgba(255,255,255,.74);border-radius:999px;color:#5b4305;background:linear-gradient(135deg,#ffe47a,#fff1a8 60%,#ffd6ea);box-shadow:0 3px 0 rgba(91,67,5,.18),0 10px 18px rgba(32,23,40,.14);text-align:center}.cosmetics-multiplier-pill span,.cosmetics-multiplier-pill strong{display:block;line-height:1}.cosmetics-multiplier-pill span{color:#8b6500;font-size:.58rem;font-weight:900;text-transform:uppercase}.cosmetics-multiplier-pill strong{margin-top:3px;font-size:1.08rem;font-weight:1000}.cosmetics-equip-button,.cosmetics-unequip-button{min-height:58px;border-radius:999px;padding-inline:17px}.cosmetics-unequip-button{border-color:rgba(255,255,255,.72);color:#ffffff;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 52%),rgba(49,32,67,.58);box-shadow:0 4px 0 rgba(36,22,42,.28),0 12px 20px rgba(32,23,40,.14)}.cosmetics-shell>.asset-editor,.cosmetics-shell>.coordinate-tool{margin-top:18px;margin-bottom:18px}@media (max-width:820px){.cosmetics-scene{--cosmetics-action-height:110px}.cosmetics-preview-stage{--pibble-frame-size:111%;--pibble-frame-top:39%}.cosmetics-carousel-hud{top:clamp(92px,11svh,108px)}.cosmetic-carousel{grid-auto-columns:minmax(76px,88px)}}@media (max-width:560px){.cosmetics-scene{--cosmetics-action-height:128px}.cosmetics-scene-top{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}.cosmetics-logo{width:clamp(154px,44cqw,208px);max-width:calc(100% - 126px)}.cosmetics-top-actions{gap:4px}.cosmetics-top-actions .scene-menu-button{min-height:30px;padding:0 7px;font-size:.72rem}.cosmetics-mode-toggle{min-height:30px;width:auto}.cosmetics-mode-toggle button{min-height:26px;padding:0 6px;font-size:.68rem}.cosmetics-preview-stage{--pibble-frame-size:111%;--pibble-frame-top:41%}.cosmetics-carousel-hud{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:clamp(78px,13svh,94px);max-width:calc(100% - 16px);gap:5px}.cosmetic-menu{grid-template-columns:76px 34px minmax(0,1fr) 34px;gap:5px}.cosmetic-menu-label{min-width:0;padding:7px 8px;font-size:.6rem}.cosmetic-carousel-arrow{width:34px;height:42px;border-width:2px;font-size:1.42rem}.cosmetic-carousel{grid-auto-columns:68px;gap:7px;padding-bottom:5px}.cosmetic-carousel-card{min-height:88px}.cosmetic-carousel-preview{width:56px;height:56px;border-width:2px}.cosmetic-carousel-name{font-size:.62rem}.cosmetic-carousel-multiplier{top:41px;right:1px;min-width:30px;padding:3px 5px;font-size:.66rem}.cosmetics-action-bar{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));flex-wrap:wrap;gap:7px}.cosmetics-action-coin,.cosmetics-equip-button,.cosmetics-multiplier-pill,.cosmetics-unequip-button{min-height:44px}.cosmetics-action-coin{min-width:92px}.cosmetics-equip-button{flex:1 1 132px}}@media (max-width:380px){.cosmetics-scene{--cosmetics-action-height:124px}.cosmetics-logo{width:clamp(138px,42cqw,172px);max-width:calc(100% - 112px)}.cosmetics-preview-stage{--pibble-frame-size:109%;--pibble-frame-top:41%}.cosmetic-carousel{grid-auto-columns:62px}.cosmetic-carousel-card{min-height:84px}.cosmetic-carousel-preview{width:52px;height:52px}.cosmetic-carousel-multiplier{top:38px}.cosmetics-action-bar{gap:6px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:1ms!important;scroll-behavior:auto!important;transition-duration:1ms!important}}