.photo-index { max-width: 1000px; margin: 0 auto; padding: 1rem 1rem 2rem; }
.photo-index h1 { font-size: 1.4rem; margin-bottom: 0.3rem; }
.year-nav { margin-bottom: 1.2rem; font-size: 0.9rem; line-height: 1.8; }
.year-nav a { margin-right: 0.6rem; }
.year-section { margin-bottom: 2.5rem; }
.year-section h2 { font-size: 1.15rem; border-bottom: 1px solid #ccc;
                   padding-bottom: 0.2rem; margin-bottom: 0.8rem; }
.gallery-grid { display: flex; flex-wrap: wrap; gap: 14px; }
.gallery-card { width: 200px; }
.gallery-card a { text-decoration: none; color: inherit; display: block; }
.gallery-card img { width: 200px; height: 130px; object-fit: cover; display: block;
                   border: 1px solid #ddd; }
.gallery-card img:hover { opacity: 0.85; }
.gallery-card .card-title { font-size: 0.82rem; margin-top: 0.3rem;
                            line-height: 1.3; color: #222; }
.gallery-card .card-meta { font-size: 0.75rem; color: #777; margin-top: 0.15rem; }
.gallery-card .card-date { font-size: 0.72rem; color: #999; }
.no-thumb { width: 200px; height: 130px; background: #f0f0f0; display: flex;
            align-items: center; justify-content: center; font-size: 0.8rem;
            color: #999; border: 1px solid #ddd; }
