
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap');
:root{--pink:#ff7899;--rose:#ffd2dd;--wine:#4b172d;--dark:#10040e;--cream:#fff8f6;--muted:#bda6ad}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:#fff;font-family:Inter,sans-serif;min-height:100vh}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 20% 20%,#ff78991e,transparent 32%),radial-gradient(circle at 80% 70%,#a44a9320,transparent 34%),linear-gradient(135deg,#170817,#2c0b20 55%,#10040f)}
a{text-decoration:none;color:inherit}.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:35px 20px;position:relative;overflow:hidden}.content{width:min(900px,100%);text-align:center;animation:rise .8s ease}
.serif,h1,h2,h3,.letter{font-family:"Cormorant Garamond",serif}.eyebrow{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--pink)}
h1{font-size:clamp(4rem,13vw,8.5rem);font-weight:500;line-height:.82;margin:22px 0}h2{font-size:clamp(3rem,8vw,5.8rem);line-height:.9;font-weight:500;margin:15px 0 25px}h3{font-size:2rem;font-weight:500}
p{line-height:1.8;color:var(--muted);font-size:16px}.lead{max-width:680px;margin:auto;font-size:18px}
.btn{display:inline-block;margin:12px 5px;padding:14px 23px;border:1px solid #ffffff2d;border-radius:999px;background:#ffffff0d;backdrop-filter:blur(10px);transition:.25s}.btn:hover{background:#ff78991a;transform:translateY(-3px)}
.heart{font-size:80px;color:var(--pink);animation:beat 1.5s infinite}.tiny{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.45}
.photo{width:100%;max-height:68vh;object-fit:cover;border-radius:28px;box-shadow:0 25px 80px #0008}
.card{padding:35px;border:1px solid #ffffff14;background:#ffffff09;border-radius:28px;backdrop-filter:blur(12px);box-shadow:0 25px 80px #0005}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:35px}.gallery img{width:100%;height:330px;object-fit:cover;border-radius:20px;display:block}
.nav{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:30;display:flex;gap:7px;padding:7px;background:#120611d9;border:1px solid #ffffff18;border-radius:999px;backdrop-filter:blur(14px)}
.nav a{font-size:9px;padding:9px 11px;border-radius:999px;color:#fff8;letter-spacing:.08em;text-transform:uppercase}.nav a:hover{background:#ff78991c;color:#fff}
.arrow{font-size:13px;margin:22px 8px;opacity:.6}.letter{font-size:21px;line-height:1.8;color:#ffeef2;text-align:left}.letter p{font-family:"Cormorant Garamond",serif;font-size:21px;color:#ffeef2}.sign{text-align:right;font-style:italic;color:var(--rose)!important}
.moments{display:grid;gap:14px;text-align:left}.moment{padding:24px;border-left:2px solid var(--pink);background:#ffffff08;border-radius:0 20px 20px 0}.moment h3{margin:0 0 5px}.moment p{margin:0}
.count{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:30px 0}.unit{min-width:85px;padding:16px;border:1px solid #ffffff15;border-radius:18px;background:#ffffff09}.unit strong{display:block;font-size:28px}.unit small{font-size:9px;letter-spacing:.16em;color:#fff7}
.reveal{display:none;margin:25px auto;padding:25px;max-width:650px;border:1px solid #ff789933;border-radius:24px;background:#ff78990b}.reveal.show{display:block;animation:rise .5s ease}
@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes beat{50%{transform:scale(1.13)}}
@media(max-width:650px){.page{padding:25px 16px 95px}.gallery{grid-template-columns:1fr}.gallery img{height:300px}.nav{max-width:95vw;overflow:auto;white-space:nowrap}}

.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}.photo-card{padding:10px;background:#ffffff08;border:1px solid #ffffff12;border-radius:22px}.photo-card img{width:100%;height:310px;object-fit:cover;border-radius:16px;display:block}.photo-card p{margin:10px 6px 3px;font-family:"Cormorant Garamond",serif;font-size:20px;color:#ffd2dd}.category{margin-top:40px;text-align:left}.category h3{margin:0 0 4px;color:#ffeef2}.category .category-note{margin:0 0 14px;font-size:13px}.dream-photo{max-width:680px;margin:28px auto 20px}.dream-photo img{width:100%;max-height:70vh;object-fit:cover;border-radius:30px;box-shadow:0 30px 100px #0009}.dream-line{font-family:"Cormorant Garamond",serif;font-size:clamp(2rem,5vw,3.6rem);line-height:1.05;color:#ffeef2;margin:18px auto;max-width:700px;font-style:italic}.dream-sub{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#ff7899}
@media(max-width:650px){.photo-grid{grid-template-columns:1fr}.photo-card img{height:330px}}

/* Birthday candle page */
.candle-page{overflow-x:hidden}.candle-content{position:relative;z-index:2}.candle-intro{font-size:22px;margin-bottom:4px}.cake-wrap{width:310px;height:300px;margin:12px auto 0;position:relative;filter:drop-shadow(0 28px 35px #0008)}
.cake-plate{position:absolute;width:290px;height:34px;left:10px;bottom:20px;border-radius:50%;background:linear-gradient(#ffe6ed,#a95a73);box-shadow:0 8px 0 #5c1d37}.cake-body{position:absolute;left:35px;bottom:54px;width:240px;height:115px;border-radius:20px 20px 30px 30px;background:linear-gradient(90deg,#8e284b,#e56a8b 48%,#8e284b);overflow:hidden;box-shadow:inset 0 -15px 20px #5b1831}.cake-body:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff14 0 18px,#0000000a 18px 36px)}.cake-layer{position:absolute;left:0;right:0;top:28px;height:8px;background:#ffe5e9;box-shadow:0 3px 0 #9b3756}.cake-layer.second{top:66px}.cake-top{position:absolute;left:28px;bottom:150px;width:254px;height:48px;border-radius:50%;background:radial-gradient(ellipse at 50% 40%,#fff9f6 0 12%,#ffd9e1 13% 38%,#f08aa3 39% 70%,#9d3355 71%);box-shadow:inset 0 -8px 8px #8b2948}.cream-swirl{position:absolute;width:185px;height:20px;left:34px;top:8px;border-radius:50%;border-top:7px solid #fff8f6;transform:rotate(-2deg)}.berry{position:absolute;width:11px;height:11px;border-radius:50%;background:#7b183b;box-shadow:0 1px 2px #0007}.b1{left:60px;top:20px}.b2{left:125px;top:12px}.b3{right:52px;top:21px}.candle-stick{position:absolute;z-index:4;left:142px;bottom:188px;width:26px;height:65px;border-radius:7px;background:repeating-linear-gradient(135deg,#fff4f6 0 9px,#ff8baa 9px 18px);box-shadow:inset -5px 0 8px #9f3456}.candle-stripe{position:absolute;inset:0;border-radius:7px;background:linear-gradient(90deg,#ffffff44,#00000012,#ffffff33)}.flame{position:absolute;z-index:5;left:144px;bottom:246px;width:23px;height:38px;border-radius:55% 45% 55% 45%;background:radial-gradient(circle at 50% 65%,#fff8a8 0 22%,#ffd35a 23% 48%,#ff6d7f 49% 75%,transparent 76%);transform:rotate(4deg);animation:flicker .8s infinite alternate;filter:drop-shadow(0 0 12px #ff9b68)}.flame span{position:absolute;left:8px;bottom:7px;width:8px;height:15px;border-radius:50%;background:#fff9d8}.flame.blown{animation:blowout .6s ease forwards}.cake-wrap.wished{animation:wishBounce .8s ease}.sparkle{position:absolute;color:#ffd9e4;font-size:26px;opacity:.7;animation:twinkle 1.8s infinite}.s1{left:28px;top:80px}.s2{right:16px;top:115px;animation-delay:.4s}.s3{left:250px;top:25px;animation-delay:.8s}.blow-text{font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:#ffd2dd;margin:0 auto 12px}.blow-btn{cursor:pointer;min-width:220px;font-size:14px}.blow-btn:disabled{opacity:.65;cursor:default}.wish-glow{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 42%,#ff78991f,transparent 28%);z-index:0}@keyframes flicker{from{transform:rotate(-3deg) scale(.96)}to{transform:rotate(4deg) scale(1.05)}}@keyframes blowout{0%{opacity:1;transform:translateX(0) scale(1)}45%{opacity:.7;transform:translateX(12px) scale(.8)}100%{opacity:0;transform:translateX(40px) scale(.1)}}@keyframes wishBounce{0%,100%{transform:translateY(0)}40%{transform:translateY(-8px) scale(1.02)}}@keyframes twinkle{50%{opacity:.2;transform:scale(.7) rotate(20deg)}}
