:root{--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}html,body{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;color:#e8dcff;background:#120a24;height:100%;margin:0;font-family:Palatino Linotype,Palatino,Book Antiqua,Georgia,serif;overflow:hidden}#app canvas{touch-action:none;display:block}#title{-webkit-user-select:none;user-select:none;background:radial-gradient(at 50% 40%,#3c145a8c,#080414e0);flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}#title.ready{cursor:pointer}#title.hidden{opacity:0;pointer-events:none}#title h1{letter-spacing:.12em;color:#d9c2ff;text-shadow:0 0 24px #aa5affb3,0 0 4px #ffaa5a80;margin:0;font-size:clamp(64px,14vw,160px);font-weight:400}#title p{text-align:center;letter-spacing:.3em;text-transform:uppercase;color:#9fe0c8;margin:1em 0 0;padding:0 16px;font-size:18px}#title.ready p{animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){#title.ready p{animation:none}}#debug{left:calc(8px + var(--sal));top:calc(8px + var(--sat));color:#cfe;background:#00000080;padding:4px 6px;font:12px monospace;position:fixed}#stick{opacity:0;pointer-events:none;background:radial-gradient(circle,#3c145a1a,#3c145a52);border:1px solid #d9c2ff47;border-radius:50%;width:112px;height:112px;transition:opacity .15s;position:fixed;top:-56px;left:-56px;box-shadow:0 0 18px #aa5aff2e}#stick.on{opacity:1}#knob{background:radial-gradient(circle at 40% 35%,#e8dcff80,#9fe0c838);border:1px solid #e8dcff66;border-radius:50%;width:44px;height:44px;position:absolute;top:34px;left:34px}#fs{top:calc(10px + var(--sat));right:calc(10px + var(--sar));color:#d9c2ffb3;cursor:pointer;background:#08041459;border:1px solid #d9c2ff40;border-radius:6px;width:40px;height:40px;padding:0;display:none;position:fixed}body.touch #fs.on{justify-content:center;align-items:center;display:flex}#fs svg{fill:none;stroke:currentColor;stroke-width:2px}@media (prefers-reduced-motion:reduce){#stick{transition:none}}
