/* ========================= VIDEO CARD ========================= */ .video-card { position: relative; cursor: pointer; overflow: hidden; border-radius: 20px; transition: 0.3s; } .video-card img { width: 100%; height: 200px; object-fit: cover; border-radius: 20px; transition: 0.3s; } .video-card:hover { transform: translateY(-5px); } .video-card:hover img { transform: scale(1.05); } /* ========================= OVERLAY (JUDUL) ========================= */ .video-overlay { position: absolute; inset: 0; padding: 15px; display: flex; flex-direction: column; justify-content: flex-start; background: linear-gradient( to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.7) 100% ); } .video-title { color: #fff; font-weight: 700; font-size: 16px; margin: 0; } .video-subtitle { color: #ddd; font-size: 12px; margin: 0; } /* ========================= PLAY BUTTON ========================= */ .play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 30px; color: white; background: rgba(255, 0, 0, 0.85); border-radius: 50%; padding: 12px 16px; } /* ========================= MODAL VIDEO ========================= */ .video-modal { display: none; position: fixed; z-index: 9999; inset: 0; background: rgba(0,0,0,0.85); justify-content: center; align-items: center; } .video-content { position: relative; width: 80%; max-width: 900px; } .video-content iframe { width: 100%; height: 500px; border-radius: 12px; } /* ========================= CLOSE BUTTON ========================= */ .close-btn { position: absolute; top: -35px; right: 0; font-size: 30px; color: white; cursor: pointer; } /* ========================= YOUTUBE EMBED (OPTIONAL) ========================= */ .youtube-wrapper { position: relative; width: 100%; padding-bottom: 56.25%; /* 16:9 */ overflow: hidden; border-radius: 20px; } .youtube-wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 20px; }