@import"https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:wght@400;500;600;700&display=swap";:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}:root{--color-primary: #8a9a5b;--color-secondary: #f4f2e9;--color-text: #333333;--color-card: #ffffff;--color-button: #555555;--font-serif: "Playfair Display", serif;--font-script: "Great Vibes", cursive}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-serif);color:var(--color-text);background-color:var(--color-secondary);line-height:1.6}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}button{font-family:inherit}.app-container{padding-top:72px}main{display:flex;flex-direction:column;gap:90px}.section-wrapper{width:min(1040px,90%);margin:0 auto;text-align:center}.section-wrapper--wide{width:min(1200px,92%)}.tips-content{margin-top:48px;display:flex;flex-direction:column;gap:40px;max-width:700px;margin-left:auto;margin-right:auto}.tips-section{text-align:left}.tips-section__title{font-size:1.4rem;color:var(--color-primary);margin-bottom:16px;font-weight:600}.tips-section__text{font-size:1.1rem;color:#333333d9;font-weight:500}.tips-section__list{list-style:none;display:flex;flex-direction:column;gap:16px}.tips-section__item{font-size:1.05rem;color:#333333d9;line-height:1.7;padding-left:24px;position:relative}.tips-section__item:before{content:"•";position:absolute;left:0;color:var(--color-primary);font-size:1.5rem;line-height:1.2}.tips-section__item strong{color:var(--color-text);font-weight:600}@media(max-width:768px){.tips-content{margin-top:32px;gap:32px}.tips-section__title{font-size:1.2rem;text-align:center}.tips-section{text-align:center}.tips-section__item{text-align:left}}.gift-intro{margin:24px auto 0;max-width:720px;font-size:1.05rem;color:#333333c7}.gift-link-container{margin-top:48px;display:flex;justify-content:center}.gift-link-button{display:inline-block;padding:16px 48px;font-size:1.1rem;font-weight:600;color:#fff;background-color:var(--color-primary);border-radius:999px;letter-spacing:.05em;text-transform:uppercase;transition:background-color .3s ease,transform .3s ease;text-decoration:none}.gift-link-button:hover{background-color:var(--color-button);transform:translateY(-2px)}@media(max-width:768px){.gift-link-button{padding:14px 36px;font-size:1rem}}@media(max-width:768px){.app-container{padding-top:64px}main{gap:72px}.gift-intro{font-size:1rem}}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background-color:#f4f2e9f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 1px 8px #00000014}.header__content{width:min(1040px,92%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:16px 0}.header__brand{display:flex;align-items:center;text-decoration:none}.header__logo{height:80px;width:auto;object-fit:contain;transition:transform .3s ease}.header__logo:hover{transform:scale(1.05)}.header__nav{display:flex;gap:24px}.header__link{font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;transition:color .2s ease;position:relative}.header__badge{position:absolute;top:-10px;right:-18px;min-width:20px;padding:2px 6px;border-radius:999px;background-color:var(--color-primary);color:#fff;font-size:.7rem;letter-spacing:normal}.header__link:hover{color:var(--color-primary)}@media(max-width:768px){.header__content{flex-direction:column;gap:12px}.header__logo{height:60px}.header__nav{flex-wrap:wrap;justify-content:center;gap:12px 20px}}.banner-hero{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;padding:120px 20px 100px;background-image:url(/bg.jpg);background-size:cover;background-position:center top;background-repeat:no-repeat;overflow:hidden}.banner-hero__overlay{position:absolute;inset:0;background-color:#fff;background-image:url(https://www.transparenttextures.com/patterns/watercolor.png);opacity:.7;pointer-events:none}.banner-hero__content{position:relative;text-align:center;color:var(--color-text);max-width:680px}.banner-hero__quote{font-size:1.15rem;font-style:italic;color:#333333d9;margin-bottom:8px;line-height:1.6}.banner-hero__reference{font-size:.9rem;color:#333333a6;margin-bottom:32px;letter-spacing:.1em}.banner-hero__intro{font-size:1.1rem;letter-spacing:.3em;text-transform:uppercase;margin-bottom:24px}.banner-hero__names{font-family:var(--font-script);font-size:clamp(3rem,8vw,5.5rem);color:var(--color-primary);margin-bottom:16px}.banner-hero__date{font-size:1.2rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:32px}.banner-hero__cta{display:inline-block;padding:12px 32px;background-color:var(--color-primary);color:#fff;border-radius:999px;letter-spacing:.18em;text-transform:uppercase;font-size:.85rem;transition:background-color .3s ease,transform .3s ease}.banner-hero__cta:hover{background-color:var(--color-button);transform:translateY(-2px)}@media(max-width:768px){.banner-hero{min-height:60vh;padding:140px 16px 80px}.banner-hero__quote{font-size:1rem}.banner-hero__reference{font-size:.8rem;margin-bottom:24px}.banner-hero__intro{font-size:.85rem;letter-spacing:.15em}.banner-hero__date{font-size:1rem;letter-spacing:.12em}}.section-title{display:flex;flex-direction:column;align-items:center;gap:12px}.section-title__subtitle{font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;color:#333333b3}.section-title__title{font-size:clamp(2rem,5vw,3rem);font-family:var(--font-script);color:var(--color-primary)}.section-title__divider{width:64px;height:2px;background-color:#8a9a5b80;border-radius:999px}.location-container{display:flex;flex-direction:column;gap:64px;margin-top:48px}.location{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:center}.location__icon{font-size:1.8rem;margin-right:12px;vertical-align:middle}.location__details{text-align:left;display:flex;flex-direction:column;gap:12px}.location__title{font-size:1.5rem;color:var(--color-primary);font-weight:600;margin-bottom:4px}.location__time{font-size:1.1rem;color:#333333e6;font-weight:500;margin-bottom:8px}.location__name{font-size:1.4rem;color:var(--color-primary);font-family:var(--font-script)}.location__address{font-size:1.05rem;letter-spacing:.05em;text-transform:uppercase;color:#333c}.location__map-link{display:inline-block;margin-top:12px;color:var(--color-primary);text-decoration:none;font-weight:500;font-size:1rem;transition:color .3s ease}.location__map-link:hover{color:var(--color-text);text-decoration:underline}.location__map-link-wrapper{display:block;width:100%;height:100%;text-decoration:none;color:inherit}.location__map{width:100%;aspect-ratio:4 / 3;background-color:#8a9a5b14;border-radius:28px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.location__map-iframe{width:100%;height:100%;border:none;border-radius:28px}.location__map-placeholder{border:2px dashed rgba(138,154,91,.4);border-radius:24px;padding:40px;text-align:center;color:#333333a6;font-size:1rem;width:80%;transition:all .3s ease;cursor:pointer}.location__map-link-wrapper:hover .location__map-placeholder{border-color:var(--color-primary);background-color:#8a9a5b0d;color:var(--color-primary);transform:scale(1.02)}@media(max-width:900px){.location-container{gap:48px}.location{grid-template-columns:1fr}.location__icon{font-size:1.5rem;margin-right:8px}.location__details{text-align:center;align-items:center}.location__map{aspect-ratio:16 / 9}}.program{position:relative;margin-top:48px;padding:0 12px}.program__timeline{position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:2px;background:linear-gradient(to bottom,#8a9a5b00,#8a9a5b80,#8a9a5b00)}.program__list{list-style:none;display:grid;gap:32px}.program__item{display:grid;grid-template-columns:repeat(2,1fr);align-items:start;gap:24px;position:relative}.program__item:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:18px;height:18px;background-color:var(--color-secondary);border:2px solid rgba(138,154,91,.8);border-radius:50%;top:4px}.program__time{text-align:right;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#333333bf;padding-right:24px}.program__content{padding-left:24px;text-align:left}.program__title{font-family:var(--font-script);font-size:1.6rem;color:var(--color-primary);margin-bottom:8px}.program__description{font-size:1.05rem;color:#333c}@media(max-width:768px){.program__timeline{left:12px;transform:none}.program__item{grid-template-columns:1fr;padding-left:32px}.program__item:before{left:12px;transform:none}.program__time{text-align:left;padding-right:0;padding-left:8px}.program__content{padding-left:8px}}.rsvp{margin-top:48px;max-width:600px;margin-left:auto;margin-right:auto}.rsvp__form{display:flex;flex-direction:column;gap:24px}.rsvp__field{display:flex;flex-direction:column;gap:8px;text-align:left}.rsvp__label{font-size:1rem;color:var(--color-text);font-weight:500}.rsvp__input{padding:14px 18px;font-size:1rem;font-family:inherit;border:2px solid rgba(138,154,91,.3);border-radius:8px;background-color:var(--color-card);color:var(--color-text);transition:border-color .3s ease,box-shadow .3s ease}.rsvp__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #8a9a5b1a}.rsvp__input::placeholder{color:#33333380}.rsvp__button{padding:16px 32px;font-size:1.05rem;font-weight:600;color:#fff;background-color:var(--color-primary);border:none;border-radius:999px;cursor:pointer;transition:background-color .3s ease,transform .3s ease;margin-top:8px;letter-spacing:.05em;text-transform:uppercase}.rsvp__button:hover:not(:disabled){background-color:var(--color-button);transform:translateY(-2px)}.rsvp__button:disabled{opacity:.6;cursor:not-allowed}.rsvp__message{padding:16px 20px;border-radius:8px;text-align:center;font-size:1rem;line-height:1.6}.rsvp__message--success{background-color:#8a9a5b26;color:var(--color-primary);border:2px solid rgba(138,154,91,.3)}.rsvp__message--error{background-color:#dc35451a;color:#dc3545;border:2px solid rgba(220,53,69,.3)}@media(max-width:768px){.rsvp{margin-top:32px}.rsvp__form{gap:20px}.rsvp__button{padding:14px 28px;font-size:.95rem}}.footer{margin-top:80px;background:#8a9a5b1a;padding:48px 16px}.footer__content{width:min(640px,90%);margin:0 auto;text-align:center;display:flex;flex-direction:column;gap:12px}.footer__thankyou{letter-spacing:.28em;text-transform:uppercase;font-size:.85rem;color:#333333a6}.footer__names{font-family:var(--font-script);font-size:2.4rem;color:var(--color-primary)}.footer__message{font-size:1rem;color:#333333bf}.footer__links{display:flex;justify-content:center;gap:12px;font-size:.9rem}.footer__links a{color:inherit;transition:color .2s ease}.footer__links a:hover{color:var(--color-primary)}.footer__legal-links{margin-top:24px;display:flex;justify-content:center;align-items:center;gap:12px;font-size:.8rem;color:#3336;flex-wrap:wrap}.footer__legal-link,.footer__admin-link{color:#3336;text-decoration:none;transition:color .2s ease}.footer__legal-link:hover,.footer__admin-link:hover{color:#3339}.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 20%,rgba(138,154,91,.08),transparent 55%),radial-gradient(circle at 80% 35%,rgba(230,206,180,.4),transparent 60%),var(--color-secondary);padding:20px}.admin-login__container{background-color:var(--color-card);padding:48px 40px;border-radius:16px;box-shadow:0 4px 20px #0000001a;max-width:400px;width:100%;text-align:center}.admin-login__title{font-family:var(--font-script);font-size:2.5rem;color:var(--color-primary);margin-bottom:8px}.admin-login__subtitle{font-size:1rem;color:#333333b3;margin-bottom:32px}.admin-login__form{display:flex;flex-direction:column;gap:20px}.admin-login__field{width:100%}.admin-login__input{width:100%;padding:14px 18px;font-size:1rem;font-family:inherit;border:2px solid rgba(138,154,91,.3);border-radius:8px;background-color:var(--color-card);color:var(--color-text);transition:border-color .3s ease,box-shadow .3s ease}.admin-login__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #8a9a5b1a}.admin-login__button{padding:14px 32px;font-size:1rem;font-weight:600;color:#fff;background-color:var(--color-primary);border:none;border-radius:999px;cursor:pointer;transition:background-color .3s ease,transform .3s ease;letter-spacing:.05em;text-transform:uppercase}.admin-login__button:hover{background-color:var(--color-button);transform:translateY(-2px)}.admin-login__error{color:#dc3545;font-size:.9rem;margin-top:-8px}@media(max-width:768px){.admin-login__container{padding:36px 28px}.admin-login__title{font-size:2rem}}.confirmations-list{min-height:100vh;padding:100px 20px 40px;background:var(--color-secondary)}.confirmations-list__header{max-width:1200px;margin:0 auto 32px;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:20px}.confirmations-list__title{font-family:var(--font-script);font-size:2.5rem;color:var(--color-primary);margin-bottom:8px}.confirmations-list__subtitle{font-size:1.1rem;color:#333333b3}.confirmations-list__actions{display:flex;gap:12px}.confirmations-list__export,.confirmations-list__logout{padding:12px 24px;font-size:.95rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;letter-spacing:.05em;text-transform:uppercase}.confirmations-list__export{background-color:var(--color-primary);color:#fff}.confirmations-list__export:hover{background-color:var(--color-button);transform:translateY(-2px)}.confirmations-list__logout{background-color:transparent;color:var(--color-text);border:2px solid rgba(51,51,51,.3)}.confirmations-list__logout:hover{border-color:var(--color-primary);color:var(--color-primary)}.confirmations-list__empty{max-width:1200px;margin:0 auto;text-align:center;padding:60px 20px;background-color:var(--color-card);border-radius:16px;font-size:1.1rem;color:#333333b3}.confirmations-list__table-wrapper{max-width:1200px;margin:0 auto;background-color:var(--color-card);border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #00000014}.confirmations-list__table{width:100%;border-collapse:collapse}.confirmations-list__table thead{background-color:#8a9a5b1a}.confirmations-list__table th{padding:16px 20px;text-align:left;font-weight:600;color:var(--color-text);font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;border-bottom:2px solid rgba(138,154,91,.2)}.confirmations-list__table td{padding:16px 20px;border-bottom:1px solid rgba(0,0,0,.05);color:var(--color-text)}.confirmations-list__table tbody tr:hover{background-color:#8a9a5b0d}.confirmations-list__table tbody tr:last-child td{border-bottom:none}.confirmations-list__delete{background:none;border:none;color:#dc3545;font-size:1.5rem;cursor:pointer;padding:4px 8px;line-height:1;transition:transform .2s ease;font-weight:300}.confirmations-list__delete:hover{transform:scale(1.2);color:#c82333}.confirmations-list__loading{text-align:center;padding:60px 20px;font-size:1.2rem;color:#333333b3}@media(max-width:768px){.confirmations-list{padding:80px 16px 32px}.confirmations-list__header{flex-direction:column}.confirmations-list__title{font-size:2rem}.confirmations-list__actions{width:100%;flex-direction:column}.confirmations-list__export,.confirmations-list__logout{width:100%}.confirmations-list__table-wrapper{overflow-x:auto}.confirmations-list__table{min-width:600px}.confirmations-list__table th,.confirmations-list__table td{padding:12px 16px;font-size:.9rem}}.privacy-policy{min-height:100vh;padding:100px 20px 60px;background:var(--color-secondary)}.privacy-policy__container{max-width:800px;margin:0 auto;background-color:var(--color-card);padding:48px 40px;border-radius:16px;box-shadow:0 2px 12px #00000014}.privacy-policy__title{font-family:var(--font-script);font-size:3rem;color:var(--color-primary);margin-bottom:8px;text-align:center}.privacy-policy__last-update{text-align:center;color:#3339;font-size:.9rem;margin-bottom:40px}.privacy-policy__section{margin-bottom:32px}.privacy-policy__section-title{font-size:1.5rem;color:var(--color-primary);margin-bottom:16px;font-weight:600}.privacy-policy__section p{font-size:1.05rem;line-height:1.8;color:#333333d9;margin-bottom:16px}.privacy-policy__section ul{margin-left:24px;margin-bottom:16px}.privacy-policy__section li{font-size:1.05rem;line-height:1.8;color:#333333d9;margin-bottom:8px}.privacy-policy__section strong{color:var(--color-text);font-weight:600}.privacy-policy__footer{margin-top:48px;padding-top:32px;border-top:1px solid rgba(138,154,91,.2);text-align:center}.privacy-policy__back-link{display:inline-block;padding:12px 24px;color:var(--color-primary);text-decoration:none;font-weight:500;transition:color .3s ease}.privacy-policy__back-link:hover{color:var(--color-text)}@media(max-width:768px){.privacy-policy{padding:80px 16px 40px}.privacy-policy__container{padding:32px 24px}.privacy-policy__title{font-size:2.2rem}.privacy-policy__section-title{font-size:1.3rem}.privacy-policy__section p,.privacy-policy__section li{font-size:1rem}}.cookie-banner{position:fixed;bottom:0;left:0;right:0;background-color:var(--color-card);box-shadow:0 -2px 12px #00000026;z-index:10000;padding:20px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cookie-banner__content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.cookie-banner__text{flex:1;min-width:280px}.cookie-banner__message{font-size:.95rem;line-height:1.6;color:var(--color-text);margin-bottom:8px}.cookie-banner__link{font-size:.85rem;color:var(--color-primary);text-decoration:underline;transition:color .2s ease}.cookie-banner__link:hover{color:var(--color-text)}.cookie-banner__actions{display:flex;gap:12px;flex-shrink:0}.cookie-banner__accept,.cookie-banner__decline{padding:10px 24px;font-size:.9rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.05em}.cookie-banner__accept{background-color:var(--color-primary);color:#fff}.cookie-banner__accept:hover{background-color:var(--color-button);transform:translateY(-2px)}.cookie-banner__decline{background-color:transparent;color:var(--color-text);border:2px solid rgba(51,51,51,.3)}.cookie-banner__decline:hover{border-color:var(--color-primary);color:var(--color-primary)}@media(max-width:768px){.cookie-banner{padding:16px}.cookie-banner__content{flex-direction:column;align-items:stretch;gap:16px}.cookie-banner__actions{width:100%;flex-direction:column}.cookie-banner__accept,.cookie-banner__decline{width:100%;padding:12px 24px}.cookie-banner__message{font-size:.9rem}}
