.cv-page{--cv-muted:color-mix(in srgb, currentColor 50%, transparent);--cv-faint:color-mix(in srgb, currentColor 10%, transparent);--cv-body:color-mix(in srgb, currentColor 78%, transparent);--cv-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}.cv-page article{font-family:-apple-system,BlinkMacSystemFont,segoe ui,inter,system-ui,sans-serif;line-height:1.65}.cv-page .cv-head{display:flex;justify-content:space-between;align-items:center;gap:1.5em;margin:0 0 3em;padding-bottom:1.5em;border-bottom:1px solid var(--cv-faint);flex-wrap:wrap}.cv-head .cv-lede{margin:0;font-size:1.05em}.cv-downloads{display:flex;gap:.5em}.cv-downloads a{font-family:var(--cv-mono);font-size:.78em;letter-spacing:.04em;padding:.45em .9em;border-radius:6px;text-decoration:none;color:var(--cv-muted);border:1px solid var(--cv-faint);transition:color .15s ease,border-color .15s ease}.cv-downloads a:hover{color:currentColor;border-color:initial}.cv-page h2{margin:5em 0 1.5em;padding-top:2em;border:none;border-top:1px solid var(--cv-faint);font-size:1.15em;font-weight:500;letter-spacing:-.01em}.cv-page h2:first-of-type{margin-top:0;padding-top:0;border-top:none}.cv-page h2 .heading-link,.cv-page h3 .heading-link{display:none}.cv-page .role-header{display:flex;justify-content:space-between;align-items:baseline;gap:1em;margin:2.8em 0 .5em;flex-wrap:wrap}.cv-page h2+.role-header{margin-top:0}.cv-page .role-header h3{margin:0;font-size:1em;font-weight:500;letter-spacing:-.005em;color:var(--cv-body)}.cv-page .role-header .date{font-family:var(--cv-mono);color:var(--cv-muted);font-size:.8em;white-space:nowrap;letter-spacing:.02em}.cv-page article>p{color:var(--cv-body)}.cv-page ul{margin:.3em 0 .8em;padding-left:1em;list-style:none;font-size:.95em;line-height:1.55;color:var(--cv-body)}.cv-page ul li{margin:.2em 0;position:relative}.cv-page ul li::before{content:"–";position:absolute;left:-1em;color:var(--cv-muted)}.cv-page ul ul{margin:.1em 0 .3em}.cv-page .tech{font-family:var(--cv-mono);margin:.8em 0 0;font-size:.8em;color:var(--cv-muted);letter-spacing:.01em}.cv-page article a:not(.cv-downloads a){color:inherit;text-decoration:none;border-bottom:1px solid var(--cv-faint);transition:border-color .15s ease}.cv-page article a:not(.cv-downloads a):hover{border-bottom-color:initial}.list-page{--cv-muted:color-mix(in srgb, currentColor 50%, transparent);--cv-faint:color-mix(in srgb, currentColor 10%, transparent);--cv-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}.list-page article{font-family:-apple-system,BlinkMacSystemFont,segoe ui,inter,system-ui,sans-serif;line-height:1.65}.list-page .list-head{margin:0 0 3em;padding-bottom:1.5em;border-bottom:1px solid var(--cv-faint)}.list-page .list-lede{margin:0;font-size:1.05em;color:var(--cv-muted)}.list-page article>p{margin:0 0 2.5em;color:var(--cv-muted);font-size:.95em}.list-page .list-entries{list-style:none;padding:0;margin:0;counter-reset:none}.list-page .list-item{padding:1.2em 0;border-bottom:1px solid var(--cv-faint)}.list-page .list-item:last-child{border-bottom:none}.list-page .list-row{display:flex;justify-content:space-between;align-items:baseline;gap:1em;flex-wrap:wrap}.list-page .list-title{font-size:1em;font-weight:500;color:inherit;text-decoration:none;border-bottom:1px solid var(--cv-faint);transition:border-color .15s ease}.list-page .list-title:hover{border-bottom-color:initial}.list-page span.list-title{border-bottom:none}.list-page .list-date{font-family:var(--cv-mono);color:var(--cv-muted);font-size:.78em;white-space:nowrap;letter-spacing:.02em}.list-page .list-sub{font-family:var(--cv-mono);color:var(--cv-muted);font-size:.78em;margin-top:.35em;letter-spacing:.01em}.list-page .list-empty{color:var(--cv-muted);font-style:italic}.list-page h2 .heading-link,.list-page h3 .heading-link{display:none}.cv-footer{font-size:.7em;color:color-mix(in srgb,currentColor 35%,transparent);letter-spacing:.05em;padding:3em 0 1.5em}.cv-footer a{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,currentColor 15%,transparent);transition:border-color .15s ease}.cv-footer a:hover{border-bottom-color:initial}