:root{color-scheme:light;--bg:#eeeeea;--fg:#1a1a1a;--accent:#1a1a1a;--border:#a8a8a2;--link:#1a1a1a;--meta:#5a5a56;--code-bg:rgba(0, 0, 0, 0.07)}:root[data-theme=dark]{color-scheme:dark;--bg:#1c1c1a;--fg:#d6d6d0;--accent:#d6d6d0;--border:#4a4a46;--link:#d6d6d0;--meta:#96968f;--code-bg:rgba(255, 255, 255, 0.08)}.hero{display:grid;grid-template-columns:auto 1fr;column-gap:2.5em;align-items:start;margin:2.5em 0 3.5em}.hero>*{grid-column:2}.avatar{grid-column:1;grid-row:1/span 6;align-self:center;width:160px;height:160px;border-radius:50%;object-fit:cover}.avatar-dark{display:none;filter:brightness(.85)}:root[data-theme=dark] .avatar-light{display:none}:root[data-theme=dark] .avatar-dark{display:block}.hero h1{margin:0 0 .2em;font-size:2em;letter-spacing:.01em}.hero p{margin:.7em 0;line-height:1.7}.hero p:first-of-type{margin-top:0;color:var(--meta);font-size:1.05em;font-style:italic}@media(max-width:48em){.hero{grid-template-columns:1fr;text-align:center}.hero>*,.avatar{grid-column:1;grid-row:auto}.avatar{margin:0 auto 1em}.hero p:not(:first-of-type){text-align:left}}.recent h2{font-weight:400;margin-bottom:.1em}.postlist{list-style:none;padding:0;margin:0 0 1em}.postlist li{display:flex;justify-content:space-between;gap:1em;padding:.6em 0;border-top:1px solid var(--border)}@media(max-width:48em){body{margin:1em auto}.postlist li{flex-direction:column;gap:.1em;padding:.7em 0}.postlist .date{order:-1;font-size:.85em}}@media(max-width:48em){.entries{list-style:none;padding:0}.entries li{display:flex;flex-direction:column;gap:.1em;padding:.7em 0;border-top:1px solid var(--border)}.entries .date{color:var(--meta);font-size:.85em}.entries .sep{display:none}}.postlist a{text-decoration:none}.postlist .date{color:var(--meta);white-space:nowrap}#theme-toggle{margin-left:.5em;padding:0;border:0;background:0 0;color:var(--link);cursor:pointer;vertical-align:middle}header .sitetitle svg{vertical-align:middle}#theme-toggle .icon-sun,:root[data-theme=dark] #theme-toggle .icon-moon{display:none}:root[data-theme=dark] #theme-toggle .icon-sun{display:inline}body{max-width:56em;margin:2em auto;padding:0 1em;font-family:serif;line-height:1.5;background:var(--bg);color:var(--fg)}a{color:var(--link)}header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5em;border-bottom:1px solid var(--border);padding-bottom:.5em;margin-bottom:1.5em}header .sitetitle{font-weight:700;text-decoration:none;color:var(--accent)}nav{display:flex;align-items:center;gap:1.2em}nav a{text-decoration:none}.meta{color:var(--meta);font-size:.9em}.entry{margin-bottom:2em;padding-bottom:1em;border-bottom:1px solid var(--border)}pre{overflow-x:auto;padding:.75em;background:var(--code-bg)}code{font-family:monospace}footer{margin-top:4em;padding-top:.5em;text-align:center;font-size:.9em;color:var(--meta)}footer .social{display:flex;justify-content:center;gap:.8em}footer .social a{color:var(--meta)}footer p{margin:1em 0 0}.pdfview{width:100%;height:80vh;border:1px solid var(--border)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5em}.lightbox{display:none;position:fixed;inset:0;z-index:10;margin:0;padding:1em;background:var(--bg);flex-direction:column;align-items:center;justify-content:center}.lightbox:target{display:flex}.lightbox img{max-width:100%;max-height:80vh;object-fit:contain}.lightbox figcaption{max-width:45em;margin-top:.75em;color:var(--meta);text-align:center}.lightbox a{position:absolute;font-size:2.5em;line-height:1;text-decoration:none;padding:.2em .4em}.lb-close{top:.2em;right:.2em}.lb-prev{left:.1em;top:50%;transform:translateY(-50%)}.lb-next{right:.1em;top:50%;transform:translateY(-50%)}.gallery img{width:100%;height:150px;object-fit:cover}.pubside{display:flex;flex-direction:column;align-items:flex-end;gap:.9em;flex-shrink:0}.pubicons{display:inline-flex;gap:.8em}.pubicons a{color:var(--meta);line-height:0}.pubicons a:hover{color:var(--fg)}@media(max-width:48em){.pubside{flex-direction:row;align-items:center;justify-content:space-between}}.recent .postlist li:first-child{border-top:none}main>.postlist li:last-child{border-bottom:1px solid var(--border)}html{scroll-behavior:smooth}.toc{margin:1.2em 0 2em;padding:.6em 1em;border:1px solid var(--border);font-size:.92em}.toc summary{cursor:pointer;color:var(--meta);letter-spacing:.04em;text-transform:uppercase;font-size:.85em}.toc nav{margin-top:.5em}.toc ul{list-style:none;margin:0;padding-left:0}.toc ul ul{padding-left:1.2em;border-left:1px solid var(--border);margin:.15em 0 .3em .2em}.toc li{margin:.2em 0;line-height:1.4}.toc a{text-decoration:none}.toc a:hover{text-decoration:underline}header{position:relative}#search{width:8em;padding:.25em .6em;border:1px solid var(--border);border-radius:1em;background:0 0;color:var(--fg);font:inherit;font-size:.9em;transition:width .2s ease}#search:focus{width:13em;outline:none;border-color:var(--meta)}#search::placeholder{color:var(--meta)}#search-results{position:absolute;top:100%;right:0;z-index:5;width:min(32em,100%);max-height:70vh;overflow-y:auto;margin-top:.4em;background:var(--bg);border:1px solid var(--border)}#search-results[hidden]{display:none}.sr-list a{display:block;padding:.6em .9em;text-decoration:none;border-top:1px solid var(--border)}.sr-list a:first-child{border-top:none}.sr-list a:hover{background:var(--code-bg)}.sr-title{display:block}.sr-meta,.sr-snip{display:block;color:var(--meta);font-size:.85em}.sr-none{margin:0;padding:.6em .9em;color:var(--meta)}#search-btn{display:none;text-decoration:none;padding:0;border:0;background:0 0;color:var(--link);cursor:pointer;line-height:0}@media(max-width:48em){header{flex-wrap:nowrap;align-items:center}nav{gap:.8em}#theme-toggle{margin-left:0}.searchwrap{display:contents}#search-btn{display:inline-flex}#search{display:none}}main img{max-width:100%;height:auto}body.s-blog main img{display:block;margin:1.2em auto}.page-search{display:block;width:100%;box-sizing:border-box;margin-bottom:1em;padding:.6em 1em;border:1px solid var(--border);border-radius:1.5em;background:0 0;color:var(--fg);font:inherit}.page-search:focus{outline:none;border-color:var(--meta)}#page-results a{padding-left:0;padding-right:0}@media(max-width:48em){.entries a{text-decoration:none}.entries li{border-top:none;border-bottom:1px solid var(--border)}.entries li:last-child{border-bottom:none}}.hero p:first-of-type a{color:inherit}@media(max-width:48em){.year{margin-bottom:0;padding-top:.8em;border-top:1px solid var(--border)}.entries li:first-child{border-top:none}h1+.year{border-top:none;padding-top:0}}