:root{--bg: #fff4e0;--bg2: #ffe7c2;--card: #ffffff;--ink: #4a2c17;--ink-soft: #8a6a4f;--red: #e84d3d;--red-dark: #c93a2c;--yellow: #ffc83d;--green: #58b368;--blue: #4d96e8;--shadow: 0 4px 0 rgba(74, 44, 23, .15);--radius: 16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);color:var(--ink);font-family:Comic Sans MS,Segoe UI Rounded,Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif;touch-action:manipulation}#app{height:100dvh;max-width:560px;margin:0 auto;padding:max(env(safe-area-inset-top),8px) max(env(safe-area-inset-right),10px) max(env(safe-area-inset-bottom),6px) max(env(safe-area-inset-left),10px);display:flex;flex-direction:column;gap:8px}#game{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}#panel-wrap{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}#panels{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-radius:var(--radius);scrollbar-width:thin}h1{font-size:1.05rem;margin:0}h2{font-size:.85rem;margin:10px 2px 6px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:8px}h2:first-child{margin-top:0}.muted{color:var(--ink-soft);font-size:.85rem}.hidden{display:none!important}#topbar{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:var(--radius);padding:8px 12px;box-shadow:var(--shadow);flex:none}.city-title{display:flex;align-items:center;gap:7px;flex:none}.city-emoji{font-size:1.5rem}.online{font-size:.7rem;color:var(--green);font-weight:700;white-space:nowrap}.global-counter{text-align:right;flex:none;margin-left:auto}.global-number{font-size:1.15rem;font-weight:700;color:var(--red);font-variant-numeric:tabular-nums}.global-label{font-size:.62rem;color:var(--ink-soft)}#baker-row{display:flex;align-items:center;gap:4px;overflow-x:auto;flex:1;min-width:0;padding:2px;scrollbar-width:none}#baker-row::-webkit-scrollbar{display:none}#baker-row.solo:after{content:"← that's you!";font-size:.68rem;color:var(--ink-soft);white-space:nowrap}.baker{position:relative;flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--bg);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:transform .2s ease}.baker.me{outline:2px solid var(--blue)}.baker.joining{animation:bakerJoin .5s ease-out}@keyframes bakerJoin{0%{transform:scale(0) rotate(-30deg)}60%{transform:scale(1.3)}to{transform:scale(1)}}.baker.bump{animation:bakerBump .4s ease-out}@keyframes bakerBump{30%{transform:scale(1.3) rotate(-8deg)}to{transform:scale(1)}}.baker-mini{position:absolute;top:-4px;left:50%;font-size:.75rem;pointer-events:none;z-index:3;animation:miniFloat 1s ease-out forwards}@keyframes miniFloat{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-20px) scale(1.4)}}.baker-more{flex:0 0 auto;font-size:.7rem;font-weight:700;color:var(--ink-soft)}.event-banner{border-radius:12px;padding:6px 12px;font-weight:700;font-size:.82rem;text-align:center;box-shadow:var(--shadow);animation:pulse 1.6s ease-in-out infinite;flex:none}.event-banner.festival{background:linear-gradient(90deg,#ffd54d,#ff9f43);color:#6b3b00}.event-banner.boost{background:linear-gradient(90deg,#7ed957,#4dbd6e);color:#0d4a22}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.012)}}.next-festival{text-align:center;font-size:.72rem;font-weight:700;color:var(--ink-soft);flex:none}#clicker{position:relative;text-align:center;flex:none;padding:2px 0}.balance-row{margin-bottom:2px}.balance{font-size:clamp(1.5rem,4.5dvh,2.2rem);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.05}.balance:after{content:" 🍕";font-size:.7em}.balance-sub{color:var(--ink-soft);font-size:.8rem}#pizza-btn{--heat: 0;width:clamp(104px,19dvh,180px);height:clamp(104px,19dvh,180px);border-radius:50%;border:none;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ffd97a,var(--yellow) 60%,#f0a830);box-shadow:0 7px #c98a1e,0 10px 18px #4a2c1740,0 0 calc(var(--heat) * 36px) calc(var(--heat) * 8px) rgba(255,120,0,calc(var(--heat) * .55));user-select:none;touch-action:manipulation;margin-top:4px;transition:box-shadow .25s ease}#pizza-btn.pressed{animation:squish .14s ease-out}@keyframes squish{0%{transform:scale(1)}40%{transform:scale(1.06,.88) translateY(5px)}to{transform:scale(1)}}.pizza-face{font-size:clamp(58px,11dvh,102px);display:inline-block;filter:drop-shadow(0 3px 2px rgba(0,0,0,.2));pointer-events:none}#pizza-btn.hot .pizza-face{animation:hotWiggle .35s ease-in-out infinite}@keyframes hotWiggle{0%,to{transform:rotate(-5deg) scale(1.04)}50%{transform:rotate(5deg) scale(1.04)}}#floaters,#flyers{position:absolute;inset:0;pointer-events:none;overflow:hidden}.floater{position:absolute;font-weight:700;color:var(--red);text-shadow:0 1px 0 #fff;animation:floatUp .9s ease-out forwards;font-size:1.05rem;z-index:5}.floater.fire{color:#ff7300;font-size:1.3rem}@keyframes floatUp{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-65px) scale(1.3)}}.crumb{position:absolute;font-size:.95rem;pointer-events:none;z-index:4}#turbo-chip{display:inline-block;margin-top:3px;background:linear-gradient(90deg,#ff7300,#e8483d);color:#fff;font-weight:700;font-size:.78rem;border-radius:999px;padding:2px 12px;animation:pulse .5s ease-in-out infinite}#pizza-btn.turbo{animation:turboGlow .6s linear infinite}@keyframes turboGlow{0%{box-shadow:0 7px #c98a1e,0 0 30px 10px #ff5000b3}33%{box-shadow:0 7px #c98a1e,0 0 34px 12px #ff007899}66%{box-shadow:0 7px #c98a1e,0 0 34px 12px #5078ff99}to{box-shadow:0 7px #c98a1e,0 0 30px 10px #ff5000b3}}.flyer.turbo{font-size:2.6rem;animation:turboPulse .45s ease-in-out infinite;background:radial-gradient(circle,#fff6d8,#ffd54d);border-radius:50%;box-shadow:0 0 24px 6px #ff8c008c;padding:14px}.flyer.turbo:after{content:"×10";position:absolute;bottom:-2px;right:-6px;font-size:.85rem;font-weight:700;color:var(--red-dark);background:#fff;border-radius:999px;padding:1px 6px;box-shadow:var(--shadow)}@keyframes turboPulse{0%,to{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.12) rotate(4deg)}}#modal-overlay{position:fixed;inset:0;background:#4a2c1773;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}#profile-modal{background:var(--card);border-radius:var(--radius);box-shadow:0 12px 36px #0000004d;padding:16px;width:min(92vw,360px);animation:toastIn .2s ease-out}#profile-modal h3{margin:0 0 10px;font-size:1.05rem}#profile-name{width:100%;border:2px solid #f0e4d0;border-radius:10px;padding:9px 12px;font-family:inherit;font-size:1rem;color:var(--ink);outline:none;background:var(--bg)}#profile-name:focus{border-color:var(--blue)}#avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:12px 0}.avatar-opt{border:2px solid transparent;background:var(--bg);border-radius:12px;font-size:1.45rem;padding:6px 0;cursor:pointer;font-family:inherit}.avatar-opt.selected{border-color:var(--blue);background:#e7f1fd}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.modal-actions button{border:none;border-radius:10px;padding:9px 18px;font-family:inherit;font-weight:700;font-size:.9rem;cursor:pointer}#profile-cancel{background:var(--bg);color:var(--ink-soft)}#profile-save{background:var(--green);color:#fff;box-shadow:0 3px #3d8a4c}.flyer{position:absolute;left:-50px;pointer-events:auto;border:none;background:none;font-size:2.1rem;cursor:pointer;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));animation:flyerWobble .9s ease-in-out infinite;padding:6px;z-index:6}@keyframes flyerWobble{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-10px) rotate(8deg)}}.flyer.caught{animation:flyerCaught .3s ease-out forwards}@keyframes flyerCaught{to{transform:scale(2.2);opacity:0}}#ingredient-chips{display:flex;justify-content:center;gap:6px;margin-top:6px}.ing-chip{background:var(--card);border-radius:999px;padding:2px 9px;font-size:.78rem;box-shadow:var(--shadow);opacity:.55;transition:transform .15s ease}.ing-chip.has-some{opacity:1}.ing-chip.gained{transform:scale(1.25)}.ing-chip .ing-count{color:var(--red)}#tabs{display:flex;gap:5px;flex:none}.tab{flex:1;border:none;background:var(--card);color:var(--ink-soft);border-radius:12px;padding:8px 2px;font-family:inherit;font-weight:700;font-size:.78rem;cursor:pointer;box-shadow:var(--shadow);position:relative}.tab.active{background:var(--red);color:#fff}.tab .badge{position:absolute;top:-5px;right:-3px;background:var(--blue);color:#fff;font-size:.65rem;border-radius:999px;padding:2px 6px}.panel{display:none;padding-bottom:8px}.panel.active{display:block}.mult-btn{border:none;background:var(--blue);color:#fff;border-radius:999px;padding:2px 12px;font-family:inherit;font-weight:700;font-size:.78rem;cursor:pointer;text-transform:none;letter-spacing:0}.shop-item{display:flex;align-items:center;gap:10px;width:100%;background:var(--card);border:none;border-radius:var(--radius);padding:9px 12px;margin-bottom:7px;box-shadow:var(--shadow);cursor:pointer;text-align:left;font-family:inherit;color:var(--ink);position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.shop-item.bought,.recipe-ing.bought,.donate-btn.bought,.craft-btn.bought{animation:boughtPop .3s ease-out}@keyframes boughtPop{0%{transform:scale(1)}35%{transform:scale(1.04);background-color:#e3f5e6}to{transform:scale(1)}}.spark{position:absolute;pointer-events:none;font-size:.9rem;z-index:5}.shop-item:disabled{opacity:.55;cursor:default}.shop-item.locked{filter:grayscale(1);opacity:.45}.shop-emoji{font-size:1.6rem;width:36px;text-align:center}.shop-info{flex:1;min-width:0}.shop-name{font-weight:700;font-size:.92rem}.shop-detail{font-size:.75rem;color:var(--ink-soft)}.shop-right{text-align:right;white-space:nowrap}.shop-cost{font-weight:700;color:var(--red);font-size:.88rem}.shop-cost.affordable{color:var(--green)}.shop-owned{font-size:.92rem;font-weight:700;color:var(--blue)}.skyline{position:relative;background:linear-gradient(180deg,#cfe7ff,#f5e6c8 80%,#e8d4ab);border-radius:10px;padding:16px 8px 2px;margin-bottom:10px;overflow:hidden;min-height:52px}.skyline-buildings{display:flex;align-items:flex-end;justify-content:center;gap:0;font-size:1.55rem;line-height:1;letter-spacing:-3px}.sk-b.sk-wip{opacity:.8;animation:wipBob 1.6s ease-in-out infinite}@keyframes wipBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.sk-more{font-size:.7rem;font-weight:700;color:var(--ink-soft);align-self:center;margin-right:4px;letter-spacing:0}.skyline-bakers{position:absolute;inset:0;pointer-events:none}.sk-baker{position:absolute;bottom:1px;font-size:.9rem;line-height:1;pointer-events:auto;animation:skBob 2.4s ease-in-out infinite;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.sk-baker.me{font-size:1.05rem}@keyframes skBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.sk-baker.hop{animation:skHop .45s ease-out}@keyframes skHop{0%{transform:translateY(0)}40%{transform:translateY(-10px) rotate(-8deg)}to{transform:translateY(0)}}#celebrate-overlay{position:fixed;inset:0;z-index:80;background:#4a2c1780;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:18px}.celebrate-card{background:var(--card);border-radius:20px;box-shadow:0 16px 48px #00000059;padding:20px 22px;text-align:center;width:min(92vw,380px);animation:celebrateIn .45s cubic-bezier(.2,1.4,.4,1);position:relative;z-index:2}@keyframes celebrateIn{0%{transform:scale(.4) rotate(-6deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.celebrate-title{font-size:1.3rem;font-weight:700;color:var(--red)}.celebrate-project{font-size:1.05rem;font-weight:700;margin-top:2px}.celebrate-building{font-size:3.4rem;margin:6px 0 2px;animation:wipBob 1.2s ease-in-out infinite}.celebrate-sub{font-size:.82rem;color:var(--ink-soft);margin-bottom:10px}.celebrate-heroes-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:4px}.celebrate-hero{font-size:.92rem;padding:3px 0}.celebrate-dismiss{margin-top:12px;font-size:.72rem;color:var(--ink-soft)}.confetti{position:absolute;top:0;z-index:1;pointer-events:none}.project-card{background:var(--card);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);margin-bottom:8px}.project-title{font-size:1.05rem;font-weight:700;margin-bottom:2px}.project-sub{font-size:.78rem;color:var(--ink-soft);margin-bottom:10px}.progress-track{background:#f0e4d0;border-radius:999px;height:20px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--green),#7ed957);border-radius:999px;transition:width .4s ease;min-width:6px}.progress-label{text-align:center;font-weight:700;margin:7px 0 10px;font-variant-numeric:tabular-nums;font-size:.92rem}.donate-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.donate-btn{border:none;border-radius:10px;padding:9px 2px;background:var(--green);color:#fff;font-family:inherit;font-weight:700;font-size:.78rem;cursor:pointer;box-shadow:0 3px #3d8a4c}.donate-btn:active{transform:translateY(2px);box-shadow:0 1px #3d8a4c}.donate-btn:disabled{opacity:.5;box-shadow:none;cursor:default}.donate-hint{margin-top:9px;font-size:.75rem;color:var(--ink-soft)}.hint-card{background:var(--card);border-radius:var(--radius);padding:10px 14px;box-shadow:var(--shadow);font-size:.8rem}.kitchen .recipe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.recipe-ing{border:none;font-family:inherit;background:var(--bg);border-radius:12px;padding:7px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;color:var(--ink)}.recipe-ing:disabled{cursor:default}.recipe-ing .ri-emoji{font-size:1.4rem}.recipe-ing .ri-have{font-weight:700;font-size:.82rem}.recipe-ing.ok{background:#e3f5e6}.recipe-ing.ok .ri-have{color:var(--green)}.recipe-ing.missing .ri-have{color:var(--red)}.recipe-ing.unused{opacity:.45}.recipe-ing .ri-swap{font-size:.6rem;color:var(--blue);font-weight:700;min-height:.9em}.craft-btn{width:100%;padding:11px 6px;font-size:.88rem;margin-top:2px}.hero-card{background:linear-gradient(135deg,#fff,#fff7e6);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);margin-bottom:8px}.hero-level{font-size:1.1rem;font-weight:700}.xp-track{background:#f0e4d0;border-radius:999px;height:12px;overflow:hidden;margin:8px 0 4px}.xp-fill{height:100%;background:linear-gradient(90deg,var(--yellow),#ff9f43);border-radius:999px;transition:width .4s ease}.stars-available{color:var(--blue);font-weight:700}#leaderboard{list-style:none;margin:0;padding:0}#leaderboard li{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:12px;padding:8px 12px;margin-bottom:6px;box-shadow:var(--shadow)}#leaderboard .rank{font-weight:700;width:28px;color:var(--ink-soft)}#leaderboard li.me{outline:2px solid var(--blue)}#leaderboard .lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#leaderboard .lb-amount{font-weight:700;color:var(--red);font-variant-numeric:tabular-nums}#footer{flex:none;background:var(--card);border-radius:12px;padding:5px 10px;display:flex;align-items:center;gap:8px;justify-content:space-between;box-shadow:var(--shadow)}#feed{flex:1;min-width:0;font-size:.74rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.footer-actions{display:flex;gap:5px}.small-btn{border:none;background:var(--bg);border-radius:10px;padding:5px 9px;font-family:inherit;font-size:.74rem;cursor:pointer;color:var(--ink);max-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#toasts{position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;gap:6px;width:min(92vw,420px);pointer-events:none}.toast{background:var(--ink);color:#fff;border-radius:12px;padding:9px 14px;font-size:.82rem;box-shadow:0 6px 18px #00000040;animation:toastIn .25s ease-out}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 880px) and (min-height: 540px){#app{max-width:980px}#game{flex-direction:row;gap:14px}#clicker{flex:0 0 410px;display:flex;flex-direction:column;justify-content:center}#pizza-btn{width:clamp(150px,30dvh,230px);height:clamp(150px,30dvh,230px)}.pizza-face{font-size:clamp(86px,17dvh,130px)}.balance{font-size:2.6rem}#panel-wrap{flex:1}}
