:root{color:#414936;font-synthesis:none;--ink:#414936;--olive:#5a6e52;--line:#dbd2bc;background:#f5efdf;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-weight:500}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,canvas:focus-visible{outline-offset:3px;outline:3px solid #448080}button,canvas{-webkit-user-select:none;user-select:none}[hidden]{display:none!important}.app{max-width:1050px;margin:auto;padding:24px 30px 16px}.heading{justify-content:space-between;align-items:center;margin-bottom:21px;display:flex}.eyebrow{letter-spacing:2px;margin:0 0 9px;font-size:10px;font-weight:800}.eyebrow span{color:#96846a;margin-left:12px}h1{letter-spacing:1px;margin:0;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:32px;line-height:1.35}h1 span{white-space:nowrap}.subtitle{letter-spacing:1px;color:#817a61;margin:8px 0 0;font-size:12px}.top-actions{gap:8px;display:flex}.quiet{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);background:#fff8e8;border-radius:50%;font-size:18px}.game-layout{grid-template-columns:minmax(0,1fr) 262px;align-items:start;gap:27px;display:grid}.hud{align-items:center;gap:20px;min-height:52px;margin-bottom:10px;display:flex}.delivery-stat>span,.best-stat>span{color:#867a63;letter-spacing:.3px;font-size:10px;display:block}.delivery-stat strong{font-weight:400;line-height:1.3}.delivery-stat b{font:30px Georgia,serif}.delivery-stat small{color:#8c8067;font-size:13px}.shots{gap:6px;margin:0 auto;padding:0;list-style:none;display:flex}.shots li{color:#aa987a;background:#f4eddd;border:1px solid #d9cdb3;border-radius:50%;place-items:center;width:28px;height:28px;font:11px Georgia,serif;display:grid}.shots li.current{color:#5c7454;border-color:#839572;box-shadow:0 0 0 3px #647b561d}.shots li.hit{color:#fffae9;background:#6d855e;border-color:#6d855e;font-size:14px}.shots li.miss{color:#967e58;background:#e5d6b9}.best-stat{border-left:1px solid var(--line);white-space:nowrap;padding-left:15px}.best-stat strong{color:#84755c;font:20px Georgia,serif}.scene-wrap{background:#f7efd9;border:1px solid #ddd2b9;border-radius:16px;overflow:hidden}.scene-top{letter-spacing:.5px;color:#8a7b60;justify-content:space-between;gap:8px;padding:14px 18px 7px;font-size:10px;display:flex}.scene-top i{vertical-align:middle;background:#7f946d;border-radius:50%;width:5px;height:5px;margin-right:4px;display:inline-block}canvas{aspect-ratio:1;touch-action:none;cursor:grab;width:100%;height:auto;display:block}canvas.dragging{cursor:grabbing}.cue-line{align-items:flex-start;gap:10px;min-height:51px;padding:10px 3px;display:flex}.cue-line i{background:#a38a55;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:8px}.cue-line p{color:#776a51;margin:0;font-size:12px;line-height:1.8}.position-panel{background:#f1e8d2;border-top:1px solid #dfd2b6;padding:10px 14px 12px}.position-panel input{margin-bottom:0}.zone-buttons{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;display:grid}.zone-buttons button{color:#687454;background:#faf3e1;border:1px solid #cfc3a6;border-radius:7px;min-width:0;min-height:44px;padding:5px 0;font-size:10px}.zone-buttons span,.zone-buttons small{display:block}.zone-buttons small{margin-top:2px;font-size:10px;font-weight:700}.zone-buttons button[aria-pressed=true]{background:#dce3cb;border-color:#667c58;box-shadow:inset 0 0 0 1px #667c5855}.zone-buttons .delivered{color:#948873}.position-panel p{color:#7f775f;margin:8px 0 0;font-size:10px;line-height:1.5}.position-panel button:disabled{opacity:.65}.care-panel{border-top:2px solid #7c8867;padding-top:18px}.round-card h2{letter-spacing:1px;margin:9px 0 12px;font-family:Yu Mincho,serif;font-size:26px;line-height:1.65}.round-card p:not(.eyebrow){color:#80735b;font-size:12px;line-height:1.9}.start-button,.launch-button{background:var(--olive);color:#fffbed;text-align:center;border:0;border-radius:7px;width:100%;min-height:48px;padding:13px 15px;font-size:13px;font-weight:700}.start-button:hover,.launch-button:not(:disabled):hover{background:#485f42}.playing-note{min-height:157px;padding:5px 0 15px}.playing-note p{margin:7px 0 10px;font-family:Yu Mincho,serif;font-size:25px;line-height:1.7}.playing-note>span:last-child{color:#8e795a;font-size:11px}.supply-row{grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;display:grid}.supply{color:#9c754c;background:#fff8e9;border:1px solid #dbcfb5;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:53px;display:flex}.supply svg{width:30px;height:28px}.supply strong{letter-spacing:1px;font-size:13px}#water{color:#668b88}.supply[aria-pressed=true]{background:#eadcbb;border-color:#b49b6b;box-shadow:inset 0 0 0 1px #b49b6b55}#water[aria-pressed=true]{background:#dbe5d4;border-color:#7d9f90;box-shadow:inset 0 0 0 1px #7d9f9055}.aim-controls{padding-top:2px}.control-label{letter-spacing:.5px;justify-content:space-between;align-items:center;font-size:11px;display:flex}.control-label output{color:#8d7c60;font-variant-numeric:tabular-nums}input[type=range]{accent-color:#798767;cursor:pointer;touch-action:pan-y;background:0 0;width:100%;height:44px;margin:0 0 6px;display:block}input[type=range]:disabled{opacity:.35;cursor:default}.launch-button{margin-top:2px}.control-tip{text-align:center;color:#a08c6b;margin:9px 0;font-size:10px}.action-note{border-top:1px solid var(--line);color:#8d7c60;min-height:52px;margin:14px 0 0;padding-top:13px;font-size:11px;line-height:1.9}#result{color:#697a50!important;margin:12px 0!important;font:32px Georgia,serif!important}footer{border-top:1px solid var(--line);letter-spacing:1px;color:#a08e70;justify-content:space-between;gap:10px;margin-top:8px;padding-top:12px;font-size:9px;display:flex}dialog{color:var(--ink);background:#fcf6e7;border:1px solid #d1c4a6;border-radius:16px;width:min(90vw,490px);max-height:85dvh;padding:28px;overflow:auto;box-shadow:0 20px 70px #302a2340}dialog::backdrop{background:#32382c88}dialog h2{font-family:Yu Mincho,serif;font-size:25px}dialog p,dialog li{font-size:13px;line-height:1.9}dialog ol{padding-left:22px}dialog li{margin-bottom:12px}.keyboard-note{border-top:1px solid var(--line);color:#8c7a58;padding-top:13px;font-size:11px!important}@media (min-width:801px) and (max-height:800px){.app{max-width:790px;padding-top:18px}.heading{margin-bottom:15px}h1{font-size:29px}.hud{min-height:44px}.care-panel{padding-top:14px}.playing-note{min-height:138px}.round-card h2{font-size:24px}.supply-row{margin:14px 0}.action-note{margin-top:10px}}@media (max-width:800px){.app{max-width:490px;padding:20px 17px 16px}.heading{align-items:flex-start;margin-bottom:18px}.eyebrow{letter-spacing:1.5px;font-size:8px}.eyebrow span{margin-left:5px}h1{letter-spacing:0;font-size:26px}.subtitle{letter-spacing:.5px;font-size:11px}.top-actions{gap:4px;margin-left:4px;padding-top:16px}.game-layout{display:block}.hud{gap:12px;margin-bottom:9px}.shots{gap:5px}.shots li{width:25px;height:25px}.best-stat{padding-left:12px}.best-stat strong{font-size:18px}.delivery-stat b{font-size:27px}.scene-wrap{border-radius:12px}.scene-top{letter-spacing:0;padding:12px 12px 6px;font-size:9px}.cue-line{min-height:48px}.cue-line p{font-size:11px}.care-panel{padding-top:13px}.round-card h2{margin:8px 0;font-size:22px;line-height:1.5}.round-card #round-description{margin:6px 0 12px;font-size:11px}.playing-note{justify-content:space-between;align-items:center;gap:12px;min-height:0;padding:0 0 3px;display:flex}.playing-note .eyebrow{display:none}.playing-note p{margin:0;font-size:18px}.playing-note p br{display:none}.playing-note>span:last-child{font-size:10px}.supply-row{margin:13px 0 16px}.aim-controls{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.aim-controls .control-label:first-of-type{grid-area:1/1}.aim-controls .control-label:nth-of-type(2){grid-area:1/2}#angle{grid-area:2/1}#power{grid-area:2/2}.launch-button,.control-tip{grid-column:1/-1}.action-note{min-height:0;margin-top:10px;padding-top:10px}.control-tip{margin-bottom:0}footer{letter-spacing:.4px;margin-top:20px;font-size:8px}}@media (max-width:359px){.app{padding-left:12px;padding-right:12px}h1{font-size:22px}.subtitle{font-size:10px}.top-actions{gap:3px}.hud{gap:7px}.shots{gap:4px}.shots li{width:23px;height:23px}.best-stat{padding-left:8px}.delivery-stat>span,.best-stat>span{font-size:9px}.best-stat strong{font-size:16px}.playing-note{align-items:flex-start}.playing-note p{font-size:16px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.supply{position:relative}.supply small{color:#fff5df;background:#a57344;border-radius:5px;padding:2px 5px;font-size:9px;display:none;position:absolute;top:-8px;right:4px}.supply.wanted small{display:block}#water small{background:#5f9196}.power-display{margin:2px 0 13px}.power-display>span{color:#9d8c6c;justify-content:space-between;margin-top:5px;font-size:9px;display:flex}.power-display b{font-weight:500}#power-word{color:#8a7249;font-weight:700}#power-meter{background:#dfd3b9;border-radius:7px;height:12px;overflow:hidden}#power-fill{background:#b29951;border-radius:7px;width:65%;height:100%;transition:background .12s;display:block}#power-meter[data-strength=soft] #power-fill{background:#6c997e}#power-meter[data-strength=strong] #power-fill{background:#c07849}.retrieve-button{color:#8b7253;background:#f9f0dc;border:1px solid #bcab8b;border-radius:7px;width:100%;min-height:44px;margin-top:9px;font-size:11px}.playing-note p#request{font-size:20px;line-height:1.65}.playing-note{min-height:121px}.shots li{flex-shrink:0}.best-stat strong{font-variant-numeric:tabular-nums}.delivery-stat b{font-size:27px}.delivery-stat{min-width:69px}@media (max-width:800px){.power-display,.retrieve-button{grid-column:1/-1}.playing-note{flex-wrap:wrap;min-height:0}.playing-note p#request{font-size:16px}.playing-note>span:last-child{font-size:10px}.shots{gap:4px}.hud{gap:9px}.delivery-stat{min-width:56px}.delivery-stat b{font-size:24px}.best-stat{padding-left:8px}.power-display{margin-bottom:12px}}@media (min-width:801px) and (max-height:800px){.game-layout{grid-template-columns:minmax(0,1fr) 242px;gap:22px}.round-card h2{font-size:23px}.round-card p:not(.eyebrow){font-size:11px}.supply-row{margin:13px 0}.playing-note{min-height:111px}.control-tip{font-size:9px}.action-note{font-size:10px}}
