:root{--primary: #2b5c46;--secondary: rgb(105, 133, 115);--bg-dark: rgb(136, 136, 172);--text-light: #f4f4f4;--calque-white: rgba(211, 209, 209, .432)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Lato,sans-serif;background:#f9f9f9;overflow-x:hidden;color:#444}.envelope-wrapper{position:relative;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--secondary);transition:opacity 1s ease;overflow:hidden}.envelope-wrapper:before,.envelope-wrapper:after{content:"";position:absolute;width:50%;height:50%;background-size:contain;background-repeat:no-repeat;pointer-events:none;z-index:0;opacity:.6;filter:brightness(100)}.envelope-wrapper:before{top:70px;left:100px;background-image:url(/assets/cadre_fleur.png);transform:rotate(0)}.envelope-wrapper:after{bottom:70px;right:100px;background-image:url(/assets/cadre_fleur.png);transform:rotate(180deg)}.instruction{margin-bottom:40px;color:#fff;letter-spacing:2px;text-transform:uppercase;animation:pulse 2s infinite;text-align:center}.family-name{position:absolute;top:-50%;width:100%;text-align:center;font-family:Great Vibes,cursive;font-size:2.8rem;color:#fff;transition:opacity .5s;text-shadow:2px 2px 10px rgba(0,0,0,.5)}.envelope-scaler{position:relative;width:300px;height:200px;z-index:1}.envelope{position:relative;width:100%;height:100%;cursor:pointer;background:var(--calque-white);border-radius:10px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.233);box-shadow:0 20px 40px #0006;z-index:10}.flap{position:absolute;width:0;height:0;border-color:transparent}.envelope .top{top:0;left:0;border-radius:10px 10px 0 0;border-top:100px solid rgba(255,255,255,.4);z-index:50;transform-origin:top;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:transform .6s .2s ease-in-out;border-right:150px solid transparent;border-left:150px solid transparent;-webkit-clip-path:polygon(0 0,100% 0,50% 100%);clip-path:polygon(0 0,100% 0,50% 100%)}.envelope .bottom{bottom:0;left:0;z-index:40;border-radius:10px;display:block;width:100%;height:100%;background-color:#fff6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:inset 0 0 20px 5px #7c7c7c66;-webkit-clip-path:polygon(0% 0%,50% 50%,50% 50%,100% 0,100% 100%,100% 100%,0 100%,0 0);clip-path:polygon(0% 0%,50% 50%,50% 50%,100% 0,100% 100%,100% 100%,0 100%,0 0)}.wax-seal{position:absolute;top:50%;left:50%;width:80px;height:80px;background-image:url(/assets/sceau-cire.png);background-size:contain;background-repeat:no-repeat;background-position:center;transform:translate(-50%,-50%);z-index:60;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3));transition:opacity .4s ease;cursor:pointer}.letter{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;height:180px;background:#194e3f;box-shadow:inset 0 0 20px 3px #143f33;color:#fff;padding:20px;text-align:center;z-index:20;transition:transform .8s .5s ease-in-out}.letter h1{font-family:Great Vibes;font-size:2.2rem;color:#fff;margin-bottom:10px}.envelope.open .top{transform:rotateX(180deg);z-index:15;transition:transform .6s .2s ease-in-out,z-index 0s .4s}.envelope.open .wax-seal{opacity:0;transition-delay:1s;pointer-events:none}.envelope.open .letter{transform:translate(-50%,-260px);z-index:20}.main-content{display:none;opacity:0;transition:opacity 1s}.main-content.visible{display:block;opacity:1}.section-container{padding:80px 20px;max-width:100%;margin:0 auto;text-align:center}.hero{padding:5% 20%;background:#fff}.hero h2{font-family:Great Vibes,cursive;font-size:4rem;color:var(--primary)}.hero-overlay{position:relative;padding:60px 40px;color:var(--secondary);text-align:center;border:none;background:#ffffffe6;box-shadow:0 10px 25px #0000001a;max-width:800px;margin:0 auto}.hero-overlay:before,.hero-overlay:after{content:"";position:absolute;width:50%;height:50%;background-size:contain;background-repeat:no-repeat;pointer-events:none;z-index:1}.hero-overlay:before{top:-20px;left:-20px;background-image:url(/assets/cadre_fleur.png);transform:rotate(0);opacity:.8}.hero-overlay:after{bottom:-20px;right:-20px;background-image:url(/assets/cadre_fleur.png);transform:rotate(180deg);opacity:.8}.countdown-section{padding:40px;background:linear-gradient(135deg,var(--bg-dark) 0%,#7babb3 100%);color:#fff}#countdown{display:flex;justify-content:center;gap:30px;margin-top:20px}#countdown div{display:flex;flex-direction:column;font-size:.8rem}#countdown .time-box{width:80px;border:solid 3px rgb(255 255 255);border-radius:10px;padding:5px 10px;box-shadow:0 10px 30px #00000080}#countdown span,.time-box span{display:block;font-size:2rem;font-weight:700;color:#fff;font-family:Digital7}.timeline-section{background:linear-gradient(135deg,#a57ba1,#b3947b);color:#fff}.timeline-container{position:relative;max-width:800px;margin:40px auto;padding:20px 0}.timeline-container:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;transform:translate(-50%)}.timeline-block{display:flex;justify-content:center;align-items:center;margin-bottom:60px;position:relative;opacity:0;transform:translateY(50px);transition:all .8s ease-out}.timeline-date{width:40%;text-align:right;padding-right:30px;font-weight:700;color:#fff;font-size:.9rem}.timeline-marker{width:16px;height:16px;background:#fff;border:4px solid #fff;border-radius:50%;z-index:2;box-shadow:0 0 0 2px #fff}.timeline-content{width:40%;padding-left:30px;text-align:left}.timeline-content .detail{font-style:italic;font-size:.9rem;color:#305136}.timeline-action{margin-top:15px}.maps-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 15px;border-radius:10px;font-size:.85rem;text-decoration:none;transition:all .3s ease;border:1px solid currentColor;font-weight:500;box-shadow:0 10px 30px #00000080}.section-container:nth-of-type(odd) .maps-btn{color:var(--secondary);border-color:var(--secondary)}.section-container:nth-of-type(odd) .maps-btn:hover{background-color:var(--secondary);color:#fff}.section-container:nth-of-type(2n) .maps-btn{color:#fff;border-color:#fff}.section-container:nth-of-type(2n) .maps-btn:hover{background-color:#fff;color:var(--secondary)}.maps-btn:hover i{transform:translateY(-2px);transition:transform .2s}.infos-section{background:linear-gradient(135deg,#c2bf91,#7bb392);color:#fff}.info-grid{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:30px}.info-card{background:transparent;color:#fff;padding:30px;border-radius:15px;width:280px;box-shadow:0 10px 30px #00000080;border:3px solid white;opacity:0;transform:translateY(30px);transition:all .6s ease-out}.color-palette{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap}.color-dot{display:block;width:35px;height:35px;border-radius:50%;box-shadow:0 3px 6px #00000026;border:0px solid white;transition:transform .3s ease;cursor:help}.color-dot:hover{transform:scale(1.2);box-shadow:0 5px 10px #0003}.timeline-block.visible,.info-card.visible,.contact-orga.visible{opacity:1;transform:translateY(0)}.contact-orga{background:linear-gradient(135deg,#7babb3 0%,var(--bg-dark) 100%);color:#fff;opacity:0;transition:opacity 1s}.contact-box{max-width:700px;margin:0 auto}.contact-details{margin-top:20px;padding:20px;display:inline-block;border-radius:10px;border:3px solid white;box-shadow:0 10px 30px #00000080}.rsvp-section{background:linear-gradient(135deg,#b3947b,#a57ba1);color:#fff}.rsvp-card{background:transparent;padding:40px;border-radius:10px;border:3px solid white;box-shadow:0 10px 30px #00000080}.form-group{margin-bottom:15px;text-align:left}input,select,textarea{width:100%;padding:12px;margin-top:5px;border:1px solid #ccc;border-radius:5px}button{background:var(--primary);color:#fff;border:none;padding:15px 30px;cursor:pointer;width:100%;font-size:1.1rem;transition:.3s}button:hover{background:#1e453a}.scroll-indicator-container{position:fixed;bottom:30px;left:90%;transform:translate(-50%);z-index:99;text-align:center;color:var(--secondary);text-shadow:0 2px 4px rgba(0,0,0,.5);transition:opacity .5s ease,visibility .5s}.scroll-indicator-container.hidden{opacity:0;visibility:hidden;pointer-events:none}.mouse-icon{width:30px;height:50px;border:2px solid white;border-radius:20px;margin:10px auto 0;position:relative;box-shadow:0 2px 4px #0000004d}.wheel{width:4px;height:8px;background:#fff;position:absolute;top:8px;left:50%;transform:translate(-50%);border-radius:2px;animation:scrollWheel 1.5s infinite}footer{background:var(--primary);color:#fff;padding:40px;text-align:center}.footer-names{font-family:Great Vibes;font-size:2rem;color:var(--secondary)}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes scrollWheel{0%{top:8px;opacity:1}to{top:25px;opacity:0}}.hero h2{font-size:clamp(2rem,6vw,5rem)!important;width:90%;margin:0 auto 20px;line-height:1.2;padding:0 10px;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}@media(max-width:400px){.hero h2{font-size:1.8rem!important}}@media(min-width:1024px){.envelope-scaler{transform:scale(1.8);margin-top:50px}.mouse-icon{width:50px;height:75px;border-width:3px}.wheel{width:6px;height:12px;top:12px}#scroll-hint{right:40px;bottom:40px}}@media(max-width:768px){.timeline-container:before{left:20px}.timeline-block{flex-direction:column;align-items:flex-start;margin-left:20px}.timeline-date{width:100%;text-align:left;padding-left:30px;margin-bottom:5px}.timeline-marker{position:absolute;left:-8px;top:5px}.timeline-content{width:100%;padding-left:30px}}@media(max-width:600px){.family-name{font-size:2rem;top:-100px}#countdown{gap:10px}.time-box{padding:10px;min-width:60px}.time-box span{font-size:1.5rem}.envelope-wrapper:after,.envelope-wrapper:before{opacity:0}}.invalid-invite-screen[data-v-ebd14776]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(180deg,#f8fafc,#eef2ff)}.invalid-invite-card[data-v-ebd14776]{width:min(640px,100%);background:#fff;border:1px solid #fecaca;border-left:6px solid #dc2626;border-radius:12px;padding:1.25rem;color:#7f1d1d;box-shadow:0 10px 26px #0f172a1f}.invalid-invite-card h1[data-v-ebd14776]{margin:0 0 .6rem;font-size:1.5rem}.invalid-invite-card p[data-v-ebd14776]{margin:.35rem 0}.invite-context[data-v-ebd14776]{margin-top:1rem;font-weight:700;color:var(--primary)}.rsvp-feedback[data-v-ebd14776]{border-radius:10px;padding:10px 12px;margin-bottom:1rem}.rsvp-feedback.permanent-success[data-v-ebd14776]{background:#dcfce7;color:#166534;border:2px solid #22c55e;font-weight:700}.rsvp-feedback.neutral[data-v-ebd14776]{background:#f3f4f6;color:#1f2937}.rsvp-feedback.error[data-v-ebd14776]{background:#fee2e2;color:#991b1b}.rsvp-feedback.success[data-v-ebd14776]{background:#dcfce7;color:#166534}.admin-dashboard[data-v-ff4ecfe1]{min-height:100vh;padding:2rem;background:#f4f6f8;color:#1f2937}.dashboard-head[data-v-ff4ecfe1]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.auth-card[data-v-ff4ecfe1]{max-width:520px;margin:2rem auto}.auth-form[data-v-ff4ecfe1]{display:grid;gap:.9rem}.auth-btn[data-v-ff4ecfe1]{border:0;border-radius:10px;background:#1d4ed8;color:#fff;padding:.65rem 1rem;font-weight:700;cursor:pointer}.auth-btn[data-v-ff4ecfe1]:disabled{opacity:.6;cursor:not-allowed}.logout-btn[data-v-ff4ecfe1]{border:0;border-radius:10px;background:#dc2626;color:#fff;padding:.5rem .85rem;font-weight:700;cursor:pointer}.logout-btn[data-v-ff4ecfe1]:hover{background:#b91c1c}.card[data-v-ff4ecfe1]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem;box-shadow:0 4px 14px #0000000f}.stats-card>h2[data-v-ff4ecfe1]{margin-bottom:1rem}.stats-grid[data-v-ff4ecfe1]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.stats-item[data-v-ff4ecfe1]{border:1px solid #e5e7eb;border-radius:12px;padding:.9rem;background:linear-gradient(180deg,#fff,#f9fafb)}.stats-item-head[data-v-ff4ecfe1]{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.3rem}.stats-item-head h3[data-v-ff4ecfe1]{margin:0;font-size:1rem}.stats-item-head p[data-v-ff4ecfe1]{margin:0;font-size:.84rem;font-weight:600;color:#4b5563;text-align:right}.speed-gauge[data-v-ff4ecfe1]{width:100%;max-width:270px;margin:0 auto;display:block}.gauge-track[data-v-ff4ecfe1]{fill:none;stroke:#e5e7eb;stroke-width:18;stroke-linecap:round}.gauge-segment[data-v-ff4ecfe1]{fill:none;stroke-width:18;stroke-linecap:butt;transition:stroke-dasharray .25s ease,stroke-dashoffset .25s ease}.gauge-value[data-v-ff4ecfe1]{fill:#111827;font-size:1.35rem;font-weight:800;text-anchor:middle}.gauge-caption[data-v-ff4ecfe1]{fill:#4b5563;font-size:.72rem;font-weight:600;text-anchor:middle}.gauge-legend[data-v-ff4ecfe1]{margin:.35rem 0 0;padding:0;list-style:none;display:grid;gap:.35rem}.gauge-legend li[data-v-ff4ecfe1]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.84rem;font-weight:600;color:#1f2937}.legend-label[data-v-ff4ecfe1]{display:inline-flex;align-items:center;gap:.45rem}.legend-dot[data-v-ff4ecfe1]{width:.7rem;height:.7rem;border-radius:999px;flex-shrink:0}.message[data-v-ff4ecfe1]{border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.message.error[data-v-ff4ecfe1]{background:#fee2e2;color:#991b1b}.message.success[data-v-ff4ecfe1]{background:#dcfce7;color:#166534}.form-grid[data-v-ff4ecfe1]{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.full[data-v-ff4ecfe1]{grid-column:1 / -1}label[data-v-ff4ecfe1]{display:flex;flex-direction:column;gap:.35rem;font-size:.95rem;font-weight:600}.actions[data-v-ff4ecfe1]{display:flex;gap:.7rem}.icon-btn[data-v-ff4ecfe1]{position:relative;width:2.4rem;height:2.4rem;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;box-shadow:0 6px 14px #2563eb40;transition:transform .15s ease,background .2s ease,box-shadow .2s ease}.icon-btn[data-v-ff4ecfe1]:hover{transform:translateY(-1px);background:#1d4ed8}.icon-btn[data-v-ff4ecfe1]:disabled{opacity:.6;cursor:not-allowed;transform:none}.icon-btn.create-btn[data-v-ff4ecfe1]{background:#2563eb;box-shadow:0 6px 14px #2563eb40}.icon-btn.create-btn[data-v-ff4ecfe1]:hover{background:#1d4ed8}.icon-btn.edit-btn[data-v-ff4ecfe1]{background:#16a34a;box-shadow:0 6px 14px #16a34a4d}.icon-btn.edit-btn[data-v-ff4ecfe1]:hover{background:#15803d}.icon-btn.link-btn[data-v-ff4ecfe1]{background:#0ea5e9;box-shadow:0 6px 14px #0ea5e94d}.icon-btn.link-btn[data-v-ff4ecfe1]:hover{background:#0284c7}.icon-btn.secondary[data-v-ff4ecfe1]{background:#6b7280}.icon-btn.secondary[data-v-ff4ecfe1]:hover{background:#4b5563}.icon-btn.delete-btn[data-v-ff4ecfe1]{background:#dc2626;box-shadow:0 6px 14px #dc26264d}.icon-btn.delete-btn[data-v-ff4ecfe1]:hover{background:#b91c1c}.icon-btn.dark[data-v-ff4ecfe1]{background:#111827}.icon-btn.dark[data-v-ff4ecfe1]:hover{background:#000}.btn-tooltip[data-v-ff4ecfe1]{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%) translateY(4px);opacity:0;pointer-events:none;white-space:nowrap;background:#111827;color:#fff;font-size:.75rem;line-height:1;padding:.35rem .45rem;border-radius:6px;box-shadow:0 6px 16px #00000040;transition:opacity .16s ease,transform .16s ease}.icon-btn:hover .btn-tooltip[data-v-ff4ecfe1],.icon-btn:focus-visible .btn-tooltip[data-v-ff4ecfe1]{opacity:1;transform:translate(-50%) translateY(0)}.sr-only[data-v-ff4ecfe1]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.table-wrap[data-v-ff4ecfe1]{overflow-x:auto}table[data-v-ff4ecfe1]{width:100%;border-collapse:collapse}th[data-v-ff4ecfe1],td[data-v-ff4ecfe1]{border-bottom:1px solid #e5e7eb;padding:.7rem;vertical-align:top}th[data-v-ff4ecfe1]{background:#f9fafb;text-align:center}td[data-v-ff4ecfe1],.cell-center[data-v-ff4ecfe1]{text-align:center}.row-actions[data-v-ff4ecfe1]{display:flex;justify-content:center;gap:.5rem}.small[data-v-ff4ecfe1]{width:2.1rem;height:2.1rem;font-size:.9rem}.invite-link-cell[data-v-ff4ecfe1]{max-width:290px;overflow-wrap:anywhere;font-size:.82rem}.invite-link-cell a[data-v-ff4ecfe1]{color:#1d4ed8;text-decoration:underline}.presence-badge[data-v-ff4ecfe1]{display:inline-flex;align-items:center;justify-content:center;min-width:7.5rem;border-radius:999px;font-size:.82rem;font-weight:700;padding:.25rem .55rem}.presence-yes[data-v-ff4ecfe1]{background:#dcfce7;color:#166534}.presence-pending[data-v-ff4ecfe1]{background:#f3f4f6;color:#374151}.presence-no[data-v-ff4ecfe1]{background:#fee2e2;color:#991b1b}.modal-backdrop[data-v-ff4ecfe1]{position:fixed;inset:0;background:#1118276b;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:9999}.modal-card[data-v-ff4ecfe1]{width:min(900px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:1rem;box-shadow:0 20px 60px #0000004d}.modal-header[data-v-ff4ecfe1]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.copy-toast[data-v-ff4ecfe1]{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:12000;padding:.65rem 1rem;border-radius:10px;color:#fff;font-weight:700;box-shadow:0 12px 30px #00000047;pointer-events:none}.copy-toast.success[data-v-ff4ecfe1]{background:#166534}.copy-toast.error[data-v-ff4ecfe1]{background:#991b1b}.toast-fade-enter-active[data-v-ff4ecfe1],.toast-fade-leave-active[data-v-ff4ecfe1]{transition:opacity .18s ease,transform .18s ease}.toast-fade-enter-from[data-v-ff4ecfe1],.toast-fade-leave-to[data-v-ff4ecfe1]{opacity:0;transform:translate(-50%,-8px)}@media(max-width:700px){.admin-dashboard[data-v-ff4ecfe1]{padding:1rem}.dashboard-head[data-v-ff4ecfe1]{flex-direction:column;align-items:flex-start}.auth-card[data-v-ff4ecfe1]{margin:1rem auto}.stats-item-head[data-v-ff4ecfe1]{flex-direction:column}.stats-item-head p[data-v-ff4ecfe1]{text-align:left}}
