.main-app .photo-open-button {
    display: block; width: 100%; padding: 0; border: 0;
    background: transparent; color: inherit; cursor: zoom-in;
}
.main-app .photo-open-button:focus-visible { outline: 3px solid #53c5c7; outline-offset: -3px; }
.main-app .photo-author-link { color: #32999c; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.main-app .photo-author-link:hover { color: #53c5c7; }
.main-app .public-profile-header { display: flex; align-items: center; gap: 24px; }
.main-app .public-profile-header .profile-monogram { flex: 0 0 auto; margin: 0; }
.main-app .public-profile-header h1 { margin: 4px 0; overflow-wrap: anywhere; }
.main-app .public-profile-header p { overflow-wrap: anywhere; }
.main-app .public-profile-header > div { min-width: 0; }
.main-app .profile-pagination { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; margin-top: 26px; }
.main-app .profile-pagination > :first-child { justify-self: start; }
.main-app .profile-pagination > :last-child { justify-self: end; }
.main-app .profile-pagination p { text-align: center; margin: 0; }
html.photo-viewer-open { overflow: hidden; }
.main-app .photo-viewer {
    position: fixed; padding: 0; width: min(1100px, calc(100vw - 32px));
    inset: 0; max-width: none; max-height: calc(100dvh - 32px); margin: auto;
    display: none; grid-template-columns: minmax(0, 1fr) 268px; align-items: stretch;
    box-sizing: border-box; overflow: hidden; overflow-anchor: none;
    border: 1px solid rgba(211,237,232,.16); border-radius: 20px;
    background: linear-gradient(135deg, rgba(28,37,38,.98), rgba(16,27,29,.98)); color: #f5f8f7;
    box-shadow: 0 28px 90px rgba(0,0,0,.46), 0 1px 0 rgba(255,255,255,.04) inset;
}
.main-app .photo-viewer[open] { display: grid; }
.main-app .photo-viewer::backdrop { background: rgba(0,9,12,.82); backdrop-filter: blur(8px); }
.main-app .photo-viewer-photo {
    display: flex; min-width: 0; min-height: 0; align-items: center; justify-content: center; padding: 16px;
    background: radial-gradient(ellipse at center, rgba(40,72,71,.3), rgba(7,13,14,.55));
}
.main-app .photo-viewer-photo img {
    display: block; width: auto; height: auto; max-width: 100%; max-height: calc(100dvh - 92px);
    border: 1px solid rgba(225,244,241,.36); border-radius: 12px; object-fit: contain;
    box-shadow: 0 8px 28px rgba(0,0,0,.2);
}
.main-app .photo-viewer-info {
    display: flex; min-width: 0; min-height: 0; overflow: auto; flex-direction: column; padding: 24px 20px 20px;
    border-left: 1px solid rgba(223,243,238,.12);
    background: linear-gradient(160deg, rgba(47,62,62,.52), rgba(19,30,31,.46));
}
.main-app .photo-viewer-topline { display: flex; min-height: 38px; align-items: center; justify-content: space-between; }
.main-app .photo-viewer-kicker,
.main-app .photo-viewer-overline,
.main-app .photo-viewer-label {
    color: rgba(226,241,237,.62); font: 700 10px/1.2 "RajBold", sans-serif; letter-spacing: .15em;
}
.main-app .photo-viewer-kicker { display: inline-flex; align-items: center; gap: 9px; }
.main-app .photo-viewer-kicker > span {
    width: 6px; height: 6px; border-radius: 50%; background: var(--app-cyan, #78e2e3);
    box-shadow: 0 0 0 4px rgba(120,226,227,.1);
}
.main-app .photo-viewer-close {
    display: grid; flex: 0 0 auto; width: 44px; height: 44px; place-items: center;
    border: 1px solid rgba(223,243,238,.2); border-radius: 12px;
    color: #f5f8f7; background: rgba(8,20,22,.58); font-size: 17px; cursor: pointer;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.main-app .photo-viewer-close:hover {
    transform: translateY(-1px); border-color: rgba(120,226,227,.55); background: rgba(67,117,115,.34);
}
.main-app .photo-viewer-close:focus-visible { outline: 2px solid #78e2e3; outline-offset: 3px; }
.main-app .photo-viewer-copy { padding: clamp(30px, 6vh, 62px) 0 28px; }
.main-app .photo-viewer-overline { color: var(--app-cyan, #78e2e3); }
.main-app .photo-viewer-copy h2 {
    margin: 10px 0 16px; color: #f5f8f7; font: 700 clamp(28px,3vw,40px)/1 "RajBold", sans-serif;
    letter-spacing: -.025em; overflow-wrap: anywhere;
}
.main-app .photo-viewer-location {
    display: flex; align-items: flex-start; gap: 9px; margin: 0;
    color: rgba(227,238,235,.72); font-size: 14px; line-height: 1.4; overflow-wrap: anywhere;
}
.main-app .photo-viewer-location i { flex: 0 0 auto; margin-top: 4px; color: var(--app-cyan, #78e2e3); font-size: 12px; }
.main-app .photo-viewer-divider { width: 100%; height: 1px; background: rgba(223,243,238,.14); }
.main-app .photo-viewer-author { display: flex; align-items: center; gap: 12px; padding: 22px 0 16px; }
.main-app .photo-viewer-avatar {
    display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center;
    border: 1px solid rgba(120,226,227,.34); border-radius: 14px; color: #b9eeee;
    background: rgba(120,226,227,.1); font: 700 15px "RajBold", sans-serif;
}
.main-app .photo-viewer-author > div:last-child { display: grid; min-width: 0; gap: 5px; }
.main-app .photo-viewer-author-name { color: #f5f8f7; font: 700 15px "RajBold", sans-serif; overflow-wrap: anywhere; }
.main-app .photo-viewer-author-name .photo-author-link { color: #bceeee; font: 500 13px "RajMed", sans-serif; }
.main-app .photo-viewer-author-name .photo-author-link:hover { color: #78e2e3; }
.main-app .photo-viewer-status:empty { display: none; }
@media (max-width: 480px) {
    .main-app .profile-pagination { grid-template-columns: 1fr 1fr; }
    .main-app .profile-pagination p { grid-column: 1 / -1; grid-row: 1; }
}
@media (max-width: 700px) {
    .main-app .photo-viewer {
        grid-template-columns: minmax(0, 1fr); width: min(540px, calc(100vw - 24px));
        grid-template-rows: max-content max-content; overflow-y: auto; overscroll-behavior: contain;
        max-height: calc(100dvh - 24px); border-radius: 17px;
    }
    .main-app .photo-viewer-photo { min-height: auto; padding: 10px 10px 0; }
    .main-app .photo-viewer-photo img { max-height: 58dvh; border-radius: 11px; }
    .main-app .photo-viewer-info { overflow: visible; padding: 15px 17px 17px; border-top: 1px solid rgba(223,243,238,.12); border-left: 0; }
    .main-app .photo-viewer-topline { min-height: 38px; }
    .main-app .photo-viewer-copy { padding: 17px 0 18px; }
    .main-app .photo-viewer-copy h2 { margin: 8px 0 12px; font-size: 32px; }
    .main-app .photo-viewer-author { padding: 16px 0 13px; }
    .main-app .photo-viewer-status { margin-bottom: 0; }
}
@media (max-width: 380px) {
    .main-app .photo-viewer { width: calc(100vw - 16px); }
    .main-app .photo-viewer-info { padding: 12px 14px 14px; }
    .main-app .photo-viewer-photo { padding: 8px 8px 0; }
}
@media (prefers-reduced-motion: reduce) {
    .main-app .photo-viewer-close { transition: none; }
}
