/* CoRE.Vizion+ — фирменный плеер (.pjs). Общие стили: десктоп (архив) и мобила. */ .player-wrap .pjs { position: relative; width: 100%; height: 100%; background: #000; outline: none; overflow: hidden; } .pjs-video { width: 100%; height: 100%; display: block; object-fit: contain; background: #000; cursor: pointer; } /* центр: большая кнопка play (на паузе) + спиннер (при буферизации) */ .pjs-center { position: absolute; inset: 0; pointer-events: none; } .pjs-bigplay { position: absolute; top: 50%; left: 50%; width: 74px; height: 74px; border-radius: 50%; border: none; cursor: pointer; pointer-events: auto; background: rgba(10,12,18,.55); color: #fff; font-size: 26px; padding-left: 5px; opacity: 0; transition: opacity .15s, transform .15s; transform: translate(-50%, -50%) scale(.9); } .pjs.paused:not(.buffering) .pjs-bigplay { opacity: 1; transform: translate(-50%, -50%) scale(1); } .pjs-bigplay:hover { background: rgba(10,12,18,.82); } .pjs-spinner { position: absolute; top: 50%; left: 50%; width: 46px; height: 46px; margin: -23px 0 0 -23px; border: 3px solid rgba(255,255,255,.22); border-top-color: #fff; border-radius: 50%; opacity: 0; } .pjs.buffering .pjs-spinner { opacity: 1; animation: pjs-spin .8s linear infinite; } @keyframes pjs-spin { to { transform: rotate(360deg); } } /* нижняя панель управления */ .pjs-bar { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; display: flex; align-items: center; gap: 10px; padding: 26px 14px 11px; background: linear-gradient(transparent, rgba(0,0,0,.8)); opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; } .pjs.show .pjs-bar, .pjs:hover .pjs-bar, .pjs.paused .pjs-bar { opacity: 1; transform: none; } .pjs-btn { background: none; border: none; color: #fff; cursor: pointer; font-size: 16px; line-height: 1; padding: 5px 7px; border-radius: 5px; opacity: .9; transition: background .12s, opacity .12s; } .pjs-btn:hover { opacity: 1; background: rgba(255,255,255,.14); } .pjs-time, .pjs-dur { color: #fff; font-size: 12px; font-variant-numeric: tabular-nums; min-width: 40px; text-align: center; opacity: .92; } /* шкала перемотки */ .pjs-seek { position: relative; flex: 1; height: 5px; border-radius: 3px; background: rgba(255,255,255,.25); cursor: pointer; touch-action: none; } .pjs-seek:hover { height: 7px; } .pjs-buf { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: rgba(255,255,255,.35); border-radius: 3px; } .pjs-prog { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: #e23b3b; border-radius: 3px; } .pjs-knob { position: absolute; top: 50%; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 50%; background: #e23b3b; box-shadow: 0 0 4px rgba(0,0,0,.5); transform: translateY(-50%) scale(0); transition: transform .12s; } .pjs-seek:hover .pjs-knob, .pjs.show .pjs-knob { transform: translateY(-50%) scale(1); } .pjs.fs:not(.show) { cursor: none; } /* live-режим: только пауза/плей + во весь экран (без шкалы/времени/скорости) */ .pjs.live .pjs-time, .pjs.live .pjs-dur, .pjs.live .pjs-seek, .pjs.live .pjs-speed { display: none; } .pjs.live .pjs-bar { justify-content: center; gap: 30px; }