@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--plum:#3d1760;--purple:#713da0;--paper:#f7f0e6;--ink:#29163a;--coral:#ff7d6d;--yellow:#f4c95d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--plum);color:#fff;font-family:"DM Sans",sans-serif}.skip{position:fixed;top:-5rem;left:1rem;z-index:9;background:#fff;color:var(--ink);padding:.7rem 1rem}.skip:focus{top:1rem}.hero{min-height:100svh;padding:2.5rem 1.2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;isolation:isolate}.hero:before{content:"";position:absolute;width:32rem;height:32rem;border-radius:50%;background:#9b6ac2;opacity:.16;top:-21rem;right:-17rem;z-index:-2}.grain{position:absolute;inset:0;opacity:.05;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;font-weight:700;margin:0 0 .75rem}.brand{font-weight:700;margin-bottom:clamp(2rem,5vh,3.5rem)}.brand span{color:var(--coral);font-size:.55em;margin-left:.2rem}h1,h2{font:400 clamp(4.5rem,21vw,9rem)/.88 "DM Serif Display",serif;letter-spacing:-.045em;margin:0}h1 em,h2 em{color:var(--yellow)}.muted{opacity:.72;margin:1.3rem 0 0}.star{position:absolute;color:var(--yellow);font-style:normal;animation:twinkle 3s infinite}.s1{left:10%;top:20%}.s2{right:10%;top:38%;font-size:1.5rem}.open{border:0;background:none;color:#fff;cursor:pointer;margin-top:2rem;padding:.5rem}.envelope{display:block;position:relative;width:210px;height:140px;margin:auto;perspective:800px;transition:.3s}.open:hover .envelope{transform:translateY(-5px)}.shadow{position:absolute;width:90%;height:25px;background:#160622;filter:blur(12px);left:5%;bottom:-12px}.back{position:absolute;inset:0;background:#eadbc8;border-radius:5px;box-shadow:0 15px 30px #19092788}.flap{position:absolute;z-index:4;inset:0;clip-path:polygon(0 0,100% 0,50% 72%);background:#f7ead8;transform-origin:top;transition:.65s}.front{position:absolute;z-index:5;inset:0;background:#efe0cc;clip-path:polygon(0 0,50% 62%,100% 0,100% 100%,0 100%)}.letter{position:absolute;z-index:3;background:#fffaf2;color:var(--plum);width:85%;height:108px;left:7.5%;bottom:7px;padding-top:24px;font:1.25rem "DM Serif Display";transition:.7s .2s}.letter small{display:block;font:700 .6rem "DM Sans";text-transform:uppercase;letter-spacing:.12em}.seal{position:absolute;z-index:6;left:50%;top:48%;transform:translate(-50%,-50%);width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:var(--coral);font:1.2rem "DM Serif Display";transition:.2s}.tap{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-top:1.5rem;font-size:.88rem;font-weight:700}.tap b{display:grid;place-items:center;width:29px;height:29px;border:1px solid #ffffff88;border-radius:50%;animation:bob 1.6s infinite}.opened .flap{transform:rotateX(180deg);z-index:2}.opened .letter{transform:translateY(-75px)}.opened .seal{opacity:0}.invite{background:var(--paper);color:var(--ink);padding:5rem 1.2rem 0;overflow:hidden}.story{max-width:68rem;margin:auto;display:grid;gap:4rem;align-items:center}.polaroid{position:relative;width:min(84%,320px);padding:12px 12px 1.2rem;background:#fff;box-shadow:0 18px 50px #431c5825;transform:rotate(-4deg);margin:auto}.scene{aspect-ratio:1;position:relative;overflow:hidden;background:#b99bd0}.sun{position:absolute;width:47px;height:47px;border-radius:50%;background:var(--yellow);right:12%;top:12%}.hill{position:absolute;width:130%;height:50%;border-radius:50%;background:#654085;bottom:-23%;left:-15%}.person{position:absolute;bottom:7%;width:72px;height:120px;border-radius:40px 40px 8px 8px;background:var(--coral);z-index:2}.person:before{content:"";position:absolute;width:50px;height:50px;border-radius:50%;top:-35px;left:11px;background:#c77851;box-shadow:inset 0 12px #37203e}.a{left:26%}.b{right:7%;height:108px;background:var(--yellow);transform:rotate(7deg)}.b:before{background:#e0a17a;box-shadow:inset 0 12px #75462e}.plant{position:absolute;left:6%;bottom:4%;font-size:6rem;color:#426d4d;font-style:normal}.polaroid figcaption{text-align:center;margin-top:1rem;font:1rem "DM Serif Display"}.tape{position:absolute;width:75px;height:25px;background:#f4c95dba;top:-12px;left:42%;transform:rotate(8deg)}.copy{text-align:center;max-width:32rem;margin:auto}.purple{color:var(--purple)}.copy h2,.closing h2{font-size:clamp(3.2rem,14vw,6rem);color:var(--plum);margin-bottom:1.8rem}.copy h2 em,.closing h2 em{color:var(--purple)}.copy>p:not(.eyebrow),.closing>p:not(.eyebrow){font-size:1.06rem;line-height:1.75;color:#4d3b59}.event{max-width:47rem;margin:5rem auto;padding:2rem 1.35rem 1.4rem;background:var(--plum);color:#fff;text-align:center;border-radius:26px;box-shadow:0 24px 60px #32104c35}.date{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.7rem;max-width:24rem;margin:auto}.date strong{font:400 clamp(5rem,24vw,8rem)/.72 "DM Serif Display";color:var(--yellow)}.date span{text-transform:uppercase;font-size:.7rem;font-weight:700;letter-spacing:.13em}.date span:first-child{text-align:right}.date span:last-child{text-align:left}.details{max-width:27rem;margin:2.2rem auto 1.3rem;text-align:left}.details div{display:grid;grid-template-columns:40px 1fr;gap:.8rem;align-items:center;border-top:1px solid #ffffff25;padding:1rem 0 .45rem}.details i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#ffffff12;color:var(--yellow);font-style:normal}.details p{margin:0}.details b,.details small{display:block}.details small{opacity:.65;margin-top:.2rem}.event>a{display:flex;justify-content:space-between;background:var(--yellow);color:var(--ink);padding:1rem 1.2rem;border-radius:99px;text-decoration:none;font-weight:700}.closing{max-width:43rem;text-align:center;margin:auto;padding:2rem 0 6rem}.closing h2{font-size:clamp(2.8rem,12vw,5.2rem)}.face{width:94px;height:94px;border:3px solid var(--plum);border-radius:48%;margin:0 auto 2rem;font:4rem/1.05 serif;position:relative;transform:rotate(-5deg)}.face i{position:absolute;color:var(--coral);right:-14px;top:-14px;font:1.5rem sans-serif}.signature{font:1.25rem "DM Serif Display";color:var(--purple);margin-top:2rem}@media(min-width:760px){.story{grid-template-columns:.9fr 1.1fr;gap:5rem}.copy{text-align:left}.event{padding:3rem 4rem 2rem}}@keyframes bob{50%{transform:translateY(5px)}}@keyframes twinkle{50%{opacity:.3;transform:rotate(25deg)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
