
            body {
                font-family: monospace;
                padding: 0;
                margin: 0;
                background: #000;
                color: #f0f0f0;
                overflow: hidden;
                width: 100vw;
                height: 100vh;
                position: relative;
            }
            #status {
                position: absolute;
                top: 20px;
                left: 20px;
                padding: 10px;
                background: rgba(51, 51, 51, 0.8);
                border-radius: 4px;
                z-index: 10;
            }
            #controllers {
                position: absolute;
                top: 20px;
                right: 20px;
                padding: 10px;
                background: rgba(51, 51, 51, 0.8);
                border-radius: 4px;
                z-index: 10;
            }
            #visualizer {
                position: absolute;
                top: 0;
                left: 0;
                width: 100vw;
                height: 100vh;
                background: #000;
                transition: opacity 0.3s;
            }
            #visualizer.dimmed {
                opacity: 0.3;
            }
            .param {
                padding: 10px;
                margin: 10px 0;
                background: #2a2a2a;
                border-radius: 4px;
            }
            button {
                padding: 10px 20px;
                background: #444;
                border: none;
                color: white;
                border-radius: 4px;
                cursor: pointer;
                font-family: monospace;
            }
            button:hover {
                background: #555;
            }
            #calibration_phase {
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                background: rgba(42, 42, 42, 0.9);
                padding: 30px;
                border-radius: 8px;
                z-index: 10;
                text-align: center;
            }
            #start_calibration,
            #join_instrument {
                display: block;
                margin: 30px auto;
                padding: 15px 30px;
                background: #c44;
                font-size: 16px;
                animation: pulse 2s infinite;
            }
            #start_calibration:hover,
            #join_instrument:hover {
                background: #d55;
            }
            #start_calibration:disabled,
            #join_instrument:disabled {
                animation: none;
                background: #444;
                opacity: 0.5;
            }
            @keyframes pulse {
                0%,
                100% {
                    opacity: 1;
                }
                50% {
                    opacity: 0.8;
                }
            }
            #audio_hint {
                text-align: center;
                color: #888;
                font-size: 14px;
                margin-bottom: 10px;
            }
            .dimmed {
                opacity: 0.3;
                transition: opacity 0.3s;
            }
