:root{--bg:#bde0fe;--panel:#ffffffdb;--ink:#1d2b3a;--muted:#5c6f82;--accent:#ff6b6b;--accent-2:#4dabf7;color:var(--ink);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}body{touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none}canvas{display:block}.hud{background:var(--panel);pointer-events:none;border-radius:12px;min-width:170px;padding:8px 12px;font:600 12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;top:12px;left:12px}.hud b{color:var(--accent)}.help{background:var(--panel);pointer-events:none;white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:13px;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.menu{background:linear-gradient(#bde0fe 0%,#ffd6e7 100%);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.card{text-align:center;background:#fff;border-radius:24px;width:min(420px,100%);padding:28px 24px;box-shadow:0 12px #8ec5ff,0 20px 40px #1d2b3a26}.card h1{letter-spacing:-1px;color:var(--accent);text-shadow:0 3px #ffd43b;margin:0 0 4px;font-size:40px}.card p{color:var(--muted);margin:0 0 20px}.row{gap:8px;margin-top:10px;display:flex}.btn{cursor:pointer;color:#fff;background:var(--accent);border:0;border-radius:14px;flex:1;padding:14px 16px;font-family:inherit;font-size:16px;font-weight:800;line-height:1;transition:transform 80ms;box-shadow:0 5px #c94b4b}.btn:active{transform:translateY(3px);box-shadow:0 2px #c94b4b}.btn.blue{background:var(--accent-2);box-shadow:0 5px #2f7fc1}.input{border:2px solid #d0dbe6;border-radius:14px;flex:1.2;min-width:0;padding:12px;font-family:inherit;font-size:16px;font-weight:700}.err{color:#c92a2a;margin-top:12px;font-size:14px}.touch{pointer-events:none;position:fixed;inset:0}.stick{background:#ffffff59;border:3px solid #ffffffb3;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;position:fixed}.knob{background:#ffffffe6;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}.tbtns{pointer-events:auto;grid-template-columns:repeat(2,72px);gap:12px;display:grid;position:fixed;bottom:24px;right:16px}.tbtn{color:#fff;background:#ff6b6bd9;border:0;border-radius:50%;width:72px;height:72px;font-family:inherit;font-size:13px;font-weight:800;box-shadow:0 4px #00000026}.tbtn.jump{background:#4dabf7e6;grid-column:2}.tbtn.on{filter:brightness(.9);transform:scale(.92)}.menu{touch-action:pan-y;place-items:safe center;overflow-y:auto}.input,select.input{-webkit-user-select:text;user-select:text;color:var(--ink);background:#fff}.btn:disabled{opacity:.5;cursor:default}.form,.stack{flex-direction:column;gap:10px;display:flex}.form .row{margin-top:0}.form h1{margin-bottom:8px}.tabs{background:#eef3f8;border-radius:14px;padding:4px;display:flex}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;padding:10px;font-weight:800}.tabs button.on{color:var(--ink);background:#fff;box-shadow:0 2px #d0dbe6}.turnstile{justify-content:center;min-height:65px;display:flex}.notice{background:#e7f5ff;border-radius:12px;padding:10px 12px;color:var(--ink)!important}.ok{color:#2b8a3e;margin-top:12px;font-size:14px}.hint{font-size:13px;margin:10px 0 0!important}.link{font:inherit;color:var(--accent-2);cursor:pointer;background:0 0;border:0;margin-top:12px;padding:8px;font-weight:700}.link.danger{color:#c92a2a;margin:0}.panel{text-align:left}.panel h2{margin:0;font-size:22px}.panel h3{margin:18px 0 6px;font-size:16px}.panel p{margin:8px 0}.bar{align-items:center;gap:8px;display:flex}.bar .link{margin:0 0 0 -8px}.list{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.item{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:2px solid #d0dbe6;border-radius:14px;padding:12px 14px;font-weight:800}.member{background:#f4f7fa;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.member span{flex-direction:column;min-width:0;display:flex}.member small{color:var(--muted);text-overflow:ellipsis;overflow:hidden}
