@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap'); .keyboard-container { width: 100%; padding: 1.5rem; background: #fafafa; border: 1px solid #e5e5e5; border-radius: 4px; font-family: 'Roboto', sans-serif; user-select: none; } .keyboard-row { display: flex; gap: 0.25rem; margin-bottom: 0.25rem; width: 100%; } .key { width: calc((100% - 2.75rem) / 12); aspect-ratio: 1; min-width: 40px; flex: none; border: 1px solid #e5e5e5; border-radius: 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; background: white; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); user-select: none; padding: 0.5rem; } .key:hover { background: #f5f5f5; transform: translateY(-1px); } .key:active { transform: translateY(0); } .key-label { font-size: 0.875rem; font-weight: 500; color: #333; user-select: none; } .note-label { font-size: 0.75rem; color: #666; margin-top: 0.25rem; user-select: none; } .controls { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; } .effects-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; padding: 1rem; background: #fafafa; border-radius: 4px; } .control-group { display: flex; flex-direction: column; gap: 0.5rem; } .control-group label { font-size: 0.75rem; color: #666; text-transform: uppercase; letter-spacing: 0.05em; user-select: none; } input[type="range"] { width: 100%; height: 24px; /* Increased height for better touch target */ background: transparent; /* Remove default background */ border-radius: 2px; appearance: none; cursor: pointer; margin: 0; padding: 10px 0; /* Add padding for better touch area */ } input[type="range"]::-webkit-slider-thumb { appearance: none; width: 24px; /* Increased size */ height: 24px; /* Increased size */ background: #000000; border-radius: 50%; cursor: pointer; transition: background 0.2s; margin-top: -10px; /* Center thumb vertically */ user-select: none; } input[type="range"]::-webkit-slider-runnable-track { background: #393a39; height: 4px; border-radius: 2px; user-select: none; } select { padding: 0.5rem; border-radius: 4px; border: 1px solid #e5e5e5; background: white; font-family: 'Roboto', sans-serif; font-size: 0.875rem; user-select: none; cursor: pointer; } .button-group { display: flex; align-items: center; gap: 0.5rem; } .button-group button { width: 2rem; height: 2rem; padding: 0; display: flex; align-items: center; justify-content: center; border: 1px solid #e5e5e5; border-radius: 4px; background: white; cursor: pointer; transition: all 0.2s; user-select: none; } .button-group button:hover { background: #f5f5f5; } button { padding: 0.5rem 1rem; border: none; border-radius: 4px; background: #015131; color: white; font-family: 'Roboto', sans-serif; font-size: 0.875rem; cursor: pointer; transition: all 0.2s; user-select: none; } button:hover { background: #002114; } body { font-family: 'Roboto', sans-serif; font-size: 1rem; line-height: 1.5; color: #333; background: #f5f5f5; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; min-height: 100vh; } @media (max-width: 768px) { .control-group { min-width: 100%; } .key { min-width: 35px; } .key-label { font-size: 0.75rem; } input[type="range"] { height: 32px; /* Even larger touch target on mobile */ padding: 14px 0; } input[type="range"]::-webkit-slider-thumb { width: 28px; /* Larger thumb on mobile */ height: 28px; } }