:root{--bg-primary:#faf7f2;--bg-secondary:#efe8de;--text-primary:#2c2621;--text-secondary:#6d6257;--border-color:#d5c7b7;--accent-color:#a3392f;--accent-muted:#7a241d}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Georgia,times new roman,Times,serif;line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary)}body.lightbox-open{overflow:hidden}.page{max-width:42rem;margin:0 auto;padding:0 1.25rem}h1,h2,h3,h4,h5,h6{line-height:1.3;margin-bottom:1rem;font-weight:600}h1{font-size:2rem}h2{font-size:1.5rem;color:rgba(86,124,119,.8)}h3{font-size:1.25rem}h1{color:#cc2a41}p{margin-bottom:1rem}ul,ol{margin-bottom:1rem}a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--border-color);transition:border-color .2s ease}a:hover{border-bottom-color:var(--text-primary)}.site-header{display:flex;align-items:center;gap:1.25rem;padding:1.5rem 0;border-bottom:1px solid var(--border-color)}.site-avatar-link{border-bottom:none;flex-shrink:0}.site-avatar{display:block;width:50px;height:50px;object-fit:cover;border:1px solid var(--border-color)}.site-header-content{display:flex;flex-direction:column;gap:.4rem;min-width:0}.site-title{font-size:2rem;font-weight:600;border:none;margin-bottom:0;letter-spacing:.01em}.site-title a{border-bottom:none}.site-header .menu{display:flex;flex-wrap:wrap;list-style:none;gap:.35rem .6rem;margin:0;padding:0}.site-header .menu li{display:flex;align-items:center;gap:.6rem}.menu-separator{color:var(--accent-color)}.site-header .menu a{border:none;color:var(--accent-color);text-transform:lowercase}.site-header .menu a:hover{color:var(--accent-muted)}main{min-height:calc(100vh - 200px);padding:2rem 0 3rem}.intro{margin-bottom:2rem;color:var(--text-primary);font-size:1.08rem}.intro p:last-child{margin-bottom:0}.intro blockquote{margin-top:1.25rem;padding-left:1rem;border-left:3px solid var(--accent-color);color:var(--text-secondary);font-style:italic}.intro cite{display:block;margin-top:.5rem;font-style:normal;color:var(--accent-muted)}main>section+section{margin-top:2.5rem}.meta{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.post-list{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.project-list{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.project-card{border:1px solid var(--border-color);background-color:rgba(239,232,222,.32)}.project-card-link{display:block;border-bottom:none}.project-card-link:hover .project-card-body{background-color:rgba(239,232,222,.6)}.project-card-body{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1rem;padding:1rem;transition:background-color .2s ease}.project-card-empty .project-card-body{grid-template-columns:minmax(0,1fr)}.project-thumbnail{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border-color);background-color:var(--bg-secondary)}.project-copy h3{margin-bottom:.4rem}.project-description,.project-description p{color:var(--text-secondary);margin-bottom:0}.post-preview{padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.post-preview:last-child{border-bottom:none;padding-bottom:0}.post-preview h3{margin-bottom:.35rem}.post-preview .summary{color:var(--text-secondary);font-size:.9375rem}.post-preview .summary p:last-child{margin-bottom:0}.continued{margin-top:.75rem;margin-bottom:0;font-size:.95rem;font-style:italic}.continued a{color:var(--accent-color);border-bottom-color:transparent}.continued a:hover{border-bottom-color:var(--accent-color)}.post-header{margin-bottom:2rem}.post-header h1{margin-bottom:.5rem}.post-header .meta,.post-header time{display:block;font-size:.875rem;color:var(--text-secondary)}.content-figure{margin:0 auto 1.75rem;max-width:30rem}.content-figure-trigger{display:block;width:100%;padding:0;background:0 0;border:none;cursor:zoom-in}.content-figure img{display:block;width:100%;height:auto;border:1px solid var(--border-color);background-color:var(--bg-secondary)}.content-figure figcaption{margin-top:.15rem;color:var(--text-secondary);font-size:.875rem;line-height:1.4;text-align:center}.image-lightbox{inset:0;width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:2rem;border:none;background:0 0}.image-lightbox::backdrop{background-color:rgba(44,38,33,.78)}.image-lightbox[open]{display:grid;place-items:center}.image-lightbox-close{position:fixed;top:1rem;right:1rem;z-index:1;width:3rem;height:3rem;padding:0;background:0 0;border:none;cursor:pointer}.image-lightbox-close-icon{position:relative;display:block;width:100%;height:100%}.image-lightbox-close-icon::before,.image-lightbox-close-icon::after{content:"";position:absolute;top:50%;left:50%;width:1.8rem;height:2px;background-color:var(--bg-primary);transform-origin:center}.image-lightbox-close-icon::before{transform:translate(-50%,-50%)rotate(45deg)}.image-lightbox-close-icon::after{transform:translate(-50%,-50%)rotate(-45deg)}.image-lightbox-close:hover,.image-lightbox-close:focus-visible{opacity:.75}.image-lightbox-media{display:block;max-width:min(88vw,68rem);max-height:88vh;width:auto;height:auto;border:none;background:0 0}.content{line-height:1.7}.content ul,.content ol{padding-left:1.5rem}.content li{margin-bottom:.35rem}.content img{max-width:100%;height:auto;margin:1rem 0}.content .content-figure img{margin:0}a:has(img){border-bottom:none}.content code{background-color:var(--bg-secondary);padding:.125rem .375rem;border-radius:3px;font-size:.9em;font-family:monaco,courier new,monospace}.content pre{background-color:var(--bg-secondary);padding:1rem;border-radius:5px;overflow-x:auto;margin:1.5rem 0}.content pre code{background-color:initial;padding:0}.content blockquote{border-left:3px solid var(--border-color);padding-left:1rem;margin:1.5rem 0;color:var(--text-secondary);font-style:italic}.site-footer,footer{padding:2rem 0 2.5rem;margin-top:3rem;border-top:1px solid var(--border-color);text-align:center}.badge-row{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.badge-row a{border-bottom:none}.badge-row img{display:block;width:88px;height:31px;image-rendering:pixelated}.site-footer p,footer p{color:var(--text-secondary);font-size:.875rem;margin-bottom:0}@media(max-width:640px){html{font-size:15px}.page{padding:0 1rem}.site-header{align-items:flex-start;gap:1rem}.site-avatar{width:50px;height:50px}.site-title{font-size:1.75rem}main{padding:1.5rem 0 2.5rem}.project-card-body{grid-template-columns:minmax(0,1fr)}.project-thumbnail{max-width:180px}h2{font-size:1.375rem}h3{font-size:1.125rem}}