.photo-open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; } .photo-open .photo-image { transition: transform .25s; } .photo-open:hover .photo-image { transform: scale(1.018); } .photo-dialog { width: min(1420px,96vw); height: min(900px,94vh); max-width: none; max-height: none; padding: 0; border: 1px solid #3d3445; border-radius: var(--radius-md); background: #100d14; color: var(--ink); overflow: hidden; box-shadow: 0 35px 120px rgba(0,0,0,.78); } .photo-dialog::backdrop { background: rgba(3,2,5,.9); backdrop-filter: blur(7px); } .photo-close { position: absolute; right: 13px; top: 13px; z-index: 9; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(10,7,13,.74); color: #fff; font-size: 20px; cursor: pointer; } .photo-dialog-content { display: grid; grid-template-columns: minmax(0,1fr) 390px; height: 100%; } .photo-stage { display: grid; place-items: center; min-width: 0; background: #08060a; } .photo-full { display: block; max-width: 100%; max-height: 94vh; object-fit: contain; } .photo-side { display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--line); background: #19151e; } .photo-author { display: flex; align-items: center; gap: 11px; padding: 18px 20px; border-bottom: 1px solid var(--line); } .photo-author .owner { font: 800 16px var(--futura-extra); } .photo-actions { display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-bottom: 1px solid var(--line); } .cheer-button { display: flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid #55445f; border-radius: var(--radius-pill); background: #251d2d; color: #ddd4e5; font: 700 14px "Futura PT",sans-serif; cursor: pointer; } .cheer-button.cheered { border-color: #d8436a; background: #7c203d; color: #fff; } .cheer-button i { color: #ff5c84; } .comment-title { padding: 15px 20px 8px; font: 800 17px var(--futura-extra); } .comment-list { flex: 1; overflow: auto; padding: 0 20px; } .comment { display: flex; gap: 10px; padding: 12px 0; border-bottom: 1px solid #302938; } .comment .avatar-wrap { --avatar-size: 34px; } .comment-body { min-width: 0; } .comment-name { font-weight: 800; } .comment-text { color: #d6cfda; white-space: pre-wrap; overflow-wrap: anywhere; } .comment-date { margin-top: 3px; color: var(--muted); font-size: 11px; } .no-comments { padding: 28px 0; text-align: center; color: var(--muted); } .comment-form { display: flex; gap: 8px; padding: 14px 16px; border-top: 1px solid var(--line); } .comment-form input { min-width: 0; flex: 1; padding: 11px 12px; border: 1px solid #453a50; border-radius: var(--radius-sm); background: #100d14; color: #fff; font: 14px "Futura PT",sans-serif; outline: 0; } .comment-form input:focus { border-color: var(--purple); } .comment-form button { width: 42px; border: 0; border-radius: var(--radius-sm); background: var(--purple-dark); color: #fff; cursor: pointer; } .comment-login { margin: 14px 18px; padding: 11px; border: 1px solid #4a3c54; border-radius: var(--radius-sm); background: #221b29; color: #cfc5d7; text-align: center; } .comment-login button { border: 0; background: none; color: var(--purple); font: 700 14px "Futura PT",sans-serif; cursor: pointer; } @media (max-width:800px) { .photo-dialog { width: 100vw; height: 100dvh; border: 0; border-radius: 0; } .photo-dialog-content { grid-template-columns: 1fr; grid-template-rows: minmax(280px,52dvh) minmax(0,1fr); } .photo-full { max-height: 52dvh; } .photo-side { border-left: 0; border-top: 1px solid var(--line); } .photo-author { padding: 12px 16px; } .photo-actions { padding: 10px 16px; } .photo-close { position: fixed; } .comment-list { padding: 0 16px; } }