:root{color-scheme:light;--ink:#171717;--muted:#666;--line:#ddd}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{max-width:920px;margin:0 auto;padding:0 32px;color:var(--ink);background:#fff;font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:#666}a:focus-visible,summary:focus-visible{outline:2px solid #111;outline-offset:5px}h1,h2,h3,p{margin:0}h1{font-size:42px;line-height:1.2;letter-spacing:-1.4px;font-weight:650;margin:0 0 18px}h2{font-size:23px;line-height:1.4;font-weight:600;margin-bottom:18px;letter-spacing:-.35px}h3{font-size:17px;font-weight:600;line-height:1.6;margin-bottom:8px}p+p,p+ul,ul+p,p+details,details+p{margin-top:16px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}header a{text-decoration:none;font-size:14px}.name{font-weight:600;white-space:nowrap}nav{display:flex;gap:22px;flex-wrap:wrap}main{padding-bottom:12px}.intro,.page-intro{padding:48px 0 32px;max-width:790px}.intro>p,.page-intro>p{max-width:750px}.page-intro>a:first-child{display:inline-block;margin-bottom:26px;font-size:14px}.lead{font-size:20px;line-height:1.6}.intro>p:last-child{font-size:14px}.muted,.note{color:var(--muted)}.note{font-size:13px;margin-top:18px}.muted{font-size:14px}main>section{padding:30px 0;border-bottom:1px solid var(--line)}main>.intro{padding:48px 0 32px}main>section:last-child{border-bottom:0}.work-list{margin-top:22px}.work-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,1.45fr);gap:28px;padding:16px 0;border-bottom:1px solid #eee}.work-row:last-child{border-bottom:0}.work-row h3{font-size:16px;font-weight:500;margin:0}.work-row p{font-size:14px;color:var(--muted);line-height:1.7}.stack-list{display:grid;grid-template-columns:130px 1fr;gap:10px 20px;margin:0 0 28px}.stack-list dt{color:var(--muted);font-size:14px}.stack-list dd{margin:0;font-size:15px}.stack-list strong{font-weight:600}#approach{padding-top:10px}#approach p{font-size:15px}.table-wrap{overflow-x:auto;margin:18px 0}table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}th,td{padding:12px 14px 12px 0;border-bottom:1px solid #eee;vertical-align:top}th{font-weight:500}thead th{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}td:last-child,th:last-child{padding-right:0}td{color:var(--muted)}td.number{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.fit-summary{display:grid;grid-template-columns:1fr;gap:24px;margin:22px 0}.fit-summary ul{font-size:14px;margin:10px 0}.fit-summary li{margin-bottom:9px}ul{padding-left:22px;margin:16px 0}li{margin-bottom:10px}.work-points li{margin-bottom:17px}.work-points strong{font-weight:600}details{margin-top:20px}summary{cursor:pointer;font-size:14px;text-decoration:underline;text-underline-offset:3px}details p,details li{font-size:14px}details>p:first-of-type{margin-top:16px}footer{border-top:1px solid var(--line);padding:32px 0 28px;margin-top:18px}footer h2{font-size:18px;margin-bottom:12px}footer>p{font-size:14px}footer>p+p{margin-top:8px}.footer-meta{display:flex;justify-content:space-between;gap:20px;margin-top:30px;font-size:12px;color:var(--muted)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:20px;top:10px;background:#fff;padding:10px;z-index:2}
@media(max-width:600px){body{padding:0 20px;font-size:15px}header{gap:16px;padding:20px 0;align-items:flex-start;flex-direction:column}nav{gap:20px}header a{font-size:13px}h1{font-size:34px;letter-spacing:-1px}h2{font-size:22px}.intro,.page-intro,main>.intro{padding-top:32px}.lead{font-size:18px}.work-row{grid-template-columns:1fr;gap:4px;padding:15px 0}.work-row h3{font-size:16px}.work-row p{font-size:14px}.stack-list{grid-template-columns:90px 1fr;gap:11px 15px}.stack-list dd{font-size:14px}table{font-size:12px}th,td{padding:11px 9px 11px 0}thead th{font-size:11px}.fit-summary{grid-template-columns:1fr;gap:18px}.footer-meta{flex-wrap:wrap;gap:10px}footer>p{line-height:1.9}main>section{padding:26px 0}}
@media print{body{max-width:none;padding:0;color:#000;font-size:11pt}header nav{display:none}.intro,.page-intro,main>.intro{padding:20px 0}h1{font-size:28pt}h2{font-size:18pt}main>section{padding:18px 0}a{text-decoration:none}.work-row,li,tr{break-inside:avoid}footer{padding:20px 0}}
