/**
 * Virtual Drum Kit Styles with Updated Drum Sizes
 */

.virtual-drum-kit-container {
    margin: 0 auto;
    font-family: Arial, sans-serif;
    padding: 20px;
    box-sizing: border-box;
    max-width: 1600px;
}

.virtual-drum-kit-container * {
    box-sizing: border-box;
}

.virtual-drum-kit-container .header {
    text-align: center;
    margin-bottom: 20px;
    width: 100%;
}

.virtual-drum-kit-container .header h2 {
    margin-top: 0;
    margin-bottom: 10px;
}

.virtual-drum-kit-container .header p {
    margin-top: 0;
    opacity: 0.7;
}

.virtual-drum-kit-container .drum-kit {
    position: relative;
    width: 100%;
    padding-top: 56.25%; /* 16:9 Aspect Ratio */
    background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSIjMWExYTFhIj48L3JlY3Q+CiAgPHBhdGggZD0iTTAgMEwyMCAyME0yMCAwTDAgMjAiIHN0cm9rZT0iIzMzMyIgc3Ryb2tlLXdpZHRoPSIxIj48L3BhdGg+Cjwvc3ZnPg==');
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    border: 1px solid #333;
    margin-bottom: 20px;
}

.virtual-drum-kit-container .drum-kit::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at center, transparent 0%, rgba(0, 0, 0, 0.5) 100%);
    pointer-events: none;
    z-index: 1;
}

.virtual-drum-kit-container .drum-kit::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 20%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, transparent 100%);
    pointer-events: none;
    z-index: 1;
}

/* Default drum properties */
.virtual-drum-kit-container .drum {
    position: absolute;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.6);
    transition: transform 0.05s, box-shadow 0.05s;
    z-index: 2;
}

/* Updated drum positions and sizes from browser inspect */
.virtual-drum-kit-container #crash-left {
    width: 19%; 
    height: 19%; 
    left: 0.5%; 
    top: 10.5%;
}

.virtual-drum-kit-container #hihat-closed {
    width: 22%; 
    height: 30%; 
    left: 4%; 
    top: 34%;
}

.virtual-drum-kit-container #hihat-open {
    width: 24%; 
    height: 31%; 
    left: 4%; 
    top: 65%;
}

.virtual-drum-kit-container #hi-tom {
    width: 19%; 
    height: 28%; 
    left: 21.5%; 
    top: 3.5%;
}

.virtual-drum-kit-container #mid-tom {
    width: 22%; 
    height: 30%; 
    left: 41.5%; 
    top: 2.5%;
}

.virtual-drum-kit-container #snare {
    width: 24%; 
    height: 32%; 
    left: 26.5%; 
    top: 30.5%;
}

.virtual-drum-kit-container #floor-tom {
    width: 26%; 
    height: 38%; 
    left: 52%; 
    top: 29%;
}

.virtual-drum-kit-container #ride {
    width: 26%; 
    height: 36%; 
    left: 70.5%; 
    top: 2.5%;
}

.virtual-drum-kit-container #crash-right {
    width: 22%; 
    height: 34%; 
    left: 74.5%; 
    top: 58.5%;
}

.virtual-drum-kit-container #bass {
    width: 30%; 
    height: 37%; 
    left: 30%; 
    top: 63%;
}

/* Visual styles for different drum types */
.virtual-drum-kit-container .drum.cymbal {
    background: radial-gradient(circle at center, #f0d78a 0%, #d4b95c 70%, #b39a4a 100%);
    border: 2px solid #b39a4a;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5), inset 0 -5px 10px rgba(0, 0, 0, 0.3);
    transform-style: preserve-3d;
    perspective: 1000px;
}

.virtual-drum-kit-container .drum.cymbal::after {
    content: '';
    position: absolute;
    width: 20%;
    height: 20%;
    background: radial-gradient(circle at center, #c6af64 0%, #b39a4a 100%);
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3), inset 0 0 5px rgba(0, 0, 0, 0.5);
    border: 1px solid #aa9142;
}

.virtual-drum-kit-container .drum.cymbal::before {
    content: '';
    position: absolute;
    width: 90%;
    height: 90%;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, transparent 50%, rgba(0, 0, 0, 0.2) 100%);
    z-index: 1;
}

.virtual-drum-kit-container .drum.tom {
    background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%);
    border: 8px solid #d4b85c;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
    overflow: hidden;
}

.virtual-drum-kit-container .drum.tom::after {
    content: '';
    position: absolute;
    width: 92%;
    height: 92%;
    border-radius: 50%;
    border: 1px solid #eee;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle at center, rgba(220 219 115 / 50%) 0%, transparent 70%);
}

.virtual-drum-kit-container .drum.tom::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    top: 0;
    left: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0%, transparent 50%, rgba(0, 0, 0, 0.2) 100%);
    z-index: 1;
    pointer-events: none;
}

.virtual-drum-kit-container .drum.snare {
    background: linear-gradient(135deg, #f8f8f8 0%, #eaeaea 100%);
    border: 8px solid #d4b85c;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
    overflow: hidden;
}

.virtual-drum-kit-container .drum.snare::after {
    content: '';
    position: absolute;
    width: 92%;
    height: 92%;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.8) 0%, rgba(245, 245, 245, 0.5) 100%);
    border: 1px solid #eee;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.virtual-drum-kit-container .drum.snare::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(0, 0, 0, 0.03) 2px, rgba(0, 0, 0, 0.03) 4px);
    border-radius: 50%;
    z-index: 1;
    pointer-events: none;
}

.virtual-drum-kit-container .drum.bass {
    background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
    border: 10px solid #d4b85c;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.virtual-drum-kit-container .drum.bass::after {
    content: '';
    position: absolute;
    width: 90%;
    height: 90%;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(116 68 9 / 80%) 0%, rgba(255 203 184 / 50%) 100%);
    border: 1px solid #eee;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.virtual-drum-kit-container .drum.bass::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: radial-gradient(circle at center, transparent 50%, rgba(0, 0, 0, 0.1) 100%);
    border-radius: 50%;
    z-index: 1;
    pointer-events: none;
}

.virtual-drum-kit-container .drum.hihat-open, 
.virtual-drum-kit-container .drum.hihat-closed {
    background: radial-gradient(circle at center, #f0d78a 0%, #d4b95c 70%, #b39a4a 100%);
    border: 2px solid #b39a4a;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5), inset 0 -5px 10px rgba(0, 0, 0, 0.3);
}

.virtual-drum-kit-container .drum.hihat-open::after, 
.virtual-drum-kit-container .drum.hihat-closed::after {
    content: '';
    position: absolute;
    width: 18%;
    height: 18%;
    background: radial-gradient(circle at center, #c6af64 0%, #b39a4a 100%);
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3), inset 0 0 5px rgba(0, 0, 0, 0.5);
    border: 1px solid #aa9142;
}

.virtual-drum-kit-container .drum.hihat-open::before, 
.virtual-drum-kit-container .drum.hihat-closed::before {
    content: '';
    position: absolute;
    width: 92%;
    height: 92%;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, transparent 50%, rgba(0, 0, 0, 0.2) 100%);
    z-index: 1;
}

.virtual-drum-kit-container .drum.hihat-closed::before {
    height: 4px;
    background: rgba(0, 0, 0, 0.15);
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
    top: calc(50% - 1px);
    transform: translate(-50%, -50%) rotate(-5deg);
}

/* Animation and hover effects */
.virtual-drum-kit-container .drum.active {
    transform: scale(0.95);
    box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
}

/* Cymbal wobble animation */
@keyframes wobble {
    0% { transform: rotate(0deg); }
    25% { transform: rotate(-2deg); }
    50% { transform: rotate(0deg); }
    75% { transform: rotate(2deg); }
    100% { transform: rotate(0deg); }
}

.virtual-drum-kit-container .drum.cymbal.active,
.virtual-drum-kit-container .drum.hihat-open.active,
.virtual-drum-kit-container .drum.hihat-closed.active {
    animation: wobble 0.3s ease-in-out;
}

.virtual-drum-kit-container .key-hint {
    position: absolute;
    bottom: 15%;
    right: 15%;
    font-size: 14px;
    font-weight: bold;
    color: #000;
    background-color: rgba(255, 255, 255, 0.7);
    padding: 4px 9px;
    border-radius: 5px;
    pointer-events: none;
    z-index: 3;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

/* Hide keyboard shortcuts on mobile */
@media (max-width: 1024px) {
    .virtual-drum-kit-container .key-hint {
        display: none;
    }
}

.virtual-drum-kit-container .controls {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
}

.virtual-drum-kit-container .control-btn {
    background-color: #333;
    color: #fff;
    border: none;
    padding: 12px 20px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.2s, transform 0.1s;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
}

.virtual-drum-kit-container .control-btn:hover {
    background-color: #555;
    transform: translateY(-2px);
}

.virtual-drum-kit-container .control-btn:active {
    transform: translateY(1px);
}

.virtual-drum-kit-container .control-btn.active {
    background-color: #d4b85c;
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
}

.virtual-drum-kit-container .kit-selector {
    position: relative;
    margin-right: 15px;
}

.virtual-drum-kit-container .kit-selector select {
    appearance: none;
    -webkit-appearance: none;
    background-color: #333;
    color: #fff;
    border: none;
    padding: 12px 40px 12px 20px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
    width: 160px;
}

.virtual-drum-kit-container .kit-selector::after {
    content: '▼';
    font-size: 12px;
    color: #d4b85c;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.virtual-drum-kit-container .kit-selector select:hover {
    background-color: #444;
}

.virtual-drum-kit-container .kit-selector select:focus {
    outline: none;
    box-shadow: 0 0 0 2px #d4b85c;
}

.virtual-drum-kit-container .volume-control {
    display: flex;
    align-items: center;
    gap: 15px;
    background-color: rgba(0, 0, 0, 0.1);
    padding: 8px 15px;
    border-radius: 30px;
}

.virtual-drum-kit-container .volume-control span {
    font-weight: bold;
}

.virtual-drum-kit-container .volume-control input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100px;
    height: 6px;
    background: #555;
    border-radius: 3px;
    outline: none;
}

.virtual-drum-kit-container .volume-control input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    background: #d4b85c;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.virtual-drum-kit-container .volume-control input[type="range"]::-moz-range-thumb {
    width: 16px;
    height: 16px;
    background: #d4b85c;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    border: none;
}

.virtual-drum-kit-container .key-guide {
    background-color: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 15px;
    border-radius: 10px;
    margin-top: 20px;
    text-align: center;
    display: none;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}

.virtual-drum-kit-container .key-guide.show {
    display: block;
}

.virtual-drum-kit-container .key-guide table {
    margin: 0 auto;
    border-collapse: collapse;
    width: 100%;
}

.virtual-drum-kit-container .key-guide td {
    padding: 5px 10px;
    border: 1px solid #555;
}

.virtual-drum-kit-container .key-guide kbd {
    background-color: #333;
    padding: 2px 5px;
    border-radius: 3px;
    border: 1px solid #555;
    display: inline-block;
    min-width: 20px;
    text-align: center;
}

/* Rotation message for mobile */
.virtual-drum-kit-container.rotate-device::before {
    content: "Please rotate your device to landscape mode for better drum kit experience";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.8);
    color: white;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
    font-size: 18px;
}

/* Responsive styles */
@media (max-width: 768px) {
    .virtual-drum-kit-container .controls {
        flex-direction: column;
        align-items: center;
    }
    
    .virtual-drum-kit-container .kit-selector {
        margin-right: 0;
        margin-bottom: 10px;
    }
    
    .virtual-drum-kit-container .volume-control {
        width: 100%;
        justify-content: center;
    }
}