@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_ae0e833c-module__smaY8G__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_ae0e833c-module__smaY8G__variable{--font-geist:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/316bb157f985759c-s.0hb8ue7pv42qp.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3e19a33f554fa0a0-s.3_2l2hvm8mn_r.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/122b9f2e4f8e51a4-s.25fzyfulsmhsq.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0fb88268c76d4312-s.262b0fv92ce4j.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4a404718ad388446-s.1tbf4c8vl6lkz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/64c5f24155ea0bd5-s.p.32f10yu79vtgx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_213d71ae-module__4XQyTq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal;font-weight:400}.geist_mono_213d71ae-module__4XQyTq__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#0e0d0b;--surface:#171512;--surface-video:#191714;--text:#ece7df;--text-hover:#fff;--body:#bdb6aa;--callout:#d2cbbf;--muted:#8f877a;--control:#aaa295;--dimmed:#5f584e;--border:#35312b;--rule:#201d19;--graph-edge:#2b2722;--video-border:#27241f;--video-dot:#37322b;--node:#585147;--accent:#f0a43a;--ok:#9ccc65}body{background:var(--bg);margin:0}.site{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-geist), system-ui, sans-serif;-webkit-font-smoothing:antialiased}.site *,.site :before,.site :after{box-sizing:border-box}.site a{color:var(--text)}.site a:hover{color:var(--text-hover)}.mono{font-family:var(--font-geist-mono), monospace}.field{flex-direction:column;min-height:100dvh;display:flex;position:relative;overflow:hidden}.field-graph{width:100%;height:100%;position:absolute;inset:0}.field .e{stroke:var(--graph-edge);stroke-width:1.2px;transition:opacity .3s}.field .e.dim{opacity:.35}.field .pkt{fill:none;stroke:var(--accent);stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:5 100;animation:3s linear infinite pkt}@keyframes pkt{0%{stroke-dashoffset:105px}to{stroke-dashoffset:0}}.field .hot{fill:none;stroke:var(--accent);stroke-width:2.6px;stroke-linecap:round;stroke-dasharray:7 6;animation:.5s linear infinite march}@keyframes march{to{stroke-dashoffset:-13px}}.field .n{fill:var(--node);transform-box:fill-box;transform-origin:50%;transition:fill .2s,transform .2s}.field .n.on{fill:var(--accent);transform:scale(1.6)}.field .n.src{fill:var(--accent);animation:.5s ease-out pop;transform:scale(1.6)}@keyframes pop{0%{transform:scale(4)}to{transform:scale(1.6)}}.field-src-ring{fill:none;stroke:var(--accent);stroke-width:1.5px}.field-src-label{fill:var(--muted);font-family:var(--font-geist-mono), monospace;font-size:13px}.field-header{z-index:1;pointer-events:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:24px clamp(20px,4vw,56px);display:grid;position:relative}.field-header-spacer{display:block}.field-name{text-align:center;white-space:nowrap;pointer-events:auto;font-size:18px;font-weight:600}.socials{pointer-events:auto;justify-self:end;gap:8px;display:flex}.site .soc{box-sizing:content-box}.soc{border:1.5px solid var(--border);background:var(--bg);border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.site .soc{color:var(--control)}.site .soc:hover{border-color:var(--accent);color:var(--accent)}.soc-in{letter-spacing:-.02em;font-size:15px;font-weight:600}.field-sections{z-index:1;pointer-events:none;flex-wrap:wrap;flex:1;place-content:center;align-items:center;gap:24px clamp(24px,5vw,80px);padding:0 24px;display:flex;position:relative}.sec{pointer-events:auto;background:var(--bg);border:1.5px solid var(--border);letter-spacing:-.035em;border-radius:999px;align-items:center;padding:14px 30px;font-size:clamp(28px,3.6vw,52px);font-weight:500;line-height:1;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.site .sec.on{border-color:var(--accent);color:var(--accent)}.site .sec.off{color:var(--dimmed)}.field-status{z-index:1;text-align:center;min-height:52px;line-height:20px;font-family:var(--font-geist-mono), monospace;color:var(--muted);pointer-events:none;padding:0 24px 32px;font-size:13px;position:relative}@media (max-width:640px){.field-header{justify-content:space-between;gap:12px;display:flex}.field-header-spacer{display:none}.soc{width:40px;height:40px}}.page-header{align-items:center;padding:24px clamp(20px,4vw,56px);display:flex}.site .page-main{box-sizing:content-box}.page-main{flex-direction:column;gap:56px;max-width:760px;margin:0 auto;padding:32px 24px 120px;display:flex}.page-main.narrow{max-width:720px}@media (min-width:1000px){.page-header{position:absolute;top:0;left:0}.page-main{padding-top:39px}}.page-intro{flex-direction:column;gap:28px;display:flex}.page-intro p{margin:0;font-size:24px;line-height:1.5}.request-line{font-family:var(--font-geist-mono), monospace;color:var(--muted);font-size:13px}.request-line span{color:var(--ok)}.page-title{letter-spacing:-.045em;margin:0;font-size:clamp(56px,7vw,88px);font-weight:500;line-height:1}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--font-geist-mono), monospace;border:1px solid var(--border);color:var(--control);border-radius:999px;padding:6px 10px;font-size:12px}@keyframes open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.acc-list{flex-direction:column;display:flex}.acc{border-top:1px solid var(--rule)}.acc:last-child{border-bottom:1px solid var(--rule)}.acc h2{margin:0}.acc-btn{width:100%;min-height:76px;color:var(--text);font:inherit;letter-spacing:-.02em;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:18px;padding:0;font-size:26px;font-weight:500;display:flex}.acc-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.node{border:1.5px solid var(--node);border-radius:999px;flex:0 0 10px;width:10px;height:10px;transition:background .2s,border-color .2s}.node.on{background:var(--accent);border-color:var(--accent)}.acc-btn:hover .node{border-color:var(--accent)}.plus{width:18px;height:18px;color:var(--muted);flex:0 0 18px;margin-left:auto;transition:transform .25s,color .2s;position:relative}.plus:before,.plus:after{content:"";background:currentColor;width:16px;height:1.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.plus:after{transform:translate(-50%,-50%)rotate(90deg)}.plus.on{color:var(--accent);transform:rotate(45deg)}.panel{flex-direction:column;gap:20px;padding:0 0 36px 28px;animation:.3s ease-out open;display:flex}.topic{flex-direction:column;gap:6px;display:flex}.topic-title{font-size:19px;font-weight:500}.topic-by{color:var(--muted);font-weight:400}.body-copy{color:var(--body);margin:0;font-size:18px;line-height:1.65}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.job{gap:28px;display:flex}.job-rail{flex-direction:column;flex:0 0 18px;align-items:center;padding-top:6px;display:flex}.job-rail svg{overflow:visible}.job-dot{fill:var(--accent)}.halo{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-out infinite halo}.job:nth-child(2) .halo{animation-delay:1.3s}@keyframes halo{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.job-rail-line{background:var(--border);flex:1;width:1.5px;margin-top:10px}.job-body{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.job:not(:last-child) .job-body{padding-bottom:64px}.job-dates{font-family:var(--font-geist-mono), monospace;color:var(--muted);font-size:13px}.job-company{letter-spacing:-.02em;align-items:center;gap:12px;margin:0;font-size:30px;font-weight:500;display:flex}.job-role{color:var(--accent);font-size:17px}.job-summary{color:var(--body);margin:0;font-size:18px;line-height:1.7}.job-points{color:var(--body);margin:0;padding-left:20px;font-size:17px;line-height:1.8}.job .tags{padding-top:4px}.site .info{box-sizing:content-box}.info{border:1.5px solid var(--node);width:22px;height:22px;color:var(--control);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:border-color .15s,color .15s,background .15s;display:inline-flex;position:relative}.info:after{content:"";position:absolute;inset:-11px}.info:hover,.info.on{border-color:var(--accent);color:var(--accent)}.info:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.info svg{transition:transform .2s}.info.on svg{transform:rotate(180deg)}.desc{border-left:2px solid var(--accent);background:var(--surface);color:var(--callout);border-radius:0 8px 8px 0;margin:0;padding:12px 16px;font-size:16px;line-height:1.6;animation:.25s ease-out open}.projects{flex-direction:column;display:flex}.proj{border-top:1px solid var(--rule);flex-direction:column;gap:14px;padding:32px 0;display:flex}.proj:last-child{border-bottom:1px solid var(--rule)}.proj-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.proj-title{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:12px;margin:0;font-size:26px;font-weight:500;display:flex}.proj-year{font-family:var(--font-geist-mono), monospace;color:var(--muted);font-size:13px}.award{font-family:var(--font-geist-mono), monospace;letter-spacing:0;border:1px solid var(--accent);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:400;display:inline-flex}.proj-title .tag{letter-spacing:0;font-weight:400}.foot{justify-content:space-between;align-items:center;gap:16px;display:flex}.foot .tags{flex:1;min-width:0}.foot .acts{flex-shrink:0}.acts{flex-wrap:wrap;gap:8px;display:flex}.act{border:1.5px solid var(--border);min-height:40px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:14px;text-decoration:none;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.site .act:hover{border-color:var(--accent);color:var(--accent)}.act:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site .act.on{border-color:var(--accent);background:var(--accent);color:var(--bg)}.act-icon{border-radius:5px;width:18px;height:18px;display:block}.video{aspect-ratio:16/9;border:1px solid var(--video-border);background-color:var(--surface-video);background-image:radial-gradient(var(--video-dot) 1.2px, transparent 1.2px);background-size:18px 18px;border-radius:12px;width:100%;animation:.3s ease-out open;overflow:hidden}.video iframe{border:0;width:100%;height:100%;display:block}@media (max-width:560px){.foot{flex-wrap:wrap}}@media (max-width:480px){.award{white-space:normal}}@media (prefers-reduced-motion:reduce){.field .pkt,.field .hot,.field .n.src,.panel,.desc,.video,.halo{animation:none}.halo{opacity:0}.plus,.info svg{transition:none}}
