.text-enter{filter:blur(9px);opacity:.25;translate:0 18px;transition:filter 1.1s cubic-bezier(.2,.65,.2,1),opacity .9s,translate 1.1s}.text-enter.text-entered{filter:blur(0);opacity:1;translate:0 0}.story-reveal{opacity:1!important;transform:none!important}.life-timeline{padding-left:19%;padding-right:6%}.timeline-rail{left:19%;background:none}.timeline-rail b{display:none}.timeline-event{padding-left:45px}.event-panel h2{font-size:clamp(36px,4vw,58px)}.event-full h3{font-size:clamp(20px,2.1vw,27px);line-height:1.4;max-width:none;letter-spacing:-.4px}.event-panel{max-width:950px}.timeline-node{top:var(--node-top,76px)}.timeline-event.in-view .timeline-node{background:white;box-shadow:none}.timeline-event.node-reached .timeline-node{background:#74273a;box-shadow:0 0 0 5px #74273a12}.story-compass{position:relative;width:110px;height:110px;display:grid;place-items:center;border:1px solid #d9c2cb;border-radius:50%;color:#74273a}.story-compass span{font-size:55px}.story-compass i{position:absolute;inset:12px;border:1px dashed #d9c2cb;border-radius:50%;animation:compass-turn 30s linear infinite}.event-art{margin-top:25px}.journal-empty{text-align:center;padding:55px 25px;background:#faf7f8;border:1px solid #e9dfe3;border-radius:28px}.journal-empty>span{font-size:40px;color:#74273a}.journal-empty h2{font-size:35px;margin:15px 0}.journal-empty p,.empty-home{color:#807079;font-size:15px}.empty-home{grid-column:1/-1;padding:24px;background:#faf7f8;border-radius:20px}.empty-home a{color:#74273a}.note-art{display:grid;place-items:center;background:#f0e5ea;color:#74273a;font-size:65px}.featured-post .article-image{height:100%;min-height:350px}.archive-toolbar[hidden],.year-archive[hidden],#manage-tags[hidden],.read-next[hidden]{display:none!important}.contact-card input:invalid:not(:placeholder-shown),.contact-card textarea:invalid:not(:placeholder-shown){border-color:#a83e58}.contact-card button:disabled{opacity:.6;cursor:wait}@keyframes compass-turn{to{transform:rotate(360deg)}}@media(max-width:700px){.life-timeline{padding-left:9%;padding-right:6%}.timeline-rail{left:9%}.timeline-event{padding-left:25px}.event-full h3{font-size:22px}.event-panel h2{font-size:37px}.timeline-intro h1{font-size:49px}.journal-empty h2{font-size:29px}}@media(prefers-reduced-motion:reduce){.text-enter{filter:none;translate:none;opacity:1;transition:none}.story-compass i{animation:none}}
/* A shared centreline keeps every milestone precisely on the rail. */
.timeline-node{box-sizing:border-box;width:12px;height:12px;translate:none;transform:translateX(-50%);margin-top:-.5px}
.timeline-rail:after{content:"";position:absolute;left:1px;top:var(--tip,0px);width:8px;height:8px;border-right:1.5px solid #74273a;border-bottom:1.5px solid #74273a;transform:translate(-50%,-100%) rotate(45deg);opacity:0}
.timeline-rail.has-progress:after{opacity:1}
.event-art,.timeline-event:nth-of-type(even) .event-art{max-width:100%}
.event-art>p{max-width:none;font-size:clamp(18px,1.8vw,25px)}
.story-mark{display:block;width:165px;height:85px;color:#8a344c;overflow:visible}
.story-mark path{stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset 1.8s ease}
.node-reached .story-mark path{stroke-dashoffset:0}
@media(min-width:1000px){#event-5 .event-art>p{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.story-mark path{stroke-dashoffset:0;transition:none}}
/* Quiet actions with consistent pointer and keyboard feedback. */
.button,.footer-top-button,.timeline-intro button,.archive-pagination button,.post-share button,.post-share a,.social-profiles a,.footer-socials a{transition:background-color .22s,color .22s,box-shadow .22s,transform .22s}
@media(hover:hover){.button:hover{background:#542031;color:white;box-shadow:0 5px 16px #74273a20;transform:translateY(-2px)}.footer-top-button:hover,.archive-pagination button:not(:disabled):hover,.post-share button:hover,.post-share a:hover{background:#74273a;color:white;transform:translateY(-2px)}.line-link:hover{color:#74273a;border-color:#74273a}.social-profiles a:hover{color:#74273a;transform:translateY(-3px)}}
button:focus-visible,a:focus-visible{outline:2px solid #74273a;outline-offset:5px}
button:disabled{transform:none!important;box-shadow:none!important;cursor:not-allowed}
.contact-card .button,.home-connect .button{display:inline-flex;align-items:center;justify-content:center;gap:0;min-width:0}
@media(prefers-reduced-motion:reduce){.button,.footer-top-button,.archive-pagination button,.post-share button,.post-share a,.social-profiles a{transition:none}}
.legal-page{max-width:850px;margin:auto;padding:70px 6% 80px}.legal-page h1{font-size:clamp(38px,5vw,68px);line-height:1.15}.legal-intro{font-size:20px;color:#706967}.legal-date{font-size:12px;color:#817479;margin:25px 0 40px}.legal-page section{margin:32px 0}.legal-page h2{font-size:25px}.legal-page section p{font-size:16px;line-height:1.9;color:#625d59}.footer-legal{display:flex;flex-wrap:wrap;gap:14px 25px;margin:24px 0;font-size:13px}.footer-legal a:hover{color:#74273a;text-decoration:underline}.contact-location{font-size:16px;line-height:1.9}
.footer-legal{position:static;inset:auto;background:none;padding:0;box-shadow:none;display:flex}.footer-legal a{font-size:13px}
.contact-location{font-style:normal}
header .wordmark,.site-footer .wordmark{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;font-size:32px;letter-spacing:-1.8px;white-space:nowrap;line-height:1.25}
.site-footer .wordmark{font-size:38px}
.site-footer .footer-top{grid-template-columns:1.4fr .8fr 1fr;gap:40px;align-items:start}
.footer-top .footer-legal{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-top:0;margin:0}
.footer-top .footer-legal h3{margin:10px 0 16px}.footer-top .footer-legal a{padding:5px 0;font-size:13px}
@media(max-width:700px){header .wordmark{font-size:27px}.site-footer .footer-top{grid-template-columns:1fr 1fr;gap:28px 20px}.footer-intro{grid-column:1/-1}.footer-top .footer-connect{padding-top:0}.footer-bottom{align-items:center;text-align:center}.footer-bottom p{justify-content:center;width:100%}.footer-top .footer-legal h3{margin-top:0}}
@media(max-width:360px){.site-footer .footer-top{grid-template-columns:1fr}.footer-intro{grid-column:auto}}
header .wordmark{font-family:'Ruthie',cursive;font-size:46px;font-weight:400;font-style:normal;letter-spacing:0;line-height:1.05}
.site-footer .wordmark{font-family:'Rubik Marker Hatch',cursive;font-size:34px;font-weight:400;font-style:normal;letter-spacing:0;line-height:1.25}
@media(max-width:700px){header .wordmark{font-size:39px}.site-footer .wordmark{font-size:30px}}
/* Shared interaction language across every linked surface. */
a{transition:color .22s ease,background-color .22s ease,box-shadow .22s ease,text-decoration-color .22s ease,transform .22s ease}
@media(hover:hover){
 a:hover{color:#8b304d;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
 header .wordmark:hover,.site-footer .wordmark:hover{color:#8b304d;text-decoration:none;transform:translateY(-2px)}
 header nav a:hover{color:#74273a;text-decoration:none;background:#74273a0b;border-radius:9px;box-shadow:0 2px 0 #74273a}
 .footer-legal a:hover{transform:translateX(4px)}
 .line-link:hover{background:#74273a08;text-decoration:none;box-shadow:0 2px 0 #74273a}
 .social-profiles a:hover{background:#74273a;color:white;text-decoration:none;box-shadow:0 5px 14px #74273a20}
 .article-card:hover,.featured-post:hover{box-shadow:0 12px 30px #74273a14}
 .gallery-stage figure:hover{filter:brightness(1.04)}
}
a:active{opacity:.8}
header,header.scrolled{transition:width .55s cubic-bezier(.22,1,.36,1),height .55s cubic-bezier(.22,1,.36,1),top .55s ease,padding .55s ease,border-radius .55s ease,background-color .4s,box-shadow .4s}
header .wordmark{transition:font-size .5s,color .22s,transform .22s}
header.scrolled .wordmark{font-size:38px}
header.scrolled{box-shadow:0 8px 28px #30202b16,inset 0 1px 0 #ffffffd9;border-color:#74273a10}
.article-card,.featured-post{transition:box-shadow .3s ease}
@media(max-width:700px){header.scrolled .wordmark{font-size:33px}}
@media(prefers-reduced-motion:reduce){a,header,header.scrolled,header .wordmark,.article-card,.featured-post{transition:none}}
/* Stable, high-contrast interaction states; no moving link text. */
a{transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease;text-decoration-skip-ink:auto}
.footer-bottom a{ text-decoration:underline;text-decoration-color:#b78b9b;text-decoration-thickness:1px;text-underline-offset:4px }
@media(hover:hover){
 a:hover{transform:none}
 header nav a:hover{background:transparent;box-shadow:none;border-radius:0;color:#74273a;text-decoration:underline;text-underline-offset:7px}
 header .wordmark:hover,.site-footer .wordmark:hover,.footer-legal a:hover{transform:none}
 .line-link:hover{box-shadow:none;background:transparent;color:#74273a}
 a.button:hover,.home-connect a:hover,.home-connect .button:hover{color:#fff!important;background:#542031;text-decoration:none;transform:none;box-shadow:0 5px 15px #74273a18}
 .social-profiles a:hover,.site-footer .social-profiles a:hover{background:#74273a!important;color:#fff!important;transform:none;box-shadow:0 4px 12px #74273a20;text-decoration:none}
 .social-profiles a:hover svg{color:#fff;stroke:currentColor}
 .footer-bottom a:hover{color:#74273a;text-decoration-color:#74273a}
 .button:hover,.footer-top-button:hover,.post-share a:hover,.post-share button:hover,.archive-pagination button:hover{transform:none}
}
a:active{opacity:1}
.social-profiles a:focus-visible,.site-footer .social-profiles a:focus-visible{background:#74273a;color:#fff}
a.button:focus-visible,.home-connect .button:focus-visible{color:#fff;background:#542031}
.home-connect .connect-circle{transition:background-color .25s ease,color .25s ease,box-shadow .25s ease}.home-connect .connect-circle:hover{translate:none;transform:none}.home-connect .connect-circle:hover span{color:inherit}
