.gallery-page{background:var(--gallery-bg,#f5f5f7);min-height:100vh;color:var(--gallery-text,#1d1d1f);scroll-behavior:smooth;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}.gallery-page.gallery-spacing-tight .photo-grid-masonry{column-gap:1px;padding:1px}.gallery-page.gallery-spacing-tight .photo-grid-masonry .photo-item{margin-bottom:1px}.gallery-page.gallery-spacing-tight .photo-item{border-radius:var(--gallery-photo-radius,2px)}.gallery-page.gallery-spacing-relaxed .photo-grid-masonry{column-gap:10px;padding:10px}.gallery-page.gallery-spacing-relaxed .photo-grid-masonry .photo-item{margin-bottom:10px}.gallery-page.gallery-spacing-relaxed .photo-item{border-radius:var(--gallery-photo-radius,2px)}.gallery-sticky-header{z-index:10;background:color-mix(in srgb,var(--gallery-bg,#f5f5f7)80%,transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-bottom:none;position:sticky;top:0}.gallery-page.light-mode .gallery-sticky-header{background:var(--gallery-bg,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}.gallery-page.light-mode .gallery-top-fade{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(to bottom,var(--gallery-bg,#fff)38%,transparent 100%);-webkit-mask-image:none;mask-image:none}.gallery-page.light-mode .gallery-bottom-fade{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(to top,var(--gallery-bg,#fff)38%,transparent 100%);-webkit-mask-image:none;mask-image:none}.gallery-header{background:0 0;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.gallery-header-left{align-items:center;gap:12px;min-width:0;display:flex}.gallery-header-info{align-items:center;gap:10px;min-width:0;display:flex}.gallery-header h1{letter-spacing:-.02em;color:var(--gallery-text,#1d1d1f);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:18px;font-weight:600;overflow:hidden}.gallery-header-right{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (min-width:901px){.gallery-header--stacked{flex-direction:column;justify-content:center;align-items:center;gap:14px}.gallery-header--stacked .gallery-header-left{text-align:center;flex-direction:column;align-items:center;width:100%}.gallery-header--stacked .gallery-header-info{justify-content:center}.gallery-header--stacked .gallery-header-right{flex-wrap:wrap;justify-content:center;width:100%}}.gallery-top-fade,.gallery-bottom-fade{display:none}.gallery-empty{text-align:center;padding:80px 24px}.gallery-empty-icon{background:color-mix(in srgb,var(--gallery-text,#1d1d1f)10%,transparent);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 20px;display:flex}.gallery-empty-icon svg{width:32px;height:32px;color:color-mix(in srgb,var(--gallery-text,#1d1d1f)40%,transparent)}.gallery-empty p{color:var(--gallery-text,#1d1d1f);margin-bottom:8px;font-size:17px}.gallery-empty .muted{color:color-mix(in srgb,var(--gallery-text,#1d1d1f)50%,transparent);font-size:14px}.gallery-event,.gallery-session{margin-bottom:2px}.gallery-event-header{background:#fff;border-bottom:1px solid #d2d2d7;align-items:center;gap:14px;padding:16px 20px;display:flex}.gallery-event-header .event-logo{object-fit:contain;border-radius:8px;width:auto;max-width:100px;height:44px}.gallery-event-header h2{letter-spacing:-.01em;color:#1d1d1f;margin-bottom:2px;font-size:17px;font-weight:600}.gallery-event-header p{color:#86868b;font-size:13px}.gallery-view-toggle{gap:4px;display:flex}.gallery-view-btn{border:1.5px solid color-mix(in srgb,var(--gallery-text,#fff)20%,transparent);width:32px;height:28px;color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.gallery-view-btn.active{border-color:var(--gallery-button-color,var(--brand-primary,#007aff));color:var(--gallery-button-color,var(--brand-primary,#007aff))}.gallery-view-btn:hover:not(.active){border-color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent);color:color-mix(in srgb,var(--gallery-text,#fff)70%,transparent)}.gallery-size-picker{gap:4px;display:flex}.gallery-size-btn{border:1.5px solid color-mix(in srgb,var(--gallery-text,#fff)20%,transparent);width:32px;height:28px;color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);cursor:pointer;background:0 0;border-radius:6px;font-size:12px;font-weight:600;transition:all .15s}.gallery-size-btn.active{border-color:var(--gallery-button-color,var(--brand-primary,#007aff));color:var(--gallery-button-color,var(--brand-primary,#007aff))}.gallery-size-btn:hover:not(.active){border-color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent);color:color-mix(in srgb,var(--gallery-text,#fff)70%,transparent)}.gallery-page .photo-grid-masonry{column-count:var(--masonry-cols,3);column-gap:8px;padding:8px}.gallery-page .photo-grid-masonry-js{column-count:unset;gap:8px;padding:8px;display:flex}.gallery-page .photo-grid-masonry-js .masonry-col{flex-direction:column;flex:1;gap:8px;display:flex}.gallery-page .photo-grid-masonry-js .masonry-col .photo-item{margin-bottom:0}.gallery-page .photo-grid-justified{--justified-cap:1.3;flex-wrap:wrap;gap:8px;padding:8px;display:flex}@media (min-width:640px){.gallery-page .photo-grid-justified{--justified-cap:1.55}}@media (min-width:1024px){.gallery-page .photo-grid-justified{--justified-cap:1.4}}.gallery-page .photo-grid-justified .justified-cell{aspect-ratio:var(--ar,.75);flex-grow:calc(var(--ar,.75)*100);flex-basis:calc(var(--ar,.75)*var(--justified-row-h,220px));max-width:calc(var(--ar,.75)*var(--justified-row-h,220px)*var(--justified-cap,1.4));min-width:0;display:flex}.gallery-page .photo-grid-justified .justified-cell .photo-item{width:100%;height:100%;margin:0}.gallery-page .photo-grid-justified .justified-cell .photo-item img,.gallery-page .photo-grid-justified .justified-cell .photo-item video{width:100%;object-fit:cover!important;height:100%!important}.gallery-page .photo-grid-justified .justified-cell-estimated .photo-item img,.gallery-page .photo-grid-justified .justified-cell-estimated .photo-item video{object-fit:contain!important}.gallery-page .photo-item{cursor:pointer;background:var(--gallery-card,#1a1a1a);border-radius:var(--gallery-photo-radius,2px);aspect-ratio:auto;break-inside:avoid;content-visibility:auto;contain-intrinsic-size:280px;border:none;margin-bottom:8px;position:relative;overflow:hidden}.gallery-page .photo-grid-masonry .photo-item:last-child{margin-bottom:0}.gallery-page .photo-item img{object-fit:contain;image-orientation:from-image;width:100%;transition:opacity .3s;display:block;height:auto!important}.gallery-page .photo-item:active img{opacity:.85}@media (hover:hover){.gallery-page .photo-item img,.gallery-page .photo-item video{transition:transform .3s,opacity .3s}.gallery-page .photo-item:hover img,.gallery-page .photo-item:hover video{transform:scale(1.05)}}@media (prefers-reduced-motion:reduce){.gallery-page .photo-item img,.gallery-page .photo-item video{transition:opacity .3s}.gallery-page .photo-item:hover img,.gallery-page .photo-item:hover video{transform:none}}@keyframes photo-live-enter{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.gallery-page .photo-item-live-new{animation:.5s cubic-bezier(.22,1,.36,1) both photo-live-enter}@media (prefers-reduced-motion:reduce){.gallery-page .photo-item-live-new{animation:none}}.gallery-page .photo-grid-uniform{grid-template-columns:repeat(var(--gallery-grid-cols,3),1fr);gap:8px;padding:8px;display:grid}.gallery-page .photo-grid-uniform .photo-item{aspect-ratio:1;break-inside:auto;margin-bottom:0;overflow:hidden}.gallery-page .photo-grid-uniform .photo-item>div:not(.photo-checkbox){width:100%;height:100%}.gallery-page .photo-grid-uniform .photo-item img{width:100%;object-fit:cover!important;height:100%!important}.gallery-page.gallery-spacing-tight .photo-grid-uniform{gap:1px;padding:1px}.gallery-page.gallery-spacing-relaxed .photo-grid-uniform{gap:10px;padding:10px}@media (max-width:1024px){.gallery-header-right .btn-find-my-photos,.gallery-header-right .btn-download-all,.gallery-header-right .btn-select-mode{padding:8px 14px;font-size:13px}.gallery-header-right .btn-find-my-photos,.gallery-header-right .btn-download-all{padding-left:20px;padding-right:20px}.breadcrumb-link,.breadcrumb-current{font-size:13px}}@media (max-width:900px){.gallery-size-picker,.gallery-view-toggle{display:none}.gallery-header{flex-direction:column;align-items:center;gap:6px;padding:10px 12px}.gallery-header-left{flex-direction:column;align-items:center;gap:4px}.gallery-company-logo{max-width:100px;max-height:28px}.gallery-header-info{width:100%}.breadcrumb-link{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;padding:4px 6px;font-size:12px;overflow:hidden}.breadcrumb-current{text-overflow:ellipsis;white-space:nowrap;max-width:52vw;padding:4px 6px;font-size:12px;overflow:hidden}.gallery-sticky-header{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:60}.gallery-header-right{z-index:60;background:color-mix(in srgb,var(--gallery-bg,#0a0a0a)70%,transparent);border:1px solid color-mix(in srgb,var(--gallery-text,#fff)12%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:999px;flex-wrap:nowrap;justify-content:center;gap:8px;width:auto;max-width:calc(100vw - 20px);padding:7px 9px;position:fixed;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000073}.gallery-page{padding-bottom:88px}.gallery-top-fade,.gallery-bottom-fade{pointer-events:none;--fade-blur:blur(13px);-webkit-backdrop-filter:var(--fade-blur);backdrop-filter:var(--fade-blur);display:block;position:fixed;left:0;right:0}.gallery-top-fade{height:var(--gallery-header-h,0px);z-index:9;top:0;-webkit-mask-image:linear-gradient(#000 0% 46%,#0000 100%);mask-image:linear-gradient(#000 0% 46%,#0000 100%)}.gallery-page .photo-grid-justified,.gallery-page .photo-grid-uniform,.gallery-page .photo-grid-masonry,.gallery-page .justified-grid,.gallery-page .gallery-time-section-header+.photo-grid-justified,.gallery-page .gallery-time-section-header+.photo-grid-uniform,.gallery-page .gallery-time-section-header+.photo-grid-masonry,.gallery-page .gallery-time-section-header+.justified-grid,.gallery-page .gallery-time-section:first-child .gallery-time-section-header{padding-top:8px}.gallery-bottom-fade{z-index:55;height:116px;bottom:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 58% 100%);mask-image:linear-gradient(#0000 0%,#000 58% 100%)}.gallery-header-right .btn-find-my-photos .btn-label,.gallery-header-right .btn-download-all .btn-label{display:inline}.gallery-header-right .btn-select-mode .btn-label{display:none}.gallery-header-right .btn-find-my-photos,.gallery-header-right .btn-download-all,.gallery-header-right .btn-select-mode{padding:7px 12px;font-size:13px}.gallery-header-right .btn-find-my-photos,.gallery-header-right .btn-download-all{padding-left:18px;padding-right:18px}.gallery-header-right .btn-select-mode{padding:7px 10px}}@media (max-width:640px){.gallery-page .photo-grid-uniform{grid-template-columns:repeat(2,1fr)!important}.gallery-page .photo-grid-masonry{column-count:2!important}.gallery-page .photo-grid-uniform,.gallery-page .photo-grid-masonry,.gallery-page .photo-grid-masonry-js{padding-left:var(--gallery-mobile-gutter,16px);padding-right:var(--gallery-mobile-gutter,16px)}.gallery-page.gallery-spacing-tight .photo-grid-uniform{gap:1px;padding-top:0;padding-bottom:0}.gallery-page.gallery-spacing-tight .photo-grid-masonry{column-gap:1px;padding-top:0;padding-bottom:0}.gallery-page.gallery-spacing-tight .photo-grid-masonry .photo-item{margin-bottom:1px}.gallery-page.gallery-spacing-normal .photo-grid-uniform{gap:4px;padding-top:0;padding-bottom:0}.gallery-page.gallery-spacing-normal .photo-grid-masonry{column-gap:4px;padding-top:0;padding-bottom:0}.gallery-page.gallery-spacing-normal .photo-grid-masonry .photo-item{margin-bottom:4px}.gallery-page.gallery-spacing-relaxed .photo-grid-uniform{gap:6px;padding-top:0;padding-bottom:0}.gallery-page.gallery-spacing-relaxed .photo-grid-masonry{column-gap:6px;padding-top:0;padding-bottom:0}.gallery-page.gallery-spacing-relaxed .photo-grid-masonry .photo-item{margin-bottom:6px}.gallery-page .photo-item{border-radius:var(--gallery-photo-radius,2px);background:var(--gallery-bg,#0a0a0a)}.folder-card-badge{display:none}}@media (max-width:480px){.gallery-page .photo-grid-masonry{column-count:2!important}}.gallery-time-section{margin-bottom:0}.gallery-time-section-header{letter-spacing:.02em;color:var(--gallery-text,#fff);opacity:.8;padding:28px 8px 8px;font-size:14px;font-weight:600}.gallery-time-section:first-child .gallery-time-section-header{padding-top:8px}.lightbox{-webkit-backdrop-filter:blur(60px)saturate();backdrop-filter:blur(60px)saturate();z-index:100;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:56px 16px 24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;height:100%;padding:60px 24px 0;display:flex;position:relative}.lightbox-close{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;z-index:10;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;transition:background .2s;display:flex;position:fixed;top:16px;left:16px}.lightbox-close:hover{background:#ffffff40}.lightbox-image-container{justify-content:center;align-items:center;max-width:calc(100% - 120px);max-height:calc(100vh - 120px);display:flex;position:relative}.lightbox-spinner{justify-content:center;align-items:center;display:flex;position:absolute}.lightbox-image{object-fit:contain;cursor:pointer;border-radius:8px;flex-shrink:1;max-width:100%;min-height:0;max-height:calc(100vh - 220px)}.lightbox-image--wide{max-width:calc(100% - 80px);max-height:calc(100vh - 160px)}.lightbox-actions{z-index:10;flex-shrink:0;justify-content:center;gap:12px;padding:8px 0 24px;display:flex}.lightbox-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;z-index:11;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#ffffff40}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-counter{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffc;z-index:10;background:#00000080;border-radius:16px;padding:6px 14px;font-size:13px;font-weight:500;position:absolute;top:20px;left:50%;transform:translate(-50%)}.lightbox-actions .btn{cursor:pointer;border:none;border-radius:24px;justify-content:center;align-items:center;width:auto;min-width:130px;padding:14px 28px;font-size:15px;font-weight:500;transition:all .2s;display:flex}.lightbox-actions .btn-primary{background:var(--brand-primary,var(--accent,#0071e3));color:#fff}.lightbox-actions .btn-primary:hover{filter:brightness(1.15);transform:scale(1.03)}.lightbox-actions .btn-secondary{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#fff3;border:none}.lightbox-actions .btn-secondary:hover{background:#ffffff4d;transform:scale(1.03)}.lightbox-formats{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#0009;border-radius:20px;flex-shrink:0;gap:6px;max-width:90vw;padding:6px;display:flex;overflow-x:auto}.format-chip{color:#fffc;cursor:pointer;white-space:nowrap;background:#ffffff1f;border:none;border-radius:14px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.format-chip:hover{color:#fff;background:#ffffff38}.format-chip.active{color:#fff;font-weight:600}.spread-badge{opacity:.6;font-size:10px;font-weight:400}.gallery-page .loading{background:#f5f5f7;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.gallery-page .loading .spinner{border:3px solid #d2d2d7;border-top-color:var(--brand-primary,var(--accent,#0071e3));border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gallery-page .loading p{color:#86868b;font-size:14px}.gallery-page .error-page{text-align:center;background:#f5f5f7;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.gallery-page .error-page h1{color:#aeaeb2;margin-bottom:8px;font-size:48px}.gallery-page .error-page p{color:#86868b;font-size:16px}@media (min-width:1024px){.lightbox-image{border-radius:12px}}@media (max-width:640px){.gallery-header{flex-direction:column;align-items:center;gap:8px;padding:8px 12px}.gallery-header-left{text-align:center;align-items:center;gap:8px;width:100%;min-width:0}.gallery-header h1{text-align:center;width:100%;font-size:15px}.gallery-header-right{flex-wrap:nowrap;justify-content:center;gap:6px;width:auto}.gallery-header-right .btn-find-my-photos,.gallery-header-right .btn-download-all,.gallery-header-right .btn-select-mode{flex:none;order:0;justify-content:center;gap:4px;width:auto;min-height:44px;padding:9px 11px;font-size:12px}.gallery-header-right .btn-find-my-photos,.gallery-header-right .btn-download-all{padding-left:18px;padding-right:18px}.gallery-header-right .btn-find-my-photos .btn-label,.gallery-header-right .btn-download-all .btn-label{font-size:13px;display:inline}.gallery-breadcrumb .breadcrumb-root span{display:none}.breadcrumb-link{max-width:34vw}.breadcrumb-current{max-width:68vw}.gallery-view-btn{width:28px;height:24px}.folder-card-badge{display:none}.gallery-mobile-fmp-fab{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));cursor:pointer;z-index:90;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;align-items:center;gap:8px;min-height:48px;padding:12px 22px;font-size:15px;font-weight:600;line-height:1;animation:.4s ease-out .6s both gallery-fmp-fab-in;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000059,0 2px 6px #0003}.gallery-mobile-fmp-fab:active{transform:translate(-50%)scale(.96)}}.gallery-mobile-fmp-fab{display:none}@keyframes gallery-fmp-fab-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (max-width:480px){.lightbox,.lightbox-content{gap:0;padding:0}.lightbox-image-container{max-width:100vw;max-height:calc(100dvh - 210px)}.lightbox-image,.lightbox-image--wide{border-radius:0;max-width:100vw;max-height:calc(100dvh - 210px)}.lightbox-close{top:calc(env(safe-area-inset-top,0px) + 10px);width:42px;height:42px;left:12px;right:auto}.lightbox-counter{top:calc(env(safe-area-inset-top,0px) + 14px)}.lightbox-actions{padding:10px 78px calc(16px + env(safe-area-inset-bottom,0px));flex-direction:row;justify-content:center;align-items:center;gap:8px;position:absolute;bottom:0;left:0;right:0}.lightbox-actions .btn{width:auto;max-width:62vw}.lightbox-nav{top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));background:#ffffff24;border-radius:50%;width:48px;height:48px;transform:none}.lightbox-prev{left:12px;right:auto}.lightbox-next{left:auto;right:12px}.lightbox-formats{gap:4px;max-width:92vw;padding:4px}.format-chip{padding:5px 10px;font-size:11px}.spread-badge{display:none}.photo-spread-badge{opacity:1}}@supports (padding:env(safe-area-inset-top)){.gallery-header{padding-top:calc(12px + env(safe-area-inset-top))}.lightbox-actions{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.lightbox-close{top:calc(16px + env(safe-area-inset-top))}}.live-indicator{vertical-align:middle;background:#30d158;border-radius:50%;width:8px;height:8px;margin-left:8px;animation:2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.live-status{color:#30d158;margin-top:16px;font-size:13px}.gallery-company-logo{object-fit:contain;flex-shrink:0;max-width:120px;max-height:36px;display:block}.gallery-company-icon{border-radius:6px;max-width:32px;max-height:32px}.gallery-company-logo.gallery-logo-small{max-width:100px;max-height:28px}.gallery-company-logo.gallery-logo-medium{max-width:120px;max-height:36px}.gallery-company-logo.gallery-logo-large{max-width:220px;max-height:64px}.gallery-company-icon.gallery-logo-small{max-width:26px;max-height:26px}.gallery-company-icon.gallery-logo-medium{max-width:32px;max-height:32px}.gallery-company-icon.gallery-logo-large{max-width:52px;max-height:52px}@media (max-width:900px){.gallery-company-logo.gallery-logo-small{max-width:88px;max-height:24px}.gallery-company-logo.gallery-logo-medium{max-width:100px;max-height:28px}.gallery-company-logo.gallery-logo-large{max-width:150px;max-height:44px}.gallery-company-icon.gallery-logo-small{max-width:26px;max-height:26px}.gallery-company-icon.gallery-logo-medium{max-width:32px;max-height:32px}.gallery-company-icon.gallery-logo-large{max-width:44px;max-height:44px}}@media (min-width:901px){.gallery-header-left.gallery-header-align-center,.gallery-header-left.gallery-header-align-right{flex:1;min-width:0}.gallery-header-left.gallery-header-align-center{justify-content:center}.gallery-header-left.gallery-header-align-right{justify-content:flex-end}}.custom-header,.custom-footer{width:100%}.photo-notification{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fff;z-index:100;background:#000c;border-radius:24px;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;animation:.3s ease-out slideDown;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000004d}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.password-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.password-logo{object-fit:contain;max-width:200px;max-height:80px;margin-bottom:24px}.password-event-name{color:var(--gallery-text,#86868b);opacity:.6;margin:0 0 8px;font-size:15px;font-weight:500}.password-screen h1{color:#1d1d1f;margin-bottom:8px;font-size:24px;font-weight:600}.password-screen>p{color:#86868b;margin-bottom:32px;font-size:15px}.password-screen .password-title{text-wrap:balance;max-width:600px;color:var(--gallery-text,#1d1d1f);margin:0 0 10px;font-size:26px;font-weight:600;line-height:1.2}.password-screen .password-subtitle{color:color-mix(in srgb,var(--gallery-text,#1d1d1f)55%,transparent);margin:0 0 28px;font-size:15px}.password-screen .password-powered-by{letter-spacing:.02em;color:color-mix(in srgb,var(--gallery-text,#1d1d1f)38%,transparent);margin:30px 0 0;font-size:12px;text-decoration:none;transition:color .2s;display:inline-block}a.password-powered-by:hover{color:color-mix(in srgb,var(--gallery-text,#1d1d1f)70%,transparent)}.password-form{flex-direction:column;gap:16px;width:100%;max-width:320px;display:flex}.password-form input{color:#1d1d1f;text-align:center;background:#fff;border:1px solid #d2d2d7;border-radius:12px;padding:14px 16px;font-size:16px;transition:border-color .2s}.password-form input:focus{border-color:var(--brand-primary,#007aff);outline:none;box-shadow:0 0 0 3px #0a84ff33}.password-form input.error{border-color:#ff3b30}.password-error{color:#ff3b30;margin-top:-8px;font-size:13px}.password-form .btn{cursor:pointer;border:none;border-radius:12px;padding:14px 24px;font-size:16px;font-weight:600;transition:opacity .2s}.password-form .btn:hover{opacity:.9}.gallery-session-header{background:#fff;border-bottom:1px solid #d2d2d7;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.gallery-session-header .session-info h2{letter-spacing:-.01em;color:#1d1d1f;margin-bottom:2px;font-size:17px;font-weight:600}.gallery-session-header .session-info p{color:#86868b;font-size:13px}.session-select-actions .btn-link{color:var(--brand-primary,#007aff);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px;font-weight:500}.session-gallery-header{border-bottom:none;position:relative}.session-header-top{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.session-header-top .gallery-company-logo{margin:0 auto}.session-share-btn{cursor:pointer;background:0 0;border:1px solid #8080804d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .2s;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.session-share-btn:hover{background:#8080801a}.session-find-photos{text-align:center;padding:32px 20px 24px}.session-find-photos-icon{width:52px;height:52px;color:var(--gallery-text,#fff);opacity:.5;background:#ffffff14;border-radius:14px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.session-find-photos-title{margin-bottom:6px;font-size:16px;font-weight:600}.session-find-photos-desc{opacity:.7;max-width:320px;margin-bottom:16px;margin-left:auto;margin-right:auto;font-size:14px}.session-find-photos-btn{border:1.5px solid;border-radius:20px;align-items:center;gap:8px;padding:10px 20px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.session-find-photos-btn:hover{opacity:.85}.session-floating-download{padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));pointer-events:none;z-index:50;background:linear-gradient(#0000,#0009 40%,#000000d9);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.light-mode .session-floating-download{background:linear-gradient(#0000,#ffffffb3 40%,#fffffff2)}.session-download-all-btn{pointer-events:auto;color:#fff;cursor:pointer;border:none;border-radius:24px;align-items:center;gap:8px;padding:12px 28px;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 16px #0003}.session-download-all-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #00000040}.session-download-all-btn:disabled{opacity:.7;cursor:not-allowed}.gallery-actions{align-items:center;gap:8px;display:flex}.btn-select-mode{border:1px solid color-mix(in srgb,var(--gallery-text,#1d1d1f)20%,transparent);background:color-mix(in srgb,var(--gallery-text,#1d1d1f)8%,transparent);color:var(--gallery-text,#1d1d1f);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-select-mode:hover{background:color-mix(in srgb,var(--gallery-text,#1d1d1f)12%,transparent)}.btn-select-mode.active{background:var(--gallery-button-color,var(--brand-primary,#007aff));color:var(--gallery-button-text,white);border-color:#0000}.floating-selection-bar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:100;background:#1e1e1ef2;border-radius:16px;align-items:center;gap:16px;max-width:calc(100vw - 32px);padding:12px 20px;animation:.25s ease-out floatingBarSlideUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006}@keyframes floatingBarSlideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.floating-selection-top{align-items:center;gap:12px;display:flex}.floating-selection-count{color:#fff;white-space:nowrap;font-size:14px;font-weight:600}.floating-selection-links{align-items:center;gap:4px;display:flex}.floating-selection-buttons{align-items:center;gap:8px;display:flex}.floating-selection-bar .btn-link{color:#ffffffb3;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.floating-selection-bar .btn-link:hover{color:#fff;background:#ffffff1a}.btn-download{color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:opacity .2s;display:flex}.btn-download:hover:not(:disabled){opacity:.9}.btn-download:disabled{opacity:.5;cursor:not-allowed}.spinner-small{opacity:.7;border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.gallery-page .photo-item.selectable{cursor:pointer}.gallery-page .photo-item.selectable:before{display:none}.gallery-page .photo-item.selected{box-shadow:inset 0 0 0 3px var(--brand-primary,#007aff)}.photo-checkbox{z-index:2;cursor:pointer;background:#0000004d;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;position:absolute;top:8px;left:8px}.photo-checkbox.checked{background:var(--brand-primary,#007aff);border-color:var(--brand-primary,#007aff)}.photo-checkbox svg{color:#fff}@media (max-width:640px){.photo-checkbox{border-width:2px;width:22px;height:22px;top:6px;left:6px}.photo-checkbox svg{width:12px;height:12px}.floating-selection-bar{flex-direction:column;align-items:stretch;gap:10px;max-width:none;padding:12px 16px;bottom:16px;left:16px;right:16px;transform:none}@keyframes floatingBarSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.floating-selection-top{flex-direction:column;align-items:center;gap:6px}.floating-selection-buttons{flex-direction:column;width:100%}.floating-selection-buttons .btn{justify-content:center;width:100%}}@media (max-width:480px){.gallery-session-header{flex-direction:column;align-items:flex-start;gap:8px}}@supports (padding:env(safe-area-inset-bottom)){.floating-selection-bar{bottom:calc(24px + env(safe-area-inset-bottom))}}.gallery-breadcrumb{background:#ffffff0d;border-bottom:1px solid #ffffff1a;padding:12px 20px}.gallery-header-info .gallery-breadcrumb{background:0 0;border-bottom:none;padding:0}.breadcrumb-list{-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.breadcrumb-list::-webkit-scrollbar{display:none}.gallery-breadcrumb .breadcrumb-list{margin-inline:-8px;padding-inline:8px}.breadcrumb-item{flex-shrink:0;align-items:center;gap:4px;display:flex}.breadcrumb-link{color:inherit;cursor:pointer;opacity:.8;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:14px;font-weight:500;transition:background .2s;display:flex}.gallery-breadcrumb .breadcrumb-link:hover{background-color:color-mix(in srgb,currentColor 10%,transparent);opacity:1}.breadcrumb-root{opacity:1}.breadcrumb-separator{opacity:.4;align-items:center;display:flex}.breadcrumb-current{white-space:nowrap;padding:6px 10px;font-size:14px;font-weight:600}.folder-nav{background:0 0;padding:32px 20px 20px}.folder-nav-grid{gap:16px;display:grid}.folder-nav-cols-2 .folder-nav-grid{grid-template-columns:repeat(2,1fr)}.folder-nav-cols-3 .folder-nav-grid{grid-template-columns:repeat(3,1fr)}.folder-nav-cols-4 .folder-nav-grid{grid-template-columns:repeat(4,1fr)}@media (max-width:640px){.folder-nav-cols-3 .folder-nav-grid,.folder-nav-cols-4 .folder-nav-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.folder-nav-cols-3 .folder-nav-grid{grid-template-columns:repeat(4,1fr)}.folder-nav-cols-4 .folder-nav-grid{grid-template-columns:repeat(5,1fr)}}.folder-card{background:var(--folder-card-bg,color-mix(in srgb,var(--gallery-text,#fff)8%,var(--gallery-bg,#0a0a0a)));cursor:pointer;border-radius:12px;flex-direction:column;transition:transform .2s,background .2s,box-shadow .2s;display:flex;overflow:hidden}.folder-card:hover{background:color-mix(in srgb,var(--gallery-text,#fff)8%,var(--folder-card-bg,color-mix(in srgb,var(--gallery-text,#fff)8%,var(--gallery-bg,#0a0a0a))));transform:translateY(-2px);box-shadow:0 8px 20px #0000002e}.folder-card:active{transform:scale(.98)}.folder-card-thumbnail{aspect-ratio:4/3;background:color-mix(in srgb,var(--gallery-text,#fff)14%,var(--gallery-bg,#0a0a0a));position:relative;overflow:hidden}.folder-nav-aspect-landscape .folder-card-thumbnail{aspect-ratio:3/2}.folder-nav-aspect-square .folder-card-thumbnail{aspect-ratio:1}.folder-nav-aspect-portrait .folder-card-thumbnail{aspect-ratio:2/3}.folder-card-thumbnail>div:not(.folder-card-badge):not(.folder-card-placeholder){width:100%;height:100%}.folder-card-thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.folder-card:hover .folder-card-thumbnail img{transform:scale(1.05)}.folder-card-placeholder{background:color-mix(in srgb,var(--gallery-text,#fff)16%,var(--gallery-bg,#0a0a0a));width:100%;height:100%;color:var(--folder-card-text,var(--gallery-text,#fff));justify-content:center;align-items:center;display:flex}.folder-card-placeholder svg{opacity:.55;width:40px;height:40px}.folder-card-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#0009;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:8px;right:8px}.gallery-page .folder-card-badge{display:none}.folder-card-info{padding:12px}.folder-card-name{color:var(--folder-card-text,var(--gallery-text,#fff));text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:14px;font-weight:600;overflow:hidden}.folder-card-desc{color:color-mix(in srgb,var(--folder-card-text,var(--gallery-text,#fff))50%,transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}.folder-card-count{color:color-mix(in srgb,var(--folder-card-text,var(--gallery-text,#fff))60%,transparent);margin:0;font-size:12px}.photos-section{padding-top:8px}.photos-section-header{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.photos-section-header h3{color:#fff;margin:0;font-size:15px;font-weight:600}.photos-section-header span{color:#ffffff80;font-size:13px}.gallery-page.dark-mode{background:var(--gallery-bg,#0a0a0a);color:var(--gallery-text,#fff)}.gallery-page.dark-mode .gallery-header{background:0 0;border-bottom:none}.gallery-page.dark-mode .gallery-header h1{color:var(--gallery-text,#fff)}.gallery-page.dark-mode .gallery-header .gallery-photo-count{color:var(--gallery-text,#fff);opacity:.5}.gallery-page.dark-mode .photo-grid-masonry{background:var(--gallery-bg,#0a0a0a)}.gallery-page.dark-mode .photo-item{background:var(--gallery-card,#1a1a1a)}.gallery-page.dark-mode .gallery-empty{color:var(--gallery-text,#fff)}.gallery-page.dark-mode .gallery-empty .muted{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent)}.gallery-page.dark-mode .gallery-empty-icon{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent)}.gallery-page.dark-mode .gallery-empty-icon svg{color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent)}.gallery-page.dark-mode .loading{background:var(--gallery-bg,#0a0a0a)}.gallery-page.dark-mode .loading .spinner{border-color:#ffffff26;border-top-color:var(--brand-primary,#007aff)}.gallery-page.dark-mode .loading p{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent)}.gallery-page.dark-mode .error-page{background:var(--gallery-bg,#0a0a0a)}.gallery-page.dark-mode .error-page h1{color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent)}.gallery-page.dark-mode .error-page p{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent)}.gallery-breadcrumb-bar{background:color-mix(in srgb,var(--gallery-bg,#0a0a0a)85%,white 15%);border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding-right:12px;display:flex}.gallery-breadcrumb-bar .gallery-breadcrumb{border-bottom:none;flex:1;min-width:0}.breadcrumb-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn-breadcrumb-action{width:36px;height:36px;color:var(--gallery-text,#fff);cursor:pointer;background:#ffffff14;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .2s;display:flex}.btn-breadcrumb-action:hover{background:#ffffff26}.btn-breadcrumb-action.active{background:var(--brand-primary,#007aff);color:#fff}.custom-header,.custom-footer{width:100%;overflow:hidden}.custom-header{border-bottom:1px solid #ffffff1a}.custom-footer{border-top:1px solid #ffffff1a;margin-top:auto;padding:20px}.back-to-root{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:20px;align-items:center;gap:6px;margin-bottom:16px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .2s;display:inline-flex}.back-to-root:hover{background:#ffffff26}.folder-description{color:#ffffffb3;padding:0 20px 16px;font-size:14px;line-height:1.5}.session-header{text-align:center;background:#ffffff0d;border-bottom:1px solid #ffffff1a;padding:24px 20px}.session-header-logo{object-fit:contain;max-width:160px;max-height:48px;margin-bottom:16px}.session-header-title{letter-spacing:-.02em;margin:0 0 8px;font-size:24px;font-weight:600}.session-header-event{color:#fff9;margin:0 0 12px;font-size:14px}.session-header-guests{background:#ffffff1a;border-radius:16px;align-items:center;gap:6px;margin-bottom:12px;padding:6px 12px;font-size:14px;display:inline-flex}.session-header-guests svg{opacity:.7}.session-header-count{color:#ffffff80;margin:0;font-size:13px}.session-header-actions{justify-content:center;gap:12px;margin-top:16px;display:flex}.btn-download-all{color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:opacity .2s;display:inline-flex}.btn-download-all:hover:not(:disabled){opacity:.9}.btn-download-all:disabled{opacity:.5;cursor:not-allowed}.download-all-bar{background:#ffffff08;border-bottom:1px solid #ffffff1a;padding:16px 20px}.btn-download-all-full{color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 24px;font-size:15px;font-weight:600;transition:opacity .2s;display:flex}.btn-download-all-full:hover:not(:disabled){opacity:.9}.btn-download-all-full:disabled{opacity:.5;cursor:not-allowed}.session-footer{text-align:center;margin-top:auto;padding:24px 20px}.share-link-hint{color:#fff6;align-items:center;gap:6px;margin:0;font-size:13px;display:inline-flex}.share-link-hint svg{opacity:.6}.personal-gallery{flex-direction:column;min-height:100vh;display:flex;overflow-x:clip}.personal-gallery-header{text-align:center;background:linear-gradient(#ffffff14 0%,#0000 100%);padding:32px 20px 24px}.personal-gallery-icon{background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 16px;display:flex}.personal-gallery-icon svg{opacity:.8}.personal-gallery-header h1{letter-spacing:-.02em;margin:0 0 8px;font-size:26px;font-weight:600}.personal-gallery-stats{color:#fff9;margin:0;font-size:14px}.personal-gallery-actions{justify-content:center;gap:12px;margin-top:20px;display:flex}.personal-gallery-actions-bar{border-bottom:1px solid #ffffff1a;justify-content:flex-end;padding:8px 16px;display:flex}.personal-gallery-events{flex:1}.personal-event-section{border-bottom:1px solid #ffffff1a}.personal-event-section:last-child{border-bottom:none}.personal-event-header{width:100%;color:inherit;text-align:left;background:#ffffff08;border:none;justify-content:space-between;align-items:center;padding:16px 20px;transition:background .2s;display:flex}.personal-event-header:hover{background:#ffffff0f}.personal-event-info{flex:1;align-items:center;gap:14px;min-width:0;display:flex;overflow:hidden}.personal-event-logo{object-fit:cover;background:#ffffff1a;border-radius:10px;flex-shrink:0;width:44px;height:44px}.personal-event-icon{object-fit:contain;border-radius:8px;flex-shrink:0;width:36px;height:36px}.personal-event-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.personal-event-gallery-link{color:var(--gallery-text,#fff);white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff26;border-radius:6px;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.personal-event-gallery-link:hover{background:#ffffff1f;border-color:#ffffff40}.personal-event-details{flex:1;min-width:0}.personal-event-details h2{text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:16px;font-weight:600;overflow:hidden}.personal-event-details p{color:#ffffff80;margin:0;font-size:13px}.personal-event-subtitle{color:#ffffffb3;margin:0 0 2px;font-size:14px;font-weight:500}.personal-event-description{color:#fff6;margin:4px 0 0;font-size:13px;line-height:1.4}.expand-icon{flex-shrink:0;margin-left:8px;transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.select-event-btn{background:#ffffff1a;border-radius:16px;padding:6px 12px;font-size:13px}.select-event-btn:hover{background:#ffffff26}.gallery-event .photo-grid,.gallery-session .photo-grid{grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 0;display:grid}.gallery-event .photo-grid .photo-item,.gallery-session .photo-grid .photo-item{cursor:pointer;aspect-ratio:1;background:#ffffff0d;border-radius:6px;position:relative;overflow:hidden}.gallery-event .photo-grid .photo-item img,.gallery-event .photo-grid .photo-item video,.gallery-session .photo-grid .photo-item img,.gallery-session .photo-grid .photo-item video{image-orientation:from-image;width:100%;display:block;object-fit:cover!important;height:100%!important}@media (max-width:1024px){.gallery-event .photo-grid,.gallery-session .photo-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.gallery-event .photo-grid,.gallery-session .photo-grid{grid-template-columns:repeat(2,1fr);gap:3px}}.personal-gallery .photo-grid{grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 4px 100px;display:grid}.personal-gallery .photo-item{cursor:pointer;aspect-ratio:1;background:#ffffff0d;border-radius:6px;position:relative;overflow:hidden;border:none!important}.personal-gallery .photo-item>div{width:100%;height:100%}.personal-gallery .photo-item img,.personal-gallery .photo-item video{image-orientation:from-image;width:100%;transition:transform .3s,opacity .3s;display:block;object-fit:cover!important;height:100%!important}@media (hover:hover){.personal-gallery .photo-item:hover img,.personal-gallery .photo-item:hover video{transform:scale(1.05)}}.personal-gallery .photo-item:active img,.personal-gallery .photo-item:active video{opacity:.9;transform:scale(.97)}@media (prefers-reduced-motion:reduce){.personal-gallery .photo-item img,.personal-gallery .photo-item video{transition:opacity .3s}.personal-gallery .photo-item:hover img,.personal-gallery .photo-item:hover video,.personal-gallery .photo-item:active img,.personal-gallery .photo-item:active video{transform:none}}@media (max-width:1024px){.personal-gallery .photo-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.personal-gallery .photo-grid{grid-template-columns:repeat(2,1fr);gap:3px;padding:3px}}.personal-gallery-footer{text-align:center;background:0 0;padding:24px 20px}.personal-gallery-footer p{color:#fff6;margin:0;font-size:12px}.light-mode .personal-gallery-footer p{color:#00000059}@media (max-width:480px){.session-header{padding:20px 16px}.session-header-title{font-size:20px}.session-header-actions{flex-direction:column}.session-header-actions .btn{justify-content:center;width:100%}.personal-gallery-header{padding:24px 16px 20px}.personal-gallery-header h1{font-size:22px}.personal-gallery-actions{flex-direction:column}.personal-gallery-actions .btn{justify-content:center;width:100%}.personal-event-header{flex-direction:column;align-items:flex-start;gap:12px}.personal-event-header .expand-icon,.personal-event-header .select-event-btn{align-self:flex-end}}@supports (padding:env(safe-area-inset-top)){.session-header{padding-top:calc(24px + env(safe-area-inset-top))}.personal-gallery-header{padding-top:calc(32px + env(safe-area-inset-top))}.session-footer,.personal-gallery-footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}.btn-find-my-photos{color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:opacity .2s;display:inline-flex}.btn-find-my-photos:hover{opacity:.9}.gallery-page.dark-mode .btn-find-my-photos{box-shadow:0 2px 8px #0000004d}.find-my-photos-modal{z-index:200;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.find-my-photos-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d9;animation:.2s fadeIn;position:absolute;inset:0}.find-my-photos-content{background:var(--gallery-bg,#1a1a1a);width:100%;max-width:480px;max-height:90vh;color:var(--gallery-text,#fff);border-radius:20px;flex-direction:column;animation:.3s slideUp;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.find-my-photos-logo{justify-content:center;align-items:center;padding:20px 24px 0;display:flex}.find-my-photos-logo img{object-fit:contain;max-width:180px;max-height:40px}.find-my-photos-header{border-bottom:1px solid color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);align-items:center;gap:12px;padding:20px 24px;display:flex}.find-my-photos-header--bare{z-index:3;border-bottom:none;padding:0;position:absolute;top:14px;right:14px}.find-my-photos-header h2{color:var(--gallery-text,#fff);flex:1;margin:0;font-size:18px;font-weight:600}.find-my-photos-back{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);cursor:pointer;width:32px;height:32px;color:var(--gallery-text,#fff);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s;display:flex}.find-my-photos-back:hover{background:color-mix(in srgb,var(--gallery-text,#fff)20%,transparent)}.find-my-photos-close{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);cursor:pointer;width:32px;height:32px;color:var(--gallery-text,#fff);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s;display:flex}.find-my-photos-close:hover{background:color-mix(in srgb,var(--gallery-text,#fff)20%,transparent)}.find-my-photos-body{flex:1;padding:24px;overflow-y:auto}.find-my-photos-footer{border-top:1px solid color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.footer-retry-btn{border:1px solid color-mix(in srgb,var(--gallery-text,#fff)20%,transparent);color:var(--gallery-text,#fff);cursor:pointer;background:0 0;border-radius:20px;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.footer-retry-btn:hover{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent)}.footer-done-btn{color:#fff;cursor:pointer;border:none;border-radius:20px;flex:1;padding:12px 24px;font-size:15px;font-weight:600;transition:opacity .2s}.footer-done-btn:hover{opacity:.9}.selfie-capture{flex-direction:column;align-items:center;display:flex}.selfie-select-mode{text-align:center;width:100%}.selfie-icon{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;display:flex}.selfie-icon svg{width:40px;height:40px;color:var(--gallery-text,#fff)}.selfie-select-mode h3{color:var(--gallery-text,#fff);margin-bottom:8px;font-size:20px;font-weight:600}.selfie-description{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);margin-bottom:24px;font-size:14px}.selfie-capture--hero .selfie-description{color:color-mix(in srgb,var(--gallery-text,#fff)78%,transparent);max-width:300px;margin-left:auto;margin-right:auto;font-size:15px;line-height:1.55}.selfie-capture--hero .selfie-upload-btn{border:1px solid color-mix(in srgb,var(--gallery-text,#fff)22%,transparent);background:0 0}.selfie-error{color:#ff453a;background:#ff3b3026;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;font-size:13px;display:flex}.selfie-options{flex-direction:column;gap:12px;width:100%;max-width:280px;margin:0 auto;display:flex}.selfie-option-btn{cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:14px 24px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.selfie-camera-btn{background:var(--btn-color,#007aff);color:var(--btn-fg,white);border:none}.selfie-camera-btn:hover:not(:disabled){opacity:.9}.selfie-camera-btn:disabled{opacity:.5;cursor:not-allowed}.selfie-upload-btn{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);border:1px solid color-mix(in srgb,var(--gallery-text,#fff)20%,transparent);color:var(--gallery-text,#fff)}.selfie-upload-btn:hover:not(:disabled){background:color-mix(in srgb,var(--gallery-text,#fff)15%,transparent)}.selfie-option-btn svg{width:20px;height:20px}.selfie-cancel-btn{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);cursor:pointer;background:0 0;border:none;margin-top:16px;padding:12px;font-size:14px;font-weight:500;transition:color .2s}.selfie-cancel-btn:hover{color:var(--gallery-text,#fff)}.selfie-camera-mode{flex-direction:column;align-items:center;width:100%;display:flex}.selfie-camera-container{aspect-ratio:4/3;background:#000;border-radius:16px;width:100%;position:relative;overflow:hidden}.selfie-camera-container video{object-fit:cover;width:100%;height:100%}.selfie-camera-container video.mirror{transform:scaleX(-1)}.selfie-camera-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.selfie-face-guide{aspect-ratio:1;border:2px dashed #fff6;border-radius:50%;width:60%}.selfie-camera-controls{justify-content:center;align-items:center;gap:32px;margin-top:20px;display:flex}.selfie-control-btn{background:color-mix(in srgb,var(--gallery-text,#fff)8%,transparent);border:1px solid color-mix(in srgb,var(--gallery-text,#fff)14%,transparent);cursor:pointer;width:48px;height:48px;color:color-mix(in srgb,var(--gallery-text,#fff)75%,transparent);border-radius:50%;justify-content:center;align-items:center;transition:background .2s;display:flex}.selfie-control-btn:hover{background:color-mix(in srgb,var(--gallery-text,#fff)16%,transparent)}.selfie-control-btn svg{width:22px;height:22px}.selfie-capture-btn{background:var(--btn-color,#007aff);border:4px solid color-mix(in srgb,var(--btn-color,#007aff)55%,#000);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;padding:0;transition:transform .2s,filter .2s;display:flex}.selfie-capture-btn:hover{filter:brightness(1.08);transform:scale(1.05)}.selfie-capture-btn:active{transform:scale(.95)}.selfie-capture-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--btn-color,#007aff)45%,#fff);outline-offset:3px}.selfie-capture-btn svg{width:30px;height:30px;color:var(--btn-fg,#fff);display:block}.selfie-capture-label{text-align:center;color:var(--gallery-text,#fff);margin-top:8px;font-size:14px;font-weight:600}.selfie-camera-hint{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);text-align:center;margin-top:12px;font-size:13px}.selfie-preview-mode{flex-direction:column;align-items:center;width:100%;display:flex}.selfie-preview-container{aspect-ratio:4/3;background:#000;border-radius:16px;width:100%;overflow:hidden}.selfie-preview-container img{object-fit:cover;width:100%;height:100%}.selfie-preview-actions{flex-direction:column;gap:10px;width:100%;margin-top:20px;display:flex}.selfie-retake-btn{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);color:var(--gallery-text,#fff);cursor:pointer;border:none;border-radius:14px;flex:none;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:15px;font-weight:600;transition:background .2s;display:flex}.selfie-retake-btn:hover{background:color-mix(in srgb,var(--gallery-text,#fff)15%,transparent)}.selfie-retake-btn svg{width:18px;height:18px}.selfie-confirm-btn{color:var(--btn-fg,white);cursor:pointer;border:none;border-radius:14px;flex:none;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:15px;font-weight:600;transition:opacity .2s;display:flex}.selfie-confirm-btn:hover:not(:disabled){opacity:.9}.selfie-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.selfie-confirm-btn svg{width:18px;height:18px}.find-my-photos-processing{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.processing-spinner{border:3px solid color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);border-top-color:#007aff;border-radius:50%;width:48px;height:48px;margin-bottom:20px;animation:.8s linear infinite spin}.find-my-photos-processing p{color:var(--gallery-text,#fff);margin-bottom:8px;font-size:16px;font-weight:500}.find-my-photos-processing .processing-hint{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);font-size:13px}.find-my-photos-error{text-align:center;flex-direction:column;align-items:center;padding:40px 24px;display:flex}.find-my-photos-error .error-icon{background:#ff3b3026;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex}.find-my-photos-error .error-icon svg{color:#ff453a;width:36px;height:36px}.find-my-photos-error .error-message{color:var(--gallery-text,#fff);text-wrap:balance;max-width:300px;margin-bottom:24px;font-size:15px;line-height:1.5}.error-actions{flex-direction:column;gap:12px;width:100%;max-width:240px;display:flex}.error-retry-btn{color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:15px;font-weight:600;transition:opacity .2s;display:flex}.error-retry-btn:hover{opacity:.9}.error-retry-btn svg{width:16px;height:16px}.error-cancel-btn{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);cursor:pointer;background:0 0;border:none;padding:12px;font-size:14px;font-weight:500;transition:color .2s}.error-cancel-btn:hover{color:var(--gallery-text,#fff)}.match-results{width:100%}.match-results-empty{text-align:center;flex-direction:column;align-items:center;padding:40px 24px;display:flex}.match-empty-icon{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex}.match-empty-icon svg{width:36px;height:36px;color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent)}.match-results-empty h3{color:var(--gallery-text,#fff);margin-bottom:8px;font-size:18px;font-weight:600}.match-results-empty p{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);text-wrap:balance;margin-bottom:4px;font-size:14px}.match-results-empty .match-empty-hint{color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent);font-size:13px}.match-empty-tips{text-align:left;margin-top:12px}.match-empty-list{margin:8px 0 0;padding:0;list-style:none}.match-empty-list li{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);padding:3px 0 3px 16px;font-size:13px;position:relative}.match-empty-list li:before{content:"•";color:color-mix(in srgb,var(--gallery-text,#fff)30%,transparent);position:absolute;left:0}.match-empty-actions{gap:12px;margin-top:20px;display:flex}.match-empty-actions .btn-secondary{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);color:var(--gallery-text,#fff);border:1px solid color-mix(in srgb,var(--gallery-text,#fff)20%,transparent);cursor:pointer;border-radius:999px;padding:10px 24px;font-size:14px;font-weight:500}.match-empty-actions .btn-secondary:hover{background:color-mix(in srgb,var(--gallery-text,#fff)15%,transparent)}.match-summary{align-items:center;gap:16px;margin-bottom:16px;padding:16px 0;display:flex}.match-summary-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.match-summary-icon svg{color:#fff;width:24px;height:24px}.match-summary-text h3{margin-bottom:4px;font-size:18px;font-weight:600}.match-summary-text p{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);font-size:13px}.match-summary-counts{border-bottom:1px solid color-mix(in srgb,var(--gallery-text,#fff)8%,transparent);margin-bottom:12px;padding-bottom:12px}.match-summary-counts p{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);margin:0;font-size:13px}.match-actions-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.match-select-btn{background:color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);color:var(--gallery-text,#fff);cursor:pointer;border:none;border-radius:16px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.match-select-btn:hover{background:color-mix(in srgb,var(--gallery-text,#fff)15%,transparent)}.match-select-btn.active{background:color-mix(in srgb,var(--gallery-text,#fff)20%,transparent)}.match-download-all-btn{color:#fff;cursor:pointer;border:none;border-radius:16px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:opacity .2s;display:inline-flex}.match-download-all-btn:hover{opacity:.9}.match-selection-toolbar{background:color-mix(in srgb,var(--gallery-text,#fff)5%,transparent);border-radius:12px;align-items:center;gap:16px;margin-bottom:16px;padding:10px 16px;display:flex}.match-selection-toolbar span{color:var(--gallery-text,#fff);font-size:14px;font-weight:500}.match-link-btn{color:var(--brand-primary,#007aff);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:500}.match-link-btn:hover{text-decoration:underline}.match-photo-grid{border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;display:grid;overflow:hidden}.match-photo-grid.photo-grid-gated{filter:blur(12px);opacity:.6;pointer-events:none;-webkit-user-select:none;user-select:none;transition:filter .4s,opacity .4s}.match-photo-item{aspect-ratio:1;cursor:pointer;background:#2a2a2a;position:relative;overflow:hidden}.match-photo-item img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.match-photo-item:hover img{transform:scale(1.05)}.match-photo-item.selectable{cursor:pointer}.match-photo-item.selected{outline:3px solid var(--brand-primary,#007aff);outline-offset:-3px}.match-confidence-badge{background:#000000b3;border-radius:10px;align-items:center;height:20px;display:flex;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}.match-confidence-badge .confidence-bar{opacity:.3;border-radius:10px;height:100%;position:absolute;top:0;left:0}.match-confidence-badge span{z-index:1;color:#fff;white-space:nowrap;padding:0 8px;font-size:10px;font-weight:600;position:relative}.match-checkbox{background:#00000080;border:2px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.match-checkbox.checked{background:var(--brand-primary,#007aff);border-color:var(--brand-primary,#007aff)}.match-checkbox svg{color:#fff}.match-photo-download{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;opacity:0;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:opacity .2s;display:flex;position:absolute;top:8px;right:8px}.match-photo-item:hover .match-photo-download{opacity:1}.match-photo-download:hover{background:#000c}.match-legend{border-top:1px solid color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);flex-wrap:wrap;gap:16px;margin-top:16px;padding-top:16px;display:flex}.match-legend-item{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);align-items:center;gap:6px;font-size:11px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot.high{background:#30d158}.legend-dot.medium{background:#ff9f0a}.legend-dot.low{background:#ff453a}.match-tag-banner{background:color-mix(in srgb,var(--gallery-text,#fff)5%,transparent);border:1px solid color-mix(in srgb,var(--gallery-text,#fff)10%,transparent);border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.match-tag-banner-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.match-tag-banner-icon svg{color:#fff}.match-tag-banner-text{flex-direction:column;gap:2px;display:flex}.match-tag-banner-text strong{color:var(--gallery-text,#fff);font-size:13px;font-weight:600}.match-tag-banner-text span{color:color-mix(in srgb,var(--gallery-text,#fff)60%,transparent);font-size:12px}.match-tag-badge{cursor:pointer;color:#fff;z-index:5;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #0000004d}.match-tag-badge:hover{transform:scale(1.1);box-shadow:0 4px 12px #0006}.match-tag-badge span{background:#ff453a;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:-4px;right:-4px}@media (max-width:480px){.match-tag-banner{padding:10px 12px}.match-tag-banner-icon{width:32px;height:32px}.match-tag-badge{width:24px;height:24px}.find-my-photos-content{border-radius:20px;max-width:100%;max-height:100%}.find-my-photos-body{padding:20px}.match-photo-grid{grid-template-columns:repeat(2,1fr)}.selfie-options{max-width:100%}}.tag-friend-modal{z-index:200;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tag-friend-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d9;animation:.2s fadeIn;position:absolute;inset:0}.tag-friend-content{background:#1a1a1a;border-radius:20px;flex-direction:column;width:100%;max-width:420px;max-height:90vh;animation:.3s slideUp;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px #00000080}.tag-friend-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.tag-friend-header h2{color:#fff;margin:0;font-size:18px;font-weight:600}.tag-friend-close{cursor:pointer;color:#fff;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:background .2s;display:flex}.tag-friend-close:hover{background:#fff3}.tag-friend-body{flex:1;padding:24px;overflow-y:auto}.tag-friend-preview{justify-content:center;margin-bottom:20px;display:flex}.tag-friend-face-crop{border:3px solid #fff3;border-radius:50%;width:100px;height:100px;overflow:hidden;box-shadow:0 4px 16px #0000004d}.tag-friend-face-crop img{object-fit:cover;width:100%;height:100%}.tag-friend-form{flex-direction:column;gap:16px;display:flex}.tag-friend-description{text-align:center;color:#ffffffb3;margin:0 0 8px;font-size:14px}.tag-friend-field{flex-direction:column;gap:6px;display:flex}.tag-friend-field label{color:#fff9;font-size:13px;font-weight:500}.tag-friend-field input,.tag-friend-field textarea{color:#fff;background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;width:100%;padding:12px 14px;font-size:15px;transition:border-color .2s,background .2s}.tag-friend-field input::placeholder,.tag-friend-field textarea::placeholder{color:#ffffff4d}.tag-friend-field input:focus,.tag-friend-field textarea:focus{border-color:var(--brand-primary,#007aff);background:#ffffff1a;outline:none;box-shadow:0 0 0 3px #0a84ff33}.tag-friend-field textarea{resize:none;min-height:60px}.tag-friend-field-optional label:after{content:" (optional)";opacity:.6;font-weight:400}.tag-friend-divider{align-items:center;gap:12px;margin:4px 0;display:flex}.tag-friend-divider:before,.tag-friend-divider:after{content:"";background:#ffffff1a;flex:1;height:1px}.tag-friend-divider span{color:#fff6;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.tag-friend-error{color:#ff453a;background:#ff3b3026;border-radius:10px;align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex}.tag-friend-submit{color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:8px;padding:14px 24px;font-size:16px;font-weight:600;transition:opacity .2s;display:flex}.tag-friend-submit:hover{opacity:.9}.tag-friend-privacy{color:#fff6;justify-content:center;align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.tag-friend-submitting{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.tag-friend-spinner{border:3px solid #ffffff1a;border-top-color:#007aff;border-radius:50%;width:48px;height:48px;margin-bottom:20px;animation:.8s linear infinite spin}.tag-friend-submitting p{color:#fff;margin:0;font-size:16px;font-weight:500}.tag-friend-success{text-align:center;flex-direction:column;align-items:center;padding:20px 0;display:flex}.tag-friend-success-icon{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:20px;display:flex}.tag-friend-success-icon svg{color:#fff}.tag-friend-success h3{color:#fff;margin:0 0 8px;font-size:20px;font-weight:600}.tag-friend-success p{color:#fff9;max-width:280px;margin:0 0 24px;font-size:14px}.tag-friend-share-actions{gap:12px;width:100%;margin-bottom:16px;display:flex}.tag-friend-share-btn{color:#fff;cursor:pointer;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;transition:opacity .2s;display:flex}.tag-friend-share-btn:hover{opacity:.9}.tag-friend-copy-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;transition:background .2s;display:flex}.tag-friend-copy-btn:hover{background:#ffffff26}.tag-friend-done-btn{color:#fffc;cursor:pointer;background:#ffffff1a;border:none;border-radius:10px;width:100%;padding:12px 24px;font-size:14px;font-weight:500;transition:background .2s}.tag-friend-done-btn:hover{background:#ffffff26}.tag-friend-error-state{text-align:center;flex-direction:column;align-items:center;padding:40px 24px;display:flex}.tag-friend-error-icon{background:#ff3b3026;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex}.tag-friend-error-icon svg{color:#ff453a}.tag-friend-error-message{color:#fff;max-width:300px;margin-bottom:24px;font-size:15px;line-height:1.5}.tag-friend-error-actions{flex-direction:column;gap:12px;width:100%;max-width:240px;display:flex}.tag-friend-retry-btn{color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:15px;font-weight:600;transition:opacity .2s;display:flex}.tag-friend-retry-btn:hover{opacity:.9}.tag-friend-cancel-btn{color:#fff9;cursor:pointer;background:0 0;border:none;padding:12px;font-size:14px;font-weight:500;transition:color .2s}.tag-friend-cancel-btn:hover{color:#fff}.face-highlight-container{width:100%;position:relative;overflow:hidden}.face-highlight-image{object-fit:contain;width:100%;height:100%;display:block}.face-highlight-overlay{pointer-events:none;position:absolute;inset:0}.face-highlight-box{pointer-events:auto;border:2px solid;border-radius:4px;transition:all .2s;position:absolute}.face-highlight-box.unidentified{border-style:dashed;animation:2s ease-in-out infinite facePulse}.face-highlight-box.clickable{cursor:pointer}.face-highlight-box.clickable:hover{border-width:3px;animation:none}@keyframes facePulse{0%,to{opacity:.8}50%{opacity:1}}.face-highlight-label{color:#fff;white-space:nowrap;pointer-events:none;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:flex;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.face-highlight-tooltip{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;white-space:nowrap;pointer-events:none;background:#000000d9;border-radius:8px;padding:8px 12px;font-size:12px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.face-highlight-tooltip:after{content:"";border:6px solid #0000;border-top-color:#000000d9;position:absolute;top:100%;left:50%;transform:translate(-50%)}.face-highlight-indicator{color:#fff;border-radius:16px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex;position:absolute;bottom:12px;right:12px}.face-marker{color:#fff;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:flex;position:absolute;top:8px;right:8px}.photo-with-faces{aspect-ratio:1;cursor:pointer;position:relative;overflow:hidden}.photo-with-faces img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.photo-with-faces:hover img{transform:scale(1.05)}.photo-tag-badge{color:#fff;cursor:pointer;border:none;border-radius:14px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;transition:transform .2s,opacity .2s;display:flex;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 8px #0000004d}.photo-tag-badge:hover{transform:scale(1.05)}.photo-tag-badge:active{transform:scale(.95)}.invitation-page{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;display:flex}.invitation-card{background:#1a1a1a;border-radius:24px;width:100%;max-width:420px;overflow:hidden;box-shadow:0 25px 50px #00000080}.invitation-preview{aspect-ratio:4/3;position:relative;overflow:hidden}.invitation-preview img{object-fit:cover;width:100%;height:100%}.invitation-preview-overlay{background:linear-gradient(#0000 50%,#000000b3 100%);justify-content:center;align-items:flex-end;padding:20px;display:flex;position:absolute;inset:0}.invitation-preview-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#fff3;border-radius:16px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.invitation-content{text-align:center;padding:32px 24px}.invitation-content h1{color:#fff;margin:0 0 8px;font-size:24px;font-weight:600}.invitation-message{color:#ffffffb3;margin:0 0 16px;font-size:15px}.invitation-event{background:#ffffff0d;border-radius:12px;margin-bottom:16px;padding:16px}.invitation-event h2{color:#fff;margin:0 0 4px;font-size:18px;font-weight:600}.invitation-event p{color:#ffffff80;margin:0;font-size:14px}.invitation-count{color:#ffffff80;margin:0 0 24px;font-size:13px}.invitation-actions{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.invitation-primary-btn{color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;padding:16px 24px;font-size:16px;font-weight:600;transition:opacity .2s;display:flex}.invitation-primary-btn:hover{opacity:.9}.invitation-secondary-btn{color:#fffc;cursor:pointer;background:#ffffff1a;border:none;border-radius:14px;width:100%;padding:14px 24px;font-size:15px;font-weight:500;transition:background .2s}.invitation-secondary-btn:hover{background:#ffffff26}.invitation-hint{color:#fff6;justify-content:center;align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.invitation-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.invitation-spinner{border:3px solid #ffffff1a;border-top-color:#007aff;border-radius:50%;width:48px;height:48px;margin-bottom:20px;animation:.8s linear infinite spin}.invitation-loading p{color:#ffffffb3;margin:0;font-size:15px}.invitation-processing{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 24px;display:flex}.invitation-processing p{color:#fff;margin:0 0 8px;font-size:16px;font-weight:500}.invitation-processing-hint{color:#ffffff80!important;font-size:13px!important;font-weight:400!important}.invitation-error{text-align:center;flex-direction:column;align-items:center;padding:60px 24px;display:flex}.invitation-error-icon{color:#ff453a;margin-bottom:20px}.invitation-error h1{color:#fff;margin:0 0 8px;font-size:24px;font-weight:600}.invitation-error p{color:#fff9;margin:0 0 24px;font-size:15px}.invitation-retry-btn{color:#fff;cursor:pointer;border:none;border-radius:12px;padding:14px 32px;font-size:15px;font-weight:600;transition:opacity .2s}.invitation-retry-btn:hover{opacity:.9}.invitation-selfie{background:#1a1a1a;border-radius:20px;width:100%;max-width:480px;padding:24px}.invitation-selfie-header{align-items:center;gap:16px;margin-bottom:20px;display:flex}.invitation-back-btn{color:#ffffffb3;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:8px 0;font-size:14px;transition:color .2s;display:flex}.invitation-back-btn:hover{color:#fff}.invitation-selfie-header h2{color:#fff;margin:0;font-size:18px;font-weight:600}.invitation-results{background:#1a1a1a;border-radius:20px;width:100%;max-width:600px;max-height:90vh;padding:24px;overflow-y:auto}.invitation-results-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.invitation-results-header h2{color:#fff;margin:0;font-size:20px;font-weight:600}.invitation-gallery-btn{color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;transition:opacity .2s}.invitation-gallery-btn:hover{opacity:.9}@media (max-width:480px){.invitation-page{padding:0}.invitation-card{border-radius:0;max-width:100%;min-height:100vh}.invitation-content{padding:24px 20px}.invitation-selfie,.invitation-results{border-radius:0;max-width:100%;min-height:100vh}.tag-friend-content{border-radius:0;max-width:100%;height:100%;max-height:100%}}.infinite-scroll-sentinel{justify-content:center;align-items:center;gap:10px;padding:32px 0;display:flex}.infinite-scroll-sentinel .loading-text{color:var(--gallery-text,#fff);opacity:.5;font-size:13px;font-weight:500}.show-more-bar{justify-content:center;padding:16px 20px;display:flex}.btn-show-more{cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:20px;align-items:center;gap:6px;padding:10px 24px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s;display:inline-flex}.btn-show-more:hover{background:#ffffff14;border-color:#ffffff4d}.gallery-page .photo-item .photo-attribution-badge{z-index:2;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;background:#0000008c;border-radius:6px;max-width:80%;padding:2px 7px;font-size:10px;font-weight:500;display:none;position:absolute;bottom:6px;left:6px;overflow:hidden}@media (hover:hover){.gallery-page .photo-item:hover .photo-attribution-badge{display:block}}.gallery-page .photo-item .gallery-img{overflow:hidden;background:#1a1a1a!important}.gallery-page .photo-item .gallery-img:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff0a 50%,#0000 100%);animation:1.5s ease-in-out infinite galleryShimmer;position:absolute;inset:0}.gallery-page .photo-item .gallery-img img,.gallery-page .photo-item .gallery-img video{z-index:1;position:relative}@keyframes galleryShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.gallery-page .photo-item img.gallery-img{opacity:0;animation:.4s forwards galleryImgFadeIn}@keyframes galleryImgFadeIn{0%{opacity:0}to{opacity:1}}.gallery-page.dark-mode .gallery-company-logo{max-width:120px;max-height:36px}.gallery-page.dark-mode .gallery-event-header{background:#ffffff08;border-bottom-color:#ffffff1a}.gallery-page.dark-mode .gallery-event-header h2{color:var(--gallery-text,#fff)}.gallery-page.dark-mode .gallery-event-header p{color:#ffffff80}.gallery-page.dark-mode .gallery-event-header .event-logo{background:#ffffff1a}.gallery-page.dark-mode .gallery-session-header{background:#ffffff08;border-bottom-color:#ffffff1a}.gallery-page.dark-mode .gallery-session-header .session-info h2{color:var(--gallery-text,#fff)}.gallery-page.dark-mode .gallery-session-header .session-info p{color:#ffffff80}.gallery-page.dark-mode .password-screen h1{color:var(--gallery-text,#fff)}.gallery-page.dark-mode .password-screen>p{color:#ffffff80}.gallery-page.dark-mode .password-form input{color:var(--gallery-text,#fff);background:#ffffff1a;border-color:#fff3}.gallery-page.dark-mode .password-form input:focus{border-color:var(--brand-primary,#007aff)}.lightbox-video-wrapper{flex-shrink:1;justify-content:center;align-items:center;max-width:100%;min-height:0;max-height:100%;display:flex;position:relative}.lightbox-video-failed{text-align:center;color:#fff;background:#000000d1;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.lightbox-video-failed strong{font-size:15px;font-weight:600}.lightbox-video-failed span{opacity:.78;max-width:34ch;font-size:13px;line-height:1.45}.lightbox-mute-toggle{color:#fff;cursor:pointer;z-index:10;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s;display:flex;position:absolute;top:12px;right:12px}.lightbox-mute-toggle:hover{background:#000c}.gallery-video-overlay{opacity:.85;pointer-events:none;z-index:2;background:#0000008c;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:opacity .2s,transform .2s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-page .photo-item:hover .gallery-video-overlay{opacity:1;transform:translate(-50%,-50%)scale(1.05)}.gallery-video-failed{text-align:center;color:#fff;pointer-events:none;z-index:3;background:#0000009e;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px;display:flex;position:absolute;inset:0}.gallery-video-failed svg{opacity:.9;flex:none}.gallery-video-failed-title{font-size:12px;font-weight:600;line-height:1.25}.gallery-video-failed-hint{opacity:.75;font-size:11px;line-height:1.2}@media (max-width:480px){.gallery-video-failed-hint{display:none}}.gallery-page .photo-item .gallery-video,.gallery-page .photo-item .gallery-gif{object-fit:cover;width:100%;height:100%}.media-badge{color:#fff;letter-spacing:.5px;pointer-events:none;z-index:2;background:#000000b3;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;top:8px;left:8px}.photo-spread-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffd9;pointer-events:none;z-index:2;opacity:0;background:#0009;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;transition:opacity .2s;display:flex;position:absolute;bottom:6px;right:6px}.gallery-page .photo-item:hover .photo-spread-badge{opacity:1}.photo-share-btn{color:#fff;cursor:pointer;opacity:0;z-index:2;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:opacity .2s;display:flex;position:absolute;bottom:8px;right:8px}.gallery-page .photo-item:hover .photo-share-btn{opacity:1}.photo-share-btn:hover{background:#000c}.lightbox-video{border-radius:8px;max-width:90vw;max-height:80vh}.print-modal-overlay{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.print-modal{background:var(--gallery-card-color,#1a1a1a);width:90%;max-width:440px;color:var(--gallery-text-color,#fff);border:1px solid #ffffff1a;border-radius:16px;position:relative}.print-modal-close{color:#ffffff80;cursor:pointer;z-index:1;background:0 0;border:none;border-radius:8px;padding:8px;position:absolute;top:12px;right:12px}.print-modal-close:hover{color:#fff;background:#ffffff1a}.print-modal-body{padding:28px 24px}.print-modal-title{align-items:center;margin-bottom:20px;font-size:1.15rem;font-weight:600;display:flex}.print-stations-list{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.print-station-card{cursor:pointer;color:inherit;text-align:left;background:#ffffff0d;border:2px solid #ffffff1a;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.print-station-card:hover{background:#ffffff14}.print-station-card.selected{background:#ffffff1a}.print-station-info{flex-direction:column;gap:2px;display:flex}.print-station-name{font-size:.95rem;font-weight:600}.print-station-type{opacity:.5;font-size:.8rem}.print-station-status{border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:500}.print-station-status.online{color:#3fb950;background:#3fb95026}.print-quantity-row{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.print-quantity-row label{font-size:.9rem;font-weight:500}.print-quantity-controls{align-items:center;gap:12px;display:flex}.print-quantity-controls button{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;display:flex}.print-quantity-controls button:hover:not(:disabled){background:#ffffff1f}.print-quantity-controls button:disabled{opacity:.3;cursor:default}.print-quantity-controls span{text-align:center;min-width:24px;font-size:1.1rem;font-weight:600}.print-submit-btn{justify-content:center;align-items:center;width:100%;display:flex}.gallery-gate-locked .gallery-header,.gallery-gate-locked .photo-grid-masonry,.gallery-gate-locked .photo-grid-uniform,.gallery-gate-locked .gallery-time-section,.gallery-gate-locked .gallery-folder-section,.gallery-gate-locked .gallery-section-nav,.gallery-gate-locked .folder-nav,.gallery-gate-locked .gallery-actions,.gallery-gate-locked .floating-selection-bar,.gallery-gate-locked .custom-header,.gallery-gate-locked .gallery-footer{filter:blur(12px);pointer-events:none;-webkit-user-select:none;user-select:none}.gallery-gate-locked .photo-item{pointer-events:none}.ad-interstitial-overlay{z-index:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;justify-content:center;align-items:center;padding:24px;animation:.3s gate-fade-in;display:flex;position:fixed;inset:0}.ad-interstitial-content{flex-direction:column;align-items:center;gap:20px;width:100%;max-width:600px;display:flex}.ad-interstitial-media{border-radius:12px;box-shadow:0 20px 60px #00000080}.ad-interstitial-headline{color:#fff;text-align:center;letter-spacing:-.3px;margin:0;font-size:20px;font-weight:700}.ad-interstitial-actions{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;display:flex}.ad-interstitial-cta{background:var(--brand-primary,#007aff);color:#fff;text-align:center;border-radius:12px;justify-content:center;align-items:center;width:100%;padding:12px 28px;font-size:15px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.ad-interstitial-cta:hover{opacity:.85}.ad-interstitial-close{color:#ffffffb3;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;width:100%;padding:10px 24px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s}.ad-interstitial-close:hover:not(:disabled){color:#fff;background:#ffffff1f}.ad-interstitial-close:disabled{opacity:.4;cursor:not-allowed}.gallery-gate-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.3s gate-fade-in;display:flex;position:fixed;inset:0}@keyframes gate-fade-in{0%{opacity:0}to{opacity:1}}.gallery-gate-card{-webkit-backdrop-filter:blur(40px)saturate(180%);backdrop-filter:blur(40px)saturate(180%);background:#1c1c1eeb;border:1px solid #ffffff1f;border-radius:20px;width:100%;max-width:420px;padding:36px 32px 32px;animation:.35s gate-slide-up;box-shadow:0 20px 60px #00000080}@keyframes gate-slide-up{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.gallery-gate-title{color:#fff;text-align:center;letter-spacing:-.3px;margin:0 0 8px;font-size:22px;font-weight:700}.gallery-gate-desc{color:#fff9;text-align:center;margin:0 0 24px;font-size:14px;line-height:1.5}.gallery-gate-form{flex-direction:column;gap:16px;display:flex}.gallery-gate-field{flex-direction:column;gap:6px;display:flex}.gallery-gate-label{color:#ffffffb3;font-size:13px;font-weight:600}.gallery-gate-required{color:#ef4444;margin-left:2px}.gallery-gate-input{background:color-mix(in srgb,var(--gallery-text,#fff)8%,transparent);border:1px solid color-mix(in srgb,var(--gallery-text,#fff)12%,transparent);color:var(--gallery-text,#fff);border-radius:10px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.gallery-gate-input::placeholder{color:color-mix(in srgb,var(--gallery-text,#fff)30%,transparent)}.gallery-gate-input:focus{border-color:color-mix(in srgb,var(--gallery-text,#fff)30%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--gallery-text,#fff)10%,transparent)}.gallery-gate-error{color:#ef4444;text-align:center;margin:0;font-size:13px}.gallery-gate-terms{color:#ffffffb3;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:10px;font-size:13px;line-height:1.45;display:flex}.gallery-gate-submit{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:12px;margin-top:4px;padding:14px;font-family:inherit;font-size:16px;font-weight:600;transition:opacity .15s}.gallery-gate-submit:hover{opacity:.9}.gallery-gate-submit:disabled{opacity:.6;cursor:not-allowed}@media (max-width:480px){.gallery-gate-card{border-radius:16px;padding:28px 20px 24px}.gallery-gate-title{font-size:20px}}.gallery-gate-find-photos{text-align:center;margin-top:4px}.gallery-gate-divider{align-items:center;gap:12px;margin:16px 0;display:flex}.gallery-gate-divider:before,.gallery-gate-divider:after{content:"";background:color-mix(in srgb,var(--gallery-text,#fff)12%,transparent);flex:1;height:1px}.gallery-gate-divider span{color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.gallery-gate-find-photos-btn{cursor:pointer;background:0 0;border:1.5px solid;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 16px;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex}.gallery-gate-find-photos-btn:hover{background:color-mix(in srgb,var(--gallery-text,#fff)6%,transparent)}.gallery-gate-find-photos-hint{color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent);margin-top:8px;font-size:12px}.find-my-photos-contact-form{flex-direction:column;align-items:center;padding:8px 0;display:flex}.find-my-photos-contact-form .contact-form-desc{color:color-mix(in srgb,var(--gallery-text,#fff)70%,transparent);text-align:center;margin-bottom:20px;font-size:14px;line-height:1.4}.contact-form-fields{flex-direction:column;gap:14px;width:100%;max-width:340px;display:flex}.contact-form-field{flex-direction:column;gap:4px;display:flex}.contact-form-field label{color:color-mix(in srgb,var(--gallery-text,#fff)70%,transparent);font-size:13px;font-weight:600}.contact-form-required{color:#ef4444;margin-left:2px}.contact-form-hint{color:color-mix(in srgb,var(--gallery-text,#fff)35%,transparent);text-align:center;margin-top:2px;font-size:12px}.contact-form-error{color:#ef4444;text-align:center;margin-top:10px;font-size:13px}.contact-form-submit{color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;max-width:340px;margin-top:20px;margin-left:auto;margin-right:auto;padding:14px;font-size:16px;font-weight:600;transition:opacity .2s;display:inline-flex}.contact-form-submit:hover{opacity:.9}.find-my-photos-success{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.find-my-photos-success .success-icon{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:8px;display:flex}.find-my-photos-success h3{color:var(--gallery-text,#fff);margin:0;font-size:22px;font-weight:700}.find-my-photos-success p{color:color-mix(in srgb,var(--gallery-text,#fff)70%,transparent);margin:0;font-size:15px;line-height:1.4}.find-my-photos-success .success-hint{color:color-mix(in srgb,var(--gallery-text,#fff)40%,transparent);font-size:13px}.find-my-photos-success .success-done-btn{color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;margin-top:16px;padding:12px 32px;font-size:15px;font-weight:600;transition:opacity .2s;display:inline-flex}.find-my-photos-success .success-done-btn:hover{opacity:.9}.find-my-photos-save-cta{align-items:center;gap:6px;display:inline-flex}.find-my-photos-mode-toggle{background:color-mix(in srgb,var(--gallery-text,#fff)8%,transparent);border-radius:10px;gap:4px;margin:0 24px 16px;padding:4px;display:flex}.mode-toggle-btn{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.mode-toggle-btn:hover{color:color-mix(in srgb,var(--gallery-text,#fff)70%,transparent);background:color-mix(in srgb,var(--gallery-text,#fff)5%,transparent)}.mode-toggle-btn.active{color:var(--gallery-text,#fff)}.find-my-photos-contact-lookup{flex-direction:column;gap:12px;padding:8px 24px 24px;display:flex}.contact-lookup-desc{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);text-align:center;margin:0;font-size:14px}.contact-lookup-tabs{border:1px solid color-mix(in srgb,var(--gallery-text,#fff)15%,transparent);border-radius:8px;gap:0;display:flex;overflow:hidden}.contact-lookup-tab{color:color-mix(in srgb,var(--gallery-text,#fff)50%,transparent);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 16px;font-size:14px;font-weight:500;transition:all .15s}.contact-lookup-tab:hover{color:color-mix(in srgb,var(--gallery-text,#fff)80%,transparent)}.contact-lookup-tab.active{color:var(--gallery-text,#fff);background:color-mix(in srgb,var(--gallery-text,#fff)8%,transparent);border-bottom-color:currentColor}.contact-lookup-input{text-align:center;padding:14px 16px!important;font-size:17px!important}.gallery-section-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--gallery-bg,#0a0a0a);border-bottom:1px solid #ffffff14;gap:8px;padding:14px 20px;display:flex;overflow-x:auto}.gallery-section-nav::-webkit-scrollbar{display:none}.gallery-section-nav-item{color:var(--gallery-text,#fff);opacity:.6;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #fff3;border-radius:999px;flex-shrink:0;padding:6px 16px;font-size:13px;font-weight:500;transition:all .2s}.gallery-section-nav-item:hover{opacity:.9;border-color:#fff6}.gallery-section-nav-item.active{opacity:1;border-color:var(--primary,#007aff);background:#ffffff0d}.gallery-folder-section{margin-bottom:8px;scroll-margin-top:70px}.gallery-folder-section-header{justify-content:space-between;align-items:flex-start;padding:20px 20px 10px;display:flex}.gallery-folder-section-header h3{color:var(--gallery-text,#fff);margin:0;font-size:16px;font-weight:600}.gallery-folder-section-desc{color:var(--gallery-text,#fff);opacity:.5;margin:4px 0 0;font-size:13px}.gallery-folder-section-count{color:var(--gallery-text,#fff);opacity:.4;white-space:nowrap;padding-top:3px;font-size:12px}@media (max-width:640px){.gallery-section-nav{padding:10px 12px}.gallery-folder-section{scroll-margin-top:70px}.gallery-section-nav-item{padding:5px 12px;font-size:12px}.gallery-folder-section-header{padding:16px 12px 8px}.gallery-folder-section-header h3{font-size:15px}}.download-modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.download-modal{background:var(--gallery-bg,#1a1a1a);text-align:center;width:90%;max-width:420px;color:var(--gallery-text,#fff);border-radius:16px;padding:40px 32px 32px;position:relative;box-shadow:0 20px 60px #0000004d}.download-modal-close{color:var(--gallery-text,#fff);opacity:.5;cursor:pointer;background:0 0;border:none;padding:4px;position:absolute;top:12px;right:12px}.download-modal-close:hover{opacity:1}.download-modal h3{margin:0 0 8px;font-size:20px;font-weight:600}.download-modal p{color:var(--gallery-text,#fff);opacity:.6;margin:0 0 20px;font-size:14px;line-height:1.5}.download-modal-meta{opacity:.4!important;margin-bottom:24px!important;font-size:13px!important}.download-modal-spinner{margin-bottom:20px}.download-modal-spinner .spinner{width:36px;height:36px;margin:0 auto}.download-modal-icon{justify-content:center;margin-bottom:16px;display:flex}.download-modal-icon--ready{color:#34c759}.download-modal-icon--failed{color:#ff3b30}.download-modal-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:10px 28px;font-size:15px;font-weight:600;transition:opacity .15s;display:inline-flex}.download-modal-btn:hover{opacity:.85}.download-modal-btn--secondary{color:var(--gallery-text,#fff)!important;background:#ffffff1a!important}.download-modal-btn--secondary:disabled{opacity:.3;cursor:default}.download-modal-notify{flex-direction:column;gap:10px;margin-top:8px;display:flex}.download-modal-notify-label{opacity:.5!important;margin-bottom:0!important;font-size:13px!important}.download-modal-input{border:1.5px solid color-mix(in srgb,var(--gallery-text,#fff)25%,transparent);background:color-mix(in srgb,var(--gallery-text,#fff)6%,transparent);width:100%;color:var(--gallery-text,#fff);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 14px;font-size:14px}.download-modal-input:focus{border-color:var(--brand-primary,#007aff);box-shadow:0 0 0 3px #0a84ff33}.download-modal-input::placeholder{color:var(--gallery-text,#fff);opacity:.3}.download-modal-notify-sent{font-weight:500;color:#34c759!important;opacity:1!important}@media (max-width:480px){.download-modal{width:95%;padding:24px 20px 20px}.download-modal-input{padding:12px 14px;font-size:16px}.download-modal-btn{width:100%;padding:12px 20px}}.personal-stats-bar{justify-content:center;gap:12px;max-width:600px;margin:0 auto;padding:0 20px 24px;display:flex}.personal-stats-card{background:#ffffff0f;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 8px;display:flex}.personal-stats-value{color:#fff;font-size:22px;font-weight:700;line-height:1}.personal-stats-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:500}.personal-stats-skeleton{animation:1.5s ease-in-out infinite stats-pulse}.skeleton-number{background:#ffffff1a;border-radius:4px;width:40px;height:22px}.skeleton-label{background:#ffffff0f;border-radius:3px;width:50px;height:11px}@keyframes stats-pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width:480px){.personal-stats-bar{gap:8px;padding:0 12px 20px}.personal-stats-card{padding:10px 4px}.personal-stats-value{font-size:18px}.personal-stats-label{font-size:10px}}.wrapped-page{color:#fff;scroll-snap-type:y mandatory;background:#0a0a0a;height:100vh;min-height:100vh;overflow:hidden auto}.wrapped-loading,.wrapped-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:20px;display:flex}.wrapped-loading-spinner{border:3px solid #ffffff26;border-top-color:#7b1fa2;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.wrapped-btn{color:#fff;background:#7b1fa2;border-radius:999px;margin-top:8px;padding:10px 24px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.wrapped-section{scroll-snap-align:start;text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:60px 24px;display:flex}.wrapped-section>section{width:100%;max-width:480px}.wrapped-eyebrow{text-transform:uppercase;letter-spacing:2px;color:#fff6;margin-bottom:16px;font-size:13px;font-weight:600}.wrapped-section-label{text-transform:uppercase;letter-spacing:2px;color:#4caf50;margin-bottom:24px;font-size:12px;font-weight:600}.wrapped-hero-title{margin:0 0 32px;font-size:48px;font-weight:800;line-height:1.1}.wrapped-gradient-text{background:linear-gradient(135deg,#7b1fa2,#4caf50);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.wrapped-scroll-hint{opacity:.4;margin-top:48px;animation:2s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.wrapped-stat{flex-direction:column;align-items:center;gap:8px;display:flex}.wrapped-stat-number{background:linear-gradient(135deg,#7b1fa2,#4caf50);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:64px;font-weight:800;line-height:1}.wrapped-stat-label{color:#fff9;font-size:16px;font-weight:500}.wrapped-event-list{flex-direction:column;gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}.wrapped-event-item{background:#ffffff0d;border:1px solid #ffffff0f;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.wrapped-event-name{text-align:left;font-size:14px;font-weight:600}.wrapped-event-count{color:#ffffff80;white-space:nowrap;margin-left:12px;font-size:13px}.wrapped-big-name{margin:0 0 24px;font-size:36px;font-weight:800;line-height:1.15}.wrapped-event-date{color:#fff6;margin-top:12px;font-size:14px}.wrapped-big-number .wrapped-stat-number{font-size:80px}.wrapped-subtext{color:#ffffff80;margin-top:16px;font-size:15px}.wrapped-best-photo{opacity:0;border-radius:16px;max-width:360px;margin:24px auto 0;transition:transform .6s,opacity .6s;overflow:hidden;transform:scale(.9)}.wrapped-best-photo.visible{opacity:1;transform:scale(1)}.wrapped-best-photo img{width:100%;display:block}.wrapped-fun-cards{opacity:0;justify-content:center;gap:12px;margin-top:24px;transition:opacity .5s,transform .5s;display:flex;transform:translateY(20px)}.wrapped-fun-cards.visible{opacity:1;transform:translateY(0)}.wrapped-fun-card{background:#ffffff0f;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:8px;max-width:200px;padding:20px 16px;display:flex}.wrapped-fun-emoji{font-size:28px}.wrapped-fun-title{text-transform:uppercase;letter-spacing:1px;color:#fff6;font-size:11px;font-weight:600}.wrapped-fun-value{color:#fff;font-size:16px;font-weight:700}.wrapped-share-title{opacity:0;margin:0 0 12px;font-size:36px;font-weight:800;transition:opacity .5s,transform .5s;transform:translateY(20px)}.wrapped-share-title.visible{opacity:1;transform:translateY(0)}.wrapped-share-subtitle{color:#ffffff80;margin-bottom:32px;font-size:15px}.wrapped-share-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7b1fa2,#4caf50);border:none;border-radius:999px;align-items:center;gap:10px;padding:14px 32px;font-size:16px;font-weight:700;transition:opacity .2s;display:inline-flex}.wrapped-share-btn:hover{opacity:.9}.wrapped-back-link{color:#fff6;margin-top:24px;font-size:14px;text-decoration:none;transition:color .2s;display:block}.wrapped-back-link:hover{color:#ffffffb3}.wrapped-hero{background:radial-gradient(at 50% 80%,#7b1fa226 0%,#0000 60%)}.wrapped-events-section{background:radial-gradient(at 30%,#4caf501a 0%,#0000 60%)}.wrapped-top-event{background:radial-gradient(at 70% 40%,#7b1fa21f 0%,#0000 60%)}.wrapped-photos-section{background:radial-gradient(at 50% 60%,#4caf501f 0%,#0000 50%)}.wrapped-group-section{background:radial-gradient(at 40%,#7b1fa21a 0%,#0000 60%)}.wrapped-best-section{background:radial-gradient(at 50% 70%,#4caf5014 0%,#0000 50%)}.wrapped-fun-section{background:radial-gradient(at 60% 40%,#7b1fa21a 0%,#0000 60%)}.wrapped-share-section{background:radial-gradient(#7b1fa21f 0%,#4caf5014 60%,#0000 80%)}@media (max-width:480px){.wrapped-hero-title{font-size:36px}.wrapped-stat-number{font-size:48px}.wrapped-big-number .wrapped-stat-number{font-size:56px}.wrapped-big-name,.wrapped-share-title{font-size:28px}.wrapped-fun-cards{flex-direction:column;align-items:center}.wrapped-fun-card{width:100%;max-width:100%}.wrapped-section{padding:40px 16px}}.gallery-contact-widget{right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:95;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed}.gallery-contact-launcher{background:var(--gchw-accent,#007aff);min-width:56px;height:56px;color:var(--gchw-accent-text,#fff);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;justify-content:center;align-self:flex-end;align-items:center;gap:9px;padding:0 20px 0 17px;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 6px 20px #00000047,0 2px 6px #0000002e}.gallery-contact-launcher-label{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:15px;font-weight:650;overflow:hidden}.gallery-contact-launcher[aria-expanded=true]{gap:0;width:56px;min-width:56px;padding:0}.gallery-contact-launcher:hover{transform:translateY(-1px)scale(1.04);box-shadow:0 10px 28px #00000057,0 3px 8px #0003}.gallery-contact-launcher:active{transform:scale(.96)}.gallery-contact-panel{background:var(--gchw-card,#1a1a1a);width:320px;max-width:calc(100vw - 40px);color:var(--gchw-text,#fff);border:1px solid color-mix(in srgb,var(--gchw-text,#fff)12%,transparent);transform-origin:100% 100%;border-radius:18px;animation:.22s cubic-bezier(.16,1,.3,1) both gallery-contact-in;position:relative;overflow:hidden;box-shadow:0 16px 48px #0006,0 4px 12px #0000003d}@keyframes gallery-contact-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.gallery-contact-panel-close{background:color-mix(in srgb,var(--gchw-text,#fff)10%,transparent);width:30px;height:30px;color:var(--gchw-text,#fff);cursor:pointer;opacity:.7;border:none;border-radius:999px;justify-content:center;align-items:center;transition:opacity .15s;display:inline-flex;position:absolute;top:12px;right:12px}.gallery-contact-panel-close:hover{opacity:1}.gallery-contact-header{padding:22px 20px 16px}.gallery-contact-avatar{object-fit:cover;width:48px;height:48px;margin-bottom:12px;display:block}.gallery-contact-avatar.is-person{border-radius:999px}.gallery-contact-avatar.is-logo{object-fit:contain;background:color-mix(in srgb,var(--gchw-text,#fff)8%,transparent);border-radius:12px;padding:6px}.gallery-contact-avatar-fallback{background:var(--gchw-accent,#007aff);color:var(--gchw-accent-text,#fff);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.gallery-contact-heading{margin-bottom:4px;font-size:17px;font-weight:650;line-height:1.3}.gallery-contact-message{opacity:.7;font-size:13.5px;line-height:1.45}.gallery-contact-body{padding:0 20px 20px}.gallery-contact-actions{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.gallery-contact-action{min-width:72px;color:var(--gchw-text,#fff);background:color-mix(in srgb,var(--gchw-text,#fff)8%,transparent);border:1px solid color-mix(in srgb,var(--gchw-text,#fff)12%,transparent);border-radius:10px;flex:auto;justify-content:center;align-items:center;gap:6px;padding:9px 10px;font-size:13px;font-weight:550;text-decoration:none;transition:background .15s;display:inline-flex}.gallery-contact-action:hover{background:color-mix(in srgb,var(--gchw-text,#fff)14%,transparent)}.gallery-contact-form{flex-direction:column;gap:8px;display:flex}.gallery-contact-input{width:100%;color:var(--gchw-text,#fff);background:color-mix(in srgb,var(--gchw-text,#fff)6%,transparent);border:1px solid color-mix(in srgb,var(--gchw-text,#fff)14%,transparent);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.gallery-contact-input::placeholder{color:color-mix(in srgb,var(--gchw-text,#fff)45%,transparent)}.gallery-contact-input:focus{border-color:var(--gchw-accent,#007aff)}.gallery-contact-textarea{resize:vertical;min-height:70px}.gallery-contact-context{opacity:.62;align-items:flex-start;gap:7px;margin:2px 0;font-size:12px;line-height:1.4;display:flex}.gallery-contact-context svg{flex-shrink:0;margin-top:1px}.gallery-contact-context strong{opacity:.9;font-weight:600}.gallery-contact-error{color:#ff6b6b;font-size:12.5px;line-height:1.4}.gallery-contact-send{cursor:pointer;background:var(--gchw-accent,#007aff);color:var(--gchw-accent-text,#fff);border:none;border-radius:10px;margin-top:2px;padding:11px 14px;font-size:14px;font-weight:600;transition:opacity .15s}.gallery-contact-send:hover:not(:disabled){opacity:.92}.gallery-contact-send:disabled{opacity:.5;cursor:default}.gallery-contact-sent{text-align:center;padding:28px 20px 30px}.gallery-contact-sent-icon{background:var(--gchw-accent,#007aff);width:52px;height:52px;color:var(--gchw-accent-text,#fff);border-radius:999px;justify-content:center;align-items:center;margin:0 auto 14px;display:inline-flex}.gallery-contact-sent-title{margin-bottom:4px;font-size:16px;font-weight:650}.gallery-contact-sent-sub{opacity:.7;font-size:13.5px;line-height:1.45}@media (max-width:480px){.gallery-contact-widget{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}.gallery-contact-launcher{gap:0;width:52px;min-width:52px;height:52px;padding:0}.gallery-contact-launcher-label{display:none}}.gallery-page .photo-item--pending{cursor:default;background:color-mix(in srgb,var(--gallery-text,#1d1d1f)7%,var(--gallery-card,#1a1a1a));border:1px solid color-mix(in srgb,var(--gallery-text,#1d1d1f)10%,transparent);justify-content:center;align-items:center;display:flex}.gallery-page .photo-item--pending:active,.gallery-page .photo-item--pending:hover{transform:none}.gallery-page .photo-item--pending .gallery-pending-sweep{background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--gallery-text,#1d1d1f)9%,transparent)50%,transparent 80%);pointer-events:none;background-size:220% 100%;animation:1.8s ease-in-out infinite galleryPendingSweep;position:absolute;inset:0}.gallery-page .photo-item--pending .gallery-pending-body{z-index:1;text-align:center;color:color-mix(in srgb,var(--gallery-text,#1d1d1f)62%,transparent);flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:8px;display:flex;position:relative}.gallery-page .photo-item--pending .gallery-pending-label{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:550;line-height:1.25;overflow:hidden}.gallery-page .photo-item--pending-stale .gallery-pending-sweep{background:0 0;animation:none}.gallery-page .photo-item--pending-stale .gallery-pending-body{color:color-mix(in srgb,var(--gallery-text,#1d1d1f)42%,transparent)}.gallery-page .photo-item--pending-failed .gallery-pending-body{color:color-mix(in srgb,#d29922 72%,var(--gallery-text,#1d1d1f))}@keyframes galleryPendingSweep{0%{background-position:140% 0}to{background-position:-40% 0}}@media (prefers-reduced-motion:reduce){.gallery-page .photo-item--pending .gallery-pending-sweep{animation:none}}.gallery-page .gallery-pending-chip{background:color-mix(in srgb,var(--gallery-text,#1d1d1f)8%,transparent);color:color-mix(in srgb,var(--gallery-text,#1d1d1f)65%,transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;font-weight:550;display:inline-flex}.gallery-page .gallery-pending-chip-dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite galleryPendingPulse}@keyframes galleryPendingPulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.gallery-page .gallery-pending-chip-dot{animation:none}}