:root{--green: #78a381;--ochre: #e29b27;--terracotta: #b13116;--bg: #fafaf8;--bg-alt: #f4f2ed;--text: #2d2b26;--text-muted: #7a7870;--line: #b8b4a8;--border: #e5e2da;--max-w: 860px;--font-script: "Dancing Script", cursive;--font-serif: "Playfair Display", serif;--font-body: "Lato", system-ui, sans-serif}[data-theme=dark]{--green: #8ab890;--ochre: #d4941f;--terracotta: #d4673c;--bg: #1c1a17;--bg-alt: #242220;--text: #ede9e0;--text-muted: #b0aca4;--line: #4a4840;--border: #353330}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--green: #8ab890;--ochre: #d4941f;--terracotta: #d4673c;--bg: #1c1a17;--bg-alt: #242220;--text: #ede9e0;--text-muted: #b0aca4;--line: #4a4840;--border: #353330}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s ease,border-color .3s ease,color .3s ease}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:300;font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased}address{font-style:normal}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.nav__logo{font-family:var(--font-script);font-size:1.4rem;color:var(--green);letter-spacing:.02em}.nav__links{list-style:none;display:flex;gap:2rem}.nav__links a{text-decoration:none;color:var(--text);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;transition:color .2s}.nav__links a:hover{color:var(--green)}.theme-switcher{display:flex;gap:2px;background:var(--bg-alt);border:1px solid var(--border);border-radius:2rem;padding:3px}.theme-btn{background:none;border:none;border-radius:2rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.theme-btn:hover{color:var(--text)}.theme-btn.active{background:var(--bg);color:var(--green);box-shadow:0 1px 3px #00000014}.wire{stroke:var(--line);stroke-width:1.5;fill:none}.bulb line{stroke:var(--line);stroke-width:1}.bulb circle{fill:#f0a05026;stroke:var(--line);stroke-width:1;animation:twinkle var(--twinkle-duration, 3s) var(--twinkle-delay, 0s) ease-in-out infinite}@keyframes twinkle{0%,to{fill:#f0a05026}50%{fill:#f0a050;filter:drop-shadow(0 0 5px rgba(220,120,50,.65))}}.bird{fill:var(--line)}.bird-fly{fill:none;stroke:var(--line);stroke-width:1.3;stroke-linecap:round}.lights--hero{position:absolute;top:3.5rem;left:0;width:100%;height:110px;pointer-events:none}.lights--divider{display:block;width:100vw;margin-left:calc(50% - 50vw);height:80px;overflow:visible;margin-bottom:1.5rem}.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding-top:5rem}.hero__content{display:flex;flex-flow:column;text-align:center;position:relative;z-index:1;padding:2.5rem 3.5rem}.couple{font-family:var(--font-script);font-size:clamp(3rem,10vw,5.5rem);font-weight:700;color:var(--green);line-height:1.1;letter-spacing:.01em}.amp{font-size:.85em}.hero__date{margin-top:.75rem;font-family:var(--font-serif);font-size:clamp(1rem,3vw,1.25rem);color:var(--terracotta);letter-spacing:.03em}.countdown{display:flex;gap:1.5rem;justify-content:center;margin-top:1.5rem}.countdown__unit{display:flex;flex-direction:column;align-items:center;gap:.2rem}.countdown__num{font-family:var(--font-serif);font-size:clamp(1.6rem,5vw,2.2rem);font-weight:600;color:var(--terracotta);line-height:1;min-width:2ch;text-align:center}.countdown__label{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.cal-btn{position:relative;display:inline-block;margin-top:.75rem}.cal-btn__toggle{background:none;border:1px solid var(--border);border-radius:2rem;padding:.35rem 1rem;font-family:var(--font-body);font-size:.78rem;letter-spacing:.05em;color:var(--text-muted);cursor:pointer;transition:border-color .2s,color .2s}.cal-btn__toggle:hover{border-color:var(--green);color:var(--green)}.cal-btn__menu{display:none;position:absolute;top:calc(100% + .4rem);left:50%;transform:translate(-50%);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;list-style:none;padding:.3rem 0;margin:0;white-space:nowrap;box-shadow:0 4px 16px #0000000f;z-index:10}.cal-btn__toggle[aria-expanded=true]+.cal-btn__menu{display:block}.cal-btn__menu a{display:block;padding:.5rem 1.2rem;font-size:.82rem;color:var(--text-muted);text-decoration:none;transition:color .15s}.cal-btn__menu a:hover{color:var(--green)}.hero__tagline{margin-top:.4rem;font-size:.9rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.hero__scroll{display:inline-block;margin-top:3rem;color:var(--terracotta);font-size:1.5rem;text-decoration:none;animation:bounce 2s ease-in-out infinite;transition:color .2s}.hero__scroll:hover{color:var(--green)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.section{padding:5rem 2rem;scroll-margin-top:4.5rem}.hero+.section:has(>.lights--divider){padding-top:1.5rem}.section+.section:has(>.lights--divider){padding-top:0}.section:has(+.section>.lights--divider){padding-bottom:3rem}.section--alt{background:var(--bg-alt)}.section__inner{max-width:var(--max-w);margin:0 auto}h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.6rem,4vw,2.2rem);color:var(--text);margin-bottom:2.5rem;text-align:center}h2:after{content:"";display:block;width:2rem;height:1px;background:var(--terracotta);margin:.6rem auto 0}.days{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}.day{border:1px solid var(--border);border-radius:4px;padding:1.75rem;background:var(--bg)}.day__header{margin-bottom:1.25rem}.day__num{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--terracotta);margin-bottom:.2rem}.day__title{font-family:var(--font-serif);font-size:1.1rem;font-weight:400}.day__timeline{list-style:none;display:flex;flex-direction:column;gap:1rem}.day__timeline li{display:flex;gap:1rem}.time{flex-shrink:0;font-size:.8rem;color:var(--text-muted);padding-top:.15rem;min-width:3rem}.event strong{display:block;font-weight:400;font-size:.95rem}.event em{font-style:normal;font-size:.82rem;color:var(--text-muted)}.day__desc{font-size:.95rem;color:var(--text-muted);line-height:1.65}.lieu{display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;align-items:center}.lieu__map{height:280px;border-radius:.75rem;overflow:hidden;border:1px solid var(--border)}.lieu__name{font-family:var(--font-serif);font-size:1.4rem;font-weight:400;margin-bottom:.5rem}.lieu__address{font-size:.95rem;color:var(--text-muted);line-height:1.8;margin-bottom:1.5rem}.lieu__note{font-size:.9rem;color:var(--text-muted);font-style:italic;border-left:2px solid var(--border);padding-left:1.25rem;line-height:1.7;margin-top:2rem}.btn[hidden]{display:none}.btn{display:inline-block;padding:.6rem 1.4rem;background:transparent;border:1px solid var(--text);color:var(--text);text-decoration:none;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;transition:background .2s,color .2s;border-radius:2px}.btn:hover{background:var(--text);color:var(--bg)}.btn--primary{background:var(--terracotta);border-color:var(--terracotta);color:#fff;padding:.75rem 2rem;font-size:.9rem;cursor:pointer;font-family:var(--font-body);font-weight:300}.btn--primary:hover{background:#b04822;border-color:#b04822;color:#fff}.rsvp__deadline{text-align:center;font-size:.9rem;color:var(--text-muted);margin-top:-1.5rem;margin-bottom:2.5rem}.rsvp__deadline strong{color:var(--terracotta);font-weight:400}.rsvp-form{max-width:580px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.field{display:flex;flex-direction:column;gap:.4rem;border:none;padding:0}.field label,.field legend{font-size:.85rem;letter-spacing:.04em;color:var(--text)}.required{color:var(--terracotta)}.field input[type=text],.field input[type=number],.field textarea{font-family:var(--font-body);font-weight:300;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:2px;padding:.65rem .85rem;transition:border-color .2s;resize:vertical;width:100%}.field input:focus,.field textarea:focus{outline:none;border-color:var(--green)}.field input[type=number]{max-width:100px}.checkboxes{display:flex;flex-direction:column;gap:.75rem;margin-top:.25rem}.checkbox{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;font-size:.9rem}.checkbox input[type=checkbox]{width:16px;height:16px;flex-shrink:0;margin-top:.2rem;accent-color:var(--green);cursor:pointer}.checkbox span{line-height:1.5}.checkbox small{display:block;font-size:.78rem;color:var(--text-muted)}.rsvp-form .btn--primary{align-self:center;margin-top:.5rem}.rsvp-form__error{margin-top:1rem;font-size:.88rem;color:var(--terracotta);text-align:center}.rsvp__alt{text-align:center;margin-top:2rem;font-size:.82rem;color:var(--text-muted)}.rsvp__alt a{color:inherit;text-decoration:underline;text-decoration-color:var(--terracotta);text-underline-offset:3px;transition:color .2s}.rsvp__alt a:hover{color:var(--terracotta)}.hero__bg{position:absolute;bottom:10px;left:0;width:100%;height:auto;pointer-events:none;fill:var(--line);z-index:0}.hero__bg #couple{transform-box:view-box;transform:translate(35%)}.hero__bg #droite{transform-box:view-box;transform:translate(-30%)}@media (max-width: 640px){.hero__bg{width:auto;min-width:100%;height:80vw;left:50%;transform:translate(-50%);overflow:visible}.hero__bg #couple{transform:translate(26%)}.hero__bg #droite{transform:translate(-35%)}}.hero__deco{position:absolute;bottom:0;left:0;width:100%;pointer-events:none;fill:var(--line);z-index:0}.hero__deco .cls-1{fill:var(--bg)}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes modal-box-in{0%{opacity:0;transform:translateY(22px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-box-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(14px) scale(.97)}}@keyframes slide-up-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-only{0%{opacity:0}to{opacity:1}}@keyframes pole-draw{0%{stroke-dashoffset:160}to{stroke-dashoffset:0}}@keyframes sign-panel-in{0%{opacity:0;transform:rotate(var(--rot, 0deg)) translateY(10px)}to{opacity:1;transform:rotate(var(--rot, 0deg)) translateY(0)}}@keyframes bird-perch{0%,to{transform:rotate(0) translateY(0)}35%{transform:rotate(-6deg) translateY(-2px)}70%{transform:rotate(4deg) translateY(-1px)}}@keyframes garland-sway{0%{transform:translateY(0)}40%{transform:translateY(4px)}75%{transform:translateY(2px)}to{transform:translateY(0)}}#invite-modal .lights--invite{animation:garland-sway 6s ease-in-out .9s infinite;transform-origin:center top}.modal:not([hidden]) .modal__backdrop{animation:modal-backdrop-in .25s ease both}.modal:not([hidden]) .modal__box{animation:modal-box-in .35s cubic-bezier(.34,1.56,.64,1) both}#rsvp-modal.modal:not([hidden]) .modal__icon{animation:slide-up-fade .4s ease .08s both}#rsvp-modal.modal:not([hidden]) .modal__title{animation:slide-up-fade .4s cubic-bezier(.34,1.56,.64,1) .15s both}#rsvp-modal.modal:not([hidden]) .modal__body{animation:slide-up-fade .35s ease .25s both}#rsvp-modal.modal:not([hidden]) .modal__btns{animation:slide-up-fade .35s ease .32s both}#invite-modal.modal:not([hidden]) .modal__title{animation:slide-up-fade .4s cubic-bezier(.34,1.56,.64,1) .1s both}#invite-modal.modal:not([hidden]) .invite-sep{animation:slide-up-fade .35s ease .18s both}#invite-modal.modal:not([hidden]) .invite-tagline{animation:slide-up-fade .35s ease .25s both}#invite-modal.modal:not([hidden]) .invite-address{animation:slide-up-fade .35s ease .33s both}#invite-modal.modal:not([hidden]) .modal__btns{animation:slide-up-fade .35s ease .55s both}#invite-modal.modal:not([hidden]) .sign-pole{animation:pole-draw .45s ease .18s both}#invite-modal.modal:not([hidden]) .sign-bird-top{animation:fade-in-only .3s ease .28s forwards,bird-perch 4s ease-in-out .58s infinite}#invite-modal.modal:not([hidden]) .sign-panel--top{animation:sign-panel-in .45s cubic-bezier(.34,1.56,.64,1) .3s both}#invite-modal.modal:not([hidden]) .sign-panel--mariage{animation:sign-panel-in .45s cubic-bezier(.34,1.56,.64,1) .4s both}#invite-modal.modal:not([hidden]) .sign-panel--cocktail{animation:sign-panel-in .45s cubic-bezier(.34,1.56,.64,1) .5s both}#invite-modal.modal:not([hidden]) .sign-panel--dancing{animation:sign-panel-in .45s cubic-bezier(.34,1.56,.64,1) .6s both}#invite-modal.modal:not([hidden]) .sign-flora{animation:fade-in-only .5s ease .7s both}.modal.is-closing .modal__backdrop{animation:modal-backdrop-out .2s ease both}.modal.is-closing .modal__box{animation:modal-box-out .2s ease both}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center}.modal[hidden]{display:none}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#2d2b2673;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal__box{position:relative;background:var(--bg);border-radius:1.25rem;padding:2.5rem 2.5rem 2rem;max-width:420px;width:calc(100% - 2rem);text-align:center;box-shadow:0 8px 40px #0000001f}.modal__icon{font-size:2.5rem;margin-bottom:.75rem}.modal__title{font-family:var(--font-script);font-size:2rem;font-weight:600;color:var(--green);margin-bottom:.75rem}.modal__body{font-size:.95rem;color:var(--text-muted);line-height:1.7;margin-bottom:1.75rem}.modal__btns{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.modal__box--invite{padding:0;overflow:hidden;max-width:480px}.modal__box--invite .modal__title{font-size:2.2rem;line-height:1.25;margin-bottom:1rem;text-align:center}.modal__box--invite .modal__title:after{display:none}.invite-sep{width:2.5rem;height:1.5px;background:var(--terracotta);opacity:.6;margin:0 auto 1rem}.lights--invite{display:block;width:100%;height:65px}.invite-inner{padding:.5rem 1.75rem 2rem;text-align:center}.invite-tagline{font-family:var(--font-serif);font-style:italic;font-size:1.08rem;color:var(--terracotta);margin:0 0 1rem;line-height:1.6}.invite-address{font-family:var(--font-serif);font-size:.95rem;color:var(--text);line-height:1.9;margin:0 0 1.5rem}.sign-pole{stroke:var(--line);stroke-width:1.8;stroke-linecap:round;fill:none;stroke-dasharray:160;stroke-dashoffset:0}.sign-bird-top{opacity:0;transform-origin:50% 72%;transform-box:fill-box}.sign-bird-top svg{overflow:visible}.sign-bird-top path{fill:var(--line);stroke:none}.sign-panel{transform:rotate(var(--rot, 0deg));transform-origin:50% 50%;transform-box:fill-box}.sign-panel--top{--rot: -1.5deg}.sign-panel--mariage{--rot: 1.2deg}.sign-panel--cocktail{--rot: -.8deg}.sign-panel--dancing{--rot: 1deg}.sign-box{fill:var(--bg);stroke:var(--line);stroke-width:1.2}.sign-nail{fill:var(--line);stroke:none}.sign-cm{font-family:Playfair Display,serif;font-size:14px;text-anchor:middle;fill:var(--text)}.sign-cm--m{fill:var(--terracotta)}.sign-cm--plus{font-size:10px;fill:var(--text-muted)}.sign-label{font-family:Lato,sans-serif;font-size:7px;letter-spacing:1px;text-anchor:middle;fill:var(--text)}.sign-label--mariage{fill:var(--terracotta);letter-spacing:.8px}.sign-flora{opacity:0}.sign-grass-blade{stroke:var(--line);stroke-width:1.2;fill:none;stroke-linecap:round}.sign-stem,.sign-leaf{stroke:var(--line);stroke-width:1;stroke-linecap:round;fill:none}.sign-petal{fill:var(--bg);stroke:var(--line);stroke-width:.8}.sign-flower-center{fill:var(--line);stroke:none}.sign-shroom-stem{fill:var(--bg);stroke:var(--line);stroke-width:.8}.sign-shroom-cap{fill:var(--bg);stroke:var(--line);stroke-width:1}.sign-shroom-dot{fill:var(--line);stroke:none}.theme-text{max-width:560px;margin:0 auto 3rem;text-align:center;color:var(--text-muted);line-height:1.75}.theme-text p+p{margin-top:.75rem}.palette{display:grid;grid-template-columns:repeat(5,5rem);justify-content:center;gap:1.5rem}@media (max-width: 540px){.palette{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}.palette .swatch{width:5rem}}.swatch{display:flex;flex-direction:column;align-items:center;gap:.6rem;opacity:0;transform:translateY(16px) scale(.85);transition:opacity .5s ease,transform .5s ease,filter .3s ease;transition-delay:calc(var(--i, 0) * 80ms)}.palette--visible .swatch{opacity:1;transform:none}.palette:has(.swatch:hover) .swatch:not(:hover){filter:opacity(.4);transform:scale(.95)}.swatch__color{width:4rem;height:4rem;border-radius:50%;box-shadow:0 2px 8px #0000001f;transition:transform .3s ease,box-shadow .3s ease}.swatch:hover .swatch__color{transform:scale(1.15);box-shadow:0 6px 20px #00000038}.swatch__label{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--text-muted);transition:color .3s ease}.swatch:hover .swatch__label{color:var(--text)}@media (prefers-reduced-motion: reduce){.swatch{opacity:1;transform:none;transition:none}}.bottom-nav{display:none}@media (max-width: 640px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.6rem .25rem;text-decoration:none;color:var(--text-muted);font-size:.65rem;letter-spacing:.04em;transition:color .2s}.bottom-nav__item.active,.bottom-nav__item:hover{color:var(--terracotta)}}.footer{background:var(--bg-alt);border-top:1px solid var(--border);padding:3rem 2rem 2.5rem;text-align:center}.footer__names{font-family:var(--font-script);font-size:1.8rem;color:var(--green);margin-bottom:.5rem}.footer__address{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.footer__phones{font-size:.85rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:.5rem}.footer__phones a{color:inherit;text-decoration:none;transition:color .2s}.footer__phones a:hover{color:var(--terracotta)}.footer__email{font-size:.85rem;color:var(--text-muted);margin-top:.25rem}.footer__email a{color:inherit;text-decoration:underline;text-decoration-color:var(--terracotta);text-underline-offset:3px;transition:color .2s}.footer__email a:hover{color:var(--terracotta)}.footer__birds{display:block;margin:1.5rem auto 0;width:120px;opacity:.5}@media (max-width: 640px){.nav{padding:.875rem 1.25rem}.nav__links{display:none}.section{padding:3.5rem 1.25rem;scroll-margin-top:4rem}.lieu{grid-template-columns:1fr;gap:1.5rem}.lieu__map{height:220px}.lieu__note{border-left:none;padding-left:0;border-top:1px solid var(--border);padding-top:1rem;margin-top:.5rem}}
