/* Chillion Builder: the imagination board. Big buttons, one screen, thumb-friendly. */
.builder-page{background:#e0f2fe;padding-bottom:1rem}
.builder-page [hidden]{display:none!important}
.bbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:.8rem;padding:.5rem clamp(.8rem,3vw,2rem);background:var(--ink);color:var(--lime2);box-shadow:0 4px 0 var(--g600)}
.bbar .back{color:var(--mint);text-decoration:none;font-weight:800;padding:.4rem .7rem;border-radius:999px;background:var(--g800);white-space:nowrap}
.bbrand{font-family:var(--font-display);font-weight:700;font-size:1.25rem;letter-spacing:.3px}
.wallet{margin-left:auto;background:linear-gradient(180deg,#fde047,var(--gold2));color:var(--ink);border:3px solid var(--ink);border-radius:999px;padding:.3rem .9rem;font-family:var(--font-display);font-weight:700;font-size:1.15rem;box-shadow:3px 3px 0 var(--g600);transition:transform .15s}
.wallet.bump{animation:walletbump .5s cubic-bezier(.3,1.6,.4,1)}
.wallet.sad{animation:walletsad .4s ease}
.bbar .sound{margin-left:0}
@keyframes walletbump{0%{transform:scale(1)}40%{transform:scale(1.18) rotate(-4deg)}100%{transform:scale(1)}}
@keyframes walletsad{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

.build{width:min(1100px,100%);margin:0 auto;padding:.8rem clamp(.5rem,2vw,1.5rem)}
.stage-wrap{position:relative}
.stage{position:relative;width:100%;aspect-ratio:3/2;max-height:66vh;overflow:hidden;border:4px solid var(--ink);border-radius:22px;background:#bae6fd;box-shadow:var(--comic);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.stage .bg,.stage .bg svg,.stage .bg img{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage .bg img{object-fit:cover}
.stage .bg img.scene-pic{object-position:center bottom}
.scene .prev img{width:100%;height:100%;object-fit:cover;object-position:center bottom;display:block}
.stage .draw{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.stage.drawing .draw{pointer-events:auto;cursor:crosshair;z-index:4}
.stage .items{position:absolute;inset:0;z-index:3}
.it{position:absolute;transform:translate(-50%,-50%);cursor:grab;line-height:1;text-align:center;will-change:transform;filter:drop-shadow(0 6px 6px rgba(5,46,22,.28))}
.it:active{cursor:grabbing}
.it.sel{outline:4px dashed #fff;outline-offset:6px;border-radius:14px;box-shadow:0 0 0 8px rgba(255,255,255,.35)}
.it.drop{animation:itdrop .5s cubic-bezier(.2,1.6,.4,1)}
.it svg{width:100%;height:auto;display:block;overflow:visible}
.it .em{display:block;width:100%}
.hint{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);z-index:5;background:rgba(5,46,22,.85);color:#fff;font-weight:800;padding:.6rem 1rem;border-radius:999px;font-size:.95rem;pointer-events:none;max-width:92%;text-align:center;animation:pop .4s ease}
@keyframes itdrop{0%{transform:translate(-50%,-160%) scale(.4);opacity:0}60%{transform:translate(-50%,-50%) scale(1.1);opacity:1}100%{transform:translate(-50%,-50%) scale(1)}}

.tools{position:absolute;top:.6rem;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:.35rem;background:rgba(5,46,22,.92);padding:.35rem;border-radius:18px;border:3px solid var(--lime2);max-width:96%;flex-wrap:wrap;justify-content:center}
.tools button,.actions button{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:56px;padding:.35rem .5rem;border-radius:12px;border:0;background:var(--g800);color:#fff;font-size:1.2rem;font-weight:800;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .1s,background .15s}
.tools button small,.actions button small{font-size:.62rem;letter-spacing:.02em;font-family:var(--font-body)}
.tools button:active,.actions button:active{transform:scale(.92)}
.tools button.danger{background:#b91c1c}
.tools button.go{background:linear-gradient(180deg,#4ade80,#16a34a)}
.tools button.go.on{background:linear-gradient(180deg,#fde047,#f59e0b);color:var(--ink)}
.actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin:.7rem 0}
.actions button{background:#fff;color:var(--ink);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);min-width:64px}
.actions button.on{background:var(--lime2)}
.actions button:hover{transform:translate(-1px,-1px)}

.drawbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:center;background:#fff;border:3px solid var(--ink);border-radius:18px;padding:.5rem .7rem;margin:0 0 .7rem}
.colors{display:flex;gap:.35rem;flex-wrap:wrap}
.colors button{width:34px;height:34px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--ink);cursor:pointer;transition:transform .1s}
.colors button.on,.sizes button.on{transform:scale(1.2);box-shadow:0 0 0 3px var(--gold)}
.sizes{display:flex;gap:.3rem}
.sizes button{width:34px;height:34px;border-radius:10px;border:2px solid var(--ink);background:#fff;display:grid;place-items:center;cursor:pointer}
.sizes button i{display:block;border-radius:50%;background:var(--ink)}
.drawbar .eraser,.drawbar .done{border:3px solid var(--ink);border-radius:999px;padding:.35rem .8rem;font-weight:800;cursor:pointer;background:#fff}
.drawbar .eraser.on{background:#fecaca}
.drawbar .river{border:3px solid var(--ink);border-radius:999px;padding:.35rem .8rem;font-weight:800;cursor:pointer;background:#fff}
.drawbar .river.on{background:#bae6fd;box-shadow:0 0 0 3px #38bdf8}
.drawbar .done{background:var(--g500);color:#fff}

.shop{background:#fff;border:4px solid var(--ink);border-radius:22px;padding:.6rem;box-shadow:var(--comic)}
.cats{display:flex;gap:.35rem;overflow-x:auto;padding:.1rem .1rem .5rem;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.cats button{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:64px;padding:.35rem .5rem;border-radius:14px;border:3px solid var(--ink);background:var(--mint);font-weight:800;font-size:1.3rem;cursor:pointer;touch-action:manipulation}
.cats button small{font-size:.62rem;font-family:var(--font-body)}
.cats button[aria-selected=true]{background:var(--g500);color:#fff}
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;max-height:38vh;overflow-y:auto;padding:.2rem}
.tile{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .3rem .4rem;border-radius:16px;border:3px solid var(--ink);background:linear-gradient(180deg,#fff,var(--mint));cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .1s;animation:pop .3s ease both}
.tile:hover{transform:translateY(-3px)}
.tile:active{transform:scale(.94)}
.tile .thumb{height:54px;display:grid;place-items:center;font-size:2.3rem;line-height:1}
.tile .thumb svg{height:52px;width:auto;max-width:86px}
.tile .nm{font-size:.72rem;font-weight:800;text-align:center;line-height:1.1;color:var(--ink)}
.tile .pr{font-family:var(--font-display);font-weight:700;font-size:.9rem;color:var(--g700);background:#fef3c7;border:2px solid var(--gold3);border-radius:999px;padding:0 .5rem}
.tile.free .pr{background:var(--g200);border-color:var(--g600)}
.tile.locked .pr{background:#fee2e2;border-color:#b91c1c;color:#b91c1c}
.tile.shake{animation:tileshake .4s ease}
@keyframes tileshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.need-bucks{margin:.5rem 0 0;text-align:center;font-weight:800;color:#b91c1c}
.need-bucks a{color:var(--g700)}

.sheet{position:fixed;inset:0;z-index:100;background:rgba(5,46,22,.7);display:grid;place-items:center;padding:1rem}
.sheet-card{background:#fff;border:4px solid var(--ink);border-radius:22px;padding:1.2rem;width:min(720px,100%);max-height:92vh;overflow:auto;box-shadow:var(--comic)}
.sheet-card h2{font-size:1.6rem;margin-bottom:.8rem;color:var(--g800)}
.sheet-card .row{margin-top:.8rem;justify-content:flex-end}
.sheet-card img{width:100%;border-radius:14px;border:3px solid var(--ink)}
.sheet-card .tiny{font-size:.85rem;color:#4b5563;margin:.5rem 0 0}
.scenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem}
.scene{border:3px solid var(--ink);border-radius:16px;overflow:hidden;background:#fff;cursor:pointer;padding:0;display:flex;flex-direction:column;touch-action:manipulation}
.scene .prev{aspect-ratio:3/2;overflow:hidden}
.scene .prev svg{width:100%;height:100%;display:block}
.scene b{padding:.35rem;font-family:var(--font-display);font-weight:700;color:var(--ink)}
.scene[aria-pressed=true]{outline:4px solid var(--gold)}

.toast{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%,120%);z-index:120;background:var(--ink);color:#fff;font-weight:800;padding:.7rem 1.1rem;border-radius:999px;border:3px solid var(--lime2);max-width:92vw;text-align:center;transition:transform .3s cubic-bezier(.3,1.4,.5,1);pointer-events:none}
.toast.show{transform:translate(-50%,0)}
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:90}

/* water & sticker animations (inline SVG picks these up) */
.w-wave{animation:wwave 3s linear infinite}
.w-wave2{animation-duration:4.6s;animation-direction:reverse}
.w-bub{animation:wbub 2.6s ease-in infinite;transform-box:fill-box;transform-origin:center}
.w-bub.b2{animation-delay:-.9s}.w-bub.b3{animation-delay:-1.7s}.w-bub.b4{animation-delay:-2.2s}
.w-fish{animation:wfish 5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
.w-fish.f2{animation-duration:6.5s;animation-delay:-2s}.w-fish.f3{animation-duration:4.2s;animation-delay:-1s}
.w-fall{animation:wfall .6s linear infinite}
.w-drop{animation:wdrop 1.2s ease-in infinite;transform-box:fill-box;transform-origin:center}
.w-drop.d2{animation-delay:-.4s}.w-drop.d3{animation-delay:-.8s}
.w-steam{animation:wsteam 3s ease-out infinite;transform-box:fill-box;transform-origin:center bottom}
.w-steam.s2{animation-delay:-1s}.w-steam.s3{animation-delay:-2s}
.w-jet{animation:wjet 1.1s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center bottom}
.w-jet.j2{animation-delay:-.4s}.w-jet.j3{animation-delay:-.7s}
.w-glow{animation:wglow 2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.w-spin{animation:wspin 1.2s linear infinite;transform-box:fill-box;transform-origin:center}
.w-swing{animation:wswing 2.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center top}
.w-swing.g2{animation-delay:-1.2s}
.w-boing{animation:wboing 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}
.w-beam{animation:wbeam 2.4s ease-in-out infinite}
.w-flag{animation:wflag 1.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:left center}
.w-float{animation:wfloat 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes wwave{to{transform:translateX(40px)}}
@keyframes wbub{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:.9}100%{transform:translateY(-90px) scale(1.1);opacity:0}}
@keyframes wfish{to{transform:translateX(70px)}}
@keyframes wfall{to{stroke-dashoffset:-40}}
@keyframes wdrop{0%{transform:translateY(0);opacity:1}100%{transform:translateY(60px);opacity:0}}
@keyframes wsteam{0%{transform:translateY(0) scale(.8);opacity:.7}100%{transform:translateY(-60px) scale(1.4);opacity:0}}
@keyframes wjet{from{transform:scaleY(.5)}to{transform:scaleY(1.1)}}
@keyframes wglow{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}
@keyframes wspin{to{transform:rotate(360deg)}}
@keyframes wswing{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}
@keyframes wboing{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.9)}}
@keyframes wbeam{0%,100%{opacity:.25}50%{opacity:.7}}
@keyframes wflag{from{transform:skewY(-4deg)}to{transform:skewY(4deg)}}
@keyframes wfloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}

/* snap grid (shows while dragging a block or piece) */
.stage .grid{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .15s;background-image:linear-gradient(to right,rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.55) 1px,transparent 1px);background-size:calc(100% / 24) calc(100% / 24)}
.stage .grid.on{opacity:1}
.it.snap{filter:drop-shadow(0 3px 2px rgba(5,46,22,.35))}
.it.snapped{animation:snapin .25s cubic-bezier(.3,1.6,.4,1)}
@keyframes snapin{0%{filter:drop-shadow(0 0 0 #fff) brightness(1.4)}100%{filter:drop-shadow(0 3px 2px rgba(5,46,22,.35)) brightness(1)}}
.tools button .dot{display:block;width:12px;height:12px;border-radius:50%;border:2px solid #fff;margin:-4px auto 0}

/* action bar extras: jobs badge, finish glow */
.actions button{position:relative}
.actions button .badge{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;border-radius:999px;background:#ef4444;color:#fff;font-size:.8rem;display:grid;place-items:center;border:2px solid var(--ink);animation:badgepop .5s cubic-bezier(.3,1.6,.4,1)}
.actions button.jobs.ready{background:linear-gradient(180deg,#fde047,var(--gold2));animation:readyglow 1.6s ease-in-out infinite}
.actions button.finish.ready{background:linear-gradient(180deg,#bbf7d0,#4ade80)}
@keyframes readyglow{0%,100%{box-shadow:3px 3px 0 var(--ink)}50%{box-shadow:3px 3px 0 var(--ink),0 0 0 6px rgba(250,204,21,.45)}}
@keyframes badgepop{from{transform:scale(0)}to{transform:scale(1)}}

/* shop extras */
.swatch-row{display:flex;align-items:center;gap:.5rem;padding:.2rem .2rem .4rem;font-weight:800;font-size:.85rem;color:var(--g800)}
.swatches{display:flex;gap:.3rem;flex-wrap:wrap}
.swatches button{width:30px;height:30px;border-radius:8px;border:3px solid #fff;box-shadow:0 0 0 2px var(--ink);cursor:pointer;transition:transform .1s}
.swatches button.on{transform:scale(1.18);box-shadow:0 0 0 3px var(--gold)}
.kit-tip{margin:0 .2rem .4rem;font-size:.82rem;font-weight:700;color:#166534}
.tile.snapt{background:linear-gradient(180deg,#fff,#e0f2fe)}
.tile .thumb svg{max-width:90px}

/* Job Board */
.jobs{display:grid;gap:.5rem}
.job{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center;border:3px solid var(--ink);border-radius:16px;padding:.5rem .7rem;background:#f8fafc}
.job.done{background:linear-gradient(180deg,#fef9c3,#fde68a);border-color:var(--gold3)}
.job.paid{background:#f0fdf4;opacity:.75}
.job.cash{animation:cash .6s cubic-bezier(.3,1.6,.4,1)}
.job .je{font-size:2rem;line-height:1}
.job .jb b{display:block;font-family:var(--font-display);font-size:1.05rem;color:var(--ink)}
.job .jb small{display:block;font-size:.78rem;color:#374151;font-weight:600}
.jbar{position:relative;height:16px;border-radius:999px;background:#e2e8f0;border:2px solid var(--ink);margin-top:.3rem;overflow:hidden}
.jbar i{display:block;height:100%;background:linear-gradient(90deg,var(--g500),var(--lime2));transition:width .4s}
.job.done .jbar i{background:linear-gradient(90deg,#f59e0b,#fde047)}
.jbar span{position:absolute;inset:0;display:grid;place-items:center;font-size:.7rem;font-weight:900;color:var(--ink)}
.job .jr{text-align:right}
.jpay{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--g700);background:#fef3c7;border:2px solid var(--gold3);border-radius:999px;padding:.1rem .6rem}
.jpaid{font-weight:900;color:var(--g700)}
.collect{border:3px solid var(--ink);border-radius:999px;padding:.5rem .8rem;font-family:var(--font-display);font-weight:700;font-size:1rem;background:linear-gradient(180deg,#fde047,var(--gold2));color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);animation:readyglow 1.4s ease-in-out infinite;touch-action:manipulation}
.collect:active{transform:scale(.95)}
@keyframes cash{0%{transform:scale(1)}40%{transform:scale(1.04) rotate(-1deg)}100%{transform:scale(1)}}

/* Job Board tabs + the WORK mini-games */
.jobtabs{display:flex;gap:.4rem;margin:0 0 .6rem}
.jobtabs button{flex:1;border:3px solid var(--ink);border-radius:999px;padding:.5rem;font-family:var(--font-display);font-weight:700;font-size:1.05rem;background:#fff;cursor:pointer}
.jobtabs button[aria-selected=true]{background:var(--lime2)}
.job.work.ready{background:linear-gradient(180deg,#fff,#dcfce7)}
.job.work.resting{opacity:.7}
.job .jn{color:var(--g700)!important}
.jrest{font-weight:900;color:#4b5563;font-size:.85rem}
.it .pic{display:block;width:100%;height:auto;pointer-events:none}
.tile .thumb img{height:52px;width:auto;max-width:86px}
.work-card{width:min(760px,100%)}
.work-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.work-head h2{margin:0}
.work-count{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--g700)}
.work-bar{height:16px;border-radius:999px;border:2px solid var(--ink);background:#e2e8f0;overflow:hidden;margin:.4rem 0 .6rem}
.work-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--g500),var(--lime2));transition:width .3s}
.work-stage{position:relative;width:100%;aspect-ratio:3/2;border:4px solid var(--ink);border-radius:18px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background:#bae6fd}
.work-stage.bg-pool{background:radial-gradient(circle at 50% 60%,#7dd3fc,#0284c7 70%,#e2e8f0 72%)}
.work-stage.bg-garage{background:linear-gradient(180deg,#e2e8f0 0 62%,#64748b 62% 66%,#374151 66%)}
.work-stage.bg-yard{background:linear-gradient(180deg,#7dd3fc 0 55%,#4ade80 55%)}
.work-stage.bg-street{background:linear-gradient(180deg,#bae6fd 0 50%,#cbd5e1 50% 58%,#374151 58%)}
.work-stage.bg-barn{background:linear-gradient(180deg,#fef3c7 0 60%,#4ade80 60%)}
.work-stage.bg-stand{background:linear-gradient(180deg,#7dd3fc 0 60%,#fde68a 60%)}
.work-stage>*{position:absolute}
.wk-leaf{transform:translate(-50%,-50%);font-size:2.2em;background:none;border:0;cursor:pointer;line-height:1;animation:leafdrift 4s ease-in-out infinite alternate;transition:transform .3s,opacity .3s;filter:drop-shadow(0 4px 3px rgba(5,46,22,.3));touch-action:manipulation;padding:.2em}
.wk-leaf.gone{transform:translate(-50%,-50%) scale(0) rotate(180deg);opacity:0;pointer-events:none}
@keyframes leafdrift{from{margin-left:-.6em;rotate:-12deg}to{margin-left:.6em;rotate:12deg}}
.wk-car{left:8%;top:22%;width:84%}
.wk-car svg{width:100%;height:auto;display:block;transition:filter .5s}
.wk-car.shine svg{filter:brightness(1.15) drop-shadow(0 0 12px #fff)}
.wk-mud{width:2.4em;height:1.8em;border-radius:50% 40% 55% 45%;background:radial-gradient(circle at 40% 40%,#a16207,#78350f);border:2px solid #451a03;transition:transform .25s,opacity .25s;margin:-.9em 0 0 -1.2em}
.wk-mud.gone{opacity:0;transform:scale(1.6)!important}
.wk-fence{left:6%;top:36%;width:88%;height:40%;display:flex;gap:.3em;align-items:flex-end}
.wk-board{flex:1;height:100%;background:#cbd5e1;border:3px solid var(--ink);border-radius:.6em .6em .2em .2em;transition:background .2s;clip-path:polygon(50% 0,100% 12%,100% 100%,0 100%,0 12%)}
.wk-fence::before,.wk-fence::after{content:'';position:absolute;left:0;right:0;height:.7em;background:#94a3b8;border:2px solid var(--ink);z-index:1;pointer-events:none}
.wk-fence::before{top:35%}.wk-fence::after{top:70%}
.wk-brush{font-size:2.2em;transform:translate(-30%,-80%);pointer-events:none;filter:drop-shadow(0 4px 3px rgba(5,46,22,.3))}
.wk-house{transform:translate(-50%,-50%);width:6.4em;height:6em;background:#fde68a;border:3px solid var(--ink);border-radius:.4em;display:grid;place-items:end center;transition:transform .2s}
.wk-house::before{content:'';position:absolute;left:-.4em;right:-.4em;top:-2.2em;height:2.4em;background:#ef4444;border:3px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}
.wk-house i{display:block;width:2em;height:3em;border:3px solid var(--ink);border-radius:1em 1em 0 0;margin-bottom:-3px}
.wk-house.got{transform:translate(-50%,-50%) scale(1.12)}
.wk-house.no{animation:tileshake .4s ease}
.wk-pkg{transform:translate(-50%,-50%);font-size:3em;line-height:1;cursor:grab;touch-action:none;display:grid;place-items:center;transition:opacity .25s}
.wk-pkg i{position:absolute;width:.5em;height:.5em;border-radius:50%;border:2px solid var(--ink)}
.wk-pkg.lift{transform:translate(-50%,-50%) scale(1.15);filter:drop-shadow(0 10px 8px rgba(5,46,22,.35))}
.wk-pkg.gone{opacity:0;pointer-events:none}
.wk-animal{transform:translate(-50%,-50%);font-size:3.2em;line-height:1;transition:transform .2s}
.wk-animal .bub,.wk-cust .bub{position:absolute;left:50%;top:-1.2em;transform:translateX(-50%);font-size:.5em;background:#fff;border:2px solid var(--ink);border-radius:1em;padding:.15em .45em;white-space:nowrap}
.wk-animal.yum{transform:translate(-50%,-50%) scale(1.2)}
.wk-animal.no{animation:tileshake .4s ease}
.wk-tray{left:4%;right:4%;bottom:4%;height:24%;display:flex;gap:.4em;align-items:center;justify-content:center;flex-wrap:wrap;background:rgba(255,255,255,.7);border:3px solid var(--ink);border-radius:1em;padding:.3em}
.wk-food{font-size:2.4em;line-height:1;cursor:grab;touch-action:none;position:static}
.wk-food.lift{position:absolute;transform:translate(-50%,-50%) scale(1.2);filter:drop-shadow(0 10px 8px rgba(5,46,22,.35));z-index:5}
.wk-stand{left:50%;top:6%;transform:translateX(-50%);background:#fde047;border:3px solid var(--ink);border-radius:.6em;padding:.3em 1em;font-family:var(--font-display);font-weight:700;font-size:1.3em;white-space:nowrap}
.wk-cust{transform:translate(-50%,-50%);font-size:4em;line-height:1;transition:transform .3s}
.wk-cust.in{animation:custin .4s cubic-bezier(.3,1.4,.5,1)}
.wk-cust.happy{transform:translate(-50%,-50%) scale(1.15)}
@keyframes custin{from{transform:translate(-150%,-50%)}to{transform:translate(-50%,-50%)}}
.wk-cup{transform:translate(-50%,-50%);font-size:3.4em;line-height:1;display:grid;place-items:center}
.wk-cup b{position:absolute;right:-.3em;bottom:-.2em;font-size:.45em;background:#fff;border:2px solid var(--ink);border-radius:50%;width:1.6em;height:1.6em;display:grid;place-items:center;font-family:var(--font-display)}
.wk-lemon{transform:translate(-50%,-50%);font-size:4.4em;line-height:1;background:#fff;border:3px solid var(--ink);border-radius:50%;width:1.5em;height:1.5em;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 0 var(--ink);touch-action:manipulation}
.wk-lemon.sq{animation:squeeze .25s ease}
@keyframes squeeze{50%{transform:translate(-50%,-50%) scale(.85) rotate(-10deg)}}
.work-stage.bg-room{background:linear-gradient(180deg,#dbeafe 0 58%,#d9a066 58%)}
.wk-dust{transform:translate(-50%,-50%);width:1.3em;height:.9em;border-radius:50%;background:radial-gradient(circle at 40% 40%,#cbd5e1,#64748b);border:2px solid #475569;transition:transform .35s ease-in,opacity .35s;font-size:1em;display:grid;place-items:center}
.wk-dust.big{width:auto;height:auto;background:none;border:0;font-size:2em;line-height:1}
.wk-dust.gone{transform:translate(calc(-50% + var(--tx,0px)),calc(-50% + var(--ty,0px))) scale(.1) rotate(360deg);opacity:0;pointer-events:none}
.wk-vac{transform:translate(-50%,-50%);width:5.6em;height:3.6em;pointer-events:none;transition:left .06s linear,top .06s linear}
.wk-vac .body{position:absolute;left:0;top:0;width:3.4em;height:3.4em;border-radius:1em;background:linear-gradient(180deg,#f87171,#b91c1c);border:3px solid var(--ink);display:grid;place-items:center;font-size:1.8em;box-shadow:0 .25em 0 var(--ink)}
.wk-vac .hose{position:absolute;left:3.1em;top:1.4em;width:1.6em;height:.5em;background:#374151;border:2px solid var(--ink);border-radius:.3em}
.wk-vac .nozzle{position:absolute;left:4.4em;top:.9em;width:1.3em;height:1.5em;background:#1f2937;border:3px solid var(--ink);border-radius:.3em .3em .6em .6em}
.wk-vac.on .body{animation:vacshake .15s linear infinite}
.wk-vac.on .nozzle::after{content:'';position:absolute;left:-.9em;right:-.9em;top:1.2em;height:.9em;border-radius:50%;background:radial-gradient(ellipse,rgba(186,230,253,.9),rgba(186,230,253,0));animation:suck .3s linear infinite}
.wk-vac.done .body{background:linear-gradient(180deg,#86efac,#16a34a)}
@keyframes vacshake{0%,100%{transform:translate(0,0)}25%{transform:translate(1px,-1px)}75%{transform:translate(-1px,1px)}}
@keyframes suck{from{transform:scale(1.3);opacity:.9}to{transform:scale(.5);opacity:0}}
.wk-spark{position:fixed;z-index:1400;width:8px;height:8px;border-radius:50%;background:var(--gold);pointer-events:none;animation:wkspark .6s ease-out forwards}
@keyframes wkspark{to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}

/* pay button + deposit sheet */
.paybtn{border:3px solid var(--ink);border-radius:999px;background:linear-gradient(180deg,#bbf7d0,#4ade80);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:1.05rem;padding:.3rem .8rem;cursor:pointer;box-shadow:3px 3px 0 var(--g600);animation:readyglow 1.6s ease-in-out infinite}
.paybtn.bump{animation:walletbump .5s cubic-bezier(.3,1.6,.4,1)}
.dep-card{width:min(680px,100%)}
.dep-stage{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;background:var(--mint);border:3px solid var(--ink);border-radius:18px;padding:.8rem;touch-action:none}
.dep-tray{display:flex;flex-wrap:wrap;gap:.5rem;align-content:flex-start;min-height:120px}
.dep-pig{width:220px;position:relative;transition:transform .15s}
.dep-pig.hot{transform:scale(1.08)}
.dep-pig .dep-piggy{width:100%;height:auto;display:block;transform-origin:50% 90%}
.dep-pig.gulp .dep-piggy{animation:depgulp .5s cubic-bezier(.3,1.6,.4,1)}
@keyframes depgulp{0%{transform:scale(1)}40%{transform:scale(1.12,.92)}70%{transform:scale(.95,1.06)}100%{transform:scale(1)}}
.dbill{position:relative;width:84px;height:44px;border-radius:6px;border:2px solid #14532d;background:linear-gradient(135deg,#bbf7d0,#22c55e);color:#052e16;font-family:var(--font-display);font-weight:700;font-size:1.05rem;display:grid;place-items:center;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 3px 0 #14532d;transition:transform .15s,opacity .2s}
.dbill::before{content:'';position:absolute;inset:4px;border:1.5px dashed rgba(5,46,22,.45);border-radius:4px;pointer-events:none}
.dbill span{background:rgba(255,255,255,.7);border-radius:999px;padding:0 .5rem;line-height:1.3}
.dbill.b20{background:linear-gradient(135deg,#dcfce7,#4ade80)}
.dbill.b50{background:linear-gradient(135deg,#fef3c7,#f59e0b);border-color:#92400e;box-shadow:0 3px 0 #92400e}
.dbill.b100{background:linear-gradient(135deg,#ede9fe,#a855f7);border-color:#581c87;box-shadow:0 3px 0 #581c87}
.dbill.stack{height:52px;box-shadow:0 3px 0 #14532d,0 7px 0 #4ade80,0 10px 0 #14532d,0 14px 0 #4ade80,0 17px 0 #14532d;margin-bottom:14px}
.dbill.stack::after{content:'';position:absolute;left:34%;right:34%;top:-2px;bottom:-2px;background:#fde047;border:2px solid #14532d;border-radius:3px;opacity:.9}
.dbill.stack span{position:relative;z-index:1}
.dbill.pot{width:78px;height:64px;border-radius:26% 26% 45% 45%/30% 30% 60% 60%;background:radial-gradient(ellipse at 50% 18%,#fde047 0 34%,#facc15 35% 40%,#1f2937 42%);border-color:#0f172a;box-shadow:0 4px 0 #0f172a;font-size:.9rem}
.dbill.pot span{margin-top:14px;background:rgba(255,255,255,.85)}
.dbill.lifted{opacity:.3;transform:scale(.92)}
.dbill.ghost{position:fixed;z-index:1400;transform:translate(-50%,-50%) scale(1.15);pointer-events:none;box-shadow:0 12px 24px rgba(5,46,22,.35)}
@media (max-width:760px){.dep-stage{grid-template-columns:1fr}.dep-pig{width:170px;margin:0 auto}.dbill{width:74px;height:40px;font-size:.95rem}}

/* payday splash */
.payday{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);z-index:130;display:grid;justify-items:center;gap:.2rem;padding:1.1rem 1.8rem;border-radius:26px;background:linear-gradient(180deg,#fde047,var(--gold2));border:5px solid var(--ink);box-shadow:8px 8px 0 var(--ink);pointer-events:none;text-align:center}
.payday.go{animation:paydayin 2.6s cubic-bezier(.2,1.4,.4,1) forwards}
.payday b{font-family:var(--font-display);font-size:3.4rem;line-height:1;color:var(--g800)}
.payday span{font-weight:900;font-size:1.15rem;color:var(--ink)}
.payday small{font-weight:700;font-size:.85rem;color:#3f2a14}
@keyframes paydayin{0%{transform:translate(-50%,-50%) scale(.2) rotate(-12deg);opacity:0}12%{transform:translate(-50%,-50%) scale(1.1) rotate(2deg);opacity:1}20%,80%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-80%) scale(.8);opacity:0}}

/* My worlds gallery */
.worlds{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem}
.wcard{border:3px solid var(--ink);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.wcard img,.wcard .nothumb{width:100%;aspect-ratio:3/2;object-fit:cover;display:grid;place-items:center;font-size:3rem;background:#e0f2fe}
.wcard b{padding:.35rem .5rem 0;font-family:var(--font-display);font-weight:700;color:var(--ink)}
.wcard small{padding:0 .5rem;font-weight:700;color:#4b5563;font-size:.78rem}
.wcard .row{padding:.4rem .5rem .5rem;gap:.3rem;margin:0;justify-content:space-between}
.wcard .btn-sm{padding:.35rem .7rem;font-size:.9rem}
.worlds .empty{grid-column:1/-1;text-align:center;font-weight:700;color:#4b5563;padding:1rem}

/* Make-a-Pal */
.pal-card{width:min(860px,100%)}
.pal-body{display:grid;grid-template-columns:220px 1fr;gap:1rem;align-items:start}
.pal-left{display:grid;gap:.5rem;justify-items:center;position:sticky;top:0}
.pal-preview{width:200px;height:250px;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#fff,#bae6fd);border:3px solid var(--ink);border-radius:18px;padding:.4rem}
.pal-preview svg{height:100%;width:auto;filter:drop-shadow(0 6px 4px rgba(5,46,22,.25))}
.pal-preview.pop svg{animation:palpop .35s cubic-bezier(.3,1.6,.4,1)}
@keyframes palpop{0%{transform:scale(.92)}100%{transform:scale(1)}}
.pal-opts{display:grid;gap:.45rem;max-height:60vh;overflow:auto;padding-right:.2rem}
.prow{display:grid;grid-template-columns:86px 1fr;gap:.4rem;align-items:start}
.prow b{font-size:.82rem;color:var(--g800);padding-top:.35rem}
.chips{display:flex;flex-wrap:wrap;gap:.3rem}
.chips button{border:2px solid var(--ink);border-radius:999px;padding:.3rem .6rem;font-weight:800;font-size:.8rem;background:#fff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.chips button.on{background:var(--lime2);box-shadow:0 0 0 3px var(--gold)}
.chips.sw button{width:30px;height:30px;border-radius:8px;border:3px solid #fff;box-shadow:0 0 0 2px var(--ink);padding:0}
.chips.sw button.on{transform:scale(1.15);box-shadow:0 0 0 3px var(--gold)}
.chips input{width:52px;font-size:1.3rem;font-weight:800;text-align:center;border:3px solid var(--ink);border-radius:10px;padding:.2rem}

/* traffic light cycle */
.w-tl{animation:wtl 4.5s linear infinite;opacity:.25}
.w-tl1{animation-delay:0s}.w-tl2{animation-delay:-3s}.w-tl3{animation-delay:-1.5s}
@keyframes wtl{0%,30%{opacity:1}34%,100%{opacity:.22}}

@media (max-width:760px){
  .bbar{gap:.5rem;padding:.45rem .7rem}.bbrand span{display:none}.bbrand{font-size:1.4rem}
  .wallet{font-size:1.05rem;padding:.25rem .7rem}
  .build{padding:.5rem .5rem calc(1rem + env(safe-area-inset-bottom))}
  .stage{aspect-ratio:1/1;max-height:58vh;border-radius:18px;box-shadow:4px 4px 0 var(--ink)}
  .hint{font-size:.85rem;bottom:5%}
  .tools{gap:.25rem;padding:.3rem}.tools button{min-width:48px;font-size:1.05rem;padding:.3rem .35rem}.tools button small{font-size:.56rem}
  .actions{gap:.3rem;margin:.5rem 0}.actions button{min-width:52px;font-size:1.1rem;padding:.3rem .3rem;box-shadow:2px 2px 0 var(--ink)}.actions button small{font-size:.56rem}
  .shelf{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));max-height:34vh;gap:.4rem}
  .tile .thumb{height:46px;font-size:2rem}.tile .thumb svg{height:44px;max-width:76px}
  .cats button{min-width:56px;font-size:1.15rem;padding:.3rem .4rem}
  .scenes{grid-template-columns:repeat(2,1fr)}
  .worlds{grid-template-columns:repeat(2,1fr)}
  .pal-body{grid-template-columns:1fr}.pal-left{position:static;grid-template-columns:auto auto;align-items:center}.pal-preview{width:130px;height:165px}.pal-opts{max-height:42vh}.prow{grid-template-columns:70px 1fr}
  .job{grid-template-columns:auto 1fr;padding:.45rem .55rem}.job .jr{grid-column:1/-1;text-align:center}
  .payday b{font-size:2.6rem}.payday{padding:.9rem 1.2rem;width:min(86vw,360px)}
  .actions button.jobs,.actions button.finish{min-width:58px}
}
@media (prefers-reduced-motion: reduce){.builder-page *{animation:none!important}}
