@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}:root{--seam-gap:clamp(1.5rem, .6rem + 4.2vw, 6rem);--masthead-h:3.5rem;--paper-sys:color-mix(in oklab, var(--sys-t) 55%, var(--paper));--paper-int:color-mix(in oklab, var(--int-t) 55%, var(--paper));--sys-soft:color-mix(in oklab, var(--sys) 55%, var(--paper));--int-soft:color-mix(in oklab, var(--int) 50%, var(--paper));--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .06 0 0 0 0 .1 0 0 0 0 .24 0 0 0 .85 -.42'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--grain-opacity:.26;--halftone:radial-gradient(circle at center, rgb(var(--ink-rgb) / .2) .85px, transparent 1.15px);--halftone-size:6px 6px}html{scroll-padding-top:calc(var(--masthead-h) + var(--space-m))}.seam-grid{column-gap:var(--seam-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.side-sys{text-align:end}.side-int{text-align:start}.side,.side>p{max-width:none}.side-sys>p,.side-sys>div{margin-inline-start:auto}.section{isolation:isolate;padding-block:clamp(3.5rem,2rem + 5vw,7rem);padding-inline:var(--gutter);color:var(--ink);background:0 0;position:relative}.merge-band+.section{padding-top:var(--space-xl)}.section:has(+.merge-band){padding-bottom:var(--space-xl)}.section>*{max-width:var(--page-max);margin-inline:auto}.plate.section:before,.plate.section:after{content:"";inset-block:0;left:var(--seam-x);z-index:-1;pointer-events:none;background-size:var(--halftone-size);background-position:top;position:absolute;transform:translate(-50%)}.plate.section:before{width:calc(var(--seam-gap) * 1.6);background-image:radial-gradient(circle at center, rgb(var(--ink-rgb) / .16) .7px, transparent 1px);-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,#0000,#000 35% 65%,#0000),linear-gradient(#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 35% 65%,#0000),linear-gradient(#0000,#000 12% 88%,#0000);mask-composite:intersect}.plate.section:after{width:calc(var(--seam-gap) * .55);background-image:radial-gradient(circle at center, rgb(var(--ink-rgb) / .22) 1.5px, transparent 1.9px);-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,#0000,#000 50%,#0000),linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 50%,#0000),linear-gradient(#0000,#000 18% 82%,#0000);mask-composite:intersect}.proof{display:none}@media (width>=75rem){.proof{z-index:0;pointer-events:none;max-width:none;margin:0;display:block;position:absolute;inset:0}.proof-left,.proof-right{align-items:center;gap:var(--space-s);width:var(--gutter);flex-direction:column;display:flex;position:absolute;top:clamp(3.5rem,2rem + 5vw,7rem)}.proof-left{left:max(0px, (100% - var(--page-max)) / 2 - var(--gutter))}.proof-right{right:max(0px, (100% - var(--page-max)) / 2 - var(--gutter))}.merge-band+.section .proof-left,.merge-band+.section .proof-right{top:var(--space-xl)}.proof-reg{fill:none;width:18px;height:18px;stroke:var(--ink);stroke-width:.8px;opacity:.55;overflow:visible}.proof-sheet{writing-mode:vertical-rl;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:.62rem;transform:rotate(180deg)}.proof-bars{gap:3px;display:grid}.proof-bars i{background:var(--ink);width:9px;height:14px;display:block}.proof-bars .pb-sys{background:var(--sys)}.proof-bars .pb-int{background:var(--int)}.proof-bars .pb-ink{background:var(--ink)}.proof-bars .pb-tint-sys{background:var(--sys-t);box-shadow:inset 0 0 0 .5px var(--sys)}.proof-bars .pb-tint-int{background:var(--int-t);box-shadow:inset 0 0 0 .5px var(--int)}.section-head--inverse .proof-reg{stroke:var(--ink-inverse)}.section-head--inverse .proof-sheet{color:color-mix(in oklab, var(--ink-inverse) 70%, var(--ink))}.section-head--inverse .proof-bars .pb-ink{box-shadow:inset 0 0 0 .5px var(--ink-inverse)}}.section-head{row-gap:var(--space-2xs);margin-bottom:var(--space-2xl)}.section-title{font-size:var(--step-5);letter-spacing:0;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:baseline;padding-block:.08em .14em;line-height:1;display:grid;position:relative;overflow:visible}.st-sys,.st-int,.card-title{text-shadow:calc(var(--mis,0) * -1px) 0 0 rgb(var(--sys-rgb) / .55), calc(var(--mis,0) * 1px) 0 0 rgb(var(--int-rgb) / .5)}.st-half{white-space:nowrap}.st-sys{font-family:var(--font-mono);letter-spacing:-.045em;color:var(--sys);justify-self:end;padding-inline-end:.04em;font-weight:500}.st-int{font-family:var(--font-serif);font-variation-settings:var(--fraunces-axes);letter-spacing:-.01em;color:var(--int);justify-self:start;padding-inline:.06em .14em;font-style:italic;font-weight:420}.section-head--quiet .section-title{font-size:var(--step-4)}.section-head--quiet .st-sys{font-size:var(--step--1);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--sys);align-self:center;padding-inline-end:.2em;font-weight:500}.section-head--quiet .st-seam{opacity:.55;top:.05em;bottom:.05em}.section-head--quiet{margin-bottom:var(--space-xl)}.st-seam{width:var(--seam-w);margin-left:calc(var(--seam-w) / -2);background:var(--ink);color:var(--ink);pointer-events:none;position:absolute;top:-.18em;bottom:-.22em;left:50%}.st-count{color:var(--sys);grid-column:1;justify-self:end}.st-note{font-family:var(--font-serif);font-variation-settings:var(--fraunces-axes);font-style:italic;font-size:var(--step-1);color:var(--int);grid-column:2;line-height:1.2}.section-head--inverse .st-sys,.section-head--inverse .st-count{color:color-mix(in oklab, var(--sys) 45%, var(--sys-t))}.section-head--inverse .st-int,.section-head--inverse .st-note{color:color-mix(in oklab, var(--int) 35%, var(--int-t))}.section-head--inverse .st-seam{background:var(--ink-inverse)}.plate-marker{width:14px;height:14px;color:var(--ink);flex:none;justify-content:center;align-items:center;display:inline-flex}.plate-marker svg{width:14px;height:14px;overflow:visible}.pm-sys{fill:var(--sys)}.pm-int{fill:var(--int);mix-blend-mode:multiply}.masthead{z-index:var(--z-header);justify-content:space-between;align-items:center;gap:var(--space-s);height:var(--masthead-h);padding-inline:var(--gutter);color:var(--ink);background:linear-gradient(to right, color-mix(in srgb, var(--sys-t) 96%, transparent) 0 var(--seam-x), color-mix(in srgb, var(--int-t) 96%, transparent) var(--seam-x) 100%);border-bottom:1px solid var(--rule);display:flex;position:fixed;inset:0 0 auto}.masthead-mark{min-height:44px;padding:var(--space-3xs);align-items:center;font-size:1.45rem;line-height:1;text-decoration:none;display:inline-flex}.masthead-mark .mono-mark{font-family:var(--font-mono);letter-spacing:-.04em;font-weight:600}.masthead-mark .serif-italic{mix-blend-mode:multiply;margin-left:-.06em;font-weight:500}.masthead-nav{justify-content:flex-end;gap:var(--space-3xs) clamp(var(--space-xs), 2vw, var(--space-l));flex-wrap:wrap;display:flex}.masthead-nav a{min-height:32px;padding-block:var(--space-3xs);color:var(--ink);border-bottom:1px solid #0000;align-items:center;text-decoration:none;display:inline-flex}.masthead-nav a:hover{border-bottom-color:currentColor}.masthead:before{content:"";z-index:-1;pointer-events:none;background-color:rgb(var(--ink-rgb) / 0);position:absolute;inset:0}.masthead[data-ink=dark]{color:var(--ink-inverse);border-bottom-color:#f4f5fa29}.masthead[data-ink=dark]:before{background-color:rgb(var(--ink-rgb) / .96)}.masthead[data-ink=dark] .masthead-nav a,.masthead[data-ink=dark] .masthead-toggle{color:var(--ink-inverse)}.masthead[data-ink=dark] .masthead-mark .ink-sys{color:color-mix(in oklab, var(--sys) 40%, var(--sys-t))}.masthead[data-ink=dark] .masthead-mark .ink-int{color:color-mix(in oklab, var(--int) 35%, var(--int-t));mix-blend-mode:normal}.masthead[data-ink=dark] :focus-visible{outline-color:var(--ink-inverse)}@media (prefers-reduced-motion:no-preference){.masthead{transition:color var(--dur-base) var(--ease-int), border-color var(--dur-base) var(--ease-int)}.masthead:before{transition:background-color var(--dur-base) var(--ease-int)}}html.menu-open{overscroll-behavior:none;overflow:hidden}.masthead-toggle{align-items:center;gap:var(--space-2xs);min-height:44px;padding:0 var(--space-2xs);font:inherit;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink);cursor:pointer;background:0 0;border:0;display:none}.mt-icon{gap:5px;width:18px;display:inline-grid;position:relative}.mt-icon i{background:var(--sys);height:1.5px;display:block}.mt-icon i+i{background:var(--int);justify-self:end;width:12px}.masthead.is-menu-open .mt-icon i{background:currentColor}.hero{isolation:isolate;min-height:100svh;color:var(--ink);background:0 0;position:relative;overflow:clip}.hero-ground{z-index:-2;grid-template-columns:var(--seam-x) 1fr;display:grid;position:absolute;inset:0}.hero-ground-sys,.hero-ground-int{color:var(--ink);background-image:var(--grain);background-size:var(--grain-size) var(--grain-size);background-blend-mode:multiply}.hero-ground-sys{background-color:var(--sys-t);background-image:var(--grain), radial-gradient(circle, rgb(var(--sys-rgb) / .28) 1px, transparent 1.3px);background-size:var(--grain-size) var(--grain-size), var(--grid-cell) var(--grid-cell);background-position:0 0, calc(var(--grid-cell) / 2) calc(var(--grid-cell) / 2)}.hero-ground-int{background-color:var(--int-t);position:relative}.hero-ground-int:before{content:"";inset-block:0;background-image:var(--halftone);background-size:var(--halftone-size);width:clamp(3rem,9vw,9rem);position:absolute;left:0;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 45% 55%,#0000);mask-image:linear-gradient(90deg,#0000,#000 45% 55%,#0000)}.hero-field{z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-ground,.hero-field{-webkit-mask-image:linear-gradient(#000 78%,#0000);mask-image:linear-gradient(#000 78%,#0000)}.hero-inner{justify-content:center;gap:clamp(var(--space-l), 4vh, var(--space-2xl));min-height:100svh;max-width:var(--page-max);padding:calc(var(--masthead-h) + var(--space-xl)) var(--gutter) var(--space-xl);flex-direction:column;margin-inline:auto;display:flex}.hero-eyebrow{max-width:none}.hero-eyebrow>:first-child{text-align:end}.hero-name-wrap{font-size:min(9rem, 15vh, calc((100vw - 2 * var(--gutter)) / 5.6));line-height:1;display:grid}.hero-name-wrap>*{grid-area:1/1}.hero-name{font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:0;text-wrap:nowrap}.zip{--zip-x:50%;--zip-d:1.8%;display:block;position:relative}.zip-layer{text-align:center;white-space:nowrap;display:block}.zip-int{position:absolute;inset:0}.zip-line{white-space:nowrap;display:block}.cell{text-align:center;width:.64em;display:inline-block}.zip-sys{font-family:var(--font-mono);color:var(--sys);font-weight:500}.zip-int{font-family:var(--font-serif);font-variation-settings:"opsz" 144, var(--fraunces-axes);letter-spacing:-.02em;color:var(--int);font-style:italic;font-weight:400}.zipper-name .zn-f{font-variation-settings:"opsz" 144, "SOFT" 100, "WONK" 1;letter-spacing:-.02em}.zip-seam{pointer-events:none;width:100%;max-width:none;height:calc(100% + .24em);position:absolute;inset:-.12em 0;overflow:visible}.zip-seam polyline{fill:none;stroke:var(--ink);stroke-width:1.75px;stroke-linejoin:miter;stroke-miterlimit:3;vector-effect:non-scaling-stroke}.zipper-name{visibility:hidden;text-align:center;color:var(--ink)}.hero.is-art-ready .zipper-name{visibility:visible}.hero.is-art-ready .zip{visibility:hidden}.hero-intro{row-gap:var(--space-m);text-shadow:0 0 2px var(--paper), 0 0 8px var(--paper), 0 0 14px var(--paper)}.hero-meta,.hero-thesis{isolation:isolate;position:relative}.hero-meta:before,.hero-thesis:before{content:"";z-index:-1;pointer-events:none;-webkit-mask-composite:source-in;background:var(--bk);position:absolute;inset:-1.2rem -1.6rem;-webkit-mask-image:linear-gradient(90deg,#0000,#000 1.6rem calc(100% - 1.6rem),#0000),linear-gradient(#0000,#000 1.2rem calc(100% - 1.2rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 1.6rem calc(100% - 1.6rem),#0000),linear-gradient(#0000,#000 1.2rem calc(100% - 1.2rem),#0000);mask-composite:intersect}.hero-meta{--bk:color-mix(in srgb, var(--sys-t) 88%, transparent)}.hero-thesis{--bk:color-mix(in srgb, var(--int-t) 88%, transparent)}.hero-meta:before{width:calc(36ch + 3.2rem);max-width:calc(100% + 3.2rem);left:auto}.hero-thesis:before{width:calc(46ch + 3.2rem);max-width:calc(100% + 3.2rem);right:auto}.hero-meta{gap:var(--space-3xs);padding-top:.45em;display:grid}.hero-meta .mono{font-size:var(--step--1)}.hero-meta>:first-child{color:var(--sys);font-weight:600}.hero-thesis{gap:var(--space-s);display:grid}.hero-positioning{font-size:var(--step-3);color:var(--int);max-width:18ch;line-height:1.12}.hero-links{justify-content:center;align-items:center;gap:var(--space-2xs) var(--space-s);flex-wrap:wrap;width:fit-content;margin-inline:auto;display:flex}.hero-link{min-height:44px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);box-shadow:0 0 0 0 rgb(var(--sys-rgb) / .6), 0 0 0 0 rgb(var(--int-rgb) / .55);align-items:center;padding:.7em 1.3em;text-decoration:none;display:inline-flex}.hero-links>li:first-child .hero-link{color:var(--ink-inverse);background:var(--ink)}.hero-link:hover,.hero-link:focus-visible{box-shadow:-3px -2px 0 0 rgb(var(--sys-rgb) / .6), 3px 2px 0 0 rgb(var(--int-rgb) / .55)}.seam-slider{justify-content:center;align-items:center;gap:var(--space-s);display:flex}.seam-slider .serif-italic{font-size:var(--step-0)}.seam-slider input[type=range]{-webkit-appearance:none;appearance:none;width:min(20rem,46vw);height:28px;color:var(--ink);cursor:ew-resize;--fill:calc(11px + (100% - 22px) * var(--value,50) / 100);background:0 0;margin:0}.seam-slider input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--sys) 0 var(--fill), var(--int) var(--fill) 100%);border-radius:0 3px 3px 0;height:6px}.seam-slider input[type=range]::-moz-range-track{background:linear-gradient(to right, var(--sys) 0 var(--fill), var(--int) var(--fill) 100%);border-radius:0 3px 3px 0;height:6px}.seam-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--ink);border:2px solid var(--paper);width:22px;height:22px;box-shadow:0 0 0 1px var(--ink);border-radius:0 50% 50% 0;margin-top:-8px}.seam-slider input[type=range]::-moz-range-thumb{background:var(--ink);border:2px solid var(--paper);width:18px;height:18px;box-shadow:0 0 0 1px var(--ink);border-radius:0 50% 50% 0}.seam-slider input[type=range]:focus-visible{outline:var(--focus-ring);outline-offset:4px}.seam-spine{top:0;bottom:0;left:var(--seam-x);z-index:var(--z-art);pointer-events:none;width:2.5rem;color:var(--ink);background:0 0;position:absolute;transform:translate(-50%)}.seam-spine:empty:before{content:"";inset-block:0;background:linear-gradient(to right, transparent 4px, var(--ink) 4px 8px, transparent 8px) 0 0 / 100% 10px, linear-gradient(to bottom, var(--sys) 0 4px, transparent 4px) 0 0 / 4px 10px repeat-y, linear-gradient(to bottom, transparent 5px, var(--int) 5px 9px, transparent 9px) 100% 0 / 4px 10px repeat-y;background-repeat:repeat-y;width:12px;position:absolute;left:50%;transform:translate(-50%)}.merge-band{pointer-events:none;height:clamp(9rem,24vh,15rem);color:var(--ink);background:linear-gradient(#0000,#e9ecf58c 50%,#0000);position:relative;overflow:hidden}.merge-band>canvas{-webkit-mask-image:linear-gradient(#0000,#0000004d 18%,#000 42% 60%,#0000004d 84%,#0000);mask-image:linear-gradient(#0000,#0000004d 18%,#000 42% 60%,#0000004d 84%,#0000)}.merge-band--converge>canvas{-webkit-mask-image:linear-gradient(#0000,#000 35%);mask-image:linear-gradient(#0000,#000 35%)}@media (prefers-reduced-motion:no-preference){.merge-band>canvas{animation:merge-band-in .7s var(--ease-int) both}}@keyframes merge-band-in{0%{opacity:0}}.merge-band--grid-to-flow:empty{background-image:linear-gradient(to right, rgb(var(--sys-rgb) / .22) 1px, transparent 1px), linear-gradient(to bottom, rgb(var(--sys-rgb) / .22) 1px, transparent 1px);background-size:var(--grid-cell) var(--grid-cell);-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,#000 15%,#0000 60%),linear-gradient(#0000,#000 30% 70%,#0000);mask-image:linear-gradient(90deg,#000 15%,#0000 60%),linear-gradient(#0000,#000 30% 70%,#0000);mask-composite:intersect}.merge-band--flow-to-grid:empty{background-image:var(--halftone);background-size:var(--halftone-size);-webkit-mask-image:radial-gradient(30% 45%,#000,#0000);mask-image:radial-gradient(30% 45%,#000,#0000)}.merge-band--converge{background:linear-gradient(to bottom, transparent 0, #e9ecf599 30%, color-mix(in oklab, var(--ink) 35%, var(--mix-t)) 72%, var(--ink) 100%);height:clamp(11rem,30vh,19rem)}.legend-row{margin-bottom:var(--space-xl);align-items:center}.legend{gap:var(--space-2xs) var(--space-m);font-size:var(--step--1);flex-wrap:wrap;display:flex}.legend li{align-items:center;gap:var(--space-2xs);display:inline-flex}.roles{display:grid}.role{padding-block:var(--space-xl);border-top:1px solid var(--rule)}.role:last-child{border-bottom:1px solid var(--rule)}.role>.side-sys{align-self:stretch}.role-meta{top:calc(var(--masthead-h) + clamp(var(--space-l), 14vh, 9rem));gap:var(--space-3xs);justify-items:end;display:grid;position:sticky}.role-meta:after{content:"";width:min(100%,11rem);height:4.5rem;margin-top:var(--space-m);background-image:radial-gradient(circle, rgb(var(--sys-rgb) / .45) 1.1px, transparent 1.5px);background-position:100% 0;background-size:12px 12px;display:block;-webkit-mask-image:linear-gradient(270deg,#000 0 25%,#0000 25% 100%),linear-gradient(270deg,#000 0 50%,#0000 50% 100%),linear-gradient(270deg,#000 0 75%,#0000 75% 100%),linear-gradient(#000,#000);mask-image:linear-gradient(270deg,#000 0 25%,#0000 25% 100%),linear-gradient(270deg,#000 0 50%,#0000 50% 100%),linear-gradient(270deg,#000 0 75%,#0000 75% 100%),linear-gradient(#000,#000);-webkit-mask-position:0 0,0 33.333%,0 66.666%,0 100%;mask-position:0 0,0 33.333%,0 66.666%,0 100%;-webkit-mask-size:100% 25%,100% 25%,100% 25%,100% 25%;mask-size:100% 25%,100% 25%,100% 25%,100% 25%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.role-company{color:var(--sys)}.role-title{font-family:var(--font-serif);font-variation-settings:var(--fraunces-axes);font-style:italic;font-weight:420;font-size:var(--step-2);letter-spacing:-.005em;max-width:16ch;line-height:1.1}.role-team{color:var(--ink)}.role-when{flex-wrap:wrap;justify-content:flex-end;gap:0 .5em;display:flex}.role-current{margin-top:var(--space-2xs);color:var(--ink-inverse);background:var(--sys);padding:.35em .7em;display:inline-block}.bullets{gap:var(--space-m);display:grid}.bullet{column-gap:var(--space-s);grid-template-columns:14px minmax(0,1fr);align-items:start;max-width:60ch;display:grid}.bullet .plate-marker{margin-top:.42em}.bullet-text{text-wrap:pretty}.project-grid{column-gap:var(--seam-gap);row-gap:var(--space-2xl);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.card--left{grid-column:1}.card--right{grid-column:2}.card--wide{grid-column:1/-1}.card-body{height:100%;padding-bottom:var(--space-m);color:var(--ink);background-color:var(--paper);border:1px solid var(--ink);flex-direction:column;display:flex;position:relative}.card--systems .card-body{background-color:var(--paper-sys)}.card--intelligence .card-body{background-color:var(--paper-int)}.card--both .card-body{background-image:linear-gradient(to right, var(--paper-sys) 50%, var(--paper-int) 50%)}.card-body:before,.card-body:after{content:"";z-index:1;pointer-events:none;mix-blend-mode:multiply;opacity:clamp(0, var(--mis,0), 1);border:1px solid;position:absolute;inset:-1px}.card-body:before{border-color:var(--sys);transform:translate(calc(var(--mis,0) * -1px), calc(var(--mis,0) * -.6px))}.card-body:after{border-color:var(--int);transform:translate(calc(var(--mis,0) * 1px), calc(var(--mis,0) * .6px))}.card-body:hover:before,.card-body:focus-within:before{opacity:1;transform:translate(-3px,-2px)}.card-body:hover:after,.card-body:focus-within:after{opacity:1;transform:translate(3px,2px)}.card-art{aspect-ratio:3/2;margin-bottom:var(--space-m);color:var(--ink);background:linear-gradient(to right, var(--sys-t) 50%, var(--int-t) 50%);border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.card-art>canvas,.card-art>svg{width:100%;height:100%;position:absolute;inset:0}.card-art:empty{background-image:radial-gradient(circle, rgb(var(--sys-rgb) / .35) 1px, transparent 1.3px), var(--halftone), linear-gradient(to right, var(--sys-t) 50%, var(--int-t) 50%);background-size:16px 16px, var(--halftone-size), auto;background-position:0 0,50% 0,0 0;background-repeat:repeat,repeat-y,no-repeat}.card-body>:not(.card-art){margin-inline:var(--space-m)}.card-plate{align-items:center;gap:var(--space-2xs);margin-bottom:var(--space-xs);color:var(--muted);display:flex}.card-title{font-family:var(--font-serif);font-variation-settings:"SOFT" 50, "WONK" 0;font-weight:560;font-size:var(--step-3);letter-spacing:-.015em;margin-bottom:var(--space-xs);line-height:1.05}.card-link{color:var(--ink);text-decoration:none}.card-link:after{content:"";z-index:2;position:absolute;inset:0}.card-link:focus-visible{outline:none}.card-link:focus-visible:after{outline:3px solid var(--ink);outline-offset:6px}.card-body a:not(.card-link){z-index:3;position:relative}.card-summary{font-size:var(--step-1);color:var(--int);margin-bottom:var(--space-s);line-height:1.3}.card--systems .card-summary{color:var(--sys)}.card-bullets{gap:var(--space-2xs);margin-bottom:var(--space-m);font-size:var(--step--1);color:var(--ink);line-height:1.5;display:grid}.card-bullets li{padding-inline-start:1.1em;position:relative}.card-bullets li:before{content:"";background:var(--int);border-radius:50%;width:.45em;height:.45em;position:absolute;top:.55em;left:0}.card--systems .card-bullets li:before{background:var(--sys);border-radius:0}.card--both .card-bullets li:before{background:linear-gradient(to right, var(--sys) 50%, var(--int) 50%);border-radius:0 50% 50% 0}.card-repo{max-width:none;padding-top:var(--space-2xs);border-top:1px solid var(--rule);font-size:var(--step--2);color:var(--muted);margin-top:auto}.card-repo-link{justify-content:space-between;align-items:center;gap:var(--space-s);width:100%;min-height:32px;color:var(--muted);text-decoration:none;display:flex}.card-repo-path{overflow-wrap:break-word;min-width:0}.card-repo-link:hover{color:var(--ink);text-decoration:underline}.card-arrow{color:var(--ink);flex:none}.card-body:hover .card-arrow,.card-body:focus-within .card-arrow{transform:translate(3px,-3px)}.card--wide .card-body{column-gap:var(--seam-gap);grid-template-rows:auto auto auto auto 1fr;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-bottom:0;display:grid}.card--wide .card-art{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--rule);grid-area:1/1/-1;align-self:stretch;min-height:22rem;margin:0}.card--wide .card-body>:not(.card-art){margin-inline:0 var(--space-l);grid-column:2}.card--wide.card--intelligence .card-art{border-right:0;border-left:1px solid var(--rule);grid-column:2}.card--wide.card--intelligence .card-body>:not(.card-art){margin-inline:var(--space-l) 0;grid-column:1}.card--wide .card-plate{margin-top:var(--space-xl)}.card--wide .card-repo{margin-bottom:var(--space-m);align-self:end}.other{margin-top:var(--space-3xl)}.other-title{width:calc(50% - var(--seam-gap) / 2);margin-bottom:var(--space-s);font-size:var(--step--2);color:var(--sys);text-align:end}.other-cols{column-gap:var(--seam-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.other-list{border-top:1px solid var(--rule);display:grid}.other-list li{border-bottom:1px solid var(--rule);min-width:0}.other-list--sys{text-align:end}.other-link{min-height:44px;padding-block:var(--space-xs) var(--space-2xs);color:var(--ink);flex-direction:column;justify-content:center;align-items:flex-start;gap:.15rem;text-decoration:none;display:flex}.other-list--sys .other-link{align-items:flex-end}.other-name{font-weight:560}.other-repo{overflow-wrap:break-word;min-width:0;font-size:var(--step--2);color:var(--muted)}.other-list--sys .other-repo{color:color-mix(in oklab, var(--sys) 70%, var(--muted))}.other-list--int .other-repo{color:color-mix(in oklab, var(--int) 55%, var(--muted))}.other-link:hover .other-name{text-decoration:underline;text-decoration-color:var(--int);text-underline-offset:.2em}.other-list--sys .other-link:hover .other-name{text-decoration-color:var(--sys)}.other-note{padding-bottom:var(--space-xs);font-size:var(--step--1);color:var(--int)}.entries{display:grid}.entry{padding-block:var(--space-l);border-top:1px solid var(--rule)}.entry:last-child{border-bottom:1px solid var(--rule)}.entry-meta{gap:var(--space-3xs);justify-items:end;display:grid}.entry-meta .mono-caps{margin-top:var(--space-3xs)}.entry-main{gap:var(--space-2xs);display:grid}.entry-title{font-size:var(--step-2);max-width:28ch;line-height:1.15}.entry-title a{text-decoration-color:color-mix(in oklab, var(--int) 55%, transparent);padding-block:.15em}.entry-title a:hover{text-decoration-color:var(--int)}.entry-sub{font-size:var(--step-1);color:var(--int);line-height:1.3}.entry-sub strong{color:var(--ink);font-weight:620}.entry-note{font-size:var(--step--1);color:var(--muted)}.entry-notes{gap:var(--space-3xs);font-size:var(--step--1);display:grid}.entry-notes li{padding-inline-start:1.1em;position:relative}.entry-notes li:before{content:"";background:var(--int);border-radius:50%;width:.4em;height:.4em;position:absolute;top:.6em;left:0}.skill-groups{gap:var(--space-xl);display:grid}.skill-label{align-items:center;gap:var(--space-s);margin-bottom:var(--space-s);font-size:var(--step--2);color:var(--muted);font-weight:500;display:flex}.skill-label:before{content:"";background:var(--rule);flex:1;height:1px}.skill-label:after{content:"";flex:0 0 calc(50% + 1.5rem - var(--space-s))}.skill-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;column-gap:1.5rem;display:grid}.chips{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.chips--sys{grid-column:1;justify-content:flex-end}.chips--both{grid-column:2;justify-content:center}.chips--int{grid-column:3;justify-content:flex-start}.chip{max-width:100%;color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:.15em .6em;padding:.42em .8em;line-height:1.3;display:inline-flex}.chip--sys{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:var(--tracking-mono);background:var(--paper-sys);border:1px solid var(--sys);border-radius:var(--radius-s)}.chip--int{font-family:var(--font-serif);font-variation-settings:var(--fraunces-axes);font-style:italic;font-size:var(--step-0);background:var(--paper-int);border:1px solid var(--int);border-radius:var(--radius-round);padding-inline:1em}.chip--wide{text-align:end;flex-direction:column;flex-basis:100%;align-items:flex-end}.chip-name{font-weight:560}.chip-detail{font-size:var(--step--2);color:var(--muted);font-weight:400;line-height:1.5}.chip--both{border:1px solid var(--ink);border-radius:var(--radius-s) var(--radius-round) var(--radius-round) var(--radius-s);background:var(--ink);padding:0;overflow:hidden}.chip-split{align-items:stretch;display:inline-flex}.chip-a,.chip-b{font-size:var(--step-1);align-items:center;padding:.38em .1em;line-height:1.2;display:inline-flex}.chip-a{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--sys);background:var(--sys-t);border-right:1px solid var(--ink);padding-inline-start:.85em;font-weight:560}.chip-b{font-family:var(--font-serif);font-variation-settings:var(--fraunces-axes);color:var(--int);background:var(--int-t);padding-inline-end:1em;font-style:italic}.award-list{column-gap:var(--seam-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.award{gap:var(--space-2xs);padding-block:var(--space-m);border-top:1px solid var(--rule);align-content:start;display:grid}.award:nth-child(odd){text-align:end;justify-items:end}.award p{max-width:46ch}.award-repo{min-height:32px;font-size:var(--step--2);color:var(--sys);align-items:center;display:inline-flex}.award:nth-child(2n) .award-repo{color:var(--int)}.contact.section{color:var(--ink-inverse);background:var(--ink);padding-top:calc(var(--masthead-h) + var(--space-xl));padding-bottom:var(--space-xl);text-align:center}.contact .section-head{text-align:start;margin-bottom:0}.contact:before{content:"";z-index:-1;pointer-events:none;background-image:var(--grain);background-size:var(--grain-size) var(--grain-size);opacity:.16;mix-blend-mode:screen;filter:invert();position:absolute;inset:0}.contact-mark{margin-top:var(--space-m);justify-content:center;display:flex}.contact-mark .monogram{width:clamp(4.5rem,3rem + 6vw,7.5rem);padding:0;font-size:clamp(2.2rem,1.45rem + 3vw,3.6rem)}.monogram{aspect-ratio:1;width:min(30vw,150px);color:var(--ink);background:var(--mix-t);border-radius:0 50% 50% 0;place-items:center;padding:6%;font-size:min(13vw,72px);display:grid;position:relative}.monogram:has(svg){background:0 0;line-height:1}.monogram>span{grid-area:1/1}.mg-s{font-family:var(--font-mono);color:var(--sys);font-weight:600;translate:-.22em}.mg-p{font-family:var(--font-serif);font-variation-settings:var(--fraunces-axes);color:var(--int);mix-blend-mode:multiply;font-style:italic;translate:.2em}.monogram:has(svg)>span{display:none}.monogram>svg{grid-area:1/1;width:100%;height:100%}.contact-mark .monogram.is-art-ready>svg{width:auto;height:auto;inset:9%}.contact-body{justify-items:center;gap:var(--space-m);margin-top:var(--space-m);display:grid}.contact-lead{max-width:30ch;font-size:var(--step-2);color:color-mix(in oklab, var(--int-t) 92%, var(--int));line-height:1.25}.contact-email{max-width:100%;font-family:var(--font-serif);font-variation-settings:"SOFT" 50, "WONK" 0;font-weight:480;font-size:min(3.4rem, calc((100vw - 2 * var(--gutter)) / 19.5));letter-spacing:-.015em;color:var(--ink-inverse);overflow-wrap:anywhere;text-underline-offset:.18em;text-decoration-thickness:2px;text-decoration-color:color-mix(in oklab, var(--int) 60%, var(--ink-inverse));line-height:1.1}.contact-email:hover{text-decoration-color:var(--ink-inverse)}.contact-links{justify-content:center;gap:var(--space-s) var(--space-2xl);flex-wrap:wrap;display:flex}.contact-links li{gap:var(--space-3xs);display:grid}.contact-links a{min-height:32px;color:var(--ink-inverse);text-decoration-color:color-mix(in oklab, var(--ink-inverse) 40%, transparent);justify-content:center;align-items:center;display:inline-flex}.contact-handle{font-size:var(--step--2);color:color-mix(in oklab, var(--ink-inverse) 72%, var(--ink))}.contact :focus-visible,.colophon :focus-visible{outline-color:var(--ink-inverse)}.colophon{padding:var(--space-l) var(--gutter) var(--space-xl);color:color-mix(in oklab, var(--ink-inverse) 78%, var(--ink));background:var(--ink);border-top:1px solid #f4f5fa24}.colophon-inner{max-width:var(--page-max);margin-inline:auto}.colophon .mono{font-size:var(--step--2);line-height:1.7}.colophon .side-sys{max-width:44ch;margin-inline-start:auto}.colophon .serif-italic{max-width:40ch;font-size:var(--step-0);line-height:1.45}@media (prefers-reduced-motion:no-preference){.card-body:before{transition:transform .18s steps(3,end),opacity .18s steps(3,end)}.card-body:after{transition:transform .18s var(--ease-int), opacity .18s var(--ease-int)}.card-arrow{transition:transform var(--dur-fast) var(--ease-sys);display:inline-block}.hero-link,.masthead-nav a{transition:background-color var(--dur-fast) var(--ease-sys), color var(--dur-fast) var(--ease-sys), box-shadow var(--dur-fast) var(--ease-sys-snap), border-color var(--dur-fast) var(--ease-sys)}}@media (width<=63.99rem){.card--wide .card-art{min-height:18rem}.card--wide .card-body>:not(.card-art){margin-inline:0 var(--space-m)}.card--wide.card--intelligence .card-body>:not(.card-art){margin-inline:var(--space-m) 0}}@media (width<=47.49rem){body{background-image:none;background-color:var(--mix-t)}.masthead{background:color-mix(in srgb, var(--mix-t) 94%, transparent)}.seam-spine,.plate.section:before,.plate.section:after{visibility:hidden}.seam-grid{grid-template-columns:minmax(0,1fr)}.section+.section{padding-top:var(--space-m)}.section:has(+.section){padding-bottom:var(--space-l)}.side-sys,.side-int{text-align:start}.side-sys>p,.side-sys>div{margin-inline-start:0}.section-head{column-gap:var(--space-s);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.role,.entry{padding-block:var(--space-m);border:0;row-gap:0}.role:last-child,.entry:last-child{border:0}.role>.side,.entry>.side{padding:var(--space-m);color:var(--ink)}.role>.side-sys,.entry>.side-sys{background:var(--sys-t);border-bottom:1px solid var(--ink)}.role>.side-int,.entry>.side-int{background:var(--int-t)}.role-meta,.entry-meta{justify-items:start;position:static}.role-when{justify-content:flex-start}.legend-row{row-gap:var(--space-2xs)}.hero-eyebrow{column-gap:var(--space-m);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero-intro{row-gap:var(--space-s);margin-inline:calc(var(--space-s) * -1);padding:var(--space-s);background:color-mix(in srgb, var(--paper) 78%, transparent);border:1px solid var(--rule)}.hero-meta{padding:0 0 var(--space-s);border-bottom:1px solid var(--ink)}.hero-positioning{max-width:20ch}.hero-links{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.hero-links .hero-link{justify-content:center;width:100%;padding-inline:.5em}.seam-slider{justify-content:flex-start}.seam-slider input[type=range]{flex:1;width:auto;min-width:0}.project-grid{grid-template-columns:minmax(0,1fr)}.card--left,.card--right,.card--wide{grid-column:1}.card--wide .card-body{padding-bottom:var(--space-m);display:flex}.card--wide .card-art,.card--wide.card--intelligence .card-art{aspect-ratio:3/2;min-height:0;margin-bottom:var(--space-m);border:0;border-bottom:1px solid var(--rule)}.card--wide .card-body>:not(.card-art),.card--wide.card--intelligence .card-body>:not(.card-art){margin-inline:var(--space-m)}.card--wide .card-plate{margin-top:0}.card--wide .card-repo{margin-bottom:0}.other-title{text-align:start}.other-cols{grid-template-columns:minmax(0,1fr)}.other-list--int{border-top:0}.other-list--sys{text-align:start}.other-title{width:auto}.other-list--sys .other-link{align-items:flex-start}.skill-row{row-gap:var(--space-2xs);grid-template-columns:minmax(0,1fr)}.skill-label{flex-direction:row-reverse}.skill-label:after{flex:0 0 0}.chips--sys,.chips--both,.chips--int{grid-column:1;justify-content:flex-start}.chips--both{align-items:center;gap:var(--space-xs);margin-block:var(--space-2xs)}.chips--both:before,.chips--both:after{content:"";flex:1;height:1px}.chips--both:before{background:linear-gradient(to right, transparent, var(--sys))}.chips--both:after{background:linear-gradient(to right, var(--int), transparent)}.chip--wide{text-align:start;align-items:flex-start}.award-list{grid-template-columns:minmax(0,1fr)}.award:nth-child(odd){text-align:start;justify-items:start}.colophon-inner{row-gap:var(--space-s)}.colophon .side-sys{margin-inline-start:0}}@media (width<=40rem){.section-head--quiet .section-title{column-gap:var(--space-xs);font-size:min(var(--step-4), 9.5vw);grid-template-columns:auto minmax(0,1fr)}.section-head--quiet .st-seam{display:none}.contact-email{padding-block:.15em}.contact.section{padding-bottom:var(--space-l)}.contact-mark{margin-top:var(--space-s)}.colophon{padding-block:var(--space-m) var(--space-l)}.contact-links{align-items:center;gap:var(--space-2xs);flex-direction:column}.contact-links li{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .75em;display:flex}.masthead.has-menu .masthead-toggle{display:inline-flex}.masthead.has-menu nav{padding:var(--space-2xs) var(--gutter) var(--space-s);background:color-mix(in srgb, var(--mix-t) 97%, transparent);border-bottom:1px solid var(--rule);display:none;position:absolute;inset:100% 0 auto}.masthead.has-menu.is-menu-open nav{display:block}.masthead[data-ink=dark].has-menu nav{background:color-mix(in srgb, var(--ink) 97%, transparent);border-bottom-color:#f4f5fa29}.masthead.has-menu .masthead-nav{flex-direction:column;align-items:flex-start;gap:0}.masthead.has-menu .masthead-nav li{border-bottom:1px solid var(--rule);width:100%}.masthead.has-menu .masthead-nav li:last-child{border-bottom:0}.masthead.has-menu .masthead-nav a{width:100%;min-height:48px}.masthead:not(.has-menu) .masthead-nav{gap:0 var(--space-2xs);font-size:.62rem}.masthead:not(.has-menu) .masthead-nav .mono-caps{letter-spacing:.06em}.seam-spine{--rail-p:calc(var(--progress,.5) * 100%);z-index:var(--z-seam);visibility:visible;opacity:1;background:0 0;width:8px;position:fixed;inset:0 auto 0 0;transform:none;-webkit-mask-image:none;mask-image:none}.seam-spine:before,.seam-spine:empty:before,.seam-spine:after{content:"";pointer-events:none;width:8px;position:absolute;left:0;transform:none}.seam-spine:before,.seam-spine:empty:before{height:var(--rail-p);background:linear-gradient(to right, transparent 2.5px, var(--ink) 2.5px 5.5px, transparent 5.5px) 0 0 / 8px 100% no-repeat, repeating-linear-gradient(to bottom, var(--sys) 0 3px, transparent 3px 7px) 0 0 / 3px 100% no-repeat, repeating-linear-gradient(to bottom, transparent 0 3.5px, var(--int) 3.5px 6.5px, transparent 6.5px 7px) 5px 0 / 3px 100% no-repeat;top:0;bottom:auto}.seam-spine:after{top:var(--rail-p);border-top:8px solid var(--ink);opacity:.85;background:linear-gradient(var(--sys), var(--sys)) 0 0 / 1px 100% no-repeat, repeating-linear-gradient(to bottom, var(--sys) 0 3px, transparent 3px 7px) 1px 0 / 2px 100% no-repeat, repeating-linear-gradient(to bottom, transparent 0 3.5px, var(--int) 3.5px 6.5px, transparent 6.5px 7px) 5px 0 / 2px 100% no-repeat, linear-gradient(var(--int), var(--int)) 7px 0 / 1px 100% no-repeat;bottom:0}.seam-spine>*{display:none!important}.card-art{background:linear-gradient(to bottom, var(--sys-t) 50%, var(--int-t) 50%)}.card-body,.card--both .card-body{background:var(--paper-int)}.card-body>.card-art{margin-bottom:0}.card-body>.card-plate,.card-body>.card-title{padding-inline:var(--space-m);background:var(--paper-sys);margin-inline:0}.card-body>.card-plate{padding-top:var(--space-m);padding-bottom:var(--space-xs);margin-bottom:0}.card-body>.card-title{margin-bottom:var(--space-s);padding-bottom:var(--space-s);border-bottom:1px solid var(--ink)}.card--wide .card-plate{margin-top:0}.hero-name,.zipper-name,.zip-line,.zipper-name .zn-w{word-break:keep-all;overflow-wrap:normal;hyphens:none}}@media (height<=50rem){.contact .section-title{font-size:var(--step-4)}.contact-mark .monogram{width:clamp(3.5rem,2.5rem + 3vw,4.5rem);font-size:clamp(1.7rem,1.2rem + 1.6vw,2.2rem)}.contact-body{gap:var(--space-s)}.contact-lead{font-size:var(--step-1)}}@media (height<=43rem){.contact.section{padding-bottom:var(--space-m)}.contact-body{gap:var(--space-xs)}.contact-lead{font-size:var(--step-0)}.colophon{padding-block:var(--space-s) var(--space-m)}}
