@font-face{font-family:"CustomUI";src:url("font.ttf") format("truetype");font-display:swap}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-family:"CustomUI",sans-serif}body,html{margin:0;width:100%;height:100%;background:#000;color:#ecf1f8;overflow:hidden;user-select:none;-webkit-user-select:none}.player,.stage{position:fixed;inset:0;background:#000}video{width:100%;height:100%;object-fit:contain;display:block;background:#000;-webkit-playsinline:true}video::-webkit-media-controls{display:none!important}video::-webkit-media-controls-enclosure{display:none!important}video::-webkit-media-controls-panel{display:none!important}.tap{position:absolute;top:0;bottom:130px;width:50%;z-index:2}.tap.left{left:0}.tap.right{right:0}.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.15);transform:scale(0);animation:rippleAnim 0.5s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes rippleAnim{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:0}}.overlay{position:absolute;inset:0;display:flex;align-items:flex-end;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.72));opacity:1;transition:opacity 0.35s cubic-bezier(.4,0,.2,1);z-index:3}.overlay.hide{opacity:0;pointer-events:none}.controls{width:100%;background:rgba(10,13,18,.9);border-top:1px solid #202733;padding:14px 20px 16px}.btn-row{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 4px}.btn-group{display:flex;align-items:center;gap:12px}.progress-group{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.bar-wrap{height:44px;display:flex;align-items:center;position:relative;min-width:0;margin:0;padding:0 8px;cursor:pointer;flex:1}.bar{position:relative;width:100%;height:4px;background:#27303d;border-radius:999px;touch-action:none;transition:height 0.25s cubic-bezier(.4,0,.2,1);pointer-events:none}.bar-wrap.dragging .bar,.bar-wrap:hover .bar{height:6px}.fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#66adff,#8bbfff);border-radius:999px}.hover-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(255,255,255,.07);border-radius:999px;pointer-events:none;transition:opacity 0.25s cubic-bezier(.4,0,.2,1);opacity:0}.bar-wrap.dragging .hover-fill,.bar-wrap:hover .hover-fill{opacity:1}.thumb{position:absolute;top:50%;left:0;width:0;height:0;border-radius:50%;background:#fff;transform:translate(-50%,-50%);transition:width 0.25s cubic-bezier(.4,0,.2,1),height 0.25s cubic-bezier(.4,0,.2,1)}.bar-wrap.dragging .thumb,.bar-wrap:hover .thumb{width:14px;height:14px}@keyframes thumbPulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.35)}}.thumb.pulsing{width:10px;height:10px;animation:thumbPulse 1.8s cubic-bezier(.4,0,.2,1) infinite}.bar-wrap.dragging .thumb.pulsing,.bar-wrap:hover .thumb.pulsing{width:14px;height:14px;animation:none}.thumb-preview{position:absolute;bottom:100%;transform:translateX(-50%) translateY(4px);margin-bottom:6px;border-radius:6px;background:rgba(16,21,29,.95);color:#d9e3f2;font-size:11px;pointer-events:none;white-space:nowrap;opacity:0;transition:opacity 0.2s cubic-bezier(.4,0,.2,1),transform 0.2s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column;align-items:center}.bar-wrap.hover .thumb-preview{opacity:1;transform:translateX(-50%) translateY(0)}.thumb-preview canvas{display:block;width:140px;height:80px;border-radius:4px 4px 0 0}.thumb-preview .prev-time{padding:3px 8px 4px;font-size:11px}.icon-btn{all:unset;width:46px;height:46px;display:grid;place-items:center;cursor:pointer;border-radius:10px;transition:transform 0.2s cubic-bezier(.4,0,.2,1),opacity 0.2s cubic-bezier(.4,0,.2,1);flex-shrink:0}.icon-btn:hover{opacity:0.85}.icon-btn:active{transform:scale(.93)}.icon-btn:focus-visible{outline:2px solid #8bbfff;outline-offset:2px}.icon{width:26px;height:26px;object-fit:contain;display:block;pointer-events:none;user-select:none}.vol-wrap{display:flex;align-items:center;gap:8px;position:relative}.vol-slider-wrap{width:0;overflow:visible;clip-path:inset(0 0 0 0);transition:width 0.25s cubic-bezier(.4,0,.2,1),clip-path 0.25s cubic-bezier(.4,0,.2,1);display:flex;align-items:center}.vol-wrap.vol-open .vol-slider-wrap,.vol-wrap:hover .vol-slider-wrap{width:90px;clip-path:inset(-8px -8px -8px 0)}.vol-bar-wrap{width:90px;height:28px;display:flex;align-items:center;position:relative;cursor:pointer;touch-action:none;padding:0 7px}.vol-bar{position:relative;width:100%;height:4px;background:#27303d;border-radius:999px;pointer-events:none;transition:height 0.25s cubic-bezier(.4,0,.2,1)}.vol-bar-wrap.vol-dragging .vol-bar,.vol-bar-wrap:hover .vol-bar{height:6px}.vol-fill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#66adff,#8bbfff);border-radius:999px}.vol-thumb{position:absolute;top:50%;left:100%;width:0;height:0;border-radius:50%;background:#fff;transform:translate(-50%,-50%);transition:width 0.25s cubic-bezier(.4,0,.2,1),height 0.25s cubic-bezier(.4,0,.2,1)}.vol-bar-wrap.vol-dragging .vol-thumb,.vol-bar-wrap:hover .vol-thumb{width:12px;height:12px}.time{color:#aeb8c8;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:0.2px;font-size:13px;user-select:none;padding:0 4px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity 0.2s cubic-bezier(.4,0,.2,1)}.time:hover{opacity:0.7}.speed-btn{all:unset;height:46px;padding:0 12px;display:grid;place-items:center;cursor:pointer;border-radius:10px;transition:transform 0.2s cubic-bezier(.4,0,.2,1),opacity 0.2s cubic-bezier(.4,0,.2,1);flex-shrink:0}.speed-btn:hover{opacity:0.85}.speed-btn:active{transform:scale(.93)}.speed-btn .icon{width:30px;height:30px}.toast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.92);padding:10px 14px;border:1px solid #2c3442;background:rgba(16,21,29,.92);border-radius:8px;font-size:15px;opacity:0;transition:opacity 0.18s cubic-bezier(.4,0,.2,1),transform 0.18s cubic-bezier(.4,0,.2,1);z-index:4;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.hide-cursor,.hide-cursor *{cursor:none!important}.sub-display{position:absolute;left:50%;transform:translateX(-50%);z-index:5;pointer-events:none;text-align:center;max-width:85%;font-family:"CustomUI",sans-serif;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.7);line-height:1.4;padding:4px 12px;border-radius:4px;background:rgba(0,0,0,.45);opacity:0;transition:opacity 0.15s}.sub-display.visible{opacity:1}.sub-wrap{position:static}.sub-menu{position:fixed;bottom:86px;right:8px;background:rgba(16,21,29,.96);border:1px solid #2c3442;border-radius:10px;padding:6px 0;min-width:240px;max-height:70vh;overflow-y:auto;z-index:10;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity 0.2s cubic-bezier(.4,0,.2,1),transform 0.2s cubic-bezier(.4,0,.2,1)}.sub-menu.open{opacity:1;transform:translateY(0);pointer-events:auto}.sub-menu::-webkit-scrollbar{width:4px}.sub-menu::-webkit-scrollbar-track{background:transparent}.sub-menu::-webkit-scrollbar-thumb{background:#2c3442;border-radius:999px}.sub-menu-item{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;font-size:13px;color:#d9e3f2;transition:background 0.15s}.sub-menu-item:hover{background:rgba(255,255,255,.08)}.sub-menu-item.active{color:#8bbfff}.sub-menu-item.off-item{color:#ff6b6b;border-top:1px solid #2c3442}.sub-settings{overflow:hidden;max-height:0;opacity:0;transition:max-height 0.35s cubic-bezier(.4,0,.2,1),opacity 0.3s cubic-bezier(.4,0,.2,1);border-top:1px solid transparent}.sub-settings.visible{max-height:200px;opacity:1;border-top-color:#2c3442}.sub-menu-section{padding:10px 16px 4px;font-size:11px;color:#5a6577;text-transform:uppercase;letter-spacing:0.5px}.sub-menu-slider{display:flex;align-items:center;gap:10px;padding:8px 16px 10px}.sub-menu-slider label{font-size:12px;color:#aeb8c8;min-width:52px;flex-shrink:0}.sub-menu-slider input[type="range"]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:transparent;border-radius:999px;outline:none;cursor:pointer;min-width:0;position:relative}.sub-menu-slider input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:#27303d}.sub-menu-slider input[type="range"]::-moz-range-track{height:4px;border-radius:999px;background:#27303d}.sub-menu-slider input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;cursor:pointer;margin-top:-5px;position:relative;z-index:2}.sub-menu-slider input[type="range"]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;cursor:pointer;border:none}.sub-menu-slider input[type="range"]::-moz-range-progress{height:4px;border-radius:999px;background:linear-gradient(90deg,#66adff,#8bbfff)}.sub-menu-slider .slider-val{font-size:12px;color:#8bbfff;min-width:36px;text-align:right;flex-shrink:0}@media (max-width:760px){.tap{bottom:150px}.controls{padding:12px 14px 14px}.btn-row{gap:8px}.btn-group{gap:8px}.bar-wrap{height:40px;padding:0 6px}.icon-btn{width:42px;height:42px}.icon{width:24px;height:24px}.speed-btn{height:42px;padding:0 8px}.speed-btn .icon{width:26px;height:26px}.time{font-size:12px}.vol-wrap.vol-open .vol-slider-wrap,.vol-wrap:hover .vol-slider-wrap{width:70px;clip-path:inset(-8px -8px -8px 0)}.vol-bar-wrap{width:70px;padding:0 6px}.thumb-preview canvas{width:110px;height:62px}.sub-menu{min-width:220px;bottom:80px;right:8px;max-height:60vh}.sub-menu-slider label{min-width:44px;font-size:11px}.sub-menu-slider .slider-val{font-size:11px;min-width:30px}}@media (max-width:400px){.controls{padding:10px 10px 12px}.btn-row{gap:5px}.btn-group{gap:5px}.icon-btn{width:38px;height:38px}.icon{width:22px;height:22px}.speed-btn{height:38px;padding:0 6px}.speed-btn .icon{width:24px;height:24px}.time{font-size:11px}.vol-wrap.vol-open .vol-slider-wrap,.vol-wrap:hover .vol-slider-wrap{width:56px;clip-path:inset(-8px -8px -8px 0)}.vol-bar-wrap{width:56px;padding:0 5px}.sub-menu{min-width:190px;bottom:74px;right:8px;max-height:55vh}.sub-menu-item{padding:10px 12px;font-size:12px}.sub-menu-section{padding:8px 12px 3px;font-size:10px}.sub-menu-slider{padding:6px 12px 8px;gap:8px}.sub-menu-slider label{min-width:40px;font-size:10px}.sub-menu-slider .slider-val{font-size:10px;min-width:26px}}