@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@500;700;800&family=Press+Start+2P&display=swap');
:root{color-scheme:dark;--ink:#21142f;--purple:#4b286d;--violet:#7b49a5;--orange:#ff8b38;--gold:#ffd65a;--cream:#fff4d6;--green:#7ee081;--pink:#ff88a8}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#130d1d;color:var(--cream);font-family:'DM Sans',system-ui,sans-serif}body{overflow-x:hidden}button,a{font:inherit}.pixel{font-family:'Press Start 2P',monospace}.shell{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;background:radial-gradient(circle at 50% 15%,#55306f 0,#241531 45%,#100b18 100%)}.stars{position:absolute;inset:0;opacity:.42;background-image:radial-gradient(circle,#fff 1px,transparent 1.5px),radial-gradient(circle,#ffca66 1px,transparent 1.5px);background-position:0 0,35px 45px;background-size:72px 72px,91px 91px;pointer-events:none}.topbar{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:max(13px,env(safe-area-inset-top)) 16px 10px;pointer-events:none}.home,.sound{pointer-events:auto;display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:2px solid rgba(255,255,255,.7);background:rgba(33,20,47,.72);color:white;text-decoration:none;cursor:pointer;box-shadow:3px 3px 0 #120b1d}.home{font-size:12px;text-transform:uppercase}.sound{border-radius:50%;font-size:20px}.hud-group{display:flex;gap:22px;text-align:center}.stat small{display:block;font-size:8px;letter-spacing:.15em;text-transform:uppercase;opacity:.75}.stat strong{color:var(--gold);font:13px/1.8 'Press Start 2P'}.game-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none}.overlay{position:absolute;z-index:8;inset:0;display:grid;place-items:center;padding:18px;background:rgba(15,9,23,.35);opacity:0;visibility:hidden;transition:.25s}.overlay.visible{opacity:1;visibility:visible}.panel{width:min(470px,94vw);padding:clamp(24px,5vw,42px);background:rgba(255,244,214,.97);color:var(--ink);border:4px solid var(--ink);box-shadow:10px 10px 0 rgba(126,224,129,.7);transform:translateY(10px);transition:.25s}.visible .panel{transform:none}.eyebrow{margin:0 0 12px;color:var(--violet);font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.panel h1,.panel h2{margin:0;font:clamp(28px,8vw,47px)/1.15 'Press Start 2P';letter-spacing:-.05em;text-transform:uppercase}.panel h1 em,.panel h2 em{color:var(--orange);font-style:normal}.intro{color:#4c3b56;font-size:15px;line-height:1.5}.play{width:100%;display:flex;justify-content:space-between;margin-top:18px;padding:16px 18px;border:0;background:var(--ink);color:white;font-weight:800;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;box-shadow:5px 5px 0 var(--violet)}.best{min-height:16px;margin:15px 0 0;text-align:center;color:#6b5874;font-size:12px}.toast{position:absolute;z-index:7;top:22%;left:50%;transform:translate(-50%,-10px);padding:10px 15px;opacity:0;background:rgba(33,20,47,.94);border:2px solid var(--gold);color:var(--gold);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;pointer-events:none;transition:.2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
.help{width:100%;display:flex;justify-content:space-between;margin-top:13px;padding:13px 16px;border:2px solid var(--ink);background:transparent;color:var(--ink);font-weight:800;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.help:hover{background:rgba(75,40,109,.1)}.guide{z-index:10;background:rgba(15,9,23,.65)}.guide .panel{width:min(520px,94vw)}.guide-list{display:grid;gap:9px;margin:18px 0}.guide-list div{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:11px;padding:10px;background:rgba(255,255,255,.66);border-left:3px solid var(--violet)}.guide-list span{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:white;font-weight:800}.guide-list p{margin:0;color:#4c3b56;font-size:12px;line-height:1.38}.guide-list b{color:var(--ink);text-transform:uppercase;letter-spacing:.04em}
@media(max-width:600px){.topbar{padding-left:9px;padding-right:9px}.hud-group{gap:12px}.stat strong{font-size:11px}.home{min-width:38px;padding:0 8px}.panel{padding:26px 22px;box-shadow:6px 7px 0 rgba(126,224,129,.7)}}
@media(max-height:620px){.panel{padding:19px}.panel h1,.panel h2{font-size:26px}.intro{margin:10px 0}.play{margin-top:10px;padding:13px}}

/* Keep oversized pixel headings from determining the grid's minimum width. */
.panel,.panel h1,.panel h2{min-width:0}
@media(max-width:600px){.overlay{padding:14px}.panel{width:calc(100vw - 28px);padding:26px 18px}.panel h1,.panel h2{font-size:clamp(25px,9.4vw,36px);letter-spacing:-.08em}.eyebrow{font-size:9px}.intro{font-size:14px}.hud-group{gap:9px}.stat strong{font-size:10px}}
.recipe-overlay{background:rgba(15,9,23,.72)}.recipe-overlay .panel{max-height:calc(100dvh - 28px);overflow-y:auto}.recipe-list{display:grid;gap:7px;margin:16px 0}.recipe-row{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:6px 12px;background:#2b1938;color:#fff4d6;border-left:5px solid var(--ingredient,#7ee081);font:10px/1.4 'Press Start 2P'}.recipe-icon{display:block;width:48px;height:48px;image-rendering:pixelated}.recipe-row strong{color:var(--gold);font-size:12px}.recipe-progress{position:absolute;z-index:6;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:7px;width:max-content;max-width:calc(100vw - 20px);padding:8px 10px;background:rgba(20,11,30,.86);border:2px solid #76518b;pointer-events:none;white-space:normal}.recipe-pip{flex:0 1 auto;width:auto;height:auto;padding:5px 7px;background:#392447;border:2px solid #8c6a9d;color:#fff4d6;font:8px/1 'Press Start 2P';white-space:nowrap}.recipe-pip.done{background:#315c43;border-color:#b9ffc0;color:#d8ffdc}.unlock[hidden]{display:none}.victory .panel{box-shadow:10px 10px 0 rgba(255,214,90,.72)}
@media(max-width:600px){.hud-group{gap:7px}.stat small{font-size:7px}.stat strong{font-size:8px}.recipe-row{grid-template-columns:40px 1fr auto;font-size:8px;padding:5px 8px}.recipe-icon{width:40px;height:40px}.recipe-progress{gap:3px;padding:6px}.recipe-pip{padding:4px;font-size:6px}}
.gmcat-watermark{position:absolute;z-index:12;right:max(14px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:grid;place-items:center;min-width:92px;min-height:44px;padding:9px 12px;border:2px solid rgba(255,244,214,.72);background:rgba(33,20,47,.82);color:var(--cream);text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font:9px/1 'Press Start 2P';text-shadow:2px 2px 0 var(--purple);box-shadow:4px 4px 0 rgba(126,224,129,.65);touch-action:manipulation;transition:transform .15s,background .15s,border-color .15s}.gmcat-watermark:hover,.gmcat-watermark:focus-visible{background:rgba(75,40,109,.96);border-color:var(--gold);transform:translateY(-2px);outline:none}.gmcat-watermark:active{transform:translate(2px,2px);box-shadow:2px 2px 0 rgba(126,224,129,.65)}
.guide .panel{max-height:calc(100dvh - 28px);overflow-y:auto}.legend-title{margin:15px 0 8px;color:var(--violet);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.item-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.legend-item{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:5px;min-width:0;padding:5px;background:rgba(255,255,255,.7);border-bottom:3px solid var(--green);color:var(--ink)}.legend-item.cursed{border-color:#d95370;background:rgba(255,225,230,.72)}.legend-item canvas{display:block;width:36px;height:36px;image-rendering:pixelated}.legend-item span{min-width:0;font:7px/1.35 'Press Start 2P';overflow-wrap:anywhere}.legend-item.cursed span{color:#832944}
@media(max-width:600px){.item-legend{grid-template-columns:repeat(2,1fr)}.legend-item span{font-size:7px}.guide .panel{padding:20px 16px}}
.boo-a-brew .topbar{padding-top:max(18px,env(safe-area-inset-top))}.boo-a-brew .hud-group{gap:clamp(18px,4vw,42px)}.boo-a-brew .stat small{font-size:10px}.boo-a-brew .stat strong{font-size:17px}.boo-a-brew .home,.boo-a-brew .sound{min-height:52px}.boo-a-brew .sound{width:52px}.boo-a-brew .recipe-progress{padding:12px 14px;gap:10px}.boo-a-brew .recipe-pip{padding:8px 10px;font-size:10px}
@media(max-width:600px){.boo-a-brew .hud-group{gap:10px}.boo-a-brew .stat small{font-size:8px}.boo-a-brew .stat strong{font-size:11px}.boo-a-brew .home{min-height:48px}.boo-a-brew .sound{width:48px;min-height:48px}.boo-a-brew .recipe-overlay{padding:12px}.boo-a-brew .recipe-overlay .panel{padding:20px 16px}.boo-a-brew .recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:12px 0}.boo-a-brew .recipe-row{grid-template-columns:34px minmax(0,1fr) auto;gap:5px;padding:4px 6px;font-size:7px}.boo-a-brew .recipe-icon{width:34px;height:34px}.boo-a-brew .recipe-row strong{font-size:9px}.boo-a-brew .recipe-progress{top:max(82px,calc(env(safe-area-inset-top) + 68px));bottom:auto;max-width:calc(100vw - 16px);padding:7px;gap:4px}.boo-a-brew .recipe-pip{flex:1 1 74px;padding:6px 4px;text-align:center;font-size:7px}}
.boo-a-brew .toast.danger{top:30%;min-width:min(360px,calc(100vw - 28px));padding:16px 20px;background:#701f3c;border:4px solid #ff7892;color:#fff4f0;text-align:center;font:12px/1.45 'Press Start 2P';box-shadow:8px 8px 0 #2b0d21,0 0 28px rgba(255,70,105,.7);white-space:normal;animation:lifeLost .48s steps(2,end) 2}.boo-a-brew .toast.danger::before{content:'−1 LIFE';display:block;margin-bottom:8px;color:#ffd65a;font-size:18px;text-shadow:3px 3px 0 #3b1028}@keyframes lifeLost{0%,100%{transform:translate(-50%,0)}25%{transform:translate(calc(-50% - 9px),-2px)}50%{transform:translate(calc(-50% + 9px),2px)}75%{transform:translate(calc(-50% - 5px),1px)}}
.pumpkin-pile .game-canvas{image-rendering:pixelated}.pumpkin-pile .panel{box-shadow:8px 8px 0 #ff8b38,14px 14px 0 rgba(126,224,129,.55)}
.topbar{z-index:auto}.home{position:relative;z-index:20}.gmcat-watermark{position:fixed;z-index:40}.arcade-confirm{position:fixed;z-index:50;background:rgba(15,9,23,.82)}.arcade-confirm .panel{width:min(440px,calc(100vw - 28px));box-shadow:8px 8px 0 var(--orange)}
.ghost-light .game-canvas{image-rendering:pixelated}.ghost-light .panel{box-shadow:8px 8px 0 #7b49a5,14px 14px 0 rgba(255,214,90,.5)}
.haunted-elevator .game-canvas{image-rendering:pixelated}.haunted-elevator .panel{box-shadow:8px 8px 0 #bd8247,14px 14px 0 rgba(123,73,165,.55)}
.haunted-elevator .toast.danger{top:27%;min-width:min(350px,calc(100vw - 28px));padding:15px 18px;background:#731d3b;border:4px solid #ff5577;color:#fff4f0;text-align:center;font:11px/1.4 'Press Start 2P';box-shadow:8px 8px 0 #2b0d21,0 0 25px rgba(255,65,104,.62);white-space:normal}
.haunted-elevator .toast.door-added{top:29%;padding:16px 20px;background:#4b286d;border:4px solid #ffd65a;color:#fff4d6;text-align:center;font:clamp(11px,3vw,16px)/1.35 'Press Start 2P';box-shadow:8px 8px 0 #21142f,0 0 30px rgba(183,111,208,.8);animation:newDoorPop .5s steps(4,end)}@keyframes newDoorPop{0%{transform:translate(-50%,0) scale(.65)}70%{transform:translate(-50%,0) scale(1.1)}100%{transform:translate(-50%,0) scale(1)}}
.haunted-elevator .toast.streak{top:21%;bottom:auto;min-width:min(440px,calc(100vw - 28px));padding:20px 24px;background:#4b286d;border:5px solid #ffd65a;color:#fff4d6;text-align:center;font:clamp(14px,4vw,22px)/1.35 'Press Start 2P';white-space:normal;text-shadow:3px 3px 0 #21142f;box-shadow:9px 9px 0 #21142f,0 0 34px rgba(255,214,90,.85);animation:streakPop .58s steps(4,end) 2 alternate}@keyframes streakPop{0%{transform:translate(-50%,0) scale(.72) rotate(-2deg)}65%{transform:translate(-50%,0) scale(1.1) rotate(1deg)}100%{transform:translate(-50%,0) scale(1)}}
@media(max-width:600px){.haunted-elevator .toast,.haunted-elevator .toast.danger,.haunted-elevator .toast.door-added{top:auto;bottom:max(82px,14vh);max-width:calc(100vw - 30px);white-space:normal}}
@media(max-width:600px){.haunted-elevator .toast.streak{top:max(105px,18vh);bottom:auto;padding:17px 14px;font-size:15px}}
.level-complete{position:absolute;z-index:9;left:50%;top:44%;display:flex;align-items:center;gap:14px;width:min(440px,calc(100vw - 34px));padding:18px 22px;border:4px solid #21142f;background:#fff4d6;color:#21142f;box-shadow:8px 8px 0 #bd8247,14px 14px 0 rgba(123,73,165,.65);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-40%) scale(.82);transition:opacity .18s,transform .28s steps(4,end),visibility .28s}.level-complete.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.level-complete span{color:#ff8b38;font:22px/1 'Press Start 2P';animation:levelStar .45s steps(2,end) infinite alternate}.level-complete div{flex:1;text-align:center}.level-complete small{display:block;margin-bottom:8px;color:#7b49a5;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.level-complete strong{display:block;color:#21142f;font:clamp(17px,4.4vw,27px)/1.2 'Press Start 2P';text-transform:uppercase}@keyframes levelStar{to{transform:scale(1.25) rotate(12deg);color:#ffd65a}}@media(max-width:480px){.level-complete{gap:8px;padding:16px 12px}.level-complete span{font-size:16px}.level-complete strong{font-size:16px}}
