:root{--bg:#030507;--text:#cfe9ea;--muted:#7d9799;--accent:#7ff3ef;--answer:#f4ecc4;--panel:#03080ad1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}[hidden]{display:none!important}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#vignette{pointer-events:none;background:radial-gradient(#0000 55%,#0009);position:fixed;inset:0}#crosshair{pointer-events:none;background:#cfe9ea73;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;transition:transform .2s,background .2s;position:fixed;top:50%;left:50%}#crosshair.is-target{background:var(--accent);box-shadow:0 0 10px var(--accent);transform:scale(1.8)}#prompt{color:var(--text);letter-spacing:.08em;white-space:nowrap;pointer-events:none;background:#03080a8c;border-radius:999px;padding:6px 14px;font-size:14px;position:fixed;bottom:22%;left:50%;transform:translate(-50%)}kbd{border:1px solid var(--accent);min-width:1.6em;color:var(--accent);font:inherit;text-align:center;border-radius:4px;margin-right:.5em;padding:0 .4em;display:inline-block}#captions{pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex;position:fixed;bottom:12%;left:50%;transform:translate(-50%)}#captions div{color:var(--answer);background:#0009;border-radius:4px;padding:2px 10px;font-style:italic;animation:.4s ease-out caption-in}@keyframes caption-in{0%{opacity:0}}button{font:inherit;color:inherit;cursor:pointer}#menu-button{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));background:#03080a80;border:1px solid #7ff3ef59;border-radius:50%;width:44px;height:44px;font-size:13px;position:fixed}#touch{touch-action:none;position:fixed;inset:0}#stick{opacity:0;pointer-events:none;background:#7ff3ef0f;border:1px solid #7ff3ef59;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:opacity .15s;position:fixed;top:0;left:0}#stick.is-active{opacity:1}#stick-knob{background:#7ff3ef59;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 0 16px #7ff3ef66}#action{right:max(24px, env(safe-area-inset-right));bottom:max(32px, env(safe-area-inset-bottom));border:1px solid var(--accent);min-width:112px;min-height:56px;color:var(--accent);letter-spacing:.1em;background:#031418bf;border-radius:999px;padding:0 22px;animation:.3s ease-out caption-in;position:fixed;box-shadow:0 0 24px #7ff3ef40}.touch-only{display:none}body.is-touch .touch-only{display:block}body.is-touch .desktop-only,body.is-touch #crosshair,body.is-touch #prompt{display:none}#fade{opacity:0;pointer-events:none;background:#000;transition:opacity 2s ease-in-out;position:fixed;inset:0}#fade.is-black{opacity:1}.card-screen{text-align:center;background:radial-gradient(ellipse at center, #03080a8c, var(--panel));flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px 16px;display:flex;position:fixed;inset:0}h1,h2{letter-spacing:.32em;text-transform:uppercase;margin:0;font-weight:300}h1{color:var(--accent);text-shadow:0 0 24px #7ff3ef73;font-size:clamp(26px,6vw,44px)}h2{font-size:22px}.lede{max-width:34em;margin:0;font-size:17px}.hint,.note{color:var(--muted);margin:0;font-size:13px}.primary{border:1px solid var(--accent);min-width:160px;color:var(--accent);letter-spacing:.24em;text-transform:uppercase;background:#7ff3ef14;border-radius:999px;margin:10px 0;padding:12px 28px;transition:background .2s,box-shadow .2s}.primary:hover,.primary:focus-visible{background:#7ff3ef2e;outline:none;box-shadow:0 0 24px #7ff3ef4d}.secondary{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;background:0 0;border:0;border-radius:999px;padding:8px 18px;font-size:13px}.secondary:hover,.secondary:focus-visible{color:var(--text);outline:1px solid #7ff3ef59}.settings{color:var(--muted);flex-direction:column;gap:10px;display:flex}.settings label{align-items:center;gap:10px;display:flex}input[type=range]{accent-color:var(--accent)}#error{color:#f2b8a0;max-width:30em}#debug{white-space:pre;pointer-events:none;background:#0009;padding:4px 8px;font:12px/1.4 ui-monospace,monospace;position:fixed;top:8px;left:8px}@media (prefers-reduced-motion:reduce){#fade{transition-duration:.8s}}
