@charset "UTF-8";._button_19nhc_1 {
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border-radius: var(--echoes-radius-sm);
  border: none;
  cursor: pointer;
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  font-size: var(--echoes-font-size-sm);
  height: 32px;
}
._button_19nhc_1:hover:not(:disabled) {
  background-color: var(--echoes-blue);
}
._button_19nhc_1:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._primary_19nhc_26 {
  background-color: var(--echoes-green);
  color: var(--echoes-white);
}
._primary_19nhc_26:hover:not(:disabled) {
  background-color: #5ea86d;
}

._secondary_19nhc_34 {
  background-color: transparent;
  border: 1px solid var(--echoes-white);
}
._secondary_19nhc_34:hover:not(:disabled) {
  background-color: var(--echoes-blue);
  border-color: var(--echoes-blue);
}

._danger_19nhc_43 {
  background-color: var(--echoes-red);
  color: var(--echoes-white);
}
._danger_19nhc_43:hover:not(:disabled) {
  background-color: #d11a1a;
}

._ghost_19nhc_51 {
  background-color: transparent;
  border: none;
}
._ghost_19nhc_51:hover:not(:disabled) {
  background-color: var(--echoes-blue);
}

._ghostBorder_19nhc_59 {
  background-color: transparent;
  border: 1px solid var(--echoes-white);
}
._ghostBorder_19nhc_59:hover:not(:disabled) {
  background-color: var(--echoes-blue);
}

._active_19nhc_67 {
  background-color: var(--echoes-green);
  color: var(--echoes-white);
}
._active_19nhc_67:hover:not(:disabled) {
  background-color: #5ea86d;
}

._small_19nhc_75 {
  padding: var(--echoes-space-xs) var(--echoes-space-md);
  font-size: var(--echoes-font-size-xs);
  height: 24px;
}

._large_19nhc_81 {
  padding: var(--echoes-space-md) var(--echoes-space-xl);
  font-size: var(--echoes-font-size-base);
  height: 40px;
}

._fullWidth_19nhc_87 {
  width: 100%;
}

._tool_19nhc_91 {
  background-color: var(--echoes-background);
  border: 1px solid var(--echoes-yellow);
  color: var(--echoes-yellow);
  outline: none;
}
._tool_19nhc_91:hover:not(:disabled) {
  background-color: color-mix(in srgb, var(--echoes-yellow), transparent 90%);
  color: var(--echoes-yellow);
  border: 1px solid var(--echoes-yellow);
}
._tool_19nhc_91._active_19nhc_67 {
  background-color: var(--echoes-yellow);
  border: 1px solid transparent;
  color: var(--echoes-background);
}._stack_107o3_1 {
  display: flex;
}

._column_107o3_5 {
  flex-direction: column;
}

._row_107o3_9 {
  flex-direction: row;
}

._gapXs_107o3_13 {
  gap: var(--echoes-space-xs);
}

._gapSm_107o3_17 {
  gap: var(--echoes-space-sm);
}

._gapMd_107o3_21 {
  gap: var(--echoes-space-md);
}

._gapLg_107o3_25 {
  gap: var(--echoes-space-lg);
}

._gapXl_107o3_29 {
  gap: var(--echoes-space-xl);
}

._alignStart_107o3_33 {
  align-items: flex-start;
}

._alignCenter_107o3_37 {
  align-items: center;
}

._alignEnd_107o3_41 {
  align-items: flex-end;
}

._alignStretch_107o3_45 {
  align-items: stretch;
}

._justifyStart_107o3_49 {
  justify-content: flex-start;
}

._justifyCenter_107o3_53 {
  justify-content: center;
}

._justifyEnd_107o3_57 {
  justify-content: flex-end;
}

._justifyBetween_107o3_61 {
  justify-content: space-between;
}

._wrap_107o3_65 {
  flex-wrap: wrap;
}

._fullWidth_107o3_69 {
  width: 100%;
}

._fullHeight_107o3_73 {
  height: 100%;
}

._responsive_107o3_77 {
  flex-direction: column;
}
@media (min-width: 768px) {
  ._responsive_107o3_77 {
    flex-direction: row;
  }
}._container_sy5xj_1 {
  width: auto;
}

._fullWidth_sy5xj_5 {
  width: 100%;
}

._label_sy5xj_9 {
  display: block;
  font-size: var(--echoes-font-size-sm);
  color: var(--echoes-white);
  margin-bottom: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
}

._input_sy5xj_18 {
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border: 1px solid #333;
  border-radius: var(--echoes-radius-sm);
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  height: 32px;
  width: 100%;
  transition: border-color 0.2s ease;
}
._input_sy5xj_18:focus {
  border-color: var(--echoes-blue);
}
._input_sy5xj_18._error_sy5xj_35 {
  border-color: var(--echoes-red);
}
._input_sy5xj_18::placeholder {
  color: #666;
  font-weight: normal;
}

._errorText_sy5xj_43 {
  font-size: var(--echoes-font-size-xs);
  color: var(--echoes-red);
  margin-top: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
}

._small_sy5xj_50 ._input_sy5xj_18 {
  padding: var(--echoes-space-xs) var(--echoes-space-md);
  font-size: var(--echoes-font-size-xs);
  height: 24px;
}
._small_sy5xj_50 ._container_sy5xj_1 {
  max-width: 180px;
}

._medium_sy5xj_59 ._container_sy5xj_1 {
  max-width: 280px;
}

._large_sy5xj_63 ._container_sy5xj_1 {
  max-width: 400px;
}._container_d118p_1 {
  display: flex;
  align-items: center;
  gap: var(--echoes-space-sm);
}

._label_d118p_7 {
  min-width: var(--echoes-space-4xl);
  text-align: left;
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  color: var(--echoes-white);
}

._barWrapper_d118p_15 {
  position: relative;
  width: 100%;
  height: var(--echoes-space-md);
}

._background_d118p_21 {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #444;
}

._fill_d118p_28 {
  position: absolute;
  height: 100%;
  background-color: var(--echoes-green);
}

._numbers_d118p_34 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--echoes-font-size-sm);
  font-weight: bold;
  color: var(--echoes-white);
  text-shadow: var(--echoes-space-xs) var(--echoes-space-xs) var(--echoes-space-xs) rgba(0, 0, 0, 0.8);
  pointer-events: none;
  font-family: var(--echoes-font-family);
}

._small_d118p_51 ._barWrapper_d118p_15 {
  height: var(--echoes-space-sm);
}
._small_d118p_51 ._numbers_d118p_34 {
  font-size: var(--echoes-font-size-xs);
}

._large_d118p_58 ._barWrapper_d118p_15 {
  height: var(--echoes-space-lg);
}
._large_d118p_58 ._numbers_d118p_34 {
  font-size: var(--echoes-font-size-base);
}._container_10plz_1 {
  display: flex;
  flex-wrap: wrap;
}

._tab_10plz_6 {
  background-color: var(--echoes-grey);
  color: var(--echoes-white);
  border: 1px solid #333;
  padding: var(--echoes-space-sm) var(--echoes-space-md);
  cursor: pointer;
  font-size: var(--echoes-font-size-xs);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  transition: background-color 0.1s ease, color 0.1s ease;
  user-select: none;
  border-radius: 0;
  border-right: 1px solid #333;
}
._tab_10plz_6:first-child {
  border-top-left-radius: var(--echoes-radius-sm);
  border-bottom-left-radius: var(--echoes-radius-sm);
}
._tab_10plz_6:last-child {
  border-top-right-radius: var(--echoes-radius-sm);
  border-bottom-right-radius: var(--echoes-radius-sm);
  border-right: 1px solid #333;
}
._tab_10plz_6:hover:not(._active_10plz_30) {
  background-color: color-mix(in srgb, var(--echoes-lightish-grey), transparent 50%);
  color: var(--echoes-white);
}
._tab_10plz_6._active_10plz_30 {
  background-color: var(--echoes-white);
  color: var(--echoes-grey);
  border-color: var(--echoes-grey);
}
._tab_10plz_6:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}._root_16oha_1 {
  all: unset;
  background-color: var(--echoes-background);
  width: 16px;
  height: 16px;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--echoes-white);
  cursor: pointer;
  transition: all 0.2s ease;
}
._root_16oha_1:hover {
  border-color: var(--echoes-green);
}
._root_16oha_1:focus {
  outline: 2px solid var(--echoes-green);
  outline-offset: 2px;
}
._root_16oha_1[data-state=checked] {
  background-color: var(--echoes-green);
  border-color: var(--echoes-green);
}

._indicator_16oha_26 {
  color: var(--echoes-background);
  font-size: 12px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
}

._label_16oha_35 {
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  cursor: pointer;
  user-select: none;
}
._label_16oha_35:hover {
  color: var(--echoes-green);
}._canvas_1yq27_1 {
  image-rendering: pixelated;
  background: var(--echoes-background);
}._root_10e5i_1 {
  display: flex;
  flex-direction: column;
  gap: var(--echoes-space-sm);
}

._rootRow_10e5i_7 {
  flex-direction: row;
  gap: var(--echoes-space-md);
}

._item_10e5i_12 {
  all: unset;
  background-color: var(--echoes-background);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid var(--echoes-white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
._item_10e5i_12:hover {
  border-color: var(--echoes-green);
}
._item_10e5i_12:focus {
  outline: 2px solid var(--echoes-green);
  outline-offset: 2px;
}
._item_10e5i_12[data-state=checked] {
  background-color: var(--echoes-green);
  border-color: var(--echoes-green);
}

._indicator_10e5i_37 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--echoes-background);
}

._itemWrapper_10e5i_47 {
  display: flex;
  align-items: center;
  gap: var(--echoes-space-xs);
}

._label_10e5i_53 {
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  cursor: pointer;
  user-select: none;
}
._label_10e5i_53:hover {
  color: var(--echoes-green);
}._container_2ybke_1 {
  height: calc(var(--sprite-height) * var(--sprite-scale));
  width: calc(var(--sprite-width) * var(--sprite-scale));
  margin: var(--echoes-space-sm);
}

._sprite_2ybke_7 {
  display: block;
  width: var(--sprite-width);
  height: var(--sprite-height);
  background-repeat: no-repeat;
  image-rendering: pixelated;
  transform: scale(var(--sprite-scale));
  transform-origin: top left;
}._container_a5z2e_1 {
  width: 100%;
}

._label_a5z2e_5 {
  display: block;
  font-size: var(--echoes-font-size-sm);
  color: var(--echoes-white);
  margin-bottom: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
}

._trigger_a5z2e_14 {
  all: unset;
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border: 1px solid #333;
  border-radius: var(--echoes-radius-sm);
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  height: 32px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: border-color 0.2s ease;
}
._trigger_a5z2e_14:hover {
  border-color: var(--echoes-green);
}
._trigger_a5z2e_14:focus {
  border-color: var(--echoes-green);
}
._trigger_a5z2e_14[data-disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

._icon_a5z2e_44 {
  font-size: 10px;
  color: var(--echoes-white);
}

._content_a5z2e_49 {
  overflow: hidden;
  background-color: var(--echoes-background);
  border: 1px solid #333;
  border-radius: var(--echoes-radius-sm);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  z-index: 1000;
}

._item_a5z2e_58 {
  all: unset;
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
}
._item_a5z2e_58:hover {
  background-color: var(--echoes-green);
  color: var(--echoes-background);
}
._item_a5z2e_58[data-disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
._item_a5z2e_58[data-highlighted] {
  background-color: var(--echoes-green);
  color: var(--echoes-background);
}._toast_p2brt_1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border-radius: var(--echoes-radius-sm);
  margin-bottom: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  min-width: 300px;
  max-width: 500px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  animation: _slideIn_p2brt_1 0.3s ease-out;
}
._toast_p2brt_1._success_p2brt_15 {
  background-color: var(--echoes-green);
  color: var(--echoes-background);
  border: 1px solid var(--echoes-green);
}
._toast_p2brt_1._error_p2brt_20 {
  background-color: var(--echoes-red);
  color: var(--echoes-white);
  border: 1px solid var(--echoes-red);
}
._toast_p2brt_1._info_p2brt_25 {
  background-color: var(--echoes-blue);
  color: var(--echoes-white);
  border: 1px solid var(--echoes-blue);
}
._toast_p2brt_1._warning_p2brt_30 {
  background-color: var(--echoes-orange);
  color: var(--echoes-white);
  border: 1px solid var(--echoes-orange);
}

._message_p2brt_36 {
  flex: 1;
  margin-right: var(--echoes-space-sm);
}

._closeButton_p2brt_41 {
  background: none;
  border: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
._closeButton_p2brt_41:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

@keyframes _slideIn_p2brt_1 {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}._container_1qfn4_1 {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}._panel_j6o29_1 {
  border: 1px solid var(--echoes-grey);
  background: color-mix(in srgb, var(--echoes-background), var(--echoes-white) 10%);
  position: absolute;
  display: flex;
  flex-direction: column;
  border-radius: var(--echoes-space-xs);
  box-shadow: 0 var(--echoes-space-sm) var(--echoes-space-lg) rgba(0, 0, 0, 0.3);
}

._handle_j6o29_11 {
  display: flex;
  align-items: center;
  padding: 0 var(--echoes-space-md);
  color: var(--echoes-white);
  cursor: grab;
  height: var(--echoes-space-3xl);
  background: var(--echoes-grey);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  font-size: var(--echoes-font-size-sm);
}
._handle_j6o29_11:active {
  cursor: grabbing;
}

._title_j6o29_27 {
  font-family: var(--echoes-font-family);
  font-weight: bold;
  font-size: var(--echoes-font-size-sm);
}

._content_j6o29_33 {
  padding: var(--echoes-space-md);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: var(--echoes-space-sm);
}

._closeButton_j6o29_41 {
  background: transparent !important;
  border: none !important;
  color: var(--echoes-white) !important;
  padding: var(--echoes-space-xs) !important;
  min-width: 20px !important;
  height: 20px !important;
  font-size: 12px !important;
  font-weight: bold !important;
  border-radius: var(--echoes-space-xs) !important;
}
._closeButton_j6o29_41:hover {
  background: color-mix(in srgb, var(--echoes-white), transparent 80%) !important;
  color: var(--echoes-white) !important;
}/* 
 * ===============================================
 * MUSIC EDITOR CUSTOMIZATION VARIABLES
 * ===============================================
 * Easily customize colors by changing the assignments below
 */
:root {
  --echoes-white: #ffffff;
  --echoes-purple: #a855f7;
  --echoes-blue: #3b82f6;
  --echoes-red: #ef4444;
  --echoes-orange: #f97316;
  --echoes-yellow: #eab308;
  --echoes-green: #4ade80;
  --echoes-grey: #6b7280;
  --echoes-lightish-grey: #9ca3af;
  --echoes-background: #081b1b;
  --echoes-space-xs: 2px;
  --echoes-space-sm: 4px;
  --echoes-space-md: 8px;
  --echoes-space-lg: 12px;
  --echoes-space-xl: 16px;
  --echoes-space-2xl: 20px;
  --echoes-space-3xl: 24px;
  --echoes-space-4xl: 32px;
  --echoes-font-family: monospace;
  --echoes-font-size-xs: 10px;
  --echoes-font-size-sm: 11px;
  --echoes-font-size-base: 13px;
  --echoes-font-size-lg: 16px;
  --echoes-radius-xs: 2px;
  --echoes-radius-sm: 4px;
  --echoes-radius-md: 6px;
}

* {
  box-sizing: border-box;
}

body {
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  line-height: 1.5;
  color: var(--echoes-white);
  background-color: var(--echoes-background);
}

._text-xs_decqz_48 {
  font-size: var(--echoes-font-size-xs);
}

._text-sm_decqz_52 {
  font-size: var(--echoes-font-size-sm);
}

._text-base_decqz_56 {
  font-size: var(--echoes-font-size-base);
}

._text-lg_decqz_60 {
  font-size: var(--echoes-font-size-lg);
}


._container_decqz_65 {
  --note-color: var(--echoes-blue);
  --note-hover-color: var(--echoes-blue);
  --chord-note-color: var(--echoes-orange);
  --playhead-color: var(--echoes-yellow);
  --loop-region-color: var(--echoes-purple);
  --track-background: var(--echoes-background);
  --track-border: var(--echoes-grey);
  --track-header: var(--echoes-grey);
  --button-primary: var(--echoes-green);
  --button-secondary: var(--echoes-grey);
  --button-hover: var(--echoes-blue);
  --button-danger: var(--echoes-red);
  --control-background: var(--echoes-grey);
  --control-active: var(--echoes-green);
  --control-text: var(--echoes-white);
  --input-background: var(--echoes-background);
  --input-border: var(--echoes-grey);
  --input-focus: var(--echoes-blue);
  --input-text: var(--echoes-white);
  --font-size-xs: var(--echoes-font-size-xs);
  --font-size-sm: var(--echoes-font-size-sm);
  --font-size-base: var(--echoes-font-size-base);
  --font-size-md: var(--echoes-font-size-base);
  --font-size-lg: var(--echoes-font-size-lg);
  --font-size-xl: 14px;
  --font-size-2xl: 18px;
  --font-size-3xl: 20px;
  --spacing-xs: var(--echoes-space-xs);
  --spacing-sm: var(--echoes-space-sm);
  --spacing-md: var(--echoes-space-md);
  --spacing-lg: var(--echoes-space-lg);
  --spacing-xl: var(--echoes-space-xl);
  --spacing-2xl: var(--echoes-space-2xl);
  --height-xs: 16px;
  --height-sm: 20px;
  --height-base: 24px;
  --height-md: 26px;
  --height-lg: 48px;
  --height-xl: 200px;
  --height-2xl: 300px;
  --height-3xl: 400px;
  --height-4xl: 500px;
  --width-xs: 8px;
  --width-sm: 16px;
  --width-base: 18px;
  --width-md: 60px;
  --width-lg: 80px;
  --width-xl: 100px;
  --width-2xl: 120px;
  --width-3xl: 140px;
  --width-4xl: 176px;
  --width-5xl: 180px;
  --min-width-sm: 24px;
  --min-width-md: 80px;
  --min-width-lg: 90px;
  --min-width-xl: 140px;
  --min-width-2xl: 200px;
  --max-width-sm: 120px;
  --max-width-md: 200px;
}

/* 
 * ===============================================
 * MUSIC EDITOR STYLES
 * ===============================================
 */
._container_decqz_65 {
  padding: var(--spacing-lg);
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  font-size: var(--font-size-md);
  min-height: 100vh;
  overflow-y: auto;
}

._pianoRoll_decqz_141 {
  display: flex;
}
._pianoRoll_decqz_141._chordMode_decqz_144 ._noteCell_decqz_144 {
  cursor: copy !important;
}

._pianoKeys_decqz_148 {
  width: var(--width-5xl);
  background-color: var(--track-header);
  border-right: 1px solid var(--track-border);
}

._pianoKey_decqz_148 {
  height: var(--height-base);
  border-bottom: 1px solid var(--grey-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-base);
  font-weight: bold;
  color: var(--white-color);
  background-color: var(--background-color);
}
._pianoKey_decqz_148:nth-child(odd) {
  background-color: var(--grey-color);
}

._pianoGrid_decqz_169 {
  flex: 1;
  background-color: var(--background-color);
}

._headerRow_decqz_174 {
  display: flex;
  height: 0px;
  border-bottom: 2px solid var(--grey-color);
  background-color: var(--grey-color);
}

._stepHeader_decqz_181 {
  width: var(--width-base);
  height: 0px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: var(--spacing-xs);
  font-size: var(--font-size-sm);
  font-weight: bold;
  color: var(--white-color);
  border-right: 1px solid var(--grey-color);
}
._stepHeader_decqz_181:nth-child(1) {
  border-left: 2px solid var(--white-color);
}
._stepHeader_decqz_181:nth-child(17), ._stepHeader_decqz_181:nth-child(33), ._stepHeader_decqz_181:nth-child(49) {
  border-left: 2px solid var(--white-color);
}

._noteRow_decqz_200 {
  display: flex;
  height: var(--height-base);
  border-bottom: 1px solid var(--grey-color);
}

._noteCell_decqz_144 {
  width: var(--width-base);
  height: var(--height-base);
  border: none;
  border-right: 1px solid var(--grey-color);
  background-color: var(--background-color);
  cursor: pointer;
  transition: background-color 0.1s ease;
}
._noteCell_decqz_144._active_decqz_215 {
  background-color: var(--note-color);
}
._noteCell_decqz_144._barStart_decqz_218 {
  border-left: 2px solid var(--white-color);
}
._noteCell_decqz_144:hover {
  background-color: var(--note-hover-color);
}
._noteCell_decqz_144._chordNote_decqz_224 {
  box-shadow: inset 0 0 0 1px var(--chord-note-color);
}
._noteCell_decqz_144._chordNote_decqz_224._active_decqz_215 {
  background-color: var(--chord-note-color);
  box-shadow: inset 0 0 0 1px var(--chord-note-color);
}
._noteCell_decqz_144._playhead_decqz_231 {
  box-shadow: inset 0 0 0 1px var(--playhead-color);
  animation: _pulse_decqz_1 0.52s ease-in-out infinite alternate;
}
._noteCell_decqz_144._playhead_decqz_231._active_decqz_215 {
  background-color: var(--playhead-color);
  box-shadow: inset 0 0 0 3px var(--playhead-color);
}
._noteCell_decqz_144._loopRegion_decqz_239 {
  background-color: color-mix(in srgb, var(--loop-region-color), transparent 90%);
}
._noteCell_decqz_144._loopRegion_decqz_239._active_decqz_215 {
  background-color: color-mix(in srgb, var(--note-color), var(--loop-region-color) 20%);
}
._noteCell_decqz_144._noteStart_decqz_245 {
  border-left: 3px solid var(--note-color);
  border-radius: 3px 0 0 3px;
}
._noteCell_decqz_144._noteExtension_decqz_249 {
  background-color: color-mix(in srgb, var(--note-color), transparent 50%);
  border-left: none;
  border-right: 1px solid var(--grey-color);
}
._noteCell_decqz_144._noteExtension_decqz_249:last-child {
  border-radius: 0 3px 3px 0;
}
._noteCell_decqz_144._noteExtension_decqz_249._chordNote_decqz_224 {
  background-color: color-mix(in srgb, var(--chord-note-color), transparent 70%);
}

@keyframes _pulse_decqz_1 {
  from {
    opacity: 0.7;
  }
  to {
    opacity: 1;
  }
}
._editorContent_decqz_269 {
  margin-bottom: var(--space-2xl);
  border: 1px solid var(--grey-color);
  border-top: none;
  border-radius: 0 0 var(--space-sm) var(--space-sm);
  min-height: var(--height-3xl);
  background-color: var(--background-color);
}

._saveDialog_decqz_278 {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin-top: var(--space-sm);
  padding: var(--space-sm);
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: var(--space-sm);
  border: 1px solid var(--grey-color);
}

._patternNameInput_decqz_289 {
  background-color: var(--background-color);
  color: var(--white-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-md);
  outline: none;
}
._patternNameInput_decqz_289:focus {
  border-color: var(--blue-color);
}

._saveButton_decqz_302, ._cancelButton_decqz_302 {
  background-color: var(--grey-color);
  color: var(--white-color);
  border: none;
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-base);
}
._saveButton_decqz_302:hover, ._cancelButton_decqz_302:hover {
  background-color: var(--blue-color);
}

._cancelButton_decqz_302 {
  background-color: var(--red-color);
}
._cancelButton_decqz_302:hover {
  background-color: #ff6b6b;
}

._patternBrowser_decqz_322 {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-height: var(--height-3xl);
  background: var(--background-color);
  border-radius: var(--space-sm);
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  margin-top: var(--space-sm);
}

._patternBrowserHeader_decqz_334 {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--grey-color);
  margin-bottom: var(--space-md);
}

._searchContainer_decqz_343 {
  display: flex;
}

._searchInput_decqz_347 {
  flex: 1;
  padding: var(--space-sm);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  background: var(--background-color);
  color: var(--white-color);
  font-size: 0.8rem;
  transition: border-color 0.2s ease;
}
._searchInput_decqz_347:focus {
  outline: none;
  border-color: var(--blue-color);
  box-shadow: 0 0 0 2px rgba(90, 139, 222, 0.1);
}

._patternList_decqz_363 {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

._noPatterns_decqz_371 {
  text-align: center;
  color: var(--lightish-grey-color);
  font-style: italic;
  padding: var(--space-lg);
}

._patternCard_decqz_378 {
  background: var(--background-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  transition: border-color 0.2s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  min-height: var(--height-lg);
}
._patternCard_decqz_378:hover {
  border-color: var(--green-color);
  background: var(--grey-color);
}

._patternCardRow_decqz_395 {
  display: grid;
  grid-template-columns: auto 1fr auto auto auto auto;
  align-items: center;
  gap: var(--space-md);
  min-height: var(--height-lg);
}

._patternName_decqz_289 {
  font-weight: bold;
  color: var(--white-color);
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex: 1;
  min-width: 0;
}

._patternDescription_decqz_414 {
  color: var(--lightish-grey-color);
  font-size: 0.7rem;
  font-style: italic;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: var(--min-width-2xl);
}

._patternTags_decqz_426 {
  display: flex;
  gap: var(--space-xs);
  flex-shrink: 0;
  max-width: var(--max-width-sm);
  overflow: hidden;
}

._tag_decqz_434 {
  background: var(--grey-color);
  color: var(--white-color);
  padding: var(--spacing-xs) var(--spacing-md);
  border-radius: 8px;
  font-size: 0.6rem;
  font-weight: 500;
  border: 1px solid var(--grey-color);
  transition: all 0.2s ease;
  white-space: nowrap;
}
._tag_decqz_434:hover {
  background: var(--green-color);
  color: var(--background-color);
  border-color: var(--green-color);
}

._tempoBadge_decqz_451 {
  background: var(--grey-color);
  color: var(--white-color);
  padding: var(--spacing-xs) var(--spacing-md);
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 3px;
  border: 1px solid var(--grey-color);
  flex-shrink: 0;
}

._patternActions_decqz_465 {
  display: flex;
  gap: var(--space-xs);
  align-items: center;
}

._previewButton_decqz_471, ._loadButton_decqz_471 {
  padding: var(--space-xs);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  background: var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 500;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-height: var(--min-width-sm);
  min-width: var(--min-width-sm);
}
._previewButton_decqz_471:hover, ._loadButton_decqz_471:hover {
  background: var(--blue-color);
  color: white;
  border-color: var(--blue-color);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

._loadButton_decqz_471 {
  background: var(--green-color);
  color: var(--background-color);
  border-color: var(--green-color);
  font-weight: 600;
}
._loadButton_decqz_471:hover {
  background: var(--orange-color);
}

._patternCount_decqz_506 {
  text-align: center;
  color: var(--lightish-grey-color);
  font-size: 0.8rem;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--grey-color);
}

._arrangeView_decqz_514 {
  padding: var(--space-lg);
  background-color: var(--background-color);
  min-height: var(--height-4xl);
}

._arrangeHeader_decqz_520 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 2px solid var(--grey-color);
}
._arrangeHeader_decqz_520 h2 {
  margin: 0;
  color: var(--white-color);
  font-size: var(--font-size-2xl);
}

._arrangeControls_decqz_534 {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
}

._totalDuration_decqz_540 {
  color: var(--white-color);
  font-weight: bold;
  font-size: var(--font-size-xl);
}

._arrangeContent_decqz_546 {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-xl);
  height: var(--height-3xl);
}

._patternLibrary_decqz_553 h3 {
  margin: 0 0 var(--space-md) 0;
  color: var(--white-color);
  font-size: var(--font-size-xl);
}

._sequenceSection_decqz_559 h3 {
  margin: 0 0 var(--space-md) 0;
  color: var(--white-color);
  font-size: var(--font-size-xl);
}

._sequenceHeader_decqz_565 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-md);
}

._clearButton_decqz_572 {
  background-color: var(--red-color);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--space-xs);
  font-size: var(--font-size-md);
  cursor: pointer;
  transition: background-color 0.2s ease;
}
._clearButton_decqz_572:hover:not(:disabled) {
  background-color: #d11a1a;
}
._clearButton_decqz_572:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._emptySequence_decqz_590 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: var(--height-xl);
  border: 2px dashed var(--grey-color);
  border-radius: var(--space-sm);
}
._emptySequence_decqz_590 p {
  color: var(--lightish-grey-color);
  margin: var(--space-xs) 0;
  font-style: italic;
}

._sequenceTimeline_decqz_605 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  max-height: var(--height-2xl);
  overflow-y: auto;
}

._sequenceItem_decqz_613 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-sm);
  background-color: var(--green-color);
  border: 1px solid var(--green-color);
  border-radius: var(--space-xs);
  transition: all 0.2s ease;
}
._sequenceItem_decqz_613:hover {
  background-color: #5ea86d;
}
._sequenceItem_decqz_613._currentlyPlaying_decqz_626 {
  animation: _currentlyPlayingPulse_decqz_1 1s ease-in-out infinite alternate;
  transition: all 0.3s ease;
}

._sequenceItemContent_decqz_631 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

._sequencePatternName_decqz_637 {
  color: var(--white-color);
  font-weight: bold;
  font-size: var(--font-size-lg);
}

._sequencePatternDuration_decqz_643 {
  color: var(--white-color);
  font-size: var(--font-size-base);
  opacity: 0.8;
}

._sequenceItemControls_decqz_649 {
  display: flex;
  gap: var(--space-xs);
}

._moveButton_decqz_654, ._removeButton_decqz_654 {
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs);
  border-radius: var(--space-xs);
  font-size: var(--font-size-base);
  cursor: pointer;
  transition: background-color 0.2s ease;
  min-width: var(--min-width-sm);
  height: var(--min-width-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}
._moveButton_decqz_654:hover, ._removeButton_decqz_654:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

._removeButton_decqz_654 {
  background-color: var(--red-color);
}
._removeButton_decqz_654:hover {
  background-color: #d11a1a;
}

@keyframes _currentlyPlayingPulse_decqz_1 {
  from {
    opacity: 0.8;
  }
  to {
    opacity: 1;
  }
}
._shortcuts_decqz_688 {
  margin-top: var(--space-lg);
  padding: var(--space-sm);
  background-color: transparent;
  border-top: 1px solid var(--grey-color);
  text-align: center;
}
._shortcuts_decqz_688 small {
  color: var(--lightish-grey-color);
  font-size: var(--font-size-base);
}._shortcuts_11cc0_1 {
  margin-top: var(--space-lg);
  padding: var(--space-sm);
  background-color: transparent;
  border-top: 1px solid var(--grey-color);
  text-align: center;
}
._shortcuts_11cc0_1 small {
  color: var(--lightish-grey-color);
  font-size: var(--font-size-base);
}._viewTab_13zgf_1 {
  padding: var(--spacing-sm) var(--spacing-lg);
  border: 1px solid var(--button-secondary);
  background-color: var(--button-secondary);
  color: var(--control-text);
  cursor: pointer;
  font-size: var(--font-size-base);
  font-weight: bold;
  border-radius: 0;
}
._viewTab_13zgf_1:first-child {
  border-top-left-radius: var(--spacing-sm);
  border-bottom-left-radius: var(--spacing-sm);
}
._viewTab_13zgf_1:last-child {
  border-top-right-radius: var(--spacing-sm);
  border-bottom-right-radius: var(--spacing-sm);
}
._viewTab_13zgf_1:hover {
  background-color: var(--button-hover);
}
._active_13zgf_22._viewTab_13zgf_1 {
  background-color: var(--control-active);
  border-color: var(--control-active);
}

._viewTab_13zgf_1 {
  font-size: var(--font-size-md);
  padding: var(--spacing-sm) var(--spacing-lg);
}
._viewTab_13zgf_1._active_13zgf_22 {
  background-color: var(--loop-region-color);
  border-color: var(--loop-region-color);
}

._viewTabsRow_13zgf_36 {
  display: flex;
  gap: 0;
  justify-content: center;
  margin-bottom: var(--spacing-md);
}._patternLibrarySection_ktom9_1 {
  margin-bottom: var(--space-md);
  padding: var(--space-md);
  background-color: rgba(255, 255, 255, 0.05);
  border-radius: var(--space-sm);
  border: 1px solid var(--grey-color);
}

._patternLibraryHeader_ktom9_9 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-sm);
}
._patternLibraryHeader_ktom9_9 h3 {
  margin: 0;
  color: var(--white-color);
  font-size: var(--font-size-xl);
}

._toggleButton_ktom9_21 {
  background: transparent;
  border: 1px solid var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  padding: var(--space-xs);
  border-radius: var(--space-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
._toggleButton_ktom9_21:hover {
  background-color: var(--grey-color);
  border-color: var(--blue-color);
}._playButton_1gl1x_1 {
  border: none;
  border-radius: var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-md);
  font-weight: bold;
  padding: var(--space-sm) var(--space-lg);
  transition: background-color 0.2s ease;
}

._globalControls_1gl1x_11 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-md);
  padding: var(--space-md);
  background-color: var(--control-background);
  border-radius: var(--space-sm);
}

._patternMetadata_1gl1x_21, ._playbackControls_1gl1x_21 {
  display: flex;
  gap: var(--space-lg);
  align-items: center;
}

._playbackControls_1gl1x_21 {
  gap: var(--space-md);
}

._controlGroup_1gl1x_31 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
._controlGroup_1gl1x_31 label {
  font-size: var(--font-size-md);
  color: var(--white-color);
  font-weight: bold;
}
._controlGroup_1gl1x_31 input, ._controlGroup_1gl1x_31 select {
  background-color: var(--input-background);
  border: 1px solid var(--input-border);
  color: var(--input-text);
  border-radius: var(--space-xs);
  font-size: var(--font-size-md);
}
._controlGroup_1gl1x_31 input:focus, ._controlGroup_1gl1x_31 select:focus {
  outline: none;
  border-color: var(--input-focus);
}
._controlGroup_1gl1x_31 select {
  cursor: pointer;
}
._controlGroup_1gl1x_31 span {
  color: var(--control-text);
  font-size: var(--font-size-md);
}

._playButton_1gl1x_1 {
  background-color: var(--button-primary);
  color: var(--control-text);
}
._playButton_1gl1x_1:hover {
  background-color: #5ea86d;
}
._playButton_1gl1x_1._playing_1gl1x_67 {
  background-color: var(--button-danger);
}
._playButton_1gl1x_1._playing_1gl1x_67:hover {
  background-color: #d11a1a;
}

._songInput_1gl1x_74 {
  width: var(--width-2xl);
  padding: var(--space-xs);
}

._patternSelectGlobal_1gl1x_79, ._timeSignatureSelect_1gl1x_79 {
  min-width: var(--min-width-md);
}

._tempoInput_1gl1x_83, ._lengthInput_1gl1x_83 {
  width: var(--width-md);
  padding: var(--space-xs);
}

._durationSelect_1gl1x_88 {
  min-width: var(--min-width-lg);
}

._loopLabel_1gl1x_92 {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--font-size-md);
  color: var(--white-color);
}

._loopCheckbox_1gl1x_100 {
  cursor: pointer;
  accent-color: var(--green-color);
}

._saveLoadButtons_1gl1x_105 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

._downloadButton_1gl1x_111, ._uploadButton_1gl1x_111 {
  background-color: var(--blue-color);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-base);
  cursor: pointer;
  border-radius: var(--space-xs);
  transition: background-color 0.2s ease;
}
._downloadButton_1gl1x_111:hover, ._uploadButton_1gl1x_111:hover {
  background-color: #4a8bc2;
}

._uploadButton_1gl1x_111 {
  background-color: var(--green-color);
}
._uploadButton_1gl1x_111:hover {
  background-color: #5ea86d;
}

._wavButton_1gl1x_132 {
  background-color: var(--purple-color);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-base);
  cursor: pointer;
  border-radius: var(--space-xs);
  transition: background-color 0.2s ease;
}
._wavButton_1gl1x_132:hover {
  background-color: #a855f7;
}._output_1tcxt_1 {
  margin-top: var(--space-2xl);
  padding: var(--space-lg);
  background-color: var(--grey-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
}

._outputHeader_1tcxt_9 {
  cursor: pointer;
  user-select: none;
  transition: background-color 0.2s ease;
  padding: var(--space-xs);
  margin: calc(-1 * var(--space-xs));
  border-radius: var(--space-xs);
}
._outputHeader_1tcxt_9:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

._outputTitle_1tcxt_21 {
  color: var(--white-color);
  margin-bottom: var(--space-xs);
  font-size: var(--font-size-lg);
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

._outputDescription_1tcxt_31 {
  color: var(--white-color);
  margin-bottom: var(--space-sm);
  font-size: var(--font-size-base);
}

._outputTextarea_1tcxt_37 {
  width: 100%;
  min-height: var(--height-xl);
  max-height: var(--height-3xl);
  background-color: var(--background-color);
  color: var(--white-color);
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  font-size: var(--font-size-md);
  outline: none;
  resize: vertical;
  line-height: 1.4;
}
._outputTextarea_1tcxt_37:focus {
  border-color: var(--blue-color);
}

._dataManagementContainer_1tcxt_55 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  margin-top: var(--space-md);
}

._dataSection_1tcxt_62 {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
._dataSection_1tcxt_62 h4 {
  color: var(--white-color);
  margin: 0;
  font-size: var(--font-size-md);
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

._dataSectionHeader_1tcxt_77 {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

._copyButton_1tcxt_83 {
  background: transparent;
  border: 1px solid var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  padding: var(--space-xs);
  border-radius: var(--space-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
._copyButton_1tcxt_83:hover {
  background-color: var(--grey-color);
  border-color: var(--blue-color);
}

._importHint_1tcxt_100 {
  color: var(--lightish-grey-color);
  font-size: var(--font-size-sm);
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}
._importHint_1tcxt_100 kbd {
  background-color: var(--background-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  padding: 2px var(--space-xs);
  font-size: var(--font-size-xs);
  font-family: monospace;
}._channelTab_1mi6y_1 {
  padding: var(--space-sm) var(--space-lg);
  border: 1px solid var(--grey-color);
  background-color: var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  font-size: var(--font-size-sm);
  font-weight: bold;
  border-radius: 0;
  transition: background-color 0.2s ease;
}
._channelTab_1mi6y_1:first-child {
  border-top-left-radius: var(--space-sm);
  border-bottom-left-radius: var(--space-sm);
}
._channelTab_1mi6y_1:last-child {
  border-top-right-radius: var(--space-sm);
  border-bottom-right-radius: var(--space-sm);
}
._channelTab_1mi6y_1:hover:not(._active_1mi6y_20) {
  background-color: var(--blue-color);
}
._active_1mi6y_20._channelTab_1mi6y_1 {
  background-color: var(--green-color);
  border-color: var(--green-color);
}

._channelTabsRow_1mi6y_28 {
  display: flex;
  gap: 0;
  justify-content: center;
  margin-bottom: var(--space-md);
}._livePreviewButton_qogbu_1 {
  border: none;
  border-radius: var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-md);
  font-weight: bold;
  padding: var(--space-sm) var(--space-lg);
  transition: background-color 0.2s ease;
}

._channelSpecificControls_qogbu_11 {
  display: flex;
  gap: var(--space-lg);
  align-items: center;
  padding: var(--space-sm) var(--space-md);
  background-color: rgba(255, 255, 255, 0.05);
  border-radius: var(--space-sm);
  margin-bottom: var(--space-md);
}

._toolbarGroup_qogbu_21 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
._toolbarGroup_qogbu_21 label {
  font-size: var(--font-size-md);
  color: var(--white-color);
  font-weight: bold;
}

._octaveButton_qogbu_32 {
  background-color: var(--grey-color);
  color: var(--white-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  cursor: pointer;
  font-size: var(--font-size-base);
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--width-sm);
  height: var(--width-sm);
  transition: background-color 0.2s ease;
}
._octaveButton_qogbu_32:hover:not(:disabled) {
  background-color: var(--blue-color);
}
._octaveButton_qogbu_32:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._octaveDisplay_qogbu_55 {
  color: var(--white-color);
  font-weight: bold;
  text-align: center;
  font-size: var(--font-size-xl);
  min-width: var(--width-2xl);
}

._scaleSelectToolbar_qogbu_63 {
  background-color: var(--input-background);
  border: 1px solid var(--input-border);
  color: var(--input-text);
  border-radius: var(--space-xs);
  padding: var(--space-xs);
  font-size: var(--font-size-md);
  width: var(--width-4xl);
  cursor: pointer;
}
._scaleSelectToolbar_qogbu_63:focus {
  outline: none;
  border-color: var(--input-focus);
}

._livePreviewButton_qogbu_1 {
  background-color: var(--button-secondary);
  color: var(--control-text);
  border: 1px solid var(--button-secondary);
}
._livePreviewButton_qogbu_1:hover {
  background-color: var(--button-hover);
}
._livePreviewButton_qogbu_1._active_qogbu_86 {
  background-color: var(--button-primary);
  border-color: var(--button-primary);
}

._saveButton_qogbu_91, ._cancelButton_qogbu_91 {
  background-color: var(--grey-color);
  color: var(--white-color);
  border: none;
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-base);
  transition: background-color 0.2s ease;
}
._saveButton_qogbu_91:hover, ._cancelButton_qogbu_91:hover {
  background-color: var(--blue-color);
}

._cancelButton_qogbu_91 {
  background-color: var(--red-color);
}
._cancelButton_qogbu_91:hover {
  background-color: #ff6b6b;
}

._saveDialog_qogbu_112 {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin-left: var(--space-sm);
}

._patternNameInput_qogbu_119 {
  background-color: var(--background-color);
  color: var(--white-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-md);
  outline: none;
}
._patternNameInput_qogbu_119:focus {
  border-color: var(--blue-color);
}._mixerPanel_aprx7_1 {
  background-color: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
  width: 100%;
}

._mixerChannels_aprx7_10 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

._mixerChannel_aprx7_10 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  align-items: center;
  background-color: rgba(255, 255, 255, 0.05);
  padding: var(--space-sm);
  border-radius: var(--space-xs);
  min-width: var(--min-width-xl);
}

._channelLabel_aprx7_28 {
  color: var(--white-color);
  font-size: var(--font-size-base);
  font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
}

._testButton_aprx7_39 {
  background-color: var(--blue-color);
  color: var(--white-color);
  border: none;
  border-radius: var(--space-xs);
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-xs);
  transition: background-color 0.2s ease;
}
._testButton_aprx7_39:hover {
  background-color: #4a8bc2;
}

._muteButton_aprx7_53 {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}
._muteButton_aprx7_53 label {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--font-size-sm);
  color: var(--white-color);
  cursor: pointer;
}
._muteButton_aprx7_53 input[type=checkbox] {
  cursor: pointer;
  accent-color: var(--red-color);
}

._volumeControl_aprx7_71 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
}

._volumeSlider_aprx7_78 {
  width: var(--width-lg);
  height: var(--height-sm);
  background: var(--grey-color);
  border-radius: 10px;
  cursor: pointer;
}
._volumeSlider_aprx7_78::-webkit-slider-thumb {
  appearance: none;
  width: var(--width-sm);
  height: var(--width-sm);
  border-radius: 50%;
  background: var(--green-color);
  cursor: pointer;
}
._volumeSlider_aprx7_78::-moz-range-thumb {
  width: var(--width-sm);
  height: var(--width-sm);
  border-radius: 50%;
  background: var(--green-color);
  cursor: pointer;
  border: none;
}

._volumeLabel_aprx7_102 {
  color: var(--white-color);
  font-size: var(--font-size-sm);
  font-weight: bold;
}

._envelopeControl_aprx7_108,
._dutyControl_aprx7_109 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  width: 100%;
}
._envelopeControl_aprx7_108 label,
._dutyControl_aprx7_109 label {
  font-size: var(--font-size-sm);
  color: var(--white-color);
  font-weight: bold;
}

._channelSelect_aprx7_123 {
  background-color: var(--input-background);
  border: 1px solid var(--input-border);
  color: var(--input-text);
  border-radius: var(--space-xs);
  padding: var(--space-xs);
  font-size: var(--font-size-sm);
  width: 100%;
  cursor: pointer;
}
._channelSelect_aprx7_123:focus {
  outline: none;
  border-color: var(--input-focus);
}

._masterControls_aprx7_138 {
  display: flex;
  justify-content: center;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--grey-color);
}

._masterVolume_aprx7_145 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
._masterVolume_aprx7_145 label {
  color: var(--white-color);
  font-size: var(--font-size-lg);
  font-weight: bold;
}
._masterVolume_aprx7_145 ._volumeSlider_aprx7_78 {
  width: var(--width-2xl);
}._gameCanvasWrapper_kkvdf_1 {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  overflow-x: scroll;
}
._gameCanvasWrapper_kkvdf_1 canvas {
  outline: none;
}

._cursorNone_kkvdf_12 {
  cursor: default;
}

._cursorSpawnable_kkvdf_16 {
  cursor: crosshair;
}

._cursorZone_kkvdf_20 {
  cursor: cell;
}

._cursorPortal_kkvdf_24 {
  cursor: alias;
}

._cursorErase_kkvdf_28 {
  cursor: no-drop;
}

._cursorDesignate_kkvdf_32 {
  cursor: copy;
}._toolButtons_32x57_1 {
  position: absolute;
  bottom: 2em;
  margin-left: auto;
  width: 100vw;
}
._toolButtons_32x57_1 ._toolButton_32x57_1 {
  background-color: var(--background-color);
  border: 1px solid var(--yellow-color);
  color: var(--yellow-color);
}
._toolButtons_32x57_1 ._toolButton_32x57_1._active_32x57_12 {
  background-color: var(--yellow-color);
  border: 1px solid transparent;
  color: var(--background-color);
}._container_ytblx_1 {
  background-color: #222;
  padding: var(--space-md);
  border: 1px solid var(--color-lightish-grey);
  border-radius: var(--space-sm);
  max-height: 300px;
  overflow-y: auto;
}

._header_ytblx_10 {
  font-size: 12px;
  color: #aaa;
  margin-bottom: var(--space-sm);
}

._configKey_ytblx_16 {
  min-width: 180px;
  color: #ccc;
  font-size: 11px;
  font-family: monospace;
}

._configInput_ytblx_23 {
  flex: 1;
}

._saveButton_ytblx_27 {
  font-size: 10px !important;
  padding: var(--space-xs) !important;
}

._warning_ytblx_32 {
  margin-top: var(--space-md);
  padding: var(--space-sm);
  background-color: #333;
  font-size: 10px;
  color: #aaa;
  border: 1px solid var(--color-grey);
  border-radius: var(--space-xs);
  font-family: monospace;
}._timeDisplay_1cml7_1 {
  display: flex;
  align-items: center;
  padding: 8px 16px;
  background: rgba(0, 0, 0, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  font-family: monospace;
  font-size: 14px;
  color: #ffffff;
  backdrop-filter: blur(4px);
  margin-right: 8px;
}

._timeText_1cml7_15 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  letter-spacing: 0.5px;
}

._year_1cml7_23 {
  color: #ffd700;
}

._season_1cml7_27 {
  color: #87ceeb;
}

._day_1cml7_31 {
  color: #98fb98;
}

._time_1cml7_1 {
  color: #ffa07a;
  font-weight: 600;
}

._separator_1cml7_40 {
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
}

@media (max-width: 768px) {
  ._timeDisplay_1cml7_1 {
    font-size: 12px;
    padding: 6px 12px;
  }
  ._timeText_1cml7_15 {
    gap: 4px;
  }
}._title_vrn14_1 {
  font-weight: bold;
  font-size: 12px;
  font-family: monospace;
  color: var(--white-color);
}

._activeStatus_vrn14_8 {
  color: var(--yellow-color);
  font-size: 11px;
  font-family: monospace;
  font-weight: bold;
}

._queueInfo_vrn14_15 {
  font-size: 10px;
  font-family: monospace;
  color: var(--white-color);
  opacity: 0.8;
}

._sectionTitle_vrn14_22 {
  font-size: 11px;
  font-family: monospace;
  font-weight: bold;
  color: var(--white-color);
  margin-bottom: var(--space-xs);
}

._recipeButton_vrn14_30 {
  text-align: left !important;
  justify-content: flex-start !important;
  font-size: 11px !important;
  font-family: monospace !important;
  padding: var(--space-sm) var(--space-md) !important;
}

._noRecipes_vrn14_38 {
  font-size: 10px;
  font-family: monospace;
  color: var(--white-color);
  opacity: 0.6;
  font-style: italic;
}._container_fih8m_1 {
  border-color: var(--grey-color);
  border-width: 2px 2px 0px 0px;
  border-radius: 0px var(--space-xs) 0px 0px;
  border-style: solid;
  position: absolute;
  left: 0;
  bottom: 0;
  overflow-y: scroll;
  height: 50vh;
  background: color-mix(in srgb, var(--background-color), var(--white-color) 10%);
  margin: 0;
  padding: var(--space-md);
  width: 240px;
  scrollbar-width: none;
}
._container_fih8m_1::-webkit-scrollbar {
  display: none;
}

._selectedEntityTop_fih8m_21 {
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  padding: var(--space-md);
  margin-bottom: var(--space-sm);
  background-color: var(--background-color);
}._gameContainer_v0vnn_1 {
  width: 100vw;
  height: 100vh;
  position: relative;
}

._areaHeader_v0vnn_7 {
  color: var(--yellow-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: absolute;
  top: var(--space-2xl);
  left: var(--space-lg);
  right: var(--space-lg);
  z-index: 10;
  pointer-events: none;
}
._areaHeader_v0vnn_7 h1 {
  margin: 0;
  font-family: monospace;
  font-size: 2rem;
  flex: 1;
  text-align: center;
}

._debugCoordinates_v0vnn_27 {
  position: fixed;
  bottom: var(--space-md);
  right: var(--space-md);
  background-color: rgba(0, 0, 0, 0.6);
  color: var(--white-color);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--space-xs);
  font-size: 11px;
  font-family: monospace;
  pointer-events: none;
  z-index: 1000;
}._footer_1pvgy_1 {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--background-color);
  border-top: 1px solid var(--grey-color);
  padding: var(--space-lg) var(--space-xl);
  z-index: 100;
}

._content_1pvgy_12 {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

._userSection_1pvgy_18 {
  flex: 1;
}

._userInfo_1pvgy_22 {
  color: var(--white-color);
  font-size: 13px;
}
._userInfo_1pvgy_22 strong {
  color: var(--yellow-color);
}

._status_1pvgy_30 {
  display: flex;
  align-items: center;
}._container_whyhc_1 {
  padding: var(--space-4xl);
  max-width: 1200px;
  margin: 0 auto;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 120px;
}

._contentSection_whyhc_12 {
  max-width: 800px;
  text-align: center;
}

._spriteLine_whyhc_17 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-md);
  margin: var(--space-xl) 0;
  flex-wrap: wrap;
}

._fadeIn_whyhc_26 {
  opacity: 1;
  transition: opacity 0.5s ease-in-out;
}

._fadeOut_whyhc_31 {
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}._container_1f5qi_1 {
  position: relative;
  min-height: 100vh;
  margin-top: var(--space-4xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2xl);
  min-width: 20vw;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 120px;
}

._title_1f5qi_16 {
  font-size: 1.8rem;
  font-family: monospace;
  font-weight: bold;
  color: var(--yellow-color);
  text-decoration: none;
}

._embarkForm_1f5qi_24 {
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  width: 100%;
}

._formContent_1f5qi_31 {
  flex: 1;
}*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

button {
  display: block;
}

input, button, textarea, select {
  font: inherit;
}

ul[role=list],
ol[role=list] {
  list-style: none;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

img, picture, svg, video, canvas {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  font-style: italic;
  background-repeat: no-repeat;
  background-size: cover;
}

body, html {
  height: 100%;
  scroll-behavior: smooth;
}

html:focus-within {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
    transition: none;
  }
}
:root {
  --white-color: #ebebeb;
  --lightish-grey-color: #aaa;
  --grey-color: #333;
  --purple-color: #7e2553;
  --blue-color: #5a8bde;
  --red-color: #ec1c24;
  --orange-color: #dc6250;
  --yellow-color: #ffd4a3;
  --green-color: #449d71;
  --background-color: #081b1b;
  /* Echo UI tokens - these will be overridden by @echoes/ui */
  --echoes-white: var(--white-color);
  --echoes-lightish-grey: var(--lightish-grey-color);
  --echoes-grey: var(--grey-color);
  --echoes-purple: var(--purple-color);
  --echoes-blue: var(--blue-color);
  --echoes-red: var(--red-color);
  --echoes-orange: var(--orange-color);
  --echoes-yellow: var(--yellow-color);
  --echoes-green: var(--green-color);
  --echoes-background: var(--background-color);
  /* Echo spacing tokens */
  --echoes-space-xs: var(--space-xs);
  --echoes-space-sm: var(--space-sm);
  --echoes-space-md: var(--space-md);
  --echoes-space-lg: var(--space-lg);
  --echoes-space-xl: var(--space-xl);
  --echoes-space-2xl: var(--space-2xl);
  --echoes-space-3xl: var(--space-3xl);
  --echoes-space-4xl: var(--space-4xl);
  /* Echo typography tokens */
  --echoes-font-family: monospace;
  --echoes-font-size-xs: 10px;
  --echoes-font-size-sm: 11px;
  --echoes-font-size-base: 13px;
  --echoes-font-size-lg: 16px;
  /* Echo border radius tokens */
  --echoes-radius-xs: 2px;
  --echoes-radius-sm: 4px;
  --echoes-radius-md: 6px;
  /* Spacing scale */
  --space-xs: 2px;
  --space-sm: 4px;
  --space-md: 8px;
  --space-lg: 12px;
  --space-xl: 16px;
  --space-2xl: 20px;
  --space-3xl: 24px;
  --space-4xl: 32px;
  /* Legacy padding (keeping for compatibility) */
  --padding: 16px;
}

* {
  font-family: monospace;
}

::-webkit-scrollbar {
  width: 0px;
  background: transparent;
}

html {
  height: 100vh;
  width: 100vw;
  background-color: var(--background-color);
  cursor: crosshair;
  font-family: monospace;
  color: var(--white-color);
  font-size: 13px;
}

body {
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

h1 {
  margin-bottom: 0.7em;
}

h2 {
  margin-bottom: 0.5em;
}

label {
  font-size: 1rem;
}

a {
  text-decoration: none;
}

textarea,
input {
  padding: var(--space-sm);
  border: none;
  font-size: 1rem;
  outline: none;
  height: 2rem;
  color: var(--white-color);
  background: transparent;
  border: 1px solid var(--white-color);
}

button {
  padding: var(--space-sm);
  border: none;
  border-radius: 0;
  outline: none;
  cursor: pointer;
  font-size: 1rem;
}

hr {
  font-size: 1.1rem;
  border: none;
  border-top: 3px double var(--white-color);
  color: var(--white-color);
  overflow: visible;
  text-align: center;
  height: 1em;
  margin: 3em 0;
}
hr::after {
  background: var(--background-color);
  content: "§";
  padding: 0 var(--space-sm);
  position: relative;
  top: -0.7em;
}

#root {
  height: 100vh;
  width: 100vw;
}

.App {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
}

.bg-action-color {
  background-color: var(--green-color);
  color: var(--background-color);
}

.green {
  color: var(--green-color);
}

.bold {
  font-weight: 800;
}

.border {
  border: 1px solid var(--white-color);
}

.push-bottom {
  margin-bottom: 2em;
}

.small-text {
  font-size: 0.8rem;
  color: var(--yellow-color);
  margin-top: var(--space-md);
}

.text-xs {
  font-size: 0.7rem;
}

.text-sm {
  font-size: 0.8rem;
}.flex {
  display: flex;
}
.flex.align-center {
  align-items: center;
}
.flex.justify-center {
  justify-content: center;
}
.flex.space-between {
  justify-content: space-between;
}
.flex.flex-column {
  flex-direction: column;
}
.flex.flex-wrap {
  flex-wrap: wrap;
}
.flex.flex-1 {
  flex: 1;
}
.flex.flex-2 {
  flex: 2;
}
.flex.row-stretch {
  align-items: stretch;
}

.align-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.space-between {
  justify-content: space-between;
}

.flex-column {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-1 {
  flex: 1;
}

.flex-2 {
  flex: 2;
}

.row-stretch {
  align-items: stretch;
}

.gap5 {
  gap: var(--space-sm);
}

.gap10 {
  gap: var(--space-md);
}

.gap20 {
  gap: var(--space-2xl);
}@keyframes flicker {
  0% {
    opacity: 0.27861;
  }
  5% {
    opacity: 0.34769;
  }
  10% {
    opacity: 0.23604;
  }
  15% {
    opacity: 0.90626;
  }
  20% {
    opacity: 0.18128;
  }
  25% {
    opacity: 0.83891;
  }
  30% {
    opacity: 0.65583;
  }
  35% {
    opacity: 0.67807;
  }
  40% {
    opacity: 0.26559;
  }
  45% {
    opacity: 0.84693;
  }
  50% {
    opacity: 0.96019;
  }
  55% {
    opacity: 0.08594;
  }
  60% {
    opacity: 0.20313;
  }
  65% {
    opacity: 0.71988;
  }
  70% {
    opacity: 0.53455;
  }
  75% {
    opacity: 0.37288;
  }
  80% {
    opacity: 0.71428;
  }
  85% {
    opacity: 0.70419;
  }
  90% {
    opacity: 0.7003;
  }
  95% {
    opacity: 0.36108;
  }
  100% {
    opacity: 0.24387;
  }
}
.crt {
  position: relative;
}
.crt::after {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
  z-index: 2;
  pointer-events: none;
  animation: flicker 0.15s infinite;
  will-change: contents;
}
.crt::before {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
  z-index: 2;
  background-size: 100% 2px, 3px 100%;
  pointer-events: none;
  will-change: contents;
}:root {
  --echoes-white: #ffffff;
  --echoes-purple: #a855f7;
  --echoes-blue: #3b82f6;
  --echoes-red: #ef4444;
  --echoes-orange: #f97316;
  --echoes-yellow: #eab308;
  --echoes-green: #4ade80;
  --echoes-grey: #6b7280;
  --echoes-lightish-grey: #9ca3af;
  --echoes-background: #081b1b;
  --echoes-space-xs: 2px;
  --echoes-space-sm: 4px;
  --echoes-space-md: 8px;
  --echoes-space-lg: 12px;
  --echoes-space-xl: 16px;
  --echoes-space-2xl: 20px;
  --echoes-space-3xl: 24px;
  --echoes-space-4xl: 32px;
  --echoes-font-family: monospace;
  --echoes-font-size-xs: 10px;
  --echoes-font-size-sm: 11px;
  --echoes-font-size-base: 13px;
  --echoes-font-size-lg: 16px;
  --echoes-radius-xs: 2px;
  --echoes-radius-sm: 4px;
  --echoes-radius-md: 6px;
}

* {
  box-sizing: border-box;
}

body {
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  line-height: 1.5;
  color: var(--echoes-white);
  background-color: var(--echoes-background);
}

.text-xs {
  font-size: var(--echoes-font-size-xs);
}

.text-sm {
  font-size: var(--echoes-font-size-sm);
}

.text-base {
  font-size: var(--echoes-font-size-base);
}

.text-lg {
  font-size: var(--echoes-font-size-lg);
}

/*# sourceMappingURL=globals.css.map */
