@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:300;src:url(./spectral-cyrillic-ext-300-normal-DxJ0BlAb.woff2) format("woff2"),url(./spectral-cyrillic-ext-300-normal-Dew-0mlA.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:300;src:url(./spectral-cyrillic-300-normal-TT4edCfe.woff2) format("woff2"),url(./spectral-cyrillic-300-normal-6o5Qi3HZ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:300;src:url(./spectral-vietnamese-300-normal-Do0NpIVl.woff2) format("woff2"),url(./spectral-vietnamese-300-normal-dynA_pMh.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:300;src:url(./spectral-latin-ext-300-normal-B2IMUBX5.woff2) format("woff2"),url(./spectral-latin-ext-300-normal-BIyTyIW_.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:300;src:url(./spectral-latin-300-normal-Csl9mA3s.woff2) format("woff2"),url(./spectral-latin-300-normal-BMSND_f1.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:400;src:url(./spectral-cyrillic-ext-400-normal-B4-YHs9i.woff2) format("woff2"),url(./spectral-cyrillic-ext-400-normal--n_iQ4wr.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:400;src:url(./spectral-cyrillic-400-normal-Bx9Tn3WZ.woff2) format("woff2"),url(./spectral-cyrillic-400-normal-X3p2PSzL.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:400;src:url(./spectral-vietnamese-400-normal-C7CRHYqk.woff2) format("woff2"),url(./spectral-vietnamese-400-normal-CWkMWCzb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:400;src:url(./spectral-latin-ext-400-normal-XDLFwhqg.woff2) format("woff2"),url(./spectral-latin-ext-400-normal-BHbqXr-7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:400;src:url(./spectral-latin-400-normal-CTVgUekv.woff2) format("woff2"),url(./spectral-latin-400-normal-D34IWA1h.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:italic;font-display:swap;font-weight:400;src:url(./spectral-cyrillic-ext-400-italic-CZOVIkJA.woff2) format("woff2"),url(./spectral-cyrillic-ext-400-italic-C6Gmo4JY.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:italic;font-display:swap;font-weight:400;src:url(./spectral-cyrillic-400-italic-C6o5RXh-.woff2) format("woff2"),url(./spectral-cyrillic-400-italic-C95RxGpc.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:italic;font-display:swap;font-weight:400;src:url(./spectral-vietnamese-400-italic-DO3bsfcj.woff2) format("woff2"),url(./spectral-vietnamese-400-italic-D8dhja4j.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:italic;font-display:swap;font-weight:400;src:url(./spectral-latin-ext-400-italic-BgTM1Mst.woff2) format("woff2"),url(./spectral-latin-ext-400-italic-BcKU4A_a.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-display:swap;font-weight:400;src:url(./spectral-latin-400-italic-CDO25mTW.woff2) format("woff2"),url(./spectral-latin-400-italic-Ds-NcNVC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:500;src:url(./spectral-cyrillic-ext-500-normal-bcG1qx3J.woff2) format("woff2"),url(./spectral-cyrillic-ext-500-normal-B5u3KHyE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:500;src:url(./spectral-cyrillic-500-normal-medSbGbm.woff2) format("woff2"),url(./spectral-cyrillic-500-normal-CNC_J6mt.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:500;src:url(./spectral-vietnamese-500-normal-qnENts6X.woff2) format("woff2"),url(./spectral-vietnamese-500-normal-BfZg6KYt.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:500;src:url(./spectral-latin-ext-500-normal-CC9VEg_t.woff2) format("woff2"),url(./spectral-latin-ext-500-normal-Bmnp8FUT.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:500;src:url(./spectral-latin-500-normal-nNjq7_Cd.woff2) format("woff2"),url(./spectral-latin-500-normal-PrYyf_gG.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:600;src:url(./spectral-cyrillic-ext-600-normal-CvRHnPuy.woff2) format("woff2"),url(./spectral-cyrillic-ext-600-normal-BVATWin6.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:600;src:url(./spectral-cyrillic-600-normal-Dl75bDKp.woff2) format("woff2"),url(./spectral-cyrillic-600-normal-veT-ELBO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:600;src:url(./spectral-vietnamese-600-normal-ZNiwCzjU.woff2) format("woff2"),url(./spectral-vietnamese-600-normal-esmjhrFa.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:600;src:url(./spectral-latin-ext-600-normal-DKlDBbgb.woff2) format("woff2"),url(./spectral-latin-ext-600-normal-DnKmvInL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:600;src:url(./spectral-latin-600-normal-DE3OxvnQ.woff2) format("woff2"),url(./spectral-latin-600-normal-DXnQJnYb.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./space-mono-vietnamese-400-normal-BNOj0Qhp.woff2) format("woff2"),url(./space-mono-vietnamese-400-normal-B0PMp_xB.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./space-mono-latin-ext-400-normal-DTLbW2xa.woff2) format("woff2"),url(./space-mono-latin-ext-400-normal-D4cJI_B-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./space-mono-latin-400-normal-Rg4St2Dn.woff2) format("woff2"),url(./space-mono-latin-400-normal-_3DlpgIW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./space-mono-vietnamese-700-normal-DWQgDHuA.woff2) format("woff2"),url(./space-mono-vietnamese-700-normal-D-KrLuLr.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./space-mono-latin-ext-700-normal-B2s3bDs2.woff2) format("woff2"),url(./space-mono-latin-ext-700-normal-B_E7P90g.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./space-mono-latin-700-normal-mWgeinG7.woff2) format("woff2"),url(./space-mono-latin-700-normal-D7A851RN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #F7F4EE;--text-primary: #1C1A17;--text-body: #4a453c;--text-body-2: #5a5349;--text-secondary: #8A8378;--text-muted: #B7B0A2;--text-value: #3a352d;--node-idle-label: #6a6357;--node-idle-stroke: #7c766a;--ochre: #B08334;--ochre-hover: #8f6626;--ask-blue: #3A5A8C;--ask-blue-hover: #2b4570;--cat-architecture: #ECE7DA;--cat-art: #F1E8D6;--cat-adoption: #E4E8EE;--cat-code: #E5ECE5;--cat-workshops: #F1E5E1;--rule-strong: #1C1A17;--rule-hairline: #D8D2C6;--edge: #CFC8BA;--image-bg: #EEEAE0;--serif: "Spectral", Georgia, serif;--mono: "Space Mono", ui-monospace, monospace;--sp-page-y: 56px;--sp-page-x: 72px;--sp-page-btm: 96px;--sp-64: 64px;--sp-34: 34px;--sp-28: 28px;--sp-26: 26px;--sp-22: 22px;--sp-20: 20px;--sp-14: 14px;--sp-12: 12px;--sp-11: 11px;--sp-10: 10px;--rule-weight: 1px;--img-saturate: .92;--t-fast: .15s ease;--t-link: .18s ease;--t-node: .2s ease;--scroll-dur: .52s;--max-content: 1440px;--canvas-w: 920px;--canvas-h: 560px;--ask-w: 190px}@media(max-width:1199px){:root{--sp-page-x: 40px}}@media(max-width:767px){:root{--sp-page-x: 24px;--sp-page-y: 32px;--sp-page-btm: 64px}}.t-wordmark{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1;letter-spacing:.14em;color:var(--text-primary)}.t-tagline{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.03em;color:var(--text-secondary)}.t-nav{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.24em;text-transform:uppercase;color:var(--text-primary);text-decoration:none;transition:color var(--t-link)}.t-nav:hover{color:var(--ochre)}.t-filter{font-family:var(--mono);font-size:12px;font-weight:400;line-height:1;color:var(--text-secondary);transition:color var(--t-fast)}.t-cluster-label{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--text-primary)}.t-node-label{font-family:var(--serif);font-size:15px;font-weight:400;line-height:1;color:var(--node-idle-label)}.t-node-label-active{font-family:var(--serif);font-size:19px;font-weight:400;line-height:1;color:var(--text-primary)}.t-hub-root{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1;color:var(--text-primary)}.t-title{font-family:var(--serif);font-size:52px;font-weight:400;line-height:1.02;color:var(--text-primary);text-wrap:balance}.t-body{font-family:var(--serif);font-size:18px;font-weight:400;line-height:1.62;color:var(--text-body);max-width:42ch;text-wrap:pretty}.t-process{font-family:var(--serif);font-size:16px;font-weight:400;font-style:italic;line-height:1.62;color:var(--text-body-2);max-width:42ch;text-wrap:pretty}.t-meta-label{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--text-secondary)}.t-meta-key{font-family:var(--mono);font-size:12px;font-weight:400;line-height:1;color:var(--text-muted)}.t-meta-value{font-family:var(--mono);font-size:12px;font-weight:400;line-height:1;color:var(--text-value)}.t-stack{font-family:var(--mono);font-size:12px;font-weight:400;line-height:1.7;color:var(--text-value)}.t-caption{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.04em;color:var(--text-muted)}.t-hint{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.18em;color:var(--text-muted)}.t-ask{font-family:var(--mono);font-size:12px;font-weight:400;line-height:1.7;letter-spacing:.02em;color:var(--ask-blue);text-decoration:none;transition:color var(--t-fast)}@media(max-width:767px){.t-wordmark{font-size:22px}.t-title{font-size:34px}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{overflow-y:scroll}body{background:var(--paper);color:var(--text-primary);font-family:var(--serif);-webkit-font-smoothing:antialiased}button{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}.page{max-width:var(--max-content);margin:0 auto;padding:var(--sp-page-y) var(--sp-page-x) var(--sp-page-btm);overflow-x:clip}.rule-hairline{border:0;border-top:var(--rule-weight) solid var(--rule-hairline);margin:0}.rule-strong{border:0;border-top:var(--rule-weight) solid var(--rule-strong);margin:0}.header{display:flex;justify-content:space-between;align-items:flex-start}.header__home{text-decoration:none;color:inherit;display:block}.header__home:hover .t-wordmark{color:var(--ochre)}.t-wordmark{transition:color var(--t-link)}.header__tagline{margin-top:var(--sp-10)}.header__nav{display:flex;gap:var(--sp-28);padding-top:6px}.header__rule{margin:var(--sp-26) 0 var(--sp-22)}.filters{display:flex;flex-wrap:wrap;gap:var(--sp-14) var(--sp-34)}.filters__rule{margin:var(--sp-22) 0 0}.filter{color:var(--text-secondary)}.filter--dimmed{color:var(--text-muted)}.filter--active{color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--ochre);text-underline-offset:4px}.filter__count{color:var(--ochre)}.filter--empty{color:var(--text-muted);cursor:default}.graph{display:flex;flex-direction:column;align-items:center}.graph__ask{margin:0 0 var(--sp-28);text-align:center}.graph__stage{width:100%;min-width:0;display:flex;flex-direction:column;align-items:center}.graph__canvas{position:relative;touch-action:pan-y}.graph__edges{position:absolute;inset:0;overflow:visible;pointer-events:none}.graph__canvas--zoomed{overflow:hidden;cursor:grab;touch-action:none}.graph__canvas--panning{cursor:grabbing}.graph__footer{display:flex;align-items:baseline;justify-content:center;gap:var(--sp-22);margin-top:var(--sp-22)}.graph__hint{text-align:center}.graph__reset{color:var(--ochre)}.graph--placeholder{flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-14);min-height:var(--canvas-h)}.graph__retry{color:var(--ochre)}.node{position:absolute;display:flex;align-items:center;gap:var(--sp-10);cursor:pointer;transition:var(--t-node);white-space:nowrap;transform:translate(-5px,-50%)}.node--flip{flex-direction:row-reverse;transform:translate(calc(-100% + 5px),-50%)}.node--wrap{white-space:normal;align-items:flex-start}.node--wrap .node__dot{margin-top:4px}.node__dot{flex:none;width:10px;height:10px;border-radius:50%;border:var(--rule-weight) solid var(--node-idle-stroke);background:var(--paper);transition:var(--t-link)}.node:hover .node__dot{border-color:var(--ochre)}.node:hover .node__label{color:var(--text-primary)}.node--selected .node__dot{width:15px;height:15px;border-color:var(--ochre);background:var(--ochre)}.node__label{transition:color var(--t-link)}.node:hover,.node--selected{z-index:5}.node:hover .node__label,.node--selected .node__label{background:var(--paper);padding:2px 5px;margin:-2px -5px}.node--label-hidden .node__label{position:absolute;left:100%;margin-left:var(--sp-10);opacity:0;pointer-events:none;white-space:normal;max-width:240px;transition:opacity var(--t-link)}.node--flip.node--label-hidden .node__label{left:auto;right:100%;margin-left:0;margin-right:var(--sp-10);text-align:right}.node--label-hidden:hover .node__label,.node--label-hidden.node--selected .node__label{opacity:1}.cluster-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;z-index:3;background:var(--paper);padding:3px 9px;margin:-3px -9px}.cluster-label--action{cursor:pointer;transition:color var(--t-link)}.cluster-label--action:hover{color:var(--ochre)}.cluster-label[data-cat=architecture]{background:var(--cat-architecture)}.cluster-label[data-cat=art]{background:var(--cat-art)}.cluster-label[data-cat=adoption]{background:var(--cat-adoption)}.cluster-label[data-cat=code]{background:var(--cat-code)}.cluster-label[data-cat=workshops]{background:var(--cat-workshops)}.ask{display:inline-block;text-align:center}.ask:hover{color:var(--ask-blue-hover);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--rule-hairline)}.detail{margin-top:var(--sp-64)}.detail__eyebrow{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0 var(--sp-34)}.detail__back{color:var(--ochre)}.detail__grid{display:grid;grid-template-columns:360px 1fr;gap:var(--sp-64);align-items:start}.detail__grid--text-only{display:block;max-width:640px}.detail__title{margin:0 0 var(--sp-28)}.meta{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-11) var(--sp-22);border-top:var(--rule-weight) solid var(--rule-hairline);padding-top:var(--sp-20)}.meta__value--client{color:var(--ochre)}.detail__body{margin-top:var(--sp-26)}.detail__process-label{margin-top:var(--sp-34)}.detail__process-body{margin-top:var(--sp-12)}.detail__stack-label{margin-top:30px}.detail__stack-body{margin-top:var(--sp-12);white-space:pre-line}.figures{display:flex;flex-direction:column;gap:var(--sp-28)}.figure{display:flex;flex-direction:column;gap:var(--sp-10);margin:0}.figure__frame{background:var(--image-bg)}.figure img{display:block;width:100%;height:auto;filter:saturate(var(--img-saturate))}.figure__frame[style*=aspect-ratio] img{height:100%;object-fit:cover}.figure__frame--empty{aspect-ratio:4 / 3}@media(max-width:1199px){.detail__grid{grid-template-columns:1fr}.detail__grid>.detail__text{max-width:640px}}@media(max-width:767px){.graph{align-items:stretch}.graph__ask{margin-bottom:var(--sp-22)}.header__nav{gap:var(--sp-22)}.filters{gap:var(--sp-12) var(--sp-22)}}.page-doc{max-width:800px;margin:0 auto;padding-top:var(--sp-34)}.page-doc__rule{margin:var(--sp-34) 0}.page-id__name{margin:0 0 var(--sp-22)}.page-id__roles{list-style:none;margin:0 0 var(--sp-34);padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-10) var(--sp-22)}.page-id__role--primary{color:var(--ochre)}.page-id__meta{display:block;border-top:0;padding-top:0}.page-id__meta-row{display:grid;grid-template-columns:90px 1fr;gap:var(--sp-22);margin-bottom:var(--sp-11)}.page-id__link{color:var(--text-value);text-decoration:none;transition:color var(--t-link)}.page-id__link:hover{color:var(--ochre)}.pullquote{margin:0 0 var(--sp-64);font-family:var(--serif);font-size:24px;font-weight:300;line-height:1.5;color:var(--text-primary);max-width:46ch;text-wrap:pretty}.pullquote .em{font-weight:500}.doc-section{display:grid;grid-template-columns:170px 1fr;gap:var(--sp-34);margin-bottom:var(--sp-64)}.doc-section--full{display:block}.doc-section--full .doc-section__title{margin-bottom:var(--sp-20);padding-top:0}.doc-section--full .doc-section__body{max-width:68ch}.doc-section__title{margin:0;padding-top:6px}.doc-section__content{min-width:0}.doc-section__body{margin:0 0 var(--sp-20);max-width:60ch}.doc-section__body:last-child{margin-bottom:0}.em{font-weight:500;color:var(--text-primary)}.doc-cta{display:inline-block;margin-top:var(--sp-28);color:var(--ochre);text-decoration:none;transition:color var(--t-link)}.doc-cta:hover{color:var(--ochre-hover)}.stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-34);margin-top:var(--sp-22);border-top:var(--rule-weight) solid var(--rule-hairline);padding-top:var(--sp-20)}.stat__value{font-family:var(--serif);font-size:34px;font-weight:400;line-height:1;color:var(--ochre);margin-bottom:var(--sp-10)}.stat__label{display:block;line-height:1.5}.entry{display:grid;grid-template-columns:170px 1fr;gap:var(--sp-34);padding:var(--sp-28) 0;border-top:var(--rule-weight) solid var(--rule-hairline)}.entry__period{padding-top:6px}.entry__role{font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.2;color:var(--text-primary);margin:0 0 var(--sp-10)}.entry__org{display:block;margin-bottom:var(--sp-20)}.entry__text{margin:0 0 var(--sp-20)}.entry__bullets{list-style:none;margin:0 0 var(--sp-20);padding:0}.entry__bullet{margin-bottom:var(--sp-12);padding-left:var(--sp-20);position:relative}.entry__bullet:before{content:"";position:absolute;left:0;top:.82em;width:10px;height:var(--rule-weight);background:var(--rule-hairline)}.tags{display:flex;flex-wrap:wrap;gap:var(--sp-10) var(--sp-14)}.tag{color:var(--text-secondary)}.tag+.tag:before{content:"· ";color:var(--text-muted)}.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-34);border-top:var(--rule-weight) solid var(--rule-hairline);padding-top:var(--sp-28)}.skill__group{display:block;margin-bottom:var(--sp-12)}.skill__items{list-style:none;margin:0;padding:0}.skill__item{color:var(--text-secondary)}@media(max-width:900px){.doc-section{grid-template-columns:1fr;gap:var(--sp-20)}.doc-section__title{padding-top:0}}@media(max-width:767px){.stats{grid-template-columns:repeat(2,1fr);gap:var(--sp-22)}.entry{grid-template-columns:1fr;gap:var(--sp-12)}.entry__period{padding-top:0}.page-id__meta-row{grid-template-columns:1fr;gap:2px}.pullquote{font-size:21px;max-width:none}}
