*{box-sizing:border-box;margin:0;padding:0}html,body{color:#cfd3dd;touch-action:none;-webkit-user-select:none;user-select:none;background:#0b0d12;width:100%;height:100%;font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;overflow:hidden}#stage{justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative}#gameCanvas{aspect-ratio:8/5;touch-action:none;cursor:grab;background:#191c22;border-radius:6px;width:min(100vw,160vh - 12.8px,1280px);box-shadow:0 0 80px #000000e6,0 0 0 1px #ffffff0a}#gameCanvas:active{cursor:grabbing}.btn{color:#e8ddc8;letter-spacing:2px;cursor:pointer;background:#1e1e26b3;border:1px solid #b4a06e59;border-radius:4px;padding:10px 26px;font-size:16px;transition:all .2s}.btn:hover{background:#463e2ccc;border-color:#ffcd78b3}.btn-primary{color:#ffe9c4;background:linear-gradient(#5c4a26,#3b3018);border-color:#ffcd78cc}.btn-primary:hover{background:linear-gradient(#75602f,#4a3c1e)}.btn-ghost{color:#9aa0b0;background:0 0;border-color:#9696aa4d;font-size:14px}.btn-ghost:hover{color:#d8dce6}.screen{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:radial-gradient(at 50% 40%,#14120cdb,#040508f5);justify-content:center;align-items:center;display:none;position:absolute;inset:0}.screen.show{display:flex}.menu-card{text-align:center;max-width:560px;padding:24px}.title{letter-spacing:14px;color:#f2e3c2;text-shadow:0 0 30px #ffc86e59,0 0 90px #ffc86e26;margin-bottom:18px;font-size:clamp(40px,8vw,72px);font-weight:300}.story{color:#8d93a3;margin-bottom:22px;font-size:clamp(13px,2vw,15px);font-style:italic;line-height:2}.howto{text-align:left;border:1px solid #9696aa2e;border-radius:6px;margin-bottom:24px;padding:12px 18px}.howto p{color:#aeb4c2;font-size:13px;line-height:2}.howto .who{color:#e8c877;min-width:92px;margin-right:8px;display:inline-block}.level-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 0;margin:22px 0 12px;display:flex}.level-label{color:#6d7383;margin-right:10px;font-size:13px}.level-btn{width:42px;margin:0 3px;padding:7px 0;font-size:17px}.level-btn.locked{opacity:.38;cursor:not-allowed}.level-btn.locked:hover{background:#1e1e26b3;border-color:#b4a06e59}.tiny{color:#585e6c;letter-spacing:1px;margin-top:14px;font-size:11px}.hud{pointer-events:none;z-index:10;display:none;position:absolute;inset:0}.hud.show{display:block}.hud-left{letter-spacing:3px;color:#ebdcbebf;text-shadow:0 0 12px #000000e6;font-size:15px;position:absolute;top:14px;left:18px}.hud-right{pointer-events:auto;gap:6px;display:flex;position:absolute;top:10px;right:14px}.hud-right .btn{padding:6px 14px;font-size:13px}.hud-hint{letter-spacing:2px;color:#c8cddc8c;text-shadow:0 0 10px #000000e6;opacity:1;pointer-events:none;font-size:13px;transition:opacity 1.5s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.hud-hint.gone{opacity:0}.modal{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:30;background:#020306c7;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.modal.show{display:flex}.modal-card{text-align:center;background:#0e0f16eb;border:1px solid #b4a06e4d;border-radius:8px;padding:34px 48px;box-shadow:0 0 60px #000c}.modal-card h2{letter-spacing:6px;color:#f0e2c0;margin-bottom:10px;font-size:24px;font-weight:300}#failModal .modal-card h2{color:#ffb98a;text-shadow:0 0 24px #ff8c3c66}#winModal .modal-card h2{color:#bfeaff;text-shadow:0 0 24px #6edcff66}#finalModal .modal-card h2{color:#d9c8ff;text-shadow:0 0 26px #a078ff73;letter-spacing:4px;font-size:21px}.modal-sub{color:#7b8190;margin-bottom:20px;font-size:13px}.modal-card .btn{margin:4px 6px}.dpad{z-index:15;width:150px;height:150px;display:none;position:absolute;bottom:22px;right:26px}.dpad.show{display:block}.pad{color:#c8d2f0cc;touch-action:none;pointer-events:auto;background:#282c3c73;border:1px solid #a0aadc59;border-radius:8px;width:48px;height:48px;font-size:18px;position:absolute}.pad:active{background:#5a649699}.pad-u{top:0;left:51px}.pad-d{bottom:0;left:51px}.pad-l{top:51px;left:0}.pad-r{top:51px;right:0}@media (width<=640px){.howto{display:none}.title{letter-spacing:8px}}
