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}.gradient-button{background:var(--primary-color);border-radius:5px;color:#fff;display:inline-block;font-weight:500;overflow:hidden;padding:.8rem 1.5rem;position:relative;text-decoration:none;transition:all .3s ease;z-index:1}.gradient-button:hover{color:#fff;transform:translateY(-2px)}.gradient-hover-effect{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:-1}.gradient-hover-effect div{animation:effect 3s linear infinite;background:linear-gradient(90deg,#de004b,#bf46ff 49%,#00d4ff);border-radius:40rem;filter:blur(20px);height:10rem;opacity:.5;transition:.4s;width:10rem}.gradient-button:hover .gradient-hover-effect div{height:8rem;width:8rem}@keyframes effect{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, 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")}:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:ease;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}.swiper-lazy-preloader{border:4px solid #007aff;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:8px;bottom:var(--swiper-pagination-bottom,8px);left:0;top:auto;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:#000;background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:50%;border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:8px;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:.2;opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:8px;width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px))}button.swiper-pagination-bullet{-webkit-appearance:none;appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{background:var(--swiper-theme-color);background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:1;opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:auto;left:var(--swiper-pagination-left,auto);right:8px;right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:6px 0;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px;margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:inherit;color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:#00000040;background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-theme-color);background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:4px;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{height:100%;left:0;top:0;width:4px;width:var(--swiper-pagination-progressbar-size,4px)}.swiper-pagination-lock{display:none}.button{-webkit-appearance:none;appearance:none;background:#0000;border-width:0;box-sizing:border-box;cursor:pointer;font:inherit;min-width:10em;padding:0 8px 12px;position:relative}.button-top{align-items:center;color:#fff;display:flex;justify-content:center;padding:8px 16px;position:relative;text-align:center;text-shadow:0 -1px #00000040;transform:translateY(0);transition-duration:.2s;transition-property:transform;-webkit-user-select:none;user-select:none;z-index:0}.button:active .button-top{transform:translateY(6px)}.button-top:after{background-image:radial-gradient(#cd3f64,#9d3656);border-radius:4px;box-shadow:inset 0 0 0 1px #fff3,0 1px 2px 1px #fff3;box-sizing:initial;color:#fff;content:"";height:100%;position:absolute;text-align:center;transition-duration:.2s;transition-property:border-radius,padding,width,transform;width:100%;z-index:-1}.button:active .button-top:after{border-radius:6px;padding:0 2px}.button-bottom{background-color:#803;background-image:radial-gradient(4px 8px at 4px calc(100% - 8px),#ffffff40,#0000),radial-gradient(4px 8px at calc(100% - 4px) calc(100% - 8px),#ffffff40,#0000),radial-gradient(16px at -4px 0,#fff,#0000),radial-gradient(16px at calc(100% + 4px) 0,#fff,#0000);border-radius:8px/16px 16px 8px 8px;bottom:4px;box-shadow:0 2px 3px 0 #00000080,inset 0 -1px 3px 3px #0006;box-sizing:initial;height:calc(100% - 10px);left:4px;padding-top:6px;position:absolute;transition-duration:.2s;transition-property:border-radius,padding-top;width:calc(100% - 8px);z-index:-1}.button:active .button-bottom{border-radius:10px 10px 8px 8px/8px;padding-top:0}.button-base{background-color:#00000026;border-radius:12px;box-shadow:0 1px 1px 0 #ffffffbf,inset 0 2px 2px #00000040;height:calc(100% - 4px);left:0;position:absolute;top:4px;width:100%;z-index:-2}.projects-grid{grid-gap:2.5rem;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin:0 auto;max-width:1200px;padding:2rem}@media (min-width:1200px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:1199px) and (min-width:800px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:799px){.projects-grid{grid-template-columns:1fr}}.swiper{padding-bottom:50px;padding-top:50px;width:100%}.swiper-slide{background-position:50%;background-size:cover;display:flex;height:730px!important;justify-content:center;width:460px!important}.project-card{backface-visibility:hidden;background:#1a1a1a;border-radius:12px;display:flex;flex-direction:column;height:100%;opacity:1;padding:2rem;transform:translateZ(0);transition:all .3s ease;width:100%;will-change:transform,opacity}.project-image{background:#2a2a2a;border-radius:10px;height:250px;margin-bottom:1.5rem;overflow:hidden;width:100%}.project-image img{backface-visibility:hidden;height:100%;object-fit:cover;transform:translateZ(0);transition:transform .3s ease;width:100%;will-change:transform}.project-card:hover .project-image img{transform:scale(1.05)}.project-card:hover{transform:translateY(-5px)}.project-card h3{color:#fff;font-size:1.75rem;margin-bottom:1rem;min-height:3.5rem}.project-card p{color:#ccc;flex-grow:1;font-size:1.1rem;line-height:1.6;margin-bottom:1.5rem;min-height:5rem}.tech-used{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1.5rem;min-height:3rem}.tech-badge{align-items:center;background-color:var(--primary-color);border-radius:20px;color:#fff;cursor:pointer;display:inline-block;font-size:.9rem;margin:.25rem;padding:.5rem 1rem;text-decoration:none;transition:all .3s ease}.tech-badge:hover{background-color:var(--secondary-color);box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.project-links{display:flex;gap:1.5rem;justify-content:center;margin-top:auto}.project-links .gradient-button{font-size:1.1rem;margin:0;padding:.8rem 1.5rem}.project-links a{background:#4a4a4a;border-radius:5px;color:#fff;font-size:1.1rem;padding:.6rem 1.2rem;text-decoration:none;transition:background .3s ease}.project-links a:hover{background:#5a5a5a}.video-modal-overlay{align-items:center;background-color:#000000bf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.video-modal-content{background:#1a1a1a;border-radius:8px;max-height:90vh;max-width:90vw;padding:20px;position:relative;width:auto}.video-modal-close{align-items:center;background:#f44;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:30px;justify-content:center;position:absolute;right:-15px;top:-15px;transition:background-color .3s;width:30px}.video-modal-close:hover{background:red}.video-modal-content video{border-radius:4px;max-height:80vh}.skills-categories{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:1200px}.skill-category{background:#1e212c;border-radius:12px;box-shadow:0 4px 6px #0000001a;grid-column:span 1;overflow:hidden}.skill-category.expanded{grid-column:span 2}.category-header{align-items:center;background:#23242a;border-bottom:1px solid #18191a;cursor:pointer;display:flex;justify-content:space-between;padding:1rem 1.5rem;transition:background-color .2s}.category-header:hover{background:#2a2d36}.category-title{color:#fff;font-size:1.2rem;font-weight:600}.category-icon{color:#e63946;font-size:.9rem;transition:transform .2s}.skills-container{background:#23242a;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));height:100%;padding:1.5rem;position:relative;top:-30px}.skill-card{background:#23242a;margin:0 auto}@media (max-width:992px){.skills-categories{grid-template-columns:1fr}.skill-category,.skill-category.expanded{grid-column:span 1}.skills-container{grid-template-columns:repeat(3,1fr)}}.section-header{align-items:center;display:flex;gap:1rem;justify-content:center;margin-bottom:2rem;position:relative}.section-header h2{margin:0}.toggle-all-btn{background:#23242a;border:2px solid #e63946;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;position:absolute;right:0;transition:all .2s ease}.toggle-all-btn:hover{background:#e63946;transform:translateY(-2px)}.toggle-all-btn:active{transform:translateY(0)}.certifications-section{background:var(--background-color);padding:4rem 2rem}.section-title{color:var(--text-color);font-size:2.5rem;margin-bottom:3rem;text-align:center}.certifications-container{display:grid;grid-template-columns:repeat(2,1fr);justify-items:center;margin:0 auto;max-width:1200px}.certification-card{background:#1e212c;border-radius:8px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;height:250px;max-width:500px;padding:2rem;text-align:center;transition:transform .3s ease;width:100%}.certification-card:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-5px)}.certification-title{align-items:center;color:#f5f6fa;display:flex;font-size:1.5rem;justify-content:center;margin-bottom:1rem;min-height:3.5rem}.certification-issuer{color:#e0e0e0;font-size:1.1rem;margin-bottom:.5rem;min-height:1.5rem}.certification-date{color:#e0e0e0;font-size:.9rem;margin-bottom:1.5rem;min-height:1.2rem}.certification-link{background:var(--primary-color);border-radius:5px;color:#fff;display:inline-block;margin-top:auto;padding:.8rem 1.5rem;text-decoration:none;transition:background-color .3s ease}.certification-link:hover{background:var(--primary-color-dark)}@media (max-width:768px){.certifications-section{padding:3rem 1rem}.section-title{font-size:2rem}.certifications-container{grid-template-columns:1fr}.certification-card{max-width:100%}}:root{--primary-color:#3498db;--secondary-color:#2c3e50;--text-color:#333;--light-color:#f8f9fa;--dark-color:#343a40}*{box-sizing:border-box;margin:0;padding:0}body{background:#18191a;color:#e0e0e0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}.header{animation:headerFooterGradientMove 18s ease-in-out infinite;background:radial-gradient(ellipse at 30% 0,#3498db55 0,#0000 60%),radial-gradient(ellipse at 70% 0,#e6394655 0,#0000 60%),linear-gradient(90deg,#23242a 60%,#2c3e50);background-size:200% 200%;color:#f5f6fa;padding:2.5rem 0 2rem;position:relative;text-align:center}.profile-img{animation:fadeInDown 1.2s;background:#23242a;border:4px solid #fff2;border-radius:50%;box-shadow:0 4px 16px #0000002e;height:110px;margin-bottom:1.2rem;object-fit:cover;width:110px}.gradient-name{animation:fadeInDown 1.2s .1s backwards;color:#fff;font-size:3rem;font-weight:700;margin-bottom:.5rem;text-shadow:2px 2px 8px #0003}.header-tagline{animation:fadeInDown 1.2s .2s backwards;color:#e0e0e0;display:block;font-size:1.1rem;letter-spacing:.02em;margin-bottom:1.5rem}.animated-header{animation:fadeInDown 1s}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.header nav{display:flex;gap:2.5rem;justify-content:center;margin-top:1.5rem}.header nav a{color:#fff;font-size:1.1rem;font-weight:500;margin:0 1rem;position:relative;text-decoration:none;transition:color .3s}.header nav a:after{background:#e63946;bottom:-4px;content:"";display:block;height:2px;left:0;position:absolute;transition:width .3s;width:0}.header nav a:hover{color:#e63946}.header nav a:hover:after{width:100%}.section{background:#23242a;border-radius:18px;box-shadow:0 4px 16px #00000026;margin:3.5rem auto 2rem;max-width:1200px;padding:4rem 2rem}.section:first-of-type{margin-top:4.5rem}.section h2{background:none;color:#f5f6fa;font-size:2rem;margin-bottom:2rem;text-align:center}.about-content{align-items:center;display:flex;gap:2rem}.about-image{flex:1 1;text-align:center}.about-image img{border-radius:50%;box-shadow:0 4px 8px #0000001a;height:auto;max-width:250px}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.project-card{background:#1e212c;border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:1.5rem;transition:transform .3s ease}.project-links{margin-top:1rem}.project-links a{color:#3498db;color:var(--primary-color);margin-right:1rem}.skills-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(5,1fr);justify-items:center;margin-left:auto;margin-right:auto;margin-top:2rem;max-width:1200px}.skill-card{align-items:center;background:#18191a;border-radius:12px;box-shadow:0 4px 16px #00000040;color:#fff;display:flex;flex-direction:column;height:180px;justify-content:center;max-height:180px;max-width:180px;min-height:180px;min-width:180px;padding:1.5rem 1rem;transition:transform .2s,box-shadow .2s;width:180px}.skill-card:hover{box-shadow:0 8px 32px #00000059;transform:translateY(-8px) scale(1.03)}.skill-icon{color:#e63946;font-size:2rem;margin-bottom:.8rem}.skill-title{color:#fff;font-size:1.1rem;font-weight:700;margin-bottom:.4rem}.skill-subtitle{color:#b0b3b8;font-size:.9rem;text-align:center}@media (max-width:1200px){.skills-container{grid-template-columns:repeat(4,1fr)}}@media (max-width:992px){.skills-container{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.skills-container{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.skills-container{grid-template-columns:1fr}}.contact-content{margin:0 auto;max-width:600px;text-align:center}.email-link{background:#3498db;background:var(--primary-color);border-radius:5px;color:#fff;display:inline-block;font-weight:500;margin:2rem 0;padding:.75rem 1.5rem;text-decoration:none}.social-links{display:flex;gap:2rem;justify-content:center}.resume-button,.social-links a{color:#fff;text-decoration:none}.resume-button{background:#3498db;background:var(--primary-color);border-radius:5px;display:inline-block;font-weight:500;margin-top:1.5rem;padding:.8rem 1.5rem;transition:all .3s ease}.resume-button:hover{background:#2c3e50;background:var(--secondary-color);box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.resume-link{margin-top:2rem}.about-text{flex:1 1;max-width:600px}.footer{animation:headerFooterGradientMove 18s ease-in-out infinite;background:radial-gradient(ellipse at 30% 0,#3498db55 0,#0000 60%),radial-gradient(ellipse at 70% 0,#e6394655 0,#0000 60%),linear-gradient(90deg,#23242a 60%,#2c3e50);background-size:200% 200%;color:#e0e0e0;margin-top:auto;padding:1.5rem;text-align:center}@keyframes headerFooterGradientMove{0%{background-position:0 50%,100% 50%,0 50%}50%{background-position:100% 50%,0 50%,100% 50%}to{background-position:0 50%,100% 50%,0 50%}}@media (max-width:768px){.about-content{flex-direction:column}.header nav a{display:block;margin:.5rem 0}.about-image img{max-width:150px}.resume-link{margin-top:3rem}}.accent,a{color:#9a8c98}.timeline-container{border-left:3px solid #23242a;margin:2rem 0 2rem 2rem;padding-left:2rem;position:relative}.timeline-item{align-items:flex-start;display:flex;margin-bottom:2.5rem;position:relative}.timeline-dot{background:#9a8c98;border:3px solid #23242a;border-radius:50%;box-shadow:0 0 0 4px #18191a;height:1.2rem;left:-2.1rem;position:absolute;top:.5rem;width:1.2rem}.timeline-content{background:#23242a;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:600px;min-width:250px;padding:1.2rem 1.5rem}.timeline-container-horizontal{cursor:grab;margin:2rem 0;overflow-x:auto;overflow-y:hidden;padding:2rem 0;white-space:nowrap}.timeline-track{min-height:260px}.timeline-item-horizontal,.timeline-track{align-items:center;display:flex;position:relative}.timeline-item-horizontal{flex-direction:column;margin:0 2.5rem;max-width:340px;min-width:320px}.timeline-dot-horizontal{background:#9a8c98;border:3px solid #23242a;border-radius:50%;height:1.2rem;margin-bottom:.5rem;width:1.2rem;z-index:2}.timeline-content-horizontal{background:#23242a;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#e0e0e0;margin-top:.5rem;max-width:320px;min-width:260px;padding:1.2rem 1.5rem}.timeline-track:before{background:#23242a;content:"";height:6px;left:0;position:absolute;right:0;top:.6rem;z-index:1}.timeline-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.5rem}.timeline-title{color:#f5f6fa;font-size:1.1rem;font-weight:700}.timeline-date{color:#9a8c98;font-size:.95rem;margin-left:1rem}.timeline-tech{color:#b0b3b8;font-size:.95rem;margin-bottom:.5rem}.timeline-desc{color:#e0e0e0;font-size:.98rem;margin:.5rem 0 0 1.2rem}.timeline-horizontal-outer{margin:2rem 0;min-height:260px;overflow-x:auto;overflow-y:visible;padding:2.5rem 140px 2rem;position:relative;white-space:nowrap}.timeline-horizontal-line{height:320px;min-width:900px;position:relative}.timeline-horizontal-bar{background:#9a8c98;border-radius:4px;height:8px;left:0;position:absolute;right:0;top:110px;z-index:1}.timeline-bubble-container{position:absolute;top:0;transform:translateX(-50%);z-index:2}.timeline-bubble{background:#23242a;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#f5f6fa;cursor:pointer;font-size:1rem;margin-bottom:.5rem;max-width:220px;min-width:160px;padding:.8rem 1.2rem;position:relative;text-align:center;transition:opacity .2s,transform .2s}.timeline-bubble.hidden{opacity:.2;pointer-events:auto;transform:scale(.9)}.timeline-bubble-content{margin-bottom:.3rem}.timeline-bubble-title{font-size:1.05rem;font-weight:700;margin-bottom:.2rem}.timeline-bubble-date{color:#9a8c98;font-size:.95rem}.timeline-bubble-pin{border-left:10px solid #0000;border-right:10px solid #0000;border-top:14px solid #23242a;bottom:-14px;height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:3}.timeline-years{display:flex;justify-content:space-between;left:0;pointer-events:none;position:absolute;right:0;top:140px}.timeline-year-label{color:#b0b3b8;font-size:1rem;min-width:60px;text-align:center}.timeline-bubble-container.bubble-up{top:0}.timeline-bubble-container.bubble-down{top:120px}.timeline-year-group{min-width:1px;z-index:2}.timeline-bubble-stack,.timeline-year-group{align-items:center;display:flex;flex-direction:column;position:absolute;top:0;transform:translateX(-50%)}.timeline-bubble-stack{gap:18px;left:50%;margin-bottom:0}.timeline-year-label-stacked{display:none}.timeline-years-below{display:flex;justify-content:space-between;left:0;pointer-events:none;position:absolute;right:0;top:250px}.timeline-year-label-stacked-real{color:#b0b3b8;font-size:1rem;min-width:60px;position:relative;text-align:center;top:0}.timeline-btn{background:#9a8c98;border:none;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:.8rem 2rem;transition:background .2s,transform .2s}.timeline-btn:hover{background:#bfa6bf;transform:translateY(-2px) scale(1.03)}.reset-name-btn{background:#3498db;background:var(--primary-color);border:none;border-radius:6px;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:500;margin:.5rem auto 1rem;padding:.5rem 1.2rem;transition:background .2s,transform .2s}.reset-name-btn:hover{background:#2c3e50;background:var(--secondary-color);transform:translateY(-2px) scale(1.03)}.reset-name-btn-inline{background:#3498db;background:var(--primary-color);border:none;border-radius:5px;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;display:inline-block;font-size:.95rem;font-weight:500;height:2.2rem;margin-left:.5rem;padding:.3rem .8rem;transition:background .2s,transform .2s;vertical-align:middle}.reset-name-btn-inline:disabled{cursor:not-allowed;opacity:.6}.reset-name-btn-inline:hover:not(:disabled){background:#2c3e50;background:var(--secondary-color);transform:translateY(-2px) scale(1.03)}.reset-name-btn-icon{align-items:center;background:#3498db;background:var(--primary-color);border:none;border-radius:50%;box-shadow:0 2px 8px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:2.2rem;justify-content:center;margin-left:.3rem;padding:0;transition:background .2s,transform .2s;width:2.2rem;z-index:2}.reset-name-btn-icon:disabled{cursor:not-allowed;opacity:.6}.reset-name-btn-icon:hover:not(:disabled){background:#2c3e50;background:var(--secondary-color);transform:translateY(-4px)}.uh-link{color:inherit;cursor:pointer;display:inline-block;font-weight:inherit;text-decoration:none;transition:none}.uh-link:hover .uh-letter{animation:shakeY .7s infinite}.uh-letter{display:inline-block}@keyframes shakeY{0%{transform:translateY(0)}20%{transform:translateY(-2px)}40%{transform:translateY(2px)}60%{transform:translateY(-2px)}80%{transform:translateY(2px)}to{transform:translateY(0)}}.piano-link{color:inherit;cursor:pointer;display:inline-block;font-weight:inherit;text-decoration:none;transition:none}.piano-link:hover .uh-letter{animation:shakeY .7s infinite}.piano-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.piano-modal{background:#23242a;border-radius:16px;box-shadow:0 8px 32px #00000059;color:#fff;max-width:90vw;min-width:320px;padding:2.5rem 2rem 2rem;position:relative;text-align:center}.close-modal-btn{background:#3498db;background:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:2rem;padding:.5rem 1.5rem;transition:background .2s,transform .2s}.close-modal-btn:hover{background:#2c3e50;background:var(--secondary-color);transform:translateY(-2px)}
/*# sourceMappingURL=main.bcff78d4.css.map*/