/* Mama's tribute: a quiet, readable letter */
.tribute-progress{position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,#b8603a,#e2a77c);z-index:200;transition:width .15s linear}
.tribute-letter{position:relative;padding:clamp(3rem,6vw,6rem) 1.25rem clamp(2rem,4vw,4rem);background:radial-gradient(ellipse at 50% 0,#fff8ec 0,transparent 60%),linear-gradient(180deg,#f7efe0,#f3e8d6 60%,#efe3cf)}
.tribute-body{max-width:41rem;margin:0 auto;font-size:clamp(1.08rem,1.25vw,1.22rem);line-height:1.95;color:#27403b}
.tribute-body p{margin:0 0 1.25rem}
.tribute-body>p:first-child:first-letter,.tribute-body .movement+p:first-letter{font-family:var(--display-font,Georgia,serif)}
.tribute-body>p:first-child:first-letter{float:left;font-size:5.4rem;line-height:.8;padding:.35rem .6rem 0 0;color:#a3593a}
.tribute-body mark{background:linear-gradient(transparent 62%,#f0c9a266 62%);color:inherit;padding:0 .12em;border-radius:2px;font-weight:500}
.tribute-body .pull{font:italic 400 clamp(1.7rem,2.9vw,2.4rem)/1.3 var(--display-font,Georgia,serif);color:#8f4c30;margin:2.8rem auto;padding:0 0 0 1.4rem;border-left:2px solid #d79b73;letter-spacing:-.01em}
.tribute-body .pull.center{text-align:center;border:0;padding:0}
.tribute-body .pull.center:before,.tribute-body .pull.center:after{content:"";display:block;width:3rem;height:1px;background:#d79b73;margin:1.2rem auto}
.tribute-body .triptych{margin:2.6rem 0;text-align:center;font:italic 400 clamp(1.5rem,2.5vw,2rem)/1.5 var(--display-font,Georgia,serif);color:#2c5750}
.tribute-body .triptych span{display:block}
.tribute-body .triptych span:last-child{color:#8f4c30;margin-top:.4rem}
.tribute-body .movement{display:flex;align-items:center;justify-content:center;gap:1rem;margin:3rem 0;color:#c28a63;font-size:.8rem;letter-spacing:.5em}
.tribute-body .movement:before,.tribute-body .movement:after{content:"";flex:1;max-width:6rem;height:1px;background:linear-gradient(90deg,transparent,#d9b595)}
.tribute-body .movement:after{transform:scaleX(-1)}
.tribute-body ul.remember{list-style:none;margin:2rem 0;padding:1.6rem 1.4rem;display:flex;flex-wrap:wrap;gap:.55rem .6rem;justify-content:center;background:#fffaf0aa;border:1px solid #d9b59555;border-radius:3px}
.tribute-body ul.remember li{font:italic 400 1.15rem/1.3 var(--display-font,Georgia,serif);padding:.3rem .9rem;border:1px solid #d9b59577;border-radius:30px;background:#fff;color:#4a6a62}
.tribute-body ul.dance{list-style:none;margin:2rem 0;padding:0}
.tribute-body ul.dance li{position:relative;padding:.55rem 0 .55rem 2rem;border-bottom:1px dashed #d9b59566;font-size:1.12rem}
.tribute-body ul.dance li:before{content:"✦";position:absolute;left:.3rem;color:#c28a63;font-size:.8rem;top:.85rem}
.tribute-body ul.dance li:last-child{border:0;font-weight:600;color:#8f4c30}
.tribute-body ul.missing{list-style:none;margin:1.6rem 0;padding:0 0 0 1.4rem;border-left:2px solid #e2c3a6}
.tribute-body ul.missing li{padding:.15rem 0;font-style:italic}
.tribute-body .scripture{margin:3rem 0;padding:2rem 1.6rem;text-align:center;background:linear-gradient(135deg,#fffaf0,#f8ead3);border:1px solid #d9b59566;border-radius:3px}
.tribute-body .scripture p{font:italic 400 clamp(1.5rem,2.4vw,2rem)/1.4 var(--display-font,Georgia,serif);color:#2c5750;margin:0 0 .6rem}
.tribute-body .scripture cite{font-style:normal;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:#8f4c30}
.tribute-body .towanda{font:700 clamp(2.6rem,6vw,4.6rem)/1 var(--display-font,Georgia,serif);text-align:center;letter-spacing:.02em;color:#a3593a;margin:2.4rem 0 1.6rem}
.tribute-body .signoff{margin-top:1.6rem;padding-top:1.6rem;border-top:1px solid #d9b59577;text-align:right;font-style:italic}
.tribute-body .signoff b{display:block;font:italic 400 1.5rem/1.3 var(--display-font,Georgia,serif);color:#8f4c30;margin-top:.5rem;font-weight:400}
.tribute-js .tribute-body>*{opacity:0;transform:translateY(12px);transition:opacity .8s ease,transform .8s ease}
.tribute-js .tribute-body>*.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.tribute-js .tribute-body>*{opacity:1;transform:none;transition:none}.tribute-progress{transition:none}}
@media(max-width:600px){.tribute-body{line-height:1.85}.tribute-body .pull{padding-left:1rem}.tribute-body>p:first-child:first-letter{font-size:4.2rem}}
