:root{--gold: #A68B5B;--gold-light: #BCA071;--gold-dark: #8A7348;--burgundy: #5C1A1B;--burgundy-dark: #3D0F10;--burgundy-light: #7A2A2B;--rose: #F0E8DC;--rose-dark: #E0D5C5;--cream: #FAF7F2;--navy: #2B2926;--white: #FFFFFF;--text: #1F1A17;--text-light: #4A4340;--text-muted: #7A706A;--gradient-hero: linear-gradient(135deg, rgba(61, 15, 16, .85) 0%, rgba(92, 26, 27, .75) 50%, rgba(122, 42, 43, .65) 100%);--gradient-gold: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);--gradient-burgundy: linear-gradient(180deg, var(--burgundy-dark) 0%, var(--burgundy) 100%);--shadow-glow: 0 0 24px rgba(92, 26, 27, .25);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6.5rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .16);--transition-fast: .15s ease;--transition-base: .3s ease;--transition-slow: .5s ease;--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overflow-x:clip}body{font-family:var(--font-body);font-size:1rem;font-weight:400;line-height:1.7;letter-spacing:.01em;color:var(--text);background-color:var(--cream);width:100%;max-width:100vw;overflow-x:hidden;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}button{font-family:inherit;cursor:pointer;border:none;background:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:1.2;color:var(--burgundy)}h1{font-size:clamp(2.5rem,8vw,5rem);font-weight:600}h2{font-size:clamp(1.75rem,5vw,2.75rem);font-weight:500}h3{font-size:clamp(1.25rem,3vw,1.5rem);font-weight:500}p{margin-bottom:var(--space-md)}.text-gold{color:var(--gold)}.text-burgundy{color:var(--burgundy)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.section{padding:var(--space-3xl) 0}.section-alt{background-color:var(--rose)}.section-dark{background-color:var(--burgundy-dark);color:var(--white)}.section-dark h2,.section-dark h3,.section-dark p{color:var(--white)}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.grid{display:grid}.text-center{text-align:center}.navbar{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background:transparent;padding:var(--space-sm) var(--space-lg);box-shadow:var(--shadow-md);border-bottom:1px solid rgba(255,255,255,.12);transition:box-shadow var(--transition-base);isolation:isolate}.navbar:before{content:"";position:absolute;inset:0;background:#3d0f10e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background var(--transition-base);z-index:-1}.navbar.scrolled{box-shadow:var(--shadow-lg)}.navbar.scrolled:before{background:#3d0f10f5}.nav-list{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);list-style:none}.nav-link{display:block;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--white);border-radius:var(--radius-pill);transition:all var(--transition-fast)}.nav-link:hover,.nav-link:focus{background-color:#ffffff26;color:var(--white)}.nav-link.active{background-color:var(--white);color:var(--burgundy)}.nav-link--gift{background:var(--gold);color:var(--burgundy-dark)}.nav-link--gift:hover{background:var(--gold-light);color:var(--burgundy-dark);box-shadow:var(--shadow-glow);transform:scale(1.05)}.nav-burger{display:none;position:relative;z-index:20;width:44px;height:44px;padding:12px 10px;background:transparent;border:0;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;-webkit-tap-highlight-color:transparent}.nav-burger span{display:block;width:24px;height:2px;background:var(--cream);border-radius:2px;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .2s ease,background-color .3s ease}body.nav-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}body.nav-open .nav-burger span:nth-child(2){opacity:0}body.nav-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:768px){.navbar{padding:var(--space-xs) var(--space-sm);justify-content:flex-end;display:flex}.nav-burger{display:flex}.nav-list{position:fixed;inset:0;height:100vh;height:100dvh;display:flex;flex-direction:column;justify-content:safe center;align-items:center;gap:16px;padding:88px 24px calc(32px + env(safe-area-inset-bottom));margin:0;list-style:none;background:#3d0f10fa;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);transition:opacity .35s ease,visibility .35s ease,transform .4s cubic-bezier(.22,1,.36,1);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;z-index:10}body.nav-open .nav-list{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.nav-list li{width:100%;display:flex;justify-content:center;margin:0;list-style:none}.nav-link{display:inline-block;font-family:var(--font-display);font-size:1.5rem;font-weight:500;letter-spacing:.01em;text-transform:none;color:var(--cream);padding:10px 24px;border-radius:0;text-align:center}.nav-link:hover,.nav-link:focus{background:transparent;color:var(--gold-light)}.nav-link.active{background:transparent;color:var(--gold-light)}.nav-link--gift{background:var(--gold);color:var(--burgundy-dark);padding:10px 28px;border-radius:9999px;font-size:1.25rem;margin-top:4px}.nav-link--gift:hover,.nav-link--gift:focus{background:var(--gold-light);color:var(--burgundy-dark)}body.nav-open{overflow:hidden}}@media(max-width:768px)and (max-height:640px){.nav-list{gap:10px;padding-top:72px}.nav-link{font-size:1.25rem;padding:6px 20px}.nav-link--gift{font-size:1.0625rem;padding:8px 22px}}.hero{position:relative;padding:var(--space-3xl) var(--space-lg) var(--space-xl);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl);align-items:center;max-width:1200px;margin:0 auto}.hero-photo{position:relative}.hero-photo img{width:100%;height:auto;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.hero-content{text-align:center;padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;justify-content:center}@media(max-width:768px){.hero-grid{grid-template-columns:1fr;text-align:center}.hero-content{text-align:center}}.hero-subtitle{font-family:var(--font-body);font-size:clamp(1rem,3vw,1.5rem);font-weight:600;color:var(--gold-dark);letter-spacing:.2em;text-transform:uppercase;margin-bottom:var(--space-lg);opacity:0;transform:translateY(20px);animation:fadeInUp .8s ease forwards;animation-delay:.2s}.hero-title{font-family:var(--font-display);font-size:clamp(3.5rem,8vw,6rem);font-weight:600;font-style:normal;color:var(--burgundy);margin-bottom:var(--space-md);line-height:1;opacity:0;transform:translateY(30px);animation:fadeInUp .8s ease forwards;animation-delay:.4s}.hero-title .ampersand{display:block;font-size:.4em;font-style:normal;font-weight:700;color:var(--gold);margin:var(--space-xs) 0}.hero-date{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:700;color:var(--burgundy);margin-bottom:var(--space-lg);opacity:0;transform:translateY(20px);animation:fadeInUp .8s ease forwards;animation-delay:.6s}.hero-tagline{font-size:clamp(1.1rem,2.5vw,1.35rem);font-weight:400;color:var(--text-light);max-width:500px;margin:0;opacity:0;transform:translateY(20px);animation:fadeInUp .8s ease forwards;animation-delay:.8s}.hero-emoji{font-size:2.5rem;display:inline-block}.hero-emoji--ornament{margin-bottom:var(--space-md);animation:swing 2s ease-in-out infinite}.hero-emoji--ring{margin-top:var(--space-md);animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.1) rotate(10deg);opacity:.8}}.hero-emoji--tree{position:absolute;bottom:var(--space-lg);right:var(--space-lg);font-size:3rem;animation:sway 3s ease-in-out infinite}@keyframes swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes sway{0%,to{transform:rotate(-3deg) scale(1)}50%{transform:rotate(3deg) scale(1.05)}}.hero-cta{opacity:0;transform:translateY(20px);animation:fadeInUp .8s ease forwards;animation-delay:1s}.hero-scroll{position:absolute;bottom:var(--space-xl);left:50%;transform:translate(-50%);opacity:0;animation:fadeIn 1s ease forwards,bounce 2s ease-in-out infinite;animation-delay:1.5s,2s}.hero-scroll svg{width:24px;height:24px;color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);font-size:1rem;font-weight:600;border-radius:var(--radius-pill);transition:all var(--transition-base)}.btn-primary{background:var(--burgundy);color:var(--cream);box-shadow:var(--shadow-md);letter-spacing:.04em}.btn-primary:hover,.btn-primary:focus{background:var(--burgundy-dark);transform:translateY(-2px);box-shadow:var(--shadow-glow),var(--shadow-lg)}.btn-secondary{background:transparent;color:var(--burgundy);border:2px solid var(--gold)}.btn-secondary:hover,.btn-secondary:focus{background:var(--gold);color:var(--white)}.btn-outline{background:transparent;color:var(--burgundy);border:2px solid var(--burgundy)}.btn-outline:hover,.btn-outline:focus{background:var(--burgundy);color:var(--cream)}.btn-lg{padding:var(--space-md) var(--space-2xl);font-size:1.125rem}.section-header{text-align:center;margin-bottom:var(--space-2xl)}.section-header h2{margin-bottom:var(--space-md)}.section-header p{font-size:1.125rem;color:var(--text-light);max-width:600px;margin:0 auto}.section-dark .section-header p{color:#ffffffd9}.section-divider{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.section-divider:before,.section-divider:after{content:"";width:60px;height:1px;background:var(--gold);opacity:.6}.section-divider svg{width:40px;height:40px;color:var(--gold)}.rsvp{background-color:var(--rose);color:var(--text)}.rsvp-toggle{display:flex;justify-content:center;margin-bottom:var(--space-xl)}.rsvp-form-wrapper{max-width:700px;margin:0 auto;background:var(--white);border-radius:var(--radius-xl);padding:var(--space-xl);border:1px solid var(--rose-dark);box-shadow:var(--shadow-sm);opacity:0;max-height:0;overflow:hidden;transition:all var(--transition-slow);color:var(--text)}.rsvp-form-wrapper.active{opacity:1;max-height:2000px;padding:var(--space-xl)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin-bottom:var(--space-md)}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.form-group{margin-bottom:var(--space-md)}.form-group.full-width{grid-column:1 / -1}.form-label{display:block;font-size:.875rem;font-weight:600;margin-bottom:var(--space-xs);color:var(--burgundy);letter-spacing:.02em}.form-input,.form-select{width:100%;padding:var(--space-sm) var(--space-md);font-size:1rem;font-family:inherit;color:var(--text)!important;background-color:var(--cream)!important;border:1px solid var(--rose-dark);border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-appearance:none}.form-input:focus,.form-select:focus{outline:none;border-color:var(--burgundy);box-shadow:0 0 0 3px #5c1a1b1f}.form-input::placeholder{color:var(--text-muted)}.form-hint{font-size:.75rem;color:var(--text-muted);margin-top:var(--space-xs)}.form-section-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--burgundy);margin:var(--space-lg) 0 var(--space-md);padding-top:var(--space-lg);border-top:1px solid var(--rose-dark)}.family-names-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}@media(max-width:480px){.family-names-grid{grid-template-columns:1fr}}.form-submit{margin-top:var(--space-xl);text-align:center}.form-success{text-align:center;padding:0 var(--space-xl);max-width:560px;margin:0 auto;opacity:0;max-height:0;overflow:hidden;pointer-events:none;transition:max-height .7s cubic-bezier(.22,1,.36,1),opacity .5s ease .15s,padding .6s cubic-bezier(.22,1,.36,1)}.form-success.is-visible{opacity:1;max-height:520px;padding:var(--space-xl);pointer-events:auto}.form-success-icon{width:72px;height:72px;margin:0 auto var(--space-lg);background:var(--burgundy);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px #5c1a1b4d;transform:scale(.5);opacity:0;transition:transform .55s cubic-bezier(.34,1.56,.64,1) .25s,opacity .4s ease .25s}.form-success.is-visible .form-success-icon{transform:scale(1);opacity:1}.form-success-icon svg{width:32px;height:32px;color:var(--cream)}.form-success h3{color:var(--burgundy);font-size:1.625rem;margin-bottom:var(--space-sm);transform:translateY(14px);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1) .4s,opacity .5s ease .4s}.form-success p{color:var(--text-light);max-width:400px;margin:0 auto;transform:translateY(12px);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1) .55s,opacity .5s ease .55s}.form-success.is-visible h3,.form-success.is-visible p{transform:translateY(0);opacity:1}.programme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl);max-width:1000px;margin:0 auto}@media(max-width:768px){.programme-grid{grid-template-columns:1fr}}.programme-card{position:relative;border-radius:var(--radius-xl);overflow:hidden;background:var(--burgundy-dark);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.programme-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.programme-photo-wrapper{position:relative;overflow:hidden}.programme-photo-wrapper img{width:100%;height:auto;object-fit:contain;display:block;margin-bottom:180px}.programme-photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--space-lg);background:#3d0f10eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(166,139,91,.3);color:var(--white)}.programme-time{font-family:var(--font-display);font-size:2rem;font-weight:700;margin-bottom:var(--space-xs);color:var(--gold-light);text-shadow:0 2px 4px rgba(0,0,0,.3)}.programme-title{font-size:1.25rem;font-weight:600;margin-bottom:var(--space-md);color:var(--white);text-shadow:0 2px 4px rgba(0,0,0,.3)}.programme-location{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md)}.programme-location svg{width:20px;height:20px;color:var(--white);flex-shrink:0;margin-top:2px}.programme-location-text{font-size:.9375rem;color:var(--white)}.programme-location-text strong{display:block;margin-bottom:2px}.programme-location-text span{color:#fffc;font-size:.875rem}.programme-map{width:100%;height:200px;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-md)}.programme-map iframe{width:100%;height:100%;border:none}.programme-directions{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:.875rem;font-weight:500;color:var(--white);transition:all var(--transition-fast)}.programme-directions:hover{color:#ffffffb3}.programme-directions svg{width:16px;height:16px}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.bento-card{background:var(--white);border:1px solid var(--rose-dark);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:0 1px 3px #5c1a1b0a;transition:all var(--transition-base)}.bento-card:hover{background:var(--white);border-color:var(--gold);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.bento-card--half{grid-column:span 2}.bento-card--cta{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-sm);background:var(--burgundy);border-color:var(--burgundy);color:var(--white);text-decoration:none}.bento-card--cta:hover{background:var(--burgundy-dark);border-color:var(--burgundy-dark)}.bento-card--cta svg{opacity:.9}.bento-card--cta span{font-size:.875rem;font-weight:500}.bento-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--burgundy);margin-bottom:var(--space-xs)}.bento-distance{display:inline-block;font-size:.75rem;font-weight:500;color:var(--gold-dark);background:var(--rose);padding:2px 10px;border-radius:var(--radius-pill);margin-bottom:var(--space-md);letter-spacing:.02em}.bento-items{display:flex;flex-direction:column;gap:var(--space-xs)}.bento-item{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--rose-dark);font-size:.875rem}.bento-item:last-child{border-bottom:none}.bento-item strong{color:var(--text);font-weight:600}.bento-item span{color:var(--text-muted);font-size:.8125rem}.bento-item a{color:var(--burgundy);text-decoration:underline;text-decoration-color:#5c1a1b4d;text-underline-offset:2px;font-size:.8125rem;transition:all var(--transition-fast)}.bento-item a:hover{color:var(--burgundy-dark);text-decoration-color:var(--burgundy-dark)}@media(max-width:1024px){.bento-grid{grid-template-columns:repeat(2,1fr)}.bento-card--half{grid-column:span 1}}@media(max-width:640px){.bento-grid{grid-template-columns:1fr}}.map-grid{display:grid;grid-template-areas:".      north    northeast" "west   center   east" ".      south    .";grid-template-columns:1fr 1.4fr 1fr;gap:var(--space-lg);max-width:1100px;margin:0 auto;align-items:start}.map-card{background:var(--white);border:1px solid var(--rose-dark);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:0 1px 3px #5c1a1b0a;transition:all var(--transition-base);display:flex;flex-direction:column}.map-card:hover{border-color:var(--gold);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.map-card--n{grid-area:north}.map-card--ne{grid-area:northeast}.map-card--w{grid-area:west}.map-card--center{grid-area:center}.map-card--s{grid-area:south}.map-card--cta{grid-area:east}.map-card--center{background:var(--burgundy);color:var(--cream);border-color:var(--burgundy);text-align:center;padding:var(--space-xl) var(--space-lg);box-shadow:0 10px 40px #5c1a1b38;position:relative}.map-card--center:before{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);border:1px solid rgba(166,139,91,.35);pointer-events:none}.map-card--center:hover{transform:translateY(-2px);background:var(--burgundy-dark);border-color:var(--burgundy-dark);box-shadow:0 14px 48px #5c1a1b47}.map-center-label{font-size:.6875rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light);margin-bottom:var(--space-sm)}.map-center-title{font-family:var(--font-display);font-size:1.875rem;font-weight:600;color:var(--cream);margin-bottom:var(--space-xs);line-height:1.1}.map-center-village{font-size:.9rem;color:#faf7f2bf;margin-bottom:var(--space-lg);font-style:italic}.map-center-sep{font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);margin:0 0 var(--space-sm);padding-top:var(--space-md);border-top:1px solid rgba(166,139,91,.3)}.map-card--center .bento-items{text-align:left}.map-card--center .bento-item{border-bottom-color:#faf7f214}.map-card--center .bento-item strong{color:var(--cream)}.map-card--center .bento-item span{color:#faf7f2b3}.map-card--center .bento-item a{color:var(--gold-light);text-decoration-color:#a68b5b66}.map-card--center .bento-item a:hover{color:var(--cream);text-decoration-color:var(--cream)}.map-direction{display:inline-block;align-self:flex-start;font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dark);background:var(--rose);padding:4px 10px;border-radius:var(--radius-pill);margin-bottom:var(--space-sm)}.map-card--cta{background:transparent;border:1px dashed var(--rose-dark);color:var(--burgundy);text-decoration:none;align-items:center;justify-content:center;text-align:center;gap:var(--space-sm);box-shadow:none;min-height:180px}.map-card--cta:hover{background:var(--rose);border-color:var(--gold);color:var(--burgundy-dark);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.map-card--cta svg{opacity:.7}.map-card--cta span{font-size:.8125rem;font-weight:500}@media(max-width:900px){.map-grid{grid-template-areas:"center" "west" "northeast" "north" "south" "east";grid-template-columns:1fr;gap:var(--space-md)}.map-card--center{padding:var(--space-xl)}.map-card--cta{min-height:120px}}.musique{background-color:var(--rose)}.musique-content{max-width:600px;margin:0 auto;text-align:center;background:var(--white);border:1px solid var(--rose-dark);border-radius:var(--radius-xl);padding:var(--space-2xl);color:var(--text);box-shadow:var(--shadow-sm)}.musique-content h2{color:var(--burgundy)}.musique-content p{color:var(--text-light)}.musique-icon{font-size:3rem;margin-bottom:var(--space-lg)}.musique-form{margin-top:var(--space-xl)}.musique-input-group{display:flex;gap:var(--space-sm)}@media(max-width:480px){.musique-input-group{flex-direction:column}}.musique-input-group .form-input{flex:1}.musique-success{text-align:center;padding:0 var(--space-xl);margin:0 auto;opacity:0;max-height:0;overflow:hidden;pointer-events:none;transition:max-height .7s cubic-bezier(.22,1,.36,1),opacity .5s ease .15s,padding .6s cubic-bezier(.22,1,.36,1),margin .6s cubic-bezier(.22,1,.36,1)}.musique-success.is-visible{opacity:1;max-height:420px;padding:var(--space-xl) 0 var(--space-md);pointer-events:auto}.musique-success-icon{width:72px;height:72px;margin:0 auto var(--space-lg);background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--cream);box-shadow:0 10px 28px #a68b5b66;transform:scale(.5) rotate(-18deg);opacity:0;transition:transform .6s cubic-bezier(.34,1.56,.64,1) .25s,opacity .4s ease .25s}.musique-success-icon svg{width:34px;height:34px}.musique-success.is-visible .musique-success-icon{transform:scale(1) rotate(0);opacity:1}.musique-success h3{color:var(--burgundy);font-size:1.5rem;margin-bottom:var(--space-xs);transform:translateY(14px);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1) .4s,opacity .5s ease .4s}.musique-success p{color:var(--text-light);margin:0;transform:translateY(12px);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1) .55s,opacity .5s ease .55s}.musique-success.is-visible h3,.musique-success.is-visible p{transform:translateY(0);opacity:1}.musique-form{margin-top:var(--space-xl);transition:max-height .5s cubic-bezier(.22,1,.36,1),opacity .4s ease,margin .5s cubic-bezier(.22,1,.36,1);max-height:300px;overflow:hidden}.musique-form.form-hidden{opacity:0;max-height:0;margin-top:0;pointer-events:none}#cadeaux{position:relative;background-image:url(../assets/tanzanie-safari.webp);background-position:center center;background-size:cover;background-repeat:no-repeat;background-color:var(--burgundy-dark);width:100vw;margin-left:calc(-50vw + 50%);padding:var(--space-3xl) 0;min-height:700px;display:flex;align-items:center}#cadeaux:before{content:"";position:absolute;inset:0;background:#3d0f1099;z-index:1;border-top:8px solid var(--cream);border-bottom:8px solid var(--cream)}#cadeaux .container{position:relative;z-index:2}.cadeaux-content{max-width:700px;margin:0 auto;text-align:center;color:var(--white)}.cadeaux-content h2{color:var(--white)}.cadeaux-icon{width:80px;height:80px;margin:0 auto var(--space-xl);background:var(--cream);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0003}.cadeaux-icon svg{width:40px;height:40px;color:var(--burgundy)}.cadeaux-text{font-size:1.125rem;color:#ffffffe6;margin-bottom:var(--space-md);line-height:1.7}.cadeaux-text:last-of-type{margin-bottom:var(--space-lg)}.cadeaux-signature{font-size:.95rem;color:#ffffffd1;font-style:italic;line-height:1.7;margin-bottom:var(--space-2xl);text-align:center}.cadeaux-signature-names{display:block;margin-top:.6em;font-family:var(--font-display);font-size:1.625rem;font-style:italic;color:var(--gold-light);font-weight:500;letter-spacing:.02em}.cadeaux-cta{margin-top:var(--space-lg)}.cadeaux-option{margin-top:var(--space-xl)}.cadeaux-option-badge{display:inline-block;font-size:.6875rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--burgundy-dark);background:var(--gold-light);padding:5px 14px;border-radius:var(--radius-pill);margin-bottom:var(--space-md)}.cadeaux-option-badge--highlight{background:var(--gold);color:var(--cream)}.iban-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:0 10px 40px #00000059;padding:var(--space-xl);max-width:560px;margin:0 auto;color:var(--text);text-align:left;display:flex;flex-direction:column;gap:var(--space-md)}.iban-row{display:flex;flex-direction:column;gap:4px}.iban-row--hero{gap:var(--space-xs)}.iban-label{font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dark)}.iban-value{font-size:.9375rem;color:var(--text);font-weight:500}.iban-value-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;letter-spacing:.04em}.iban-copy{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:var(--cream);border:1px solid var(--rose-dark);border-radius:var(--radius-md);color:var(--burgundy);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.0625rem;font-weight:600;letter-spacing:.04em;transition:all .2s var(--ease-enter);width:100%;box-sizing:border-box}.iban-copy:hover{background:var(--rose);border-color:var(--gold)}.iban-copy:active{transform:scale(.98)}.iban-copy-text{flex:1;text-align:left;word-break:break-all}.iban-copy-feedback{font-family:var(--font-body);font-size:.6875rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dark);white-space:nowrap}.iban-copy.iban-copied{background:var(--rose);border-color:var(--gold)}.iban-copy.iban-copied .iban-copy-feedback{color:var(--burgundy)}.iban-instructions{font-size:.8125rem;color:var(--text-light);margin:0;padding-top:var(--space-md);border-top:1px solid var(--rose-dark);line-height:1.6}.iban-instructions strong{color:var(--burgundy);font-weight:600}@media(max-width:640px){.iban-card{padding:var(--space-lg)}.iban-copy{font-size:.9375rem;padding:var(--space-sm) var(--space-md)}}.cadeaux-iframe-wrapper{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 10px 40px #00000059;max-width:640px;margin:0 auto}.cadeaux-iframe-wrapper iframe{display:block;width:100%;min-height:620px;border:0}@media(max-width:640px){.cadeaux-iframe-wrapper iframe{min-height:720px}}.footer{background-color:var(--burgundy-dark);color:var(--cream);padding:var(--space-2xl) 0;text-align:center;border-top:1px solid var(--burgundy)}.footer-names{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--gold-light);margin-bottom:var(--space-lg)}.footer-surnames{display:inline-block;font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:#faf7f28c;margin-left:var(--space-sm);vertical-align:middle}.footer-contact{margin-bottom:var(--space-lg)}.footer-contact a{display:inline-flex;align-items:center;gap:var(--space-xs);color:#faf7f2d9;margin:0 var(--space-md);transition:color var(--transition-fast)}.footer-contact a:hover{color:var(--gold-light)}.footer-contact svg{width:18px;height:18px}.footer-address{font-size:.875rem;color:#faf7f2b3;margin-bottom:var(--space-lg)}.footer-message{font-size:.9375rem;color:#faf7f2cc;max-width:500px;margin:0 auto;font-style:italic}.reveal{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.reveal.active{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.reveal-left.active{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transform:translate(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.reveal-right.active{opacity:1;transform:translate(0)}.stagger-1{transition-delay:.1s}.stagger-2{transition-delay:.2s}.stagger-3{transition-delay:.3s}.stagger-4{transition-delay:.4s}.stagger-5{transition-delay:.5s}.stagger-6{transition-delay:.6s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.reveal,.reveal-left,.reveal-right{opacity:1;transform:none}}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.snowflakes{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.snowflake{position:absolute;top:-20px;color:var(--white);animation:snowfall linear forwards;will-change:transform}@keyframes snowfall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(100vh) rotate(360deg)}}.map-embed{max-width:1000px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--rose-dark);background:var(--rose)}.map-embed iframe{display:block;width:100%;height:450px;border:0}@media(max-width:640px){.map-embed iframe{height:340px}}.lodging-list{max-width:1100px;margin:var(--space-3xl) auto 0}.lodging-list-title{text-align:center;font-family:var(--font-display);font-size:1.5rem;color:var(--burgundy);margin-bottom:var(--space-xl)}.lodging-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.lodging-card{background:var(--white);border:1px solid var(--rose-dark);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:0 1px 3px #5c1a1b0a;display:flex;flex-direction:column}.lodging-card--featured{grid-column:span 3;background:var(--rose);border-color:var(--gold)}.lodging-badge{display:inline-block;align-self:flex-start;font-size:.6875rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dark);background:var(--cream);padding:4px 10px;border-radius:var(--radius-pill);margin-bottom:var(--space-sm)}.lodging-badge--primary{background:var(--burgundy);color:var(--cream)}.lodging-card-title{font-family:var(--font-display);font-size:1.375rem;color:var(--burgundy);margin-bottom:var(--space-xs)}.lodging-card-note{font-size:.875rem;color:var(--text-light);font-style:italic;margin-bottom:var(--space-sm)}.lodging-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.lodging-card--featured .lodging-items{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs) var(--space-md)}.lodging-items li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--rose-dark);font-size:.875rem}.lodging-items li:last-child{border-bottom:none}.lodging-card--featured .lodging-items li{border-bottom-color:#a68b5b4d}.lodging-items strong{color:var(--text);font-weight:600}.lodging-items span{color:var(--text-muted);font-size:.8125rem}.lodging-items a{color:var(--burgundy);text-decoration:underline;text-decoration-color:#5c1a1b4d;text-underline-offset:2px;font-size:.8125rem}.lodging-items a:hover{color:var(--burgundy-dark);text-decoration-color:var(--burgundy-dark)}.lodging-card--cta{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-sm);background:transparent;border:1px dashed var(--rose-dark);color:var(--burgundy);text-decoration:none;min-height:160px}.lodging-card--cta:hover{background:var(--rose);border-color:var(--gold)}.lodging-card--cta svg{opacity:.7}.lodging-card--cta span{font-size:.8125rem;font-weight:500}@media(max-width:900px){.lodging-grid{grid-template-columns:repeat(2,1fr)}.lodging-card--featured{grid-column:span 2}}@media(max-width:640px){.lodging-grid{grid-template-columns:1fr}.lodging-card--featured{grid-column:span 1}.lodging-card--featured .lodging-items{grid-template-columns:1fr}}.toast{position:fixed;bottom:calc(var(--space-lg) + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,120%);background:var(--burgundy);color:var(--cream);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-pill);font-family:var(--font-body);font-size:.9375rem;font-weight:500;letter-spacing:.01em;box-shadow:0 14px 48px #5c1a1b59;z-index:var(--z-toast);max-width:calc(100vw - var(--space-xl));text-align:center;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .45s cubic-bezier(.34,1.56,.64,1)}.toast.toast-visible{opacity:1;transform:translate(-50%);pointer-events:auto}.toast--error{background:#8b2626}@media(prefers-reduced-motion:reduce){.toast{transition:opacity .2s ease}}:root{--ease-enter: cubic-bezier(.22, 1, .36, 1);--ease-snap: cubic-bezier(.34, 1.56, .64, 1)}.reveal,.reveal-left,.reveal-right{transition:opacity .8s var(--ease-enter),transform .8s var(--ease-enter);will-change:opacity,transform}.section-header.reveal{opacity:1;transform:none}.section-header.reveal .section-divider:before{transform:scaleX(0);transform-origin:right center;transition:transform .9s var(--ease-enter) .1s}.section-header.reveal .section-divider:after{transform:scaleX(0);transform-origin:left center;transition:transform .9s var(--ease-enter) .1s}.section-header.reveal.active .section-divider:before,.section-header.reveal.active .section-divider:after{transform:scaleX(1)}.section-header.reveal .section-divider svg{opacity:0;transform:scale(.55) rotate(-10deg);transition:opacity .5s var(--ease-enter) .25s,transform .6s var(--ease-snap) .25s}.section-header.reveal.active .section-divider svg{opacity:1;transform:scale(1) rotate(0)}.section-header.reveal h2{opacity:0;transform:translate3d(0,14px,0);transition:opacity .7s var(--ease-enter) .35s,transform .7s var(--ease-enter) .35s}.section-header.reveal.active h2{opacity:1;transform:translateZ(0)}.section-header.reveal p{opacity:0;transform:translate3d(0,10px,0);transition:opacity .7s var(--ease-enter) .5s,transform .7s var(--ease-enter) .5s}.section-header.reveal.active p{opacity:1;transform:translateZ(0)}.btn{will-change:transform}.btn:active{transform:translateY(1px) scale(.985);transition-duration:.1s}.programme-card,.map-card,.bento-card,.musique-content,.rsvp-form-wrapper{will-change:transform;transition:transform .4s var(--ease-enter),box-shadow .4s var(--ease-enter),border-color .3s ease,background-color .3s ease}.programme-directions svg{transition:transform .35s var(--ease-enter)}.programme-directions:hover svg{transform:translate(3px,-3px)}.hero-photo{overflow:hidden;border-radius:var(--radius-xl)}.hero-photo img{transform:translate3d(0,var(--parallax-y, 0),0);will-change:transform}.form-input,.form-select{transition:border-color .25s var(--ease-enter),background-color .25s ease,transform .25s var(--ease-enter),box-shadow .25s var(--ease-enter)}.form-input:focus,.form-select:focus{transform:translateY(-1px)}.nav-link{transition:background-color .3s var(--ease-enter),color .3s var(--ease-enter),transform .3s var(--ease-enter)}.nav-link--gift{transition:background .3s var(--ease-enter),transform .3s var(--ease-enter),box-shadow .3s var(--ease-enter)}@media(prefers-reduced-motion:reduce){.section-header.reveal .section-divider:before,.section-header.reveal .section-divider:after,.section-header.reveal .section-divider svg,.section-header.reveal h2,.section-header.reveal p{opacity:1!important;transform:none!important;transition:none!important}.hero-photo img{transform:none!important}}@media print{.navbar,.hero-scroll,.form-submit,.hebergements-map,.programme-map,.snowflakes{display:none!important}body{font-size:12pt;color:#000;background:#fff}.section{page-break-inside:avoid;padding:20pt 0}a[href]:after{content:" (" attr(href) ")";font-size:.8em;color:#666}}
