@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Shrikhand&display=swap";*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color:#4d286d;background:#f8eaff;font-family:DM Mono,monospace;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #4d286d;--purple: #7d43b5;--purple-deep: #38204f;--panel: #fffafd;--panel-alt: #f3e7ff;--line: #9565bd;--muted: #795f88;--pink: #f45fa6;--pink-soft: #ffc4df;--yellow: #ffd96a;--aqua: #6edbd1}*{box-sizing:border-box}html{background:#f8eaff}body{margin:0;min-width:320px;min-height:100vh;background:#f8eaff}button,select,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.synth-shell{min-height:100vh;padding:clamp(18px,3.5vw,52px);position:relative;overflow:hidden;background:radial-gradient(circle at 90% 7%,rgba(255,217,106,.9) 0 7%,transparent 7.2%),radial-gradient(circle at 5% 52%,rgba(110,219,209,.45) 0 10%,transparent 10.2%),linear-gradient(135deg,#ead9ff,#ffd8eb 52%,#fff0cc)}.ambient-grid{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(125,67,181,.14) 2px,transparent 2px),linear-gradient(90deg,rgba(125,67,181,.14) 2px,transparent 2px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 88%);mask-image:linear-gradient(to bottom,black,transparent 88%)}.synth-console{width:min(1280px,100%);margin:0 auto;position:relative}.console-header{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:12px 6px 30px}.eyebrow{margin:0 0 8px;color:var(--purple);font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}h1,h2,p{margin-top:0}h1,h2{font-family:Shrikhand,cursive;font-weight:400}h1{width:-moz-fit-content;width:fit-content;margin-bottom:10px;color:var(--pink);font-size:clamp(3.4rem,9vw,7.7rem);line-height:.82;letter-spacing:-.045em;transform:rotate(-2deg);text-shadow:4px 4px 0 #fff,8px 8px 0 var(--purple)}.intro{max-width:590px;margin:22px 0 0 8px;color:var(--ink);font-size:clamp(.82rem,1.4vw,.98rem);font-weight:500}.power-button{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 20px;border:2px solid var(--purple-deep);border-radius:999px;color:#fff;background:var(--purple);box-shadow:5px 5px 0 var(--purple-deep);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.power-button:hover{background:var(--pink);transform:translate(-2px,-2px) rotate(1deg);box-shadow:7px 7px 0 var(--purple-deep)}.power-button:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--purple-deep)}.power-button--ready{color:var(--purple-deep);background:var(--aqua)}.power-button--error{background:#e34d68}.power-button:disabled{cursor:wait;opacity:.7}.console-grid{display:grid;grid-template-columns:minmax(270px,.82fr) minmax(0,1.18fr);grid-template-areas:"controls scope" "controls spectrum";gap:20px}.module,.keyboard-module{border:2px solid var(--purple-deep);border-radius:18px;background:#fffafdf5;box-shadow:8px 8px #4d286deb;transition:transform .18s ease,box-shadow .18s ease}.module:hover,.keyboard-module:hover{transform:translateY(-3px);box-shadow:10px 11px #4d286deb}.module{min-width:0;padding:20px}.module--controls{grid-area:controls;transform:rotate(-.45deg);background:#fff9d9}.module--scope{grid-area:scope;transform:rotate(.4deg)}.module--spectrum{grid-area:spectrum;transform:rotate(-.3deg);background:#fff2f8}.module--controls:hover,.module--scope:hover,.module--spectrum:hover{transform:translateY(-3px) rotate(0)}.module-heading{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--purple)}.module-heading span{display:grid;width:27px;height:27px;place-items:center;border:2px solid var(--purple);border-radius:50%;color:var(--purple);background:var(--pink-soft);font-size:.65rem;font-weight:500}.module-heading h2,.keyboard-toolbar h2{margin:0;color:var(--ink);font-size:1.12rem;letter-spacing:.01em}.visualizer-frame{height:clamp(190px,25vw,280px);overflow:hidden;border:3px solid var(--purple-deep);border-radius:14px;background:#39204f;box-shadow:inset 0 0 36px #16092473,3px 3px 0 var(--pink-soft)}.visualizer-canvas{display:block;width:100%;height:100%}.control-panel{display:grid;gap:27px}.waveform-control,.frequency-control,.envelope-control{display:grid;gap:10px}.control-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);font-size:.8rem;font-weight:500}.control-label-row>:last-child,output{color:var(--pink);font-weight:500}select{width:100%;min-height:49px;padding:0 14px;border:2px solid var(--purple);border-radius:11px;color:var(--ink);background:#fff;box-shadow:3px 3px 0 var(--pink-soft);cursor:pointer}input[type=range]{width:100%;height:22px;margin:0;accent-color:var(--pink);cursor:ew-resize}input[type=range]::-webkit-slider-runnable-track{height:8px;border:2px solid var(--purple);border-radius:999px;background:#ead8fa}input[type=range]::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px;border:2px solid var(--purple-deep);border-radius:50%;background:var(--pink);box-shadow:2px 2px 0 var(--purple-deep);-webkit-appearance:none}input[type=range]::-moz-range-track{height:6px;border:2px solid var(--purple);border-radius:999px;background:#ead8fa}input[type=range]::-moz-range-thumb{width:19px;height:19px;border:2px solid var(--purple-deep);border-radius:50%;background:var(--pink);box-shadow:2px 2px 0 var(--purple-deep)}.control-description,.filter-note{margin:0;color:var(--muted);font-size:.69rem;line-height:1.55}.envelope-section{min-width:0;margin:0;padding:18px 14px 15px;border:2px dashed var(--purple);border-radius:14px;background:#ffffff85}.envelope-section legend{display:flex;align-items:center;gap:9px;padding:0 7px;color:var(--ink);font-family:Shrikhand,cursive;font-size:.98rem}.envelope-section legend small{padding:3px 6px;border:1px solid var(--purple);border-radius:999px;color:var(--purple);background:var(--pink-soft);font-family:DM Mono,monospace;font-size:.55rem;letter-spacing:.08em}.envelope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.envelope-control .control-description{color:var(--purple)}.control-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:4px}.filter-note{max-width:240px}.filter-note--warning{color:#d9346f;font-weight:500}.reset-button{display:inline-flex;align-items:center;gap:8px;min-height:43px;padding:0 14px;border:2px solid var(--purple-deep);border-radius:10px;color:var(--purple-deep);background:var(--pink-soft);box-shadow:3px 3px 0 var(--purple-deep);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.reset-button:hover{color:#fff;background:var(--pink);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--purple-deep)}.reset-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--purple-deep)}.keyboard-module{margin-top:20px;padding:20px;background:#eee0ff;transform:rotate(.2deg)}.keyboard-module:hover{transform:translateY(-3px) rotate(0)}.keyboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.octave-control{display:flex;align-items:stretch;border:2px solid var(--purple-deep);border-radius:11px;overflow:hidden;box-shadow:3px 3px 0 var(--purple-deep)}.octave-control button{width:44px;border:0;color:#fff;background:var(--purple);cursor:pointer}.octave-control button:hover:not(:disabled){color:var(--purple-deep);background:var(--yellow)}.octave-control button:disabled{color:#ad9ab8;background:#d7c7df;cursor:not-allowed}.octave-control span{display:grid;min-width:66px;padding:5px 12px;place-items:center;border-inline:2px solid var(--purple-deep);color:var(--pink);background:#fff;font-weight:500}.octave-control small{color:var(--muted);font-size:.55rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.key-bed{display:grid;grid-template-columns:repeat(16,minmax(54px,1fr));gap:6px;overflow-x:auto;padding:4px 4px 12px;scrollbar-color:var(--purple) transparent}.synth-key{min-width:54px;height:124px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:13px 7px 10px;border:2px solid var(--purple-deep);border-radius:8px 8px 13px 13px;color:var(--purple-deep);background:#fffdf7;box-shadow:inset 0 -8px #f2dff0,0 5px 0 var(--purple-deep);cursor:pointer;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform 70ms ease,box-shadow 70ms ease,background 70ms ease}.synth-key--dark{height:96px;color:#fff;background:var(--purple);box-shadow:inset 0 -7px #532c75,0 5px 0 var(--purple-deep)}.synth-key.is-pressed{transform:translateY(5px);background:var(--yellow);box-shadow:inset 0 -3px #e2b842,0 0 0 var(--purple-deep)}.synth-key--dark.is-pressed{color:var(--purple-deep);background:var(--pink);box-shadow:inset 0 -3px #bf3978,0 0 0 var(--purple-deep)}.key-note{font-size:.65rem;font-weight:500;opacity:.75}kbd{display:grid;width:28px;height:28px;place-items:center;border:2px solid currentColor;border-radius:6px;font-size:.72rem;font-weight:500}footer{display:flex;justify-content:space-between;gap:18px;padding:22px 7px 0;color:var(--ink);font-size:.68rem;font-weight:500}footer a{color:var(--purple);text-underline-offset:3px}footer a:hover{color:var(--pink)}@media (max-width: 780px){.synth-shell{padding:18px}.console-header{align-items:flex-start;flex-direction:column}.power-button{width:100%;justify-content:center}.console-grid{grid-template-columns:1fr;grid-template-areas:"controls" "scope" "spectrum"}.module--controls,.module--scope,.module--spectrum,.keyboard-module{transform:none}.visualizer-frame{height:220px}footer{flex-direction:column}}@media (max-width: 480px){h1{font-size:3.9rem;text-shadow:3px 3px 0 #fff,6px 6px 0 var(--purple)}.intro{margin-left:3px}.module,.keyboard-module{padding:15px;border-radius:14px;box-shadow:6px 6px #4d286deb}.control-actions{align-items:stretch;flex-direction:column}.envelope-grid{grid-template-columns:1fr}.filter-note{max-width:none}.reset-button{justify-content:center}.keyboard-toolbar{align-items:flex-start}.visualizer-frame{height:180px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
