
:root{
  --bg:#071426;--bg2:#0b1f39;--ink:#f8fbff;--muted:#a9b8cc;--line:rgba(255,255,255,.12);
  --blue:#7fb7ff;--gold:#f1cc88;--glass:rgba(255,255,255,.075);--radius:30px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 75% 8%,rgba(85,150,255,.15),transparent 28%),radial-gradient(circle at 10% 65%,rgba(241,204,136,.08),transparent 25%);z-index:-1}
a{color:inherit;text-decoration:none}button{font:inherit}.section{padding:120px max(6vw,24px);position:relative}.kicker,.section-heading>span,.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--blue);font-weight:700}
.preloader{position:fixed;inset:0;background:#04101f;display:grid;place-items:center;z-index:1000;transition:.8s cubic-bezier(.2,.8,.2,1)}
.preloader.hidden{opacity:0;visibility:hidden}.preloader-ring{width:130px;height:130px;border:1px solid rgba(255,255,255,.12);border-top-color:var(--blue);border-radius:50%;animation:spin 1.2s linear infinite}
.preloader-copy{position:absolute;text-align:center}.preloader-copy strong{display:block;font-family:"Playfair Display";font-size:30px}.preloader-copy span{display:block;color:var(--muted);font-size:11px;margin-top:6px;letter-spacing:.08em}@keyframes spin{to{transform:rotate(360deg)}}
.stars{position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(circle,rgba(255,255,255,.8) 1px,transparent 1.2px);background-size:110px 110px;opacity:.18}
.nav{position:absolute;left:0;right:0;top:0;padding:26px max(6vw,24px);display:flex;justify-content:space-between;align-items:center;z-index:8}.brand{font-weight:800;letter-spacing:.2em}.brand span{color:var(--gold)}.nav-links{display:flex;gap:28px;color:#dbe6f6;font-size:13px}
.hero{min-height:100svh;position:relative;display:flex;align-items:center;padding:120px max(6vw,24px) 70px;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,13,25,.95) 0%,rgba(4,15,30,.65) 47%,rgba(4,14,28,.15) 100%),radial-gradient(circle at 70% 35%,rgba(123,177,255,.18),transparent 35%)}
.hero-image{position:absolute;right:0;top:0;width:55%;height:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0%,#000 30%)}
.hero-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:heroZoom 12s ease-in-out infinite alternate}@keyframes heroZoom{to{transform:scale(1.12) translateY(-1%)}}
.hero-copy{position:relative;z-index:4;max-width:720px}.hero h1{font:700 clamp(58px,8vw,118px)/.88 "Playfair Display",serif;margin:22px 0}.hero h1 em,.finale h2 em{font-style:italic;color:var(--gold)}
.hero p{max-width:600px;color:#c7d4e6;font-size:18px;line-height:1.7}.primary{margin-top:28px;border:0;border-radius:999px;padding:16px 22px;background:#f7fbff;color:#071426;font-weight:700;cursor:pointer;box-shadow:0 12px 50px rgba(80,150,255,.22)}.primary span{margin-left:18px}.scroll-hint{position:absolute;bottom:30px;left:max(6vw,24px);font-size:10px;letter-spacing:.22em;color:#71859f;z-index:5}
.intro{text-align:center;min-height:85vh;display:flex;align-items:center;justify-content:center;flex-direction:column}.intro h2,.section-heading h2,.countdown-card h2,.capsule h2,.finale h2{font:700 clamp(42px,6vw,82px)/1 "Playfair Display",serif;margin:18px 0}.intro p{max-width:650px;color:var(--muted);font-size:18px;line-height:1.7}.big-four{position:absolute;font:700 min(38vw,520px)/1 "Playfair Display";color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.05);z-index:-1}
.section-heading{max-width:900px;margin-bottom:54px}.section-heading.compact{max-width:700px}.section-copy{color:var(--muted);max-width:680px;line-height:1.7}
.timeline{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.year-card{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr;min-height:340px;transition:.4s}.year-card:hover{transform:translateY(-7px);border-color:rgba(127,183,255,.35)}.year-card img{width:100%;height:100%;object-fit:cover}.year-card div{padding:30px;align-self:end}.year-card small{color:var(--gold)}.year-card h3{font:700 32px "Playfair Display";margin:8px 0}.year-card p{color:var(--muted)}
.profile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.fact{min-height:260px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid var(--line);border-radius:26px;padding:28px;display:flex;flex-direction:column;justify-content:space-between}.fact small{letter-spacing:.14em;color:#8296b2}.fact strong{font:700 72px "Playfair Display";color:var(--gold)}.fact span{color:#dbe6f6}
.wishes{background:rgba(255,255,255,.018)}.wish-list{border-top:1px solid var(--line)}.wish{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:38px 0;border-bottom:1px solid var(--line)}.wish b{font:600 40px "Playfair Display";color:rgba(255,255,255,.22)}.wish h3{font:600 38px "Playfair Display";margin:0 0 10px}.wish p{color:var(--muted);max-width:660px;line-height:1.7}
.countdown-wrap{padding-top:70px;padding-bottom:70px}.countdown-card{border:1px solid var(--line);border-radius:38px;padding:70px;background:radial-gradient(circle at 80% 10%,rgba(127,183,255,.16),transparent 30%),rgba(255,255,255,.04);text-align:center}.countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:860px;margin:45px auto 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.countdown div{padding:28px 10px;border-right:1px solid var(--line)}.countdown div:last-child{border-right:0}.countdown strong{display:block;font:700 clamp(44px,7vw,80px) "Playfair Display";color:var(--gold)}.countdown span{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.countdown-card p{color:var(--muted)}
.masonry{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:210px;gap:18px}.memory-card{margin:0;grid-column:span 4;grid-row:span 2;border-radius:25px;overflow:hidden;position:relative;border:1px solid var(--line);background:#0c1c33}.memory-card.tall{grid-row:span 3}.memory-card.wide{grid-column:span 8}.memory-card img{width:100%;height:100%;object-fit:cover;transition:.8s}.memory-card:hover img{transform:scale(1.05)}.memory-card figcaption{position:absolute;left:18px;bottom:18px;padding:9px 12px;border-radius:999px;background:rgba(5,14,28,.72);backdrop-filter:blur(12px);font-size:12px}
.capsule{max-width:1000px;margin:auto;padding:80px;border-radius:40px;border:1px solid rgba(241,204,136,.2);background:linear-gradient(145deg,rgba(241,204,136,.08),rgba(255,255,255,.035));text-align:center}.lock{font-size:48px}.capsule>span{display:block;color:var(--gold);letter-spacing:.18em;font-size:11px;margin-top:20px}.capsule p{max-width:650px;margin:0 auto 30px;color:var(--muted);line-height:1.7}.ghost{padding:13px 18px;border:1px solid var(--line);border-radius:999px;color:#cbd7e6;background:transparent}
.finale{text-align:center;min-height:80vh;display:flex;justify-content:center;align-items:center;flex-direction:column}.finale>p{font-size:24px;color:#c8d4e5;line-height:1.5}.finale-heart{margin-top:30px;color:var(--gold);font-weight:700;letter-spacing:.05em}
footer{padding:30px max(6vw,24px);border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#788ba4;font-size:12px}
.floating-memories{position:fixed;top:22px;right:24px;z-index:50;border:1px solid rgba(255,255,255,.18);background:rgba(7,20,38,.74);color:white;backdrop-filter:blur(18px);border-radius:999px;padding:11px 15px;display:flex;align-items:center;gap:9px;cursor:pointer;box-shadow:0 14px 50px rgba(0,0,0,.28)}.floating-memories i{width:7px;height:7px;background:#7fffb8;border-radius:50%;box-shadow:0 0 12px #7fffb8}.camera{font-size:16px}.floating-label{font-size:12px;font-weight:700}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){
  .nav-links{display:none}.hero-image{width:100%;opacity:.62;mask-image:linear-gradient(180deg,#000 0%,#000 45%,transparent 80%)}.hero-bg{background:linear-gradient(0deg,#071426 5%,rgba(7,20,38,.25) 70%)}
  .hero{align-items:flex-end;padding-bottom:95px}.hero-copy{max-width:100%}.hero p{font-size:16px}.timeline{grid-template-columns:1fr}.year-card{grid-template-columns:1fr;min-height:0}.year-card img{height:270px}.profile-grid{grid-template-columns:repeat(2,1fr)}
  .masonry{grid-template-columns:repeat(2,1fr);grid-auto-rows:230px}.memory-card,.memory-card.wide{grid-column:span 1}.memory-card.tall{grid-row:span 2}.countdown-card{padding:42px 18px}.capsule{padding:52px 22px}
}
@media(max-width:620px){
  .section{padding:86px 20px}.hero{padding-left:20px;padding-right:20px}.hero h1{font-size:58px}.floating-memories{top:auto;bottom:18px;right:16px}.floating-label{display:none}.floating-memories{width:50px;height:50px;justify-content:center;padding:0}.floating-memories i{position:absolute;right:5px;top:5px}
  .profile-grid{grid-template-columns:1fr 1fr}.fact{min-height:190px;padding:20px}.fact strong{font-size:52px}.wish{grid-template-columns:58px 1fr}.wish h3{font-size:30px}.wish b{font-size:26px}
  .countdown{grid-template-columns:repeat(2,1fr)}.countdown div:nth-child(2){border-right:0}.countdown div:nth-child(-n+2){border-bottom:1px solid var(--line)}.masonry{display:grid;grid-template-columns:1fr;grid-auto-rows:290px}.memory-card,.memory-card.wide,.memory-card.tall{grid-column:1;grid-row:auto}
  footer{padding-bottom:90px;gap:20px;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}


/* ===== Celebration FX Upgrade ===== */
#blast-layer{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
.preloader{isolation:isolate;background:radial-gradient(circle at 50% 42%,rgba(127,183,255,.16),transparent 22%),radial-gradient(circle at 50% 50%,#071426 0%,#030914 72%)}
.preloader-ring{display:none}.preloader-copy{z-index:3;display:flex;align-items:center;flex-direction:column}
.ojas-loader{display:flex;align-items:center;justify-content:center;gap:.08em;font:700 clamp(62px,12vw,140px)/.8 "Playfair Display",serif;letter-spacing:.02em;margin-bottom:26px;filter:drop-shadow(0 10px 35px rgba(102,166,255,.24))}
.ojas-loader span{display:inline-block;color:#f8fbff;opacity:.18;transform:translateY(18px) scale(.88);animation:ojasLetter 1.35s cubic-bezier(.2,.85,.2,1) infinite}
.ojas-loader span:nth-child(2){animation-delay:.12s}.ojas-loader span:nth-child(3){animation-delay:.24s}.ojas-loader span:nth-child(4){animation-delay:.36s}.ojas-loader span:last-child{color:var(--gold)}
.preloader-copy>strong{font-size:18px;letter-spacing:.18em;text-transform:uppercase;font-family:"DM Sans",sans-serif;color:#dbe9fb}.loader-sub{margin-top:8px!important;letter-spacing:.08em!important}
.preloader-orbit{position:absolute;width:min(66vw,520px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.08);z-index:1}.orbit-a{animation:orbitSpin 10s linear infinite}.orbit-b{width:min(50vw,390px);border-color:rgba(241,204,136,.12);animation:orbitSpinReverse 7s linear infinite}
.preloader-orbit:before,.preloader-orbit:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 20px rgba(127,183,255,.9)}.preloader-orbit:before{top:8%;left:28%}.preloader-orbit:after{bottom:13%;right:20%;background:var(--gold);box-shadow:0 0 20px rgba(241,204,136,.85)}
.preloader-stars{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.9) 1px,transparent 1.2px),radial-gradient(circle,rgba(127,183,255,.8) 1px,transparent 1.3px);background-size:95px 95px,150px 150px;background-position:0 0,30px 60px;opacity:.22;animation:starsDrift 12s linear infinite}
@keyframes ojasLetter{0%,100%{opacity:.18;transform:translateY(18px) scale(.88)}40%{opacity:1;transform:translateY(0) scale(1.04)}62%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes orbitSpinReverse{to{transform:rotate(-360deg)}}@keyframes starsDrift{to{background-position:95px 95px,180px 210px}}
.fx-particle{position:fixed;left:0;top:0;width:8px;height:8px;border-radius:50%;pointer-events:none;z-index:10000;opacity:1;will-change:transform,opacity}
.fx-ring{position:fixed;left:0;top:0;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.9);pointer-events:none;z-index:9999;transform:translate(-50%,-50%) scale(.3);animation:fxRing .55s ease-out forwards}@keyframes fxRing{to{transform:translate(-50%,-50%) scale(4.5);opacity:0}}
.opening-flash{position:fixed;inset:0;z-index:9998;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.85),rgba(127,183,255,.24) 20%,transparent 55%);animation:openingFlash .9s ease-out forwards}@keyframes openingFlash{0%{opacity:0}18%{opacity:1}100%{opacity:0}}
.blast-word{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);z-index:10001;pointer-events:none;font:700 clamp(28px,6vw,70px)/1 "Playfair Display",serif;color:#fff;text-shadow:0 8px 40px rgba(0,0,0,.35);animation:blastWord 1.1s cubic-bezier(.2,.8,.2,1) forwards;white-space:nowrap}@keyframes blastWord{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}65%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-56%) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.ojas-loader span,.preloader-orbit,.preloader-stars{animation:none!important}}
