:root{--text-color:#2a2a2a;--btn-primary-text-color:#2a2a2a;--accent-color:#AADCEC;--bg-color:#ffffff;--bg-light:#f5fafd;--bg-dark:#e6f3f7;--border-color:#d0e6ef;--shadow-sm:0 2px 10px rgba(42,42,42,0.05);--shadow-md:0 5px 20px rgba(42,42,42,0.08);--transition-slow:0.5s cubic-bezier(0.25,0.46,0.45,0.94);--transition-medium:0.3s cubic-bezier(0.25,0.46,0.45,0.94);--transition-fast:0.2s cubic-bezier(0.25,0.46,0.45,0.94);--font-primary:'Proxima Nova','Montserrat',sans-serif;--tag-bg-color:rgba(170,220,236,0.7);--tag-text-color:#2a2a2a;--img-filter:0;}.dark-mode{--text-color:#ffffff;--btn-primary-text-color:#121212;--accent-color:#AADCEC;--bg-color:#121212;--bg-light:#1e1e1e;--bg-dark:#2a2a2a;--border-color:#333c42;--shadow-sm:0 2px 10px rgba(0,0,0,0.2);--shadow-md:0 5px 20px rgba(0,0,0,0.3);--tag-bg-color:rgba(170,220,236,0.9);--tag-text-color:#121212;--img-filter:100%;}*{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;font-size:16px;}body{font-family:var(--font-primary);color:var(--text-color);background-color:var(--bg-color);line-height:1.6;overflow-x:hidden;transition:background-color var(--transition-medium),color var(--transition-medium);font-weight:400;letter-spacing:-0.01em;}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);font-weight:700;color:var(--text-color);letter-spacing:-0.02em;text-align:left;}a{text-decoration:none;color:var(--text-color);transition:color var(--transition-fast);}ul{list-style:none;}img{max-width:100%;height:auto;}.logo img{filter:invert(var(--img-filter));}section{padding:5rem 0;}.container{width:90%;max-width:1200px;margin:0 auto;}.cursor{position:fixed;width:20px;height:20px;border-radius:50%;background-color:transparent;border:2px solid var(--accent-color);pointer-events:none;transform:translate(-50%,-50%);z-index:9999;transition:width 0.2s,height 0.2s,background-color 0.2s;mix-blend-mode:difference;}.cursor-active{width:15px;height:15px;background-color:var(--accent-color);}header{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 5%;background-color:transparent;z-index:100;transition:padding var(--transition-medium);}header.scrolled{padding:1rem 5%;backdrop-filter:blur(10px);}.logo{display:flex;align-items:center;}.logo img{height:20px;width:auto;}.menu-container{position:relative;margin-left:auto;}.menu-toggle{display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent;border:none;width:40px;height:40px;position:relative;}.menu-icon{position:relative;}.menu-icon span{display:block;width:24px;height:2px;background-color:var(--text-color);margin:5px 0;transition:transform var(--transition-medium),opacity var(--transition-medium);}.menu-toggle.active .menu-icon span:nth-child(1){transform:translateY(7px) rotate(45deg);}.menu-toggle.active .menu-icon span:nth-child(2){opacity:0;}.menu-toggle.active .menu-icon span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}.nav-container{position:absolute;top:calc(100% + 1rem);right:0;width:220px;background-color:var(--bg-color);box-shadow:var(--shadow-md);border-radius:8px;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-10px);transform-origin:top right;transition:opacity var(--transition-medium),visibility var(--transition-medium),transform var(--transition-medium);}.nav-container.active{opacity:1;visibility:visible;transform:translateY(0);}nav ul{display:flex;flex-direction:column;padding:0.5rem;}nav li{margin:0;}nav a{color:var(--text-color);font-weight:500;position:relative;padding:0.75rem 1rem;display:block;border-radius:6px;transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);font-size:0.95rem;}nav a:hover{color:var(--text-color);background-color:#AADCEC1C;transform:translateX(5px);}.theme-toggle{cursor:pointer;font-size:1.2rem;color:var(--text-color);margin-left:1.5rem;transition:color var(--transition-fast),transform var(--transition-fast);}.theme-toggle:hover{color:var(--accent-color);transform:rotate(15deg);}.hero{min-height:100vh;display:flex;align-items:center;padding:6rem 0 5rem;position:relative;}.hero-container{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1200px;margin:0 auto;}.hero-content{flex:1;text-align:left;padding-right:2rem;max-width:600px;}.hero-image-container{flex:1;display:flex;justify-content:center;align-items:center;padding:0 1rem;}.hero-image{width:100%;max-width:500px;height:auto;filter:drop-shadow(0 10px 20px rgba(51,46,46,0.15));animation:float 6s ease-in-out infinite;}@keyframes float{0%{transform:translateY(0px);}50%{transform:translateY(-20px);}100%{transform:translateY(0px);}}.hero h1{font-size:3.5rem;line-height:1.1;margin-bottom:1rem;font-weight:800;color:var(--text-color);}.hero h1 .greeting{display:block;font-size:1.6rem;font-weight:500;color:var(--text-color);opacity:0.8;margin-bottom:0.5rem;}.hero h1 .name{display:block;color:var(--text-color);margin-bottom:0.5rem;}.hero h1 .title{display:block;font-size:2rem;font-weight:600;color:var(--text-color);margin-bottom:0.5rem;}.hero p{font-size:1.25rem;margin-bottom:2rem;color:var(--text-color);}.cta-buttons{display:flex;gap:1rem;}.btn{display:inline-block;padding:0.9rem 2.2rem;border-radius:6px;font-weight:600;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast);cursor:pointer;font-size:1rem;letter-spacing:0.01em;}.btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}.btn.primary{background-color:var(--accent-color);color:var(--btn-primary-text-color);border:none;}.btn.primary:hover{background-color:#92c7dd;}.btn.secondary{background-color:transparent;color:var(--text-color);border:2px solid var(--border-color);}.btn.secondary:hover{border-color:var(--accent-color);color:var(--text-color);}.stack-container{position:relative;width:200px;height:200px;--count:5;--delay:1s;}.block{position:absolute;font-size:1.3rem;width:200px;height:100px;color:var(--tag-text-color);background:linear-gradient( 135deg,var(--accent-color) 0%,color-mix(in srgb,var(--accent-color) 70%,white) 100% );border-radius:8px;box-shadow:0 8px 16px rgba(0,0,0,0.2);text-align:center;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,0.2);line-height:100px;animation:stackAnimation calc(var(--count) * var(--delay)) linear infinite;}@keyframes stackAnimation{0%,100%{top:0;left:0;transform:rotate(0deg);opacity:1;z-index:4;}20%{top:25px;left:25px;transform:rotate(15deg);opacity:0.8;z-index:3;}40%{top:50px;left:50px;transform:rotate(0deg);opacity:0.6;z-index:2;}60%{top:75px;left:75px;transform:rotate(-15deg);opacity:0.4;z-index:1;}80%{top:100px;left:100px;transform:rotate(0deg);opacity:0.2;z-index:0;}}.block:nth-child(1){animation-delay:0s;}.block:nth-child(2){animation-delay:1s;}.block:nth-child(3){animation-delay:2s;}.block:nth-child(4){animation-delay:3s;}.block:nth-child(5){animation-delay:4s;}.section-header{margin-bottom:4rem;text-align:left;}.section-header h2{font-size:2.75rem;font-weight:700;margin-bottom:1rem;color:var(--text-color);}.section-header h1{font-size:3.25rem;font-weight:700;margin-bottom:1rem;color:var(--text-color);}.section-cta{display:flex;justify-content:center;margin-top:3rem;}.section-cta.left-aligned{justify-content:flex-start;}.capabilities{background-color:var(--bg-light);padding:6rem 0;}.capabilities-container{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem;}.capability-item{opacity:0;transform:translateY(30px);transition:opacity var(--transition-medium),transform var(--transition-medium);}.capability-item.animate{opacity:1;transform:translateY(0);}.capability-item h3{font-size:1.6rem;margin-bottom:1.5rem;position:relative;display:inline-block;color:var(--text-color);}.capability-item p{font-size:1.1rem;color:var(--text-color);line-height:1.7;}.about-me-image{display:block;width:100%;height:auto;transition:opacity 0.5s ease-in-out;will-change:opacity;}.about-me-image.color{position:absolute;top:0;left:0;opacity:0;}.image-placeholder:hover .about-me-image.color{opacity:1;}.image-placeholder:hover .about-me-image.bw{opacity:0;}.projects{background-color:var(--bg-color);padding:6rem 0;}.open-source{background-color:var(--bg-light);padding:6rem 0;}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;}.project-card{background-color:var(--bg-light);border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition-medium),box-shadow var(--transition-medium);}.dark-mode .project-card{background-color:var(--bg-dark);}.project-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-md);}.project-icons{display:flex;justify-content:space-between;align-items:center;padding:0 1.5rem 1rem;}.folder-icon{font-size:1.8rem;color:var(--accent-color);transition:transform var(--transition-fast);}.project-card:hover .folder-icon{transform:scale(1.1);}.external-link-icon{font-size:1.1rem;color:var(--text-color);opacity:0.7;transition:opacity var(--transition-fast),transform var(--transition-fast);}.external-link-icon:hover{opacity:1;transform:translateY(-3px);}.project-info{padding:1.5rem;}.project-info h3{font-size:1.3rem;margin-bottom:0.5rem;color:var(--text-color);}.project-info p{color:var(--text-color);opacity:0.8;font-size:1rem;margin-bottom:1rem;}.project-tags{display:flex;flex-wrap:wrap;gap:0.5rem;}.project-tags span{font-size:0.85rem;padding:0.3rem 0.8rem;background-color:var(--tag-bg-color);border-radius:4px;color:var(--tag-text-color);font-weight:500;}.about{background-color:var(--accent-color);padding:6rem 0;}.dark-mode .about{color:#121212;}.dark-mode .about h2,.dark-mode .about p{color:#121212;}.about-content{display:flex;justify-content:space-between;gap:3rem;flex-wrap:wrap;}.about-text{flex:1;min-width:300px;}.about-text p{margin-bottom:1.5rem;font-size:1.15rem;color:var(--text-color);}.about-image{flex:1;min-width:300px;display:flex;justify-content:center;align-items:center;}.image-placeholder{width:100%;background-color:rgba(51,46,46,0.1);border-radius:6px;position:relative;display:inline-block;overflow:hidden;}.contact{background-color:var(--bg-light);padding:6rem 0;}.contact-container{display:flex;justify-content:space-between;gap:4rem;flex-wrap:wrap;}.contact-info{flex:1;min-width:300px;}.contact-item{display:flex;align-items:center;margin-bottom:1.5rem;color:var(--text-color);font-size:1.1rem;}.contact-item i{font-size:1.2rem;color:var(--text-color);margin-right:1rem;width:20px;}.social-links{display:flex;gap:1rem;margin-top:2rem;}.social-link{width:40px;height:40px;border-radius:50%;background-color:var(--accent-color);display:flex;justify-content:center;align-items:center;color:var(--btn-primary-text-color);transition:transform var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast);}.social-link:hover{transform:translateY(-5px);background-color:var(--btn-primary-text-color);color:var(--accent-color);}.contact-form{flex:1;min-width:300px;}.form-group{position:relative;margin-bottom:1.5rem;}.form-group input,.form-group textarea{width:100%;padding:1rem;border:1px solid var(--text-color);border-radius:4px;background-color:var(--bg-color);color:var(--text-color);font-family:var(--font-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-size:1rem;}.form-group textarea{min-height:150px;resize:vertical;}.form-group label{position:absolute;top:0;left:10px;transform:translateY(-50%);background-color:var(--bg-color);padding:0 0.5rem;font-size:0.95rem;color:var(--text-color);pointer-events:none;transition:color var(--transition-fast);}.dark-mode .form-group label{background-color:var(--bg-light);}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--text-color);box-shadow:0 0 0 3px rgba(51,46,46,0.1);}.form-group input:focus + label,.form-group textarea:focus + label{color:var(--text-color);}.project-hero{padding-top:8rem;padding-bottom:0px;}.project-title{margin-bottom:1.5rem;}.project-meta{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem;}.meta-item{display:flex;flex-direction:column;}.meta-label{font-size:0.9rem;opacity:0.7;margin-bottom:0.5rem;}.meta-value{font-weight:600;}.project-image-main{width:100%;height:auto;border-radius:6px;margin-bottom:4rem;box-shadow:var(--shadow-md);}.project-content{margin-bottom:4rem;}.project-content h2{margin-top:3rem;margin-bottom:1.5rem;}.project-content p{margin-bottom:1.5rem;font-size:1.1rem;line-height:1.8;}.project-content a{text-decoration:underline;text-decoration-color:var(--accent-color);text-decoration-thickness:1.5px;}.project-content ol{list-style:none;padding-left:0;margin-left:1.5rem;}.project-content ol li[data-list="bullet"]{position:relative;padding-left:1.5rem;margin-bottom:0.75rem;line-height:1.6;}.project-content ol li[data-list="bullet"] .ql-ui{position:absolute;left:0;top:0.5em;width:0.6rem;height:0.6rem;background-color:var(--text-color);border-radius:50%;content:'';}.project-content table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:1rem;overflow-x:auto;display:block;}.project-content table tr:first-child{border-bottom:2px solid #ccc;}.project-content table td{color:var(--text-color) !important;padding:0.75rem 1rem;text-align:left;vertical-align:top;}.project-content table td strong{color:var(--text-color) !important;font-weight:600;}.project-content table tr:not(:first-child):hover{background-color:var(--bg-light);}.project-content table td span{color:var(--text-color) !important;background-color:var(--bg-light) !important;}.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin:3rem 0;}.gallery-item{border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition-medium);}.gallery-item:hover{transform:translateY(-10px);box-shadow:var(--shadow-md);}.gallery-image{width:100%;height:200px;background-color:var(--accent-color);opacity:0.3;}.tech-stack{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0;}.tech-item{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background-color:var(--tag-bg-color);border-radius:4px;font-weight:500;}.project-navigation{display:flex;justify-content:space-between;margin-top:5rem;padding-top:3rem;border-top:1px solid var(--border-color);}.nav-project{display:flex;align-items:center;gap:1rem;transition:transform var(--transition-fast);}.nav-project:hover{transform:translateX(-5px);}.nav-project.next:hover{transform:translateX(5px);}.nav-project.next{flex-direction:row-reverse;text-align:right;}.nav-label{font-size:0.9rem;opacity:0.7;}.nav-title{font-weight:600;}footer{background-color:var(--bg-color);padding:2rem 0;text-align:center;border-top:1px solid var(--border-color);transition:background-color var(--transition-medium);}.footer-content p{color:var(--text-color);opacity:0.8;font-size:0.95rem;}.fade-in{opacity:0;animation:fadeIn var(--transition-slow) forwards;}.slide-up{opacity:0;transform:translateY(30px);animation:slideUp var(--transition-slow) forwards;}.slide-in-right{opacity:0;transform:translateX(50px);animation:slideInRight var(--transition-slow) forwards;}.slide-in-left{opacity:0;transform:translateX(-50px);animation:slideInLeft var(--transition-slow) forwards;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes slideUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}@keyframes slideInRight{from{opacity:0;transform:translateX(50px);}to{opacity:1;transform:translateX(0);}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-50px);}to{opacity:1;transform:translateX(0);}}@media (max-width:1200px){.hero-container{flex-direction:column;align-items:flex-start;width:90%;}.hero-content{text-align:left;padding:0;margin-bottom:2rem;max-width:100%;}.hero-image-container{width:100%;justify-content:left;order:2;}.about-content{flex-direction:column;}}@media (max-width:992px){html{font-size:15px;}.hero{padding-top:6rem;}.hero h1{font-size:3rem;}.hero h1 .title{font-size:1.75rem;}.capabilities-container{grid-template-columns:1fr;gap:2.5rem;}}@media (max-width:768px){header{padding:1rem 5%;}.hero h1{font-size:2.5rem;}.hero h1 .title{font-size:1.5rem;}.section-header h2{font-size:2.25rem;}.section-header h1{font-size:2.90rem;}.hero-image{max-width:300px;}}@media (max-width:576px){html{font-size:14px;}.hero h1{font-size:2.25rem;}.hero h1 .title{font-size:1.35rem;}.btn{padding:0.8rem 1.8rem;}.hero-image{max-width:250px;}}