:root{--paper:#f8f1e1;--ink:#4a3628;--ink-soft:#7d6552;--accent:#b5372d;--shadow:0 6px 18px #3c28142e;font-family:Hiragino Maru Gothic ProN,Yu Gothic,PingFang TC,Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;background:#d4e9f0;margin:0;overflow:hidden}#app canvas{touch-action:none;cursor:grab;display:block}#app canvas:active{cursor:grabbing}.env{flex:none;width:26px;height:20px}.env rect{fill:var(--paper);stroke:var(--ink);stroke-width:1.6px}.env path{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linejoin:round}#hud{top:calc(16px + env(safe-area-inset-top,0px));left:calc(16px + env(safe-area-inset-left,0px));pointer-events:none;position:fixed}.card{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:12px;padding:10px 16px 10px 12px;font-size:15px;font-weight:600;display:flex;transform:rotate(-1deg)}.card .sub{color:var(--ink-soft);margin-top:2px;font-size:12px;font-weight:500}#prompt{left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:10px 18px 10px 10px;font-size:16px;font-weight:600;animation:1.6s ease-in-out infinite bob;display:flex;position:fixed;transform:translate(-50%)}#prompt kbd{width:28px;height:28px;font:inherit;color:var(--paper);background:var(--accent);border-radius:50%;place-items:center;font-size:14px;display:inline-grid}@keyframes bob{50%{transform:translate(-50%)translateY(-4px)}}#toast{background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow);pointer-events:none;border-radius:12px;padding:12px 22px;font-size:18px;font-weight:700;transition:opacity .3s,transform .3s;position:fixed;top:18%;left:50%;transform:translate(-50%)}#toast.hidden,#prompt.hidden{opacity:0;pointer-events:none}#toast.hidden{transform:translate(-50%)translateY(-8px)}#help{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));color:var(--ink);white-space:nowrap;pointer-events:none;background:#f8f1e1c7;border-radius:999px;padding:6px 14px;font-size:12px;position:fixed;transform:translate(-50%)}#jump{right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(70px + env(safe-area-inset-bottom,0px));width:68px;height:68px;font:inherit;color:var(--paper);background:var(--accent);border:3px solid var(--ink);box-shadow:var(--shadow);touch-action:none;border-radius:50%;font-size:20px;font-weight:700;display:none;position:fixed}#jump:active{transform:scale(.92)}#gun{right:calc(30px + env(safe-area-inset-right,0px));bottom:calc(150px + env(safe-area-inset-bottom,0px));width:52px;height:52px;font:inherit;color:var(--ink);background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow);touch-action:none;border-radius:50%;font-size:17px;font-weight:700;display:none;position:fixed}body.armed #gun{color:var(--paper);background:var(--ink)}#stick{--rest-x:92px;--rest-y:calc(min(52vh, 320px) - 104px);width:min(44vw,300px);height:min(52vh,320px);padding-bottom:env(safe-area-inset-bottom,0px);touch-action:none;display:none;position:fixed;bottom:0;left:0}#stick .base,#stick .knob{pointer-events:none;border-radius:50%;position:absolute;top:0;left:0}#stick .base{width:116px;height:116px;box-shadow:var(--shadow);transform:translate(var(--rest-x), var(--rest-y));background:#f8f1e147;border:3px solid #4a36288c;margin:-58px 0 0 -58px}#stick .knob{background:var(--paper);border:3px solid var(--ink);width:52px;height:52px;box-shadow:var(--shadow);transform:translate(var(--rest-x), var(--rest-y));margin:-26px 0 0 -26px}#stick:not(.active) .base{opacity:.75}#prompt{z-index:2}#help .touch{display:none}@media (pointer:coarse){#jump,#gun,#stick{display:block}#help{top:calc(92px + env(safe-area-inset-top,0px));bottom:auto}#help .keys{display:none}#help .touch{display:inline}}#crosshair{pointer-events:none;width:26px;height:26px;margin:-13px 0 0 -13px;transition:opacity .15s;position:fixed;top:50%;left:50%}#crosshair.hidden{opacity:0}#crosshair i,#crosshair b{background:var(--ink);border-radius:2px;position:absolute;box-shadow:0 0 0 1.5px #f8f1e1d9}#crosshair i{width:3px;height:7px;left:11.5px}#crosshair i:first-child{top:0}#crosshair i:nth-child(2){bottom:0}#crosshair i:nth-child(3),#crosshair i:nth-child(4){width:7px;height:3px;top:11.5px;left:auto}#crosshair i:nth-child(3){left:0}#crosshair i:nth-child(4){right:0}#crosshair b{background:var(--accent);border-radius:50%;width:4px;height:4px;top:11px;left:11px}body.armed #app canvas,body.armed #app canvas:active{cursor:none}#fps{color:var(--ink);font:11px ui-monospace,monospace;position:fixed;top:12px;right:12px}#loading{letter-spacing:.1em;background:#f8f1e1;place-content:center;justify-items:center;gap:10px;font-size:14px;transition:opacity .6s;display:grid;position:fixed;inset:0}#loading .env{width:48px;height:36px;animation:1.2s ease-in-out infinite bob2}@keyframes bob2{50%{transform:translateY(-6px)rotate(-4deg)}}#loading.done{opacity:0;pointer-events:none}@media (width<=600px){#help{white-space:normal;text-align:center;width:calc(100% - 32px)}#prompt{bottom:110px}}
