:root{--bg: #0a0710;--gold: #e7c27d;--gold-soft: #f0d9a8;--rose: #d98b9e;--cream: #fbf3e6;--nebula-1: rgba(120, 60, 110, .28);--nebula-2: rgba(217, 139, 158, .12);--nebula-3: rgba(30, 16, 40, .65);--text: #efe6dc;--text-soft: #c4b3ad;--font-display: "Playfair Display", Georgia, serif;--font-serif: "Cormorant Garamond", Georgia, serif;--font-body: "Poppins", "Segoe UI", Tahoma, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--font-body);background:radial-gradient(ellipse 60% 40% at 20% 8%,var(--nebula-1),transparent 60%),radial-gradient(ellipse 50% 35% at 85% 20%,var(--nebula-2),transparent 55%),radial-gradient(ellipse 70% 50% at 50% 100%,var(--nebula-3),transparent 60%),var(--bg);color:var(--text);overflow-x:hidden;position:relative}.stars{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.star{position:absolute;background:#fff;border-radius:50%;animation-name:twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 25%;transform:scale(1.05)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0a0710b8,#1e102880,#0a0710fa)}.hero-content{position:relative;z-index:1;text-align:center;padding:0 22px;max-width:760px;color:var(--cream)}.hero-eyebrow{font-family:var(--font-serif);font-style:italic;font-size:clamp(1rem,2.8vw,1.35rem);letter-spacing:.04em;color:var(--gold-soft);margin:0 0 14px;text-shadow:0 1px 10px rgba(0,0,0,.6)}.hero-title{font-family:var(--font-display);font-size:clamp(2.8rem,9vw,5rem);line-height:1.05;margin:0;font-weight:600;text-shadow:0 0 24px rgba(231,194,125,.35),0 2px 14px rgba(0,0,0,.7)}.hero-title span{color:var(--gold);font-style:italic}.hero-sub{font-size:clamp(.95rem,2.4vw,1.15rem);font-weight:300;line-height:1.7;margin:22px auto 0;max-width:520px;color:var(--text-soft);text-shadow:0 1px 8px rgba(0,0,0,.6)}.scroll-cue{display:inline-block;margin-top:34px;color:var(--gold-soft);text-decoration:none;font-size:.9rem;letter-spacing:.03em;border-bottom:1px solid rgba(231,194,125,.5);padding-bottom:2px;animation:bounce 2.2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.page{max-width:1000px;margin:0 auto;padding:60px 20px 80px;text-align:center;position:relative;z-index:1}.section-title{font-family:var(--font-display);font-size:clamp(1.7rem,4.5vw,2.4rem);margin-bottom:14px;font-weight:600;color:var(--gold-soft);text-shadow:0 0 14px rgba(231,194,125,.22)}.section-sub{font-family:var(--font-serif);font-style:italic;font-size:clamp(1rem,2.6vw,1.25rem);color:var(--text-soft);margin:0 auto 36px;max-width:480px}.letter{max-width:640px;margin:0 auto 90px;padding:44px 34px;border-radius:22px;background:#140e1a99;backdrop-filter:blur(4px);border:1px solid rgba(231,194,125,.25);box-shadow:0 0 40px #783c6e2e,inset 0 0 60px #0000004d}.letter-flower{display:block;font-size:1.8rem;color:var(--gold);margin-bottom:8px}.letter-body p{font-family:var(--font-serif);font-size:clamp(1.05rem,2.6vw,1.3rem);line-height:1.9;color:var(--text);margin:0 0 18px}.letter-body p:last-child{margin-bottom:0}.gallery{margin-bottom:90px}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:760px;margin:0 auto}.photo-card{margin:0;border-radius:16px;overflow:hidden;box-shadow:0 0 26px #e7c27d2e,0 16px 40px #0000008c;border:5px solid rgba(251,243,230,.92);transition:transform .35s ease,box-shadow .35s ease;aspect-ratio:4 / 5}.photo-card img{width:100%;height:100%;object-fit:cover;display:block}.photo-card--left{transform:rotate(-3deg)}.photo-card--right{transform:rotate(3deg)}.photo-card:hover{transform:scale(1.03) rotate(0);box-shadow:0 0 40px #e7c27d59,0 22px 50px #0009}.dedication{margin-bottom:90px}.slider{position:relative;max-width:640px;margin:0 auto;display:flex;align-items:center;gap:12px}.slider-track{position:relative;flex:1;min-height:190px;background:#140e1ab3;backdrop-filter:blur(4px);border:1px solid rgba(231,194,125,.3);border-radius:20px;box-shadow:0 0 30px #783c6e2e,0 10px 30px #00000080;padding:36px 30px;display:flex;align-items:center;justify-content:center}.slide{position:absolute;inset:0;margin:0;padding:36px 40px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-style:italic;font-size:clamp(1.1rem,2.7vw,1.4rem);line-height:1.7;color:var(--cream);opacity:0;transform:translate(16px);transition:opacity .5s ease,transform .5s ease;pointer-events:none}.slide.is-active{opacity:1;transform:translate(0);pointer-events:auto;position:relative}.slider-btn{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:none;background:var(--gold);color:#2a1c10;font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:0 0 16px #e7c27d80;transition:background .2s ease,transform .2s ease}.slider-btn:hover{background:var(--gold-soft);transform:scale(1.08)}.slider-dots{position:absolute;left:0;right:0;bottom:-34px;display:flex;justify-content:center;gap:8px}.slider-dot{width:9px;height:9px;border-radius:50%;background:#e7c27d4d;border:none;cursor:pointer;padding:0;transition:background .2s ease,transform .2s ease}.slider-dot.is-active{background:var(--gold);transform:scale(1.25)}.universe{position:relative;margin:20px auto 100px;padding:90px 24px;border-radius:28px;overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 20%,rgba(120,60,110,.4),transparent 65%),radial-gradient(ellipse 60% 50% at 20% 80%,rgba(217,139,158,.1),transparent 60%),#08060d;box-shadow:0 0 60px #783c6e47,inset 0 0 80px #0009}.universe-stars{position:absolute;inset:0;z-index:0}.moon{position:relative;z-index:1;width:70px;height:70px;margin:0 auto 24px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fffaf0,var(--gold-soft) 60%,var(--gold) 100%);box-shadow:0 0 40px 12px #e7c27d59}.universe-quote{position:relative;z-index:1;margin:0 auto 18px;max-width:720px;font-family:var(--font-display);font-size:clamp(1.7rem,4.8vw,2.7rem);font-weight:600;line-height:1.4;color:var(--cream);text-shadow:0 0 24px rgba(231,194,125,.4)}.universe-quote span{color:var(--gold);font-style:italic}.universe-sub{position:relative;z-index:1;max-width:520px;margin:0 auto;font-family:var(--font-serif);font-style:italic;color:var(--text-soft);font-size:clamp(1rem,2.4vw,1.2rem)}.footer{margin-top:30px;text-align:center}.footer-line{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.05rem,2.6vw,1.3rem);color:var(--gold-soft);margin:0}.footer-signature{font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--rose);opacity:.85;margin:10px 0 0;letter-spacing:.03em}.petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.petal-fall{position:absolute;top:-10px;width:12px;height:12px;background:var(--rose);border-radius:50% 0 50% 50%;box-shadow:0 0 6px 2px #d98b9e80;opacity:.75;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fall{0%{transform:translateY(-10px) rotate(0)}to{transform:translateY(110vh) rotate(360deg)}}@media (max-width: 640px){.page{padding:46px 16px 70px}.gallery-grid{grid-template-columns:1fr;max-width:320px;gap:22px}.photo-card--left,.photo-card--right{transform:rotate(0)}.slider{gap:8px}.slider-btn{width:36px;height:36px;font-size:1.15rem}.slide{padding:30px 20px}.slider-track{min-height:220px;padding:26px 18px}.universe{padding:60px 18px;margin-bottom:70px}}@media (max-width: 380px){.slider-btn{display:none}}
