:root{--bg:#0b0b12;--card:#121226;--accent:#ff55ff;--accent2:#7a9cff;--text:#e8eaf6;--muted:#aab}
*{box-sizing:border-box} html,body{height:100%}
body{margin:0;background:#0b0b12;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
#app{max-width:900px;margin:0 auto;padding:16px}
.brand{display:flex;align-items:center;gap:10px;margin:6px 0 12px}
.brand h1{margin:0;font-weight:800} .brand h1 span{color:transparent;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text}
.version-badge{margin-left:auto;border:1px solid #fff2;padding:6px 8px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2));color:#000;font-weight:800;cursor:pointer}
.card{background:#121226;border:1px solid #fff1;border-radius:14px;padding:12px}
.card.inner{margin-top:10px}
.row{display:flex;gap:10px;align-items:center}.row.small{margin-top:8px}
label{font-weight:700;font-size:14px;color:var(--text);display:block;margin-bottom:6px}
input[type=url]{flex:1;padding:10px;border-radius:10px;border:1px solid #fff2;background:#0f0f1f;color:var(--text)}
.btn{border:1px solid #fff3;background:#ffffff22;color:var(--text);padding:10px 12px;border-radius:10px;font-weight:700;cursor:pointer}
.player-frame-wrapper{width:100%;aspect-ratio:16/9;background:#000;border:1px solid #fff1;border-radius:12px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.player-frame-wrapper.vertical{aspect-ratio:9/16}
#mirrorWrap{width:100%;height:100%;transform-origin:center;will-change:transform;transform-style:preserve-3d}
#mirrorWrap.mirrored{transform:scaleX(-1)} #mirrorWrap.mirrored iframe{transform:scaleX(-1)} #mirrorWrap.mirrored iframe:fullscreen{transform:scaleX(-1)}
#player{width:100%;height:100%;display:block;background:#000}
:fullscreen #player, #player:fullscreen{width:100vw;height:100vh}
.fs-overlay{position:absolute;bottom:10px;right:10px;padding:8px 10px;border-radius:10px;border:1px solid #fff4;background:linear-gradient(90deg,var(--accent),var(--accent2));color:#000;font-weight:900}
.fs-exit{position:absolute;top:10px;right:10px;padding:8px 10px;border-radius:10px;border:1px solid #fff4;background:linear-gradient(90deg,var(--accent),var(--accent2));color:#000;font-weight:900;display:none;z-index:20}
body.in-fs .fs-exit, body.pseudo-fs .fs-exit{display:block}
.visit-counter{position:fixed;left:50%;bottom:10px;transform:translateX(-50%);padding:6px 10px;border-radius:12px;background:#0a0a1acc;border:1px solid #fff2;backdrop-filter:blur(6px);z-index:1001;font-weight:800}
.hidden{display:none}.hint{color:var(--muted);font-size:12px}
.mirror-row{justify-content:center;gap:12px}
.hand{font-size:22px;user-select:none}
.switch{position:relative;display:inline-block;width:56px;height:30px}
.switch input{display:none}
.slider{position:absolute;inset:0;border-radius:100px;background:#1b1b35;border:1px solid #fff2;transition:.2s}
.slider:before{content:"";position:absolute;width:22px;height:22px;left:4px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0006;transition:.2s}
.switch input:checked + .slider{background:linear-gradient(90deg,var(--accent2),var(--accent))}
.switch input:checked + .slider:before{transform:translateX(26px)}
.loop-overlay{position:absolute;left:8px;right:8px;bottom:8px;z-index:10;pointer-events:none}
.loop-bar{position:relative;height:10px;border-radius:6px;background:#ffffff26;border:1px solid #ffffff33;overflow:hidden}
.loop-shade{position:absolute;top:0;bottom:0;background:#ff55ff55}
.pin{position:absolute;top:-5px;width:10px;height:20px;border-radius:2px;background:#ff55ff;box-shadow:0 0 8px #ff55ff}
.pin-b{background:#7a9cff;box-shadow:0 0 8px #7a9cff}
.markers{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.marker{display:flex;flex-direction:column}
.marker-controls{display:flex;gap:8px;align-items:center}
.timebox{width:90px;padding:8px;border-radius:8px;border:1px solid #fff2;background:#0f0f1f;color:var(--text);text-align:center}

.speed-wrap{margin-top:10px}
.speed-controls{display:flex;gap:10px;align-items:center}
#speedSlider{flex:1}

body.pseudo-fs{overflow:hidden}
body.pseudo-fs #playerCard{position:fixed;inset:0;margin:0;border-radius:0;z-index:9999}
body.pseudo-fs .player-frame-wrapper{position:fixed;inset:0;width:100vw;height:100vh;border-radius:0}
body.pseudo-fs #mirrorWrap{width:100vw;height:100vh}

body.in-fs .hide-when-fs, body.pseudo-fs .hide-when-fs, body.in-fs .visit-counter, body.pseudo-fs .visit-counter{display:none !important}

.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2000}
.modal.show{display:flex}
.modal-backdrop{position:absolute;inset:0;background:#0008;backdrop-filter:blur(4px)}
.modal-card{position:relative;background:#121226;border:1px solid #fff2;border-radius:16px;max-width:720px;width:92vw;max-height:86vh;overflow:auto;box-shadow:0 10px 40px #000a}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #fff1}
.modal-x{border:1px solid #fff3;background:#ffffff22;color:var(--text);padding:8px 10px;border-radius:10px;font-weight:800;cursor:pointer}
.modal-body{padding:12px 16px}
.modal-foot{padding:12px 16px;border-top:1px solid #fff1}
.changelog{margin-left:18px}
.qr-wrap{display:flex;justify-content:center;margin:8px 0 4px}
.qr-wrap img{max-width:240px;width:60%;height:auto;border-radius:12px;border:1px solid #fff2;background:#fff}
