*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:#0b0b12;color:#eee;font-family:system-ui,-apple-system,sans-serif;-webkit-user-select:none;user-select:none}#app{position:fixed;top:0;right:0;bottom:0;left:0}#video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}#plate,#stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}#plate{background:#000}#plate.hidden+#stage{background:#000}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;padding:1.5rem;text-align:center}.hidden{display:none!important}#screen-start{background:radial-gradient(ellipse at 50% 30%,#1b1b33,#0b0b12 70%);justify-content:flex-start;overflow-y:auto;padding-top:calc(env(safe-area-inset-top,0px) + 1.5rem);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 1rem)}#screen-start>:first-child{margin-top:auto}#screen-start>:last-child{margin-bottom:auto}#screen-start h1{font-size:2.4rem;letter-spacing:.04em}.tagline{color:#aab;max-width:26rem}.hint{color:#667;font-size:.85rem}button{font:inherit;border:1px solid #445;border-radius:999px;background:#141423bf;color:#eee;padding:.7rem 1.4rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;touch-action:manipulation}button.primary{background:linear-gradient(135deg,#6c5ce7,#b84ce7);border:none;font-weight:600;padding:.9rem 2rem;font-size:1.05rem}button:active{transform:scale(.97)}#screen-capture,#screen-dance{justify-content:space-between;pointer-events:none}#screen-capture button,#screen-dance button,#screen-dance .menu{pointer-events:auto}.top-banner{margin-top:env(safe-area-inset-top,0);background:#0a0a14b3;border-radius:12px;padding:.8rem 1rem;max-width:30rem;font-size:.95rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.bottom-bar{display:flex;gap:.8rem;margin-bottom:calc(env(safe-area-inset-bottom,0) + .5rem)}#countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:7rem;font-weight:700;color:#fff;text-shadow:0 0 30px rgba(108,92,231,.9);background:#00000059}.burger{position:absolute;top:calc(env(safe-area-inset-top,0px) + .6rem);right:.8rem;padding:.45rem .85rem;font-size:1.15rem;line-height:1}.menu{position:absolute;top:calc(env(safe-area-inset-top,0px) + 3.5rem);right:.8rem;display:flex;flex-direction:column;gap:.9rem;width:min(19rem,calc(100vw - 1.6rem));background:#0a0a14e0;border:1px solid #334;border-radius:14px;padding:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left}.menu-row{display:grid;grid-template-columns:6.5rem 1fr 2.8rem;align-items:center;gap:.5rem;font-size:.85rem;color:#aab}.menu-row span{text-align:right;font-variant-numeric:tabular-nums;color:#9fa8ff}.menu input[type=range]{width:100%;accent-color:#b84ce7;touch-action:manipulation}button.danger{border-color:#844;color:#f9a}.hud{margin-top:env(safe-area-inset-top,0);display:flex;gap:1rem;background:#0a0a1499;border-radius:999px;padding:.4rem 1rem;font-size:.85rem;font-variant-numeric:tabular-nums;color:#9fa8ff}#loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:center;background:#05050ad9;z-index:10}.spinner{width:42px;height:42px;border:4px solid #333;border-top-color:#6c5ce7;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dance-bottom{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:min(26rem,100%)}.guest-slider{display:grid;grid-template-columns:auto 1fr 8.5rem;align-items:center;gap:.7rem;width:100%;padding:.45rem 1rem;border-radius:999px;background:#0a0a1499;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.85rem;color:#aab;pointer-events:auto}.guest-slider input{width:100%;accent-color:#b84ce7;touch-action:manipulation}.guest-slider span{text-align:left;color:#9fa8ff;font-variant-numeric:tabular-nums;white-space:nowrap}.menu-title{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#9fa8ff}.menu{max-height:calc(100vh - env(safe-area-inset-top,0px) - 4.5rem);overflow-y:auto}.menu-row.wide{grid-template-columns:3.6rem 1fr}.menu-check{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#aab}.menu-check input{accent-color:#b84ce7;width:1.1rem;height:1.1rem}.chips{display:flex;gap:.3rem;flex-wrap:wrap}.chip{padding:.25rem .6rem;font-size:.76rem}.chip.on{background:#6c5ce759;border-color:#b84ce7;color:#fff}#share-box{display:flex;flex-direction:column;gap:.6rem}#share-status{font-size:.75rem}#hud-guests{color:#fff}.start-buttons{display:flex;flex-direction:column;gap:.9rem;width:min(18rem,100%)}.start-buttons>*{width:100%}.join-wrap{position:relative}.join-wrap:after{content:"▾";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);color:#9fa8ff;pointer-events:none}#sel-join{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;font:inherit;font-size:1.05rem;font-weight:600;text-align:center;text-align-last:center;color:#eee;background:#141423bf;border:1px solid #556;border-radius:999px;padding:.9rem 2.4rem;cursor:pointer}#sel-join:focus{outline:none;border-color:#b84ce7}#sel-join option{color:#111}#sel-join option:disabled{color:#999}#sel-join.empty{color:#aab}.room-btn{position:absolute;top:calc(env(safe-area-inset-top,0px) + .6rem);left:.8rem;padding:.6rem 1.15rem;font-size:.95rem;max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-btn.shared{color:#fff;font-weight:600;border-color:#6c5ce7}.room-btn:disabled{opacity:.45}.modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:1rem;background:#05050a99}.modal-box{width:min(20rem,100%);padding:1.2rem;border:1px solid #334;border-radius:16px;background:#14141f;text-align:center}.modal-box p{margin-bottom:1rem}.modal-buttons{display:flex;gap:.8rem;justify-content:center}.status{min-height:1.2em}.status:empty{display:none}.status.online{color:#7dffb0}.status.offline{color:#f9a}.room-line{color:#9fa8ff;font-weight:600;margin-bottom:.4rem}#hud-room{color:#fff;font-weight:600}#screen-dance .hud{margin-top:calc(env(safe-area-inset-top,0px) + 3.4rem);flex-wrap:wrap;justify-content:center;gap:.3rem 1rem;max-width:100%}.perf-load{position:absolute;left:.6rem;bottom:calc(env(safe-area-inset-bottom,0px) + 7rem);z-index:15;max-width:calc(100vw - 1.2rem);padding:.5rem .7rem;border-radius:10px;background:#0a0a14cc;color:#9fa8ff;font:.72rem/1.35 ui-monospace,monospace;white-space:pre-wrap}.upcoming{width:min(22rem,100%);text-align:left}.upcoming h2{border-top:1px solid #2a2a40;padding-top:1rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#889;margin-bottom:.5rem}.upcoming ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}.upcoming .none{color:#667;font-size:.85rem}.set{border:1px solid #334;border-radius:12px;background:#14142399}.set.live{border-color:#b84ce7}.set summary{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;cursor:pointer;list-style:none}.set summary::-webkit-details-marker{display:none}.set-head{flex:1;min-width:0}.set-dj{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-when{font-size:.8rem;color:#9fa8ff}.set-room{white-space:nowrap}.set-badge{font-size:.7rem;font-weight:700;color:#fff;background:#b84ce7;border-radius:999px;padding:.1rem .45rem;margin-left:.3rem;vertical-align:.1em}.set summary button{padding:.4rem .9rem;font-size:.85rem}.set-body{padding:0 .8rem .7rem;font-size:.85rem;color:#ccd;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.set-body h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#889;margin:.5rem 0 .15rem}.set-body a,.book-link{color:#b9a6ff}.book-link{display:block;width:fit-content;margin:0 auto 1rem;font-size:.9rem}.fine-print{max-width:24rem;font-size:.68rem;line-height:1.35;color:#667}.menu .fine-print{font-size:.7rem;color:#a99}.legal{font-size:.75rem}.legal a{color:#889}.menu-title .soon{margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;background:#2a2a44;color:#aab;font-size:.65rem;letter-spacing:.06em}.music-btn{align-self:center;padding:.5rem 1rem;font-size:.85rem;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-btn.playing,#btn-hear{border-color:#b84ce7;color:#fff}.music-box{display:flex;flex-direction:column;gap:.8rem}.rooms-box #rooms-title{font-weight:600}.rooms-list{display:flex;flex-direction:column;gap:.5rem;max-height:50vh;overflow-y:auto;margin-bottom:1rem}.rooms-list button{text-align:left}.rooms-list button.here{border-color:#9fa8ff;color:#9fa8ff}.rooms-list .hint{color:#889;margin:0}.music-box #music-title{font-weight:600;margin:0}.music-sources,.music-inputs{display:flex;flex-direction:column;gap:.5rem}.music-inputs select{font:inherit;color:#eee;background:#141423bf;border:1px solid #445;border-radius:10px;padding:.5rem .7rem;width:100%;min-width:0}.music-inputs option{color:#111}.music-inputs .hint-dj,.music-obs .hint-dj{font-size:.75rem;color:#889;margin:0}.music-inputs .hint-dj a,.music-obs .hint-dj a{color:#b9a6ff}.music-obs{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;color:#ccd;text-align:left}.music-obs p{margin:0}.obs-row{display:grid;grid-template-columns:6rem 1fr auto;gap:.4rem;align-items:center;font-size:.8rem}.obs-row span{color:#889}.obs-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eee;font-size:.75rem}.obs-row button{font-size:.75rem;padding:.25rem .7rem}.music-box .hint:empty{display:none}.music-box .hint{color:#f9a}
