@keyframes fade{0%{transform:translateY(-10%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes fadeR{0%{transform:translate(20%);opacity:0}to{transform:translate(0);opacity:1}}*{box-sizing:border-box;margin:0;padding:0}body{padding-top:5rem;padding-bottom:1rem;background-color:#3f0064;color:#fff;font-family:Arial,sans-serif;line-height:1.6}.container{max-width:800px;margin:0 auto;padding:2rem}header{text-align:left;margin-bottom:3rem;max-width:475px}header p{opacity:1;animation:fade 2s}.header-end-bar{animation:blink 1s infinite}section{text-align:left;margin-bottom:2rem}h1{font-size:2.5rem}h2{font-size:1.15rem}ul{list-style-position:none;margin-left:0}.about h2{animation:fade 2s forwards .1s;opacity:0}.about p{margin-bottom:1rem;line-height:1.8;animation:fade 2s forwards .2s;opacity:0}.about strong{color:#c8a2ff;font-weight:600}.skills-title{margin-bottom:.25rem;animation:fade 2s forwards .3s;opacity:0}.skills-container{display:flex;flex-wrap:wrap;gap:.5rem}.skill-item{background-color:#fff;padding:.15rem .5rem;border-radius:10px;font-size:.9rem;font-weight:700;color:#000;opacity:0;animation:fadeR 2s forwards var(--delay, .4s)}.projects-title{font-size:2.5rem;text-align:center;animation:fade 2s forwards .4s;opacity:0}.projects-intro{text-align:center;margin-bottom:2rem;font-size:1.1rem;max-width:600px;margin-left:auto;margin-right:auto;color:#ccc;animation:fade 2s forwards .5s;opacity:0}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:2rem}.project-card{border:2px solid rgb(45,0,70);border-radius:10px;overflow:hidden;opacity:0}.slide-from-left{animation:slideFromLeft 1s ease-out forwards}.slide-from-right{animation:slideFromRight 1s ease-out forwards}.project-image{height:200px;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover}.project-image:empty,.project-image img[src=""]{background-color:#2d0046}.project-image.placeholder{background-color:#2d0046;min-height:200px;display:flex;align-items:center;justify-content:center}.project-info{padding-left:.5rem;padding-bottom:.5rem}.project-date{display:block;font-size:.9rem;color:#ccc}.project-technologies{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.project-technologies .skill-item{font-size:.8rem;padding:.1rem .4rem;animation:none;opacity:1}.source-button{display:inline-flex;align-items:center;color:#fff;background-color:#000;padding:.5rem 1rem .5rem 2rem;border-radius:6px;text-decoration:none;font-size:.9rem;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' fill='white'%3E%3Cpath d='M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:.7rem center;background-size:1.2rem;margin-top:1rem;transition:background-color .2s;font-weight:700}.source-button:hover{background-color:#000000b9}.source-button svg{color:#fff}.footer{position:fixed;bottom:1ch;left:50%;transform:translate(-50%);background-color:#3f0064;padding:.5rem 1.5rem;border-radius:50px;z-index:100;box-shadow:0 4px 6px #0000004d}.footer-content{display:flex;justify-content:center;gap:1.5rem}.footer-icon{color:#fff;cursor:pointer;background:none;border:none;padding:.25rem;transition:color .2s;display:flex;align-items:center}.footer-icon:hover{color:#000000b9}.contact{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem 0 3rem}.contact-title{font-size:2.5rem;animation:fade 2s forwards .7s}.contact-description{color:#ccc;font-size:1.1rem;max-width:500px;text-align:center;animation:fade 2s forwards .8s}.contact p{margin:.5rem 0}.contact-link{color:#66b3ff;text-decoration:none;transition:color .2s}.contact-link:hover{color:#9cf}.image-stack{position:absolute;top:5rem;right:25%;width:clamp(160px,15vw,185px);height:auto;aspect-ratio:1}@media screen and (max-width: 1200px){.image-stack{right:15%}}@media screen and (max-width: 900px){.image-stack{right:5%}}@media screen and (max-width: 768px){.image-stack{display:none}}.stack-image{position:absolute;width:100%;height:100%;box-shadow:0 4px 8px #0003}.stack-image img{width:100%;height:100%;object-fit:cover;border-radius:15px;border-color:#1c002b;border-width:2px;border-style:solid}
