:root{--color-bg: #efeadd;--color-ink: #1a1814;--color-meta: #2d2a24;--color-muted: #5a554c;--color-faint: #8a8478;--color-rule: #c9c2b1;--color-rule-soft: #d8d2c1;--color-accent: #1d3fff;--font-serif: "EB Garamond", "Cormorant Garamond", Georgia, "Times New Roman", Times, serif;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--col-left: 180px;--col-right: 240px;--grid-gap: 40px;--page-px: 48px;--nav-height: 57px;--ease-out: cubic-bezier(0, 0, .2, 1)}@media(max-width:900px){:root{--page-px: 24px;--grid-gap: 24px}}body[data-display=sans]{--font-serif: var(--font-sans)}body[data-display=sans] .nav-logo,body[data-display=sans] .about-name,body[data-display=sans] .about-social-label,body[data-display=sans] .about-colophon,body[data-display=sans] .about-email,body[data-display=sans] .work-title,body[data-display=sans] .work-title-muted,body[data-display=sans] .work-subtitle-muted,body[data-display=sans] .work-product-title,body[data-display=sans] .work-media-title,body[data-display=sans] .work-row-note,body[data-display=sans] .resume-name,body[data-display=sans] .resume-role-company,body[data-display=sans] .resume-colophon,body[data-display=sans] .resume-role-note,body[data-display=sans] .cs-title,body[data-display=sans] .cs-h2,body[data-display=sans] .cs-metric-value,body[data-display=sans] .article-title,body[data-display=sans] .article-h2,body[data-display=sans] .bhn-chart-title,body[data-display=sans] .not-found-code{font-style:normal;font-weight:500;letter-spacing:-.025em}body[data-display=sans] .about-name,body[data-display=sans] .resume-name,body[data-display=sans] .work-title,body[data-display=sans] .cs-title,body[data-display=sans] .article-title,body[data-display=sans] .not-found-code{font-weight:600;letter-spacing:-.035em}body[data-display=sans] .nav-logo{font-weight:600;letter-spacing:-.02em}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-ink);line-height:1.5;min-height:100vh;overflow-x:hidden}#root{min-height:100vh}a{color:inherit;text-decoration:none}.skip-to-content{position:absolute;top:-100%;left:50%;transform:translate(-50%);padding:.5rem 1rem;background:var(--color-accent);color:#fff;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;z-index:1000;transition:top .2s ease}.skip-to-content:focus{top:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:#ccc9be}::selection{background:#1f3aff26;color:var(--color-ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.nav{position:sticky;top:0;z-index:100;display:flex;align-items:baseline;justify-content:space-between;padding:18px var(--page-px);background:var(--color-bg);border-bottom:1px solid var(--color-rule)}.nav-links{display:flex;gap:36px;align-items:baseline}.nav-link{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink);text-decoration:none;padding-bottom:2px;border-bottom:1.5px solid transparent;transition:color .15s ease,border-color .15s ease}.nav-link:hover{color:var(--color-accent)}.nav-link.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.nav-clock{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--color-muted)}@media(max-width:700px){.nav{padding:18px 24px}.nav-clock{display:none}.nav-links{gap:20px}}.about{min-height:calc(100vh - var(--nav-height))}.about-grid{display:block;padding:48px var(--page-px)}.about-bio-section{padding-bottom:24px}.about-contact-section{padding-top:24px}.about-name{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(56px,7vw,88px);line-height:.95;letter-spacing:-.035em;color:var(--color-ink);margin-bottom:24px}.about-body{display:flex;flex-direction:column;gap:16px;font-size:19px;line-height:1.55;max-width:54ch}.about-tagline{font-size:clamp(22px,2.5vw,36px);line-height:1.4;display:flex;align-items:baseline;gap:.28em;overflow:hidden}.about-tagline-word{display:inline-block;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}@supports (-webkit-touch-callout: none){.about-tagline-word{transform:none!important}}.about-contact-sublabel{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-bottom:10px}.about-socials{display:flex;flex-direction:column}.about-social-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;text-decoration:none;color:inherit;transition:color .15s ease}.about-social-row:hover{color:var(--color-accent)}.about-social-label{font-family:var(--font-serif);font-style:italic;font-size:22px;letter-spacing:-.005em}.about-footer{display:flex;justify-content:space-between;padding:24px var(--page-px);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.about-footer-email{color:var(--color-accent);text-decoration:none;transition:opacity .15s ease}.about-footer-email:hover{opacity:.7}.work{min-height:calc(100vh - var(--nav-height))}.work-grid{display:grid;grid-template-columns:var(--col-left) 1fr;gap:var(--grid-gap);padding:32px var(--page-px);align-items:start}.work-section-header{align-items:baseline;padding-top:36px;border-top:1px solid var(--color-rule);padding-bottom:20px}.work-section-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted)}.work-row{padding-top:36px;padding-bottom:36px}.work-row-left{padding-top:4px}.work-row-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-meta)}.work-title-link{display:block;text-decoration:none;color:inherit}.work-title{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(48px,5.5vw,72px);line-height:.95;letter-spacing:-.03em;color:var(--color-ink);transition:color .15s ease}.work-title-link:hover .work-title{color:var(--color-accent)}.work-title-muted{color:var(--color-muted)}.work-subtitle-muted{color:var(--color-muted);font-style:italic}.work-subtitle{font-size:17px;line-height:1.4;margin-top:12px}.work-media-single{padding:20px var(--page-px)}.work-media-row{align-items:baseline;padding-top:20px;padding-bottom:20px}.work-media-title-link{text-decoration:none;color:inherit}.work-media-title{font-family:var(--font-serif);font-style:italic;font-size:clamp(22px,2.5vw,30px);line-height:1.1;letter-spacing:-.01em;color:var(--color-ink);transition:color .15s ease}.work-media-title-link:hover .work-media-title{color:var(--color-accent)}.work-media-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--color-muted);margin-top:4px}.work-product-title{font-family:var(--font-serif);font-style:italic;font-size:clamp(22px,2.5vw,30px);line-height:1.1;letter-spacing:-.01em;color:var(--color-ink);margin-bottom:4px}.work-product-links{list-style:none;padding:0;margin-top:12px;display:flex;flex-direction:column;gap:6px}.work-product-links li{padding-left:16px;position:relative}.work-product-links li:before{content:"—";position:absolute;left:0;color:var(--color-muted);font-family:var(--font-mono);font-size:11px}.work-product-link{font-size:14px;color:var(--color-ink);text-decoration:none;border-bottom:1px solid var(--color-rule);transition:color .15s ease,border-color .15s ease}.work-product-link:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.work-footer{display:flex;justify-content:space-between;padding:24px var(--page-px);border-top:1px solid var(--color-rule);margin-top:24px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.work-footer-email{color:var(--color-accent);text-decoration:none;transition:opacity .15s ease}.work-footer-email:hover{opacity:.7}@media(max-width:900px){.work-grid{grid-template-columns:1fr;gap:16px}.work-section-header{gap:12px}}.resume{min-height:calc(100vh - var(--nav-height))}.resume-grid{display:grid;grid-template-columns:var(--col-left) 1fr;gap:var(--grid-gap);padding:32px var(--page-px);align-items:start}.resume-header{padding-top:48px;padding-bottom:48px;align-items:baseline}.resume-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);padding-top:4px}.resume-name{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(48px,6vw,72px);line-height:.95;letter-spacing:-.03em;color:var(--color-ink);margin-bottom:12px}.resume-tagline{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.resume-section-header{padding-top:36px;border-top:1px solid var(--color-rule);padding-bottom:16px;align-items:baseline}.resume-role{padding-top:36px;padding-bottom:36px}.resume-role-left{padding-top:4px}.resume-role-period{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--color-muted)}.resume-role-company-link{text-decoration:none;color:inherit}.resume-role-company-link:hover .resume-role-company{color:var(--color-accent)}.resume-role-company{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(32px,4vw,48px);line-height:1;letter-spacing:-.02em;color:var(--color-ink);margin-bottom:10px}.resume-role-highlight{font-size:15px;line-height:1.5;color:var(--color-muted);margin-bottom:16px}.resume-subrole{margin-top:16px}.resume-subrole-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px}.resume-subrole-title{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink)}.resume-subrole-period{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--color-muted)}.resume-bullets{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.resume-bullets li{font-size:14px;line-height:1.5;color:var(--color-ink);padding-left:16px;position:relative}.resume-bullets li:before{content:"—";position:absolute;left:0;color:var(--color-muted)}.resume-skills-row{padding-top:24px;padding-bottom:24px}.resume-skills{display:flex;flex-wrap:wrap;gap:8px}.resume-skill-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-muted);padding:4px 10px}.resume-education-row{padding-top:24px;padding-bottom:24px}.resume-edu-degree{font-size:16px;line-height:1.4;color:var(--color-ink);margin-bottom:4px}.resume-edu-institution{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-muted)}.resume-footer{display:flex;justify-content:space-between;padding:24px var(--page-px);border-top:1px solid var(--color-rule);margin-top:24px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.resume-footer-email{color:var(--color-accent);text-decoration:none;transition:opacity .15s ease}.resume-footer-email:hover{opacity:.7}@media(max-width:900px){.resume-grid{grid-template-columns:1fr;gap:16px}.resume-role-note{border-top:none;border-left:2px solid var(--color-rule);padding-top:0;padding-left:12px;margin-top:16px}.resume-header{gap:24px}}.cs-page{min-height:calc(100vh - var(--nav-height))}.cs-body{max-width:680px;margin:0 auto;padding:48px var(--page-px) 80px}.cs-back{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);padding:0;margin-bottom:40px;display:block;transition:color .15s ease}.cs-back:hover{color:var(--color-accent)}.cs-title{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(32px,5vw,52px);line-height:1.1;letter-spacing:-.02em;color:var(--color-ink);margin-bottom:16px}.cs-title-muted{color:var(--color-muted)}.cs-summary{font-size:16px;line-height:1.6;color:var(--color-muted);margin-bottom:32px}.cs-divider{border:none;border-top:1px solid var(--color-rule);margin-bottom:48px}.cs-not-found{font-size:16px;color:var(--color-muted)}.cs-section{margin-bottom:48px}.cs-h2{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(22px,3vw,30px);line-height:1.2;letter-spacing:-.01em;color:var(--color-ink);margin-bottom:16px;padding-top:8px;border-top:2px solid var(--color-accent)}.cs-p{font-size:16px;line-height:1.75;color:var(--color-ink);margin-bottom:20px}.cs-p-reflection{font-style:italic;color:var(--color-muted)}.cs-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.cs-list li{font-size:15px;line-height:1.6;color:var(--color-ink);padding-left:20px;position:relative}.cs-list li:before{content:"—";position:absolute;left:0;color:var(--color-muted)}.cs-artifact{margin:28px 0}.cs-artifact-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:12px}.cs-before-after{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--color-rule)}.cs-ba-panel{padding:20px}.cs-ba-before{border-right:1px solid var(--color-rule)}.cs-ba-tag{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:10px}.cs-ba-panel p{font-size:14px;line-height:1.6;color:var(--color-ink);margin:0}.cs-ba-after .cs-ba-tag{color:var(--color-accent)}.cs-artifact-annotation{font-family:var(--font-mono);font-size:11px;line-height:1.6;color:var(--color-muted);margin-top:10px}.cs-artifact-text{border-left:2px solid var(--color-accent);padding-left:20px}.cs-artifact-content{font-size:15px;line-height:1.7;color:var(--color-ink);white-space:pre-line;margin:0}.cs-metrics{display:flex;flex-wrap:wrap;gap:2px;margin-top:24px}.cs-metric{border:1px solid var(--color-rule);padding:20px 24px;display:flex;flex-direction:column;gap:6px;min-width:140px}.cs-metric-value{font-family:var(--font-serif);font-style:italic;font-size:28px;line-height:1;color:var(--color-accent);letter-spacing:-.02em}.cs-metric-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}@media(max-width:640px){.cs-body{padding:32px 24px 64px}.cs-before-after{grid-template-columns:1fr}.cs-ba-before{border-right:none;border-bottom:1px solid var(--color-rule)}}.lightbox-backdrop{position:fixed;inset:0;z-index:1000;background:#101010eb;display:flex;align-items:center;justify-content:center;padding:24px;cursor:pointer;animation:lightbox-in .18s ease}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-close{position:fixed;top:20px;right:24px;background:none;border:none;color:#fff9;font-size:20px;line-height:1;cursor:pointer;padding:8px;transition:color .15s ease;z-index:1001}.lightbox-close:hover{color:#fff}.lightbox-img{display:block;max-width:min(92vw,1200px);max-height:88vh;object-fit:contain;cursor:default;-webkit-user-select:none;user-select:none}.article-img{cursor:pointer}.article-page{min-height:calc(100vh - var(--nav-height))}.article-body{max-width:680px;margin:0 auto;padding:48px var(--page-px) 80px}.article-back{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);padding:0;margin-bottom:40px;display:block;transition:color .15s ease}.article-back:hover{color:var(--color-accent)}.article-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--color-muted);margin-bottom:16px;text-transform:uppercase}.article-title{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(32px,5vw,52px);line-height:1.1;letter-spacing:-.02em;color:var(--color-ink);margin-bottom:32px}.tldr{border-top:2px solid var(--color-accent);padding-top:16px;margin-bottom:48px}.tldr-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:16px}.tldr-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:16px}.tldr-list>li{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:var(--color-ink);line-height:1.5}.tldr-emoji{font-size:16px;flex-shrink:0;margin-top:2px}.tldr-list strong{font-weight:600;display:block;margin-bottom:6px}.tldr-sub{list-style:none;padding:0;margin:0}.tldr-sub li{font-size:14px;color:var(--color-muted);padding-left:14px;position:relative;margin-bottom:4px;line-height:1.6}.tldr-sub li:before{content:"—";position:absolute;left:0;color:var(--color-muted)}.article-p{font-size:16px;line-height:1.75;color:var(--color-ink);margin-bottom:20px}.article-p strong{font-weight:600}.article-p em{font-style:italic;color:var(--color-muted)}.article-h2{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(24px,3vw,32px);line-height:1.15;letter-spacing:-.01em;color:var(--color-ink);margin-top:56px;margin-bottom:20px}.article-h3{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-top:40px;margin-bottom:16px}.article-h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-top:32px;margin-bottom:12px;border-top:1px solid var(--color-rule);padding-top:12px}.bhn-chart{border:1px solid var(--color-rule);padding:28px 28px 32px;margin:32px 0 8px}.bhn-chart-title{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:18px;color:var(--color-ink);margin-bottom:24px;letter-spacing:-.01em}.bhn-columns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}.bhn-rule{height:2px;background:var(--color-accent);margin-bottom:12px}.bhn-col-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:10px}.bhn-col-list{list-style:none;padding:0}.bhn-col-list li{font-size:13px;line-height:1.6;color:var(--color-muted);margin-bottom:8px;padding-left:12px;position:relative}.bhn-col-list li:before{content:"—";position:absolute;left:0;color:var(--color-muted)}.article-figure{margin:32px 0 8px}.article-img{width:100%;display:block}.article-caption,.article-caption-standalone{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--color-muted);margin-top:10px;margin-bottom:24px}.editor-note{border-left:2px solid var(--color-accent);padding:16px 20px;margin:32px 0}.editor-note-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:8px}.editor-note p:last-child{font-size:14px;font-style:italic;color:var(--color-muted);line-height:1.7;margin:0}@media(max-width:640px){.article-body{padding:32px 24px 64px}.bhn-columns{grid-template-columns:1fr}}.not-found{min-height:calc(100vh - var(--nav-height));display:flex;align-items:center;justify-content:center}.not-found-body{text-align:center;padding:80px var(--page-px)}.not-found-heading{font-family:var(--font-serif);font-style:normal;font-weight:700;font-size:clamp(32px,4vw,56px);line-height:1.05;letter-spacing:-.02em;color:var(--color-ink);margin-bottom:20px}.not-found-subhead{font-family:var(--font-sans);font-weight:400;font-size:16px;line-height:1.5;color:var(--color-muted);max-width:44ch;margin:0 auto 32px}.not-found-back{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);padding:0;transition:opacity .15s ease}.not-found-back:hover{opacity:.7}.password-page{min-height:calc(100vh - var(--nav-height));display:flex;align-items:center;justify-content:center;padding:0 var(--page-px);text-align:center}.password-content{display:flex;flex-direction:column;align-items:center;gap:0;width:100%}.password-heading{font-family:var(--font-serif);font-style:normal;font-weight:700;font-size:clamp(24px,3.5vw,48px);line-height:1.05;letter-spacing:-.02em;color:var(--color-ink);white-space:nowrap;margin-bottom:16px}.password-subhead{font-family:var(--font-sans);font-size:15px;color:var(--color-muted);margin-bottom:32px}.password-form{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:360px}.password-row{display:flex;gap:0}.password-input{flex:1;font-family:var(--font-sans);font-size:15px;color:var(--color-ink);background:transparent;border:1px solid var(--color-rule);border-right:none;padding:10px 14px;outline:none;transition:border-color .15s ease}.password-input:focus{border-color:var(--color-ink)}.password-input::placeholder{color:var(--color-muted)}.password-submit{font-family:var(--font-mono);font-size:16px;color:var(--color-bg);background:var(--color-ink);border:1px solid var(--color-ink);padding:10px 16px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.password-submit:hover{background:var(--color-accent);border-color:var(--color-accent)}.password-error{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-accent)}
