@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_bace89c4-module__09p2wq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_bace89c4-module__09p2wq__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--bg-body:#fff;--bg-sidebar:#fcfcfd;--bg-card:#fcfcfc;--bg-surface:#f3f4f6;--bg-surface-secondary:#f9fafb;--bg-hover-tint:#f5f3ff;--text-primary:#1f2a37;--text-secondary:#384250;--text-tertiary:#4d5761;--text-muted:#8a909b;--text-faint:#8a909b;--text-inverse:#fff;--border-subtle:#f3f4f6;--border-default:#e5e7eb;--border-strong:#d2d6db;--border-accent:#ece9fe;--accent-primary:#6927da;--accent-surface:#fbfaff;--accent-border:#a48afb;--accent-border-2:#ddd6fe;--btn-primary-bg:#1f2a37;--btn-primary-text:#fff;--btn-primary-hover:#384250;--bg-footer:#111927;--text-footer-title:#e5e7eb;--text-footer-link:#9da4ae;--glass-bg:#fffc;--glass-border:#fff9;--shadow-color:#00000020;--shadow-pill:#0000000d}body.dark-mode{--bg-body:#1c1c1c;--bg-sidebar:#212121;--bg-card:#212121;--bg-surface:#1c1c1c;--bg-surface-secondary:#1c1c1c;--bg-hover-tint:#1c1c1c;--text-primary:#f9fafb;--text-secondary:#ededed;--text-tertiary:#d1d5db;--text-muted:#9ca3af;--text-faint:#6b7280;--text-inverse:#111827;--border-subtle:#27272a;--border-default:#3f3f46;--border-strong:#52525b;--border-accent:#4c1d95;--accent-primary:#a78bfa;--accent-surface:#27272a;--accent-border:#8b5cf6;--btn-primary-bg:#f3f4f6;--btn-primary-text:#111927;--btn-primary-hover:#e5e7eb;--bg-footer:#000;--text-footer-title:#f9fafb;--text-footer-link:#9ca3af;--glass-bg:#18181bcc;--glass-border:#ffffff1a;--shadow-color:#0009;--shadow-pill:#ffffff0d}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}*,:before,:after{box-sizing:border-box;margin:0;font-family:Inter,sans-serif}@property --overlay-start{syntax:"<percentage>";inherits:true;initial-value:85%}body{background:var(--bg-body);color:var(--text-tertiary);margin:0;font-family:Mona Sans,system-ui,sans-serif;transition:background .3s,color .3s}body::-webkit-scrollbar{display:none}body{scrollbar-width:none;-ms-overflow-style:none}h1{color:var(--text-primary);letter-spacing:-.04em;font-size:clamp(2.25rem,1.11vw + 2rem,3rem);font-weight:600;line-height:125%}h2{color:var(--text-primary);letter-spacing:-.04em;font-size:clamp(1.875rem,1.11vw + 1.5rem,2.5rem);font-weight:400;line-height:125%}.content-heading{color:var(--text-tertiary)}h3{color:var(--text-secondary);font-size:clamp(1.75rem,1.25vw + 1.125rem,2.25rem);font-weight:500;line-height:125%}h4{color:var(--text-secondary);font-size:clamp(1.25rem,1.25vw + 1rem,1.75rem);font-weight:450;line-height:125%}h5{color:var(--text-secondary);font-size:clamp(1.125rem,1.125vw + .75rem,1.625rem);font-weight:450;line-height:125%}h6{color:var(--text-tertiary);font-size:clamp(1.219rem,1vw + .75rem,1.5rem);font-weight:450;line-height:125%}p{color:var(--text-tertiary);font-weight:350}.text-lg{color:var(--text-muted);font-size:18px;font-weight:350;line-height:142%}.light{color:var(--text-faint);font-weight:350}.text-lg-bold{color:var(--text-primary);font-size:18px;font-weight:550;line-height:142%}.inner-body{flex-direction:row;gap:32px;height:100vh;padding:20px;display:flex}.sidebar-content{flex-direction:column;justify-content:space-between;height:100%;display:flex}.static-container{background-color:var(--bg-sidebar);z-index:10;border-radius:8px;flex-direction:column;justify-content:space-between;gap:24px;width:32%;height:calc(100vh - 40px);padding:2rem;transition:background-color .3s;display:flex;position:fixed;top:20px;left:20px}.inner-container-top{flex-direction:column;row-gap:24px;margin-top:1.5rem;animation:.25s forwards sidebarFadeIn;display:flex}.main-content{flex-direction:column;gap:6rem;display:flex}.sidebar-content,.view-section,.main-content{opacity:0;display:none}.active-section,.active-group{animation:.5s forwards fadeUp;display:flex}@keyframes fadeUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.nav-container{flex-direction:row;gap:.25rem;display:inline-flex;position:relative}.nav-link{z-index:12;cursor:pointer;color:var(--text-tertiary);border-radius:.375rem;padding:.25rem .5rem;text-decoration:none;transition:color .3s,background-color .3s;position:relative}.resume-btn{z-index:12;cursor:pointer;color:var(--text-tertiary);white-space:nowrap;border-radius:.375rem;align-items:center;gap:.25rem;padding:.25rem .5rem;text-decoration:none;transition:color .3s,background-color .3s;display:inline-flex;position:relative}@media (max-width:1024px){.resume-btn-text{font-size:0}.resume-btn-text:before{content:"CV";visibility:visible;font-size:16px}}.resume-btn:hover{color:var(--text-primary);font-weight:450}.nav-link:hover{background:var(--bg-hover-tint)}.nav-link.active-nav{color:var(--text-inverse);font-weight:450}:root .nav-link.active-nav{color:#111927}body.dark-mode .nav-link.active-nav{color:#fff}.nav-link.active-nav:hover{cursor:default;background-color:#0000}.nav-backdrop{z-index:11;background-color:var(--accent-surface);border:1px solid var(--accent-border);height:1.75rem;box-shadow:0rem .125rem .25rem var(--shadow-color);opacity:0;will-change:transform, width;border-radius:.675rem;width:0;transition:transform .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1);position:absolute;left:0}.inner-container-title{flex-direction:column;row-gap:.75rem;display:flex}.inner-container-bottom{opacity:0;flex-direction:column;row-gap:1.5rem;animation:.25s .1s forwards sidebarFadeIn;display:flex}@media screen and (max-width:768px){.inner-container-bottom{row-gap:.75rem}}.home-image-pic{border-radius:6px;width:3rem;height:3rem}.external-links{flex-direction:row;column-gap:8px;display:flex}.active-link{width:2rem;height:2rem;color:var(--text-faint);background-color:#0000;border-radius:.375rem;justify-content:center;align-items:center;padding:4px;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 0 0 1px #0000}.nav-icon{fill:currentColor;flex-shrink:0;width:18px;height:18px;transition:transform .2s}.active-link:hover{background-color:var(--accent-surface);color:var(--accent-primary);box-shadow:0 0 0 1px var(--border-accent)}.active-link:hover .nav-icon{transform:scale(1.1)}.scroll-container{flex-direction:column;gap:24px;width:100%;margin-left:calc(32% + 32px);padding:2rem;animation:.4s forwards fadeUp;display:flex}.featured-work-section{flex-direction:column;gap:1.5rem;display:flex}.title-and-tab-section{flex-direction:row;justify-content:space-between;display:flex}@media screen and (max-width:768px){.title-and-tab-section{flex-direction:column;gap:1rem}}.project-tab-container{position:relative;overflow:hidden}.projects{flex-direction:column;gap:.75rem;animation:.5s forwards fadeSlideIn;display:flex}.projects.is-hidden{display:none}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.project-card{aspect-ratio:16/9;background:var(--bg-card);color:inherit;border:1px solid var(--border-subtle);border-radius:16px;text-decoration:none;transition:transform .3s,box-shadow .3s;display:block;position:relative;overflow:hidden}.project-card:hover{box-shadow:0 1rem 2rem -.625rem var(--shadow-color);transform:translateY(-.125rem)}.project-card img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.project-overlay{--overlay-start:82.5%;opacity:1;background:linear-gradient(to bottom, transparent 0%, transparent var(--overlay-start), #000000e6 100% );border-radius:inherit;align-items:flex-end;padding:20px;transition:--overlay-start .4s cubic-bezier(.2,0,.2,1);display:flex;position:absolute;inset:0}.project-overlay>*{opacity:0;transition:all .3s;transform:translateY(10px)}.project-overlay:after{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(to bottom, transparent 0%, transparent var(--overlay-start), #000000d9 100%);-webkit-mask-composite:xor;padding:.0094rem;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.project-card:hover .project-overlay{--overlay-start:70%}.project-card:hover .project-overlay>*{opacity:1;transition-delay:.1s;transform:translateY(0)}.thumbnail-title{color:#fff;line-height:125%}.thumbnail-text{flex-direction:column;gap:.25rem;display:flex}.thumbnail-body{color:#9da4ae;font-size:1.125rem}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}@media (min-width:768px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}.work-metrics{background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:.75rem;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.home-project-button{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);cursor:pointer;text-align:center;border-radius:.75rem;width:100%;padding:.75rem 1.25rem;font-size:1rem;font-weight:500;text-decoration:none;transition:background-color .2s;display:block}.home-project-button:hover{background-color:var(--btn-primary-hover)}.project-button-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);cursor:pointer;border:none;border-radius:.75rem;width:fit-content;padding:.75rem 1.25rem;font-size:1rem;font-weight:500;text-decoration:none;transition:background-color .2s}.project-button-primary:hover{background-color:var(--btn-primary-hover)}.project-button{color:var(--text-primary);border:1px solid var(--border-strong);background-color:#0000;border-radius:.75rem;width:fit-content;padding:.75rem 1.25rem;font-size:1rem;font-weight:500;text-decoration:none;transition:background-color .2s}.project-button:hover{background-color:var(--bg-surface);border-color:var(--border-strong)}.cta-links{gap:1rem;display:flex}.full-width-button{flex:1;width:100%}@media (max-width:768px){.cta-links{flex-direction:column}}.footer{background-color:var(--bg-footer);border-radius:1.25rem;flex-direction:column;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;display:flex}.footer-links{flex-direction:column;gap:.25rem;width:auto;display:flex}.footer-link{color:var(--text-footer-link);padding:.188rem .375rem;font-size:1rem;line-height:142%;text-decoration:none}.footer-title{color:var(--text-footer-title)}.footer-button{background:var(--bg-surface);border:1px solid var(--border-strong);width:fit-content;color:var(--text-primary);box-shadow:0rem .125rem .25rem var(--shadow-color);border-radius:.5rem;padding:.5rem .75rem;font-size:1rem;font-weight:450;text-decoration:none}.copyright-text{color:var(--text-muted);font-size:.875rem}.copyright-section{flex-direction:column;gap:.25rem;display:flex}.sidebar-content.active-group{animation-delay:0s}.active-section{animation-delay:.125s}.work-experience{flex-direction:column;gap:2.5rem;display:flex}.divider{background-color:var(--border-subtle);border:none;height:1px;margin:0}.experience-card{flex-direction:column;gap:1rem;display:flex}.experience-title,.experience-company{flex-direction:column;gap:.25rem;display:flex}.tech-stack{flex-direction:column;gap:1.5rem;display:flex}.tech-stack-list{flex-flow:wrap;gap:.5rem;display:flex}.skill-card{background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:.5rem;flex-direction:row;align-items:center;gap:.5rem;padding:.375rem .5rem .375rem .375rem;display:flex}.skill-icon{width:1.25rem;height:1.25rem}.carousel-wrapper{flex-direction:column;gap:1.5rem;width:1px;min-width:100%;max-width:100%;padding:0;display:flex;overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000 0%,#000 5% 95%,#0000 100%);mask:linear-gradient(90deg,#0000 0%,#000 5% 95%,#0000 100%)}.marquee-row{-webkit-user-select:none;user-select:none;max-width:100%;display:flex;overflow:hidden}.marquee-track{flex-shrink:0;gap:.75rem;width:100%;animation:40s linear infinite scroll;display:flex}.carousel-pill{background-color:var(--bg-sidebar);color:var(--text-secondary);border:1px solid var(--shadow-pill);white-space:nowrap;border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:1rem;font-weight:400;display:inline-flex}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.speed-fast .marquee-track{animation-duration:25s}.reverse{animation-direction:reverse}.hover-slow:hover .marquee-track{animation-play-state:paused}.testimonial-card{white-space:normal;background-color:var(--bg-sidebar);border:1px solid var(--shadow-pill);text-align:left;border-radius:.75rem;flex-direction:column;flex-shrink:0;justify-content:space-between;gap:1.25rem;width:400px;min-height:240px;padding:1.25rem;display:flex}.testimonial-card>p{color:var(--text-secondary);margin:0;font-size:1rem;line-height:1.43}.testimonial-author{flex-direction:column;gap:.25rem;padding-top:1rem;display:flex}.testimonial-author p:first-child{color:var(--text-primary);margin:0;font-size:1rem;font-weight:600}.testimonial-author p:last-child{color:var(--text-muted);margin:0;font-size:.875rem}.testimonials-section,.skills-section{flex-direction:column;gap:1.5rem;display:flex}.about-pic-container{width:100%}.about-pic{object-fit:cover;border-radius:1.25rem;width:100%;max-height:40rem}.about-section{flex-direction:column;gap:3rem;display:flex}.about-content{flex-direction:column;gap:1.25rem;display:flex}.text-md-semibold{color:var(--text-primary);font-weight:500}.view-section{box-sizing:border-box;flex-direction:column;gap:4rem;min-width:0;max-width:100%;display:none}.view-section.active-section{display:flex}.project-hero-img-section{flex-direction:column;gap:1.5rem;width:100%;max-width:100%;display:flex}.full-width-img-group{aspect-ratio:16/9;background:var(--bg-card);border-radius:16px;align-items:center;max-height:42.5rem;overflow:hidden}.media-wrapper{background:var(--bg-card);border-radius:16px;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.ratio-wide{aspect-ratio:16/9;max-height:27.5rem}.ratio-box,.ratio-four-three{aspect-ratio:4/3;max-height:fit-content}.ratio-rect-box,.ratio-polygon{aspect-ratio:16/9;max-height:fit-content}.media-wrapper img,.media-wrapper video{object-fit:cover;border-radius:.625rem;width:100%;height:100%;display:block}@media (max-width:768px){.ratio-box{aspect-ratio:16/9}.ratio-four-three,.ratio-rect-box{aspect-ratio:4/3}}.portfolio-img{object-fit:cover;border-radius:12px;width:100%;max-width:100%;height:auto;display:block}.project-title-and-caption{flex-direction:column;gap:.5rem;display:flex}.title-and-body-section{flex-direction:column;gap:1.5rem;display:flex}.small-title-and-body-section{flex-direction:column;gap:.75rem;display:flex}.role-section{flex-direction:column;gap:2.5rem;display:flex}.role-title{color:var(--text-faint);font-weight:350}ul{flex-direction:column;gap:.5rem;margin:.375rem;padding-left:.5rem;list-style-type:disc;display:flex}.body-text{color:var(--text-secondary)}.role-group{flex-direction:column;gap:.5rem;display:flex}.project-business-need-section{flex-direction:column;gap:1rem;display:flex}.content-card{border:1px solid var(--border-accent);background-color:var(--bg-body);border-radius:1rem;flex-direction:column;gap:.875rem;padding:1rem;display:flex}.bold{color:var(--text-muted);font-weight:450}.subhead-list{flex-direction:column;gap:.875rem;margin-top:1rem;display:flex}.spacer{padding:.125rem}.four-content-card-group,.four-img-card-group{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.three-content-card-group{grid-template-columns:repeat(3,1fr);gap:1.5rem;width:100%;display:grid}.three-content-card-group.vertical{flex-direction:column;gap:1.5rem;display:flex}@media (max-width:768px){.three-content-card-group{grid-template-columns:1fr}}.no-border-card{border:none;padding:0}.research-images-list{flex-direction:column;gap:1.5rem;display:flex}.project-images-list{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.caption-text{color:var(--text-faint);font-size:.875rem;font-weight:450}.project-body{flex-direction:column;gap:4rem;display:flex}.portfolio-media{aspect-ratio:4/3;object-fit:cover;object-position:center top;background-color:var(--bg-surface);border-radius:12px;width:100%;display:block;overflow:hidden}.bottom-focus{object-fit:cover;height:100%;display:block;object-position:center!important}.contact-section{box-sizing:border-box;flex-direction:column;gap:2rem;display:flex}.content-and-button-section{flex-direction:column;gap:2.5rem;display:flex}.end-of-page{margin-bottom:2rem}.cta-section{flex-direction:row;gap:1rem;display:flex}.contact-toggle-wrapper{background:var(--bg-surface-secondary);border:1px solid var(--border-default);isolation:isolate;border-radius:.625rem;width:fit-content;padding:4px;display:inline-flex;position:relative}.toggle-backdrop{background:var(--bg-body);z-index:1;border-radius:.375rem;width:0;transition:transform .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1);position:absolute;top:4px;bottom:4px;left:0;box-shadow:0 1px 3px #0000000d,0 1px 2px -1px #0000001a}.toggle-btn{z-index:2;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:.375rem;padding:6px 16px;font-size:1rem;font-weight:450;transition:color .3s;position:relative}.toggle-btn.active{color:var(--text-primary);font-weight:500}.contact-view{animation:.4s fadeIn;display:none}.contact-view.active-view{box-sizing:border-box;display:block}.email-card{box-sizing:border-box;border-radius:.75rem;flex-direction:column;align-items:flex-start;padding:2rem;display:flex;width:100%!important}.email-action-row{color:var(--text-primary);justify-content:center;align-items:center;gap:1rem;margin:1rem 0;font-size:1.1rem;font-weight:700;display:flex}.copy-btn{background:var(--bg-body);border:1px solid var(--border-strong);cursor:pointer;color:var(--text-secondary);border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;transition:all .2s;display:flex}.copy-btn:active{transform:scale(.95)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}#view-contact{width:100%}.contact-form-section{flex-direction:column;gap:2rem;width:100%!important;display:flex!important}.crop-top-img{object-position:bottom center!important}@media (max-width:768px){body,html{height:auto;overflow-y:auto}h4,h6{letter-spacing:-.01em}.inner-body{flex-direction:column;gap:3rem;height:auto;padding:0;overflow:visible}.nav-container{z-index:1000;background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);width:fit-content;max-width:400px;box-shadow:0 4px 20px var(--shadow-color);border-radius:99px;justify-content:center;margin:0;padding:.675rem;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.static-container{box-sizing:border-box;z-index:1;flex-direction:column;justify-content:space-between;width:100%;height:72dvh;min-height:600px;margin-bottom:0;padding:6rem 1.25rem 2rem;display:flex;position:relative;top:0;left:0}.title-and-body-section{gap:.75rem}.scroll-container{box-sizing:border-box;width:100%;height:auto;margin-left:0;padding:0 1.25rem 4rem;overflow:visible}.text-lg{font-size:1rem}.four-content-card-group{grid-template-columns:1fr;gap:1.5rem}.four-img-card-group{grid-template-columns:1fr;gap:2rem}.project-images-list{grid-template-columns:1fr;gap:1rem}.three-content-card-group{grid-template-columns:1fr;gap:3rem}.research-images-list{gap:3rem}.project-card{aspect-ratio:4/3}.project-card .project-overlay{--overlay-start:40%}.project-card .project-overlay>*{opacity:1!important;transform:translateY(0)!important}.project-card:hover{box-shadow:none;transform:none}.thumbnail-title{font-size:1.25rem}.thumbnail-body{font-size:.875rem}}.footer-button{border-radius:.5rem;color:#1f2a37!important;background-color:#f3f4f6!important;border:1px solid #d2d6db!important;box-shadow:0 2px 4px #0000001a!important}.footer-button:hover{background-color:#fff!important}.project-button{color:var(--text-primary)!important;border-color:var(--border-strong)!important}body.dark-mode .project-button{color:#fff!important;border-color:#ffffff4d!important}body.dark-mode .project-button:hover{background-color:#ffffff1a!important}.home-project-button,.project-button-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.mobile-text{display:none}@media (max-width:768px){.desktop-text{display:none}.mobile-text{display:inline}.contact-toggle-wrapper{grid-template-columns:1fr 1fr;gap:0;width:100%;padding:4px;display:grid}.toggle-btn{text-align:center;width:100%;padding:10px 0}}body.dark-mode .contact-toggle-wrapper{background-color:#1c1c1c;border-color:#333}body.dark-mode .toggle-backdrop{box-shadow:0 1px 3px #00000080;background-color:#272727!important}body.dark-mode .toggle-btn.active{color:#fff}.project-toggle{margin-bottom:2rem}.project-view{opacity:0;transition:opacity .3s}.project-view.active-view{opacity:1}.toggle-btn .mobile-text{display:none}.toggle-btn .desktop-text{display:inline}@media (max-width:768px){.toggle-btn .desktop-text{display:none}.toggle-btn .mobile-text{display:inline}}.right-align{justify-content:flex-end;display:flex}.purple{color:#a48afb}.availability-badge{border:1px solid var(--border-default);background-color:var(--bg-sidebar);border-radius:10px;align-items:center;gap:8px;width:fit-content;margin-top:.75rem;padding:4px 4px 4px 12px;display:inline-flex;box-shadow:0 1px 2px #0000000d}.availability-text{width:100%}.availability-text-mobile{display:none}.availability-text-desktop{display:inline}@media (max-width:768px){availability-badge{max-width:100%}.availability-text-mobile{display:inline}.availability-text-desktop{display:none}}.no-cta{padding:4px 10px}.availability-dot{background-color:#22c55e;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 #22c55e66}@keyframes pulse{0%{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:0 0 #22c55e00}}.availability-text{color:var(--text-primary);font-size:.875rem}.availability-cta{border:1px solid var(--border-default);color:var(--text-primary);background-color:var(--bg-body);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:.875rem;text-decoration:none;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;display:inline-flex;position:relative}.availability-cta:before{content:"";opacity:0;z-index:-1;background:linear-gradient(90deg,gold,#6927da,#000,#e1467c) 0 0/300% 100%;border-radius:8px;transition:opacity .2s;position:absolute;inset:-1px}.availability-cta:after{content:"";background-color:var(--bg-body);z-index:-1;border-radius:6px;position:absolute;inset:0}.availability-cta:hover{transform:scale(1.02z);box-shadow:0 4px 12px #0000001f}.availability-cta:hover:before{opacity:1;animation:2s linear infinite gradientFlow}@keyframes sidebarFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.floating-cta{opacity:0;pointer-events:none;z-index:100;background-color:#fff;border:none;border-radius:12px;align-items:center;gap:12px;padding:9px 12px;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(100px);box-shadow:0 4px 24px #0000001f}.floating-cta:before{content:"";z-index:-2;background:linear-gradient(90deg,gold,#b01eff,#000,#e1467c) 0 0/300% 100%;border-radius:14px;animation:3s linear infinite gradientFlow;position:absolute;inset:-1px}.floating-cta:after{content:"";background-color:var(--bg-sidebar);z-index:-1;border-radius:12px;position:absolute;inset:0}@keyframes gradientFlow{0%{background-position:0%}to{background-position:300%}}@keyframes floatUp{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}.floating-cta-visible{pointer-events:auto;animation:.6s cubic-bezier(.16,1,.3,1) forwards floatUp}.floating-cta-text{color:var(--text-secondary);margin:0;font-size:.925rem}.floating-cta-btn{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}button,a.project-button,a.project-button-primary,a.home-project-button,a.footer-button,a.floating-cta-btn,a.availability-cta,.copy-btn,.resume-btn{transition:transform .15s cubic-bezier(.34,1.56,.64,1);transform:scale(1)}button:active,a.project-button:active,a.project-button-primary:active,a.home-project-button:active,a.footer-button:active,a.floating-cta-btn:active,a.availability-cta:active,.copy-btn:active,.resume-btn:active{transform:scale(.95)}code{background-color:var(--bg-surface);border:1px solid var(--border-default);color:var(--accent-primary);border-radius:6px;padding:4px 6px;font-family:monospace;font-size:.875rem}.active-link{position:relative}.active-link:after{content:attr(aria-label);background-color:var(--btn-primary-bg);color:var(--bg-body);white-space:nowrap;opacity:0;pointer-events:none;z-index:200;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:500;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.active-link:before{content:"";opacity:0;pointer-events:none;z-index:200;border:5px solid #0000;border-top-color:#111927;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)translateY(4px)}.active-link:hover:after,.active-link:hover:before{opacity:1;transform:translate(-50%)translateY(0)}body.evening-mode .active-link:after{color:#111927;background-color:#fff}body.evening-mode .active-link:before{border-top-color:#fff}@media (pointer:fine){*{cursor:none!important}}.custom-cursor{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;z-index:99999;mix-blend-mode:difference;background-color:#d2d6db26;border:2px solid #d2d6db;border-radius:50%;width:32px;height:32px;transition:width .2s cubic-bezier(.34,1.56,.64,1),height .2s cubic-bezier(.34,1.56,.64,1),border-color .2s,background-color .2s;display:none;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000001a,inset 0 1px #fff6}@media (pointer:fine){.custom-cursor{display:block}}.custom-cursor-active{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background-color:#875bf740;border:2.25px solid #875bf7;width:36px;height:36px;box-shadow:0 0 0 1px #875bf733,inset 0 1px #fff6}.custom-cursor-dark{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background-color:#d2d6db40;border-color:#e5e7eb}.custom-cursor-dark.custom-cursor-active{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background-color:#875bf740;border:2.25px solid #a48afb}@media (prefers-reduced-motion:reduce){.custom-cursor{display:none}}
