*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#fff9fb;--pink:#d987a2;--deep:#4b2633;--text:#3d3035;--muted:#846e76;--line:#efdde4}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 10%,rgba(236,167,190,.16),transparent 30%),radial-gradient(circle at 80% 70%,rgba(220,145,170,.12),transparent 28%);z-index:-1}
.hidden{display:none!important}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;background:rgba(75,38,51,.08)}.scroll-progress span{display:block;width:0;height:100%;background:var(--deep);box-shadow:0 0 14px rgba(75,38,51,.35);transition:width .12s linear}
.loading-screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:radial-gradient(circle at 50% 30%,#fff,#fff0f5 70%,#f8dce6);transition:opacity .7s ease,visibility .7s ease}.loading-screen.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-screen h2{font-size:clamp(42px,7vw,78px);line-height:.95;margin:22px 0 26px;max-width:720px}.loading-screen h2 em{font-style:italic;font-weight:500}.loading-heart{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--deep);font-family:"Cormorant Garamond",serif;font-size:62px;line-height:1;box-shadow:0 14px 45px rgba(75,38,51,.15);animation:heartbeat 1.8s ease-in-out infinite}.loading-message{max-width:560px;min-height:52px;color:var(--muted);font-family:"Cormorant Garamond",serif;font-size:22px;line-height:1.35}.loading-track{width:min(380px,100%);height:5px;margin:28px 0 13px;background:rgba(75,38,51,.12);border-radius:10px;overflow:hidden}.loading-track span{display:block;width:0;height:100%;background:var(--deep);border-radius:inherit;transition:width .25s ease}.loading-progress{color:var(--muted);font-size:11px;letter-spacing:1px}.letter{padding-top:70px}.letter-card{max-width:840px;margin:40px auto 0;padding:60px 70px;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 20px 60px rgba(91,47,62,.07)}.letter-card h2{font-size:clamp(45px,7vw,75px);line-height:.95;margin:20px 0 28px}.letter-card h2 em{font-style:italic;font-weight:500}.letter-card p{font-family:"Cormorant Garamond",serif;color:var(--deep);font-size:24px;line-height:1.55;margin:20px 0}.letter-signoff{font-family:"Cormorant Garamond",serif;color:var(--muted);font-size:22px;line-height:1.45;margin-top:32px}.letter-signoff strong{color:var(--deep);font-size:28px}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;position:relative;overflow:hidden}
.hero-glow{position:absolute;width:450px;height:450px;border-radius:50%;background:rgba(230,145,171,.14);filter:blur(60px);pointer-events:none;animation:glowBreath 8s ease-in-out infinite}
.eyebrow,.section-label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--pink);font-weight:600}
.hero h1,h2{font-family:"Cormorant Garamond",Georgia,serif;color:var(--deep)}
.hero h1{font-size:clamp(44px,13vw,100px);line-height:.85;margin:25px 0}
.hero h1 span{font-style:italic}
.hero-subtitle{max-width:400px;color:var(--muted);line-height:1.8;margin-bottom:35px}
.hero>.eyebrow,.hero>h1,.hero>.hero-subtitle,.hero>.primary-btn{opacity:0;animation:heroRise .9s cubic-bezier(.2,.75,.25,1) forwards}.hero>h1{animation-delay:.12s}.hero>.hero-subtitle{animation-delay:.24s}.hero>.primary-btn{animation-delay:.36s}
.primary-btn,.reveal-btn{border:0;background:var(--deep);color:white;border-radius:999px;padding:16px 24px;font-size:13px;cursor:pointer;box-shadow:0 12px 30px rgba(75,38,51,.16);transition:.3s}
.primary-btn:hover,.reveal-btn:hover{transform:translateY(-2px);box-shadow:0 16px 35px rgba(75,38,51,.23)}
.primary-btn:focus-visible,.reveal-btn:focus-visible{outline:3px solid var(--pink);outline-offset:4px}
.primary-btn span{margin-left:8px}
.scroll-hint{position:absolute;bottom:25px;color:#b99ba5;animation:bob 1.6s infinite}
@keyframes bob{50%{transform:translateY(7px)}}
@keyframes heroRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes glowBreath{50%{transform:scale(1.08);opacity:.72}}
@keyframes heartbeat{50%{transform:scale(1.08);box-shadow:0 18px 55px rgba(75,38,51,.22)}}
.section{max-width:1050px;margin:auto;padding:100px 24px}
.reveal-item{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.25,1);transition-delay:var(--reveal-delay,0ms)}.reveal-item.is-visible{opacity:1;transform:none}.timeline-card,.difference-card,.solo-photo,.family-card,.media-card,.gallery-item{will-change:transform}.timeline-card:hover,.difference-card:hover,.family-card:hover{transform:translateY(-5px)}
.section h2{font-size:clamp(45px,7vw,75px);line-height:.95;margin:18px 0 25px}
.section h2 em{font-style:italic;font-weight:500}
.lead{max-width:680px;color:var(--muted);line-height:1.9;font-size:15px}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:55px}
.timeline-card{background:#fff;border:1px solid var(--line);padding:15px;border-radius:22px;box-shadow:0 15px 40px rgba(91,47,62,.05);position:relative}
.timeline-number{font-size:10px;color:var(--pink);letter-spacing:2px;margin:4px 0 12px}
.photo{height:270px;border-radius:15px;overflow:hidden;background:#f6e8ed}
.photo img,.gallery-item img,.dream-photo img,.final-photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo img:not([src=""]){min-height:100%}.photo img.is-missing,.gallery-item img.is-missing,.dream-photo img.is-missing,.final-photo img.is-missing{display:none}
.timeline-card h3{font-family:"Cormorant Garamond",serif;font-size:28px;color:var(--deep);margin:18px 5px 5px}
.timeline-card p{font-size:13px;color:var(--muted);line-height:1.7;margin:0 5px 10px}
.differences{text-align:center}
.difference-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:45px 0}
.difference-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:25px 15px;display:flex;flex-direction:column;gap:9px}
.difference-card strong{font-family:"Cormorant Garamond";font-size:25px;color:var(--deep)}
.difference-card span{font-size:13px}
.difference-card small{color:var(--muted);font-size:11px;line-height:1.5}
.center-note{color:var(--muted);line-height:1.9}.center-note strong{color:var(--deep)}
.payal{padding-top:70px}.solo-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-auto-rows:220px;gap:14px;margin-top:45px}.solo-photo{margin:0;overflow:hidden;border-radius:18px;background:#f6e8ed;position:relative}.solo-photo-large{grid-row:span 2}.solo-photo img{display:block;width:100%;height:100%;object-fit:cover}.solo-photo figcaption{position:absolute;left:14px;right:14px;bottom:12px;color:white;font-size:12px;text-shadow:0 1px 12px #21191c;opacity:0;transform:translateY(6px);transition:.25s}.solo-photo:hover figcaption,.solo-photo:focus-within figcaption{opacity:1;transform:none}
.family{max-width:1150px}.family-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-top:45px}.family-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 15px 40px rgba(91,47,62,.06)}.family-card img{width:100%;height:310px;object-fit:cover;display:block}.family-card-featured img{height:390px}.family-card figcaption{padding:18px 18px 21px}.family-card strong,.family-card span{display:block}.family-card strong{font-family:"Cormorant Garamond",serif;color:var(--deep);font-size:25px}.family-card span{color:var(--muted);font-size:12px;line-height:1.6;margin-top:5px}.family-note{text-align:center;color:var(--muted);line-height:1.9;margin-top:38px}.family-note strong{color:var(--deep)}
.ludo-box{background:linear-gradient(145deg,#fff,#fff5f8);border:1px solid var(--line);border-radius:30px;padding:60px 25px;text-align:center;box-shadow:0 25px 70px rgba(91,47,62,.08)}
.dice{font-size:55px;margin-bottom:15px}
.ludo-box h2{margin-bottom:15px}
.ludo-box p{color:var(--muted);line-height:1.8;margin-bottom:30px}
.ludo-reveal{margin-top:30px;padding-top:25px;border-top:1px solid var(--line);animation:fade .7s ease}
.ludo-reveal span{display:block;font-family:"Cormorant Garamond";font-size:38px;font-style:italic;color:var(--deep)}
.ludo-reveal small{display:block;margin-top:8px;color:var(--muted)}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.media-card{margin-top:40px;max-width:760px;border-radius:25px;overflow:hidden;background:#21191c;position:relative;box-shadow:0 20px 60px rgba(60,30,40,.14)}
.media-card video{width:100%;display:block;max-height:600px}
.media-card{margin-bottom:18px}.media-placeholder{padding:15px;color:#e8dce0;text-align:center;font-size:11px}.media-card:not(.video-unavailable) .media-placeholder{display:none}.media-card.video-unavailable video{display:none}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:45px}.video-card,.gift-card{min-width:0}.video-card .media-card,.gift-card .media-card{margin-top:0}.video-card h3,.gift-card h3{font-family:"Cormorant Garamond",serif;color:var(--deep);font-size:27px;margin:14px 3px 4px}.video-card p,.gift-card p{color:var(--muted);font-size:13px;line-height:1.7;margin:0 3px}.gifts{padding-top:70px}.gift-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:45px}.gift-card .media-card{max-width:none}.gift-card .media-card video{max-height:650px}
.quote-card{margin-top:40px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:55px 35px;text-align:center;box-shadow:0 20px 55px rgba(91,47,62,.06)}
.rose{font-size:34px;margin-bottom:25px}
.quote-card p{font-family:"Cormorant Garamond";font-size:25px;line-height:1.55;color:var(--deep);margin:20px auto;max-width:750px}
.quote-card strong{font-weight:700}
.dream-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;margin-top:45px}
.dream-photo{height:470px;border-radius:25px;overflow:hidden;background:#f6e8ed}
.dream-copy p{font-family:"Cormorant Garamond";font-size:27px;color:var(--deep);line-height:1.25;margin:22px 0}
.dream-copy p:before{content:"♡";color:var(--pink);margin-right:12px}
.gallery-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-auto-rows:230px;gap:12px;margin-top:45px}
.gallery-item{border-radius:18px;overflow:hidden;background:#f6e8ed}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}
.archive{max-width:1150px;padding-top:70px}.archive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:42px}.archive-photo{margin:0;aspect-ratio:1;overflow:hidden;border-radius:12px;background:#f6e8ed;position:relative}.archive-photo img{width:100%;height:100%;display:block;object-fit:cover}.archive-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 8px 8px;color:white;background:linear-gradient(transparent,rgba(33,25,28,.8));font-size:9px;line-height:1.2;overflow-wrap:anywhere;opacity:0;transition:opacity .2s}.archive-photo figcaption strong,.archive-photo figcaption span{display:block}.archive-photo figcaption strong{font-size:11px;margin-bottom:3px}.archive-photo:hover figcaption{opacity:1}.archive-videos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:45px}.archive-video{min-width:0}.archive-video video{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;background:#21191c;border-radius:18px}.archive-video h3{font-family:"Cormorant Garamond",serif;font-size:22px;color:var(--deep);margin:10px 2px 2px;overflow-wrap:anywhere}.archive-video p{color:var(--muted);font-size:11px;line-height:1.5;margin:0 2px}.challenge-layout{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:45px;align-items:center;margin-top:45px}.challenge-photo{border-radius:24px;overflow:hidden;background:#f6e8ed;box-shadow:0 20px 55px rgba(91,47,62,.08)}.challenge-photo img{display:block;width:100%;height:520px;object-fit:cover}.challenge-copy{max-width:560px}.challenge-copy p{font-family:"Cormorant Garamond",serif;font-size:27px;line-height:1.35;color:var(--deep);margin:0 0 23px}.challenge-copy strong{font-family:"Cormorant Garamond",serif;font-size:28px;color:var(--deep)}
.final{text-align:center;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}
.final-glow{position:absolute;width:500px;height:500px;background:rgba(224,137,166,.13);filter:blur(70px);border-radius:50%}
.rose-big{font-size:60px;position:relative}
.final h2{position:relative;font-size:clamp(55px,9vw,90px)}
.final-message{position:relative;max-width:620px;color:var(--muted);line-height:1.9;margin:20px auto}
.signature{position:relative;font-family:"Cormorant Garamond";font-size:24px;font-style:italic;color:var(--deep);margin:10px}
.final-photo{position:relative;width:110px;height:110px;border-radius:50%;overflow:hidden;border:4px solid white;box-shadow:0 10px 30px rgba(75,38,51,.15);margin-top:25px;background:#f6e8ed}
#petals{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}
.petal{position:absolute;top:-30px;font-size:16px;opacity:.5;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(260deg);opacity:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-hint,.petal,.ludo-reveal,.loading-heart,.hero-glow{animation:none}.hero>.eyebrow,.hero>h1,.hero>.hero-subtitle,.hero>.primary-btn{opacity:1;animation:none}.reveal-item{opacity:1;transform:none;transition:none}.primary-btn,.reveal-btn,.timeline-card,.difference-card,.family-card{transition:none}}
@media(max-width:760px){
 .section{padding:75px 20px}.timeline,.difference-grid,.dream-grid,.family-grid,.video-grid,.gift-grid{grid-template-columns:1fr}.timeline-card{max-width:520px;margin:auto}.difference-grid{max-width:500px;margin-left:auto;margin-right:auto}.dream-photo{height:360px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.quote-card{padding:40px 18px}.quote-card p{font-size:21px}.solo-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px}.solo-photo-large{grid-row:span 2;grid-column:span 2}.family-card img,.family-card-featured img{height:350px}.video-card .media-card,.gift-card .media-card{max-width:100%}.final h2{font-size:clamp(42px,12vw,72px)}.letter-card{padding:40px 22px}.letter-card p{font-size:21px}.loading-screen h2{font-size:clamp(38px,11vw,58px)}.loading-message{font-size:20px}.archive-grid{grid-template-columns:repeat(2,1fr)}.archive-videos{grid-template-columns:repeat(2,1fr)}.challenge-layout{grid-template-columns:1fr;gap:28px}.challenge-photo img{height:420px}.challenge-copy p{font-size:23px}.challenge-copy strong{font-size:25px}
}
