:root{--color-bg: #f5f5f7;--color-surface: #ffffff;--color-text: #1d1d1f;--color-text-muted: #6e6e73;--color-border: #d2d2d7;--color-accent: #007aff;--color-accent-hover: #0068d9;--color-danger: #ff3b30;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius: 10px;--max-width: 960px;--glass-bg: rgba(255, 255, 255, .55);--glass-sheen: rgba(255, 255, 255, .6);--glass-border: rgba(255, 255, 255, .75);--glass-highlight: rgba(255, 255, 255, .55);--glass-shadow: 0 8px 28px rgba(0, 0, 0, .14);--glass-blur: blur(20px) saturate(180%);--dark-glass-bg: rgba(44, 44, 46, .55);--dark-glass-sheen: rgba(255, 255, 255, .12);--dark-glass-border: rgba(255, 255, 255, .16);--dark-color-accent: #0a84ff;--dark-color-danger: #ff453a}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #000000;--color-surface: #1c1c1e;--color-text: #f5f5f7;--color-text-muted: #98989d;--color-border: #38383a;--color-accent: #0a84ff;--color-accent-hover: #409cff;--color-danger: #ff453a;--glass-bg: rgba(44, 44, 46, .55);--glass-sheen: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .16);--glass-highlight: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 28px rgba(0, 0, 0, .55)}}:root[data-theme=dark]{--color-bg: #000000;--color-surface: #1c1c1e;--color-text: #f5f5f7;--color-text-muted: #98989d;--color-border: #38383a;--color-accent: #0a84ff;--color-accent-hover: #409cff;--color-danger: #ff453a;--glass-bg: rgba(44, 44, 46, .55);--glass-sheen: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .16);--glass-highlight: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 28px rgba(0, 0, 0, .55)}body{transition:background-color .25s ease,color .25s ease}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.15;margin:0 0 .5em}h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.02em}h2{font-size:clamp(1.4rem,3vw,1.9rem);letter-spacing:-.01em}p{margin:0 0 1em;color:var(--color-text-muted)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font-family:inherit;font-size:1rem}button,a,.gallery-item{touch-action:manipulation}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 5rem}.nav-bar{position:sticky;top:0;z-index:40;border-bottom:1px solid transparent;background:transparent;transition:background .2s ease,border-color .2s ease}.nav-bar.scrolled{background:linear-gradient(135deg,var(--glass-sheen),transparent 60%),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom-color:var(--glass-border)}.nav-bar-inner{display:flex;align-items:center;max-width:var(--max-width);height:52px;margin:0 auto;padding:0 .6rem;gap:.15rem}.nav-bar-leading,.nav-bar-trailing{display:flex;align-items:center;gap:.1rem;flex:0 0 auto}.nav-bar-trailing{justify-content:flex-end}.nav-bar-compact-title{flex:1 1 auto;min-width:0;pointer-events:none;text-align:center;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(3px);transition:opacity .2s ease,transform .2s ease}.nav-bar.scrolled .nav-bar-compact-title{opacity:1;transform:translateY(0)}.nav-icon-btn,.nav-bar-back{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:none;color:var(--color-accent);cursor:pointer;transition:transform .1s ease-out,background .15s ease}.nav-icon-btn:active,.nav-bar-back:active{transform:scale(.85);background:color-mix(in srgb,var(--color-accent) 14%,transparent);transition-duration:.05s}.nav-bar-brand{display:flex;align-items:center;height:34px;padding:0 .4rem;font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.large-title{margin:.15em 0 .3em}.auth-tabs{display:flex;gap:.4rem;margin-bottom:1.1rem;border-bottom:1px solid var(--color-border)}.auth-tab{flex:1;padding:.6em .4em;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);font-size:.9rem;font-weight:600;cursor:pointer}.auth-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.7em 1.4em;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:linear-gradient(135deg,#ffffff59,#fff0 55%),var(--color-accent);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:0 6px 18px color-mix(in srgb,var(--color-accent) 40%,transparent),inset 0 1px #fff6;transition:background .15s ease,transform .1s ease-out,box-shadow .15s ease}.btn:hover{background:linear-gradient(135deg,#fff6,#fff0 55%),var(--color-accent-hover);box-shadow:0 8px 22px color-mix(in srgb,var(--color-accent) 50%,transparent),inset 0 1px #ffffff73;text-decoration:none}.btn:active{transform:scale(.97);transition-duration:.05s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:active{transform:none}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:0 1px 3px #0000000f}.btn-secondary:hover{background:color-mix(in srgb,var(--color-surface) 100%,var(--color-text) 6%);border-color:var(--color-text-muted)}.btn-danger{background:linear-gradient(135deg,var(--glass-sheen),transparent 55%),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-color:var(--color-danger);color:var(--color-danger);box-shadow:none}.btn-danger:hover{background:var(--color-danger);color:#fff}.field{display:flex;flex-direction:column;gap:.4em;margin-bottom:1.25em}.field label{font-size:.85rem;color:var(--color-text-muted)}.field input{padding:.7em .9em;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}.field input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.form-card{max-width:420px;margin:0 auto}.error-text{color:var(--color-danger);font-size:.9rem}.hint{font-size:.85rem;color:var(--color-text-muted)}.event-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem;margin-top:.25rem}@media(min-width:640px){.event-list{grid-template-columns:repeat(3,1fr);gap:1.75rem 1.25rem}}@media(min-width:960px){.event-list{grid-template-columns:repeat(4,1fr)}}.event-card{display:block;color:var(--color-text)}.event-card:hover{text-decoration:none}.event-card-cover{position:relative;aspect-ratio:1;border-radius:14px;background:var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);overflow:hidden;transition:transform .1s ease-out}.event-card:active .event-card-cover{transform:scale(.96);transition-duration:.05s}.event-card-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease-out}.event-card:hover .event-card-cover img{transform:scale(1.04)}.event-card-body{padding:.6em .15em 0}.event-card-body h3{font-size:.95rem;font-weight:600;letter-spacing:-.005em;margin:0 0 .2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-card-meta{font-size:.82rem;color:var(--color-text-muted);display:flex;gap:.5em;align-items:center}.empty-state{text-align:center;padding:4rem 1rem;color:var(--color-text-muted)}.gallery{position:relative;left:50%;right:50%;width:100vw;margin-left:-50vw;margin-right:-50vw;margin-top:1rem;min-height:calc(100vh - 260px)}.gallery-day+.gallery-day{margin-top:.25rem}.gallery-day-header{position:sticky;top:0;z-index:10;margin:0;padding:.55em 1rem;font-family:var(--font-body);font-size:.9rem;font-weight:700;letter-spacing:-.005em;color:var(--color-text);background:linear-gradient(135deg,var(--glass-sheen),transparent 60%),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border)}.gallery-day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px}@media(min-width:640px){.gallery-day-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:960px){.gallery-day-grid{grid-template-columns:repeat(5,1fr)}}.gallery-item{position:relative;aspect-ratio:1;border-radius:0;overflow:hidden;cursor:pointer;background:var(--color-border)}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s ease-out,border-radius .15s ease-out;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.gallery-item:hover img{transform:scale(1.04)}.gallery-item.pressed img{transform:scale(.93);transition:transform .1s ease-out}.gallery-item.selected img{transform:scale(.82);border-radius:14px}.gallery-item.pressed.selected img{transform:scale(.78);border-radius:14px}.select-indicator{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(255,255,255,.95);background:#00000026;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none;box-shadow:0 1px 3px #0000004d;transition:transform .15s ease-out}.select-indicator.selected{border-color:transparent;background:linear-gradient(135deg,rgba(255,255,255,.35),transparent 55%),var(--color-accent);transform:scale(1.05)}.gallery-item .uploader-badge{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.2em .55em;border-radius:999px;background:#00000073;backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);color:#fff;font-size:.72rem;pointer-events:none}.gallery-item .play-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#00000080;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;pointer-events:none}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0806f0;overflow:hidden;z-index:100;touch-action:none}.lightbox-stage{position:absolute;top:0;right:0;bottom:0;left:0}.lightbox-track{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;width:300%;height:100%;will-change:transform}.lightbox-pane{flex:0 0 calc(100% / 3);width:calc(100% / 3);height:100%;display:flex;align-items:center;justify-content:center;padding:2rem;box-sizing:border-box}.lightbox-pane img,.lightbox-pane video{width:100%;height:100%;object-fit:contain;border-radius:4px;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;will-change:transform}.lightbox-chrome{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.lightbox-chrome>*{pointer-events:auto}.lightbox-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:max(.75rem,env(safe-area-inset-top,0px)) .5rem .75rem;background:linear-gradient(to bottom,rgba(0,0,0,.45),transparent)}.lightbox-topbar-title{display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff;min-width:0;overflow:hidden}.lightbox-topbar-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.lightbox-topbar-date{font-size:.76rem;color:#ffffffa6}.lightbox-back{--press-scale: 1;display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:50%;border:none;background:none;color:#fff;cursor:pointer;transform:scale(var(--press-scale));transition:transform .1s ease-out,background .15s ease}.lightbox-back:active{--press-scale: .85;background:#ffffff26}.lightbox-topbar-spacer{width:38px;height:38px;flex-shrink:0}.lightbox-prev,.lightbox-next{--press-scale: 1;position:absolute;background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 55%),#ffffff1a;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:50%;width:40px;height:40px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #00000040,inset 0 1px #fff3;transform:translateY(-50%) scale(var(--press-scale));transition:transform .1s ease-out,background .15s ease;top:50%}.lightbox-prev:active,.lightbox-next:active{--press-scale: .88;background:linear-gradient(135deg,rgba(255,255,255,.3),transparent 55%),#fff3}.lightbox-prev{left:.75rem}.lightbox-next{right:.75rem}.gallery.drop-highlight{outline:2px dashed var(--color-accent);outline-offset:6px;border-radius:8px}.upload-toast-list{position:fixed;left:50%;bottom:calc(6.5rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:55;display:flex;flex-direction:column;gap:.5rem;width:min(320px,calc(100vw - 2rem))}.upload-toast{background:linear-gradient(135deg,var(--glass-sheen),transparent 50%),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius);padding:.6em .8em;font-size:.82rem;box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight)}.upload-toast span{display:inline-flex;align-items:center;gap:.35em}.progress-bar{height:5px;background:var(--color-border);border-radius:3px;overflow:hidden;margin-top:3px}.progress-bar-fill{height:100%;background:var(--color-accent);transition:width .15s ease}.event-subtitle{margin:-.4em 0 1rem;color:var(--color-text-muted)}.event-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.5rem}#download-zip{margin-left:auto}.filter-toggle{display:flex;align-items:center;gap:.45em;font-size:.9rem;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.filter-toggle[hidden]{display:none}.filter-toggle input{width:1.1em;height:1.1em;accent-color:var(--color-accent)}.select-toggle{background:none;border:none;padding:0;margin:0 .5rem 0 .35rem;color:var(--color-accent);font-size:.95rem;font-weight:600;white-space:nowrap;cursor:pointer;font-family:inherit;transition:opacity .1s ease-out}.select-toggle:active{opacity:.4;transition-duration:.05s}.event-actions.selecting .filter-toggle,.event-actions.selecting #download-zip{display:none}.live-toast{position:fixed;left:50%;bottom:calc(6.5rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;align-items:center;gap:.45em;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 50%),#1c1c1ebf;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.14);color:#fff;padding:.6em 1.1em;border-radius:999px;font-size:.85rem;box-shadow:0 8px 24px #00000059,inset 0 1px #ffffff26;z-index:200}.lock-badge{display:inline-flex;align-items:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a080699;display:flex;align-items:center;justify-content:center;z-index:150;padding:1.5rem}.modal-card{position:relative;max-width:380px;width:100%;background:linear-gradient(135deg,var(--glass-sheen),transparent 45%),color-mix(in srgb,var(--color-surface) 88%,transparent);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-highlight)}.modal-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border-radius:50%;border:1px solid var(--glass-border);background:linear-gradient(135deg,var(--glass-sheen),transparent 55%),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000001a,inset 0 1px 0 var(--glass-highlight);transition:transform .1s ease-out}.modal-close:active{transform:scale(.88);transition-duration:.05s}.admin-list{display:flex;flex-direction:column;margin-top:.5rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface)}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem}.admin-row+.admin-row{border-top:1px solid var(--color-border)}.admin-row-main{flex:1;min-width:0;color:var(--color-text)}.admin-row-main:hover{text-decoration:none}.admin-row-title{display:flex;align-items:center;gap:.4em;font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-row-meta{margin-top:.15em;font-size:.82rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-row-delete{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border:none;border-radius:50%;background:none;color:var(--color-danger);cursor:pointer;transition:transform .1s ease-out,background .15s ease}.admin-row-delete:active{transform:scale(.85);background:color-mix(in srgb,var(--color-danger) 14%,transparent);transition-duration:.05s}.admin-row-delete:disabled{opacity:.4;cursor:not-allowed}.action-bar-btn{display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;transition:transform .1s ease-out,background .15s ease}.action-bar-btn:active:not(:disabled){transform:scale(.92);transition-duration:.05s}.action-bar-main{position:fixed;left:50%;bottom:calc(1.1rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:60;width:60px;height:60px;background:linear-gradient(135deg,#fff6,#fff0 55%),var(--color-accent);backdrop-filter:saturate(180%);-webkit-backdrop-filter:saturate(180%);border:1px solid rgba(255,255,255,.3);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--color-accent) 45%,transparent),inset 0 1px #fff6}.action-bar-main:hover{background:linear-gradient(135deg,#ffffff73,#fff0 55%),var(--color-accent-hover)}.action-bar-main:active:not(:disabled){transform:translate(-50%) scale(.92)}.selection-toolbar{position:fixed;left:0;right:0;bottom:0;z-index:65;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem calc(.85rem + env(safe-area-inset-bottom,0px));background:linear-gradient(135deg,var(--glass-sheen),transparent 60%),var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--glass-border)}.selection-toolbar-btn{display:inline-flex;align-items:center;gap:.4em;background:none;border:none;color:var(--color-accent);font-size:.95rem;font-weight:500;cursor:pointer;padding:.4em;transition:opacity .1s ease-out}.selection-toolbar-btn[data-action=delete]{color:var(--color-danger)}.selection-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.selection-toolbar-btn:active:not(:disabled){opacity:.5;transition-duration:.05s}.lightbox .selection-toolbar{background:linear-gradient(135deg,var(--dark-glass-sheen),transparent 60%),var(--dark-glass-bg);border-top-color:var(--dark-glass-border)}.lightbox .selection-toolbar-btn{color:var(--dark-color-accent)}.lightbox .selection-toolbar-btn[data-action=delete]{color:var(--dark-color-danger)}@media(max-width:600px){.nav-bar-inner{padding:0 .15rem}.container{padding:0 1.25rem 6rem}.lightbox-pane{padding:.5rem}.lightbox-prev,.lightbox-next{width:38px;height:38px}}@media(prefers-reduced-motion:reduce){.gallery-item img,.gallery-item.pressed img,.event-card,.btn,.action-bar-btn,.select-toggle,.nav-icon-btn,.nav-bar-back,.lightbox-back,.selection-toolbar-btn,.lightbox-prev,.lightbox-next,.modal-close{transition-duration:.01ms!important}.event-card:hover{transform:none}}@media(prefers-reduced-transparency:reduce){.action-bar-side,.upload-toast,.modal-close,.nav-bar.scrolled,.btn-danger,.modal-card{background:var(--color-surface);backdrop-filter:none;-webkit-backdrop-filter:none}.lightbox-prev,.lightbox-next{background:#141416e6;backdrop-filter:none;-webkit-backdrop-filter:none}.lightbox-topbar{background:#000000b3}.lightbox .selection-toolbar{background:#141416eb;backdrop-filter:none;-webkit-backdrop-filter:none}.select-indicator,.gallery-item .uploader-badge{backdrop-filter:none;-webkit-backdrop-filter:none}}
