*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none;background:#eef3f1;color:#253b35;font-family:system-ui,sans-serif}body{position:fixed;inset:0}main{width:100%;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}#stage{position:relative;min-height:0;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.controls{display:grid;grid-template-columns:1fr 144px 1fr;align-items:center;gap:8px;padding:8px 0 12px}#toast{grid-column:2}#reset{grid-column:3;justify-self:start;padding:12px 10px;font-size:13px;white-space:nowrap}button{font:600 16px system-ui,sans-serif;min-width:0;min-height:48px;padding:12px 22px;background:#355b45;color:white;border:0;border-radius:16px;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #6484aa;outline-offset:4px}button:disabled{opacity:.5;cursor:default}button.heating{animation:heat 1.4s ease-in-out infinite}#loading{position:absolute;left:50%;top:50%;width:26px;height:26px;border:2px solid #d0dcd3;border-top-color:#355b45;border-radius:50%;animation:spin .9s linear infinite}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes heat{50%{opacity:.9}}@media(prefers-reduced-motion:reduce){button.heating{animation:none}}

#sound{position:fixed;z-index:5;top:calc(env(safe-area-inset-top) + 56px);right:calc(env(safe-area-inset-right) + 24px);width:44px;height:44px;min-height:44px;padding:11px;border-radius:50%;background:#e2eae4;color:#355b45;border:1px solid #cdd9d0;display:grid;place-items:center}#sound svg{width:21px;height:21px}#sound[aria-pressed="true"] .sound-off,#sound[aria-pressed="false"] .sound-on{display:none}@media(max-width:400px){.controls{grid-template-columns:1fr 120px 1fr}#reset{padding:12px 6px}}

.secret-result{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);z-index:20;background:#f7f6efef;border:1px solid #bda35c;border-radius:18px;padding:24px;text-align:center;max-width:85vw;white-space:nowrap;box-shadow:0 10px 40px #20332622}.secret-result[hidden]{display:none}.secret-result button{display:block;margin:18px auto 0;padding:8px 24px;border-radius:20px;border:1px solid #bcc8be;background:#edf1eb;color:#304a3a}
