@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.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}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-wght-normal-XN7g48iV.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f5f1e9;--paper-2:#ece6da;--card:#fbf8f2;--ink:#1e1a15;--ink-2:#4c453b;--ink-3:#6f6557;--line:#1e1a1524;--line-2:#1e1a1547;--accent:#b0532a;--accent-ink:#9a4521;--accent-soft:#b0532a1a;--on-accent:#fff8f1;--ok:#3e6b4c;--hover:color-mix(in srgb, var(--ink) 7%, var(--paper));--hover-2:color-mix(in srgb, var(--ink) 12%, var(--paper));--serif:"Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans:"Geist Variable", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--t-meta:.75rem;--t-small:.875rem;--t-body:1.0625rem;--t-lead:clamp(1.1875rem, 1.05rem + .6vw, 1.4375rem);--t-h3:clamp(1.5rem, 1.3rem + .9vw, 1.875rem);--t-h2:clamp(2rem, 1.5rem + 2.2vw, 3rem);--t-h1:clamp(2.75rem, 1.8rem + 4.2vw, 4.75rem);--t-display:clamp(4rem, 1.6rem + 10.5vw, 9.5rem);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:144px;--gutter:clamp(16px, 5vw, 80px);--max:1280px;--measure:62ch;--radius:3px;--radius-pill:999px;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-s:.16s;--dur-m:.32s;--dur-l:.64s;--exit:.75;--stagger-in:35ms;--stagger-out:22ms;--overlap:80ms;--shift-s:4px;--shift-m:8px;--shift-l:16px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#14110e;--paper-2:#1c1814;--card:#1a1612;--ink:#efe7da;--ink-2:#c6bbaa;--ink-3:#9a8f80;--line:#efe7da24;--line-2:#efe7da47;--accent:#e08a5e;--accent-ink:#e9976c;--accent-soft:#e08a5e24;--on-accent:#1b0f08;--ok:#8cc49d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#14110e;--paper-2:#1c1814;--card:#1a1612;--ink:#efe7da;--ink-2:#c6bbaa;--ink-3:#9a8f80;--line:#efe7da24;--line-2:#efe7da47;--accent:#e08a5e;--accent-ink:#e9976c;--accent-soft:#e08a5e24;--on-accent:#1b0f08;--ok:#8cc49d}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07080a;--ink:#ece7dd;--ink-2:#b7b0a4;--ink-3:#8a847a;--line:#ece7dd1f;--line-2:#ece7dd38;--glass:#101115b8;--acc:#e6b078;--bar-h:60px;--small:180px;--big:300px;--sans:"Geist Variable", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}body{overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.app{height:var(--app-h,100vh);position:fixed;inset:0;overflow:hidden}.gl{width:100%;height:100%;display:block;position:absolute;inset:0}.bar{z-index:3;height:var(--bar-h);padding:env(safe-area-inset-top,0px) calc(14px + env(safe-area-inset-right,0px)) 0 calc(16px + var(--ah-chrome-inset,0px) + env(safe-area-inset-left,0px));justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.brand{align-items:baseline;gap:14px;min-width:0;display:flex}.brand h1{letter-spacing:.02em;margin:0;font-size:15px;font-weight:500}.status{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;gap:10px;margin:0;display:flex;overflow:hidden}.status span+span:before{content:"·";color:var(--line-2);margin-right:10px}.tools{align-items:center;gap:6px;display:flex}.tool{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(10px);min-width:36px;height:36px;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);transition:border-color var(--dur-s) var(--ease-out), color var(--dur-s) var(--ease-out), background var(--dur-s) var(--ease-out);border-radius:999px;align-items:center;gap:7px;padding:0 10px;display:inline-flex;position:relative}.tool:hover{border-color:var(--line-2);color:var(--ink)}.tool .icon{flex:none;width:18px;height:18px}.tool.primary{color:var(--bg);background:var(--acc);border-color:#0000;padding:0 12px}.tool.off{color:var(--ink-3)}.tool.off .icon{opacity:.55}.tool.on,.tool.on:hover{color:var(--bg);background:var(--acc);border-color:#0000}.tool.rec.on,.tool.rec.on:hover{background:#ff8a7a}.tool.rec.on .icon{animation:blink 1.2s var(--ease-in-out) infinite}.tool .wait{background:var(--acc);min-width:18px;height:18px;color:var(--bg);text-align:center;border-radius:9px;padding:0 4px;font-size:10px;line-height:18px;position:absolute;top:-4px;right:-4px}.tool.on .wait{background:var(--ink);color:var(--bg)}.tool:disabled{cursor:default;color:var(--ink-3)}.tool:disabled .icon{opacity:.55}.tool.lang{padding:0 9px}.volume{border:1px solid var(--line);background:var(--glass);height:36px;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.volume .icon{width:18px;height:18px}.volume input{width:84px;accent-color:var(--acc)}@keyframes blink{50%{opacity:.35}}.mesa{z-index:2;inset:var(--bar-h) 0 0 0;padding:4px 12px calc(12px + env(safe-area-inset-bottom,0px));grid-template:"pulse layers register"1fr"harmony layers atmos"1fr/1fr auto 1fr;place-items:center;display:grid;position:absolute}.plate{--d:var(--small);--pad-top:20px;padding-top:var(--pad-top);flex-direction:column;align-items:center;display:flex;position:relative}.plate.big{--d:var(--big);--pad-top:24px}.plate-pulse{grid-area:pulse}.plate-register{grid-area:register}.plate-layers{grid-area:layers}.plate-atmos{grid-area:atmos}.plate-harmony{grid-area:harmony}.disc{width:var(--d);height:var(--d);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:50%;position:relative}.disc:active{cursor:grabbing}.disc:focus-visible{outline:none}.node{display:none}.rim{left:50%;top:calc(var(--d) / 2 + var(--pad-top));transform:translate(-50%, -50%) translate(calc(cos(var(--a)) * (var(--d) / 2 + 22px)), calc(sin(var(--a)) * (var(--d) / 2 + 13px)));font:500 9.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;transition:color var(--dur-s) var(--ease-out), opacity var(--dur-s) var(--ease-out);background:0 0;border:0;border-radius:6px;padding:4px 5px;position:absolute}.plate.big .rim{transform:translate(-50%, -50%) translate(calc(cos(var(--a)) * (var(--d) / 2 + 26px)), calc(sin(var(--a)) * (var(--d) / 2 + 15px)));font-size:10.5px}.rim.fixed{pointer-events:none;opacity:.8}.rim.on{color:var(--ink)}.rim.sel{color:var(--acc)}.rim.off span{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3);opacity:.5}button.rim{cursor:pointer}button.rim:hover{color:var(--acc)}button.rim:focus-visible{outline:1px solid var(--acc);outline-offset:1px}.label{text-align:center;pointer-events:none;margin-top:26px}.plate.big .label{margin-top:30px}.label h2{font:500 11px/1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin:0}.value{color:var(--ink-3);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:12.5px}.hint{color:var(--ink-3);opacity:.7;margin:3px 0 0;font-size:11px}@media (pointer:coarse){.hint{display:none}}@media (max-aspect-ratio:1){.mesa{grid-template:"pulse register""layers layers"1fr"harmony atmos"/1fr 1fr;row-gap:2px}.label{margin-top:22px}.tool .txt,.volume{display:none}.tool{padding:0 9px}}@media (max-width:720px){.tool .txt,.status span:nth-child(3){display:none}.plate:not(.big) .rim{letter-spacing:.04em;transform:translate(-50%, -50%) translate(calc(cos(var(--a)) * (var(--d) / 2 + 15px)), calc(sin(var(--a)) * (var(--d) / 2 + 11px)));padding:3px;font-size:8.5px}}@media (max-width:430px){.brand{display:none}.bar{padding-right:calc(10px + env(safe-area-inset-right,0px))}.tools{gap:2px}.tool{min-width:32px;height:32px;padding:0 7px}.tool.primary{padding:0 9px}}[data-gfx=none] .disc{box-shadow:inset 0 0 0 1px var(--line-2);background:radial-gradient(circle,#ffffff0f,#ffffff04 70%)}[data-gfx=none] .node{background:var(--ink);width:7%;height:7%;box-shadow:0 0 12px var(--acc);transform:translate(-50%, -50%) translate(calc(var(--nx,0) * var(--d) / 2), calc(var(--ny,0) * var(--d) / 2));border-radius:50%;display:block;position:absolute;top:50%;left:50%}[data-gfx=none] .node.off{box-shadow:inset 0 0 0 1px var(--ink-3);background:0 0}[data-gfx=none] .node.sel{box-shadow:0 0 0 3px var(--acc)}.cover{z-index:5;background:radial-gradient(#07080a59,#07080acc);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.card{text-align:center;max-width:440px;animation:rise var(--dur-l) var(--ease-out) both}.kicker{font:500 11px/1 var(--mono);letter-spacing:.2em;color:var(--ink-3);margin:0 0 14px}.card h2{letter-spacing:-.02em;margin:0;font-size:clamp(44px,9vw,72px);font-weight:300;line-height:1}.tagline{font:500 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin:10px 0 0}.intro{max-width:34ch;color:var(--ink-2);margin:22px auto 0;font-size:16px;line-height:1.55}.start{background:var(--acc);height:48px;color:var(--bg);letter-spacing:.01em;box-shadow:0 0 0 0 var(--acc);transition:box-shadow var(--dur-m) var(--ease-out), transform var(--dur-s) var(--ease-out);border:0;border-radius:999px;margin-top:28px;padding:0 28px;font-size:15px;font-weight:500}.start:hover{box-shadow:0 0 40px -6px var(--acc)}.start:active{transform:scale(.98)}.foot{color:var(--ink-3);margin:22px 0 0;font-size:12px}@keyframes rise{0%{opacity:0;transform:translateY(var(--shift-l,16px))}}.error{z-index:6;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--glass);color:#ffb3a8;border:1px solid #ff8a7a66;border-radius:10px;margin:0;padding:10px 14px;font-size:13px;position:absolute;transform:translate(-50%)}.toast{z-index:6;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);color:var(--ink);opacity:0;pointer-events:none;transition:opacity var(--dur-m) var(--ease-out), transform var(--dur-m) var(--ease-out);overflow-wrap:anywhere;text-align:center;border-radius:999px;max-width:calc(100vw - 32px);margin:0;padding:10px 16px;font-size:13px;position:absolute;transform:translate(-50%,8px)}.toast.show{opacity:1;transform:translate(-50%)}.sheet{z-index:7;-webkit-backdrop-filter:blur(6px);animation:fade var(--dur-m) var(--ease-out);background:#04050699;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.panel{width:min(560px,100%);max-height:calc(var(--app-h,100vh) - 32px);border:1px solid var(--line);animation:rise var(--dur-m) var(--ease-out);background:#0e0f12;border-radius:16px;padding:28px 28px 22px;position:relative;overflow:auto}.panel h2{margin:0;font-size:30px;font-weight:300}.panel h3{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin:22px 0 6px}.panel p{color:var(--ink-2);margin:0;font-size:14.5px;line-height:1.6}.panel .close{position:absolute;top:14px;right:14px}.settings section{margin-top:4px}.settings .readout{color:var(--ink);margin:10px 0 6px;font-size:14.5px}.settings .hint-text{color:var(--ink-3);margin:0 0 10px;font-size:12.5px}.settings .dim{opacity:.4}.settings input[type=range]{accent-color:var(--acc);height:24px;margin:0}.dual{height:28px;margin:6px 0 2px;position:relative}.dual .track{background:var(--line-2);border-radius:2px;height:4px;position:absolute;top:12px;left:8px;right:8px}.dual .fill{top:0;bottom:0;left:var(--lo);right:calc(100% - var(--hi));background:var(--acc);border-radius:2px;position:absolute}.dual input{pointer-events:none;appearance:none;background:0 0;width:100%;margin:0;position:absolute;inset:0}.dual input::-webkit-slider-runnable-track{background:0 0;height:28px}.dual input::-moz-range-track{background:0 0;height:28px}.dual input::-webkit-slider-thumb{appearance:none;pointer-events:auto;background:var(--ink);border:2px solid var(--bg);width:18px;height:18px;box-shadow:0 0 0 1px var(--line-2);cursor:grab;border-radius:50%;margin-top:5px}.dual input::-moz-range-thumb{pointer-events:auto;background:var(--ink);border:2px solid var(--bg);width:14px;height:14px;box-shadow:0 0 0 1px var(--line-2);cursor:grab;border-radius:50%}.dual input:focus-visible{outline:none}.dual input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--acc)}.dual input:disabled::-webkit-slider-thumb{cursor:default}.scale{font:500 10px/1 var(--mono);letter-spacing:.08em;color:var(--ink-3);justify-content:space-between;padding:0 2px;display:flex}.settings .row{grid-template-columns:84px 1fr 24px auto;align-items:center;gap:10px;margin:2px 0;display:grid}.settings .name{color:var(--ink-2);flex-direction:column;gap:2px;font-size:13.5px;display:flex}.settings .row.out .name,.settings .row.out .num{opacity:.5}.settings .tag{font:500 9.5px/1 var(--mono);letter-spacing:.04em;color:var(--ink-3)}.settings .num{font:500 12px/1 var(--mono);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.chips{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.chip{border:1px solid var(--line);height:30px;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);transition:border-color var(--dur-s) var(--ease-out), color var(--dur-s) var(--ease-out), background var(--dur-s) var(--ease-out);background:0 0;border-radius:999px;padding:0 12px}.chip:hover{border-color:var(--line-2);color:var(--ink)}.chip.sel{background:var(--acc);color:var(--bg);border-color:#0000}.switches{gap:10px;margin-top:22px;display:grid}.switch{cursor:pointer;color:var(--ink-2);align-items:center;gap:10px;margin-top:10px;font-size:13.5px;display:flex}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .knob{background:var(--line-2);width:34px;height:20px;transition:background var(--dur-s) var(--ease-out);border-radius:10px;flex:none;position:relative}.switch .knob:after{content:"";background:var(--ink);width:14px;height:14px;transition:transform var(--dur-s) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.knob{background:var(--acc)}.switch input:checked+.knob:after{transform:translate(14px)}.switch input:focus-visible+.knob{outline:2px solid var(--acc);outline-offset:2px}.settings .actions{margin-top:22px}@media (max-width:430px){.settings .row{grid-template-columns:70px 1fr 22px auto;gap:8px}}.license{border-top:1px solid var(--line);margin-top:8px;padding-top:4px}.credit{flex-wrap:wrap;align-items:center;gap:10px;display:flex;margin-top:10px!important}.credit code{border:1px solid var(--line);font:12px/1.5 var(--mono);color:var(--ink);background:#ffffff0a;border-radius:8px;flex:260px;padding:10px 12px}.copy{border:1px solid var(--line-2);height:34px;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:999px;padding:0 14px}.copy:hover{border-color:var(--acc);color:var(--acc)}.note{color:var(--ink-3)!important;margin-top:10px!important;font-size:12.5px!important}.note a{color:var(--acc)}@keyframes fade{0%{opacity:0}}.sr{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
