@font-face{font-family:iAWriterDuoS;src:url(./iAWriterDuoS-Regular-CW_LHp8r.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:iAWriterDuoS;src:url(./iAWriterDuoS-Bold-BR5v5URg.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:iAWriterMonoS;src:url(./iAWriterMonoS-Regular-B8put20p.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:iAWriterMonoS;src:url(./iAWriterMonoS-Bold-DHbjDDRm.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:light;--chrome-bg: #f3f4f6;--chrome-panel: rgba(253, 251, 247, .34);--chrome-panel-solid: #fffdf9;--chrome-panel-hover: rgba(255, 255, 255, .92);--chrome-ink: #101316;--chrome-muted-ink: rgba(16, 19, 22, .65);--chrome-accent: #245a8d;--chrome-bg-glow: #ffffff;--chrome-border: rgba(16, 19, 22, .15);--chrome-input-bg: #ffffff;--chrome-input-ink: #101316;--chrome-input-border: rgba(16, 19, 22, .15);--chrome-hint-bg: rgba(255, 255, 255, .65);--chrome-hint-ink: rgba(16, 19, 22, .65);--chrome-hint-shadow: 0 12px 24px rgba(0, 0, 0, .15);--chrome-banner-border: rgba(0, 0, 0, .24);--chrome-banner-ink: #1e1e1e;--chrome-overlay-scrim: rgba(15, 18, 22, .32);--chrome-dialog-bg: rgba(255, 255, 255, .96);--chrome-dialog-border: rgba(31, 35, 40, .08);--chrome-dialog-shadow: 0 28px 60px rgba(15, 18, 22, .25);--chrome-section-border: rgba(0, 0, 0, .08);--chrome-soft-surface: rgba(255, 253, 249, .9);--chrome-soft-field: rgba(255, 254, 251, .88);--chrome-soft-field-border: rgba(0, 0, 0, .15);--chrome-soft-muted: rgba(0, 0, 0, .5);--chrome-tag-bg: rgba(31, 35, 40, .08);--chrome-warning-bg: rgba(255, 236, 179, .9);--chrome-warning-ink: #000000;--chrome-preview-bg: rgba(255, 255, 255, .72);--chrome-preview-border: rgba(31, 35, 40, .12);--chrome-preview-over-bg: rgba(180, 90, 90, .18);--chrome-preview-over-border: rgba(180, 90, 90, .35);--chrome-preview-mark: rgba(31, 35, 40, .6);--chrome-button-bg: var(--chrome-accent);--chrome-button-ink: #ffffff;--chrome-button-border: transparent;--chrome-button-active-bg: color-mix(in srgb, var(--chrome-accent) 82%, #000000);--chrome-button-active-border: color-mix(in srgb, var(--chrome-accent) 92%, #000000);--chrome-button-active-text: #ffffff;--canvas-bg: #fdfbf7;--canvas-map-mode: #2ea44f;--canvas-node: #2d7aa6;--canvas-node-active: #c94b3d;--canvas-node-inactive: rgba(255, 255, 255, .02);--canvas-node-custom-inactive: rgba(210, 210, 210, .2);--canvas-node-shadow: rgba(0, 0, 0, .22);--canvas-node-highlight: rgba(255, 255, 255, .35);--canvas-hover-ring-fill: rgba(255, 168, 200, .25);--canvas-hover-ring-stroke: rgba(255, 168, 200, .6);--canvas-edge: rgba(0, 0, 0, .18);--canvas-node-stroke: rgba(0, 0, 0, .35);--canvas-text-primary: #1e1e1e;--canvas-text-secondary: #2a2a2a;--canvas-lfo: #2f6df6;--canvas-play-fill: #f3d64d;--canvas-looper-fill: #f0bf3a;--canvas-wheel-line: #000000;--canvas-wheel-ring: #000000;--canvas-wheel-text: #000000;--layout-page: #ffffff;--layout-page-border: rgba(16, 19, 22, .15);--layout-page-shadow: rgba(16, 19, 22, .18);--layout-edge: rgba(0, 0, 0, .18);--layout-node-stroke: rgba(0, 0, 0, .35);--layout-node-active: #000000;--layout-text-primary: #000000;--layout-text-secondary: #000000;--layout-lfo: #000000;--layout-play-fill: #000000;--layout-looper-fill: #000000;--layout-wheel-line: #000000;--layout-wheel-ring: #000000;--layout-wheel-text: #000000;--font-title: "Noto Serif";--font-ratio: "Noto Serif";--font-note: "Lexend";--font-triangle-label: "Noto Serif";--font-custom-label: "Noto Serif";--font-key-mapping: "Lexend";--left-panel-width: 180px;--left-panel-left: 16px;--left-panel-inner: 86%}@font-face{font-family:HEJI2Text;src:url(./HEJI2Text-B5Fkx4lF.otf) format("opentype");font-display:swap}*{box-sizing:border-box}body{--bg: var(--chrome-bg);--panel: var(--chrome-panel);--panel-solid: var(--chrome-panel-solid);--panel-hover: var(--chrome-panel-hover);--ink: var(--chrome-ink);--accent: var(--chrome-accent);--map-mode: var(--canvas-map-mode);--node: var(--canvas-node);--node-active: var(--canvas-node-active);--border: var(--chrome-border);--canvas: var(--canvas-bg);--muted-ink: var(--chrome-muted-ink);--line: var(--chrome-border);--edge: var(--canvas-edge);--node-stroke: var(--canvas-node-stroke);--text-primary: var(--canvas-text-primary);--text-secondary: var(--canvas-text-secondary);--page: var(--layout-page);--page-border: var(--layout-page-border);--page-shadow: var(--layout-page-shadow);--lfo: var(--canvas-lfo);--play-fill: var(--canvas-play-fill);--looper-fill: var(--canvas-looper-fill);--wheel-line: var(--canvas-wheel-line);--wheel-ring: var(--canvas-wheel-ring);--wheel-text: var(--canvas-wheel-text);--button-bg: var(--chrome-button-bg);--button-ink: var(--chrome-button-ink);--button-border: var(--chrome-button-border);--button-active-bg: var(--chrome-button-active-bg);--button-active-border: var(--chrome-button-active-border);--button-active-text: var(--chrome-button-active-text);margin:0;font-family:Lexend,Helvetica Neue,sans-serif;background:radial-gradient(circle at top left,var(--chrome-bg-glow),var(--bg));color:var(--muted-ink);transition:background .3s ease,color .3s ease}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;pointer-events:none;transition:background .3s ease;z-index:1}dialog,[role=dialog]{color:var(--chrome-ink)}dialog input,dialog select,dialog textarea,[role=dialog] input,[role=dialog] select,[role=dialog] textarea{color:var(--chrome-input-ink)}body.theme-dark,body[data-theme=dark]{color-scheme:dark;--chrome-bg: #0c1117;--chrome-panel: rgba(10, 15, 20, .36);--chrome-panel-solid: #0d1218;--chrome-panel-hover: rgba(14, 19, 25, .9);--chrome-ink: #e8edf2;--chrome-muted-ink: rgba(232, 237, 242, .72);--chrome-accent: #4aa3df;--chrome-bg-glow: #0f151d;--chrome-border: rgba(231, 237, 244, .18);--chrome-input-bg: #0f151d;--chrome-input-ink: #ffffff;--chrome-input-border: #ffffff;--chrome-hint-bg: rgba(6, 8, 11, .85);--chrome-hint-ink: #f5f5f0;--chrome-hint-shadow: 0 12px 24px rgba(0, 0, 0, .75);--chrome-banner-border: rgba(255, 255, 255, .3);--chrome-banner-ink: #f5f5f5;--chrome-overlay-scrim: rgba(10, 10, 14, .6);--chrome-dialog-bg: #0d1218;--chrome-dialog-border: rgba(255, 255, 255, .08);--chrome-dialog-shadow: 0 28px 60px rgba(0, 0, 0, .45);--chrome-section-border: rgba(255, 255, 255, .08);--chrome-soft-surface: #0e1319;--chrome-soft-field: #0d1218;--chrome-soft-field-border: rgba(255, 255, 255, .2);--chrome-soft-muted: rgba(255, 255, 255, .55);--chrome-tag-bg: rgba(255, 255, 255, .08);--chrome-warning-bg: rgba(255, 236, 179, .85);--chrome-warning-ink: #000000;--chrome-preview-bg: rgba(10, 12, 16, .45);--chrome-preview-border: rgba(255, 255, 255, .08);--chrome-preview-over-bg: rgba(120, 40, 40, .35);--chrome-preview-over-border: rgba(180, 90, 90, .5);--chrome-preview-mark: rgba(255, 255, 255, .65);--chrome-button-bg: color-mix(in srgb, var(--chrome-panel-solid) 88%, #1d2a3a);--chrome-button-ink: #e8edf2;--chrome-button-border: rgba(231, 237, 244, .22);--chrome-button-active-bg: color-mix(in srgb, var(--chrome-accent) 32%, var(--chrome-panel-solid));--chrome-button-active-border: color-mix(in srgb, var(--chrome-accent) 72%, #ffffff);--chrome-button-active-text: #f5f7fb;--canvas-bg: #0a0f14;--canvas-map-mode: #33c46b;--canvas-node: #59b0dd;--canvas-node-active: #f5a15b;--canvas-node-inactive: rgba(255, 255, 255, .03);--canvas-node-custom-inactive: rgba(220, 228, 236, .2);--canvas-node-shadow: rgba(0, 0, 0, .42);--canvas-node-highlight: rgba(255, 255, 255, .42);--canvas-hover-ring-fill: rgba(142, 196, 255, .22);--canvas-hover-ring-stroke: rgba(142, 196, 255, .62);--canvas-edge: rgba(230, 238, 246, .16);--canvas-node-stroke: rgba(230, 238, 246, .35);--canvas-text-primary: #e8edf2;--canvas-text-secondary: #b8c1cb;--canvas-lfo: #6cb7ff;--canvas-play-fill: #f3d64d;--canvas-looper-fill: #f0bf3a;--canvas-wheel-line: #f5f7fb;--canvas-wheel-ring: #f5f7fb;--canvas-wheel-text: #f5f7fb;background:radial-gradient(circle at top left,var(--chrome-bg-glow),var(--bg))}body[data-theme=sepia]{color-scheme:light;--chrome-bg: #efe4d1;--chrome-panel: rgba(245, 236, 221, .36);--chrome-panel-solid: #f8f1e4;--chrome-panel-hover: rgba(248, 241, 230, .92);--chrome-ink: #3a2b1f;--chrome-muted-ink: rgba(58, 43, 31, .72);--chrome-accent: #8c4f2b;--chrome-bg-glow: #fff6e8;--chrome-border: rgba(92, 63, 40, .18);--chrome-input-bg: #fffaf0;--chrome-input-ink: #3a2b1f;--chrome-input-border: rgba(92, 63, 40, .2);--chrome-hint-bg: rgba(255, 249, 240, .86);--chrome-hint-ink: #4a3627;--chrome-hint-shadow: 0 12px 24px rgba(80, 48, 26, .18);--chrome-banner-border: rgba(92, 63, 40, .22);--chrome-banner-ink: #3a2b1f;--chrome-overlay-scrim: rgba(74, 54, 39, .22);--chrome-dialog-bg: rgba(250, 244, 233, .97);--chrome-dialog-border: rgba(92, 63, 40, .12);--chrome-dialog-shadow: 0 28px 60px rgba(80, 48, 26, .18);--chrome-section-border: rgba(92, 63, 40, .12);--chrome-soft-surface: rgba(247, 239, 225, .9);--chrome-soft-field: rgba(249, 242, 231, .88);--chrome-soft-field-border: rgba(92, 63, 40, .16);--chrome-soft-muted: rgba(92, 63, 40, .58);--chrome-tag-bg: rgba(140, 79, 43, .1);--chrome-warning-bg: rgba(248, 220, 168, .92);--chrome-warning-ink: #3a2b1f;--chrome-preview-bg: rgba(255, 250, 242, .74);--chrome-preview-border: rgba(92, 63, 40, .16);--chrome-preview-over-bg: rgba(168, 93, 66, .18);--chrome-preview-over-border: rgba(168, 93, 66, .34);--chrome-preview-mark: rgba(92, 63, 40, .65);--canvas-bg: #f5ecdd;--canvas-map-mode: #5f7a34;--canvas-node: #7a5a3d;--canvas-node-active: #b3552d;--canvas-node-inactive: rgba(99, 74, 52, .06);--canvas-node-custom-inactive: rgba(176, 146, 111, .2);--canvas-node-shadow: rgba(80, 48, 26, .24);--canvas-node-highlight: rgba(255, 244, 224, .38);--canvas-hover-ring-fill: rgba(189, 132, 98, .22);--canvas-hover-ring-stroke: rgba(189, 132, 98, .58);--canvas-edge: rgba(58, 43, 31, .2);--canvas-node-stroke: rgba(58, 43, 31, .35);--canvas-text-primary: #3a2b1f;--canvas-text-secondary: #5e4837;--canvas-lfo: #346b8c;--canvas-play-fill: #d8b14d;--canvas-looper-fill: #c98d34;--canvas-wheel-line: #3a2b1f;--canvas-wheel-ring: #3a2b1f;--canvas-wheel-text: #3a2b1f;background:radial-gradient(circle at top left,var(--chrome-bg-glow),var(--bg))}body[data-theme=solarized-light]{color-scheme:light;--chrome-bg: #f6efe2;--chrome-panel: rgba(238, 232, 213, .36);--chrome-panel-solid: #f3efdf;--chrome-panel-hover: rgba(243, 239, 223, .92);--chrome-ink: #586e75;--chrome-muted-ink: rgba(88, 110, 117, .74);--chrome-accent: #268bd2;--chrome-bg-glow: #fff8eb;--chrome-border: rgba(88, 110, 117, .18);--chrome-input-bg: #f4eedf;--chrome-input-ink: #586e75;--chrome-input-border: rgba(88, 110, 117, .22);--chrome-hint-bg: rgba(250, 243, 223, .88);--chrome-hint-ink: #586e75;--chrome-hint-shadow: 0 12px 24px rgba(101, 123, 131, .18);--chrome-banner-border: rgba(88, 110, 117, .24);--chrome-banner-ink: #586e75;--chrome-overlay-scrim: rgba(88, 110, 117, .22);--chrome-dialog-bg: rgba(247, 241, 224, .97);--chrome-dialog-border: rgba(88, 110, 117, .12);--chrome-dialog-shadow: 0 28px 60px rgba(101, 123, 131, .18);--chrome-section-border: rgba(88, 110, 117, .12);--chrome-soft-surface: rgba(241, 236, 219, .9);--chrome-soft-field: rgba(244, 240, 226, .88);--chrome-soft-field-border: rgba(88, 110, 117, .16);--chrome-soft-muted: rgba(88, 110, 117, .6);--chrome-tag-bg: rgba(38, 139, 210, .1);--chrome-warning-bg: rgba(203, 75, 22, .18);--chrome-warning-ink: #8b3e16;--chrome-preview-bg: rgba(246, 239, 224, .76);--chrome-preview-border: rgba(88, 110, 117, .16);--chrome-preview-over-bg: rgba(211, 54, 130, .12);--chrome-preview-over-border: rgba(211, 54, 130, .26);--chrome-preview-mark: rgba(88, 110, 117, .65);--canvas-bg: #eee8d5;--canvas-map-mode: #859900;--canvas-node: #268bd2;--canvas-node-active: #cb4b16;--canvas-node-inactive: rgba(255, 255, 255, .05);--canvas-node-custom-inactive: rgba(147, 161, 161, .22);--canvas-node-shadow: rgba(101, 123, 131, .22);--canvas-node-highlight: rgba(255, 255, 255, .42);--canvas-hover-ring-fill: rgba(42, 161, 152, .16);--canvas-hover-ring-stroke: rgba(42, 161, 152, .52);--canvas-edge: rgba(88, 110, 117, .22);--canvas-node-stroke: rgba(88, 110, 117, .38);--canvas-text-primary: #586e75;--canvas-text-secondary: #657b83;--canvas-lfo: #2aa198;--canvas-play-fill: #b58900;--canvas-looper-fill: #cb4b16;--canvas-wheel-line: #586e75;--canvas-wheel-ring: #586e75;--canvas-wheel-text: #586e75;background:radial-gradient(circle at top left,var(--chrome-bg-glow),var(--bg))}body[data-theme=solarized-dark]{color-scheme:dark;--chrome-bg: #002b36;--chrome-panel: rgba(0, 43, 54, .38);--chrome-panel-solid: #07313c;--chrome-panel-hover: rgba(7, 49, 60, .9);--chrome-ink: #eee8d5;--chrome-muted-ink: rgba(238, 232, 213, .74);--chrome-accent: #268bd2;--chrome-bg-glow: #06313c;--chrome-border: rgba(147, 161, 161, .22);--chrome-input-bg: #002b36;--chrome-input-ink: #eee8d5;--chrome-input-border: rgba(147, 161, 161, .32);--chrome-hint-bg: rgba(0, 43, 54, .9);--chrome-hint-ink: #eee8d5;--chrome-hint-shadow: 0 12px 24px rgba(0, 0, 0, .45);--chrome-banner-border: rgba(147, 161, 161, .28);--chrome-banner-ink: #eee8d5;--chrome-overlay-scrim: rgba(0, 24, 30, .58);--chrome-dialog-bg: #07313c;--chrome-dialog-border: rgba(147, 161, 161, .14);--chrome-dialog-shadow: 0 28px 60px rgba(0, 0, 0, .42);--chrome-section-border: rgba(147, 161, 161, .12);--chrome-soft-surface: #083540;--chrome-soft-field: #07313c;--chrome-soft-field-border: rgba(147, 161, 161, .18);--chrome-soft-muted: rgba(147, 161, 161, .76);--chrome-tag-bg: rgba(38, 139, 210, .1);--chrome-warning-bg: rgba(203, 75, 22, .24);--chrome-warning-ink: #fdf6e3;--chrome-preview-bg: rgba(0, 43, 54, .56);--chrome-preview-border: rgba(147, 161, 161, .16);--chrome-preview-over-bg: rgba(211, 54, 130, .18);--chrome-preview-over-border: rgba(211, 54, 130, .3);--chrome-preview-mark: rgba(238, 232, 213, .68);--chrome-button-bg: color-mix(in srgb, var(--chrome-panel-solid) 92%, #021f27);--chrome-button-ink: #eee8d5;--chrome-button-border: rgba(147, 161, 161, .22);--chrome-button-active-bg: color-mix(in srgb, var(--chrome-accent) 28%, var(--chrome-panel-solid));--chrome-button-active-border: color-mix(in srgb, var(--chrome-accent) 70%, #93a1a1);--chrome-button-active-text: #fdf6e3;--canvas-bg: #002b36;--canvas-map-mode: #859900;--canvas-node: #268bd2;--canvas-node-active: #cb4b16;--canvas-node-inactive: rgba(238, 232, 213, .04);--canvas-node-custom-inactive: rgba(147, 161, 161, .22);--canvas-node-shadow: rgba(0, 0, 0, .34);--canvas-node-highlight: rgba(238, 232, 213, .3);--canvas-hover-ring-fill: rgba(42, 161, 152, .16);--canvas-hover-ring-stroke: rgba(42, 161, 152, .52);--canvas-edge: rgba(147, 161, 161, .2);--canvas-node-stroke: rgba(147, 161, 161, .34);--canvas-text-primary: #eee8d5;--canvas-text-secondary: #93a1a1;--canvas-lfo: #2aa198;--canvas-play-fill: #b58900;--canvas-looper-fill: #cb4b16;--canvas-wheel-line: #eee8d5;--canvas-wheel-ring: #eee8d5;--canvas-wheel-text: #eee8d5;background:radial-gradient(circle at top left,var(--chrome-bg-glow),var(--bg))}.app{position:relative;z-index:2;padding:0}.top-bar{display:flex;align-items:center;gap:14px;padding:0;position:relative}.title{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding-left:30px;width:182px;min-width:182px;flex-shrink:0}.title h1{margin:0;font-size:22px;letter-spacing:.3px;font-weight:200;white-space:nowrap}.title p{margin:0;color:var(--muted-ink);font-size:10px;line-height:2}.ui-hint{margin:0;color:var(--chrome-hint-ink);font-size:12px;line-height:1.4;white-space:pre-line;cursor:pointer;display:inline-block;width:fit-content;max-width:80vw;position:relative;z-index:0;pointer-events:auto;background:var(--chrome-hint-bg);border-radius:12px;padding:10px 14px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--chrome-hint-shadow)}.creator{margin:0;font-size:10px;color:var(--muted-ink);opacity:.6;white-space:nowrap}.creator a,.creator a:visited{color:inherit}.panel{background:var(--panel);color:var(--chrome-ink);padding:12px 16px;border-radius:14px;border:1px solid var(--border);opacity:.34;transition:opacity .2s ease,background-color .2s ease,border-color .2s ease}.panel:hover,.panel:focus-within{background:var(--panel-hover);opacity:1}.panel.panel-open{background:var(--panel-hover);opacity:1;transition:none}.panel.panel-open:hover,.panel.panel-open:focus-within{background:var(--panel-hover);opacity:1}.panel.controls{position:relative}.help-toggle{position:absolute;bottom:-20px;left:16px;display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted-ink);pointer-events:auto}.help-toggle-right{position:fixed;top:75;right:18px;left:auto;bottom:auto;z-index:9;border:none;padding:6px 10px}.help-toggle input{width:14px;height:14px;margin:0}.help-toggle label{font-size:11px;letter-spacing:.2px;margin:0}.help-toggle-link,.help-toggle-link:visited{font-size:11px;color:var(--accent);text-decoration:underline}.help-toggle-link:hover,.help-toggle-link:focus{color:var(--ink)}body.performance-mode .panel,body.performance-mode .title,body.performance-mode .help-toggle,body.performance-mode .ui-hint,body.performance-mode .keyboard-help,body.performance-mode .preset-overlay,body.performance-mode .interval-chart-overlay,body.performance-mode .layout-overlay,body.performance-mode .layout-font-popover,body.performance-mode .layout-space-popover,body.performance-mode .layout-key-mapping-popover,body.performance-mode .file-share-popover,body.performance-mode dialog,body.performance-mode [role=dialog]{display:none!important}.controls{flex:1;display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center}.controls-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;flex:1}.hint-row{position:fixed;right:18px;top:105px;width:auto;max-width:min(320px,45vw);display:inline-flex;align-items:flex-start;justify-content:flex-end;z-index:0;min-height:18px;pointer-events:none}.banner-message{position:fixed;top:10%;left:50%;transform:translate(-50%);z-index:10;width:auto;max-width:min(92vw,860px);padding:3px 10px;border-radius:999px;border:1px solid var(--chrome-banner-border);text-align:center;pointer-events:none;font-size:13px;line-height:1.35;display:none;background:transparent;color:var(--chrome-banner-ink);box-shadow:none;opacity:1;transition:opacity .5s ease}.banner-message button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;text-decoration:underline;padding:0}.banner-message button:hover{color:var(--ink)}.panel-subtext{margin-top:6px;font-size:11px;color:var(--text-secondary);line-height:1.4}.custom-ratio-dialog textarea{width:100%;min-height:120px;resize:vertical;padding:8px 10px;border-radius:12px;border:1px solid var(--chrome-soft-field-border);font-family:Lexend,sans-serif;font-size:13px;line-height:1.4;background:var(--chrome-soft-field);color:var(--ink)}.banner-message:not([hidden]){display:block;pointer-events:auto;background:transparent;color:var(--chrome-banner-ink);box-shadow:none}.banner-message.is-fading{opacity:0}.layout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#78829138;pointer-events:none;z-index:5}.control-actions,.control-actions-group{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}.control-actions-panel{background:var(--panel);color:var(--chrome-ink);padding:5px 8px;border-radius:9px;border:1px solid var(--border);gap:0;opacity:.34;transition:opacity .2s ease,background-color .2s ease,border-color .2s ease}.control-actions-panel:hover,.control-actions-panel:focus-within{background:var(--panel-hover);opacity:1}.control-actions-panel.panel-open{background:var(--panel-hover);opacity:1;transition:none}.control-actions-panel>.control-group>button:first-child{background:transparent;color:var(--muted-ink);border:none;border-right:1px solid var(--border);border-radius:0;padding:7px 13px;font-size:12px}.control-actions-panel>.control-group:first-child>button:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.control-actions-panel>.options-toggle>button:first-child{border-right:none;border-top-right-radius:8px;border-bottom-right-radius:8px}.control-actions-panel>#reset-lattice{margin-left:8px}.control-actions-panel>#audio-toggle,.control-actions-panel>#open-overtones,.control-actions-panel>#open-tuner,.control-actions-panel>.ratio-wheel-toggle{margin-left:4px}.control-actions-panel>.control-group>button:first-child:hover,.control-actions-panel>.control-group>button:first-child:focus{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.control-actions-panel>.control-group>button[aria-expanded=true]:first-child{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.control-actions-divider{width:1px;height:22px;background:var(--border);opacity:.7}.control-group{display:grid;gap:6px}.export-check-status{font-size:11px;line-height:1.35;color:var(--text-secondary);min-height:14px}.control-group-inline{grid-template-columns:auto 1fr;align-items:center;column-gap:10px;row-gap:0}.ratios-inline{display:inline-flex;align-items:center;width:318px;gap:6px;padding:0;border-radius:0;border:none;background:transparent;box-sizing:border-box}.ratios-label{display:block;width:69px;font-size:12px;letter-spacing:.2px}.ratio-axis-label{font-size:10px;letter-spacing:.8px;text-transform:uppercase;opacity:.75}.ratios-inline select{height:24px;padding:2px 8px;font-size:12px;border-radius:8px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.control-inline{display:flex;gap:8px;align-items:center}.subordinate-control{margin-left:0}.subordinate-control.is-disabled{opacity:.45}.fundamental-inline{gap:6px}.fundamental-inline select,.fundamental-inline input{height:24px;padding:2px 8px;border-radius:8px;font-size:12px;line-height:1.2}.fundamental-inline input{width:94.3px;min-width:92px;box-sizing:border-box}.fundamental-inline input::-webkit-outer-spin-button,.fundamental-inline input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fundamental-inline input[type=number]{-moz-appearance:textfield}.hz-suffix{font-size:10px;letter-spacing:.2px;color:var(--muted-ink);margin-left:4px}.tiny-button{height:22px;min-width:30px;padding:0 6px;border-radius:8px;font-size:11px;line-height:1}.inline-label{font-size:12px;letter-spacing:.2px;color:var(--muted-ink)}.synth-mode-label{font-size:12px;font-weight:600}.synth-mode-toggle{display:flex;gap:8px;flex-wrap:wrap}.synth-mode-option{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink)}.fundamental-spelling-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.control-readout{font-size:11px;color:var(--muted-ink)}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink)}.arrow-sep{font-size:12px;color:var(--muted-ink)}.radio-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:13px}.radio-row label{display:flex;gap:6px;align-items:center}.radio-option{display:inline-flex;align-items:center;gap:6px;font-size:12px}label{font-size:13px;letter-spacing:.2px}input[type=number],select{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--chrome-input-border);background:var(--chrome-input-bg);color:var(--chrome-input-ink);font-size:14px}.button-ghost{background:transparent;border:1px solid var(--border);color:var(--ink)}.button-ghost:hover,.button-ghost:focus{border-color:var(--accent);color:var(--accent)}#reset-lattice{opacity:.45}#reset-lattice:hover,#reset-lattice:focus{opacity:1}.narrow-select{max-width:110px}input[type=range]{width:100%}#ratio-wheel-mini{width:36px;height:36px}#volume-readout{font-size:12px;opacity:.75}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--button-border);background:var(--button-bg);color:var(--button-ink);padding:6px 14px;border-radius:999px;font-size:13px;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}button:active{transform:translateY(1px)}.button-on{background:var(--play-fill);color:#1a1a1a}.button-on:active{transform:translateY(1px)}.nav-3d{position:fixed;top:100px;left:var(--left-panel-left);width:var(--left-panel-width);z-index:9}.nav-3d[hidden],#nav-3d[data-mode="2d"] [data-nav-mode="3d"],#nav-3d[data-mode="3d"] [data-nav-mode="2d"]{display:none}.nav-3d-panel{display:grid;gap:8px;max-height:calc(100vh - 140px);overflow:auto;--panel-inner-width: var(--left-panel-inner)}.nav-3d-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;background:transparent;color:var(--ink);border:1px solid var(--border);border-radius:9px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;cursor:pointer}.nav-3d-chevron{font-size:12px;transition:transform .2s ease}.nav-3d-content{display:grid;gap:8px}.nav-3d-content>*{width:var(--panel-inner-width);justify-self:center}.nav-3d-content .control-group,.nav-3d-content .control-inline,.nav-3d-content .nav-3d-buttons{width:100%;min-width:0}.nav-3d-panel.is-collapsed .nav-3d-content{display:none}.nav-3d-panel.is-collapsed .nav-3d-chevron{transform:rotate(-90deg)}.nav-3d-section{display:grid;gap:6px}.nav-3d-title{font-size:11px;letter-spacing:.5px;text-transform:uppercase;opacity:.7}.nav-3d-accordion-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;background:none;border:0;font-size:11px;letter-spacing:.5px;text-transform:uppercase;opacity:.7;cursor:pointer}.nav-3d-accordion-chevron{transition:transform .2s ease}.nav-3d-accordion-toggle.is-collapsed .nav-3d-accordion-chevron{transform:rotate(-90deg)}.nav-3d-accordion-body[hidden]{display:none}.nav-3d-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.nav-3d-subsection{display:grid;gap:6px}.nav-3d-subtitle{font-size:10px;letter-spacing:.2px;text-transform:uppercase;opacity:.55}.nav-3d-inline-slider{gap:6px}.nav-3d-inline-slider label{font-size:11px;color:var(--muted-ink);min-width:62px}.nav-3d-inline-slider input[type=range]{flex:1;min-width:0;height:14px}.nav-3d button{background:transparent;color:var(--ink);border:1px solid var(--border);padding:5px 8px;border-radius:9px;font-size:12px}.nav-3d-view-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.nav-3d-toggle-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.nav-3d-toggle-buttons-3{grid-template-columns:repeat(3,1fr)}.nav-3d-view-modes button,.nav-3d-toggle-buttons button{background:transparent;color:var(--ink);border:1px solid var(--border);padding:6px 8px;font-size:12px;border-radius:0}.nav-3d-view-modes button:first-child{border-top-left-radius:9px;border-bottom-left-radius:9px}.nav-3d-view-modes button:last-child{border-top-right-radius:9px;border-bottom-right-radius:9px}.nav-3d-view-modes button+button{margin-left:-1px}.nav-3d-toggle-buttons button:first-child{border-top-left-radius:9px;border-bottom-left-radius:9px}.nav-3d-toggle-buttons button:last-child{border-top-right-radius:9px;border-bottom-right-radius:9px}.nav-3d-toggle-buttons button+button{margin-left:-1px}.nav-3d-view-modes button.is-active,.nav-3d-toggle-buttons button.is-active{background:var(--accent);color:#fff;border-color:var(--accent);position:relative;z-index:1}.nav-3d-toggle{display:flex;gap:6px;align-items:center;font-size:13px}.nav-3d-toggle-small{font-size:12px}.ratio-wheel-button{padding:6px;border-radius:999px;background:transparent;border:1px solid var(--border)}.ratio-wheel-toggle{position:relative;display:inline-flex}.ratio-wheel-panel{position:fixed;left:var(--ratio-wheel-left, 24px);top:var(--ratio-wheel-top, 120px);width:min(420px,90vw);display:grid;gap:12px;z-index:3}.ratio-wheel-panel[hidden]{display:none}.ratio-wheel-panel-header{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.6px}.ratio-wheel-panel canvas{width:min(420px,100%);height:auto;max-height:min(70vh,560px);margin:0 auto}.options-toggle{position:relative}.options-toggle button{display:inline-flex;align-items:center;gap:8px}.options-panel{position:absolute;top:calc(100% + 8px);left:-120px;min-width:220px;padding:12px 14px;display:grid;gap:10px;z-index:3;border-radius:9px;opacity:1;box-shadow:0 4px 16px #0000001a}.options-panel[hidden]{display:none}.options-panel .control-group{display:grid;gap:6px}.options-panel button{justify-self:start}.inline-link{background:none;border:none!important;color:var(--accent);font-size:11px;text-decoration:underline;cursor:pointer;padding:0!important;border-radius:0!important;flex:0 0 auto}.inline-link:hover{color:var(--ink)}.options-panel .button-full{justify-self:start;background:transparent;color:var(--accent);border:none;padding:4px 6px;font-size:12px;border-radius:5px}.options-panel .button-full:hover,.options-panel .button-full:focus{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}#tilt{width:120px;min-width:120px;max-width:120px}#tilt-readout{width:60px;min-width:60px;max-width:60px;text-align:right;font-variant-numeric:tabular-nums}.file-panel .button-full,.calculate-panel .button-full{background:transparent;color:var(--ink);border:none;border-radius:6px;padding:7px 10px;width:100%;display:flex;align-items:center;justify-content:flex-start;text-align:left;font-size:13px}.file-panel .button-full:hover,.file-panel .button-full:focus,.calculate-panel .button-full:hover,.calculate-panel .button-full:focus{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}.layout-float{position:fixed;top:100px;left:var(--left-panel-left);width:min(var(--left-panel-width),100%);--panel-inner-width: var(--left-panel-inner);z-index:3;display:grid;gap:10px;max-height:calc(100vh - 140px);overflow:auto;overflow-x:hidden}.layout-float[hidden]{display:none}.layout-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:transparent;color:var(--ink);border:1px solid var(--border);border-radius:12px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;cursor:pointer}.layout-chevron{font-size:12px;transition:transform .2s ease}.layout-content{display:grid;gap:8px}.layout-content>*{width:var(--panel-inner-width);justify-self:center}.layout-float.is-collapsed .layout-content{display:none}.layout-float.is-collapsed .layout-chevron{transform:rotate(-90deg)}.layout-header{font-weight:600}.layout-float .button-full{width:100%;display:flex;align-items:center;justify-content:center}.layout-float label{font-size:11px;letter-spacing:.5px;opacity:.7}.layout-float label[for=layout-unify-size]{font-size:12px;letter-spacing:.4px;text-transform:uppercase;opacity:.7}.layout-float .control-inline,.layout-float .control-inline span,.layout-float .control-inline label{font-size:11px;letter-spacing:0;text-transform:none;opacity:1}.layout-float .control-inline{flex-wrap:wrap}.layout-float input[type=checkbox]:disabled+span{opacity:.45;cursor:not-allowed}.layout-float .layout-align-row{width:100%;flex-wrap:nowrap}.layout-float .layout-align-row+.layout-align-row{margin-top:6px}.layout-float .layout-align-row button{flex:1 1 0}.layout-float input[type=number],.layout-float select{width:100%;padding:6px 8px;font-size:12px}.layout-float input[type=range]{width:100%}.layout-float button{padding:6px 8px;font-size:12px}.layout-float .nav-3d-accordion-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;background:none;border:0;color:var(--ink);font-size:12px;font-weight:400;letter-spacing:.4px;text-transform:uppercase;opacity:.7;cursor:pointer}.layout-float .control-inline button{flex:1 1 72px}.layout-float .control-inline .inline-link{flex:0 0 auto;padding:0}.layout-float .control-readout{font-size:10px}.layout-float input,.layout-float select,.layout-float button{max-width:100%;box-sizing:border-box}.layout-space-group{position:relative}.layout-space-trigger{cursor:pointer}.layout-space-trigger:hover,.layout-space-trigger:focus-visible{opacity:1}.layout-space-popover{position:absolute;top:calc(100% + 6px);left:0;width:100%;display:grid;gap:6px;padding:8px;border-radius:10px;background:var(--panel);border:1px solid var(--border);box-shadow:0 10px 24px #00000026;z-index:5}.layout-space-popover[hidden]{display:none}.layout-font-popover{position:fixed;top:100px;right:var(--left-panel-left);width:280px;max-height:calc(100vh - 48px);overflow:auto;padding:12px;border-radius:12px;background:var(--panel-solid);border:1px solid var(--border);box-shadow:0 14px 30px #0000002e;z-index:12}.layout-font-popover[hidden]{display:none}.layout-font-form{display:grid;gap:12px}.layout-font-form label{display:grid;gap:8px;font-size:12px}.layout-font-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.layout-font-popover select{padding:4px 6px;border-radius:8px}.layout-font-size{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:center;font-size:11px;letter-spacing:.2px;opacity:.85}.layout-font-actions{display:flex;justify-content:flex-end;gap:8px}.layout-key-mapping-group{position:relative}.layout-key-mapping-trigger{cursor:pointer}.layout-key-mapping-trigger:hover,.layout-key-mapping-trigger:focus-visible{opacity:1}.layout-key-mapping-popover{background:var(--panel-solid)}.layout-key-mapping-popover .layout-space-row{grid-template-columns:60px 1fr}.layout-space-row{display:grid;grid-template-columns:16px 1fr;gap:6px;align-items:center}.layout-space-row label{font-size:11px;letter-spacing:.2px;opacity:.8}.preset-toggle{position:relative}.preset-toggle button{display:inline-flex;align-items:center;gap:8px}.file-toggle,.calculate-toggle{position:relative}.file-toggle button{display:inline-flex;align-items:center;gap:8px}.preset-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:340px;max-width:420px;z-index:3;display:grid;gap:8px;white-space:normal;word-wrap:break-word}.preset-panel[hidden]{display:none}.file-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;z-index:3;display:grid;gap:2px;overflow:visible;padding:6px;border-radius:9px;opacity:1;box-shadow:0 4px 16px #0000001a}.file-panel[hidden]{display:none}.file-panel .file-share-popover{position:absolute;top:0;left:calc(100% + 8px);min-width:220px;padding:10px 12px;font-size:12px;line-height:1.3;opacity:1;background:var(--panel-solid);box-shadow:0 12px 24px #0000001f;pointer-events:none}.calculate-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;z-index:3;display:grid;gap:2px;padding:6px;border-radius:9px;opacity:1;box-shadow:0 4px 16px #0000001a}.calculate-panel[hidden],.file-share-popover[hidden]{display:none}.preset-list{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:13px}.preset-list a{display:grid;grid-template-columns:1fr auto;gap:10px;padding:6px 10px;border-radius:8px;background:var(--chrome-soft-surface);color:var(--ink);text-decoration:none;align-items:center}.preset-list a:focus-visible,.preset-list a:hover{color:var(--accent);background:var(--chrome-soft-field)}.preset-label{font-weight:500;min-width:0}.preset-meta{font-size:12px;color:var(--muted-ink);opacity:.7}.preset-empty{color:var(--muted-ink)}.chevron{display:inline-block;transition:transform .2s ease}.options-toggle button[aria-expanded=true] .chevron,.preset-toggle button[aria-expanded=true] .chevron,.file-toggle button[aria-expanded=true] .chevron{transform:rotate(180deg)}.synth-panel{position:fixed;left:24px;right:24px;bottom:24px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;border-radius:999px}.synth-panel[hidden]{display:none}.synth-group{display:grid;gap:6px}.synth-group:has(#keyboard-help){position:relative}.synth-group:has(#keyboard-map-popover){position:relative}.synth-panel .synth-group{display:flex;gap:8px;align-items:center;min-width:0}.synth-panel .synth-slider-group{display:flex;gap:6px;align-items:center;min-width:0}.synth-panel .synth-slider-group label{display:none}.synth-panel .synth-slider-group input[type=range]{min-width:80px;width:100%}.synth-panel .synth-slider-group .control-readout,.synth-panel .synth-slider-group #volume-readout,.synth-panel .synth-slider-group #lfo-depth-readout{justify-self:end;min-width:48px;text-align:right}.snapshot-group{flex-direction:row;align-items:center;gap:8px;min-width:max-content;position:relative;margin-left:auto;margin-right:auto}.snapshot-area-label{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted-ink)}.snapshot-keyboard{display:grid;gap:4px;align-self:center;min-width:0}.snapshot-keyboard[hidden]{display:none}.snapshot-keyboard-row{display:grid;grid-auto-flow:column;grid-auto-columns:16px;gap:4px}.snapshot-keyboard-row-head{grid-auto-columns:auto 1fr;align-items:center;column-gap:6px}.snapshot-key{border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--muted-ink);font-size:9px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.snapshot-keyboard .snapshot-key{padding:0;font-size:9px;width:16px;height:16px}.snapshot-key.is-filled{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 42%,transparent);color:var(--text-primary)}.snapshot-key.is-active{border-color:color-mix(in srgb,var(--accent) 85%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.snapshot-keyboard.is-inactive .snapshot-key{opacity:.35;filter:grayscale(.4);pointer-events:none}.snapshot-keyboard.is-inactive .snapshot-key.is-filled,.snapshot-keyboard.is-inactive .snapshot-key.is-active{background:color-mix(in srgb,var(--chrome-soft-muted) 18%,transparent);border-color:color-mix(in srgb,var(--chrome-soft-muted) 40%,transparent);color:color-mix(in srgb,var(--chrome-soft-muted) 85%,transparent);box-shadow:none}.snapshot-header{display:flex;align-items:center;gap:0;font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted-ink)}.snapshot-header>span{display:none}.snapshot-group .snapshot-header button{background:transparent;color:var(--muted-ink);border:1px solid var(--border);border-right:none;border-radius:0;padding:3px 8px;font-size:11px}.snapshot-group .snapshot-header button:first-of-type{border-radius:6px 0 0 6px}.snapshot-group .snapshot-header button:last-of-type{border-radius:0 6px 6px 0;border-right:1px solid var(--border)}.snapshot-group .snapshot-header button:hover,.snapshot-group .snapshot-header button:focus{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}.snapshot-toggle{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted-ink);text-transform:uppercase;letter-spacing:.3px}.snapshot-toggle input{margin:0}.snapshot-subtoggle{margin-left:14px;font-size:9px}.snapshot-options{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:9px;background:var(--panel-hover);border:1px solid var(--border);color:var(--chrome-ink);box-shadow:0 4px 16px #0000001a;position:absolute;bottom:calc(100% + 6px);margin-top:0;z-index:20}.snapshot-options[hidden]{display:none}.snapshot-options .snapshot-toggle{color:inherit}.snapshot-options input[type=checkbox]{accent-color:var(--accent)}.snapshot-options .snapshot-subtoggle{color:var(--chrome-soft-muted)}.snapshot-morph-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.snapshot-morph-time{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--chrome-soft-muted)}.snapshot-morph-time input{width:74px;padding:2px 4px;border-radius:5px;border:1px solid var(--chrome-soft-field-border);background:var(--chrome-soft-field);color:var(--chrome-input-ink);font:inherit}.snapshot-morph-time input:disabled{opacity:.5}.snapshot-grid{display:grid;grid-template-columns:repeat(10,16px);grid-auto-rows:16px;gap:4px}.snapshot-slot{border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--muted-ink);font-size:9px;padding:0;line-height:1;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}.snapshot-grid .snapshot-slot{padding:0;font-size:9px;width:16px;height:16px}.snapshot-slot.is-filled{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 42%,transparent);color:var(--text-primary)}.snapshot-slot.is-active{border-color:color-mix(in srgb,var(--accent) 85%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.synth-panel label{font-size:11px;letter-spacing:.3px;text-transform:uppercase;color:var(--muted-ink)}.synth-panel label[for=keyboard-mode]{display:none}.synth-panel #volume-readout,.synth-panel #lfo-depth-readout,.synth-panel .control-readout{font-size:10px;opacity:.8}.synth-panel select,.synth-panel input[type=number]{padding:4px 8px;border-radius:999px;font-size:12px}.synth-panel input[type=range]{height:14px}.synth-panel input[type=range]{min-width:140px}.synth-panel button{padding:6px 14px;font-size:13px}.keyboard-mode-row{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;gap:8px;align-items:center}.keyboard-mode-row select{min-width:0}.keyboard-mode-row button{white-space:nowrap}.midi-menu{position:relative}.midi-menu-panel{position:absolute;bottom:calc(100% + 8px);top:auto;left:50%;transform:translate(-50%);min-width:220px;padding:12px 14px;display:grid;gap:10px;z-index:4;border-radius:9px;opacity:1;box-shadow:0 4px 16px #0000001a}.midi-menu-panel[hidden]{display:none}.midi-menu-panel .control-group{display:grid;gap:6px}.keyboard-map-button{height:28px;padding:0 10px;font-size:12px;font-weight:600}.keyboard-mode-row button.is-active{border-color:var(--button-active-border);background:var(--button-active-bg);color:var(--button-active-text)}.keyboard-map-button.is-active{border-color:var(--map-mode);background:color-mix(in srgb,var(--map-mode) 22%,transparent);color:var(--map-mode)}body.map-mode-active #lattice{box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--map-mode) 55%,transparent)}body.map-mode-active .keyboard-mode-row{background:color-mix(in srgb,var(--map-mode) 12%,transparent);border-radius:8px;padding:2px}body.map-mode-active:before{background:color-mix(in srgb,var(--map-mode) 8%,transparent)}.keyboard-help{position:absolute;left:0;bottom:calc(100% + 6px);max-width:220px;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--panel);font-size:11px;line-height:1.2;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .3s ease,transform .3s ease}.keyboard-help.is-visible{opacity:1;transform:translateY(0)}.keyboard-map-popover{position:absolute;left:0;bottom:calc(100% + 8px);width:240px;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--panel);box-shadow:var(--chrome-hint-shadow);z-index:3}.keyboard-map-clear-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:0;border:0;background:transparent;color:var(--text-secondary);font-size:11px;text-transform:lowercase;cursor:pointer}.keyboard-map-clear-link:hover{color:var(--text-primary)}.keyboard-map-popover[hidden]{display:none}.piano-keys{position:relative;display:block;height:86px;margin-bottom:10px}.piano-keys-white{display:flex;height:100%;gap:4px}.piano-keys-black{position:absolute;top:0;left:0;height:52px;width:100%;pointer-events:none}.piano-key{border:1px solid var(--border);border-radius:6px;padding:0;font-size:10px;font-family:Lexend,sans-serif;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.piano-key.white{flex:1;background:var(--chrome-panel-solid);color:var(--text-primary);box-shadow:inset 0 -2px #0000001f}.piano-key.black{position:absolute;top:0;left:calc(var(--key-pos) * 100% / 7 - 10px);width:20px;height:52px;background:color-mix(in srgb,var(--chrome-ink) 92%,#000000);color:var(--chrome-panel-solid);border-color:#0009;border-radius:4px;pointer-events:auto;box-shadow:inset 0 -2px #ffffff1f}.piano-key.is-unmapped{background:var(--chrome-panel-solid);border-color:var(--border)}.piano-key.black.is-unmapped{background:color-mix(in srgb,var(--chrome-ink) 92%,#000000);border-color:#0009;color:var(--chrome-panel-solid)}.piano-key.is-mapped{background:color-mix(in srgb,var(--map-mode) 18%,#ffffff);border-color:var(--border)}.piano-key.black.is-mapped{background:color-mix(in srgb,var(--map-mode) 22%,#1b1b1b);border-color:#0009}.piano-key.is-selected{background:color-mix(in srgb,var(--map-mode) 45%,#ffffff);border-color:var(--map-mode);box-shadow:0 0 0 2px color-mix(in srgb,var(--map-mode) 70%,transparent)}.piano-key.black.is-selected{background:color-mix(in srgb,var(--map-mode) 55%,#1b1b1b);border-color:var(--map-mode);color:#fff}.piano-key:active{transform:translateY(1px)}.synth-group.is-disabled{opacity:.45}.synth-group.is-disabled input,.synth-group.is-disabled select,.synth-group.is-disabled button{pointer-events:none}.control-note{font-size:10px;color:var(--muted-ink);letter-spacing:.2px}.looper-label{display:inline-flex;align-items:center;gap:8px}.looper-clear{background:none;border:none;padding:0;font-size:12px;color:var(--muted-ink);text-decoration:underline;cursor:pointer}.looper-clear:hover,.looper-clear:focus{color:var(--accent)}.looper-quantize-row{align-items:center;gap:8px}.looper-quantize-row label{margin-right:auto}.looper-quantize-menu{margin-top:8px;padding:10px 12px;border-radius:10px}.looper-quantize-menu .control-group{margin-bottom:10px}.looper-quantize-menu .control-group:last-child{margin-bottom:0}.lfo-label{display:inline-flex;align-items:center;gap:8px}.lfo-stop{background:none;border:none;padding:0;font-size:12px;color:var(--muted-ink);text-decoration:underline;cursor:pointer}.lfo-stop:hover,.lfo-stop:focus{color:var(--accent)}.all-notes-off{background:none;border:none;padding:0;font-size:12px;color:var(--muted-ink);text-decoration:underline;cursor:pointer;justify-self:start}.all-notes-off:hover,.all-notes-off:focus{color:var(--accent)}.animation-toggle,.envelope-toggle{justify-self:end;align-self:center}.synth-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.animation-panel{position:fixed;right:24px;bottom:140px;width:min(240px,80vw);display:grid;gap:12px;z-index:3;padding:12px 14px;border-radius:9px;background:var(--panel-hover);border:1px solid var(--border);box-shadow:0 4px 16px #0000001a;opacity:1}.animation-section{display:grid;gap:10px}.animation-section-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted-ink)}.envelope-panel{position:fixed;right:24px;bottom:140px;width:min(260px,80vw);display:grid;gap:12px;z-index:3;padding:12px 14px;border-radius:9px;background:var(--panel-hover);border:1px solid var(--border);box-shadow:0 4px 16px #0000001a;opacity:1}.envelope-slider{display:grid;grid-template-columns:72px 1fr;gap:6px;align-items:center}.envelope-slider label{margin:0;white-space:nowrap}.envelope-slider-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.envelope-slider-row input[type=range]{min-width:0}.envelope-slider-row span{font-size:10px;opacity:.8}.envelope-panel-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted-ink);margin-top:4px}.envelope-panel .envelope-panel-section-title{font-size:12px}.animation-panel[hidden],.envelope-panel[hidden]{display:none}.animation-panel-header{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.6px}.custom-ratio-dialog{border:none;border-radius:16px;padding:18px 20px;width:min(320px,90vw);background:var(--chrome-dialog-bg);color:var(--ink);border:1px solid var(--chrome-dialog-border);box-shadow:var(--chrome-dialog-shadow)}.custom-ratio-dialog.interval-dialog{width:min(420px,90vw)}.credits-dialog{width:min(420px,92vw)}.credits-content{display:grid;gap:10px;font-size:12px;line-height:1.5;color:var(--ink)}.credits-content a,.credits-content a:visited{color:inherit}.credits-contact{margin-top:6px;font-size:11px;color:var(--muted-ink)}.credits-close{margin-top:4px;font-size:11px;color:var(--muted-ink)}.custom-ratio-dialog::backdrop{background:var(--chrome-overlay-scrim)}.custom-ratio-form{display:grid;gap:12px}.custom-ratio-form label{display:grid;gap:6px;font-size:12px}.custom-ratio-form input{width:100%}.dialog-title{font-size:14px;font-weight:600}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin:0;padding:0}.dialog-help{font-size:11px;color:var(--muted-ink)}.dialog-actions button{font-size:12px}.interval-chart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--chrome-overlay-scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2000;padding:24px}.interval-chart-overlay[hidden]{display:none}.interval-chart-window{width:min(1200px,96vw);height:min(720px,90vh);background:var(--chrome-dialog-bg);color:var(--ink);border-radius:18px;border:1px solid var(--chrome-dialog-border);box-shadow:var(--chrome-dialog-shadow);display:flex;flex-direction:column;overflow:hidden}.interval-chart-header{padding:18px 24px 10px;border-bottom:1px solid var(--chrome-section-border)}.interval-chart-subheader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;border-bottom:1px solid var(--chrome-section-border);font-size:13px;color:var(--ink)}.interval-chart-subheader select{margin:0 6px}.interval-chart-title{font-size:20px;font-weight:600;letter-spacing:.01em}.interval-chart-body{flex:1;display:grid;grid-template-columns:220px 1fr;gap:16px;padding:16px 24px;overflow:hidden}.interval-chart-filters{border-right:1px solid var(--chrome-section-border);padding-right:16px;overflow:auto}.interval-chart-filter-title{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--chrome-soft-muted);margin-bottom:12px}.interval-chart-filter-actions{display:flex;gap:8px;margin-bottom:12px}.interval-chart-filter-actions button{font-size:11px;padding:6px 10px;border-radius:999px;border:1px solid var(--chrome-soft-field-border);background:var(--chrome-soft-field);cursor:pointer;color:var(--ink)}.interval-chart-type-list{display:flex;flex-direction:column;gap:8px}.interval-chart-filter-extra{margin-bottom:12px}.interval-chart-type-group{display:flex;flex-direction:column;gap:6px}.interval-chart-type-group-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink)}.interval-chart-type{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)}.interval-chart-type.is-child{margin-left:18px}.interval-chart-type-divider{margin:6px 0 2px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--chrome-soft-muted)}.interval-chart-table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--chrome-section-border);display:flex;flex-direction:column;flex:1;min-height:0}.interval-chart-table-column{display:flex;flex-direction:column;gap:12px;min-height:0}.interval-chart-toolbar{position:sticky;top:0;z-index:1;padding:10px 12px;border-bottom:1px solid var(--chrome-section-border);background:var(--chrome-soft-surface);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.interval-chart-toolbar:empty{display:none}.interval-chart-toolbar-search{position:static;border-bottom:1px solid var(--chrome-section-border);border-radius:12px;margin-bottom:12px}.interval-chart-toolbar input{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--chrome-soft-field-border);background:var(--chrome-soft-field);color:var(--ink);font-size:13px}.interval-chart-custom{display:inline-flex;gap:8px;align-items:center;flex:1 1 320px;padding:12px 12px 14px;border-top:1px solid var(--chrome-section-border);position:sticky;bottom:0;background:var(--chrome-soft-surface);z-index:2}.interval-chart-custom-label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--chrome-soft-muted)}.interval-chart-custom input{flex:1 1 auto}.interval-chart-listen{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.interval-chart-custom-active{position:sticky;top:52px;z-index:1;padding:8px 12px;font-size:12px;color:var(--chrome-warning-ink);background:var(--chrome-warning-bg);border-bottom:1px solid var(--chrome-soft-field-border)}.interval-chart-table tbody tr{transition:background-color .12s ease}.interval-chart-row-selected{background:color-mix(in srgb,var(--chrome-warning-bg) 45%,transparent)}.interval-chart-table{width:100%;border-collapse:collapse;min-width:720px;font-size:13px;color:var(--ink)}.interval-chart-table thead th{position:sticky;top:0;background:var(--chrome-soft-surface);text-align:left;font-weight:600;padding:10px 12px;border-bottom:1px solid var(--chrome-section-border)}.interval-chart-table tbody td{padding:8px 12px;border-bottom:1px solid var(--chrome-section-border);vertical-align:top}.interval-chart-factor-line{font-size:12px}.interval-chart-factor-line.is-muted{font-size:11px;color:var(--chrome-soft-muted)}.interval-chart-table.is-disabled{pointer-events:none;opacity:.45}.interval-chart-actions{padding:12px 24px 18px;border-top:1px solid var(--chrome-section-border);display:flex;justify-content:flex-end;gap:12px}.interval-chart-actions #interval-chart-close{color:var(--ink);background:var(--chrome-input-bg);border:1px solid var(--chrome-soft-field-border)}body.interval-chart-open{overflow:hidden}.preset-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--chrome-overlay-scrim);z-index:4;display:flex;align-items:center;justify-content:center;padding:32px}.preset-overlay[hidden]{display:none}.preset-window{width:min(860px,92vw);max-height:86vh;background:var(--chrome-dialog-bg);color:var(--ink);border-radius:18px;border:1px solid var(--chrome-dialog-border);box-shadow:var(--chrome-dialog-shadow);display:flex;flex-direction:column;overflow:hidden}.preset-header{padding:18px 24px 10px;border-bottom:1px solid var(--chrome-section-border)}.preset-title{font-size:18px;font-weight:600;letter-spacing:.2px}.preset-body{display:flex;flex-direction:column;gap:14px;padding:18px 24px 20px;overflow:hidden}.preset-body-single{display:flex}.preset-main{display:flex;flex-direction:column;gap:14px;min-width:0}.preset-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.preset-toolbar input{width:100%;border-radius:12px;padding:10px 14px;border:1px solid var(--chrome-soft-field-border);background:var(--chrome-soft-field);font-size:13px;color:var(--ink)}.preset-sort{display:grid;gap:4px;font-size:11px;color:var(--muted-ink)}.preset-sort select{min-width:160px;border-radius:10px;padding:8px 10px;border:1px solid var(--chrome-soft-field-border);background:var(--chrome-soft-field);color:var(--ink);font-size:12px}.preset-list{display:grid;gap:12px;padding:4px;margin:0;overflow:auto;max-height:58vh}.preset-card{display:grid;grid-template-columns:1fr;gap:6px;padding:12px 14px;border-radius:14px;border:1px solid var(--chrome-dialog-border);background:var(--chrome-soft-surface);color:var(--ink);text-decoration:none}.preset-card:hover,.preset-card:focus-visible{border-color:var(--chrome-soft-field-border);color:var(--accent)}.preset-card-title{font-weight:600;font-size:15px}.preset-card-creator{font-size:12px;color:var(--muted-ink)}.preset-card-tags{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--muted-ink)}.preset-card-tag{padding:2px 8px;border-radius:999px;background:var(--chrome-tag-bg)}.preset-empty{color:var(--muted-ink);font-size:13px}.preset-actions{display:flex;justify-content:flex-end;gap:12px;padding:12px 20px 18px;border-top:1px solid var(--chrome-section-border)}body.preset-open{overflow:hidden}@media (max-width: 720px){.preset-toolbar{grid-template-columns:1fr}}.build-intervals-preview{display:grid;gap:8px;width:100%;margin-top:6px;padding:10px 12px;border-radius:12px;border:1px solid var(--chrome-preview-border);background:var(--chrome-preview-bg)}.build-intervals-preview.is-over{background:var(--chrome-preview-over-bg);border-color:var(--chrome-preview-over-border)}.build-intervals-line{position:relative;height:22px}.build-intervals-line:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--chrome-preview-mark);transform:translateY(-50%)}.build-intervals-endpoint{position:absolute;width:2px;height:12px;background:var(--chrome-preview-mark);top:50%;transform:translateY(-50%)}.build-intervals-endpoint.start{left:0}.build-intervals-endpoint.end{right:0}.build-intervals-ticks{position:absolute;top:0;right:0;bottom:0;left:0}.build-intervals-tick{position:absolute;width:2px;height:10px;background:var(--chrome-preview-mark);top:50%;transform:translate(-50%,-50%)}.build-intervals-warning{font-size:12px;color:#8b2f2f}.envelope-panel-header{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.6px}#lattice{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:var(--canvas-bg);z-index:0}@media (max-width: 720px){.top-bar{flex-direction:column;padding-top:12px}.title{width:auto;min-width:0;max-width:none;flex-direction:column;gap:2px}.title h1{font-size:18px}.control-actions-divider{display:none}}.snapshot-keyboard-keys{display:grid;gap:4px}
