/* One personal composition: large type, a real photograph, and direct contact. */
.contact-page{position:relative;isolation:isolate;background:linear-gradient(165deg,#fff 20%,#f0faff 65%,#dff4fd);overflow:hidden}
.contact-page::before{content:"";position:absolute;z-index:-1;width:660px;height:660px;right:-390px;top:20%;border:1px solid #add9eb;border-radius:50%;box-shadow:0 0 0 32px #c4e8f533,0 0 0 64px #c4e8f52b,0 0 0 96px #c4e8f520;pointer-events:none}
.contact-composition{width:min(1200px,calc(100% - 40px));margin:auto;padding:30px 0 32px;display:grid;gap:28px;position:relative}
.contact-copy{position:relative;z-index:2}.contact-copy>.section-tag{font-size:.65rem;letter-spacing:.12em}
.contact-copy h1{font-size:clamp(4.3rem,19vw,6rem);line-height:.88;letter-spacing:-.075em;margin-top:17px}.contact-copy h1 span{color:var(--pine);position:relative;display:inline-block}.contact-copy h1 span::after{content:"";position:absolute;left:4%;right:3%;bottom:-8px;height:4px;border-radius:50%;background:var(--coral);transform:rotate(-4deg);transform-origin:left;animation:hello-stroke .9s .15s both}
.contact-invitation{font-size:1rem;color:var(--muted);line-height:1.6;margin-top:26px}
.contact-email{margin-top:25px}.contact-label{display:block;font-size:.58rem;letter-spacing:.11em;font-weight:800;color:#56788c}
.contact-address{display:inline-block;margin-top:3px;font-size:clamp(1.38rem,6.3vw,1.9rem);letter-spacing:-.045em;font-weight:800;color:var(--ink);text-decoration:none;line-height:1.5;user-select:text}.contact-address:hover{color:var(--pine)}
.contact-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:10px;margin-top:13px;align-items:stretch}.contact-write{font-size:.76rem;padding:11px 14px;gap:10px;min-height:46px}.contact-copy-button{display:flex;align-items:center;justify-content:center;gap:8px;background:#ffffffb0;border:1px solid #acd2e6;border-radius:28px;padding:10px 12px;font-size:.72rem;font-weight:700;min-height:46px;white-space:nowrap}.contact-copy-button svg{flex:0 0 17px}.contact-copy-button:hover{background:#fff;border-color:var(--pine)}
.contact-copy-status{font-size:.75rem;color:var(--pine);line-height:1.5}.contact-copy-status:not(:empty){margin-top:10px}
.contact-portrait{position:relative;min-width:0;margin:0 5px 0 0;z-index:1}.contact-portrait::before{content:"";position:absolute;z-index:-1;inset:22px -12px 32px 20px;background:#c1e6f6;border-radius:72px 12px 58px 12px;transform:rotate(3deg)}
.contact-photo-frame{position:relative;border:7px solid #fff;border-radius:60px 12px 12px 12px;overflow:hidden;box-shadow:0 16px 35px #22587c13;transform:rotate(-1.5deg);background:#e0f1f9}.contact-photo-frame img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;display:block}
.contact-portrait figcaption{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 3px 0;font-size:.64rem;line-height:1.5;color:#456a80}.contact-portrait figcaption>span:first-child{font-weight:800;letter-spacing:.08em;white-space:nowrap}.contact-portrait figcaption>span:last-child{text-align:right}
.contact-social{border-top:1px solid #b8d8e8;padding-top:20px;display:flex;flex-direction:column;gap:8px}.contact-social-intro{font-size:.8rem;color:#526f80}.contact-facebook{display:flex;align-items:center;gap:10px;font-size:.93rem;font-weight:800;text-decoration:none;min-height:46px}.contact-facebook svg{color:var(--pine);flex:0 0 21px}.contact-facebook b{font-size:1.3rem;font-weight:500;margin-left:auto;color:var(--pine)}.contact-facebook:hover{color:var(--pine)}
.contact-footer{width:min(1200px,calc(100% - 40px));margin:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:21px 0}.contact-footer>span{font-size:.9rem;font-weight:800;letter-spacing:-.035em}.contact-footer>span>span{color:var(--coral)}.contact-footer nav{display:flex;gap:18px}.contact-footer a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:.73rem;text-decoration:none;color:var(--muted)}.contact-footer a:hover{color:var(--pine)}
@keyframes hello-stroke{from{transform:rotate(-4deg) scaleX(0)}to{transform:rotate(-4deg) scaleX(1)}}
@media(min-width:600px){.contact-composition{width:calc(100% - 60px);grid-template-columns:1fr 1fr;gap:28px;padding:40px 0 28px;align-items:center}.contact-copy h1{font-size:clamp(4.3rem,10.5vw,7rem);margin-top:22px}.contact-copy>.section-tag{font-size:.6rem}.contact-invitation{font-size:.9rem;margin-top:25px}.contact-email{margin-top:24px}.contact-address{font-size:clamp(1.25rem,3.3vw,1.9rem)}.contact-actions{grid-template-columns:1fr;gap:8px;max-width:270px}.contact-write{font-size:.79rem;padding-inline:17px}.contact-copy-button{font-size:.72rem;min-height:42px;justify-content:flex-start;padding-left:17px;background:transparent;border-color:transparent}.contact-copy-button:hover{background:#fff9;border-color:#b8d8e8}.contact-portrait{margin:10px 8px 0 0;align-self:center}.contact-photo-frame{border-width:8px;border-top-left-radius:80px}.contact-portrait figcaption{flex-direction:column;align-items:flex-start;gap:4px;font-size:.65rem;margin-top:19px}.contact-portrait figcaption>span:last-child{text-align:left}.contact-portrait::before{inset:35px -17px 52px 20px}.contact-social{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;padding-top:15px;margin-top:8px}.contact-facebook{min-width:260px;font-size:.9rem}.contact-footer{width:calc(100% - 60px)}.contact-page::before{width:900px;height:900px;right:-550px;top:-130px}}
@media(min-width:950px){.contact-composition{width:min(1200px,calc(100% - 96px));grid-template-columns:.95fr 1.05fr;column-gap:70px;row-gap:28px;padding:48px 0 30px}.contact-copy>.section-tag{font-size:.69rem}.contact-copy h1{font-size:clamp(6.5rem,10vw,8.5rem);letter-spacing:-.075em}.contact-invitation{font-size:1.08rem;margin-top:32px}.contact-email{margin-top:32px}.contact-label{font-size:.65rem}.contact-address{font-size:2rem}.contact-actions{display:flex;max-width:none;gap:13px;margin-top:17px}.contact-write{font-size:.85rem;min-width:205px;padding-inline:20px}.contact-copy-button{font-size:.8rem;padding:11px 10px;justify-content:center}.contact-portrait{margin-top:0}.contact-photo-frame{border-width:10px;border-top-left-radius:110px}.contact-portrait figcaption{flex-direction:row;align-items:center;gap:12px;font-size:.7rem}.contact-portrait figcaption>span:last-child{text-align:right}.contact-social{margin-top:15px;padding-top:16px}.contact-social-intro{font-size:.91rem}.contact-facebook{font-size:1rem;min-width:300px}.contact-footer{width:min(1200px,calc(100% - 96px))}.contact-footer>span{font-size:1rem}.contact-footer a{font-size:.8rem}.contact-page::before{width:1200px;height:1200px;right:-700px;top:-200px}}
@media(max-width:350px){.contact-composition,.contact-footer{width:calc(100% - 32px)}.contact-copy>.section-tag{font-size:.58rem}.contact-copy h1{font-size:4.2rem}.contact-invitation{font-size:.91rem}.contact-actions{gap:7px}.contact-write{padding-inline:10px;font-size:.7rem}.contact-copy-button{gap:6px;padding-inline:8px;font-size:.65rem}.contact-portrait figcaption{font-size:.58rem}.contact-footer nav{gap:14px}}
@media(prefers-reduced-motion:reduce){.contact-copy h1 span::after{animation:none}}
/* Phone composition puts the person and the invitation together above the actions. */
@media(max-width:599px){.contact-composition{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:14px;row-gap:17px;padding-top:24px}.contact-copy{display:contents}.contact-copy>.section-tag{grid-column:1/-1;grid-row:1;font-size:.59rem}.contact-copy h1{grid-column:1;grid-row:2;font-size:clamp(2.65rem,14vw,3.9rem);margin:0;align-self:center;letter-spacing:-.065em}.contact-invitation{grid-column:1/-1;grid-row:3;margin:0;font-size:.98rem}.contact-email{grid-column:1/-1;grid-row:4;margin:1px 0 0}.contact-portrait{grid-column:2;grid-row:2;margin:0 4px 0 0}.contact-photo-frame{border:5px solid #fff;border-radius:34px 9px 9px 9px}.contact-portrait::before{inset:10px -7px 22px 10px;border-radius:40px 8px 30px 8px}.contact-portrait figcaption{justify-content:center;margin-top:11px;font-size:.55rem}.contact-portrait figcaption>span:last-child{display:none}.contact-social{grid-column:1/-1;grid-row:5;margin-top:6px;padding-top:15px}.contact-footer{padding-block:14px}}
@media(min-width:600px){.contact-copy-button{min-height:44px}}
