/* ============================================================ HOME PAGE (index.php) ============================================================ */ html, body { margin: 0; padding: 0; height: 100%; } .home-body { display: flex; flex-direction: column; height: 100vh; overflow: hidden; background: var(--white); } /* Cards grid — scrollable main area */ .home-main { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 0; } .cards-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0; } @media (min-width: 1400px) { .cards-container { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); } } @media (max-width: 768px) { .cards-container { grid-template-columns: repeat(2, 1fr); } } /* Each card = media thumbnail + text below */ .card-link { text-decoration: none; color: inherit; display: block; } .card { display: flex; flex-direction: column; cursor: pointer; border: none; background: var(--white); overflow: hidden; } .card__media { width: 100%; aspect-ratio: 4/3; overflow: hidden; background: #e8e8e8; position: relative; } .card__media img, .card__media video { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; } .card:hover .card__media img, .card:hover .card__media video { transform: scale(1.02); } .card__media--placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #e8e8e8, #d0d0d0); display: flex; align-items: center; justify-content: center; color: #aaa; font-size: 2rem; } .card__media--gradient { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; text-align: center; box-sizing: border-box; } .card__gradient-author { color: #fff; font-size: 0.75rem; opacity: .85; margin-bottom: .25rem; display: block; } .card__gradient-title { color: #fff; font-size: 0.85rem; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } /* Latest-year label */ .home-latest-label { font-style: italic; } .card__info { padding: 0.55rem 0.5rem 0.65rem; font-size: 0.88rem; line-height: 1.35; color: var(--black); } .card__info .authors { margin: 0; font-weight: 400; } .card__info .title { margin: 0; font-weight: 400; color: var(--text-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* Filter info */ .filter-info { background: var(--purple-light); color: var(--purple); padding: 0.4rem 1.5rem; font-size: 0.85rem; display: flex; align-items: center; gap: 1rem; flex-shrink: 0; } .clear-filter { color: var(--purple); text-decoration: none; padding: 0.15rem 0.6rem; background: rgba(149, 87, 181, 0.12); border-radius: 3px; font-size: 0.82rem; } .clear-filter:hover { background: rgba(149, 87, 181, 0.22); } /* Pagination */ .pagination-wrap { display: flex; justify-content: center; align-items: center; gap: 0.5rem; padding: 1rem; border-top: 1px solid var(--border-color); background: var(--white); flex-shrink: 0; } .pagination-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 2rem; height: 2rem; padding: 0 0.5rem; border: 1px solid var(--border-color); border-radius: 3px; color: var(--black); font-size: 0.9rem; text-decoration: none; transition: all 0.15s; } .pagination-btn:hover:not(.disabled) { border-color: var(--purple); color: var(--purple); } .pagination-btn.disabled { opacity: 0.3; cursor: not-allowed; pointer-events: none; } .pagination-info { font-size: 0.9rem; color: var(--text-muted); padding: 0 0.5rem; } .page-current { font-weight: 600; color: var(--black); }