.photos-hero{padding:160px 0 60px;text-align:center;position:relative}.photos-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0,rgba(212,160,160,.06) 0,transparent 60%)}.upload-section{padding:0 0 60px}.upload-card{max-width:500px;margin:0 auto;padding:40px 32px;background:var(--black-soft);border:1px solid var(--charcoal);border-radius:4px;text-align:center}.upload-card h3{font-family:var(--font-display);font-size:1.4rem;font-style:italic;color:var(--gold);margin-bottom:8px}.upload-card>p{font-family:var(--font-body);font-size:.95rem;color:var(--text-muted);margin-bottom:28px}.upload-name{margin-bottom:20px}.upload-buttons{gap:12px;margin-bottom:20px}.upload-btn,.upload-buttons{display:flex;justify-content:center}.upload-btn{align-items:center;gap:8px;padding:14px 24px;font-family:var(--font-sans);font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border-radius:2px;cursor:pointer;transition:all .3s var(--ease-smooth)}.upload-btn.camera{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--black);border:none}.upload-btn.camera:hover{background:linear-gradient(135deg,var(--gold-light),var(--gold));transform:translateY(-2px)}.upload-btn.gallery-pick{background:transparent;color:var(--rose);border:1px solid var(--rose)}.upload-btn.gallery-pick:hover{background:var(--rose);color:var(--black);transform:translateY(-2px)}.upload-btn-icon{font-size:1.2rem}.hidden-input{display:none}.upload-preview{margin-top:20px;position:relative;display:inline-block}.upload-preview img{max-width:100%;max-height:300px;border-radius:4px;border:1px solid var(--charcoal)}.upload-preview-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}.upload-status{margin-top:16px;font-family:var(--font-sans);font-size:.8rem;letter-spacing:.08em}.upload-status.success{color:#4ade80}.upload-status.error{color:var(--rose-deep)}.upload-status.uploading{color:var(--gold)}.wall-section{padding:60px 0 100px}.wall-header{display:flex;justify-content:space-between;align-items:center;max-width:var(--container-width);margin:0 auto 32px;padding:0 24px}.wall-header h2{font-family:var(--font-display);font-size:1.6rem;font-style:italic;color:var(--gold)}.wall-count{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.wall-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;max-width:var(--container-width);margin:0 auto;padding:0 24px}.wall-photo{position:relative;aspect-ratio:1;border-radius:4px;overflow:hidden;cursor:pointer;transition:transform .3s var(--ease-smooth)}.wall-photo:hover{transform:scale(1.03)}.wall-photo img{width:100%;height:100%;object-fit:cover}.wall-photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:linear-gradient(transparent,rgba(0,0,0,.7));opacity:0;transition:opacity .3s}.wall-photo:hover .wall-photo-overlay{opacity:1}.wall-photo-name{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.08em;color:var(--cream)}.wall-photo-time{font-family:var(--font-sans);font-size:.6rem;color:var(--text-muted)}.wall-empty{text-align:center;padding:80px 24px;max-width:400px;margin:0 auto}.wall-empty-icon{font-size:3rem;display:block;margin-bottom:16px;opacity:.5}.wall-empty p{font-family:var(--font-body);font-size:1.1rem;color:var(--text-muted);font-style:italic}.wall-refresh{text-align:center;margin-top:24px}.wall-refresh-btn{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);background:transparent;border:1px solid var(--charcoal);padding:8px 20px;border-radius:2px;cursor:pointer;transition:all .3s}.wall-refresh-btn:hover{border-color:var(--gold);color:var(--gold)}@media (max-width:768px){.wall-grid{grid-template-columns:repeat(3,1fr)}.upload-buttons{flex-direction:column;align-items:center}.upload-btn{width:100%;max-width:260px}}@media (max-width:480px){.wall-grid{grid-template-columns:repeat(2,1fr)}}.locked-section{padding:0 0 120px}.locked-card{max-width:450px;margin:0 auto;padding:60px 40px;background:var(--black-soft);border:1px solid var(--charcoal);border-radius:4px;text-align:center}.locked-icon{font-size:3rem;display:block;margin-bottom:20px}.locked-card h2{font-family:var(--font-display);font-size:1.5rem;font-style:italic;color:var(--gold);margin-bottom:12px}.locked-card p{font-family:var(--font-body);font-size:1.1rem;color:var(--text-secondary);line-height:1.7}