@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700;900&family=Outfit:wght@300;400;500&display=swap');
*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
body{font-family:'Outfit',sans-serif;background:#050508;color:#e8e4df;overflow:hidden;height:100vh;width:100vw;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0}
canvas{display:block}

.loader{position:fixed;inset:0;z-index:200;background:#050508;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .8s,visibility .8s}
.loader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-text{font-family:'Orbitron';font-size:13px;color:#ff2d55;letter-spacing:4px;text-transform:uppercase}
.loader-spinner{width:50px;height:50px;border:2px solid rgba(255,45,85,.15);border-top-color:#ff2d55;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.start-overlay{position:fixed;inset:0;z-index:150;background:rgba(5,5,8,.95);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;cursor:pointer;transition:opacity .6s,visibility .6s}
.start-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}
.start-title{font-family:'Orbitron';font-size:42px;font-weight:900;background:linear-gradient(135deg,#ff2d55,#ff6b2d,#ffcc00);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:3px}
.start-sub{font-size:16px;color:#555;letter-spacing:3px;text-transform:uppercase}
.start-btn{width:100px;height:100px;border-radius:50%;border:2px solid #ff2d55;background:rgba(255,45,85,.1);color:#ff2d55;font-family:'Orbitron';font-size:13px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:all .3s;animation:pulse 2s ease-in-out infinite}
.start-btn:hover{background:rgba(255,45,85,.25);transform:scale(1.1)}
@keyframes pulse{0%,100%{box-shadow:0 0 20px rgba(255,45,85,.15)}50%{box-shadow:0 0 40px rgba(255,45,85,.3)}}

/* ═══ CONTROLLER ═══ */
.ctrl{position:fixed;bottom:0;left:0;right:0;z-index:20;display:none}
.ctrl.visible{display:block}
.hw{background:rgba(12,12,16,.85);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -4px 30px rgba(0,0,0,.7);padding:8px 10px;position:relative}

/* ─── CLASSIC HORIZONTAL LAYOUT ─── */
.hw-grid{max-width:1400px;margin:0 auto;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:18px}

/* ─── TURNTABLES (BALANCED) ─── */
.deck{display:flex;flex-direction:row;align-items:center;gap:10px;padding:2px 0;flex:0 1 auto}
.deck-b{flex-direction:row-reverse}
.tt-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}

.tt-wrap{position:relative;flex-shrink:0;cursor:grab;width:85px;height:85px}
.tt-wrap:active{cursor:grabbing}
.tt-wrap.scratching{cursor:grabbing}
.tt-canvas{display:block;border-radius:50%;width:85px;height:85px}
.scratch-hint{position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);font-family:'Orbitron';font-size:6px;color:#ccc;letter-spacing:1px;white-space:nowrap;text-transform:uppercase;opacity:0;transition:opacity .3s;background:rgba(0,0,0,0.7);padding:2px 5px;border-radius:3px;}
.tt-wrap:hover .scratch-hint{opacity:1}

.deck-side{display:flex;flex-direction:column;gap:4px;min-width:125px;flex:0 1 auto}
.deck-b .deck-side{align-items:flex-end;text-align:right}

.track-info{padding:4px 6px;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.05);border-radius:4px;width:100%}
.track-title{font-family:'Orbitron';font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:1px}
.deck-a .track-title{color:#ff2d55}
.deck-b .track-title{color:#2daaff}
.track-meta{font-family:'Orbitron';font-size:7px;color:#777;letter-spacing:.5px;display:flex;gap:6px}
.deck-b .track-meta{justify-content:flex-end}
.track-time{font-family:'Orbitron';font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:1px}
.deck-a .track-time{color:#ff2d55}
.deck-b .track-time{color:#2daaff}
.waveform{height:8px;background:rgba(0,0,0,.3);border-radius:2px;margin-top:2px;overflow:hidden;position:relative}
.wf-bars{display:flex;align-items:end;height:100%;gap:1px;padding:0 2px}
.deck-b .wf-bars{justify-content:flex-end;flex-direction:row-reverse}
.wf-bar{flex:1;border-radius:1px 1px 0 0;min-width:2px}
.deck-a .wf-bar{background:#ff2d55}
.deck-b .wf-bar{background:#2daaff}
.wf-pos{position:absolute;top:0;bottom:0;width:2px;background:#fff;transition:left .1s linear}

.pad-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:100%}
.pad-grid-a,.pad-grid-b{grid-template-rows:1fr 1fr 1fr}

/* ─── More dropdown ─── */
.pad-more-wrap{position:relative;display:flex}
.pad-more{flex:1;background:rgba(255,45,85,.08)!important;color:#ff2d55!important;border-color:rgba(255,45,85,.25)!important}
.pad-more.open{background:rgba(255,45,85,.15)!important;border-color:rgba(255,45,85,.5)!important}
.pad-dropdown{display:none;position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:5px;background:rgba(10,10,16,.97);border:1px solid rgba(255,45,85,.2);border-radius:6px;padding:4px;backdrop-filter:blur(14px);box-shadow:0 -6px 30px rgba(0,0,0,.7),0 0 15px rgba(255,45,85,.05);z-index:35;width:120px}
.pad-dropdown.open{display:block}
.pad-drop-opt{display:block;width:100%;padding:6px 8px;border:none;border-radius:3px;background:transparent;color:#999;font-family:'Orbitron';font-size:7px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all .15s;text-align:left}
.pad-drop-opt:hover{background:rgba(255,45,85,.1);color:#ff2d55}
.pad-drop-opt.active{background:rgba(255,45,85,.15);color:#ff2d55}
.pad-drop-opt-b{display:block;width:100%;padding:6px 8px;border:none;border-radius:3px;background:transparent;color:#555;font-family:'Orbitron';font-size:7px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all .15s;text-align:left}
.pad-drop-opt-b:hover{background:rgba(45,170,255,.1);color:#2daaff}
.pad-drop-opt-b.active{background:rgba(45,170,255,.15);color:#2daaff}
.pad-more-b{background:rgba(45,170,255,.08)!important;color:#2daaff!important;border-color:rgba(45,170,255,.25)!important}
.pad-more-b.open{background:rgba(45,170,255,.15)!important;border-color:rgba(45,170,255,.5)!important}
.pad-dropdown-b{border-color:rgba(45,170,255,.2)!important;box-shadow:0 -6px 30px rgba(0,0,0,.7),0 0 15px rgba(45,170,255,.05)!important}
.pad-gen{border-color:rgba(45,255,136,.25)!important;color:#7c7!important;background:rgba(45,255,136,.05)!important}
.deck-b .pad-gen:hover{border-color:rgba(45,255,136,.5)!important;color:#2dff88!important;background:rgba(45,255,136,.12)!important}
.deck-b .pad-gen.active{border-color:#2dff88!important;color:#2dff88!important;background:rgba(45,255,136,.2)!important;box-shadow:0 0 12px rgba(45,255,136,.2)!important;animation:genPulse 1.5s ease-in-out infinite}
@keyframes genPulse{0%,100%{box-shadow:0 0 8px rgba(45,255,136,.15)}50%{box-shadow:0 0 20px rgba(45,255,136,.35)}}
.pad{height:20px;border-radius:2px;border:1px solid rgba(255,255,255,.05);font-family:'Orbitron';font-size:7px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;text-transform:uppercase}
.deck-a .pad{background:rgba(255,45,85,.05);color:#555;border-color:rgba(255,45,85,.1)}
.deck-a .pad:hover{background:rgba(255,45,85,.12);color:#ff2d55}
.deck-a .pad.active{background:rgba(255,45,85,.18);color:#ff2d55;border-color:rgba(255,45,85,.5);box-shadow:0 0 10px rgba(255,45,85,.1)}
.deck-b .pad{background:rgba(45,170,255,.05);color:#555;border-color:rgba(45,170,255,.1)}
.deck-b .pad:hover{background:rgba(45,170,255,.12);color:#2daaff}
.deck-b .pad.active{background:rgba(45,170,255,.18);color:#2daaff;border-color:rgba(45,170,255,.5);box-shadow:0 0 10px rgba(45,170,255,.1)}

.fx-row{display:flex;gap:6px;justify-content:center}
.fx-grp{display:flex;flex-direction:column;align-items:center;gap:1px}
.fx-knob{width:20px;height:20px;border-radius:50%;position:relative;cursor:pointer}
.fx-knob-bg{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 40% 35%,#2a2a35,#111118);border:1.5px solid #2a2a35;box-shadow:0 2px 5px rgba(0,0,0,.4)}
.fx-tick{position:absolute;top:1px;left:50%;width:2px;height:5px;border-radius:1px;transform-origin:bottom center}
.deck-a .fx-tick{background:#ff2d55;box-shadow:0 0 4px rgba(255,45,85,.4)}
.deck-b .fx-tick{background:#2daaff;box-shadow:0 0 4px rgba(45,170,255,.4)}
.fx-lbl{font-family:'Orbitron';font-size:6px;color:#999;letter-spacing:.5px;text-transform:uppercase}

/* ─── CENTER: MIXER ─── */
.mixer{display:flex;flex-direction:column;gap:5px;padding:0 15px;border-left:1px solid rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.06);align-items:center;justify-content:center;flex:0 1 auto}
.transport{display:flex;align-items:center;justify-content:center;gap:6px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.06);width:100%}
.bpm-box{display:flex;flex-direction:column;align-items:center}
.bpm-val{font-family:'Orbitron';font-size:15px;font-weight:900;color:#ff2d55;text-shadow:0 0 12px rgba(255,45,85,.3);line-height:1;font-variant-numeric:tabular-nums}
.bpm-tag{font-family:'Orbitron';font-size:6px;color:#888;letter-spacing:2px}
.bpm-btn{width:18px;height:16px;border:1px solid rgba(255,45,85,.15);background:rgba(255,45,85,.04);color:#ff2d55;font-family:'Orbitron';font-size:11px;font-weight:700;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.bpm-btn:hover{background:rgba(255,45,85,.12)}
.play-btn{width:26px;height:26px;border-radius:50%;border:2px solid #ff2d55;background:rgba(255,45,85,.08);color:#ff2d55;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}
.play-btn:hover{background:rgba(255,45,85,.2)}
.play-btn.playing{background:rgba(255,45,85,.2);box-shadow:0 0 20px rgba(255,45,85,.25)}
.play-btn svg{width:11px;height:11px;fill:currentColor}

.ch-strips{display:flex;gap:4px;justify-content:center}
.ch-strip{display:flex;flex-direction:column;align-items:center;gap:2px;width:18px}
.ch-name{font-family:'Orbitron';font-size:6px;font-weight:600;color:#888;letter-spacing:1px;text-transform:uppercase}
.ch-fader{width:3px;height:26px;background:rgba(255,255,255,.05);border-radius:2px;position:relative;cursor:pointer}
.ch-fill{position:absolute;bottom:0;left:0;right:0;border-radius:2px;background:linear-gradient(0deg,#ff2d55,#ff6b2d);transition:height .08s}
.ch-knob{position:absolute;left:50%;transform:translate(-50%,50%);width:10px;height:5px;background:linear-gradient(180deg,#555,#333);border:1px solid #666;border-radius:2px;cursor:grab;z-index:2}
.ch-val{font-family:'Orbitron';font-size:5px;color:#ff2d55;font-variant-numeric:tabular-nums}

.xf-area{display:flex;flex-direction:column;align-items:center;gap:3px;padding-top:4px;border-top:1px solid rgba(255,255,255,.06);width:100%}
.xf-title{font-family:'Orbitron';font-size:7px;font-weight:700;color:#ccc;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 6px rgba(255,255,255,.15)}
.xf-row{display:flex;align-items:center;gap:5px;justify-content:center;width:100%}
.xf-lbl{font-family:'Orbitron';font-size:8px;font-weight:700;letter-spacing:1px}
.xf-lbl-a{color:#ff2d55}
.xf-lbl-b{color:#2daaff}
.xf-track{width:80px;height:3px;background:linear-gradient(90deg,rgba(255,45,85,.2),rgba(255,255,255,.06),rgba(45,170,255,.2));border-radius:2px;position:relative;cursor:pointer}
.xf-knob{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:9px;background:linear-gradient(180deg,#666,#333);border:1px solid #777;border-radius:2px;cursor:grab;left:50%;box-shadow:0 1px 4px rgba(0,0,0,.5)}

/* ═══ RIGHT: DANCER PANEL (BALANCED) ═══ */
.dancer-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  flex: 0 1 auto;
  max-width: 320px;
  background: rgba(255, 45, 85, 0.02);
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255, 45, 85, 0.08);
  box-shadow: inset 0 0 15px rgba(255, 45, 85, 0.01), 0 2px 10px rgba(0,0,0,0.15);
}

.dp-title{display:flex;justify-content:space-between;align-items:center;font-family:'Orbitron';font-size:11px;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:#ff2d55;text-shadow:0 0 10px rgba(255,45,85,.3);margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid rgba(255,45,85,.15)}
.dp-count-badge{background:rgba(255,45,85,.15);color:#ff2d55;padding:2px 6px;border-radius:6px;font-size:9px;font-weight:900;box-shadow:0 0 6px rgba(255,45,85,.2)}

.dp-inner{display:grid;grid-template-columns:1fr 1fr;gap:6px}

.dp-btn{display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border-radius:5px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:#bbb;font-family:'Orbitron';font-size:10px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.dp-btn:active{transform:scale(.95)}
.dp-icon{font-size:13px;line-height:1;opacity:1}
.dp-text{font-size:10px}

.dp-add{border-color:rgba(45,255,136,.25);color:#7c7}
.dp-add:hover{border-color:rgba(45,255,136,.5);color:#2dff88;background:rgba(45,255,136,.12);box-shadow:0 0 12px rgba(45,255,136,.12)}
.dp-add-wrap{position:relative;display:flex;gap:2px}
.dp-add-wrap .dp-add{flex:1;border-radius:5px 0 0 5px}
.dp-add-wrap .dp-add-arrow{flex:0 0 22px;padding:0;min-width:0;border-radius:0 5px 5px 0;border-left:none;font-size:11px}
.dp-add-dropdown{display:none;position:absolute;bottom:calc(100% + 4px);left:0;min-width:100%;background:#1a1a2e;border:1px solid rgba(45,255,136,.3);border-radius:6px;overflow:hidden;z-index:200;box-shadow:0 -4px 16px rgba(0,0,0,.5)}
.dp-add-dropdown.open{display:block}
.dp-add-drop-opt{display:block;width:100%;padding:7px 12px;background:transparent;border:none;color:#bbb;font-family:'Orbitron';font-size:9px;font-weight:600;letter-spacing:1px;cursor:pointer;text-align:left;white-space:nowrap;transition:background .15s,color .15s}
.dp-add-drop-opt:hover{background:rgba(45,255,136,.15);color:#2dff88}
.dp-add-drop-opt.active{color:#2dff88;background:rgba(45,255,136,.08)}
.dp-remove{border-color:rgba(255,80,80,.2);color:#b77}
.dp-remove:hover{border-color:rgba(255,80,80,.5);color:#ff5050;background:rgba(255,80,80,.12);box-shadow:0 0 12px rgba(255,80,80,.12)}
.dp-sync{border-color:rgba(255,200,45,.2);color:#aa8}
.dp-sync:hover{border-color:rgba(255,200,45,.5);color:#ffcc00;background:rgba(255,200,45,.12);box-shadow:0 0 12px rgba(255,200,45,.12)}
.dp-sync.active{color:#ffcc00;border-color:rgba(255,200,45,.5);background:rgba(255,200,45,.15);box-shadow:0 0 14px rgba(255,200,45,.15)}
.dp-formation{border-color:rgba(100,140,255,.25);color:#89a;width:100%}
.dp-formation:hover{border-color:rgba(100,140,255,.5);color:#6e9aff;background:rgba(100,140,255,.12);box-shadow:0 0 12px rgba(100,140,255,.12)}

.dp-reset{border-color:rgba(180,140,255,.25);color:#a8a}
.dp-reset:hover{border-color:rgba(180,140,255,.5);color:#b88eff;background:rgba(180,140,255,.12);box-shadow:0 0 12px rgba(180,140,255,.12)}
.dp-camera{border-color:rgba(140,220,255,.25);color:#8ab}
.dp-camera:hover{border-color:rgba(140,220,255,.5);color:#8adcff;background:rgba(140,220,255,.12);box-shadow:0 0 12px rgba(140,220,255,.12)}

.dp-formation-wrap{position:relative;width:100%}

/* ═══ DANCER BAR (kept for JS visibility toggle, now zero-height) ═══ */
.dancer-bar{display:none;padding:0;position:relative;height:0;overflow:hidden}
.dancer-bar.visible{display:block;height:0;overflow:hidden}

/* Character Picker spans across both columns */
.char-picker-wrap{grid-column:1 / -1; display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:center; padding-top:3px}
.char-picker-wrap .db-sep{display:none}
.char-picker-wrap .db-label{font-family:'Orbitron';font-size:9px;font-weight:700;letter-spacing:1px;color:#ff2d55;text-shadow:0 0 8px rgba(255,45,85,.3);white-space:nowrap}
.char-picker-wrap .db-btn{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:#ccc;font-family:'Orbitron';font-size:9px;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:all .2s;white-space:nowrap}
.char-picker-wrap .db-btn:hover{border-color:rgba(255,45,85,.4);color:#ff2d55;background:rgba(255,45,85,.08)}
.char-picker-wrap .db-btn.active{border-color:rgba(255,45,85,.5);color:#ff2d55;background:rgba(255,45,85,.15);box-shadow:0 0 10px rgba(255,45,85,.15)}

/* ═══ FORMATION PANEL ═══ */
.formation-panel{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:8px;display:none;background:rgba(10,10,16,.97);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px;backdrop-filter:blur(14px);box-shadow:0 -8px 40px rgba(0,0,0,.7),0 0 20px rgba(255,45,85,.05);z-index:30;width:340px;max-height:50vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,45,85,.3) transparent}
.formation-panel::-webkit-scrollbar{width:4px}
.formation-panel::-webkit-scrollbar-track{background:transparent}
.formation-panel::-webkit-scrollbar-thumb{background:rgba(255,45,85,.3);border-radius:2px}
.formation-panel.open{display:block}
.formation-panel-title{font-family:'Orbitron';font-size:7px;color:#888;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;text-align:center}
.formation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.formation-opt{width:100%;aspect-ratio:1;border-radius:4px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);cursor:pointer;transition:all .2s;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.formation-opt:hover{border-color:rgba(255,45,85,.3);background:rgba(255,45,85,.06)}
.formation-opt.active{border-color:rgba(255,45,85,.5);background:rgba(255,45,85,.1);box-shadow:0 0 8px rgba(255,45,85,.1)}
.formation-opt canvas{width:48px;height:48px}
.formation-opt span{font-family:'Orbitron';font-size:6px;color:#777;letter-spacing:.5px;text-transform:uppercase}
.formation-opt:hover span,.formation-opt.active span{color:#ff2d55}

/* ═══ HINTS & FPV ═══ */
.dancer-hint{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:24;font-family:'Orbitron';font-size:7px;color:#888;letter-spacing:1px;display:none;text-transform:uppercase;background:rgba(10,10,16,.8);padding:6px 12px;border-radius:4px;border:1px solid rgba(255,255,255,.05);backdrop-filter:blur(8px)}
.dancer-hint.visible{display:block}

.fpv-hint{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:26;font-family:'Orbitron';font-size:8px;color:#aaa;letter-spacing:1px;text-transform:uppercase;background:rgba(10,10,16,.85);padding:8px 16px;border-radius:5px;border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(8px);display:none;text-align:center;line-height:1.8}
.fpv-hint.visible{display:block}

.fpv-touch-hint{position:fixed;bottom:130px;left:50%;transform:translateX(-50%);z-index:26;font-family:'Orbitron';font-size:8px;color:#aaa;letter-spacing:1px;text-transform:uppercase;background:rgba(10,10,16,.85);padding:8px 16px;border-radius:5px;border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(8px);display:none;text-align:center;line-height:1.8}
.fpv-touch-hint.visible{display:block}

.fpv-joystick{position:fixed;bottom:100px;left:50px;z-index:30;display:none;touch-action:none}
.fpv-joystick.visible{display:block}
.fpv-joystick-base{width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.12);position:relative;backdrop-filter:blur(4px)}
.fpv-joystick-knob{width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(255,45,85,.4),rgba(255,45,85,.15));border:2px solid rgba(255,45,85,.5);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 15px rgba(255,45,85,.2);transition:none}

.fpv-exit-btn{position:fixed;top:16px;right:16px;z-index:30;display:none;padding:10px 18px;border-radius:6px;border:1px solid rgba(255,60,60,.4);background:rgba(10,10,16,.9);color:#ff3c3c;font-family:'Orbitron';font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent}
.fpv-exit-btn.visible{display:block}
.fpv-exit-btn:active{background:rgba(255,60,60,.2);transform:scale(.95)}

/* ═══ CONFIRMATION MODAL ═══ */
.confirm-overlay{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);align-items:center;justify-content:center}
.confirm-overlay.visible{display:flex}
.confirm-box{background:linear-gradient(180deg,#1a1a24,#12121a);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:24px 28px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.8),0 0 30px rgba(255,45,85,.05);max-width:320px;width:90%}
.confirm-msg{font-family:'Outfit',sans-serif;font-size:14px;color:#ccc;line-height:1.5;margin-bottom:20px}
.confirm-btns{display:flex;gap:10px;justify-content:center}
.confirm-btn{padding:8px 24px;border-radius:6px;border:1px solid rgba(255,255,255,.1);font-family:'Orbitron';font-size:10px;font-weight:700;letter-spacing:1px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}
.confirm-btn:active{transform:scale(.95)}
.confirm-yes{background:rgba(255,45,85,.15);border-color:rgba(255,45,85,.4);color:#ff2d55}
.confirm-yes:hover{background:rgba(255,45,85,.25);box-shadow:0 0 15px rgba(255,45,85,.2)}
.confirm-no{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#888}
.confirm-no:hover{background:rgba(255,255,255,.08);color:#bbb}