.header{z-index:100;box-sizing:border-box;background-color:#0f172a;width:100%;position:fixed;top:0;left:0}.header-inner{justify-content:space-between;align-items:center;max-width:1140px;margin:0 auto;padding:20px 30px;display:flex}.heading.header-logo a{color:#fff;text-decoration:none;transition:color .2s}.heading.header-logo a:hover{color:#004b98}.header-nav{flex-wrap:wrap;gap:32px;display:flex}.subheading.header-nav a{color:#fff;text-decoration:none;transition:color .2s}.subheading.header-nav a:hover{color:#004b98}.hamburger{z-index:200;cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:space-between;width:28px;height:20px;padding:0;display:none}.hamburger span{background-color:#fff;border-radius:2px;width:100%;height:2px;transition:all .3s;display:block}@media (width<=768px){.hamburger{display:flex}.header-nav{background-color:#1e293b;flex-direction:column;justify-content:center;align-items:center;gap:32px;width:250px;height:100vh;transition:right .3s;position:fixed;top:0;right:-100%}.header-nav.open{right:0}}.hamburger.open span:first-child{transform:translateY(9px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-9px)rotate(-45deg)}.action-link-wrapper{display:inline-flex;position:relative}.action-link{box-sizing:border-box;background-color:#1e293b;border-radius:999px;align-items:center;gap:10px;width:fit-content;height:42px;padding:0 10px;text-decoration:none;transition:background-color .2s,transform .2s;display:inline-flex}.action-link:hover{background-color:#263449;transform:translateY(-1px)}.action-link img{object-fit:contain;width:20px;height:20px}.action-link p{color:#fff;white-space:nowrap;margin:0}.action-link-icon-only{justify-content:center;width:42px;padding:0}.action-link-icon-only img{width:28px;height:28px}.action-link-tooltip{z-index:100;white-space:nowrap;visibility:hidden;opacity:0;pointer-events:none;background:#004b98;border-radius:999px;width:max-content;padding:4px 8px;transition:visibility .2s ease-in,opacity .2s ease-in;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.action-link-wrapper:hover .action-link-tooltip{visibility:visible;opacity:1}.action-link.accent{background-color:#004b98}.action-link.accent:hover{background-color:#0060c4}.action-link.outline{background-color:#0f172a;border:1px solid #757575}.action-link.outline:hover{background-color:#004b98}.action-link.hover-only{background-color:#0f172a}.action-link.hover-only:hover{background-color:#004b98;transform:none}.hero{box-sizing:border-box;background-color:#0f172a;background-image:linear-gradient(90deg,#ffffff0d 1px,#0000 1px),linear-gradient(#ffffff0d 1px,#0000 1px);background-size:60px 60px;width:100%;overflow:hidden}.hero-inner{box-sizing:border-box;justify-content:space-between;align-items:center;gap:40px;max-width:1140px;margin:0 auto;padding:180px 30px 100px;display:flex}.hero-text{flex-direction:column;gap:16px;max-width:600px;display:flex}.subheading.hero-eyebrow{color:#fff;margin:0}.hero-heading{margin:0}.hero-details{flex-direction:column;display:flex}.hero-details p{margin-bottom:6px}.hero-links{align-items:center;gap:16px;display:flex}.hero-profile{flex-direction:column;flex-shrink:0;align-items:center;gap:20px;display:flex}.hero-profile-wrapper{width:clamp(280px,20vw,300px);height:clamp(280px,20vw,300px);transition:transform .3s;position:relative}.hero-profile-image{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.hero-ring{pointer-events:none;transform-origin:50%;width:calc(100% + 20px);height:calc(100% + 20px);animation:12s linear infinite rotateRing;position:absolute;top:-10px;left:-10px}@keyframes rotateRing{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero-ring circle{transition:stroke .3s;animation:6s linear infinite dashFlow,8s ease-in-out infinite dashMorph}@keyframes dashFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-120px}}@keyframes dashMorph{0%{stroke-dasharray:65 30 10 25}50%{stroke-dasharray:40 35 25 15}to{stroke-dasharray:65 30 10 25}}.body-base.hero-tooltip.hero-tooltip{white-space:nowrap;opacity:0;visibility:hidden;background-color:#004b98;border-radius:999px;padding:6px 12px;font-family:JetBrains Mono,monospace;transition:opacity .25s,transform .25s;position:absolute;top:-2.5%;left:50%;transform:translate(-50%)translateY(8px)}.hero-tooltip:after{content:"";border-top:8px solid #004b98;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;top:100%;left:50%;transform:translate(-50%)}.hero-profile-wrapper:hover{transform:scale(.97)}.hero-profile-wrapper:hover .hero-ring circle{stroke:#0060c4}.hero-profile-wrapper:hover .hero-tooltip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.hero-email img{width:clamp(24px,2vw,32px);height:clamp(24px,2vw,32px)}@media (width<=900px){.hero-inner{text-align:center;flex-direction:column;padding-top:140px}.hero-text{align-items:center;max-width:100%}}.project-card{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;margin:0 0 40px;padding:0;transition:transform .2s;display:flex}.project-card:hover{transform:translateY(-2px)}.project-card:hover .project-graphic,.project-card:hover .browser-bar,.project-card:hover .phone-bar{border-color:#004b98}.project-card:hover .browser-url{color:#004b98}.project-card:hover .dot{background-color:#004b98}.project-card:hover .project-title{color:#004b98}.project-graphic{aspect-ratio:7/4;border:3px solid #757575;border-radius:16px;flex-direction:column;margin-bottom:10px;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.browser-bar{background-color:#0f172a;border-bottom:3px solid #757575;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;transition:border-color .2s;display:flex}.body-base.browser-url{color:#757575;margin-left:8px;transition:color .2s}.phone{border:10px solid #0f172a;border-radius:16px;transition:border-color .2s}.phone-bar{background-color:#0f172a;border-radius:0 10px 10px 0;justify-content:center;align-items:flex-end;width:25px;height:80px;padding:0 0 5px 5px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.dot{background-color:#757575;border-radius:50%;width:10px;height:10px;transition:background-color .2s}.project-screenshot{object-fit:cover;flex:1;width:100%}.project-title{margin-bottom:2px;transition:color .2s}.project-subtitle{margin-bottom:2px}.project-description{margin-bottom:10px}.project-footer{justify-content:space-between;align-items:center;display:flex}.tech-icons{display:flex}.tech-icon-wrapper{background-color:#0f172a;border:1px solid #757575;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;margin-left:-8px;transition:background-color .2s;display:flex;position:relative}.tech-icon-wrapper:first-child{margin-left:0}.tech-icon-wrapper:hover{background-color:#004b98}.tech-icon-wrapper img{object-fit:contain;width:24px;height:24px}.tech-icon-tooltip{z-index:100;white-space:nowrap;visibility:hidden;opacity:0;pointer-events:none;background:#004b98;border-radius:999px;width:max-content;padding:4px 8px;transition:visibility .2s ease-in,opacity .2s ease-in;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tech-icon-wrapper:hover .tech-icon-tooltip{visibility:visible;opacity:1}.project-links{gap:8px;display:flex}.projects{background-color:#0f172a;width:100%;overflow:hidden}.projects-inner{box-sizing:border-box;flex-direction:column;justify-content:space-between;align-items:center;gap:40px;max-width:1140px;margin:0 auto;padding:120px 30px 180px;display:flex}.projects-heading{text-align:center;margin:0}.project-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}@media (width<=1080px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.project-grid{grid-template-columns:repeat(1,1fr)}}.skill-pill{box-sizing:border-box;cursor:default;background-color:#0f172a;border:none;border-radius:25px;align-items:center;gap:10px;width:fit-content;padding:5px 10px;transition:background-color .2s;display:inline-flex}.skill-pill img{object-fit:contain;width:20px;height:20px}.skill-pill.outline{border:1px solid #757575}.experience-card{aspect-ratio:9/11;box-sizing:border-box;background-color:#0f172a;border-radius:25px;flex-direction:column;width:clamp(325px,55vw,450px);padding:16px;transition:transform .2s;display:flex;overflow:hidden;container:experience-card/inline-size}.experience-card:hover{transform:translateY(-4px)}.experience-image{aspect-ratio:2;object-fit:cover;border-radius:25px;width:100%;margin-bottom:16px;display:block}.experience-info{flex:1}.experience-title.heading{margin-bottom:2px;font-size:clamp(18px,6cqw,24px);transition:color .2s}.experience-card:hover .experience-title{color:#004b98}.experience-subtitle.subheading{margin-bottom:2px;font-size:clamp(12px,4cqw,16px)}.experience-bullet.body-bullet{margin-left:20px;font-size:clamp(10px,3cqw,14px)}.experience-footer{justify-content:start;align-items:center;gap:12px;display:flex}.experience-skill.body-bullet{background-color:#1e293b;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:clamp(10px,3cqw,14px);display:flex}@media (width<=900px){.experience-image{aspect-ratio:5/2}}.experience-carousel-wrapper{flex-direction:column;align-items:center;gap:24px;display:flex}.experience-carousel{aspect-ratio:9/11;justify-content:center;align-items:center;width:clamp(325px,55vw,450px);display:flex;position:relative}.experience-carousel-slot{cursor:pointer;transition:transform .4s,opacity .4s;position:absolute;top:0}.experience-carousel-arrows{gap:16px;display:flex}.experience-carousel-arrow{color:#fff;cursor:pointer;background-color:#1e293b;border:1px solid #757575;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;font-size:24px;line-height:1;transition:background-color .2s;display:flex}.experience-carousel-arrow:hover{background-color:#004b98}.experience-outer{width:100%;position:relative;overflow:hidden}.experience-dark{background-color:#0f172a;padding-top:150px}.experience{background-color:#1e293b;padding-top:150px}.experience-images{gap:24px;display:flex;position:absolute;top:0;left:0}.experience-images img{border-radius:16px;flex-shrink:0;height:300px}.experience-inner{box-sizing:border-box;flex-direction:column;justify-content:space-between;align-items:center;gap:40px;max-width:1140px;margin:0 auto;padding:120px 30px 180px;display:flex}.experience-heading{text-align:center;margin:0}.portfolio-pill{box-sizing:border-box;cursor:default;background-color:#0f172a;border:none;border-radius:25px;align-items:center;gap:10px;width:fit-content;height:42px;padding:0 10px;transition:background-color .2s;display:inline-flex}.portfolio-pill.button{cursor:pointer}.portfolio-pill.button:hover{background-color:#004b98;transform:none}.portfolio-pill img{object-fit:contain;width:20px;height:20px}.footer{background-color:#0f172a;width:100%;overflow:hidden}.footer-inner{box-sizing:border-box;flex-direction:column;justify-content:space-between;align-items:center;max-width:1140px;margin:0 auto;padding:80px 30px;display:flex}.footer-button{z-index:0;cursor:pointer;background-color:#0f172a;border:1px solid #757575;border-radius:999px;align-items:center;gap:12px;width:fit-content;height:fit-content;padding:12px;transition:background-color .2s;display:flex;position:relative;overflow:hidden}.footer-button:before{content:"";z-index:-1;background:linear-gradient(45deg,#fe0072 45%,#7e01ff 100%);border-radius:50%;width:12px;height:12px;transition:transform .4s;position:absolute;top:50%;left:26px;transform:translate(-50%,-50%)scale(0)}.footer-button:hover:before{transform:translate(-50%,-50%)scale(45)}.footer-button img{object-fit:contain;width:20px;height:20px}.footer-about{flex-direction:row;justify-content:space-between;align-items:center;gap:24px;width:100%;padding:24px 0;display:flex}.footer-links{flex-direction:row;gap:16px;display:flex}.footer-honors{border-bottom:1px solid #757575;flex-flow:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;padding-bottom:24px;display:flex}.footer-legal{flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding-top:24px;display:flex}.project-button{box-sizing:border-box;cursor:pointer;background-color:#0f172a;border:none;border-radius:25px;flex-direction:row;gap:16px;width:100%;height:150px;margin-top:6px;padding:16px;transition:background-color .2s;display:flex;position:relative}.project-button:hover{background-color:#004b98}.project-button-pinned{border:3px solid #004b98;margin-top:0}.project-button-pin{object-fit:contain;width:20px;height:20px;position:absolute;top:16px;right:16px}.project-button-icon{object-fit:cover;border-radius:25px;width:118px;height:100%}.project-button-text{text-align:left;flex-direction:column;flex:1;justify-content:space-between;align-items:flex-start;display:flex}.portfolio{box-sizing:border-box;background-color:#020617;width:100%;height:100vh;padding:16px}.portfolio-grid{grid-template:"header sandbox project-media"60px"project-details sandbox project-media"0fr"project-tech sandbox project-media"0fr"projects sandbox project-media"1fr"about sandbox project-media"1fr"footer sandbox project-media"50px/400px 1fr 0fr;height:100%;transition:grid-template-columns .4s,grid-template-rows .4s;display:grid;overflow:hidden}.tile{scrollbar-width:none;-ms-overflow-style:none;background-color:#1e293b;border-radius:25px;min-width:0;min-height:0;padding:4px;transition:opacity .3s,margin .3s,padding .3s;display:flex;overflow-y:scroll}.tile::-webkit-scrollbar{display:none}.portfolio-header{flex-direction:row;grid-area:header;justify-content:space-between;align-items:center;margin-bottom:10px}.header-buttons{gap:4px;display:flex}.portfolio-project-details{flex-direction:column;grid-area:project-details;margin-bottom:10px;padding:16px}.project-detail-bullets{margin-top:8px;padding-left:20px}.portfolio-project-tech{flex-flow:wrap;grid-area:project-tech;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px;padding:16px;display:flex}.portfolio-projects{flex-direction:column;grid-area:projects;margin-bottom:10px}.portfolio-about{flex-direction:column;grid-area:about;justify-content:space-between;align-items:stretch;margin-bottom:10px;padding:16px;display:flex}.about-profile{flex-direction:row;justify-content:space-between;align-items:stretch;gap:16px;display:flex}.about-profile-image{object-fit:cover;border-radius:25px;width:125px;height:100%}.about-profile-info{flex-flow:wrap;place-content:flex-end;align-items:flex-end;gap:6px;display:flex}.portfolio-footer{grid-area:footer;justify-content:space-between;align-items:center}.footer-links{gap:8px;display:flex}.portfolio-sandbox{overflow:none;flex-direction:column;grid-area:sandbox;gap:6px;margin-left:10px;display:flex}.portfolio-project-media{overflow:none;flex-direction:column;grid-area:project-media;gap:6px;margin-left:10px;display:flex}.portfolio-content{scrollbar-width:none;-ms-overflow-style:none;background-color:#0f172a;border-radius:25px;flex:1;justify-content:flex-start;align-items:flex-start;gap:16px;padding:16px;display:flex;overflow-y:scroll}.portfolio-content::-webkit-scrollbar{display:none}.portfolio-row{flex-direction:row;flex:1;justify-content:flex-start;align-items:flex-start;gap:16px;min-width:0;display:flex}.portfolio-column{flex-direction:column;flex:1;gap:16px;min-width:0;display:flex}.portfolio-column img{object-fit:contain;border-radius:25px;width:100%;height:100%}.portfolio-column img.sandbox-logo{border-radius:0}.portfolio-grid.project-open{grid-template-rows:60px 2fr 1fr 0fr 0fr 50px;grid-template-columns:400px 0fr 1fr}.is-hidden{opacity:0;pointer-events:none;margin:0;padding:0}.portfolio-projects.is-hidden,.portfolio-about.is-hidden,.portfolio-project-details.is-hidden,.portfolio-project-tech.is-hidden{transition:opacity .3s,margin .3s,padding .3s}@media (width<=900px){.portfolio-grid{grid-template:"header"60px"project-details"0fr"project-tech"0fr"projects"1fr"about"1fr"footer"50px"sandbox"0fr"project-media"0fr/1fr;transition:grid-template-rows .4s}.portfolio-sandbox,.portfolio-project-media{margin-left:0}.portfolio-grid.sandbox-open{grid-template-rows:60px 0fr 0fr 0fr 0fr 0fr 1fr 0fr}.portfolio-grid.project-open{grid-template-rows:60px 2fr 1fr 0fr 0fr 0 0fr 2fr;grid-template-columns:1fr}.is-hidden-mobile{opacity:0;pointer-events:none;margin:0;padding:0}.portfolio-projects.is-hidden-mobile,.portfolio-about.is-hidden-mobile,.portfolio-project-details.is-hidden-mobile,.portfolio-project-tech.is-hidden-mobile{transition:opacity .3s,margin .3s,padding .3s}}.slide-up{opacity:0;transition:opacity .2s,transform .2s;display:inline-block;transform:translateY(30px)}.slide-up.is-visible{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;overflow-x:hidden}.title{letter-spacing:-.03em;color:#fff;font-family:Inter;font-size:clamp(36px,5vw + 20px,72px);font-style:normal;font-weight:700;line-height:120%}.heading{letter-spacing:-.02em;color:#fff;font-family:Inter;font-size:clamp(18px,1.2vw + 14px,24px);font-style:normal;font-weight:600;line-height:120%}.subheading{color:#757575;font-family:Inter;font-size:clamp(12px,.8vw + 10px,16px);font-style:normal;font-weight:600;line-height:120%}.body-base{color:#fff;font-family:Inter;font-size:clamp(12px,.8vw + 10px,16px);font-style:normal;font-weight:400;line-height:120%}.body-bullet{color:#fff;font-family:Inter;font-size:clamp(11px,.6vw + 8px,14px);font-style:normal;font-weight:400;line-height:120%}.blue{color:#004b98}
