    :root{--bg:#fafbf9;--panel:#fff;--ink:#182724;--muted:#5d6d67;--line:#dce3df;--accent:#145e51;--soft:#edf3ef;--focus:#126b56;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--mono:"SFMono-Regular",Consolas,monospace}
    [data-theme="dark"]{--bg:#111a17;--panel:#17231e;--ink:#e8f0eb;--muted:#acbdb3;--line:#33453b;--accent:#a5d7bd;--soft:#20392d;--focus:#a5d7bd}
    *{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:5px}button:disabled{cursor:default}.wrap{max-width:1080px;padding:0 40px;margin:auto}.skip{position:absolute;left:12px;top:-70px;padding:10px;background:var(--panel);z-index:5}.skip:focus{top:12px}.preview-bar{background:var(--soft);border-bottom:1px solid var(--line);font-size:12px;line-height:1.5;text-align:center;padding:9px 16px;color:var(--muted)}header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:108px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:650;letter-spacing:-.5px}.mark{width:29px;height:29px;border:1px solid var(--accent);position:relative;display:block}.mark:after{content:"";position:absolute;inset:6px;border:1px solid var(--accent)}nav{display:flex;align-items:center;gap:26px;font-size:13px;color:var(--muted)}.controls{display:flex;align-items:center;gap:8px}.control{height:36px;min-width:38px;padding:0 8px;background:transparent;border:1px solid var(--line);border-radius:4px;font-family:var(--mono);font-size:12px}.control:hover{background:var(--soft)}.hero{padding:76px 0 64px;display:grid;grid-template-columns:1fr 234px;gap:58px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin:0 0 22px;font-weight:600}.hero h1{font-size:45px;font-weight:620;line-height:1.35;letter-spacing:-1.8px;margin:0 0 24px;max-width:690px}.hero h1 span{display:block}.lead{font-size:17px;color:var(--muted);max-width:590px;line-height:1.85;margin:0 0 25px}.link-row{display:flex;gap:26px;font-size:13px;font-weight:600}.underlink{border-bottom:1px solid var(--line);padding-bottom:3px}.focus{align-self:end;border-left:1px solid var(--line);padding:5px 0 6px 23px}.focus-title{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--muted);margin-bottom:18px}.focus-item{display:flex;align-items:baseline;gap:12px;margin:12px 0;font-size:13px}.focus-item span:first-child{font-family:var(--mono);font-size:10px;color:var(--muted)}section{padding:42px 0;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:27px}.section-head h2{font-size:22px;line-height:1.5;letter-spacing:-.4px;margin:0;font-weight:600}.section-kicker{font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--muted)}.section-intro{font-size:14px;color:var(--muted);max-width:760px;margin:-12px 0 25px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:25px 23px 23px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:21px}.card-index{font-family:var(--mono);font-size:11px;color:var(--muted)}.pill{font-size:10px;letter-spacing:.2px;white-space:nowrap;padding:2px 7px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}.card h3{font-size:19px;font-weight:600;line-height:1.45;letter-spacing:-.4px;overflow-wrap:anywhere;margin:0 0 6px}.subhead{font-size:12px;color:var(--accent);margin:0 0 16px}.card-desc{font-size:13px;line-height:1.85;color:var(--muted);margin:0 0 22px;flex:1}.tags{font-family:var(--mono);font-size:10px;line-height:1.8;color:var(--muted);margin-bottom:19px}.card details{border-top:1px solid var(--line);padding-top:15px;font-size:12px}.card summary{cursor:pointer;list-style:none;color:var(--accent);font-weight:600;display:flex;justify-content:space-between;gap:12px}.card summary::-webkit-details-marker{display:none}.card summary::after{content:'+';font-family:var(--mono)}.card details[open] summary::after{content:'−'}.card details p{color:var(--muted);font-size:12px;line-height:1.85;margin:12px 0 0}.notes{display:grid;grid-template-columns:1fr;gap:0}.note{padding:17px 0;display:grid;grid-template-columns:115px 1fr 80px;align-items:start;border-bottom:1px solid var(--line);gap:16px}.note:last-child{border-bottom:0}.note-type{font-family:var(--mono);font-size:10px;letter-spacing:.7px;color:var(--muted);padding-top:4px}.note details summary{font-size:15px;cursor:pointer;list-style:none}.note details summary::after{content:' ↗';font-size:12px;color:var(--muted)}.note details summary::-webkit-details-marker{display:none}.note details[open] summary::after{content:' ↓'}.note details p{font-size:13px;color:var(--muted);max-width:650px;margin:10px 0 2px}.draft{text-align:right;font-size:11px;color:var(--muted);padding-top:3px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.bottom-grid h2{font-size:20px;font-weight:600;margin:0 0 20px}.bottom-grid p{font-size:14px;color:var(--muted);line-height:1.95}.archive-item{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;gap:18px}.archive-item:last-child{border:0}.archive-item span{font-size:10px;color:var(--muted);text-align:right}.archive-item a{overflow-wrap:anywhere}.archive-note{font-size:11px!important;line-height:1.7!important;margin-top:15px!important}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 0 38px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.footer-right{font-family:var(--mono);font-size:10px}#about,#archive,#work,#notes{scroll-margin-top:22px}
    @media(min-width:1200px){.hero h1{font-size:47px}}@media(max-width:850px){.wrap{padding:0 26px}.hero{grid-template-columns:1fr 195px;gap:28px}.hero h1{font-size:38px}.cards{gap:12px}.card{padding:22px 17px}.card h3{font-size:17px}.bottom-grid{gap:35px}nav{gap:18px}}@media(max-width:650px){.wrap{padding:0 22px}header{min-height:100px;flex-wrap:wrap;padding:22px 0 18px;gap:15px}.brand{font-size:16px}nav{width:100%;justify-content:space-between;gap:10px;order:2}.controls{margin-left:auto}.hero{padding:46px 0 35px;grid-template-columns:1fr;gap:26px}.hero h1{font-size:34px;letter-spacing:-1px}.hero .lead{font-size:15px}.eyebrow{font-size:10px;margin-bottom:16px}.focus{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;display:flex;flex-wrap:wrap;column-gap:20px;row-gap:0;align-self:auto}.focus-title{width:100%;margin-bottom:6px}.focus-item{font-size:12px;margin:6px 0}.focus-item span:first-child{display:none}section{padding:32px 0}.section-head{margin-bottom:23px}.section-head h2{font-size:21px}.section-kicker{font-size:9px}.cards{grid-template-columns:1fr;gap:14px}.card{padding:25px}.card-head{margin-bottom:15px}.card h3{font-size:21px}.card-desc{font-size:14px;margin-bottom:18px}.note{grid-template-columns:1fr 58px;gap:7px 12px}.note-type{grid-column:1}.note details{grid-column:1;grid-row:2}.draft{grid-column:2;grid-row:2}.note details summary{font-size:14px}.bottom-grid{grid-template-columns:1fr;gap:30px}footer{flex-direction:column;gap:8px}.preview-bar{font-size:10px}.link-row{font-size:12px}.section-intro{font-size:13px}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Archived writing shares the homepage palette, type and theme controls. */
.writing{max-width:800px;margin:0 auto;padding:48px 0 64px}.archive-heading{padding:16px 0 28px}.archive-heading h1,.prose h1{font-size:36px;line-height:1.45;letter-spacing:-1px;font-weight:620;margin:0 0 22px}.post-list{list-style:none;padding:0;margin:0}.post-list li{border-top:1px solid var(--line)}.post-list li:last-child{border-bottom:1px solid var(--line)}.post-list a{display:grid;grid-template-columns:112px 1fr 18px;gap:20px;align-items:baseline;padding:22px 0}.post-list time{font-family:var(--mono);font-size:13px;color:var(--muted)}.post-list a:hover{background:var(--soft)}.article-nav{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin-bottom:22px}.archive-context{color:var(--muted);font-size:14px;margin:0 0 30px}.prose{line-height:1.95;overflow-wrap:anywhere}.prose h2{font-size:25px;margin:44px 0 18px;line-height:1.5;font-weight:600}.prose h3{font-size:20px;margin:30px 0 14px}.prose p{margin:0 0 22px}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose img{max-width:100%;height:auto;border-radius:4px}.prose pre{padding:20px;background:var(--soft);overflow-x:auto;border:1px solid var(--line);border-radius:4px;line-height:1.65;white-space:pre;overflow-wrap:normal}.prose code{font-family:var(--mono);font-size:.88em}.prose :not(pre)>code{background:var(--soft);padding:2px 5px;border-radius:3px}.prose blockquote{margin:24px 0;padding:0 22px;border-left:3px solid var(--line);color:var(--muted)}.prose table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}.prose td,.prose th{border:1px solid var(--line);padding:8px 12px}.prose a[data-missing]{color:var(--muted);text-decoration:none}.article-end{border-top:1px solid var(--line);margin-top:48px;padding-top:24px;font-size:14px;color:var(--accent)}
@media(max-width:650px){.writing{padding-top:32px}.archive-heading h1,.prose h1{font-size:28px}.post-list a{grid-template-columns:1fr 18px;gap:7px;padding:20px 0}.post-list time{grid-column:1/-1}.prose h2{font-size:22px}.article-nav{font-size:13px}.prose pre{padding:14px}nav{flex-wrap:wrap}}

.card .research-note-label{font-size:12px;color:var(--muted);margin:22px 0 10px}.card .research-note-label+details{padding-top:12px}.card .research-note-label+details summary{line-height:1.75}

/* Full-width project rows. */
.cards{display:flex;flex-direction:column;gap:0}.card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;padding:32px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}.card:last-child{border-bottom:1px solid var(--line)}.project-overview,.project-reading{min-width:0}.card-head{justify-content:flex-start;gap:18px;margin-bottom:16px}.card h3{font-size:23px}.card-desc{font-size:15px;margin-bottom:16px}.card .subhead{font-size:14px}.card .tags{margin-bottom:0}.project-reading{border-left:1px solid var(--line);padding-left:30px}.project-reading>details:first-child{border-top:0;padding-top:0}.project-reading details summary{font-size:14px}.project-reading details p{font-size:14px}.card .research-note-label{margin-top:24px}
@media(max-width:650px){.card{grid-template-columns:1fr;gap:22px;padding:28px 0}.project-reading{border-left:0;padding-left:0}.card h3{font-size:22px}.project-reading>details:first-child{border-top:1px solid var(--line);padding-top:16px}}

/* Compact list rows with a single full-width disclosure per project. */
.project-list{display:block}.project-item{border-top:1px solid var(--line)}.project-item:last-child{border-bottom:1px solid var(--line)}.project-line{display:grid;grid-template-columns:28px minmax(190px, .85fr) minmax(0,1.35fr) 20px;align-items:center;gap:24px;padding:25px 0;cursor:pointer;list-style:none}.project-line::-webkit-details-marker{display:none}.project-number{font:12px var(--mono);color:var(--muted)}.project-name h3{font-size:19px;font-weight:600;margin:0 0 5px;line-height:1.4;overflow-wrap:anywhere}.project-name .subhead{margin:0;font-size:13px}.project-line .card-desc{margin:0;font-size:14px;line-height:1.8}.project-expand{color:var(--accent);font:20px var(--mono)}.project-toggle[open]>.project-line .project-expand{font-size:0}.project-toggle[open]>.project-line .project-expand:after{content:'−';font-size:20px}.project-body{padding:0 44px 28px 52px;max-width:850px}.project-body .tags{display:inline;margin-left:15px;font-size:11px}.project-body>details{margin-top:18px;font-size:14px}.project-body>details summary{cursor:pointer;color:var(--accent)}.project-body>details p{color:var(--muted);line-height:1.85}.project-body .research-note-label{font-size:12px;color:var(--muted);margin:22px 0 0}.project-body .research-note-label+details{margin-top:8px}
@media(max-width:650px){.project-line{grid-template-columns:22px minmax(0,1fr) 18px;gap:10px 14px;padding:22px 0}.project-line .card-desc{grid-column:2;grid-row:2}.project-expand{grid-column:3;grid-row:1}.project-name h3{font-size:18px}.project-body{padding:0 0 24px 36px}.project-body .tags{display:block;margin:12px 0 0}}
