@property --accent{syntax:"<color>";inherits:true;initial-value:#c77dff}:root{--bg:#05040b;--bg-raise:#0b0918;--fg:#eef0ff;--fg-2:#c3c8e6;--dim:#7d84a8;--faint:#4b5070;--accent:#c77dff;--accent-soft:color-mix(in oklch, var(--accent) 22%, transparent);--line:#c8d2ff29;--font-sans:"PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;--fs-xs:10px;--fs-sm:11px;--fs-md:12px;--edge:clamp(20px, 3.2vw, 44px);--edge-top:max(var(--edge), env(safe-area-inset-top));--edge-bottom:max(calc(var(--edge) * .7), env(safe-area-inset-bottom));--edge-left:max(var(--edge), env(safe-area-inset-left));--edge-right:max(var(--edge), env(safe-area-inset-right));--ease-out:cubic-bezier(.22, .8, .3, 1);--ease-in:cubic-bezier(.55, 0, .8, .2);--ease-breathe:cubic-bezier(.45, 0, .55, 1);--t-micro:.14s;--t-control:.26s;--t-block:.56s;transition:--accent 1.8s var(--ease-out)}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:1px solid var(--accent);outline-offset:4px;border-radius:4px}.stage{background:radial-gradient(120% 90% at 50% 50%, var(--bg-raise), var(--bg) 70%);position:fixed;inset:0;overflow:hidden}.field{touch-action:none;opacity:0;width:100%;height:100%;transition:opacity 1.2s var(--ease-out);display:block;position:absolute;inset:0}.gl .field{opacity:1}@media (pointer:fine){.gl .field{cursor:none}}.ui{z-index:2;opacity:0;transition:opacity var(--t-block) var(--ease-out), translate var(--t-block) var(--ease-out);position:absolute;translate:0 6px}.awake .ui{opacity:1;translate:0}.awake .mark{transition-delay:.6s}.awake .sound{transition-delay:.69s}.awake .movements{transition-delay:.78s}.awake .asymptote{transition-delay:.87s}.awake .colophon{transition-delay:.96s}.mark{top:var(--edge-top);left:var(--edge-left);pointer-events:none;align-items:center;gap:14px;display:flex}.glyph{fill:none;stroke-linecap:round;stroke-linejoin:round;width:30px;height:30px;overflow:visible}.glyph-ring{stroke:var(--line);stroke-width:1px}.glyph-spiral{stroke:var(--fg);stroke-width:1.2px;stroke-dasharray:1;stroke-dashoffset:1px}.awake .glyph-spiral{animation:draw 2.4s .7s var(--ease-out) forwards}.glyph-core{fill:var(--accent);stroke:none;filter:drop-shadow(0 0 3px var(--accent));transform-origin:16px 16px;animation:breathe 3.6s var(--ease-breathe) infinite}.wordmark{fill:none;width:58px;height:10px;stroke:var(--fg-2);stroke-width:1.15px;stroke-linecap:square;opacity:.85;overflow:visible}@keyframes draw{to{stroke-dashoffset:0}}@keyframes breathe{0%,to{opacity:.75;scale:.9}50%{opacity:1;scale:1.15}}.sound{top:calc(var(--edge-top) - 7px);right:calc(var(--edge-right) - 10px);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.sound svg{width:20px;height:20px;fill:var(--fg-2);opacity:.55;transition:opacity var(--t-control) var(--ease-out)}.sound rect{transform-box:fill-box;transform-origin:50%;transition:scale var(--t-control) var(--ease-out);scale:1 .5}.sound:hover svg{opacity:.9}.sound[aria-pressed=true] svg{opacity:.95;fill:var(--accent)}.sound[aria-pressed=true] rect{animation:eq 1.1s var(--ease-breathe) infinite alternate}.sound[aria-pressed=true] rect:nth-child(2){animation-duration:.9s;animation-delay:-.35s}.sound[aria-pressed=true] rect:nth-child(3){animation-duration:1.3s;animation-delay:-.7s}.sound[aria-pressed=true] rect:nth-child(4){animation-duration:.8s;animation-delay:-.2s}@keyframes eq{0%{scale:1 .3}to{scale:1}}.movements{right:calc(var(--edge-right) - 8px);flex-direction:column;align-items:flex-end;gap:4px;margin-top:-64px;display:flex;top:50%}.movements button{justify-content:flex-end;align-items:center;width:44px;height:24px;padding-right:8px;display:flex}.movements i{background:var(--dim);opacity:.45;transform-origin:100%;width:30px;height:1px;transition:scale var(--t-block) var(--ease-out), opacity var(--t-block) var(--ease-out);display:block;position:relative;scale:.42 1}.movements b{background:var(--accent);box-shadow:0 0 8px var(--accent);transform-origin:0;position:absolute;inset:0;scale:0 1}.movements button:hover i{opacity:.9;scale:.6 1}.movements [aria-current=true] i{opacity:1;background:var(--line);scale:1}.asymptote{left:var(--edge-left);bottom:var(--edge-bottom);font-family:var(--font-mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;letter-spacing:.14em;color:var(--dim);pointer-events:none;flex-direction:column;gap:8px;display:flex}.asymptote-value{white-space:nowrap}.asymptote-rail{background:var(--line);width:132px;height:1px;position:relative}.asymptote-rail:after{content:"";background:var(--fg-2);opacity:.6;width:1px;height:5px;position:absolute;top:-2px;right:-2px}.asymptote-rail i{background:linear-gradient(90deg, transparent, var(--accent));transform-origin:0;position:absolute;inset:0;scale:0 1}.colophon{left:50%;bottom:var(--edge-bottom);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--faint);white-space:nowrap;gap:16px;display:flex;transform:translate(-50%)}.awake .colophon{opacity:.8}.colophon a{color:inherit;transition:color var(--t-control) var(--ease-out);text-decoration:none}.colophon:hover,.colophon a:hover{color:var(--dim)}.cursor{z-index:3;pointer-events:none;opacity:0;width:48px;height:48px;transition:opacity var(--t-control) var(--ease-out);margin:-24px 0 0 -24px;position:fixed;top:0;left:0}.cursor svg{fill:none;position:absolute;inset:0;overflow:visible;rotate:-90deg}.cursor-ring{stroke:#ffffff6b;stroke-width:1px;transform-origin:24px 24px;transition:scale var(--t-control) var(--ease-out), stroke var(--t-control) var(--ease-out)}.cursor-charge{stroke:var(--accent);stroke-width:1.6px;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 4px var(--accent))}.cursor-dot{background:var(--fg);border-radius:50%;width:4px;height:4px;position:absolute;top:22px;left:22px}.cursor.is-visible{opacity:1}.cursor.is-hover .cursor-ring{stroke:var(--accent);scale:.55}.cursor.is-idle .cursor-ring{animation:invite 2.8s var(--ease-breathe) infinite}@keyframes invite{0%,to{opacity:1;scale:1}50%{opacity:.35;scale:1.35}}@media (pointer:coarse){.cursor{display:none}}.prologue{z-index:4;pointer-events:none;contain:strict;position:fixed;inset:0}.prologue i{display:block;position:absolute;top:50%;left:50%}.prologue-core{opacity:0;width:8px;height:8px;animation:ignite 1.3s .15s var(--ease-out) forwards, pulse 2.8s 1.45s var(--ease-breathe) infinite;background:#fff;border-radius:50%;margin:-4px 0 0 -4px;scale:0;box-shadow:0 0 4px 1px #fff,0 0 16px 5px #e2c4ffb3,0 0 48px 16px #9664ff52,0 0 120px 40px #5a3cdc29}.prologue-halo{opacity:0;width:90vmax;height:90vmax;animation:fade-in 2.4s .3s var(--ease-out) forwards;background:radial-gradient(circle,#aa78ff33 0%,#6e46e617 14%,#281e780d 32%,#0000 60%);border-radius:50%;margin:-45vmax 0 0 -45vmax}.prologue-spike{filter:drop-shadow(0 0 1.5px #c8aaffe6);opacity:0;width:1px;height:64vmin;animation:spike-in 1.8s .45s var(--ease-out) forwards, shimmer 3.4s 2.25s var(--ease-breathe) infinite;background:linear-gradient(#0000 0%,#beaaff14 22%,#dccdff52 40%,#f5eeffd9 48.5%,#fff 50%,#f5eeffd9 51.5%,#dccdff52 60%,#beaaff14 78%,#0000 100%);margin:-32vmin 0 0 -.5px;scale:1 0}.prologue-spike.is-60{rotate:60deg}.prologue-spike.is-120{rotate:-60deg}.prologue-spike.is-minor{height:26vmin;margin-top:-13vmin;animation-name:spike-in-minor,shimmer-minor;rotate:90deg}.prologue-wave{opacity:0;border:1px solid #c8afff80;border-radius:50%;width:16vmin;height:16vmin;margin:-8vmin 0 0 -8vmin;animation:4.2s cubic-bezier(.2,.6,.35,1) 1.2s infinite ripple;scale:.1}.prologue-wave.is-2{animation-delay:2.6s}.prologue-wave.is-3{animation-delay:4s}.prologue-bang{opacity:0;background:radial-gradient(circle,#fff 0%,#fff6fff2 8%,#e6c8ff8c 22%,#966eff2e 42%,#0000 68%);border-radius:50%;width:60vmax;height:60vmax;margin:-30vmax 0 0 -30vmax;scale:0}@keyframes ignite{0%{opacity:0;scale:0}60%{opacity:1;scale:1.35}to{opacity:1;scale:1}}@keyframes pulse{0%,to{scale:1}50%{scale:1.28}}@keyframes fade-in{to{opacity:1}}@keyframes spike-in{0%{opacity:0;scale:1 0}to{opacity:.9;scale:1}}@keyframes spike-in-minor{0%{opacity:0;scale:1 0}to{opacity:.4;scale:1}}@keyframes shimmer{0%,to{opacity:.9}50%{opacity:.62}}@keyframes shimmer-minor{0%,to{opacity:.4}50%{opacity:.22}}@keyframes ripple{0%{opacity:0;scale:.1}12%{opacity:.28}to{opacity:0;scale:6}}.awake .prologue-core{animation:bang-core 1.2s var(--ease-in) forwards}.awake .prologue-spike{animation:bang-spike 1s var(--ease-in) forwards}.awake .prologue-halo,.awake .prologue-wave{animation:fade-out .5s var(--ease-out) forwards}.awake .prologue-bang{animation:1.6s cubic-bezier(.16,.9,.3,1) forwards bang}.gl-done .prologue{display:none}@keyframes bang-core{0%{opacity:1;scale:1}18%{opacity:1;scale:.3}30%{opacity:1;scale:5}to{opacity:0;scale:16}}@keyframes bang-spike{0%{opacity:.9;scale:1}20%{opacity:1;scale:1 .55}34%{opacity:1;scale:1.8 1.9}to{opacity:0;scale:1 3}}@keyframes bang{0%,16%{opacity:0;scale:.02}26%{opacity:1;scale:.7}to{opacity:0;scale:4.5}}@keyframes fade-out{to{opacity:0}}.fallback{display:none;position:absolute;inset:0;overflow:hidden}.no-gl .fallback{display:block}.fallback i,.fallback b{mix-blend-mode:screen;filter:blur(60px);border-radius:50%;position:absolute;top:50%;left:50%}.fallback i{width:56vmin;height:56vmin;margin:-28vmin 0 0 -28vmin;animation:18s linear infinite orbit}.fallback i:first-child{background:radial-gradient(circle at 30% 30%,#ff3ad8,#0000 65%)}.fallback i:nth-child(2){background:radial-gradient(circle at 70% 40%,#00c8ff,#0000 65%);animation-duration:23s;animation-direction:reverse}.fallback i:nth-child(3){background:radial-gradient(circle at 50% 75%,#ffa22e,#0000 65%);animation-duration:29s}.fallback b{filter:blur(1px);background:conic-gradient(#ff2bd6,#00e0ff,#b6ff3a,#ffa22e,#ff2bd6);width:44vmin;height:44vmin;margin:-22vmin 0 0 -22vmin;animation:40s linear infinite orbit;-webkit-mask:radial-gradient(circle,#0000 64%,#000 65% 66%,#0000 67%);mask:radial-gradient(circle,#0000 64%,#000 65% 66%,#0000 67%)}@keyframes orbit{0%{translate:6vmin;rotate:0deg}to{translate:6vmin;rotate:360deg}}@media (max-width:640px){.movements{top:auto;left:50%;right:auto;bottom:calc(var(--edge-bottom) + 34px);flex-direction:row;gap:0;margin:0;transform:translate(-50%)}.movements button{justify-content:center;width:40px;padding:0}.movements i{transform-origin:50%;width:22px}.asymptote{display:none}.colophon{flex-direction:column;align-items:center;gap:3px}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
