.spatial-atlas-module__68eq8q__atlas{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.spatial-atlas-module__68eq8q__reading{min-width:0}.spatial-atlas-module__68eq8q__tabs{border-bottom:1px solid var(--line);gap:0;display:flex}.spatial-atlas-module__68eq8q__tabs button{min-height:44px;color:var(--muted);font:inherit;font-size:var(--type-small);text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;align-items:center;gap:.5rem;padding:.75rem .5rem;display:flex}.spatial-atlas-module__68eq8q__tabs button[aria-selected=true]{border-bottom-color:var(--signal-deep);color:var(--signal-deep)}.spatial-atlas-module__68eq8q__tabs button:focus-visible,.spatial-atlas-module__68eq8q__motion:focus-visible,.spatial-atlas-module__68eq8q__panel:focus-visible{outline:2px solid var(--signal-deep);outline-offset:4px}.spatial-atlas-module__68eq8q__dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.spatial-atlas-module__68eq8q__panel{min-height:14rem;padding-top:1.75rem}.spatial-atlas-module__68eq8q__panel:focus-visible{outline-offset:2px}.spatial-atlas-module__68eq8q__panel h3{max-width:22ch;font-size:var(--type-title);line-height:var(--leading-heading);letter-spacing:-.02em;margin:0 0 1rem;font-weight:500}.spatial-atlas-module__68eq8q__panel p{max-width:48ch;color:var(--muted);line-height:var(--leading-body);margin:0}.spatial-atlas-module__68eq8q__evidence{min-height:44px;font-size:var(--type-small);color:var(--signal-deep);text-underline-offset:.25em;margin-top:1.25rem;padding-block:.5rem;display:inline-block}.spatial-atlas-module__68eq8q__figure{min-width:0;margin:0}.spatial-atlas-module__68eq8q__model{width:100%;height:auto;display:block;overflow:visible}.spatial-atlas-module__68eq8q__caption{color:var(--muted);font-size:var(--type-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin-top:.5rem;display:flex}.spatial-atlas-module__68eq8q__motion{border:1px solid var(--line);min-height:40px;color:var(--ink);font:inherit;font-size:var(--type-small);cursor:pointer;background:0 0;border-radius:3px;padding:.6rem .85rem}.spatial-atlas-module__68eq8q__motion:hover{border-color:var(--signal-deep);color:var(--signal-deep)}.spatial-atlas-module__68eq8q__layerGround,.spatial-atlas-module__68eq8q__layerClimate,.spatial-atlas-module__68eq8q__layerAssets,.spatial-atlas-module__68eq8q__layerDecisions{transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .5s}.spatial-atlas-module__68eq8q__layerGround{transform:translateY(104px)}.spatial-atlas-module__68eq8q__layerClimate{transform:translateY(-104px)}.spatial-atlas-module__68eq8q__atlas[data-mode=climate] .spatial-atlas-module__68eq8q__layerClimate{opacity:1;transform:translateY(-80px)}.spatial-atlas-module__68eq8q__atlas[data-mode=climate] .spatial-atlas-module__68eq8q__layerAssets{opacity:.28;transform:translateY(64px)}.spatial-atlas-module__68eq8q__atlas[data-mode=climate] .spatial-atlas-module__68eq8q__layerGround{opacity:.35;transform:translateY(128px)}.spatial-atlas-module__68eq8q__atlas[data-mode=climate] .spatial-atlas-module__68eq8q__layerDecisions{opacity:0}.spatial-atlas-module__68eq8q__atlas[data-mode=assets] .spatial-atlas-module__68eq8q__layerClimate{opacity:.18;transform:translateY(-136px)}.spatial-atlas-module__68eq8q__atlas[data-mode=assets] .spatial-atlas-module__68eq8q__layerGround{opacity:.35;transform:translateY(80px)}.spatial-atlas-module__68eq8q__atlas[data-mode=assets] .spatial-atlas-module__68eq8q__layerDecisions{opacity:0}.spatial-atlas-module__68eq8q__atlas[data-mode=decisions] .spatial-atlas-module__68eq8q__layerClimate{opacity:.38;transform:translateY(-124px)}.spatial-atlas-module__68eq8q__atlas[data-mode=decisions] .spatial-atlas-module__68eq8q__layerGround{opacity:.6;transform:translateY(88px)}.spatial-atlas-module__68eq8q__groundPlane{fill:var(--ink);fill-opacity:.05;stroke:var(--ink);stroke-opacity:.18;stroke-width:1px}.spatial-atlas-module__68eq8q__grid{fill:none;stroke:var(--ink);stroke-opacity:.13;stroke-width:.6px}.spatial-atlas-module__68eq8q__river{fill:none;stroke:var(--ink);stroke-opacity:.12;stroke-width:34px}.spatial-atlas-module__68eq8q__riverFlow{fill:none;stroke:var(--paper);stroke-opacity:.55;stroke-width:5px;stroke-linecap:round;stroke-dasharray:36 64}.spatial-atlas-module__68eq8q__park{fill:var(--ink);fill-opacity:.1}.spatial-atlas-module__68eq8q__climatePlane{fill:var(--paper);stroke:var(--signal-deep);stroke-opacity:.28;stroke-width:1px}.spatial-atlas-module__68eq8q__heatHigh{fill:var(--signal)}.spatial-atlas-module__68eq8q__heatMid{fill:var(--signal);fill-opacity:.62}.spatial-atlas-module__68eq8q__heatLow{fill:var(--signal);fill-opacity:.34}.spatial-atlas-module__68eq8q__heatCool{fill:var(--ink);fill-opacity:.12}.spatial-atlas-module__68eq8q__assetPlane{fill:var(--paper);fill-opacity:.9;stroke:var(--ink);stroke-opacity:.2;stroke-width:1px}.spatial-atlas-module__68eq8q__street{fill:none;stroke:var(--ink);stroke-opacity:.1;stroke-width:7px}.spatial-atlas-module__68eq8q__buildingFront{fill:var(--ink);fill-opacity:.3;stroke:var(--paper);stroke-width:.6px}.spatial-atlas-module__68eq8q__buildingSide{fill:var(--ink);fill-opacity:.45;stroke:var(--paper);stroke-width:.6px}.spatial-atlas-module__68eq8q__buildingRoof{fill:var(--ink);fill-opacity:.12;stroke:var(--paper);stroke-width:1px}.spatial-atlas-module__68eq8q__roofStudied{fill:var(--signal-deep);stroke:var(--paper);stroke-width:1px}.spatial-atlas-module__68eq8q__edge{fill:none;stroke:var(--signal-deep);stroke-width:1.8px;stroke-dasharray:4 5}.spatial-atlas-module__68eq8q__node{fill:var(--signal-deep);stroke:var(--paper);stroke-width:2px}.spatial-atlas-module__68eq8q__marker{fill:var(--signal-deep)}.spatial-atlas-module__68eq8q__halo{fill:none;stroke:var(--signal-deep);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference){.spatial-atlas-module__68eq8q__riverFlow{animation:7s linear infinite spatial-atlas-module__68eq8q__river-current}.spatial-atlas-module__68eq8q__atlas[data-motion=paused] .spatial-atlas-module__68eq8q__riverFlow{animation-play-state:paused}}@keyframes spatial-atlas-module__68eq8q__river-current{to{stroke-dashoffset:-100px}}@media (max-width:1000px){.spatial-atlas-module__68eq8q__atlas{grid-template-columns:1fr;gap:1.5rem}.spatial-atlas-module__68eq8q__reading{order:2}.spatial-atlas-module__68eq8q__figure{order:1;max-width:34rem;margin-inline:auto}.spatial-atlas-module__68eq8q__panel{min-height:0;padding-top:1.25rem}}@media (max-width:600px){.spatial-atlas-module__68eq8q__tabs button{flex-direction:column;align-items:flex-start;gap:.35rem;padding:.65rem .35rem}}
.technology-stack-module__9NSuAq__section{border-block:1px solid var(--line);padding-block:4.5rem}.technology-stack-module__9NSuAq__section header{grid-template-columns:1fr 1fr;align-items:end;gap:3rem;margin-bottom:2.4rem;display:grid}.technology-stack-module__9NSuAq__section h2{font-size:var(--type-heading);letter-spacing:-.025em;margin:.7rem 0 0;font-weight:400;line-height:1.2}.technology-stack-module__9NSuAq__section header>p{max-width:52ch;color:var(--muted);margin:0}.technology-stack-module__9NSuAq__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;display:grid}.technology-stack-module__9NSuAq__grid article{border-top:1px solid var(--line);padding-top:1rem}.technology-stack-module__9NSuAq__index{font-family:var(--font-mono);color:var(--muted);margin:0 0 1.2rem;font-size:.7rem}.technology-stack-module__9NSuAq__grid h3{letter-spacing:-.02em;margin:0 0 .6rem;font-size:1.12rem;font-weight:500;line-height:1.4}.technology-stack-module__9NSuAq__purpose{color:var(--muted);min-height:4.4em;margin:0 0 1.3rem;font-size:.88rem;line-height:1.65}.technology-stack-module__9NSuAq__grid ul{flex-wrap:wrap;align-content:start;gap:.35rem .6rem;min-height:5.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.technology-stack-module__9NSuAq__grid li{border-bottom:1px solid var(--line-soft);font-size:.75rem;line-height:1.8}.technology-stack-module__9NSuAq__grid a{text-underline-offset:.2em;min-height:44px;padding-block:.65rem;font-size:.8rem;display:inline-block}.technology-stack-module__9NSuAq__compact header{margin-bottom:1.8rem;display:block}.technology-stack-module__9NSuAq__compact h2{font-size:1.8rem}.technology-stack-module__9NSuAq__compact .technology-stack-module__9NSuAq__purpose,.technology-stack-module__9NSuAq__compact .technology-stack-module__9NSuAq__index{display:none}.technology-stack-module__9NSuAq__compact .technology-stack-module__9NSuAq__grid h3{margin-bottom:.9rem}.technology-stack-module__9NSuAq__compact{padding-block:3rem}@media (max-width:1000px){.technology-stack-module__9NSuAq__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.technology-stack-module__9NSuAq__section{padding-block:3rem}.technology-stack-module__9NSuAq__section header{grid-template-columns:1fr;gap:1rem}.technology-stack-module__9NSuAq__grid{grid-template-columns:1fr;gap:1.2rem}.technology-stack-module__9NSuAq__purpose,.technology-stack-module__9NSuAq__grid ul{min-height:0}.technology-stack-module__9NSuAq__index{margin-bottom:.6rem}}
.buildwithme-module__NJ4H6q__page{padding-bottom:var(--space-section)}.buildwithme-module__NJ4H6q__page>section{content-visibility:visible;contain-intrinsic-size:none}.buildwithme-module__NJ4H6q__hero{padding-bottom:var(--space-section);grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.buildwithme-module__NJ4H6q__eyebrow{color:var(--signal-deep);font-size:var(--type-small);margin:0 0 1.5rem}.buildwithme-module__NJ4H6q__hero h1{font-size:var(--type-display);line-height:var(--leading-display);letter-spacing:-.025em;max-width:20ch;margin:0 0 1.5rem;font-weight:400}.buildwithme-module__NJ4H6q__lead{color:var(--muted);max-width:52ch;font-size:var(--type-lead);line-height:var(--leading-body)}.buildwithme-module__NJ4H6q__location{font-size:var(--type-small);color:var(--muted);margin-block:1.5rem}.buildwithme-module__NJ4H6q__actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:1.5rem;display:flex}.buildwithme-module__NJ4H6q__page a{text-underline-offset:.25em}.buildwithme-module__NJ4H6q__actions a{min-height:44px;font-size:var(--type-small);align-items:center;display:inline-flex}.buildwithme-module__NJ4H6q__primary{background:var(--ink);color:var(--paper);border-radius:3px;padding:.85rem 1.25rem;text-decoration:none}.buildwithme-module__NJ4H6q__pointer{max-width:66ch;color:var(--muted);font-size:var(--type-small);margin:1rem 0 0;line-height:1.6}.buildwithme-module__NJ4H6q__page :is(a,summary):focus-visible{outline:2px solid var(--signal-deep);outline-offset:4px}.buildwithme-module__NJ4H6q__portrait{margin:0}.buildwithme-module__NJ4H6q__portrait img{aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;border-radius:3px;width:100%;height:auto;display:block}.buildwithme-module__NJ4H6q__portrait figcaption{max-width:35ch;color:var(--muted);font-size:var(--type-small);margin-top:.85rem;line-height:1.5}.buildwithme-module__NJ4H6q__facts{background:var(--surface);border-block:1px solid var(--line)}.buildwithme-module__NJ4H6q__facts dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);margin:0;padding-block:clamp(1.75rem,3vw,2.5rem);display:grid}.buildwithme-module__NJ4H6q__facts dt{color:var(--signal-deep);font-size:var(--type-small);margin-bottom:.5rem}.buildwithme-module__NJ4H6q__facts dd{max-width:34ch;font-size:var(--type-small);line-height:var(--leading-body);margin:0}.buildwithme-module__NJ4H6q__section{padding-block:var(--space-section)}.buildwithme-module__NJ4H6q__sectionHeading{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,6vw,6rem);margin-bottom:2.5rem;display:grid}.buildwithme-module__NJ4H6q__page h2{max-width:25ch;font-size:var(--type-heading);line-height:var(--leading-heading);letter-spacing:-.025em;margin:0;font-weight:400}.buildwithme-module__NJ4H6q__sectionHeading p,.buildwithme-module__NJ4H6q__personal p{color:var(--muted);max-width:var(--measure-text);line-height:var(--leading-body);margin:0 0 1rem}.buildwithme-module__NJ4H6q__experience{margin:0}.buildwithme-module__NJ4H6q__experience>div{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);padding-block:1.6rem;display:grid}.buildwithme-module__NJ4H6q__experience dt{align-content:start;gap:.35rem;display:grid}.buildwithme-module__NJ4H6q__experience dt span{color:var(--muted);font-size:var(--type-small)}.buildwithme-module__NJ4H6q__experience dt strong{font-weight:500;font-size:var(--type-title)}.buildwithme-module__NJ4H6q__experience dt small{color:var(--muted);font-size:var(--type-small)}.buildwithme-module__NJ4H6q__experience dd{max-width:60ch;color:var(--muted);line-height:var(--leading-body);margin:0}.buildwithme-module__NJ4H6q__interests{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;display:grid}.buildwithme-module__NJ4H6q__interests h3{font-size:var(--type-title);margin:0 0 1rem;font-weight:500;line-height:1.35}.buildwithme-module__NJ4H6q__interests p{color:var(--muted);font-size:var(--type-body);line-height:var(--leading-body);margin:0 0 1rem}.buildwithme-module__NJ4H6q__interests .buildwithme-module__NJ4H6q__question{color:var(--ink)}.buildwithme-module__NJ4H6q__interests a,.buildwithme-module__NJ4H6q__personal a{font-size:var(--type-small);padding-block:.6rem;display:inline-block}.buildwithme-module__NJ4H6q__working{background:var(--surface)}.buildwithme-module__NJ4H6q__practical{border-top:1px solid var(--line);gap:1.5rem;margin:clamp(2.5rem,5vw,3.5rem) 0 0;padding-top:clamp(2rem,4vw,2.75rem);display:grid}.buildwithme-module__NJ4H6q__practical>div{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:baseline;gap:clamp(1rem,4vw,4rem);display:grid}.buildwithme-module__NJ4H6q__practical dt{color:var(--signal-deep);font-size:var(--type-small)}.buildwithme-module__NJ4H6q__practical dd{max-width:62ch;color:var(--muted);line-height:var(--leading-body);margin:0}.buildwithme-module__NJ4H6q__working,.buildwithme-module__NJ4H6q__conversation{scroll-margin-top:calc(var(--site-header-h,80px) + 1rem)}.buildwithme-module__NJ4H6q__personal{grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);display:grid}.buildwithme-module__NJ4H6q__personal h2{margin-bottom:1rem}.buildwithme-module__NJ4H6q__projects article{border-top:1px solid var(--line);grid-template-columns:72px 1fr 1fr;align-items:start;gap:clamp(1.5rem,4vw,4rem);padding-block:1.5rem;display:grid}.buildwithme-module__NJ4H6q__projects h3{font-size:var(--type-title);margin:.4rem 0;font-weight:500}.buildwithme-module__NJ4H6q__projects h3 a{padding-block:.4rem;display:inline-block}.buildwithme-module__NJ4H6q__projects article>p{color:var(--muted);line-height:var(--leading-body);margin:0}.buildwithme-module__NJ4H6q__projects article>div>p{color:var(--muted);font-size:var(--type-small);margin:0}.buildwithme-module__NJ4H6q__conversation{border-top:1px solid var(--line)}.buildwithme-module__NJ4H6q__draft{border-block:1px solid var(--line);padding-block:1rem}.buildwithme-module__NJ4H6q__draft summary{cursor:pointer;min-height:44px;font-size:var(--type-body);padding-block:.6rem}.buildwithme-module__NJ4H6q__privacy{max-width:75ch;color:var(--muted);font-size:var(--type-small);line-height:1.6}.buildwithme-module__NJ4H6q__status{max-width:var(--measure-text);background:var(--surface);color:var(--muted);font-size:var(--type-small);line-height:var(--leading-body);border-radius:3px;margin:1.5rem 0 0;padding:1.15rem 1.35rem}@media (max-width:1000px){.buildwithme-module__NJ4H6q__interests{grid-template-columns:1fr;gap:2rem}.buildwithme-module__NJ4H6q__interests article{max-width:65ch}}@media (max-width:900px){.buildwithme-module__NJ4H6q__facts dl{grid-template-columns:1fr 1fr;gap:1.5rem 2rem}}@media (max-width:800px){.buildwithme-module__NJ4H6q__practical>div{grid-template-columns:1fr;gap:.4rem}.buildwithme-module__NJ4H6q__practical dd{max-width:none}}@media (max-width:520px){.buildwithme-module__NJ4H6q__facts dl{grid-template-columns:1fr}.buildwithme-module__NJ4H6q__facts dd{max-width:none}}@media (max-width:800px){.buildwithme-module__NJ4H6q__hero,.buildwithme-module__NJ4H6q__sectionHeading,.buildwithme-module__NJ4H6q__experience>div,.buildwithme-module__NJ4H6q__personal{grid-template-columns:1fr;gap:1.5rem}.buildwithme-module__NJ4H6q__projects article{--extent-mark-size:56px;grid-template-columns:56px minmax(0,1fr);gap:.75rem 1rem}.buildwithme-module__NJ4H6q__projects article>p{grid-column:2}.buildwithme-module__NJ4H6q__hero h1{font-size:clamp(2.125rem,9.5vw,2.6rem)}.buildwithme-module__NJ4H6q__portrait{max-width:32rem}.buildwithme-module__NJ4H6q__portrait img{aspect-ratio:3/2}.buildwithme-module__NJ4H6q__sectionHeading{margin-bottom:2rem}}
