@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);:root,[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f8f9fa;--text-primary:#1a1a1a;--text-subtle:#777;--border-color:#e5e5e5;--accent:#fff;--accent-hover:#f0f0f0;--max-width:1200px;--max-width-editorial:760px;--page-padding:2rem;--col-gap:3rem;--space-section:5rem;--space-block:1.5rem;--space-paragraph:1rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:100px}[data-theme=dark]{--bg-primary:#0a0a0a;--bg-secondary:#151515;--text-primary:#ededed;--text-subtle:#999;--border-color:#2a2a2a;--accent:#fff;--accent-hover:#e0e0e0}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg-primary:#0a0a0a;--bg-secondary:#151515;--text-primary:#fff;--text-subtle:#606060;--border-color:#2a2a2a;--accent:#fff;--accent-hover:#e0e0e0}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--bg-primary);color:#1a1a1a;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-weight:300;line-height:1.4;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.15}h1{font-size:clamp(1.75rem,4vw,2.875rem);font-weight:600;letter-spacing:-.03em}h2{font-size:clamp(1.25rem,2.5vw,2rem);letter-spacing:-.02em}h3{font-size:clamp(1.125rem,1.75vw,1.5rem);letter-spacing:-.01em}p{color:#1a1a1a;color:var(--text-primary);font-size:1rem;line-height:1.4}b,strong{font-weight:600}a{color:#fff;color:var(--accent);text-decoration:none;transition:color .2s ease}a:hover{color:#f0f0f0;color:var(--accent-hover)}.page-container{margin:0 auto;max-width:1200px;max-width:var(--max-width);padding:0 2rem;padding:0 var(--page-padding);width:100%}.two-col-layout{grid-gap:3rem;grid-gap:var(--col-gap);align-items:start;display:grid;gap:3rem;gap:var(--col-gap);grid-template-columns:1fr 1fr}.one-col-layout{display:flex;flex-direction:column}main>div{animation:fadeUp .4s ease both;padding-bottom:6rem;padding-top:2rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.scroll-fade{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}.scroll-fade.in-view{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){main>div{animation:none}.scroll-fade{opacity:1;transform:none;transition:none}}@media (max-width:768px){:root{--page-padding:1.5rem;--col-gap:2rem;--space-section:2rem}.two-col-layout{grid-template-columns:1fr}.page-header{margin-bottom:3rem}}@media (max-width:480px){:root{--page-padding:1rem}}.case-study-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tag{background-color:#00000014;border-radius:4px;border-radius:var(--radius-sm);color:#777;color:var(--text-subtle);font-size:.875rem;font-weight:500;padding:.5rem 1rem}[data-theme=dark] .tag{background-color:#ffffff1a}.arrow{display:inline-block;transition:transform .2s ease}.page-header{margin-bottom:4rem}.page-header h1{margin-bottom:1rem}.page-intro{font-size:.9375rem;line-height:1.4;max-width:600px}.overline{color:#777;color:var(--text-subtle);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.entry-card{background-color:initial;border:1px solid #cecdcd;transition:background-color .2s ease,color 0s}.entry-card:hover{background-color:#cecdcd;color:#1a1a1a;color:var(--text-primary)}[data-theme=dark] .entry-card{border-color:#2f2f2f}[data-theme=dark] .entry-card:hover{background-color:#2f2f2f}.glass-card{backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);background-color:#ffffff54;border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000014;transition:background-color .2s ease-in}.glass-card:hover{background-color:#ffffffa8;color:inherit}[data-theme=dark] .glass-card{background-color:#00000054}[data-theme=dark] .glass-card:hover{background-color:#000000a8}html{scroll-behavior:smooth}::selection{background-color:#fff;background-color:var(--accent);color:#fff}:focus-visible{outline:2px solid #fff;outline:2px solid var(--accent);outline-offset:2px}.placeholder-gradient{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e5e5e5);background:linear-gradient(135deg,var(--bg-secondary) 0,var(--border-color) 100%);color:#777;color:var(--text-subtle);display:flex;font-weight:600;justify-content:center}.theme-toggle{background-color:#333;border:none;border-radius:var(--radius-pill);cursor:pointer;flex-shrink:0;height:24px;padding:0;position:relative;transition:background-color .3s ease;width:56px}.theme-toggle:before{background-color:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform .3s ease;width:18px}[data-theme=dark] .theme-toggle:after{color:#fff;content:"☾";left:6px;right:auto}.theme-toggle:after{color:#fff;content:"☀";font-size:1rem;pointer-events:none;position:absolute;right:6px;top:50%;transform:translateY(-50%)}[data-theme=dark] .theme-toggle:before{background-color:#fff;transform:translateX(32px)}.navigation{margin-bottom:2rem;padding:0 2rem;position:-webkit-sticky;position:sticky;top:1rem;z-index:100}.nav-container{grid-gap:3rem;align-items:center;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background-color:#ffffffb3;border:1px solid #cecdcd;border-radius:var(--radius-pill);box-shadow:0 8px 32px #00000014;display:grid;gap:3rem;grid-template-columns:auto auto auto auto;margin:0 auto;padding:1rem 1.5rem;transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease;width:-webkit-fit-content;width:fit-content}[data-theme=dark] .nav-container{background-color:#000000b3;border:1px solid #2f2f2f;box-shadow:0 8px 32px #00000014}@media (prefers-color-scheme:dark){:root:not([data-theme]) .nav-container{border:1px solid #ffffff1a;box-shadow:0 8px 32px #0006}}.nav-logo{align-items:center;color:var(--text-primary);display:flex;font-size:1.125rem;font-weight:600;gap:.5rem;white-space:nowrap}.nav-avatar{border-radius:50%;flex-shrink:0;height:36px;object-fit:cover;object-position:top;width:36px}.nav-logo:hover{color:var(--text-primary)}.resume-button,.theme-toggle-wrapper{align-items:center;display:flex}.resume-button{background-color:var(--text-primary);border-radius:var(--radius-pill);font-size:.9375rem;font-weight:500;gap:.25rem;padding:.5rem 1rem;text-decoration:none;white-space:nowrap}.resume-button,.resume-button:hover{color:var(--bg-primary)}.resume-button .download-icon{display:inline-block;transition:transform .2s ease}.resume-button:hover .download-icon{transform:translateY(2px)}.nav-links{gap:0;list-style:none}.nav-links,.nav-links li{align-items:center;display:flex;position:relative}.nav-links li{z-index:1}.nav-links a{border-radius:var(--radius-md);color:var(--text-subtle);font-size:.9375rem;font-weight:500;padding:.5rem 1rem;position:relative;transition:color .2s ease;white-space:nowrap}.nav-links a.active,.nav-links a:hover{color:var(--text-primary)}.nav-links a:after{display:none}.nav-links:before{background-color:#0000001a;border-radius:var(--radius-md);content:"";pointer-events:none;position:absolute;transition:all .2s cubic-bezier(.4,0,.2,1);z-index:0}[data-theme=dark] .nav-links:before{background-color:#ffffff1a}.hamburger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;flex-shrink:0;gap:5px;padding:.5rem;z-index:101}.hamburger span{background-color:var(--text-primary);border-radius:2px;display:block;height:2px;transition:all .3s ease;width:24px}.hamburger span.open:first-child{transform:rotate(45deg) translate(5px,5px)}.hamburger span.open:nth-child(2){opacity:0}.hamburger span.open:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.mobile-menu-panel{background-color:var(--bg-primary);border:1px dashed var(--border-color);border-radius:var(--radius-lg);display:none;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:calc(100% + .5rem);transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease;z-index:99}.mobile-menu-panel.mobile-open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-menu-links{display:flex;flex-direction:column;gap:0;list-style:none;margin:0;padding:.5rem;position:relative}.mobile-menu-links:before{background-color:#0000000d;border-radius:var(--radius-md);content:"";left:.5rem;pointer-events:none;position:absolute;right:.5rem;top:0;transition:transform .2s cubic-bezier(.4,0,.2,1),height .2s cubic-bezier(.4,0,.2,1),opacity .15s ease;z-index:0}[data-theme=dark] .mobile-menu-links:before{background-color:#ffffff0f}.mobile-menu-links li{position:relative;z-index:1}.mobile-menu-links a{align-items:center;border-radius:var(--radius-md);color:var(--text-subtle);display:flex;font-size:1.125rem;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:color .2s ease;width:100%}.mobile-menu-links a.active,.mobile-menu-links a:hover{color:var(--text-primary)}.mobile-menu-footer{align-items:center;display:flex;gap:.5rem;padding:.5rem 1rem 1rem}.mobile-resume-button{align-items:center;background-color:var(--text-primary);border-radius:var(--radius-pill);color:var(--bg-primary)!important;display:flex;flex:1 1;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;padding:1rem;text-decoration:none;transition:opacity .2s ease}.mobile-resume-button:hover{opacity:.85}.mobile-resume-button .download-icon{transition:transform .2s ease}.mobile-resume-button:hover .download-icon{transform:translateY(2px)}@media (max-width:900px){.navigation{padding:0 1.5rem;top:1rem}.nav-container{align-items:center;border-radius:var(--radius-pill);display:flex;justify-content:space-between;padding:1rem 1.5rem;position:relative;width:100%}.hamburger{display:flex}.nav-links,.resume-button,.theme-toggle-wrapper{display:none}.mobile-menu-panel{display:block}}@media (max-width:480px){.navigation{padding:0 1rem;top:.5rem}.nav-container{padding:.5rem 1rem}.nav-logo{font-size:1rem}}.nav-container--simple{align-items:center;display:flex;gap:2rem;justify-content:space-between}.nav-logo-group{align-items:center;display:flex;gap:.5rem}.nav-case-study-name{white-space:nowrap}.back-button,.nav-case-study-name{color:var(--text-subtle);font-size:.9375rem;font-weight:500}.back-button{background:none;border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;padding:.5rem 1rem;transition:color .2s ease,background-color .2s ease}.back-button:hover{background-color:#0000000f;color:var(--text-primary)}[data-theme=dark] .back-button:hover{background-color:#ffffff14}.mouse-gradient{filter:blur(50px);height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}[data-theme=dark] .mouse-gradient{opacity:.5}.social-links{align-items:center;display:flex;gap:0;position:relative}.social-highlight{background-color:#00000014;border-radius:var(--radius-md);pointer-events:none;position:absolute;transition:transform .2s cubic-bezier(.4,0,.2,1),width .2s cubic-bezier(.4,0,.2,1),height .2s cubic-bezier(.4,0,.2,1),opacity .15s ease;z-index:0}[data-theme=dark] .social-highlight{background-color:#ffffff1a}.social-link{align-items:center;border-radius:var(--radius-md);color:var(--text-subtle);display:flex;justify-content:center;padding:.5rem;position:relative;transition:color .2s ease;z-index:1}.social-link:hover{color:var(--text-primary)}.social-link svg{height:22px;width:22px}.sticky-layout{grid-gap:var(--col-gap);align-items:start;display:grid;gap:var(--col-gap);grid-template-columns:1fr 1fr}.sticky-layout__sidebar{align-self:start;position:-webkit-sticky;position:sticky}.sticky-layout__content{align-self:start}@media (max-width:768px){.sticky-layout{gap:3rem;grid-template-columns:1fr}.sticky-layout__sidebar{position:static}}.home{min-height:calc(100vh - 80px)}.hero-sidebar{display:flex;flex-direction:column;height:calc(100vh - 112px);height:calc(100vh - var(--sticky-offset, 112px));justify-content:space-between}.hero-subtitle{font-size:1.0625rem;font-weight:500;margin-bottom:1rem}.hero-description{color:var(--text-subtle);font-size:.9375rem;line-height:1.4}.hero-content h1{margin-bottom:1rem}.hero-actions{display:flex;gap:1rem;margin-top:1.5rem}.hero-pill{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:opacity .2s ease,background-color .2s ease;white-space:nowrap}.hero-pill:hover{opacity:.75}.hero-pill--outline{background-color:#00000014;color:var(--text-subtle)}.hero-pill--outline:hover{background-color:#00000021;color:var(--text-subtle);opacity:1}[data-theme=dark] .hero-pill--outline{background-color:#ffffff1a}[data-theme=dark] .hero-pill--outline:hover{background-color:#ffffff29}.case-studies-column{display:flex;flex-direction:column;gap:3rem}.case-study-card{color:inherit;display:block;text-decoration:none}.case-study-card:hover{color:inherit}.case-study-image-wrapper{aspect-ratio:16/9;border-radius:var(--radius-md);margin-bottom:1.5rem;overflow:hidden;position:relative;width:100%}.case-study-image,.placeholder-image{height:100%;width:100%}.placeholder-image{font-size:2rem}.case-study-details{padding:0}.case-study-details h2{font-size:1.25rem;margin-bottom:.5rem}.case-study-meta{color:var(--text-subtle);font-size:.8125rem;font-weight:500;margin-bottom:.5rem}.case-study-subtitle{font-size:.875rem;line-height:1.55}.hero-contact{display:flex;flex-direction:column;gap:1rem;padding-bottom:2rem}.contact-header{margin-top:1rem}.contact-header:first-child{margin-top:0}.contact-email{align-self:flex-start;color:var(--text-primary);font-size:1rem;position:relative;text-decoration:none}.contact-email:after{background-color:currentColor;bottom:-1px;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:left;transition:transform .35s ease;width:100%}.contact-email:hover{color:var(--text-primary)}.contact-email:hover:after{transform:scaleX(0);transform-origin:right}@media (max-width:768px){.case-studies-column{gap:2.5rem}.hero-sidebar{height:auto;justify-content:flex-start}.hero-contact{padding-bottom:0}}.lightbox-overlay{align-items:center;animation:lightbox-fade .15s ease;background:#000000e0;display:flex;inset:0;justify-content:center;padding:2rem;position:fixed;z-index:1000}[data-theme=light] .lightbox-overlay{background:#000000d1}.lightbox-container{animation:lightbox-scale .15s ease;display:flex;flex-direction:column;max-height:calc(100vh - 4rem);max-width:90vw;overflow:hidden;position:relative}.lightbox-image-wrapper{align-self:flex-start;border-radius:var(--radius-md);cursor:crosshair;flex-shrink:1;line-height:0;overflow:hidden;position:relative}.lightbox-image{display:block;max-height:75vh;max-width:90vw}.lightbox-lens{background-repeat:no-repeat;border:1.5px solid #ffffffb3;border-radius:var(--radius-md);box-shadow:0 2px 16px #0006;height:240px;pointer-events:none;position:absolute;width:240px}.lightbox-caption{color:#fff9;font-size:.8125rem;line-height:1.5;margin-top:1rem;text-align:left}.lightbox-counter{color:#fff9;font-size:.9375rem;margin-top:.5rem;text-align:center}.lightbox-nav{align-items:center;backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);background-color:#fff3;border:none;border-radius:50%;box-shadow:0 4px 16px #0003;color:#fff;cursor:pointer;display:flex;height:2.5rem;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:background-color .2s ease;width:2.5rem;z-index:1}.lightbox-nav:hover{background-color:#ffffff59}.lightbox-nav--prev{left:1.5rem}.lightbox-nav--next{right:1.5rem}.lightbox-close{align-items:center;background:none;border:none;color:#fff9;cursor:pointer;display:flex;justify-content:center;padding:.25rem;position:absolute;right:2rem;top:1.5rem;transition:color .2s ease}.lightbox-close:hover{color:#fff}@media (max-width:768px){.lightbox-overlay{padding:1.5rem 1rem}.lightbox-image-wrapper{cursor:default}.lightbox-image{max-height:65vh;max-width:calc(100vw - 2rem)}}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}@keyframes lightbox-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.case-study-page{min-height:calc(100vh - 80px)}.case-study-page .page-container{max-width:var(--max-width-editorial)}.case-study-hero,.case-study-hero .two-col-layout,.case-study-hero h1{margin-bottom:1.5rem}.case-study-hero h1{font-size:clamp(1.75rem,3.5vw,2.5rem);line-height:1.15;margin-top:2rem}.case-study-hero .subtitle{font-size:1.0625rem;line-height:1.4}.case-study-meta{align-self:start;gap:1.5rem}.case-study-meta,.meta-item{display:flex;flex-direction:column}.meta-item{gap:.5rem}.meta-value{font-size:.9375rem}.hero-image-full{aspect-ratio:16/9;background-color:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden;width:100%}.hero-image-full img{height:100%;object-fit:cover;width:100%}.case-study-content{display:flex;flex-direction:column;gap:2.5rem}.case-study-content p{margin:0}.case-study-content p+p{margin-top:1rem}.content-section{display:flex;flex-direction:column;gap:.5rem}.content-section .section-label{margin-bottom:-.25rem}.content-section h2{font-size:clamp(1.25rem,2.5vw,1.75rem)}.content-section.two-col .two-col-layout{gap:5rem;grid-template-columns:1fr 3fr}.section-figure{margin:0;width:100%}.section-image{background-color:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;width:100%}.section-image img{display:block;height:auto;width:100%}.section-image--clickable{cursor:zoom-in}.image-caption{color:var(--text-subtle);font-size:.8125rem;line-height:1.5;margin-top:.5rem}.section-image-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.case-study-content ul{display:flex;flex-direction:column;gap:.5rem;list-style:disc;margin:0;padding-left:1.5rem}.case-study-content ul li{font-size:1rem;line-height:1.4;padding-left:.25rem}.case-study-content p+ul,.case-study-content ul+p{margin-top:1rem}.callout-block{background-color:var(--bg-secondary);border-left:3px solid var(--text-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:2rem}.callout-block p{font-size:1rem;font-style:italic;max-width:none}.stats-row{grid-gap:2rem;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);padding:2rem 0}.stat-item{display:flex;flex-direction:column;gap:.5rem}.stat-value{font-size:1.75rem;font-weight:600;letter-spacing:-.03em}.stat-label{color:var(--text-subtle);font-size:.875rem}.numbered-items{counter-reset:numbered-items;display:flex;flex-direction:column;gap:2rem;list-style:none;margin:0;padding:0}.numbered-items+p,p+.numbered-items{margin-top:3rem}.numbered-items li{grid-gap:1.5rem;align-items:center;counter-increment:numbered-items;display:grid;gap:1.5rem;grid-template-columns:2.5rem 1fr}.numbered-items li:before{color:var(--text-primary);content:counter(numbered-items);font-size:4rem;font-weight:500;line-height:1}.numbered-items li p{margin:0}.numbered-items li p+p{margin-top:1rem}.metrics-table{display:flex;flex-direction:column;gap:1rem}.metrics-table-row{grid-gap:2rem;display:grid;font-size:.9375rem;gap:2rem;grid-template-columns:1fr 1fr;line-height:1.5}.metrics-table-header{border-bottom:1px solid var(--text-primary);font-size:.9375rem;font-weight:600;padding-bottom:.5rem}.metric-table{grid-gap:1rem 1.5rem;display:grid;gap:1rem 1.5rem;width:100%}.metric-table-header-cell{font-size:.9375rem;font-weight:600;line-height:1.5}.metric-table-divider{border-bottom:1px solid var(--text-primary);grid-column:1/-1}.metric-table+p{margin-top:1rem}.metric-table-cell{font-size:.9375rem;line-height:1.5}.case-study-nav{border-top:1px solid var(--border-color);margin-top:2rem;padding-top:2rem}.case-study-not-found{padding:8rem 0;text-align:center}.case-study-not-found h1{margin-bottom:1rem}.case-study-not-found p{margin-bottom:2rem}.back-link{color:var(--text-primary);font-weight:500;text-decoration:underline;text-underline-offset:3px}@media (max-width:768px){.case-study-hero{margin-bottom:2rem}.stats-row{grid-template-columns:1fr 1fr}.section-image-grid{grid-template-columns:1fr}.case-study-nav{align-items:flex-start;flex-direction:column}.nav-next{margin-left:0;text-align:left}}.case-study-page{padding-top:0}.phase-bg-indicator{animation:phaseIndicatorFadeIn .5s ease-out forwards;bottom:0;color:var(--text-primary);font-size:14rem;font-weight:700;left:max(.5rem,calc((100vw - var(--max-width-editorial))/2 - 15.5rem));letter-spacing:-.04em;line-height:1;pointer-events:none;position:fixed;text-transform:uppercase;transform:scale(-1);-webkit-user-select:none;user-select:none;white-space:nowrap;writing-mode:vertical-rl;z-index:-1}@keyframes phaseIndicatorFadeIn{0%{opacity:0}to{opacity:.045}}@media (max-width:1224px){.phase-bg-indicator{display:none}}.about-page{min-height:calc(100vh - 80px)}.profile-section{margin-bottom:3rem}.profile-photo{border-radius:50%;height:112px;margin-bottom:1rem;object-fit:cover;object-position:top;width:112px}.profile-section h1{font-size:1.5rem;line-height:1.15;margin-bottom:0}.bio-section p,.experience-header{margin-bottom:1rem}.experience-list{display:flex;flex-direction:column;position:relative}.experience-highlight{background-color:#0000000f;border-radius:var(--radius-md);left:-1rem;pointer-events:none;position:absolute;right:-1rem;transition:transform .2s cubic-bezier(.4,0,.2,1),height .2s cubic-bezier(.4,0,.2,1),opacity .15s ease;z-index:0}[data-theme=dark] .experience-highlight{background-color:#ffffff0f}.experience-item{align-items:center;border-bottom:1px solid var(--border-color);color:inherit;display:flex;gap:1.5rem;padding:2rem 0;position:relative;text-decoration:none;z-index:1}.experience-item:last-child{border-bottom:none}.experience-item:hover{color:inherit}.experience-logo{align-items:center;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.experience-logo img{object-fit:contain}.experience-logo img,.experience-logo-placeholder{height:100%;width:100%}[data-theme=light] .experience-logo img[alt*=Bioworld]{filter:invert(1)}.experience-details{align-items:center;display:flex;flex:1 1;gap:1rem}.experience-text{flex:1 1}.experience-details h3{font-size:1rem;margin-bottom:.25rem}.experience-role{color:var(--text-subtle);font-size:.875rem;margin-bottom:0}.experience-period{color:var(--text-subtle);flex-shrink:0;font-size:.8125rem;white-space:nowrap}.about-nav{border-top:1px solid var(--border-color);margin-top:2rem;padding-bottom:5rem;padding-top:2rem}.nav-next{color:inherit;flex-direction:column;text-decoration:none}.nav-next,.nav-title{display:inline-flex;gap:.5rem}.nav-title{align-items:center;font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600}.nav-next:hover .arrow{transform:translateX(4px)}.nav-next:hover{color:inherit}@media (max-width:768px){.experience-highlight{display:none}.experience-details{align-items:flex-start;flex-direction:column;gap:.25rem}.experience-period{white-space:normal}}.stack-page{min-height:calc(100vh - 80px)}.stack-category{margin-bottom:3rem}.category-title{margin-bottom:1.5rem}.category-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.tool-card-wide{border-radius:var(--radius-lg);color:var(--text-primary);gap:1rem;padding:1rem;position:relative;text-decoration:none}.tool-card-wide,.tool-logo{align-items:center;display:flex}.tool-logo{flex-shrink:0;height:36px;justify-content:center;width:36px}.tool-logo img{height:100%;object-fit:contain;width:100%}.tool-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.external-link-icon{color:var(--text-subtle);flex-shrink:0;margin-left:auto;opacity:0;transition:opacity .2s ease;will-change:opacity}.tool-card-wide:hover .external-link-icon{opacity:1}.tool-info h3{font-size:1rem;font-weight:600}.tool-description{color:var(--text-subtle);font-size:.875rem}.stack-note{margin-top:1rem;padding:2rem;text-align:center}.stack-note p{color:var(--text-subtle);font-size:.9375rem;font-style:italic}.logo-dark-only,[data-theme=dark] .logo-light-only{display:none}[data-theme=dark] .logo-dark-only{display:block}.tool-logo img[alt*=ChatGPT],.tool-logo img[alt*=Framer],.tool-logo img[alt*=Github]{filter:invert(1)}[data-theme=dark] .tool-logo img[alt*=ChatGPT],[data-theme=dark] .tool-logo img[alt*=Framer]{filter:invert(0)}[data-theme=light] .tool-logo img[alt*=GitHub]{filter:invert(1)}@media (max-width:768px){.category-grid{grid-template-columns:1fr}.tool-logo{height:32px;width:32px}}.side-projects-page{min-height:calc(100vh - 80px)}.projects-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.project-card{color:var(--text-primary);cursor:pointer;flex-direction:column;gap:1rem;padding:1.5rem;text-decoration:none}.project-card,.project-icon{border-radius:var(--radius-lg);display:flex}.project-icon{align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-color);flex-shrink:0;font-size:1.5rem;height:48px;justify-content:center;overflow:hidden;width:48px}.project-icon img{border-radius:var(--radius-lg);height:100%;object-fit:cover;width:100%}.project-info h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.project-description{color:var(--text-subtle);font-size:.875rem;line-height:1.6}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}.project-tag{background-color:#0000000f;font-size:.75rem;padding:.25rem .5rem}[data-theme=dark] .project-tag{background-color:#ffffff14}.work-cta{border-top:1px solid var(--border-color);margin-top:5rem;padding-top:3rem}.work-cta-link{color:inherit;display:inline-flex;flex-direction:column;gap:.5rem;text-decoration:none}.work-cta-link:hover{color:inherit}.work-cta-title{align-items:center;display:inline-flex;font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600;gap:.5rem}.work-cta-link:hover .arrow{transform:translateX(4px)}@media (max-width:900px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}}.App{display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}main{flex:1 1}.footer{background-color:initial;border-top:1px solid var(--border-color);margin-top:auto;padding:2rem 0}.footer-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:var(--max-width);padding:0 var(--page-padding);width:100%}.footer p{color:var(--text-subtle);font-size:.875rem}@media (max-width:768px){.footer p{font-size:.8125rem}}
/*# sourceMappingURL=main.39d4ed1e.css.map*/