body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.hero{background-color:#e8e8e3;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding-bottom:4rem;position:relative;width:100vw}.hero-name{color:#181818;font-size:clamp(2rem,15vw,100rem);font-weight:900;line-height:1;margin:0;text-align:center;text-transform:uppercase}.hero-info{box-sizing:border-box;display:flex;justify-content:space-between;margin-top:1rem;padding:0 2.5rem;width:100%}.info-block{color:#6b645c;font-size:2.5rem;line-height:1.5;max-width:40%}.align-left{text-align:left}.align-right{text-align:right}.role-slide{animation:slide 10s infinite;display:block}.role-wrapper{height:3.75rem;overflow:hidden}@keyframes slide{0%,20%{transform:translateY(0)}25%,45%{transform:translateY(-3.75rem)}50%,70%{transform:translateY(-7.5rem)}75%,95%{transform:translateY(-11.25rem)}to{transform:translateY(0)}}.scroll-down{bottom:6rem;color:#181818;cursor:default;font-size:.9rem;left:50%;position:absolute;text-align:center;transform:translateX(-50%)}.scroll-icon{animation:bounce 2s infinite;font-size:2rem;line-height:1}.scroll-text{color:#6b645c;font-size:.9rem;letter-spacing:1px;margin-top:.3rem;text-transform:uppercase}@media screen and (max-width:768px){.hero-info{align-items:center;flex-direction:column;gap:2rem;margin-top:2rem;padding:0 1.5rem}.info-block{font-size:1.25rem;max-width:100%}.align-left,.align-right,.info-block{text-align:center}.role-wrapper{display:inline-block;height:1.875rem;vertical-align:bottom}@keyframes slide{0%,20%{transform:translateY(0)}25%,45%{transform:translateY(-1.875rem)}50%,70%{transform:translateY(-3.75rem)}75%,95%{transform:translateY(-5.625rem)}to{transform:translateY(0)}}.scroll-down{bottom:8rem}}#root,body,html{box-sizing:border-box;height:100%;margin:0;overflow-x:hidden;padding:0}*,:after,:before{box-sizing:inherit}.app{height:100vh;overflow-x:hidden;position:relative;width:100vw}.dock-container{bottom:20px;left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);width:auto;z-index:9999}.dock{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:16px;box-shadow:0 20px 40px #0003,0 0 0 1px #ffffff1a;display:flex;justify-content:center;padding:16px;pointer-events:auto;transform-origin:bottom center;transition:all .3s ease-out}.dock.hovered{background:#ffffff26;box-shadow:0 25px 50px #0000004d,0 0 0 1px #ffffff1a;transform:scale(1.05)}.dock-items{align-items:flex-end;display:flex;gap:1.5em}.dock-item{cursor:pointer;flex-direction:column;height:60px;justify-content:flex-end;position:relative;transform-origin:bottom center;transition:width .2s,height .2s;width:60px}.dock-icon,.dock-item{align-items:center;display:flex}.dock-icon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #fff3;border-radius:12px;box-shadow:0 4px 12px #6b645c;font-size:24px;height:100%;justify-content:center;transition:box-shadow .2s ease;width:100%}.dock-tooltip{background:#6b645c;border-radius:6px;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:12px;left:50%;opacity:0;padding:6px 12px;pointer-events:none;position:absolute;top:-48px;transform:translateX(-50%);transition:all .2s ease;white-space:nowrap;z-index:1000}.dock-tooltip.visible{opacity:1;transform:translateX(-50%) translateY(0)}.dock-tooltip.hidden{opacity:0;transform:translateX(-50%) translateY(8px)}.tooltip-arrow{border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid #6b645c;height:0;left:50%;position:absolute;top:100%;transform:translateX(-50%);width:0}@media (max-width:768px){.dock-container{bottom:10px;max-width:400px;width:95%}.dock{box-sizing:border-box;padding:10px;width:100%}.dock-items{gap:.5em;justify-content:space-around;width:100%}.dock-item{height:40px;width:40px}.dock-icon{border-radius:8px;font-size:18px}.dock-tooltip{display:none}}.education-parallax-container{background:#e8e8e3;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;height:100vh;overflow:hidden;position:relative;width:100vw}.background-particles{height:100%;left:0;opacity:.2;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.education-static-title{animation:fadeInDown .8s ease-out;color:#181818;font-size:5rem;font-weight:900;left:2rem;letter-spacing:-.5px;pointer-events:none;position:fixed;text-transform:uppercase;top:2rem;z-index:1000}.education-title-underline{animation:expandWidth .8s ease-out .3s backwards;background:linear-gradient(90deg,#6b645c,#181818);height:3px;margin-top:.4rem;width:50px}.progress-indicator{display:flex;flex-direction:column;gap:.75rem;position:fixed;right:2rem;top:50%;transform:translateY(-50%);z-index:1000}.progress-bar{background:#00000026;border-radius:10px;height:16px;transition:all .4s cubic-bezier(.4,0,.2,1);width:3px}.progress-bar.active{background:linear-gradient(180deg,#111,#764ba2);box-shadow:0 0 12px #667eea99;height:32px}.sticky-number{align-items:baseline;color:#6b645c;display:flex;font-size:8rem;font-weight:900;left:12%;line-height:1;pointer-events:none;position:fixed;top:50%;transform:translateY(-50%);z-index:10}.number-zero{animation:pulse 2s ease-in-out infinite}.number-digit{color:#181818;display:inline-block;font-size:8rem;opacity:.5;text-shadow:0 0 30px #667eea40;transform:scale(1) rotate(0deg);transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.number-digit.changing{opacity:.3;transform:scale(1.15) rotate(8deg)}.tech-stack-container{background:linear-gradient(135deg,#667eea0d,#764ba20d);border:1px solid #0000000f;border-radius:12px;box-sizing:border-box;margin-bottom:1.5rem;opacity:0;overflow:hidden;padding:1.5rem;perspective:1000px;transform:translateY(30px) rotateX(10deg);transition:all .8s cubic-bezier(.4,0,.2,1);width:100%}.tech-stack-container.active{opacity:1;transform:translateY(0) rotateX(0deg)}.tech-stack-grid{grid-gap:.875rem;box-sizing:border-box;display:grid;gap:.875rem;grid-template-columns:repeat(3,1fr)}.tech-badge{align-items:center;background:#fff;border:2px solid #00000014;border-radius:12px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;justify-content:center;opacity:0;overflow:hidden;padding:1rem .5rem;position:relative;transform:scale(.5) rotateY(90deg);transition:all .4s cubic-bezier(.34,1.56,.64,1)}.tech-stack-container.active .tech-badge{animation:techBadgeFlip .8s cubic-bezier(.34,1.56,.64,1) forwards}.tech-badge:hover{border-color:var(--tech-color);box-shadow:0 12px 32px #0000002e,0 0 0 3px var(--tech-color),0 0 20px var(--tech-color);transform:translateY(-8px) scale(1.08) rotate(-2deg)}.tech-badge:hover .tech-glow{opacity:.25;transform:translate(-50%,-50%) scale(2)}.tech-badge:hover .tech-icon{transform:scale(1.15) rotate(5deg)}.tech-icon{animation:techIconFloat 3s ease-in-out infinite;font-size:2.25rem;margin-bottom:.6rem;transition:all .4s cubic-bezier(.34,1.56,.64,1);z-index:2}.tech-badge:first-child .tech-icon{animation-delay:0s}.tech-badge:nth-child(2) .tech-icon{animation-delay:.3s}.tech-badge:nth-child(3) .tech-icon{animation-delay:.6s}.tech-badge:nth-child(4) .tech-icon{animation-delay:.9s}.tech-badge:nth-child(5) .tech-icon{animation-delay:1.2s}.tech-badge:nth-child(6) .tech-icon{animation-delay:1.5s}.tech-name{font-size:.8rem;line-height:1.2;transition:all .3s ease;z-index:2}.tech-badge:hover .tech-name{color:var(--tech-color);transform:scale(1.05)}.tech-glow{border-radius:50%;filter:blur(25px);height:80px;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .5s cubic-bezier(.34,1.56,.64,1);width:80px;z-index:1}.map-container{animation:fadeIn 1s ease-out .5s backwards;bottom:3rem;height:200px;position:fixed;right:8%;width:280px;z-index:900}.map-frame{background:#fff;border:2px solid #fffc;border-radius:12px;box-shadow:0 8px 32px #00000026;height:100%;overflow:hidden;position:relative;width:100%}.map-frame iframe{height:100%;left:0;position:absolute;top:0;width:100%}.map-label{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-top:1px solid #0000000d;bottom:0;color:#333;display:flex;font-size:.85rem;font-weight:600;gap:.5rem;left:0;padding:.5rem .75rem;position:absolute;right:0}.map-location-icon{font-size:1rem}.map-location-text{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scrollable-container{height:100%;overflow-y:scroll;position:relative;scroll-behavior:smooth;width:100%}.initial-spacing{height:30vh}.scroll-hint{align-items:center;animation:bounce 2s ease-in-out infinite;color:#999;display:flex;font-size:1rem;font-style:italic;font-weight:500;height:100%;justify-content:center}.scroll-arrow{animation:bounceArrow 2s ease-in-out infinite;font-size:1.5rem;margin-top:.5rem;text-align:center}.education-card-wrapper{align-items:center;display:flex;justify-content:flex-end;min-height:85vh;padding-left:25%;padding-right:12%;position:relative}.education-card{background-color:#fff;border:1px solid #0000000f;border-radius:16px;box-shadow:0 4px 20px #00000014;max-width:90%;overflow:hidden;padding:2rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:480px}.education-card.active{box-shadow:0 12px 40px #898986}.card-shine{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);height:100%;left:-200%;pointer-events:none;position:absolute;top:0;transform:skewX(-20deg);transition:left .6s ease;width:50%}.card-shine.active{left:-100%}.card-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.card-degree{-webkit-text-fill-color:#0000;background:#434342;-webkit-background-clip:text;background-clip:text;color:#434342;font-size:2rem;font-weight:700;letter-spacing:-.3px;line-height:1.3;margin:0 0 .5rem}.card-degree.active{animation:slideInRight .5s ease-out}.card-school{color:#555;font-size:1.1rem;font-weight:500;margin:0}.card-school.active{animation:slideInRight .5s ease-out .1s backwards}.card-date-badge{background:#898986;border-radius:8px;box-shadow:0 2px 8px #898986;color:#fff;font-size:.85rem;font-weight:600;padding:.4rem .8rem;white-space:nowrap}.card-location{align-items:center;color:#666;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;margin-bottom:1rem}.location-icon{font-size:1rem}.card-description{color:#555;font-size:1rem;font-weight:400;line-height:1.6;margin:0;white-space:"pre-line"}.card-description.active{animation:fadeIn .6s ease-out .2s backwards}.end-spacing{height:15vh}@keyframes expandWidth{0%{width:0}to{width:50px}}@keyframes pulse{0%,to{opacity:.08}50%{opacity:.15}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bounceArrow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes techBadgeFlip{0%{opacity:0;transform:scale(.5) rotateY(90deg)}60%{opacity:1;transform:scale(1.1) rotateY(-10deg)}to{opacity:1;transform:scale(1) rotateY(0deg)}}@keyframes techIconFloat{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-6px) rotate(2deg)}75%{transform:translateY(6px) rotate(-2deg)}}@media (max-width:1024px){.sticky-number{font-size:5rem;left:8%}.number-digit{font-size:6rem}.education-card-wrapper{padding-left:20%;padding-right:8%}.map-container{height:180px;right:5%;width:240px}}@media (max-width:768px){.tech-stack-container{padding:1rem}.tech-stack-grid{gap:.6rem;grid-template-columns:repeat(3,1fr)}.tech-badge{padding:.75rem .4rem}.tech-icon{font-size:1.5rem;margin-bottom:.4rem}.tech-name{font-size:.7rem}.education-static-title{font-size:1.5rem;left:1.5rem;top:1.5rem}.sticky-number{font-size:4rem;left:5%}.number-digit{font-size:5rem}.education-card-wrapper{justify-content:center;padding-left:5%;padding-right:5%}.education-card{padding:1.5rem;width:100%}.card-degree{font-size:1.3rem}.card-school{font-size:1rem}.card-date-badge{font-size:.75rem;padding:.35rem .6rem}.card-description{font-size:.95rem}.progress-indicator{right:1rem}.map-container{bottom:2rem;height:150px;right:5%;width:200px}.map-label{font-size:.75rem;padding:.4rem .6rem}.initial-spacing{height:25vh}.education-card-wrapper{min-height:80vh}}.project-container{background-color:#e8e8e3;box-sizing:border-box;min-height:100vh;overflow-y:auto;padding:4rem 2rem;position:relative;width:100vw}.project-header{animation:fadeInDown .8s ease-out;margin-bottom:4rem;text-align:center}.project-title{color:#181818;font-size:clamp(2.5rem,5vw,4rem);font-weight:900;letter-spacing:-1px;margin-bottom:1rem;text-transform:uppercase}.project-subtitle{color:#6b645c;font-size:clamp(1rem,2vw,1.25rem);margin:0 auto;max-width:600px}.project-content-wrapper{align-items:flex-start;display:flex;flex-wrap:wrap;gap:3rem;justify-content:center;margin:0 auto;max-width:1400px}.project-list{display:flex;flex:0 0 300px;flex-direction:column;gap:1rem}.project-item{background:#f9f9f4;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000000d;cursor:pointer;padding:1.5rem;transition:all .3s ease}.project-item.selected{background:#fff;border-color:#667eea;box-shadow:0 8px 24px #667eea33;transform:translateX(8px)}.project-item:hover{box-shadow:0 6px 20px #0000001a}.project-name{color:#181818;font-size:1.1rem;font-weight:700;margin-bottom:.5rem;transition:color .3s ease}.project-item.selected .project-name{color:#667eea}.project-number{color:#6b645c;font-size:.85rem;font-weight:600}.detail-panel{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001a;flex:1 1 600px;min-width:300px;padding:2.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.detail-panel.animating{opacity:0;transform:translateY(20px) scale(.98)}.detail-header{margin-bottom:2rem}.detail-title{-webkit-text-fill-color:#0000;background:#555;-webkit-background-clip:text;background-clip:text;color:#181818;font-size:clamp(1.5rem,2.5vw,2rem);font-weight:800;margin-bottom:1rem}.featured-badge{background:#898986;border-radius:6px;color:#fff;display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:1px;margin-bottom:1rem;padding:.4rem .8rem;text-transform:uppercase}.project-description{color:#555;font-size:1.1rem;line-height:1.8;margin-bottom:2rem}.tech-stack-section{margin-bottom:2rem;width:100%}.section-title{color:#181818;font-size:1rem;font-weight:700;letter-spacing:1px;margin-bottom:1.5rem;text-transform:uppercase}.tech-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));width:100%}.tech-badge-item{align-items:center;background:#f9f9f4;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:120px;padding:1.25rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.tech-badge-item:hover{background:#fff;border-color:var(--tech-color);box-shadow:0 8px 16px #00000026;transform:translateY(-4px)}.tech-icon{height:48px;margin-bottom:.75rem;object-fit:contain;transition:transform .3s ease;width:48px}.tech-badge-item:hover .tech-icon{transform:scale(1.15) rotate(5deg)}.tech-name{color:#333;font-size:.9rem;font-weight:600;text-align:center}.button-container{display:flex;gap:1rem;margin-top:2rem}.github-button{align-items:center;border:none;border-radius:10px;display:flex;flex:1 1;font-size:1rem;font-weight:700;gap:.5rem;justify-content:center;padding:1rem 2rem;text-align:center;text-decoration:none;transition:all .3s ease}.github-button:hover{box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.github-button.disabled{background:#e8e8e3;color:#999;cursor:not-allowed;opacity:.5}.github-button.disabled:hover{box-shadow:none;transform:none}.github-button.enabled{background:#555;color:#fff;cursor:pointer;opacity:1}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.project-container{height:auto;min-height:100vh;padding:2rem 1rem}.project-content-wrapper{flex-direction:column;gap:2rem}.project-list{flex:1 1 auto;order:2;width:100%}.detail-panel{flex:1 1 auto;min-width:0;order:1;padding:1.5rem;width:100%}.project-list{order:1}.detail-panel{order:2}.project-item{padding:1rem}.tech-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.tech-badge-item{min-height:100px;padding:1rem .5rem}.tech-icon{height:36px;width:36px}}.contact-container{background-color:#e8e8e3;box-sizing:border-box;min-height:100vh;overflow:hidden;padding:4rem 2rem;position:relative;width:100vw}.contact-background{height:100%;left:0;opacity:.2;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.contact-content{margin:0 auto;max-width:1400px;position:relative;z-index:1}.contact-header{margin-bottom:4rem;opacity:0;text-align:center}.contact-header.visible{animation:fadeInUp .8s ease-out forwards}.contact-title{color:#181818;font-size:clamp(2.5rem,5vw,4rem);font-weight:900;letter-spacing:-1px;margin-bottom:1rem;text-transform:uppercase}.shimmer-line{animation:shimmer 3s infinite;background:linear-gradient(90deg,#0000,#667eea66,#0000);background-size:1000px 100%;border-radius:2px;height:4px;margin:0 auto 1.5rem;width:80px}.contact-subtitle{color:#6b645c;font-size:clamp(1rem,2vw,1.25rem);margin:0 auto;max-width:600px}.contact-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:3rem;justify-content:center}.contact-info-column{display:flex;flex:1 1 400px;flex-direction:column;gap:1.5rem;max-width:500px}.info-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;display:flex;gap:1rem;opacity:0;padding:1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.info-card.visible{animation:slideInLeft .8s ease-out forwards}.info-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateX(8px)}.info-icon-wrapper{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:10px;color:#667eea;font-size:1.5rem;padding:1rem}.info-content{flex:1 1}.info-label{color:#6b645c;font-size:.85rem;font-weight:600;letter-spacing:1px;margin-bottom:.25rem;text-transform:uppercase}.info-value{color:#181818;font-size:1rem;font-weight:600}.copy-actions{display:flex;gap:.5rem}.copy-button{align-items:center;background:#0000;border:none;border-radius:8px;color:#6b645c;cursor:pointer;display:flex;font-size:1.2rem;padding:.75rem;transition:all .3s ease}.copy-button:hover{background:#667eea1a}.copy-button.success{color:#10b981}.copy-button.link{color:#667eea;text-decoration:none}.socials-column{flex:1 1 400px;max-width:500px;opacity:0}.socials-column.visible{animation:slideInRight .8s ease-out forwards}.socials-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.social-card{align-items:center;background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column;gap:.75rem;padding:2rem 1.5rem;text-align:center;text-decoration:none;transition:all .4s cubic-bezier(.4,0,.2,1)}.social-card:hover{box-shadow:0 12px 32px #0000002e;transform:translateY(-8px) scale(1.05)}.social-icon{font-size:2.5rem;transition:transform .3s ease}.social-card:hover .social-icon{transform:scale(1.2) rotate(8deg)}.social-name{color:#181818;font-size:1rem;font-weight:700;margin-bottom:.25rem}.social-handle{color:#6b645c;font-size:.85rem}.particle{animation:float ease-in-out infinite;background:#667eea4d;border-radius:50%;pointer-events:none;position:absolute}@keyframes fadeInUp{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-100px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}@keyframes float{0%,to{transform:translateY(0) translateX(0)}50%{transform:translateY(-15px) translateX(8px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@media (max-width:768px){.contact-container{height:auto;min-height:100vh;padding:2rem 1rem}.contact-grid{flex-direction:column;gap:2rem}.contact-info-column,.socials-column{flex:1 1 100%;max-width:100%;width:100%}.socials-grid{gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:400px){.socials-grid{grid-template-columns:1fr}}.info-card{padding:1rem}}
/*# sourceMappingURL=main.3f845ed7.css.map*/