:root{--color-bg:#f6f6f6;--color-surface:#fff;--color-text:#212529;--color-subtle:#595c5f;--color-primary:#8000ff;--color-live:#226619;--color-wip:#b05b10;--max-width:1152px;--font:var(--font-plex-sans), system-ui, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);margin:0;line-height:1.5}main,.footer{max-width:var(--max-width);margin:0 auto;padding:0 24px}.footer{color:var(--color-subtle);padding-top:24px;padding-bottom:48px;font-size:.875rem}:root{--hub-bg:#271a38;--float-amp:14px;--float-speed:1;--dot-scale:1;--pulse-size:1.7;--dot-opacity:1;--hover-fade:250;--orb-blend:exclusion;--hover-scale:1.1;--hit-pad:12px;--dot-hover-color:#5b4a73}body{background:var(--hub-bg);overflow:hidden}.main--bare{max-width:none;padding:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hub{touch-action:none;height:100dvh;position:relative;overflow:hidden}.hub__canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hub__orbs,.hub__menu{pointer-events:none;position:absolute;inset:0}.menu-link{pointer-events:auto;cursor:pointer;color:#0000;white-space:nowrap;font:400 18px/1 var(--font-plex-mono), monospace;text-decoration:none;position:absolute;overflow:hidden}.menu-link:focus-visible{outline-offset:3px;outline:2px solid #8000ff;overflow:visible}.orb{left:var(--x);top:var(--y);pointer-events:auto;color:#fff;--dot-d:calc(var(--size) * var(--dot-scale) * var(--dot-mult,1));--pulse-d:calc(var(--dot-d) * var(--pulse-size) * var(--pulse-mult,1));width:0;height:0;text-decoration:none;position:absolute}.orb__float{animation:orb-drift calc(var(--dur) / var(--float-speed) * 1s) ease-in-out infinite;animation-delay:var(--delay);mix-blend-mode:var(--orb-blend);position:absolute;top:0;left:0}@keyframes orb-drift{0%,to{transform:translate(0)}33%{transform:translate(calc(var(--float-amp) * var(--k1x)), calc(var(--float-amp) * var(--k1y)))}66%{transform:translate(calc(var(--float-amp) * var(--k2x)), calc(var(--float-amp) * var(--k2y)))}}.orb__dot{width:var(--dot-d);height:var(--dot-d);opacity:var(--dot-opacity);transition:background-color calc(var(--hover-fade) * 1ms), transform calc(var(--hover-fade) * 1ms) ease-out;background:#f0eef2;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(1)}.orb__hit{width:calc(var(--dot-d) + var(--hit-pad) * 2);height:calc(var(--dot-d) + var(--hit-pad) * 2);cursor:pointer;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.orb:hover .orb__float,.orb:focus-visible .orb__float,.orb.is-hover .orb__float{animation-play-state:paused}.orb:hover .orb__dot,.orb:focus-visible .orb__dot,.orb.is-hover .orb__dot{background:var(--dot-hover-color);transform:translate(-50%, -50%) scale(var(--hover-scale))}.orb__pulses{transition:opacity calc(var(--hover-fade) * 1ms);position:absolute;top:0;left:0}.orb__pulses.is-held{opacity:0}.orb__pulse{pointer-events:none;border:1px solid #fff;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.orb:focus-visible{outline:none}.orb:focus-visible .orb__dot{box-shadow:0 0 0 3px #8000ff}@media (prefers-reduced-motion:reduce){.orb__float{animation:none}.orb__dot,.orb__pulses{transition:none}}.tune{z-index:10;color:#eee;width:280px;max-height:calc(100dvh - 24px);font:400 12px/1.3 var(--font-plex-sans), system-ui, sans-serif;backdrop-filter:blur(6px);background:#140c1eeb;border:1px solid #fff3;border-radius:10px;flex-direction:column;display:flex;position:fixed;bottom:12px;right:12px}.tune[hidden]{display:none}.tune__head{border-bottom:1px solid #fff2;justify-content:space-between;padding:10px 12px;display:flex}.tune__keys{opacity:.6}.tune__body{padding:6px 12px 12px;overflow-y:auto}.tune fieldset{border:0;margin:10px 0 0;padding:0}.tune legend{color:#d3a2ff;margin-bottom:4px;padding:0;font-weight:700}.tune__row{grid-template-columns:112px 1fr 38px;align-items:center;gap:8px;margin:4px 0;display:grid}.tune__row input[type=color]{background:0 0;border:0;grid-column:2;width:44px;height:22px;padding:0}.tune__row output{text-align:right;opacity:.8;font-variant-numeric:tabular-nums}.tune__actions{gap:8px;margin-top:14px;display:flex}.tune button{color:inherit;cursor:pointer;font:inherit;background:#ffffff14;border:1px solid #fff4;border-radius:6px;flex:1;padding:6px}.tune button:hover{background:#ffffff26}.tune__row input[type=text]{min-width:0;color:inherit;font:inherit;background:#ffffff14;border:1px solid #fff4;border-radius:4px;grid-column:2/4;padding:3px 6px}
