*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--neon-pink:#ff2d95;--neon-blue:#00d4ff;--neon-green:#39ff14;--neon-purple:#b026ff;--neon-yellow:#ffe600;--bg:#0a0a0f;--bg-dark:#0a0a0f;--bg-card:#111118;--bg-overlay:#000000d9;--text:#e0e0e0;--text-muted:#888;--border:#222;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--pixel-font:"Press Start 2P", monospace;--fs-xxs:clamp(10px, 2vw, 15px);--fs-xs:clamp(13px, 2.8vw, 20px);--fs-sm:clamp(16px, 3.5vw, 24px);--fs-md:clamp(20px, 4.5vw, 32px);--fs-lg:clamp(26px, 6vw, 42px);--fs-xl:clamp(34px, 8vw, 54px);--fs-2xl:clamp(42px, 10vw, 72px);--fs-3xl:clamp(52px, 13vw, 92px)}html,body,#root{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;height:100%;overflow:hidden}body{font-family:var(--pixel-font);background-color:var(--bg-dark);color:var(--text);line-height:1.4;font-size:var(--fs-sm);image-rendering:pixelated}#root{background:radial-gradient(ellipse at 20% 50%, #00d4ff0d 0%, transparent 50%), radial-gradient(ellipse at 80% 50%, #ff2d950d 0%, transparent 50%), var(--bg-dark);flex-direction:column;display:flex}.page{-webkit-overflow-scrolling:touch;padding:1rem;padding-top:max(3rem, env(safe-area-inset-top));padding-bottom:max(1rem, env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:1rem;display:flex;position:relative;overflow:hidden auto}.pixel-border{border:2px solid var(--neon-blue);box-shadow:0 0 5px var(--neon-blue), 0 0 10px var(--neon-blue), inset 0 0 5px #00d4ff1a;image-rendering:pixelated}.neon-text{text-shadow:0 0 5px,0 0 10px,0 0 20px}.neon-pink{color:var(--neon-pink);text-shadow:0 0 5px var(--neon-pink), 0 0 10px var(--neon-pink)}.neon-blue{color:var(--neon-blue);text-shadow:0 0 5px var(--neon-blue), 0 0 10px var(--neon-blue)}.neon-green{color:var(--neon-green);text-shadow:0 0 5px var(--neon-green), 0 0 10px var(--neon-green)}.neon-purple{color:var(--neon-purple);text-shadow:0 0 5px var(--neon-purple), 0 0 10px var(--neon-purple)}.neon-yellow{color:var(--neon-yellow);text-shadow:0 0 5px var(--neon-yellow), 0 0 10px var(--neon-yellow)}@keyframes glitch{0%{text-shadow:2px 0 var(--neon-pink), -2px 0 var(--neon-blue)}25%{text-shadow:-2px 0 var(--neon-pink), 2px 0 var(--neon-blue)}50%{text-shadow:2px 0 var(--neon-blue), -2px 0 var(--neon-pink)}75%{text-shadow:-2px 0 var(--neon-blue), 2px 0 var(--neon-pink)}to{text-shadow:2px 0 var(--neon-pink), -2px 0 var(--neon-blue)}}.glitch{animation:.3s infinite glitch}.scanlines{pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);width:100%;height:100%;position:fixed;top:0;left:0}.btn{font-family:var(--pixel-font);font-size:var(--fs-sm);color:var(--neon-blue);border:1px solid var(--neon-blue);cursor:pointer;text-transform:uppercase;letter-spacing:1px;image-rendering:pixelated;touch-action:manipulation;background:0 0;padding:clamp(.4rem,1.5vw,1rem) clamp(.6rem,2vw,1.5rem);transition:all .2s}.btn:hover,.btn:active{background:var(--neon-blue);color:var(--bg-dark);box-shadow:0 0 10px var(--neon-blue)}.btn-primary{border-color:var(--neon-pink);color:var(--neon-pink)}.btn-primary:hover,.btn-primary:active{background:var(--neon-pink);color:var(--bg-dark);box-shadow:0 0 10px var(--neon-pink)}.btn-success{border-color:var(--neon-green);color:var(--neon-green)}.btn-success:hover,.btn-success:active{background:var(--neon-green);color:var(--bg-dark);box-shadow:0 0 10px var(--neon-green)}.btn:disabled{opacity:.4;pointer-events:none}.neon-card{background:var(--bg-card);border:1px solid var(--border);padding:1.5rem;position:relative;overflow:hidden}.neon-card:before{content:"";pointer-events:none;border:1px solid #0000;position:absolute;inset:-1px}.neon-card.highlight{border-color:var(--neon-purple);box-shadow:0 0 10px #b026ff33,inset 0 0 10px #b026ff0d}.progress-bar{background:var(--border);width:100%;height:8px;position:relative;overflow:hidden}.progress-fill{height:100%;transition:width .5s;position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:1.5s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pageOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes heartFloat{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-120px)scale(.5)}}@keyframes eatFood{0%{opacity:1;transform:translate(-50%,-130%)scale(.8)}60%{opacity:.9;transform:translate(-50%,-60%)scale(.6)}to{opacity:0;transform:translate(-50%,-50%)scale(0)}}@keyframes dropFall{0%{opacity:.8;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(280px)scale(.5)}}@keyframes starFloat{0%{transform:translateY(-100vh)}to{transform:translateY(100vh)}}@keyframes rocketShake{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-2px,1px)rotate(-1deg)}50%{transform:translate(2px,-1px)rotate(1deg)}75%{transform:translate(-1px,-1px)rotate(0)}}@keyframes rocketFloat{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes crabAppear{0%{opacity:0;transform:scale(0)rotate(-180deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes starFall{0%{opacity:0;transform:translateY(-20px)}10%{opacity:.6}90%{opacity:.6}to{opacity:0;transform:translateY(400px)}}@keyframes bubbleFloat{0%{opacity:0;transform:translateY(0)scale(.3)}20%{opacity:.9}to{opacity:0;transform:translateY(-320px)scale(1)}}.gem-matched{animation:.25s forwards gemPop!important}.gem-new{opacity:0;animation:.3s forwards gemDrop!important}.gem-hint{animation:.6s ease-in-out infinite gemHint!important}.gem-swap{animation:.15s gemSwap!important}@keyframes gemPop{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}to{opacity:0;transform:scale(0)}}@keyframes gemDrop{0%{opacity:0;transform:translateY(-100%)}60%{opacity:1}to{opacity:1;transform:translateY(0)}}@keyframes gemHint{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes gemSwap{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}@keyframes scoreFloat{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.fade-in{animation:.5s forwards fadeIn}.pulse{animation:2s infinite pulse}.float{animation:3s ease-in-out infinite float}.blink{animation:1s step-end infinite blink}.status-bar{border-bottom:1px solid var(--border);font-size:var(--fs-xxs);color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.5rem 0;display:flex}.pixel-avatar{image-rendering:pixelated;image-rendering:crisp-edges}::-webkit-scrollbar{display:none}@keyframes typingDot{0%,20%{opacity:0}50%{opacity:1}to{opacity:0}}.typing-dots span{animation:1.4s infinite typingDot}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.safe-bottom{padding-bottom:var(--safe-bottom)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.close-overlay-btn{z-index:10;cursor:pointer;color:var(--text-muted);font-family:var(--pixel-font);background:0 0;border:none;position:absolute;top:.5rem;right:.5rem}.story-text{font-size:var(--fs-xs);color:var(--text);line-height:2}.noir-dialogue{background:var(--bg-card);border:1px solid #333;border-radius:12px;padding:1.5rem}.game-overlay{z-index:100;background:var(--bg-overlay);padding:2rem;padding-top:calc(2rem + var(--safe-top));padding-bottom:calc(2rem + var(--safe-bottom));flex-direction:column;justify-content:center;align-items:center;gap:.8rem;display:flex;position:fixed;inset:0}.header-bar{cursor:pointer;width:100%;font-size:var(--fs-xxs)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:.4rem}.gap-5{gap:.5rem}.gap-6{gap:.6rem}.gap-8{gap:.8rem}.p-4{padding:.4rem}.p-5{padding:.5rem}.p-6{padding:.6rem}.p-7{padding:.7rem}.p-8{padding:.8rem}.rounded-4{border-radius:4px}.rounded-6{border-radius:6px}.rounded-8{border-radius:8px}.rounded-10{border-radius:10px}.rounded-12{border-radius:12px}.text-muted{color:var(--text-muted)}.text-center{text-align:center}.text-left{text-align:left}.w-full{width:100%}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.font-inherit{font-family:inherit}.outline-none{outline:none}.box-border{box-sizing:border-box}.fs-xxs{font-size:var(--fs-xxs)}.fs-xs{font-size:var(--fs-xs)}.fs-sm{font-size:var(--fs-sm)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)scale(.5)}to{opacity:0;transform:translateY(-60px)scale(1.2)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.1)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes effectTill{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-20px)scale(.3)}}@keyframes effectWater{0%{opacity:1;transform:translateY(-10px)}to{opacity:0;transform:translateY(10px)}}@keyframes effectPlant{0%{opacity:0;transform:translateY(-10px)scale(.5)}40%{opacity:1}to{opacity:0;transform:translateY(0)scale(1)}}@keyframes effectParticle{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(0);opacity:0}}.msg{content-visibility:auto;contain-intrinsic-size:auto 48px}
