.Annotation-module__Zg2THG__anno{z-index:20;opacity:0;visibility:hidden;pointer-events:none;will-change:transform, opacity;width:0;height:0;position:fixed;top:0;left:0}.Annotation-module__Zg2THG__leader{position:absolute;top:0;left:0;overflow:visible}.Annotation-module__Zg2THG__leader circle{fill:var(--paper);stroke:var(--ink);stroke-width:1px}.Annotation-module__Zg2THG__leader path{fill:none;stroke:var(--ink);stroke-width:.75px}.Annotation-module__Zg2THG__label{left:var(--dx);top:var(--dy);white-space:nowrap;font-family:var(--mono);letter-spacing:.01em;color:var(--ink);background:color-mix(in srgb, var(--paper) 86%, transparent);padding:2px 6px;font-size:.75rem;line-height:1.35;position:absolute;transform:translate(6px,-50%)}.Annotation-module__Zg2THG__anno[data-side=left] .Annotation-module__Zg2THG__label{text-align:right;transform:translate(calc(-100% - 6px),-50%)}.Annotation-module__Zg2THG__anno[data-flip=true] .Annotation-module__Zg2THG__leader{transform:scaleX(-1)}.Annotation-module__Zg2THG__anno[data-flip=true] .Annotation-module__Zg2THG__label{left:calc(var(--dx) * -1)}.Annotation-module__Zg2THG__anno[data-on=true] .Annotation-module__Zg2THG__label{pointer-events:auto}.Annotation-module__Zg2THG__label small{color:var(--ink-3);font-size:.6875rem;display:block}@media (max-width:760px){.Annotation-module__Zg2THG__anno:not(.Annotation-module__Zg2THG__mobile){display:none}}
.Neurons-module__-rVPLq__neuron{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:.5em;padding:0;display:inline-flex}.Neurons-module__-rVPLq__neuron span,.Neurons-module__-rVPLq__neuron:hover,.Neurons-module__-rVPLq__neuron[aria-expanded=true]{color:var(--signal)}.Neurons-module__-rVPLq__note{white-space:normal;text-align:left;width:17rem;font-family:var(--text);letter-spacing:0;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);animation:Neurons-module__-rVPLq__rise .25s var(--ease-pen);padding:.75rem .85rem;font-size:.9rem;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0}.Neurons-module__-rVPLq__note[data-side=left]{left:auto;right:0}@keyframes Neurons-module__-rVPLq__rise{0%{opacity:0;transform:translateY(-4px)}}.Neurons-module__-rVPLq__list{display:none}@media (max-width:760px){.Neurons-module__-rVPLq__list{gap:1rem;margin:2rem 0 0;display:grid}.Neurons-module__-rVPLq__list dt{font-family:var(--mono);color:var(--signal);font-size:.8125rem}.Neurons-module__-rVPLq__list dd{color:var(--ink-2);margin:.2rem 0 0;font-size:.95rem;line-height:1.5}}
.Prints-module__LqW6nG__strip{align-items:flex-start;margin:2.8rem 0 0;padding:0 0 1.6rem;list-style:none;display:flex}.Prints-module__LqW6nG__frame{--rx:0deg;--ry:0deg;--rot:-2.6deg;--ty:0rem;z-index:1;flex:0 0 38%;position:relative}.Prints-module__LqW6nG__strip[data-layout=row] .Prints-module__LqW6nG__frame+.Prints-module__LqW6nG__frame{margin-left:-6%}.Prints-module__LqW6nG__frame:nth-child(3n+1){--rot:-3deg;flex-basis:40%}.Prints-module__LqW6nG__frame:nth-child(3n+2){--rot:2.3deg;--ty:1.7rem;z-index:2;flex-basis:34%}.Prints-module__LqW6nG__frame:nth-child(3n+3){--rot:-1.1deg;--ty:-.5rem;flex-basis:37%}.Prints-module__LqW6nG__frame:hover{z-index:4}.Prints-module__LqW6nG__strip[data-layout=collage]{grid-template-columns:repeat(12,minmax(0,1fr));row-gap:1.4rem;display:grid}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame{margin:0}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame:nth-child(5n+1){--rot:-3deg;--ty:0rem;grid-area:1/1/2/5}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame:nth-child(5n+2){--rot:2.4deg;--ty:1.3rem;z-index:2;grid-area:1/4/2/8}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame:nth-child(5n+3){--rot:-1.2deg;--ty:-.3rem;grid-area:1/8/2/12}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame:nth-child(5n+4){--rot:1.7deg;--ty:-.2rem;grid-area:2/2/3/6}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame:nth-child(5n+5){--rot:-2.1deg;--ty:.6rem;grid-area:2/6/3/10}.Prints-module__LqW6nG__sheet{transform:translateY(var(--ty)) rotate(var(--rot));position:relative}.Prints-module__LqW6nG__sheet:before{content:"";z-index:2;width:40%;height:1.35rem;transform:rotate(calc(var(--rot) * -1.6));background:#f4f1deb8;position:absolute;top:-.7rem;left:30%;box-shadow:inset 0 0 0 1px #16171a0d}.Prints-module__LqW6nG__frame:nth-child(3n+2) .Prints-module__LqW6nG__sheet:before{width:34%;left:8%}.Prints-module__LqW6nG__print{aspect-ratio:4/5;background:var(--paper-2);width:100%;transform:perspective(800px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .6s var(--ease-pen);border:5px solid #f8f8f4;padding:0;display:block;position:relative;overflow:hidden;box-shadow:3px 3px #16171ad9}.Prints-module__LqW6nG__frame:hover .Prints-module__LqW6nG__print{transition-duration:.18s}button.Prints-module__LqW6nG__print{cursor:pointer}.Prints-module__LqW6nG__sheet[data-many=true]:after{content:"";z-index:-1;aspect-ratio:4/5;background:#f8f8f4;width:100%;position:absolute;top:0;left:0;transform:translate(7px,3px)rotate(3.5deg);box-shadow:3px 3px #16171ad9}.Prints-module__LqW6nG__develop{animation:Prints-module__LqW6nG__develop 1.1s var(--ease) both}@keyframes Prints-module__LqW6nG__develop{0%{opacity:0}}.Prints-module__LqW6nG__print img{object-fit:cover;filter:saturate(.85)contrast(1.02)}.Prints-module__LqW6nG__undeveloped{background:radial-gradient(120% 70% at 110% -10%,#d6703a4d,#0000 60%),radial-gradient(90% 60% at -20% 120%,#56684f2e,#0000 70%),linear-gradient(170deg,#cbc6b8,#b7b1a1 60%,#a8a291);position:absolute;inset:0}.Prints-module__LqW6nG__undeveloped:before{content:"";mix-blend-mode:multiply;opacity:.5;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.1  0 0 0 0 0.09  0 0 0 0.55 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");position:absolute;inset:0}.Prints-module__LqW6nG__undeveloped:after{content:"";background:repeating-linear-gradient(#edeee9bf 0 5px,#0000 5px 13px);border-radius:1px;width:5px;position:absolute;top:6%;bottom:6%;left:5px}.Prints-module__LqW6nG__caption{font-family:var(--mono);color:var(--ink-3);flex-direction:column;gap:.1rem;margin:.7rem 0 0;font-size:.75rem;display:flex}.Prints-module__LqW6nG__caption span:first-child{color:var(--ink)}.Prints-module__LqW6nG__strip[data-layout=row] .Prints-module__LqW6nG__frame+.Prints-module__LqW6nG__frame .Prints-module__LqW6nG__caption,.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame:nth-child(5n+2) .Prints-module__LqW6nG__caption{padding-left:2.6rem}@media (max-width:760px){.Prints-module__LqW6nG__strip[data-layout=collage]{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.8rem}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame{grid-area:auto!important}.Prints-module__LqW6nG__strip[data-layout=collage] .Prints-module__LqW6nG__frame .Prints-module__LqW6nG__caption{padding-left:0!important}.Prints-module__LqW6nG__strip[data-layout=row] .Prints-module__LqW6nG__frame{flex-basis:40%!important}.Prints-module__LqW6nG__strip[data-layout=row] .Prints-module__LqW6nG__frame+.Prints-module__LqW6nG__frame{margin-left:-10%}.Prints-module__LqW6nG__strip[data-layout=row] .Prints-module__LqW6nG__frame+.Prints-module__LqW6nG__frame .Prints-module__LqW6nG__caption{padding-left:1.6rem}}
.ProjectGraph-module__i4Ck1a__wrap{grid-template-columns:minmax(16rem,1.15fr) minmax(8rem,1fr) minmax(10rem,.62fr);margin-top:3rem;display:grid}.ProjectGraph-module__i4Ck1a__projects,.ProjectGraph-module__i4Ck1a__techs{margin:0;padding:0;list-style:none}.ProjectGraph-module__i4Ck1a__projects li,.ProjectGraph-module__i4Ck1a__techs li{align-items:center;display:flex}.ProjectGraph-module__i4Ck1a__prow{width:100%;height:100%;color:var(--ink);border-top:1px solid var(--rule);outline-offset:-2px;transition:opacity .45s var(--ease), color .3s var(--ease);grid-template-columns:2.2rem 1fr auto;align-items:center;gap:.75rem;padding-right:.9rem;text-decoration:none;display:grid}.ProjectGraph-module__i4Ck1a__projects li:last-child .ProjectGraph-module__i4Ck1a__prow{border-bottom:1px solid var(--rule)}.ProjectGraph-module__i4Ck1a__idx{font-family:var(--mono);color:var(--ink-3);font-size:.75rem}.ProjectGraph-module__i4Ck1a__pname{min-width:0;font-family:var(--display);flex-direction:column;font-size:1.25rem;font-weight:500;line-height:1.1;display:flex}.ProjectGraph-module__i4Ck1a__pname small{font-family:var(--mono);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.75rem;overflow:hidden}.ProjectGraph-module__i4Ck1a__chips{display:none}.ProjectGraph-module__i4Ck1a__meta{font-family:var(--mono);color:var(--ink-3);flex-direction:column;align-items:flex-end;font-size:.75rem;display:flex}.ProjectGraph-module__i4Ck1a__meta small{font-size:.75rem}.ProjectGraph-module__i4Ck1a__mid{height:100%;position:relative}.ProjectGraph-module__i4Ck1a__mid svg{display:block;overflow:visible}.ProjectGraph-module__i4Ck1a__trace{fill:none;stroke:var(--ink);stroke-width:1px;stroke-opacity:.22;transition:stroke-opacity .4s var(--ease), stroke .4s var(--ease)}.ProjectGraph-module__i4Ck1a__packet{fill:none;stroke:var(--signal);stroke-width:2.6px;stroke-linecap:round;stroke-dasharray:3 100;animation:1.9s linear infinite ProjectGraph-module__i4Ck1a__travel}@keyframes ProjectGraph-module__i4Ck1a__travel{0%{stroke-dashoffset:3px}to{stroke-dashoffset:-100px}}.ProjectGraph-module__i4Ck1a__pad{fill:var(--paper);stroke:var(--ink);stroke-opacity:.5;transition:fill .3s var(--ease), stroke .3s var(--ease)}.ProjectGraph-module__i4Ck1a__pad[data-lit=true]{fill:var(--signal);stroke:var(--signal);stroke-opacity:1}.ProjectGraph-module__i4Ck1a__wrap[data-active=true] .ProjectGraph-module__i4Ck1a__edge[data-lit=false] .ProjectGraph-module__i4Ck1a__trace{stroke-opacity:.07}.ProjectGraph-module__i4Ck1a__edge[data-lit=true] .ProjectGraph-module__i4Ck1a__trace{stroke:var(--signal);stroke-opacity:.85}.ProjectGraph-module__i4Ck1a__wrap[data-active=true] .ProjectGraph-module__i4Ck1a__prow[data-lit=false],.ProjectGraph-module__i4Ck1a__wrap[data-active=true] .ProjectGraph-module__i4Ck1a__trow[data-lit=false]{opacity:.35}.ProjectGraph-module__i4Ck1a__prow[data-lit=true] .ProjectGraph-module__i4Ck1a__pname{color:var(--signal)}.ProjectGraph-module__i4Ck1a__techs li{justify-content:flex-start}.ProjectGraph-module__i4Ck1a__trow{width:100%;font-family:var(--mono);text-align:left;color:var(--ink);cursor:default;transition:opacity .45s var(--ease), color .3s var(--ease);background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:.6rem;padding:0 0 0 .9rem;font-size:.75rem;display:flex}.ProjectGraph-module__i4Ck1a__trow small{color:var(--ink-3);font-size:.75rem}.ProjectGraph-module__i4Ck1a__trow[data-lit=true]{color:var(--signal)}.ProjectGraph-module__i4Ck1a__readout{max-width:62ch;min-height:3em;font-family:var(--mono);color:var(--ink-2);grid-column:1/-1;margin:1.6rem 0 0;font-size:.75rem;line-height:1.6}@media (max-width:900px),(hover:none) and (pointer:coarse){.ProjectGraph-module__i4Ck1a__wrap{grid-template-columns:1fr}.ProjectGraph-module__i4Ck1a__mid,.ProjectGraph-module__i4Ck1a__techs,.ProjectGraph-module__i4Ck1a__readout{display:none}.ProjectGraph-module__i4Ck1a__projects,.ProjectGraph-module__i4Ck1a__projects li{height:auto!important}.ProjectGraph-module__i4Ck1a__prow{align-items:start;padding-block:.9rem}.ProjectGraph-module__i4Ck1a__pname small{white-space:normal}.ProjectGraph-module__i4Ck1a__chips{display:block;color:var(--ink-2)!important}.ProjectGraph-module__i4Ck1a__wrap[data-active=true] .ProjectGraph-module__i4Ck1a__prow[data-lit=false]{opacity:1}}
.work-module__T6IbeG__page{min-height:100vh}.work-module__T6IbeG__article{width:min(100%,38rem);padding:18vh var(--gutter) 16vh}.work-module__T6IbeG__back{margin-bottom:3rem;display:inline-block}.work-module__T6IbeG__title{font-size:clamp(2.8rem,7vw,6.2rem)}.work-module__T6IbeG__summary{color:var(--ink);text-wrap:pretty;margin:1.6rem 0 0;font-size:clamp(1.15rem,1.6vw,1.38rem);line-height:1.45}.work-module__T6IbeG__section{margin-top:3.4rem}.work-module__T6IbeG__section h2{font-family:var(--display);color:var(--ink);margin:0 0 .9rem;font-size:1.55rem;font-style:italic;font-weight:400;line-height:1.2}.work-module__T6IbeG__section p{color:var(--ink-2);margin:0;line-height:1.6}.work-module__T6IbeG__section ul{margin:.8rem 0 0;padding:0;list-style:none}.work-module__T6IbeG__section li{color:var(--ink-2);padding:.4rem 0 .4rem 1.5rem;line-height:1.5;position:relative}.work-module__T6IbeG__section li:before{content:"";background:var(--signal);width:.8rem;height:.4rem;-webkit-mask:var(--pen-line) center / 100% 100% no-repeat;mask:var(--pen-line) center / 100% 100% no-repeat;position:absolute;top:1.05rem;left:.1rem;transform:rotate(-8deg)}.work-module__T6IbeG__stack{flex-wrap:wrap;gap:.5rem;display:flex}.work-module__T6IbeG__section .work-module__T6IbeG__stack li{border:1.5px solid var(--ink);font-family:var(--mono);color:var(--ink);padding:.3rem .6rem;font-size:.78rem}.work-module__T6IbeG__section .work-module__T6IbeG__stack li:before{content:none}.work-module__T6IbeG__threads{font-family:var(--mono);font-size:.75rem;color:var(--ink-3)!important;margin-top:1rem!important}.work-module__T6IbeG__section .work-module__T6IbeG__links li{padding-left:0}.work-module__T6IbeG__section .work-module__T6IbeG__links li:before{content:none}.work-module__T6IbeG__next{margin-top:5rem}.work-module__T6IbeG__next a{border:2px solid var(--ink);background:var(--paper);box-shadow:5px 5px 0 var(--ink);font-family:var(--display);transition:transform .14s var(--ease-pen), box-shadow .14s var(--ease-pen), color .2s var(--ease-pen);flex-direction:column;gap:.2rem;padding:1rem 1.3rem 1.1rem;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.1;text-decoration:none;display:inline-flex}.work-module__T6IbeG__next a:hover{color:var(--signal)}.work-module__T6IbeG__next a:active{box-shadow:0 0 0 var(--ink);transform:translate(5px,5px)}.work-module__T6IbeG__next small{font-family:var(--mono);color:var(--ink-3);font-size:.75rem}@media (max-width:760px){.work-module__T6IbeG__article{padding-top:50svh}.work-module__T6IbeG__article>:not(.work-module__T6IbeG__back){position:relative}.work-module__T6IbeG__article{background:linear-gradient(to bottom, transparent 44svh, color-mix(in srgb, var(--paper) 90%, transparent) 52svh)}}
