:root{--monospace: Menlo, Consolas, monospace;--monospace-font: 14px/1.5 var(--monospace);--serif: "Source Serif 4", "Iowan Old Style", "Apple Garamond", "Palatino Linotype", "Times New Roman", "Droid Serif", Times, serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--sans-serif: -apple-system, BlinkMacSystemFont, "avenir next", avenir, helvetica, "helvetica neue", ubuntu, roboto, noto, "segoe ui", arial, sans-serif;--theme-blue: #4269d0;--theme-green: #3ca951;--theme-red: #ff725c;--theme-yellow: #efb118}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--theme-background);color:var(--theme-foreground)}body{font:17px/1.5 var(--serif);margin:0}a[href]{color:var(--theme-foreground-focus)}h1,h2,h3,h4,h5,h6{color:var(--theme-foreground-alt);font-weight:700;line-height:1.15;margin-top:0;margin-bottom:.25rem;text-wrap:balance}h2+p,h3+p,h4+p,h2+table,h3+table,h4+table{margin-top:0}h1+h2{color:var(--theme-foreground);font-size:20px;font-style:italic;font-weight:400;margin-bottom:1rem}a[href]{text-decoration:none}a[href]:hover,a[href]:focus{text-decoration:underline}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-size:90%}pre{line-height:1.5}pre,code,tt{font-family:var(--monospace);font-size:14px}img{max-width:100%}p,table,figure,figcaption,h1,h2,h3,h4,h5,h6,.katex-display{max-width:640px}blockquote,ol,ul{max-width:600px}blockquote{margin:1rem 1.5rem}ul ol{padding-left:28px}hr{height:1px;margin:1rem 0;padding:1rem 0;border:none;background:no-repeat center/100% 1px linear-gradient(to right,var(--theme-foreground-faintest),var(--theme-foreground-faintest))}pre{background-color:var(--theme-background-alt);border-radius:4px;margin:1rem -1rem;max-width:960px;min-height:1.5em;padding:.5rem 1rem;overflow-x:auto;box-sizing:border-box}input:not([type]),input[type=email],input[type=number],input[type=password],input[type=range],input[type=search],input[type=tel],input[type=text],input[type=url]{width:240px}input,canvas,button{vertical-align:middle}button,input,textarea{accent-color:var(--theme-blue)}table{width:100%;border-collapse:collapse;font:13px/1.2 var(--sans-serif)}table pre,table code,table tt{font-size:inherit;line-height:inherit}th>pre:only-child,td>pre:only-child{margin:0;padding:0}th{color:var(--theme-foreground);text-align:left;vertical-align:bottom}td{color:var(--theme-foreground-alt);vertical-align:top}th,td{padding:3px 6.5px 3px 0}th:last-child,td:last-child{padding-right:0}tr:not(:last-child){border-bottom:solid 1px var(--theme-foreground-faintest)}thead tr{border-bottom:solid 1px var(--theme-foreground-fainter)}figure,table{margin:1rem 0}figure img{max-width:100%}figure>h2,figure>h3{font-family:var(--sans-serif)}figure>h2{font-size:20px}figure>h3{font-size:16px;font-weight:400}figcaption{font:small var(--sans-serif);color:var(--theme-foreground-muted)}a[href].observablehq-header-anchor{color:inherit}:root{--font-big: 700 32px/1 var(--sans-serif);--font-small: 14px var(--sans-serif)}.big{font:var(--font-big)}.small{font:var(--font-small)}.red{color:var(--theme-red)}.yellow{color:var(--theme-yellow)}.green{color:var(--theme-green)}.blue{color:var(--theme-blue)}.muted{color:var(--theme-foreground-muted)}.observablehq--draft>h1:first-of-type:after{content:" [DRAFT]";color:var(--theme-foreground-muted)}:root{--theme-caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M5 7L8.125 9.5L11.25 7' stroke='black' stroke-width='1.5' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");--theme-toggle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m10.5,11 2.5-3-2.5-3 M6,8h7' fill='none' stroke='black' stroke-width='2'/%3E%3Crect x='2' y='2' fill='currentColor' height='12' rx='0.5' width='2'/%3E%3C/svg%3E");--theme-magnifier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath stroke='currentColor' stroke-width='2' fill='none' d='M15,15L10.5,10.5a3,3 0 1,0 -6 -6a3,3 0 1,0 6 6'%3E%3C/path%3E%3C/svg%3E");--observablehq-max-width: 1440px;--observablehq-header-height: 2.2rem;scroll-padding-top:2.5rem}:root:has(#observablehq-header){scroll-padding-top:calc(var(--observablehq-header-height) + 2.5rem)}body{max-width:var(--observablehq-max-width);margin:auto}#observablehq-main,#observablehq-header,#observablehq-footer{margin:1rem auto}#observablehq-header{position:fixed;top:0;left:calc(max(0rem,(100vw - var(--observablehq-max-width)) / 2) + var(--observablehq-inset-left) + 2rem);right:calc(max(0rem,(100vw - var(--observablehq-max-width)) / 2) + var(--observablehq-inset-right) + 2rem);z-index:2;display:flex;align-items:center;gap:.5rem;height:var(--observablehq-header-height);margin:0 -2rem 2rem;padding:1rem 2rem .5rem;background:var(--theme-background);border-bottom:solid 1px var(--theme-foreground-faintest);font:500 16px var(--sans-serif)}#observablehq-main{min-height:calc(100vh - 20rem);position:relative;z-index:0}#observablehq-header~#observablehq-main{margin-top:calc(var(--observablehq-header-height) + 1.5rem + 2rem)}#observablehq-footer{display:block;margin-top:10rem;font:12px var(--sans-serif);color:var(--theme-foreground-faint)}#observablehq-footer nav{display:grid;max-width:640px;grid-template-columns:1fr 1fr;column-gap:1rem;margin-bottom:1rem}#observablehq-footer nav a{display:flex;flex-direction:column;border:1px solid var(--theme-foreground-fainter);border-radius:8px;padding:1rem;line-height:1rem;text-decoration:none}#observablehq-footer nav a span{font-size:14px}#observablehq-footer nav a:hover span{text-decoration:underline}#observablehq-footer nav a:hover{border-color:var(--theme-foreground-focus)}#observablehq-footer nav a[rel=prev]{grid-column:1;align-items:start}#observablehq-footer nav a[rel=next]{grid-column:2;align-items:end}#observablehq-footer nav a:before{color:var(--theme-foreground-faint)}#observablehq-footer nav a[rel=prev]:before{content:"Previous page"}#observablehq-footer nav a[rel=next]:before{content:"Next page"}#observablehq-center{margin:2rem;--observablehq-inset-left: 0rem;--observablehq-inset-right: 0rem}#observablehq-sidebar{--observablehq-sidebar-padding-left: max(0rem, (100vw - var(--observablehq-max-width)) / 2) ;position:fixed;background:var(--theme-background-alt);color:var(--theme-foreground-muted);font:14px var(--sans-serif);visibility:hidden;font-weight:500;width:calc(272px + var(--observablehq-sidebar-padding-left));z-index:3;top:0;bottom:0;left:-272px;box-sizing:border-box;padding:0 .5rem 1rem calc(var(--observablehq-sidebar-padding-left) + .5rem);overflow-y:auto}#observablehq-sidebar ol,#observablehq-toc ol{list-style:none;margin:0;padding:0}#observablehq-sidebar>ol,#observablehq-sidebar>details,#observablehq-sidebar>section{position:relative;padding-bottom:.5rem;margin:.5rem 0;border-bottom:solid 1px var(--theme-foreground-faintest)}#observablehq-sidebar>ol:first-child{position:sticky;top:0;z-index:1;font-size:16px;font-weight:700;padding-top:1rem;margin:0;color:var(--theme-foreground)}#observablehq-sidebar>ol:first-child:before{content:"";position:absolute;inset:0 -.5rem;background:var(--theme-background-alt)}#observablehq-sidebar>ol:first-child>li{position:relative}#observablehq-sidebar>ol:first-child>li>a{height:calc(var(--observablehq-header-height) - 1rem)}#observablehq-sidebar>ol:last-child,#observablehq-sidebar>details:last-child,#observablehq-sidebar>section:last-child{border-bottom:none}#observablehq-sidebar summary{font-weight:700;color:var(--theme-foreground);cursor:default}#observablehq-sidebar summary::-webkit-details-marker,#observablehq-sidebar summary::marker{display:none}#observablehq-sidebar details summary:after{position:absolute;right:0;width:1rem;height:1rem;background:var(--theme-foreground-muted);content:"";-webkit-mask:var(--theme-caret);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask:var(--theme-caret);mask-repeat:no-repeat;mask-position:center;padding:.5rem;transition:transform .25s ease;transform:rotate(-90deg);transform-origin:50% 50%}#observablehq-sidebar details summary:hover:after{color:var(--theme-foreground)}#observablehq-sidebar details[open] summary:after{transform:rotate(0)}#observablehq-sidebar-toggle{position:fixed;appearance:none;background:none;top:0;left:0;height:100%;width:2rem;display:flex;align-items:center;justify-content:center;cursor:e-resize;margin:0;color:var(--theme-foreground-muted);z-index:1}#observablehq-sidebar-close{position:absolute;top:1rem;right:0;width:2rem;height:var(--observablehq-header-height);display:flex;align-items:center;justify-content:center;color:var(--theme-foreground-muted);cursor:w-resize;z-index:2}#observablehq-sidebar-toggle:before,#observablehq-sidebar-close:before{content:"";width:1rem;height:1rem;background:currentColor;-webkit-mask:var(--theme-toggle);mask:var(--theme-toggle)}#observablehq-sidebar-close:before{transform:scaleX(-1)}#observablehq-sidebar summary,.observablehq-link a{display:flex;padding:.5rem 1rem .5rem 1.5rem;margin-left:-.5rem;align-items:center}#observablehq-sidebar summary a{flex-grow:1;color:inherit}#observablehq-sidebar summary.observablehq-link{padding:0;margin-left:0}#observablehq-sidebar details summary:hover,.observablehq-link-active a,.observablehq-link a:hover{background:var(--theme-background)}.observablehq-link a:hover{color:var(--theme-foreground-focus)}#observablehq-toc{display:none;position:fixed;color:var(--theme-foreground-muted);font:400 14px var(--sans-serif);z-index:1;top:0;right:calc(max(0rem,(100% - var(--observablehq-max-width)) / 2) + 1rem);bottom:0;overflow-y:auto}#observablehq-header~#observablehq-toc{top:calc(var(--observablehq-header-height) + 1.5rem)}#observablehq-toc nav{width:192px;margin:2rem 0;padding:0 1rem;box-sizing:border-box;border-left:solid 1px var(--theme-foreground-faintest)}#observablehq-toc div{font-weight:700;color:var(--theme-foreground);margin-bottom:.5rem}.observablehq-secondary-link a{display:block;padding:.25rem 0}.observablehq-link:not(.observablehq-link-active) a[href]:not(:hover),.observablehq-secondary-link:not(.observablehq-secondary-link-active) a[href]:not(:hover){color:inherit}.observablehq-link-active,.observablehq-secondary-link-active{position:relative}.observablehq-link-active:before,.observablehq-secondary-link-highlight{content:"";position:absolute;width:3px;background:var(--theme-foreground-focus)}.observablehq-link-active:before{top:0;bottom:0;left:-.5rem}.observablehq-secondary-link-highlight{left:1px;top:2rem;height:0;transition:top .15s ease,height .15s ease}#observablehq-sidebar{transition:visibility .15s 0ms,left .15s 0ms ease}#observablehq-sidebar:focus-within,#observablehq-sidebar-toggle:checked~#observablehq-sidebar{left:0;visibility:initial;box-shadow:0 0 8px 4px #0000001a;transition:visibility 0ms 0ms,left .15s 0ms ease}#observablehq-sidebar-backdrop{display:none;position:fixed;inset:0;z-index:2}#observablehq-sidebar-backdrop:has(~#observablehq-sidebar:focus-within),#observablehq-sidebar-toggle:checked~#observablehq-sidebar-backdrop{display:initial}@media(prefers-color-scheme:dark){#observablehq-sidebar:focus-within,#observablehq-sidebar-toggle:checked~#observablehq-sidebar{box-shadow:0 0 8px 4px #00000080}}@media (min-width: calc(912px + 6rem)){#observablehq-sidebar{transition:none!important}#observablehq-sidebar-toggle:checked~#observablehq-sidebar-backdrop{display:none}#observablehq-sidebar-toggle:checked~#observablehq-sidebar,#observablehq-sidebar-toggle:indeterminate~#observablehq-sidebar{left:0;visibility:initial;box-shadow:none}#observablehq-sidebar-toggle:checked~#observablehq-center,#observablehq-sidebar-toggle:indeterminate~#observablehq-center{--observablehq-inset-left: calc(272px + 1rem) ;--observablehq-inset-right: 1rem;padding-left:var(--observablehq-inset-left);padding-right:1rem}}@media (min-width: calc(832px + 5rem)){#observablehq-toc~#observablehq-main{padding-right:calc(192px + 1rem)}#observablehq-toc{display:block}}@media (min-width: calc(912px + 6rem)){#observablehq-sidebar-toggle:checked~#observablehq-center #observablehq-toc,#observablehq-sidebar-toggle:indeterminate~#observablehq-center #observablehq-toc{display:none}#observablehq-sidebar-toggle:checked~#observablehq-center #observablehq-toc~#observablehq-main,#observablehq-sidebar-toggle:indeterminate~#observablehq-center #observablehq-toc~#observablehq-main{padding-right:0}}@media (min-width: calc(1104px + 7rem)){#observablehq-sidebar-toggle:checked~#observablehq-center #observablehq-toc,#observablehq-sidebar-toggle:indeterminate~#observablehq-center #observablehq-toc,#observablehq-toc{display:block}#observablehq-sidebar-toggle:checked~#observablehq-center #observablehq-toc~#observablehq-main,#observablehq-sidebar-toggle:indeterminate~#observablehq-center #observablehq-toc~#observablehq-main{padding-right:calc(192px + 1rem)}}.observablehq-pre-container{position:relative;margin:1rem -1rem;max-width:960px}.observablehq-pre-container:after{position:absolute;top:0;right:0;height:21px;font:12px var(--sans-serif);color:var(--theme-foreground-muted);background:linear-gradient(to right,transparent,var(--theme-background-alt) 40%);padding:.5rem .5rem .5rem 1.5rem}.observablehq-pre-container[data-language]:after{content:attr(data-language)}.observablehq-pre-container pre{padding-right:4rem;margin:0;max-width:none}.observablehq-pre-copy{position:absolute;top:0;right:0;background:none;color:transparent;border:none;border-radius:4px;padding:0 8px;margin:4px;height:29px;cursor:pointer;z-index:1;display:flex;align-items:center}.observablehq-pre-copied:before{content:"Copied!";position:absolute;right:calc(100% + .25rem);background:linear-gradient(to right,transparent,var(--theme-background-alt) 10%);color:var(--theme-green);font:var(--font-small);padding:4px 8px 4px 16px;pointer-events:none;animation-name:observablehq-pre-copied;animation-duration:.25s;animation-direction:alternate;animation-iteration-count:2}@keyframes observablehq-pre-copied{0%{opacity:0;transform:translate(.5rem)}50%{opacity:1}to{transform:translate(0)}}.observablehq-pre-container[data-copy] .observablehq-pre-copy,.observablehq-pre-container:hover .observablehq-pre-copy,.observablehq-pre-container .observablehq-pre-copy:focus{background:var(--theme-background-alt);color:var(--theme-foreground-faint)}.observablehq-pre-container .observablehq-pre-copy:hover{color:var(--theme-foreground-muted)}.observablehq-pre-container .observablehq-pre-copy:active{color:var(--theme-foreground);background:var(--theme-foreground-faintest)}#observablehq-sidebar.observablehq-search-results>ol:not(:first-child),#observablehq-sidebar.observablehq-search-results>details,#observablehq-sidebar.observablehq-search-results>section{display:none}#observablehq-search{position:relative;padding:.5rem 0 0;display:flex;align-items:center}#observablehq-search input{padding:6px 4px 6px 2.2em;width:100%;border:none;border-radius:4px;background-color:var(--theme-background);font-size:13.3px;height:28px}#observablehq-search input::placeholder{color:var(--theme-foreground-faint)}#observablehq-search:before{position:absolute;left:.5rem;content:"";width:1rem;height:1rem;background:currentColor;-webkit-mask:var(--theme-magnifier);mask:var(--theme-magnifier);pointer-events:none}#observablehq-search:after{position:absolute;right:6px;content:attr(data-shortcut);pointer-events:none}#observablehq-search:focus-within:after{content:""}#observablehq-search-results{--relevance-width: 32px;position:absolute;overflow-y:auto;top:6.5rem;left:var(--observablehq-sidebar-padding-left);right:.5rem;bottom:0}#observablehq-search-results a span{max-width:184px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#observablehq-search-results div{text-align:right;font-size:10px;margin:.5em}#observablehq-search-results li{position:relative;display:flex;align-items:center}#observablehq-search-results a{flex-grow:1}#observablehq-search-results li:after,#observablehq-search-results a span:after{content:"";width:var(--relevance-width);height:4px;position:absolute;top:14px;right:.5em;border-radius:2px;background:var(--theme-foreground-muted)}#observablehq-search-results li.observablehq-link-active:after{background:var(--theme-foreground-focus)}#observablehq-search-results a span:after{background:var(--theme-foreground-faintest)}#observablehq-search-results li[data-score="0"]:after{width:calc(var(--relevance-width) * .125)}#observablehq-search-results li[data-score="1"]:after{width:calc(var(--relevance-width) * .25)}#observablehq-search-results li[data-score="2"]:after{width:calc(var(--relevance-width) * .4375)}#observablehq-search-results li[data-score="3"]:after{width:calc(var(--relevance-width) * .625)}#observablehq-search-results li[data-score="4"]:after{width:calc(var(--relevance-width) * .8125)}@media print{#observablehq-center{padding-left:1em!important}#observablehq-sidebar,#observablehq-footer{display:none!important}}#observablehq-main{container-type:inline-size}.grid{margin:1rem 0;display:grid;gap:1rem;grid-auto-rows:1fr}.grid svg{overflow:visible}.grid figure{margin:0}.grid>*>p:first-child{margin-top:0}.grid>*>p:last-child{margin-bottom:0}@container (min-width: 640px){.grid-cols-2,.grid-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-2 .grid-colspan-2,.grid-cols-2 .grid-colspan-3,.grid-cols-2 .grid-colspan-4,.grid-cols-4 .grid-colspan-2,.grid-cols-4 .grid-colspan-3,.grid-cols-4 .grid-colspan-4{grid-column:span 2}}@container (min-width: 720px){.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-3 .grid-colspan-2{grid-column:span 2}.grid-cols-3 .grid-colspan-3{grid-column:span 3}}@container (min-width: 1080px){.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-4 .grid-colspan-3{grid-column:span 3}.grid-cols-4 .grid-colspan-4{grid-column:span 4}}.grid-rowspan-2{grid-row:span 2}.grid-rowspan-3{grid-row:span 3}.grid-rowspan-4{grid-row:span 4}.note,.tip,.warning,.caution{border-left:solid 1px;border-radius:0 4px 4px 0;padding:1rem 2rem;margin:1rem 0;box-sizing:border-box;max-width:640px}.note:before,.tip:before,.warning:before,.caution:before{display:block;margin-bottom:1rem;font-weight:700}.note{border-left-color:var(--theme-foreground-fainter);background-color:var(--theme-background-alt)}.note:before{content:"Note";color:var(--theme-foreground-muted)}.tip{border-left-color:var(--theme-green);background-color:color-mix(in srgb,var(--theme-green),var(--theme-background) 90%)}.tip:before{content:"Tip";color:var(--theme-green)}.warning{border-left-color:var(--theme-yellow);background-color:color-mix(in srgb,var(--theme-yellow),var(--theme-background) 90%)}.warning:before{content:"Warning";color:var(--theme-yellow)}.caution{border-left-color:var(--theme-red);background-color:color-mix(in srgb,var(--theme-red),var(--theme-background) 90%)}.caution:before{content:"Caution";color:var(--theme-red)}.note[label]:before,.tip[label]:before,.warning[label]:before,.caution[label]:before{content:attr(label)}.note>:first-child,.tip>:first-child,.warning>:first-child,.caution>:first-child{margin-top:0}.note>:last-child,.tip>:last-child,.warning>:last-child,.caution>:last-child{margin-bottom:0}.card{background:var(--theme-background-alt);border:solid 1px var(--theme-foreground-faintest);border-radius:.75rem;padding:1rem;margin:1rem 0;font:14px var(--sans-serif)}.grid>.card{margin:0}.card>:first-child,.card>:first-child>:first-child{margin-top:0}.card>:last-child,.card>:last-child>:last-child{margin-bottom:0}.card h2,.card h3{font-size:inherit}.card h2{font-weight:500;font-size:15px}.card h3{font-weight:400;color:var(--theme-foreground-muted)}.card h2~svg,.card h3~svg,.card h2~p,.card h3~p{margin-top:1rem}.observablehq--block:empty{margin:0}@keyframes observablehq-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}observablehq-loading{font:var(--monospace-font);color:var(--theme-foreground-muted);display:inline-block;transform-origin:.32em 55%;animation-name:observablehq-loading;animation-timing-function:linear;animation-duration:1s;animation-iteration-count:infinite}observablehq-loading:before{content:"\21bb"}.observablehq--block observablehq-loading{display:block}.observablehq--block{margin:1rem 0}.observablehq--block .observablehq,.observablehq--block .observablehq--inspect{display:block}.observablehq--collapsed,.observablehq--expanded.observablehq--inspect a{cursor:pointer}.observablehq--caret{margin-right:4px;vertical-align:baseline}.observablehq--field{text-indent:-1rem;margin-left:1rem}.observablehq--inspect{font:var(--monospace-font);overflow-x:auto;white-space:pre}.observablehq--inspect.observablehq--import{white-space:normal}.observablehq--inspect::-webkit-scrollbar{display:none}.observablehq--error .observablehq--inspect{word-break:break-all;white-space:pre-wrap}.observablehq--string-expand{margin-left:6px;padding:2px 6px;border-radius:2px;font-size:80%;background:var(--theme-background-alt);cursor:pointer;vertical-align:middle}.observablehq--keyword,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:var(--syntax-keyword)}.observablehq--symbol,.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:var(--syntax-entity)}.observablehq--index,.observablehq--key,.hljs-attr,.hljs-attribute,.hljs-meta,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:var(--syntax-constant)}.observablehq--regexp,.observablehq--string,.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:var(--syntax-string)}.observablehq--null,.observablehq--undefined,.hljs-built_in,.hljs-literal,.hljs-symbol{color:var(--syntax-variable)}.observablehq--prototype-key,.observablehq--empty,.hljs-comment,.hljs-formula{color:var(--syntax-comment)}.observablehq--bigint,.observablehq--boolean,.observablehq--date,.observablehq--forbidden,.observablehq--number,.hljs-name,.hljs-number,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:var(--syntax-entity-tag)}.hljs-subst{color:var(--syntax-storage-modifier-import)}.hljs-section{color:var(--syntax-markup-heading);font-weight:700}.hljs-bullet{color:var(--syntax-markup-list)}.hljs-emphasis{color:var(--syntax-markup-italic);font-style:italic}.hljs-strong{color:var(--syntax-markup-bold);font-weight:700}.hljs-addition{color:var(--syntax-markup-inserted);background-color:var(--syntax-markup-inserted-background)}.hljs-deletion{color:var(--syntax-markup-deleted);background-color:var(--syntax-markup-deleted-background)}.observablehq--empty{font-style:oblique}.observablehq--error{color:var(--syntax-keyword)}.plot-d6a7b5{--plot-background: var(--theme-background)}p .plot-d6a7b5{display:inline-block}:root{color-scheme:light dark;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif: "Source Serif 4", ui-serif, Georgia, "Times New Roman", serif;--ink: #17231f;--muted: #59645f;--faint: #78817c;--surface: #f4f1e9;--surface-strong: #fbfaf6;--surface-soft: #ebe8df;--surface-wash: #dfe7e1;--line: #d0d3ca;--line-strong: #9ca9a2;--accent: #2d7165;--accent-strong: #174b43;--warm: #b95f47;--warm-soft: #f1ddd3;--focus: #a84b36;--control-bg: #ebe8df;--control-fg: #17231f;--primary-bg: #174b43;--primary-fg: #ffffff;--shadow: 0 18px 48px rgb(25 37 31 / .1);--chart-risk: #126b6a;--chart-systems: #3269b8;--chart-social: #8a6500;--chart-accountability: #aa3f5d;--chart-consulting: #8a5a2b;--chart-neutral: #6e7781;--chart-grid: rgb(23 32 42 / .14);--chart-band: rgb(13 111 104 / .07);--matrix-low: #eef2ef;--matrix-high: #0d6f68;--max: 1160px;--measure: 76ch}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--ink: #eef3ef;--muted: #b8c3be;--faint: #8e9b95;--surface: #101413;--surface-strong: #171d1b;--surface-soft: #1e2724;--surface-wash: #26302c;--line: #32403b;--line-strong: #51645e;--accent: #82d8c9;--accent-strong: #b6f2e8;--warm: #f09a7f;--warm-soft: #402820;--focus: #ffb19f;--control-bg: #26302c;--control-fg: #eef3ef;--primary-bg: #b6f2e8;--primary-fg: #101413;--shadow: 0 22px 58px rgb(0 0 0 / .34);--chart-risk: #6fd2c8;--chart-systems: #8cb7ff;--chart-social: #e8c064;--chart-accountability: #f28bae;--chart-consulting: #d69b66;--chart-neutral: #aab4ae;--chart-grid: rgb(238 243 239 / .13);--chart-band: rgb(130 216 201 / .08);--matrix-low: #253a35;--matrix-high: #79d8cc}}:root[data-theme=dark]{color-scheme:dark;--ink: #eef3ef;--muted: #b8c3be;--faint: #8e9b95;--surface: #101413;--surface-strong: #171d1b;--surface-soft: #1e2724;--surface-wash: #26302c;--line: #32403b;--line-strong: #51645e;--accent: #82d8c9;--accent-strong: #b6f2e8;--warm: #f09a7f;--warm-soft: #402820;--focus: #ffb19f;--control-bg: #26302c;--control-fg: #eef3ef;--primary-bg: #b6f2e8;--primary-fg: #101413;--shadow: 0 22px 58px rgb(0 0 0 / .34);--chart-risk: #6fd2c8;--chart-systems: #8cb7ff;--chart-social: #e8c064;--chart-accountability: #f28bae;--chart-consulting: #d69b66;--chart-neutral: #aab4ae;--chart-grid: rgb(238 243 239 / .13);--chart-band: rgb(130 216 201 / .08);--matrix-low: #253a35;--matrix-high: #79d8cc}:root[data-theme=light]{color-scheme:light}html{background:var(--surface);color:var(--ink)}body{margin:0;background:radial-gradient(circle at 16% -10%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 34rem),linear-gradient(180deg,var(--surface-strong),var(--surface) 30rem);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.62}a[href]{color:var(--accent-strong);text-decoration-thickness:.08em;text-underline-offset:.16em}a[href]:hover{color:var(--accent)}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{position:absolute;left:1rem;top:.5rem;z-index:30;transform:translateY(-150%);background:var(--ink);color:var(--surface);padding:.55rem .75rem}.skip-link:focus{transform:translateY(0)}#observablehq-center{margin:0}#observablehq-header{position:sticky;top:0;left:auto;right:auto;z-index:20;display:block;height:auto;margin:0;padding:0;border:0;background:transparent;font:inherit}#observablehq-header~#observablehq-main{margin-top:0}.site-header{border-bottom:1px solid color-mix(in srgb,var(--line) 74%,transparent);background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 1px color-mix(in srgb,var(--surface-strong) 38%,transparent) inset;backdrop-filter:blur(18px) saturate(1.1)}.site-footer{border-top:1px solid var(--line);margin-top:5rem;background:var(--surface-soft)}.site-bar,.site-footer p,#observablehq-main{box-sizing:border-box;width:min(calc(100% - 2rem),var(--max));margin-inline:auto}.text-browser-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#observablehq-toc{color:var(--muted);font-family:var(--sans)}#observablehq-toc nav{border-left-color:var(--line)}#observablehq-toc div{color:var(--ink)}#observablehq-toc a[href]{color:var(--muted);line-height:1.25;text-decoration:none}#observablehq-toc a[href]:hover,#observablehq-toc a[href]:focus-visible,#observablehq-toc .observablehq-secondary-link-active a[href]{color:var(--accent-strong)}.contact-links{display:flex;gap:.7rem;margin-top:1.5rem}.contact-links a{align-items:center;border:1px solid var(--line);border-radius:999px;color:var(--accent-strong);display:inline-flex;gap:.55rem;justify-content:center;min-height:2.75rem;min-width:2.75rem;padding:.15rem .85rem;text-decoration:none}.contact-links a:hover,.contact-links a:focus-visible{background:var(--surface-soft);border-color:var(--accent)}.contact-links svg{fill:none;height:1.15rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:1.15rem}.text-fallback{border-left:3px solid var(--accent);margin:1rem 0;padding:.15rem 0 .15rem 1rem}.text-fallback p,.text-fallback ul{margin-block:0 .7rem}.text-fallback>:last-child{margin-bottom:0}.site-bar{display:grid;grid-template-columns:minmax(12rem,1fr) auto auto;align-items:center;gap:1.2rem;padding:.72rem 0}.site-name{color:var(--accent-strong);font-weight:820;letter-spacing:0;text-decoration:none}.site-name:hover,.site-name:focus-visible{color:var(--accent);text-decoration:none}.site-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:1rem}.site-nav a,.theme-toggle{border:1px solid transparent;color:var(--muted);font-size:.92rem;font-weight:720;line-height:1;text-decoration:none}.site-nav a{border-radius:0;border-bottom-color:transparent;padding:.35rem 0 .42rem;text-decoration:none}.site-nav a:hover,.site-nav a:focus-visible{border-bottom-color:var(--accent);background:transparent;color:var(--ink);text-decoration:none}.site-nav a[aria-current=page]{border-bottom-color:var(--accent);color:var(--ink)}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:color-mix(in srgb,var(--line-strong) 72%,transparent);background:color-mix(in srgb,var(--surface-soft) 86%,transparent);color:var(--ink)}.theme-toggle{appearance:none;border-color:var(--line);background:var(--control-bg);color:var(--control-fg);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;cursor:pointer;font-family:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface-strong) 28%,transparent)}.theme-icon{display:block;width:1.05rem;height:1.05rem;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.theme-icon-moon,.theme-toggle[data-effective-theme=dark] .theme-icon-sun{display:none}.theme-toggle[data-effective-theme=dark] .theme-icon-moon{display:block}#observablehq-main{padding:3rem 0 0}h1,h2,h3{color:var(--ink);font-family:var(--serif);letter-spacing:0;line-height:1.12}h1{max-width:980px;margin:0 0 1.15rem;font-size:clamp(2.2rem,5.8vw,4.1rem)}h2{margin:3.25rem 0 1rem;border-top:1px solid var(--line);padding-top:1.35rem;font-size:clamp(1.7rem,3vw,2.45rem)}#focus,#employment,#selected-projects,#education,#tools,#publications{border-top:1px solid var(--line);margin-top:3.25rem;padding-top:1.35rem}#focus>h2,#employment>h2,#selected-projects>h2,#education>h2,#tools>h2,#publications>h2{border-top:0;margin-top:0;padding-top:0}h3{margin:0 0 .35rem;font-size:1.18rem}p,li,dd,td,th{max-width:var(--measure)}.lede{max-width:62ch;margin-bottom:2rem;color:var(--muted);font-size:clamp(1.18rem,2vw,1.45rem);line-height:1.52}.about-page{--about-prose-width: 48rem}.about-header,.about-section{width:100%;max-width:var(--about-prose-width)}.about-header{margin-bottom:1.75rem}.about-page h1{margin:0}.about-section{padding:0}.about-section+.about-section{margin-top:3rem;border-top:1px solid var(--line);padding-top:2.25rem}.about-page h2{margin:0 0 1rem;border:0;padding:0;font-size:clamp(1.9rem,3vw,2.4rem);line-height:1.15}.about-page p{max-width:var(--about-prose-width);margin:0 0 1.25rem;color:var(--ink);font-family:var(--sans);font-size:1.125rem;font-weight:400;line-height:1.58}.about-page p:last-child{margin-bottom:0}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:2rem;align-items:start}.hero-media{margin:0}.hero-media picture,.hero-media img{display:block;width:100%}.hero-media img{height:auto;aspect-ratio:4 / 3;object-fit:cover;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}figcaption,.meta,.eyebrow{color:var(--muted);font-size:.93rem}.eyebrow{display:block;margin-bottom:.5rem;color:var(--accent-strong);font-weight:820;letter-spacing:.08em;text-transform:uppercase}.action-row,.page-nav,.tag-list,.control-strip{display:flex;flex-wrap:wrap;gap:.55rem}.button,.page-nav a,.tag-list li{border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--ink);padding:.45rem .75rem;text-decoration:none}.button,a[href].button{display:inline-flex;min-height:2.25rem;align-items:center;justify-content:center;background:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-bg);font-family:var(--sans);font-weight:780}.button.secondary,a[href].button.secondary{background:var(--surface-strong);color:var(--ink);border-color:var(--line-strong)}a[href].button:hover,a[href].button:focus-visible{color:var(--primary-fg)}a[href].button.secondary:hover,a[href].button.secondary:focus-visible{color:var(--ink)}.viz-card{border-block:1px solid var(--line)}#practice-map-explorer{container-type:inline-size}.visual-shell{display:grid;gap:1rem;margin:1rem 0 2rem}.viz-card{container-type:inline-size;padding:1rem 0;overflow-x:auto}.viz-card h3{font-family:var(--sans);font-size:1rem}.viz-card p{color:var(--muted);font-size:.94rem}.viz-card svg{max-width:100%;height:auto}.project-drops{display:grid;gap:.75rem;min-width:min(100%,42rem)}.project-drops__controls{display:grid;grid-template-columns:auto auto minmax(14rem,1fr);align-items:center;gap:.55rem}.project-drops__button{appearance:none;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--ink);cursor:pointer;font:720 .84rem/1 var(--sans);padding:.48rem .72rem}.project-drops__button:hover,.project-drops__button:focus-visible{border-color:var(--line-strong);background:var(--surface-wash)}.project-drops__slider-label{display:grid;grid-template-columns:auto minmax(8rem,1fr);align-items:center;gap:.6rem;color:var(--muted);font:720 .84rem/1 var(--sans)}.project-drops__slider{width:100%;accent-color:var(--accent-strong)}.project-drops__status{grid-column:1 / -1;margin:-.1rem 0 0;color:var(--muted);font-size:.86rem}.project-drops__svg{display:block;width:100%;min-width:760px;height:auto;color:var(--ink);overflow:visible}.project-drops__axis,.project-drops__grid{color:var(--chart-grid);font-family:var(--sans);font-size:.72rem}.project-drops__axis text{fill:var(--muted)}.project-drops__grid line{stroke:var(--chart-grid)}.project-drops__lane{stroke:var(--chart-grid);stroke-dasharray:2 7}.project-drops__lane-label,.project-drops__legend-label,.project-drops__event-label{fill:var(--muted);font:680 .68rem/1 var(--sans)}.project-drops__event{stroke:color-mix(in srgb,var(--surface) 86%,transparent);stroke-width:1.35}.project-drops__event--future{stroke:var(--line)}.project-drops__event-label{pointer-events:none}.project-drops__current-rule{stroke:var(--accent-strong);stroke-width:1.4;stroke-dasharray:5 5}.project-history-explorer{display:grid;gap:.9rem;min-width:min(100%,42rem)}.project-history-explorer__controls{display:grid;align-items:start;gap:.45rem}.project-history-explorer__view-tabs,.project-history-explorer__browse{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.project-history-explorer__browse{margin-left:.78rem;padding-left:.78rem;border-left:2px solid var(--line)}.project-history-explorer__browse-label{color:var(--muted);font:720 .76rem/1 var(--sans)}.project-history-explorer__controls button{appearance:none;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--ink);cursor:pointer;font:720 .84rem/1 var(--sans);padding:.48rem .72rem}.project-history-explorer__controls button:hover,.project-history-explorer__controls button:focus-visible{border-color:var(--line-strong);background:var(--surface-wash)}.project-history-explorer__controls button[aria-selected=true]{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--surface)}.project-history-explorer__browse button{border-style:dashed;font-size:.79rem;padding:.34rem .56rem}.project-history-explorer__controls button:disabled{cursor:default;opacity:.48}.project-history-explorer__status{margin:0;color:var(--muted);font-size:.88rem}.project-history-explorer__svg{display:block;width:100%;min-width:720px;height:auto;overflow:visible}.project-history-explorer__axis,.project-history-explorer__grid{color:var(--chart-grid);font:.72rem var(--sans)}.project-history-explorer__axis text{fill:var(--muted)}.project-history-explorer__grid line{stroke:var(--chart-grid)}.project-history-explorer__row-band{fill:color-mix(in srgb,var(--surface-soft) 45%,transparent);opacity:.42}.project-history-explorer__group-label{fill:var(--muted);font:720 .72rem/1 var(--sans)}.project-history-explorer__selected-guide{stroke:var(--accent-strong);stroke-width:1.5;stroke-dasharray:5 5;pointer-events:none}.project-history-explorer__dot{stroke:color-mix(in srgb,var(--surface) 86%,transparent);stroke-width:1.4;transition:stroke-width .16s ease}.project-history-explorer__dot--hover,.project-history-explorer__dot--selected{stroke:var(--ink);stroke-width:3}.project-history-explorer__hit{cursor:pointer}.project-history-explorer__detail{display:grid;gap:.6rem;padding:1rem;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--surface-soft) 72%,var(--surface-strong))}.project-history-explorer__detail h4,.project-history-explorer__detail p{margin:0}.project-history-explorer__detail h4{font-family:var(--sans);font-size:1.04rem;line-height:1.3}.project-history-explorer__eyebrow,.project-history-explorer__facts dt{color:var(--muted);font-size:.86rem}.project-history-explorer__responsibility{max-width:80ch}.project-history-explorer__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr));gap:.55rem;margin:0}.project-history-explorer__facts div{border-top:1px solid var(--line);padding-top:.42rem}.project-history-explorer__facts dt{font-weight:780}.project-history-explorer__facts dd{margin:.1rem 0 0}.project-history-explorer__tags{display:flex;flex-wrap:wrap;gap:.38rem}.project-history-explorer__tags span{border:1px solid var(--line);border-radius:999px;background:var(--surface-strong);color:var(--muted);font-size:.78rem;line-height:1.2;padding:.28rem .48rem}.project-history-explorer__sources{display:flex;flex-wrap:wrap;gap:.35rem 1rem;border-top:1px solid var(--line);padding-top:.6rem}.project-history-explorer__sources a{font-size:.86rem;font-weight:720}.project-history-explorer__source-note{flex-basis:100%;color:var(--muted);font-size:.82rem;line-height:1.45}.register-note{margin:1rem 0;color:var(--muted);font-size:.93rem}.employer-summary-grid{display:grid;gap:.72rem;grid-template-columns:repeat(auto-fit,minmax(min(14.5rem,100%),1fr));margin:1rem 0 1.25rem}.employer-summary-card{appearance:none;background:var(--surface-strong);border:1px solid var(--line);border-radius:.45rem;color:var(--ink);cursor:pointer;display:grid;gap:.58rem;min-height:9.6rem;padding:.8rem;text-align:left}.employer-summary-card:hover,.employer-summary-card:focus-visible{border-color:var(--line-strong);background:var(--surface-soft)}.employer-summary-card.is-selected{border-color:var(--accent);box-shadow:inset 0 3px var(--accent)}.employer-summary-card__title{color:var(--accent-strong);font-family:var(--serif);font-size:1.02rem;font-weight:800;line-height:1.2}.employer-summary-card__stats{display:flex;flex-wrap:wrap;gap:.35rem .9rem}.employer-summary-card__stats span{color:var(--muted);font-size:.76rem}.employer-summary-card__stats strong{color:var(--ink);font-size:.9rem}.employer-summary-card__distribution{color:var(--muted);font-size:.75rem;line-height:1.35}.employer-summary-card__distribution strong{color:var(--faint);display:block;font-size:.65rem;letter-spacing:.04em;margin-bottom:.08rem;text-transform:uppercase}.record-summary{align-items:baseline;display:flex;gap:.32rem;margin:1rem 0 .55rem}.record-summary strong{font-size:1.05rem}.record-summary span,.project-register-scroll-note{color:var(--muted);font-size:.82rem}.project-register-scroll-note{margin:0 0 .35rem}.atlas-record-table-shell{border:1px solid var(--line);border-radius:.35rem;max-height:min(72vh,46rem);max-width:100%;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--line-strong) var(--surface-soft);scrollbar-gutter:stable}.atlas-record-table-shell:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.atlas-record-table{min-width:76rem}.atlas-record-table__head,.atlas-project-record{display:grid;grid-template-columns:minmax(16rem,.95fr) minmax(13rem,.72fr) minmax(21rem,1.25fr) minmax(19rem,1.08fr)}.atlas-record-table__head{background:color-mix(in srgb,var(--surface-soft) 82%,var(--accent));border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3}.atlas-record-table__head span{color:var(--muted);font-size:.72rem;font-weight:850;padding:.58rem .7rem;text-transform:uppercase}.atlas-record-table__head span+span,.atlas-project-record>*+*{border-left:1px solid color-mix(in srgb,var(--line) 78%,transparent)}.atlas-project-record{border-bottom:1px solid var(--line)}.atlas-project-record:nth-child(2n){background:color-mix(in srgb,var(--surface-strong) 68%,transparent)}.atlas-project-record:last-child{border-bottom:0}.atlas-project-record>*{box-sizing:border-box;margin:0;min-width:0;overflow-wrap:anywhere;padding:.72rem}.atlas-project-record__identity{align-items:start;display:grid;gap:.55rem;grid-template-columns:2rem minmax(0,1fr)}.atlas-project-record__index{align-items:center;border:1px solid var(--accent);border-radius:999px;color:var(--accent-strong);display:inline-flex;font-size:.7rem;font-weight:850;height:1.65rem;justify-content:center;width:1.65rem}.atlas-project-record h3{font-family:var(--sans);font-size:.92rem;font-weight:850;line-height:1.3;margin:0}.atlas-project-record__identity p,.atlas-project-record__context span,.atlas-project-record__sources span{color:var(--muted);font-size:.76rem;line-height:1.38}.atlas-project-record__identity p{margin:.25rem 0 0}.atlas-project-record__context,.atlas-project-record__evidence{align-content:start;display:grid;gap:.28rem}.atlas-project-record__context strong{font-size:.86rem}.atlas-project-record__amount{color:var(--accent-strong)!important;font-weight:760}.atlas-project-record__contribution{color:var(--muted);font-size:.86rem;line-height:1.46}.atlas-project-record__signals{display:flex;flex-wrap:wrap;gap:.28rem}.atlas-project-record__signals>span{background:color-mix(in srgb,var(--surface-soft) 78%,transparent);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.7rem;line-height:1.2;padding:.2rem .4rem}.atlas-project-record__sources{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);display:grid;gap:.12rem;margin-top:.35rem;padding-top:.4rem}.atlas-project-record__sources>a,.atlas-project-record__sources li a{font-size:.78rem;font-weight:760}.atlas-project-record__sources details{margin-top:.22rem}.atlas-project-record__sources summary{color:var(--accent-strong);font-size:.75rem;font-weight:760}.atlas-project-record__sources ul{display:grid;gap:.28rem;margin:.38rem 0 0;padding-left:1rem}.atlas-project-groups{border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.atlas-project-group{border:0;border-bottom:1px solid var(--line);max-width:none;padding:0}.atlas-project-group:last-child{border-bottom:0}.atlas-project-group>summary{align-items:center;color:var(--ink);display:grid;gap:1rem;grid-template-columns:minmax(13rem,1fr) auto 1rem;list-style:none;min-height:4.6rem;padding:.78rem .35rem}.atlas-project-group>summary::-webkit-details-marker{display:none}.atlas-project-group>summary:hover,.atlas-project-group[open]>summary{background:color-mix(in srgb,var(--surface-soft) 54%,transparent)}.atlas-project-group__identity,.atlas-project-group__metrics{display:grid;min-width:0}.atlas-project-group__identity{gap:.12rem}.atlas-project-group__identity strong{color:var(--accent-strong);font-size:1rem;font-weight:850}.atlas-project-group__identity span,.atlas-project-group__metrics{color:var(--muted);font-size:.82rem;line-height:1.4}.atlas-project-group__metrics{align-items:baseline;column-gap:.48rem;grid-auto-flow:column;white-space:nowrap}.atlas-project-group__metrics>span+span{border-left:1px solid var(--line);padding-left:.48rem}.atlas-project-group__toggle{height:.55rem;position:relative;width:.55rem}.atlas-project-group__toggle:before,.atlas-project-group__toggle:after{background:currentColor;content:"";inset:50% auto auto 50%;position:absolute;transform:translate(-50%,-50%)}.atlas-project-group__toggle:before{height:1px;width:.55rem}.atlas-project-group__toggle:after{height:.55rem;width:1px}.atlas-project-group[open] .atlas-project-group__toggle:after{display:none}.atlas-project-group__body{padding:0 .35rem 1rem}.atlas-project-group__profile{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:.72rem 0}.atlas-project-group__profile>div{display:grid;gap:.2rem;grid-template-columns:6.6rem minmax(0,1fr);padding:.22rem .8rem .22rem 0}.atlas-project-group__profile dt{color:var(--muted);font-size:.7rem;font-weight:850;text-transform:uppercase}.atlas-project-group__profile dd{font-size:.82rem;line-height:1.4;margin:0}.atlas-record-pills,.atlas-project-card__facts,.atlas-project-card__signals{display:flex;flex-wrap:wrap;gap:.3rem}.atlas-record-pills>span,.atlas-project-card__facts>span,.atlas-project-card__signals>span{align-items:baseline;background:color-mix(in srgb,var(--surface-soft) 72%,transparent);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:.72rem;gap:.35rem;line-height:1.2;padding:.2rem .45rem}.atlas-record-pills strong{color:var(--accent-strong)}.atlas-record-pills__more{color:var(--faint)!important}.atlas-project-records{border:1px solid var(--line);border-radius:.4rem;max-height:clamp(25rem,58vh,35rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.atlas-project-records:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.atlas-project-card{display:grid;gap:0;grid-template-columns:minmax(14rem,.85fr) minmax(20rem,1.35fr) minmax(15rem,.9fr);margin:0}.atlas-project-card:nth-child(2n){background:color-mix(in srgb,var(--surface-strong) 68%,transparent)}.atlas-project-card+.atlas-project-card{border-top:1px solid var(--line)}.atlas-project-card>*{box-sizing:border-box;margin:0;min-width:0;padding:.72rem}.atlas-project-card>*+*{border-left:1px solid color-mix(in srgb,var(--line) 74%,transparent)}.atlas-project-card__header{align-content:start;display:grid;gap:.55rem}.atlas-project-card h3{font-family:var(--sans);font-size:.92rem;font-weight:850;line-height:1.3;margin:0}.atlas-project-card h3 a{color:var(--ink)}.atlas-project-card h3 a:hover{color:var(--accent)}.atlas-project-card__header p,.atlas-project-card__sources span{color:var(--muted);font-size:.75rem;line-height:1.4;margin:.22rem 0 0}.atlas-project-card__amount{color:var(--accent-strong)!important;font-weight:760}.atlas-project-card__narrative{align-content:start;display:grid;gap:.65rem}.atlas-project-card__narrative p,.atlas-project-card__achievements,.atlas-project-card__values{display:grid;gap:.16rem;margin:0}.atlas-project-card__narrative strong,.atlas-project-card__achievements>strong,.atlas-project-card__values>strong{color:var(--faint);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}.atlas-project-card__narrative span,.atlas-project-card__achievements li,.atlas-project-card__values li{color:var(--muted);font-size:.84rem;line-height:1.45}.atlas-project-card__achievements ul{margin:.18rem 0 0;padding-left:1rem}.atlas-project-card__values ul{display:grid;gap:.28rem;list-style:none;margin:.18rem 0 0;padding:0}.atlas-project-card__values li{display:grid;gap:.08rem}.atlas-project-card__values li>span{color:var(--ink);font-weight:720}.atlas-project-card__values small{color:var(--faint);font-size:.72rem;line-height:1.35}.atlas-project-card__evidence{align-content:start;display:grid;gap:.55rem}.atlas-project-card__sources{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);display:grid;gap:.12rem;padding-top:.45rem}.atlas-project-card__sources>a,.atlas-project-card__sources li a{font-size:.78rem;font-weight:760}.atlas-project-card__sources summary{color:var(--accent-strong);font-size:.74rem;font-weight:760;margin-top:.25rem}.atlas-project-card__sources ul{display:grid;gap:.25rem;margin:.35rem 0 0;padding-left:1rem}@media(max-width:620px){.employer-summary-grid{grid-auto-columns:min(17rem,82vw);grid-auto-flow:column;gap:.55rem;grid-template-columns:none;overflow-x:auto;padding-bottom:.4rem;scroll-snap-type:inline proximity}.employer-summary-card{min-height:0;scroll-snap-align:start}}@media(max-width:820px){.atlas-record-table-shell{max-height:72vh;overflow-x:hidden}.atlas-record-table{min-width:0}.atlas-record-table__head{display:none}.atlas-project-record{display:grid;grid-template-columns:1fr;padding:.2rem 0}.atlas-project-record>*{border-left:0!important;padding:.55rem .68rem}.atlas-project-record>[data-label]:not(.atlas-project-record__identity):before{color:var(--faint);content:attr(data-label);display:block;font-size:.66rem;font-weight:850;letter-spacing:.04em;margin-bottom:.25rem;text-transform:uppercase}.atlas-project-group>summary{align-items:start;gap:.35rem .65rem;grid-template-columns:minmax(0,1fr) auto}.atlas-project-group__metrics{grid-auto-flow:row;grid-column:1;justify-content:start}.atlas-project-group__metrics>span:not(:first-child){display:none}.atlas-project-group__toggle{grid-column:2;grid-row:1 / span 2;margin-top:.35rem}.atlas-project-group__profile{grid-template-columns:1fr}.atlas-project-group__profile>div{grid-template-columns:5.8rem minmax(0,1fr);padding-right:0}.atlas-project-card{grid-template-columns:1fr}.atlas-project-card>*+*{border-left:0;border-top:1px solid color-mix(in srgb,var(--line) 64%,transparent)}.atlas-project-card__evidence{padding-top:.58rem}}.career-explorer{display:grid;gap:.75rem;min-width:min(100%,42rem)}.career-explorer__controls{display:grid;align-items:start;gap:.45rem}.career-explorer__view-tabs,.career-explorer__detail-modes,.career-explorer__zoom-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.career-explorer__detail-modes{margin-left:.78rem;padding-left:.78rem;border-left:2px solid var(--line)}.career-explorer__detail-modes-label{color:var(--muted);font:720 .76rem/1 var(--sans)}.career-explorer__controls button{appearance:none;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--ink);cursor:pointer;font:720 .86rem/1 var(--sans);padding:.45rem .7rem}.career-explorer__controls button:hover,.career-explorer__controls button:focus-visible{border-color:var(--line-strong);background:var(--surface-wash)}.career-explorer__controls button:disabled{cursor:default;opacity:.38}.career-explorer__controls button[aria-selected=true]{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--surface)}.career-explorer__detail-modes button{border-style:dashed;font-size:.79rem;padding:.34rem .56rem}.career-explorer__detail-modes button[aria-pressed=true]{border-style:solid;border-color:var(--line-strong);background:var(--surface-wash)}.career-explorer__zoom-controls{gap:.28rem}.career-explorer__zoom-button{min-width:2.05rem;padding-inline:.55rem}.career-explorer__zoom-reset{padding-inline:.64rem}.career-explorer__range-label-short{display:none}.career-explorer__status-line{display:flex;align-items:baseline;justify-content:space-between;gap:.35rem 1rem;flex-wrap:wrap}.career-explorer__status,.career-explorer__interaction-hint{margin:0;color:var(--muted);font-size:.86rem}.career-explorer__status{flex:1 1 32rem}.career-explorer__interaction-hint{color:var(--faint);flex:0 0 auto;font-size:.72rem;transition:color .14s ease;white-space:nowrap}.career-explorer__interaction-hint.is-active{color:var(--warm)}.career-explorer__viewport{height:auto;max-height:var(--career-explorer-height, 430px);overflow-x:hidden;overflow-y:auto;border:1px solid var(--line);border-radius:.55rem;background:color-mix(in srgb,var(--surface-soft) 42%,transparent);overscroll-behavior:contain;scrollbar-color:var(--line-strong) transparent}.career-explorer__viewport:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.career-explorer__svg{display:block;width:100%;height:auto;color:var(--ink);overflow:hidden;cursor:grab;touch-action:pan-y}.career-explorer__svg:active{cursor:grabbing}.career-explorer__axis,.career-explorer__grid{color:var(--chart-grid);font-family:var(--sans);font-size:.72rem}.career-explorer__axis text{fill:var(--muted)}.career-explorer__grid line{stroke:var(--chart-grid)}.career-explorer__section-label{fill:var(--accent-strong);font:820 .72rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}.career-explorer__row-label{fill:var(--muted);font:720 .72rem/1 var(--sans)}.career-explorer__role,.career-explorer__system{stroke:color-mix(in srgb,var(--surface) 85%,transparent);stroke-width:1.2}.career-explorer__role{paint-order:stroke fill;stroke:transparent;stroke-width:22}.career-explorer__role[role=button],.career-explorer__project-line[role=button]{cursor:pointer}.career-explorer__role[role=button]:focus,.career-explorer__project-line[role=button]:focus{filter:drop-shadow(0 0 2px var(--focus));outline:none}.career-explorer__role[role=button]:focus{stroke:var(--focus);stroke-width:2.5}.career-explorer__system{fill:color-mix(in srgb,var(--chart-systems) 72%,transparent)}.career-explorer__project-line{stroke-linecap:butt}.career-explorer__assignment{stroke-linecap:butt;stroke-width:16}.career-explorer__assignment-group-line{stroke-linecap:butt;stroke-width:3}.career-explorer__assignment-hit{stroke:transparent;stroke-linecap:round;stroke-width:32}.career-explorer__assignment-item{cursor:pointer}.career-explorer__assignment-item:focus{outline:none}.career-explorer__assignment-item:focus .career-explorer__assignment{filter:drop-shadow(0 0 2px var(--focus));stroke-width:15}.career-explorer__role-text,.career-explorer__project-text,.career-explorer__system-text{fill:#fff;font:780 .72rem/1 var(--sans);paint-order:stroke;pointer-events:none;stroke:#101413b8;stroke-linejoin:round;stroke-width:2.2px}.career-explorer__system-text{fill:var(--muted);stroke:none}.career-explorer__project-text--above,.career-explorer__role-text--above{fill:var(--ink);stroke:var(--surface);stroke-width:3.4px}.career-explorer__assignment-name{fill:var(--ink);font:760 .72rem/1 var(--sans);paint-order:stroke;pointer-events:none;stroke:var(--surface);stroke-linejoin:round;stroke-width:3.4px}.career-explorer__assignment-name--outside{fill:var(--ink);stroke:var(--surface);stroke-width:3.4px}.career-explorer__assignment-client{font-size:.7rem;font-weight:680}.career-explorer__selection{display:grid;gap:.22rem;max-width:64rem;border-top:1px solid var(--line);padding-top:.72rem}.career-explorer__selection[hidden]{display:none}.career-explorer__selection p{margin:0;max-width:72ch}.career-explorer__selection-context{color:var(--muted);font-size:.78rem}.practice-sunburst{display:grid;gap:.55rem;grid-template-rows:auto minmax(6.4em,auto);min-width:0}.practice-sunburst__status{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}.practice-sunburst__svg{display:block;height:auto;width:100%;color:var(--ink)}.practice-sunburst__label{fill:#fff;font:760 .62rem/1 var(--sans);paint-order:stroke;stroke:#101413c2;stroke-linejoin:round;stroke-width:2.6px;text-rendering:geometricPrecision;vector-effect:non-scaling-stroke}.practice-sunburst__center{fill:var(--surface-soft);stroke:var(--line);stroke-width:1.2}.practice-sunburst__center-text{fill:var(--ink);font:750 .75rem/1.1 var(--sans)}.practice-experience-explorer{display:grid;grid-template-columns:minmax(min(19rem,100%),.82fr) minmax(min(24rem,100%),1.18fr);grid-template-areas:"sunburst map" "theme detail";gap:1rem;align-items:start;container-type:inline-size}.practice-experience-explorer__sunburst{display:grid;gap:.82rem;grid-area:sunburst;min-width:0}.practice-experience-explorer__map-panel{display:grid;gap:.58rem;grid-area:map;min-width:0}.practice-experience-explorer__controls{display:flex;flex-wrap:wrap;align-items:end;gap:.52rem}.practice-experience-explorer__filter-note{flex-basis:100%;margin:0;color:var(--muted);font-size:.76rem}.practice-experience-explorer__filter{display:grid;flex:1 1 10.5rem;gap:.2rem;min-width:min(11.5rem,100%);color:var(--muted);font:720 .74rem/1 var(--sans)}.practice-experience-explorer__filter select,.practice-experience-explorer__clear{border:1px solid var(--line);border-radius:.42rem;background:var(--surface-soft);color:var(--ink);font:650 .79rem/1.2 var(--sans);padding:.38rem .48rem}.practice-experience-explorer__filter select{width:100%;max-width:none}.practice-experience-explorer__clear{cursor:pointer}.practice-experience-explorer__clear:disabled{cursor:default;opacity:.48}.practice-experience-explorer__summary,.practice-experience-explorer__legend,.practice-experience-explorer__detail-context{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}.practice-experience-map{display:block;width:100%;border:1px solid var(--line);border-radius:.55rem;background:color-mix(in srgb,var(--surface-soft) 68%,transparent)}.practice-experience-map__seam{fill:none;opacity:.78;pointer-events:none;stroke:color-mix(in srgb,var(--surface) 72%,var(--line));stroke-dasharray:2 4;stroke-linecap:round;stroke-width:1.1}.practice-experience-map__country:focus-visible{outline:none;stroke:var(--accent-strong);stroke-width:2.4}.practice-experience-map__scope-rule{stroke:var(--line);stroke-width:1}.practice-experience-map__scope-title{fill:var(--muted);font:820 .58rem/1 var(--sans);letter-spacing:.08em}.practice-experience-map__scope{cursor:pointer;outline:none}.practice-experience-map__scope-dot{opacity:.96;stroke:color-mix(in srgb,var(--surface) 88%,transparent);stroke-width:1.5}.practice-experience-map__scope-dot--global{fill:var(--chart-risk)}.practice-experience-map__scope-dot--regional{fill:var(--chart-consulting)}.practice-experience-map__scope-dot--unmapped{fill:var(--chart-systems)}.practice-experience-map__scope-label{fill:var(--ink);font:760 .68rem/1 var(--sans);paint-order:stroke;pointer-events:none;stroke:var(--surface-soft);stroke-linejoin:round;stroke-width:3px}.practice-experience-map__scope:focus-visible .practice-experience-map__scope-dot,.practice-experience-map__scope[aria-pressed=true] .practice-experience-map__scope-dot{filter:drop-shadow(0 0 2px var(--focus));stroke:var(--focus);stroke-width:2.5}.practice-experience-explorer__detail{border-top:1px solid var(--line);grid-area:detail;padding-top:.62rem}.practice-experience-explorer__detail h4{margin:0 0 .28rem;font-size:.91rem}.practice-experience-explorer__projects{display:grid;gap:.28rem;margin:.55rem 0 0;max-height:18rem;overflow-y:auto;padding:0;padding-right:.35rem;list-style:none;scrollbar-color:var(--line-strong) transparent}.practice-experience-explorer__projects li{display:grid;gap:.04rem;padding-bottom:.22rem;border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent)}.practice-experience-explorer__projects li:last-child{border-bottom:0}.practice-experience-explorer__projects strong{font-size:.76rem;line-height:1.25}.practice-experience-explorer__projects span{color:var(--muted);font-size:.7rem;line-height:1.28}.practice-theme-map{display:grid;gap:.45rem;grid-area:theme;min-width:0;overflow-x:auto;padding-top:.1rem}.practice-theme-map__header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem 1rem}.practice-theme-map__header h4,.practice-theme-map__header p{margin:0}.practice-theme-map__header h4{color:var(--accent-strong);font-size:.72rem;font-weight:850;letter-spacing:.08em;line-height:1.15;text-transform:uppercase}.practice-theme-map__header p{color:var(--muted);font-size:.68rem;line-height:1.35}.practice-theme-map__matrix{--theme-column-count: 6;display:grid;grid-template-columns:minmax(5.9rem,1.35fr) repeat(var(--theme-column-count),minmax(2.05rem,1fr));gap:.16rem;min-width:20rem}.practice-theme-map__corner,.practice-theme-map__head,.practice-theme-map__rowhead,.practice-theme-map__cell{min-height:1.86rem;border:1px solid var(--line);border-radius:.32rem;padding:.22rem .24rem;font-size:.64rem;line-height:1.12}.practice-theme-map__corner,.practice-theme-map__head,.practice-theme-map__rowhead{display:flex;align-items:center;background:color-mix(in srgb,var(--surface-soft) 82%,transparent);color:var(--muted);font-weight:820}.practice-theme-map__head{justify-content:center;text-align:center}.practice-theme-map__rowhead{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-theme-map__cell{appearance:none;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;width:100%}.practice-theme-map__cell--active{border-color:color-mix(in srgb,var(--matrix-high) 48%,var(--line));background:color-mix(in srgb,var(--matrix-high) var(--cell-intensity),var(--matrix-low));color:var(--ink);font-weight:850}.practice-theme-map__cell:disabled{cursor:default}.practice-theme-map__cell.is-selected{border-color:var(--accent-strong);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-strong) 72%,transparent)}.practice-theme-map__cell:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@container (max-width: 780px){.practice-experience-explorer{grid-template-columns:1fr;grid-template-areas:"sunburst" "theme" "map" "detail"}.practice-experience-explorer__sunburst{justify-items:stretch}.practice-sunburst{width:min(100%,30rem);justify-self:center}}@container (max-width: 540px){.practice-experience-explorer{gap:.85rem}.practice-experience-explorer__controls{display:grid;grid-template-columns:1fr}.practice-experience-explorer__filter,.practice-experience-explorer__clear{width:100%}.practice-experience-explorer__summary,.practice-experience-explorer__legend,.practice-experience-explorer__detail-context{font-size:.76rem}.practice-theme-map__header{display:grid}.practice-sunburst__label{font-size:.56rem;stroke-width:1.6px}}@media(max-width:920px){.practice-experience-explorer{grid-template-columns:1fr;grid-template-areas:"sunburst" "theme" "map" "detail"}}.observablehq--block{max-width:100%}.observablehq form{margin:.5rem 0 1rem}.observablehq label{color:var(--muted);font-size:.92rem;font-weight:720}.observablehq select,.observablehq input{border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--ink);padding:.38rem .5rem}.cv-focus{margin-bottom:0}.cv-focus-picker{background:color-mix(in srgb,var(--surface-soft) 74%,transparent);border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:.5rem;display:grid;gap:.7rem;margin:1.1rem 0 1.3rem;padding:.85rem}.cv-focus-picker>span{color:var(--muted);font-size:.82rem;font-weight:820}.cv-focus-picker>div{display:flex;flex-wrap:wrap;gap:.45rem}.cv-focus-picker label{display:inline-flex}.cv-focus-picker input{block-size:1px;inline-size:1px;opacity:0;pointer-events:none;position:absolute}.cv-focus-picker label>span{background:var(--surface-strong);border:1px solid var(--line);border-radius:999px;color:var(--muted);cursor:pointer;font-size:.82rem;font-weight:760;line-height:1.15;padding:.43rem .62rem}.cv-focus-picker input:checked+span{background:color-mix(in srgb,var(--accent) 16%,var(--surface-strong));border-color:var(--accent);color:var(--ink)}.cv-focus-picker input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px}.cv-focus-select{max-width:22rem}.cv-focus-select label{display:grid;gap:.3rem}.cv-focus-select select{width:100%}.observablehq .cv-focus-select--project{width:min(100%,19rem);margin:0}.cv-focus__note,.cv-focus__description,.cv-focus__more{color:var(--muted)}.cv-focus__brief{display:grid;gap:1rem;margin-top:.4rem}.cv-focus__hero{align-items:stretch;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(14rem,.36fr)}.cv-focus__description{font-size:1rem;margin:0;max-width:76ch}.cv-focus__mode{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent 54%),var(--surface-soft);border:1px solid var(--line);border-radius:.5rem;padding:.8rem}.cv-focus__mode span{color:var(--muted);font-size:.76rem;font-weight:780}.cv-focus__mode strong{display:block;font-size:1.05rem;margin-top:.12rem}.cv-focus__mode p{color:var(--muted);font-size:.82rem;margin:.4rem 0 0}.cv-focus__stats{display:grid;gap:.65rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.cv-focus__stats div{background:color-mix(in srgb,var(--surface-soft) 82%,transparent);border:1px solid var(--line);border-radius:.5rem;padding:.65rem .75rem}.cv-focus__stats dt{font-size:1.25rem;font-weight:850}.cv-focus__stats dd{color:var(--muted);font-size:.8rem;margin:.12rem 0 0}.cv-entry-list{display:grid;gap:0;position:relative}.cv-entry-list:before{content:"";position:absolute;left:3.8rem;top:.45rem;bottom:.45rem;width:1px;background:var(--line)}.cv-entry{display:grid;gap:1rem;grid-template-columns:7.6rem minmax(0,1fr);position:relative}.cv-entry__marker{align-items:start;display:flex;justify-content:center;padding-top:1.1rem;position:relative;z-index:1}.cv-entry__marker span{background:var(--surface);border:1px solid var(--accent);border-radius:999px;color:var(--accent-strong);font-size:.78rem;font-weight:850;padding:.24rem .45rem;white-space:nowrap}.cv-entry__body{border-top:1px solid var(--line);padding:.95rem 0 1.05rem}.cv-entry__header{display:block}.cv-entry__organization{color:var(--muted);font-family:var(--sans);font-size:.88rem;font-weight:760;margin:0}.cv-entry h3{font-family:var(--sans);font-size:1.05rem;font-style:normal;font-weight:820;margin:.16rem 0 0}.cv-entry__positions{display:grid;gap:0!important;list-style:none;margin:.35rem 0 0!important;padding:0!important}.cv-entry__positions li{align-items:baseline;display:grid;gap:.3rem .8rem;grid-template-columns:minmax(0,1fr) auto;padding:.3rem 0}.cv-entry__positions li+li{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.cv-entry__positions strong{color:var(--text);font-size:.94rem}.cv-entry__positions span{color:var(--muted);font-size:.78rem;white-space:nowrap}.cv-entry ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.15rem}.cv-entry li{margin:0}.cv-project-evidence{display:grid;gap:.7rem}.cv-project-evidence__toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem}.cv-project-evidence__note{flex:1 1 auto;color:var(--muted);margin:0}@media(max-width:620px){.cv-project-evidence__toolbar{align-items:stretch;flex-direction:column;gap:.7rem}.observablehq .cv-focus-select--project{width:100%}}.cv-project-groups{border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.cv-project-group{border:0;border-bottom:1px solid var(--line);max-width:none;padding:0}.cv-project-group:last-child{border-bottom:0}.cv-project-group>summary{align-items:center;color:var(--ink);display:grid;gap:1rem;grid-template-columns:minmax(13rem,1fr) auto 1rem;list-style:none;min-height:4.6rem;padding:.78rem .25rem}.cv-project-group>summary::-webkit-details-marker{display:none}.cv-project-group>summary:hover,.cv-project-group[open]>summary{background:color-mix(in srgb,var(--surface-soft) 54%,transparent)}.cv-project-group__identity,.cv-project-group__metrics{display:grid;min-width:0}.cv-project-group__identity{gap:.12rem}.cv-project-group__identity strong{color:var(--accent-strong);font-family:var(--sans);font-size:1rem;font-weight:850}.cv-project-group__identity span,.cv-project-group__metrics{color:var(--muted);font-size:.82rem;line-height:1.4}.cv-project-group__metrics{align-items:baseline;column-gap:.48rem;grid-auto-flow:column;white-space:nowrap}.cv-project-group__metrics>span+span{border-left:1px solid var(--line);padding-left:.48rem}.cv-project-group__toggle{height:.55rem;position:relative;width:.55rem}.cv-project-group__toggle:before,.cv-project-group__toggle:after{background:currentColor;content:"";inset:50% auto auto 50%;position:absolute;transform:translate(-50%,-50%)}.cv-project-group__toggle:before{height:1px;width:.55rem}.cv-project-group__toggle:after{height:.55rem;width:1px}.cv-project-group[open] .cv-project-group__toggle:after{display:none}.cv-project-group__body{padding:0 .25rem 1rem}.cv-project-group__profile{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:.72rem 0}.cv-project-group__profile>div{display:grid;gap:.16rem;grid-template-columns:6.5rem minmax(0,1fr);padding:.22rem .75rem .22rem 0}.cv-project-group__profile dt{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase}.cv-project-group__profile dd{font-size:.82rem;line-height:1.4;margin:0}.cv-project-group__pills{display:flex;flex-wrap:wrap;gap:.3rem}.cv-project-pill{align-items:baseline;background:color-mix(in srgb,var(--surface-soft) 72%,transparent);border:1px solid var(--line);border-radius:999px;color:var(--ink);display:inline-flex;gap:.35rem;line-height:1.25;padding:.2rem .48rem}.cv-project-pill strong{color:var(--accent-strong);font-size:.74rem}.cv-project-pill--more{color:var(--muted)}.cv-project-records{border:1px solid var(--line);border-radius:.4rem;max-height:clamp(25rem,55vh,35rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.cv-project-records:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cv-project-records__head,.cv-project-record{display:grid;grid-template-columns:minmax(15rem,.9fr) minmax(18rem,1.45fr)}.cv-project-records__head{background:color-mix(in srgb,var(--surface-soft) 76%,var(--accent));border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.cv-project-records__head span{color:var(--muted);font-size:.7rem;font-weight:850;padding:.5rem .68rem;text-transform:uppercase}.cv-project-record{border-bottom:1px solid var(--line)}.cv-project-record:nth-child(odd){background:color-mix(in srgb,var(--surface-strong) 68%,transparent)}.cv-project-record:last-child{border-bottom:0}.cv-project-record>*{margin:0;min-width:0;padding:.62rem .68rem}.cv-project-record>*+*{border-left:1px solid color-mix(in srgb,var(--line) 74%,transparent)}.cv-project-record h3{font-family:var(--sans);font-size:.9rem;font-weight:820;line-height:1.32;margin:0}.cv-project-record h3 a{color:var(--ink)}.cv-project-record h3 a:hover{color:var(--accent)}.cv-project-record__identity p{color:var(--muted);font-size:.75rem;line-height:1.35;margin:.2rem 0 0}.cv-project-record__work{color:var(--muted);font-size:.86rem;line-height:1.43}.cv-adaptive-section{display:grid;gap:1rem}.cv-support-grid{border:1px solid var(--line);border-radius:.5rem;display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}.cv-support-panel{align-content:start;background:var(--surface);display:grid;gap:.65rem;padding:.78rem}.cv-support-panel:nth-child(2n){border-left:1px solid var(--line)}.cv-support-panel:nth-child(n+3){border-top:1px solid var(--line)}.cv-support-panel h3,.cv-tool-list h3,.cv-publication-row h3{font-family:var(--sans)}.cv-support-panel h3{background:color-mix(in srgb,var(--surface-soft) 78%,var(--accent));border-bottom:1px solid var(--line);color:var(--muted);font-size:.76rem;font-weight:860;letter-spacing:.045em;margin:-.78rem -.78rem 0;padding:.55rem .72rem;text-transform:uppercase}.cv-support-list{align-content:start;display:grid;gap:.55rem}.cv-support-list div{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);display:grid;gap:.55rem;grid-template-columns:minmax(8.5rem,.58fr) minmax(0,1fr);align-items:baseline;padding-top:.55rem}.cv-support-list div:first-child{border-top:0;padding-top:0}.cv-support-list strong{font-size:.92rem;line-height:1.25}.cv-support-list span,.cv-publication-row__detail{color:var(--muted);font-size:.78rem;line-height:1.35}.cv-publication-row p{color:var(--muted);font-size:.88rem;line-height:1.45;margin:0}.cv-tool-list{display:grid;border-bottom:1px solid var(--line)}.cv-tool-list section{display:grid;grid-template-columns:minmax(11rem,.28fr) minmax(0,1fr);gap:1rem;border-top:1px solid var(--line);padding:.75rem 0}.cv-tool-list h3{font-size:.86rem;font-weight:850;margin:0}.cv-tool-list p{color:var(--muted);margin:0}.cv-publication-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cv-publication-row{border-bottom:1px solid var(--line);display:grid;gap:.85rem;grid-template-columns:4.3rem minmax(0,1fr);padding:.85rem 0}.cv-publication-row:last-child{border-bottom:0}.cv-publication-row>span{align-self:start;border-left:3px solid var(--accent);color:var(--ink);font-family:var(--sans);font-size:.86rem;font-weight:850;line-height:1;padding-left:.55rem}.cv-publication-row h3{font-size:.98rem;font-weight:850;line-height:1.28;margin:0}.cv-publication-row__detail{margin:.22rem 0 .35rem}.cv-public-record{margin-top:1rem;border-left:3px solid var(--accent);padding:.15rem 0 .15rem 1rem}.cv-public-record h3{margin-bottom:.45rem}.cv-public-record ul{margin:0;padding-left:1.2rem}.cv-public-record li+li{margin-top:.3rem}.snapshot-list{display:grid;gap:.8rem}.snapshot-list div{border-left:4px solid var(--accent);padding-left:.85rem}.snapshot-list dt{font-weight:820}.snapshot-list dd{margin:.15rem 0 0;color:var(--muted)}table{width:100%;border-collapse:collapse;margin:1rem 0 1.6rem;font-size:.94rem}caption{color:var(--muted);text-align:left;margin-bottom:.5rem}th,td{border:1px solid var(--line);padding:.65rem;vertical-align:top}th{background:var(--surface-soft);color:var(--ink);text-align:left}.tag-list{padding:0;list-style:none}.link-list li{margin-bottom:.55rem}.observablehq-pre-container pre,pre{max-width:78ch;white-space:pre-wrap;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);padding:1rem}details{max-width:var(--max);border-top:1px solid var(--line);padding-top:.75rem}summary{cursor:pointer;color:var(--muted);font-weight:760}.home-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(22rem,.92fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;padding:clamp(1rem,3vw,2.5rem) 0 clamp(3rem,7vw,6rem)}.home-hero h1{max-width:13ch;margin-bottom:1.35rem;font-size:clamp(2.7rem,5.7vw,5.15rem);text-wrap:balance}.home-hero__copy .eyebrow{max-width:52rem;margin-bottom:.9rem}.home-hero__copy .lede{max-width:43rem}.home-hero__visual{min-width:0}.home-hero__media img{aspect-ratio:4 / 3;border-radius:.4rem;filter:saturate(.22) contrast(1.04)}.home-hero__path{display:grid;justify-items:start;gap:.9rem}.home-hero__path p{max-width:39rem;margin:0;color:var(--muted);font-size:.98rem}.selected-work__intro{max-width:52rem}.work-cases{max-width:var(--max);margin:clamp(2.25rem,5vw,4rem) 0 0;border-bottom:1px solid var(--line)}.work-case{max-width:none;margin:0;padding:0;border-top:1px solid var(--line);scroll-margin-top:6.5rem}.work-case>summary{list-style:none;color:var(--ink);padding:clamp(1rem,2.4vw,1.4rem) 0}.work-case>summary::-webkit-details-marker{display:none}.work-case>summary::marker{content:""}.work-case__summary{display:grid;grid-template-columns:2.5rem minmax(0,1fr) 1.5rem;gap:clamp(.7rem,2vw,1.15rem);align-items:center}.work-case__number{align-self:start;color:var(--warm);font-size:.75rem;font-weight:850;letter-spacing:.08em;padding-top:.15rem}.work-case__heading{display:grid;gap:.16rem}.work-case__context{color:var(--faint);font-size:.72rem;font-weight:780;letter-spacing:.055em;text-transform:uppercase}.work-case__title{color:var(--ink);font-family:var(--serif);font-size:clamp(1.35rem,2.5vw,1.85rem);font-weight:700;line-height:1.16}.work-case__preview{max-width:68ch;color:var(--muted);font-size:.94rem;font-weight:470;line-height:1.5}.work-case__toggle{position:relative;width:1.1rem;height:1.1rem;color:var(--accent-strong)}.work-case__toggle:before,.work-case__toggle:after{position:absolute;left:50%;top:50%;width:.9rem;height:2px;background:currentColor;content:"";transform:translate(-50%,-50%)}.work-case__toggle:after{transform:translate(-50%,-50%) rotate(90deg)}.work-case[open] .work-case__toggle:after{display:none}.work-case>summary:hover .work-case__title,.work-case[open]>summary .work-case__title{color:var(--accent-strong)}.work-case__body{max-width:68ch;margin:0 0 clamp(1.5rem,3vw,2.25rem) calc(2.5rem + clamp(.7rem,2vw,1.15rem))}.work-case__facts{margin:0}.work-case__facts>div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem;border-top:1px solid var(--line);padding:.8rem 0}.work-case__facts dt{color:var(--accent-strong);font-size:.72rem;font-weight:850;letter-spacing:.065em;text-transform:uppercase}.work-case__facts dd{margin:0;color:var(--muted);line-height:1.55}.work-case__evidence{margin:.55rem 0 0;color:var(--muted);font-size:.91rem}.work-case__evidence strong{color:var(--ink)}.case-common{max-width:var(--max);margin-top:clamp(3.5rem,7vw,5.5rem);scroll-margin-top:6.5rem}.case-common h2{margin:0 0 .65rem;border:0;padding:0;font-size:clamp(1.85rem,3.5vw,2.6rem)}.case-common__intro{max-width:78ch;margin:0;color:var(--muted);font-size:1.04rem;line-height:1.62}.case-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.65rem}.case-principles article{border-top:3px solid var(--accent);background:var(--surface-soft);padding:1.1rem}.case-principles__label{color:var(--warm);font-size:.7rem;font-weight:850;letter-spacing:.08em}.case-principles h3{margin:.5rem 0 .45rem;font-family:var(--serif);font-size:1.35rem;line-height:1.2}.case-principles p{margin:0;color:var(--muted);line-height:1.55}.case-context{max-width:var(--max);margin-top:clamp(3rem,6vw,4.5rem);background:var(--surface-soft);padding:clamp(1.15rem,3vw,1.75rem)}.case-context h2{margin:0 0 .45rem;border:0;padding:0;font-family:var(--sans);font-size:1.15rem;font-weight:820}.case-context p{max-width:86ch;margin:0;color:var(--muted);line-height:1.55}.case-context__link{display:inline-block;margin-top:.8rem;font-weight:800}.atlas-intro .eyebrow{margin-bottom:.7rem}.atlas-intro .lede{max-width:82ch}.atlas-loading{display:grid;grid-template-columns:3.25rem minmax(0,1fr);align-items:center;gap:.9rem;max-width:46rem;margin:1.25rem 0 2rem;border-block:1px solid var(--line);background:color-mix(in srgb,var(--surface-soft) 70%,transparent);padding:.85rem 1rem}.atlas-loading[hidden]{display:none}.atlas-loading__indicator{position:relative;display:block;width:3.25rem;height:.24rem;overflow:hidden;border-radius:999px;background:var(--line)}.atlas-loading__indicator:after{position:absolute;inset:0;width:45%;border-radius:inherit;background:var(--accent);content:"";animation:atlas-loading-progress 1.15s ease-in-out infinite alternate}.atlas-loading>span:last-child{display:grid;gap:.12rem}.atlas-loading strong{color:var(--ink);font-size:.98rem}.atlas-loading small{color:var(--muted);font-size:.82rem;line-height:1.4}#career-atlas-loading:not([hidden])~section observablehq-loading,#career-atlas-loading:not([hidden])~.atlas-timeline observablehq-loading{display:none}@keyframes atlas-loading-progress{0%{transform:translate(-10%)}to{transform:translate(132%)}}.atlas-guide{max-width:var(--max);margin:.5rem 0 2.25rem}.atlas-guide__label{margin:0 0 .55rem;color:var(--faint);font-size:.74rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.atlas-guide__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem;border-bottom:1px solid var(--line)}.atlas-guide__options button{width:100%;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit;padding:.8rem 0;text-align:left}.atlas-guide__options strong,.atlas-guide__options span{display:block}.atlas-guide__options strong{font-size:.98rem;line-height:1.3}.atlas-guide__options span{margin-top:.18rem;color:var(--muted);font-size:.84rem;line-height:1.4}.atlas-guide__options button:hover strong,.atlas-guide__options button[aria-pressed=true] strong{color:var(--accent-strong)}.atlas-guide__options button[aria-pressed=true]{box-shadow:inset 3px 0 var(--accent);padding-left:.75rem}.records-scope{max-width:72ch;margin:1.25rem 0 3rem;border-block:1px solid var(--line);padding:.65rem 0}.records-scope summary{color:var(--ink);cursor:pointer;font-weight:780}.records-scope p{margin:.65rem 0 0;color:var(--muted);line-height:1.55}.atlas-timeline{margin:1rem 0 1.5rem}.portfolio-profile{margin:1.5rem 0 2.5rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface-strong);overflow:hidden}.portfolio-profile__header{display:flex;align-items:start;justify-content:space-between;gap:1.25rem;padding:1rem 1.1rem .9rem}.portfolio-profile__header h3{margin:0;font-family:var(--sans);font-size:1.05rem}.portfolio-profile__header p{max-width:70ch;margin:.2rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.45}.portfolio-profile__status{flex:0 0 auto;color:var(--accent-strong);font-size:.82rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.observablehq .portfolio-profile__filters{margin:0;border-block:1px solid var(--line);background:color-mix(in srgb,var(--surface-soft) 74%,transparent);padding:.9rem 1.1rem .75rem}.portfolio-profile__fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.portfolio-profile__fields label{display:grid;gap:.3rem;min-width:0}.portfolio-profile__fields label>span{color:var(--muted);font-size:.74rem;font-weight:780}.portfolio-profile__fields select{width:100%;min-height:2.35rem;font-size:.84rem}.portfolio-profile__filter-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.7rem}.portfolio-profile__filter-footer p{margin:0;color:var(--faint);font-size:.76rem;line-height:1.4}.portfolio-profile__filter-footer button{flex:0 0 auto;border:0;border-bottom:1px solid currentColor;border-radius:0;background:transparent;color:var(--accent-strong);cursor:pointer;font:780 .78rem/1.35 var(--sans);padding:.15rem 0}.portfolio-profile__filter-footer button:disabled{color:var(--faint);cursor:default;opacity:.58}.portfolio-profile__chart{min-width:0;padding:.9rem 1rem .65rem;overflow-x:auto}.portfolio-profile__chart svg{display:block;max-width:100%;height:auto}.portfolio-profile__records-link{border-top:1px solid var(--line);margin:0;padding:.65rem 1.1rem .75rem;text-align:right}.portfolio-profile__records-link a{font-size:.82rem;font-weight:800}@media(max-width:820px){.portfolio-profile__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.portfolio-profile__header,.portfolio-profile__filter-footer{align-items:stretch;flex-direction:column}.portfolio-profile__status{white-space:normal}.portfolio-profile__fields{grid-template-columns:1fr}.portfolio-profile__filter-footer button{align-self:start}.portfolio-profile__chart{padding-inline:.55rem}}@media(max-width:1040px){.home-hero{grid-template-columns:minmax(0,1fr) minmax(19rem,.82fr);gap:2rem}}@media(max-width:820px){.home-hero{grid-template-columns:1fr}.home-hero{padding-top:.5rem}.home-hero h1{max-width:16ch}.home-hero__visual{max-width:40rem}.site-nav a{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}.site-nav{scroll-snap-type:x proximity}}@media(max-width:620px){.home-hero h1{font-size:clamp(2.4rem,11.5vw,3.35rem)}.work-case__summary{grid-template-columns:2.1rem minmax(0,1fr) 1.2rem;gap:.65rem}.work-case__context{font-size:.68rem}.work-case__title{font-size:clamp(1.25rem,6.7vw,1.55rem)}.work-case__preview{display:none}.work-case__body{margin-left:0}.work-case__facts>div{grid-template-columns:1fr;gap:.25rem}.case-principles,.atlas-guide__options{grid-template-columns:1fr}.career-explorer__pan-label,.career-explorer__range-label{display:none}.career-explorer__range-label-short{display:inline}.career-explorer__pan-button,.career-explorer__zoom-button{min-width:2.45rem}.career-explorer__interaction-hint{flex-basis:100%;white-space:normal}}@media(pointer:coarse){.career-explorer__controls button{min-height:2.75rem}}@media(max-width:820px){html,body{max-width:100vw}body{font-size:16px;overflow-x:hidden}#observablehq-header{position:static}.site-bar,.site-footer p,#observablehq-main{box-sizing:border-box;width:calc(100vw - 2rem)!important;max-width:calc(100vw - 2rem)!important;margin-inline:1rem}#observablehq-main,#observablehq-main>*,.hero-grid>*,.visual-shell,.viz-card{min-width:0}.site-bar{grid-template-columns:1fr auto;row-gap:.65rem}.site-name{grid-column:1;grid-row:1}.theme-toggle{grid-column:2;grid-row:1;justify-self:end}.site-nav{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem .65rem;justify-content:stretch;width:100%;box-sizing:border-box;overflow:visible;scroll-snap-type:none}.site-nav a{display:flex;align-items:center;min-height:2.75rem;white-space:normal}#observablehq-main{padding-top:2rem}h1{font-size:clamp(2rem,10vw,3.1rem)}p,li,dd,td,th,.lede{max-width:100%}.eyebrow{overflow-wrap:anywhere}.hero-grid,.cv-focus__hero,.cv-entry{grid-template-columns:1fr}.viz-card{padding:.78rem}.career-explorer__detail-modes,.project-history-explorer__browse{margin-left:0;padding-left:0;border-left:0}.career-explorer__controls button,.project-history-explorer__controls button,.project-drops__button{white-space:normal}.project-drops__controls{grid-template-columns:auto auto}.project-drops__slider-label{grid-column:1 / -1;grid-template-columns:1fr}.cv-support-grid{grid-template-columns:1fr}.cv-support-panel:nth-child(2n){border-left:0}.cv-support-panel:nth-child(n+2){border-top:1px solid var(--line)}.cv-tool-list section{grid-template-columns:1fr;gap:.25rem}.cv-entry{gap:.45rem;grid-template-columns:1fr}.cv-entry__marker{justify-content:flex-start;padding-top:.85rem}.cv-entry__marker span{font-size:.74rem}.cv-entry__positions li{align-items:start;grid-template-columns:1fr}.cv-entry-list:before{display:none}.cv-project-group>summary{align-items:start;gap:.35rem .65rem;grid-template-columns:minmax(0,1fr) auto;min-height:4.35rem}.cv-project-group__metrics{grid-auto-flow:row;grid-column:1;justify-content:start}.cv-project-group__metrics>span:not(:first-child){border-left:0;display:none}.cv-project-group__toggle{grid-column:2;grid-row:1 / span 2;margin-top:.35rem}.cv-project-group__profile{grid-template-columns:1fr}.cv-project-group__profile>div{grid-template-columns:5.8rem minmax(0,1fr);padding-right:0}.cv-project-records__head{display:none}.cv-project-record{grid-template-columns:1fr}.cv-project-record>*+*{border-left:0;padding-top:.1rem}.cv-project-record__work{padding-bottom:.72rem}.cv-publication-row{grid-template-columns:1fr}table{display:block;overflow-x:auto}}@media print{.site-header,.site-footer,.page-nav,.action-row,.hero-media,.theme-toggle,.employer-summary-grid,.project-register-scroll-note,.observablehq--block:has(svg),#observablehq-main form:not(:has(table)),.practice-experience-explorer,.visual-shell{display:none}#observablehq-main{width:100%;padding:0}body{background:#fff;color:#000;font-size:11pt}h1{font-size:22pt}h2{break-after:avoid}details.work-case:not([open])>:not(summary){display:block!important}details.work-case::details-content{display:block!important;content-visibility:visible!important}details.records-scope:not([open])>:not(summary){display:block!important}details.records-scope::details-content{display:block!important;content-visibility:visible!important}details.cv-project-group:not([open])>:not(summary){display:block!important}details.atlas-project-group:not([open])>:not(summary){display:block!important}details.cv-project-group::details-content{display:block!important;content-visibility:visible!important}.cv-project-records,.atlas-project-records{max-height:none;overflow:visible}.atlas-project-card{grid-template-columns:1fr 1.35fr .9fr}.atlas-record-table-shell{border:0;max-height:none;overflow:visible}.atlas-record-table{min-width:0;width:100%}.atlas-record-table__head,.atlas-project-record{grid-template-columns:1.05fr .8fr 1.35fr 1fr}.atlas-record-table__head span,.atlas-project-record>*{font-size:7pt;padding:.2rem}.work-case__toggle,.cv-project-group__toggle{display:none}.work-case__body{max-width:none;margin-left:0}a{color:#000}}@media(prefers-reduced-motion:reduce){.atlas-loading__indicator:after{width:100%;animation:none}*,*:before,*:after{scroll-behavior:auto!important}}
