@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#f0edff;--ink-soft:#b4b0cc;--ink-faint:#8d89a6;--glass:#100e1a9e;--glass-strong:#0e0c18d1;--line:#f0edff1a;--line-strong:#f0edff33;--accent:#b9b2ff;--hover:#f0edff14;--press:#f0edff26;--font:"Space Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#05040a;font-size:14px}.app,.stage{position:fixed;inset:0}.glow-canvas{touch-action:none;-webkit-user-select:none;user-select:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.brand{top:max(16px, env(safe-area-inset-top));left:max(18px, env(safe-area-inset-left));transition:opacity .8s var(--ease);pointer-events:none;align-items:center;gap:10px;display:flex;position:fixed}.brand-name{letter-spacing:-.01em;text-shadow:0 0 18px #b9b2ff8c;font-size:17px;font-weight:600}.brand-sep{background:var(--line-strong);width:1px;height:14px}.brand-link{opacity:.72;pointer-events:auto;transition:opacity .2s;display:block}.brand-link:hover,.brand-link:focus-visible{opacity:1}.brand-link img{width:84px;height:auto;display:block}.dock{left:50%;bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 16px);display:flex;position:fixed;transform:translate(-50%)}.toolbar{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);pointer-events:auto;transition:opacity .8s var(--ease), transform .8s var(--ease);border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;padding:5px;display:flex;box-shadow:0 10px 40px #00000073,inset 0 1px #ffffff0d}.is-idle .toolbar{opacity:.34;transform:translateY(3px)}.is-idle .brand{opacity:.4}.toolbar:hover,.toolbar:focus-within{opacity:1;transform:none}.tb-group{gap:2px;display:flex}.tb-divider{background:var(--line);width:1px;height:20px;margin:0 3px}.tb-button{width:42px;height:42px;color:var(--ink-soft);cursor:pointer;touch-action:manipulation;transition:background .18s, color .18s, transform .18s var(--ease);background:0 0;border:0;border-radius:14px;place-items:center;padding:0;display:grid;position:relative}.tb-button:hover{background:var(--hover);color:var(--ink)}.tb-button:active{background:var(--press);transform:scale(.92)}.tb-button:focus-visible,.panel-icon:focus-visible,.preset:focus-visible,.brand-link:focus-visible,.swatch:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.swatch:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.tb-button.is-active{color:#fff;background:#b9b2ff2e;box-shadow:inset 0 0 0 1px #b9b2ff52,0 0 18px #9682ff40}.tb-button.is-chaos{color:#fff;background:#ff3fb433;animation:.7s ease-in-out infinite alternate chaos-pulse}.tb-button.is-chaos.is-paused{animation-play-state:paused}@keyframes chaos-pulse{0%{box-shadow:inset 0 0 0 1px #ff3fb480,0 0 12px #ff3fb44d}to{box-shadow:inset 0 0 0 1px #19e3ff99,0 0 24px #19e3ff66}}.tooltip{z-index:3;border:1px solid var(--line);background:var(--glass-strong);color:var(--ink);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s, transform .14s var(--ease);border-radius:9px;align-items:center;gap:7px;padding:5px 9px;font-size:12.5px;display:flex;position:absolute;bottom:calc(100% + 11px);left:50%;transform:translate(-50%,4px)}.tooltip kbd{background:var(--hover);color:var(--ink-faint);font:inherit;border-radius:5px;padding:0 5px;font-size:11px}@media (hover:hover){.tb-button:hover .tooltip{opacity:1;transition-delay:.22s;transform:translate(-50%)}}.tb-button:focus-visible .tooltip{opacity:1;transform:translate(-50%)}.hint{color:var(--ink-soft);text-align:center;opacity:0;animation:hint 4.2s var(--ease) forwards;background:#0a091280;border-radius:99px;padding:5px 12px;font-size:13px}@keyframes hint{0%{opacity:0;transform:translateY(5px)}8%,78%{opacity:1;transform:none}to{opacity:0}}.panel{border:1px solid var(--line);background:var(--glass-strong);-webkit-backdrop-filter:blur(22px)saturate(1.4);backdrop-filter:blur(22px)saturate(1.4);pointer-events:auto;width:min(330px,100vw - 16px);max-height:min(66dvh,620px);animation:panel-in .32s var(--ease);border-radius:20px;flex-direction:column;display:flex;box-shadow:0 16px 50px #00000080,inset 0 1px #ffffff0d}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}.panel-head{justify-content:space-between;align-items:center;padding:11px 11px 7px 17px;display:flex}.panel-head h2{margin:0;font-size:14px;font-weight:600}.panel-actions{gap:2px;display:flex}.panel-icon{width:30px;height:30px;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;transition:background .15s,color .15s;display:grid}.panel-icon:hover{background:var(--hover);color:var(--ink)}.panel-body{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;gap:16px;padding:5px 17px 17px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:9px;display:flex}.field-label,.slider-head{color:var(--ink-soft);font-size:13px}.presets{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.preset{color:var(--ink-soft);font:inherit;cursor:pointer;background:#f0edff0a;border:1px solid #0000;border-radius:11px;flex-direction:column;gap:5px;padding:5px;font-size:11.5px;transition:background .15s,border-color .15s,color .15s;display:flex}.preset:hover{background:var(--hover);color:var(--ink)}.preset.is-active{border-color:var(--line-strong);color:var(--ink)}.preset-swatch{border-radius:7px;height:20px;display:block}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:1px solid var(--line-strong);cursor:pointer;width:30px;height:30px;transition:transform .18s var(--ease), box-shadow .18s;border-radius:50%;padding:0;display:block;position:relative;overflow:hidden}.swatch:hover{transform:scale(1.1)}.swatch input[type=color]{opacity:0;cursor:pointer;width:200%;height:200%;position:absolute;inset:-6px}.swatch-bg.is-active{box-shadow:0 0 0 2px #0e0c18, 0 0 0 3.5px var(--accent)}.swatch-custom:not(.is-active){background:conic-gradient(from 90deg,#19e3ff,#8b5cff,#ff3fb4,#ffb03a,#19e3ff)}.slider{flex-direction:column;gap:7px;display:flex}.slider-head{justify-content:space-between;display:flex}.slider-head output{color:var(--ink-faint);font-variant-numeric:tabular-nums}.slider input{cursor:pointer;appearance:none;touch-action:none;background:0 0;width:100%;height:20px;margin:0}.slider input::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--fill), var(--line-strong) var(--fill));border-radius:99px;height:4px}.slider input::-moz-range-track{background:linear-gradient(90deg, var(--accent) var(--fill), var(--line-strong) var(--fill));border-radius:99px;height:4px}.slider input::-webkit-slider-thumb{background:var(--ink);-webkit-appearance:none;border:0;border-radius:50%;width:16px;height:16px;margin-top:-6px;box-shadow:0 0 10px #b9b2ffa6}.slider input::-moz-range-thumb{background:var(--ink);border:0;border-radius:50%;width:16px;height:16px;box-shadow:0 0 10px #b9b2ffa6}.slider input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.toggle{color:var(--ink-soft);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex;position:relative}.toggle small{color:var(--ink-faint);margin-top:1px;font-size:11.5px;display:block}.toggle input{opacity:0;cursor:pointer;width:38px;height:22px;margin:0;position:absolute;right:0}.toggle-track{background:var(--line-strong);border-radius:99px;flex:none;width:38px;height:22px;transition:background .2s;position:relative}.toggle-track:after{content:"";background:var(--ink);width:16px;height:16px;transition:transform .22s var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:#b9b2ffb8}.toggle input:checked+.toggle-track:after{transform:translate(16px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:fixed;inset:0}.fallback h1{margin:0;font-size:20px;font-weight:600}.fallback p{max-width:34em;color:var(--ink-soft);margin:0}@media (width<=560px){.tb-divider:nth-of-type(2){display:none}.tb-button{width:44px;height:44px}.toolbar{border-radius:22px;max-width:calc(100vw - 16px)}.tooltip{display:none}.panel{max-height:56dvh}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.hint{animation-duration:4.2s!important}}
