*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;color:#f0e5d2;background:#1b211f}
body{margin:0;position:fixed;inset:0;overflow:hidden;overscroll-behavior:none}
#game{position:absolute;left:50%;top:50%;margin-left:-180px;margin-top:-320px;width:360px;height:640px;overflow:hidden;transform-origin:center;background:#262c29;user-select:none;-webkit-user-select:none}
canvas,.screen{position:absolute;inset:0;width:100%;height:100%}canvas{display:block}[hidden]{display:none!important}.screen{pointer-events:none;text-align:center}
button{pointer-events:auto;touch-action:manipulation;cursor:pointer;border:none;font:inherit;font-weight:700}button:focus-visible{outline:3px solid #efd39e;outline-offset:3px}button:active{transform:translateY(2px)}
.brand-mark{font-size:17px;letter-spacing:9px;color:#b7a180;margin-top:42px}h1{font-size:33px;letter-spacing:.045em;line-height:1.3;margin:17px 8px 12px}.rule{font-size:14px;color:#d0c5b2;margin:0}
.demo-caption{position:absolute;top:437px;left:20px;right:20px;color:#c3b598;font-size:12px;margin:0}.title-bottom{position:absolute;top:490px;left:30px;right:30px}.chips{display:flex;justify-content:center;gap:28px;font-size:12px;color:#cfc2aa;margin-bottom:20px}
.primary{width:100%;height:58px;border-radius:11px;background:#e7d6b4;color:#29302a;font-size:18px;box-shadow:0 5px 0 #9a8869,0 10px 18px #0002}.secondary{display:block;width:100%;min-height:50px;border-radius:10px;background:transparent;color:#cfc2aa;font-size:14px;margin-top:13px}
.hud{position:absolute;top:22px;left:30px;right:30px;display:flex;justify-content:space-between;text-align:left}.hud span{display:block;font-size:11px;color:#c5bba7}.hud strong{font-size:30px;font-variant-numeric:tabular-nums;line-height:1.25}.clock{text-align:right}.clock.urgent{color:#e7a38a}
.timer,.target-meter,.rise-meter{position:absolute;height:3px;border-radius:4px;overflow:hidden;background:#56605255}.timer{top:81px;left:30px;right:30px}.timer i,.target-meter i,.rise-meter i{display:block;height:100%;width:100%;transform-origin:left;background:#c9aa7c}.target-meter i{background:#91b5a4}.rise-meter i{background:#c9aa7c}.progress{position:absolute;top:103px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#c7bca7}.progress b{font-size:16px;color:#f0e5d2;font-variant-numeric:tabular-nums}.target-meter{top:132px;left:36px;right:36px;height:4px}
#row-controls{position:absolute;top:154px;left:36px;width:288px;height:384px;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(8,48px);pointer-events:auto;touch-action:none}.row-half{height:48px;padding:0;background:transparent;touch-action:none;border-radius:6px;cursor:pointer}.row-half:active{transform:none;background:#f1dab818}.row-half:focus-visible{outline-offset:-3px}
.rise-label{position:absolute;top:553px;left:36px;right:36px;display:flex;gap:8px;align-items:center;font-size:10px;color:#bbae95}.rise-label b{margin-left:auto;font-size:12px;color:#e4d4b5;font-variant-numeric:tabular-nums}.rise-meter{top:574px;left:36px;right:36px;height:3px}#hint{position:absolute;top:590px;left:10px;right:10px;margin:0;font-size:12px;color:#e2c797}#feedback{position:absolute;top:615px;left:10px;right:10px;font-size:11px;color:#a8c8b6;min-height:14px}
.result{background:#252d28f5;padding:0 30px}.result .brand-mark{margin-top:38px}#result-mark{margin-top:22px;font-size:42px;line-height:1;color:#d4af65}.result h2{font-size:28px;margin:19px 0 22px}.result-label{font-size:12px;color:#c7baa0}#result-score{display:block;font-size:66px;font-weight:700;color:#eedcba;line-height:1.35;font-variant-numeric:tabular-nums}.result-stats{display:grid;grid-template-columns:1fr auto;gap:17px;text-align:left;font-size:13px;color:#c7baa0;padding:23px 13px 36px}.result-stats b{color:#f0e5d2}.result[data-outcome="lose"] #result-mark{color:#cb795d}.result[data-outcome="time"] #result-mark{color:#909dc1}
@media(prefers-reduced-motion:reduce){button:active{transform:none}}
