.photo-upload{padding:32px;background:#eee5d7;border:1px solid var(--line);border-radius:12px;margin-bottom:56px}.photo-upload h2{font-size:30px;margin:0 0 8px}.photo-upload>p{color:var(--muted);margin-top:0}.upload-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px}.photo-upload label{display:block;margin-bottom:8px}.photo-upload input,.photo-upload textarea{font:inherit;max-width:100%}.photo-upload input[type=file]{width:100%;padding:20px;background:var(--paper);border:1px dashed var(--wine);border-radius:8px}.photo-upload input::file-selector-button{font:inherit;background:var(--wine);color:var(--paper);border:0;border-radius:4px;padding:10px;margin-right:12px;cursor:pointer}.photo-upload textarea{width:100%;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--paper);resize:vertical}.upload-help,.caption-count{font-size:14px;color:var(--muted)}.caption-count{text-align:right}.photo-upload .button{border:0;font:inherit;cursor:pointer;margin-top:12px}.photo-upload button:disabled{opacity:.6;cursor:wait}.upload-preview{max-height:220px;max-width:100%;object-fit:contain;border-radius:8px;margin-top:16px}.upload-status{margin-bottom:0;min-height:1.6em}.upload-status.error{color:#9c201a}.photo-open{display:block;width:100%;padding:0;border:0;border-radius:8px;overflow:hidden;background:#e9dfd0;cursor:zoom-in}.contest-grid .photo-open img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}.photo-open:hover img{transform:scale(1.035)}.photo-open:focus-visible,.photo-upload :focus-visible,.lightbox button:focus-visible{outline:3px solid var(--wine);outline-offset:4px}.photo-caption{margin:14px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px}.lightbox{border:0;border-radius:12px;padding:56px 20px 20px;background:var(--paper);color:var(--wine);max-width:min(1100px,94vw);max-height:94dvh;width:max-content}.lightbox::backdrop{background:#21120fe0}.lightbox img{display:block;max-width:100%;max-height:72dvh;object-fit:contain;margin:auto}.lightbox p{white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;margin:16px 0 0}.lightbox-close{position:absolute;right:12px;top:8px;width:40px;height:40px;font-size:30px;cursor:pointer;border:0;background:transparent;color:var(--wine)}body.photo-view-open{overflow:hidden}@media(max-width:700px){.photo-upload{padding:20px}.upload-layout{grid-template-columns:1fr;gap:18px}.photo-upload h2{font-size:26px}.photo-upload .button{width:100%}.photo-upload input[type=file]{font-size:14px;padding:14px}.lightbox{padding:54px 12px 16px}}

.upload-preview[hidden]{display:none}


/* Shared, subtle separators across every gallery card and upload field. */
.contest-grid article{display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.contest-grid .vote-row{border-bottom:0;margin-top:auto;flex-wrap:wrap}
.photo-caption{padding-bottom:8px}
.brand-photo-label,.vote-count{font-size:14px;color:var(--muted)}
.photo-upload input[type=file]{border:1px solid var(--line)}
.photo-upload>p{padding-bottom:20px;border-bottom:1px solid var(--line)}
.gallery-heading{padding-top:24px;border-top:1px solid var(--line)}

