.portraits-page{background:#fefdfb;min-height:calc(100vh - 200px);padding:80px 20px}.container{max-width:1400px;margin:0 auto;padding:0 20px}.portraits-title{text-align:center;color:#333;letter-spacing:3px;margin:0 0 80px;font-family:Georgia,serif;font-size:48px;font-weight:700}.portraits-masonry{grid-template-columns:repeat(4,1fr);gap:40px;margin-bottom:60px;display:grid}.portrait-grid-item{cursor:pointer;transition:transform .3s}.portrait-grid-item:hover{transform:translateY(-8px)}.portrait-image-wrapper{aspect-ratio:3/4;background:#f5f5f5;margin-bottom:16px;overflow:hidden}.portrait-grid-image{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.portrait-grid-item:hover .portrait-grid-image{transform:scale(1.02)}.portrait-name{color:#333;text-align:center;letter-spacing:.5px;margin:0;font-family:Georgia,serif;font-size:14px}.modal-backdrop{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;animation:.3s slideUp;display:flex;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-image-wrapper{max-width:100%;max-height:75vh;margin-bottom:24px;overflow:hidden}.modal-image{object-fit:contain;width:100%;height:auto;max-height:75vh;display:block}.modal-caption{color:#fff;text-align:center;letter-spacing:1px;margin:0;font-family:Georgia,serif;font-size:18px}.modal-close{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:40px;transition:transform .2s;display:flex;position:absolute;top:-40px;right:0}.modal-close:hover{transform:scale(1.2)}@media (max-width:1200px){.portraits-masonry{grid-template-columns:repeat(3,1fr);gap:30px}.portraits-title{margin-bottom:60px;font-size:36px}}@media (max-width:768px){.portraits-page{padding:60px 20px}.portraits-masonry{grid-template-columns:repeat(2,1fr);gap:20px}.portraits-title{margin-bottom:40px;font-size:28px}.portrait-name{font-size:12px}.modal-close{font-size:32px;top:-35px}}@media (max-width:480px){.portraits-page{padding:40px 15px}.portraits-masonry{grid-template-columns:1fr;gap:16px}.portraits-title{letter-spacing:2px;margin-bottom:30px;font-size:24px}.portrait-name{font-size:11px}.modal-caption{font-size:14px}.modal-close{font-size:28px;top:-30px}}
