/* ============================================================ HOME PAGE (index.php) ============================================================ */ @import url("./variables.css"); .home-body { display: flex; flex-direction: column; height: 100vh; overflow: hidden; background: var(--bg-primary); } /* 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; list-style: none; margin: 0; padding: 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 = list item containing a block link */ .card { display: flex; flex-direction: column; cursor: pointer; border: none; background: var(--bg-primary); overflow: hidden; } .card > a { text-decoration: none; color: inherit; display: flex; flex-direction: column; flex: 1; } /* Media wrapper:
for real images/video,
for placeholders */ .home-body figure { width: 100%; aspect-ratio: 4/3; overflow: hidden; background: var(--bg-tertiary); position: relative; margin: 0; /* reset
default margin */ } .home-body figure img, .home-body figure video { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; } .card:hover figure img, .card:hover figure video { transform: scale(1.02); } .card__media--placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-active)); display: flex; align-items: center; justify-content: center; color: var(--text-tertiary); 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: var(--accent-foreground); font-size: 0.75rem; opacity: .85; margin-bottom: .25rem; display: block; } .card__gradient-title { color: var(--accent-foreground); 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 caption —

directly inside the card link, below the media */ .home-body li > a > p { padding: 0.55rem 0.5rem 0.65rem; font-size: 0.88rem; line-height: 1.35; color: var(--text-primary); margin: 0; font-weight: 400; } /* Empty-state message shown when no cards exist */ .cards-empty { padding: 2rem; color: var(--text-tertiary); font-size: 0.9rem; list-style: none; } /* Filter info */ .filter-info { background: var(--accent-muted); color: var(--accent-secondary); padding: 0.4rem 1.5rem; font-size: 0.85rem; display: flex; align-items: center; gap: 1rem; flex-shrink: 0; } .clear-filter { color: var(--accent-secondary); text-decoration: none; padding: 0.15rem 0.6rem; background: var(--accent-muted); border-radius: 3px; font-size: 0.82rem; } .clear-filter:hover { background: var(--accent-secondary); } /* Pagination */ .pagination-wrap { border-top: 1px solid var(--border-secondary); background: var(--bg-primary); flex-shrink: 0; } .pagination-wrap ul { display: flex; justify-content: center; align-items: center; gap: 0.5rem; padding: 1rem; list-style: none; margin: 0; } .pagination-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; padding: 0 0.6rem; border: 1px solid var(--border-secondary); border-radius: 3px; color: var(--text-primary); font-size: 0.9rem; text-decoration: none; transition: all 0.15s; } .pagination-btn:hover:not(.disabled) { border-color: var(--accent-primary); color: var(--accent-primary); } .pagination-btn.disabled { opacity: 0.3; cursor: not-allowed; pointer-events: none; } .pagination-info { font-size: 0.9rem; color: var(--text-secondary); padding: 0 0.5rem; } .page-current { font-weight: 600; color: var(--text-primary); } /* Suppress card hover scale for users who prefer reduced motion */ @media (prefers-reduced-motion: reduce) { .home-body figure img, .home-body figure video { transition: none; } .card:hover figure img, .card:hover figure video { transform: none; } .card__media--gradient { transition: none; } }