.pacman-game-wrapper{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;width:100%;height:100%;min-height:0;background-color:#111;padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom,0px));box-sizing:border-box;overflow:hidden}.pacman-playfield{flex:1 1 0;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.pacman-canvas-wrap{position:relative;display:inline-block;min-width:0;max-width:100%;max-height:100%;line-height:0}.pacman-canvas{border:2px solid #01ff27;box-shadow:0 0 20px #01ff274d;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.pacman-end-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;padding:12px 16px;text-align:left;box-sizing:border-box;pointer-events:auto}.pacman-end-title{margin:0;font-family:Orbitron,sans-serif;font-size:clamp(1.2rem,4.5vw,1.85rem);font-weight:700;color:gold;text-shadow:0 0 12px rgba(255,215,0,.55),0 0 22px rgba(1,255,39,.4)}.pacman-end-score{margin:0;font-family:Fira Code,monospace;font-size:clamp(.9rem,3vw,1.05rem);color:#01ff27}.pacman-replay-button{background-color:#01ff27;border:2px solid #01ff27;color:#000;padding:12px 28px;font-family:Fira Code,monospace;font-size:15px;font-weight:600;cursor:pointer;border-radius:4px;transition:background-color .2s,color .2s,box-shadow .2s,transform .15s;-webkit-tap-highlight-color:rgba(0,0,0,.2);min-height:48px;min-width:140px;box-shadow:0 0 16px #01ff2773}.pacman-replay-button:hover{background-color:#33ff5c;border-color:#33ff5c;box-shadow:0 0 22px #01ff278c}.pacman-replay-button:active{transform:scale(.97)}.pacman-end-hint{margin:0;font-family:Fira Code,monospace;font-size:12px;color:#01ff27;opacity:.8}.game-controls{margin-bottom:8px;flex-shrink:0;width:100%;display:flex;justify-content:flex-start;align-items:center}.close-button{background-color:transparent;border:2px solid #01ff27;color:#01ff27;padding:10px 20px;font-family:Fira Code,monospace;font-size:14px;cursor:pointer;transition:all .3s;border-radius:4px;-webkit-tap-highlight-color:rgba(1,255,39,.3);tap-highlight-color:rgba(1,255,39,.3);min-height:44px;min-width:44px}.close-button:hover{background-color:#01ff27;color:#000;box-shadow:0 0 10px #01ff27}.close-button:active{transform:scale(.95)}.game-instructions{flex-shrink:0;margin-top:6px;text-align:left;font-family:Fira Code,monospace;color:#01ff27;font-size:14px;padding:0 10px;max-width:100%;overflow-wrap:anywhere;word-wrap:break-word;box-sizing:border-box}.game-instructions p{margin:5px 0}@media (min-width: 1024px){.pacman-game-wrapper{padding:15px}.close-button{padding:12px 24px;font-size:15px}.game-instructions{font-size:15px;margin-top:15px}}@media (min-width: 768px) and (max-width: 1023px){.pacman-game-wrapper{padding:12px}.close-button{padding:11px 22px;font-size:14px}.game-instructions{font-size:14px;margin-top:8px}}@media (min-width: 481px) and (max-width: 767px){.pacman-game-wrapper{padding:8px}.close-button{padding:10px 18px;font-size:13px;min-height:40px}.game-instructions{font-size:12px;margin-top:6px}.game-instructions p{margin:4px 0}}@media (min-width: 390px) and (max-width: 480px){.pacman-game-wrapper{padding:6px}.game-controls{margin-bottom:8px}.close-button{padding:8px 16px;font-size:12px;min-height:44px;min-width:100px}.game-instructions{font-size:11px;margin-top:6px;padding:0 8px}.game-instructions p{margin:3px 0}}@media (max-width: 389px){.pacman-game-wrapper{padding:5px}.game-controls{margin-bottom:6px}.close-button{padding:7px 14px;font-size:11px;min-height:44px;min-width:90px}.game-instructions{font-size:10px;margin-top:4px;padding:0 6px}.game-instructions p{margin:2px 0;line-height:1.3}}@media (max-height: 500px) and (orientation: landscape){.pacman-game-wrapper{padding:4px;flex-direction:row;flex-wrap:wrap;gap:5px}.game-controls{order:1;width:auto;margin-bottom:0;margin-right:10px}.pacman-playfield{order:2;flex:1 1 auto;min-width:0;min-height:0;max-height:calc(100dvh - 52px)}.game-instructions{order:3;width:100%;margin-top:4px;font-size:10px}.close-button{padding:6px 12px;font-size:11px;min-height:36px}}.game-instructions-joystick{display:none}.mobile-joystick{display:none;position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:1000;width:112px;height:112px;border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;-webkit-tap-highlight-color:transparent}.mobile-joystick:active{cursor:grabbing}.mobile-joystick--hidden{opacity:0;visibility:hidden;pointer-events:none}.joystick-base-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#000000c7;border:3px solid #01ff27;box-shadow:0 0 16px #01ff2740,inset 0 0 20px #01ff270f;pointer-events:none}.joystick-knob{position:absolute;left:50%;top:50%;width:44px;height:44px;margin-left:-22px;margin-top:-22px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff176,#01ff27 55%,#004d14);border:2px solid #ffeb3b;box-shadow:0 2px 8px #00000073,0 0 12px #01ff2759;pointer-events:none;will-change:transform}@media (max-width: 1024px){.mobile-joystick{display:block}.game-instructions-keyboard{display:none}.game-instructions-joystick{display:block}.game-instructions{margin-bottom:130px}}@media (hover: none) and (pointer: coarse){.close-button{-webkit-tap-highlight-color:rgba(1,255,39,.3);tap-highlight-color:rgba(1,255,39,.3)}.close-button:active{background-color:#01ff27;color:#000}}@media (max-width: 480px){.mobile-joystick{bottom:16px;width:100px;height:100px}.joystick-knob{width:40px;height:40px;margin-left:-20px;margin-top:-20px}.game-instructions{margin-bottom:125px}}@media (max-width: 389px){.mobile-joystick{bottom:12px;width:92px;height:92px}.joystick-knob{width:36px;height:36px;margin-left:-18px;margin-top:-18px}.game-instructions{margin-bottom:118px}}@media (max-height: 500px) and (orientation: landscape){.mobile-joystick{bottom:8px;left:auto;right:12px;transform:none;width:88px;height:88px}.joystick-knob{width:34px;height:34px;margin-left:-17px;margin-top:-17px}.game-instructions{margin-bottom:0}}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden;max-width:100%}#root{min-width:0;max-width:100%;overflow-x:hidden}img{max-width:100%;height:auto}body{font-family:Fira Code,monospace;background:#fff;background-image:radial-gradient(circle at 20% 50%,rgba(120,80,200,.08) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(80,120,200,.08) 0%,transparent 50%),radial-gradient(circle at 40% 20%,rgba(200,100,150,.06) 0%,transparent 50%);color:#1a1a1a;min-height:100vh;min-height:100dvh;overflow-x:hidden;overflow-y:auto;position:relative;width:100%;max-width:100%;box-sizing:border-box;-webkit-overflow-scrolling:touch}.app-container{display:flex;justify-content:center;align-items:stretch;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%;max-width:100%;min-width:0;position:relative;z-index:1;overflow-x:hidden;box-sizing:border-box}.main-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;z-index:1;width:100%;max-width:100%;min-width:0;margin-left:auto;margin-right:auto;padding:0 15px 0 8px;box-sizing:border-box;overflow-x:hidden}.console-text{white-space:pre-wrap;font-size:18px;line-height:1.5;text-align:left;margin:0;width:100%;min-width:0;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%;box-sizing:border-box}.console-line{word-wrap:break-word;overflow-wrap:anywhere;max-width:100%;min-width:0;box-sizing:border-box;margin-bottom:1em}.console-line a{word-break:break-word;overflow-wrap:anywhere;display:inline;font-weight:700}.console-cursor{display:inline-block;animation:blink-caret .6s step-end infinite}@keyframes blink-caret{0%,to{opacity:0}50%{opacity:1}}h1{font-family:Orbitron,sans-serif;font-size:32px;margin:20px 0;align-self:stretch;text-align:center;max-width:100%;overflow-wrap:break-word;color:#002fa7}.profile-image{align-self:center;width:120px;max-width:100%;height:auto;aspect-ratio:1;margin-bottom:10px;cursor:pointer;transition:transform .2s;border-radius:50%;object-fit:cover;border:2px solid #002FA7;box-shadow:0 0 10px #002fa74d}.profile-image:hover{transform:scale(1.05);box-shadow:0 0 15px #002fa780}.hint{font-family:Fira Code,monospace;color:#002fa7;font-size:14px;align-self:stretch;text-align:center;max-width:100%;overflow-wrap:break-word;margin-bottom:20px}a{color:#002fa7;text-decoration:none;transition:color .3s,text-shadow .3s;word-break:break-word;overflow-wrap:anywhere;-webkit-tap-highlight-color:rgba(0,47,167,.3);tap-highlight-color:rgba(0,47,167,.3)}a:hover{text-shadow:0 0 5px #002FA7}@media (hover: none) and (pointer: coarse){a{min-height:44px;display:inline-block;padding:2px 4px;margin:-2px -4px}}.game-container{display:none;position:fixed;top:0;left:0;width:100%;max-width:100%;height:100%;height:100dvh;background-color:#111;overflow:hidden;overflow-x:hidden;box-sizing:border-box;z-index:1000}.game-container.active{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}@media (min-width: 1024px){.main-content{padding:20px 28px 20px 12px;max-width:min(42rem,90vw)}h1{font-size:clamp(28px,3vw,36px);margin:24px 0}.console-text{font-size:clamp(14px,1.55vw,17px)}.console-line{white-space:normal;word-wrap:break-word;overflow-wrap:anywhere}.profile-image{width:clamp(120px,12vw,140px);height:clamp(120px,12vw,140px)}}@media (min-width: 1280px){.main-content{max-width:min(44rem,88vw)}.console-text{font-size:clamp(15px,1.3vw,19px)}}@media (min-width: 1920px){.main-content{max-width:min(48rem,82vw)}.console-text{font-size:clamp(16px,1.05vw,21px)}.profile-image{width:clamp(120px,12vw,140px);height:clamp(120px,12vw,140px)}}@media (min-width: 768px) and (max-width: 1023px){.main-content{padding:20px 20px 20px 12px;max-width:700px}h1{font-size:clamp(26px,3.5vw,32px);margin:22px 0}.console-text{font-size:clamp(15px,2vw,18px);line-height:1.6}.profile-image{width:clamp(110px,11vw,130px);height:clamp(110px,11vw,130px);margin-bottom:15px}.hint{font-size:clamp(12px,1.5vw,14px);margin-bottom:18px}}@media (min-width: 481px) and (max-width: 767px){.main-content{padding:15px 15px 15px 8px;max-width:100%}h1{font-size:clamp(22px,4vw,28px);margin:18px 0}.console-text{font-size:clamp(14px,2.5vw,16px);line-height:1.5}.profile-image{width:clamp(100px,15vw,120px);height:clamp(100px,15vw,120px);margin-bottom:12px}.hint{font-size:clamp(11px,2vw,13px);margin-bottom:15px}}@media (min-width: 390px) and (max-width: 480px){.main-content{padding:12px 12px 12px 6px;max-width:100%}h1{font-size:clamp(20px,5.5vw,24px);margin:16px 0}.console-text{font-size:clamp(13px,3.5vw,15px);line-height:1.4}.profile-image{width:clamp(90px,20vw,110px);height:clamp(90px,20vw,110px);margin-bottom:10px}.hint{font-size:clamp(10px,2.8vw,12px);margin-bottom:12px}}@media (max-width: 389px){.main-content{padding:10px 10px 10px 5px;max-width:100%}h1{font-size:clamp(18px,5vw,22px);margin:14px 0}.console-text{font-size:clamp(12px,3.5vw,14px);line-height:1.3}.profile-image{width:clamp(80px,22vw,100px);height:clamp(80px,22vw,100px);margin-bottom:8px}.hint{font-size:clamp(9px,2.5vw,11px);margin-bottom:10px}}@media (max-height: 500px) and (orientation: landscape){.main-content{padding:8px 8px 8px 4px}h1{font-size:clamp(18px,3vh,24px);margin:10px 0}.console-text{font-size:clamp(12px,2.5vh,14px);line-height:1.3}.profile-image{width:clamp(70px,12vh,90px);height:clamp(70px,12vh,90px);margin-bottom:5px}.hint{font-size:clamp(9px,2vh,11px);margin-bottom:8px}}@media (hover: none) and (pointer: coarse){.profile-image{transition:transform .2s}.profile-image:active{transform:scale(.95)}a{-webkit-tap-highlight-color:rgba(0,47,167,.3);tap-highlight-color:rgba(0,47,167,.3)}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.profile-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}
