.loading{display:flex;justify-content:center;align-items:center;height:100vh}.loader{border:5px solid #f3f3f3;border-top:5px solid #64ffda;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}header{position:fixed;top:0;left:0;width:100%;background-color:#0a192fd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;transition:all .25s cubic-bezier(.645,.045,.355,1)}nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;max-width:1200px;margin:0 auto}.logo{font-size:1.5rem;font-weight:700;color:#64ffda}nav ul{display:flex;list-style:none}nav ul li{margin-left:2rem}nav ul li a{color:#ccd6f6;transition:color .3s ease}nav ul li a:hover{color:#64ffda}.hero{min-height:calc(100vh - 80px);display:flex;justify-content:space-between;align-items:center}.hero h1{font-size:4.3rem;margin-bottom:0rem;position:relative;padding-right:5px}.hero h2{font-size:1.5rem;color:#64ffda;margin-bottom:0rem}.description{color:#8892b0;height:5.5rem}.hero .description h3{position:absolute;font-size:3rem;color:#8892b0;opacity:0}.hero .description h3:first-child{animation:appear-disappear 6s infinite}.hero .description h3:nth-child(2){animation:appear-disappear 6s infinite;animation-delay:2s}.hero .description h3:nth-child(3){animation:appear-disappear 6s infinite;animation-delay:4s}@keyframes appear-disappear{0%{opacity:0;transform:translateY(20px)}10%{opacity:1;transform:translateY(0)}30%{opacity:1;transform:translateY(0)}40%{opacity:0;transform:translateY(-20px)}to{opacity:0;transform:translateY(-20px)}}.hero p{max-width:540px;margin-bottom:2rem}.info-personal{width:100%}.app-tags{width:45%}.tag-list{width:100%;display:flex;flex-shrink:0;flex-direction:column;gap:1rem 0;position:relative;padding:1.5rem 0;overflow:hidden}.loop-slider .inner{display:flex;width:fit-content;animation-name:loop;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:var(--direction);animation-duration:var(--duration)}.tag{display:flex;align-items:center;gap:0 .2rem;color:#e2e8f0;font-size:.9rem;background-color:#334155;border-radius:.4rem;padding:.7rem 1rem;margin-right:1rem;box-shadow:0 .1rem .2rem #0003,0 .1rem .5rem #0000004d,0 .2rem 1.5rem #0006}.tag span{font-size:1.2rem;color:#64748b}.fade{pointer-events:none;background:linear-gradient(90deg,#0a192f,transparent 30%,transparent 70%,#0a192f);position:absolute;top:0;right:0;bottom:0;left:0}@keyframes loop{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes loop-responsive{0%{transform:translate(0)}to{transform:translate(-30%)}}.about{display:flex;justify-content:space-between;align-items:center}.about-content{width:60%}.about-content p{margin:20px 0}.skills-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:0 10px;padding:0;margin:20px 0 0;overflow:hidden;list-style:none}.skills-list li{position:relative;margin-bottom:10px;padding-left:20px;font-family:monospace;font-size:14px}.skills-list li:before{content:"▹";position:absolute;left:0;color:#64ffda}.profile-pic{width:300px;border-radius:4px;position:relative}.profile-pic img{width:100%;height:300px;object-fit:cover;border-radius:4px}.info-cv{text-align:center;margin-top:30px}.cta-button{display:inline-block;color:#64ffda;background-color:transparent;border:1px solid #64ffda;border-radius:4px;padding:.75rem 1.5rem;font-size:14px;line-height:1;cursor:pointer;transition:all .25s cubic-bezier(.645,.045,.355,1)}.cta-button:hover{background-color:#64ffda1a}.cv-button{display:inline-flex;align-items:center;background-color:#64ffda;color:#0a192f;padding:.75rem 1.5rem;border-radius:4px;font-weight:700;transition:all .3s ease;font-size:1rem}.cv-button:hover{background-color:#45e0bc;text-decoration:none}.cv-button svg{width:24px;height:24px;margin-right:.5rem}.sections{padding-top:4rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.project-card{background-color:#112240;border-radius:4px;padding:1rem;transition:transform .2s ease-in-out}.project-card:hover{transform:translateY(-5px)}.project-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;width:100%;height:170px}.project-link{margin:0 0 10px;color:#e6f1ff;font-size:18px;font-weight:700;display:block;text-align:center}.project-link:hover{text-decoration:underline}.project-link svg{margin-left:5px;vertical-align:sub;margin-bottom:3px}.project-title{margin:0 0 10px;color:#e6f1ff;font-size:18px;font-weight:700;text-align:center}.private-access{color:#fc4f4f;font-size:10px;margin-bottom:5px;text-align:center}.public-access{color:#20ec20;font-size:10px;margin-bottom:5px;text-align:center}.project-description{color:#a8b2d1;font-size:13px}.project-tech-list{display:flex;flex-wrap:wrap;justify-content:center;padding:0;margin:20px 0 0;list-style:none}.project-tech-list li{margin-right:15px;color:#8892b0;font-size:12px}.folder-image{width:100%;height:100%}.folder-image img{width:100%;height:100%;border-radius:4px;background:#fff}.project-date-container{text-align:center}.project-date{color:#d1d3d4;font-size:12px;font-weight:500}.contact{max-width:600px;margin:0 auto;text-align:center}.contact p{margin-bottom:2rem}footer{margin-top:40px;padding:2rem 0;text-align:center;color:#a8b2d1}.social-links{display:flex;justify-content:center}.social-links a{color:#a8b2d1;padding:10px;transition:color .2s ease-in-out;display:flex;align-items:center;gap:2px}.social-links a:hover{color:#64ffda}@media (max-width: 842px){.about{flex-direction:column}.about-content{width:100%;margin-bottom:2rem}.profile-pic{width:250px;height:250px;margin:0 auto}.projects{margin-top:12rem}.sections{padding-top:0rem}.loop-slider .inner{animation-name:loop-responsive}}@media (max-width: 768px){.hero h1{font-size:3.3rem}.hero .description h3{font-size:2rem}}@media (max-width: 480px){.app{padding:0 1rem}nav{padding:1rem}.hero h1{font-size:2.7rem}.hero .description h3{font-size:1.5rem}}@media screen and (max-width: 1107px){.hero .app-tags{width:40%}}@media screen and (max-width: 1028px){.hero .app-tags{width:35%}}@media screen and (max-width: 987px){.hero{position:relative;flex-direction:column-reverse;justify-content:flex-end}.hero .app-tags{width:100%;position:absolute;z-index:-1;opacity:.2;top:35px}.hero .info-personal{margin-top:30px;text-align:center}.hero .info-personal .description h3{left:0;right:0}.hero .info-personal h1,.hero .info-personal h3,.hero .info-personal p{text-shadow:4px 4px 2px rgba(0,0,0,.6)}.hero .info-personal p{max-width:100%}}@media screen and (max-width: 580px){.coffee-container{display:none}.hero{justify-content:flex-end;min-height:60vh}}@media screen and (max-width: 355px){nav ul li a{font-size:.8rem}nav{text-align:center}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#64ffda;border-radius:1px}::-webkit-scrollbar-thumb:hover{background:#00e6b0}::-webkit-scrollbar-track{background:#0a192f}:root{scroll-behavior:smooth}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#ffffffde;background-color:#0a192f;min-height:100vh}#root{width:100%}.app{max-width:1200px;margin:0 auto;padding:0 2rem}main{padding-top:80px}section{margin-bottom:100px}h1,h2,h3,h4,h5,h6{margin-bottom:1rem}a{color:#64ffda;text-decoration:none}@media screen and (max-width: 580px){.app{padding:0 1rem}}
