nsform:translateY(0)}50%{transform:translateY(-6px)}} /* BUTTONS */ .btn{padding:.85rem 1.5rem;border:none;border-radius:14px;font-family:'Press Start 2P',monospace; font-size:clamp(.42rem,2vw,.6rem);cursor:pointer;transition:transform .15s,box-shadow .15s; text-transform:uppercase;letter-spacing:1px;min-height:46px;touch-action:manipulation;} .btn:active{transform:scale(.94)!important;} .btn-play{background:linear-gradient(135deg,#e94560,#c2185b);color:#fff; box-shadow:0 4px 20px #e9456088;width:min(250px,82vw);font-size:clamp(.7rem,3.5vw,.95rem);padding:1.1rem; animation:playPulse 2s ease-in-out infinite;} @keyframes playPulse{0%,100%{box-shadow:0 4px 20px #e9456088}50%{box-shadow:0 4px 35px #e94560cc}} .btn-secondary{background:rgba(15,52,96,.85);color:#f0f0f0;border:2px solid #e94560;min-width:85px;backdrop-filter:blur(4px);} .btn-secondary:hover{background:#e94560;} .btn-paddy{background:linear-gradient(135deg,#065f46,#047857);color:#d1fae5;border:3px solid #34d399; box-shadow:0 0 20px #34d39966;animation:paddyPulse 2s infinite;width:min(280px,88vw); font-size:clamp(.4rem,1.9vw,.58rem);padding:.9rem;position:relative;} .btn-paddy::before,.btn-paddy::after{position:absolute;top:50%;transform:translateY(-50%);font-size:1rem;} .btn-paddy::before{content:'☘️';left:10px;} .btn-paddy::after{content:'☘️';right:10px;} @keyframes paddyPulse{0%,100%{box-shadow:0 0 20px #34d39966}50%{box-shadow:0 0 35px #34d399cc}} .btn-catch{background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#ddd6fe;border:3px solid #a78bfa; position:relative;overflow:hidden;} .btn-catch::before{content:'🧝';position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:1rem;} .btn-catch::after{content:'💨';position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:1rem;} .btn-slime{background:linear-gradient(135deg,#0a1a05,#1a3d0a,#2d6b10);color:#7fff3a;border:3px solid #4ade80; position:relative;overflow:hidden;text-shadow:0 0 12px #7fff3a,0 0 24px #4ade80; box-shadow:0 0 18px #4ade8055;animation:slimePulse 2.5s infinite;} .btn-slime::before{content:'🫧';position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:1rem;} .btn-slime::after{content:'🐄';position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:1rem;} @keyframes slimePulse{0%,100%{box-shadow:0 0 18px #4ade8055;}50%{box-shadow:0 0 38px #7fff3a99,0 0 60px #4ade8044;}} @keyframes ownerPulse{0%,100%{box-shadow:0 0 16px #f59e0b88;}50%{box-shadow:0 0 28px #fbbf24cc,0 0 44px #f59e0b66;}} #slimeMansion{background:linear-gradient(180deg,#0a1205,#0f1f08,#162e0a);} /* UPSIDE DOWN GAME MODE */ .btn-upsidedown{background:linear-gradient(135deg,#0a000f,#1a0028,#3d0010);color:#ff3366; border:3px solid #cc0044;font-size:clamp(.5rem,2.5vw,.75rem);padding:14px 18px; position:relative;text-shadow:0 0 12px #ff3366;box-shadow:0 0 20px #cc004466; animation:udPulse 2.5s infinite;} .btn-upsidedown::before{content:'⬇';position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:1rem;} .btn-upsidedown::after{content:'🔥';position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:1rem;} @keyframes udPulse{0%,100%{box-shadow:0 0 20px #cc004466;}50%{box-shadow:0 0 40px #ff336699,0 0 60px #cc004444;}} .ud-level-btn{background:#0d0014;border:2px solid #3d0020;border-radius:10px;padding:8px;cursor:pointer; font-family:'Press Start 2P',monospace;font-size:clamp(.28rem,1.2vw,.4rem);color:#cc6688; text-align:center;transition:all .15s;touch-action:manipulation;} .ud-level-btn:hover,.ud-level-btn:active{border-color:#ff3366;color:#ff3366;background:#1a0028;} .ud-level-btn.completed{border-color:#ff3366;color:#ff3366;} .ud-level-btn.locked{opacity:.4;cursor:not-allowed;} .ud-level-btn.boss{border-color:#ff6600;color:#ff9900;background:#1a0800; box-shadow:0 0 14px #ff660066;animation:bossGlow 1.5s infinite;} .ud-level-btn.boss.locked{animation:none;} @keyframes bossGlow{0%,100%{box-shadow:0 0 14px #ff660066;}50%{box-shadow:0 0 28px #ff6600aa;}} .st-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px; max-width:min(600px,96vw);width:100%;padding:8px 8px 40px;} .st-shop-item{background:#0d0014;border:2px solid #3d0020;border-radius:12px; padding:10px 8px;cursor:pointer;text-align:center;transition:all .15s;position:relative;overflow:hidden;} .st-shop-item:hover{background:#1a0028;border-color:#cc0044;box-shadow:0 0 14px #cc004455;} .st-shop-item.owned{border-color:#ff3366;background:#1a0028;cursor:default;} .st-shop-item.cant-afford{opacity:.5;cursor:not-allowed;} .st-item-name{font-family:'Press Start 2P',monospace;font-size:clamp(.28rem,1.3vw,.42rem);color:#ff3366;margin-top:5px;} .st-item-price{font-family:'Press Start 2P',monospace;font-size:clamp(.26rem,1.2vw,.38rem);color:#ffd700;margin-top:3px;} .st-item-owned{font-family:'Press Start 2P',monospace;font-size:clamp(.26rem,1.2vw,.38rem);color:#4ade80;margin-top:3px;} box-shadow:0 0 20px #7c3aed66;animation:catchPulse 2s infinite;width:min(280px,88vw); font-size:clamp(.4rem,1.9vw,.58rem);padding:.9rem;position:relative;} .btn-catch::before{content:'🧝';position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:1rem;} .btn-catch::after{content:'💨';position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:1rem;} @keyframes catchPulse{0%,100%{box-shadow:0 0 20px #7c3aed66}50%{box-shadow:0 0 35px #a78bfacc}} .home-row{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;} /* CURRENCY BAR */ .currency-bar{position:fixed;top:10px;right:10px;display:flex;flex-direction:column;gap:4px;z-index:1000;} .currency-pill{border-radius:20px;padding:5px 11px;display:flex;align-items:center;gap:5px; font-family:'Press Start 2P',monospace;font-size:clamp(.4rem,1.8vw,.55rem);backdrop-filter:blur(6px);} .coin-pill{background:rgba(22,33,62,.9);border:2px solid #ffd700;color:#ffd700;} .rainbow-pill{background:rgba(13,31,13,.9);border:2px solid #a78bfa;color:#a78bfa;} /* SCROLLABLE SCREENS */ #levelSelect,#shop,#achievements,#inventory,#stpatricks,#catchSelect{ flex-direction:column;align-items:center;padding:62px 12px 20px; overflow-y:auto;-webkit-overflow-scrolling:touch;background:#0f1020;} #stpatricks{background:linear-gradient(180deg,#021c0e,#052e16 60%,#064e3b);} .screen-title{font-family:'Press Start 2P',monospace;font-size:clamp(.65rem,3vw,.95rem);color:#ffd700;margin-bottom:.8rem;} /* BACK BTN */ .back-btn{position:fixed;top:12px;left:12px;background:rgba(22,33,62,.95);border:2px solid #0f3460; color:#94a3b8;border-radius:10px;padding:8px 12px;cursor:pointer;font-family:'Press Start 2P',monospace; font-size:clamp(.35rem,1.6vw,.48rem);z-index:200;min-height:38px;min-width:58px;touch-action:manipulation; transition:border-color .2s,color .2s;backdrop-filter:blur(4px);} .back-btn:hover,.back-btn:active{border-color:#e94560;color:#fff;} .back-btn.green{background:rgba(13,40,24,.95);border-color:#166534;color:#34d399;} /* LEVEL SELECT */ .section-tabs{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-bottom:.8rem;max-width:600px;width:100%;} .tab{padding:6px 10px;border:2px solid #0f3460;border-radius:8px;background:#16213e;color:#94a3b8; cursor:pointer;font-family:'Press Start 2P',monospace;font-size:clamp(.33rem,1.7vw,.44rem); transition:all .18s;min-height:36px;touch-action:manipulation;} .tab.active{border-color:#e94560;color:#e94560;} .tab.locked{opacity:.35;cursor:not-allowed;} .levels-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;max-width:min(520px,96vw);width:100%;} .level-btn{aspect-ratio:1;border-radius:10px;border:3px solid transparent;display:flex; flex-direction:column;align-items:center;justify-content:center;cursor:pointer; font-family:'Press Start 2P',monospace;font-size:clamp(.38rem,2vw,.55rem); transition:transform .15s,box-shadow .15s;position:relative;touch-action:manipulation;gap:2px;} .level-btn.easy{background:linear-gradient(145deg,#052e16,#14532d);border-color:#4ade80;color:#4ade80;} .level-btn.medium{background:linear-gradient(145deg,#422006,#78350f);border-color:#facc15;color:#facc15;} .level-btn.hard{background:linear-gradient(145deg,#450a0a,#991b1b);border-color:#ef4444;color:#ef4444;} .level-btn.locked{background:#16213e;border-color:#1e293b;color:#334155;cursor:not-allowed;} .level-btn.completed::after{content:'✓';position:absolute;top:3px;right:5px;font-size:.6rem;color:#4ade80;} .level-btn:not(.locked):active{transform:scale(.91);} .level-btn:not(.locked):hover{box-shadow:0 0 12px currentColor44;} .lvl-stars{font-size:.55rem;letter-spacing:1px;} /* EMOTE WHEEL */ #emoteWheel{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.55);} #emoteWheel.open{display:flex;} .emote-wheel-inner{position:relative;width:220px;height:220px;} .emote-slot{position:absolute;width:60px;height:60px;background:rgba(15,20,40,.92);border:2px solid #e94560;border-radius:50%; display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,border-color .12s,background .12s; font-size:1.4rem;user-select:none;touch-action:manipulation;} .emote-slot:hover,.emote-slot.highlighted{transform:scale(1.22);border-color:#ffd700;background:rgba(233,69,96,.3);} .emote-slot.locked{border-color:#334155;opacity:.5;cursor:default;} .emote-slot.locked:hover{transform:none;background:rgba(15,20,40,.92);border-color:#334155;} .emote-slot-label{font-family:'Press Start 2P',monospace;font-size:.28rem;color:#94a3b8;margin-top:1px;text-align:center;line-height:1.2;} .emote-wheel-hint{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);font-family:'Press Start 2P',monospace; font-size:.3rem;color:#64748b;white-space:nowrap;} /* In-game emote button */ .emote-game-btn{background:rgba(233,69,96,.18);border:1px solid #e94560;color:#e94560;border-radius:6px;padding:2px 7px; font-family:'Press Start 2P',monospace;font-size:clamp(.28rem,1.2vw,.4rem);cursor:pointer;touch-action:manipulation;white-space:nowrap;} /* Emote display on canvas */ /* emote canvas handled by JS */ /* Shop tabs */ .shop-tabs{display:flex;gap:6px;padding:4px 8px;width:100%;justify-content:center;flex-wrap:wrap;flex-shrink:0;} .shop-tab{background:rgba(15,52,96,.7);border:2px solid #334155;color:#94a3b8;border-radius:8px;padding:6px 10px; font-family:'Press Start 2P',monospace;font-size:clamp(.28rem,1.2vw,.38rem);cursor:pointer;touch-action:manipulation;transition:all .15s;} .shop-tab.active{background:rgba(233,69,96,.25);border-color:#e94560;color:#ffd700;} /* Emote shop grid */ .emote-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px; padding:8px;width:100%;max-width:500px;overflow-y:auto;flex:1;} .emote-shop-card{background:#0d0014;border:2px solid #334155;border-radius:12px;padding:10px 6px; display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;transition:all .15s;} .emote-shop-card.owned{border-color:#22c55e;cursor:default;} .emote-shop-card:hover:not(.owned){border-color:#e94560;background:rgba(233,69,96,.08);} .emote-shop-card .e-icon{font-size:1.8rem;} .emote-shop-card .e-name{font-family:'Press Start 2P',monospace;font-size:.3rem;color:#f0f0f0;text-align:center;} .emote-shop-card .e-price{font-family:'Press Start 2P',monospace;font-size:.28rem;color:#ffd700;} .emote-shop-card .e-owned{font-family:'Press Start 2P',monospace;font-size:.28rem;color:#22c55e;} /* GAME */ #game{flex-direction:column;align-items:center;justify-content:space-between; background:#080810;gap:0;overflow:hidden;} #catchGame{flex-direction:column;align-items:center;justify-content:space-between; background:#021c0e;gap:0;overflow:hidden;} .game-hud{display:flex;align-items:center;gap:6px;font-family:'Press Start 2P',monospace; font-size:clamp(.32rem,1.4vw,.46rem);color:#94a3b8;flex-wrap:nowrap;justify-content:center; padding:3px 6px;width:100%;background:rgba(8,8,16,.92);flex-shrink:0; min-height:28px;overflow:hidden;} .hud-level{color:#ffd700;white-space:nowrap;} .hud-math{background:#16213e;border:2px solid #e94560;border-radius:6px;padding:2px 6px; color:#f0f0f0;font-size:clamp(.32rem,1.4vw,.46rem);white-space:nowrap;} .hud-lives{color:#ef4444;white-space:nowrap;} .hud-rainbow{color:#a78bfa;white-space:nowrap;} #gameCanvas{image-rendering:pixelated;display:block;touch-action:none;flex-shrink:0; border-left:2px solid #1e293b;border-right:2px solid #1e293b;max-height:calc(100dvh - 28px - 148px);} #catchCanvas{image-rendering:pixelated;display:block;touch-action:none;flex-shrink:0; border-left:2px solid #166534;border-right:2px solid #166534;max-height:calc(100dvh - 28px - 148px);} #smCanvas{image-rendering:pixelated;display:block;touch-action:none;flex-shrink:0; max-height:calc(100dvh - 38px - 148px);} #udCanvas{max-height:calc(100dvh - 28px - 148px);} /* D-PAD */ .dpad-wrap{display:none;flex-direction:column;align-items:center;padding:4px 0 2px; background:rgba(8,8,16,.92);width:100%;flex-shrink:0;} .dpad-row{display:flex;gap:0;} .dpad-btn{width:clamp(44px,11vw,60px);height:clamp(44px,11vw,60px); background:rgba(255,255,255,.07);border:2px solid rgba(255,255,255,.13); color:#fff;font-size:1.1rem;display:flex;align-items:center;justify-content:center; cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:background .1s;} .dpad-btn:active,.dpad-btn.pressed{background:rgba(233,69,96,.45);border-color:#e94560;} .dpad-up{border-radius:10px 10px 0 0}.dpad-down{border-radius:0 0 10px 10px} .dpad-left{border-radius:10px 0 0 10px}.dpad-right{border-radius:0 10px 10px 0} .dpad-center{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.06);pointer-events:none;} @media(pointer:coarse){.dpad-wrap{display:flex;}.kbd-hint{display:none;}} .kbd-hint{font-size:.38rem;color:#475569;font-family:'Press Start 2P',monospace;padding:3px;} /* MODALS */ .modal-overlay{position:fixed;inset:0;background:#000000dd;display:none; align-items:center;justify-content:center;z-index:999;padding:16px;} .modal-overlay.open{display:flex;} .modal{background:#16213e;border:3px solid #e94560;border-radius:20px;padding:1.5rem; max-width:360px;width:100%;text-align:center;max-height:90dvh;overflow-y:auto; box-shadow:0 0 40px #e9456044;} .modal h2{font-family:'Press Start 2P',monospace;font-size:clamp(.58rem,2.8vw,.8rem); color:#ffd700;margin-bottom:1rem;} .math-q{font-size:clamp(1.5rem,7vw,2rem);font-weight:900;color:#fff;margin-bottom:1rem;} .math-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;} .math-opt{padding:14px;border:2px solid #0f3460;border-radius:12px;background:#0f1020; color:#fff;cursor:pointer;font-size:clamp(1rem,5vw,1.3rem);font-weight:900; transition:all .12s;min-height:54px;touch-action:manipulation;font-family:'Nunito',sans-serif;} .math-opt:active,.math-opt:hover{border-color:#e94560;background:#16213e;} .math-opt.correct{border-color:#4ade80;background:#052e16;color:#4ade80;} .math-opt.wrong{border-color:#ef4444;background:#450a0a;color:#ef4444;animation:shake .3s;} @keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}} .win-modal .modal{border-color:#ffd700;box-shadow:0 0 50px #ffd70044;} .win-stars{font-size:2rem;margin:.6rem 0;letter-spacing:4px;} .coins-earned{color:#ffd700;font-family:'Press Start 2P',monospace;font-size:clamp(.48rem,2.2vw,.68rem);margin:.4rem 0;} .rainbows-earned{color:#a78bfa;font-family:'Press Start 2P',monospace;font-size:clamp(.4rem,1.8vw,.55rem);margin:.3rem 0;} .death-modal .modal{border-color:#ef4444;box-shadow:0 0 40px #ef444444;} /* SHOP */ .shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(128px,40vw),1fr));gap:10px;max-width:700px;width:100%;} .shop-item{background:#16213e;border:2px solid #0f3460;border-radius:14px;padding:13px; text-align:center;transition:transform .15s,border-color .2s;cursor:pointer;touch-action:manipulation;} .shop-item:active{transform:scale(.94);} .shop-item:hover{border-color:#e94560;} .shop-item.owned{border-color:#4ade80;} .si-canvas{display:block;margin:0 auto 6px;border-radius:8px;} .shop-item-name{font-weight:700;font-size:clamp(.68rem,2.8vw,.8rem);margin-bottom:4px;} .shop-item-price{color:#ffd700;font-family:'Press Start 2P',monospace;font-size:clamp(.36rem,1.6vw,.46rem);} .shop-code-section{margin-top:1rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;} .shop-code-input{background:#16213e;border:2px solid #0f3460;color:#fff;border-radius:10px; padding:10px 13px;font-family:'Nunito',sans-serif;font-size:1rem;width:min(200px,55vw); min-height:44px;transition:border-color .2s;} .shop-code-input:focus{outline:none;border-color:#e94560;} /* ACHIEVEMENTS */ .ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(158px,42vw),1fr));gap:10px;max-width:800px;width:100%;} .ach-card{background:#16213e;border:2px solid #0f3460;border-radius:14px;padding:13px;text-align:center;position:relative;transition:border-color .2s;} .ach-card.unlocked{border-color:#ffd700;box-shadow:0 0 10px #ffd70033;} .ach-card.hard{border-color:#7f1d1d;} .ach-card.hard.unlocked{border-color:#ef4444;box-shadow:0 0 14px #ef444444;} .ach-canvas{display:block;margin:0 auto 6px;border-radius:8px;} .ach-name{font-weight:900;font-size:clamp(.66rem,2.8vw,.8rem);margin-bottom:3px;} .ach-desc{font-size:clamp(.58rem,2.2vw,.66rem);color:#94a3b8;margin-bottom:5px;} .ach-hard-badge{position:absolute;top:6px;right:6px;background:#ef4444;color:#fff; border-radius:5px;padding:2px 5px;font-size:.46rem;font-weight:700;font-family:'Press Start 2P',monospace;} .ach-reward{font-size:clamp(.4rem,1.6vw,.52rem);color:#ffd700;font-family:'Press Start 2P',monospace;} /* INVENTORY */ .inv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(125px,40vw),1fr));gap:10px;max-width:700px;width:100%;} .inv-item{background:#16213e;border:2px solid #0f3460;border-radius:14px;padding:13px; text-align:center;cursor:pointer;transition:transform .15s,border-color .2s;touch-action:manipulation;} .inv-item:active{transform:scale(.94);} .inv-item:hover{border-color:#e94560;} .inv-item.equipped{border-color:#ffd700;box-shadow:0 0 12px #ffd70044;} .inv-canvas{display:block;margin:0 auto 6px;border-radius:8px;} .inv-name{font-weight:700;font-size:clamp(.66rem,2.8vw,.8rem);} .equipped-badge{font-size:clamp(.36rem,1.5vw,.48rem);margin-top:4px;} /* PADDY */ .paddy-banner{width:10