@import "https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Pacifico&display=swap";:root{--pink-bg:#ffe4e8;--pink-light:#fff0f3;--pink-accent:#ff8fa3;--pink-dark:#ff4d6d;--text-main:#590d22;--text-muted:#800f2f;--glass-bg:#fff9;--glass-border:#fffc}*{box-sizing:border-box;margin:0;padding:0;font-family:Quicksand,sans-serif}body{background-color:var(--pink-bg);background-image:radial-gradient(circle at top left, var(--pink-light), transparent 60%), radial-gradient(circle at bottom right, #ffccd5, transparent 60%);color:var(--text-main);min-height:100vh;overflow-x:hidden}@keyframes float{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.8}90%{opacity:.8}to{opacity:0;transform:translateY(-100vh)rotate(360deg)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.bounce-in{animation:.8s cubic-bezier(.175,.885,.32,1.275) forwards bounceIn}.slide-down{animation:.8s ease-out forwards slideDown}.shake{animation:.4s ease-in-out shake}.float-animation{animation:6s ease-in-out infinite float}.heart-pulse{animation:2s infinite pulse}.bg-hearts{pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.heart-bg{background-color:var(--pink-accent);width:20px;height:20px;animation:linear infinite float;position:absolute;bottom:-50px;transform:rotate(45deg)}.heart-bg:before,.heart-bg:after{content:"";background-color:var(--pink-accent);border-radius:50%;width:100%;height:100%;position:absolute}.heart-bg:before{top:-50%;left:0}.heart-bg:after{top:0;left:-50%}.heart-0{opacity:.3;animation-duration:8s;animation-delay:1s;left:10%;transform:scale(.5)}.heart-1{opacity:.5;animation-duration:12s;animation-delay:0s;left:30%;transform:scale(1.2)}.heart-2{opacity:.2;animation-duration:10s;animation-delay:2s;left:50%;transform:scale(.8)}.heart-3{opacity:.4;animation-duration:14s;animation-delay:.5s;left:70%;transform:scale(1)}.heart-4{opacity:.6;animation-duration:9s;animation-delay:3s;left:90%;transform:scale(.6)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:2px solid var(--glass-border);text-align:center;border-radius:24px;padding:40px;box-shadow:0 8px 32px #ff4d6d26}.login-container{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{width:100%;max-width:400px}.login-card h1{color:var(--pink-dark);margin-bottom:10px;font-family:Pacifico,cursive;font-size:2.5rem}.login-card p{color:var(--text-muted);margin-bottom:30px}.login-card input{border:2px solid var(--pink-accent);text-align:center;letter-spacing:5px;width:100%;color:var(--pink-dark);background:#fffc;border-radius:12px;outline:none;margin-bottom:15px;padding:15px;font-size:1.2rem;transition:all .3s}.login-card input:focus{transform:scale(1.02);box-shadow:0 0 15px #ff8fa380}.error-input{color:red!important;border-color:red!important}.error-text{color:red;margin-bottom:15px;font-size:.9rem;font-weight:600}.login-btn{background:linear-gradient(135deg, var(--pink-accent), var(--pink-dark));color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:15px;font-size:1.1rem;font-weight:700;transition:transform .2s,box-shadow .2s}.login-btn:hover{transform:translateY(-3px);box-shadow:0 5px 15px #ff4d6d66}.heart-icon{margin-bottom:-10px;font-size:4rem}.gallery-page{max-width:1200px;margin:0 auto;padding:30px}.gallery-header{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:20px;justify-content:space-between;align-items:center;margin-bottom:40px;padding:20px;display:flex}.header-content h1{color:var(--pink-dark);align-items:center;gap:10px;font-family:Pacifico,cursive;font-size:2.2rem;display:flex}.header-content p{color:var(--text-muted);font-weight:500}.upload-btn{background:var(--pink-dark);color:#fff;cursor:pointer;border:none;border-radius:30px;align-items:center;gap:8px;padding:12px 24px;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 15px #ff4d6d4d}.upload-btn:hover{background:var(--pink-accent);transform:translateY(-2px)scale(1.05)}.masonry-grid{column-count:3;column-gap:20px}.masonry-item{break-inside:avoid;cursor:pointer;border-radius:16px;margin-bottom:20px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .4s;animation:.8s ease-out forwards slideDown;position:relative;overflow:hidden;box-shadow:0 4px 15px #0000000d}.masonry-item img{border-radius:16px;width:100%;transition:filter .3s;display:block}.masonry-item:hover{z-index:10;transform:scale(1.03)translateY(-5px);box-shadow:0 10px 25px #ff4d6d33}.masonry-item:hover img{filter:brightness(1.1)}@media (width<=900px){.masonry-grid{column-count:2}}@media (width<=600px){.masonry-grid{column-count:1}.gallery-header{text-align:center;flex-direction:column;gap:15px}}.loading-state,.empty-state{text-align:center;color:var(--pink-dark);padding:100px 0}.spinner{border:5px solid var(--pink-light);border-top-color:var(--pink-dark);border-radius:50%;width:50px;height:50px;margin:0 auto 20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.lightbox{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#590d22e6;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s forwards fadeIn;display:flex;position:fixed;top:0;left:0}.lightbox img{border-radius:12px;max-width:90%;max-height:90vh;animation:.5s bounceIn;box-shadow:0 10px 40px #0000004d}.close-lightbox{color:#fff;cursor:pointer;background:0 0;border:none;transition:transform .2s;position:absolute;top:20px;right:30px}.close-lightbox:hover{transform:scale(1.2)rotate(90deg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:999;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--pink-light);text-align:center;border-radius:24px;width:90%;max-width:500px;padding:40px;animation:.5s bounceIn;position:relative;box-shadow:0 15px 50px #ff4d6d4d}.close-modal{color:var(--pink-dark);cursor:pointer;background:0 0;border:none;position:absolute;top:20px;right:20px}.modal-content h2{color:var(--pink-dark);margin-bottom:25px;font-family:Pacifico,cursive}.upload-dropzone{border:2px dashed var(--pink-accent);cursor:pointer;background:#fff;border-radius:16px;padding:50px 20px;transition:all .3s}.upload-dropzone:hover{background:var(--pink-bg);border-color:var(--pink-dark)}.upload-icon{color:var(--pink-accent);margin-bottom:15px}.upload-hint{color:var(--text-muted);font-size:.8rem}.upload-preview img{border-radius:12px;max-width:100%;max-height:250px;margin-bottom:20px;box-shadow:0 5px 15px #0000001a}.upload-actions{justify-content:center;gap:10px;display:flex}.btn-cancel,.btn-upload{cursor:pointer;border:none;border-radius:20px;padding:10px 20px;font-weight:700}.btn-cancel{color:#666;background:#eee}.btn-upload{background:var(--pink-dark);color:#fff}.upload-progress{margin-top:20px}.progress-bar-bg{background:#eee;border-radius:5px;width:100%;height:10px;margin-bottom:10px;overflow:hidden}.progress-bar-fill{background:var(--pink-dark);height:100%;transition:width .3s}.upload-error{color:red;justify-content:center;align-items:center;gap:5px;margin-top:15px;font-weight:600;display:flex}.upload-success{color:#ff4d6d;justify-content:center;align-items:center;gap:5px;margin-top:15px;font-weight:700;display:flex}.web-logo{object-fit:cover;border:2px solid var(--pink-dark);border-radius:50%;width:45px;height:45px;box-shadow:0 4px 10px #ff4d6d4d}.login-logo{width:90px;height:90px;margin-bottom:10px}.time-counter{color:var(--pink-dark);border:1px dashed var(--pink-accent);background:#ff4d6d1a;border-radius:20px;align-items:center;gap:8px;margin-top:15px;padding:8px 16px;font-size:.95rem;display:inline-flex}.lightbox-actions{z-index:1001;gap:15px;display:flex;position:absolute;top:20px;right:20px}.lightbox-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.lightbox-btn:hover{transform:scale(1.1)}.download-btn:hover{background:#20c997}.delete-btn:hover{background:#fa5252}.close-lightbox{position:static}.close-lightbox:hover{background:var(--pink-dark);transform:scale(1.1)rotate(90deg)}.deleting-overlay{color:#fff;z-index:1002;background:#ff4d6dcc;border-radius:12px;padding:15px 30px;font-size:1.5rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
