@font-face{font-family:GeistSans;src:url(/_next/static/media/028c0d39d2e8f589-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:85.83%;descent-override:20.53%;line-gap-override:9.33%;size-adjust:107.19%}.__className_fb8f2c{font-family:GeistSans,GeistSans Fallback}.__variable_fb8f2c{--font-geist-sans:"GeistSans","GeistSans Fallback"}

/*! tailwindcss v4.0.12 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(.637 .237 25.331);--spacing:.25rem;--container-sm:24rem;--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-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--radius-sm:.25rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings);--color-bg:#131316;--color-bg-elevated:#1a1a1f;--color-bg-card:#212127;--color-border:#3a3a42;--color-border-subtle:#2a2a32;--color-text-primary:#e5dfdc;--color-text-secondary:#b2b2bd;--color-text-muted:#7a7a85;--color-accent:#e3b505;--color-accent-muted:#3d3209;--color-accent-subtle:#e3b5051a;--color-spotify:#1db954}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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}body{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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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;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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0\.5{top:calc(var(--spacing)*.5)}.right-1{right:calc(var(--spacing)*1)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-8{bottom:calc(var(--spacing)*8)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-8{margin-top:calc(var(--spacing)*8)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-7{height:calc(var(--spacing)*7)}.h-10{height:calc(var(--spacing)*10)}.h-14{height:calc(var(--spacing)*14)}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-7{width:calc(var(--spacing)*7)}.w-10{width:calc(var(--spacing)*10)}.w-14{width:calc(var(--spacing)*14)}.w-full{width:100%}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-bounce{animation:var(--animate-bounce)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing)*0)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-visible{overflow:visible}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-\[--color-accent\]{border-color:--color-accent}.border-\[--color-border-subtle\]{border-color:--color-border-subtle}.border-\[--color-border\]{border-color:--color-border}.bg-\[\#829769\]{background-color:#829769}.bg-\[\#aaa23a\]{background-color:#aaa23a}.bg-\[\#b58863\]{background-color:#b58863}.bg-\[\#cdd26a\]{background-color:#cdd26a}.bg-\[\#f0d9b5\]{background-color:#f0d9b5}.bg-\[--color-bg-card\]{background-color:--color-bg-card}.bg-\[--color-bg-elevated\]{background-color:--color-bg-elevated}.bg-red-500{background-color:var(--color-red-500)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-10{padding-top:calc(var(--spacing)*10)}.pr-10{padding-right:calc(var(--spacing)*10)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-\[\#b58863\]{color:#b58863}.text-\[\#f0d9b5\]{color:#f0d9b5}.text-\[--color-accent\]{color:--color-accent}.text-\[--color-spotify\]{color:--color-spotify}.text-\[--color-text-muted\]{color:--color-text-muted}.text-\[--color-text-primary\]{color:--color-text-primary}.text-\[--color-text-secondary\]{color:--color-text-secondary}.uppercase{text-transform:uppercase}.opacity-80{opacity:.8}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.ring-2,.shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}.ring-\[6px\]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(6px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[\#829769\]{--tw-ring-color:#829769}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.delay-5{transition-delay:5ms}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:text-\[--color-accent\]:is(:where(.group):hover *){color:--color-accent}.group-hover\:text-\[--color-spotify\]:is(:where(.group):hover *){color:--color-spotify}.hover\:border-\[--color-border\]:hover{border-color:--color-border}.hover\:border-\[--color-spotify\]:hover{border-color:--color-spotify}.hover\:text-\[--color-accent\]:hover{color:--color-accent}.hover\:text-\[--color-text-secondary\]:hover{color:--color-text-secondary}.hover\:underline:hover{text-decoration-line:underline}}@media (width>=40rem){.sm\:h-8{height:calc(var(--spacing)*8)}.sm\:w-8{width:calc(var(--spacing)*8)}}@media (width>=64rem){.lg\:mt-0{margin-top:calc(var(--spacing)*0)}.lg\:w-96{width:calc(var(--spacing)*96)}.lg\:w-auto{width:auto}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:gap-12{gap:calc(var(--spacing)*12)}}}:root{--font-heading:var(--font-geist-sans),system-ui,sans-serif;--font-body:var(--font-geist-sans),system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Monaco,monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}html::-webkit-scrollbar{display:none}body{overscroll-behavior-y:contain;background-color:var(--color-bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}body,h1,h2,h3,h4,h5,h6{color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:600;line-height:1.2}h1{font-size:2.986rem;font-weight:700}h2{font-size:2.488rem}h2,h3{font-weight:600}h3{font-size:2.074rem}h4{font-size:1.728rem}h4,h5{font-weight:600}h5{font-size:1.44rem}h6{font-size:1.2rem;font-weight:600}p{color:var(--color-text-secondary);font-size:1rem}.text-small,small{font-size:.833rem}.text-xs{font-size:.694rem}a{color:var(--color-text-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}.container{width:100%;max-width:1200px;padding:0 var(--space-lg);margin:0 auto}@media (width>=768px){.container{padding:0 var(--space-xl)}}.section{padding:var(--space-3xl)0}@media (width>=768px){.section{padding:var(--space-4xl)0}}.section-header{margin-bottom:var(--space-2xl)}.section-title{text-transform:uppercase;letter-spacing:.15em;color:var(--color-accent);margin-bottom:var(--space-sm);font-size:clamp(.75rem,2vw,.875rem);font-weight:500}.hero{min-height:100svh;padding:var(--space-2xl)0;flex-direction:column;justify-content:center;display:flex;position:relative}.hero-content{max-width:720px}.hero-tagline{color:var(--color-accent);margin-bottom:var(--space-md);letter-spacing:.05em;font-size:clamp(.875rem,2vw,1rem);font-weight:500}.hero-name{margin-bottom:var(--space-lg);letter-spacing:-.03em;font-size:clamp(3rem,12vw,6rem);font-weight:700;line-height:.95}.hero-description{color:var(--color-text-secondary);margin-bottom:var(--space-2xl);max-width:540px;font-size:clamp(1.125rem,3vw,1.5rem);line-height:1.5}.slu-trigger{color:var(--color-accent);cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--color-accent-muted);text-decoration-color:var(--color-accent-muted);transition:all var(--transition-fast);font-weight:500;position:relative}.slu-trigger:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.education-tooltip{width:280px;padding:var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);gap:var(--space-sm);z-index:100;border-radius:12px;flex-direction:column;animation:tooltipFadeIn .2s ease-out;display:flex;position:absolute;top:50%;left:calc(100% + 16px);transform:translateY(-50%)}.education-tooltip:before{border:8px solid #0000;border-right:8px solid var(--color-border);left:-8px}.education-tooltip:after,.education-tooltip:before{content:"";position:absolute;top:50%;transform:translateY(-50%)}.education-tooltip:after{border:6px solid #0000;border-right:6px solid var(--color-bg-card);left:-6px}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-50%)translate(-8px)}to{opacity:1;transform:translateY(-50%)translate(0)}}.education-tooltip-header{flex-direction:column;gap:2px;display:flex}.education-tooltip-school{color:var(--color-text-primary);font-size:1rem;font-weight:600}.education-tooltip-meta{color:var(--color-text-muted);font-size:.75rem}.education-tooltip-degree{color:var(--color-accent);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border-subtle);font-size:.875rem;font-weight:500}.education-tooltip-courses{padding-top:var(--space-xs);flex-wrap:wrap;gap:6px;display:flex}.education-tooltip-tag{background-color:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);border-radius:4px;padding:4px 8px;font-size:.6875rem;font-weight:500;display:inline-block}@media (width<=768px){.education-tooltip{width:260px;top:calc(100% + 12px);left:50%;transform:translate(-50%)}.education-tooltip:before{border:8px solid #0000;border-bottom:8px solid var(--color-border);top:-8px;left:50%;transform:translate(-50%)}.education-tooltip:after{border:6px solid #0000;border-bottom:6px solid var(--color-bg-card);top:-6px;left:50%;transform:translate(-50%)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md)var(--space-xl);font-family:var(--font-body);transition:all var(--transition-base);cursor:pointer;border:none;border-radius:8px;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background-color:var(--color-text-primary);color:var(--color-bg)}.btn-primary:hover{background-color:var(--color-accent);color:var(--color-bg)}.btn-secondary{color:var(--color-text-primary);border:1px solid var(--color-border);background-color:#0000}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-group{gap:var(--space-md);flex-wrap:wrap;display:flex}.social-icon{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-text-secondary);transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex}.social-icon:hover{border-color:var(--color-accent);color:var(--color-accent)}.card{background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);padding:var(--space-xl);transition:all var(--transition-slow);border-radius:12px}.card:hover{border-color:var(--color-text-muted)}.card-featured{border-color:var(--color-border)}.card-featured:hover{border-color:var(--color-text-muted)}.projects-grid{gap:var(--space-lg);grid-template-columns:1fr;display:grid}@media (width>=640px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.projects-grid{gap:var(--space-xl)}}.project-card{background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);padding:var(--space-xl);gap:var(--space-md);transition:border-color var(--transition-base);border-radius:12px;flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:before{transition:opacity var(--transition-slow);display:none}.project-card:hover{border-color:var(--color-text-muted)}.project-badge{align-items:center;gap:var(--space-xs);padding:var(--space-xs)var(--space-sm);background:var(--color-accent);color:var(--color-bg);text-transform:uppercase;letter-spacing:.1em;border-radius:4px;width:fit-content;font-size:.6875rem;font-weight:700;display:inline-flex}.project-title{color:var(--color-text-primary);margin:0;font-size:1.25rem;font-weight:600}.project-company{color:var(--color-accent);font-size:.875rem;font-weight:500}.project-description{color:var(--color-text-secondary);flex:1;font-size:.9375rem;line-height:1.6}.project-tags{gap:var(--space-sm);flex-wrap:wrap;display:flex}.project-links{gap:var(--space-md);margin-top:var(--space-sm);display:flex}.project-link{color:var(--color-text-secondary);align-items:center;gap:var(--space-xs);transition:color var(--transition-fast);font-size:.875rem;display:inline-flex}.project-link:hover{color:var(--color-accent)}.projects-expand-container{margin-top:var(--space-2xl);margin-bottom:var(--space-md);justify-content:center;display:flex;position:relative}.projects-expand-container:before{content:"";background:var(--color-border-subtle);z-index:0;height:1px;position:absolute;top:50%;left:0;right:0}.projects-expand-btn{z-index:1;align-items:center;gap:var(--space-sm);padding:var(--space-md)var(--space-xl);background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;border-radius:100px;font-size:.875rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.projects-expand-btn:hover{border-color:var(--color-border);color:var(--color-text-primary)}.projects-expand-icon{transition:transform .4s cubic-bezier(.4,0,.2,1)}.projects-expand-icon.rotated{transform:rotate(180deg)}.projects-expandable{padding-top:var(--space-xl);display:none}.projects-expandable.expanded{display:block}.projects-expandable .project-card{opacity:0;will-change:opacity,transform;transform:translateY(12px)}.projects-expandable.expanded .project-card{animation:projectReveal .25s ease-out forwards}@keyframes projectReveal{to{opacity:1;transform:translateY(0)}}.project-card-clickable{cursor:pointer;position:relative}.project-card-clickable:hover{border-color:var(--color-accent);transform:translateY(-2px)}.project-card-hint{margin-top:var(--space-sm);opacity:0;transition:opacity var(--transition-base)}.project-card-clickable:hover .project-card-hint{opacity:1}.case-study-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;padding:var(--space-lg);background-color:#000000d9;justify-content:center;align-items:center;animation:fadeIn .2s ease-out;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.case-study-modal{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;width:100%;max-width:900px;max-height:90vh;animation:slideUp .3s ease-out;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.case-study-header{padding:var(--space-xl);border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:flex-start;gap:var(--space-lg);flex-shrink:0;display:flex}.case-study-header-content{flex:1}.case-study-title{margin:var(--space-sm)0 var(--space-xs)0;color:var(--color-text-primary);font-size:2rem}.case-study-subtitle{color:var(--color-text-secondary);margin:0;font-size:1rem;line-height:1.6}.case-study-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-xs);transition:all var(--transition-fast);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.case-study-close:hover{background-color:var(--color-bg-elevated);color:var(--color-text-primary)}.case-study-content{padding:var(--space-xl);flex:1;overflow-y:auto}.case-study-section{margin-bottom:var(--space-2xl)}.case-study-section:last-child{margin-bottom:0}.case-study-section-title{color:var(--color-text-primary);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border-subtle);font-size:1.25rem;font-weight:600}.case-study-text{color:var(--color-text-secondary);margin:0;font-size:1rem;line-height:1.7}.case-study-list{gap:var(--space-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.case-study-list-item{color:var(--color-text-secondary);padding-left:var(--space-xl);font-size:1rem;line-height:1.7;position:relative}.case-study-list-item:before{content:"→";color:var(--color-accent);font-weight:600;position:absolute;left:0}.case-study-tags{gap:var(--space-sm);flex-wrap:wrap;display:flex}.case-study-details{gap:var(--space-sm);flex-direction:column;display:flex}.case-study-detail-item{gap:var(--space-md);display:flex}.case-study-detail-label{color:var(--color-text-primary);min-width:80px;font-weight:600}.case-study-detail-value{color:var(--color-text-secondary)}.case-study-code-block{border:1px solid var(--color-border-subtle);padding:var(--space-lg);color:var(--color-text-secondary);margin:var(--space-md)0;white-space:pre;border-radius:8px;line-height:1.6;overflow-x:auto}.case-study-code-block,.case-study-inline-code{background-color:var(--color-bg-elevated);font-family:var(--font-mono);font-size:.875rem}.case-study-inline-code{border:1px solid var(--color-border-subtle);color:var(--color-accent);border-radius:4px;padding:2px 6px}.case-study-table{border-collapse:collapse;width:100%;margin:var(--space-md)0;font-size:.9375rem}.case-study-table-header{padding:var(--space-sm)var(--space-md);text-align:left;color:var(--color-text-primary);border-bottom:2px solid var(--color-border-subtle);background-color:var(--color-bg-elevated);font-weight:600}.case-study-table-cell{padding:var(--space-sm)var(--space-md);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-secondary)}.case-study-table tbody tr:hover{background-color:var(--color-bg-elevated)}.case-study-footer{padding:var(--space-xl);border-top:1px solid var(--color-border-subtle);flex-shrink:0;justify-content:flex-end;display:flex}.case-study-links{gap:var(--space-md);flex-wrap:wrap;display:flex}.case-study-link{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);background-color:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);color:var(--color-text-primary);transition:all var(--transition-fast);border-radius:6px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.case-study-link:hover{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg);transform:translateY(-1px)}@media (width<=768px){.case-study-overlay{padding:var(--space-md)}.case-study-modal{border-radius:12px;max-height:95vh}.case-study-header{padding:var(--space-lg)}.case-study-title{font-size:1.5rem}.case-study-content{padding:var(--space-lg)}.case-study-section{margin-bottom:var(--space-xl)}.case-study-footer{padding:var(--space-lg)}.case-study-links{flex-direction:column;width:100%}.case-study-link{justify-content:center;width:100%}}.tag{padding:var(--space-xs)var(--space-sm);background-color:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);transition:all var(--transition-fast);border-radius:4px;font-size:.75rem;font-weight:500;display:inline-block}.tag:hover{background-color:var(--color-accent-subtle);border-color:var(--color-accent-muted);color:var(--color-accent)}.timeline{gap:var(--space-xl);flex-direction:column;display:flex}.timeline-item{gap:var(--space-md);padding:var(--space-lg);background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);transition:all var(--transition-base);border-radius:12px;grid-template-columns:1fr;display:grid}@media (width>=768px){.timeline-item{gap:var(--space-xl);padding:var(--space-xl);grid-template-columns:140px 1fr}}.timeline-item:hover{border-color:var(--color-border);background-color:var(--color-bg-elevated)}.timeline-date{color:var(--color-text-muted);font-size:.8125rem;font-weight:500}.timeline-content{gap:var(--space-xs);flex-direction:column;display:flex}.timeline-company{color:var(--color-text-primary);align-items:center;gap:var(--space-sm);font-size:1.125rem;font-weight:600;display:flex}.timeline-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.timeline-role{color:var(--color-accent);font-size:.9375rem;font-weight:500}.timeline-location{color:var(--color-text-muted);font-size:.8125rem}.timeline-summary{color:var(--color-text-secondary);margin-top:var(--space-sm);font-size:.9375rem;line-height:1.6}.education-card{padding:var(--space-xl);background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);border-radius:12px}.education-school{color:var(--color-text-primary);margin-bottom:var(--space-xs);font-size:1.25rem;font-weight:600}.education-degree{color:var(--color-accent);margin-bottom:var(--space-xs);font-size:1rem}.education-meta{color:var(--color-text-muted);margin-bottom:var(--space-lg);font-size:.875rem}.education-courses{gap:var(--space-sm);flex-wrap:wrap;display:flex}.bento-main{grid-template:"box-1"220px"box-2"160px"box-3"260px"box-4"280px"box-5"160px"box-6"240px/1fr;gap:1rem;display:grid}.bento-box{border:1px solid var(--color-border-subtle);border-radius:16px;flex-direction:column;justify-content:flex-end;padding:1.5rem;transition:border-color .2s;display:flex;overflow:hidden}.bento-box:hover{border-color:var(--color-border)}.box-1{grid-area:box-1}.box-2{grid-area:box-2}.box-3{grid-area:box-3}.box-4{grid-area:box-4}.box-5{grid-area:box-5}.box-6{grid-area:box-6}.box-1{color:#131316;background:#e3b505}.box-2{background:var(--color-bg-card);color:var(--color-text-primary);text-align:center;justify-content:center;align-items:center}.box-3{color:#1c1917;background:#f5f5f4}.box-4{color:var(--color-text-primary);background:#292524}.box-5{color:#e3b505;text-align:center;background:#3d3209;justify-content:center;align-items:center}.box-6{background:var(--color-bg-elevated);color:var(--color-text-primary)}@media (width>=640px){.bento-main{grid-template-rows:240px 160px 180px 180px;grid-template-columns:repeat(2,1fr);grid-template-areas:"box-1 box-1""box-2 box-5""box-3 box-6""box-4 box-6";gap:1rem}}@media (width>=1024px){.bento-main{grid-template-rows:180px 140px 180px;grid-template-columns:repeat(4,1fr);grid-template-areas:"box-1 box-1 box-3 box-6""box-1 box-1 box-3 box-6""box-2 box-4 box-4 box-5";gap:1.25rem}.bento-box{padding:2rem}.box-2,.box-5{justify-content:center}}@media (width>=1280px){.bento-main{grid-template:"box-1 box-3 box-2 box-6"160px"box-1 box-3 box-5 box-6"160px"box-4 box-4 box-4 box-6"160px/2.2fr 1.8fr 1fr 1.2fr;gap:1.25rem}}.bento-eyebrow{opacity:.75}.bento-eyebrow,.bento-eyebrow-dark{text-transform:uppercase;letter-spacing:.14em;margin-bottom:.5rem;font-size:.7rem;font-weight:600}.bento-eyebrow-dark{color:#78716c}.bento-heading{color:#fff}.bento-heading,.bento-heading-dark{letter-spacing:-.03em;margin-bottom:1rem;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:700;line-height:1}.bento-heading-dark{color:#1c1917}.bento-stat-large{letter-spacing:-.04em;font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1;display:block}.bento-stat-label{opacity:.8;margin-top:.5rem;font-size:.95rem;font-weight:500;line-height:1.3;display:block}.bento-chips{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.bento-chips span{white-space:nowrap;background:#ffffff26;border-radius:6px;padding:6px 12px;font-size:.833rem;font-weight:500;transition:background .15s}.bento-chips span:hover{background:#ffffff40}.bento-chips-dark span{color:#44403c;background:#1c191714}.bento-chips-dark span:hover{background:#1c191726}.about-content{max-width:600px}.about-text{color:var(--color-text-secondary);margin-bottom:var(--space-xl);font-size:1.125rem;line-height:1.7}.chess-link,.tennis-link{font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.35em;padding:0;transition:all .2s;display:inline-flex;position:relative}.tennis-link{color:#4ade80}.chess-link{color:#d4a574}.tennis-link:after{content:"🎾";font-size:.85em;transition:all .2s}.chess-link:after{content:"♟️";font-size:.9em;transition:all .2s}.tennis-link:hover{color:#86efac}.chess-link:hover{color:#e8c9a4}.chess-link:hover:after,.tennis-link:hover:after{opacity:1;transform:scale(1.15)}.mini-chess-container{padding:var(--space-md);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;width:fit-content}.game-btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 24px;font-size:.875rem;font-weight:500;transition:all .15s}.game-btn-primary{background:var(--color-text-primary);color:var(--color-bg);border-color:var(--color-text-primary)}.game-btn-primary:hover{color:var(--color-text-primary);background:0 0}.game-btn-primary:active{transform:scale(.98)}.game-btn-small{cursor:pointer;color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0;border-radius:6px;padding:4px 10px;font-size:clamp(.625rem,1.5vw,.75rem);font-weight:500;transition:all .15s}.game-btn-small:hover{color:var(--color-text-primary);border-color:var(--color-text-muted)}.chess-color-btn{cursor:pointer;border:1px solid;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:16px 20px;transition:all .15s;display:flex}.chess-color-btn-white{border-color:var(--color-border);background:#f8f8f8}.chess-color-btn-white:hover{border-color:var(--color-text-muted);background:#fff}.chess-color-btn-white .chess-color-btn-label{color:#374151}.chess-color-btn-black{background:#1f2937;border-color:#374151}.chess-color-btn-black:hover{border-color:var(--color-text-muted);background:#111827}.chess-color-btn-black .chess-color-btn-label{color:#d1d5db}.chess-color-btn-label{font-size:clamp(.625rem,1.5vw,.75rem);font-weight:500}.chess-color-btn:active{transform:scale(.98)}.interests{gap:var(--space-sm);flex-wrap:wrap;display:flex}.interest-link{align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-md);background-color:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);transition:all var(--transition-base);border-radius:100px;font-size:.875rem;display:inline-flex}.interest-link:hover{border-color:var(--color-border);color:var(--color-text-primary)}.interactive-cards{gap:var(--space-md);margin-top:var(--space-md);flex-direction:column;display:flex}@media (width>=480px){.interactive-cards{flex-flow:wrap}}.interactive-card{align-items:center;gap:var(--space-md);padding:var(--space-md)var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);cursor:pointer;text-align:left;border-radius:12px;min-width:240px;transition:border-color .2s,opacity .2s;display:flex;position:relative;overflow:hidden}.interactive-card:before{content:"";opacity:0;transition:opacity .25s;position:absolute;inset:0}.interactive-card:hover{border-color:var(--color-border);transform:none}.interactive-card:hover:before{opacity:.5}.interactive-card.active{transform:translateY(-2px)}.music-card{border-color:#1db9544d}.music-card:before{background:#1db95405}.music-card:hover{border-color:#1db95466}.music-card.active{border-color:var(--color-spotify)}.music-card .interactive-card-cta{color:var(--color-spotify)}.quotes-card{border-color:#e3b50533}.quotes-card:before{background:#e3b50505}.quotes-card:hover{border-color:#e3b5054d}.quotes-card.active{border-color:var(--color-accent)}.quotes-card .interactive-card-cta{color:var(--color-accent)}.interactive-card-icon{filter:drop-shadow(0 2px 4px #0003);flex-shrink:0;font-size:1.75rem}.interactive-card-content{flex-direction:column;gap:2px;display:flex}.interactive-card-label{color:var(--color-text-primary);letter-spacing:-.01em;font-size:.8125rem;font-weight:600}.interactive-card-cta{font-size:.75rem;font-weight:500;transition:all .2s}.interactive-card:hover .interactive-card-cta{opacity:.9}.close-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;z-index:20;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;top:0;right:0}.close-btn-icon{font-size:13px;transition:transform .2s}.close-btn-tooltip{display:none}.close-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.close-btn:hover .close-btn-icon{transform:rotate(45deg)}.close-btn:active{transform:scale(.95)}.close-btn-purple:hover{border-color:var(--color-accent);background:var(--color-accent-subtle);color:var(--color-accent)}.close-btn-spotify:hover{border-color:var(--color-spotify);color:var(--color-spotify);background:#1db95426}.close-btn-green:hover{color:#4ade80;background:#4ade8026;border-color:#4ade80}.quote-easter-egg-reveal{margin-top:var(--space-lg);padding:var(--space-md)var(--space-lg);background:var(--color-bg-card);border-left:2px solid var(--color-accent);border-radius:0 8px 8px 0;animation:quoteSlideIn .3s ease-out}@keyframes quoteSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.quote-ee-text{color:var(--color-text-secondary);margin-bottom:var(--space-sm);font-size:.9rem;font-style:italic;line-height:1.6}.quote-ee-author{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.music-section{padding:var(--space-xl);background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);border-radius:12px}.spotify-badge{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);background-color:var(--color-bg-elevated);color:var(--color-text-secondary);border-radius:100px;font-size:.8125rem;display:inline-flex}.spotify-icon{color:var(--color-spotify)}.contact-section{padding:var(--space-4xl)0;text-align:center}.contact-title{margin-bottom:var(--space-md);font-size:clamp(2rem,6vw,3rem)}.contact-subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-2xl);max-width:480px;margin-left:auto;margin-right:auto;font-size:1.125rem}.contact-links{justify-content:center;gap:var(--space-md);margin-bottom:var(--space-3xl);flex-wrap:wrap;display:flex}.contact-link{align-items:center;gap:var(--space-sm);padding:var(--space-md)var(--space-lg);background-color:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);transition:all var(--transition-base);cursor:pointer;border-radius:8px;font-size:.9375rem;text-decoration:none;display:inline-flex}.contact-link:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-2px)}.footer{padding:var(--space-xl)0;border-top:1px solid var(--color-border-subtle)}.footer-content{align-items:center;gap:var(--space-md);text-align:center;flex-direction:column;display:flex}.footer-text{color:var(--color-text-muted);font-size:.8125rem}.footer-link{color:var(--color-text-secondary)}.footer-link:hover{color:var(--color-accent)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:fadeIn .6s forwards}.animate-fade-in-up{animation:fadeInUp .6s forwards}.animate-slide-in{animation:slideIn .4s forwards}.delay-1{opacity:0;animation-delay:.1s}.delay-2{opacity:0;animation-delay:.2s}.delay-3{opacity:0;animation-delay:.3s}.delay-4{opacity:0;animation-delay:.4s}.delay-5{opacity:0;animation-delay:.5s}.delay-6{opacity:0;animation-delay:.6s}.bento-grid{gap:var(--space-lg);grid-template-columns:1fr;display:grid}@media (width>=768px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.bento-grid{grid-template-columns:repeat(3,1fr)}}.bento-item{background-color:var(--color-bg-card);border:1px solid var(--color-border-subtle);padding:var(--space-xl);transition:all var(--transition-base);border-radius:12px}.bento-item:hover{border-color:var(--color-border)}.bento-item-wide{grid-column:1/-1}@media (width>=768px){.bento-item-wide{grid-column:span 2}}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.divider{background-color:var(--color-border-subtle);height:1px;margin:var(--space-3xl)0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}