*{margin:0;padding:0;box-sizing:border-box}body{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:beige;min-height:100vh}.app{max-width:1400px;margin:0 auto;padding:20px 20px 45px}.app-header{text-align:center;margin-bottom:15px}.info-banner{background:linear-gradient(135deg,#674f2d,#8b6f47);padding:12px 16px;margin-bottom:15px;border-radius:12px;box-shadow:0 4px 12px #674f2d33}.info-banner-content{display:flex;align-items:flex-start;gap:12px;max-width:1200px;margin:0 auto;position:relative}.info-banner-content svg{flex-shrink:0;margin-top:2px;stroke:#fff}.info-banner-content p{color:#fff;margin:0;font-size:.95rem;line-height:1.5;font-weight:500;flex:1}.info-banner-close{flex-shrink:0;background:transparent;border:none;color:#fff;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;margin-left:8px}.info-banner-close:hover{background:#fff3;transform:scale(1.1)}.info-banner-close:active{transform:scale(.95)}.tab-navigation{display:flex;gap:3px;background:#fff;padding:2px;border-radius:6px 6px 0 0;box-shadow:0 -2px 8px #0000001a;position:fixed;bottom:0;left:0;right:0;z-index:1000;max-width:1200px;margin:0 auto}.tab-button{flex:1;display:flex;flex-direction:column;align-items:center;gap:0;padding:3px 4px;border:1px solid transparent;background:transparent;border-radius:4px;cursor:pointer;transition:all .2s ease;font-family:Montserrat,sans-serif}.tab-button:hover{background:beige}.tab-button.active{background:#674f2d;border-color:#674f2d;border-width:1px}.tab-icon{font-size:14px}.tab-label{font-size:9px;font-weight:600;color:#674f2d;line-height:1.2}.tab-button.active .tab-label{color:#fff}.wedding-title{background:#fffffff2;padding:20px 30px;border-radius:20px;box-shadow:0 10px 30px #0003;display:inline-block}.app-header h1{color:#674f2d;font-size:2.5rem;text-shadow:2px 2px 4px rgba(103,79,45,.2);margin-bottom:8px;font-family:Playfair Display,Georgia,serif;font-weight:700}.wedding-subtitle{color:#674f2d;font-size:1.1rem;margin:8px 0;font-style:italic}.wedding-schedule{margin-top:10px}.wedding-date-header{color:#674f2d;font-size:1rem;margin:0;font-weight:600}.app-main{display:flex;flex-direction:column;gap:30px}.camera-container{background:#fff;border-radius:16px;padding:15px;box-shadow:0 10px 30px #0000004d;display:flex;flex-direction:column;align-items:center;gap:15px}.challenge-banner{width:100%;background:linear-gradient(135deg,#f4e4e1,#e0dae8);border:2px solid #c9a86c;border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:12px;animation:slide-down .4s ease-out;box-shadow:0 4px 12px #c9a86c33}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.challenge-emoji{font-size:2rem;flex-shrink:0}.challenge-text{font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:500;color:#5a5a5a;font-style:italic;flex:1}.camera-preview{position:relative;width:100%;max-width:480px}.camera-video{width:100%;border-radius:12px;background:#000;display:block}.camera-loading,.camera-error{padding:40px;text-align:center;background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000004d}.camera-error{color:#e74c3c}.camera-actions{position:relative;display:flex;align-items:center;justify-content:center;gap:15px;min-height:60px}.countdown-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#0009;border-radius:12px;z-index:10}.countdown-number{font-size:120px;font-weight:700;color:#fff;text-shadow:0 0 20px rgba(255,255,255,.5);animation:countdown-pulse 1s ease-in-out}@keyframes countdown-pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.cancel-button{position:absolute;right:0;padding:10px 20px;border:2px solid #e74c3c;background:#fff;color:#e74c3c;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.cancel-button:hover{background:#e74c3c;color:#fff}.flip-camera-button{min-width:60px;height:45px;border-radius:22px;border:2px solid #674F2D;background:#fff;color:#674f2d;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 8px;gap:2px}.flip-camera-label{font-size:10px;font-weight:600;line-height:1}.flip-camera-button:hover:not(:disabled){background:#674f2d;color:#fff;transform:scale(1.05)}.flip-camera-button:active:not(:disabled){transform:scale(.95)}.flip-camera-button:disabled{opacity:.5;cursor:not-allowed}.burst-mode-toggle{min-width:60px;height:45px;border-radius:22px;border:2px solid #674F2D;background:#fff;color:#674f2d;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 8px;gap:2px}.burst-mode-label{font-size:10px;font-weight:600;line-height:1}.burst-mode-toggle:hover:not(:disabled){background:#674f2d;color:#fff;transform:scale(1.05)}.burst-mode-toggle:active:not(:disabled){transform:scale(.95)}.burst-mode-toggle:disabled{opacity:.5;cursor:not-allowed}.flash-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;border-radius:12px;z-index:20;animation:flash .3s ease-out;pointer-events:none}@keyframes flash{0%{opacity:0}50%{opacity:1}to{opacity:0}}.burst-indicator{position:absolute;top:20px;right:20px;background:#000c;padding:15px 20px;border-radius:12px;z-index:15;display:flex;flex-direction:column;align-items:center;gap:10px}.burst-text{color:#fff;font-size:16px;font-weight:600;text-align:center}.burst-dots{display:flex;gap:8px}.burst-dot{width:12px;height:12px;border-radius:50%;background:#ffffff4d;border:2px solid rgba(255,255,255,.5);transition:all .3s ease}.burst-dot.captured{background:#ff69b4;border-color:#ff69b4;box-shadow:0 0 10px #ff69b480;animation:burst-dot-pulse .3s ease}@keyframes burst-dot-pulse{0%{transform:scale(.8)}50%{transform:scale(1.3)}to{transform:scale(1)}}.pre-capture-indicator{position:absolute;top:20px;left:20px;background:#000000b3;padding:12px 16px;border-radius:10px;z-index:15;display:flex;flex-direction:column;align-items:center;gap:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.indicator-label{color:#fff;font-size:14px;font-weight:600;text-align:center}.photo-dots{display:flex;gap:6px}.photo-dot{width:10px;height:10px;border-radius:50%;background:#fff6;border:2px solid rgba(255,255,255,.6)}.photo-preview-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:25;border-radius:12px;animation:preview-fade-in .2s ease-out}.photo-preview-container{max-width:90%;max-height:90%;display:flex;align-items:center;justify-content:center;padding:20px}.photo-preview-image{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 10px 40px #00000080;animation:preview-image-pop .3s ease-out}@keyframes preview-fade-in{0%{opacity:0}to{opacity:1}}@keyframes preview-image-pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.capture-button{min-width:85px;height:85px;border-radius:42px;border:4px solid #674F2D;background:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:8px 12px}.capture-button-content{display:flex;flex-direction:column;align-items:center;gap:4px}.capture-button-inner{width:40px;height:40px;border-radius:50%;background:#674f2d}.capture-button-label{font-size:12px;font-weight:700;color:#674f2d;line-height:1}.capture-button:hover:not(:disabled){transform:scale(1.05);border-color:#674f2d}.capture-button:hover:not(:disabled) .capture-button-inner{background:#5a432a}.capture-button:active:not(:disabled){transform:scale(.95)}.capture-button:disabled{opacity:.5;cursor:not-allowed}.photo-gallery{background:#fff;border-radius:16px;padding:20px;box-shadow:0 10px 30px #0000004d}.gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.gallery-header-left{display:flex;align-items:center;gap:15px}.photo-gallery h2{margin:0;color:#674f2d}.storage-indicator{display:none;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:500;transition:all .3s ease}.storage-indicator.cloud{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;border:1px solid #90caf9}.storage-indicator.local{background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#f57c00;border:1px solid #ffb74d}.storage-icon{font-size:1rem;line-height:1}.storage-text{font-family:Jost,sans-serif;letter-spacing:.02em}.btn-clear-all{padding:8px 16px;border:2px solid #e74c3c;background:#fff;color:#e74c3c;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s ease}.btn-clear-all:hover{background:#e74c3c;color:#fff}.btn-upload{padding:8px 16px;border:2px solid #674F2D;background:#fff;color:#674f2d;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-upload:hover:not(:disabled){background:#674f2d;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #674f2d4d}.btn-upload:disabled{opacity:.6;cursor:not-allowed}.btn-upload-empty{padding:12px 24px;margin-top:15px;border:2px solid #674F2D;background:#674f2d;color:#fff;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;transition:all .2s ease}.btn-upload-empty:hover:not(:disabled){background:#5a432a;border-color:#5a432a;transform:translateY(-2px);box-shadow:0 4px 12px #674f2d4d}.btn-upload-empty:disabled{opacity:.6;cursor:not-allowed}.gallery-empty{background:#fff;border-radius:16px;padding:40px;text-align:center;box-shadow:0 10px 30px #0000004d;color:#674f2d}.upload-instructions{margin-bottom:30px}.upload-instructions h3{color:#674f2d;font-size:24px;margin-bottom:10px;font-family:Georgia,serif}.upload-instructions>p{color:#8b6f47;font-size:16px;margin-bottom:25px}.instructions-steps{display:flex;flex-direction:column;gap:15px;max-width:500px;margin:0 auto;text-align:left}.instruction-step{display:flex;align-items:center;gap:15px;padding:12px 15px;background:beige;border-radius:8px;border-left:4px solid #674F2D}.step-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#674f2d;color:#fff;border-radius:50%;font-weight:700;font-size:16px;flex-shrink:0}.step-text{color:#674f2d;font-size:15px;line-height:1.4}.upload-info-banner{background:linear-gradient(135deg,beige,#e8dcc4);padding:15px 20px;margin-bottom:20px;border-radius:12px;box-shadow:0 2px 8px #674f2d1a;display:flex;align-items:center;justify-content:space-between;gap:20px}.upload-info-content{display:flex;align-items:center;gap:12px;flex:1}.upload-info-icon{font-size:24px;flex-shrink:0}.upload-info-content p{color:#674f2d;margin:0;font-size:14px;line-height:1.5}.upload-info-content strong{color:#674f2d;font-weight:600}.btn-upload-banner{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border:none;border-radius:10px;padding:10px 24px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 2px 8px #674f2d4d;white-space:nowrap;flex-shrink:0}.btn-upload-banner:hover{background:linear-gradient(135deg,#8b6f47,#674f2d);transform:translateY(-2px);box-shadow:0 4px 12px #674f2d66}.btn-upload-banner:active{transform:translateY(0);box-shadow:0 2px 6px #674f2d4d}.btn-upload-banner:disabled{opacity:.6;cursor:not-allowed;transform:none}.upload-progress-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upload-progress-modal{background:#fff;border-radius:16px;padding:32px;min-width:320px;max-width:90%;box-shadow:0 20px 60px #0000004d;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upload-progress-icon{font-size:48px;margin-bottom:16px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.upload-progress-modal h3{color:#674f2d;font-size:24px;margin-bottom:12px;font-weight:600}.upload-progress-text{color:#8b6f47;font-size:16px;margin-bottom:20px;font-weight:500}.upload-progress-bar-container{width:100%;height:8px;background:beige;border-radius:4px;overflow:hidden;margin-bottom:12px}.upload-progress-bar{height:100%;background:linear-gradient(90deg,#674f2d,#8b6f47,#c9a86c);border-radius:4px;transition:width .3s ease-out;background-size:200% 100%;animation:shimmer 2s linear infinite}.upload-progress-percent{color:#674f2d;font-size:20px;font-weight:700;margin:0}.media-filter{display:flex;gap:8px;justify-content:center;margin:16px 0;padding:0 16px}.filter-btn{padding:10px 20px;border:2px solid #c9a86c;background:#fff;color:#674f2d;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-btn:hover{background:beige;transform:translateY(-2px);box-shadow:0 2px 8px #674f2d26}.filter-btn.active{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border-color:#674f2d;box-shadow:0 2px 8px #674f2d4d}.filter-btn.active:hover{transform:translateY(-2px);box-shadow:0 4px 12px #674f2d66}.no-media-message{text-align:center;padding:60px 20px;color:#8b6f47}.no-media-message p{margin:0 0 8px;font-size:18px;font-weight:600}.no-media-subtitle{font-size:14px;font-weight:400;color:#c9a86c}.gallery-grid{display:flex;flex-direction:column;gap:20px;align-items:center}.photo-card{border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000001a;transition:transform .2s ease;width:100%;max-width:380px}.photo-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #00000026}.photo-card img{width:100%;height:auto;display:block}.photo-card-video{width:100%;height:auto;display:block;max-height:600px;object-fit:contain}@media(max-width:768px){.photo-card-video::-webkit-media-controls{display:none!important}.photo-card-video::-webkit-media-controls-enclosure{display:none!important}.photo-card-video::-webkit-media-controls-panel{display:none!important}.photo-card-video::-webkit-media-controls-start-playback-button{display:none!important}.photo-card-video::-moz-media-controls{display:none!important}.photo-card-video{pointer-events:auto}}.photo-card-image-container{position:relative;overflow:hidden;background:#000}.photo-challenge-tag{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:linear-gradient(135deg,#f4e4e1,#e0dae8);border:1.5px solid #c9a86c;border-radius:8px}.challenge-tag-emoji{font-size:1.1rem;flex-shrink:0}.challenge-tag-text{font-size:.9rem;font-weight:500;color:#5a5a5a;line-height:1.4}.photo-like-overlay{display:flex;align-items:center;gap:8px;margin-bottom:4px}.photo-like-button{background:transparent;border:none;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.photo-like-button:hover{transform:scale(1.1)}.photo-like-button.animate{animation:heart-pop .3s ease}.likes-count-overlay{color:#262626;font-size:15px;font-weight:600}@keyframes heart-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.heart-icon{width:24px;height:24px;transition:all .2s ease}.heart-icon.liked{animation:heart-bounce .4s ease}@keyframes heart-bounce{0%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}to{transform:scale(1)}}.photo-card-info{padding:8px 12px;background:#fff}.photo-card-actions{display:flex;flex-direction:column;gap:8px;padding:10px;background:#f8f9fa}.delete-timer-section{display:flex;align-items:center;gap:8px;width:100%}.delete-timer-section .btn-delete{flex:0 0 auto;min-width:80px}.delete-timer{font-size:.85rem;color:#e74c3c;font-weight:600;white-space:nowrap}.photo-action-buttons{display:flex;flex-direction:column;gap:12px;width:100%}.photo-card-actions button{flex:1;padding:12px 16px;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease;font-size:.95rem}.social-share-section{display:flex;flex-direction:column;gap:8px;width:100%}.social-share-label{font-size:.9rem;font-weight:600;color:#674f2d;text-align:center}.social-share-buttons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.btn-social{width:44px;height:44px;padding:10px;border:none;border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a}.btn-social svg{width:20px;height:20px}.btn-social.facebook{background:#1877f2;color:#fff}.btn-social.facebook:hover{background:#0d65d9;transform:translateY(-2px);box-shadow:0 4px 8px #1877f24d}.btn-social.instagram{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff}.btn-social.instagram:hover{background:linear-gradient(45deg,#e08323,#d5582c,#cc1733,#bc1356,#ac0878);transform:translateY(-2px);box-shadow:0 4px 8px #e1306c66}.btn-social.whatsapp{background:#25d366;color:#fff}.btn-social.whatsapp:hover{background:#1ebd57;transform:translateY(-2px);box-shadow:0 4px 8px #25d3664d}.btn-social.copy{background:#674f2d;color:#fff}.btn-social.copy:hover{background:#5a432a;transform:translateY(-2px);box-shadow:0 4px 8px #674f2d4d}.btn-social.native{background:#e8dcc4;color:#674f2d}.btn-social.native:hover{background:#d4c4a8;transform:translateY(-2px);box-shadow:0 4px 8px #674f2d33}@media(max-width:768px){.photo-card-actions .btn-download{display:none}}.btn-download{background:#674f2d;color:#fff;display:flex;align-items:center;gap:6px;justify-content:center}.btn-download:hover{background:#5a432a}.btn-download:disabled{background:#8b6f47;cursor:not-allowed;opacity:.8}.download-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.btn-delete{background:#e74c3c;color:#fff}.btn-delete:hover{background:#c0392b}.recent-photo-container{background:#fff;border-radius:16px;padding:25px;margin-bottom:20px;box-shadow:0 10px 30px #0000004d;border:3px solid #F5F5DC;animation:slide-up .5s ease-out}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.recent-photo-header{text-align:center;margin-bottom:20px}.recent-photo-header h3{color:#674f2d;font-size:1.8rem;margin:0 0 8px;font-family:Playfair Display,Georgia,serif}.recent-photo-header p{color:#674f2d;font-size:1rem;margin:0}.recent-photo-content{display:flex;flex-direction:column;align-items:center;gap:20px}.recent-photo-content img{max-width:100%;width:auto;max-height:600px;border-radius:12px;box-shadow:0 8px 24px #0003;border:3px solid #F5F5DC}.recent-photo-actions{display:flex;gap:15px;width:100%;max-width:400px}.recent-photo-actions button{flex:1;padding:12px 24px;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;transition:all .2s ease;font-family:Montserrat,sans-serif}.btn-save-recent{background:#27ae60;color:#fff;padding:18px 32px!important;font-size:18px!important;font-weight:700!important}.btn-save-recent:hover{background:#229954;transform:translateY(-2px);box-shadow:0 4px 12px #27ae604d}.btn-share-recent{background:#674f2d;color:#fff}.btn-share-recent:hover{background:#5a432a;transform:translateY(-2px);box-shadow:0 4px 12px #674f2d4d}.btn-delete-recent{background:#e74c3c;color:#fff}.btn-delete-recent:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c4d}.loading-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:8px;vertical-align:middle}.recent-photo-actions button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.recent-photo-actions button:disabled:hover{transform:none!important;box-shadow:none!important}.btn-save-recent:disabled{background:#27ae60}.challenges-container{background:#faf8f5;border-radius:16px;padding:0;box-shadow:0 10px 30px #0000001a;overflow:hidden;min-height:600px}.photo-challenge-spinner{position:relative;width:100%;min-height:600px;padding:60px 20px;display:flex;flex-direction:column;align-items:center;gap:0;background:#faf8f5}.corner-accent{position:absolute;width:40px;height:40px;border-color:#c9a86c;opacity:.6}.corner-tl{top:20px;left:20px;border-top:1px solid;border-left:1px solid}.corner-tr{top:20px;right:20px;border-top:1px solid;border-right:1px solid}.corner-bl{bottom:20px;left:20px;border-bottom:1px solid;border-left:1px solid}.corner-br{bottom:20px;right:20px;border-bottom:1px solid;border-right:1px solid}.gradient-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.15;pointer-events:none}.blob-1{width:300px;height:300px;background:radial-gradient(circle,#e8c4c0,transparent);top:10%;left:-100px}.blob-2{width:250px;height:250px;background:radial-gradient(circle,#d4ddd6,transparent);bottom:10%;right:-80px}.floating-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.particle{position:absolute;width:3px;height:3px;background:#c9a86c;border-radius:50%;opacity:.4;animation:float-up 10s linear infinite}@keyframes float-up{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.4}90%{opacity:.4}to{transform:translateY(-100px) scale(1);opacity:0}}.sound-toggle{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(201,168,108,.3);background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:100}.sound-toggle:hover{transform:scale(1.1);background:#fffc}.challenge-header{text-align:center;z-index:10;margin-bottom:15px}.challenge-header h2{font-family:Cormorant Garamond,serif;font-size:2.5rem;font-weight:300;color:#5a5a5a;margin:0 0 10px;letter-spacing:.05em}.header-line{width:200px;height:1px;background:linear-gradient(90deg,transparent,#c9a86c,transparent);margin:0 auto}.carousel-container{position:relative;width:100%;max-width:400px;height:420px;z-index:10;margin-bottom:15px}.carousel-fade-left,.carousel-fade-right{position:absolute;top:0;width:60px;height:100%;z-index:20;pointer-events:none}.carousel-fade-left{left:0;background:linear-gradient(90deg,#faf8f5,transparent)}.carousel-fade-right{right:0;background:linear-gradient(270deg,#faf8f5,transparent)}.card-track{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.challenge-card{position:absolute;width:100%;max-width:320px;background:#fff;border-radius:16px;border:1px solid rgba(201,168,108,.2);padding:30px 25px;box-shadow:0 8px 24px #00000014;transition:transform .3s ease,opacity .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.challenge-card.active{box-shadow:0 12px 32px #0000001f}.card-accent-bar{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f4e4e1,#e0dae8,#d4ddd6);border-radius:16px 16px 0 0}.card-category{font-family:Jost,sans-serif;font-size:.75rem;font-weight:500;color:#c9a86c;text-transform:uppercase;letter-spacing:.25em;text-align:center;margin-bottom:20px;display:flex;align-items:center;justify-content:center;gap:12px}.category-line{width:30px;height:1px;background:#dfc99f}.card-emoji{font-size:2.5rem;text-align:center;margin-bottom:20px;filter:grayscale(20%)}.card-text{font-family:Cormorant Garamond,serif;font-size:1.4rem;font-style:italic;font-weight:300;color:#5a5a5a;text-align:center;line-height:1.6;margin:0;min-height:80px;display:flex;align-items:center;justify-content:center}.card-number{position:absolute;bottom:15px;right:20px;font-family:Jost,sans-serif;font-size:.7rem;color:#8a8a8a;font-weight:300}.shuffle-section{display:flex;flex-direction:column;align-items:center;gap:12px;z-index:10}.shuffle-hint{display:flex;flex-direction:column;align-items:center;gap:6px;animation:bounce-gentle 2s ease-in-out infinite}@keyframes bounce-gentle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hint-arrow{font-size:1.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.hint-text{font-family:Jost,sans-serif;font-size:.9rem;font-weight:400;color:#c9a86c;letter-spacing:.1em;text-transform:uppercase}.shuffle-button{font-family:Jost,sans-serif;font-size:1.1rem;font-weight:400;text-transform:uppercase;letter-spacing:.3em;color:#5a5a5a;background:linear-gradient(135deg,#fff,#f5ead7);border:1px solid rgba(201,168,108,.4);border-radius:50px;padding:18px 50px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00000014;z-index:10;position:relative;animation:gentle-pulse 2s ease-in-out infinite}@keyframes gentle-pulse{0%,to{transform:scale(1);box-shadow:0 4px 12px #00000014}50%{transform:scale(1.05);box-shadow:0 6px 20px #c9a86c4d}}.shuffle-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0000001f;border-color:#c9a86c99;animation:none}.shuffle-button:active:not(:disabled){transform:translateY(0);animation:none}.shuffle-button:disabled{opacity:.6;cursor:not-allowed;animation:none}.category-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:500px;z-index:10;margin-top:25px}.category-pill{font-family:Jost,sans-serif;font-size:.75rem;font-weight:300;color:#8a8a8a;background:#ffffff80;border:1px solid rgba(201,168,108,.2);border-radius:20px;padding:6px 14px;transition:all .3s ease;opacity:.6}.category-pill.active{color:#c9a86c;border-color:#c9a86c;background:#ffffffe6;opacity:1;box-shadow:0 2px 8px #c9a86c33}.challenge-instructions{width:100%;max-width:500px;background:linear-gradient(135deg,#fffffff2,#fcf5f0e6);border:1px solid rgba(201,168,108,.3);border-radius:20px;padding:30px 25px;box-shadow:0 8px 24px #00000014;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;animation:fadeInUp .5s ease;margin-top:20px;margin-bottom:25px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.instructions-header{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:20px}.instructions-icon{font-size:2.5rem;filter:grayscale(20%)}.instructions-header h3{font-family:Cormorant Garamond,serif;font-size:1.6rem;font-weight:400;color:#4a4a4a;margin:0;text-align:center}.instructions-steps{display:flex;flex-direction:column;gap:20px;margin:25px 0;width:100%}.instruction-step{display:flex;align-items:flex-start;gap:15px;text-align:left}.step-number{flex-shrink:0;width:36px;height:36px;background:linear-gradient(135deg,#c9a86c,#dfc99f);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Jost,sans-serif;font-size:1rem;font-weight:600;box-shadow:0 3px 8px #c9a86c4d}.step-content{flex:1;display:flex;flex-direction:column;gap:6px}.step-title{font-family:Jost,sans-serif;font-size:1rem;font-weight:500;color:#4a4a4a;margin:0;letter-spacing:.02em}.step-text{font-family:Jost,sans-serif;font-size:.9rem;font-weight:300;color:#6a6a6a;line-height:1.5;margin:0}.step-bullets{margin:0;padding:0 0 0 20px;list-style-type:disc}.step-bullets li{margin-bottom:8px}.step-bullets li:last-child{margin-bottom:0}.step-bullets .step-text{margin-bottom:0}.step-bullets strong,.step-text strong{color:#c9a86c;font-weight:600}.instructions-text{font-family:Jost,sans-serif;font-size:.95rem;font-weight:300;color:#6a6a6a;text-align:center;line-height:1.6;margin:0 0 25px}.challenge-actions{display:flex;gap:12px;margin-bottom:20px}.action-button{flex:1;font-family:Jost,sans-serif;font-size:.9rem;font-weight:400;border:none;border-radius:12px;padding:14px 20px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px}.action-button.primary{background:linear-gradient(135deg,#c9a86c,#dfc99f);color:#fff;box-shadow:0 4px 12px #c9a86c4d}.action-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c9a86c66}.action-button.secondary{background:#ffffffe6;color:#6a6a6a;border:1px solid rgba(201,168,108,.3);box-shadow:0 2px 8px #0000000d}.action-button.secondary:hover{background:#fff;border-color:#c9a86c80;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.action-button:active{transform:translateY(0)}.action-icon{font-size:1.1rem}.challenge-tip{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:#fcead780;border-radius:10px;border:1px solid rgba(201,168,108,.2)}.tip-icon{font-size:1rem}.tip-text{font-family:Jost,sans-serif;font-size:.85rem;font-weight:300;color:#7a6a4a;font-style:italic}@media(max-width:768px){.app{padding:15px 15px 45px}.wedding-title{padding:20px 25px}.app-header h1{font-size:2rem}.wedding-subtitle{font-size:1rem}.wedding-date-header{font-size:.9rem}.info-banner{padding:12px 15px;margin-bottom:15px}.info-banner-content{gap:10px}.info-banner-content p{font-size:.85rem}.tab-navigation{padding:2px}.tab-button{padding:3px 4px}.tab-icon{font-size:14px}.tab-label{font-size:9px}.photo-challenge-spinner{padding:40px 15px;min-height:500px;gap:0}.challenge-header{margin-bottom:12px}.challenge-header h2{font-size:2rem;margin:0 0 8px}.carousel-container{max-width:320px;height:380px;margin-bottom:12px}.challenge-card{max-width:280px;padding:25px 20px}.card-text{font-size:1.2rem;min-height:70px}.card-emoji{font-size:2rem}.shuffle-hint{gap:4px}.hint-arrow{font-size:1.2rem}.hint-text{font-size:.75rem}.shuffle-button{font-size:1rem;padding:16px 40px}.category-pills{max-width:100%;gap:8px;margin-top:20px}.category-pill{font-size:.7rem;padding:5px 12px}.challenge-instructions{padding:25px 20px;max-width:100%;margin-top:15px;margin-bottom:20px}.instructions-header h3{font-size:1.4rem}.instructions-steps{gap:16px;margin:20px 0}.instruction-step{gap:12px}.step-number{width:32px;height:32px;font-size:.9rem}.step-title{font-size:.95rem}.step-text{font-size:.85rem}.step-bullets{padding:0 0 0 16px}.step-bullets li{margin-bottom:6px}.instructions-text{font-size:.9rem}.challenge-actions{flex-direction:column;gap:10px}.action-button{font-size:.85rem;padding:12px 16px}.challenge-tip{padding:10px 14px}.tip-text{font-size:.8rem}.corner-accent{width:30px;height:30px}.recent-photo-container{padding:20px 15px;margin-bottom:15px}.recent-photo-header h3{font-size:1.5rem}.recent-photo-header p{font-size:.9rem}.recent-photo-content img{max-height:500px}.recent-photo-actions{flex-direction:column;max-width:100%}.recent-photo-actions button{padding:10px 20px;font-size:14px}.gallery-grid{gap:15px}.photo-card{max-width:100%}.capture-button{min-width:80px;height:80px}.capture-button-inner{width:38px;height:38px}.capture-button-label{font-size:11px}.countdown-number{font-size:80px}.cancel-button{padding:8px 16px;font-size:14px}.gallery-header{flex-direction:column;align-items:flex-start;gap:10px}.gallery-header-left{flex-direction:column;align-items:flex-start;gap:10px;width:100%}.storage-indicator{font-size:.75rem;padding:5px 10px}.upload-info-banner{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}.upload-info-content{justify-content:center}.btn-upload-banner{width:100%;justify-content:center;padding:12px 20px}.btn-clear-all,.btn-upload{width:100%}.upload-instructions h3{font-size:20px}.upload-instructions>p{font-size:14px}.step-text{font-size:13px}.upload-info-content{flex-direction:column;text-align:center}.upload-info-content p{font-size:13px}.burst-indicator{padding:10px 15px;top:15px;right:15px}.burst-text{font-size:14px}.burst-dot{width:10px;height:10px}.media-filter{gap:6px;margin:12px 0}.filter-btn{padding:8px 14px;font-size:.85rem}}.admin-photobooth{background:#fff;border-radius:16px;padding:20px;box-shadow:0 10px 30px #0000004d}.admin-header-clean{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:20px}.admin-header-clean h2{margin:0;color:#674f2d;font-size:28px;font-weight:600}.photographer-credit-inline{display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:#8b6f47;background:beige;padding:6px 12px;border-radius:8px;border:1px solid #E8DCC4}.photographer-main{font-size:13px;color:#8b6f47}.photographer-links{display:flex;align-items:center;gap:3px;font-size:11px;white-space:nowrap}.photographer-links .photographer-link{color:#4a90e2;text-decoration:none;transition:color .2s ease}.photographer-links .photographer-link:hover{color:#357abd;text-decoration:underline}.photographer-links .link-separator{color:#c4b5a0;font-size:10px}.photographer-credit-mobile{display:none}.filter-section{background:#fff;border:2px solid #E8DCC4;border-radius:12px;padding:16px;margin-bottom:30px}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-header-left{display:flex;align-items:center;gap:8px}.filter-header-right{display:flex;align-items:center;gap:12px}.filter-header h3{margin:0;color:#674f2d;font-size:16px;font-weight:600}.filter-toggle-btn{background:none;border:none;color:#8b6f47;font-size:12px;cursor:pointer;padding:4px;display:none;transition:transform .2s ease}.photo-count{color:#8b6f47;font-size:13px;font-weight:600;background:beige;padding:6px 14px;border-radius:12px;display:flex;align-items:center;gap:8px}.btn-shuffle{background:transparent;border:none;font-size:16px;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:all .2s ease}.btn-shuffle:hover{opacity:1;transform:scale(1.1)}.btn-shuffle:active{transform:scale(.95)}.btn-shuffle-prominent{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 2px 8px #674f2d4d;white-space:nowrap}.btn-shuffle-prominent:hover{background:linear-gradient(135deg,#8b6f47,#674f2d);transform:translateY(-2px);box-shadow:0 4px 12px #674f2d66}.btn-shuffle-prominent:active{transform:translateY(0);box-shadow:0 2px 6px #674f2d4d}.shuffle-icon{font-size:16px;display:inline-block;animation:rotate-hint 2s ease-in-out infinite}.shuffle-text{font-family:Montserrat,sans-serif;letter-spacing:.5px}@keyframes rotate-hint{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.filter-chips-container{display:flex;flex-direction:column;gap:12px;overflow:hidden;transition:max-height .3s ease,opacity .3s ease}.filter-chips-container.collapsed,.filter-chips-container.expanded{max-height:none;opacity:1}.filter-chip-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filter-chip-label{color:#8b6f47;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;min-width:40px}.filter-chip{padding:6px 14px;background:beige;border:1.5px solid #E8DCC4;border-radius:20px;color:#674f2d;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-chip:hover{background:#e8dcc4;border-color:#d4c5a7}.filter-chip.active{background:#674f2d;color:#fff;border-color:#674f2d}.photographer-credit-footer{margin-top:40px;padding:20px 0;text-align:center;color:#8b6f47;font-size:13px;border-top:1px solid #E8DCC4}.photographer-text{color:#8b6f47}.photographer-text strong{color:#674f2d;font-weight:600}.photographer-separator{margin:0 10px;color:#e8dcc4}.photographer-link-footer{color:#674f2d;text-decoration:none;font-weight:500;transition:color .2s ease}.photographer-link-footer:hover{color:#8b6f47;text-decoration:underline}@media(max-width:768px){.admin-header-clean{flex-direction:column;align-items:flex-start;gap:12px}.admin-header-clean h2{font-size:24px}.photographer-credit-inline{display:none}.photographer-credit-mobile{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:12px;background:#fff;border:2px solid #E8DCC4;border-radius:12px;margin-bottom:16px}.photographer-credit-mobile .photographer-main{font-size:12px;color:#8b6f47}.photographer-credit-mobile .photographer-links{font-size:10px;flex-direction:row}.photographer-credit-mobile .photographer-link{font-size:10px}.photographer-credit-mobile .link-separator{font-size:9px}.filter-section{padding:12px}.filter-header h3{font-size:14px}.filter-toggle-btn{display:block}.photo-count{font-size:11px;padding:4px 10px}.filter-header-right{flex-direction:row;align-items:center;gap:6px}.filter-header-right .photo-count{order:1}.filter-header-right .btn-slideshow{order:2;padding:6px 12px;font-size:12px}.filter-header-right .btn-shuffle-prominent{order:3}.btn-shuffle-prominent{padding:5px 12px;font-size:12px}.shuffle-icon{font-size:13px}.shuffle-text{font-size:12px}.filter-chip-label{font-size:11px;min-width:35px}.filter-chip{font-size:12px;padding:5px 12px}.filter-chips-container.collapsed{max-height:0;opacity:0;margin-bottom:0}.filter-chips-container.expanded{max-height:500px;opacity:1}.filter-header{margin-bottom:0}.filter-header.expanded{margin-bottom:12px}.photographer-credit-footer{font-size:12px;flex-wrap:wrap}.photographer-separator{margin:0 6px}}.admin-header{text-align:center;margin-bottom:25px;padding-bottom:20px;border-bottom:2px solid #F5F5DC}.admin-header h2{color:#674f2d;margin:0 0 15px;font-size:26px;font-family:Georgia,serif}.photographer-credit-header{background:linear-gradient(135deg,#674f2d,#8b6f47);border-radius:12px;padding:16px 20px;box-shadow:0 4px 12px #674f2d33}.photographer-info-inline{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px}.camera-icon-small{font-size:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.photographer-byline{margin:0;color:#fff;font-size:15px;text-align:center}.photographer-byline strong{font-weight:700;font-size:17px;letter-spacing:.5px}.photographer-links-compact{display:flex;gap:0px;justify-content:center;flex-wrap:wrap}.photographer-link-small{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;text-decoration:none;font-weight:600;font-size:14px;transition:all .3s ease;box-shadow:0 2px 6px #00000026}.photographer-link-small svg{width:16px;height:16px}.photographer-link-small.website{background:#fff;color:#674f2d}.photographer-link-small.website:hover{background:beige;transform:translateY(-2px);box-shadow:0 4px 10px #0003}.photographer-link-small.facebook{background:#1877f2;color:#fff}.photographer-link-small.facebook:hover{background:#0d65d9;transform:translateY(-2px);box-shadow:0 4px 10px #1877f266}.admin-subtitle{color:#8b6f47;margin:0;font-size:14px}.day-tabs{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:25px}.day-tab{display:flex;align-items:center;gap:12px;padding:16px 20px;background:beige;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:left}.day-tab:hover{background:#e8dcc4;transform:translateY(-2px);box-shadow:0 4px 12px #674f2d33}.day-tab.active{background:#fff;border-color:#674f2d;box-shadow:0 4px 12px #674f2d26}.day-icon{font-size:28px;flex-shrink:0}.day-info{flex:1;display:flex;flex-direction:column;gap:4px}.day-name{font-size:18px;font-weight:600;color:#674f2d}.day-date{font-size:13px;color:#8b6f47}.photo-count{background:#674f2d;color:#fff;padding:6px 12px;border-radius:20px;font-size:14px;font-weight:600;min-width:35px;text-align:center}.day-tab.active .photo-count{background:#8b6f47}.folder-selector{display:flex;gap:12px;margin-bottom:25px;justify-content:center}.folder-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 24px;background:#fff;border:2px solid #E8DCC4;border-radius:12px;cursor:pointer;transition:all .3s ease;min-width:120px}.folder-option:hover{border-color:#674f2d;transform:translateY(-2px);box-shadow:0 4px 12px #674f2d26}.folder-option.active{background:#674f2d;border-color:#674f2d;color:#fff}.folder-icon{font-size:32px}.folder-name{font-size:14px;font-weight:600;color:#674f2d}.folder-option.active .folder-name{color:#fff}.admin-upload-section{margin-bottom:25px;text-align:center}.btn-admin-upload{padding:14px 32px;border:2px solid #674F2D;background:#674f2d;color:#fff;border-radius:10px;cursor:pointer;font-weight:600;font-size:16px;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.btn-admin-upload:hover:not(:disabled){background:#5a432a;border-color:#5a432a;transform:translateY(-2px);box-shadow:0 6px 16px #674f2d4d}.btn-admin-upload:disabled{opacity:.6;cursor:not-allowed;transform:none}.admin-empty{text-align:center;padding:60px 20px;background:beige;border-radius:12px;color:#674f2d}.admin-empty p{margin:0 0 8px;font-size:16px}.admin-empty-hint{font-size:14px;color:#8b6f47}.loading-spinner-large{margin:20px auto 0;width:40px;height:40px;border:4px solid #E8DCC4;border-top-color:#674f2d;border-radius:50%;animation:spin .8s linear infinite}.infinite-scroll-trigger{height:100px;display:flex;align-items:center;justify-content:center;margin:20px 0}.loading-more{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px}.loading-more p{color:#8b6f47;font-size:14px;margin:0}.loading-spinner-small{width:30px;height:30px;border:3px solid #E8DCC4;border-top-color:#674f2d;border-radius:50%;animation:spin .8s linear infinite}.all-photos-loaded{text-align:center;padding:30px 20px;margin:20px 0}.all-photos-loaded p{color:#8b6f47;font-size:14px;margin:0;font-weight:500}.photographer-credit{background:linear-gradient(135deg,#674f2d,#8b6f47);border-radius:16px;padding:24px;margin-bottom:25px;box-shadow:0 8px 24px #674f2d4d;border:3px solid #E8DCC4}.photographer-badge{display:flex;align-items:center;gap:20px;margin-bottom:20px}.camera-icon{font-size:48px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.photographer-info{flex:1}.photographer-label{margin:0;font-size:14px;color:#e8dcc4;text-transform:uppercase;letter-spacing:1px;font-weight:600}.photographer-name{margin:4px 0;font-size:32px;color:#fff;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.2)}.photographer-title{margin:0;font-size:16px;color:beige;font-style:italic}.photographer-links{display:flex;gap:0px;flex-wrap:wrap}.photographer-link{display:flex;align-items:center;gap:8px;padding:12px 6px;border-radius:8px;text-decoration:none;font-weight:600;font-size:15px;transition:all .3s ease;box-shadow:0 4px 12px #00000026}.photographer-link svg{width:20px;height:20px}.photographer-link.website{background:#fff;color:#674f2d;flex:1;min-width:160px;justify-content:center}.photographer-link.website:hover{background:beige;transform:translateY(-2px);box-shadow:0 6px 16px #0003}.photographer-link.facebook{background:#1877f2;color:#fff;flex:1;min-width:160px;justify-content:center}.photographer-link.facebook:hover{background:#0d65d9;transform:translateY(-2px);box-shadow:0 6px 16px #1877f266}@media(max-width:768px){.photographer-badge{flex-direction:column;text-align:center;gap:12px}.photographer-name{font-size:28px}.photographer-credit .photographer-links{flex-direction:column}.photographer-credit .photographer-link{width:100%}}.admin-gallery-grid{display:flex;flex-direction:column;gap:20px;align-items:center}@media(max-width:768px){.admin-header h2{font-size:22px}.photographer-info-inline{flex-direction:column;gap:6px}.photographer-byline{font-size:14px}.photographer-byline strong{font-size:16px}.photographer-links-compact{flex-direction:column;width:100%}.photographer-link-small{width:100%;justify-content:center}.admin-subtitle{font-size:13px}.day-tabs{grid-template-columns:1fr;gap:10px}.day-tab{padding:14px 16px}.day-icon{font-size:24px}.day-name{font-size:16px}.day-date{font-size:12px}.photo-count{font-size:13px;padding:5px 10px}.btn-admin-upload{width:100%;padding:12px 24px;font-size:15px}.folder-selector{gap:8px}.folder-option{flex:1;min-width:auto;padding:12px 16px}.folder-icon{font-size:24px}.folder-name{font-size:12px}}@media(max-height:500px)and (orientation:landscape){.camera-container{flex-direction:row;gap:20px;padding:10px}.camera-preview{flex:1;max-height:100%}.camera-actions{flex-direction:column;justify-content:center;min-height:auto;gap:20px;padding:10px}.flip-camera-button,.burst-mode-toggle{margin:0}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.photo-card-skeleton{border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000001a;width:100%;max-width:380px;background:#fff}.skeleton-image{width:100%;height:450px;background:linear-gradient(90deg,beige,#e8dcc4,beige);background-size:1000px 100%;animation:shimmer 2s infinite linear}.skeleton-footer{padding:16px;display:flex;flex-direction:column;gap:10px}.skeleton-text{height:16px;background:linear-gradient(90deg,beige,#e8dcc4,beige);background-size:1000px 100%;animation:shimmer 2s infinite linear;border-radius:4px}.skeleton-text-short{width:40%}.skeleton-text-long{width:70%}.image-loader-container{position:relative;width:100%;height:100%;overflow:hidden;background:beige}.image-loader-img{width:100%;height:auto;display:block;transition:opacity .3s ease,filter .3s ease}.image-loader-img.blur-stage{filter:blur(20px);transform:scale(1.1)}.image-loader-img.thumbnail-stage{filter:blur(0);opacity:.95}.image-loader-img.full-stage{filter:blur(0);opacity:1}.image-loader-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#f5f5dc80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1}.spinner{width:40px;height:40px;border:4px solid rgba(103,79,45,.1);border-top-color:#674f2d;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.image-loader-container.loading{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.image-loader-container.loaded{animation:none}.image-skeleton{width:100%;height:400px;background:linear-gradient(90deg,beige 25%,#e8dcc4,beige 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.photo-processing-section{background:linear-gradient(135deg,beige,#e8dcc4);border:2px solid #674F2D;border-radius:12px;padding:20px;margin-bottom:25px;text-align:center}.btn-process-photos{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border:none;border-radius:8px;padding:14px 28px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #674f2d4d;display:inline-flex;align-items:center;gap:8px}.btn-process-photos:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #674f2d66;background:linear-gradient(135deg,#8b6f47,#674f2d)}.btn-process-photos:disabled{opacity:.6;cursor:not-allowed;animation:pulse 1.5s ease-in-out infinite}.processing-progress{margin-top:15px;padding:12px;background:#fff;border-radius:8px;border:2px solid #674F2D}.progress-text{color:#674f2d;font-weight:600;font-size:14px}.processing-results{margin-top:15px;padding:15px;background:#fff;border-radius:8px;border:2px solid #4CAF50;text-align:left}.processing-results h4{color:#4caf50;margin:0 0 10px;text-align:center}.result-item{margin:8px 0;padding:8px;background:beige;border-radius:6px;font-size:14px}.result-item strong{color:#674f2d}.result-item .error{color:#d32f2f;font-weight:600}.progress-detail{margin-top:8px;color:#8b6f47;font-size:13px;font-style:italic}.file-name{font-family:monospace;font-weight:600;color:#674f2d}.progress-bar-container{width:100%;height:8px;background:#e8dcc4;border-radius:4px;overflow:hidden;margin-top:12px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#674f2d,#8b6f47);transition:width .3s ease;border-radius:4px}.btn-dismiss-results{margin-top:12px;background:#674f2d;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-dismiss-results:hover{background:#8b6f47;transform:translateY(-1px)}.lightbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:3000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease;-webkit-tap-highlight-color:transparent}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:60px 80px 100px}.lightbox-close{position:absolute;top:20px;right:20px;width:48px;height:48px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3002;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-close:hover{background:#fff3;border-color:#ffffff80;transform:scale(1.1)}.lightbox-close:active{transform:scale(.95)}.lightbox-close svg{width:24px;height:24px;stroke:#fff}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3002;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-nav:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-50%) scale(1.1)}.lightbox-nav:active{transform:translateY(-50%) scale(.95)}.lightbox-nav svg{width:24px;height:24px;stroke:#fff}.lightbox-nav-prev{left:20px}.lightbox-nav-next{right:20px}.lightbox-media{flex:1;display:flex;align-items:center;justify-content:center;width:100%;max-width:1400px;max-height:calc(100vh - 180px);animation:scaleIn .3s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.lightbox-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #00000080;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox-video{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:8px;box-shadow:0 20px 60px #00000080}.lightbox-info{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:40px 20px 20px;z-index:3001}.lightbox-metadata{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.lightbox-counter{color:#fff;font-size:14px;font-weight:600;background:#ffffff1a;padding:8px 16px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.lightbox-challenge{display:flex;align-items:center;gap:8px;background:#ffffff1a;padding:8px 16px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);flex:1;justify-content:center}.lightbox-challenge-emoji{font-size:18px}.lightbox-challenge-text{color:#fff;font-size:14px;font-weight:500;font-style:italic}.lightbox-likes{display:flex;align-items:center;gap:8px;color:#fff;font-size:14px;font-weight:600;background:#ffffff1a;padding:8px 16px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.lightbox-heart-icon{width:20px;height:20px}@media(max-width:768px){.lightbox-container{padding:80px 20px 120px}.lightbox-close{top:10px;right:10px;width:44px;height:44px}.lightbox-nav{width:44px;height:44px}.lightbox-nav-prev{left:10px}.lightbox-nav-next{right:10px}.lightbox-media{max-height:calc(100vh - 200px)}.lightbox-metadata{flex-direction:column;align-items:stretch;gap:12px}.lightbox-counter,.lightbox-challenge,.lightbox-likes{justify-content:center}.lightbox-video::-webkit-media-controls{display:none!important}.lightbox-video::-webkit-media-controls-enclosure{display:none!important}.lightbox-video::-webkit-media-controls-panel{display:none!important}.lightbox-video::-webkit-media-controls-start-playback-button{display:none!important}.lightbox-video::-moz-media-controls{display:none!important}}.photo-card-image-container{cursor:pointer;transition:transform .2s ease}.photo-card-image-container:hover{transform:scale(1.02)}.photo-card-image-container:active{transform:scale(.98)}.slideshow-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000fa;z-index:4000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}.slideshow-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.slideshow-container.fade .slideshow-media{animation:slideshow-fade .5s ease}.slideshow-container.slide .slideshow-media{animation:slideshow-slide .5s ease}@keyframes slideshow-fade{0%{opacity:0}to{opacity:1}}@keyframes slideshow-slide{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.slideshow-close{position:absolute;top:20px;right:20px;width:48px;height:48px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:4002;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.slideshow-close:hover{background:#fff3;border-color:#ffffff80;transform:scale(1.1)}.slideshow-close:active{transform:scale(.95)}.slideshow-close svg{width:24px;height:24px;stroke:#fff;stroke-width:2}.slideshow-media{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:80px 100px 100px}.slideshow-image,.slideshow-video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #000000b3}.slideshow-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:4002;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.slideshow-nav:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-50%) scale(1.1)}.slideshow-nav:active{transform:translateY(-50%) scale(.95)}.slideshow-nav svg{width:28px;height:28px;stroke:#fff;stroke-width:2}.slideshow-nav-prev{left:30px}.slideshow-nav-next{right:30px}.slideshow-controls{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:20px;background:#000c;padding:16px 24px;border-radius:50px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);z-index:4001;box-shadow:0 8px 32px #00000080}.slideshow-control-btn{width:40px;height:40px;background:#ffffff1a;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#fff}.slideshow-control-btn:hover{background:#fff3;transform:scale(1.1)}.slideshow-control-btn:active{transform:scale(.95)}.slideshow-control-btn svg{width:20px;height:20px}.slideshow-speed-controls{display:flex;align-items:center;gap:10px;padding:0 12px;border-left:1px solid rgba(255,255,255,.2);border-right:1px solid rgba(255,255,255,.2)}.slideshow-label{color:#ffffffb3;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.slideshow-speed-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;padding:6px 12px;border-radius:16px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.slideshow-speed-btn:hover{background:#fff3;color:#fff;border-color:#ffffff4d}.slideshow-speed-btn.active{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border-color:transparent;box-shadow:0 2px 8px #674f2d66}.slideshow-counter{color:#fff;font-size:14px;font-weight:600;min-width:70px;text-align:center;padding:0 8px}.slideshow-progress-bar{position:absolute;bottom:0;left:0;right:0;height:4px;background:#ffffff1a;z-index:4000;overflow:hidden}.slideshow-progress-fill{height:100%;background:linear-gradient(90deg,#674f2d,#8b6f47);width:0;animation:slideshow-progress 3s linear}@keyframes slideshow-progress{0%{width:0%}to{width:100%}}.btn-slideshow{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease;box-shadow:0 2px 8px #674f2d4d;white-space:nowrap}.btn-slideshow:hover{background:linear-gradient(135deg,#8b6f47,#674f2d);transform:translateY(-1px);box-shadow:0 4px 12px #674f2d66}.btn-slideshow:active{transform:translateY(0);box-shadow:0 2px 6px #674f2d4d}.btn-upload-tile{background:linear-gradient(135deg,#8b6f47,#a0865f);color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease;box-shadow:0 2px 8px #8b6f474d;white-space:nowrap}.btn-upload-tile:hover:not(:disabled){background:linear-gradient(135deg,#a0865f,#8b6f47);transform:translateY(-1px);box-shadow:0 4px 12px #8b6f4766}.btn-upload-tile:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px #8b6f474d}.btn-upload-tile:disabled{opacity:.6;cursor:not-allowed}.btn-migrate{background:linear-gradient(135deg,#8b6f47,#a0865f);color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease;box-shadow:0 2px 8px #8b6f474d;white-space:nowrap}.btn-migrate:hover:not(:disabled){background:linear-gradient(135deg,#a0865f,#8b6f47);transform:translateY(-1px);box-shadow:0 4px 12px #8b6f4766}.btn-migrate:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px #8b6f474d}.btn-migrate:disabled{opacity:.6;cursor:not-allowed}.gallery-header-actions{display:flex;align-items:center;gap:10px}@media(max-width:768px){.slideshow-close{top:10px;right:10px;width:44px;height:44px}.slideshow-media{padding:60px 15px 80px}.slideshow-nav{width:44px;height:44px}.slideshow-nav svg{width:24px;height:24px}.slideshow-nav-prev{left:10px}.slideshow-nav-next{right:10px}.slideshow-controls{bottom:15px;padding:12px 16px;gap:12px;flex-wrap:wrap;max-width:calc(100% - 30px);justify-content:center}.slideshow-speed-controls{padding:0 8px;gap:6px}.slideshow-label{font-size:11px}.slideshow-speed-btn{padding:5px 10px;font-size:11px}.slideshow-counter{font-size:13px;min-width:60px}.slideshow-control-btn{width:36px;height:36px}.slideshow-control-btn svg{width:18px;height:18px}.btn-slideshow{padding:7px 14px;font-size:13px}.slideshow-video::-webkit-media-controls{display:none!important}.slideshow-video::-webkit-media-controls-enclosure{display:none!important}.slideshow-video::-webkit-media-controls-panel{display:none!important}.slideshow-video::-webkit-media-controls-start-playback-button{display:none!important}.slideshow-video::-moz-media-controls{display:none!important}}.slideshow-overlay:fullscreen{background:#000}.slideshow-overlay:fullscreen .slideshow-media{padding:40px}.slideshow-overlay:fullscreen .slideshow-controls{bottom:40px}.photo-tile-view{width:100%;max-width:1400px;margin:0 auto;padding:0}.tile-header{display:flex;justify-content:space-between;align-items:center;padding:20px 0 15px;margin-bottom:15px;border-bottom:2px solid #E8DCC4}.tile-header-left{display:flex;align-items:center;gap:15px}.tile-header-left h2{color:#674f2d;font-size:1.8rem;font-weight:600;margin:0}.tile-count{background:#f0e6d2;color:#674f2d;padding:6px 14px;border-radius:20px;font-size:.9rem;font-weight:500}.tile-header-right{display:flex;gap:10px;align-items:center}.tile-view-controls{display:flex;gap:5px;background:#fff;border:2px solid #E8DCC4;border-radius:20px;padding:2px}.tile-view-btn{background:transparent;border:none;color:#674f2d;padding:6px 12px;border-radius:18px;font-size:1.2rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:36px}.tile-view-btn:hover{background:#f0e6d2}.tile-view-btn.active{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;box-shadow:0 2px 8px #674f2d4d}.tile-sort-controls{display:flex;gap:5px;background:#fff;border:2px solid #E8DCC4;border-radius:20px;padding:2px}.tile-sort-btn{background:transparent;border:none;color:#674f2d;padding:6px 12px;border-radius:18px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.tile-sort-btn:hover{background:#f0e6d2}.tile-sort-btn.active{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;box-shadow:0 2px 8px #674f2d4d}.tile-filter{display:flex;gap:8px;margin-bottom:20px;padding:10px;background:#fff;border-radius:16px;flex-wrap:wrap;box-shadow:0 2px 8px #0000000d;align-items:center;justify-content:center}.tile-filter-btn{background:beige;border:2px solid #E8DCC4;color:#674f2d;padding:8px 16px;border-radius:18px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;display:flex;align-items:center;gap:4px}.tile-filter-btn:hover{background:#f0e6d2;border-color:#8b6f47;transform:translateY(-1px)}.tile-filter-btn.active{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border-color:#674f2d;box-shadow:0 4px 12px #674f2d4d}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:200px;grid-auto-flow:dense;gap:8px;padding:0;margin-bottom:30px;will-change:scroll-position;contain:layout style paint}.tile{position:relative;overflow:hidden;border-radius:8px;cursor:pointer;background:#f5f5f5;transition:all .3s ease;contain:layout style paint;content-visibility:auto;will-change:transform}.tile:hover{transform:scale(1.02);box-shadow:0 8px 24px #0003;z-index:10}.tile-small{grid-row:span 1;grid-column:span 1}.tile-medium{grid-row:span 1;grid-column:span 2}.tile-large{grid-row:span 2;grid-column:span 2}.tile-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.tile:hover .tile-image{transform:scale(1.05)}.tile-video-container{position:relative;width:100%;height:100%;cursor:pointer}.tile-video-thumbnail{width:100%;height:100%;object-fit:cover;display:block}.tile-video-element{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.tile-video-placeholder{position:relative;width:100%;height:100%;background:beige;display:flex;align-items:center;justify-content:center;overflow:hidden}.tile-video-placeholder video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1;background:transparent;opacity:1}.tile-video-placeholder video[poster],.tile-video-placeholder video:not([poster]){background:#0003}.video-placeholder-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;font-size:3rem;color:#fffffff2;text-shadow:0 2px 12px rgba(0,0,0,.6);pointer-events:none;background:transparent;width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:.5}.tile-animated-video{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;transition:transform .3s ease}.tile-video-badge{position:absolute;top:10px;right:10px;background:#000000b3;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;pointer-events:none;z-index:5;box-shadow:0 2px 8px #0000004d}.tile-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:15px;opacity:0;transition:opacity .3s ease}.tile:hover .tile-overlay{opacity:1}.tile-info{display:flex;gap:8px;flex-wrap:wrap}.tile-date,.tile-folder{background:#ffffffe6;color:#674f2d;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.tile-actions{position:absolute;top:10px;left:10px;display:flex;gap:8px;opacity:0;transition:opacity .3s ease;z-index:10;pointer-events:auto}.tile:hover .tile-actions{opacity:1}.tile-date-btn{background:#8b6f47f2;color:#fff;border:none;border-radius:50%;width:36px;height:36px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 8px #0000004d}.tile-date-btn:hover{background:#a0865ff2;transform:scale(1.1)}.tile-date-btn:active{transform:scale(.95)}.tile-delete-btn{background:#b91c1cf2;color:#fff;border:none;border-radius:50%;width:36px;height:36px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 8px #0000004d}.tile-delete-btn:hover{background:#dc2626f2;transform:scale(1.1)}.tile-delete-btn:active{transform:scale(.95)}.tile-date-picker{position:absolute;top:55px;left:10px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0003;overflow:hidden;z-index:100;animation:slideDown .2s ease-out;min-width:150px;pointer-events:auto}.tile-date-option{width:100%;padding:12px 16px;border:none;background:#fff;color:#674f2d;font-size:.9rem;font-weight:600;text-align:left;cursor:pointer;transition:all .2s ease;border-bottom:1px solid #f0f0f0}.tile-date-option:last-child{border-bottom:none}.tile-date-option:hover{background:linear-gradient(135deg,#8b6f47,#a0865f);color:#fff}.tile-date-option:active{transform:scale(.98)}.tile-picker-active{z-index:50}.tile-empty{text-align:center;padding:60px 20px;color:#8b6f47}.tile-empty p{font-size:1.1rem;margin-bottom:10px}.tile-empty-hint{font-size:.95rem;color:#a0926d}.tile-skeleton{position:relative;overflow:hidden;border-radius:8px;background:#f0f0f0}.tile-skeleton .skeleton-image{width:100%;height:100%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@media(max-width:768px){.tile-header{flex-direction:column;align-items:flex-start;gap:12px}.tile-header-left{width:100%;justify-content:space-between}.tile-header-left h2{font-size:1.4rem}.tile-count{font-size:.8rem;padding:5px 12px}.tile-header-right{width:100%;flex-wrap:wrap;gap:8px;justify-content:flex-start}.tile-sort-controls{gap:2px;padding:2px;flex:1 1 auto}.tile-sort-btn{padding:5px 8px;font-size:.7rem;white-space:nowrap}.tile-view-controls{gap:3px}.btn-slideshow,.btn-upload-tile{padding:6px 12px;font-size:.75rem}.tile-filter{gap:6px;flex-wrap:wrap;padding:8px;justify-content:flex-start}.tile-filter-btn{padding:6px 12px;font-size:.75rem;flex:0 0 auto}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-auto-rows:100px;grid-auto-flow:dense;gap:3px}.tile-small,.tile-medium{grid-row:span 1;grid-column:span 1}.tile-large{grid-row:span 2;grid-column:span 2}.tile-actions{top:6px;left:6px;gap:6px;opacity:1}.tile-date-btn,.tile-delete-btn{width:28px;height:28px;font-size:1rem}.tile-info{padding:6px 8px;gap:4px}.tile-challenge{font-size:.65rem;padding:3px 8px}.tile-date{font-size:.7rem}.tile-folder{font-size:.65rem;padding:3px 8px}}@media(min-width:769px)and (max-width:1024px){.tile-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-auto-rows:180px}}@media(min-width:1025px){.tile-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:220px}}.photo-list{display:flex;flex-direction:column;gap:20px;padding:0;margin-bottom:30px;max-width:900px;margin-left:auto;margin-right:auto;will-change:scroll-position;contain:layout style paint}.photo-list-item{position:relative;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;contain:layout style paint;content-visibility:auto}.photo-list-item:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.photo-list-item .tile-image{width:100%;height:auto;max-height:600px;object-fit:contain;display:block;background:#f5f5f5}.photo-list-item .tile-video-container{position:relative;width:100%}.photo-list-item .tile-video-thumbnail,.photo-list-item .tile-video-element{width:100%;height:auto;max-height:600px;object-fit:contain;display:block;background:#000}.photo-list-item .tile-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%);padding:20px;display:flex;justify-content:space-between;align-items:flex-end}.photo-list-item .tile-info{flex:1;display:flex;flex-direction:column;gap:8px}.photo-list-item .tile-actions{position:static;opacity:1;display:flex;gap:10px}.photo-list-item .tile-date-picker{position:absolute;top:60px;left:20px}@media(max-width:768px){.photo-list{gap:15px;max-width:100%}.photo-list-item .tile-image,.photo-list-item .tile-video-thumbnail,.photo-list-item .tile-video-element{max-height:500px}.photo-list-item .tile-overlay{padding:15px}}.date-picker-section{position:relative;margin-bottom:10px}.btn-change-date{background:linear-gradient(135deg,#8b6f47,#a0865f);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .3s ease;box-shadow:0 2px 8px #8b6f474d;width:100%;justify-content:center}.btn-change-date:hover{background:linear-gradient(135deg,#9a7e56,#af9570);transform:translateY(-2px);box-shadow:0 4px 12px #8b6f4766}.btn-change-date:active{transform:translateY(0)}.date-picker-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;overflow:hidden;z-index:1000;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.date-option{width:100%;padding:12px 16px;border:none;background:#fff;text-align:left;cursor:pointer;font-size:14px;font-weight:500;color:#674f2d;transition:background .2s ease;border-bottom:1px solid #f0f0f0}.date-option:last-child{border-bottom:none}.date-option:hover{background:linear-gradient(90deg,#fff9f0,#ffefd5);color:#8b6f47}.date-option:active{background:#ffefd5}@media(max-width:768px){.date-picker-section{margin-bottom:8px}.btn-change-date{font-size:13px;padding:7px 14px}.date-option{padding:10px 14px;font-size:13px}}.header-actions{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.btn-nikah{background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;border:none;padding:12px 24px;border-radius:25px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #674f2d4d}.btn-nikah:hover{transform:translateY(-2px);box-shadow:0 6px 16px #674f2d66}.btn-nikah.active{background:linear-gradient(135deg,#8b6f47,#a89060);box-shadow:0 2px 8px #674f2d4d}.btn-back-to-photos{background:#fff;color:#674f2d;border:2px solid #674F2D;padding:10px 20px;border-radius:20px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-back-to-photos:hover{background:#674f2d;color:#fff;transform:translateY(-1px)}.nikah-gallery{max-width:1400px;margin:0 auto;padding:20px}.nikah-header{text-align:center;margin-bottom:24px;padding:20px;background:#fff;border-radius:16px;box-shadow:0 4px 12px #0000001a}.nikah-header h2{color:#674f2d;font-size:2rem;margin-bottom:8px;font-weight:700}.nikah-subtitle{color:#666;font-size:1.1rem;margin-bottom:16px}.nikah-open-link{display:inline-block;background:linear-gradient(135deg,#674f2d,#8b6f47);color:#fff;padding:10px 20px;border-radius:20px;text-decoration:none;font-weight:600;font-size:.95rem;transition:all .3s ease}.nikah-open-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #674f2d4d}.nikah-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#674f2d}.nikah-loading p{margin-top:16px;font-size:1.1rem;font-weight:500}.nikah-embed-container{position:relative;width:100%;height:calc(100vh - 280px);min-height:600px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0000001a}.nikah-iframe{width:100%;height:100%;border:none;display:block}@media(max-width:768px){.nikah-header h2{font-size:1.5rem}.nikah-subtitle{font-size:1rem}.nikah-embed-container{height:calc(100vh - 320px);min-height:500px}.header-actions{flex-direction:column;gap:8px}.btn-nikah,.btn-back-to-photos{width:100%;max-width:280px}}.scroll-to-top-btn{position:fixed;bottom:30px;right:30px;width:50px;height:50px;background:#8b7355;color:#fff;border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 12px #0000004d;z-index:1000;transition:all .3s ease;display:flex;align-items:center;justify-content:center;opacity:.9}.scroll-to-top-btn:hover{background:#6d5b45;transform:translateY(-3px);box-shadow:0 6px 16px #0006;opacity:1}.scroll-to-top-btn:active{transform:translateY(-1px)}@media(max-width:768px){.scroll-to-top-btn{bottom:20px;right:20px;width:45px;height:45px;font-size:1.3rem}}
