*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#5a1a1a #15151500;margin:0;padding:0}html,body,#root{min-height:100dvh}html{background-color:#151515}#root{flex-direction:column;gap:3rem;min-height:100vh;display:flex}body{color:#c4c4c4;background-image:linear-gradient(90deg,#151515,#201111);background-size:cover;background-attachment:fixed;padding:.9rem 8.75rem 2.5rem;font-family:Instrument Sans,system-ui,sans-serif}h1{font-size:2.25rem;font-weight:400}h2{font-size:1.5rem;font-weight:400}h3{font-size:1.25rem;font-weight:400}h4{font-size:1rem;font-weight:400}p{font-size:.875rem;font-weight:400}a{color:#ffd4d4;background-image:linear-gradient(90deg,#c4c4c4,#ff7373);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;text-decoration:none;transition:color .2s,background-size .25s}a:hover{color:#ff7373;background-size:100% 1px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#15151500}::-webkit-scrollbar-thumb{background:#5a1a1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#7a2a2a}@media (width<=768px){#root{gap:1.5rem;padding:1rem}body{padding:1rem .5rem}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1rem}h4{font-size:.875rem}p,a{font-size:.75rem}}.animate-delayed{opacity:0;animation-fill-mode:forwards}@media (width<=768px){.mouse-follower{display:none!important}}nav{-webkit-backdrop-filter:blur(12px);flex-direction:row;justify-content:space-between;align-items:center;padding:0 1rem;display:flex;position:sticky}@media (width<=768px){nav{justify-content:center;align-items:center;gap:.5rem}.logo{margin-right:.5rem;position:static}.hamburger{margin-left:.5rem;position:static}}.nav-links{gap:2rem;list-style:none;display:flex;position:relative}.hamburger{cursor:pointer;color:#fff;margin-left:auto;font-size:1.5rem;display:none}@media (width<=768px){.nav-links{background:#111;flex-direction:column;padding:1rem 0;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.open{display:flex}.nav-links li{text-align:center;margin:.5rem 0}.hamburger{margin-left:0;display:block}.underline{display:none}}.nav-links li{cursor:pointer}.nav-links li h3{color:#979797;will-change:transform;transition:color .2s,transform .2s;display:inline-block}.nav-links li:hover h3{color:#fff;transform:translateY(-2px)scale(1.08)}.nav-links li.active h3{color:#fff}.underline{background:#c4c4c4;height:2px;transition:left .3s,width .3s;position:absolute;bottom:-5px}nav svg{width:2rem;height:2rem}nav .logo{justify-content:left;align-items:center;gap:1rem;display:flex}nav .logo h3{color:#0000;background:linear-gradient(90deg,#c4c4c4,#ff7373);-webkit-background-clip:text;background-clip:text}nav ul{justify-content:right;align-items:center;gap:2rem;list-style:none;display:flex}.intro{flex-direction:row;justify-content:center;align-items:center;gap:2rem;padding:0 1rem;display:flex}.intro .intro-text{flex-direction:column;align-items:flex-start;gap:1.5rem;max-width:45rem;display:flex}.intro .intro-text header{flex-direction:column;gap:.25rem;display:flex}.intro .intro-text header .h1-with-underline h1{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#c4c4c4,#ff7373);-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.5rem}.intro .intro-text header .h1-with-underline img{width:16rem;margin-top:-1.25rem}.intro .intro-text h3{max-width:45rem;line-height:1.5}.intro-resume-btn{letter-spacing:.1em;text-transform:uppercase;color:#c4c4c4;opacity:.5;background-image:none;background-size:unset;border:.0625rem solid #c4c4c44d;border-radius:.375rem;align-items:center;gap:.4rem;padding:.375rem .875rem;font-size:.8rem;transition:color .2s,opacity .2s,border-color .2s;display:flex}.intro-resume-btn:hover{color:#ff7373;opacity:1;background-size:unset;border-color:#ff737380}.intro-resume-icon{font-size:.75rem}.intro-actions{justify-content:center;align-items:center;gap:1rem;display:flex}.intro-social-link{color:#c4c4c4;opacity:.5;background-image:none;background-size:unset;font-size:1.2rem;transition:color .2s,opacity .2s,transform .2s}.intro-social-link:hover{color:#ff7373;opacity:1;background-size:unset;transform:translateY(-2px)}.socials{align-items:center;gap:1.25rem;display:flex}@media (width<=768px){.intro{flex-direction:column;align-items:stretch;gap:1rem;padding:.5rem}.intro .intro-text{text-align:center;align-items:center;max-width:100%;padding:0}.intro .intro-text header .h1-with-underline h1{font-size:2rem}.intro .intro-text h3{max-width:100%;font-size:.7rem;line-height:1.4}.intro .intro-image{order:-1;justify-content:center;margin-top:.5rem;display:flex}.intro .intro-image img{width:90%;max-width:220px;height:auto}}.tech-stack-header{justify-content:center;align-items:center;gap:.5rem;display:flex}.tech-stack-header svg{color:#c4c4c4;width:1.5em;height:1.5rem;transition:transform .2s,color .2s}.tech-stack-header svg:hover{color:#fff;transform:scale(1.1)}.tech-stack-header svg:active{color:#5f5f5f;transform:scale(1.15)}.techstack{flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.carousel-container{flex-direction:row;align-items:center;gap:1rem;width:85%;display:flex}.carousel-window{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.carousel-track{gap:1rem;width:max-content;display:flex}.tech-icon{justify-content:center;align-items:center;min-width:120px;height:120px;display:flex}.tech-icon svg{color:#c4c4c4;width:3.75rem;height:3.75rem;transition:transform .2s,color .2s}.tech-icon svg:hover{color:#fff;transform:scale(1.1)}@media (width<=768px){.tech-icon svg{color:#c4c4c4;width:2.5rem;height:2.5rem;transition:transform .2s,color .2s}.tech-icon{min-width:60px;height:60px}.carousel-track{gap:.15rem}}.arrow{cursor:pointer;color:#c4c4c4;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:none;transition:transform .2s,color .2s}.arrow svg{width:2rem;height:2rem}.arrow:hover{color:#fff;transform:scale(1.15)}.arrow:active{color:#5f5f5f;transform:scale(1.25)}.timeline-wrapper{flex-direction:column;justify-content:center;align-items:center;max-width:100%;padding:0 10rem;display:flex}.timeline-header{margin-bottom:3.5rem}.timeline-header h2{margin:0}.timeline-list{margin:0;padding:0;list-style:none;position:relative}.timeline-list:before{content:"";opacity:.2;background:currentColor;width:.0625rem;position:absolute;top:.375rem;bottom:.375rem;left:.4375rem}.timeline-item{opacity:1;align-items:flex-start;gap:1.25rem;padding:0 0 3rem;display:flex;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-list:before{display:none}.timeline-item:after{content:"";opacity:.2;background:currentColor;width:.0625rem;position:absolute;top:1.1875rem;bottom:0;left:.4375rem}.timeline-item:last-child:after{display:none}.timeline-item:first-child{animation-delay:50ms}.timeline-item:nth-child(2){animation-delay:.15s}.timeline-item:nth-child(3){animation-delay:.25s}.timeline-item:nth-child(4){animation-delay:.35s}.timeline-tag--sap{color:#64b4ff;opacity:1;background-color:#0070b933;border-color:#0070b999}.timeline-tag--develop-for-good{color:#b482ff;opacity:1;background-color:#783cc833;border-color:#783cc899}.timeline-tag--temple-hci-lab{color:#ff6e6e;opacity:1;background-color:#c8282833;border-color:#c8282899}.timeline-dot{z-index:1;background-color:currentColor;border:.125rem solid;border-radius:50%;flex-shrink:0;width:.9375rem;height:.9375rem;margin-top:.25rem;transition:opacity .2s,transform .2s}.timeline-content{flex:1}.timeline-date{letter-spacing:.12em;text-transform:uppercase;opacity:.5;margin:0 0 .375rem}.timeline-event-title{margin:0 0 .5rem;line-height:1.3}.timeline-description{opacity:.8;margin:0;line-height:1.65}.timeline-tag{letter-spacing:.08em;text-transform:uppercase;opacity:.5;cursor:pointer;border:.0625rem solid;border-radius:1.25rem;margin-top:.625rem;padding:.1875rem .625rem;transition:background-color .2s,opacity .2s,transform .2s;display:inline-block}.timeline-tag:hover{opacity:1;filter:brightness(1.2);transform:scale(1.1)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@media (width<=768px){.timeline-wrapper{padding:0 1.25rem}}.projects-wrapper{flex-direction:column;align-items:center;width:100%;max-width:60rem;margin:0 auto;padding:0 2rem;display:flex}.projects-header{margin-bottom:3.5rem}.projects-header h2{margin:0}.projects-grid{grid-template-columns:repeat(2,1fr);justify-items:center;gap:1.5rem;width:100%;display:grid}.projects-grid>*{width:100%}.projects-grid>:last-child:nth-child(odd){grid-column:1/-1;max-width:calc(50% - .75rem)}.project-card{background:#ffffff08;border:.0625rem solid #ffffff14;border-radius:.75rem;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 0 18px 2px #ff737326}.project-card:hover{background:#ff73730a;border-color:#ff737366}.project-thumbnail{aspect-ratio:16/9;background:#ffffff0a;width:100%;position:relative;overflow:hidden}.project-thumbnail:after{content:"";pointer-events:none;background:radial-gradient(#0000 40%,#0009 100%);position:absolute;inset:0}.project-thumbnail img{object-fit:cover;width:100%;height:100%;display:block}.project-thumbnail-placeholder{background:linear-gradient(135deg,#ff737314 0%,#ffffff08 100%);width:100%;height:100%}.project-info{flex-direction:column;flex:1;gap:.4rem;padding:1rem 1.25rem .75rem;display:flex}.project-links{border-top:.0625rem solid #ffffff0f;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.25rem 1rem;display:flex}.project-link{align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.project-name{color:#e0e0e0;margin:0}.project-description{opacity:.6;margin:0;line-height:1.6}@media (width<=768px){.projects-wrapper{padding:0 1.25rem}.projects-grid{grid-template-columns:1fr}.projects-grid>:last-child:nth-child(odd){grid-column:auto;max-width:100%}}.contact-footer{border-top:.0625rem solid #c4c4c41a;justify-content:space-between;align-items:center;margin-top:auto;padding:2rem 0 1rem;display:flex}.contact-logo{opacity:.4;color:#c4c4c4;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.contact-icons{align-items:center;gap:1.25rem;display:flex}.contact-icon-link{color:#c4c4c4;opacity:.5;background-image:none;background-size:unset;font-size:1.2rem;transition:color .2s,opacity .2s,transform .2s}.contact-icon-link:hover{color:#ff7373;opacity:1;background-size:unset;transform:translateY(-2px)}@media (width<=768px){.contact-footer{flex-direction:column;gap:1.25rem}}
