.portraits-page .portraits-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;list-style:none;margin:0 0 3rem;padding:0}.portraits-page .portraits-grid__item{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:0;border:1px solid var(--border);background:var(--surface);cursor:pointer}.portraits-page .portraits-grid__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.portraits-page .portraits-grid__item:hover img{transform:scale(1.05)}.portraits-page .portraits-caption{position:absolute;left:10px;bottom:10px;z-index:2;background:rgba(0,0,0,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:.8rem;letter-spacing:.02em;padding:.35rem .65rem;border-radius:var(--radius-sm);opacity:0;transition:opacity .25s ease;pointer-events:none}.portraits-page .portraits-grid__item:hover .portraits-caption{opacity:1}.portraits-page .portraits-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:2000}.portraits-page .portraits-lightbox--open{opacity:1;pointer-events:auto}.portraits-page .portraits-lightbox__inner{position:relative;max-width:92vw;max-height:92vh}.portraits-page .portraits-lightbox__img{display:block;max-width:100%;max-height:85vh;border-radius:0;box-shadow:0 22px 60px rgba(0,0,0,.7)}.portraits-page .portraits-lightbox__caption{margin-top:10px;text-align:center;font-size:.95rem;color:var(--text-muted)}.portraits-page .portraits-lightbox__close{position:absolute;top:-44px;right:0;background:rgba(0,0,0,.8);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:999px;width:36px;height:36px;font-size:1.4rem;cursor:pointer;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.portraits-page .portraits-lightbox__close:hover{background:rgba(61,255,2,.15);border-color:rgba(61,255,2,.5);transform:scale(1.1)}@media (max-width:900px){.portraits-page .portraits-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:540px){.portraits-page .portraits-grid{grid-template-columns:1fr}.portraits-page .portraits-caption{opacity:1}}