@import "https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400..700&display=swap";:root{color-scheme:light;--bg:#edf1eb;--paper:#f7f8f3;--ink:#151d18;--muted:#627066;--faint:#c9d1c7;--code-bg:#dfe7e3;--code-bg-warm:#ebe3d5;--accent:#99343c;--brown:#7a5421;--blue:#163f70;--moss:#496b55;--ochre:#a96f25;--rose-wash:#f1e3df;--green-wash:#e4ebe2;--blue-wash:#e1e8ef;--gold-wash:#efe8d5;--content:52rem;--wide:66rem;--serif-display:"Source Serif 4", Georgia, "Times New Roman", Times, serif;--serif:"Source Serif 4", Georgia, "Times New Roman", Times, serif;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:17px}body{background:radial-gradient(circle at 12% 0%, #99343c14, transparent 20rem), radial-gradient(circle at 86% 8%, #163f7014, transparent 22rem), radial-gradient(circle at top left, #ffffff8c, transparent 28rem), var(--bg);min-height:100vh;margin:0}::selection{background:var(--gold-wash);color:var(--ink)}a{color:var(--blue);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--accent)}.site-header,.site-footer{width:min(var(--wide), calc(100% - 2rem));font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;gap:1rem;margin:0 auto;font-size:.72rem;display:flex}.site-header{padding:2rem 0 4rem}.site-header nav{flex-wrap:wrap;gap:1rem;display:flex}.site-header a,.site-footer a{color:var(--muted);text-decoration:none}.site-header nav a:first-child{color:var(--accent)}.site-header nav a:nth-child(2){color:var(--moss)}.site-header nav a:nth-child(3){color:var(--blue)}.site-header nav a:nth-child(4){color:var(--brown)}.site-header nav a:hover{color:var(--ink)}.site-mark{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.32em;text-decoration-thickness:.18em;color:var(--ink)!important}.site-footer{color:var(--muted);padding:5rem 0 2rem}.site-footer p{margin:0}.home-hero,.article-shell,.feature-panel,.index-list{width:min(var(--content), calc(100% - 2rem));margin:0 auto}.home-hero{padding:2rem 0 4rem}.home-hero h1,.article-header h1,.simple-page h1{color:#14251b;font-family:var(--serif-display);letter-spacing:-.035em;max-width:15ch;margin:0;font-size:clamp(2.8rem,7.8vw,4.85rem);font-weight:700;line-height:.98}.home-hero p:not(.kicker),.lede{color:#334038;max-width:36rem;margin:1.45rem 0 0;font-size:clamp(1.15rem,2.2vw,1.42rem);line-height:1.5}.home-links{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;gap:.8rem 1.2rem;margin-top:2rem;font-size:.78rem;display:flex}.home-links a:first-child{color:var(--accent)}.home-links a:nth-child(2){color:var(--blue)}.home-links a:nth-child(3){color:var(--moss)}.kicker{color:var(--accent);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.4rem;font-size:.78rem;font-weight:700}.feature-panel{border:1px solid #c6b7a2;border-left:5px solid var(--ochre);background:linear-gradient(135deg,#efe8d5c7,#f7f8f399),#f7f8f394;padding:1.5rem}.feature-panel h2,.index-list h2,.post-list h2{font-family:var(--serif-display);letter-spacing:-.025em;margin:0;font-size:clamp(1.65rem,4vw,2.3rem);font-weight:650;line-height:1.05}.feature-panel h2 a,.post-list h2 a,.index-list ol a{color:#17221c;text-decoration:none}.feature-panel h2 a:hover,.post-list h2 a:hover,.index-list ol a:hover{color:var(--accent)}.feature-panel p:not(.kicker){color:#3d4840;max-width:42rem;font-size:1.25rem;line-height:1.5}.feature-panel span,.post-list time,.index-list time{color:var(--muted);font-family:var(--mono);font-size:.78rem}.section-rule{background:linear-gradient(90deg, var(--accent), var(--brown) 34%, var(--moss) 68%, var(--blue));height:3px;margin:4rem 0 2rem}.index-list ol,.post-list{gap:1.1rem;padding:0;list-style:none;display:grid}.index-list li{border-bottom:1px solid var(--faint);justify-content:space-between;gap:1rem;padding-bottom:1rem;font-size:1.2rem;display:flex}.index-list li:nth-child(3n+1) a{color:var(--accent)}.index-list li:nth-child(3n+2) a{color:var(--moss)}.index-list li:nth-child(3n+3) a{color:var(--blue)}.article-header{margin-bottom:4rem}.article-meta{color:var(--muted);font-family:var(--mono);flex-wrap:wrap;gap:1.2rem 2rem;margin:3rem 0 0;font-size:.8rem;display:flex}.article-meta div{gap:.45rem;display:flex}.article-meta dt,.article-meta dd{margin:0}.article-meta dt{color:var(--accent)}.article-body{font-size:clamp(1.08rem,2.5vw,1.35rem);line-height:1.58}.article-body h2,.article-body h3,.simple-page h2{letter-spacing:-.035em;margin:4rem 0 1.2rem;line-height:1.1}.article-body h2{color:#18281f;font-family:var(--serif-display);font-size:clamp(2rem,5vw,3rem);font-weight:650}.article-body h3{color:var(--moss);font-family:var(--mono);letter-spacing:.08em;font-size:1.15rem;font-weight:500}.article-body p,.article-body ul,.article-body ol{margin:1.4rem 0}.article-body li+li{margin-top:.75rem}code{background:var(--code-bg);color:#20342a;font-family:var(--mono);border-radius:.14rem;padding:.08em .28em;font-size:.86em}pre{border:1px solid #c3cec3;border-left:3px solid var(--blue);font-family:var(--mono);border-radius:.12rem;margin:1.35rem 0;padding:.85rem 1rem;font-size:.72rem;line-height:1.38;position:relative;overflow-x:auto;box-shadow:.25rem .25rem #e1e8ef8c;color:#253029!important;background:#f8faf5!important}.code-block{border:1px solid #c3cec3;border-left:3px solid var(--blue);background:#f8faf5;border-radius:.12rem;margin:1.35rem 0;overflow:hidden;box-shadow:.25rem .25rem #e1e8ef8c}.code-block-header{color:var(--blue);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;background:#e1e8efb8;border-bottom:1px solid #c3cec3;align-items:center;gap:.6rem;padding:.55rem .8rem;font-size:.62rem;font-weight:700;line-height:1;display:flex}.code-block-label{margin-right:auto}.code-block-meta{color:var(--muted);letter-spacing:.04em;text-transform:none;font-weight:600}.code-block-content{position:relative}.code-block pre{box-shadow:none;border:0;border-radius:0;margin:0}.code-block.is-collapsible:not(.is-expanded) pre{max-height:11.636rem;overflow:auto hidden}.code-block.is-expanded pre{padding-bottom:3.4rem}.code-block.is-collapsible:not(.is-expanded) .code-block-content:after{content:"";pointer-events:none;background:linear-gradient(#f8faf500,#f8faf5 68%);height:4.75rem;position:absolute;bottom:0;left:0;right:0}.code-block-toggle{z-index:1;background:var(--paper);color:var(--blue);cursor:pointer;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid #b8c6bc;border-radius:999px;padding:.42rem .68rem;font-size:.62rem;font-weight:700;line-height:1;position:absolute;bottom:.75rem;right:.85rem;box-shadow:.18rem .18rem #163f701f}.code-block-toggle:hover,.code-block-toggle:focus-visible{border-color:var(--blue);color:var(--accent)}.code-block pre:before{display:none}pre:before{content:attr(data-language);color:var(--blue);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;background:#e1e8efd6;border:1px solid #c8d4df;border-radius:999px;padding:.12rem .35rem;font-size:.52rem;font-weight:700;line-height:1;position:absolute;top:.38rem;right:.45rem}pre code{color:inherit;font-size:inherit;line-height:inherit;background:0 0;padding:0;display:block}pre .line{display:block}pre .line:empty{display:none}hr{background:linear-gradient(90deg, var(--ink), var(--accent) 52%, var(--moss));border:0;height:3px;margin:4rem 0}table{border:1px solid var(--faint);border-collapse:collapse;width:100%;font-family:var(--mono);background:#f7f8f3a6;margin:2rem 0;font-size:.8rem}th,td{border-bottom:1px solid var(--faint);text-align:left;vertical-align:top;padding:.85rem 1rem}th{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;font-weight:600}.danger{color:var(--accent);font-size:.82em}.run-meta{border-bottom:3px solid var(--accent);color:var(--muted);font-family:var(--mono);margin:3rem 0;padding-bottom:2rem;font-size:.86rem;line-height:1.8}.report-cards{border:1px solid var(--faint);background:#f7f8f380;grid-template-columns:repeat(3,1fr);margin:4rem 0;display:grid}.report-cards article{border-top:4px solid var(--accent);padding:1.35rem}.report-cards article:nth-child(2){border-top-color:var(--ochre)}.report-cards article:nth-child(3){border-top-color:var(--moss)}.report-cards article+article{border-left:1px solid var(--faint)}.report-cards p{color:var(--accent);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;margin:0 0 1rem;font-size:.78rem;font-weight:700}.report-cards article:nth-child(2) p{color:var(--ochre)}.report-cards article:nth-child(3) p{color:var(--moss)}.report-cards h2{font-family:var(--serif-display);margin:0 0 .7rem;font-size:1.45rem;font-weight:650;line-height:1.18}.report-cards span{color:var(--muted);font-size:.95rem;line-height:1.45}.callout{border:1px solid var(--faint);border-left:4px solid var(--brown);background:linear-gradient(90deg,#efe8d5a6,#f7f8f3b8 8rem);margin:2.5rem 0;padding:1.2rem 1.5rem}.callout-red{border-left-color:var(--accent);background:linear-gradient(90deg,#f1e3dfb8,#f7f8f3b8 8rem)}.callout-neutral{border-left-color:var(--moss);background:linear-gradient(90deg,#e4ebe2b8,#f7f8f3b8 8rem)}.callout-eyebrow{color:var(--brown);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;font-weight:700;margin:0 0 1rem!important}.post-list{border-top:1px solid var(--faint);gap:0;margin:2.5rem -.85rem 0}.post-row{border-bottom:1px solid var(--faint);grid-template-columns:8.25rem minmax(0,1fr);gap:1.25rem;padding:1rem .85rem 1rem 1.05rem;transition:background .16s,transform .16s;display:grid;position:relative}.post-row:before{content:"";background:var(--accent);opacity:.72;width:3px;position:absolute;top:1rem;bottom:1rem;left:0}.post-row:nth-child(3n+2):before{background:var(--moss)}.post-row:nth-child(3n+3):before{background:var(--blue)}.post-row:hover{background:#f7f8f39e;transform:translate(.16rem)}.post-row-meta{font-family:var(--mono);align-content:start;gap:.35rem;padding-top:.15rem;font-size:.68rem;line-height:1.35;display:grid}.post-row-meta span{color:var(--brown);letter-spacing:.14em;text-transform:uppercase;font-weight:700}.post-row-body h2{margin:0;font-size:clamp(1.2rem,2.3vw,1.55rem);line-height:1.12}.post-row-body p{color:#3d4840;max-width:42rem;margin:.4rem 0 0;font-size:.98rem;line-height:1.42}.simple-page{min-height:45vh}.about-grid{width:min(var(--wide), calc(100% - 2rem));grid-template-columns:minmax(0,1fr) 18rem;gap:4rem;margin:0 auto;display:grid}.about-grid h1{font-family:var(--serif-display);letter-spacing:-.035em;margin:0;font-size:clamp(3rem,9vw,5.2rem);font-weight:700;line-height:.98}.about-grid p:not(.kicker){color:#334038;font-size:1.2rem;line-height:1.6}.about-grid img{width:100%;box-shadow:1rem 1rem 0 var(--gold-wash);filter:grayscale(.15);border:1px solid #b8a78f;display:block;rotate:2deg}.about-grid dl{font-family:var(--mono);margin:2rem 0 0;font-size:.78rem}.about-grid div:has(>dt){border-bottom:1px solid var(--faint);padding:.85rem 0}.about-grid dt,.about-grid dd{margin:0}.about-grid dt{color:var(--accent);letter-spacing:.14em;text-transform:uppercase}.about-grid dd{margin-top:.25rem}.project-card{border:1px solid #b9c7bd;border-top:5px solid var(--moss);background:linear-gradient(135deg,#e4ebe2c7,#f7f8f399),#f7f8f394;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem;margin-top:3rem;padding:1rem;display:grid}.project-card video,.article-media{border:1px solid #9fb2a5;width:100%;display:block}.project-card h2{color:#183326;font-family:var(--serif-display);letter-spacing:-.025em;margin:0 0 1rem;font-size:clamp(2rem,5vw,3.2rem);font-weight:650;line-height:1}.project-actions{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap;gap:1rem;font-size:.8rem;display:flex}.project-actions a:first-child{color:var(--moss)}.project-actions a:last-child{color:var(--accent)}.media-caption{color:var(--muted);font-family:var(--mono);text-align:center;margin-top:.5rem;font-size:.72rem;display:block}.article-body img{border:1px solid #b8c2b8;max-width:100%;margin:2rem auto 0;display:block;box-shadow:.65rem .65rem #e1e8efcc}.cv-page{width:min(var(--wide), calc(100% - 2rem));grid-template-columns:minmax(0,1fr) 16rem;gap:2rem 4rem;margin:0 auto;display:grid}.cv-page header{border-bottom:3px solid var(--blue);grid-column:1/-1;padding-bottom:2rem}.cv-page h1{font-family:var(--serif-display);letter-spacing:-.035em;margin:0;font-size:clamp(3rem,8vw,5rem);font-weight:700;line-height:.95}.cv-page header p:not(.kicker){color:var(--muted);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase}.cv-page aside{border:1px solid #9eb1c4;border-top:5px solid var(--blue);background:var(--blue-wash);font-family:var(--mono);grid-area:2/2;align-self:start;padding:1.3rem;font-size:.78rem}.cv-page main{grid-area:2/1}.cv-page section{margin-bottom:2.5rem}.cv-page h2{color:var(--accent);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;font-size:.85rem}.cv-page h3{color:#183326;margin:1.4rem 0 .3rem;font-size:1.25rem;line-height:1.2}.cv-page p,.cv-page li{color:#334038;line-height:1.55}.cv-date{font-family:var(--mono);margin:0 0 .7rem;font-size:.78rem;color:var(--brown)!important}@media (width<=760px){html{font-size:16px}.site-header,.site-footer,.index-list li{display:block}.site-header nav{margin-top:.9rem}.site-header{padding-bottom:2.5rem}.home-hero,.article-shell,.feature-panel,.index-list{width:min(100% - 1.2rem, var(--content))}.report-cards{grid-template-columns:1fr}.about-grid,.project-card,.cv-page{width:min(100% - 1.2rem, var(--wide));grid-template-columns:1fr}.cv-page header,.cv-page aside,.cv-page main{grid-area:auto}.report-cards article+article{border-top:1px solid var(--faint);border-left:0}.post-list{margin-left:0;margin-right:0}.post-row{grid-template-columns:1fr;gap:.45rem;padding:.95rem .75rem .95rem 1rem}.post-row:hover{transform:none}.post-row-meta{flex-wrap:wrap;gap:.4rem .75rem;display:flex}table{white-space:nowrap;display:block;overflow-x:auto}}
