@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-ExtraBold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-ExtraLight.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--font-body: "Plus Jakarta Sans", sans-serif;--font-size-base: 15px;--font-size-sm: .95rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--line-height-body: 1.7;--line-height-heading: 1.2;--max-width: 720px;--color-bg: #FFFCF0;--color-bg-2: #F2F0E5;--color-text: #100F0F;--color-text-2: #6F6E69;--color-border: #DAD8CE;--color-blue: #4385BE;--video-border-width: 1px;--video-border-color: var(--color-bg)}[data-theme=dark]{--color-bg: #100F0F;--color-bg-2: #1C1B1A;--color-text: #CECDC3;--color-text-2: #878580;--color-border: #282726;--color-blue: #4385BE;--video-border-width: 3px;--video-border-color: #FFFCF0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-body);background-color:var(--color-bg);color:var(--color-text);transition:background-color .2s ease,color .2s ease}body{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}a{color:var(--color-text);text-decoration:underline;transition:color .15s ease}a:hover{color:var(--color-blue)}h1{font-size:var(--font-size-2xl);line-height:var(--line-height-heading);font-weight:900;margin-bottom:.5rem}h2{font-size:var(--font-size-xl);line-height:var(--line-height-heading);font-weight:600;margin-top:2rem;margin-bottom:.75rem}p{margin-bottom:1rem}ul,ol{padding-left:1.5rem;margin-bottom:1rem}ul li::marker{content:"· ";color:var(--color-text-2)}hr{border:none;border-top:1px solid var(--color-border);margin:2rem 0}blockquote{background:var(--color-bg-2);color:var(--color-text);border-left:3px solid var(--color-text-2);border-radius:0 6px 6px 0;padding:.85rem 1.1rem;margin-bottom:1rem}blockquote em{font-style:normal}blockquote>:last-child{margin-bottom:0}:is(article,.content) h2{margin-top:3rem;margin-bottom:.75rem}:is(article,.content) h3{font-size:var(--font-size-lg);line-height:var(--line-height-heading);font-weight:600;margin-top:2.25rem;margin-bottom:.5rem}:is(article,.content) h4{font-size:var(--font-size-base);line-height:var(--line-height-heading);font-weight:600;margin-top:1.75rem;margin-bottom:.5rem}:is(article,.content)>:first-child,:is(article,.content) hr+:is(h2,h3,h4),:is(article,.content) :is(h2,h3,h4)+*{margin-top:0}:is(article,.content) :where(p,ul,ol){margin-bottom:1.25rem}:is(article,.content) :where(blockquote,.table-scroll,pre){margin-top:1.75rem;margin-bottom:1.75rem}:is(article,.content) .table-scroll>table{margin:0}:is(article,.content) p.label+p.label{margin-top:1.75rem}:is(article,.content) :is(h2,h3,h4)+:where(blockquote,pre,.table-scroll){margin-top:1.25rem}blockquote.callout .callout-title{font-weight:700;margin-bottom:.35rem}.section-label{font-size:var(--font-size-lg);font-weight:300;color:var(--color-text-2);line-height:var(--line-height-heading);margin-top:2rem;margin-bottom:.875rem}.section-label:first-child{margin-top:0}.section-label a{color:var(--color-text-2);text-decoration:none}.section-label a:hover{color:var(--color-blue)}html.splash-open,html.splash-open body{overflow:hidden}.splash{position:fixed;inset:0;z-index:100;background:var(--color-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;cursor:pointer;transition:opacity .7s ease}.splash.is-gone{opacity:0;pointer-events:none}.splash-label{font-size:clamp(1.75rem,5vw,2.75rem);font-weight:200;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);margin:0 0 1.5rem;line-height:var(--line-height-heading)}.splash-label a{color:inherit;text-decoration:none}.splash-label a:hover{color:var(--color-blue)}.splash-text{font-size:clamp(1rem,2vw,1.4rem);font-weight:300;color:var(--color-text);line-height:1.7;max-width:600px;margin:0 0 1.25rem}.splash-sub{font-size:clamp(.85rem,1.5vw,1.1rem);font-weight:300;color:var(--color-text-2);line-height:1.7;max-width:560px;margin:0}.splash-cue{position:absolute;bottom:2.5rem;color:var(--color-text-2);display:flex;animation:splash-nudge 2.6s ease-in-out infinite}@keyframes splash-nudge{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(5px);opacity:1}}@media(prefers-reduced-motion:reduce){.splash{transition-duration:.2s}.splash-cue{animation:none;opacity:.6}}.project-list{list-style:none;padding-left:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.project-list li{display:flex;gap:1.5rem;align-items:baseline}.project-list .year{color:var(--color-text-2);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:2.5rem;flex-shrink:0}.project-list div{display:flex;flex-direction:column;gap:.15rem}.project-list a{font-weight:600}.project-list .desc{color:var(--color-text-2);margin-bottom:0}.project-list .desc a{color:inherit;font-weight:inherit}.project-list li+li{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:1.25rem}table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:var(--font-size-sm)}th{text-align:left;font-weight:600;color:var(--color-text);border-bottom:1px solid var(--color-border);padding:.5rem 1rem .5rem 0}td{padding:.5rem 1rem .5rem 0;border-bottom:1px solid var(--color-border);vertical-align:top}td:first-child,th:first-child{font-weight:600}td.nowrap,th.nowrap{white-space:nowrap}tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto}pre{padding:1rem 1.25rem;border-radius:12px;margin:1.5rem 0;font-size:.9rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}:not(pre)>code{font-size:.9em;background:var(--color-bg-2);padding:.15em .35em;border-radius:4px}@media(max-width:768px){body{padding:1.5rem}.empty-col{display:none}}body.full-width{max-width:none;padding:0}
