
:root{color-scheme:light;--paper:#faf7ef;--ink:#293e36;--muted:#6e7b70;--line:#dedfd2;--green:#466d54;font-family:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 25%,#fffdf7 0,transparent 70%);min-height:100svh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #558dba;outline-offset:4px}a{color:inherit}button{border:1px solid var(--line);background:#fffdf8;border-radius:14px}button:active:not(:disabled){transform:translateY(2px)}.app{max-width:520px;margin:auto;padding:max(16px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:11px;font-weight:900;letter-spacing:1.6px;line-height:1.3}.brand img{object-fit:contain}.brand-bottom{display:block;font-size:23px;letter-spacing:1px}.brand-dot{color:#dc9b73}.icon-button{width:44px;height:44px;font-size:23px;background:transparent}.stage-line{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 2px 10px}.stage-pill{display:flex;align-items:center;gap:9px;border:0;background:#e9eee1;padding:10px 12px;font-size:10px;letter-spacing:1px;border-radius:9px;min-height:44px}.stage-pill strong{font-size:13px}.counter{display:flex;align-items:baseline;gap:7px;font-size:11px}.counter strong{font-size:26px;font-variant-numeric:tabular-nums}.best{font-size:10px;color:var(--muted)}.board-wrap{position:relative;width:100%;aspect-ratio:1}canvas{display:block;width:100%;height:100%;touch-action:pan-y}#loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--paper)}#loading[hidden]{display:none}.hint{margin:13px 4px 10px;min-height:44px;line-height:1.7;font-size:12px;text-align:center;color:#54665b;text-wrap:pretty}.controls{display:flex;justify-content:space-evenly;align-items:center;gap:12px}.dpad{display:grid;grid-template-columns:repeat(3,51px);grid-template-rows:repeat(3,47px);gap:5px;flex:none}.dpad button{font-size:26px;border:1px solid #d2d7c9;background:#edf0e5;box-shadow:0 3px 0 #d4dacb;border-radius:12px;touch-action:none;user-select:none;-webkit-user-select:none}.dpad button.pressed{background:#cfddc2;transform:translateY(2px);box-shadow:none}.dpad [data-dir=up]{grid-area:1/2}.dpad [data-dir=left]{grid-area:2/1}.dpad [data-dir=right]{grid-area:2/3}.dpad [data-dir=down]{grid-area:3/2}.dpad-center{grid-area:2/2;display:grid;place-items:center;color:#9aab8d;font-size:23px}.action{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;min-width:62px;min-height:64px;font-size:10px;white-space:nowrap}.action>span:first-child{font-size:29px}.keyboard{text-align:center;color:var(--muted);font-size:10px;margin:16px 0}footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:17px;margin-top:16px;border-top:1px solid var(--line)}.edition{font-size:10px;letter-spacing:1px;color:var(--muted)}.steam-link{font-size:12px;font-weight:bold;text-decoration:none;min-height:36px;display:flex;align-items:center}.steam-link:hover{text-decoration:underline}dialog{border:1px solid var(--line);border-radius:23px;padding:25px;width:min(90vw,390px);max-height:85svh;overflow:auto;color:var(--ink);background:#fffdf6;box-shadow:0 25px 90px #233a3433}dialog::backdrop{background:#273d3655;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}h2{font-size:21px;margin:0}.close{width:44px;height:44px;font-size:26px;border:0}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}input[type=range]{width:145px;accent-color:var(--green)}input[type=checkbox]{width:23px;height:23px;accent-color:var(--green)}select{max-width:155px;padding:9px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}.setting-note{font-size:11px;line-height:1.7;color:var(--muted)}.dialog-links{display:flex;gap:20px;font-size:12px;padding-top:15px}#stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}#stage-grid button{min-height:60px;font-size:17px}#stage-grid button.current{border:2px solid var(--green)}#stage-grid small{display:block;font-size:10px;color:var(--green)}#result-dialog{text-align:center}.result-icon{margin:4px auto 14px;width:62px;height:62px;border-radius:50%;background:#e1edce;color:#4c7954;font-size:35px;display:grid;place-items:center}.eyebrow{letter-spacing:3px;font-size:10px;color:var(--green)}#result-copy{font-size:13px;line-height:1.9;white-space:pre-line;margin:18px 0 24px}.primary{display:block;width:100%;padding:16px 10px;border:0;border-radius:12px;background:var(--ink);color:white;font-size:13px;text-decoration:none;font-weight:bold}.text-button{border:0;background:transparent;font-size:12px;padding:17px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}@media(hover:none){.keyboard{display:none}}@media(max-width:360px){.app{padding-left:10px;padding-right:10px}.dpad{grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,44px)}.controls{gap:4px}.best{display:none}}@media(max-height:760px) and (orientation:portrait){header{margin-bottom:12px}.app{max-width:430px}.board-wrap{max-width:350px;margin:auto}.hint{margin:8px 0;min-height:38px}footer{margin-top:10px;padding-top:10px}}@media(orientation:landscape) and (max-height:550px){.app{max-width:900px}.play{display:grid;grid-template-columns:minmax(240px,1fr) 250px;column-gap:20px}.stage-line{grid-column:1/-1}.board-wrap{grid-column:1;grid-row:2/5;max-height:70svh;aspect-ratio:1;width:auto;justify-self:center}.hint{grid-column:2}.controls{grid-column:2;gap:0}.keyboard{grid-column:2}header{margin-bottom:8px}footer{flex-direction:row;justify-content:center}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
/* The four-board junction carries the current count; the header shows par. */
.center-moves{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:44px;height:44px;padding:0 3px;border-radius:50%;background:var(--paper);font-size:27px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;pointer-events:none}
.center-moves.over-par{color:#c2443e}
#par-counter{gap:6px;color:#8a733a;min-height:44px}#par-counter>span{font-size:22px}#par-counter strong{font-size:23px}
.controls{margin-top:22px}.action{justify-content:center;min-width:62px;font-size:0}.action>span:first-child{font-size:34px}
footer{padding-top:10px;margin-top:18px}.steam-link{font-size:13px;letter-spacing:1px}
@media(max-height:760px) and (orientation:portrait){.controls{margin-top:14px}}
@media(orientation:landscape) and (max-height:550px){.play{grid-template-rows:auto 1fr}.controls{grid-column:2;grid-row:2;align-self:center;margin-top:0}.board-wrap{grid-row:2}}
#result-count{font-size:38px;font-weight:800;font-variant-numeric:tabular-nums;margin:12px 0 24px;line-height:1.2}
#result-dialog[data-outcome=failed] .result-icon{margin-bottom:24px}
