:root{--gray-0: #1f2937;--gray-50: #273449;--gray-100: #374151;--gray-200: #4b5563;--gray-300: #6b7280;--gray-400: #9ca3af;--gray-500: #d1d5db;--gray-600: #e5e7eb;--gray-700: #f3f4f6;--gray-800: #f9fafb;--gray-900: #ffffff;--gray-999-basis: 0, 0%, 100%;--gray-999_40: hsla(var(--gray-999-basis), .4);--gray-999: #ffffff;--accent-light: #93c5fd;--accent-regular: #3b82f6;--accent-overlay: rgba(59, 130, 246, .25);--accent-subtle-overlay: var(--accent-overlay);--accent-text-over: #ffffff;--link-color: var(--accent-regular);--gradient-stop-1: var(--accent-light);--gradient-stop-2: var(--accent-regular);--gradient-subtle: linear-gradient(150deg, #f9fafc 15%, #ffffff 120%);--gradient-accent: linear-gradient(150deg, var(--gradient-stop-1), var(--gradient-stop-2));--gradient-accent-orange: linear-gradient(150deg, #a5b4fc, #4338ca);--gradient-stroke: linear-gradient(180deg, var(--gray-800), var(--gray-600));--shadow-sm: 0px 6px 3px rgba(9, 11, 17, .01), 0px 4px 2px rgba(9, 11, 17, .01), 0px 2px 2px rgba(9, 11, 17, .02), 0px 0px 1px rgba(9, 11, 17, .03);--shadow-md: 0px 28px 11px rgba(9, 11, 17, .01), 0px 16px 10px rgba(9, 11, 17, .03), 0px 7px 7px rgba(9, 11, 17, .05), 0px 2px 4px rgba(9, 11, 17, .06);--shadow-lg: 0px 62px 25px rgba(9, 11, 17, .01), 0px 35px 21px rgba(9, 11, 17, .05), 0px 16px 16px rgba(9, 11, 17, .1), 0px 4px 9px rgba(9, 11, 17, .12);--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.625rem;--text-2xl: 2.125rem;--text-3xl: 2.625rem;--text-4xl: 3.5rem;--text-5xl: 4.5rem;--font-system: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-body: "Public Sans", var(--font-system);--font-brand: Rubik, var(--font-system);--theme-transition: .2s ease-in-out;--_placeholder-bg: linear-gradient(transparent, transparent);--bg-image-main: url(/assets/backgrounds/bg-main-light-800w.jpg);--bg-image-main-curves: url(/assets/backgrounds/bg-main-light.svg);--bg-image-subtle-1: var(--_placeholder-bg);--bg-image-subtle-2: var(--_placeholder-bg);--bg-image-footer: var(--_placeholder-bg);--bg-svg-blend-mode: overlay;--bg-blend-mode: darken;--bg-image-aspect-ratio: 2.25;--bg-scale: 1.68;--bg-aspect-ratio: calc(var(--bg-image-aspect-ratio) / var(--bg-scale));--bg-gradient-size: calc(var(--bg-scale) * 100%)}:root.loaded{--bg-image-subtle-1: url(/assets/backgrounds/bg-subtle-1-light-800w.jpg);--bg-image-subtle-2: url(/assets/backgrounds/bg-subtle-2-light-800w.jpg);--bg-image-footer: url(/assets/backgrounds/bg-footer-light-800w.jpg)}@media (min-width: 50em){:root{--bg-scale: 1;--bg-image-main: url(/assets/backgrounds/bg-main-light-1440w.jpg)}:root.loaded{--bg-image-subtle-1: url(/assets/backgrounds/bg-subtle-1-light-1440w.jpg);--bg-image-subtle-2: url(/assets/backgrounds/bg-subtle-2-light-1440w.jpg);--bg-image-footer: url(/assets/backgrounds/bg-footer-light-1440w.jpg)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;min-height:100%;overflow-x:hidden}body{background-color:var(--gray-999);color:var(--gray-200);font-family:var(--font-body);-webkit-font-smoothing:antialiased;line-height:1.5}img{max-width:100%;height:auto}a{color:var(--link-color)}h1,h2,h3,h4,h5{line-height:1.1;font-family:var(--font-brand);font-weight:600;color:var(--gray-100)}h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}h3{font-size:var(--text-3xl)}h4{font-size:var(--text-2xl)}h5{font-size:var(--text-xl)}svg{vertical-align:middle;width:var(--size, 1em);height:var(--size, 1em)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.wrapper{width:100%;max-width:83rem;margin-inline:auto;padding-inline:1.5rem}.stack{display:flex;flex-direction:column}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-10{gap:2.5rem}.gap-15{gap:3.75rem}.gap-20{gap:5rem}.gap-30{gap:7.5rem}.gap-48{gap:12rem}@media (min-width: 50em){.lg\:gap-2{gap:.5rem}.lg\:gap-4{gap:1rem}.lg\:gap-8{gap:2rem}.lg\:gap-10{gap:2.5rem}.lg\:gap-15{gap:3.75rem}.lg\:gap-20{gap:5rem}.lg\:gap-30{gap:7.5rem}.lg\:gap-48{gap:12rem}}.grid{display:grid;grid-auto-rows:1fr;gap:1rem;list-style:none;padding:0}.grid.small{grid-template-columns:1fr 1fr;gap:1.5rem}.grid.small>:global(:last-child:nth-child(odd)){grid-column:1 / 3}@media (min-width: 50em){.grid{grid-template-columns:1fr 1fr;gap:4rem}.grid.offset{--row-offset: 7.5rem;padding-bottom:var(--row-offset)}.grid.offset>:global(:nth-child(odd)){transform:translateY(var(--row-offset))}.grid.offset>:global(:last-child:nth-child(odd)){grid-column:2 / 3;transform:none}.grid.small{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem}.grid.small>:global(*){flex-basis:20rem}}.backgrounds{min-height:100%;isolation:isolate;background:url(/assets/backgrounds/noise.png) top center/220px repeat,var(--bg-image-footer) bottom center/var(--bg-gradient-size) no-repeat,var(--bg-image-main-curves) top center/var(--bg-gradient-size) no-repeat,var(--bg-image-main) top center/var(--bg-gradient-size) no-repeat,var(--gray-999);background-blend-mode:overlay,var(--bg-blend-mode),var(--bg-svg-blend-mode),normal,normal}@media (forced-colors: active){.backgrounds{background:none;background-blend-mode:none;--bg-gradient-size: none}}nav{z-index:9999;position:relative;font-family:var(--font-brand);font-weight:500;margin-bottom:3.5rem;width:100%}.menu-header{display:flex;align-items:center;width:100%;padding:1.5rem;justify-content:flex-end}.socials{display:flex;flex-wrap:wrap;gap:.625rem;font-size:var(--icon-size, var(--text-xl));margin-left:auto;justify-content:flex-end;width:100%}.social{display:flex;align-items:center;padding:var(--icon-padding, .5rem);text-decoration:none;color:#000;transition:color var(--theme-transition)}.social:hover,.social:focus{color:var(--accent-text-over)}.cv-link{font-weight:700;color:#000;background:var(--gray-999_40);border-radius:1.25rem;border:1px solid black;padding:.15em .45em;margin-left:.2em;display:flex;align-items:center;gap:.18em;font-size:.8em}.cv-label{margin-left:.08em;font-size:1em;color:#000;font-weight:700;letter-spacing:.04em}@media (min-width: 50em){nav{padding:2.5rem 5rem}.menu-header{padding:0}}.hero{display:grid;grid-template-columns:6fr 4fr;align-items:center;gap:2.5rem;padding-inline:2.5rem}.hero-text{display:flex;flex-direction:column;gap:1rem;text-align:start}.title{font-size:var(--text-5xl);color:var(--gray-0);margin:0}.tagline{font-size:var(--text-lg);color:var(--gray-300);margin:0;max-width:60ch}.roles{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.hero img{aspect-ratio:1/1;object-fit:cover;object-position:top;border-radius:50%;box-shadow:var(--shadow-md);width:220px;height:220px;justify-self:end;max-width:22vw}@media (max-width: 50em){.hero{display:flex;flex-direction:column;align-items:center;gap:1.75rem;padding-inline:1.5rem;text-align:center}.hero-text{text-align:center;align-items:center}.title{font-size:var(--text-3xl)}.tagline{font-size:var(--text-lg)}.hero img{width:200px;height:200px;max-width:40vw;justify-self:center}}.hero.hero--compact{font-size:.9em;min-height:60vh;align-items:center;margin-inline:auto;gap:2.5rem}.hero.hero--compact .pill-row,.hero.hero--compact .skills-cloud{gap:.4rem;margin-top:.6rem}@media (min-width: 50em){.hero.hero--compact img{width:198px;height:198px}}.hero--split{display:grid;grid-template-columns:1fr;grid-template-areas:"intro" "photo" "pills" "cloud";align-items:center;gap:1rem;font-size:.9em;min-height:60vh}.hero--split .intro{grid-area:intro}.hero--split .portrait{grid-area:photo;justify-self:center;border-radius:50%;box-shadow:var(--shadow-md)}.hero--split .pills{grid-area:pills}.hero--split .skills-cloud{grid-area:cloud}@media (min-width: 50em){.hero--split{grid-template-columns:1fr auto;grid-template-areas:"intro  photo" "pills  pills" "cloud  cloud";column-gap:1rem;row-gap:1.25rem}.hero--split .portrait{justify-self:start;align-self:center;width:198px;height:198px}}@media (max-width: 49.999em){.hero--split .portrait{width:200px;height:200px}}.pill{display:flex;padding:.5rem 1rem;gap:.5rem;color:var(--accent-text-over);border:1px solid var(--accent-regular);background-color:var(--accent-regular);border-radius:1.25rem;font-size:var(--text-md);line-height:1.35;white-space:nowrap}.section{display:grid;gap:2rem;margin-top:0}.section+.section{margin-top:2.5rem}.section-header{justify-self:center;text-align:center;max-width:80ch;font-size:var(--text-md);color:var(--gray-300)}.section-header h3{font-size:var(--text-2xl)}@media (min-width: 50em){.section{grid-template-columns:repeat(4,1fr);grid-template-areas:"header header header header" "gallery gallery gallery gallery";gap:3rem}.section-header{grid-area:header;font-size:var(--text-lg)}.section-header h3{font-size:var(--text-4xl)}.gallery{grid-area:gallery}}.with-background:before{--hero-bg: var(--bg-image-subtle-2);content:"";position:absolute;pointer-events:none;left:50%;width:100vw;aspect-ratio:calc(2.25 / var(--bg-scale));top:0;transform:translateY(-55%) translate(-50%);background:url(/assets/backgrounds/noise.png) top center/220px repeat,var(--hero-bg) center center / var(--bg-gradient-size) no-repeat,var(--gray-999);background-blend-mode:overlay,normal,normal,normal;mix-blend-mode:var(--bg-blend-mode);z-index:-1}.with-background.bg-variant:before{--hero-bg: var(--bg-image-subtle-1)}.project-card{display:grid;gap:.5rem;padding:.85rem;border:1px solid var(--gray-800);border-radius:1rem;background:var(--gradient-subtle);box-shadow:var(--shadow-sm);color:var(--gray-200)}.project-card h4{margin:0;font-size:var(--text-lg);color:var(--gray-0)}.project-card .project-meta{margin:0;line-height:1.35;color:var(--gray-400);font-size:var(--text-sm)}.project-card p{margin:.25rem 0 0;line-height:1.45}.mention-card{display:flex;justify-content:center;align-items:center;text-align:center;height:7rem;border:1px solid var(--gray-800);border-radius:1.5rem;color:var(--gray-300);background:var(--gradient-subtle);box-shadow:var(--shadow-sm)}@media (min-width: 50em){.mention-card{height:9.5rem}}.box{border:1px solid var(--gray-800);border-radius:.5rem;padding:1.5rem;background-color:var(--gray-999_40);box-shadow:var(--shadow-sm);margin:0}.skills{display:flex;flex-direction:column;gap:3rem;margin:0}.skill-item{display:grid;grid-template-columns:2.5rem minmax(0,1fr);grid-auto-rows:min-content;column-gap:.75rem;row-gap:.5rem;max-width:34rem;align-items:center}.icon-wrap{grid-column:1;grid-row:1;display:flex;align-items:center}.icon-wrap,.skill-title{align-self:center}.skill-title{grid-column:2;grid-row:1;margin:0;font-size:var(--text-lg);line-height:1.15}.skill-desc{grid-column:1 / -1;grid-row:2;margin:.25rem 0 0;color:var(--gray-400)}@media (max-width: 40em){.skill-item{column-gap:.625rem}.skill-title{font-size:var(--text-md)}.skill-desc{grid-column:2 / -1;margin-top:.35rem}}@media (min-width: 50em){.box{border-radius:.75rem;padding:2rem}.skills{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}.skill-title{font-size:var(--text-2xl)}}footer{display:flex;flex-direction:column;gap:3rem;margin-top:auto;padding:3rem 2rem;text-align:center;color:var(--gray-400);font-size:var(--text-sm)}footer a{color:var(--gray-400);text-decoration:1px solid underline transparent;text-underline-offset:.25em;transition:text-decoration-color var(--theme-transition)}footer a:hover,footer a:focus{text-decoration-color:currentColor}.group{display:flex;flex-direction:column;gap:.5rem}@media (min-width: 50em){footer{align-items:center;justify-content:center;padding:2.5rem 5rem}.group{flex-direction:column;align-items:center;gap:1rem;flex-wrap:wrap}}button{display:flex;border:0;border-radius:999rem;padding:0;background-color:var(--gray-999);box-shadow:inset 0 0 0 1px var(--accent-overlay);cursor:pointer}.icon{z-index:1;position:relative;display:flex;padding:.5rem;width:2rem;height:2rem;font-size:1rem;color:var(--accent-overlay)}.icon.light:before{content:"";z-index:-1;position:absolute;inset:0;background-color:var(--accent-regular);border-radius:999rem}:global(.theme-dark) .icon.light:before{transform:translate(100%)}:global(.theme-dark) .icon.dark,:global(html:not(.theme-dark)) .icon.light,button[aria-pressed=false] .icon.light{color:var(--accent-text-over)}@media (prefers-reduced-motion: no-preference){.icon,.icon.light:before{transition:transform var(--theme-transition),color var(--theme-transition)}}@media (forced-colors: active){.icon.light:before{background-color:SelectedItem}}.projects-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(1,minmax(0,1fr));justify-items:center}@media (min-width: 40em){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 70em){.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-highlights .gallery .grid.small{display:grid!important;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 40em){.project-highlights .gallery .grid.small{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 70em){.project-highlights .gallery .grid.small{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-highlights .gallery .grid{margin:0!important;padding:0}.project-highlights .gallery h3{text-align:center;font-size:1.9em}.project-highlights .project-card{padding:.875rem;border:1px solid var(--gray-800);border-radius:.9rem;background:var(--gradient-subtle);box-shadow:var(--shadow-sm);color:var(--gray-200);display:grid;gap:.5rem}.project-highlights .project-title{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;margin-bottom:.25rem}.project-highlights .project-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;color:var(--accent-regular)}.project-highlights .project-title h4{margin:0;font-size:calc(var(--text-lg) * .95);color:var(--gray-0);line-height:1.2;text-align:left}.project-highlights .title-media{width:28px;height:28px;border-radius:.35rem;object-fit:cover;object-position:center;display:block}.roles-visible{display:grid;gap:1rem}.role{display:grid;gap:.5rem;padding:.75rem 1rem;border:1px solid var(--gray-800);border-radius:.75rem;background:var(--gradient-subtle);box-shadow:var(--shadow-sm)}.role .pill{align-self:start;width:fit-content}.tech-row{display:flex;flex-wrap:wrap;gap:.4rem .5rem}.tech-chip{font:500 var(--text-sm)/1 var(--font-body);color:var(--gray-300);background:var(--gray-999);border:1px solid var(--gray-800);border-radius:.6rem;padding:.35rem .55rem;white-space:nowrap}@media (min-width: 40em){.roles-visible{grid-template-columns:repeat(2,1fr)}}@media (min-width: 64em){.roles-visible{grid-template-columns:repeat(3,1fr)}}.pill-row,.skills-cloud{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}@media (max-width: 744px){.pill-row,.skills-cloud{justify-content:center;text-align:center}}
