@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--red:#891c29;--red-dark:#68141f;--ink:#292623;--muted:#736d67;--line:#e4ded7;--paper:#faf8f4;--gold:#a7783d;font-family:'Be Vietnam Pro',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}svg{width:22px;height:22px;flex-shrink:0}::selection{background:#f2c8cd}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.skip{position:fixed;top:-100px;background:white;padding:16px;z-index:5}.skip:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.masthead{max-width:1280px;margin:auto;padding:26px 48px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-size:.75rem;letter-spacing:.13em;font-weight:600}.monogram{font-family:Georgia,serif;display:grid;place-items:center;background:var(--red);color:white;width:38px;height:38px;font-size:1.5rem;letter-spacing:0;border-radius:50%}.edition{font-size:.75rem;letter-spacing:.12em;color:var(--muted)}.edition span{padding:0 12px;color:var(--gold)}main{max-width:1190px;margin:auto;padding:36px 40px 54px}.intro{text-align:center;margin-bottom:34px}.eyebrow{font-size:.75rem;letter-spacing:.15em;font-weight:600;color:var(--red);margin:0 0 14px}.intro h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2.15rem,4vw,3.35rem);font-weight:500;line-height:1.18;margin:0}.intro h1 br{display:none}.intro h1 em{color:var(--red);font-weight:500}.intro>p:last-child{font-size:.875rem;line-height:1.8;margin:17px 0 0;color:var(--muted)}.spread{display:grid;grid-template-columns:.82fr 1.18fr;gap:45px;align-items:start}.portrait-panel{padding-top:4px}.photo-wrap{position:relative;height:390px;overflow:hidden;background:#c9534b;border-radius:160px 160px 4px 4px}.photo-wrap img{width:100%;height:100%;object-fit:cover;object-position:50% 29%;display:block}.photo-label{position:absolute;bottom:18px;left:20px;color:white;font-size:.65rem;letter-spacing:.14em;padding:8px 11px;background:#68141f}.year-mark{position:absolute;right:19px;bottom:3px;color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:4.5rem;font-style:italic;line-height:1.3}.portrait-caption{display:flex;justify-content:space-between;align-items:center;padding:24px 0 20px;border-bottom:1px solid var(--line)}.portrait-caption .eyebrow{font-size:.65rem;letter-spacing:.13em;margin-bottom:9px}.portrait-caption h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:1.8rem;margin:0}.small-star{font-size:2.5rem;color:var(--gold)}.event{display:flex;gap:22px;align-items:center;padding:21px 0 0}.event-day{font-size:2.7rem;line-height:1.1;font-family:'Playfair Display',Georgia,serif;color:var(--red);text-align:center;padding-right:22px;border-right:1px solid var(--line)}.event-day span{display:block;font-family:'Be Vietnam Pro',Arial,sans-serif;font-size:.65rem;letter-spacing:.08em;margin-top:6px}.event strong{font-size:.875rem;font-weight:500}.event p{font-size:.875rem;line-height:1.8;color:var(--muted);margin:6px 0 0}.letter{position:relative;background:white;border:1px solid var(--line);padding:31px 35px 20px;box-shadow:5px 5px 0 var(--paper),6px 6px 0 var(--line)}.letter-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:24px}.letter-top .eyebrow{font-size:.65rem;letter-spacing:.14em;margin:0}.letter-number{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.letter h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:2.5rem;line-height:1.3;margin:0 0 12px}.letter h2 em{color:var(--red);font-weight:500}.letter-intro{color:var(--muted);font-size:1rem;line-height:1.9;margin:0 0 26px}.field{margin-bottom:24px}label{display:block;font-size:.875rem;font-weight:600;line-height:1.7;margin-bottom:9px}label span{color:var(--muted);font-size:.75rem;font-weight:400;margin-left:6px}input,textarea{width:100%;border:1px solid var(--line);border-radius:3px;padding:13px 15px;background:#fff;color:var(--ink);font-size:1rem;line-height:1.6;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #891c2910}::placeholder{color:#928c86;font-size:.875rem}.hint{font-size:.75rem;color:var(--muted);line-height:1.7;margin:7px 0 0}.message-field{margin-bottom:18px}.message-field label span{font-size:1.2rem;color:var(--red)}textarea{min-height:190px;resize:vertical;line-height:1.9;background:#fdfcfb}.message-bottom{display:flex;justify-content:space-between;gap:12px;font-size:.75rem;line-height:1.7;color:var(--muted);margin-top:7px}#counter{white-space:nowrap}.privacy{font-size:.75rem;line-height:1.8;color:var(--muted);display:flex;align-items:center;gap:9px;margin:0 0 18px}.privacy svg{width:17px;height:17px;color:var(--red)}.send{border:0;border-radius:3px;background:var(--red);color:#fff;width:100%;padding:16px 20px;display:flex;align-items:center;justify-content:center;gap:13px;font-size:.875rem;font-weight:500;transition:background .15s,transform .15s}.send:hover{background:var(--red-dark);transform:translateY(-1px)}.send:disabled{opacity:.65;cursor:wait;transform:none}.status{font-size:.875rem;line-height:1.8;margin:12px 0 0;color:var(--red)}.status:empty{display:none}.letter-footer{border-top:1px solid var(--line);margin-top:25px;padding-top:17px;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:.625rem;letter-spacing:.07em;line-height:1.8}.letter-footer>span:last-child{font-size:1.3rem;color:var(--red)}.footer{max-width:1190px;margin:auto;padding:23px 40px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:var(--muted);line-height:1.8}.trap{display:none}.success{text-align:center;padding:35px 0}.success-icon{color:var(--red);font-size:4rem}.success h3{font-family:'Playfair Display',Georgia,serif;font-size:2rem;color:var(--red);font-weight:500}.success p{line-height:1.9;color:var(--muted)}.success .signature{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:2rem;color:var(--red)}.success button{border:0;border-bottom:1px solid var(--red);background:none;color:var(--red);font-size:.875rem;padding:8px 0} [hidden]{display:none!important}
@media(min-width:1450px){main{padding-top:42px}.intro{margin-bottom:40px}.photo-wrap{height:425px}}
@media(max-width:1000px){.masthead{padding:20px 28px}main{padding:30px 28px 45px}.spread{gap:26px;grid-template-columns:.8fr 1.2fr}.letter{padding:27px 25px 20px}.letter h2{font-size:2.1rem}.photo-wrap{height:360px}.portrait-caption h2{font-size:1.5rem}.desktop-break{display:none}.event{gap:14px}.event-day{padding-right:14px}.footer{padding-left:28px;padding-right:28px}}
@media(max-width:720px){.masthead{padding:17px 20px}.brand{font-size:.65rem;letter-spacing:.08em;gap:9px}.edition{font-size:.625rem;letter-spacing:.04em}.edition span{padding:0 5px}.monogram{width:32px;height:32px;font-size:1.25rem}main{padding:28px 20px 38px}.intro{margin-bottom:26px}.intro h1 br{display:block}.intro h1{font-size:2.35rem;line-height:1.3}.intro .eyebrow{font-size:.625rem}.intro>p:last-child{font-size:.875rem;max-width:290px;margin:12px auto 0}.spread{display:flex;flex-direction:column;gap:25px}.portrait-panel{display:grid;grid-template-columns:94px 1fr;column-gap:18px;width:100%;padding:0;align-items:center}.photo-wrap{grid-row:1/3;border-radius:48px 48px 3px 3px;height:142px}.photo-wrap img{object-position:50% 15%}.year-mark,.photo-label,.small-star{display:none}.portrait-caption{padding:2px 0 10px;display:block}.portrait-caption .eyebrow{font-size:.6rem;margin-bottom:5px}.portrait-caption h2{font-size:1.4rem}.event{padding:10px 0 0;gap:0;align-items:flex-start}.event-day{display:none}.event strong,.event p{font-size:.75rem}.event p{line-height:1.65;margin-top:4px}.letter{width:100%;padding:25px 23px 18px}.letter h2{font-size:2.1rem}.letter-intro{margin-bottom:22px}.letter-top{margin-bottom:20px}.message-bottom{font-size:.75rem;gap:8px}.message-bottom>span:first-child{max-width:210px}.footer{margin:0 20px;padding:20px 0 24px;display:block;font-size:.75rem}.footer span{display:block;margin-bottom:6px}.letter-footer{font-size:.6rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
