*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f0f1a;--surface: rgba(255, 255, 255, .06);--surface-hover: rgba(255, 255, 255, .12);--text: #f0ece4;--text-muted: rgba(240, 236, 228, .5);--accent-start: #f97316;--accent-mid: #e11d48;--accent-end: #c026d3;--gradient: linear-gradient(135deg, var(--accent-start), var(--accent-mid), var(--accent-end));--radius: 16px;--radius-sm: 10px;--header-height: 64px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}html,body{height:100%;overflow-x:hidden;-webkit-tap-highlight-color:transparent}.landing-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(ellipse at 30% 20%,rgba(249,115,22,.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(192,38,211,.05) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(225,29,72,.03) 0%,transparent 60%)}.landing-container{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.landing-card{max-width:420px;width:100%;padding:48px 36px;background:#ffffff0a;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:24px;text-align:center;box-shadow:0 8px 32px #0006}.admin-card{max-width:480px}.landing-icon{margin-bottom:20px;color:var(--text-muted);opacity:.7}.landing-icon svg{display:inline-block}.landing-title{font-size:2rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:32px}.landing-form{display:flex;flex-direction:column;gap:16px}.landing-input-wrap{position:relative}.landing-input{width:100%;padding:14px 18px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);background:#ffffff0d;color:var(--text);font-size:1rem;font-family:inherit;text-align:center;outline:none;transition:border-color .3s,box-shadow .3s}.landing-input:focus{border-color:#f9731666;box-shadow:0 0 20px #f973161a}.landing-input::placeholder{color:var(--text-muted)}.landing-input.shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.landing-error{color:#ef4444;font-size:.9rem;font-weight:500}.landing-error.hidden{display:none}.landing-success{color:#22c55e;font-size:.9rem;font-weight:500;line-height:1.6}.landing-success.hidden{display:none}.success-link{color:var(--text);font-weight:600;text-decoration:none;border-bottom:1px solid var(--text-muted);transition:border-color .2s}.success-link:hover{border-color:var(--text)}.landing-submit{width:100%;padding:14px;border:none;border-radius:var(--radius-sm);background:var(--gradient);color:#fff;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #f9731640}.landing-submit:hover{transform:translateY(-1px);box-shadow:0 6px 20px #f9731659}.landing-submit:active{transform:translateY(0)}.input-hint{font-size:.75rem;color:var(--text-muted);margin-top:4px;text-align:left;padding-left:4px}.admin-checkbox-group{display:flex;flex-direction:column;gap:12px;text-align:left;padding:4px 0}.admin-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.95rem;color:var(--text-muted);transition:color .2s}.admin-checkbox:hover{color:var(--text)}.admin-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-start);cursor:pointer}.carousel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.carousel-slide{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.8s ease-in-out;will-change:opacity}.carousel-slide.active{opacity:1}.carousel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#0f0f1ab3,#0f0f1a66 30%,#0f0f1a80 70%,#0f0f1ae6);pointer-events:none}.header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 12px) 20px 12px;height:calc(var(--header-height) + var(--safe-top));background:#0f0f1a80;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.06)}.header-title{display:flex;align-items:center;gap:10px}.header-icon{width:28px;height:28px;color:var(--accent-start);filter:drop-shadow(0 0 8px rgba(249,115,22,.4))}.header h1{font-size:1.25rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.upload-btn{width:44px;height:44px;border:none;border-radius:50%;background:var(--gradient);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:0 4px 15px #f973164d,0 0 30px #e11d4826;transition:transform .2s,box-shadow .2s}.upload-btn:before{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.25) 50%,transparent 100%);animation:shine 3s ease-in-out infinite}@keyframes shine{0%,to{transform:translate(-100%) rotate(25deg)}50%{transform:translate(100%) rotate(25deg)}}.upload-btn svg{width:22px;height:22px;position:relative;z-index:1}.upload-btn:active{transform:scale(.92)}.upload-overlay{position:fixed;top:calc(var(--header-height) + var(--safe-top));left:0;right:0;z-index:90;padding:16px 20px;display:flex;align-items:center;gap:14px;background:#0f0f1ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .3s,transform .3s}.upload-overlay.hidden{opacity:0;transform:translateY(-100%);pointer-events:none}.upload-progress{flex:1;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.upload-progress-bar{height:100%;width:0%;background:var(--gradient);border-radius:2px;transition:width .3s}.upload-text{font-size:.85rem;font-weight:500;color:var(--text-muted);white-space:nowrap}.photo-grid{position:relative;z-index:10;padding:calc(var(--header-height) + var(--safe-top) + 12px) 10px calc(var(--safe-bottom) + 24px);display:grid;grid-template-columns:repeat(2,1fr);gap:10px;min-height:100vh}@media(min-width:640px){.photo-grid{grid-template-columns:repeat(3,1fr);gap:12px;padding-left:20px;padding-right:20px}}@media(min-width:1024px){.photo-grid{grid-template-columns:repeat(4,1fr);gap:14px;max-width:1200px;margin:0 auto}}.photo-card{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid rgba(255,255,255,.06);box-shadow:0 4px 20px #0000004d;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.photo-card.new{animation:photoEnter .4s cubic-bezier(.16,1,.3,1) both}.photo-card:hover{transform:scale(1.03);box-shadow:0 8px 32px #00000080}.photo-card:active{transform:scale(.97)}@keyframes photoEnter{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.photo-card img{display:block;width:100%;height:100%;object-fit:cover}.empty-state{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);pointer-events:none}.empty-state.hidden{display:none}.empty-icon{width:64px;height:64px;opacity:.3}.empty-state p{font-size:1.1rem;font-weight:600}.empty-hint{font-size:.85rem!important;font-weight:400!important;opacity:.6}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#000000eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);opacity:0;transition:opacity .3s;cursor:zoom-out}.lightbox.active{opacity:1}.lightbox img{max-width:85vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-sm);transform:scale(.9);transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .15s}.lightbox.active img{transform:scale(1)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff14;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);color:#fff;font-size:2.5rem;line-height:1;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:1;-webkit-tap-highlight-color:transparent}.lightbox-nav:hover{background:#ffffff2e}.lightbox-prev{left:16px}.lightbox-next{right:16px}.header-actions{display:flex;align-items:center;gap:10px}.header-action-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:var(--surface);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.header-action-btn svg{width:18px;height:18px}.header-action-btn:hover{background:var(--surface-hover);color:var(--text);border-color:#ffffff4d}.delete-mode-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:var(--surface);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.delete-mode-btn svg{width:18px;height:18px}.delete-mode-btn:hover{background:#ef444426;border-color:#ef444466;color:#ef4444}.delete-mode-btn.active{background:#ef444433;border-color:#ef4444;color:#ef4444;box-shadow:0 0 20px #ef44444d;animation:deletePulse 2s ease-in-out infinite}@keyframes deletePulse{0%,to{box-shadow:0 0 15px #ef444433}50%{box-shadow:0 0 25px #ef444466}}.photo-card.delete-mode{cursor:pointer}.photo-card.delete-mode:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;color:#fff;background:#ef444400;transition:background .3s;pointer-events:none;border-radius:var(--radius)}.photo-card.delete-mode:hover:after{background:#ef44448c}.photo-card.delete-mode:hover{transform:translateY(0)!important;box-shadow:0 0 30px #ef444466!important}.delete-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#000c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:1;transition:opacity .3s}.delete-modal.hidden{opacity:0;pointer-events:none}.delete-modal-content{background:#1e1e32f2;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);padding:28px;max-width:380px;width:90%;text-align:center}.delete-modal-content h2{font-size:1.2rem;font-weight:700;margin-bottom:8px;color:#ef4444}.delete-modal-content p{font-size:.9rem;color:var(--text-muted);margin-bottom:20px;line-height:1.5}.delete-modal-actions{display:flex;gap:12px}.delete-cancel-btn,.delete-confirm-btn{flex:1;padding:12px;border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.delete-cancel-btn{background:var(--surface);color:var(--text);border:1px solid rgba(255,255,255,.1)}.delete-cancel-btn:hover{background:var(--surface-hover)}.delete-confirm-btn{background:#ef4444;color:#fff}.delete-confirm-btn:hover{background:#dc2626;box-shadow:0 4px 15px #ef444466}.download-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#000c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:1;transition:opacity .3s}.download-modal.hidden{opacity:0;pointer-events:none}.download-modal-content{background:#1e1e32f2;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:28px;max-width:400px;width:90%;text-align:center}.download-modal-content h2{font-size:1.2rem;font-weight:700;margin-bottom:20px;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.download-options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.download-option{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid rgba(255,255,255,.08);text-decoration:none;color:var(--text);transition:all .2s;cursor:pointer}.download-option:hover{background:var(--surface-hover);border-color:#fff3;transform:translateY(-2px)}.download-option-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;color:var(--text-muted)}.download-option-icon.compressed-icon{background:#f973161a;color:var(--accent-start)}.download-option-icon.originals-icon{background:#c026d31a;color:var(--accent-end)}.download-option-icon svg{width:20px;height:20px}.download-option-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.download-option-info strong{font-size:.95rem}.download-option-info span{font-size:.8rem;color:var(--text-muted)}.download-option.disabled{opacity:.35;pointer-events:none;transform:none!important}.download-close-btn{width:100%;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.download-close-btn:hover{background:var(--surface-hover)}.toast{position:fixed;bottom:calc(var(--safe-bottom) + 24px);left:50%;transform:translate(-50%) translateY(20px);z-index:400;padding:14px 24px;background:#1e1e32eb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-weight:500;white-space:nowrap;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%) translateY(0)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}
