:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;color:#1a202c;line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:0 20px}.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb)}.hero-background{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.hero-bg-image{width:100%;height:100%;object-fit:cover;opacity:.3;filter:blur(2px)}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#667eeacc,#764ba2cc,#f093fbcc)}.hero-content{position:relative;z-index:2;width:100%;text-align:center;color:#fff;animation:slideUp 1s ease-out}.hero-text{max-width:800px;margin:0 auto;padding:2rem}.hero h1{font-size:clamp(2.5rem,6vw,5rem);margin-bottom:1rem;font-weight:800;letter-spacing:-.02em;text-shadow:0 4px 20px rgba(0,0,0,.3)}.hero-subtitle{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:400;opacity:.9;margin-bottom:1.5rem;font-style:italic}.hero-dates{font-size:clamp(1.2rem,3vw,1.8rem);margin-bottom:2rem;font-weight:500}.hero-description{font-size:clamp(1rem,2.5vw,1.4rem);margin-bottom:3rem;opacity:.95;line-height:1.8;text-shadow:0 2px 10px rgba(0,0,0,.2)}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.hero-upload{margin-top:2rem}.hero-upload-btn{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.3);padding:clamp(1rem,3vw,1.5rem) clamp(2rem,5vw,3rem);font-size:clamp(1rem,2.5vw,1.3rem);font-weight:600;border-radius:50px;cursor:pointer;transition:all .3s ease;text-transform:none;letter-spacing:.5px;box-shadow:0 10px 25px #0003}.hero-upload-btn:hover{background:#ffffff4d;transform:translateY(-3px);box-shadow:0 15px 35px #0000004d}.hero-upload-text{opacity:.9;margin-top:1rem;font-size:clamp(.9rem,2vw,1.1rem)}.upload-section{padding:clamp(60px,10vw,100px) 0;background:linear-gradient(135deg,#f7fafc,#edf2f7)}.upload-section h2{font-size:clamp(2rem,5vw,3.5rem);text-align:center;margin-bottom:clamp(2rem,5vw,4rem);color:#2d3748;font-weight:700;letter-spacing:-.02em}.upload-container{max-width:700px;margin:0 auto}.upload-intro{text-align:center;margin-bottom:3rem}.upload-intro h3{font-size:clamp(1.2rem,3vw,1.8rem);margin-bottom:2rem;color:#2d3748;line-height:1.4}.upload-intro p{font-size:clamp(1rem,2.5vw,1.3rem);margin-bottom:2rem;color:#4a5568}.direct-upload-section{text-align:center;margin-bottom:3rem}.elegant-button{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb)!important;font-size:clamp(1.1rem,3vw,1.6rem)!important;padding:clamp(1.2rem,3vw,2rem) clamp(2rem,5vw,4rem)!important;box-shadow:0 15px 35px #667eea4d!important;border-radius:50px!important;font-weight:600!important;text-transform:none!important;letter-spacing:.5px!important;transition:all .3s ease!important;width:100%!important;max-width:400px!important;margin:0 auto!important;display:block!important}.elegant-button:hover:not(:disabled){transform:translateY(-3px)!important;box-shadow:0 20px 40px #667eea66!important}.upload-info{margin-top:2rem;color:#718096;text-align:center}.upload-info p{margin:.5rem 0;font-size:clamp(.9rem,2vw,1.1rem)}.upload-footer{margin-top:4rem;text-align:center;color:#718096}.upload-footer p{font-size:clamp(1rem,2vw,1.2rem);line-height:1.6}.photo-gallery{padding:clamp(60px,10vw,100px) 0;background:linear-gradient(180deg,#f8fafc,#fff)}.photo-gallery h2{font-size:clamp(2rem,5vw,3.5rem);text-align:center;margin-bottom:clamp(2rem,5vw,4rem);color:#2d3748;font-weight:700;letter-spacing:-.02em}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(1.5rem,4vw,2.5rem);margin-bottom:3rem}.gallery-item{position:relative;overflow:hidden;border-radius:20px;box-shadow:0 15px 35px #0000001a;transition:all .3s ease;aspect-ratio:4/3;background:#fff;cursor:pointer}.gallery-item:hover{transform:translateY(-10px);box-shadow:0 25px 50px #00000026}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-item:hover img{transform:scale(1.05)}.gallery-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,#667eeacc,#f48fb1cc);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-zoom{color:#fff;font-size:clamp(1rem,2.5vw,1.3rem);font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.3);background:#fff3;padding:clamp(.8rem,2vw,1.2rem) clamp(1.5rem,3vw,2.5rem);border-radius:50px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.gallery-description{text-align:center;margin-top:3rem;color:#666;font-size:clamp(1rem,2vw,1.2rem);line-height:1.6}.about{padding:clamp(60px,10vw,120px) 0;background:linear-gradient(180deg,#fff,#f8fafc)}.about h2{font-size:clamp(2rem,5vw,3.5rem);text-align:center;margin-bottom:clamp(2rem,5vw,4rem);color:#2d3748;font-weight:700;letter-spacing:-.02em}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(2rem,4vw,3rem);margin-bottom:4rem}.about-card{background:#fff;padding:clamp(1.5rem,4vw,2.5rem);border-radius:20px;box-shadow:0 10px 30px #0000001a;transition:all .3s ease;border:1px solid rgba(0,0,0,.05);text-align:center}.about-card:hover{transform:translateY(-10px);box-shadow:0 20px 40px #00000026}.about-card-icon{font-size:clamp(2rem,5vw,3rem);margin-bottom:1.5rem;display:block}.about-card h3{font-size:clamp(1.2rem,3vw,1.6rem);margin-bottom:1rem;color:#2d3748;font-weight:600}.about-card p{color:#4a5568;line-height:1.7;font-size:clamp(.9rem,2vw,1.1rem)}.about-content{max-width:800px;margin:0 auto;text-align:center}.about-content p{font-size:clamp(1rem,2.5vw,1.2rem);margin-bottom:1.5rem;color:#666;line-height:1.7}.memorial-info{padding:clamp(60px,10vw,100px) 0;background:linear-gradient(135deg,#f8fafc,#edf2f7)}.memorial-card{background:#fff;border-radius:25px;padding:clamp(2rem,5vw,3rem);box-shadow:0 20px 40px #0000001a;border:1px solid rgba(0,0,0,.05);max-width:900px;margin:0 auto;position:relative;overflow:hidden}.memorial-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2,#f093fb)}.memorial-card h2{font-size:clamp(2rem,5vw,3rem);text-align:center;margin-bottom:clamp(2rem,4vw,3rem);color:#2d3748;font-weight:700}.memorial-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(1.5rem,3vw,2.5rem)}.memorial-details>div{background:#f8fafc;padding:clamp(1.5rem,3vw,2rem);border-radius:15px;border-left:4px solid #667eea}.memorial-details h3{font-size:clamp(1.1rem,2.5vw,1.4rem);margin-bottom:1rem;color:#2d3748;font-weight:600}.memorial-details p{color:#4a5568;line-height:1.6;margin:.5rem 0;font-size:clamp(.9rem,2vw,1.1rem)}.memorial-details .date-time{border-left-color:#48bb78}.memorial-details .location{border-left-color:#ed8936}.memorial-details .gathering{border-left-color:#9f7aea}.footer{background:linear-gradient(135deg,#2d3748,#1a202c);color:#fff;padding:clamp(40px,8vw,80px) 0 clamp(20px,4vw,40px);text-align:center;position:relative}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent)}.footer-main{margin-bottom:clamp(2rem,4vw,3rem)}.footer-main p{opacity:.9;font-size:clamp(1rem,2.5vw,1.2rem);margin-bottom:1rem}.footer-subtitle{opacity:.7!important;font-size:clamp(.9rem,2vw,1rem)!important;margin-top:.5rem!important}.footer-family{opacity:.5!important;font-size:clamp(.8rem,2vw,.9rem)!important;margin-top:1rem!important}.footer-links{margin-bottom:clamp(1.5rem,3vw,2rem);display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1rem}.footer-links a{color:#fffc;text-decoration:none;font-size:clamp(.9rem,2vw,1rem);transition:color .3s ease}.footer-links a:hover{color:#f093fb}.footer-separator{color:#ffffff80;font-size:clamp(.8rem,2vw,1rem)}.footer-credits{opacity:.6}.footer-credits p{font-size:clamp(.8rem,2vw,.9rem);margin:0}.footer-credits a{color:#fffc;text-decoration:none;transition:color .3s ease}.footer-credits a:hover{color:#f093fb}.footer-heart{color:#f093fb;animation:heartbeat 2s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.lightbox{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease-out;padding:20px}.lightbox-content{position:relative;max-width:95%;max-height:95%;animation:scaleIn .3s ease-out}.lightbox-content img{width:100%;height:100%;object-fit:contain;border-radius:15px;box-shadow:0 25px 50px #00000080}.lightbox-close{position:absolute;top:-15px;right:-15px;background:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 15px #0000004d;transition:all .3s ease;color:#333;font-weight:700}.lightbox-close:hover{background:#f0f0f0;transform:scale(1.1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.upload-button{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);color:#fff;border:none;padding:clamp(1rem,3vw,1.5rem) clamp(2rem,4vw,3rem);font-size:clamp(1rem,2.5vw,1.3rem);border-radius:50px;cursor:pointer;margin-top:2rem;width:100%;transition:all .3s ease;font-weight:600;text-transform:none;letter-spacing:.5px}.upload-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 15px 35px #667eea66}.upload-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.hero{min-height:100vh;padding:0}.hero-text{padding:1rem}.container{padding:0 15px}.gallery-grid{grid-template-columns:1fr;gap:1rem}.about-grid{grid-template-columns:1fr;gap:1.5rem}.memorial-details{grid-template-columns:1fr;gap:1rem}.footer-links{flex-direction:column;gap:.5rem}.footer-separator{display:none}.lightbox-close{top:-10px;right:-10px;width:35px;height:35px;font-size:1.2rem}}@media (max-width: 768px) and (min-width: 481px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.about-grid,.memorial-details{grid-template-columns:1fr}}@media (prefers-reduced-motion: no-preference){.about-card,.upload-container,.gallery-item{opacity:0;transform:translateY(30px);animation:fadeInUp .8s ease-out forwards}.about-card:nth-child(2){animation-delay:.2s}.about-card:nth-child(3){animation-delay:.4s}.gallery-item:nth-child(2){animation-delay:.1s}.gallery-item:nth-child(3){animation-delay:.2s}.upload-container{animation-delay:.6s}}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}
