/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@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-duration:initial;--tw-border-style:solid;--tw-tracking:initial;--tw-space-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:Outfit, sans-serif;--font-mono:JetBrains Mono, monospace;--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-gray-200:oklch(92.8% .006 264.531);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--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;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}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentcolor)}::file-selector-button{border-color:var(--color-gray-200,currentcolor)}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/outfit-latin.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:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/outfit-latin-ext.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jetbrains-mono-latin.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jetbrains-mono-latin-ext.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}}@layer components;@layer utilities{.timeline-dot{top:calc(var(--spacing) * 2);height:calc(var(--spacing) * 1.5);width:calc(var(--spacing) * 1.5);background-color:var(--color-zinc-400);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s;position:absolute;left:-3px}@media (hover:hover){.timeline-dot:is(:where(.group):hover *){background-color:var(--color-emerald-500)}}.timeline-dot:is(.dark *){background-color:var(--color-zinc-600)}.timeline-item{border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--color-zinc-300);padding-left:calc(var(--spacing) * 6);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s;position:relative}@media (hover:hover){.timeline-item:hover{border-color:var(--color-emerald-500)}}.timeline-item:is(.dark *){border-color:var(--color-zinc-800)}.fixed{position:fixed}.project-item{position:relative}.top-6{top:calc(var(--spacing) * 6)}.right-6{right:calc(var(--spacing) * 6)}.z-50{z-index:50}.mx-auto{margin-inline:auto}.my-8{margin-block:calc(var(--spacing) * 8)}.timeline-skills{margin-top:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.timeline-date{margin-top:var(--spacing);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest);color:var(--color-zinc-600);text-transform:uppercase}@media (min-width:40rem){.timeline-date{margin-top:0}}.timeline-date:is(.dark *){color:var(--color-zinc-400)}.bullet-dot{margin-top:var(--spacing);color:var(--color-zinc-400)}.bullet-dot:is(.dark *){color:var(--color-zinc-600)}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.project-title-row{margin-bottom:calc(var(--spacing) * 2);flex-direction:column;display:flex}@media (min-width:40rem){.project-title-row{flex-direction:row;justify-content:space-between;align-items:baseline}}.timeline-title-row{margin-bottom:var(--spacing);flex-direction:column;display:flex}@media (min-width:40rem){.timeline-title-row{flex-direction:row;justify-content:space-between;align-items:baseline}}.bullet-list{margin-bottom:var(--spacing)}:where(.bullet-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.project-bullet-list{margin-bottom:calc(var(--spacing) * 5)}:where(.project-bullet-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.timeline-role{margin-bottom:calc(var(--spacing) * 3);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-zinc-600)}.timeline-role:is(.dark *){color:var(--color-zinc-400)}.timeline-desc{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--color-zinc-700)}.timeline-desc:is(.dark *){color:var(--color-zinc-300)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.link-icon{margin-left:calc(var(--spacing) * -2);height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s}@media (hover:hover){.link-icon:is(:where(.group):hover *){opacity:1;margin-left:0}}.social-link{height:calc(var(--spacing) * 9);align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:#d4d4d8b3;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.social-link{border-color:color-mix(in oklab, var(--color-zinc-300) 70%, transparent)}}.social-link{background-color:#f4f4f566}@supports (color:color-mix(in lab, red, red)){.social-link{background-color:color-mix(in oklab, var(--color-zinc-100) 40%, transparent)}}.social-link{padding-inline:calc(var(--spacing) * 3.5);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-zinc-700);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.social-link:hover{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.social-link:hover{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.social-link:hover{color:var(--color-emerald-600)}}.social-link:is(.dark *){border-color:var(--color-zinc-800);background-color:#18181b33}@supports (color:color-mix(in lab, red, red)){.social-link:is(.dark *){background-color:color-mix(in oklab, var(--color-zinc-900) 20%, transparent)}}.social-link:is(.dark *){color:var(--color-zinc-300)}@media (hover:hover){.social-link:is(.dark *):hover{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.social-link:is(.dark *):hover{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.social-link:is(.dark *):hover{color:var(--color-emerald-400)}}.project-title{align-items:center;gap:calc(var(--spacing) * 1.5);width:fit-content;font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-zinc-900);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s;display:flex}@media (hover:hover){.project-title:is(:where(.group):hover *){color:var(--color-emerald-600)}}.project-title:is(.dark *){color:var(--color-zinc-100)}@media (hover:hover){.project-title:is(.dark *):is(:where(.group):hover *){color:var(--color-emerald-400)}}.timeline-title{align-items:center;gap:calc(var(--spacing) * 1.5);width:fit-content;font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-zinc-900);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;transition-duration:.3s;display:flex}@media (hover:hover){.timeline-title:is(:where(.group):hover *){color:var(--color-emerald-600)}}.timeline-title:is(.dark *){color:var(--color-zinc-100)}@media (hover:hover){.timeline-title:is(.dark *):is(:where(.group):hover *){color:var(--color-emerald-400)}}.project-skills{gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.bullet-item{align-items:flex-start;gap:calc(var(--spacing) * 3);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--color-zinc-700);display:flex}.bullet-item:is(.dark *){color:var(--color-zinc-300)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.social-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:currentColor}.h-4{height:calc(var(--spacing) * 4)}.h-10{height:calc(var(--spacing) * 10)}.h-px{height:1px}.w-4{width:calc(var(--spacing) * 4)}.w-10{width:calc(var(--spacing) * 10)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-0{gap:0}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.skill-badge{border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;border-color:#d4d4d8b3}@supports (color:color-mix(in lab, red, red)){.skill-badge{border-color:color-mix(in oklab, var(--color-zinc-300) 70%, transparent)}}.skill-badge{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);color:var(--color-zinc-600);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;background-color:#0000;font-size:11px;transition-duration:.3s}@media (hover:hover){.skill-badge:is(:where(.group):hover *){border-color:var(--color-zinc-400);color:var(--color-zinc-800)}}.skill-badge:is(.dark *){border-color:var(--color-zinc-800);color:var(--color-zinc-500)}@media (hover:hover){.skill-badge:is(.dark *):is(:where(.group):hover *){border-color:var(--color-zinc-700);color:var(--color-zinc-300)}}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-zinc-300\/50{border-color:#d4d4d880}@supports (color:color-mix(in lab, red, red)){.border-zinc-300\/50{border-color:color-mix(in oklab, var(--color-zinc-300) 50%, transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-200\/90{background-color:#e4e4e7e6}@supports (color:color-mix(in lab, red, red)){.bg-zinc-200\/90{background-color:color-mix(in oklab, var(--color-zinc-200) 90%, transparent)}}.card-pad{padding:calc(var(--spacing) * 8)}@media (min-width:64rem){.card-pad{padding:calc(var(--spacing) * 10)}}@media print{.card-pad{padding:0}}.p-6{padding:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pb-0{padding-bottom:0}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.bullet-label{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-zinc-900)}.bullet-label:is(.dark *){color:var(--color-zinc-100)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-900{color:var(--color-zinc-900)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-30{opacity:.3}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:text-zinc-900:is(:where(.group):hover *){color:var(--color-zinc-900)}}.selection\:bg-emerald-500\/30 ::selection{background-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.selection\:bg-emerald-500\/30 ::selection{background-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.selection\:bg-emerald-500\/30::selection{background-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.selection\:bg-emerald-500\/30::selection{background-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}@media (hover:hover){.hover\:bg-zinc-300:hover{background-color:var(--color-zinc-300)}}@media (min-width:40rem){.sm\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (min-width:64rem){.lg\:my-auto{margin-block:auto}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:gap-6{gap:calc(var(--spacing) * 6)}.lg\:p-12{padding:calc(var(--spacing) * 12)}.lg\:pt-10{padding-top:calc(var(--spacing) * 10)}.lg\:pb-10{padding-bottom:calc(var(--spacing) * 10)}.lg\:text-\[clamp\(3rem\,9\.375vw-3rem\,4\.5rem\)\]{font-size:clamp(3rem,9.375vw - 3rem,4.5rem)}}@media (min-width:80rem){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}.dark\:border-zinc-700\/50:is(.dark *){border-color:#3f3f4680}@supports (color:color-mix(in lab, red, red)){.dark\:border-zinc-700\/50:is(.dark *){border-color:color-mix(in oklab, var(--color-zinc-700) 50%, transparent)}}.dark\:bg-zinc-800:is(.dark *){background-color:var(--color-zinc-800)}.dark\:bg-zinc-800\/90:is(.dark *){background-color:#27272ae6}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-800\/90:is(.dark *){background-color:color-mix(in oklab, var(--color-zinc-800) 90%, transparent)}}.dark\:bg-zinc-950:is(.dark *){background-color:var(--color-zinc-950)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-zinc-50:is(.dark *){color:var(--color-zinc-50)}.dark\:text-zinc-100:is(.dark *){color:var(--color-zinc-100)}.dark\:text-zinc-300:is(.dark *){color:var(--color-zinc-300)}.dark\:text-zinc-400:is(.dark *){color:var(--color-zinc-400)}@media (hover:hover){.dark\:group-hover\:text-zinc-100:is(.dark *):is(:where(.group):hover *){color:var(--color-zinc-100)}.dark\:hover\:bg-zinc-700:is(.dark *):hover{background-color:var(--color-zinc-700)}}@media print{.print\:flex{display:flex}.print\:hidden{display:none}.print\:inline{display:inline}}}html{color-scheme:light;background-color:#f4f4f5}html.dark{color-scheme:dark;background-color:#09090b}body{background-color:inherit;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);transition:background-color .3s,color .3s;display:flow-root}.bg-ambient{z-index:-1;pointer-events:none;background-image:radial-gradient(circle,#0000 30%,#09090bcc 100%),radial-gradient(circle,#ffffff0a 1px,#0000 1px);background-size:100% 100%,32px 32px;width:100vw;height:100vh;position:fixed;top:0;left:0}:root:not(.dark) .bg-ambient{background-image:radial-gradient(circle,#0000 30%,#f4f4f5e6 100%),radial-gradient(circle,#0000000d 1px,#0000 1px)}.spotlight-card{isolation:isolate;background-color:#141417d9;border:1px solid #ffffff08;border-radius:1rem;transition:box-shadow .3s;position:relative;overflow:hidden}:root:not(.dark) .spotlight-card{background-color:#ffffffd9;border-color:#00000014}@media (hover:hover) and (pointer:fine){.spotlight-card:hover{box-shadow:0 8px 24px -14px #00000059}:root:not(.dark) .spotlight-card:hover{box-shadow:0 8px 24px -14px #0000001f}}.spotlight-card:after{content:"";background:radial-gradient(600px circle at var(--mouse-x,-1000px) var(--mouse-y,-1000px), #34d39980, transparent 40%);-webkit-mask-composite:xor;pointer-events:none;z-index:10;opacity:0;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;border-radius:1rem;padding:1px;transition:opacity .5s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}:root:not(.dark) .spotlight-card:after{background:radial-gradient(600px circle at var(--mouse-x,-1000px) var(--mouse-y,-1000px), #10b98166, transparent 40%)}@media (hover:hover) and (pointer:fine){.spotlight-card:hover:after{opacity:1;transition:opacity .15s}}@keyframes intro-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.spotlight-card{animation:.85s cubic-bezier(.16,1,.3,1) backwards intro-rise}main>div:first-child .spotlight-card{animation-delay:80ms}main>div:last-child .spotlight-card:first-of-type{animation-delay:.22s}main>div:last-child .spotlight-card:nth-of-type(2){animation-delay:.36s}.bg-ambient{animation:1.1s ease-out backwards intro-fade}#theme-toggle{animation:.7s ease-out .5s backwards intro-fade}}@keyframes intro-fade{0%{opacity:0}to{opacity:1}}@media (hover:none),(pointer:coarse){.link-icon{opacity:1;margin-left:0}}@media (hover:none){.timeline-item.active{border-color:#10b981}.timeline-item.active .timeline-dot{background-color:#10b981}.active .timeline-title,.active .project-title{color:#059669}.dark .active .timeline-title,.dark .active .project-title{color:#34d399}.active .skill-badge{color:#059669;border-color:#10b9814d}.dark .active .skill-badge{color:#34d399}}::selection{color:inherit;background:#34d39933}@media (prefers-reduced-motion:reduce){body,.spotlight-card,.spotlight-card:after,.timeline-item,.timeline-dot,.timeline-title,.project-title,.skill-badge,.social-link,.link-icon{transition:none!important}.spotlight-card:hover{transform:none}}@media (prefers-contrast:more){.spotlight-card{border-color:#ffffff40}:root:not(.dark) .spotlight-card{border-color:#0006}}@media print{html{color-scheme:light;background:#fff!important;font-size:12px!important}body,html.dark body{color:#000!important;background:#fff!important}.bg-ambient,#theme-toggle{display:none!important}.spotlight-card{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important;animation:none!important;display:block!important;overflow:visible!important}.spotlight-card:after{display:none!important}main{max-width:100%!important;margin:0!important;padding:0!important;display:block!important}main>div,.spotlight-card .flex-col:not(.print\:hidden){display:block!important}.group{page-break-inside:avoid!important;break-inside:avoid!important;margin-bottom:2rem!important}.timeline-item{border-left:none!important;padding-left:0!important}.timeline-dot,.h-px.bg-zinc-200{display:none!important}a{color:inherit!important;text-decoration:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.text-zinc-400,.text-zinc-500,.text-zinc-600,.text-zinc-700,.dark\:text-zinc-300,.dark\:text-zinc-400{color:#444!important}.text-zinc-900,.dark\:text-zinc-100,.dark\:text-zinc-50{color:#000!important}.border-zinc-300,.dark\:border-zinc-800,.dark\:border-zinc-700\/50{border-color:#ccc!important}.skill-badge,.social-link{color:#333!important;background:0 0!important;border:1px solid #bbb!important;padding:.1rem .4rem!important}.social-link{padding:.25rem .5rem!important}.link-icon{color:#555!important}.bg-zinc-100\/80,.dark\:bg-zinc-800\/50,.bg-zinc-200\/50{background:0 0!important}.text-emerald-500,.text-emerald-600,.dark\:text-emerald-400{color:#059669!important}.link-icon{opacity:0!important}.active .timeline-title,.active .project-title{color:inherit!important}}@property --tw-duration{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}