:root{--bg-primary: #07050a;--bg-surface: #120c1c;--bg-card: #1a1124;--accent-primary: #7a0a0a;--accent-secondary: #c9a84c;--accent-glow: #6b2fa0;--text-primary: #e8d8d8;--text-muted: #8a7a7a;--text-dim: #4a3a3a;--font-display: "Cinzel", serif;--font-serif: "Playfair Display", serif;--font-body: "Inter", sans-serif;--transition-smooth: cubic-bezier(.25, .46, .45, .94)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden;min-height:100vh}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{border:none;background:none;cursor:pointer;font-family:inherit}canvas{display:block}#preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;transition:opacity .8s ease,visibility .8s ease}#preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}.preloader-content{text-align:center}.preloader-letter{font-family:var(--font-display);font-size:4rem;color:var(--accent-primary);display:block;margin-bottom:1rem;animation:pulseLetter 1s ease-in-out infinite alternate}.preloader-bar{width:120px;height:2px;background:var(--bg-card);border-radius:2px;overflow:hidden;margin:0 auto}.preloader-bar:after{content:"";display:block;width:40%;height:100%;background:var(--accent-secondary);border-radius:2px;animation:loadBar 1.2s ease-in-out infinite}@keyframes pulseLetter{0%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}@keyframes loadBar{0%{transform:translate(-100%)}to{transform:translate(350%)}}#app{position:relative;z-index:1}#hero{position:relative;height:100vh;overflow:hidden}#three-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.hero-text{opacity:0;transform:translateY(30px);animation:heroFadeIn 1.5s var(--transition-smooth) .5s forwards}@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}.hero-subtitle{font-family:var(--font-serif);font-size:1rem;color:var(--text-muted);letter-spacing:.3em;text-transform:uppercase;display:block;margin-bottom:.5rem}.hero-name{font-family:var(--font-display);font-size:clamp(3rem,12vw,8rem);font-weight:900;color:var(--text-primary);line-height:1;margin-bottom:.25rem;text-shadow:0 0 40px rgba(106,47,160,.3)}.hero-age{margin-bottom:1.5rem}.age-number{font-family:var(--font-display);font-size:clamp(4rem,15vw,10rem);font-weight:900;color:var(--accent-primary);line-height:1;text-shadow:0 0 60px rgba(122,10,10,.4)}.countdown{display:flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-display)}.countdown-item{display:flex;flex-direction:column;align-items:center;min-width:60px}.countdown-value{font-size:clamp(1.5rem,5vw,3rem);font-weight:700;color:var(--text-primary);line-height:1;display:block;position:relative}.countdown-label{font-size:.6rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.2em;margin-top:.25rem}.countdown-sep{font-size:clamp(1.5rem,5vw,3rem);color:var(--accent-primary);animation:blink 1s step-end infinite;margin-bottom:1.2rem}@keyframes blink{50%{opacity:.3}}.scroll-indicator{position:absolute;bottom:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.6;animation:floatDown 2s ease-in-out infinite}.scroll-indicator span{font-size:.7rem;text-transform:uppercase;letter-spacing:.3em;color:var(--text-muted)}.scroll-arrow{width:1px;height:30px;background:linear-gradient(to bottom,var(--text-muted),transparent)}@keyframes floatDown{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}section{padding:6rem 1.5rem;position:relative}.section-header{text-align:center;margin-bottom:4rem;max-width:600px;margin-left:auto;margin-right:auto}.section-title{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.5rem);font-weight:700;color:var(--text-primary);margin-bottom:.75rem}.section-subtitle{font-family:var(--font-serif);font-size:1rem;color:var(--text-muted);font-style:italic}#timeline{background:var(--bg-surface)}.timeline-container{position:relative;max-width:900px;margin:0 auto}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,var(--accent-secondary),transparent);transform:translate(-50%)}.timeline-item{display:flex;align-items:flex-start;margin-bottom:4rem;opacity:0;transform:translateY(40px);position:relative}.timeline-item.left{flex-direction:row}.timeline-item.right{flex-direction:row-reverse}.timeline-dot{position:absolute;left:50%;top:20px;width:12px;height:12px;border-radius:50%;background:var(--accent-secondary);transform:translate(-50%);z-index:2;border:2px solid var(--bg-surface)}.timeline-content{width:calc(50% - 2rem);background:var(--bg-card);border-radius:12px;padding:1.5rem;position:relative;border:1px solid rgba(201,168,76,.1)}.timeline-item.left .timeline-content{margin-right:auto}.timeline-item.right .timeline-content{margin-left:auto}.timeline-year{font-family:var(--font-display);font-size:1.5rem;color:var(--accent-secondary);margin-bottom:.5rem}.timeline-image{width:100%;height:180px;object-fit:cover;border-radius:8px;margin-bottom:.75rem;background:var(--bg-primary)}.timeline-img-fallback{width:100%;height:180px;border-radius:8px;margin-bottom:.75rem;background:var(--bg-card);align-items:center;justify-content:center;color:var(--text-dim);font-family:var(--font-serif);font-size:.85rem}.timeline-text{font-size:.9rem;color:var(--text-muted);line-height:1.6}#gallery{background:var(--bg-primary);min-height:100vh}.gallery-container{position:relative}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:900px;margin:0 auto}.gallery-thumb{aspect-ratio:3/4;object-fit:cover;width:100%;border-radius:4px;cursor:pointer;background:var(--bg-card);transition:transform .3s ease}.gallery-thumb:hover{transform:scale(1.02)}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;opacity:0;transition:opacity .5s ease}.gallery-lightbox.active{opacity:1;pointer-events:auto}.lightbox-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#07050ae6}.lightbox-image{position:absolute;top:0;right:0;bottom:0;left:0;background-size:contain;background-position:center;background-repeat:no-repeat;transition:transform .8s var(--transition-smooth)}.lightbox-caption{position:absolute;bottom:5rem;left:2rem;font-family:var(--font-serif);font-size:.9rem;color:var(--text-primary);opacity:0;transition:opacity .5s ease .3s;max-width:60%}.lightbox-comment{position:absolute;bottom:2rem;left:2rem;font-family:var(--font-body);font-size:.8rem;color:var(--accent-secondary);font-style:italic;opacity:0;transition:opacity .5s ease .5s;max-width:60%}.gallery-lightbox.active .lightbox-comment{opacity:.8}.gallery-lightbox.active .lightbox-caption{opacity:1}.lightbox-counter{position:absolute;bottom:2rem;right:2rem;font-family:var(--font-display);font-size:.8rem;color:var(--text-muted);opacity:0;transition:opacity .5s ease .3s}.gallery-lightbox.active .lightbox-counter{opacity:1}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:1.5rem;cursor:pointer;opacity:0;transition:opacity .3s ease;z-index:2;background:none;border:none}.gallery-lightbox.active .lightbox-close{opacity:1}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:2.5rem;cursor:pointer;opacity:0;transition:opacity .3s ease;z-index:2;background:none;border:none;border-radius:50%}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.gallery-lightbox.active .lightbox-prev,.gallery-lightbox.active .lightbox-next{opacity:.5}.lightbox-prev:hover,.lightbox-next:hover{opacity:1!important}#birthday-message{background:var(--bg-primary);min-height:100vh;display:flex;align-items:center;justify-content:center}.birthday-container{max-width:700px;margin:0 auto;padding:2rem}.birthday-card{background:linear-gradient(135deg,#1a1510,#120c1c);border-radius:16px;padding:4rem 3rem;text-align:center;border:1px solid rgba(201,168,76,.15);box-shadow:0 20px 60px #00000080}.birthday-hindi{font-family:var(--font-display);font-size:2.5rem;color:var(--accent-primary);margin-bottom:1.5rem;line-height:1.4}.birthday-hinglish{font-family:var(--font-serif);font-size:1.3rem;color:var(--accent-secondary);font-style:italic}#footer{padding:4rem 1.5rem;background:var(--bg-primary);text-align:center;border-top:1px solid rgba(255,255,255,.05)}.footer-name{font-family:var(--font-display);font-size:1.5rem;color:var(--text-muted);margin-bottom:1rem}.footer-social{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem}.social-link{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.85rem;transition:color .3s ease}.social-link:hover{color:var(--accent-secondary)}.social-link svg{width:20px;height:20px}.footer-tagline{font-size:.75rem;color:var(--text-dim);font-style:italic}#confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;overflow:hidden}.pin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;background:#07050af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pin-card{background:linear-gradient(135deg,#1a1510,#120c1c);border:1px solid rgba(201,168,76,.15);border-radius:16px;padding:3rem 2rem;text-align:center;max-width:340px;width:90%;box-shadow:0 20px 60px #0009}.pin-icon{font-size:2.5rem;margin-bottom:1rem}.pin-title{font-family:var(--font-display);font-size:1.1rem;color:var(--text-primary);margin-bottom:.5rem}.pin-sub{font-family:var(--font-serif);font-size:.8rem;color:var(--text-muted);margin-bottom:1.5rem;font-style:italic}.pin-input{width:120px;padding:.75rem;background:var(--bg-primary);border:1px solid rgba(201,168,76,.2);border-radius:8px;color:var(--text-primary);font-family:var(--font-display);font-size:1.5rem;text-align:center;letter-spacing:.3em;outline:none;transition:border-color .3s ease;margin:0 auto 1rem;display:block}.pin-input:focus{border-color:var(--accent-primary)}.pin-submit{display:inline-block;padding:.6rem 2rem;background:var(--accent-primary);color:var(--text-primary);font-family:var(--font-display);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;border:none;border-radius:8px;cursor:pointer;transition:background .3s ease}.pin-submit:hover{background:#9a0a0a}.pin-error{font-family:var(--font-body);font-size:.75rem;color:var(--accent-primary);margin-top:.75rem;min-height:1.2em}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-card);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}@media(max-width:768px){section{padding:4rem 1rem}.timeline-line{left:20px}.timeline-item{flex-direction:column!important;padding-left:3rem}.timeline-dot{left:20px}.timeline-content{width:100%}.gallery-grid{grid-template-columns:repeat(2,1fr)}.countdown-item{min-width:45px}.birthday-hindi{font-size:1.8rem}.birthday-hinglish{font-size:1.1rem}.lightbox-caption{left:1rem;bottom:3.5rem;max-width:80%;font-size:.8rem}.lightbox-comment{left:1rem;bottom:1rem;max-width:80%;font-size:.7rem}.lightbox-counter{right:1rem;bottom:1rem}}@media(max-width:480px){.birthday-card{padding:2.5rem 1.5rem}.birthday-hindi{font-size:1.5rem}.birthday-hinglish{font-size:1rem}.countdown{gap:.25rem}.countdown-item{min-width:35px}.countdown-value{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
