*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--champagne: #F7E7CE;--champagne-dark: #E8D5B0;--gold: #C9A84C;--gold-light: #E4C47A;--gold-dark: #9A7A30;--ivory: #FDFAF5;--blush: #F4C2C2;--blush-dark: #E8A0A0;--sage: #7C9A7E;--charcoal: #2C2C2C;--charcoal-light: #4A4A4A;--white: #FFFFFF;--shadow: rgba(0,0,0,.12);--shadow-gold: rgba(201,168,76,.3);--radius: 20px;--radius-sm: 12px;--radius-xs: 8px}html,body{height:100%;width:100%;overflow-x:hidden;background:var(--ivory);color:var(--charcoal);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--champagne-dark);border-radius:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.2)}28%{transform:scale(1)}42%{transform:scale(1.15)}70%{transform:scale(1)}}@keyframes swipeLeft{to{transform:translate(-150%) rotate(-20deg);opacity:0}}@keyframes swipeRight{to{transform:translate(150%) rotate(20deg);opacity:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-fade{animation:fadeIn .4s ease forwards}.animate-slide{animation:slideUp .5s ease forwards}.animate-float{animation:float 3s ease-in-out infinite}.serif{font-family:Cormorant Garamond,serif}.gold-gradient{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-light) 50%,var(--gold-dark) 100%)}.champagne-gradient{background:linear-gradient(135deg,var(--champagne) 0%,var(--ivory) 100%)}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea,select{font-family:inherit;outline:none}img{display:block}a{text-decoration:none;color:inherit}@keyframes flashBorder{0%,to{opacity:.6;box-shadow:0 0 #c9a84c00}50%{opacity:1;box-shadow:0 0 20px #e4c47a80}}
