:root{--red:#d63a2c;--red-dark:#96251b;--yellow:#f2b632;--blue:#2a6fb8;--green:#2f9a5e;--ink:#1d1d2b;--panel:#fffffff0;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#4a9ae8;margin:0;font-family:Fredoka,system-ui,-apple-system,sans-serif;overflow:hidden}canvas{touch-action:none;cursor:grab;outline:none;display:block}.hud{pointer-events:none;z-index:10;position:fixed;inset:0}.hud>*{pointer-events:auto}.emo{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;line-height:1}.btn,.tile{font:inherit;cursor:pointer;min-width:64px;min-height:64px;color:var(--ink);touch-action:manipulation;background:#fff;border:none;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 10px;font-size:13px;font-weight:700;transition:transform 80ms,box-shadow 80ms,background .2s;display:inline-flex;box-shadow:0 5px #00000038,0 8px 18px #0000002e}.btn .emo,.tile .emo{font-size:28px}.btn:active,.tile:active{transform:translateY(4px);box-shadow:0 1px #00000038,0 3px 8px #0000002e}.btn.on,.tile.on{background:var(--yellow)}.btn.small{border-radius:16px;min-width:52px;min-height:52px;padding:4px}.btn.small .emo{font-size:24px}.btn.off .emo{opacity:.35}.btn.big{min-width:84px;min-height:72px}.btn.big .emo{font-size:34px}.btn.go{background:var(--green);color:#fff}.btn.go.on{background:var(--red);color:#fff}.btn.done{background:var(--green);color:#fff;flex-direction:row;gap:8px;padding:8px 22px;font-size:18px}.btn.wide{flex-direction:row;gap:8px;padding:8px 16px;font-size:14px}.btn:disabled,.tile:disabled{opacity:.45}.bar{gap:8px;display:flex;position:absolute}.top-left{top:calc(10px + var(--safe-t));left:calc(10px + var(--safe-l))}.top-right{top:calc(10px + var(--safe-t));right:calc(10px + var(--safe-r))}.counter{color:#fff;text-shadow:0 2px #000;background:#00000073;border-radius:999px;align-items:center;gap:6px;padding:6px 14px 4px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:24px;display:flex}.counter .emo{font-size:24px}.coin{background:radial-gradient(circle at 35% 30%,#fff6a0,#ffd21a 45%,#d99a00);border:2px solid #8a5a00;border-radius:50%;width:24px;height:24px;position:relative}.coin:after{content:"";border:2px solid #b87a00;border-radius:50%;position:absolute;inset:4px}.counter.pulse{animation:.35s pulse}@keyframes pulse{50%{transform:scale(1.18)}}.bottom{left:0;right:0;bottom:calc(10px + var(--safe-b));padding:0 calc(10px + var(--safe-r)) 0 calc(10px + var(--safe-l));pointer-events:none;justify-content:space-between;align-items:flex-end;gap:8px;display:flex;position:absolute}.bottom .group{pointer-events:auto;-webkit-backdrop-filter:blur(6px);background:#0000002e;border-radius:24px;gap:8px;padding:8px;display:flex}.hud.is-building .bottom{display:none}.toast{top:calc(80px + var(--safe-t));opacity:0;background:var(--red);color:#fff;letter-spacing:.5px;text-align:center;pointer-events:none;border:4px solid #fff;border-radius:22px;max-width:90vw;padding:12px 26px 8px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:clamp(20px,3.2vw,32px);transition:all .3s cubic-bezier(.3,1.6,.6,1);position:absolute;left:50%;transform:translate(-50%,-30px)scale(.8);box-shadow:0 8px 24px #0000004d}.toast.show{opacity:1;transform:translate(-50%)scale(1)}.panel{left:50%;bottom:calc(10px + var(--safe-b));-webkit-overflow-scrolling:touch;background:var(--panel);border:5px solid var(--yellow);text-align:center;touch-action:pan-y;border-radius:28px;width:min(760px,100vw - 20px);max-height:62vh;padding:14px 16px 16px;transition:transform .35s cubic-bezier(.3,1.3,.6,1);position:absolute;overflow-y:auto;transform:translate(-50%,120%);box-shadow:0 12px 40px #00000059}.panel.open{transform:translate(-50%)}.panel.build{padding:10px 12px 12px}.panel.build h2{margin:0 0 4px;font-size:22px}.panel.build .palette{touch-action:pan-x;scrollbar-width:thin;gap:8px;margin-bottom:0;padding:4px 2px 10px;display:flex;overflow-x:auto}.panel.build .palette .tile{flex:0 0 78px;min-height:74px}.panel.build .row{margin:4px 0 0}.panel h2,.panel h3{color:var(--red);margin:4px 0 10px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:26px;font-weight:400}.panel h3{margin-top:14px;font-size:20px}.panel .hint{margin:-4px 0 10px;font-size:15px}.grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;margin-bottom:12px;display:grid}.tile{min-height:80px;font-size:12px}.tile .emo{font-size:32px}.row{flex-wrap:wrap;justify-content:center;gap:10px;margin:8px 0;display:flex}.row .tile{flex:90px;max-width:150px}.chain{background:#e8f2ff;border-bottom:5px solid #8a7a6a;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin:10px 0;padding:8px;display:flex}.chip{font:inherit;cursor:pointer;background:#fff;border:none;border-radius:12px;padding:4px 8px;font-size:30px;position:relative;box-shadow:0 3px #0000002e}.chip.loco{background:var(--yellow);cursor:default}.chip .x{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;display:grid;position:absolute;top:-6px;right:-6px}.overlay{flex-direction:column;justify-content:center;align-items:center;padding:20px;transition:opacity .6s,visibility .6s;display:flex;position:absolute;inset:0}.help{opacity:0;visibility:hidden;background:#00000073}.help.show{opacity:1;visibility:visible}.help .card{border:6px solid var(--yellow);text-align:left;background:#fff;border-radius:28px;width:100%;max-width:560px;padding:18px 26px 22px;box-shadow:0 20px 60px #0006}.help h2{color:var(--red);text-align:center;margin:4px 0 8px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:30px;font-weight:400}.help p{margin:8px 0;font-size:18px}.help .btn{background:var(--green);color:#fff;flex-direction:row;gap:10px;margin:16px auto 0;padding:10px 30px;font-size:20px;display:flex}.title{background:radial-gradient(at 50% 40%,#4a9ae840,#14285a8c)}.title.hide{opacity:0;visibility:hidden}.logo{text-align:center;margin:0;font-family:Luckiest Guy,Fredoka,sans-serif;font-weight:400;line-height:.95;animation:3s ease-in-out infinite bob;transform:rotate(-3deg)}.logo .l1,.logo .l2{display:block}.logo .l1{color:var(--red);-webkit-text-stroke:3px #fff;text-shadow:0 6px 0 var(--red-dark), 0 10px 30px #0006;letter-spacing:2px;font-size:clamp(40px,9vw,104px)}.logo .l2{color:var(--yellow);-webkit-text-stroke:2px #6a4300;text-shadow:0 5px #a8730f,0 10px 30px #0006;font-size:clamp(40px,8vw,90px)}@keyframes bob{50%{transform:rotate(-1deg)translateY(-8px)}}.title .sub{color:#fff;text-align:center;text-shadow:0 2px 6px #0009;max-width:600px;margin:22px 0 18px;font-size:clamp(16px,2.4vw,22px)}.title .loading{color:#fff;text-shadow:0 2px 6px #0009;font-size:18px;animation:1s infinite blink}.title.ready .loading{display:none}@keyframes blink{50%{opacity:.4}}.btn.huge{background:var(--green);color:#fff;text-shadow:0 3px #0000004d;border:5px solid #fff;border-radius:999px;flex-direction:row;gap:14px;padding:16px 44px 10px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:40px;font-weight:400}.btn.huge .emo{font-size:40px}.title:not(.ready) .play{opacity:0;pointer-events:none}.title.ready .play{animation:.5s cubic-bezier(.3,1.6,.6,1) pop,2.4s 1s infinite wiggle}@keyframes pop{0%{transform:scale(0)}}@keyframes wiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-4deg)scale(1.05)}95%{transform:rotate(4deg)scale(1.05)}}.tunnel{opacity:0;pointer-events:none;background:radial-gradient(#0000008c,#000000f2);transition:opacity .4s;position:absolute;inset:0}.tunnel.on{opacity:1}.ask{opacity:0;visibility:hidden;z-index:30;background:#0a143c73}.ask.show{opacity:1;visibility:visible}.ask-card{border:6px solid var(--yellow);text-align:center;background:#fff;border-radius:36px;width:100%;max-width:460px;padding:20px 28px 26px;transition:transform .35s cubic-bezier(.3,1.7,.6,1);transform:scale(.4)rotate(-6deg);box-shadow:0 10px #b86a00,0 24px 60px #00000073}.ask.show .ask-card{transform:scale(1)rotate(0)}.ask-emo{font-size:72px;animation:1.4s ease-in-out infinite wobble}@keyframes wobble{25%{transform:rotate(-10deg)scale(1.08)}75%{transform:rotate(10deg)scale(1.08)}}.ask-q{color:var(--ink);margin:10px 0 22px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:clamp(22px,3.4vw,30px);line-height:1.15}.ask-btns{justify-content:center;gap:18px;display:flex}.btn.ask-yes,.btn.ask-no{color:#fff;border:4px solid #fff;border-radius:26px;flex-direction:row;gap:10px;min-width:140px;min-height:84px;font-family:Luckiest Guy,Fredoka,sans-serif;font-size:28px;font-weight:400}.btn.ask-yes{background:var(--green);box-shadow:0 6px #2a7a2e,0 10px 20px #00000040}.btn.ask-no{background:var(--red);box-shadow:0 6px 0 var(--red-dark), 0 10px 20px #00000040}.btn.ask-yes .emo,.btn.ask-no .emo{font-size:34px}.help .row{margin-top:16px}.help .row .btn{margin:0}.help .btn.restart{background:var(--blue);color:#fff;flex-direction:row;gap:8px;padding:10px 20px;font-size:18px}@media (max-width:820px){.bottom .lbl{display:none}.btn{min-width:54px;min-height:54px;padding:4px}.btn.big{min-width:64px;min-height:60px}.bottom .group{gap:6px;padding:6px}}@media (max-width:560px){.bottom{flex-wrap:wrap;justify-content:center}.top-left{flex-direction:column;align-items:flex-start;gap:6px}.top-right{gap:4px}.top-right .btn.small{min-width:44px;min-height:44px}.top-right .btn.small .emo{font-size:21px}.counter{gap:4px;padding:4px 9px 2px;font-size:16px}.counter .emo{font-size:17px}.coin{width:18px;height:18px}.coin:after{inset:3px}}.credit{z-index:20;left:calc(10px + var(--safe-l));top:calc(70px + var(--safe-t));letter-spacing:.2px;color:#ffffffeb;text-shadow:0 1px 2px #0006;-webkit-user-select:none;user-select:none;background:#00000052;border-radius:999px;padding:6px 10px;font:600 11px/1 Fredoka,system-ui,sans-serif;text-decoration:none;position:fixed}.credit:hover,.credit:focus-visible{color:#fff;background:#0000008c}@media (max-width:560px){.credit{top:calc(80px + var(--safe-t));padding:5px 8px;font-size:10px}}
