 :root{--pink:#F4547D;--light:#f9cddd;--cream:#fff9f2;--green:#284c3c}*{box-sizing:border-box}body{margin:0;color:var(--green);font:1rem/1.6 Arial,sans-serif;background:repeating-linear-gradient(90deg,#f8c4d4 0 28px,#fff1f3 28px 56px);min-height:100svh}button,a{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:5px}header{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px}header a{font-size:.875rem;text-decoration:none;font-weight:600}#language{border:1px solid var(--green);border-radius:100px;background:var(--cream);color:var(--green);padding:7px 13px;min-height:42px}main{padding:25px 16px 45px}.intro{text-align:center;max-width:500px;margin:clamp(20px,8vh,80px) auto}.eyebrow{font-size:.875rem;letter-spacing:.15em;line-height:1.6;font-weight:600}.envelope{display:block;position:relative;width:min(86vw,390px);height:260px;margin:50px auto 35px;padding:0;border:0;background:none;filter:drop-shadow(0 15px 20px #ac526b45);transition:transform .25s}.envelope:hover{transform:translateY(-5px)}.back,.front,.flap,.letter{position:absolute;inset:0;border-radius:8px}.back{background:var(--cream);border:2px solid var(--pink)}.letter{background:var(--cream);inset:18px 18px 8px;overflow:hidden;transition:transform .6s}.letter img{width:100%;mix-blend-mode:multiply}.front{background:#f7bed0;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%)}.flap{background:#f4a7bc;clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top;transition:transform .6s}.seal{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;border:2px solid var(--pink);background:var(--cream);display:grid;place-items:center;transition:opacity .3s}.seal img{width:48px;height:65px;object-fit:contain}.opening .flap{transform:rotateX(180deg)}.opening .letter{transform:translateY(-65px)}.opening .seal{opacity:0}.intro h1{font:normal clamp(2.3rem,9vw,3.7rem)/1.1 Georgia,serif;color:var(--pink);margin:0 0 14px}.intro>p:last-child{font-size:1rem}.invitation{max-width:580px;margin:0 auto;animation:rise .6s ease both}.card{background:var(--cream);border:1px solid var(--pink);outline:6px solid var(--cream);box-shadow:0 15px 45px #b2607b30;padding:35px 24px 30px;text-align:center}.card>.eyebrow{margin:0}.logo{width:min(100%,340px);display:block;margin:0 auto -22px;mix-blend-mode:multiply}.turning{font:italic 1.35rem Georgia,serif;margin:0 0 24px}.card h2{font:normal clamp(2.2rem,8vw,3.5rem)/1.1 Georgia,serif;color:var(--pink);margin:0 0 22px}.card h2 em{font-weight:normal}.divider{display:flex;align-items:center;justify-content:center;gap:20px;margin:20px 0}.divider span{height:1px;width:32%;background:#efb3c4}.divider img{width:28px;height:42px;object-fit:contain}.date{font-weight:700;margin:0;font-size:1rem;letter-spacing:.04em}.time{font:normal 2.8rem Georgia,serif;color:var(--pink);margin:8px 0 15px}.address{font-size:1.1rem;font-weight:600;margin:0 0 25px}.features{font:normal 1.16rem/1.7 Georgia,serif;border-top:1px solid #efb3c4;border-bottom:1px solid #efb3c4;padding:20px 0;margin:0 0 22px}.welcome{font-size:1rem;margin:0 0 22px}.closing{font:italic 1.25rem/1.5 Georgia,serif;color:#d98da5;margin:0}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.action{display:flex;align-items:center;justify-content:center;min-height:52px;padding:12px 15px;border:1px solid var(--pink);border-radius:100px;background:var(--cream);color:var(--green);text-decoration:none;font-weight:600;font-size:.94rem}.primary{background:var(--green);border-color:var(--green);color:white}.share{grid-column:1/-1}.social{text-align:center;font-size:.875rem;line-height:2}.social span{padding:0 15px}#status{text-align:center;font-size:.94rem;min-height:24px}#confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none}.piece{position:absolute;top:-20px;width:8px;height:13px;border-radius:3px;animation:fall 4s linear forwards}@keyframes fall{to{transform:translate(var(--drift),110vh) rotate(600deg);opacity:0}}@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}[hidden]{display:none!important}@media(max-width:390px){.card{padding:26px 17px}.eyebrow{letter-spacing:.09em}.actions{grid-template-columns:1fr}.share{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}