*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--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;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--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;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;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{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}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}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.nav-header{position:fixed;top:0;width:100%;background:var(--nav-bg-color);box-shadow:0 2px 4px var(--nav-shadow-color);z-index:999;transition:background .3s,box-shadow .3s}.theme-switch{position:relative;display:inline-block;width:45px;height:24px;cursor:pointer}.theme-switch input{opacity:0;width:0;height:0}.slider{position:absolute;inset:0;background-color:var(--highlight-color);border-radius:34px;transition:background-color .4s}.slider:before{content:"";position:absolute;width:16px;height:16px;left:4px;bottom:4px;background-color:#fff;border-radius:50%;transition:transform .4s}input:checked+.slider{background-color:#ccc}input:checked+.slider:before{transform:translateX(20px)}.slider .icon{position:absolute;font-size:14px;color:#fff;top:50%;transform:translateY(-50%);pointer-events:none}.slider .icon-light{left:6px}.slider .icon-dark{right:6px}.scroll-cta{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background-color:var(--highlight-color);color:#fff;text-decoration:none;transition:background-color .3s,transform .3s;margin-top:30px}.scroll-cta svg{width:30px;height:30px;stroke:#fff}.scroll-cta:hover{background-color:#033;transform:translateY(8px)}.dark .scroll-cta{background-color:#86c9f0}.dark .scroll-cta:hover{background-color:#255}.hero-img{width:350px;height:350px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:3px solid rgba(74,95,115,.4);animation:borderDarkMuted 15s ease-in-out infinite;margin-bottom:1rem}@media (max-width:768px){.hero-img{width:250px;height:250px}}.repo-tile{background-color:#ffffff;border-radius:8px;padding:15px;box-shadow:0 2px 5px rgba(0,0,0,.8);transition:transform .2s ease;cursor:pointer}.repo-tile:hover{transform:translateY(-3px)}.dark .repo-tile{background-color:rgba(30,42,56,.45);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);color:var(--text-color)}.tile-link{display:block;color:inherit;text-decoration:none;font-size:1.2rem}.tile-link:hover{opacity:.9}.job-card{background:#ffffff;border-radius:8px;box-shadow:0 4px 10px rgba(0,0,0,.8);text-align:left;padding:1.5rem;transition:background .3s,color .3s}.dark .job-card{background:rgba(30,42,56,.45);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);color:var(--text-color)}.chat-container{position:fixed;bottom:20px;right:20px;width:350px;max-height:600px;background-color:var(--section-bg);box-shadow:0 4px 10px rgba(0,0,0,.8);border-radius:8px;overflow:hidden;display:none;flex-direction:column;z-index:9999;transition:all .3s ease}.chat-container.open{display:flex}.chat-header{background-color:var(--nav-bg-color);padding:20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--nav-shadow-color)}.chat-header .chat-title{display:flex;align-items:center;gap:8px}.chat-header .chat-title img{width:30px;height:30px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.chat-header .chat-title span{color:var(--heading-color);font-weight:600}.chat-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-color)}.chat-body{padding:10px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px}.chat-message{max-width:80%;border-radius:6px;padding:8px 10px;font-size:.9rem;line-height:1.6}.bot-message{background-color:#eee;color:#333;align-self:flex-start}.user-message{background-color:var(--highlight-color);color:#fff;align-self:flex-end}.chat-prompts{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.prompt-btn{background-color:var(--prompt-btn-bg);color:#fff;border:none;border-radius:20px;padding:6px 12px;font-size:1rem;cursor:pointer;transition:opacity .3s}.prompt-btn:hover{opacity:.8}@media (max-width:768px){.chat-container{width:90%;right:5%;bottom:10px}}.visible{visibility:visible}.absolute{position:absolute}.right-0{right:0}.top-\[60px\]{top:60px}.col-span-full{grid-column:1/-1}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\[3px\]{height:3px}.min-h-\[90vh\]{min-height:90vh}.w-6{width:1.5rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[1200px\]{max-width:1200px}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\2c minmax\(300px\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-12{gap:3rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\[5px\]{gap:5px}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.border-none{border-style:none}.bg-transparent{background-color:transparent}.p-0{padding:0}.px-12{padding-left:3rem;padding-right:3rem}.px-4{padding-left:1rem;padding-right:1rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-32{padding-top:8rem;padding-bottom:8rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.text-center{text-align:center}.font-acorn{font-family:Acorn,sans-serif}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.95rem\]{font-size:.95rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.3rem\]{font-size:1.3rem}.text-\[2rem\]{font-size:2rem}.text-\[5rem\]{font-size:5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-\[1\.2\]{line-height:1.2}.leading-\[1\.4\]{line-height:1.4}.leading-relaxed{line-height:1.625}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}@property --a1x{syntax:"<percentage>";inherits:false;initial-value:15%}@property --a1y{syntax:"<percentage>";inherits:false;initial-value:20%}@property --a2x{syntax:"<percentage>";inherits:false;initial-value:85%}@property --a2y{syntax:"<percentage>";inherits:false;initial-value:15%}@property --a3x{syntax:"<percentage>";inherits:false;initial-value:50%}@property --a3y{syntax:"<percentage>";inherits:false;initial-value:80%}@property --a1rx{syntax:"<percentage>";inherits:false;initial-value:50%}@property --a1ry{syntax:"<percentage>";inherits:false;initial-value:40%}@property --a2rx{syntax:"<percentage>";inherits:false;initial-value:45%}@property --a2ry{syntax:"<percentage>";inherits:false;initial-value:36%}@property --a3rx{syntax:"<percentage>";inherits:false;initial-value:48%}@property --a3ry{syntax:"<percentage>";inherits:false;initial-value:38%}@font-face{font-family:Acorn;src:url(/fonts/acorn.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GT;src:url(/fonts/gt.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--highlight-color:#2e864e;--nav-bg-color:rgba(255,255,255,0.8);--nav-shadow-color:rgba(0,0,0,0.1);--section-bg:#ffffff;--text-color:#2b2b2b;--heading-color:#2b2b2b;--prompt-btn-bg:#2e864e}:root.dark{--highlight-color:#2c3e50;--nav-bg-color:rgba(30,30,30,0.9);--nav-shadow-color:rgba(0,0,0,0.6);--section-bg:#1e1e1e;--text-color:#f0f0f0;--heading-color:#ffffff;--prompt-btn-bg:#2c3e50}html{scroll-behavior:smooth}*{box-sizing:border-box;margin:0;padding:0}body{font-family:GT,sans-serif;font-size:18px;line-height:1.6;color:var(--text-color);background:linear-gradient(-45deg,#d0e1f9,#d6e9c6 25%,#c9f7f7 50%,#f9f9c1 75%,#d0e1f9);background-size:250% 250%;animation:dramaticShift 15s ease-in-out infinite;transition:color .3s}.dark body{background:radial-gradient(ellipse var(--a1rx) var(--a1ry) at var(--a1x) var(--a1y),#0f3a22 0,transparent 55%),radial-gradient(ellipse var(--a2rx) var(--a2ry) at var(--a2x) var(--a2y),#2a0a10 0,transparent 55%),radial-gradient(ellipse var(--a3rx) var(--a3ry) at var(--a3x) var(--a3y),#081840 0,transparent 55%),#04080d;animation:darkAurora 60s ease-in-out infinite}section{content-visibility:auto;contain-intrinsic-size:1px 900px}.fade-in{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}.fade-in.visible{opacity:1;transform:translateY(0)}@keyframes dramaticShift{0%{background-position:0 10%;background-size:120% 120%}25%{background-position:100% 50%;background-size:200% 200%}50%{background-position:0 50%;background-size:250% 250%}75%{background-position:100% 50%;background-size:200% 200%}to{background-position:0 50%;background-size:120% 120%}}@keyframes darkAurora{0%{--a1x:15%;--a1y:20%;--a2x:85%;--a2y:15%;--a3x:50%;--a3y:80%;--a1rx:50%;--a1ry:40%;--a2rx:45%;--a2ry:36%;--a3rx:48%;--a3ry:38%}25%{--a1x:80%;--a1y:15%;--a2x:15%;--a2y:75%;--a3x:85%;--a3y:30%;--a1rx:95%;--a1ry:76%;--a2rx:48%;--a2ry:38%;--a3rx:88%;--a3ry:70%}50%{--a1x:40%;--a1y:85%;--a2x:70%;--a2y:20%;--a3x:15%;--a3y:55%;--a1rx:52%;--a1ry:42%;--a2rx:88%;--a2ry:70%;--a3rx:50%;--a3ry:40%}75%{--a1x:85%;--a1y:60%;--a2x:25%;--a2y:10%;--a3x:65%;--a3y:85%;--a1rx:82%;--a1ry:65%;--a2rx:46%;--a2ry:37%;--a3rx:96%;--a3ry:76%}to{--a1x:15%;--a1y:20%;--a2x:85%;--a2y:15%;--a3x:50%;--a3y:80%;--a1rx:50%;--a1ry:40%;--a2rx:45%;--a2ry:36%;--a3rx:48%;--a3ry:38%}}@keyframes borderDarkMuted{0%{border-color:rgba(74,95,115,.2)}25%{border-color:rgba(80,115,88,.2)}50%{border-color:rgba(59,98,98,.2)}75%{border-color:rgba(70,95,63,.2)}to{border-color:rgba(74,95,115,.2)}}.dark a{color:#86c9f0}.dark a:active,.dark a:focus,.dark a:hover{color:#b0dcff}.dark a:visited{color:#86c9f0}.nav-link{color:var(--nav-text-color,inherit);text-decoration:none;font-weight:500;transition:color .3s}.nav-link:hover{opacity:.7}.logo-link{text-decoration:none;color:var(--heading-color);transition:color .3s,transform .3s}.logo-link:hover{transform:scale(1.05)}.contact-link{color:var(--highlight-color);text-decoration:none;font-weight:500;transition:color .3s}.contact-link:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fade-in{opacity:1;transform:none;transition:none}}@media not all and (min-width:768px){.max-md\:text-\[1\.5rem\]{font-size:1.5rem}.max-md\:text-\[2\.2rem\]{font-size:2.2rem}}@media (min-width:768px){.md\:static{position:static}.md\:flex{display:flex}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:gap-6{gap:1.5rem}}