.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:url(/assets/invitation-landscape.png) bottom/100% no-repeat,linear-gradient(90deg,#f4d6d2 0%,#f3e1d4 25%,#f4ead8 50%,#e3e9dc 75%,#d9e5e5 100%);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0% 88%,#0000 100%);mask-image:linear-gradient(#000 0% 88%,#0000 100%)}.to-site{top:var(--space-4);right:var(--space-5);z-index:20;align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-soft);font-family:var(--font-body);color:var(--fg2);background:#f6f4e8b8;padding:8px 14px;font-size:13px;transition:color .2s,background .2s;display:inline-flex;position:fixed}.to-site:hover{color:var(--primary);background:#f6f4e8eb}.to-site svg{width:15px;height:15px}.stage{place-items:center;width:min(560px,90vw);display:grid;position:relative}.card{z-index:1;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:min(520px,88vw);box-shadow:var(--shadow-lg);padding:clamp(var(--space-6), 5.2vw, var(--space-8)) clamp(var(--space-6), 6vw, var(--space-8));text-align:center;opacity:0;will-change:opacity;transition:opacity .9s 1.1s;position:relative}.invitation.is-open .card{opacity:1}.card-sprig{opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:47% 6%;width:clamp(88px,18vw,132px);position:absolute}.card-sprig-tl{top:-14px;left:-38px;transform:rotate(38deg)}.card-sprig-tr{top:-14px;right:-38px;transform:scaleX(-1)rotate(38deg)}.card-eyebrow{font-family:var(--font-body);letter-spacing:.12em;color:var(--primary);margin:0 0 var(--space-4);font-size:13px;font-weight:600}.card-names{font-family:var(--font-calligraphy);color:var(--fg1);margin:0;font-size:clamp(38px,8.6vw,60px);font-weight:500;line-height:1.04}.card-amp{font-family:var(--font-script);color:var(--primary);margin:.5em 0 2rem;font-size:.5em;font-weight:400;line-height:.7;display:block}.card-divider{width:min(260px,68%);height:auto;margin:var(--space-4) auto var(--space-5);opacity:.9;display:block}.card-invite{font-family:var(--font-body);color:var(--fg2);margin:0 auto var(--space-6);text-wrap:pretty;max-width:40ch;font-size:21px;line-height:1.95}.card-invite .invite-name{color:var(--fg1);font-weight:500}.card-meta{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;align-items:center;display:flex}.meta-row{align-items:center;gap:var(--space-2);font-family:var(--font-body);color:var(--fg1);font-size:18px;display:inline-flex}.meta-row svg{width:18px;height:18px;color:var(--primary);flex:none}.meta-row .dot{color:var(--secondary);margin:0 var(--space-1)}.meta-date{font-family:var(--font-script);color:var(--fg1);letter-spacing:.04em;white-space:nowrap;margin-bottom:var(--space-1);font-size:32px;line-height:1.15}.meta-venue{font-weight:500}.meta-place{color:var(--fg2);font-size:16px}.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}.envelope{z-index:5;aspect-ratio:1.52;perspective:900px;perspective-origin:50% 0;width:min(560px,90vw);transform-style:preserve-3d;filter:drop-shadow(0 22px 36px #3a4a3829);cursor:pointer;will-change:opacity;transition:opacity .8s .9s,filter .8s .9s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.invitation.is-open .envelope{opacity:0;filter:drop-shadow(0 6px 14px #3a4a380d);pointer-events:none}.envelope-body,.env-flap-left,.env-flap-right,.env-flap-bottom,.envelope-top{position:absolute;inset:0}.envelope-body{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:inset 0 0 60px #6e9a630d}.env-flap-left,.env-flap-right,.env-flap-bottom{border-radius:var(--radius-md)}.env-flap-left{background:linear-gradient(110deg, var(--pale-green), #dfe9da);clip-path:polygon(0 0,0 100%,50% 50%)}.env-flap-right{background:linear-gradient(250deg, var(--pale-green), #dfe9da);clip-path:polygon(100% 0,100% 100%,50% 50%)}.env-flap-bottom{clip-path:polygon(0 100%,100% 100%,50% 50%);background:linear-gradient(#eef2e8,#e9efe1);box-shadow:0 -1px #3a4a380d}.env-flap-bottom:after{content:"";clip-path:polygon(0 100%,100% 100%,50% 50%);background:linear-gradient(to top right,#0000 calc(50% - .5px),#6e9a632e 50%,#0000 calc(50% + .5px)),linear-gradient(to top left,#0000 calc(50% - .5px),#6e9a632e 50%,#0000 calc(50% + .5px));position:absolute;inset:0}.envelope-top{clip-path:polygon(0 0,100% 0,50% 50%);border-radius:var(--radius-md);transform-origin:50% 0;filter:drop-shadow(0 2px 4px #3a4a3814);z-index:3;backface-visibility:visible;background:linear-gradient(185deg,#eff2e9,#e6ecdd);transition:transform .98s cubic-bezier(.55,.06,.42,1) .2s;transform:rotateX(0)}.invitation.is-open .envelope-top{z-index:1;transform:rotateX(-165deg)}.seal{aspect-ratio:1;z-index:6;background:radial-gradient(circle at 36% 30%,#9cc290,#84b179 46%,#6e9a63 82%,#5a7f50 100%);border-radius:50%;place-items:center;width:clamp(74px,17%,104px);transition:opacity .28s ease-out 80ms,transform .36s cubic-bezier(.4,0,.2,1) 80ms;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 10px #3a4a3847,inset 0 2px 3px #ffffff59,inset 0 -4px 8px #3a4a384d}.invitation.is-open .seal{opacity:0;transform:translate(-50%,-50%)scale(.7)}.seal:before{content:"";border:1.5px solid #f6f4e88c;border-radius:50%;position:absolute;inset:7%}.seal-mono{font-family:var(--font-display);color:#f6f4e8f5;letter-spacing:.01em;filter:drop-shadow(0 1px 1px #3a4a384d);white-space:nowrap;align-items:baseline;gap:2px;font-size:clamp(20px,5.4vw,28px);font-weight:500;line-height:1;display:inline-flex}.seal-mono-amp{font-family:var(--font-script);color:#f6f4e8db;margin:0 1px;font-size:1.15em;font-weight:400;transform:translateY(2px)}.invitation .couple{z-index:4;pointer-events:none;justify-content:space-between;align-items:flex-end;height:0;padding:0 clamp(0px,2vw,40px);display:flex;position:absolute;bottom:0;left:0;right:0}.couple-fig{filter:drop-shadow(0 14px 20px #3a4a3824);opacity:0;width:auto;display:block}.couple-fig-groom{height:clamp(210px,34vh,400px);transform:translate(60px)}.couple-fig-bride{height:clamp(198px,32.1vh,378px);transform:translate(-60px)}@keyframes couple-glide-from-right{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes couple-glide-from-left{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:translate(0)}}.invitation.is-open .couple-fig-groom{animation:1.1s cubic-bezier(.22,.61,.36,1) 2.35s both couple-glide-from-right}.invitation.is-open .couple-fig-bride{animation:1.1s cubic-bezier(.22,.61,.36,1) 2.35s both couple-glide-from-left}.scroll-cue{bottom:var(--space-7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-soft);border-radius:var(--radius-pill);font-family:var(--font-body);letter-spacing:.03em;color:var(--fg2);box-shadow:var(--shadow-sm);z-index:6;opacity:0;background:#f6f4e8c7;align-items:center;gap:10px;padding:11px 20px;font-size:13px;transition:opacity .8s 2.7s,background .2s,color .2s,box-shadow .2s;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.invitation.is-open .scroll-cue{opacity:1}.scroll-cue:hover{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-md)}.scroll-cue svg{width:16px;height:16px;color:var(--secondary);animation:2.6s ease-in-out infinite cue-bob}@keyframes cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.invite-rsvp{padding:clamp(var(--space-8), 12vw, var(--space-10)) var(--space-5) clamp(var(--space-9), 14vw, var(--space-10));justify-content:center;display:flex}.invite-rsvp.is-locked{display:none}.rsvp-inner{text-align:center;width:min(560px,92vw)}.rsvp-divider{width:min(240px,60%);height:auto;margin:0 auto var(--space-5);opacity:.9;display:block}.rsvp-eyebrow{font-family:var(--font-body);letter-spacing:.12em;color:var(--primary);margin:0 0 var(--space-3);font-size:13px;font-weight:600}.rsvp-title{font-family:var(--font-display);color:var(--fg1);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:var(--fg2);margin:0 0 var(--space-2);font-size:18px}.rsvp-fallback{font-family:var(--font-body);color:var(--fg2);background:var(--surface-aqua);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-4) auto 0;max-width:44ch;font-size:16px}.rsvp-card{margin-top:var(--space-7);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:clamp(var(--space-6), 6vw, var(--space-8));text-align:left}.field{margin-bottom:var(--space-5)}.field:last-of-type{margin-bottom:var(--space-6)}.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(--cream);border:1px solid var(--border);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-2);background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-md);padding:5px;display:flex}.seg button{font-family:var(--font-body);color:var(--fg2);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:1;padding:12px 10px;font-size:16px;transition:background .2s,color .2s,box-shadow .2s}.seg button.on{background:var(--surface);color:var(--sage-deep);box-shadow:var(--shadow-sm);font-weight:600}.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-submit{width:100%;font-family:var(--font-body);color:var(--fg-on-accent);background:var(--primary);border-radius:var(--radius-md);cursor:pointer;border:0;padding:16px;font-size:18px;font-weight:600;transition:background .2s,transform .1s,box-shadow .2s}.rsvp-submit:hover{background:var(--primary-hover)}.rsvp-submit:active{background:var(--primary-press);transform:translateY(1px)}.rsvp-edit{font-family:var(--font-body);color:var(--sage-deep);border:1px solid var(--sage);border-radius:var(--radius-md);margin-top:var(--space-5);cursor:pointer;background:0 0;padding:12px 22px;font-size:16px;transition:background .2s}.rsvp-edit:hover{background:var(--sage-tint)}.rsvp-thanks{text-align:center;padding:var(--space-4) 0}.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-7), 10vw, var(--space-9));padding-top:clamp(var(--space-6), 8vw, var(--space-7));border-top:1px solid var(--border-soft);text-align:center}.invite-more-leaf{opacity:.55;width:52px;height:auto;margin:0 auto var(--space-3);display:block;transform:rotate(184deg)}.invite-more-text{font-family:var(--font-body);color:var(--fg2);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(--sage-deep);background:var(--surface);border:1px solid var(--sage);border-radius:var(--radius-pill);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(--sage);color:var(--fg-on-accent);box-shadow:var(--shadow-sm)}.invite-more-btn:hover svg{transform:translate(3px)}@media (prefers-reduced-motion:reduce){.card{opacity:1;transition:none}.envelope{display:none}.scroll-cue{opacity:1;transition:none}.scroll-cue svg{animation:none}.couple-fig{opacity:1;transition:none;animation:none;transform:none}}@media (max-width:540px){.invitation{padding:var(--space-6) var(--space-4) clamp(170px, 25vh, 240px)}.to-site{top:var(--space-3);right:var(--space-3);border-radius:50%;gap:0;padding:8px}.to-site span{display:none}.to-site svg{width:16px;height:16px}.meta-date{font-size:26px}.meta-row{flex-wrap:wrap;justify-content:center;font-size:14px}.card{padding:clamp(28px,7vw,44px) clamp(22px,6vw,36px)}.card-sprig{opacity:.6;width:clamp(48px,14vw,70px)}.card-sprig-tl{top:-2px;left:0;transform:rotate(16deg)}.card-sprig-tr{top:-2px;right:0;transform:scaleX(-1)rotate(16deg)}.invitation .couple{padding:0}.couple-fig-groom{height:clamp(140px,22vh,210px)}.couple-fig-bride{height:clamp(132px,20.8vh,198px)}.seg{flex-direction:column}.seal{width:clamp(64px,17%,90px)}.scroll-cue{bottom:var(--space-6);gap:8px;padding:9px 16px;font-size:11px}.scroll-cue svg{width:14px;height:14px}.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}
