@font-face{font-family:Crackman;src:url(/Pacman/assets/Crackman-C23UxG2f.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Emulogic;src:url(/Pacman/assets/Emulogic-zrEw-DZ1tk_l8.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--main-color: #EF13F2;--secondary-color: #F2E30C;--secondary-color-tr: #F2E30CB0;--accent-color: #00FFFF;--accent-color-dark: #00c1ff;--background: #1a0a2e;--background-dark: #0D0D0D;--background-light: #3d2a5e;--background-medium: #0a0212;--text-color: #fdfdfd;--text-muted: #c8c8c8;--text-dark: #0D0D0D;--success: #64BB46;--success-dark: #447e31;--success-darker: #37582c;--danger: #FF1744;--danger-light: #ff3b55;--warning: #FFA726;--info: #29B6F6;--ghost-red: #ff435c;--ghost-red-tr:#ff3b55B0;--ghost-pink: #EF13F2;--ghost-pink-tr: #EF13F2B0;--ghost-cyan: #00FFFF;--ghost-cyan-tr: #00FFFF90;--ghost-orange: #FFA726;--ghost-orange-tr: #FFA72690;--ghost-blue: #2121FF;--ghost-blue-tr: #2121FF70;--ghost-green: #00FF41;--ghost-green-dark: #02ce35;--ghost-green-tr: #00FF4190;--coin-color: #F2E30C;--wall-color: #560379;--pacman-color: #FFFF00;--border-color: #EF13F2;--border-light: #3F0259;--border-dark: #1A0726;--screen-border-soft: #EF13F2B3;--screen-border-danger-soft: #FF1744B3;--screen-border-success-soft: #64BB46B3;--overlay-light: rgba(63, 2, 89, .8);--overlay-dark: rgba(13, 13, 13, .9);--board-background: radial-gradient(circle at top, var(--success-dark) 0, var(--success-darker) 45%, var(--background-dark) 100%);--grid-line-color: rgba(239, 19, 242, .16);--cell-bg: #050308;--cell-dot-color: rgba(255, 255, 255, .14);--shadow-deep: rgba(0, 0, 0, .95);--shadow-glow: rgba(239, 19, 242, .5);--shadow-glow-yellow: rgba(242, 227, 12, .3);--screen-glow-default: var(--shadow-glow);--screen-glow-danger: rgba(255, 23, 68, .85);--screen-glow-success: rgba(100, 187, 70, .85);--corridor-bg: #050308;--corridor-bg-inner: #12091a;--corridor-shadow: rgba(0, 0, 0, .85);--wall-outline: #b47cff;--wall-inner: #5e318c;--wall-glow: rgba(8, 0, 18, .704);--game-max-width: 52rem;--cell-size: min(2.5rem, 6vw, 5vh);--pacman-size: clamp(1.6rem, 1.4rem + 1.4vw, 1.9rem);--ghost-size: calc(var(--cell-size) * .85);--dot-size: 15%;--coin-size-large: 85%;--game-padding: .625rem;--transition-speed: .15s}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{height:100svh;font-family:Emulogic,monospace;font-size:1rem;line-height:1.4;font-weight:400;background:radial-gradient(circle at top,var(--background-light) 0,var(--background) 45%,var(--background-dark) 100%);background-color:var(--background-dark);color:var(--text-color)}.game{width:calc(var(--cell-size) * 15 + (var(--game-padding) * 2) + 2rem);margin:1rem auto;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:radial-gradient(circle at top,var(--background-light) 0,var(--background-medium) 55%,var(--background-dark) 100%);border:.125rem solid var(--screen-border-soft);border-radius:.5rem;box-shadow:0 0 .9rem var(--shadow-glow),0 0 2.4rem var(--shadow-glow),0 0 3.2rem #000000f2,0 0 .7rem #000000d9 inset}.game-hud,.game-field{margin-inline:auto;position:relative}.game-hud{width:100%;gap:1rem;padding:1rem 1rem .75rem;background-color:transparent}.game-stats{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;margin:0 auto;padding-inline:1.25rem;line-height:1.75rem;max-width:calc(var(--cell-size) * 15)}.game-score{text-shadow:0 0 .4rem var(--shadow-glow-yellow);font-size:1rem}h2{margin:.5rem auto;font-family:Crackman,sans-serif;font-optical-sizing:auto;font-weight:700;text-transform:uppercase;font-size:2rem}.bottom-menu{width:100%;max-width:calc(var(--cell-size) * 15);display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0 1rem}.bottom-menu p,.level-fruits{display:flex;align-items:center;line-height:1}.level-fruits img{width:var(--cell-size);height:var(--cell-size);object-fit:contain;image-rendering:pixelated}.lives-img{margin-inline:0}.lives-img img{width:1.5rem;height:1.5rem;display:inline-block;margin-inline:.25rem;filter:drop-shadow(0 0 2px var(--pacman-color)) brightness(1.2);image-rendering:pixelated}.lives-img img:first-of-type{margin-left:0}.level-fruits{display:flex;min-width:2rem;gap:.5rem}button{margin:2rem auto 0;color:var(--text-dark);font-size:1.125rem;font-weight:700;font-family:Emulogic,monospace;background:linear-gradient(135deg,var(--pacman-color),#ffd600);text-align:center;padding:.5rem 1.75rem;border:2px solid transparent;border-radius:.125rem;transition:transform var(--transition-speed) ease-out,box-shadow var(--transition-speed) ease-out,filter var(--transition-speed) ease-out,color .6s ease;cursor:pointer;box-shadow:0 0 .5rem var(--shadow-glow-yellow),.25rem .25rem .25rem .6rem #0009}button:hover{transform:translateY(-1px) scale(1.03);filter:brightness(1.05)}button:focus-visible{outline:2px solid var(--accent-color);outline-offset:3px}button.mute{position:relative;right:0rem;top:0rem;background:none;background-color:transparent;color:var(--text-muted);font-size:1.75rem;padding:0;margin:0 0 -.25rem;box-shadow:none}button.mute:hover{transform:scale(1.06);color:var(--text-color)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media(max-width:420px){.game-stats,.game-score{font-size:1rem}}@media(max-width:370px){.game-stats{padding-inline:1rem}.game-score,.lives{font-size:.85rem}}.screen-wrapper{height:100svh;display:flex;align-items:flex-start;justify-content:center;padding-top:clamp(2rem,10vh,4rem)}.screen{width:min(32rem,90vw);padding:2rem 1.5rem;border-radius:.5rem;margin:0 auto;text-align:center;background:radial-gradient(circle at top,var(--background-light) 0,var(--background-medium) 55%,var(--background-dark) 100%);border:2px solid var(--pacman-color);box-shadow:0 0 .5rem var(--secondary-color),0 0 2rem var(--secondary-color-tr),0 0 3.2rem #000000f2,0 0 .7rem #000000d9 inset;display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:center}.screen h2{font-family:Crackman,sans-serif;text-transform:uppercase;text-align:center;margin-bottom:0;font-size:clamp(2rem,4vw,3.5rem);color:var(--pacman-color)}.screen p{max-width:26rem;font-size:1.125rem;text-align:start;line-height:1.8;color:var(--text-muted)}.score-status{width:100%}.new-game{font-size:1rem;border:none}.new-game:hover{box-shadow:0 0 7px var(--secondary-color)}.screen--start h2{text-shadow:0 0 .1rem var(--background-dark),0 0 .3rem var(--background-light)}.screen--game-over{border-color:var(--ghost-red-tr);box-shadow:0 0 .9rem var(--ghost-red),0 0 2.4rem var(--ghost-red-tr),0 0 3.2rem #000000f2,0 0 .7rem #000000d9 inset}.screen--game-over h2{color:var(--ghost-red)}.screen--game-over .new-game{color:var(--text-color);text-shadow:1px 1px 2px var(--danger-light);border:none;background:linear-gradient(135deg,var(--ghost-red),var(--danger-light));box-shadow:0 0 10px var(--danger-light)}.screen--game-over .new-game:hover{box-shadow:0 0 12px var(--ghost-red)}.screen--win{border-color:var(--ghost-green-tr);box-shadow:0 0 .9rem var(--ghost-green),0 0 2.4rem var(--ghost-green-tr),0 0 3.2rem #000000f2,0 0 .7rem #000000d9 inset}.screen--win h2{color:var(--ghost-green)}.screen--win .new-game{text-shadow:1px 1px 2px var(--ghost-green);color:var(--text-dark);border:none;background:linear-gradient(135deg,var(--ghost-green),var(--ghost-green-dark));box-shadow:0 0 2px var(--ghost-green)}.screen--win .new-game:hover{box-shadow:0 0 7px var(--ghost-green)}.coffee-break-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--background-dark);z-index:1000}.coffee-break{position:relative;width:100%;height:200px;overflow:hidden}.pacman-container,.ghost-container{position:absolute;width:60px;height:60px}.pacman-container{color:var(--pacman-color);filter:drop-shadow(0 0 .25rem var(--pacman-color-tr)) drop-shadow(0 0 .75rem var(--pacman-color-tr))}.pacman-container.chase{animation:run-right-pacman 4s steps(240,end) forwards}.ghost-container.chase{width:70px;height:70px;animation:run-right-ghost 4s steps(240,end) forwards;color:var(--ghost-red);filter:drop-shadow(0 0 .25rem var(--ghost-red-tr)) drop-shadow(0 0 .75rem var(--ghost-red-tr))}.ghost-container.reverse{animation:run-left-ghost 3.7s steps(222,end) forwards}.pacman-container.reverse{animation:run-left-pacman 4.3s steps(258,end) forwards}.pacman-container.large{width:200px;height:200px}.ghost-container.frightened{color:var(--ghost-blue);filter:drop-shadow(0 0 .25rem var(--ghost-blue-tr)) drop-shadow(0 0 .75rem var(--ghost-blue-tr))}@keyframes run-left-ghost{0%{right:-100px;top:50%;transform:translateY(-50%) scaleX(-1)}to{right:calc(100% + 50px);top:50%;transform:translateY(-50%) scaleX(-1)}}@keyframes run-left-pacman{0%{right:-500px;top:50%;transform:translateY(-50%) scaleX(-1)}to{right:calc(100% + 200px);top:50%;transform:translateY(-50%) scaleX(-1)}}@keyframes run-right-pacman{0%{left:-100px;top:50%;transform:translateY(-50%)}to{left:calc(100% + 50px);top:50%;transform:translateY(-50%)}}@keyframes run-right-ghost{0%{left:-500px;top:50%;transform:translateY(-50%)}to{left:calc(100% + 0px);top:50%;transform:translateY(-50%)}}.game-field{display:flex;flex-direction:column;align-items:center;gap:0;margin-bottom:0;border-top:none;border-radius:0 0 1rem 1rem;background-blend-mode:hard-light;border-radius:.75rem;padding:.625rem;background:radial-gradient(circle at center,var(--wall-inner) 0%,var(--background-dark) 70%);box-shadow:inset 0 0 3rem #000c,inset 0 0 1rem var(--wall-inner)}.row{display:flex;gap:0}.cell{position:relative;width:var(--cell-size);height:var(--cell-size);display:flex;overflow:visible;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,#14101dA0 0,#050308D0 45%,var(--cell-bg) 100%);background:radial-gradient(circle at 30% 25%,var(--cell-bg) 0,#050308C0 45%,#14101dA0 100%);font-size:1.25rem;border-left:1px solid transparent;border-top:1px solid transparent;box-shadow:inset 0 0 .35rem #000000d9}.cell:before{content:"";position:absolute;width:.125rem;height:.125rem;background:var(--cell-dot-color);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.wall{width:3.125rem;height:3.125rem;background-color:#5e318c;display:inline-block}.cell.wall-top{border-top:.25rem solid var(--wall-color)}.cell.wall-right{border-right:.25rem solid var(--wall-color)}.cell.wall-bottom{border-bottom:.25rem solid var(--wall-color)}.cell.wall-left{border-left:.25rem solid var(--wall-color)}.cell.restricted{background-color:transparent;background:none;box-shadow:none}.cell.restricted:before{display:none}.ground{width:3.125rem;height:3.125rem;display:inline-block}.cell.gate-visible{border-top:.2rem solid var(--cell-dot-color);transition:border-top .3s ease-in-out,}.pacman{width:var(--pacman-size);height:var(--pacman-size);display:inline-block;color:var(--pacman-color);transition:transform var(--transition-speed) ease}.animated-pacman{width:100%;height:100%}.pacman-right{transform:rotate(0)}.pacman-down{transform:rotate(90deg)}.pacman-left{transform:scaleX(-1)}.pacman-up{transform:rotate(270deg)}.invincible{animation:blink .2s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}.coin{width:var(--dot-size);height:var(--dot-size);display:inline-flex;align-items:center;justify-content:center;animation:coin-pulse .9s ease-in-out infinite;filter:drop-shadow(0 0 .4rem var(--background-dark)) brightness(.7);image-rendering:pixelated}.coin.large{width:var(--coin-size-large);height:var(--coin-size-large);filter:drop-shadow(0 0 .4rem var(--coin-color)) contrast(1.2)}.fruit{width:var(--coin-size-large);height:var(--coin-size-large);object-fit:contain;z-index:200;image-rendering:pixelated}.fruit[data-fruit=cherry]{filter:brightness(1.2) drop-shadow(0 0 5px var(--danger-light));transform:scale(.95)}.fruit[data-fruit=strawberry]{filter:brightness(1.2) drop-shadow(0 0 5px var(--danger));transform:scale(.9)}.fruit[data-fruit=orange]{filter:brightness(1.1) drop-shadow(0 0 5px var(--warning));transform:scale(1.1)}.fruit[data-fruit=apple]{filter:contrast(1.1) drop-shadow(0 0 5px var(--danger))}.fruit[data-fruit=melon]{filter:drop-shadow(0 0 5px var(--ghost-green-tr)) contrast(1.2);transform:scale(1.2)}.fruit[data-fruit=galaxian]{filter:brightness(1.1) drop-shadow(0 0 5px var(--ghost-blue));transform:scale(1.4);animation:galaxianFloat 2s ease-in-out infinite,galaxianGlow 1.5s ease-in-out infinite}.ghost{width:var(--ghost-size);height:var(--ghost-size);min-height:27px;display:inline-block;filter:brightness(1.2) drop-shadow(0 0 .25rem currentColor) drop-shadow(0 0 .75rem currentColor);animation:ghost-float 2s ease-in-out infinite;transition:transform .1s ease-out,left .48s linear,top .48s linear;z-index:100}.ghost[data-ghost="2"]{color:var(--ghost-cyan);filter:drop-shadow(0 0 .25rem var(--ghost-cyan-tr)) drop-shadow(0 0 .75rem var(--ghost-cyan-tr))}.ghost[data-ghost="1"]{color:var(--ghost-pink);filter:drop-shadow(0 0 .25rem var(--ghost-pink-tr)) drop-shadow(0 0 .75rem var(--ghost-pink-tr))}.ghost[data-ghost="0"]{color:var(--ghost-red);filter:drop-shadow(0 0 .25rem var(--ghost-red-tr)) drop-shadow(0 0 .75rem var(--ghost-red-tr))}.ghost[data-ghost="3"]{color:var(--ghost-orange);filter:drop-shadow(0 0 .25rem var(--ghost-orange-tr)) drop-shadow(0 0 .75rem var(--ghost-orange-tr))}.ghost.bounce-up{animation:ghost-bounce-up .7s ease-in-out infinite}.ghost.bounce-down{animation:ghost-bounce-down .7s ease-in-out infinite}.ghost.frightened{color:var(--ghost-blue);filter:drop-shadow(0 0 .25rem var(--ghost-blue-tr)) drop-shadow(0 0 .75rem var(--ghost-blue-tr));animation:ghost-scared .5s ease-in-out infinite!important}.ghost[data-ghost].frightened.ending{filter:drop-shadow(0 0 .25rem var(--text-color)) drop-shadow(0 0 .75rem var(--text-color));animation:ghost-ending-blink .5s steps(1) 5!important}.animated-ghost.frightened.ending .ghost-mouth{animation:mouth-blink .5s steps(1) 5;fill:var(--danger)}.animated-ghost.frightened.ending .ghost-eye{animation:eyes-blink .5s steps(1) 5;fill:var(--danger)}.ghost.eaten{transform:scale(1.25);filter:brightness(1.5);animation:ghost-eyes-float .3s ease-in-out infinite}.animated-ghost{width:100%;height:100%}.animated-ghost .pupil{transition:cx .15s ease-out,cy .15s ease-out}.floating-score{position:absolute;color:var(--text-color);font-size:1.5rem;font-weight:700;text-shadow:0 0 .3rem var(--ghost-cyan),0 0 .8rem var(--ghost-green),0 0 1.5rem var(--ghost-pink);animation:float-up 1.2s ease-out forwards,glow-pulse .3s ease-in-out 3;pointer-events:none;z-index:100;left:calc(var(--x) * var(--cell-size) + var(--cell-size) / 2);top:calc(var(--y) * var(--cell-size) + var(--cell-size) / 2);transform:translate(-50%,-50%)}.floating-score.ready-message{width:100%;margin-top:0 auto;padding-left:3%;font-size:1.5rem;text-align:center;animation:pulse-ready 2s ease-in-out forwards}@media(max-width:768px){html{font-size:14px}.game-field{padding:.5rem}}@media(max-width:480px){html{font-size:12px}}@keyframes coin-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes ghost-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.25rem)}}@keyframes ghost-bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-2rem)}}@keyframes ghost-bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(2rem)}}@keyframes ghost-scared{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes ghost-ending-blink{0%,49%{color:var(--ghost-blue);filter:drop-shadow(0 0 .25rem var(--ghost-blue-tr)) drop-shadow(0 0 .75rem var(--ghost-blue-tr))}50%,to{color:var(--text-color);filter:drop-shadow(0 0 .5rem var(--text-color)) drop-shadow(0 0 1rem var(--text-color))}}@keyframes mouth-blink{0%,49%{fill:#0000a0}50%,to{fill:var(--danger)}}@keyframes eyes-blink{0%,49%{fill:#f5f5f5}50%,to{fill:var(--danger)}}@keyframes ghost-eyes-float{0%,to{transform:scale(1.6) translateY(0)}50%{transform:scale(1.5) translateY(-2px)}}@keyframes float-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2rem)}}@keyframes glow-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.5)}}@keyframes pulse-ready{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}90%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@keyframes death-fade{0%{opacity:1}80%{opacity:.8}to{opacity:0}}@keyframes galaxianFloat{0%,to{transform:translateY(0) rotate(0) scale(1.4)}25%{transform:translateY(-3px) rotate(-5deg) scale(1.4)}50%{transform:translateY(0) rotate(0) scale(1.4)}75%{transform:translateY(3px) rotate(5deg) scale(1.4)}}@keyframes galaxianGlow{0%,to{filter:drop-shadow(0 0 5px rgba(0,255,255,.5))}50%{filter:drop-shadow(0 0 15px rgba(0,255,255,.9))}}
