:root{--bg:#fbf8f0;--card:#fffefa;--text:#3c4636;--muted:#868a72;--heading:#3f5240;--accent:#b39058;--accent-soft:#b390581f;--sage:#7f9479;--border:#e6e2d0;--card-outline:#b3905859;--error:#a3412f;--glow-1:#e9d68c33;--glow-2:#96af7829;--leaf:#93a63a;--leaf-hover:#7e9030;--leaf-soft:#aec8361a;--leaf-border:#d3daa6;--button:var(--leaf);--button-hover:var(--leaf-hover);--button-text:#fff;--paper:#f8f1e4;--paper-light:#fbf6ec;--edge:#6e5a3c2e;--sheen:#ffffff73;--flap-sheen:#ffffff59;--env-ink:#3f5240;--env-ink-muted:#7b7f68;--env-hint:#868a72;--liner:linear-gradient(to bottom, #e4cca7, #f5e9cd);--serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--sans:"Jost", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:17px/1.6 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(circle at 20% 0%, var(--glow-1), transparent 50%), radial-gradient(circle at 80% 100%, var(--glow-2), transparent 50%), var(--bg);min-height:100vh;margin:0}.page{flex-direction:column;align-items:center;min-height:100vh;padding:48px 16px;display:flex;overflow-x:clip}.card{background:var(--card);border:1px solid var(--border);outline:1px solid var(--card-outline);outline-offset:-12px;width:100%;max-width:640px;padding:64px 48px;position:relative;box-shadow:0 20px 50px -30px #3d3a3559}.card-seal{filter:drop-shadow(0 3px 5px #503c1e38);width:84px;position:absolute;bottom:40px;left:50%;transform:translate(-50%)rotate(-4deg)}.sealed .card{padding-bottom:156px}.std{text-align:center}.eyebrow{letter-spacing:.35em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.8rem}.names{font-family:var(--serif);color:var(--heading);flex-direction:column;align-items:center;margin:16px 0;font-size:clamp(2.6rem,9vw,4rem);font-style:italic;font-weight:400;line-height:1.05;display:flex}.amp{color:var(--accent);margin:4px 0;font-size:.6em;font-style:italic}.divider{color:var(--accent);justify-content:center;align-items:center;gap:12px;margin:24px 0;font-size:.6rem;display:flex}.divider span{background:var(--accent);opacity:.6;width:64px;height:1px}.date{font-family:var(--serif);color:var(--accent);margin:0;font-size:1.8rem}.place{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:4px 0 0;font-size:.85rem}.countdown{font-family:var(--serif);color:var(--sage);margin:16px 0 0;font-style:italic}.hint{text-align:center;color:var(--muted);margin:32px 0 0;font-size:.9rem}.loading{flex:1;place-items:center;display:grid}.loading p{font-family:var(--serif);color:var(--heading);margin:0;font-size:1.6rem;font-style:italic;animation:.6s .2s both loading-in}@keyframes loading-in{0%{opacity:0}}.envelope-scene{flex-direction:column;align-items:center;gap:40px;width:100%;max-width:600px;margin:auto 0;transition:opacity .4s 1.2s,transform .4s 1.2s;display:flex}.env-heading{text-align:center;transition:opacity .3s}.env-heading h1{font-family:var(--serif);color:var(--heading);margin:12px 0 0;font-size:clamp(2.4rem,8vw,3.8rem);font-style:italic;font-weight:400;line-height:1.1}.env-heading .amp{color:var(--accent);font-size:.7em;font-style:italic}.envelope{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.25 0 0 0 0.16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--fibers:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.025' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.42 0 0 0 0 0.3 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--relief:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='p' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.045' numOctaves='5' stitchTiles='stitch'/%3E%3CfeDiffuseLighting lighting-color='%23fff' surfaceScale='2.2'%3E%3CfeDistantLight azimuth='225' elevation='50'/%3E%3C/feDiffuseLighting%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='0.18' intercept='0.84'/%3E%3CfeFuncG type='linear' slope='0.18' intercept='0.84'/%3E%3CfeFuncB type='linear' slope='0.18' intercept='0.84'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");--light:linear-gradient(135deg, var(--sheen), #fff0 45%, #5a462812);aspect-ratio:3/2;cursor:pointer;perspective:1600px;perspective-origin:50% 0;filter:drop-shadow(0 1px 1px #3d321e33)drop-shadow(0 6px 10px #3d321e14)drop-shadow(0 24px 40px #3d321e1f);width:100%;animation:3.6s ease-in-out infinite pulse;position:relative;container-type:inline-size}.envelope:hover,.envelope:focus-visible{animation-play-state:paused}.envelope:focus-visible{outline:2px solid var(--accent);outline-offset:8px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.008)}}.env-body,.env-flap,.env-letter,.env-text{position:absolute}.env-letter{z-index:1;background:var(--card);border:1px solid var(--border);outline:1px solid var(--border);outline-offset:-8px;transition:transform .7s cubic-bezier(.3,.7,.3,1) .55s;inset:6% 6% 4%}.env-body{z-index:2;background:var(--light), var(--grain), var(--fibers), var(--relief), var(--paper);background-blend-mode:normal, normal, normal, multiply, normal;box-shadow:inset 0 0 0 1px var(--edge), inset 0 -2px 3px #5a46280d;border-radius:8px;inset:0}.env-text{text-align:center;pointer-events:none;transition:opacity .2s;top:16%;left:0;right:0}.env-date{font-family:var(--serif);color:var(--env-ink);margin:0;font-size:max(5.4cqi,22px);line-height:1.1}.env-place{letter-spacing:.25em;text-transform:uppercase;color:var(--env-ink-muted);margin:1.2cqi 0 0;font-size:max(2.3cqi,10px)}.env-flap{z-index:4;filter:drop-shadow(0 1px 1px #503c1e38)drop-shadow(0 3px 5px #503c1e1a);transform-origin:top;height:56%;transition:transform .4s ease-out,filter .4s ease-out;inset:0 0 auto}.envelope-scene:not(.opening) .envelope:hover .env-flap{filter:drop-shadow(0 2px 2px #503c1e33)drop-shadow(0 5px 8px #503c1e1f);transform:rotateX(10deg)}.env-flap-paper{background:linear-gradient(to bottom, var(--flap-sheen), #fff0 60%), var(--grain), var(--fibers), var(--relief), var(--paper-light);background-blend-mode:normal, normal, normal, multiply, normal;clip-path:polygon(0 0,100% 0,50% 100%);border-radius:8px 8px 0 0;position:absolute;inset:0}.env-flap-liner{clip-path:polygon(5.8% 0,94.2% 0,50% 88.3%);opacity:0;position:absolute;inset:0}.env-flap-liner:before{content:"";background:var(--liner);position:absolute;inset:0;transform:scaleY(-1)}.env-seal{filter:drop-shadow(0 1.5px 1.5px #46320f4d)drop-shadow(0 4px 8px #46320f24);width:16cqi;transition:opacity .25s;position:absolute;top:100%;left:50%;transform:translate(-50%,-62%)rotate(-4deg)}.env-seal img{width:100%;height:auto;display:block}.env-hint{z-index:6;text-align:center;font-family:var(--serif);color:var(--env-hint);opacity:0;pointer-events:none;margin:0;font-size:max(3.2cqi,15px);font-style:italic;transition:opacity .8s;position:absolute;top:76%;left:0;right:0}.env-hint.visible{opacity:1}.envelope-scene.opening{opacity:0;transform:translateY(-24px)}.opening .envelope{cursor:default;animation:none}.opening .env-heading,.opening .env-text,.opening .env-seal{opacity:0}.opening .env-flap-liner{opacity:1;transition:opacity 0s linear .14s}.opening .env-flap{z-index:0;transition:transform .6s cubic-bezier(.3,.55,.35,1),z-index 0s linear .3s;transform:rotateX(180deg)}.opening .env-letter{transform:translateY(-45%)}.card.reveal,.wreath-framed.reveal{animation:.7s both reveal}@keyframes reveal{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.envelope{animation:none}.envelope-scene,.env-heading,.env-flap,.env-letter,.env-seal,.env-hint{transition:none}.card.reveal,.wreath-framed.reveal{animation:none}}.wreath-framed{width:100%;max-width:640px;margin-top:150px;position:relative;container-type:inline-size}.wreath-framed .card.reveal{animation:none}.wreath-sprigs{pointer-events:none;height:75cqi;position:absolute;top:-25cqi;left:-15cqi;right:-15cqi;-webkit-mask-image:linear-gradient(#000 70%,#0000 100%);mask-image:linear-gradient(#000 70%,#0000 100%)}.wreath-sprigs .sprig{transform-origin:bottom;height:auto;position:absolute}.sprig.left-3{width:9cqi;top:46.8cqi;left:11.5cqi;transform:rotate(-100deg)}.sprig.left-2{width:10cqi;top:33.2cqi;left:11.5cqi;transform:rotate(-82deg)scaleX(-1)}.sprig.left-1{width:13cqi;top:22.2cqi;left:11.5cqi;transform:rotate(-58deg)}.sprig.top-1{width:19cqi;top:12.2cqi;left:25.5cqi;transform:rotate(-20deg)}.sprig.top-2{width:17cqi;top:3.7cqi;left:47.5cqi;transform:rotate(-90deg)}.sprig.top-3{width:25cqi;top:7.1cqi;left:52.5cqi;transform:rotate(0)}.sprig.top-4{width:17cqi;top:11.6cqi;left:71.5cqi;transform:rotate(11deg)scaleX(-1)}.sprig.top-5{width:19cqi;top:12.2cqi;left:87.5cqi;transform:rotate(30deg)scaleX(-1)}.sprig.right-1{width:12cqi;top:21.1cqi;left:106cqi;transform:rotate(60deg)}.sprig.right-2{width:10cqi;top:36cqi;left:108.5cqi;transform:rotate(84deg)scaleX(-1)}.sprig.right-3{width:8cqi;top:46.8cqi;left:110cqi;transform:rotate(102deg)scaleX(-1)}.sprig.top-2{-webkit-mask-image:linear-gradient(#000 65%,#0000);mask-image:linear-gradient(#000 65%,#0000)}.guest-name{font-family:var(--serif);color:var(--heading);text-wrap:balance;margin:2px 0 0;font-size:clamp(2.4rem,8vw,3.6rem);font-weight:400;line-height:1.1}.letter>.eyebrow{margin-top:10px}.body-text{max-width:30em;font-family:var(--serif);text-wrap:pretty;margin:0 auto 20px;font-size:1.25rem;line-height:1.55}.date-block{margin:32px 0}.signature{font-family:var(--serif);color:var(--muted);margin:32px 0 0;font-style:italic}.signature span{color:var(--heading);margin-top:4px;font-size:1.6rem;display:block}.rsvp{--accent:var(--leaf);--accent-soft:var(--leaf-soft);--border:var(--leaf-border);border-top:1px solid var(--border);margin-top:48px;padding-top:40px}.rsvp h2{font-family:var(--serif);color:var(--heading);text-align:center;margin:0 0 8px;font-size:2rem;font-weight:400}.rsvp h3{font-family:var(--serif);color:var(--heading);margin:32px 0 0;font-size:1.3rem;font-weight:500}.rsvp.done{text-align:center}.note{color:var(--muted);margin:4px 0 16px;font-size:.9rem}.rsvp>.note:first-of-type{text-align:center}.choices{border:0;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0;padding:0;display:grid}.choice{text-align:center;border:1px solid var(--border);cursor:pointer;justify-content:center;align-items:center;padding:12px 8px;font-size:.95rem;transition:border-color .15s,background .15s;display:flex}.choice:hover{border-color:var(--accent)}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice input{opacity:0;pointer-events:none;position:absolute}.choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.checklist{border:0;margin:8px 0 0;padding:0}.checklist legend{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;padding:0;font-size:.8rem}.check{border:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.check+.check{margin-top:6px}.check:hover{border-color:var(--accent)}.check:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.check input{opacity:0;pointer-events:none;position:absolute}.check:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.check .box{border:1px solid var(--accent);background:#fff;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.check input:checked+.box:after{content:"";border:solid var(--accent);border-width:0 2px 2px 0;width:5px;height:10px;margin-top:-2px;transform:rotate(45deg)}.field{flex-direction:column;gap:4px;margin-top:16px;display:flex}.field span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.field input,.field select,.field textarea{font:inherit;color:var(--text);border:1px solid var(--border);background:#fff;border-radius:0;padding:10px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field textarea{resize:vertical;min-height:80px;line-height:1.5}.row{gap:12px;display:flex}.postal{flex-shrink:0;width:7.65rem}.grow{flex:1;min-width:0}.button{width:100%;font:inherit;letter-spacing:.2em;text-transform:uppercase;color:var(--button-text);background:var(--button);cursor:pointer;border:0;margin-top:32px;padding:14px;font-size:.85rem;transition:background .15s;display:block}@media (hover:hover){.button:hover:not(:disabled){background:var(--button-hover)}}.button:disabled{opacity:.5;cursor:not-allowed}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;margin-top:8px;text-decoration:underline}.error{color:var(--error);margin-top:16px;font-size:.9rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=560px){.page{padding-top:16px}.card{padding:48px 24px}.choices{grid-template-columns:1fr}.wreath-framed{margin-top:16px}.wreath-framed.sealed{margin-top:48px}.card-seal{filter:drop-shadow(0 4px 6px #503c1e40);width:96px;top:0;bottom:auto;transform:translate(-50%,-50%)rotate(-4deg)}.sealed .card{padding-top:96px;padding-bottom:48px}.wreath-sprigs{display:none}}@media (width<=560px),(hover:none) and (pointer:coarse) and (orientation:portrait){.envelope-scene{--seal:30vw;max-width:none;margin:0;display:block;position:fixed;inset:0}.env-heading{z-index:10;top:0;bottom:calc(30% + var(--seal) * .63);pointer-events:none;flex-direction:column;justify-content:center;display:flex;position:absolute;left:24px;right:24px}.env-heading .eyebrow{font-size:.95rem}.env-heading h1{flex-direction:column;align-items:center;margin-top:16px;font-size:min(17vw,4rem);line-height:1;display:flex}.env-heading .amp{margin:8px 0 -2px;font-size:.6em}.envelope{aspect-ratio:auto;filter:none;height:100%;animation:none}.env-body,.env-flap-paper{border-radius:0}.env-flap{height:64%}.env-flap-paper{clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%)}.env-flap-liner{clip-path:polygon(5% 0,95% 0,95% 70%,50% 94%,5% 70%)}.env-text{display:none}.env-seal{width:var(--seal)}.env-hint{font-size:1.6rem;line-height:1.25;top:80%}.env-hint-end{display:block}.envelope-scene{transition:opacity .2s .9s;overflow:hidden}.envelope-scene.opening{transform:none}.env-letter,.env-flap-liner{display:none}.env-heading,.env-flap{transition:transform .75s cubic-bezier(.55,0,.25,1)}.env-body{transition:opacity .7s .1s}.opening .env-heading{opacity:1;transform:translateY(calc(-64vh - var(--seal)))}.opening .env-seal{opacity:1}.opening .env-flap{z-index:4;transform:translateY(calc(-100% - var(--seal)));transition:transform .75s cubic-bezier(.55,0,.25,1)}.opening .env-body{opacity:0}}@media (width>=561px) and (hover:none) and (pointer:coarse) and (orientation:portrait){.envelope-scene{--seal:22vw}.env-heading .eyebrow{font-size:2.2vw}.env-heading h1{margin-top:2.5vw;font-size:11vw}.env-hint{font-size:4vw}:root{font-size:3vw}.page{padding-inline:9vw}.wreath-framed{max-width:none;margin-top:16vw}.wreath-framed .card{max-width:none;padding:7vw 6vw}.card-seal{width:11vw;bottom:5vw}.sealed .card{padding-bottom:20vw}}
