:root{--ink:#2A1F14;--paper:#FFFFFF;--cream:#FFF4DD;--accent:#F28C28;--bg:#E9D3B0}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);
  touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;font-family:Nunito,system-ui,sans-serif;color:var(--ink)}
canvas#game{position:fixed;inset:0;width:100%;height:100%;display:block}

.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  padding:16px;box-sizing:border-box;background:rgba(42,31,20,.35);z-index:10}
.overlay[hidden]{display:none}
.card{background:var(--paper);border:4px solid var(--ink);border-radius:24px;padding:28px;
  width:100%;max-width:460px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px;
  transform:rotate(-1deg);max-height:100%;overflow:auto}
.card h1,.card h2{margin:0;font-family:Fredoka,sans-serif;font-weight:700;line-height:1.05}
.card h1{font-size:44px}
.card h2{font-size:36px}
.card p{margin:0;font-size:17px;line-height:1.5}
.muted{color:#5A4632}
.bubble{background:var(--cream);border:3px solid var(--ink);border-radius:18px;padding:12px 14px;
  font-weight:800;font-size:15px;line-height:1.4;transform:rotate(1deg)}

fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
legend{font-weight:800;font-size:15px;padding:0;margin-bottom:8px}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{flex:1 1 0;min-width:80px;position:relative}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 12px;
  border:3px solid var(--ink);border-radius:999px;font-weight:800;cursor:pointer;background:#fff}
.seg input:checked + span{background:var(--accent)}
.seg input:focus-visible + span{outline:3px solid #1F5FD6;outline-offset:2px}

.toggle{display:flex;align-items:center;gap:10px;font-weight:800;min-height:44px;cursor:pointer}
.toggle input{width:24px;height:24px;accent-color:var(--accent)}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 26px;
  border:3px solid var(--ink);border-radius:999px;font:800 18px Nunito,sans-serif;color:var(--ink);
  background:var(--accent);cursor:pointer;text-decoration:none;box-sizing:border-box}
.btn.secondary{background:#fff}
.btn:focus-visible{outline:3px solid #1F5FD6;outline-offset:3px}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row .btn{flex:1 1 160px}

.hud{position:fixed;top:14px;right:14px;display:flex;gap:8px;z-index:5;pointer-events:none}
.pill{background:rgba(255,255,255,.85);border:3px solid var(--ink);border-radius:999px;
  padding:6px 14px;font-weight:800;font-size:15px}
.hud[hidden]{display:none}

.hold{position:fixed;top:12px;left:12px;width:60px;height:60px;border-radius:50%;
  border:3px solid var(--ink);background-color:rgba(255,255,255,.85);z-index:6;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;
  background-image:conic-gradient(var(--accent) calc(var(--p,0)*1turn), transparent 0)}
.hold[hidden]{display:none}
.hold svg{width:22px;height:22px}
.hint{position:fixed;top:82px;left:12px;z-index:6;font-weight:800;font-size:13px;
  background:rgba(255,255,255,.85);border:2px solid var(--ink);border-radius:10px;padding:4px 8px;
  transition:opacity .4s}
.hint[hidden]{display:none}
