.lion-letter-invitation { margin: 3rem auto; padding: 2rem 1.25rem; text-align: center; }
.lion-letter-invitation h2 { font: italic 1.7rem Georgia, serif; color: #ffe8f5; }
.lion-letter-invitation { max-width: 660px; border: 1px solid #dfa6c433; border-radius: 22px; background: linear-gradient(145deg,#081416aa,#110b13); }
.lion-letter-invitation > p { color:#d5c5d0; line-height:1.7; }
.lion-letter-keepsake { display:block; width:min(100%,460px); max-height:360px; object-fit:cover; object-position:center 25%; opacity:1; margin:1.5rem auto; border:1px solid #bfe7dc55; }
.lion-letter-invitation > button,.lion-project-letter-open { border-radius:999px; padding:.9rem 1.4rem; border:1px solid #e6a8cc77; background:#130b13; color:#f5d7e9; letter-spacing:.12em; }
.lion-letter-invitation > button:hover { box-shadow:0 0 18px #fff8,0 0 35px #ffa0d644; }
.lion-envelope-open { position:relative; display:inline-flex; align-items:center; gap:.65rem; overflow:hidden; }
.lion-envelope { font-size:1.6em; line-height:1; color:#f8dce9; }
.lion-envelope-open::after { content:''; position:absolute; inset:-30% auto -30% -40%; width:20%; background:linear-gradient(90deg,transparent,#ffffffaa,transparent); transform:skewX(-20deg); pointer-events:none; opacity:0; }
.lion-envelope-open:hover::after,.lion-envelope-open:focus-visible::after { animation:envelope-glimmer 1.1s ease-out; }
@keyframes envelope-glimmer { 0% { left:-40%; opacity:0; } 25% { opacity:.8; } 100% { left:125%; opacity:0; } }
@media (prefers-reduced-motion:reduce) { .lion-envelope-open:hover::after,.lion-envelope-open:focus-visible::after { animation:none; } }
.lion-personal-letter { box-sizing: border-box; width: min(860px, 94vw); max-height: 88dvh; padding: 0; border: 1px solid #f2bfd580; border-radius: 14px; background: #100d13; color: #fff5fa; overflow: auto; isolation: isolate; }
.lion-personal-letter::backdrop { background: #08060bdd; }
.lion-letter-photo { display:block; width:100%; max-height:460px; object-fit:cover; object-position:center 25%; opacity:.3; }
.lion-personal-letter article { padding: 2rem clamp(1.5rem, 5vw, 4rem); background:#100d13; font: 1.08rem/1.85 Georgia, serif; }
.lion-ashley-glitter { font-style:italic; color:#fff5fc; background:linear-gradient(105deg,#ebbad5 0%,#ebbad5 35%,white 44%,white 49%,#ebbad5 60%,#ebbad5 100%); background-size:250% 100%; background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 0 8px #ffffff77,0 0 16px #ffd0e855; animation:ashley-shimmer 6s ease-in-out infinite; }
@keyframes ashley-shimmer { 0%,20% { background-position:140% 0; } 80%,100% { background-position:-60% 0; } }
@media (prefers-reduced-motion:reduce) { .lion-ashley-glitter { animation:none; background:none; -webkit-text-fill-color:currentColor; } }
.lion-personal-letter article h2 { font-style: italic; font-weight: normal; }
.lion-personal-letter article p { white-space: pre-wrap; }
.lion-letter-close { position: sticky; top: .75rem; margin: .75rem .75rem .75rem auto; display: block; background: #160c17; color: #fff; z-index: 1; }
.lion-personal-letter button:focus-visible, .lion-letter-invitation button:focus-visible { outline: 2px solid white; outline-offset: 4px; }
@media (forced-colors:active) { .lion-ashley-glitter { animation:none; background:none; color:CanvasText; -webkit-text-fill-color:CanvasText; text-shadow:none; } }

/* Photo is 70% transparent; text, frame and glow retain their own opacity. */
.lion-letter-invitation { position:relative; isolation:isolate; max-width:560px; margin:2rem auto; padding:1.5rem 1.25rem; background:#100c14; border:2px solid #db96bf80; }
.lion-letter-invitation h2 { max-width:420px; margin:.25rem auto .75rem; font:italic 1.15rem/1.65 Georgia,serif; }
.lion-letter-invitation > p { font-size:.85rem; max-width:400px; margin:.5rem auto; }
.lion-letter-invitation::before,.lion-personal-letter article::before { content:''; position:absolute; inset:1rem; background:url('/i/9d90fa3e33cb.png') center/75% auto no-repeat; opacity:.045; pointer-events:none; z-index:0; }
.lion-letter-invitation > *,.lion-personal-letter article > * { position:relative; z-index:1; }
.lion-personal-letter { width:min(640px,94vw); border:2px solid #eeb5d1; background:#100c14; }
.lion-personal-letter article { position:relative; isolation:isolate; padding:1rem clamp(1.1rem,4vw,2rem) 1.5rem; background:#100c14; font:.94rem/1.75 Georgia,serif; }
.lion-personal-letter article p { margin:0 0 1rem; }
.lion-letter-salutation { font-style:italic; font-size:1.04em; color:#fff0f8; }
.lion-letter-close { font-size:.82rem; padding:.55rem .8rem; top:.6rem; }
.lion-photo-frame { box-sizing:border-box; position:relative; isolation:isolate; width:min(100%,340px); margin:1rem auto; border:6px solid #e9a0c7; border-radius:14px; background:#110c14; box-shadow:0 0 0 1px #fff8,0 0 16px #f35baa77,0 0 36px #db359c33; }
.lion-letter-invitation .lion-photo-frame { width:min(100%,300px); max-height:none; }
.lion-photo-frame .lion-letter-photo { display:block; width:100%; height:auto; max-height:300px; object-fit:cover; object-position:center 25%; opacity:.3; border:0; border-radius:8px; }
.lion-heart-screen { position:absolute; inset:0; overflow:hidden; border-radius:8px; pointer-events:none; background:linear-gradient(180deg,#ffd0e608,transparent 45%,#f7a5d310); }
.lion-heart-screen span { position:absolute; left:var(--heart-left); top:-12%; font:var(--heart-size)/1 Georgia,serif; color:#fff0f8; text-shadow:0 0 5px #fff8,0 0 9px #ee73b9; opacity:0; animation:lion-falling-heart 19s linear infinite; animation-delay:var(--heart-delay); }
@keyframes lion-falling-heart { 0% { top:-12%; opacity:0; transform:translateX(-5px) rotate(-12deg); } 15% { opacity:.17; } 75% { opacity:.17; } 100% { top:105%; opacity:0; transform:translateX(8px) rotate(16deg); } }
.lion-photo-trail { position:absolute; inset:-6px; width:calc(100% + 12px); height:calc(100% + 12px); overflow:visible; pointer-events:none; }
.lion-photo-trail rect { animation:lion-border-trail 9s linear infinite; }
.lion-trail-tail { stroke:#ff6fc1; stroke-width:5; stroke-dasharray:16 84; filter:drop-shadow(0 0 4px #ff49b7); opacity:.8; }
.lion-trail-light { stroke:#fff9fe; stroke-width:3; stroke-dasharray:4 96; filter:drop-shadow(0 0 3px white) drop-shadow(0 0 7px #ffb5df); }
@keyframes lion-border-trail { from { stroke-dashoffset:0; } to { stroke-dashoffset:-100; } }
@media (max-width:480px) { .lion-personal-letter article { font-size:.9rem; } .lion-photo-frame { width:min(100% - 2rem,300px); } .lion-photo-frame .lion-letter-photo { max-height:260px; } .lion-letter-invitation h2 { font-size:1.05rem; } }
@media (prefers-reduced-motion:reduce) { .lion-photo-trail rect { animation:none; } .lion-heart-screen span { animation:none; top:var(--heart-rest); opacity:.12; } }
@media (forced-colors:active) { .lion-photo-frame { border-color:CanvasText; box-shadow:none; } .lion-photo-trail,.lion-heart-screen,.lion-letter-invitation::before,.lion-personal-letter article::before { display:none; } }
.lion-letter-invitation::before,.lion-personal-letter article::before { content:none; }
.lion-letter-invitation > .lion-note-watermark,.lion-personal-letter article > .lion-note-watermark { position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.08; pointer-events:none; }
.lion-letter-invitation { max-width:640px; padding:1.6rem 1.35rem; border:3px double #b289a088; border-radius:6px; background:linear-gradient(145deg,#161019,#100c14); box-shadow:0 8px 30px #0005,inset 0 0 40px #cb87af08; }
.lion-letter-invitation::after { content:'♡'; position:absolute; top:.7rem; right:.85rem; color:#ebc9de; font:1rem/1 Georgia,serif; text-shadow:0 0 9px #ef9bce66; pointer-events:none; }
.lion-letter-invitation h2::before { content:''; display:block; width:72px; height:1px; margin:0 auto 1rem; background:linear-gradient(90deg,transparent,#dcbacf,transparent); }
@media (forced-colors:active) { .lion-note-watermark { display:none; } }
