/* CC-02b Wave 1 - extracted from FRONTEND/02_profiles/photo-gallery.html */
:root {
            --accent-purple: #8b5cf6;
            --accent-pink: #ec4899;
            --accent-amber: #f59e0b;
            --accent-emerald: #10b981;
            --accent-blue: #3b82f6;
        }
        
        /* Enhanced Camera Animation */
        .camera-float {
            animation: cameraFloat 4s ease-in-out infinite;
        }
        
        @keyframes cameraFloat {
            0%, 100% { 
                transform: translateY(0) rotate(0deg);
                box-shadow: 0 0.625rem 2.5rem rgba(59, 130, 246, 0.3);
            }
            25% { 
                transform: translateY(-0.5rem) rotate(2deg);
                box-shadow: 0 0.9375rem 3.125rem rgba(139, 92, 246, 0.4);
            }
            50% { 
                transform: translateY(-0.75rem) rotate(0deg);
                box-shadow: 0 1.25rem 3.75rem rgba(236, 72, 153, 0.4);
            }
            75% { 
                transform: translateY(-0.5rem) rotate(-2deg);
                box-shadow: 0 0.9375rem 3.125rem rgba(245, 158, 11, 0.4);
            }
        }
        
        /* Enhanced Upload Zone */
        .upload-zone {
            background: linear-gradient(135deg, 
                rgba(59, 130, 246, 0.03) 0%, 
                rgba(139, 92, 246, 0.05) 25%,
                rgba(236, 72, 153, 0.03) 50%,
                rgba(245, 158, 11, 0.05) 75%,
                rgba(16, 185, 129, 0.03) 100%);
            border: 0.125rem dashed #e5e7eb;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            overflow: hidden;
        }
        
        .upload-zone::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, 
                transparent, 
                rgba(255, 255, 255, 0.1), 
                transparent);
            transition: left 0.6s ease;
        }
        
        .upload-zone:hover {
            border-color: var(--accent-blue);
            background: linear-gradient(135deg, 
                rgba(59, 130, 246, 0.08) 0%, 
                rgba(139, 92, 246, 0.06) 100%);
            transform: translateY(-0.125rem) scale(1.01);
            box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.1);
        }
        
        .upload-zone:hover::before {
            left: 100%;
        }
        
        .upload-zone.dragover {
            border-color: var(--accent-emerald);
            background: linear-gradient(135deg, 
                rgba(16, 185, 129, 0.15) 0%, 
                rgba(34, 197, 94, 0.1) 100%);
            transform: scale(1.02);
            box-shadow: 0 1.5625rem 3.125rem rgba(16, 185, 129, 0.2);
        }
        
        /* Enhanced Photo Cards */
        .photo-card {
            position: relative;
            overflow: hidden;
            border-radius: 1rem;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            background: linear-gradient(135deg, 
                rgba(255,255,255,0.1) 0%, 
                rgba(255,255,255,0.05) 100%);
            backdrop-filter: blur(0.625rem);
            border: 0.0625rem solid rgba(255, 255, 255, 0.1);
        }
        
        .photo-card:hover {
            transform: translateY(-0.5rem) scale(1.03);
            box-shadow: 0 1.5625rem 3.125rem rgba(0,0,0,0.25);
            border-color: rgba(59, 130, 246, 0.3);
        }
        
        .photo-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, 
                transparent, 
                rgba(255,255,255,0.4), 
                transparent);
            transition: left 0.6s ease;
            z-index: 2;
        }
        
        .photo-card:hover::before {
            left: 100%;
        }
        
        .photo-overlay {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(to bottom, 
                rgba(0,0,0,0) 0%, 
                rgba(0,0,0,0.3) 40%,
                rgba(0,0,0,0.8) 100%);
            opacity: 0;
            transition: opacity 0.4s ease;
            z-index: 1;
        }
        
        .photo-card:hover .photo-overlay {
            opacity: 1;
        }
        
        .photo-actions {
            position: absolute;
            bottom: 1rem;
            left: 1rem;
            right: 1rem;
            transform: translateY(100%);
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 3;
        }
        
        .photo-card:hover .photo-actions {
            transform: translateY(0);
        }
        
        /* Masonry Grid */
        .photo-masonry {
            column-count: 3;
            column-gap: 1rem;
            column-fill: balance;
        }
        
        @media (max-width: 768px) {
            .photo-masonry {
                column-count: 2;
            }
        }
        
        @media (max-width: 640px) {
            .photo-masonry {
                column-count: 1;
            }
        }
        
        .photo-masonry .photo-card {
            break-inside: avoid;
            margin-bottom: 1rem;
            display: inline-block;
            width: 100%;
        }
        
        /* Enhanced Category Cards */
        
        .category-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(135deg, 
                rgba(59, 130, 246, 0.1) 0%, 
                rgba(139, 92, 246, 0.05) 100%);
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        
        .category-card:hover::before {
            opacity: 1;
        }
        
        .category-card.active::before {
            opacity: 1;
        }
        
        /* Enhanced Primary Photo Badge */
        .primary-photo {
            border: 0.1875rem solid var(--accent-amber);
            box-shadow: 0 0 1.875rem rgba(245, 158, 11, 0.4);
            position: relative;
        }
        
        .primary-photo::after {
            content: '';
            position: absolute;
            top: -0.1875rem;
            left: -0.1875rem;
            right: -0.1875rem;
            bottom: -0.1875rem;
            border: 0.125rem solid rgba(245, 158, 11, 0.3);
            border-radius: 1.1875rem;
            animation: primaryPulse 2s ease-in-out infinite;
        }
        
        @keyframes primaryPulse {
            0%, 100% { 
                transform: scale(1);
                opacity: 1;
            }
            50% { 
                transform: scale(1.05);
                opacity: 0.7;
            }
        }
        
        /* Enhanced Modal */
        /* Enhanced Buttons */
        .btn-primary {
            background: linear-gradient(135deg, var(--accent-blue) 0%, var(--accent-purple) 100%);
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }
        
        .btn-primary::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, 
                transparent, 
                rgba(255,255,255,0.3), 
                transparent);
            transition: left 0.6s ease;
        }
        
        .btn-primary:hover {
            transform: translateY(-0.125rem);
            box-shadow: 0 0.9375rem 1.875rem rgba(59, 130, 246, 0.4);
        }
        
        .btn-primary:hover::before {
            left: 100%;
        }
        
        /* Enhanced Progress */
        
        .progress-circle {
            stroke-dasharray: 100 0;
            stroke-dashoffset: 0;
            transition: stroke-dasharray 0.6s ease;
        }
        
        /* Enhanced Tips Section */
        .tips-card {
            background: linear-gradient(135deg, 
                rgba(245, 158, 11, 0.1) 0%, 
                rgba(251, 191, 36, 0.05) 50%,
                rgba(245, 158, 11, 0.1) 100%);
            border: 0.125rem solid rgba(245, 158, 11, 0.2);
            backdrop-filter: blur(0.625rem);
        }
        
        .tip-item {
            transition: all 0.3s ease;
        }
        
        .tip-item:hover {
            transform: translateX(0.25rem);
        }
        
        /* Loading Animation */
        .loading-spinner {
            animation: spin 1s linear infinite;
        }
        
        /* Upload Progress */
        .upload-progress {
            position: absolute;
            bottom: 0;
            left: 0;
            height: 0.25rem;
            background: linear-gradient(90deg, var(--accent-emerald), var(--accent-blue));
            transition: width 0.3s ease;
            border-radius: 0 0 1rem 1rem;
        }
        
        /* Sparkle Animation */
        .sparkle {
            animation: sparkle 2.5s ease-in-out infinite;
        }
        
        @keyframes sparkle {
            0%, 100% { 
                opacity: 0.4; 
                transform: scale(1) rotate(0deg); 
            }
            25% { 
                opacity: 1; 
                transform: scale(1.2) rotate(90deg); 
            }
            50% { 
                opacity: 0.6; 
                transform: scale(1.1) rotate(180deg); 
            }
            75% { 
                opacity: 1; 
                transform: scale(1.3) rotate(270deg); 
            }
        }
        
        /* Verification Badge */
        .verification-badge {
            position: absolute;
            top: 0.75rem;
            right: 0.75rem;
            background: linear-gradient(135deg, var(--accent-emerald), #22c55e);
            color: white;
            padding: 0.25rem 0.5rem;
            border-radius: 0.5rem;
            font-size: 0.75rem;
            font-weight: 600;
            z-index: 4;
            box-shadow: 0 0.25rem 0.9375rem rgba(16, 185, 129, 0.3);
        }
        
        /* Responsive Adjustments */
        @media (max-width: 1024px) {
            .photo-masonry {
                column-count: 2;
            }
        }
        
        @media (max-width: 640px) {
            .photo-masonry {
                column-count: 1;
            }
            
            .camera-float {
                width: 4rem;
                height: 4rem;
            }
        }
