.player {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--steel-400);
    background: #05090f;
    box-shadow: 0 4px 14px rgba(15, 35, 64, .28), inset 0 1px 0 rgba(255, 255, 255, .35);
}

.player-video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #05090f;
}

/* When nested inside a framed wrapper, drop the player's own chrome so the
   two borders do not stack. */
.video-wrapper .player {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* Click-to-load overlay. Sits above the poster until the visitor presses play,
   which is what keeps the HLS manifest from loading on page view. */
.player-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    padding: 0;
    border: 0;
    background: linear-gradient(rgba(5, 9, 15, .28), rgba(5, 9, 15, .46));
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .02em;
    cursor: pointer;
    transition: background .2s;
}
.player-overlay:hover { background: linear-gradient(rgba(5, 9, 15, .18), rgba(5, 9, 15, .36)); }
.player-overlay:focus-visible {
    outline: 3px solid var(--blue-500, #3f7fc4);
    outline-offset: -3px;
}
.player-overlay-icon {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .9);
    background: rgba(224, 32, 32, .92);
    box-shadow: 0 4px 16px rgba(0, 0, 0, .45);
    position: relative;
    transition: transform .2s;
}
.player-overlay-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 54%;
    transform: translate(-50%, -50%);
    border-style: solid;
    border-width: 11px 0 11px 18px;
    border-color: transparent transparent transparent #fff;
}
.player-overlay:hover .player-overlay-icon { transform: scale(1.07); }
.player-overlay-text { text-shadow: 0 1px 4px rgba(0, 0, 0, .7); }

@media (max-width: 768px) {
    .player-overlay-icon {
        width: 46px; height: 46px;
        flex: 0 0 46px;
    }
    .player-overlay-icon::after {
        border-width: 9px 0 9px 14px;
    }
    .player-overlay { font-size: 14px; }
}

.player-status {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: rgba(224, 32, 32, .9);
    display: none;
}

.player-status.is-visible {
    display: block;
}

@media (max-width: 768px) {
    .player-status {
        padding: 8px 11px;
        font-size: 12px;
    }
}
