.ykv-wrapper {
width: 100%;
box-sizing: border-box;
} .ykv-grid {
display: grid;
gap: 20px;
grid-template-columns: repeat(3, 1fr);
}
.ykv-cols-1 { grid-template-columns: repeat(1, 1fr); }
.ykv-cols-2 { grid-template-columns: repeat(2, 1fr); }
.ykv-cols-3 { grid-template-columns: repeat(3, 1fr); }
.ykv-cols-4 { grid-template-columns: repeat(4, 1fr); }
.ykv-cols-5 { grid-template-columns: repeat(5, 1fr); }
.ykv-cols-6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 900px) {
.ykv-cols-4,
.ykv-cols-5,
.ykv-cols-6 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
.ykv-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px; }
}
@media (max-width: 400px) {
.ykv-grid { grid-template-columns: 1fr !important; }
} .ykv-item {
background: #fff;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,.10);
transition: transform .2s ease, box-shadow .2s ease;
display: flex;
flex-direction: column;
}
.ykv-item:hover {
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(0,0,0,.16);
} .ykv-item.ykv-hidden {
display: none;
} @keyframes ykv-fadein {
from { opacity: 0; transform: translateY(12px); }
to   { opacity: 1; transform: translateY(0); }
}
.ykv-item.ykv-reveal {
animation: ykv-fadein .35s ease both;
} .ykv-thumb-wrap {
position: relative;
width: 100%;
padding-top: 56.25%; cursor: pointer;
background: #111;
overflow: hidden;
}
.ykv-thumb {
position: absolute;
inset: 0;
width: 100%; height: 100%;
object-fit: cover;
display: block;
transition: opacity .25s;
}
.ykv-thumb-placeholder {
position: absolute;
inset: 0;
background: #222;
}
.ykv-thumb-wrap:hover .ykv-thumb { opacity: .72; } .ykv-play-btn {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
width: 54px; height: 54px;
border-radius: 50%;
background: rgba(220,0,0,.88);
color: #fff;
font-size: 20px;
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
opacity: 0;
transition: opacity .2s;
padding-left: 4px;
box-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.ykv-thumb-wrap:hover  .ykv-play-btn,
.ykv-thumb-wrap:focus  .ykv-play-btn { opacity: 1; }
.ykv-thumb-wrap:focus { outline: 2px solid #0073aa; outline-offset: 2px; } .ykv-info {
padding: 10px 12px 12px;
display: flex;
flex-direction: column;
gap: 4px;
}
.ykv-title {
margin: 0;
font-size: 13.5px;
font-weight: 600;
color: #111;
line-height: 1.45;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.ykv-date {
margin: 0;
font-size: 11.5px;
color: #999;
} .ykv-pagination {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 6px;
margin-top: 32px;
padding-bottom: 8px;
}
.ykv-page-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 36px;
height: 36px;
padding: 0 10px;
border: 1px solid #ddd;
border-radius: 4px;
background: #fff;
color: #333;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: background .15s, color .15s, border-color .15s;
line-height: 1;
}
.ykv-page-btn:hover:not(:disabled) {
background: #cc0000;
border-color: #cc0000;
color: #fff;
}
.ykv-page-btn:disabled {
opacity: .35;
cursor: default;
}
.ykv-page-btn.ykv-page-active {
background: #cc0000;
border-color: #cc0000;
color: #fff;
cursor: default;
pointer-events: none;
}
.ykv-page-prev,
.ykv-page-next {
font-size: 18px;
padding: 0 12px;
}
.ykv-page-ellipsis {
display: inline-flex;
align-items: center;
height: 36px;
color: #999;
font-size: 14px;
padding: 0 4px;
user-select: none;
}
@media (max-width: 480px) {
.ykv-page-btn { min-width: 32px; height: 32px; font-size: 13px; }
} .ykv-modal {
display: none;
position: fixed;
inset: 0;
z-index: 99999;
align-items: center;
justify-content: center;
}
.ykv-modal.is-open { display: flex; }
.ykv-modal-overlay {
position: absolute;
inset: 0;
z-index: 1;
background: rgba(0,0,0,.84);
cursor: pointer;
}
.ykv-modal-content {
position: relative;
z-index: 2;
width: 84%;
max-width: 920px;
background: #000;
border-radius: 6px;
overflow: hidden;
box-shadow: 0 10px 50px rgba(0,0,0,.7);
}
.ykv-modal-close {
position: absolute;
top: 6px; right: 10px;
background: transparent;
border: none;
color: #fff;
font-size: 30px;
line-height: 1;
cursor: pointer;
z-index: 3;
padding: 2px 6px;
transition: color .15s;
}
.ykv-modal-close:hover { color: #f33; }
.ykv-modal-title {
margin: 0;
padding: 18px 56px 18px 16px;
color: #eee;
font-size: 18px;
font-weight: 600;
line-height: 1.5;
white-space: normal;
word-break: break-word;
min-height: 64px;
display: flex;
align-items: center;
}
.ykv-iframe-wrap {
position: relative;
width: 100%;
padding-top: 56.25%;
}
.ykv-iframe-wrap iframe {
position: absolute;
inset: 0;
width: 100%; height: 100%;
border: none;
} .ykv-modal-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 10;
background: rgba(255,255,255,.12);
border: 2px solid rgba(255,255,255,.35);
color: #fff;
font-size: 44px;
line-height: 1;
cursor: pointer;
padding: 14px 18px;
border-radius: 6px;
transition: background .2s, border-color .2s, transform .15s;
user-select: none;
-webkit-user-select: none;
}
.ykv-modal-nav:hover:not(:disabled) {
background: rgba(204,0,0,.75);
border-color: rgba(204,0,0,.8);
transform: translateY(-50%) scale(1.08);
}
.ykv-modal-nav:disabled {
opacity: .2;
cursor: default;
}
.ykv-modal-prev { left: 16px; }
.ykv-modal-next { right: 16px; }
@media (max-width: 768px) {
.ykv-modal-content { width: 96%; }
.ykv-modal-nav { font-size: 32px; padding: 10px 13px; }
.ykv-modal-prev { left: 6px; }
.ykv-modal-next { right: 6px; }
.ykv-modal-title {
font-size: 16px;
padding: 16px 52px 16px 14px;
min-height: 56px;
}
} .ykv-banner-wrap {
margin-top: 28px;
width: 100%;
text-align: center;
}
.ykv-banner-img {
width: 100%;
max-width: 100%;
height: auto;
display: block;
border-radius: 6px;
transition: opacity .2s;
}
.ykv-banner-wrap a:hover .ykv-banner-img {
opacity: .88;
}