:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.join-qr{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border-radius:.75rem;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.join-qr p{margin:0;color:#fff;font-size:.85rem}.slideshow-page{position:relative;width:100vw;height:100vh;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.slideshow-frame{position:relative;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.slideshow-image{max-width:100%;max-height:100vh;object-fit:contain}.slideshow-frame-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.slideshow-frame.fade-in{animation:fade-in var(--fade-ms, .5s) ease}.slideshow-frame.fade-out{animation:fade-out var(--fade-ms, .5s) ease forwards}.slideshow-overlay{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1.5rem;border-radius:.75rem;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;text-align:center}.slideshow-empty{color:#fff;font-size:1.5rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.upload-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center;width:100%;max-width:420px;margin:0 auto}.upload-preview{width:100%;min-height:200px;margin:1.5rem 0 1rem;border:2px dashed rgba(255,255,255,.3);border-radius:.75rem;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}.upload-preview.has-preview{border-style:solid;border-color:#646cff;padding:.5rem}.upload-preview img{max-width:100%;max-height:260px;object-fit:contain;border-radius:.5rem}.upload-preview span{opacity:.7}.text-input{width:100%;padding:.75rem 1rem;margin-bottom:.75rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:inherit;font:inherit}.upload-button{position:relative;display:inline-block;width:100%;margin-top:.5rem;padding:1rem 2rem;font-size:1.1rem;border-radius:.75rem;background:#646cff;color:#fff;cursor:pointer;border:none}.upload-button:disabled{opacity:.5;cursor:not-allowed}.status{margin-top:1.25rem;font-size:1rem}.status-done{color:#2e7d32}.status-error{color:#c62828}.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.admin-login form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px;text-align:center}.text-input{width:100%;padding:.75rem 1rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:inherit;font:inherit;box-sizing:border-box}.admin-button{padding:.75rem 1.5rem;border-radius:.75rem;border:none;background:#646cff;color:#fff;font-size:1rem;cursor:pointer}.admin-button-secondary{background:transparent;border:1px solid rgba(255,255,255,.3)}.admin-page{min-height:100vh;padding:1.5rem;max-width:960px;margin:0 auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.admin-stats{display:flex;gap:1rem;opacity:.7;font-size:.9rem}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:.75rem}.admin-tabs button{padding:.5rem 1rem;border-radius:.5rem;border:none;background:transparent;color:inherit;opacity:.7;cursor:pointer}.admin-tabs button.active{background:#646cff;opacity:1;color:#fff}.settings-tab{display:flex;flex-direction:column;gap:1.25rem;max-width:420px}.field{display:flex;flex-direction:column;gap:.5rem}.field-row{flex-direction:row;align-items:center;justify-content:space-between}.field input[type=range]{width:100%}.hint{opacity:.6;font-size:.85rem}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.photo-card{position:relative;border-radius:.75rem;overflow:hidden;background:#ffffff0d}.photo-card.blocked{opacity:.4}.photo-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.photo-card-info{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .75rem 0;font-size:.8rem}.photo-card-actions{display:flex;gap:.4rem;padding:.5rem .75rem .75rem}.photo-card-actions button{flex:1;padding:.4rem;border-radius:.5rem;border:none;background:#ffffff1a;color:inherit;cursor:pointer}.photo-card-actions button.active{background:#646cff;color:#fff}.photo-card-actions button.danger:hover{background:#c62828}.download-original{display:block;width:calc(100% - 1.5rem);padding:.4rem;margin:0 .75rem .75rem;border:none;border-radius:.5rem;background:#ffffff1a;color:inherit;font-size:.8rem;cursor:pointer}.download-original:hover{background:#fff3}.qr-tab{text-align:center}.qr-frame{display:inline-block;padding:1.5rem;background:#fff;border-radius:1rem;margin:1rem 0}.qr-url{font-family:monospace;opacity:.7;margin-bottom:1rem;word-break:break-all}.qr-tab .admin-button{margin:0 .25rem .75rem}.frame-settings{display:flex;flex-direction:column;gap:.75rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.15)}.frame-preview{max-width:100%;max-height:160px;object-fit:contain;border-radius:.5rem;background:repeating-conic-gradient(rgba(255,255,255,.08) 0% 25%,transparent 0% 50%) 50% / 16px 16px}
