@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contents{display:contents}.hidden{display:none}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{--neo-cream:#fffdf5;--neo-ink:#000;--neo-red:#ff6b6b;--neo-yellow:#ffd93d;--neo-violet:#c4b5fd;--font-neo:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;color:#000;font-family:var(--font-neo);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fffdf5}*{box-sizing:border-box}body{background:radial-gradient(#000 1.2px,#0000 1.4px) 0 0/28px 28px,linear-gradient(#fffdf5,#fffdf5);min-width:320px;margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:4px;outline:4px solid #000}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:10;background:#fffdf5;border-bottom:4px solid #000;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0}.brand-mark,.icon-link,.neo-button,.neo-toggle{text-transform:uppercase;border:4px solid #000;justify-content:center;align-items:center;gap:.5rem;min-height:3rem;font-weight:700;transition:transform .12s ease-out,box-shadow .12s ease-out,background .12s linear;display:inline-flex;box-shadow:5px 5px #000}.brand-mark{background:#ffd93d;width:4rem;font-size:1.25rem}.icon-link{background:#ff6b6b;width:3rem}.nav-links{text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:.5rem;font-size:.85rem;font-weight:700;display:flex}.nav-links a{border:2px solid #0000;padding:.4rem .65rem}.nav-links a:hover{background:#c4b5fd;border-color:#000}.neo-button{background:#ff6b6b;padding:.8rem 1.1rem}.neo-button--secondary{background:#ffd93d}.neo-button--outline{background:#fff}.brand-mark:active,.icon-link:active,.neo-button:active,.neo-toggle:active{box-shadow:none;transform:translate(4px,4px)}.hero-section{background:linear-gradient(90deg,#00000014 1px,#0000 1px) 0 0/44px 44px,#fffdf5;border-bottom:8px solid #000;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);min-height:calc(100svh - 80px);padding:clamp(3rem,7vw,7rem) clamp(1rem,5vw,5rem);display:grid}.hero-copy h1{letter-spacing:0;text-transform:uppercase;max-width:11ch;margin:1rem 0;font-size:clamp(4.5rem,13vw,10rem);font-weight:700;line-height:.85}.hero-name{margin-top:1rem;font-size:clamp(2rem,6vw,4.5rem);font-weight:700;line-height:.95;display:block}.hero-title-line{width:fit-content;max-width:100%;padding-right:.18em;display:block;position:relative}.outlined{color:#0000;-webkit-text-stroke:4px #000}.hero-copy p,.section-header p,.contact-section p{max-width:62rem;font-size:clamp(1.1rem,2vw,1.45rem);font-weight:700;line-height:1.55}.hero-actions{flex-wrap:wrap;gap:1rem;margin-top:1.5rem;display:flex}.sticker-label{letter-spacing:.08em;text-transform:uppercase;background:#ffd93d;border:4px solid #000;width:fit-content;padding:.4rem .7rem;font-size:.8rem;font-weight:700;display:inline-flex;box-shadow:4px 4px #000}.sticker-label--tilt{transform:rotate(-2deg)}.hero-board{gap:1rem;display:grid}.hero-stat,.neo-card,.graph-shell,.contact-section{border:4px solid #000;box-shadow:10px 10px #000}.hero-stat{will-change:transform;gap:.5rem;padding:clamp(1rem,3vw,2rem);display:grid;transform:rotate(1deg)}.hero-stat strong{font-size:clamp(2.8rem,8vw,5.5rem);line-height:.9}.hero-stat__label{font-size:1.1rem;font-weight:700}.hero-stat--yellow{background:#ffd93d}.hero-stat--violet{background:#c4b5fd;transform:rotate(-2deg)}.hero-stat--red{background:#ff6b6b}.hero-stat:first-child{animation-delay:80ms}.hero-stat:nth-child(2){animation-delay:.18s}.hero-stat:nth-child(3){animation-delay:.28s}.page-section{background:#fffdf5;border-bottom:8px solid #000;padding:clamp(3rem,7vw,6rem) clamp(1rem,5vw,5rem);scroll-margin-top:5rem}.page-section--yellow{background:#ffd93d}.page-section--violet{background:#c4b5fd}.page-section--dark{color:#fff;background:#000}.section-header{gap:.8rem;max-width:min(100%,78rem);margin-bottom:2rem;display:grid}.section-header h2{letter-spacing:0;text-wrap:balance;word-break:keep-all;max-width:18ch;margin:0;font-size:clamp(2.45rem,6vw,5.6rem);font-weight:700;line-height:.95}.section-header p{text-wrap:pretty;word-break:keep-all}.contact-section h2{letter-spacing:0;text-wrap:balance;text-transform:uppercase;word-break:keep-all;max-width:16ch;margin:0;font-size:clamp(2.6rem,7vw,6rem);font-weight:700;line-height:.9}.contact-section .sticker-label{margin-bottom:1.25rem;display:flex}.project-grid,.open-source-grid,.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;display:grid}.neo-card{color:#000;background:#fff;flex-direction:column;gap:1rem;padding:1.25rem;transition:transform .18s ease-out,box-shadow .18s ease-out;display:flex}.neo-card:hover{transform:translateY(-8px);box-shadow:14px 14px #000}.project-card__top,.project-links{flex-wrap:wrap;justify-content:space-between;gap:.75rem;display:flex}.project-card h3,.open-source-card h3,.skill-card h3,.experience-card h3,.graph-detail h3{margin:0;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:700;line-height:1}.project-card p,.open-source-card p,.skill-card p,.experience-card p,.graph-detail p,.relationship-fallback p{margin:0;font-weight:700;line-height:1.5}.project-role,.project-outcome{background:#c4b5fd;border:3px solid #000;padding:.6rem}.project-card:hover .project-outcome,.open-source-card:hover .project-outcome{background:#ff6b6b}.chip-row{flex-wrap:wrap;gap:.45rem;display:flex}.neo-chip{background:#fffdf5;border:2px solid #000;border-radius:999px;padding:.35rem .65rem;font-size:.82rem;font-weight:700;transition:transform .14s ease-out,background .14s ease-out;display:inline-flex}.neo-card:hover .neo-chip{background:#fff;transform:translateY(-2px)}.project-links a{border-bottom:3px solid #000;align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.open-source-layout{grid-template-columns:minmax(0,.9fr) minmax(280px,.55fr);gap:1.5rem;margin-bottom:1.5rem;display:grid}.open-source-metrics{border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:0;display:grid}.open-source-metric,.activity-strip,.open-source-notes{background:#fffdf5;border:4px solid #000;box-shadow:8px 8px #000}.open-source-metric{gap:.35rem;padding:1rem;display:grid}.open-source-metric strong{font-size:clamp(2.2rem,5vw,4rem);line-height:.9}.open-source-metric span,.open-source-metric p{margin:0;font-weight:700}.activity-strip{grid-template-columns:repeat(9,minmax(0,1fr));align-content:stretch;gap:.45rem;margin:0;padding:1rem;display:grid}.activity-strip__day{text-align:center;transform-origin:bottom;border:3px solid #000;align-content:end;min-height:8rem;padding:.45rem;font-weight:700;display:grid}.activity-strip__day strong{font-size:1.3rem}.open-source-card{min-height:100%}.open-source-card:nth-child(2n){background:#ffd93d}.open-source-card:nth-child(3n){background:#fffdf5}.open-source-notes{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.5rem;padding:1rem;display:flex}.open-source-notes p{word-break:keep-all;flex-basis:100%;margin:0;font-weight:700;line-height:1.5}.experience-list{gap:1rem;display:grid}.experience-card{grid-template-columns:minmax(160px,.3fr) minmax(0,1fr);align-items:start;display:grid}.experience-card time{font-size:1.15rem;font-weight:700}.graph-shell{color:#000;background:#fffdf5;padding:1rem}.graph-controls{border:0;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;padding:0;display:flex}.neo-toggle{cursor:pointer;background:#fff;min-height:2.75rem;padding:.45rem .7rem;font-family:inherit}.neo-toggle.is-active{background:#ffd93d}.graph-layout{grid-template-columns:minmax(0,1fr) minmax(260px,.35fr);gap:1rem;display:grid}.graph-canvas{background:radial-gradient(#000 1.2px,#0000 1.4px) 0 0/22px 22px,#fff;border:4px solid #000;min-height:680px;position:relative;overflow:hidden}.graph-canvas svg{width:100%;height:100%;min-height:680px;display:block}.graph-edge{stroke:#000;opacity:.32;transition:opacity .18s ease-out,stroke-width .18s ease-out}.graph-edge.is-active{opacity:1;stroke-width:6px}.graph-node-layer{position:absolute;inset:0}.graph-node-button{color:#000;text-align:center;cursor:pointer;opacity:.78;border:4px solid #000;justify-content:center;align-items:center;width:7rem;min-height:2.9rem;font-family:inherit;font-size:.76rem;font-weight:700;line-height:1;transition:opacity .16s ease-out,box-shadow .16s ease-out,transform .16s ease-out;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:4px 4px #000}.graph-node-button--circle{border-radius:999px;width:4rem;min-height:4rem}.graph-node-button--diamond{width:3.8rem;min-height:3.8rem;transform:translate(-50%,-50%)rotate(45deg)}.graph-node-button--diamond span{transform:rotate(-45deg)}.graph-node-button.is-connected,.graph-node-button.is-selected{opacity:1}.graph-node-button.is-selected{color:#fff;box-shadow:8px 8px #ff6b6b}.graph-node-button:not(.graph-node-button--diamond):hover{transform:translate(-50%,-50%)scale(1.06)}.graph-node-button--diamond:hover{transform:translate(-50%,-50%)rotate(45deg)scale(1.06)}.graph-detail,.relationship-fallback__item{background:#ffd93d;border:4px solid #000;align-content:start;gap:.85rem;padding:1rem;display:grid}.relationship-fallback__item{width:100%;color:inherit;text-align:left;transition:transform .14s ease-out,box-shadow .14s ease-out,background .14s ease-out;box-shadow:5px 5px #000}.relationship-fallback__item:hover{background:#ff6b6b;transform:translateY(-4px);box-shadow:8px 8px #000}.relationship-fallback__item.is-selected{background:#fff;box-shadow:5px 5px #ff6b6b}.relationship-fallback{gap:1rem;margin-top:1rem;display:none}.relationship-fallback__meta{font-weight:700}.contact-section{background:#c4b5fd;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2rem;margin:clamp(2rem,5vw,5rem);padding:clamp(2rem,5vw,4rem);scroll-margin-top:5rem;display:grid}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.hero-name,.hero-copy h1,.hero-copy p,.hero-actions,.section-header,.open-source-metric,.activity-strip,.open-source-notes,.graph-shell,.contact-section{animation:.46s cubic-bezier(.16,1,.3,1) both rise-in}.hero-copy h1{animation-delay:80ms}.hero-title-line{visibility:hidden;white-space:nowrap;max-width:0;overflow:hidden}.hero-title-line:after{content:"";opacity:0;background:#000;width:.08em;position:absolute;top:.08em;bottom:.08em;right:0}.hero-title-line:first-child{animation:.9s steps(6,end) .16s forwards title-type-builds}.hero-title-line:nth-child(2){animation:1.1s steps(7,end) 1.12s forwards title-type-product}.hero-title-line:nth-child(3){animation:1.2s steps(8,end) 2.28s forwards title-type-systems}.hero-title-line:first-child:after{animation:.9s steps(2,end) .16s title-caret}.hero-title-line:nth-child(2):after{animation:1.1s steps(2,end) 1.12s title-caret}.hero-title-line:nth-child(3):after{animation:1.2s steps(2,end) 2.28s title-caret,.76s steps(2,end) 3.48s infinite title-caret-blink}.hero-copy p{animation-delay:.14s}.hero-actions{animation-delay:.2s}.hero-stat--yellow,.hero-stat--red{animation:.46s cubic-bezier(.16,1,.3,1) both hero-stat-right-in}.hero-stat--violet{animation:.46s cubic-bezier(.16,1,.3,1) both hero-stat-left-in}.neo-card{animation:.42s ease-out both fade-in}.neo-card:nth-child(2n),.open-source-metric:nth-child(2n),.activity-strip__day:nth-child(2n){animation-delay:80ms}.neo-card:nth-child(3n),.open-source-metric:nth-child(3n),.activity-strip__day:nth-child(3n){animation-delay:.14s}.activity-strip__day{animation:.52s cubic-bezier(.16,1,.3,1) both activity-grow}.graph-node-button{animation:.42s cubic-bezier(.16,1,.3,1) backwards graph-node-in}.graph-node-button--diamond{animation-name:graph-diamond-in}.graph-node-button:nth-child(2n){animation-delay:70ms}.graph-node-button:nth-child(3n){animation-delay:.12s}.graph-node-button:nth-child(5n){animation-delay:.17s}}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes title-type-builds{0%{visibility:visible;max-width:0}to{visibility:visible;max-width:6.4ch}}@keyframes title-type-product{0%{visibility:visible;max-width:0}to{visibility:visible;max-width:8.2ch}}@keyframes title-type-systems{0%{visibility:visible;max-width:0}to{visibility:visible;max-width:8.6ch}}@keyframes title-caret{0%,to{opacity:0}10%,90%{opacity:1}}@keyframes title-caret-blink{0%{opacity:1}to{opacity:0}}@keyframes activity-grow{0%{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:scaleY(1)}}@keyframes hero-stat-right-in{0%{opacity:0;transform:translateY(18px)rotate(1deg)}to{opacity:1;transform:translateY(0)rotate(1deg)}}@keyframes hero-stat-left-in{0%{opacity:0;transform:translateY(18px)rotate(-2deg)}to{opacity:1;transform:translateY(0)rotate(-2deg)}}@keyframes graph-node-in{0%{opacity:0;transform:translate(-50%,-42%)scale(.92)}to{opacity:.78;transform:translate(-50%,-50%)scale(1)}}@keyframes graph-diamond-in{0%{opacity:0;transform:translate(-50%,-42%)rotate(45deg)scale(.92)}to{opacity:.78;transform:translate(-50%,-50%)rotate(45deg)scale(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto;transition:none;animation:none}}@media (width<=1023px){.hero-section,.graph-layout,.contact-section{grid-template-columns:1fr}.project-grid,.open-source-grid,.skills-grid,.open-source-layout,.open-source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.site-header{position:static}.nav-links{display:none}.hero-section{min-height:auto}.project-grid,.open-source-grid,.open-source-layout,.open-source-metrics,.skills-grid,.experience-card{grid-template-columns:1fr}.activity-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-actions,.neo-button{width:100%}.graph-canvas{display:none}.relationship-fallback{display:grid}.graph-detail{order:-1}}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
