@import url('/fonts/fonts.css');
:root{--ink:#572634;--wine:#742e41;--cream:#faf7f0;--muted:#7f706d;--line:#e3dcd2;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans','Segoe UI',sans-serif;--hand:'Caveat',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}a{color:inherit;text-underline-offset:5px}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ab5e72;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.07}h1{font-size:clamp(3.2rem,5.6vw,5.5rem);letter-spacing:-.035em}h2{font-size:clamp(2.25rem,3.2vw,3.3rem);letter-spacing:-.025em}h3{font-size:1.85rem;letter-spacing:-.02em}em{font-weight:400}p{color:var(--muted)}[hidden]{display:none!important}.site-header{max-width:1320px;margin:auto;padding:25px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;gap:12px;align-items:center;text-decoration:none;white-space:nowrap;font-family:var(--serif);font-size:2rem;font-weight:600;letter-spacing:-1px}.brand-dot{color:#b57482}.site-header nav{display:flex;gap:32px;font-size:.875rem}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.button{display:inline-flex;justify-content:center;align-items:center;gap:25px;padding:15px 25px;background:var(--wine);color:#fffaf3;border:1px solid var(--wine);border-radius:5px;text-decoration:none;font-size:.92rem;line-height:1.5;font-weight:500;transition:background .18s,transform .18s}.button:hover{background:#542233;transform:translateY(-2px)}.button.small{padding:10px 19px;font-size:.85rem;gap:22px}.text-link{font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex;gap:14px;align-items:center;border-bottom:1px solid transparent}.text-link:hover{border-color:currentColor}.eyebrow{font-size:.69rem;font-weight:600;letter-spacing:.15em;line-height:1.5;display:block}.hero{max-width:1320px;margin:auto;padding:64px 48px 57px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:45px}.hero-copy>.eyebrow{margin-bottom:22px;display:flex;gap:12px;align-items:center}.tiny-heart{font-size:1rem;color:#ad6679}.hero h1{margin-bottom:23px}.hero h1 em{color:#904456}.hero-copy>p{font-size:.98rem;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:29px}.hero-copy p.hero-note{font-size:.72rem;margin-top:20px;display:flex;gap:11px;color:#81756c}.hero-visual{position:relative;margin-top:4px;padding-bottom:50px}.hero-visual>img{width:100%;height:420px;object-fit:cover;display:block;border-radius:48% 48% 3px 3px;border:7px solid #f0e9df;box-shadow:0 15px 35px #5f402b0d}.image-note{position:absolute;bottom:55px;left:-25px;background:#fffdf8;padding:14px 22px;display:flex;align-items:center;gap:32px;transform:rotate(-6deg);box-shadow:0 5px 18px #3e242015}.handwritten{font-family:var(--hand);font-size:1.8rem;font-weight:400;line-height:1.2}.image-note>span:last-child{font-size:2.3rem}.photo-caption{position:absolute;bottom:9px;width:100%;text-align:center;letter-spacing:.16em;font-size:.61rem;color:var(--muted)}.ribbon-line{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-around;gap:20px;padding:21px 40px;font-family:var(--serif);font-size:1.16rem;background:#f5f0e8}.ribbon-line [aria-hidden]{color:#ad8a8d;font-size:1rem}.moments-section,.writing-room,.faq{max-width:1320px;padding:65px 48px;margin:auto}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.section-heading .eyebrow{margin-bottom:12px}.section-heading p{font-size:.9rem;margin-top:12px}.section-heading>.text-link{white-space:nowrap;padding-bottom:5px}.filter-row{display:flex;gap:9px;flex-wrap:wrap;margin:26px 0}.filter{background:transparent;border:1px solid var(--line);border-radius:30px;padding:8px 19px;font-size:.79rem;color:var(--muted)}.filter.active,.filter:hover{color:#fffaf3;background:var(--wine);border-color:var(--wine)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.moment-card{border:1px solid #4e26310e;border-radius:5px;transition:transform .2s,box-shadow .2s}.moment-card:hover{transform:translateY(-5px) rotate(-.5deg);box-shadow:0 10px 25px #532c3110}.moment-card-link{padding:21px 26px 18px;min-height:235px;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;gap:19px}.pink,.rose{background:#f5e6e7}.yellow{background:#f5efda}.blue{background:#e9eef1}.peach{background:#f3e7df}.lavender{background:#efebf4}.green{background:#eaf0e5}.cream{background:#fffdf7}.card-top,.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px}.card-top .eyebrow{font-size:.61rem;letter-spacing:.12em;color:#7f6c6c}.card-icon{font-family:Georgia,serif;font-size:1.8rem;line-height:1}.moment-card .handwritten{font-size:1.4rem;color:#947477}.moment-card h3{font-size:1.8rem;max-width:260px;line-height:1.02;margin-top:7px}.card-bottom{font-size:.68rem;color:#7b6c69;border-top:1px solid #7b5a5a18;padding-top:11px;margin-top:8px}.card-bottom>span:last-child{font-size:1.2rem;color:var(--ink)}.how-section{max-width:1224px;margin:28px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 20px;display:grid;grid-template-columns:1fr 1fr;gap:80px}.how-section h2{margin:15px 0 22px}.how-section p{font-size:.9rem}.how-section .text-link{margin-top:25px}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:space-around;gap:30px}.steps li{display:flex;gap:23px}.steps li>span{font-family:var(--serif);font-style:italic;font-size:2rem;color:#ac7e86;line-height:1}.steps h3{font-size:1.6rem;margin-bottom:9px}.steps p{max-width:355px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.guide-grid>a{padding:30px 32px 24px;background:#f2ede5;border:1px solid var(--line);text-decoration:none;border-radius:4px}.guide-grid>a:nth-child(2){background:#f0e8e7}.guide-grid h3{max-width:430px;font-size:2rem;margin:16px 0 25px}.guide-grid>a>span:last-child{font-size:.82rem}.guide-grid>a:hover{border-color:#b79399}.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;padding-top:24px;padding-bottom:75px}.faq h2{margin-top:13px}details{border-bottom:1px solid var(--line);padding:18px 0}summary{list-style:none;font-size:.9rem;cursor:pointer;display:flex;justify-content:space-between;gap:15px}summary::-webkit-details-marker{display:none}summary>span{font-size:1.2rem;line-height:1.3}details[open] summary>span{transform:rotate(45deg)}details p{font-size:.875rem;margin:14px 25px 4px 0}.closing{text-align:center;background:var(--wine);color:#fff8ef;padding:55px 24px 60px}.closing .handwritten{color:#e6c4ca;font-size:1.65rem}.closing h2{font-size:3.7rem;margin:16px 0 25px}.button.light{background:#fff8ef;color:var(--ink);border-color:#fff8ef}.button.light:hover{background:#eee1d3}footer{max-width:1320px;margin:auto;padding:37px 48px 23px}.footer-top,.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-top{padding-bottom:30px}.footer-top .brand{font-size:1.75rem}.footer-top p{font-family:var(--serif);font-style:italic;font-size:1.2rem}.footer-top>a:last-child{font-size:.8rem;text-decoration:none}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;font-size:.68rem;color:var(--muted)}.footer-bottom>div{display:flex;gap:22px}.footer-bottom a{text-decoration:none}.skip{position:fixed;top:-100px;left:20px;padding:10px;background:white;z-index:100}.skip:focus{top:10px}.page-intro{max-width:900px;text-align:center;padding:65px 24px 30px;margin:auto}.page-intro .eyebrow{margin-bottom:20px}.page-intro h1{font-size:4.5rem}.page-intro>p{margin-top:20px}.search-label{display:block;text-align:left;max-width:570px;margin:30px auto 0;font-size:.85rem}.search-label input{margin-top:8px}.library{padding-top:0}.library #result-count{font-size:.85rem;margin-bottom:20px}.back-link{display:block;margin-bottom:35px;color:var(--muted);font-size:.8rem;text-decoration:none}.article-layout{max-width:1240px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:75px;padding:60px 48px 90px;align-items:start}.article-layout h1{font-size:3.7rem;margin-top:20px}.article-layout h2{font-size:1.8rem;margin-top:28px;margin-bottom:13px}.article-layout .button{margin-top:25px}.lead{font-size:1.15rem;line-height:1.7;margin:25px 0}.article-layout p+p{margin-top:15px}.letter-paper{padding:40px;border:1px solid #d9cec2;box-shadow:0 10px 30px #5943330b;overflow-wrap:anywhere;position:relative}.letter-paper>.eyebrow{text-align:center}.letter-paper .paper-heart{display:block;text-align:center;margin-bottom:22px;font-size:2.2rem;line-height:1.2;color:#a85d70}.letter-paper p{margin:22px 0;font-family:var(--serif);font-size:1.4rem;line-height:1.65;color:#65514f}.letter-paper .handwritten{font-family:var(--hand);font-size:1.9rem}.letter-paper .signature{margin-top:32px}.prose{max-width:790px;padding:65px 32px 90px;margin:auto}.prose h1{font-size:4rem;margin-top:20px}.prose h2{font-size:2rem;margin:34px 0 14px}.prose p{margin:17px 0}.prose .button{margin-top:25px}.article-cta{background:#f2e8e5;padding:5px 30px 32px;margin-top:40px}.guide-index{max-width:1200px;margin:20px auto 70px;padding:0 30px;grid-template-columns:repeat(3,1fr)}.guide-index h2{font-size:2rem;margin:20px 0}.guide-index p{font-size:.9rem;margin-bottom:20px}.compact{padding-top:35px}.compact .back-link{text-align:left;margin-bottom:25px}.compact h1{font-size:3.6rem}.compact .eyebrow{margin-bottom:10px}.compact p{margin-top:12px}.composer{max-width:1240px;margin:15px auto 75px;padding:0 40px;display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:start}.form-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:23px}.form-top h2{font-size:1.75rem}.muted{color:var(--muted);font-size:.78rem}.composer label,dialog label{display:block;font-size:.85rem;font-weight:500;margin-bottom:20px}input:not([type=radio]),textarea{width:100%;border:1px solid #dcd3c9;border-radius:4px;padding:11px 13px;background:#fffdf8;color:var(--ink);display:block;margin-top:7px}input::placeholder,textarea::placeholder{color:#928783}textarea{resize:vertical;line-height:1.7}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--muted);margin-top:-12px}.text-button{border:0;background:none;color:var(--ink);padding:0;text-decoration:underline;text-underline-offset:4px;font-size:.8rem}.text-button:hover{color:#ac536c}fieldset{border:0;padding:0;margin:24px 0}legend{font-size:.85rem;font-weight:500;margin-bottom:12px}.paper-options{display:flex;gap:23px}.paper-options label{display:flex;align-items:center;gap:6px;font-size:.78rem;cursor:pointer;margin:0}.paper-options input{accent-color:var(--wine)}.swatch{display:block;width:20px;height:20px;border:1px solid #c9bcb4;border-radius:50%}.form-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.privacy-note{font-size:.72rem;line-height:1.7;margin:16px 0 20px;max-width:510px}.preview-wrap>.eyebrow{text-align:center;margin:5px 0 18px}.preview-wrap .letter-paper{min-height:520px;transform:rotate(1deg);padding:32px 37px}.letter-paper h2{font-size:2.4rem;margin:10px 0 26px}.letter-paper #preview-body,.letter-paper #received-body{white-space:pre-wrap;font-family:var(--serif);font-size:1.3rem;line-height:1.75;color:#594b49}.preview-caption{text-align:center;font-family:var(--hand);font-size:1.3rem;margin-top:25px;color:#9c7a7b}.preview-wrap .letter-paper>span.handwritten{display:block;text-align:center;font-size:1.5rem}.preview-wrap .letter-paper h2{text-align:center}.preview-wrap .letter-paper p{font-size:1.2rem}.preview-wrap .letter-paper .signature{font-size:1.8rem}.reader{min-height:70vh;padding:65px 24px 85px}.sealed-state{text-align:center;max-width:690px;margin:auto}.sealed-state>.handwritten{margin-top:25px;color:var(--ink);font-size:2rem}.sealed-state h1{font-size:4rem;margin:15px 0 25px}.seal-button{display:block;margin:35px auto 22px;width:85px;height:85px;border:2px solid #a46475;outline:7px solid #732f40;border-radius:50%;background:#87384d;color:#f8d1d7;font-size:2.8rem;box-shadow:0 10px 20px #64283933;transition:transform .2s}.seal-button:hover{transform:scale(1.08)}.sealed-state>.muted{margin-top:22px}.reader #opened-state{max-width:750px;margin:auto;animation:unfold .55s ease-out}.reader .letter-paper{padding:50px 65px}.reader .letter-paper h1{font-size:3.4rem;margin:18px 0 30px}.reader-actions{display:flex;justify-content:center;align-items:center;gap:25px;flex-wrap:wrap;margin-top:30px}.reader #invalid-letter{text-align:center;max-width:760px;margin:auto}.reader #invalid-letter h1{font-size:3rem}.reader #invalid-letter p{margin:24px 0}dialog{border:1px solid var(--line);border-radius:8px;max-width:570px;width:calc(100% - 36px);background:var(--cream);color:var(--ink);padding:40px}dialog::backdrop{background:#2e151b88;backdrop-filter:blur(3px)}dialog h2{font-size:2.6rem;margin:10px 0 15px}dialog>p{font-size:.9rem;margin-bottom:20px}dialog>.paper-heart{font-size:2.4rem}.dialog-close{position:absolute;top:10px;right:17px;background:none;border:0;color:var(--ink);font-size:1.7rem}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 23px;border-radius:6px;box-shadow:0 4px 25px #0002;font-size:.85rem;z-index:100;max-width:90%;text-align:center}#toast:empty{display:none}@keyframes unfold{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.hero{padding-top:75px;padding-bottom:75px}.hero-visual>img{height:470px}.hero h1{font-size:5.6rem}}@media(max-width:1000px){.site-header{padding:22px 28px}.site-header nav{gap:18px}.hero{padding:50px 30px;gap:26px}.hero-actions{gap:18px;flex-wrap:wrap}.hero-visual>img{height:390px}.image-note{left:-15px;padding:12px 18px}.hero h1{font-size:4.5rem}.moments-section,.writing-room,.faq{padding-left:30px;padding-right:30px}.moment-card-link{padding:20px;min-height:230px}.how-section{margin:20px 30px 0;gap:40px}.article-layout{gap:35px;padding:40px 30px}.composer{gap:30px;padding:0 25px}.form-top{align-items:start;flex-direction:column;gap:5px}.preview-wrap .letter-paper{padding:27px}.guide-index{grid-template-columns:1fr 1fr}.ribbon-line{font-size:1rem;gap:15px;padding:18px 25px}.ribbon-line span:last-child{display:none}.ribbon-line span:nth-last-child(2){display:none}}
@media(max-width:720px){.site-header{padding:18px 20px;gap:15px}.brand{font-size:1.75rem;gap:8px}.brand svg{width:24px}.site-header nav{display:none}.site-header .button{padding:9px 12px;gap:12px;font-size:.76rem}.hero{grid-template-columns:1fr;padding:38px 23px 25px;gap:30px}.hero h1{font-size:4.1rem;line-height:.96;margin-bottom:23px}.hero-copy>.eyebrow{margin-bottom:20px;font-size:.65rem}.hero h1 br:last-of-type{display:none}.hero-copy>p{font-size:.92rem}.hero-actions{margin-top:25px;gap:20px}.hero-actions .button{font-size:.86rem;padding:13px 18px;gap:17px}.hero-actions .text-link{font-size:.8rem}.hero-copy p.hero-note{font-size:.64rem;gap:8px}.hero-visual{max-width:460px;width:100%;margin:4px auto 0;padding:0 16px 35px}.hero-visual>img{height:300px;border-width:5px;border-radius:42% 42% 3px 3px}.image-note{left:0;bottom:35px;padding:9px 18px;gap:25px}.image-note .handwritten{font-size:1.65rem}.photo-caption{font-size:.53rem;left:0;bottom:0}.ribbon-line{padding:17px 18px;font-size:.88rem;justify-content:space-between;gap:12px}.ribbon-line span:nth-child(5),.ribbon-line span:nth-child(4){display:none}.moments-section,.writing-room,.faq{padding:40px 22px}.section-heading{align-items:start;flex-direction:column;gap:14px}.section-heading h2{font-size:2.5rem}.section-heading p{font-size:.85rem}.section-heading .eyebrow{font-size:.63rem}.section-heading>.text-link{font-size:.8rem}.filter-row{gap:7px;margin:22px 0}.filter{padding:7px 12px;font-size:.7rem}.card-grid{grid-template-columns:1fr 1fr;gap:12px}.moment-card-link{padding:14px;min-height:213px;gap:14px}.card-top .eyebrow{font-size:.52rem}.card-icon{font-size:1.4rem}.moment-card .handwritten{font-size:1.25rem}.moment-card h3{font-size:1.52rem;line-height:1.03}.card-bottom{font-size:.6rem;gap:3px}.how-section{grid-template-columns:1fr;margin:10px 22px 0;padding:35px 0;gap:35px}.how-section h2{font-size:2.8rem}.steps{gap:26px}.steps h3{font-size:1.7rem}.guide-grid{grid-template-columns:1fr;gap:16px}.guide-grid>a{padding:24px}.guide-grid h3{font-size:2rem}.faq{grid-template-columns:1fr;gap:15px;padding-top:0}.faq h2{font-size:2.7rem}summary{font-size:.85rem}.closing{padding:42px 20px}.closing h2{font-size:3.3rem}.closing .handwritten{font-size:1.5rem}footer{padding:27px 22px 20px}.footer-top{flex-wrap:wrap;gap:13px}.footer-top p{order:3;width:100%;font-size:1.1rem}.footer-top>a:last-child{font-size:.75rem}.footer-bottom{gap:15px;flex-wrap:wrap;font-size:.65rem}.footer-bottom>span:last-child{display:none}.footer-bottom>div{gap:14px}.page-intro{padding:40px 22px 25px}.page-intro h1{font-size:3.2rem}.article-layout{grid-template-columns:1fr;padding:30px 22px 45px;gap:30px}.article-layout h1{font-size:3.4rem}.article-layout .letter-paper{padding:28px}.prose{padding:40px 24px 55px}.prose h1{font-size:3.1rem}.prose h2{font-size:1.8rem}.guide-index{padding:0 22px}.compact h1{font-size:3.1rem}.compact .back-link{margin-bottom:23px}.composer{grid-template-columns:1fr;gap:40px;padding:0 22px}.form-top{flex-direction:row;align-items:center}.field-pair{gap:12px}.preview-wrap .letter-paper{transform:none;min-height:400px}.reader{padding:40px 22px 60px}.sealed-state h1{font-size:3.2rem}.reader .letter-paper{padding:30px 25px}.reader .letter-paper h1{font-size:2.7rem}.reader-actions{gap:18px}.reader-actions .button{width:100%;margin-top:8px}dialog{padding:30px 23px}dialog h2{font-size:2.35rem}.field-meta{gap:10px;font-size:.65rem}.field-meta .text-button{font-size:.72rem}.form-actions{gap:18px}}
.filter{font-size:.875rem}.card-bottom{font-size:.75rem}.hero-copy p.hero-note{font-size:.75rem}.eyebrow,.card-top .eyebrow,.photo-caption{font-size:.75rem}.privacy-note,.footer-bottom{font-size:.75rem}.hero-copy p.hero-note{flex-wrap:wrap}.hero-visual .photo-caption{letter-spacing:.08em}.card-top .eyebrow{letter-spacing:.06em}
@media(max-width:720px){.hero h1{font-size:3.55rem;line-height:1.06;letter-spacing:-.025em}.hero h1 br:last-of-type{display:initial}.hero-copy>.eyebrow,.section-heading .eyebrow{font-size:.75rem}.filter{font-size:.875rem}.card-top .eyebrow{font-size:.75rem}.card-bottom{font-size:.75rem}.hero-copy p.hero-note{font-size:.75rem}.hero-visual .photo-caption{font-size:.65rem}.moment-card-link{padding:14px;min-height:245px}.field-meta{font-size:.75rem}.field-meta .text-button{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{body{background:white}.site-header,footer,.page-intro,.composer form,.preview-wrap>.eyebrow,.preview-caption,.reader-actions,.sealed-state,.skip,#toast,dialog{display:none!important}.composer{display:block;margin:0;padding:0;max-width:none}.preview-wrap .letter-paper,.reader .letter-paper{border:0;box-shadow:none;transform:none;background:white;padding:20px;min-height:0}.reader{padding:0}.letter-paper{break-inside:auto}.letter-paper h1,.letter-paper h2{font-size:26pt}.letter-paper #preview-body,.letter-paper #received-body{font-size:13pt}}
