
.mv-main-visual {
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    background: #000;
    height: min(80vh, 56.25vw);
    min-height: 320px;
    max-height: 720px;
}
.mv-main-visual video {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    vertical-align: top;
}
.mv-end-thumb {
    position: absolute !important;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease-out;
    z-index: 2;
}
.mv-main-visual.mv-ended .mv-end-thumb {
    opacity: 1;
}
.mv-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 24px 12px 12px;
    background: linear-gradient(transparent, rgba(0,0,0,0.75));
    pointer-events: none;
    z-index: 3;
    opacity: .4;
    transition: opacity 0.3s ease-out;
}
.mv-overlay:hover {
    opacity: 1;
}
.mv-overlay > * { pointer-events: auto; }
.mv-seek-wrap {
    margin-bottom: 10px;
}
.mv-seek-bar {
    position: relative;
    height: 4px;
    background: rgba(255,255,255,0.3);
    border-radius: 2px;
    cursor: pointer;
    transition: height 0.15s;
}
.mv-seek-bar:hover,
.mv-seek-bar:focus { height: 6px; outline: none; }
.mv-seek-bar:focus .mv-seek-handle { opacity: 1; transform: scale(1); }
.mv-seek-track {
    position: absolute;
    inset: 0;
    border-radius: 2px;
}
.mv-seek-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0%;
    background: #d9c548;
    border-radius: 2px;
    transition: width 0.05s linear;
}
.mv-seek-handle {
    position: absolute;
    left: 0%;
    top: 50%;
    width: 12px;
    height: 12px;
    margin: -6px 0 0 -6px;
    background: #d9c548;
    border-radius: 50%;
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.15s, transform 0.15s;
    pointer-events: none;
}
.mv-seek-bar:hover .mv-seek-handle { opacity: 1; transform: scale(1); }
.mv-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.mv-volume-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}
.mv-volume-bar {
    width: 72px;
    height: 4px;
    -webkit-appearance: none;
    appearance: none;
    background: rgba(255,255,255,0.3);
    border-radius: 2px;
    cursor: pointer;
}
.mv-volume-bar::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #d9c548;
    cursor: pointer;
    margin-top: -4px;
}
.mv-volume-bar::-moz-range-thumb {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #d9c548;
    cursor: pointer;
    border: none;
}
.mv-volume-bar::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; }
.mv-volume-bar::-moz-range-track { height: 4px; border-radius: 2px; background: transparent; }
.mv-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: none;
    border-radius: 0;
    background: rgba(255,255,255,0.15);
    color: #fff;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.2s;
}
.mv-btn:hover {
    background: rgba(255,255,255,0.28);
}
.mv-btn[aria-pressed="true"] {
    background: rgba(255,255,255,0.25);
}
.mv-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.mv-icon-mute {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M11 5L6 9H2v6h4l5 4V5z'/%3E%3Cpolygon points='16 9 22 15 16 15 16 9' fill='%23fff'/%3E%3Cpolygon points='22 9 16 15 22 15 22 9' fill='%23fff'/%3E%3C/svg%3E");
}
.mv-btn[aria-pressed="true"] .mv-icon-mute {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M11 5L6 9H2v6h4l5 4V5z'/%3E%3Cline x1='23' y1='9' x2='17' y2='15'/%3E%3Cline x1='17' y1='9' x2='23' y2='15'/%3E%3C/svg%3E");
}
.mv-icon-repeat {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M17 1l4 4-4 4'/%3E%3Cpath d='M3 11V9a4 4 0 014-4h14'/%3E%3Cpath d='M7 23l-4-4 4-4'/%3E%3Cpath d='M21 13v2a4 4 0 01-4 4H3'/%3E%3C/svg%3E");
}
.mv-icon-play {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
}
.mv-icon-pause {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Crect x='6' y='4' width='4' height='16'/%3E%3Crect x='14' y='4' width='4' height='16'/%3E%3C/svg%3E");
}
.mv-btn-playpause .mv-icon-pause,
.mv-btn-playpause .mv-label-pause { display: none; }
.mv-btn-playpause.mv-playing .mv-icon-play,
.mv-btn-playpause.mv-playing .mv-label-play { display: none; }
.mv-btn-playpause.mv-playing .mv-icon-pause,
.mv-btn-playpause.mv-playing .mv-label-pause { display: inline-block; }
@media (max-width: 640px) {
    .mv-overlay { padding: 16px 8px 8px; }
    .mv-controls { gap: 6px; }
    .mv-volume-wrap { gap: 6px; }
    .mv-volume-bar { width: 56px; }
    .mv-btn { padding: 5px 10px; font-size: 12px; }
    .mv-label { display: none; }
}