/* film grid */ .film-grid display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin: 3rem 0 5rem; .film-card background: rgba(15, 18, 24, 0.75); backdrop-filter: blur(2px); border-radius: 2rem; overflow: hidden; transition: all 0.35s cubic-bezier(0.2, 0.9, 0.4, 1.1); border: 1px solid rgba(201, 160, 61, 0.2); box-shadow: 0 20px 35px -15px rgba(0,0,0,0.6); .film-card:hover transform: translateY(-12px); border-color: rgba(201, 160, 61, 0.6); box-shadow: 0 30px 40px -18px black; background: rgba(20, 24, 32, 0.9); .poster position: relative; height: 400px; background-size: cover; background-position: center top; transition: transform 0.5s ease; .film-card:hover .poster transform: scale(1.02); .overlay position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, #030507ee, transparent); padding: 1.5rem 1rem 0.8rem; .year font-size: 0.8rem; font-weight: 500; background: #c9a03dcc; display: inline-block; padding: 0.2rem 0.8rem; border-radius: 30px; backdrop-filter: blur(2px); letter-spacing: 0.5px; color: #0a0c12; font-weight: 700; .film-info padding: 1.5rem; .film-title font-size: 1.6rem; font-weight: 700; font-family: 'Cormorant Garamond', serif; letter-spacing: -0.3px; margin-bottom: 0.5rem; display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; .film-title span:first-child background: linear-gradient(135deg, #f3e0b0, #dbb85c); background-clip: text; -webkit-background-clip: text; color: transparent; .director font-size: 0.8rem; color: #c9aa6e; margin-bottom: 0.75rem; text-transform: uppercase; letter-spacing: 1px; .synopsis font-size: 0.9rem; color: #cec6b5; margin: 0.8rem 0 1rem; line-height: 1.45; .tagline font-style: italic; font-size: 0.85rem; border-left: 3px solid #c9a03d; padding-left: 0.75rem; margin: 0.8rem 0; color: #e7cf9e; .btn-detail background: none; border: 1.5px solid #c9a03d; color: #c9a03d; padding: 0.5rem 1.2rem; border-radius: 40px; font-weight: 600; font-size: 0.75rem; cursor: pointer; transition: 0.25s; margin-top: 0.5rem; display: inline-flex; align-items: center; gap: 6px; background: rgba(0,0,0,0.4); .btn-detail:hover background: #c9a03d; color: #0a0c12; border-color: #c9a03d;
// Additional micro-interaction: hover cards enhance // Dynamically add a class for extra smoothness const style = document.createElement('style'); style.textContent = ` .film-card .btn-detail:active transform: scale(0.96); .poster transition: all 0.4s; background-blend-mode: overlay; .film-card:hover .poster filter: brightness(1.02) contrast(1.05); `; document.head.appendChild(style);
function renderFilms() const grid = document.getElementById('filmGrid'); if (!grid) return; grid.innerHTML = ''; movies.forEach((movie, idx) => const card = document.createElement('div'); card.className = 'film-card'; peliculas de juegos del hambre
closeBtn.addEventListener('click', closeModalHandler); window.addEventListener('click', (e) => if (e.target === modal) closeModalHandler(); ); document.addEventListener('keydown', (e) => if (e.key === 'Escape' && modal.classList.contains('show')) closeModalHandler(); );
card.appendChild(posterDiv); card.appendChild(infoDiv); grid.appendChild(card); ); /* film grid */
/* stats / tribute */ .stats-panel display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem; margin-top: 1.5rem; margin-bottom: 3rem; .stat background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); padding: 1rem 2rem; border-radius: 60px; border: 1px solid #c9a03d40; font-weight: 500; .stat strong font-size: 1.8rem; font-weight: 800; color: #e2bc6e; margin-right: 8px;
.container max-width: 1400px; margin: 0 auto; padding: 2rem 2rem 4rem; margin: 3rem 0 5rem
/* modal lightbox for extra details */ .modal display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(2, 4, 8, 0.95); backdrop-filter: blur(10px); align-items: center; justify-content: center; z-index: 1000; opacity: 0; transition: opacity 0.3s ease; .modal.show display: flex; opacity: 1; .modal-content background: #12161f; max-width: 500px; width: 90%; border-radius: 2rem; padding: 2rem; border: 1px solid #c9a03d; box-shadow: 0 25px 40px rgba(0,0,0,0.6); transform: scale(0.95); transition: transform 0.2s; text-align: center; .modal.show .modal-content transform: scale(1); .modal-content h3 font-size: 2rem; font-family: 'Cormorant Garamond', serif; margin-bottom: 1rem; color: #f1d997; .modal-content p margin: 0.8rem 0; color: #cfc7b6; .close-modal background: #c9a03d; border: none; padding: 0.5rem 1.5rem; border-radius: 40px; font-weight: bold; margin-top: 1.5rem; cursor: pointer; color: #111; footer text-align: center; margin-top: 5rem; font-size: 0.8rem; color: #6b5e48; border-top: 1px solid #2a241c; padding-top: 2rem;