@import"https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap";@layer reset,tokens,base,layout,responsive;@layer reset{:where(*,*:before,*:after){box-sizing:border-box;margin:0;padding:0}}@layer tokens{:root{color-scheme:dark;--primary: #4820fc;--primary-dark: #252423;--secondary: #7b7367;--secondary-light: #ffffff;--bg: var(--primary);--fg: var(--secondary-light);--muted: var(--secondary);--accent: var(--primary);--accent-neg: #c44444;--border: color-mix(in oklab, var(--fg) 22%, var(--bg));--surface: var(--primary-dark);--canvas-bg: var(--primary-dark);--wave-color: var(--secondary-light);--font-display: "Urbanist", sans-serif;--font-body: "Urbanist", sans-serif;--hairline: .0625rem;--radius: .25rem;--panel-border: color-mix(in oklab, var(--fg) 14%, var(--primary-dark));--sidebar-width: 22rem}}@layer base{html{color-scheme:dark}body{-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:.875rem;line-height:1.6;min-block-size:100dvh;overflow:hidden}}@layer layout{.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-block-size:100dvh;block-size:100dvh}.ctrl-panel{background:var(--primary-dark);border-inline-end:var(--hairline) solid var(--panel-border);display:flex;flex-direction:column;overflow:hidden;min-block-size:0}.ctrl-panel:has(#play_btn.active) .ctrl-top{background:color-mix(in oklch,var(--accent-neg) 10%,var(--primary-dark))}.ctrl-panel .action-btn,.ctrl-panel .preset{background:var(--primary);border-color:var(--primary);color:var(--secondary-light)}.ctrl-panel .action-btn:hover,.ctrl-panel .preset:hover{background:color-mix(in oklab,var(--primary) 85%,#fff);border-color:color-mix(in oklab,var(--primary) 85%,#fff);color:var(--secondary-light)}.ctrl-panel #play_btn{font-weight:600;letter-spacing:.12em}.ctrl-panel #play_btn.active{background:none;border-color:var(--accent-neg);color:var(--accent-neg)}.ctrl-panel #warm_btn:disabled{cursor:default;opacity:.4;background:color-mix(in oklab,var(--primary) 40%,var(--primary-dark));border-color:transparent;color:var(--secondary)}.ctrl-panel .preset.active{outline:var(--hairline) solid var(--secondary-light);outline-offset:.125rem}.ctrl-panel .group-label,.ctrl-panel .label,.ctrl-panel .label span{color:var(--secondary-light)}.ctrl-panel select{background-color:var(--primary);border-color:var(--primary);color:var(--secondary-light)}.ctrl-panel select:focus{border-color:var(--secondary-light)}.ctrl-panel :is(input[type=range]){background:var(--primary)}.ctrl-panel :is(input[type=range])::-webkit-slider-thumb{background:var(--secondary)}.ctrl-panel :is(input[type=range])::-moz-range-thumb{background:var(--secondary)}.brand{border-block-end:var(--hairline) solid var(--panel-border);flex-shrink:0;padding:1rem .875rem}.brand a{display:inline-block;line-height:0}.brand img{block-size:2rem;display:block;inline-size:auto;max-inline-size:100%}.ctrl-top{background:transparent;border-block-end:var(--hairline) solid var(--panel-border);display:flex;flex-direction:column;flex-shrink:0;gap:.5rem;padding:.75rem;transition:background .3s}.action-btn{border:var(--hairline) solid transparent;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:.5625rem;font-weight:500;letter-spacing:.1em;padding:.5rem .75rem;text-align:center;text-transform:uppercase;transition:border-color .15s,color .15s,background .15s;-webkit-user-select:none;user-select:none}#file_input{display:none}.presets{border-block-end:var(--hairline) solid var(--panel-border);display:flex;flex-shrink:0;flex-wrap:wrap;gap:.4rem;padding:.625rem .75rem}.preset{border:var(--hairline) solid transparent;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:.5625rem;font-weight:500;letter-spacing:.08em;padding:.25rem .6rem;text-transform:uppercase;transition:border-color .15s,color .15s,background .15s;-webkit-user-select:none;user-select:none}.ctrl-groups{display:flex;flex:1;flex-direction:column;min-block-size:0;overflow-y:auto}.ctrl-groups .ctrl-group{border-block-end:var(--hairline) solid var(--panel-border);display:flex;flex-direction:column;gap:.75rem;padding:.875rem .75rem}.ctrl-groups .ctrl-group:last-child{border-block-end:none}.group-label{font-family:var(--font-display);font-size:.875rem;font-weight:600;letter-spacing:.04em;line-height:1;-webkit-user-select:none;user-select:none}.ctrl-grid{display:grid;gap:.625rem .875rem;grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:.35rem}.field.field--wide{grid-column:auto}.label{display:flex;font-size:.5625rem;justify-content:space-between;letter-spacing:.1em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.label span{font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath fill='%23ffffff' d='M0 0l4 5 4-5z'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;border:var(--hairline) solid transparent;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:.6875rem;inline-size:100%;outline:none;padding:.3rem 1.75rem .3rem .5rem;transition:border-color .15s}:is(input[type=range]){-webkit-appearance:none;-moz-appearance:none;appearance:none;block-size:.25rem;border-radius:1px;cursor:pointer;inline-size:100%;outline:none}:is(input[type=range])::-webkit-slider-thumb{-webkit-appearance:none;block-size:.75rem;border-radius:50%;inline-size:.75rem}:is(input[type=range])::-moz-range-thumb{block-size:.75rem;border:none;border-radius:50%;inline-size:.75rem}.viz-stage{align-items:center;display:flex;justify-content:center;min-block-size:0;min-inline-size:0;overflow:auto;padding:1.5rem}.viz-stack{display:flex;flex-direction:column;gap:1rem;inline-size:min(36rem,100%,calc(100dvh - 8rem));max-block-size:100%}.viz-stack #map_canvas{aspect-ratio:1;background:var(--canvas-bg);border:var(--hairline) solid var(--border);border-radius:.75rem;display:block;inline-size:100%}.viz-stack #wave_canvas{background:var(--canvas-bg);border:var(--hairline) solid var(--border);border-radius:999px;block-size:4.5rem;display:block;flex-shrink:0;inline-size:100%}}@layer responsive{@media (width <= 64em){body{overflow:auto}.app-shell{block-size:auto;grid-template-columns:1fr;min-block-size:100dvh}.ctrl-panel{border-inline-end:none;border-block-end:var(--hairline) solid var(--panel-border);max-block-size:50dvh}.viz-stage{min-block-size:50dvh;padding:1rem}.viz-stack{inline-size:min(28rem,100%)}}@media (width <= 44em){.viz-stack{inline-size:100%}.viz-stack #map_canvas{max-block-size:min(55dvh,100vw)}}}
