@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/bricolage-grotesque-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/bricolage-grotesque-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg: #0a0a0b;--text: #fafafa;--muted: #a3a3ab;--surface: #141417;--accent: #ff5a1f;--accent-deep: #c2410c;--slick-stops: oklch(.66 .23 40), oklch(.76 .18 72), oklch(.67 .22 18), oklch(.62 .2 350), oklch(.61 .16 296), oklch(.69 .15 205), oklch(.74 .2 55), oklch(.66 .23 40);--slick-stops-soft: oklch(.76 .18 50), oklch(.83 .15 86), oklch(.71 .19 24), oklch(.69 .17 354), oklch(.8 .16 60), oklch(.76 .18 50);--font: "Bricolage Grotesque", system-ui, sans-serif;--text-sm: .875rem;--text-md: 1rem;--text-lg: clamp(1.375rem, 1.1rem + 1vw, 2rem);--text-xl: clamp(2rem, 1.25rem + 3vw, 3.5rem);--text-2xl: clamp(2.75rem, 1.75rem + 4vw, 5rem);--text-display: clamp(3rem, 1.5rem + 6vw, 6.5rem);--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 3rem;--space-section: clamp(5rem, 3rem + 6vw, 9rem);--gutter: clamp(1.125rem, 5vw, 2.5rem);--page-width: 61.25rem;--measure: 38rem;--radius: 1.25rem;--tile-padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);--duration: .18s;--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,p,ol,ul{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-md);line-height:1.6;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.3em;transition:color var(--duration) ease}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:var(--bg)}.skip-link{position:absolute;top:var(--space-1);left:var(--space-1);z-index:1;padding:var(--space-1) var(--space-2);background:var(--bg);transform:translateY(-200%)}.skip-link:focus{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.bento{display:grid;gap:var(--space-2)}.tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-4);padding:var(--tile-padding);border-radius:var(--radius);background:var(--surface)}.tile:before{content:"";position:absolute;inset:0;padding:2px;border-radius:inherit;background:conic-gradient(var(--slick-stops));-webkit-mask:radial-gradient(12rem circle at var(--mx, -99rem) var(--my, -99rem),#000,transparent) border-box,linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:radial-gradient(12rem circle at var(--mx, -99rem) var(--my, -99rem),#000,transparent) border-box,linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:source-in,xor,source-over;mask-composite:intersect,exclude,add;pointer-events:none;opacity:0;transition:opacity .3s ease}@media(hover:hover)and (pointer:fine){.bento:hover .tile:before{opacity:1}}.has-custom-cursor,.has-custom-cursor *{cursor:none}.cursor{position:fixed;top:0;left:0;z-index:100;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1.5px var(--bg);pointer-events:none;opacity:0;transition:opacity var(--duration) ease,width var(--duration) var(--ease),height var(--duration) var(--ease),background-color var(--duration) ease}.cursor.is-visible{opacity:1}.cursor.is-hovering{width:28px;height:28px;background:color-mix(in srgb,var(--accent) 18%,transparent);box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 1.5px var(--bg)}.sketch{display:block;width:100%;height:auto;overflow:visible}.sketch .frame,.sketch .rail,.sketch .node,.sketch .accent-frame{vector-effect:non-scaling-stroke}.sketch .frame{fill:none;stroke:color-mix(in srgb,var(--muted) 40%,transparent)}.sketch .rail{fill:none;stroke:color-mix(in srgb,var(--muted) 35%,transparent);stroke-dasharray:4 6}.sketch .node{fill:var(--surface);stroke:var(--muted);stroke-width:1.5}.sketch .node-strong{stroke:var(--text)}.sketch .ink{fill:var(--text)}.sketch .faint{fill:color-mix(in srgb,var(--muted) 35%,transparent)}.sketch .tint{fill:color-mix(in srgb,var(--accent) 16%,transparent)}.sketch .accent{fill:var(--accent)}.sketch .accent-frame{fill:none;stroke:var(--accent);stroke-width:1.5}.sketch .part{opacity:0}.sketch .part,.sketch .wave{transform-box:fill-box;transform-origin:center}.sketch.is-playing .part{animation:sketch-in .6s var(--ease) both;animation-delay:calc(var(--i, 0) * .11s)}.sketch.is-playing .sweep{animation-name:sketch-sweep;transform-origin:left center}.sketch.is-playing .scan{animation-name:sketch-scan;animation-duration:1.2s}.sketch.is-playing .wave{animation:sketch-wave .7s var(--ease) both;animation-delay:calc(var(--i, 0) * .11s + var(--j, 0) * 45ms)}.sketch .token,.sketch .dot{transform-box:view-box}.sketch.is-playing .token-a,.sketch.is-playing .token-b{animation-duration:2.2s;animation-timing-function:ease-in-out}.sketch.is-playing .token-a{animation-name:sketch-token-a}.sketch.is-playing .token-b{animation-name:sketch-token-b}.sketch.is-playing .dot{animation-name:sketch-dot;animation-duration:1.8s;animation-timing-function:ease-in-out}.sketch .follow{transition:transform .45s var(--ease)}.sketch .is-hit{fill:var(--muted)}.sketch .faint rect{transition:fill var(--duration) ease}.sketch.is-playing .cite{transform-box:fill-box;transform-origin:center;animation:sketch-cite .5s var(--ease)}.sketch-button{display:block;width:100%;padding:0;border:0;border-radius:.5rem;background:none;color:inherit;cursor:pointer}.sketch .entry{transition:stroke var(--duration) ease,fill var(--duration) ease}.sketch-button:hover .entry,.sketch-button:focus-visible .entry{fill:color-mix(in srgb,var(--accent) 25%,var(--surface));stroke:var(--accent)}.sketch .run .token-a,.sketch .run .token-b{animation:sketch-token-a 2.2s ease-in-out both}.sketch .run .token-b{animation-name:sketch-token-b}.sketch .check-flash,.sketch .finish-flash{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:0}.sketch .check-flash{animation:sketch-check 2.2s linear both}.sketch .finish-flash{transform-box:fill-box;transform-origin:center;animation:sketch-finish 2.2s var(--ease) both}.sketch .panel{transition:stroke var(--duration) ease}.sketch .panel.is-live{stroke:color-mix(in srgb,var(--accent) 80%,transparent)}.sketch.is-playing .is-live .wave{animation:sketch-talk .8s ease-in-out infinite alternate;animation-delay:calc(var(--j, 0) * -.11s)}.sketch .reply{transform-box:fill-box;transform-origin:left center}.sketch .is-live .reply{animation:sketch-typing 1.4s var(--ease) infinite}.sketch .columns.is-live{animation:sketch-columns 2.4s var(--ease) infinite}@media(prefers-reduced-motion:reduce){.sketch.is-playing .part,.sketch.is-playing .wave{animation-delay:0s}.sketch .check-flash,.sketch .finish-flash{animation:none;opacity:1}}@keyframes sketch-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes sketch-sweep{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:none}}@keyframes sketch-scan{0%{opacity:0;transform:translateY(-16px)}25%{opacity:1}60%{transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes sketch-wave{0%{opacity:0;transform:scaleY(.2)}55%{opacity:1;transform:scaleY(1.15)}to{opacity:1;transform:none}}@keyframes sketch-token-a{0%{opacity:0;transform:translate(40px,90px)}8%{opacity:1}28%,38%{transform:translate(170px,50px)}62%,72%{transform:translate(320px,90px)}to{opacity:1;transform:translate(440px,90px)}}@keyframes sketch-token-b{0%{opacity:0;transform:translate(40px,90px)}8%{opacity:1}28%,38%{transform:translate(170px,130px)}62%,72%{transform:translate(320px,90px)}to{opacity:1;transform:translate(440px,90px)}}@keyframes sketch-cite{0%{transform:scale(1)}40%{transform:scale(1.9)}to{transform:scale(1)}}@keyframes sketch-check{0%,58%{opacity:0}64%,74%{opacity:1}84%,to{opacity:0}}@keyframes sketch-finish{0%,90%{opacity:0;transform:scale(1)}93%{opacity:1}to{opacity:0;transform:scale(2.8)}}@keyframes sketch-talk{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}@keyframes sketch-typing{0%{transform:scaleX(.15)}70%,to{transform:none}}@keyframes sketch-columns{0%,26%{transform:translate(-42px)}33%,59%{transform:none}66%,92%{transform:translate(42px)}to{transform:translate(-42px)}}@keyframes sketch-dot{0%{opacity:0;transform:translate(72px,172.5px)}8%,22%{opacity:1;transform:translate(72px,172.5px)}42%,55%{transform:translate(240px,172.5px)}78%,to{opacity:1;transform:translate(408px,172.5px)}}.wordmark{position:relative;isolation:isolate;font-size:var(--text-display);font-weight:600;letter-spacing:-.03em;line-height:1.1}@property --slick-a{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@property --slick-b{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.wordmark-slick{--lens: 150px;position:absolute;inset:0;isolation:isolate;pointer-events:none;--lens-mask: radial-gradient( circle at var(--mx, 50%) var(--my, 50%), #000 0, #000 calc(var(--lens) * .34), transparent var(--lens) );-webkit-mask-image:var(--lens-mask);mask-image:var(--lens-mask)}.wordmark-slick:before,.wordmark-slick:after{content:attr(data-text);position:absolute;inset:0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;opacity:0;transition:opacity .3s ease}.wordmark-slick:before{background-image:conic-gradient(from var(--slick-a) at 38% 42%,var(--slick-stops))}.wordmark-slick:after{background-image:conic-gradient(from var(--slick-b) at 66% 60%,var(--slick-stops-soft));mix-blend-mode:screen}.wordmark.is-lit .wordmark-slick{--lens: 999px}.wordmark.is-lit .wordmark-slick:before{animation:swirl-a 5.2s linear .15s,slick-resolve 3.3s cubic-bezier(.4,0,.2,1) .15s forwards}.wordmark.is-lit .wordmark-slick:after{animation:swirl-b 6.8s linear .25s,slick-resolve-soft 3.5s cubic-bezier(.4,0,.2,1) .25s forwards}.wordmark.is-hovering .wordmark-slick:before{opacity:1;animation:swirl-a 9s linear infinite}.wordmark.is-hovering .wordmark-slick:after{opacity:.9;animation:swirl-b 12s linear infinite}@keyframes swirl-a{to{--slick-a: 360deg}}@keyframes swirl-b{to{--slick-b: -360deg}}@keyframes slick-resolve{0%{opacity:0}12%,72%{opacity:1}to{opacity:0}}@keyframes slick-resolve-soft{0%{opacity:0}16%,68%{opacity:.55}to{opacity:0}}@media(prefers-reduced-motion:reduce){.wordmark-slick{display:none}}.page{width:min(100% - 2 * var(--gutter),var(--page-width));margin-inline:auto;padding-block-end:var(--space-5)}.header{padding-block-start:var(--space-section);display:flex;flex-direction:column;align-items:center;text-align:center}.detail{max-width:var(--measure);margin-block-start:var(--space-2);color:var(--muted);text-wrap:pretty}.arrow{flex:none;fill:none;stroke:var(--accent);stroke-width:3;transition:transform var(--duration) var(--ease)}a:hover .arrow{transform:translate(4px,-4px)}.bento-cv,.bento-ai{grid-template-columns:repeat(3,minmax(0,1fr))}.bento-cv{grid-template-areas:"cv    cv    clock" "cv    cv    education";margin-block-start:4rem}.bento-ai{grid-template-areas:"workflows retrieval generative-ui" "workflows retrieval generative-ui" "workflows retrieval generative-ui"}.tile .detail{margin:0}.tile-cv{grid-area:cv}.tile-clock{grid-area:clock}.tile-education{grid-area:education}.tile-workflows{grid-area:workflows}.tile-retrieval{grid-area:retrieval}.tile-generative-ui{grid-area:generative-ui}.section-heading{margin-block:4rem 2rem;font-size:var(--text-xl);font-weight:600;line-height:1.1;letter-spacing:-.03em;text-wrap:balance}.tile-title{font-size:var(--text-lg);font-weight:600;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}.tile-label{font-size:var(--text-sm);font-weight:400;color:var(--muted)}.tile-skill{display:grid;grid-template-rows:subgrid;align-content:start;row-gap:var(--space-4)}.tile-clock{--clock-quiet: color-mix(in srgb, var(--bg) 80%, var(--accent));background:var(--accent);color:var(--bg)}.clock-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.tile-clock .tile-label{color:var(--clock-quiet)}.clock-label{display:inline-flex;align-items:center;gap:.5rem}.live-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--bg)}.live-dot:after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--bg);animation:live-pulse 2s var(--ease) infinite}@keyframes live-pulse{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}@media(prefers-reduced-motion:reduce){.live-dot:after{display:none}}.clock{font-size:var(--text-2xl);font-weight:600;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.tile-cv{justify-content:flex-start;gap:var(--space-3)}.roles{--dot-y: calc(var(--text-lg) * .575);position:relative;display:flex;flex-direction:column;gap:var(--space-4);padding:0 0 0 var(--space-3);list-style:none}.roles:before{content:"";position:absolute;inset-block:var(--dot-y) 0;inset-inline-start:3px;width:1px;background:color-mix(in srgb,var(--muted) 35%,transparent)}.role{position:relative;display:grid;gap:.2rem}.role:before{content:"";position:absolute;top:calc(var(--dot-y) - 3.5px);left:calc(-1 * var(--space-3));width:7px;height:7px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--muted)}.role:first-child:before{background:var(--accent);box-shadow:none}.role:last-child:after{content:"";position:absolute;top:calc(var(--dot-y) + 3.5px);bottom:0;left:calc(-1 * var(--space-3));width:7px;background:var(--surface)}.role-company{font-size:var(--text-lg);font-weight:600;line-height:1.15;letter-spacing:-.02em}.role-company a{display:inline-flex;align-items:center;gap:.3em;text-decoration:none}.role-company .arrow{width:.55em}.role-meta{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums}.role-duties{text-wrap:pretty}.duty{white-space:nowrap}.role-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-block-start:.5rem;padding:0;list-style:none}.role-pills li{padding:.1rem .6rem;border:1px solid color-mix(in srgb,var(--muted) 35%,transparent);border-radius:999px;font-size:.8125rem;line-height:1.6;color:var(--muted);white-space:nowrap;transition:background-color var(--duration) ease,border-color var(--duration) ease,color var(--duration) ease}.role-pills li:hover{border-color:var(--accent-deep);background:var(--accent-deep);color:var(--text)}.education{display:grid;gap:var(--space-2);padding:0;list-style:none}.education-detail{display:block;font-size:var(--text-sm);color:var(--muted)}.footer{margin-block-start:var(--space-section)}.contact{display:inline-flex;align-items:center;gap:.4em;font-size:var(--text-2xl);font-weight:600;line-height:1.2;letter-spacing:-.03em;text-decoration:none}.contact .arrow{width:.6em}.footer-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-1) var(--space-3);margin-block-start:var(--space-4);font-size:var(--text-sm);color:var(--muted)}.footer-meta a{padding-block:.75em}@media(max-width:56rem){.header{align-items:flex-start;text-align:start}.bento-cv,.bento-ai{grid-template-columns:repeat(2,minmax(0,1fr))}.bento-cv{grid-template-areas:"cv    cv" "clock education"}.bento-ai{grid-template-areas:"workflows     retrieval" "workflows     retrieval" "workflows     retrieval" "generative-ui generative-ui" "generative-ui generative-ui" "generative-ui generative-ui"}}@media(max-width:36rem){.bento-cv,.bento-ai{grid-template-columns:minmax(0,1fr)}.bento-cv{grid-template-areas:"cv" "clock" "education"}.bento-ai{grid-template-areas:"workflows" "workflows" "workflows" "retrieval" "retrieval" "retrieval" "generative-ui" "generative-ui" "generative-ui"}}
