@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.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.1y4-pdgsjb-pw.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.3lvt2whj97whp.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.2uwcyprjm3xu3.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.0k62hbripvv8p.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.3-6t-g6q0vh0a.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-20C4,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.2bn3s6zvc0dyp.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%}._09p2wq_className{font-family:Inter,Inter Fallback;font-style:normal}._09p2wq_variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.Y5pOSq_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.Y5pOSq_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg-body:#fff;--bg-sidebar:#fcfcfd;--radius-sm:.675rem;--radius-md:.75rem;--bg-card:#fcfcfc;--bg-surface:#f3f4f6;--bg-metric:#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;--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:#1f1f1f;--bg-card:#212121;--bg-surface:#1c1c1c;--bg-metric:#2a2a2a;--bg-surface-secondary:#1c1c1c;--bg-hover-tint:#1c1c1c;--text-primary:#ededed;--text-secondary:#ededed;--text-tertiary:#d1d5db;--text-muted:#9ca3af;--text-faint:#9ca3af;--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:#ededed;--text-footer-title:#1c1c1c;--text-footer-link:#5b616b;--glass-bg:#18181bcc;--glass-border:#ffffff1a;--shadow-color:#0009;--shadow-pill:#ffffff0d}html{scroll-behavior:smooth;font-size:clamp(1rem,1rem + .57vw - 8.6184px,1.375rem)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}*,:before,:after{box-sizing:border-box;margin:0;font-family:Inter,sans-serif}@property --overlay-alpha{syntax:"<number>";inherits:true;initial-value:.9}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;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}:root{--fs-display:3rem;--fs-title:2.5rem;--fs-metric:2rem;--fs-heading:1.75rem;--fs-body:1rem;--fs-caption:.875rem;--fs-long:1.2rem;--fs-label:1rem;--lh-long:1.3;--load-ease:cubic-bezier(.22, 1, .36, 1);--load-dur:.6s}@media (max-width:1199px){:root{--fs-long:1.05rem;--fs-label:.875rem}}@media (max-width:809px){:root{--fs-long:.9rem;--fs-label:.75rem}}@media (min-width:1920px){:root{--fs-display:3.5rem;--fs-title:2.75rem;--fs-metric:2.25rem;--fs-heading:2rem}}@media (max-width:809px){:root{--fs-display:2.25rem;--fs-title:1.875rem;--fs-metric:1.5rem;--fs-heading:1.275rem}}h1{font-size:var(--fs-display);color:var(--text-primary);letter-spacing:-.04em;font-weight:600;line-height:110%}h2{font-size:var(--fs-title);color:var(--text-primary);letter-spacing:-.04em;font-weight:600;line-height:110%}.content-heading{color:color-mix(in srgb, var(--text-tertiary) 90%, var(--bg-body))}h3{font-size:var(--fs-metric);color:var(--text-secondary);letter-spacing:-.04em;font-weight:500;line-height:120%}h4{font-size:var(--fs-heading);color:var(--text-secondary);letter-spacing:-.02em;font-weight:500;line-height:110%}h5{color:var(--text-primary);font-size:1.125rem;font-weight:450;line-height:142%}h6{color:var(--text-tertiary);font-size:1.125rem;font-weight:500;line-height:125%}p{color:var(--text-tertiary);font-weight:400}.text-lg{color:var(--text-muted);font-size:1.125rem;font-weight:400;line-height:142%}.light{color:var(--text-faint);font-weight:400}.inner-body{flex-direction:row;gap:2rem;height:100vh;padding:1.25rem;display:flex}.static-container{background-color:var(--bg-sidebar);z-index:10;border-radius:.5rem;flex-direction:column;justify-content:space-between;gap:1.5rem;width:30%;height:calc(100vh - 2.5rem);padding:2rem;transition:background-color .3s;display:flex;position:fixed;top:1.25rem;left:1.25rem}.inner-container-top{animation:fadeUp var(--load-dur) var(--load-ease) .2s both;flex-direction:column;row-gap:1.5rem;margin-top:1.5rem;display:flex}.main-content{flex-direction:column;gap:6rem;display:flex}.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(1.5625rem)}to{opacity:1;transform:translateY(0)}}@supports (corner-shape:squircle){:where(*),:before,:after{corner-shape:squircle}.experience-dot,.availability-dot,.thumbnail-tag,.nav-container{corner-shape:round}}.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:1199px){.resume-btn-text{font-size:0}.resume-btn-text:before{content:"CV";visibility:visible;font-size:1rem}}.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:radial-gradient(120% 150% at 18% -10%, #ffffff80, #fff0 55%), radial-gradient(110% 130% at 85% 125%, color-mix(in srgb, var(--accent-border) 22%, transparent), transparent 60%), color-mix(in srgb, var(--accent-border) 8%, transparent);-webkit-backdrop-filter:blur(.5rem)saturate(1.6);backdrop-filter:blur(.5rem)saturate(1.6);border-radius:var(--radius-sm);border:1px solid var(--accent-border);height:1.75rem;box-shadow:inset 0 1px 1px #fffc, inset 0 -1px 1px color-mix(in srgb, var(--accent-border) 35%, transparent), inset 0 0 .625rem #ffffff4d, 0 .125rem .375rem color-mix(in srgb, var(--accent-border) 16%, transparent), 0 .0625rem .125rem var(--shadow-color);opacity:0;pointer-events:none;will-change:transform, width;width:0;transition:transform .4s cubic-bezier(.25,1,.5,1),width .4s cubic-bezier(.25,1,.5,1);position:absolute;left:0}.nav-backdrop:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffffb3,#0000);border-radius:1px;height:1px;position:absolute;top:1px;left:20%;right:20%}.nav-container.nav-liquid .nav-link{z-index:10}body.dark-mode .nav-backdrop{background:radial-gradient(120% 150% at 18% -10%, #fff3, #fff0 55%), radial-gradient(110% 130% at 85% 125%, color-mix(in srgb, var(--accent-border) 30%, transparent), transparent 60%), color-mix(in srgb, var(--accent-border) 14%, transparent);box-shadow:inset 0 1px 1px #ffffff4d, inset 0 -1px 1px color-mix(in srgb, var(--accent-border) 45%, transparent), inset 0 0 .625rem #ffffff0f, 0 .125rem .5rem color-mix(in srgb, var(--accent-border) 20%, transparent), 0 .0625rem .125rem var(--shadow-color)}body.dark-mode .nav-backdrop:before{background:linear-gradient(90deg,#0000,#fff6,#0000)}.inner-container-title{flex-direction:column;row-gap:.75rem;display:flex}.inner-container-title h1{text-wrap:pretty;font-size:clamp(2.25rem, 3.05vw, var(--fs-display))}body:not(.dark-mode) .inner-container-title>.text-lg,body:not(.dark-mode) .nav-link:not(.active-nav),body:not(.dark-mode) .resume-btn:not(:hover),body:not(.dark-mode) .personal-info p{color:var(--text-secondary)}.inner-container-bottom{animation:fadeUp var(--load-dur) var(--load-ease) .2s both;flex-direction:column;row-gap:1.5rem;display:flex}@media screen and (max-width:809px){.inner-container-bottom{row-gap:.75rem}}.home-image-pic{border-radius:.5rem;width:3rem;height:3rem}.external-links{flex-direction:row;column-gap:.5rem;display:flex}.active-link{width:1.75rem;height:1.75rem;color:var(--text-muted);border-radius:.5rem;justify-content:center;align-items:center;text-decoration:none;transition:color .2s,background-color .2s;display:inline-flex;position:relative}.nav-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:1.25rem;height:1.25rem;transition:transform .2s}.active-link:hover,.active-link:focus-visible{background-color:var(--bg-metric);color:var(--accent-border)}.active-link:hover .nav-icon,.active-link:focus-visible .nav-icon{transform:scale(1.2)}body:not(.dark-mode) .active-link:hover,body:not(.dark-mode) .active-link:focus-visible{color:var(--accent-primary)}.scroll-container{width:100%;min-width:0;animation:fadeUp var(--load-dur) var(--load-ease) .4s both;flex-direction:column;gap:1.5rem;margin-left:calc(30% + 2rem);padding:2rem;display:flex}.scroll-container .active-group,.scroll-container .active-section{opacity:1;animation:none}@media (prefers-reduced-motion:reduce){.inner-container-top,.inner-container-bottom,.scroll-container{animation:none}}.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:809px){.title-and-tab-section{flex-direction:column;gap:1rem}}.projects{flex-direction:column;gap:.75rem;animation:.5s forwards fadeSlideIn;display:flex}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.project-card{aspect-ratio:16/9;background:var(--bg-card);color:inherit;border-radius:.75rem;text-decoration:none;transition:box-shadow .3s;display:block;position:relative;overflow:hidden;box-shadow:0 .72px 1.3px -.83px #0000,0 2.75px 4.94px -1.67px #0000,0 12px 21.6px -2.5px #0000}.project-card:hover,.project-card:focus-visible{box-shadow:0 .72px 1.3px -.83px #00000040,0 2.75px 4.94px -1.67px #00000040,0 12px 21.6px -2.5px #00000040}.project-card:before,.project-card:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;z-index:5;transition:opacity .3s;position:absolute;inset:0}.project-card:before{border:1px solid #333}body.dark-mode .project-card:before{border-color:#ededed}.project-card:after{border:2px solid #8a8a8a26}.project-card:hover:before,.project-card:hover:after,.project-card:focus-visible:before,.project-card:focus-visible:after{opacity:1}.project-card img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.project-overlay{--overlay-alpha:.85;opacity:1;background:linear-gradient(to bottom, #73737300 0%, rgba(0, 0, 0, var(--overlay-alpha)) 100% );align-items:flex-end;padding:3.5rem .75rem .75rem;transition:padding-top .4s cubic-bezier(.2,0,.2,1),--overlay-alpha .4s;display:flex;position:absolute;bottom:0;left:0;right:0}.project-overlay>*{opacity:1;transform:none}.project-card .thumbnail-body{opacity:0;max-height:0;transition:max-height .4s cubic-bezier(.2,0,.2,1),opacity .3s,transform .3s;overflow:hidden;transform:translateY(.625rem)}.project-card:hover .project-overlay,.project-card:focus-visible .project-overlay{--overlay-alpha:1;padding-top:6rem}.project-card:hover .thumbnail-body,.project-card:focus-visible .thumbnail-body{opacity:1;max-height:12rem;transition-delay:.1s;transform:translateY(0)}.thumbnail-title{color:#fff;line-height:125%}.thumbnail-text{flex-direction:column;gap:.25rem;display:flex}.thumbnail-body{flex-direction:column;gap:.75rem;display:flex}.thumbnail-desc{color:#9da4ae;font-size:var(--fs-body)}.thumbnail-tags{flex-flow:row;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.thumbnail-tag{-webkit-backdrop-filter:blur(.75rem)saturate(150%);backdrop-filter:blur(.75rem)saturate(150%);color:#fff;font-family:var(--font-geist-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;background:#0000004d;border:1px solid #ffffff80;border-radius:62.4375rem;flex-shrink:0;padding:.25rem .75rem;font-size:.75rem;line-height:1.3}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.metrics-grid-balanced .work-metrics p{text-wrap:balance}.work-metrics{background-color:var(--bg-metric);border-radius:.75rem;flex-direction:column;justify-content:space-between;gap:.5rem;min-height:7.5rem;padding:1rem;display:flex}.work-metrics p{font-size:1rem}.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)}body.dark-mode .project-button{color:#fff;border-color:#ffffff4d}body.dark-mode .project-button:hover{background-color:#ffffff1a}.cta-links{gap:1rem;display:flex}.cta-links .project-button,.cta-links .project-button-primary{text-align:center;flex:1;width:100%;display:block}@media (max-width:809px){.cta-links{flex-direction:column}}.footer{background-color:var(--bg-footer);border-radius:1rem;flex-direction:column;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;display:flex}.footer-links{flex-direction:column;gap:.5rem;width:auto;display:flex}.footer-link{color:var(--text-footer-title);width:fit-content;font-size:1rem;line-height:142%;text-decoration:none;transition:color .2s}.footer-link:hover,.footer-link:focus-visible{color:var(--text-footer-link)}.footer-title{color:var(--text-footer-title)}.footer-button{color:#1f2a37;background-color:#f3f4f6;border:1px solid #d2d6db;border-radius:999px;width:fit-content;padding:.5rem .75rem;font-size:1rem;font-weight:450;text-decoration:none;box-shadow:0 .125rem .25rem #0000001a}.footer-button:hover{background-color:#fff}body.dark-mode .footer-button{color:#f9fafb;box-shadow:none;background-color:#1c1c1c;border-color:#1c1c1c}body.dark-mode .footer-button:hover{background-color:#384250}.copyright-text{font-size:var(--fs-caption);color:var(--text-footer-link)}.copyright-section{flex-direction:column;gap:.25rem;display:flex}.active-section{animation-delay:.125s}.work-experience{flex-direction:column;gap:2.5rem;display:flex}.experience-list{flex-direction:column;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.experience-row{--experience-line:1.75rem;align-items:flex-start;gap:1.5rem;display:flex}.experience-logo-tile{width:calc(var(--experience-line) * 2);height:calc(var(--experience-line) * 2);background-color:var(--bg-card);border:1px solid var(--border-default);border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.experience-mark{background-color:var(--text-muted);display:block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.experience-text{flex-direction:column;min-width:0;display:flex}.experience-company-name{font-size:1.125rem;font-weight:500;line-height:var(--experience-line);letter-spacing:-.02em;color:var(--text-primary)}.experience-role{font-size:1.125rem;font-weight:400;line-height:var(--experience-line);letter-spacing:-.02em;color:var(--text-muted);flex-wrap:wrap;align-items:center;column-gap:.5rem;display:flex}.experience-dot{background-color:var(--text-faint);border-radius:50%;width:.375rem;height:.375rem}body:not(.dark-mode) .experience-logo-invert-light{filter:invert()hue-rotate(180deg)}@media screen and (max-width:809px){.experience-row{--experience-line:1.5625rem;gap:1rem}.experience-company-name,.experience-role{font-size:1rem}}.tech-stack{flex-direction:column;gap:1.5rem;display:flex}.tech-stack-list{flex-flow:wrap;gap:.5rem;display:flex}.tech-tile{--tile-rest:#6b7280;--tile-lit:#111827;--tile-grey:.8;background-color:var(--bg-card);border:1px solid var(--border-default);color:var(--tile-rest);cursor:default;border-radius:.75rem;outline:none;padding:.5rem;transition:transform .2s,border-color .2s,color .2s;display:flex;position:relative}body.dark-mode .tech-tile{--tile-rest:#b8bcc4;--tile-lit:#fff;--tile-grey:1.2}.tech-tile .skill-icon{width:2.5rem;height:2.5rem;transition:filter .2s}.tech-tile:not(.is-mono) .skill-icon{filter:grayscale(1) brightness(var(--tile-grey))}.tech-tooltip{z-index:3;background:var(--text-primary);color:var(--text-inverse);white-space:nowrap;opacity:0;pointer-events:none;border-radius:.5rem;padding:.5rem .75rem;font-size:.75rem;font-weight:600;line-height:1.125rem;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,.25rem);box-shadow:0 .75rem 1rem -4px #00000014,0 .25rem .375rem -2px #00000008}.tech-tile:focus-visible,.tech-tile.is-active{border-color:var(--tile-lit);color:var(--tile-lit);transform:translateY(-2px)}.tech-tile:focus-visible .skill-icon,.tech-tile.is-active .skill-icon{filter:none}.tech-tile:focus-visible .tech-tooltip,.tech-tile.is-active .tech-tooltip{opacity:1;transform:translate(-50%)}@media (hover:hover){.tech-tile:hover{border-color:var(--tile-lit);color:var(--tile-lit);transform:translateY(-2px)}.tech-tile:hover .skill-icon{filter:none}.tech-tile:hover .tech-tooltip{opacity:1;transform:translate(-50%)}}@media (hover:none){.tech-tile{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}@media (prefers-reduced-motion:reduce){.tech-tile,.tech-tile .skill-icon,.tech-tooltip{transition:none}}.ways-section{flex-direction:column;gap:1.5rem;display:flex}.ways-list{margin:0;padding:0;list-style:none}.way-row{border-top:1px solid var(--border-default);grid-template-columns:2rem minmax(0,1fr) minmax(0,2fr);align-items:baseline;column-gap:1rem;padding:1.75rem 0;display:grid}.way-row:last-child{border-bottom:1px solid var(--border-default)}.way-number{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:1.125rem}.way-title{margin:0}.way-description{color:var(--text-muted);max-width:38rem;font-size:1.125rem;line-height:142%}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.way-row{animation:linear both way-row-reveal;animation-timeline:view();animation-range:entry}}}@keyframes way-row-reveal{0%{opacity:.3}to{opacity:1}}@media (max-width:640px){.way-row{grid-template-columns:2rem minmax(0,1fr);row-gap:.5rem}.way-description{grid-column:2}}.about-section{flex-direction:column;gap:6rem;display:flex}.about-block{flex-direction:column;gap:3rem;display:flex}.about-intro{align-items:flex-start;gap:1.25rem;display:flex}.about-portrait,.about-intro-text{flex:1 0 0;min-width:0}.about-portrait{border-radius:1rem;height:30rem;position:relative;overflow:hidden}.about-portrait img{object-fit:cover;object-position:50% 12%;width:100%;height:100%;position:absolute;inset:0}.about-intro-text{flex-direction:column;gap:1rem;display:flex}.about-section h4{line-height:1.357}.about-intro-text h4,.about-topic h4{color:color-mix(in srgb, var(--text-tertiary) 90%, var(--bg-body))}.about-topic{flex-direction:column;gap:1.5rem;display:flex}.about-topic.about-built-intro{gap:1rem}.about-built-text{flex-direction:column;gap:1.5rem;display:flex}.about-text{font-size:var(--fs-long);line-height:var(--lh-long);color:var(--text-secondary)}.about-photos{gap:1.25rem;display:flex}.about-photos img{object-fit:cover;border-radius:1.25rem;flex:1 0 0;min-width:0;height:17.5rem}.built-list{flex-direction:column;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.built-row{--preview-x:50%;position:relative}.built-link{color:inherit;letter-spacing:-.02em;align-items:baseline;gap:1.25rem;font-size:1.25rem;line-height:2.375rem;text-decoration:none;display:flex}.built-name{min-width:6rem;color:var(--text-primary);font-weight:500}.built-description{color:var(--text-muted);font-weight:400}.built-preview{bottom:calc(100% - .25rem);left:var(--preview-x);z-index:3;opacity:0;pointer-events:none;border-radius:.75rem;width:7.5rem;height:5.625rem;transition:opacity .15s,transform .15s;position:absolute;overflow:hidden;transform:translate(-50%,.25rem);box-shadow:0 12px 16px -4px #00000040}.built-preview img{object-fit:cover;width:100%;height:100%}@media (hover:hover){.built-row:hover .built-preview{opacity:1;transform:translate(-50%)}.built-row:hover .built-description{color:var(--text-secondary)}}@media (max-width:809px){.about-intro{flex-direction:column}.about-portrait,.about-intro-text{flex:none}.about-portrait{width:100%;height:26rem}.about-photos{flex-direction:column}.about-photos img{flex:none;width:100%}.built-link{flex-direction:column;gap:0}.built-description{line-height:1.4}.built-preview{display:none}}.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}.full-width-img-group{aspect-ratio:16/9;background:var(--bg-card);border-radius:1rem;align-items:center;max-height:42.5rem;overflow:hidden}.media-wrapper{background:var(--bg-card);border-radius:1rem;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.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:809px){.ratio-box{aspect-ratio:16/9}.ratio-four-three,.ratio-rect-box{aspect-ratio:4/3}}.portfolio-img{object-fit:cover;border-radius:.75rem;width:100%;max-width:100%;height:auto;display:block}.project-title-and-caption{flex-direction:column;gap:.5rem;display:flex}.project-title-and-caption h2{text-wrap:pretty}.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-size:var(--fs-label);text-transform:uppercase;font-weight:400}ul{flex-direction:column;gap:.5rem;margin:.375rem;padding-left:.5rem;list-style-type:disc;display:flex}.body-text{color:var(--text-secondary);font-size:var(--fs-long);line-height:var(--lh-long)}.role-group{flex-direction:column;gap:.5rem;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}body.dark-mode .feedback-card{background-color:#141414}.bold{color:var(--text-muted);font-weight:450}.subhead-list{flex-direction:column;gap:.875rem;margin-top:1rem;display:flex}.four-img-card-group{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.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}.image-ticker{gap:12px;height:500px;display:flex;overflow:hidden}.image-ticker-column{flex:1 1 0;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 12.5% 87.5%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 12.5% 87.5%,#0000 100%)}.image-ticker-list{animation:image-ticker-up var(--ticker-duration,27s) linear infinite;will-change:transform;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.image-ticker-reverse{animation-direction:reverse}.image-ticker-item{aspect-ratio:1200/904;border-radius:12px;flex:none;overflow:hidden}.image-ticker-img{object-fit:cover;width:100%;height:100%;display:block}@keyframes image-ticker-up{to{transform:translateY(calc(-50% - 6px))}}@media (max-width:809px){.image-ticker{height:250px}}@media (prefers-reduced-motion:reduce){.image-ticker-list{animation:none}}.portfolio-media{aspect-ratio:4/3;object-fit:cover;object-position:center top;background-color:var(--bg-surface);border-radius:.75rem;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-radius:calc(var(--radius-md) + .25rem);border:1px solid var(--border-default);isolation:isolate;width:fit-content;padding:.25rem;display:inline-flex;position:relative}.toggle-base{width:var(--pill-w,0);transform:translateX(var(--pill-x,0));box-sizing:border-box;border-radius:var(--radius-md);z-index:0;pointer-events:none;will-change:transform, width;background:#fff;border:1px solid #0000;transition:transform .4s cubic-bezier(.25,1,.5,1),width .4s cubic-bezier(.25,1,.5,1);position:absolute;top:.25rem;bottom:.25rem;left:0}body.dark-mode .toggle-base{background:#272727}.toggle-backdrop{width:var(--pill-w,0);transform:translateX(var(--pill-x,0));-webkit-backdrop-filter:blur(.5rem)saturate(1.6);backdrop-filter:blur(.5rem)saturate(1.6);border:1px solid var(--border-strong);border-radius:var(--radius-md);z-index:1;pointer-events:none;will-change:transform, width;background:radial-gradient(120% 150% at 18% -10%,#ffffff80,#fff0 55%),#ffffff24;transition:transform .4s cubic-bezier(.25,1,.5,1),width .4s cubic-bezier(.25,1,.5,1);position:absolute;top:.25rem;bottom:.25rem;left:0;box-shadow:inset 0 1px 1px #fffc,inset 0 0 .625rem #ffffff4d,0 .0625rem .125rem #0000000d}.contact-toggle-wrapper.nav-liquid .toggle-btn{z-index:0}.toggle-backdrop:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffffe6,#0000);border-radius:1px;height:1px;position:absolute;top:1px;left:20%;right:20%}.toggle-btn{z-index:2;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.375rem 1rem;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{font-size:var(--fs-body);color:var(--text-primary);justify-content:center;align-items:center;gap:1rem;margin:1rem 0;font-weight:700;display:flex}.copy-btn{background:var(--bg-body);border:1px solid var(--border-strong);cursor:pointer;font-size:var(--fs-caption);color:var(--text-secondary);border-radius:.5rem;align-items:center;gap:.375rem;padding:.375rem .75rem;transition:all .2s;display:flex}.copy-btn:active{transform:scale(.95)}@keyframes fadeIn{0%{opacity:0;transform:translateY(.625rem)}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:809px){body,html{height:auto;overflow-y:auto}.inner-body{flex-direction:column;gap:6rem;height:auto;padding:0;overflow:visible}.nav-container{z-index:1000;background:var(--glass-bg);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);border:1px solid var(--glass-border);border-radius:calc(var(--radius-sm) + .25rem);corner-shape:squircle;width:fit-content;max-width:25rem;box-shadow:0 .25rem 1.25rem var(--shadow-color);justify-content:center;margin:0;padding:.25rem;position:fixed;top:1.5rem;left:1rem}.nav-link,.resume-btn{font-size:.8125rem;line-height:1rem}.nav-backdrop{height:1.5rem}.resume-btn-text{line-height:0}.resume-btn-text:before{font-size:.8125rem;line-height:1rem}.resume-btn svg{width:.8125rem;height:.8125rem}.static-container{box-sizing:border-box;z-index:1;background-color:#0000;border-radius:0;flex-direction:column;justify-content:space-between;gap:4.8rem;width:100%;height:auto;min-height:31.25rem;margin-bottom:0;padding:5.125rem 1rem 0;display:flex;position:relative;top:0;left:0}.inner-container-top{margin-top:0}.work-metrics{padding:.75rem}.work-metrics p{font-size:.9rem;line-height:120%}.inner-container-title h1{line-height:100%}.home-headline-article{display:none}.home-headline:first-letter{text-transform:uppercase}.static-container .personal-info p{font-size:.75rem}.title-and-body-section{gap:.75rem}.scroll-container{box-sizing:border-box;width:100%;height:auto;margin-left:0;padding:0 1rem 4rem;overflow:visible}.text-lg{font-size:var(--fs-long);line-height:var(--lh-long)}.way-number,.way-description{font-size:var(--fs-long)}.four-img-card-group{grid-template-columns:1fr;gap:2rem}.project-images-list{grid-template-columns:1fr;gap:1rem}.research-images-list{gap:3rem}.project-card{aspect-ratio:4/3}.project-card .thumbnail-body{opacity:1;max-height:none;transform:none}.project-overlay{--overlay-alpha:1;background:linear-gradient(to bottom, #73737300 0%, rgba(0, 0, 0, var(--overlay-alpha)) 85%);padding-top:6rem}.project-card:hover{box-shadow:none}.thumbnail-title{font-size:1.275rem}.thumbnail-desc{font-size:.75rem}.thumbnail-tags{gap:.375rem}.thumbnail-tag{padding:.25rem .5rem;font-size:clamp(.5625rem,4.62963vw - .381944rem,.6875rem)}}@media (min-width:810px) and (max-width:1199px){.inner-body{padding:1rem}.static-container{width:24.5rem;height:calc(100vh - 2rem);top:1rem;left:1rem}.scroll-container{margin-left:24rem}.inner-container-title h1{font-size:2.625rem}}@media (min-width:810px) and (max-width:999px){.about-intro{flex-direction:column}.about-portrait,.about-intro-text{flex:none}.about-portrait{width:100%;height:26rem}.about-photos{flex-direction:column}.about-photos img{flex:none;width:100%}.built-link{flex-direction:column;gap:0}.built-description{line-height:1.4}}@media (max-width:809px){.contact-toggle-wrapper{grid-template-columns:1fr 1fr;gap:0;width:100%;padding:.25rem;display:grid}.toggle-btn{text-align:center;width:100%;padding:.625rem 0}}body.dark-mode .contact-toggle-wrapper{background-color:#1c1c1c;border-color:#333}body.dark-mode .toggle-backdrop{background:radial-gradient(120% 150% at 18% -10%,#ffffff29,#fff0 55%),#ffffff14;border-color:#8a8a94;box-shadow:inset 0 1px 1px #ffffff4d,inset 0 0 .625rem #ffffff0f,0 .0625rem .125rem #0000004d}body.dark-mode .toggle-backdrop:before{background:linear-gradient(90deg,#0000,#fff6,#0000)}body.dark-mode .toggle-btn.active{color:#fff}.toggle-btn .mobile-text{display:none}.toggle-btn .desktop-text{display:inline}@media (max-width:809px){.toggle-btn .desktop-text{display:none}.toggle-btn .mobile-text{display:inline}}.availability{container-type:inline-size}.availability-badge{border:1px solid var(--border-default);background-color:var(--bg-sidebar);border-radius:.625rem;align-items:center;gap:.5rem;width:fit-content;max-width:100%;margin-top:.75rem;padding:.25rem .25rem .25rem .75rem;display:inline-flex;box-shadow:0 1px .125rem #0000000d}.availability-text{white-space:nowrap;color:var(--text-primary);flex:none;font-size:.875rem}.availability-text-short,.availability-text-mobile{display:none}.availability-text-desktop{display:inline}@container (max-width:399px){.availability-text-desktop{display:none}.availability-text-mobile{display:inline}}@container (max-width:329px){.availability-text-mobile{display:none}.availability-text-short{display:inline}}.no-cta{padding:.25rem .625rem}.availability-dot{background-color:#22c55e;border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;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 .375rem #22c55e00}to{box-shadow:0 0 #22c55e00}}.availability-cta{white-space:nowrap;--cta-border:1px;padding:calc(.25rem + 1px - var(--cta-border)) calc(.625rem + 1px - var(--cta-border));border:var(--cta-border) solid transparent;color:var(--btn-primary-text);--cta-fill:var(--btn-primary-bg);background:linear-gradient(var(--cta-fill), var(--cta-fill)) padding-box, linear-gradient(var(--border-default), var(--border-default)) border-box;white-space:nowrap;border-radius:.375rem;align-items:center;gap:.25rem;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:hover{--cta-border:2px;--cta-fill:var(--btn-primary-hover);background:linear-gradient(var(--cta-fill), var(--cta-fill)) padding-box, conic-gradient(from var(--ring-angle), gold, #6927da, #000, #e1467c, gold) border-box;animation:2s linear infinite ringSpin;transform:scale(1.02);box-shadow:0 .25rem .75rem #0000001f}.floating-cta{background:linear-gradient(var(--bg-sidebar), var(--bg-sidebar)) padding-box, conic-gradient(from var(--ring-angle), gold, #b01eff, #000, #e1467c, gold) border-box;opacity:0;pointer-events:none;z-index:100;border:1.5px solid #0000;border-radius:calc(.75rem + 1.5px);align-items:center;gap:.75rem;max-width:calc(100vw - 4rem);padding:calc(.5625rem - 1.5px) calc(.75rem - 1.5px);display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(6.25rem);box-shadow:0 .25rem 1.5rem #0000001f}@property --ring-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ringSpin{to{--ring-angle:360deg}}@keyframes floatUp{0%{opacity:0;transform:translateY(6.25rem)}to{opacity:1;transform:translateY(0)}}.floating-cta-visible{pointer-events:auto;animation:.6s cubic-bezier(.16,1,.3,1) forwards floatUp,3s linear infinite ringSpin}.floating-cta-text{min-width:0;font-size:var(--fs-caption);color:var(--text-secondary);margin:0}.floating-cta-btn{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);white-space:nowrap;border-radius:.375rem;flex-shrink:0;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.floating-cta-btn:hover{background-color:var(--btn-primary-hover)}.floating-cta-short{display:none}@media (max-width:809px){.floating-cta{max-width:none;bottom:1rem;left:1rem;right:1rem}.floating-cta-long{display:none}.floating-cta-short{display:inline}}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),background-color .2s;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:.375rem;padding:.25rem .375rem;font-family:monospace;font-size:.875rem}.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:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)translateY(.25rem)}.active-link:before{content:"";opacity:0;pointer-events:none;z-index:200;border:.3125rem solid #0000;border-top-color:#111927;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + .125rem);left:50%;transform:translate(-50%)translateY(.25rem)}.active-link:hover:after,.active-link:hover:before{opacity:1;transform:translate(-50%)translateY(0)}.personal-info{flex-direction:column;gap:.25rem;display:flex}.personal-info p{font-size:var(--fs-body);line-height:120%}.project-card.is-text{background:#000}.project-card.is-text .project-overlay{background:0 0}.thumbnail-links{flex-wrap:wrap;gap:1rem;margin-top:.5rem;display:flex}.thumbnail-links a{color:#fff;text-underline-offset:.25rem;font-weight:500}.card-quote{z-index:2;-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);pointer-events:none;background:#000000a6;border-radius:.75rem;flex-direction:column;gap:.75rem;width:fit-content;min-width:min(20rem,100% - 2.5rem);max-width:min(26rem,100% - 2.5rem);padding:1rem;display:flex;position:absolute;top:1.25rem;right:1.25rem}.card-quote-text{color:#fff;letter-spacing:-.02em;width:0;min-width:100%;font-size:.875rem;line-height:1.25rem}.card-quote-author{white-space:nowrap;color:#9ca3af;letter-spacing:-.02em;font-size:.75rem;font-weight:600;line-height:1.3}@media (max-width:640px){.card-quote{display:none}}.project-card .card-video{object-fit:cover;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}@media (hover:none){.project-card{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}
