html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}hr{color:inherit;height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{border:0 solid;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.static{position:static}.absolute{position:absolute}.relative{position:relative}.order-first{order:-9999}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.mt-0{margin-top:0}.mt-4{margin-top:1rem}.-mt-1{margin-top:-.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-12{height:3rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-12{width:3rem}.w-28{width:7rem}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-screen-xl{max-width:1280px}.flex-1{flex:1 1 0%}.flex-none{flex:none}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y:-.5rem}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-t{border-top-width:1px}.border-b-2{border-bottom-width:2px}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgba(16,185,129,var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgba(156,163,175,var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255,251,235,var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity:1;background-color:rgba(52,211,153,var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgba(16,185,129,var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219,234,254,var(--tw-bg-opacity))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgba(5,150,105,var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-green-400{--tw-gradient-from:#34d399;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(52,211,153,0))}.to-blue-500{--tw-gradient-to:#3b82f6}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-12{padding-bottom:3rem;padding-top:3rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245,158,11,var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgba(217,119,6,var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgba(30,64,175,var(--tw-text-opacity))}.underline{text-decoration:underline}.opacity-75{opacity:.75}*,:after,:before{--tw-shadow:0 0 #0000}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover,.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.hover\:shadow-2xl:hover,.hover\:shadow-lg:hover,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25)}*,:after,:before{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.filter{--tw-blur:var(--tw-empty, );--tw-brightness:var(--tw-empty, );--tw-contrast:var(--tw-empty, );--tw-grayscale:var(--tw-empty, );--tw-hue-rotate:var(--tw-empty, );--tw-invert:var(--tw-empty, );--tw-saturate:var(--tw-empty, );--tw-sepia:var(--tw-empty, );--tw-drop-shadow:var(--tw-empty, );filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (min-width:640px){.sm\:order-none{order:0}.sm\:w-48{width:12rem}.sm\:flex-row{flex-direction:row}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:py-4{padding-bottom:1rem;padding-top:1rem}.sm\:pl-8{padding-left:2rem}.sm\:text-right{text-align:right}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:768px){.md\:m-8{margin:2rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1280px){.xl\:mx-auto{margin-left:auto;margin-right:auto}}@media print{.print\:order-none{order:0}.print\:mb-1{margin-bottom:.25rem}.print\:flex-row{flex-direction:row}.print\:pt-0{padding-top:0}.print\:pl-6{padding-left:1.5rem}.print\:text-right{text-align:right}.print\:text-xs{font-size:.75rem;line-height:1rem}.print\:text-4xl{font-size:2.25rem;line-height:2.5rem}}a.svelte-4g9fiu.svelte-4g9fiu{text-decoration:underline}@media (max-width:640px){div.svelte-4g9fiu p.svelte-4g9fiu{white-space:normal;word-break:break-word}h2.svelte-4g9fiu.svelte-4g9fiu{margin:.5rem 0}}@media (max-width:896px) and (orientation:landscape){div.svelte-4g9fiu.svelte-4g9fiu{flex-direction:row!important}h2.svelte-4g9fiu.svelte-4g9fiu{font-size:1.5rem;order:0!important;padding:.5rem}div.svelte-4g9fiu p.svelte-4g9fiu{font-size:.75rem;margin-bottom:.25rem}div.svelte-4g9fiu>div.svelte-4g9fiu{padding-bottom:.5rem;padding-top:.5rem;width:32%!important}}.hide-toggle.svelte-1wa6uo9{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity));text-decoration:underline}.work-experience.svelte-j1cgus{margin-bottom:1rem;margin-top:1rem}a.svelte-j1cgus{text-decoration:underline}.print-only.svelte-j1cgus{display:none}@media print{.work-experience.svelte-j1cgus{margin-bottom:.25rem;margin-top:.25rem}.print-only.svelte-j1cgus{display:inline}}.projects-page.svelte-8ptgx.svelte-8ptgx{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh}.project-card.svelte-8ptgx.svelte-8ptgx{display:flex;flex-direction:column;height:100%}.card-body.svelte-8ptgx.svelte-8ptgx{display:flex;flex:1;flex-direction:column}.card-body.svelte-8ptgx p.svelte-8ptgx{flex:1}.project-card.svelte-8ptgx.svelte-8ptgx{animation:svelte-8ptgx-fadeInUp .6s ease-out}@keyframes svelte-8ptgx-fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(n){animation-delay:calc(.1s*var(--nth-child, 0))}.project-card.svelte-8ptgx.svelte-8ptgx:first-child{--nth-child:1}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(2){--nth-child:2}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(3){--nth-child:3}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(4){--nth-child:4}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(5){--nth-child:5}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(6){--nth-child:6}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(7){--nth-child:7}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(8){--nth-child:8}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(9){--nth-child:9}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(10){--nth-child:10}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(11){--nth-child:11}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(12){--nth-child:12}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(13){--nth-child:13}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(14){--nth-child:14}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(15){--nth-child:15}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(16){--nth-child:16}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(17){--nth-child:17}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(18){--nth-child:18}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(19){--nth-child:19}.project-card.svelte-8ptgx.svelte-8ptgx:nth-child(20){--nth-child:20}.project-card.svelte-8ptgx.svelte-8ptgx:hover{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a,0 0 20px #22c55e4d}.card-header.svelte-8ptgx.svelte-8ptgx{background:linear-gradient(135deg,#4ade80,#3b82f6);overflow:hidden;position:relative}.card-header.svelte-8ptgx.svelte-8ptgx:before{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.project-card.svelte-8ptgx:hover .card-header.svelte-8ptgx:before{left:100%}@media (max-width:768px){.projects-page.svelte-8ptgx h1.svelte-8ptgx{font-size:2rem}.card-body.svelte-8ptgx.svelte-8ptgx{padding:1rem}}main.svelte-x6umnx.svelte-x6umnx{overflow-x:hidden}a.svelte-x6umnx.svelte-x6umnx{text-decoration:underline;word-break:break-word}section.svelte-x6umnx.svelte-x6umnx{margin-bottom:1rem;margin-top:1rem}section.svelte-x6umnx h2.svelte-x6umnx{font-weight:600}section.svelte-x6umnx hr.svelte-x6umnx{border-color:#a9a9a9;margin-bottom:.5rem;margin-top:0}.print-only,main.display-mode .hide-toggle{display:none}.achievement-name,.project-name{font-weight:700;overflow-wrap:break-word}.achievement-details,.project-details{overflow-wrap:break-word}.achievement-url,.project-url{font-size:.875rem;line-height:1.25rem;word-break:break-all}@media (max-width:640px){ul.svelte-x6umnx.svelte-x6umnx{padding-left:1rem}li.svelte-x6umnx.svelte-x6umnx{margin-bottom:.5rem}section.svelte-x6umnx.svelte-x6umnx{margin-bottom:.75rem;margin-top:.75rem}}@media print{.svelte-x6umnx.svelte-x6umnx{font-size:.75rem;line-height:1rem}.print-only{display:inherit}.web-only{display:none}ul.svelte-x6umnx.svelte-x6umnx{padding-left:1.5rem}section.svelte-x6umnx.svelte-x6umnx{margin-bottom:.5rem;margin-top:.5rem}section.svelte-x6umnx hr.svelte-x6umnx{margin-bottom:.25rem;margin-top:0}main.svelte-x6umnx.svelte-x6umnx{margin:0;padding:0}@page{margin:.5in}}@media (max-width:896px) and (orientation:landscape){section.svelte-x6umnx.svelte-x6umnx{margin-bottom:.5rem;margin-top:.5rem}section.svelte-x6umnx h2.svelte-x6umnx{font-size:1.25rem}ul.svelte-x6umnx.svelte-x6umnx{padding-left:1rem}li.svelte-x6umnx.svelte-x6umnx{font-size:.75rem;margin-bottom:.25rem}.technologies-section span.label{display:inline-block;width:5rem!important}.work-experience{margin-bottom:.5rem;margin-top:.5rem}}
