@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');
:root{--bg:#0b0c12;--surface:#12141e;--line:#2a2d3b;--text:#f6f3e9;--muted:#a2a4b6;--yellow:#ffe65b;--blue:#6376ff;--mono:'Space Mono',monospace;--font:'Space Grotesk',sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px var(--font);background-image:radial-gradient(ellipse at 45% 35%,#19234838,transparent 60%)}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--yellow);outline-offset:5px}.page{max-width:1336px;margin:auto;padding:0 48px}header{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--text);font-size:14px;font-weight:700;letter-spacing:.5px}.brand-sub{display:block;font:10px var(--mono);letter-spacing:1px;color:var(--muted);margin-top:3px}.pac-logo,.pac-big{display:block;width:28px;height:28px;background:var(--yellow);border-radius:50%;clip-path:polygon(100% 0,100% 22%,50% 50%,100% 78%,100% 100%,0 100%,0 0)}.header-center{font:11px var(--mono);letter-spacing:1px;color:var(--muted);display:flex;align-items:center;gap:9px}.header-center i,.live-badge i{height:5px;width:5px;background:var(--yellow);border-radius:50%}nav{display:flex;align-items:center;gap:20px}.text-button{background:none;border:0;color:#dedee9;font-size:14px;padding:10px}.text-button span{margin-left:7px;color:var(--yellow)}.square-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:7px;background:none;color:#d0d0de;font-size:19px}.square-button:hover{background:#292b3e}.square-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.intro{display:flex;justify-content:space-between;align-items:center;padding:20px 0 22px}.eyebrow{font:11px var(--mono);letter-spacing:1.4px;color:var(--muted);display:flex;align-items:center;gap:12px}.intro-line{width:28px;height:1px;background:#5d6076}.intro h1{font-size:54px;letter-spacing:-3px;line-height:1;margin:8px 0 6px;font-weight:700}.title-spark{font-size:42px;margin-left:18px;color:var(--yellow);vertical-align:4px}.edition{font:12px var(--mono);letter-spacing:3px;color:var(--yellow)}.edition>span{font:10px var(--mono);letter-spacing:.7px;color:#9598ae;margin-left:22px}.intro-note{display:flex;gap:15px;align-items:center}.intro-note p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.tiny-ghost{display:none}.arcade{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:26px;align-items:start}.machine{border:1px solid #383b51;border-radius:14px;overflow:hidden;background:#0b0d16;box-shadow:0 22px 60px #0005}.scoreboard{height:77px;padding:0 25px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);background:#151722}.scoreboard>div{display:flex;flex-direction:column;gap:2px}.label{font:11px var(--mono);letter-spacing:1px;color:var(--muted)}.scoreboard strong{font:700 26px var(--mono);letter-spacing:1px;color:var(--yellow)}.best-score{margin-left:auto;margin-right:8px}.best-score strong{color:#eeebeb}.best-score .label>span{color:var(--yellow)}.scoreboard .square-button{margin-left:-15px}.board-wrap{position:relative;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at center,#11192b,#080b13 75%);overflow:hidden}.board-wrap:before,.board-wrap:after{content:'';position:absolute;top:25px;bottom:25px;width:1px;background:linear-gradient(transparent,#323859,transparent);left:20px}.board-wrap:after{left:auto;right:20px}.board-edge{display:flex;width:100%;justify-content:space-between;padding:10px 25px;font:10px var(--mono);letter-spacing:1.2px;color:#767c9d;line-height:1}.top-edge>span:first-child{color:var(--yellow)}.top-edge>span:last-child{visibility:hidden}.bottom-edge{padding:8px 25px;color:#737a97;font-size:9px}.bottom-edge>span:first-child{color:#9198b4}canvas{display:block;width:auto;height:min(600px,calc(100dvh - 335px));max-width:calc(100% - 55px);min-height:310px;aspect-ratio:19/22;touch-action:none;outline:none}.overlay{position:absolute;inset:23px 0 21px;display:grid;place-items:center;background:#080c1738;transition:opacity .2s}.overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.overlay-card{padding:23px 27px 21px;text-align:center;background:#0c101cf0;border:1px solid #4d5372;border-radius:12px;box-shadow:0 0 70px #000b;width:278px}.overlay-card>div{font:10px var(--mono);letter-spacing:1px;color:#b7bfdf}h2{font-size:48px;letter-spacing:-2px;line-height:1.05;margin:8px 0;font-weight:700}h2>span{color:var(--yellow)}.overlay-card p{font-size:14px;line-height:1.5;color:#c3c6da;margin:8px 0 17px}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:14px 18px;background:var(--yellow);border:1px solid #ffe65b;border-radius:7px;color:#12141a;font-size:15px;font-weight:700;box-shadow:0 3px 0 #a69a3f50;transition:background .15s,transform .15s}.primary-button:hover{background:#fff08a;transform:translateY(-1px)}.primary-button>span{font-size:23px;line-height:20px}.overlay-card small{display:block;margin-top:14px;font:10px var(--mono);letter-spacing:1px;color:#989fbf}.machine-bottom{display:flex;align-items:center;justify-content:space-between;padding:15px 23px;border-top:1px solid var(--line);background:#151722;gap:12px;min-height:52px}.lives-wrap{display:flex;align-items:center;gap:10px}.lives{display:flex;gap:7px}.life{width:17px;height:17px;background:var(--yellow);border-radius:50%;clip-path:polygon(100% 0,100% 22%,50% 50%,100% 78%,100% 100%,0 100%,0 0)}.life.lost{background:#494954}.power-status{display:flex;align-items:center;gap:7px;font:10px var(--mono);letter-spacing:.6px;color:#aeb4d2}.power-status i{width:5px;height:5px;border-radius:50%;background:#768bb6}.power-status.active{color:var(--yellow)}.power-status.active i{background:var(--yellow);box-shadow:0 0 8px var(--yellow)}.round-small{font:11px var(--mono);color:#949bb8}.round-small b{margin-left:6px;color:#e5e6f0}aside{display:flex;flex-direction:column;gap:20px}.round-card,.ghost-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:23px}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.live-badge{display:flex;align-items:center;gap:5px;color:#c7cbbb;font:9px var(--mono);letter-spacing:.3px}.round-heading{display:flex;align-items:center;justify-content:space-between;margin-top:23px}.round-heading>div:first-child{display:flex;flex-direction:column;gap:4px}.round-heading strong{font:700 48px/1 var(--mono);letter-spacing:-3px}.round-art{display:flex;align-items:center;gap:11px}.pac-big{width:45px;height:45px}.round-art i{width:5px;height:5px;border-radius:50%;background:#ffe9a8}.round-art i:last-child{opacity:.4}.round-card h3{font-size:25px;letter-spacing:-.7px;margin:21px 0 8px}.round-card>p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 23px}.progress-heading{display:flex;justify-content:space-between;font:10px var(--mono);color:#aeb3cb}.progress-heading b{color:#e9eaf2;font-weight:400}.progress-track{height:4px;background:#333649;border-radius:3px;margin-top:10px;overflow:hidden}.progress-track>div{height:100%;background:var(--yellow);width:0;transition:width .2s}.dots-left{font:10px var(--mono);letter-spacing:1px;color:#818aa9;margin-top:9px;margin-bottom:21px}.dots-left span{color:#bdc5e0}.no-coins{font:9px var(--mono);text-align:center;letter-spacing:1px;color:#969bb4;margin-top:12px}.count{font:11px var(--mono);color:#717895}.ghost-card{padding:21px 23px}.ghost-card>.panel-top{margin-bottom:15px}.ghost-row{display:flex;gap:12px;align-items:center;padding:11px 0}.ghost-row+.ghost-row{border-top:1px solid #252937}.ghost-row>div{display:flex;flex-direction:column;gap:4px}.ghost-row b{font-size:14px;font-weight:500}.ghost-row>div>span{font-size:11px;color:var(--muted)}.ghost-type{font:8px var(--mono);letter-spacing:.5px;color:#7a84a5;margin-left:auto}.ghost-icon{width:24px;height:25px;border-radius:12px 12px 0 0;background:var(--ghost);clip-path:polygon(0 0,100% 0,100% 100%,75% 83%,50% 100%,25% 83%,0 100%);display:flex;justify-content:center;align-items:center;gap:3px;padding-bottom:3px;flex-shrink:0}.ghost-icon i{background:white;width:7px;height:9px;border-radius:50%;position:relative}.ghost-icon i:after{content:'';position:absolute;background:#27387f;width:3px;height:4px;left:3px;top:3px;border-radius:2px}.red{--ghost:#ff6574}.pink{--ghost:#f09bd3}.cyan{--ghost:#60dfec}.orange{--ghost:#ffb368}.power-tip{display:flex;align-items:center;gap:15px;padding:0 6px}.power-orb{height:14px;width:14px;background:var(--yellow);border-radius:50%;box-shadow:0 0 17px #ffe65b66;flex-shrink:0}.power-tip b{font-size:13px;font-weight:500}.power-tip p{font-size:11px;color:var(--muted);line-height:1.8;margin:5px 0 0}.controls{display:flex;align-items:center;gap:30px;padding:20px 0;color:#aaaec6}.controls>div{display:flex;align-items:center;gap:10px;font-size:12px}.keys{display:flex;gap:4px}kbd{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 4px;border:1px solid #41465c;border-bottom-width:2px;border-radius:5px;font:12px var(--mono);color:#d1d7ee;background:#1b2030}.controls b{font:12px var(--mono);color:#d1d7ee}.control-hint{margin-left:auto;font:9px var(--mono);letter-spacing:.8px;color:#8188a5}.touch-pad{display:none}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:21px 0 25px;color:#8388a2;font:9px var(--mono);letter-spacing:.5px}footer>span:first-child{display:flex;align-items:center;gap:8px}footer i{width:4px;height:4px;background:var(--yellow)}footer p{font:11px var(--font);letter-spacing:0;margin:0}footer b{color:var(--yellow);margin-left:8px;font-size:18px}.toast{position:absolute;top:31px;left:50%;transform:translateX(-50%);background:#1e243dee;border:1px solid #606fa6;padding:10px 16px;border-radius:6px;font:12px var(--mono);color:#fff2bc;white-space:nowrap;opacity:0;pointer-events:none}.toast.visible{opacity:1}dialog{width:min(520px,calc(100% - 32px));max-height:90dvh;border:1px solid #444c6c;border-radius:16px;background:#151a2a;color:var(--text);padding:30px;box-shadow:0 20px 100px #0009}dialog::backdrop{background:#060813c9;backdrop-filter:blur(6px)}.close-button{position:absolute;right:16px;top:12px;background:none;border:0;color:#e2e5f0;font-size:29px;width:36px;height:36px}.manual-row{border-top:1px solid #353d56;padding:14px 0}.manual-row b{font:12px var(--mono);color:#ffe65b}.manual-row p{font-size:14px;line-height:1.75;color:#c3c8de;margin:8px 0 0}dialog h2{margin:17px 0 25px}.machine:fullscreen{display:flex;flex-direction:column;align-items:center;height:100dvh;width:100vw;border:0;border-radius:0;background:#080b13}.machine:fullscreen .scoreboard,.machine:fullscreen .machine-bottom{width:100%;flex-shrink:0}.machine:fullscreen .board-wrap{flex:1;min-height:0;width:100%}.machine:fullscreen canvas{min-height:0;height:calc(100dvh - 177px)}
@media(max-width:1080px){.page{padding:0 28px}.header-center{display:none}.arcade{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.scoreboard{gap:20px;padding:0 18px}.scoreboard strong{font-size:22px}.scoreboard .label{font-size:10px}.scoreboard .square-button{width:32px;height:32px;margin-left:-10px}.round-card,.ghost-card{padding:19px}.power-status{font-size:9px}.control-hint{display:none}footer>span:last-child{display:none}.ghost-type{display:none}.round-art{gap:8px}.round-art i:last-child{display:none}}
@media(max-width:760px){.page{padding:0 16px}header{height:64px}.brand{font-size:12px}.brand-sub{font-size:8px}.brand .pac-logo{width:24px;height:24px}nav{gap:9px}.text-button{font-size:12px;padding:7px}.text-button span{display:none}.square-button{width:35px;height:35px}.intro{padding:17px 0 20px}.intro h1{font-size:43px;margin:8px 0;letter-spacing:-2px}.title-spark{font-size:30px;margin-left:15px;vertical-align:3px}.eyebrow{font-size:9px;gap:8px;letter-spacing:.6px}.intro-line{width:20px}.edition{font-size:10px;letter-spacing:3px}.edition>span,.intro-note{display:none}.arcade{display:block}.scoreboard{height:66px;padding:0 15px;gap:18px}.scoreboard .square-button{margin-left:-8px}.scoreboard strong{font-size:21px}.best-score{margin-right:0}.scoreboard .label{font-size:9px}.board-edge{padding:9px 15px;font-size:8px}.bottom-edge{font-size:7px;padding:9px 15px}canvas{height:auto;width:min(100% - 28px,calc((100dvh - 315px)*19/22));min-height:0;max-width:100%;max-height:600px}.board-wrap:before,.board-wrap:after{display:none}.machine-bottom{padding:13px 15px;min-height:46px}.label{font-size:10px}.power-status{font-size:8px}.round-small{font-size:9px}.life{width:14px;height:14px}.lives{gap:5px}.lives-wrap{gap:6px}aside{display:none}.overlay-card{width:min(270px,calc(100% - 45px));padding:20px}.overlay-card h2{font-size:43px}.controls{padding:16px 0;gap:20px;justify-content:center}.controls>div{font-size:10px;gap:7px}.controls b{font-size:10px}.controls>div:nth-child(2){display:none}.touch-pad{display:flex;flex-direction:column;align-items:center;margin:16px 0 22px;gap:4px}.touch-pad>div{display:flex;align-items:center;gap:5px}.touch-pad button{width:48px;height:44px;border:1px solid #535e7e;border-bottom-width:3px;background:#1b2237;color:#e9eefa;border-radius:9px;font:22px var(--font);touch-action:manipulation}.touch-pad button:active{background:#46538c}.pad-center{width:46px;height:44px;display:block;border:1px solid #293653;border-radius:50%;background:#121b30}.touch-pad p{font:9px var(--mono);letter-spacing:.7px;color:#9ba8cd;margin:10px 0 0}footer{font-size:8px;justify-content:center;padding:17px 0}footer p{display:none}.power-status.active{font-size:8px}.toast{top:28px;font-size:10px;padding:8px 12px}}
@media(pointer:coarse){.touch-pad{display:flex;flex-direction:column;align-items:center;margin:16px 0 22px;gap:4px}.controls{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.primary-button:hover{transform:none}}

/* Keep game instructions and primary labels legible. */
.label,.progress-heading,.dots-left,.round-small{font-size:12px}.round-card>p,.ghost-row>div>span,.power-tip p{font-size:14px}.ghost-row{gap:10px}.ghost-type{display:none}.power-status{font-size:12px}.scoreboard .label{font-size:12px}.no-coins,.ghost-card .count,.header-center{font-size:12px}.power-tip b{font-size:14px}@media(max-width:1080px){.scoreboard .label{font-size:11px}.power-status{font-size:10px}}@media(max-width:760px){#fullscreen-button{display:none}.scoreboard .label{font-size:12px}.label,.round-small{font-size:12px}.power-status{font-size:10px}.power-status.active{font-size:10px}.controls>div{font-size:12px}.controls b{font-size:12px}.touch-pad p{font-size:12px}}
