:root{--pg-wood-1: #caa06a;--pg-wood-2: #a87c48;--pg-frame: rgba(70, 48, 22, .4);--pg-hole-1: #7c5a30;--pg-hole-2: #5c4020;--pg-peg-1: #f0f4f8;--pg-peg-2: #7aa7d8;--pg-peg-3: #3f6fae;--pg-glow: rgba(102, 227, 154, .9)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--pg-wood-1: #2a2018;--pg-wood-2: #17110c;--pg-frame: rgba(56, 214, 255, .14);--pg-hole-1: #0c0a07;--pg-hole-2: #05040a;--pg-peg-1: #eaf6ff;--pg-peg-2: #4fc9ff;--pg-peg-3: #1478c0;--pg-glow: rgba(55, 227, 255, .95)}}:root[data-theme=dark]{--pg-wood-1: #2a2018;--pg-wood-2: #17110c;--pg-frame: rgba(56, 214, 255, .14);--pg-hole-1: #0c0a07;--pg-hole-2: #05040a;--pg-peg-1: #eaf6ff;--pg-peg-2: #4fc9ff;--pg-peg-3: #1478c0;--pg-glow: rgba(55, 227, 255, .95)}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;touch-action:manipulation;overflow-x:hidden}#app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.game{width:min(94vw,420px);display:flex;flex-direction:column;gap:12px}.crumb{font-size:14px}.crumb a{color:var(--accent);text-decoration:none;font-weight:700}.crumb a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.title{font-size:clamp(22px,6vw,38px);font-weight:800;line-height:1;letter-spacing:-1px}.scores{display:flex;gap:8px}.score-box{background:var(--board-bg);color:var(--accent-text);border-radius:6px;padding:5px 10px;text-align:center;min-width:56px}.score-box .label{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.85;font-weight:700}.score-box .value{font-size:20px;font-weight:800;line-height:1.1}.bar{display:flex;gap:10px;justify-content:flex-end}.board{position:relative;width:100%;margin:0 auto}.grid{display:grid;gap:2%;padding:4%;border-radius:16px;background:radial-gradient(130% 100% at 50% 12%,var(--pg-wood-1),var(--pg-wood-2) 88%),var(--pg-wood-2);border:1px solid var(--pg-frame);box-shadow:0 18px 44px -18px #00000080,inset 0 1px #ffffff14}.cell{position:relative;aspect-ratio:1 / 1;border:none;background:transparent;padding:0;border-radius:50%;-webkit-tap-highlight-color:transparent}.cell.void{visibility:hidden}.cell.hole{background:radial-gradient(circle at 50% 38%,var(--pg-hole-1),var(--pg-hole-2));box-shadow:inset 0 3px 6px #0009,inset 0 -1px 2px #ffffff0f}.cell.peg{cursor:pointer}.cell.peg:after{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle at 34% 28%,var(--pg-peg-1),var(--pg-peg-2) 52%,var(--pg-peg-3) 100%);box-shadow:0 3px 6px #0006,inset 0 -3px 6px #00000047,inset 0 2px 3px #ffffff80;transition:transform .12s ease}.cell.peg:hover:after{transform:scale(1.04)}.cell.peg.sel:after{transform:scale(1.06) translateY(-2px);box-shadow:0 0 0 3px var(--accent),0 6px 12px #00000073,inset 0 2px 3px #ffffff80}.cell.hole.target{cursor:pointer;box-shadow:inset 0 3px 6px #0009,0 0 0 3px var(--pg-glow),0 0 14px 2px var(--pg-glow);animation:pg-pulse 1s ease-in-out infinite alternate}@keyframes pg-pulse{0%{filter:brightness(1)}to{filter:brightness(1.35)}}.how{font-size:13px;opacity:.85}.how b{font-weight:700}.overlay{position:absolute;inset:0;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;background:var(--overlay-bg);z-index:10;opacity:0;pointer-events:none;transition:opacity .22s ease}.overlay.show{opacity:1;pointer-events:auto}.overlay .msg{font-size:clamp(26px,8vw,42px);font-weight:800;color:var(--accent);text-shadow:0 0 22px rgba(0,0,0,.4)}.overlay.show .msg{animation:pg-pop .56s cubic-bezier(.2,.9,.25,1)}.overlay .sub{font-size:15px;font-weight:700;opacity:.92}@keyframes pg-pop{0%{transform:scale(.6);opacity:0}45%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.btn{background:var(--accent);color:var(--accent-text);border:none;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .12s ease}.btn:hover{filter:brightness(1.05)}.btn:active{filter:brightness(.95)}.btn.ghost{background:var(--surface);color:var(--text);border:2px solid var(--line)}@media(prefers-reduced-motion:reduce){.cell.hole.target,.overlay.show .msg{animation:none}}
