:root{font-family:ui-rounded,"Hiragino Sans GB","Microsoft YaHei",sans-serif;color:#273d43;background:#f6f1dc}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 10%,#ffedb9,transparent 55%),radial-gradient(circle at 95% 90%,#dcebd8,transparent 50%);min-height:100dvh;padding:18px max(12px,env(safe-area-inset-left)) calc(18px + env(safe-area-inset-bottom))}.game-page{max-width:940px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}h1{font-size:clamp(19px,4vw,28px);margin:0}a{color:#395b5b;text-decoration:none;white-space:nowrap;font-size:14px}a:hover{text-decoration:underline}.stage-shell{position:relative;border:8px solid #fffdf4;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 14px 36px #253e341c}canvas{width:100%;height:auto;display:block;aspect-ratio:4/3;touch-action:none;outline:none}canvas:focus-visible{outline:3px solid #f8c15d;outline-offset:-3px}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#fff9e8;margin:0;font-size:18px}.instruction{text-align:center;font-size:14px;color:#607475;margin:16px 0}.touch-controls{display:none;align-items:center;justify-content:center;gap:18px;user-select:none}.touch-controls button{touch-action:none;user-select:none;width:82px;min-height:58px;border:2px solid #f1d08b;border-radius:20px;background:#ffe4a4;box-shadow:0 4px #dbb763;color:#385456;font-size:25px}.touch-controls button:active,.touch-controls button.held{transform:translateY(3px);box-shadow:0 1px #dbb763;background:#ffd16a}.touch-controls span{font-size:13px;color:#6b7c72}#error{color:#8d352e;text-align:center;background:#fff;padding:12px;border-radius:12px}*[hidden]{display:none!important}@media(pointer:coarse),(max-width:680px){.touch-controls{display:flex}.instruction{font-size:12px;margin:12px 0}body{padding-top:12px}header{gap:8px;margin-bottom:12px}header a{font-size:12px}.stage-shell{border-width:4px;border-radius:14px}}@media(max-height:550px) and (orientation:landscape){body{padding:6px}.game-page{max-width:min(100%,760px)}header{margin-bottom:6px}h1{font-size:17px}.stage-shell{width:min(100%,calc((100dvh - 58px)*4/3));margin:auto}.instruction{display:none}.touch-controls{position:fixed;inset:auto 12px 10px;justify-content:space-between;pointer-events:none}.touch-controls button{pointer-events:auto;opacity:.86}.touch-controls span{display:none}}

#sound-toggle{font:inherit;font-size:12px;min-height:44px;min-width:68px;padding:6px 8px;color:#395b5b;background:#fff8e5;border:1px solid #e5d9b8;border-radius:14px;white-space:nowrap;cursor:pointer}
@media(max-width:680px){header{gap:6px}#sound-toggle{min-width:56px;font-size:11px;padding:4px}header a{font-size:11px}h1{font-size:18px}}

.touch-controls button{width:190px;font-size:20px}dialog{max-width:min(90vw,420px);border:2px solid #e8cf91;border-radius:20px;padding:22px;color:#395b5b;background:#fff9e8;font:inherit}dialog::backdrop{background:#172d3580}dialog button{font:inherit;background:#ffe4a4;border:1px solid #e8cf91;border-radius:12px;padding:12px 18px}#space-button{min-height:58px}
