.photos-header{margin-bottom:2rem}.photos-header h1{font-family:Gochi Hand,cursive;font-size:2.5rem;margin-bottom:.5rem;color:var(--color-text)}.photos-intro{font-size:1.1rem;color:var(--color-text);opacity:.9;max-width:700px;margin-bottom:1.5rem}.photos-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filter-btn{background:transparent;border:1px solid var(--color-text);color:var(--color-text);padding:.35rem .9rem;border-radius:9999px;font-family:Lexend,sans-serif;font-size:.9rem;cursor:pointer;transition:all .2s ease}.filter-btn:hover{background:var(--color-text);color:var(--color-page)}.filter-btn.active{background:var(--color-text);color:var(--color-page);border-color:var(--color-text);font-weight:500}.photos-masonry{column-count:1;column-gap:.5rem;margin-bottom:3rem}.photo-item{break-inside:avoid;margin-bottom:.5rem;display:block;width:100%;padding:0;border:none;background:transparent;border-radius:6px;overflow:hidden;cursor:pointer;text-align:left;transition:transform .2s ease,opacity .3s ease,filter .2s ease}.photo-item.hidden{display:none}.photo-item:hover,.photo-item:focus-visible{transform:scale(1.015);outline:none}.photo-item:focus-visible{box-shadow:0 0 0 3px var(--color-accent)}.photo-item__img{width:100%;height:auto;display:block;border-radius:6px;transition:opacity .2s ease}.lightbox{position:fixed;inset:0;z-index:10000;background:#0a0a0cf2;backdrop-filter:blur(12px);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:1rem;border:none;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.lightbox.active{opacity:1;visibility:visible}.lightbox__top{width:100%;max-width:1200px;display:flex;justify-content:space-between;align-items:center;color:#f5f5f5;padding:.5rem;z-index:20}.lightbox__counter{font-size:.9rem;opacity:.8;font-variant-numeric:tabular-nums}.lightbox__close{background:#ffffff26;border:none;color:#fff;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;transition:background .2s ease,transform .2s ease}.lightbox__close:hover{background:#ffffff4d;transform:scale(1.05)}.lightbox__stage{position:relative;width:100%;max-width:1200px;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.lightbox__img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:6px;box-shadow:0 15px 40px #0009;user-select:none;transition:opacity .15s ease}.lightbox__overlay{position:absolute;bottom:.6rem;right:.6rem;left:auto;max-width:min(80%,340px);padding:.35rem .65rem;background:#000000bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;display:flex;flex-direction:column;align-items:flex-end;text-align:right;pointer-events:none;border-radius:4px;border:1px solid rgba(255,255,255,.12);transition:opacity .2s ease;box-shadow:0 4px 12px #0006}.lightbox__overlay:empty{display:none}.lightbox__title{font-size:.78rem;font-weight:500;margin:0 0 .1rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);line-height:1.2}.lightbox__caption{font-size:.72rem;color:#ffffffd9;margin:0 0 .1rem;text-shadow:0 1px 2px rgba(0,0,0,.6);line-height:1.2}.lightbox__camera{font-size:.68rem;color:#ffffffb3;margin:0;text-shadow:0 1px 2px rgba(0,0,0,.6);line-height:1.2}.lightbox__date{font-size:.62rem;color:#ffffff8c;margin:.1rem 0 0;text-shadow:0 1px 2px rgba(0,0,0,.6);line-height:1.2;letter-spacing:.02em}.lightbox__btn{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;border:1px solid rgba(255,255,255,.2);color:#fff;width:2.8rem;height:2.8rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,transform .2s ease;z-index:15}.lightbox__btn:hover{background:#ffffff40}.lightbox__btn--prev{left:.5rem}.lightbox__btn--next{right:.5rem}@media(min-width:768px)and (orientation:landscape){.photos-masonry{column-count:2;column-gap:.6rem}.photo-item{margin-bottom:.6rem}.lightbox__btn--prev{left:1.5rem}.lightbox__btn--next{right:1.5rem}.lightbox__img{max-height:86vh}.lightbox__overlay{bottom:1rem;right:1rem;padding:.4rem .75rem}}
