:root{--bg: #f4d6cf;--bg-deep: #ecc3b9;--rose: #a9645c;--rose-soft: #c48f86;--taupe: #9a776f;--script: "Sacramento", "Segoe Script", cursive;--sans: "Josefin Sans", "Helvetica Neue", Arial, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--bg);color:var(--taupe);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}.page{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1.05fr) minmax(0,1fr);grid-template-rows:1fr auto;grid-template-areas:"left content right" "contact contact contact";align-items:center;padding:clamp(24px,4vh,48px) 0 clamp(24px,4vh,40px)}.photo{position:relative;margin:0;aspect-ratio:.88}.photo img{display:block;width:100%;height:100%;object-fit:cover}.photo:before{content:"";position:absolute;inset:0;background:var(--bg-deep);z-index:-1}.photo--left{grid-area:left;align-self:start;margin-top:clamp(0px,3vh,32px);width:100%;isolation:isolate}.photo--left img{clip-path:url(#blob-left);object-position:30% 30%}.photo--left:before{clip-path:url(#blob-left);transform:translate(4%,6%) scale(1.06) rotate(-3deg)}.photo--right{grid-area:right;align-self:end;justify-self:end;width:92%;margin-bottom:clamp(0px,4vh,48px);isolation:isolate}.photo--right img{clip-path:url(#blob-right);object-position:40% 30%}.photo--right:before{clip-path:url(#blob-right);transform:translate(-3%,-7%) scale(1.06) rotate(4deg)}.content{grid-area:content;display:flex;flex-direction:column;align-items:center;text-align:center;align-self:stretch;padding:0 clamp(8px,2vw,32px);position:relative;z-index:1}.logo{margin:0 0 auto;width:min(100%,420px)}.logo img{display:block;width:100%;height:auto}.headline{margin:0;font-family:var(--script);font-weight:400;color:var(--rose);font-size:clamp(64px,8.4vw,132px);line-height:.92;-webkit-text-stroke:.012em var(--rose);display:flex;flex-direction:column}.headline span:first-child{transform:translate(-.3em)}.headline span:last-child{transform:translate(.15em)}.headline{margin-top:clamp(24px,5vh,64px)}.heart{width:clamp(28px,2.6vw,38px);margin:clamp(16px,3vh,32px) 0 auto;fill:var(--rose-soft);animation:beat 2.4s ease-in-out infinite}@keyframes beat{0%,60%,to{transform:scale(1)}70%{transform:scale(1.14)}80%{transform:scale(.98)}90%{transform:scale(1.08)}}.contact{grid-area:contact;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px;padding:0 16px;font-size:clamp(14px,1.2vw,17px);letter-spacing:.02em;position:relative;z-index:1}.contact a{color:var(--taupe);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .3s ease,color .3s ease}.contact a:hover,.contact a:focus-visible{color:var(--rose);background-size:100% 1px}.contact a:focus-visible{outline:2px solid var(--rose-soft);outline-offset:4px;border-radius:2px}.sep{color:var(--rose-soft)}.branch{position:absolute;color:var(--rose-soft);pointer-events:none;z-index:2}.branch--top{top:-1%;right:-2%;width:clamp(160px,20vw,300px);transform:scaleY(-1) rotate(-6deg)}.branch--bottom{bottom:-2%;left:-1%;width:clamp(130px,15vw,230px);transform:rotate(-16deg)}.logo,.headline,.heart,.photo,.contact{animation-name:rise;animation-duration:1s;animation-timing-function:cubic-bezier(.2,.7,.2,1);animation-fill-mode:both}.logo{animation-delay:.1s}.photo--left{animation-delay:.25s}.headline{animation-delay:.4s}.photo--right{animation-delay:.55s}.contact{animation-delay:.8s}.heart{animation:rise 1s .7s cubic-bezier(.2,.7,.2,1) both,beat 2.4s 1.8s ease-in-out infinite}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:860px){.page{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"content" "left" "right" "contact";align-items:start;row-gap:32px;padding:40px 16px 32px}.content{align-self:auto}.logo{width:min(80%,340px);margin-bottom:8px}.heart{margin-bottom:0}.photo--left{justify-self:start;width:min(82%,420px);margin:0 0 0 -16px}.photo--right{justify-self:end;width:min(78%,400px);margin:-14% -16px 0 0}.contact{flex-direction:column;gap:10px}.sep{display:none}.branch--top{width:110px;top:-1%;right:-6%}.branch--bottom{width:96px;bottom:-1%;left:-4%}}
