.invitation{min-height:100svh;padding:var(--space-8) var(--space-5);isolation:isolate;place-items:center;display:grid;position:relative}.invitation-wash{z-index:-1;pointer-events:none;background:var(--backdrop);position:absolute;inset:0;overflow:hidden}.invitation-wash:before,.invitation-wash:after{content:"";aspect-ratio:1200/674;opacity:.13;background:url(/assets/redesign/foliage-corner-watercolor.webp) 50%/contain no-repeat;width:min(58vmin,520px);position:absolute}.invitation-wash:before{top:-2vmin;right:-2vmin}.invitation-wash:after{bottom:-2vmin;left:-2vmin;transform:rotate(180deg)}.stage{place-items:center;width:min(560px,90vw);display:grid;position:relative}.card{z-index:1;background:radial-gradient(120% 90% at 50% 0%, #fffcf0a6 0%, transparent 60%), var(--cream);border:1px solid var(--gold-tint);text-align:center;border-radius:28px;flex-direction:column;width:min(520px,88vw);animation:.7s both card-in;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px #14120c73,0 4px 14px #14120c4d}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.card-body{padding:clamp(var(--space-6), 5.2vw, var(--space-8)) clamp(var(--space-6), 6vw, var(--space-8));position:relative}.card-corner{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:-1;height:auto;position:absolute}.card-corner-tr{width:clamp(180px,50%,250px);top:-6px;right:-6px}.card-corner-bl{opacity:.9;width:clamp(110px,30%,155px);bottom:-10px;left:-8px;transform:scaleX(-1)}.card-heart{width:20px;height:auto;color:var(--gold);margin:var(--space-2) auto 0;display:block}.card-sep{width:15px;height:auto;color:var(--gold);margin:var(--space-4) auto;display:block}.card-guest{font-family:var(--font-mtavruli);color:var(--fg1);margin:var(--space-5) 0 var(--space-3);font-size:clamp(30px,6.4vw,44px);font-weight:400;line-height:1.15}.card-line{font-family:var(--font-mtavruli);letter-spacing:.05em;color:var(--fg1);text-wrap:balance;max-width:420px;margin:0 auto;font-size:clamp(16px,3.4vw,21px);line-height:1.65}.card-dateline{justify-content:center;align-items:center;gap:var(--space-3);margin:0 0 var(--space-3);display:flex}.dateline-sprig{opacity:.9;width:58px;height:auto}.dateline-sprig.is-flipped{transform:scaleX(-1)}.dateline-text{font-family:var(--font-mtavruli);letter-spacing:.06em;color:var(--fg1);margin:0;font-size:clamp(18px,3.8vw,24px)}.dateline-day{font-family:var(--font-display);vertical-align:-.08em;margin-right:2px;font-size:1.7em;font-weight:600}.card-confirm{font-family:var(--font-mtavruli);color:var(--fg-on-accent);background:var(--primary);border-radius:var(--radius-pill);margin-top:var(--space-5);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:10px;padding:14px 36px;font-size:17px;transition:background .2s,box-shadow .2s,transform .2s;display:inline-flex}.card-confirm:hover{background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-confirm:active{background:var(--primary-press);transform:translateY(1px)}.card-confirm .confirm-heart{width:15px;height:auto;color:var(--gold-soft);flex:none}.card-pets{width:50%;height:auto;margin:12px auto 0}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card-note{font-family:var(--font-body);color:var(--fg2);text-wrap:pretty;max-width:36ch;margin:0 auto;font-size:16px;font-style:italic;line-height:1.75}.card-scene{aspect-ratio:3168/1344;z-index:0;width:100%;position:relative}.scene-bg{background:url(/assets/invitation-landscape.png) bottom/100% 100% no-repeat,linear-gradient(90deg,#f7f0e1 0%,#f9f4e9 30%,#f4eede 55%,#ede2cd 78%,#e5d6ba 100%);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 34%);mask-image:linear-gradient(#0000 0%,#000 34%)}.couple{z-index:2;pointer-events:none;justify-content:center;align-items:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.couple-fig{filter:drop-shadow(0 10px 16px #4c514229);opacity:0;width:auto;display:block}.couple-fig-groom{height:clamp(104px,30vw,172px);transform:translate(40px)}.couple-fig-bride{height:clamp(96px,27.5vw,158px);margin-right:-2%;transform:translate(-40px)}@keyframes couple-glide-from-right{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes couple-glide-from-left{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}.couple-fig-groom{animation:1.1s cubic-bezier(.22,.61,.36,1) .5s both couple-glide-from-right}.couple-fig-bride{animation:1.1s cubic-bezier(.22,.61,.36,1) .5s both couple-glide-from-left}.invite-rsvp{padding:clamp(var(--space-8), 12vw, var(--space-10)) var(--space-5) clamp(var(--space-9), 14vw, var(--space-10));background:var(--backdrop);justify-content:center;display:flex}.rsvp-inner{text-align:center;width:min(560px,92vw)}.rsvp-garland{width:min(340px,72%);height:auto;margin:0 auto var(--space-4);opacity:.95;display:block}.rsvp-eyebrow{font-family:var(--font-body);letter-spacing:.12em;color:var(--gold-soft);margin:0 0 var(--space-3);font-size:13px;font-weight:600}.rsvp-title{font-family:var(--font-display);color:var(--cream);margin:0 0 var(--space-3);text-wrap:balance;font-size:clamp(28px,6.6vw,40px);font-weight:500;line-height:1.2}.rsvp-sub{font-family:var(--font-body);color:#faf7f1b8;margin:0 0 var(--space-2);font-size:18px}.rsvp-fallback{font-family:var(--font-body);color:#faf7f1d9;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-4) auto 0;background:#faf7f114;border:1px solid #d6c39159;max-width:44ch;font-size:16px}.rsvp-card{margin-top:var(--space-7);background:var(--cream);border:1px solid var(--gold-tint);padding:clamp(var(--space-6), 6vw, var(--space-8));text-align:left;border-radius:28px;box-shadow:0 18px 48px #14120c66,0 3px 10px #14120c40}.field{margin-bottom:var(--space-5)}.field:last-child{margin-bottom:0}.field>label{font-family:var(--font-body);letter-spacing:.04em;color:var(--fg1);margin-bottom:var(--space-3);font-size:16px;font-weight:600;display:block}.field .opt{letter-spacing:0;opacity:.6;font-weight:400}.field textarea{resize:vertical;width:100%;min-height:96px;font-family:var(--font-body);color:var(--fg1);background:var(--white);border:1px solid var(--gold-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:16px}.field textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;border-color:var(--sage)}.seg{gap:var(--space-3);display:flex}.seg button{font-family:var(--font-body);color:var(--fg1);background:var(--white);border:1.5px solid var(--gold-soft);border-radius:var(--radius-pill);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:8px;padding:13px 12px;font-size:16px;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;display:inline-flex}.seg button .seg-heart{width:15px;height:auto;color:var(--gold);flex:none;transition:color .2s}.seg button:hover{border-color:var(--gold)}.seg button.on{background:var(--primary);color:var(--fg-on-accent);border-color:var(--primary);box-shadow:var(--shadow-sm);font-weight:600}.seg button.on .seg-heart{color:var(--gold-soft)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{font-family:var(--font-body);color:var(--fg2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);text-align:center;cursor:pointer;min-width:44px;padding:9px 16px;font-size:16px;transition:background .2s,color .2s,border-color .2s}.chip:hover{border-color:var(--sage)}.chip.on{background:var(--sage-tint);color:var(--sage-deep);border-color:var(--sage);font-weight:600}.rsvp-pending{margin:var(--space-3) 0 0;text-align:center;color:var(--fg2);font-size:15px}.rsvp-edit{font-family:var(--font-body);color:var(--sage-deep);border:1.5px solid var(--gold-soft);border-radius:var(--radius-pill);margin-top:var(--space-5);cursor:pointer;background:0 0;padding:12px 22px;font-size:16px;transition:background .2s,border-color .2s}.rsvp-edit:hover{background:var(--gold-tint);border-color:var(--gold)}.rsvp-thanks{text-align:center;margin-top:var(--space-7);background:var(--cream);border:1px solid var(--gold-tint);padding:clamp(var(--space-6), 6vw, var(--space-8));border-radius:28px;box-shadow:0 18px 48px #14120c66,0 3px 10px #14120c40}.rsvp-thanks .wreath{width:132px;height:auto;margin:0 auto var(--space-4);opacity:.92;display:block}.rsvp-thanks h3{font-family:var(--font-display);color:var(--fg1);margin:0 0 var(--space-3);font-size:clamp(24px,5.4vw,30px);font-weight:500}.rsvp-thanks p{font-family:var(--font-body);color:var(--fg2);max-width:40ch;margin:0 auto;font-size:18px;line-height:1.75}.invite-more{margin-top:clamp(var(--space-2), 5vw, var(--space-5));padding-top:clamp(var(--space-6), 8vw, var(--space-7));text-align:center;border-top:1px solid #d6c39147}.invite-more-leaf{opacity:.8;width:64px;height:auto;margin:0 auto var(--space-3);display:block}.invite-more-text{font-family:var(--font-body);color:#faf7f1b8;max-width:38ch;margin:0 auto var(--space-5);text-wrap:pretty;font-size:18px;line-height:1.75}.invite-more-btn{align-items:center;gap:var(--space-2);font-family:var(--font-body);color:var(--cream);border:1.5px solid var(--gold-soft);border-radius:var(--radius-pill);background:0 0;padding:14px 28px;font-size:18px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s,transform .1s;display:inline-flex}.invite-more-btn svg{width:18px;height:18px;transition:transform .2s}.invite-more-btn:hover{background:var(--gold-soft);color:var(--backdrop);box-shadow:var(--shadow-sm)}.invite-more-btn:hover svg{transform:translate(3px)}@media (prefers-reduced-motion:reduce){.card{animation:none}.couple-fig,.couple-fig-groom,.couple-fig-bride{opacity:1;animation:none;transform:none}}@media (max-width:540px){.invitation{padding:var(--space-6) var(--space-4)}.card-body{padding:clamp(28px,7vw,44px) clamp(22px,6vw,36px)}.dateline-sprig{width:44px}.card-corner-tr{width:clamp(150px,46%,200px)}.card-corner-bl{width:clamp(90px,26%,125px)}.seg{flex-direction:column}.invite-rsvp{padding:var(--space-7) var(--space-4) var(--space-8)}.rsvp-card{padding:var(--space-5)}.invite-more-btn{padding:12px 22px;font-size:14px}}.rsvp-error{color:#a3271f;font-family:var(--font-body);text-align:center;margin:8px 0 0;font-size:15px}
