*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbfaf7;color:#302c35;font:17px/1.7 system-ui,-apple-system,Segoe UI,Arial,sans-serif}a{color:#70436c}a:hover{color:#41283f}.wrap{width:min(1080px,calc(100% - 40px));margin-inline:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:10px;background:white;z-index:10}.site-header{border-bottom:1px solid #e8e0e4}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 0}.logo{text-decoration:none;color:#342a34;font-family:Georgia,serif;font-weight:bold;font-size:28px;line-height:1.1;white-space:nowrap}.logo span{color:#7d5079}.logo small{display:block;font:11px/1.7 system-ui,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#817783;margin-top:5px}nav{display:flex;gap:24px;flex-wrap:wrap}nav a{font-size:14px;color:#534650;text-decoration:none;font-weight:650}.hero{padding:94px 0 87px;max-width:780px}.eyebrow{font-size:12px;letter-spacing:2.1px;font-weight:750;text-transform:uppercase;color:#8b6286;margin:0 0 17px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.2;letter-spacing:-.5px;color:#332b35}h1{font-size:clamp(41px,6vw,76px);margin:0 0 25px}h1 em{font-weight:400;color:#8b5e86}h2{font-size:clamp(30px,3.5vw,44px);margin:0 0 18px}h3{font-size:24px;margin:0 0 12px}.lead{font-size:21px;line-height:1.65;max-width:680px;color:#605761}.actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:34px}.button{display:inline-block;padding:13px 23px;border-radius:5px;background:#704b6d;color:#fff;text-decoration:none;font-weight:650;border:0;cursor:pointer;font:650 15px system-ui,sans-serif}.button:hover{background:#50364e;color:white}.text-link{font-weight:650}.intro{padding:29px 32px;border-left:3px solid #bd9fb7;background:#f4eef2;max-width:830px;color:#5c4b5a}.intro p{margin:0}.section{padding:83px 0}.article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:27px;margin-top:30px}.article-card{padding:30px;background:#fff;border:1px solid #eae4e7;border-radius:6px}.article-card h3 a{text-decoration:none;color:#362e37}.article-card p:not(.eyebrow){font-size:15px;color:#716873;margin:0 0 16px}.read{font-weight:700;font-size:14px;text-decoration:none}.letter-promo{background:#ede5eb;border-radius:8px;padding:48px;margin-bottom:70px}.letter-promo>div{max-width:690px}.letter-promo p:not(.eyebrow){color:#625560}.site-footer{border-top:1px solid #e9e2e5}.footer-inner{padding:24px 0;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;color:#766c77;font-size:13px}.footer-inner a{color:inherit}.content{max-width:760px;padding:65px 0 85px}.content h1{font-size:clamp(34px,5vw,55px)}.content h2{font-size:28px;margin-top:40px}.content p,.content li{color:#554d57}.content .lead{font-size:19px}.back{display:inline-block;margin-bottom:23px;font-size:14px}.prompt-box{background:#f2eaf0;padding:24px 29px;border-left:3px solid #af85a9;margin:28px 0}.prompt-box ul{margin-bottom:0}.letter-form label{font-weight:700;display:block;margin:22px 0 7px}.letter-form input,.letter-form textarea{font:inherit;color:#332b35;background:white;border:1px solid #cbbec9;border-radius:5px;width:100%;padding:13px}.letter-form textarea{min-height:340px;resize:vertical}.letter-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:19px}.button.secondary{background:#e7dce4;color:#4d394b}.note{font-size:13px;color:#706570}.privacy-indicator{font-size:14px;background:#eee7ec;padding:12px 16px;border-radius:4px}@media(max-width:700px){.header-inner{align-items:flex-start;flex-direction:column}.logo{font-size:26px}nav{gap:19px}.hero{padding:62px 0}.article-grid{grid-template-columns:1fr}.letter-promo{padding:28px}.section{padding:60px 0}.content{padding:45px 0 65px}}@media print{header,nav,.site-footer,.back,.letter-actions,.note,.prompt-box,.no-print{display:none!important}body{background:white;color:black}h1{font-size:30px}.content{max-width:none;padding:10px}textarea,input{border:0!important;padding:0!important}textarea{min-height:0!important;overflow:visible}#print-copy{display:block!important;white-space:pre-wrap;font:18px/1.8 Georgia,serif}#letter-body{display:none!important}}

/* Personal tribute on the About page */
.libby-tribute{max-width:420px;margin:28px auto 36px;text-align:center}.libby-tribute img{display:block;width:100%;height:auto;border-radius:7px}.libby-tribute figcaption{margin-top:11px;font-size:14px;color:#766575;font-style:italic}

/* Search-readable HTML/CSS remembrance banner (homepage only). */
.memorial-banner{width:100%;min-height:420px;display:grid;grid-template-columns:42% 58%;overflow:hidden;background:radial-gradient(circle at 92% 16%,#fff8f0 0,transparent 26%),radial-gradient(circle at 85% 85%,#ebc5dc 0,transparent 30%),linear-gradient(120deg,#f3dde4,#fef4e7 58%,#f6d9e5);color:#653c60;border-bottom:1px solid #efdbe3}
.memorial-banner-photo{overflow:hidden;position:relative;min-height:420px}.memorial-banner-photo img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 40%}
.memorial-banner-words{padding:40px clamp(18px,5vw,90px) 30px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.memorial-banner-title{font-family:'Palatino Linotype','Book Antiqua',Palatino,Georgia,serif;font-size:clamp(38px,5.6vw,90px);font-style:italic;letter-spacing:-.065em;line-height:1.12;margin:0;white-space:nowrap;color:#66385f}
.memorial-banner-flourish{position:relative;width:min(85%,500px);height:29px;color:#be7b9d;font-size:25px;line-height:27px}.memorial-banner-flourish:before,.memorial-banner-flourish:after{content:'';position:absolute;top:50%;height:1px;background:#cb90ab;width:41%}.memorial-banner-flourish:before{left:0}.memorial-banner-flourish:after{right:0}
.memorial-banner-tagline{font:italic clamp(19px,2.45vw,34px)/1.35 Georgia,'Times New Roman',serif;max-width:650px;margin:12px 0 22px;color:#513b50}
.memorial-banner-divider{width:min(65%,320px);display:flex;align-items:center;gap:13px;justify-content:center;color:#c586a3;font-size:19px;margin:0 auto 8px}.memorial-banner-divider:before,.memorial-banner-divider:after{content:'';height:1px;flex:1;background:#dbaabf}
.memorial-banner-dedication{font:italic clamp(20px,2.5vw,34px)/1.35 Georgia,serif;color:#714965;margin:4px 0 22px}
.memorial-banner-url{font:500 clamp(11px,1.2vw,15px)/1.4 Georgia,serif;letter-spacing:.3em;margin:0;color:#815875}
@media(max-width:800px){.memorial-banner{grid-template-columns:41% 59%;min-height:340px}.memorial-banner-photo{min-height:340px}.memorial-banner-title{font-size:clamp(29px,5.8vw,52px)}.memorial-banner-words{padding:26px 15px 23px}.memorial-banner-tagline{font-size:clamp(17px,2.5vw,24px)}.memorial-banner-dedication{font-size:clamp(17px,2.4vw,25px)}.memorial-banner-url{letter-spacing:.15em}}
@media(max-width:560px){.memorial-banner{display:flex;flex-direction:column}.memorial-banner-photo{height:240px;min-height:240px}.memorial-banner-photo img{object-fit:cover;object-position:center 44%}.memorial-banner-words{padding:25px 15px 30px}.memorial-banner-title{font-size:clamp(38px,9vw,54px)}.memorial-banner-tagline{font-size:21px;margin:5px 0 14px}.memorial-banner-dedication{font-size:23px;margin-bottom:12px}.desktop-break{display:none}}
@media print{.memorial-banner{display:none}}
