:root{color-scheme:light;--paper:#fff;--paper-deep:#f5f5f5;--ink:#1c1c1c;--muted-ink:#666;--link:#175a9c;--line:#ddd;--sans:Arial, Helvetica, sans-serif;--text-small:.9rem}*,:before,:after{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-wrap:anywhere;text-rendering:optimizelegibility;min-height:100vh;margin:0;font-size:1rem;line-height:1.6}a{color:var(--link);text-underline-offset:.16em;text-decoration-thickness:1px}a:hover{color:var(--ink)}:focus-visible{outline:2px solid var(--link);outline-offset:3px}::selection{color:var(--ink);background:#dbeafe}.shell{width:min(100% - 3rem,42rem);margin-inline:auto}.skip-link{background:var(--ink);color:var(--paper);z-index:10;padding:.65rem .85rem;font-weight:600;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--line)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;padding-block:1.5rem 1rem;display:flex}.site-name{color:var(--ink);font-weight:600;text-decoration:none}nav ul,.project-list,.note-list,.footer-links{margin:0;padding:0;list-style:none}nav ul{flex-wrap:wrap;gap:.5rem 1rem;display:flex}nav a{color:var(--muted-ink);font-size:.95rem;text-decoration:none}nav a:hover,nav a[aria-current=page]{color:var(--ink);text-underline-offset:.28em;text-decoration:underline 1px}main{min-height:65vh}.page{padding-block:clamp(3rem,8vw,4.5rem)}.hero{padding-block:clamp(3.5rem,10vw,5.5rem)}.page-header{margin-bottom:clamp(2rem,6vw,3rem)}.error-code{color:var(--muted-ink);font-size:var(--text-small);margin:0 0 .75rem}h1,h2,h3{letter-spacing:-.01em;margin-top:0;font-weight:600;line-height:1.25}h1{margin-bottom:1.25rem;font-size:clamp(2rem,7vw,2.6rem)}h2{margin-bottom:1.25rem;font-size:clamp(1.3rem,4vw,1.5rem)}h3{font-size:1.05rem}p{margin:0 0 1rem}.intro{color:var(--muted-ink);max-width:38rem;font-size:1.05rem;line-height:1.6}.action-links{flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;display:flex}.section{border-top:1px solid var(--line);padding-block:clamp(2.5rem,7vw,3.5rem)}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;display:flex}.section-heading a{font-size:var(--text-small)}.project-item,.note-list>li{border-top:1px solid var(--line);padding-block:1.25rem}.project-item:last-child,.note-list>li:last-child{border-bottom:1px solid var(--line)}.project-title,.note-title{margin-bottom:.4rem;font-size:1.05rem;line-height:1.35}.note-title a{color:var(--ink)}.project-status{color:var(--muted-ink);margin-bottom:.65rem;font-size:.85rem;font-style:normal}.item-description{color:var(--muted-ink);margin-bottom:0}.project-details{border-bottom:1px solid var(--line)}.project-detail{border-top:1px solid var(--line);padding-block:clamp(2rem,6vw,3rem)}.project-detail h2{margin-bottom:.6rem}.project-detail ol{padding-left:1.25rem}.project-cta{margin-top:1.25rem}.external-mark{margin-left:.2em;font-size:.75em;display:inline-block}.note-list time{color:var(--muted-ink);font-size:var(--text-small);margin-top:.6rem;display:block}.empty-state{color:var(--muted-ink);font-style:italic}.article-header{border-bottom:1px solid var(--line);margin-bottom:2rem;padding-bottom:2rem}.article-meta{color:var(--muted-ink);font-size:var(--text-small);flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;margin-top:.6rem;display:flex}.article-image{width:100%;max-width:100%;height:auto;margin-bottom:2rem;display:block}.prose{line-height:1.7}.prose h2,.prose h3{margin-top:2.25rem;margin-bottom:.75rem}.prose a,main p a{text-decoration:underline}.prose img,.prose video,.prose iframe{max-width:100%;height:auto}.prose pre{background:var(--paper-deep);border:1px solid var(--line);max-width:100%;padding:1rem;overflow-x:auto}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.site-footer{border-top:1px solid var(--line);color:var(--muted-ink);font-size:var(--text-small)}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-block:1.5rem 2.5rem;display:flex}.footer-inner p{margin:0}.footer-links{flex-wrap:wrap;gap:.35rem .65rem;display:flex}.footer-links li+li:before{content:"·";margin-right:.65rem}@media (width<=30rem){.shell{width:calc(100% - 2rem)}.header-inner{flex-direction:column;align-items:flex-start}nav{width:100%}}
