:root{color-scheme:dark;--bg:#171a1e;--text:#e5e4dd;--muted:#b0b4bc;--link:#a7c5ef;--visited:#c2b4df;--rule:#454b55;--button:#222831;--focus:#f0d38c}
:root[data-theme="light"]{color-scheme:light;--bg:#f7f6f0;--text:#242724;--muted:#555c60;--link:#234d87;--visited:#62467b;--rule:#a6aaa7;--button:#eaeae3;--focus:#795719}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.8 Verdana,Arial,sans-serif}a{color:var(--link);text-decoration:underline;text-underline-offset:3px}a:visited{color:var(--link)}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}button{font:12px/1.4 Verdana,Arial,sans-serif;color:var(--text);background:var(--button);border:1px solid var(--rule);padding:8px 10px;cursor:pointer;min-height:44px}button[hidden]{display:none}.site{max-width:960px;padding:0 28px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;gap:26px;border-bottom:1px solid var(--rule);padding:17px 0}.site-name{font:bold 18px/1.5 Georgia,'Times New Roman',serif;white-space:nowrap;text-decoration:none;color:var(--text)}.site-name:visited{color:var(--text)}.header-nav{display:flex;align-items:center;gap:18px}nav ul{list-style:none;display:flex;gap:6px 14px;flex-wrap:wrap;padding:0;margin:0}nav a{display:inline-flex;align-items:center;min-height:44px;padding:5px 2px;font-size:13px}nav a[aria-current="page"]{color:var(--text);font-weight:bold;text-decoration-thickness:2px}main{padding:42px 0 58px;min-height:62vh;outline:none}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.3;font-weight:normal}h1{font-size:32px;margin:0 0 10px}h2{font-size:23px;margin:0 0 16px}h3{font-size:18px;margin:0 0 4px}p{margin:0 0 16px;max-width:72ch}.subtitle{font-size:14px;color:var(--muted);margin-bottom:17px}.profile{max-width:740px}.profile-links{display:flex;flex-wrap:wrap;gap:6px 25px;list-style:none;padding:0;margin:21px 0 0}.profile-links li{display:flex;align-items:center;min-height:44px}.profile-links small{font-size:11px}.muted,.pending{color:var(--muted)}section+section,main>section:not(:first-child){margin-top:32px;padding-top:24px;border-top:1px solid var(--rule)}.entry{padding:8px 0 15px}.entry+.entry{padding-top:17px;border-top:1px dotted var(--rule)}.entry p{font-size:13px;margin:0}.updates{list-style:none;margin:0;padding:0}.updates li{display:grid;grid-template-columns:115px 1fr;gap:15px;padding:8px 0}.updates time,.updates .update-date{font:12px/2.1 'Courier New',monospace;color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0 22px;border-top:1px solid var(--rule);font:12px/1.8 Verdana,Arial,sans-serif;color:var(--muted)}footer a{display:inline-flex;align-items:center;min-height:44px}.skip{position:absolute;left:-10000px;top:8px;z-index:10;padding:10px;background:var(--bg)}.skip:focus{left:10px}a,span,p,h1,h2,h3{overflow-wrap:break-word}
@media(max-width:720px){.site{padding:0 22px}header{flex-direction:column;gap:9px;padding:20px 0 16px}.site-name{font-size:22px}.header-nav{justify-content:center;flex-wrap:wrap;gap:8px 15px}nav ul{justify-content:center;gap:2px 18px}nav a{font-size:13px}main{padding-top:30px}.profile{text-align:center}.profile-links{justify-content:center;gap:4px 20px}h1{font-size:29px}h2{font-size:22px}body{font-size:14px}.updates li{grid-template-columns:100px 1fr;gap:10px}footer{font-size:11px}}
@media(max-width:360px){.site{padding:0 18px}nav ul{gap:2px 14px}.profile-links{gap:4px 14px}.updates li{grid-template-columns:1fr;gap:0}}
@media print{body{background:white;color:black}.site{max-width:none}header,footer,.skip{display:none}a,a:visited{color:black}main{padding:0}}

/* The portrait asset is cropped before publication. */
.profile{display:flex;align-items:flex-start;gap:28px;max-width:none}.profile-copy{flex:1;min-width:0}.portrait{width:160px;height:190px;flex:0 0 160px;overflow:hidden;border:1px solid var(--rule);margin-top:4px}.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:720px){.profile{flex-direction:column;align-items:center;gap:22px}.portrait{flex-basis:auto;margin-top:0}.profile-copy{width:100%}}

.updates-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:30px}.currently{border-left:1px solid var(--rule);padding-left:24px}.currently h3{margin:5px 0 12px}.currently p{font-size:13px;margin-bottom:12px}@media(max-width:720px){.updates-layout{grid-template-columns:1fr;gap:24px}.currently{border-left:0;border-top:1px dotted var(--rule);padding:18px 0 0}}

#theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;border:0;background:transparent;color:var(--muted)}#theme-toggle[hidden]{display:none}#theme-toggle:hover{color:var(--text)}#theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
/* Animate only elements that own their colors. Inherited text follows body once. */
html{background-color:var(--bg);transition:background-color 220ms ease}body{transition:background-color 220ms ease,color 220ms ease}
a,footer,#theme-toggle{transition:color 220ms ease}
header,footer,section,aside,.entry,.portrait{transition:border-color 220ms ease}footer{transition:color 220ms ease,border-color 220ms ease}
#theme-toggle{position:relative}#theme-toggle svg{position:absolute;transition:opacity 220ms ease}.theme-sun{opacity:1}.theme-moon{opacity:0}:root[data-theme="light"] .theme-sun{opacity:0}:root[data-theme="light"] .theme-moon{opacity:1}
@media(prefers-reduced-motion:reduce){html,body,body *{transition:none!important}}

/* Secondary labels share the body color animation, with a constant visual emphasis. */
.subtitle,.updates time,.updates .update-date{color:inherit;opacity:.78;transition:none}

/* A restrained frame keeps the photograph distinct without a heavy card. */
.portrait{border-radius:6px;padding:3px;background:var(--bg);box-shadow:0 3px 10px rgba(0,0,0,.16);transition:background-color 220ms ease,border-color 220ms ease}.portrait img{border-radius:3px}
@media(prefers-reduced-motion:reduce){.portrait{transition:none}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
