@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500;1,700&family=Great+Vibes&display=swap";@font-face{font-family:WeddingSerif;src:local(Baskerville),local(Baskerville-Regular),local(Libre Baskerville);font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:WeddingSerif;src:local(Snell Roundhand),local(SnellRoundhand),local(Snell Roundhand Script);font-style:italic;font-weight:400 700;font-display:swap}:root{--color-ink:#5c3f1f;--color-ink-soft:#8b6a3f;--color-gold:#b08951;--color-gold-deep:#8b6a3f;--color-gold-soft:#d4b87f;--color-rose:#d99b8f;--color-sky:#c5d4d1;--color-cream:#faf3e0;--color-paper:#fcf6e7;--color-paper-warm:#f8edd1;--color-line:#b0895147;--color-line-soft:#b0895124;--color-focus:#b08951;--font-script:"Snell Roundhand", "SnellRoundhand", "Great Vibes", cursive;--font-serif:"WeddingSerif", "Baskerville", "Libre Baskerville", "Cormorant Garamond", serif;--radius-card:22px;--radius-pill:999px;--shadow-card:0 18px 48px #6e4b2329;--shadow-soft:0 12px 28px #6e4b231f;--shadow-paper:0 8px 20px #6e4b231a;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--content-max:760px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:radial-gradient(circle at top,#fff7e3 0%,#faecc6 38%,#f5e4b8 100%);scroll-padding-top:18px}body{font-family:var(--font-serif);color:var(--color-ink);background:0 0;min-height:100vh;padding:0}#root{width:min(100%, var(--content-max));background:radial-gradient(120% 90% at 50% 0%, #fffae8e6, #fcf6e7f2 60%), var(--color-paper);box-shadow:none;border:0;border-radius:0;margin:0 auto;overflow:clip}h1,h2,h3{color:var(--color-gold-deep);letter-spacing:.04em;font-style:italic;font-weight:600}@keyframes slideInUp{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slide-up{animation:.9s ease-out both slideInUp}.animate-fade-in{animation:1.1s ease-out both fadeIn}.text-center{text-align:center}.app-container{flex-direction:column;display:flex}.music-player-frame{opacity:0;pointer-events:none;z-index:-1;width:1px;height:1px;position:fixed}.music-toggle-btn{z-index:40;border:1px solid color-mix(in srgb, var(--color-gold) 65%, white);background:color-mix(in srgb, var(--color-paper) 88%, var(--color-gold-soft));color:var(--color-gold-deep);cursor:pointer;opacity:.92;border-radius:999px;place-items:center;width:42px;height:42px;padding:0;transition:transform .18s,border-color .18s,background-color .18s,opacity .18s;display:grid;position:fixed;bottom:clamp(.65rem,2vw,1.1rem);right:clamp(.65rem,2vw,1.1rem);box-shadow:0 6px 14px #6e4b232e}.music-toggle-btn:before{content:"♪";font-size:1.2rem;line-height:1}.music-toggle-btn:after{content:"";background:var(--color-gold-deep);transform-origin:50%;width:20px;height:2px;transition:transform .18s;position:absolute;transform:rotate(-38deg)scaleX(0)}.music-toggle-btn.is-playing{border-color:var(--color-gold);background:color-mix(in srgb, var(--color-paper) 80%, var(--color-gold-soft));opacity:1}.music-toggle-btn.is-muted:after{transform:rotate(-38deg)scaleX(1)}.music-toggle-btn:hover,.music-toggle-btn:focus-visible{border-color:var(--color-gold-deep);opacity:1;transform:translateY(-1px)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.main-content{flex-direction:column;gap:0;display:flex}.hero-menu{background:#f9f2d8;border-bottom:0;align-content:center;justify-items:center;gap:clamp(1.7rem,4.5vw,3.2rem);min-height:100svh;padding:clamp(2rem,7vw,4.5rem) 1.1rem clamp(2.1rem,6vw,3.6rem);display:grid;position:relative}.hero-menu:before{content:none}.hero-menu-mark{color:var(--color-gold-deep);justify-items:center;display:grid;position:relative}.hero-menu-logo{width:clamp(280px,82vw,460px);height:auto;display:block}.hero-countdown{box-shadow:none;background:0 0;border:0;border-radius:0;justify-content:center;align-items:stretch;gap:clamp(.6rem,2vw,1.2rem);margin-top:clamp(.4rem,1.4vw,1rem);padding:0;display:flex}.hero-countdown-item{border-right:0;flex-direction:column;justify-content:center;align-items:center;gap:.55rem;min-width:clamp(60px,18vw,88px);padding:0 clamp(.25rem,1vw,.7rem);display:flex}.hero-countdown-item:last-child{border-right:0}.hero-countdown-value{color:var(--color-gold-deep);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:clamp(2.1rem,7.5vw,3.2rem);font-style:italic;font-weight:600;line-height:1}.hero-countdown-unit{color:var(--color-ink-soft);letter-spacing:.18em;text-transform:uppercase;opacity:.92;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(.78rem,2.7vw,.98rem);font-style:normal;font-weight:500;line-height:1}.invitation-section{background:0 0;border:0;width:100%;margin:0;padding:0;display:block;position:relative}.invitation-frame{width:100%;margin:0;padding:0;font-size:0;line-height:0;display:block;position:relative}.invitation-image{width:100%;max-width:100%;height:auto;box-shadow:none;vertical-align:top;border:0;border-radius:0;margin:0;padding:0;display:block}.invitation-link{z-index:3;border:1px solid color-mix(in srgb, var(--color-gold) 38%, transparent);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-paper) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);min-height:0;color:var(--color-gold-deep);letter-spacing:.04em;text-transform:none;justify-content:center;align-items:center;gap:.18rem;padding:.08rem .45rem;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(.5rem,1.5vw,.6rem);font-style:normal;font-weight:500;line-height:1.1;text-decoration:none;transition:transform .22s,background-color .22s,color .22s,border-color .22s,box-shadow .22s;display:inline-flex;position:absolute;bottom:24%;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #6e4b2314}.invitation-link:after{content:"↗";opacity:.85;font-size:.7em;font-style:normal}.invitation-link:hover,.invitation-link:focus-visible{color:var(--color-paper);background:var(--color-gold);border-color:var(--color-gold-deep);transform:translate(-50%)translateY(-1px);box-shadow:0 4px 10px #6e4b232e}#houpa .invitation-link{bottom:9%}#soiree .invitation-link{top:auto;bottom:4.5%}.rsvp-section{background:linear-gradient(#d4b87f29,#d4b87f0a);padding:clamp(2rem,5.5vw,3.4rem) clamp(.9rem,3.5vw,2.4rem)}.rsvp-heading{text-align:center;gap:.25rem;margin:0 auto clamp(1rem,3vw,1.4rem);display:grid}.rsvp-heading-title{font-family:var(--font-script);letter-spacing:.015em;color:var(--color-gold-deep);font-size:clamp(2.6rem,9.5vw,4.2rem);font-style:normal;font-weight:400;line-height:.92}.rsvp-heading-subtitle{color:var(--color-ink-soft);font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(1rem,3.5vw,1.22rem);font-style:normal}.rsvp-form{background:color-mix(in srgb, var(--color-paper) 88%, white);border:1px solid var(--color-line);width:min(100%,620px);box-shadow:var(--shadow-soft);border-radius:14px;flex-direction:column;gap:clamp(1rem,3.2vw,1.4rem);margin:0 auto;padding:clamp(1rem,4vw,1.7rem);display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.rsvp-name-group label{font-size:clamp(1.05rem,3.6vw,1.2rem)}fieldset{min-inline-size:0}label,legend{color:var(--color-ink);font-size:clamp(1rem,3.5vw,1.13rem);font-style:italic;font-weight:600}input[type=text],input[type=email],input[type=number],textarea{border:1px solid var(--color-line);width:100%;color:var(--color-ink);background:color-mix(in srgb, var(--color-paper) 90%, white);border-radius:10px;padding:.78rem .9rem;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(1rem,3.6vw,1.08rem);transition:border-color .18s,box-shadow .18s,background-color .18s}input::placeholder,textarea::placeholder{color:color-mix(in srgb, var(--color-ink-soft) 70%, white);opacity:1;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-style:normal}textarea{resize:vertical;min-height:6rem}input[type=number]{text-align:center;width:72px}.form-choice{border:1px solid var(--color-line-soft);padding:var(--space-4);gap:var(--space-3);border-radius:12px;display:grid}.form-radio-group{gap:var(--space-2);display:grid}.radio-label{cursor:pointer;align-items:center;gap:.6rem;min-height:36px;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(1rem,3.6vw,1.08rem);font-style:normal;display:inline-flex}.radio-label input{accent-color:var(--color-gold-deep);width:20px;height:20px}.attendance-card{border:1px solid var(--color-line);background:color-mix(in srgb, var(--color-paper) 80%, var(--color-paper-warm));border-radius:12px;gap:.85rem;padding:clamp(.9rem,3.5vw,1.35rem);display:grid}.attendance-card legend{color:var(--color-gold-deep);white-space:nowrap;padding-inline:.25rem;font-size:clamp(.95rem,3.4vw,1.35rem);font-style:italic}.attendance-radio-group{align-items:center;gap:clamp(1.2rem,5vw,1.8rem);display:flex}.attendance-date-note{color:var(--color-ink-soft);margin-top:-.15rem;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(.94rem,3.2vw,1.1rem);font-style:normal}.attendance-count-trigger{border:1px solid var(--color-gold);background:color-mix(in srgb, var(--color-paper) 80%, var(--color-paper-warm));color:var(--color-gold-deep);cursor:pointer;border-radius:10px;justify-self:start;min-height:44px;padding:.65rem .9rem;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(.96rem,3.4vw,1.1rem);font-style:normal;transition:border-color .18s,transform .18s,background-color .18s}.attendance-count-trigger:hover,.attendance-count-trigger:focus-visible{border-color:var(--color-gold-deep);background:color-mix(in srgb, var(--color-paper-warm) 80%, var(--color-gold-soft));transform:translateY(-1px)}.rsvp-error{color:#874336;background:#fefcfb;border:1px solid #d29c94;border-radius:10px;padding:.6rem .75rem;font-size:1rem}.submit-btn{margin-top:var(--space-2);border:1px solid var(--color-gold-deep);background:linear-gradient(180deg, var(--color-gold) 0%, var(--color-gold-deep) 100%);min-height:48px;color:var(--color-paper);letter-spacing:.05em;cursor:pointer;border-radius:12px;padding:.85rem 1rem;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(1.05rem,3.8vw,1.18rem);font-style:normal;font-weight:600;transition:transform .18s,box-shadow .18s,filter .18s;box-shadow:0 6px 14px #6e4b232e}.submit-btn:hover,.submit-btn:focus-visible{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 10px 22px #6e4b2347}.count-modal-overlay{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f1b1557;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.count-modal{background:var(--color-paper);border:1px solid var(--color-gold-soft);border-radius:16px;gap:1rem;width:min(100%,420px);padding:1.15rem 1rem;display:grid;box-shadow:0 20px 50px #6e4b2347}.count-modal-title{text-align:center;color:var(--color-gold-deep);font-size:clamp(1.15rem,4vw,1.42rem);font-style:italic}.count-stepper{justify-content:center;align-items:center;gap:1rem;display:flex}.count-stepper-btn{border:1px solid var(--color-gold);background:color-mix(in srgb, var(--color-paper) 80%, var(--color-paper-warm));width:44px;height:44px;color:var(--color-gold-deep);cursor:pointer;border-radius:999px;font-size:1.5rem;line-height:1;transition:background-color .18s,transform .18s}.count-stepper-btn:hover,.count-stepper-btn:focus-visible{background:color-mix(in srgb, var(--color-paper-warm) 70%, var(--color-gold-soft));transform:translateY(-1px)}.count-stepper-value{text-align:center;min-width:3ch;color:var(--color-gold-deep);font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:clamp(1.9rem,7vw,2.5rem);font-style:normal;font-weight:600;line-height:1}.count-modal-actions{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.count-modal-btn{border:1px solid var(--color-gold-deep);background:linear-gradient(180deg, var(--color-gold) 0%, var(--color-gold-deep) 100%);min-height:44px;color:var(--color-paper);cursor:pointer;border-radius:10px;padding:.7rem;font-family:Baskerville,Libre Baskerville,Cormorant Garamond,serif;font-size:1.04rem;font-style:normal;font-weight:600}.count-modal-btn--ghost{background:color-mix(in srgb, var(--color-paper) 80%, var(--color-paper-warm));color:var(--color-gold-deep);border-color:var(--color-gold)}.rsvp-success{text-align:center;gap:var(--space-3);width:min(100%,480px);margin:0 auto;display:grid}.subtitle{color:var(--color-ink-soft);font-size:clamp(1.1rem,3.8vw,1.3rem);font-style:italic;line-height:1.55}.footer{text-align:center;border-top:1px solid var(--color-line-soft);color:var(--color-ink);background:radial-gradient(120% 100% at 50% 100%,#d4b87f38,#0000 65%),linear-gradient(#fffae899,#d4b87f1f);padding:clamp(1.6rem,5vw,2.4rem) clamp(1rem,4vw,2rem);position:relative}.footer:before{content:"✦";color:var(--color-gold);opacity:.65;margin-bottom:.4rem;font-size:1rem;display:block}.footer p{color:var(--color-gold-deep);font-size:clamp(1.05rem,3.6vw,1.25rem);font-style:italic}.footer .copyright{margin-top:var(--space-3);letter-spacing:.02em;color:var(--color-ink-soft);opacity:.8;font-size:clamp(.78rem,2.6vw,.9rem);font-style:normal}.footer .footer-link{color:inherit;text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:.5px;transition:color .18s}.footer .footer-link:hover,.footer .footer-link:focus-visible{color:var(--color-gold-deep)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}input:focus,textarea:focus{border-color:var(--color-focus);background:color-mix(in srgb, var(--color-paper) 92%, white);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-gold) 22%, transparent)}@media (width<=620px){body{padding:0}#root{border-radius:0}.music-toggle-btn{width:40px;height:40px;bottom:.6rem;right:.6rem}.hero-menu{gap:1.4rem;min-height:100svh;padding-top:2rem;padding-bottom:1.9rem}.hero-menu-mark:after{margin-top:.45rem}.hero-countdown{width:100%;padding-inline:.2rem}.attendance-radio-group{flex-wrap:wrap;gap:1.1rem}.attendance-count-trigger{text-align:left;width:100%}.count-modal{padding:1rem .85rem}.count-modal-actions{grid-template-columns:1fr}}@media (width<=380px){.hero-countdown{gap:.4rem}.hero-countdown-value{font-size:1.6rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation:none!important}}
