:root{color-scheme:light;font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#333;background:#eee}*{box-sizing:border-box}body{margin:0}main{width:min(100%,720px);min-height:100svh;margin:0 auto;padding:58px 24px 60px;display:flex;flex-direction:column;align-items:center}h1{font-size:21px;line-height:1.6;font-weight:400;letter-spacing:.08em;margin:0;text-align:center}.apparatus{width:100%;display:flex;flex-direction:column;align-items:center;margin-top:78px}.source-ball{width:34px;height:34px;flex:none;border:2px solid #333;border-radius:50%;background:#fff;padding:0;cursor:grab;touch-action:none}.source-ball:active{cursor:grabbing}.vessel{position:relative;width:280px;max-width:calc(100% - 24px);height:170px;border:2px solid #333;border-radius:0;background:#b8b8b8;margin-top:48px}.source-ball:hover:not(:disabled){background:#eee}.vessel.over{background:#b8b8b8}#message{min-height:32px;margin:46px 0 20px;line-height:1.6;font-size:18px;letter-spacing:.06em;text-align:center}#confirm{font:inherit;font-size:15px;letter-spacing:.06em;color:#fff;background:#333;border:1px solid #333;border-radius:3px;min-height:45px;padding:11px 28px;cursor:pointer}#confirm:hover:not(:disabled){background:#505050}button:focus-visible{outline:2px solid #777;outline-offset:5px}button:disabled{cursor:default}#confirm:disabled{background:#e4e4e4;border-color:#d3d3d3;color:#888;cursor:default}.source-ball:disabled{border-color:#bbb;background:#f0f0f0;cursor:default}.complete .source-ball{visibility:hidden}.drag-ghost{position:fixed;width:34px;height:34px;border:2px solid #333;border-radius:50%;background:#fff;pointer-events:none;z-index:10;transform:translate(-50%,-50%)}@media(max-width:500px){main{padding-top:42px}.apparatus{margin-top:60px}.vessel{margin-top:56px}#message{margin-top:36px;font-size:17px}}@media(max-height:660px){main{padding-top:24px;padding-bottom:24px}.apparatus{margin-top:36px}.vessel{margin-top:34px}#message{margin-top:26px}}

.secondary-button{font:inherit;font-size:14px;min-height:44px;padding:10px 20px;border:1px solid #aaa;border-radius:3px;background:#fff;color:#333;cursor:pointer}.secondary-button:hover:not(:disabled){background:#f3f3f3}.secondary-button:disabled{opacity:.4}#count{margin-top:22px;font-size:18px;font-variant-numeric:tabular-nums}.actions{display:flex;gap:12px;justify-content:center}#message{margin-top:28px}


.apparatus{position:relative;isolation:isolate}.vessel{z-index:2;max-width:100%}.source-ball{position:relative;z-index:3}.falling-ball{position:absolute;z-index:1;width:34px;height:34px;border:2px solid #333;border-radius:50%;background:#fff;pointer-events:none}

#message{width:100%;min-height:68px;display:flex;align-items:center;justify-content:center;margin:12px 0;line-height:1.7;overflow-wrap:anywhere}#message a{color:#333;text-underline-offset:4px}#share{margin-top:18px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}[hidden]{display:none!important}a:focus-visible{outline:2px solid #777;outline-offset:5px}.vessel.gone{animation:depart .65s ease-in forwards;pointer-events:none}@keyframes depart{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(60px) scale(.8)}}@media(prefers-reduced-motion:reduce){.vessel.gone{animation:none;opacity:0}}

.response-text{display:inline-block;max-width:100%;text-align:center}.half-stop{display:inline-block;width:.5em;letter-spacing:0;text-align:left}


#success{width:430px;max-width:calc(100% - 36px);padding:42px 32px 30px;border:1px solid #d4d0c8;border-radius:0;background:#fff;color:#333;text-align:center;max-height:85svh;overflow:auto}
#success::backdrop{background:rgba(0,0,0,.6)}
#success h2{font-family:"Yu Mincho",serif;font-size:27px;font-weight:400;letter-spacing:.08em;margin:8px 0 20px}
#close-success{position:absolute;right:8px;top:8px;width:40px;height:40px;background:none;border:0;font:26px serif;color:#777;cursor:pointer}
#success #share{display:flex;width:180px;max-width:100%;margin:26px auto 18px;padding:15px 20px;border:0;border-radius:0;background:#333;color:#fff}
#return-game{display:block;margin:8px auto 0;padding:10px 18px;border:0;border-bottom:1px solid #555;background:none;font:inherit;color:#333;cursor:pointer}

.introduction{margin:18px 0 0;font-size:16px;line-height:1.9;letter-spacing:.04em;text-align:center}
