:root{--color-bg:#0d0508;--color-bg-2:#1a0a10;--color-bg-3:#120815;--color-pink:#f4a7c0;--color-pink-light:#ffd6e7;--color-pink-deep:#e8789a;--color-rose:#b5446e;--color-rose-dark:#7d1c3f;--color-gold:#d4a843;--color-gold-light:#f0d080;--color-champagne:#f7e7b4;--color-rose-gold:#c8856a;--color-burgundy:#5c1a2e;--color-cream:#fff5f0;--color-white:#fff;--color-text-primary:#ffeef5;--color-text-muted:#ffdcebb3;--font-display:"Playfair Display", Georgia, serif;--font-elegant:"Cormorant Garamond", Georgia, serif;--font-body:"Raleway", system-ui, sans-serif;--section-pad:clamp(4rem, 10vw, 8rem);--container:min(1200px, 90vw);--glow-pink:0 0 40px #f4a7c066, 0 0 80px #f4a7c033;--glow-gold:0 0 30px #d4a84380, 0 0 60px #d4a84333;--glow-rose:0 0 50px #b5446e66;--shadow-card:0 20px 60px #0009, 0 0 0 1px #f4a7c01a;--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-cinema:cubic-bezier(.25, .46, .45, .94)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--color-rose), var(--color-gold));border-radius:2px}.font-display{font-family:var(--font-display)}.font-elegant{font-family:var(--font-elegant)}.font-body{font-family:var(--font-body)}.section{padding:var(--section-pad) 0;position:relative;overflow:hidden}.container{width:var(--container);margin:0 auto}.grad-deep{background:radial-gradient(at top,#2a0818 0%,#0d0508 60%)}.grad-wine{background:radial-gradient(#1f082e 0%,#0a020f 70%)}.text-glow{text-shadow:0 0 20px #f4a7c0cc,0 0 40px #f4a7c066,0 0 80px #d4a84333}.text-gold-glow{text-shadow:0 0 20px #f0d080e6,0 0 40px #d4a84399,0 0 80px #d4a8434d}.btn{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .3s var(--ease-smooth);white-space:nowrap;border:none;border-radius:50px;align-items:center;gap:.5rem;padding:.85rem 2rem;font-size:.75rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background:linear-gradient(135deg, var(--color-rose) 0%, var(--color-rose-gold) 50%, var(--color-gold) 100%);color:var(--color-cream);box-shadow:0 4px 20px #b5446e66,0 0 40px #d4a84333}.btn-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 8px 30px #b5446e99,0 0 60px #d4a8434d}.btn-primary:active{transform:translateY(0)scale(.98)}.card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-card);background:#ffffff08;border:1px solid #f4a7c01f;border-radius:16px}.divider{align-items:center;gap:1rem;margin:2rem 0;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg,#0000,#d4a84380,#0000);flex:1;height:1px}@keyframes floatPetal{0%{opacity:0;transform:translateY(-10vh)rotate(0)translate(0)}10%{opacity:1}90%{opacity:.8}to{opacity:0;transform:translateY(110vh)rotate(720deg)translate(80px)}}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #f4a7c04d}50%{box-shadow:0 0 40px #f4a7c0b3,0 0 80px #d4a8434d}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes candle-flicker{0%,to{opacity:1;transform:scaleX(1)scaleY(1)}25%{opacity:.9;transform:scaleX(.9)scaleY(1.1)}50%{opacity:1;transform:scaleX(1.1)scaleY(.95)}75%{opacity:.85;transform:scaleX(.95)scaleY(1.05)}}@keyframes bokeh-pulse{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}@keyframes streak-shimmer{0%{transform:translateX(-100%) rotate(var(--streak-angle,0deg));opacity:0}20%{opacity:.6}80%{opacity:.6}to{transform:translateX(200%) rotate(var(--streak-angle,0deg));opacity:0}}@keyframes sparkle-twinkle{0%,to{opacity:0;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1)rotate(180deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){:root{--section-pad:clamp(3rem, 8vw, 6rem)}}
