.welcome-screen-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:pointer;padding:20px;touch-action:manipulation;overflow:hidden}.welcome-background-shapes{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.shape{position:absolute;border-radius:50%;background:var(--accent-primary);opacity:.1;filter:blur(60px)}.shape-1{width:300px;height:300px;top:-100px;left:-100px}.shape-2{width:400px;height:400px;bottom:-150px;right:-150px;background:var(--accent-soft)}.shape-3{width:250px;height:250px;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--accent-primary)}.welcome-screen-container{text-align:center;color:var(--text-primary);padding:20px;max-width:100%;width:100%;position:relative;z-index:1}.welcome-logo-wrapper{display:flex;justify-content:center;align-items:center;margin-bottom:32px}.welcome-logo{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(126,155,139,.3));transition:all .3s ease}.welcome-icons{display:flex;justify-content:center;align-items:center;gap:24px;margin-bottom:32px;flex-wrap:wrap}.icon-wrapper{width:64px;height:64px;display:flex;align-items:center;justify-content:center;color:var(--accent-primary);background:var(--accent-soft);border-radius:50%;transition:all .3s ease;cursor:pointer}.icon-wrapper svg{width:32px;height:32px}.welcome-title{font-size:1.75rem;font-weight:300;margin:0 0 16px;line-height:1.3;letter-spacing:.5px}.welcome-event-name{font-size:2.25rem;font-weight:700;margin:0 0 24px;color:var(--accent-primary);line-height:1.2;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-hover) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-description{font-size:1rem;color:var(--text-secondary);font-weight:300;line-height:1.6;max-width:500px;margin:0 auto 40px}.welcome-hint-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px}.welcome-hint{font-size:1rem;color:var(--text-secondary);margin:0;font-weight:400;line-height:1.4;cursor:pointer;padding:12px 24px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:24px;box-shadow:var(--glass-shadow-sm);transition:all .3s ease}.welcome-hint:hover{background:var(--accent-soft);color:var(--accent-primary);box-shadow:0 4px 12px #7e9b8b33}.hint-arrow{font-size:1.5rem;color:var(--accent-primary);opacity:.6}@media (min-width: 768px){.welcome-screen-overlay{padding:40px}.welcome-screen-container{padding:40px;max-width:90vw}.welcome-logo{width:160px;height:160px}.welcome-icons{gap:32px;margin-bottom:40px}.icon-wrapper{width:80px;height:80px}.icon-wrapper svg{width:40px;height:40px}.welcome-title{font-size:3rem;margin:0 0 20px}.welcome-event-name{font-size:4rem;margin:0 0 32px}.welcome-description{font-size:1.2rem;margin-bottom:48px}.welcome-hint{font-size:1.2rem;padding:16px 32px}.hint-arrow{font-size:2rem}.shape-1{width:500px;height:500px}.shape-2{width:600px;height:600px}.shape-3{width:400px;height:400px}}@media (max-width: 360px){.welcome-icons{gap:16px;margin-bottom:24px}.icon-wrapper{width:48px;height:48px}.icon-wrapper svg{width:24px;height:24px}.welcome-title{font-size:1.5rem}.welcome-event-name{font-size:1.875rem;margin:0 0 20px}.welcome-description{font-size:.9rem;margin-bottom:32px}.welcome-hint{font-size:.9rem;padding:10px 20px}}.welcome-video-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000f2;display:flex;align-items:center;justify-content:center;z-index:1000;padding:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.welcome-video-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0}.welcome-video{width:100%;height:100%;object-fit:contain;max-width:100%;max-height:100%}.skip-button{position:absolute;top:16px;right:16px;padding:12px 20px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;color:var(--text-primary);transition:all .2s;box-shadow:var(--glass-shadow-sm);z-index:10;min-height:44px;touch-action:manipulation}.skip-button:active{background-color:var(--bg-secondary);transform:scale(.98)}.skip-button:hover{background-color:var(--accent-soft);border-color:var(--accent-primary)}@media (min-width: 768px){.welcome-video-container{max-width:90vw;max-height:90vh;aspect-ratio:16 / 9}.welcome-video{width:100%;height:100%}.skip-button{top:20px;right:20px;padding:10px 20px;font-size:16px}}@media (max-width: 360px){.skip-button{top:12px;right:12px;padding:10px 16px;font-size:13px;min-height:40px}}.name-input-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.name-input-container{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:24px;padding:40px;max-width:400px;width:100%;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);text-align:center}.name-input-container h2{margin:0 0 12px;font-size:28px;color:var(--text-primary);font-weight:700}.name-input-subtitle{margin:0 0 30px;color:var(--text-secondary);font-size:16px}.name-input-error{padding:12px;background:var(--error-bg, rgba(200, 80, 80, .15));color:var(--error-text, #c0392b);border-radius:12px;font-size:14px;text-align:center}.name-input-container form{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.name-input-field{width:100%;padding:16px;border:2px solid var(--glass-border);border-radius:12px;font-size:18px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);transition:border-color .2s}.name-input-field:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.name-submit-button{width:100%;padding:16px;background:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s,background-color .2s}.name-submit-button:hover{transform:translateY(-2px);background-color:var(--accent-hover)}.name-submit-button:active{transform:translateY(0)}.name-skip-button{width:100%;padding:12px;background:transparent;color:var(--text-secondary);border:none;font-size:14px;cursor:pointer;transition:color .2s}.name-skip-button:hover{color:var(--text-primary)}.name-skip-button:disabled{color:var(--text-disabled);cursor:not-allowed}.name-submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.name-submit-button:disabled:hover{transform:none;box-shadow:none}.consent-label{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text-secondary);text-align:left;cursor:pointer;padding:12px;background-color:var(--bg-secondary);border-radius:8px;margin:0}.consent-label span{flex:1;line-height:1.5}@media (max-width: 768px){.name-input-container{padding:30px 20px}.name-input-container h2{font-size:24px}}.native-camera-view{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;display:flex;flex-direction:column;z-index:1000;overflow:hidden;touch-action:pan-y}.camera-top-bar{position:absolute;top:0;left:0;right:0;padding:max(12px,env(safe-area-inset-top,12px)) 20px 12px;display:flex;justify-content:space-between;align-items:center;z-index:100;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent);pointer-events:none}.camera-top-bar>*{pointer-events:auto}.camera-top-left{display:flex;justify-content:flex-start;align-items:center;width:60px}.camera-logo-button{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.camera-logo-button:active{transform:scale(.95)}.camera-logo{width:32px;height:32px;object-fit:contain;display:block}.camera-top-right{display:flex;justify-content:flex-end;width:60px}.camera-top-center{flex:1;text-align:center;padding:0 12px}.camera-indicator{display:flex;align-items:center;gap:6px}.camera-dot{width:8px;height:8px;border-radius:50%;background:#fff9;transition:background .3s ease}.camera-dot.recording{background:#ff3b30;animation:pulse-dot 1s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.event-name-text{color:#fff;font-size:14px;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recording-timer-badge{background:#ff3b30;color:#fff;padding:6px 12px;border-radius:12px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.5px;box-shadow:0 2px 8px #ff3b3066}.info-button{background:#ffffff26;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.info-button:active{background:#ffffff40;transform:scale(.95)}.camera-preview-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.camera-video{width:100%;height:100%;object-fit:cover}.camera-video.mirror{transform:scaleX(-1)}.flash-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;opacity:0;animation:flash .15s ease-out;pointer-events:none;z-index:50}@keyframes flash{0%{opacity:0}50%{opacity:1}to{opacity:0}}.audio-preview{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);gap:40px;padding:60px 20px}.audio-wave-container{display:flex;align-items:center;justify-content:center;gap:4px;height:200px;width:100%;max-width:400px}.audio-wave-bar{flex:1;max-width:12px;min-height:10px;background:linear-gradient(to top,#7e9b8bcc,#7e9b8b66);border-radius:6px;transition:height .1s ease}.audio-duration-display{color:#fff;font-size:48px;font-weight:300;font-variant-numeric:tabular-nums;text-shadow:0 2px 10px rgba(0,0,0,.5);letter-spacing:2px}.camera-bottom-bar{position:absolute;bottom:0;left:0;right:0;padding:20px max(20px,env(safe-area-inset-right,20px)) max(20px,env(safe-area-inset-bottom,20px)) max(20px,env(safe-area-inset-left,20px));display:flex;flex-direction:column;align-items:center;gap:16px;z-index:100;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);pointer-events:none}.camera-bottom-bar>*{pointer-events:auto}.camera-bottom-buttons{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:100%;padding:0 20px}.camera-bottom-buttons>*{flex:0 0 auto}.mode-switcher{display:flex;gap:0;background:#0000004d;border-radius:20px;padding:4px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);align-self:center}.mode-button{background:transparent;border:none;color:#fff9;font-size:13px;font-weight:600;padding:8px 16px;border-radius:16px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.mode-button.active{color:#fff;background:#ffffff40}.mode-button:active{transform:scale(.95)}.capture-button{width:70px;height:70px;border-radius:50%;border:4px solid white;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-radius .3s ease,background .3s ease,border-color .3s ease;position:relative;overflow:hidden}.capture-button.photo{background:#fff}.capture-button.video{background:#ff3b30;border-color:#ff3b30}.capture-button.video.recording{background:#3c3c3c80;border-color:#fff0}.capture-button-inner.video{background:#ff3b30;width:0;height:0;border-radius:4px;transition:all .3s ease;opacity:0}.capture-button.video.recording .capture-button-inner.video{width:24px;height:24px;border-radius:4px;opacity:1;box-shadow:0 0 8px #ff3b3099,0 0 16px #ff3b3066}.capture-button.audio{background:#fff3;border-color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.capture-button.audio.recording{background:#ff3b304d;border-color:#ff3b30}.capture-button:active{transform:scale(.9)}.capture-button-inner{width:100%;height:100%;border-radius:50%}.capture-button-inner.photo{background:#fff}.capture-button-inner.video{width:28px;height:28px;border-radius:4px}.capture-button-inner.audio{display:flex;align-items:center;justify-content:center;color:#fff}.last-media-thumbnail{width:50px;height:50px;border-radius:8px;border:2px solid rgba(255,255,255,.3);overflow:hidden;background:#0000004d;cursor:pointer;padding:0;transition:all .2s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.last-media-thumbnail:active{transform:scale(.95);border-color:#fff9}.last-media-thumbnail img,.last-media-thumbnail video{width:100%;height:100%;object-fit:cover}.thumbnail-video{position:relative;width:100%;height:100%}.thumbnail-video video{width:100%;height:100%;object-fit:cover}.play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;text-shadow:0 1px 3px rgba(0,0,0,.5)}.thumbnail-icon{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:24px}.camera-zoom-presets-row{display:flex;align-items:center;justify-content:center;gap:8px;z-index:60}.zoom-preset-button{min-width:44px;height:30px;padding:0 14px;border-radius:20px;border:2px solid rgba(255,255,255,.4);background:#0006;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.zoom-preset-button.active{background:#ffffff40;border-color:#0006;color:#fff}.zoom-preset-button:active{transform:scale(.95)}.switch-camera-button{width:50px;height:50px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:#ffffff26;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.switch-camera-button:active{transform:scale(.95);background:#ffffff40}.info-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.info-modal{background:#000000a1;border-radius:20px;max-width:400px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.info-modal-header{padding:20px;border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;align-items:center}.info-modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.info-modal-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.info-modal-close:active{background:#0000001a}.info-modal-content{padding:20px;overflow-y:auto}.info-modal-content p{margin:0;color:var(--text-secondary);line-height:1.6;font-size:15px}.info-modal-header-content{display:flex;align-items:center;gap:12px}.info-modal-logo{width:40px;height:40px;object-fit:contain}.app-info-description{margin-bottom:24px!important;text-align:center}.app-info-features{display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:20px;border-radius:12px}.app-info-feature{display:flex;align-items:center;gap:12px;color:var(--text-primary);font-size:15px;font-weight:500}.feature-icon{font-size:24px;width:32px;text-align:center}.app-info-footer{text-align:center;font-size:13px!important;color:var(--text-secondary);opacity:.8}.app-info-version{text-align:center;font-size:12px!important;color:var(--text-secondary);opacity:.7;margin-top:12px;margin-bottom:0}.camera-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#d64545f2;color:#fff;padding:16px 24px;border-radius:12px;font-size:14px;font-weight:500;z-index:200;text-align:center;max-width:80%;box-shadow:0 4px 20px #0000004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@media (max-width: 375px){.mode-button{font-size:11px;padding:6px 12px}.capture-button{width:64px;height:64px}.last-media-thumbnail{width:44px;height:44px}.zoom-preset-button{min-width:40px;height:36px;padding:0 12px;font-size:14px}.switch-camera-button{width:44px;height:44px}}@media (max-width: 768px){.native-camera-view{position:fixed;top:0;left:0;right:0;bottom:0}}.memories-view-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:1500;display:flex;align-items:flex-end;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.memories-view{width:100%;max-height:90vh;background:#000000a1;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -4px 20px #0000004d}.memories-view-header{padding:20px;border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.memories-view-header h2{margin:0;font-size:22px;font-weight:600;color:var(--text-primary)}.memories-view-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.memories-view-close:active{background:#0000001a}.memories-view-content{flex:1;overflow-y:auto;padding:20px;-webkit-overflow-scrolling:touch}.memories-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.memories-empty p{margin:0;font-size:16px}.memories-empty-subtitle{margin-top:8px!important;font-size:14px!important;opacity:.7}.memories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px}.memories-item{display:flex;flex-direction:column;cursor:pointer;border-radius:12px;overflow:hidden;background:var(--bg-secondary);transition:transform .2s ease}.memories-item-thumbnail{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:#000}.memories-item-thumbnail img,.memories-item-thumbnail video{width:100%;height:100%;object-fit:cover}.memories-item-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:20px;text-shadow:0 2px 8px rgba(0,0,0,.5);pointer-events:none}.memories-item-status{position:absolute;top:8px;right:8px;background:#0009;color:#fff;min-width:24px;height:24px;padding:0 6px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.memories-item-status--pending{background:#646464d9;color:#fff}.memories-item-status--uploading{background:#2196f3e6;color:#fff}.memories-item-status--error{background:#d32f2fe6;color:#fff}.memories-item-icon{position:relative;width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:48px;background:var(--bg-secondary)}.memories-item-info{padding:12px;text-align:center}.memories-item-type{font-size:11px;font-weight:600;color:var(--accent-primary);text-transform:uppercase;margin-bottom:4px;letter-spacing:.5px}.memories-item-date{font-size:11px;color:var(--text-secondary)}.memories-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:2000;display:flex;align-items:stretch;justify-content:center;padding:0}.memories-preview-modal{position:relative;width:100vw;height:100vh;max-width:100vw;max-height:100vh;background:#000;overflow:hidden;display:flex;flex-direction:column;margin:0}.memories-preview-header{position:absolute;top:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-top,0));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);box-shadow:0 4px 24px #0003,inset 0 1px #ffffff0f;z-index:10}.memories-preview-header-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;max-width:1200px;margin:0 auto}.memories-preview-title{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--text-primary)}.memories-preview-date{margin:0;font-size:12px;color:var(--text-secondary)}.memories-preview-status{font-size:12px;font-weight:500}.memories-preview-status--pending{color:var(--text-secondary)}.memories-preview-status--uploading{color:#2196f3}.memories-preview-status--error{color:#d32f2f}.memories-preview-close{width:40px;height:40px;background:#ffffff14;border:1px solid var(--glass-border);color:var(--text-primary);font-size:22px;cursor:pointer;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.memories-preview-close:hover{background:var(--glass-bg-strong)}.memories-preview-content{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;position:relative;overflow:hidden}.memories-preview-image-container,.memories-preview-video-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.memories-preview-media{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.memories-preview-audio-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px}.memories-preview-audio-icon{font-size:80px}.memories-preview-audio{width:100%;max-width:500px}.memories-preview-footer{position:absolute;bottom:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);box-shadow:0 -4px 24px #0003,inset 0 1px #ffffff0f;z-index:10}.memories-preview-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:400px;margin:0 auto}.memories-preview-nav-placeholder{width:48px;height:48px;flex-shrink:0}.memories-preview-nav{background:var(--glass-bg-strong);border:1px solid var(--glass-border);color:var(--text-primary);font-size:28px;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.memories-preview-nav:hover{background:#fff3;border-color:#ffffff4d;transform:scale(1.08)}.memories-preview-nav:active{transform:scale(.95)}.memories-preview-nav-left{margin-right:auto}.memories-preview-nav-right{margin-left:auto}.memories-preview-counter{color:var(--text-primary);font-size:15px;font-weight:600;flex-shrink:0}@media (max-width: 768px){.memories-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.memories-preview-header{padding:12px 16px calc(12px + env(safe-area-inset-top,0))}.memories-preview-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0))}.memories-preview-nav{width:44px;height:44px;font-size:24px}.memories-preview-nav-placeholder{width:44px;height:44px}}.event-page{min-height:100vh;background:var(--bg-primary);padding:16px 16px 100px}.event-page-offline-banner{position:fixed;top:0;left:0;right:0;z-index:1001;padding:10px 16px;background:var(--accent-soft, rgba(126, 155, 139, .25));color:var(--text-primary);font-size:14px;text-align:center;box-shadow:0 2px 8px #00000014}.event-container{max-width:100%;margin:0 auto;padding:16px}.event-header{text-align:center;color:var(--text-primary);margin-bottom:24px}.event-logo{width:80px;height:80px;object-fit:contain;margin:0 auto 16px;display:block;filter:drop-shadow(0 2px 8px rgba(126,155,139,.2));transition:transform .3s ease}.event-logo:hover{transform:scale(1.05)}.event-header h1{font-size:24px;margin-bottom:8px;font-weight:700;line-height:1.3}.event-subtitle{font-size:14px;color:var(--text-secondary);line-height:1.4}.main-actions{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.upload-form{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--glass-radius);padding:20px;margin-bottom:20px;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border)}.file-preview{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:12px;border:1px solid var(--glass-border);margin-bottom:16px}.file-name{margin:0;font-weight:600;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-file-btn{background:var(--status-error);color:var(--text-on-accent);border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:12px;transition:background-color .2s}.remove-file-btn:hover{background:#c13a3a}.saved-name-display{display:flex;align-items:center;gap:8px;padding:12px;background-color:var(--accent-soft);border-radius:8px;margin-bottom:16px}.saved-name-label{font-size:14px;color:var(--text-secondary);font-weight:600}.saved-name-value{font-size:16px;color:var(--accent-primary);font-weight:600}.consent-label{display:flex;align-items:flex-start;gap:8px;font-size:14px;color:var(--text-secondary);margin-bottom:20px;cursor:pointer}.consent-label input[type=checkbox]{margin-top:2px}.submit-button{width:100%;padding:14px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.submit-button:disabled{background-color:var(--text-disabled);cursor:not-allowed}.bottom-actions{display:flex;gap:12px;position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:16px;right:16px;max-width:calc(100% - 32px);margin:0 auto;padding-bottom:60px}.queue-button,.history-button{flex:1;padding:14px 24px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--glass-radius);color:var(--text-primary);font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--glass-shadow-sm);position:relative;overflow:hidden}.queue-button:before,.history-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--accent-soft) 0%,transparent 100%);opacity:0;transition:opacity .3s ease}.queue-button:hover,.history-button:hover{background:var(--glass-bg-strong);border-color:var(--accent-primary);transform:translateY(-3px);box-shadow:0 8px 28px #c218e133,inset 0 1px #ffffff14}.queue-button:hover:before,.history-button:hover:before{opacity:1}.queue-button:active,.history-button:active{transform:translateY(-1px);box-shadow:0 3px 14px #7e9b8b1f}.queue-button:focus,.history-button:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 4px var(--accent-soft)}.queue-badge{background-color:var(--status-error);color:var(--text-on-accent);border-radius:14px;padding:4px 10px;font-size:12px;font-weight:700;min-width:24px;text-align:center;box-shadow:0 2px 6px #d645454d;position:relative;z-index:1}.alert{padding:16px;border-radius:8px;margin-bottom:20px;font-weight:600}.loading,.error{text-align:center;padding:40px;color:var(--text-primary);font-size:18px}.error{background-color:var(--status-error-bg);color:var(--status-error);border-radius:8px;border:1px solid var(--status-error)}@media (min-width: 768px){.event-page{padding:20px}.event-container{max-width:600px;padding:20px}.event-header{margin-bottom:30px}.event-logo{width:100px;height:100px;margin-bottom:20px}.event-header h1{font-size:28px}.event-subtitle{font-size:16px}.bottom-actions{bottom:calc(20px + env(safe-area-inset-bottom,0px));left:20px;right:20px;max-width:600px;padding-bottom:0}}.admin-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:1000;display:flex;align-items:stretch;justify-content:center;padding:0}.admin-preview-modal{position:relative;width:100vw;height:100vh;max-width:100vw;max-height:100vh;background:#000;z-index:1001;display:flex;flex-direction:column;overflow:hidden;margin:0}.admin-preview-header{position:absolute;top:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-top,0));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);box-shadow:0 4px 24px #0003,inset 0 1px #ffffff0f;z-index:10}.admin-preview-header-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;max-width:1200px;margin:0 auto}.admin-preview-footer{position:absolute;bottom:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);box-shadow:0 -4px 24px #0003,inset 0 1px #ffffff0f;z-index:10}.admin-preview-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:400px;margin:0 auto}.admin-preview-nav-placeholder{width:48px;height:48px;flex-shrink:0}.admin-preview-title-section{flex:1;min-width:0}.admin-preview-title{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--text-primary)}.admin-preview-file-info{display:flex;flex-direction:column;gap:4px}.admin-preview-file-name{font-size:14px;font-weight:500;color:var(--text-primary);word-break:break-word}.admin-preview-guest{font-size:13px;color:var(--text-secondary)}.admin-preview-meta{display:flex;gap:8px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap}.admin-preview-close{background:#ffffff14;border:1px solid var(--glass-border);color:var(--text-primary);font-size:22px;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:12px;transition:all .2s;flex-shrink:0}.admin-preview-close:hover{background:var(--glass-bg-strong);color:var(--text-primary)}.admin-preview-content{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;position:relative;overflow:hidden}.admin-preview-image-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center}.admin-preview-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.admin-preview-video-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center}.admin-preview-video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.admin-preview-audio-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:40px 20px}.admin-preview-audio-icon{font-size:120px;color:#fff}.admin-preview-audio{width:100%;max-width:600px}.admin-preview-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;color:var(--text-secondary)}.admin-preview-error-icon{font-size:64px}.admin-preview-error p{margin:0;font-size:16px}.admin-preview-nav{background:var(--glass-bg-strong);border:1px solid var(--glass-border);color:var(--text-primary);font-size:28px;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.admin-preview-nav:hover{background:#fff3;border-color:#ffffff4d;transform:scale(1.08)}.admin-preview-nav:active{transform:scale(.95)}.admin-preview-nav-left{margin-right:auto}.admin-preview-nav-right{margin-left:auto}.admin-preview-counter{color:var(--text-primary);font-size:15px;font-weight:600;flex-shrink:0}@media (max-width: 768px){.admin-preview-header{padding:12px 16px calc(12px + env(safe-area-inset-top,0))}.admin-preview-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0))}.admin-preview-title{font-size:16px}.admin-preview-file-name{font-size:13px}.admin-preview-meta{font-size:11px}.admin-preview-audio-icon{font-size:80px}.admin-preview-nav{width:44px;height:44px;font-size:24px}.admin-preview-nav-placeholder{width:44px;height:44px}}.admin-media-gallery{background:var(--glass-bg);border-radius:var(--glass-radius);padding:20px;box-shadow:var(--glass-shadow-sm);border:1px solid var(--glass-border)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.gallery-item{display:flex;flex-direction:column;background-color:var(--bg-secondary);border-radius:12px;padding:12px;transition:all .2s;border:2px solid transparent}.gallery-item:hover{background-color:var(--accent-soft);border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 8px #2b2b2b1a}.gallery-item-icon{font-size:48px;margin-bottom:12px;min-height:150px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .2s}.gallery-item-icon:hover{opacity:.8}.gallery-item-thumbnail{width:100%;height:150px;border-radius:8px;overflow:hidden;margin-bottom:12px;background-color:#000;position:relative;display:flex;align-items:center;justify-content:center;transition:opacity .2s}.gallery-item-thumbnail:hover{opacity:.9}.thumbnail-image,.thumbnail-video{width:100%;height:100%;object-fit:cover}.video-play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#0000004d;pointer-events:none}.play-icon{font-size:32px;color:#fff;opacity:.9}.gallery-item-info{width:100%;margin-bottom:12px}.gallery-item-type{font-size:11px;font-weight:600;color:var(--accent-primary);text-transform:uppercase;margin-bottom:6px;letter-spacing:.5px}.gallery-item-name{font-size:13px;color:var(--text-primary);font-weight:500;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-item-guest{font-size:11px;color:var(--text-secondary);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-item-meta{display:flex;gap:8px;font-size:10px;color:var(--text-secondary);margin-bottom:4px;flex-wrap:wrap}.gallery-item-date{font-size:10px;color:var(--text-secondary)}.gallery-item-actions{display:flex;gap:8px;margin-top:auto;padding-top:8px;border-top:1px solid var(--border-default)}.gallery-action-button{flex:1;padding:6px 12px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:8px;cursor:pointer;font-size:12px;color:var(--text-primary);transition:all .2s;font-weight:500}.gallery-action-button:hover{background-color:var(--bg-secondary)}.gallery-action-button.download-button{color:var(--accent-primary);border-color:var(--accent-primary)}.gallery-action-button.download-button:hover{background-color:var(--accent-primary);color:var(--text-on-accent)}.gallery-action-button.hide-button{color:var(--status-error);border-color:var(--status-error)}.gallery-action-button.hide-button:hover{background-color:var(--status-error);color:var(--text-on-accent)}@media (max-width: 768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.gallery-item{padding:10px}.gallery-item-icon{font-size:40px;min-height:120px;margin-bottom:10px}.gallery-item-thumbnail{height:120px;margin-bottom:10px}.play-icon{font-size:24px}.gallery-item-type{font-size:10px}.gallery-item-name{font-size:12px}.gallery-item-guest{font-size:10px}.gallery-item-meta,.gallery-item-date{font-size:9px}.gallery-action-button{font-size:11px;padding:5px 10px}}.admin-footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--glass-border)}.admin-footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--text-secondary)}.admin-footer-copy{flex:1;min-width:0}.admin-footer-link{color:var(--text-secondary);text-decoration:none;transition:color .2s}.admin-footer-link:hover{color:var(--accent-primary)}.admin-header{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:clamp(16px,4vw,30px);border-radius:var(--glass-radius);margin-bottom:20px;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border)}.admin-header-inner{display:flex;justify-content:space-between;align-items:center;gap:clamp(12px,3vw,20px);flex-wrap:wrap}.admin-header-brand{display:flex;align-items:center;gap:clamp(10px,2.5vw,12px);text-decoration:none;color:inherit;min-width:0;flex:1}.admin-header-logo{width:clamp(32px,8vw,40px);height:clamp(32px,8vw,40px);object-fit:contain;flex-shrink:0}.admin-header-title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-header h1{font-size:clamp(1.25rem,4vw,28px);color:var(--text-primary);margin:0;font-weight:600;line-height:1.2}.admin-header h2{font-size:clamp(.875rem,2.5vw,20px);color:var(--text-secondary);font-weight:400;margin:0;line-height:1.3;word-break:break-word;overflow-wrap:break-word}.admin-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.admin-header-settings-btn{padding:clamp(10px,2.5vw,12px) clamp(14px,3vw,16px);min-height:44px;background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:6px;cursor:pointer;font-size:clamp(13px,2vw,14px);font-weight:600;transition:background-color .2s,border-color .2s}.admin-header-settings-btn:hover{background-color:var(--bg-secondary);border-color:var(--border-focus)}.admin-header-logout{padding:clamp(10px,2.5vw,12px) clamp(14px,3vw,16px);min-height:44px;background-color:var(--status-error);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:clamp(13px,2vw,14px);font-weight:600;transition:background-color .2s;flex-shrink:0}.admin-header-logout:hover{background-color:#c13a3a}@media (max-width: 768px){.admin-header{padding:16px;margin-bottom:16px}.admin-header-inner{gap:12px}.admin-header-brand{flex:1 1 auto;min-width:0}.admin-header-logo{width:36px;height:36px}.admin-header h1{font-size:1.35rem}.admin-header h2{font-size:.9rem}.admin-header-actions{width:100%;flex-wrap:wrap}.admin-header-settings-btn,.admin-header-logout{flex:1;min-width:120px;min-height:44px}}@media (max-width: 480px){.admin-header{padding:14px}.admin-header-logo{width:32px;height:32px}.admin-header h1{font-size:1.2rem}.admin-header h2{font-size:.8125rem}}.admin-panel{min-height:100vh;background-color:var(--bg-primary);padding:20px}.admin-container{max-width:1200px;margin:0 auto}.event-settings{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:15px;border-radius:var(--glass-radius);margin-bottom:20px;box-shadow:var(--glass-shadow-sm);border:1px solid var(--glass-border)}.event-settings h3{font-size:20px;color:var(--text-primary);margin-bottom:20px}.welcome-video-form{display:flex;flex-direction:column;gap:24px}.form-section{display:flex;flex-direction:column;gap:16px}.form-section h4{font-size:16px;color:var(--text-primary);margin:0;font-weight:600}.form-divider{text-align:center;color:var(--text-secondary);font-size:14px;position:relative;margin:8px 0}.form-divider:before,.form-divider:after{content:"";position:absolute;top:50%;width:45%;height:1px;background-color:var(--border-default)}.form-divider:before{left:0}.form-divider:after{right:0}.video-url-input{padding:12px;border:1px solid var(--glass-border);border-radius:10px;font-size:14px;width:100%;box-sizing:border-box;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}.video-url-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.video-file-input{padding:8px;border:1px solid var(--glass-border);border-radius:10px;font-size:14px;width:100%;box-sizing:border-box;cursor:pointer;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}.video-file-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.selected-file{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--bg-secondary);border-radius:6px;margin-top:8px}.selected-file .file-size{color:var(--text-secondary);font-size:12px}.remove-file-btn{margin-left:auto;background:none;border:none;color:var(--status-error);cursor:pointer;font-size:18px;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.remove-file-btn:hover{color:#c13a3a}.upload-video-button{padding:10px 20px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s;align-self:flex-start}.upload-video-button:hover:not(:disabled){background-color:var(--accent-hover)}.upload-video-button:disabled{opacity:.6;cursor:not-allowed}.current-video-section{padding:16px;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-default);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.current-video-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.current-video-info strong{font-size:14px;color:var(--text-primary)}.current-video-url{font-size:12px;color:var(--text-secondary);word-break:break-all}.form-actions{display:flex;gap:12px;flex-wrap:wrap}.save-video-button{padding:10px 20px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s}.save-video-button:hover:not(:disabled){background-color:var(--accent-hover)}.save-video-button:disabled{opacity:.6;cursor:not-allowed}.remove-video-button{padding:10px 20px;background-color:var(--status-error);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s}.remove-video-button:hover:not(:disabled){background-color:#c13a3a}.remove-video-button:disabled{opacity:.6;cursor:not-allowed}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:20px}.stat-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:20px;border-radius:12px;text-align:center;box-shadow:var(--glass-shadow-sm);border:1px solid var(--glass-border)}.stat-value{font-size:32px;font-weight:700;color:var(--accent-primary);margin-bottom:8px}.stat-label{font-size:14px;color:var(--text-secondary)}.actions-bar{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:20px;border-radius:var(--glass-radius);margin-bottom:20px;box-shadow:var(--glass-shadow-sm);border:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-buttons button{padding:8px 16px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:8px;cursor:pointer;font-size:14px;color:var(--text-primary);transition:all .2s}.filter-buttons button:hover{background-color:var(--bg-secondary)}.filter-buttons button.active{background-color:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}.download-all-button{padding:10px 20px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s}.download-all-button:hover{background-color:var(--accent-hover)}.files-list{display:flex;flex-direction:column;gap:12px}.file-item{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:20px;border-radius:12px;box-shadow:var(--glass-shadow-sm);border:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center;gap:20px}.file-info{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.file-type-badge{font-size:32px;flex-shrink:0}.file-details{flex:1;min-width:0}.file-name{font-weight:600;color:var(--text-primary);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary)}.file-actions{display:flex;gap:8px;flex-shrink:0}.action-button{padding:8px 16px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:8px;cursor:pointer;font-size:14px;color:var(--text-primary);transition:all .2s}.action-button:hover{background-color:var(--bg-secondary)}.hide-button{color:var(--status-error);border-color:var(--status-error)}.hide-button:hover{background-color:var(--status-error);color:var(--text-on-accent)}.no-files{text-align:center;padding:40px;color:var(--text-secondary);font-size:18px}.loading,.error{text-align:center;padding:40px;font-size:18px}.error{color:var(--status-error);background-color:var(--status-error-bg);border-radius:8px;border:1px solid var(--status-error)}.password-form-container{max-width:400px;margin:100px auto;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:40px;border-radius:var(--glass-radius);box-shadow:var(--glass-shadow);border:1px solid var(--glass-border)}.password-form-container h2{margin-bottom:20px;color:var(--text-primary)}.password-form-container form{display:flex;flex-direction:column;gap:16px}.password-input{padding:12px;border:1px solid var(--glass-border);border-radius:10px;font-size:16px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}.password-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.password-submit{padding:12px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.password-submit:hover{background-color:var(--accent-hover)}.register-container{max-width:600px;margin:0 auto}.register-form{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:30px;border-radius:var(--glass-radius);box-shadow:var(--glass-shadow-sm);border:1px solid var(--glass-border);display:flex;flex-direction:column;gap:20px}.form-input{padding:12px;border:1px solid var(--glass-border);border-radius:10px;font-size:14px;width:100%;box-sizing:border-box;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary)}.register-button{padding:12px 24px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:8px}.register-button:hover:not(:disabled){background-color:var(--accent-hover)}.register-button:disabled{opacity:.6;cursor:not-allowed}.create-event-button{padding:10px 20px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s}.create-event-button:hover{background-color:var(--accent-hover)}.share-section{background:var(--bg-secondary);padding:20px;border-radius:8px;margin-bottom:20px}.copy-link-button{padding:10px 20px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s;white-space:nowrap}.copy-link-button:hover{background-color:var(--accent-hover)}.events-list{display:flex;flex-direction:column;gap:12px}@media (max-width: 768px){.file-item{flex-direction:column;align-items:flex-start}.file-actions{width:100%;justify-content:flex-end}.actions-bar{flex-direction:column;align-items:stretch}.filter-buttons{width:100%}.filter-buttons button{flex:1}.form-row{grid-template-columns:1fr}.register-container{padding:0 10px}.register-form{padding:20px}}.login-page{min-height:100vh;background-color:var(--bg-primary);display:flex;align-items:center;justify-content:center;padding:20px}.login-container{width:100%;max-width:600px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--glass-radius);box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);overflow:hidden}.login-header{padding:40px 30px 30px;text-align:center;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-hover) 100%);color:var(--text-on-accent)}.login-header h1{font-size:36px;margin:0 0 8px;font-weight:700}.login-header p{font-size:16px;margin:0;opacity:.9}.tabs{display:flex;border-bottom:1px solid var(--glass-border);background:#ffffff08;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.tab{flex:1;padding:16px 24px;background:none;border:none;font-size:16px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s;border-bottom:3px solid transparent}.tab:hover{color:var(--text-primary);background:var(--bg-secondary)}.tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);background:var(--glass-bg)}.login-form,.register-form{padding:30px;display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:var(--text-primary);font-size:14px}.login-form input[type=checkbox],.register-form input[type=checkbox]{width:22px;height:22px;min-width:22px;min-height:22px;cursor:pointer;accent-color:var(--accent-primary);vertical-align:middle;margin-right:8px}.login-form .form-group label:has(input[type=checkbox]),.register-form .form-group label:has(input[type=checkbox]){display:flex;align-items:center;flex-direction:row;gap:0;cursor:pointer}.form-input{padding:12px;border:1px solid var(--glass-border);border-radius:10px;font-size:14px;width:100%;box-sizing:border-box;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);transition:all .2s}.form-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.form-group small{font-size:12px;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;gap:12px;margin-top:8px}.submit-button{width:100%;padding:14px 24px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.submit-button:hover:not(:disabled){background-color:var(--accent-hover)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.alert{padding:12px 16px;border-radius:6px;font-size:14px;margin-top:8px}.alert-success{background-color:var(--status-success-bg);color:var(--status-success);border:1px solid var(--status-success)}.alert-error{background-color:var(--status-error-bg);color:var(--status-error);border:1px solid var(--status-error)}.register-success-details{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-default)}.register-success-details p{margin:8px 0;font-size:14px;color:var(--text-primary)}.register-success-details code{background:var(--bg-secondary);padding:4px 8px;border-radius:4px;font-family:monospace;font-size:12px;word-break:break-all;display:inline-block;max-width:100%}.register-success-details a{color:var(--link-color);text-decoration:none;word-break:break-all}.register-success-details a:hover{text-decoration:underline}.register-warning{color:var(--status-error)!important;font-weight:600;margin-top:12px!important}@media (max-width: 768px){.login-container{max-width:100%}.login-header{padding:30px 20px 20px}.login-header h1{font-size:28px}.login-form,.register-form{padding:20px}.form-row{grid-template-columns:1fr}.tab{padding:12px 16px;font-size:14px}}.gallery-page{min-height:100vh;background-color:var(--bg-primary);padding:20px}.gallery-container{max-width:1400px;margin:0 auto}.gallery-header{text-align:center;margin-bottom:40px;padding:30px 0}.gallery-title{font-size:36px;color:var(--text-primary);margin-bottom:8px;font-weight:700}.gallery-subtitle{font-size:18px;color:var(--text-secondary)}.gallery-offline-banner{position:sticky;top:0;z-index:10;padding:10px 16px;background:var(--accent-soft, rgba(126, 155, 139, .25));color:var(--text-primary);font-size:14px;text-align:center;box-shadow:0 2px 8px #00000014}.gallery-loading,.gallery-error,.gallery-empty{text-align:center;padding:60px 20px;font-size:18px;color:var(--text-secondary)}.gallery-error{color:var(--status-error)}.gallery-password-form-container{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:40px 20px}.gallery-password-form{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--glass-radius);padding:40px;max-width:400px;width:100%;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);display:flex;flex-direction:column;align-items:center}.gallery-password-title{font-size:28px;color:var(--text-primary);margin-bottom:8px;text-align:center;font-weight:700;margin-top:8px}.gallery-password-subtitle{font-size:16px;color:var(--text-secondary);text-align:center;margin-bottom:32px}.gallery-password-input-group{margin-bottom:24px}.gallery-password-input{width:100%;padding:14px 16px;font-size:16px;border:2px solid var(--border-default);border-radius:8px;background-color:var(--bg-primary);color:var(--text-primary);transition:border-color .2s;box-sizing:border-box}.gallery-password-input:focus{outline:none;border-color:var(--accent-primary)}.gallery-password-input:disabled{opacity:.6;cursor:not-allowed}.gallery-password-error{margin-top:8px;font-size:14px;color:var(--status-error);text-align:center}.gallery-password-submit{width:100%;padding:14px 24px;font-size:16px;font-weight:600;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}.gallery-password-submit:hover:not(:disabled){background-color:var(--accent-hover)}.gallery-password-submit:disabled{opacity:.6;cursor:not-allowed}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:20px 0}.gallery-item{display:flex;flex-direction:column;background-color:var(--bg-card);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s;border:2px solid transparent;box-shadow:0 2px 8px #2b2b2b14}.gallery-item:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #2b2b2b26;transform:translateY(-4px)}.gallery-item-thumbnail{width:100%;height:200px;overflow:hidden;background-color:#000;display:flex;align-items:center;justify-content:center;position:relative}.gallery-thumbnail-image,.gallery-thumbnail-video{width:100%;height:100%;object-fit:cover}.gallery-video-play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#0000004d;pointer-events:none}.gallery-play-icon{font-size:32px;color:#fff;opacity:.9}.gallery-item-icon{width:100%;height:200px;display:flex;align-items:center;justify-content:center;font-size:48px;background-color:var(--bg-secondary);position:relative}.gallery-item-status{position:absolute;bottom:8px;left:8px;right:8px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-align:center;background:#000000b3;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.gallery-item-thumbnail .gallery-item-status{bottom:8px}.gallery-item-status--pending{background:#646464d9;color:#fff}.gallery-item-status--uploading{background:#2196f3e6;color:#fff}.gallery-item-status--error{background:#d32f2fe6;color:#fff}.gallery-item-info{padding:12px;text-align:center}.gallery-item-type{font-size:11px;font-weight:600;color:var(--accent-primary);text-transform:uppercase;margin-bottom:4px;letter-spacing:.5px}.gallery-item-name{font-size:13px;color:var(--text-primary);word-break:break-word;line-height:1.4}.gallery-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:1000;display:flex;align-items:stretch;justify-content:center;padding:0}.gallery-preview-modal{position:relative;width:100vw;height:100vh;max-width:100vw;max-height:100vh;background:#000;overflow:hidden;display:flex;flex-direction:column;margin:0}.gallery-preview-header{position:absolute;top:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-top,0));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);box-shadow:0 4px 24px #0003,inset 0 1px #ffffff0f;z-index:10}.gallery-preview-header-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;max-width:1200px;margin:0 auto}.gallery-preview-title-section{flex:1;min-width:0}.gallery-preview-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.gallery-preview-file-info{display:flex;flex-direction:column;gap:4px}.gallery-preview-file-name{font-size:14px;color:var(--text-primary);word-break:break-all}.gallery-preview-meta{font-size:12px;color:var(--text-secondary)}.gallery-preview-status{font-size:12px;font-weight:500}.gallery-preview-status--pending{color:var(--text-secondary)}.gallery-preview-status--uploading{color:#2196f3}.gallery-preview-status--error{color:#d32f2f}.gallery-preview-header-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.gallery-preview-download{padding:8px 16px;background-color:var(--accent-primary);color:var(--text-on-accent);border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s}.gallery-preview-download:hover{background-color:var(--accent-hover)}.gallery-preview-close{width:40px;height:40px;background:#ffffff14;border:1px solid var(--glass-border);color:var(--text-primary);font-size:22px;cursor:pointer;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .2s}.gallery-preview-close:hover{background:var(--glass-bg-strong)}.gallery-preview-content{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;position:relative;overflow:hidden}.gallery-preview-footer{position:absolute;bottom:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);box-shadow:0 -4px 24px #0003,inset 0 1px #ffffff0f;z-index:10}.gallery-preview-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:400px;margin:0 auto}.gallery-preview-nav-placeholder{width:48px;height:48px;flex-shrink:0}.gallery-preview-nav{background:var(--glass-bg-strong);border:1px solid var(--glass-border);color:var(--text-primary);font-size:28px;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.gallery-preview-nav:hover{background:#fff3;border-color:#ffffff4d;transform:scale(1.08)}.gallery-preview-nav:active{transform:scale(.95)}.gallery-preview-nav-left{margin-right:auto}.gallery-preview-nav-right{margin-left:auto}.gallery-preview-counter{color:var(--text-primary);font-size:15px;font-weight:600;flex-shrink:0}.gallery-preview-image-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.gallery-preview-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.gallery-preview-video-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.gallery-preview-video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.gallery-preview-audio-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px}.gallery-preview-audio-icon{font-size:80px}.gallery-preview-audio{width:100%;max-width:500px}.gallery-preview-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;color:var(--text-secondary)}.gallery-preview-error-icon{font-size:48px}@media (max-width: 768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.gallery-item-thumbnail{height:150px}.gallery-title{font-size:28px}.gallery-preview-header{padding:12px 16px calc(12px + env(safe-area-inset-top,0))}.gallery-preview-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0))}.gallery-preview-nav{width:44px;height:44px;font-size:24px}.gallery-preview-nav-placeholder{width:44px;height:44px}.gallery-preview-download{padding:8px 14px;font-size:13px}}.footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--glass-border);position:fixed;bottom:15px;width:100%;display:flex;justify-content:center}.footer-inner{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--text-secondary)}.footer-copy{flex:1;min-width:0}.footer-link{color:var(--text-secondary);text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--accent-primary)}.legal-page{min-height:100vh;background-color:var(--bg-primary, #0f0f12);padding:24px;color:var(--text-primary, #e4e4e7)}.legal-container{max-width:720px;margin:0 auto;line-height:1.7}.legal-container h1{font-size:28px;margin-bottom:8px}.legal-updated{color:var(--text-muted, #71717a);font-size:14px;margin-bottom:32px}.legal-container section{margin-bottom:28px}.legal-container h2{font-size:18px;margin:0 0 12px;color:var(--link-color)}.legal-container p,.legal-container ul{margin:0 0 12px}.legal-container ul{padding-left:24px}.legal-container a{color:var(--link-color)}.legal-container a:hover{color:var(--link-color-hover)}.legal-back{margin-top:40px;padding-top:24px;border-top:1px solid var(--glass-border, rgba(255,255,255,.08))}:root{--bg-primary: #1E1535;--bg-secondary: #252040;--bg-card: rgba(37, 32, 64, .85);--bg-card-solid: #2d2640;--text-primary: #FFFFFF;--text-secondary: rgba(255, 255, 255, .85);--text-disabled: rgba(255, 255, 255, .5);--text-on-accent: #FFFFFF;--accent-primary: #C218E1;--accent-hover: #E91E63;--accent-soft: rgba(194, 24, 225, .2);--accent-secondary: #00E4C4;--accent-secondary-hover: #00BCD4;--accent-secondary-soft: rgba(0, 228, 196, .15);--accent-tertiary: #00BFA5;--accent-tertiary-hover: #00CC99;--accent-purple: #7B1FA2;--accent-purple-hover: #9C27B0;--decor-purple: #584B70;--border-default: rgba(255, 255, 255, .15);--border-focus: var(--accent-secondary);--glass-bg: rgba(255, 255, 255, .06);--glass-bg-strong: rgba(255, 255, 255, .1);--glass-border: rgba(255, 255, 255, .12);--glass-blur: 20px;--glass-radius: 16px;--glass-shadow: 0 8px 32px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .06);--glass-shadow-sm: 0 4px 20px rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .04);--link-color: #00E4C4;--link-color-hover: #5DF2D6;--status-success: #00BFA5;--status-warning: #FFB74D;--status-error: #F44336;--status-info: #00BCD4;--status-success-bg: rgba(0, 191, 165, .2);--status-error-bg: rgba(244, 67, 54, .2)}a{color:var(--link-color);text-decoration:none}a:hover{color:var(--link-color-hover);text-decoration:underline}input[type=checkbox]{width:22px;height:22px;min-width:22px;min-height:22px;cursor:pointer;accent-color:var(--accent-primary);flex-shrink:0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-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:var(--bg-primary);color:var(--text-primary);padding-bottom:env(safe-area-inset-bottom,0px);min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#1e1535,#252040,#1f1a30);z-index:-2;pointer-events:none}body:after{content:"";position:fixed;width:60vmax;height:60vmax;border-radius:50%;background:radial-gradient(circle,rgba(88,75,112,.12) 0%,transparent 65%);top:-20%;left:-15%;z-index:-1;pointer-events:none}#root{min-height:100vh;position:relative}#root:before{content:"";position:fixed;width:40vmax;height:40vmax;border-radius:50%;background:radial-gradient(circle,rgba(194,24,225,.06) 0%,transparent 65%);bottom:-15%;right:-10%;z-index:-1;pointer-events:none}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-strong{background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}
