:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;--cyan:#009dce;--green:#39ffb0}*{box-sizing:border-box}body{margin:0;background:#04090f;color:#e9f4f7;overflow:hidden;height:100dvh;display:flex;flex-direction:column}button,input{font:inherit}button{cursor:pointer;color:inherit;background:#12232e;border:1px solid #2b4555;border-radius:7px;padding:10px 15px}button:hover{background:#1b3949;border-color:var(--cyan)}button:focus-visible,input:focus-visible,label:focus-within,[tabindex]:focus-visible{outline:2px solid var(--green);outline-offset:3px}header{height:86px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#080f17;border-bottom:1px solid #172631;z-index:2}.brand{display:flex;align-items:center;gap:12px;font-size:19px;letter-spacing:2px}.brand b{color:var(--cyan)}.brand small{display:block;font-size:9px;color:#7a95a7;letter-spacing:3px;margin-top:7px}.brand-mark{font-size:37px;color:var(--cyan)}.isolation{font-size:12px;color:#d5e6ed}.isolation i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:7px}.isolation span{display:block;color:#728d9f;margin:5px 0 0 13px;font-size:11px}#helpButton{font-size:12px;background:transparent}#helpButton span{margin-left:15px;color:var(--cyan)}#stage{position:relative;flex:1;min-height:0;overflow:hidden;perspective:1400px;perspective-origin:50% 43%;background:radial-gradient(ellipse at 50% 50%,#173345,#06111b 65%,#03080e);touch-action:none}#world{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}.wall{position:absolute;backface-visibility:hidden;background:linear-gradient(180deg,#0e1e2b,#0b1823);border:1px solid #1e394b}.back{width:1900px;height:1200px;left:-950px;top:-650px;transform:translateZ(-400px);background:repeating-linear-gradient(90deg,transparent 0 148px,#19334688 149px 150px),linear-gradient(#0d1c29,#0b1a27)}.left,.right{width:900px;height:1200px;top:-650px}.left{left:-1400px;transform:translateZ(50px) rotateY(90deg)}.right{left:500px;transform:translateZ(50px) rotateY(-90deg)}.floor{position:absolute;width:1900px;height:1800px;left:-950px;top:-350px;transform:translateZ(100px) translateY(800px) rotateX(90deg);background:repeating-linear-gradient(0deg,transparent 0 99px,#009dce24 100px 101px),repeating-linear-gradient(90deg,#06121e 0 99px,#009dce24 100px 101px);border:2px solid #009dce66}.room-wordmark{position:absolute;left:100px;top:85px;font-size:56px;line-height:1.1;font-weight:800;color:#244153;letter-spacing:5px}.room-wordmark b{color:#2d5d74}.light-bar{position:absolute;left:-880px;top:-350px;width:1760px;height:3px;background:#009dce;transform:translateZ(-390px);box-shadow:0 0 35px 12px #009dce25}.pedestal{position:absolute;width:700px;height:90px;left:-690px;top:350px;background:linear-gradient(#183142,#0b1a25);border-top:4px solid #009dce;transform:translateZ(-30px);box-shadow:0 25px 60px #0008}.panel{position:absolute;background:#0b1923;border:1px solid #315466;border-radius:16px;box-shadow:0 35px 80px #0009;backface-visibility:hidden}.deck{width:650px;height:690px;left:-680px;top:-345px;padding:22px;border-top:3px solid var(--cyan);background:linear-gradient(135deg,#1c3545,#0b1721 60%);transform:translateZ(0)}.deck-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.eyebrow{letter-spacing:2px;font-size:11px;font-weight:600;color:#9cb7c8}.eyebrow em{font-style:normal;color:var(--cyan);padding:0 10px}.badge{font-size:9px;letter-spacing:1px;border:1px solid #2e5b52;color:var(--green);padding:6px 9px;border-radius:4px}.display{border:1px solid #244c60;border-radius:8px;background:#030c12;padding:15px;box-shadow:inset 0 0 20px #0008}.display small{font-size:10px;letter-spacing:2px;color:#80a5b8}.display h1{font-size:27px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:10px 0 6px}.display canvas{width:100%;height:55px;display:block;cursor:crosshair}.readouts{display:flex;justify-content:space-between;font:12px monospace;color:#9cb8c8}.readouts b{color:#e9f4f7}.display input{width:100%;height:8px;margin:10px 0 0}.hardware{display:flex;height:333px;gap:35px;align-items:center;padding:12px 16px}.platter-wrap{width:350px;text-align:center}.platter{width:290px;height:290px;border-radius:50%;position:relative;margin:auto;background:repeating-radial-gradient(circle,#101d27 0 2px,#060b10 3px 5px);border:8px solid #1e3b4b;box-shadow:0 0 0 2px #009dce80,0 12px 18px #0009,inset 0 0 0 3px #8ba5b122;display:grid;place-items:center}.platter i{position:absolute;top:10px;left:50%;height:14px;width:3px;background:#91f1ff}.record-label{width:122px;height:122px;border-radius:50%;background:radial-gradient(circle,#0c283d,#02070c);display:grid;place-items:center;border:1px solid #1d5169}.record-label img{max-width:106px;max-height:106px}.platter-caption{display:block;font-size:8px;letter-spacing:2px;color:#6e95ab;margin-top:16px}.channel{flex:1;display:flex;flex-direction:column;gap:10px;align-items:stretch}.channel label{font-size:10px;letter-spacing:2px;color:#90b0c1}.channel output{color:var(--cyan);font:24px monospace}.channel small{font-size:9px;color:#6f90a4}.channel button{padding:4px;font-size:9px}.vu{height:7px;background:#02080c;margin:8px 0;overflow:hidden}.vu i{display:block;height:100%;width:0;background:linear-gradient(90deg,#39ffb0,#ffcd60,#ff665e)}input[type=range]{accent-color:var(--cyan);cursor:pointer;min-width:0}.transport{display:flex;gap:14px;align-items:center}.transport button{height:62px;font-size:15px;letter-spacing:1px}.transport .cue{width:125px;border-color:var(--cyan);color:#67dfff}.cue small{display:block;font-size:8px;letter-spacing:0;color:#83a3b6;margin-top:4px}.transport .play{width:173px;background:#123e36;border:1px solid #39ffb080;color:var(--green)}.transport span{font-size:10px;color:#7d9cae;line-height:1.6}.deck-bottom{display:flex;justify-content:space-between;margin-top:18px;font-size:9px;letter-spacing:2px;color:#577e94}.crate{width:540px;height:470px;left:45px;top:-180px;transform:translateZ(40px);display:flex;flex-direction:column;border-top:3px solid #009dce}.crate-handle{display:flex;align-items:center;gap:12px;padding:19px;background:linear-gradient(90deg,#123447,#0c1a25);border-radius:16px 16px 0 0;cursor:grab;touch-action:none}.crate-handle:active{cursor:grabbing}.crate-handle small{font-size:8px;letter-spacing:2px;color:#6b9ab4}.crate-handle h2{margin:4px 0 0;font-size:21px;letter-spacing:3px}.grip{color:var(--cyan);font-size:26px}.drag-label{margin-left:auto;font-size:8px;letter-spacing:1px;color:#74a8c3}.crate-tools{display:flex;gap:10px;padding:15px 18px}.crate-tools input[type=search]{min-width:0;flex:1;border:1px solid #009dce80;background:#07131d;border-radius:5px;padding:10px;color:#e9f4f7;font-size:12px}.import{position:relative;cursor:pointer;background:#153246;border:1px solid #2a556d;padding:10px;border-radius:5px;font-size:12px;white-space:nowrap}.import input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}nav{display:flex;gap:16px;padding:0 18px 12px}nav button{font-size:11px;padding:5px 0;border:0;border-radius:0;background:none;color:#718d9e}nav button.selected{color:#67dfff;border-bottom:2px solid var(--cyan)}.track-scroll{flex:1;overflow:auto;min-height:0;padding:0 16px}table{width:100%;border-collapse:collapse;font-size:12px}th{font-size:8px;letter-spacing:1px;text-align:left;color:#66879a;padding:10px 6px;position:sticky;top:0;background:#0b1923}td{padding:14px 6px;border-bottom:1px solid #1c303e}td small{display:block;font-size:9px;color:#6e91a6;margin-top:5px}td:first-child{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td button{font-size:10px;padding:7px 12px}tr.loaded td:first-child{color:var(--green)}tbody tr{cursor:grab}tbody tr:hover{background:#122733}.crate-footer{display:flex;justify-content:space-between;padding:12px 20px;color:#6f91a7;font-size:9px;border-top:1px solid #213747}.crate-adjust{display:flex;gap:25px;background:#08141e;padding:12px 20px;border-radius:0 0 16px 16px}.crate-adjust label{display:flex;align-items:center;gap:10px;font-size:8px;color:#6f91a7;letter-spacing:1px;flex:1}.crate-adjust input{width:100%}#resize{position:absolute;bottom:4px;right:5px;color:#009dce;cursor:nwse-resize;touch-action:none}.room-label{position:absolute;bottom:20px;left:30px;font-size:9px;letter-spacing:2px;color:#52768d;pointer-events:none}.room-label span{display:block;margin-top:7px;font-size:10px;letter-spacing:0;color:#7295aa}footer{min-height:74px;display:flex;justify-content:space-between;align-items:center;padding:14px 30px;gap:20px;border-top:1px solid #193040;background:#080f17;z-index:2}#status{font-size:12px;color:#9bb7c7;max-width:45%;line-height:1.5}.view-controls{display:flex;align-items:center;gap:8px}.view-controls button{font-size:11px}.view-controls label{font-size:9px;color:#7b9caf;display:flex;align-items:center;gap:10px;margin-left:12px}.view-controls input{width:90px}dialog{width:590px;max-width:90vw;background:#0c1c28;color:#c4d9e5;border:1px solid #2a5a71;border-radius:18px;padding:36px;box-shadow:0 30px 90px #000c}dialog::backdrop{background:#020811cc;backdrop-filter:blur(8px)}dialog h2{font-size:28px;color:white;line-height:1.2}dialog p{font-size:13px;line-height:1.6;color:#91adbf}dt{font-size:12px;color:#63d7fb;margin-top:16px}dd{margin:5px 0 0;font-size:12px;line-height:1.5}dialog .note{font-size:11px;border-top:1px solid #234052;padding-top:14px}.primary{background:#007fa8;width:100%;font-size:12px}.close-help{position:absolute;top:15px;right:15px;padding:6px 10px}.dragover{outline:3px solid var(--green);outline-offset:5px}#empty{font-size:12px;color:#7f9dae;padding:12px}@media(max-width:800px){header{padding:0 15px;height:70px}.isolation{display:none}footer{padding:10px 15px;flex-wrap:wrap}#status{max-width:100%;width:100%}.view-controls{width:100%;justify-content:center}.room-label{bottom:8px;font-size:8px}.brand{font-size:14px}}
#controller{padding:9px 30px;border-top:1px solid #163244;background:#07121c;z-index:2;display:flex;gap:20px;align-items:center;font-size:11px;color:#86a9be}#controller span{color:#39ffb0;min-width:245px}#controller small{font-size:10px;color:#7496ac}.controller-selected{box-shadow:inset 2px 0 #009dce} @media(max-width:1000px){#controller{flex-wrap:wrap;gap:5px;padding:8px 15px}}
.floor{top:-470px;transform:translateZ(400px) rotateX(90deg)}
/* One model unit = 600/329 mm. Full height includes the rubber feet. */
#legacyDeck{display:none!important}.chassis{width:600px;height:826.14px;left:-660px;top:-410px;padding:0;border:0;border-radius:12px;background:none;box-shadow:none;transform-style:preserve-3d;transform:translateZ(10px) rotateX(38deg);backface-visibility:visible}.chassis>div{position:absolute;transform-style:preserve-3d}#proFace{inset:0;transform:translateZ(0)}.chassis-bottom{inset:0;background:#0b1118;border:2px solid #293540;border-radius:12px;transform:translateZ(-165px)}.chassis-front,.chassis-back{width:600px;height:165px;left:0;background:linear-gradient(#182731,#080e14);border:1px solid #35434d}.chassis-front{top:826.14px;transform-origin:top;transform:rotateX(-90deg);padding:32px 28px;color:#67818f}.chassis-front span{font-size:22px;letter-spacing:4px}.chassis-front small{display:block;margin-top:10px;font-size:10px;letter-spacing:2px}.chassis-front i{position:absolute;right:25px;top:45px;width:20px;height:6px;background:#39ffb0;box-shadow:0 0 10px #39ffb0}.chassis-back{top:0;transform-origin:top;transform:rotateX(-90deg);background:repeating-linear-gradient(90deg,#0a1016 0 8px,#1b2731 9px 12px)}.chassis-side{width:165px;height:826.14px;top:0;background:repeating-linear-gradient(0deg,#101922 0 3px,#192530 4px 5px);border:1px solid #344550}.left-side{left:0;transform-origin:left;transform:rotateY(90deg)}.right-side{left:600px;transform-origin:left;transform:rotateY(90deg)}.foot{width:74px;height:74px;border-radius:50%;background:radial-gradient(circle,#1e272d 0 35%,#080c10 38% 65%,#26323c 68%);transform:translateZ(-215.2px);box-shadow:0 0 0 3px #05090c}.foot:before{content:'';position:absolute;inset:0;border-radius:50%;background:#131c23;transform:translateZ(50px);box-shadow:0 0 0 3px #26333b}.foot:after{content:'';position:absolute;left:0;top:37px;width:74px;height:50px;background:repeating-linear-gradient(0deg,#071015 0 4px,#253039 5px 6px);transform-origin:top;transform:rotateX(-90deg)}.foot-fl{left:35px;top:715px}.foot-fr{right:35px;top:715px}.foot-bl{left:35px;top:35px}.foot-br{right:35px;top:35px}.pedestal{display:none}
.chassis{left:-620px;top:-440px;transform:translateZ(10px) scale(.84) rotateX(38deg)}
.foot-fl,.foot-fr{top:770px}.foot:after{transform:translateZ(50px) rotateX(-90deg)}
.projection-surface{position:absolute!important;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen;z-index:1;border-radius:inherit}.projection-surface canvas{width:100%;height:100%;display:block}.youtube-projection{position:absolute;top:0;height:100%;pointer-events:none}.youtube-projection iframe{width:100%;height:100%;border:0}.wall .projection-surface{z-index:0}.room-wordmark{z-index:1}#proFace>.projection-surface{transform:translateZ(2px)}#projectionPanel input[type=url]{display:block;width:100%;margin:10px 0;padding:12px;background:#030c12;border:1px solid #009dce;color:white;font-size:13px}#projectionPanel label{font-size:12px;color:#a2bdcb}#projectionPanel button{margin:5px 5px 5px 0;font-size:12px}.projection-range{display:flex;justify-content:space-between;align-items:center;margin:16px 0}.projection-range input{width:60%}#projectionStatus{font-size:12px;color:#39ffb0}
#boothAssembly{position:absolute;left:0;top:20px;width:0;height:0;transform-style:preserve-3d;transform:scale(.83) rotateX(38deg)}#boothAssembly .chassis{left:-780px;top:-413px;transform:none}#boothAssembly #deckB{left:180px}#spatialMixer{left:-165px;top:-413px;width:330px;height:826px;border:0;padding:0;background:none;box-shadow:none;transform-style:preserve-3d}#mixerFace{position:absolute;inset:0;transform-style:preserve-3d}.mixer-body{position:absolute;left:0;top:826px;width:330px;height:165px;transform-origin:top;transform:rotateX(-90deg);background:linear-gradient(#21303a,#080f15);border:1px solid #405361}#loadTarget{width:125px;background:#0a1c28;color:#a9d9e9;border:1px solid #009dce;border-radius:5px;font-size:11px}.crate-tools{flex-wrap:wrap}.crate-tools input[type=search]{width:170px}
/* Floor and booth top share a 38-degree plane. Place the floor beneath
   the 215.2-unit feet, including the assembly's .83 scale and 20px offset. */
.floor{top:-900px;transform:translateY(130px) translateZ(-140.8px) rotateX(38deg)}
#roomShell{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;transform:translateY(130px) translateZ(-140.8px) rotateX(38deg)}
#roomShell .wall{left:0;top:0;height:1000px;transform-origin:0 0;backface-visibility:hidden}
#roomShell .back{width:1900px;transform:matrix3d(1,0,0,0,0,0,-1,0,0,1,0,0,-950,-900,1000,1)}
#roomShell .left{width:1800px;transform:matrix3d(0,-1,0,0,0,0,-1,0,1,0,0,0,-950,900,1000,1)}
#roomShell .right{width:1800px;transform:matrix3d(0,1,0,0,0,0,-1,0,-1,0,0,0,950,-900,1000,1)}
/* Each wall samples its physical width from a single 5500-unit panorama. */
#spatialSkin{max-width:185px;padding:9px;background:#101e28;color:#d7c28b;border:1px solid #8e783e;border-radius:6px;font-size:11px}
/* Enlarged venue: floor beneath a real-height booth, walls remain orthogonal. */
.floor{width:3200px;height:3400px;left:-1600px;top:-1400px;transform:translateY(390px) translateZ(-475px) rotateX(38deg)}
#roomShell{transform:translateY(390px) translateZ(-475px) rotateX(38deg)}
#roomShell .back{width:3200px;height:1500px;transform:matrix3d(1,0,0,0,0,0,-1,0,0,1,0,0,-1600,-1400,1500,1)}
#roomShell .left{width:3400px;height:1500px;transform:matrix3d(0,-1,0,0,0,0,-1,0,1,0,0,0,-1600,2000,1500,1)}
#roomShell .right{width:3400px;height:1500px;transform:matrix3d(0,1,0,0,0,0,-1,0,-1,0,0,0,1600,-1400,1500,1)}
.led-booth{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}.booth-counter{position:absolute;left:-840px;top:-460px;width:1680px;height:930px;background:linear-gradient(110deg,#303b44,#080c13 55%,#303b44);border:8px solid #182c3b;box-shadow:0 0 0 3px #00b7e3;transform:translateZ(-217px)}.booth-facade{position:absolute;left:-840px;top:470px;width:1680px;height:500px;transform-origin:top;transform:translateZ(-217px) rotateX(-90deg);background:repeating-linear-gradient(0deg,#0000 0 3px,#0008 4px),radial-gradient(ellipse at 30% 50%,#087ba0,#071829 50%,#451057);border:10px solid #101c28;border-top:4px solid #36e9ff;border-bottom:4px solid #a35bff;box-shadow:0 0 35px #00dfff55;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.booth-facade strong{font:70px Orbitron,sans-serif;letter-spacing:12px;z-index:2;text-shadow:0 5px 15px #000}.booth-facade b{color:#00dfff}.booth-facade span{font:18px monospace;letter-spacing:8px;margin-top:22px;z-index:2}.booth-wing{position:absolute;top:-460px;width:500px;height:930px;background:linear-gradient(45deg,#09222e,#111323);border:4px solid #00a3ca;transform-origin:0 0}.wing-left{left:-840px;transform:translateZ(-217px) rotateY(90deg)}.wing-right{left:840px;transform:translateZ(-717px) rotateY(-90deg)}
.venue-speaker{position:absolute;width:240px;height:680px;transform-origin:0 0;background:repeating-linear-gradient(45deg,#202830 0 2px,#070c12 3px 5px);border:12px solid #0a0d12;border-radius:14px;box-shadow:18px 10px 0 #03070a,0 0 0 2px #334752;display:flex;align-items:center;flex-direction:column;gap:25px;padding-top:22px}.speaker-horn{width:160px;height:85px;background:radial-gradient(ellipse,#030408 20%,#26353c 70%,#05080b 72%);border:4px solid #34424a}.speaker-cone{width:185px;height:185px;border-radius:50%;background:radial-gradient(circle,#151e27 0 20%,#030709 22%,#263038 25%,#0b1218 55%,#35414a 60%,#05080c 65%);border:5px solid #03070a}.venue-speaker small{color:#70848c;letter-spacing:4px}
.dancefloor{position:absolute;left:-1050px;top:750px;width:2100px;height:1200px;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:8px;background:#02050b;border:20px solid #07101b;box-shadow:0 0 60px #1166ff44;transform:translateZ(3px)}.dancefloor i{background:hsl(calc(180 + var(--tile)*7) 65% 20%);box-shadow:inset 0 0 25px #ffffff15;border:1px solid #ffffff22;animation:floor-glow 6s infinite alternate;animation-delay:calc(var(--tile)*-.13s)}@keyframes floor-glow{to{filter:brightness(1.8)}}
.venue-truss{position:absolute;left:-1400px;top:-700px;width:2800px;height:65px;background:repeating-linear-gradient(45deg,transparent 0 40px,#6d8492 41px 46px,transparent 47px 90px);border:5px solid #556b78;transform:translateZ(1250px) rotateX(-90deg)}.dj-light{position:absolute;width:110px;height:120px;transform-origin:top;transform-style:preserve-3d;pointer-events:none}.light-head{width:110px;height:100px;background:radial-gradient(ellipse,var(--light) 0 25%,#203847 29% 40%,#060a10 45%);border:8px solid #182734;border-radius:20px;box-shadow:0 0 35px var(--light)}.light-beam{position:absolute;left:-180px;top:70px;width:470px;height:1100px;background:linear-gradient(var(--light),transparent);opacity:.12;clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);transform-origin:50% 0;animation:sweep 10s ease-in-out infinite alternate;animation-delay:var(--delay)}@keyframes sweep{from{transform:rotate(-23deg)}to{transform:rotate(23deg)}}
#spatialSkin{color:#dff8ff;border-color:#009dce;max-width:210px}.view-controls{flex-wrap:wrap}.room-label{pointer-events:none}@media(prefers-reduced-motion:reduce){.light-beam,.dancefloor i{animation:none}}

.dancefloor{top:550px;left:-900px;width:1800px;height:620px}

/* One video plane spans Deck A, mixer and Deck B; the controls stay above it. */
#boothUnderlayVideo{position:absolute;left:-780px;top:-413px;width:1560px;height:826.14px;transform:translateZ(-1px);pointer-events:none;overflow:hidden;border-radius:12px;background:#020609}
/* Keep the player at 16:9 and crop its excess height to cover the wider booth plane. */
#boothUnderlayVideo iframe{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:1560px;height:877.5px;border:0;pointer-events:none}
/* DJ at the near end: controls face the DJ, facade faces the central floor. */
#boothAssembly{transform:scale(.83) rotateX(38deg) translateY(1850px)}
.dancefloor{left:-900px;top:-650px;width:1800px;height:1400px}
.booth-facade{top:-710px;transform-origin:center;transform:translateZ(-467px) rotateX(90deg) rotateZ(180deg)}
.corner-truss{position:absolute;transform-style:preserve-3d;pointer-events:none}.truss-base{position:absolute;width:190px;height:190px;left:-95px;top:-95px;background:linear-gradient(45deg,#172530,#526674,#13202b);border:3px solid #8194a1;transform:translateZ(3px)}.truss-face{position:absolute;left:-45px;top:0;width:90px;height:1200px;transform-origin:50% 0;transform:translateZ(1200px) rotateX(-90deg);border:7px solid #8798a5;background:repeating-linear-gradient(45deg,transparent 0 48px,#667e8e 49px 55px,transparent 56px 104px),repeating-linear-gradient(-45deg,transparent 0 48px,#405565 49px 55px,transparent 56px 104px);box-shadow:0 0 15px #009dce33}.truss-side{transform:translateZ(1200px) rotateZ(90deg) rotateX(-90deg)}.truss-cap{position:absolute;left:-135px;top:-65px;width:270px;height:130px;background:#273d4b;border:4px solid #8b9da8;transform:translateZ(1200px)}.dj-position{position:absolute;left:-650px;top:1650px;width:1300px;text-align:center;color:#39ffb0;font:28px monospace;letter-spacing:5px;border:2px dashed #39ffb055;padding:35px;transform:translateZ(4px)}

.dancefloor{top:-1000px;height:1200px}
.speaker-stack,.speaker-cabinet{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;pointer-events:none}
.cabinet-face{position:absolute;left:0;top:0;transform-origin:0 0;background:linear-gradient(120deg,#27323b,#101820);border:5px solid #080e14;box-sizing:border-box;backface-visibility:visible}
.cabinet-front{background:repeating-linear-gradient(45deg,#111c26 0 3px,#04090e 4px 7px);display:flex;align-items:center;flex-direction:column;justify-content:center;gap:25px;border:12px solid #101923;box-shadow:inset 0 0 0 3px #455561}
.cabinet-back{background:#101923}.cabinet-top{background:linear-gradient(120deg,#46535d,#1e2b35)}.cabinet-left{background:linear-gradient(90deg,#1a2630,#30414d)}.cabinet-right{background:linear-gradient(90deg,#14202a,#25333e)}
.woofer-18{width:457.2px;height:457.2px;flex:none;border-radius:50%;border:16px solid #04090d;background:radial-gradient(circle,#1d2a35 0 19%,#050a0e 21%,#34444f 25%,#0c151d 53%,#40515d 56%,#080f17 62%);box-shadow:0 0 0 7px #293944,inset 0 0 25px #000}
.sub-port{width:78%;height:60px;background:#010407;border:9px solid #263642;box-shadow:inset 0 12px 15px #000}.cabinet-front b{font:20px monospace;letter-spacing:5px;color:#9caeb9}
.pa-horn{width:285px;height:130px;background:radial-gradient(ellipse,#02060b 20%,#344957 65%,#070f16 70%);border:8px solid #394b58}.pa-driver{width:300px;height:300px;border-radius:50%;border:12px solid #03090e;background:radial-gradient(circle,#263744 0 19%,#04090d 22%,#3e5362 25%,#0c1822 54%,#374c5c 59%,#060e16 65%)}
.cabinet-handle{position:absolute;left:25%;top:38%;width:50%;height:90px;border-radius:18px;background:#03090e;border:12px solid #304351;box-shadow:inset 0 14px 0 #050b11}.speaker-connectors{position:absolute;left:25%;top:35%;width:50%;padding:25px;background:#060c12;border:4px solid #3c505f;color:#7d919f;font:18px monospace;line-height:2}
.mount-pole .cabinet-face{border:1px solid #59707f;background:linear-gradient(90deg,#050a0e,#81939f 45%,#243642 65%,#080e14)}

.cabinet-face{backface-visibility:hidden}
/* Complete mixer enclosure and audience-facing equipment connectors. */
.mixer-bottom{position:absolute;inset:0;transform:translateZ(-165px);background:#09121a;border:2px solid #344550}
.mixer-left,.mixer-right{position:absolute;top:0;width:165px;height:826px;background:linear-gradient(90deg,#101922,#283844);border:1px solid #344550;transform-origin:0 0}
.mixer-left{left:0;transform:rotateY(90deg)}.mixer-right{left:330px;transform:rotateY(90deg)}
.gear-rear{position:absolute!important;left:0;top:-82.5px;width:100%;height:165px;transform-origin:center;transform:translateZ(-82.5px) rotateX(90deg) rotateZ(180deg);background:linear-gradient(#26343f,#070d13);border:3px solid #41515c;padding:13px 18px;backface-visibility:hidden;box-shadow:inset 0 0 0 7px #111b23}
.gear-rear strong{font:12px monospace;letter-spacing:3px;color:#9cb0bb}.gear-ports{display:flex;justify-content:space-around;align-items:center;gap:8px;margin-top:9px}.gear-port{text-align:center;flex:1}.gear-port small{font:9px monospace;color:#a0b4c0;display:block;margin-bottom:6px;white-space:nowrap}.socket{display:inline-block;width:29px;height:29px;border:4px solid #7b8790;background:#020408;border-radius:50%;position:relative}.socket b{position:absolute;inset:3px;background:var(--wire);border:2px solid #17212b;border-radius:4px;box-shadow:0 5px 0 #05080b}.socket.rca{box-shadow:13px 0 0 -3px #bb3441;margin-right:13px}.socket.link{border-radius:2px;width:28px;height:23px}.socket.power{border-radius:3px;width:38px;height:27px;border-color:#4d5b66}.gear-vents{height:12px;margin-top:10px;background:repeating-linear-gradient(90deg,#010305 0 4px,transparent 4px 9px)}
.gear-cable{position:absolute;left:0;top:0;height:6px;border:1px solid #080d12;border-radius:3px;transform-origin:0 50%;pointer-events:none;box-shadow:0 2px 2px #0008}.cable-grommet{position:absolute;left:715px;top:-465px;width:50px;height:50px;border-radius:50%;border:8px solid #303e49;background:#010407;transform:translateZ(-205px)}

.socket.link b{display:none}

/* Unfolded video panorama continues down the two outer chassis edges. */
#boothUnderlayVideo iframe,.booth-video-wrap iframe{position:absolute;width:1890px;height:1063.125px;max-width:none;border:0;top:50%;transform:translateY(-50%);pointer-events:none}
#boothUnderlayVideo iframe{left:-165px}
.booth-video-wrap{position:absolute;top:-413px;width:165px;height:826.14px;overflow:hidden;pointer-events:none;transform-origin:0 0;background:#020609}
.wrap-left{left:-781px;transform:rotateY(-90deg) translateX(-165px)}.wrap-right{left:781px;transform:rotateY(90deg)}
.wrap-left iframe{left:0}.wrap-right iframe{left:-1725px}

/* Three-way tops: separate HF horn, midrange, and LF woofer above each pole. */
.pa-top .cabinet-front{gap:24px}.pa-top .pa-horn{width:310px;height:135px;flex:none}.pa-top .pa-driver{width:330px;height:330px;flex:none}
.pa-mid{width:190px;height:190px;flex:none;border-radius:50%;border:10px solid #05090d;background:radial-gradient(circle,#15222d 0 22%,#03090e 24%,#536370 28%,#101b25 36%,#293b49 59%,#03090e 65%);box-shadow:0 0 0 4px #3c4d59}
.corner-truss .truss-face{height:1500px;transform:translateZ(1500px) rotateX(-90deg)}.corner-truss .truss-side{transform:translateZ(1500px) rotateZ(90deg) rotateX(-90deg)}.corner-truss .truss-cap{transform:translateZ(1500px)}
.overhead-bridge{position:absolute;height:0;transform-style:preserve-3d;pointer-events:none}
.bridge-face{position:absolute;left:0;top:-45px;width:100%;height:90px;transform-origin:50% 50%;border:7px solid #8b9da8;background:repeating-linear-gradient(45deg,transparent 0 45px,#617987 46px 52px,transparent 53px 99px),repeating-linear-gradient(-45deg,transparent 0 45px,#3c5362 46px 52px,transparent 53px 99px)}
.bridge-top{transform:translateZ(45px)}.bridge-bottom{transform:translateZ(-45px)}.bridge-near{transform:translateY(-45px) rotateX(90deg)}.bridge-far{transform:translateY(45px) rotateX(90deg)}
.laser-mount{position:absolute;top:-16px;width:26px;height:32px;border:5px solid #bac6ca;background:#14202a;transform:translateZ(-60px) rotateX(90deg);box-shadow:0 0 0 2px #14202a}

.overhead-bridge{left:0;top:0;transform-origin:0 0}

/* Level and ground the booth in the same coordinate frame as the room. */
#roomShell>.floor{transform:none}
#roomShell>#boothAssembly{left:0;top:0;transform:translate3d(0,1535px,595.11px) scale3d(.83,.83,.83)}

/* Fold the next rows of the panorama over the DJ-facing front edge. */
#boothUnderlayVideo iframe,.wrap-left iframe,.wrap-right iframe{top:-35.9925px;transform:none}
.wrap-front{left:-780px;top:414.14px;width:1560px;height:165px;transform:rotateX(-90deg);mask-image:linear-gradient(to right,#000 0 600px,transparent 600px 615px,#000 615px 945px,transparent 945px 960px,#000 960px 1560px)}
.wrap-front iframe{left:-165px;top:-862.1325px;transform:none}

/* Laptop-style Crate screen: bottom-center hinge stays on mixer's far edge. */
#boothAssembly>#crate{transform-origin:50% 100%;border:9px solid #1c2935;border-bottom:14px solid #202f3b;border-radius:14px;box-shadow:0 0 0 2px #577281;background:#09151e}
#crate .crate-handle{cursor:default;padding:12px;touch-action:auto}#crate .crate-adjust label:has(#depth){display:none}
#crate:after{content:'';position:absolute;bottom:-19px;left:25%;width:50%;height:12px;border-radius:6px;background:linear-gradient(#788994,#17232d,#4b626f);pointer-events:none}
#boothAssembly>#crate{backface-visibility:visible;transform-style:preserve-3d}
#crate:before{content:'DJ BOOTH PRO';position:absolute;inset:-7px;background:linear-gradient(135deg,#344550,#0b141d);border:3px solid #58717f;border-radius:12px;transform:translateZ(-4px) rotateY(180deg);backface-visibility:hidden;display:grid;place-items:center;font:18px monospace;letter-spacing:4px;color:#009dce;pointer-events:none}
