.navbar{background-color:#7d6f86;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #0003;position:sticky;top:0;z-index:10;font-size:1.5rem}.navbar a{color:#fdfffc;padding:1rem;text-decoration:none;transition:color .3s ease,border-bottom .3s ease;border-bottom:2px solid transparent;display:flex;align-items:center;justify-content:center}.social-icons{display:flex}.nav-links{display:flex;min-width:6rem}.navbar a:hover{color:#edae49;border-bottom:2px solid #EDAE49}.nav-link.active{background-color:#fff;color:#585191;font-weight:700}.web-container{background-image:linear-gradient(to bottom,#585191,#70a9a1);min-height:100vh;min-width:100vw}.viewport{position:fixed;top:0;left:0;height:100vh;width:100vw;background:inherit;overflow:visible;touch-action:none}.svg{width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.vine-path{fill:none;stroke:url(#vineGradient);stroke-width:5;stroke-linecap:round;opacity:1;filter:drop-shadow(0 0 6px rgba(50,150,50,.5))}.milestone-branch-path{fill:none;stroke-width:3;stroke-dasharray:6 3}.traveling-dot{position:absolute;width:24px;height:24px;border-radius:50%;fill:#edae49;background-color:#edae49;box-shadow:0 0 10px #edae49;transform:translate(-50%,-50%);pointer-events:none;z-index:20}.milestone-card{position:absolute;padding:1rem 1.2rem;background:#ffffffe6;border-radius:12px;box-shadow:0 6px 18px #00000040;transform:translate(-50%);color:#222;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;z-index:15;-webkit-user-select:text;user-select:text;max-width:calc(100vw - 40px);box-sizing:border-box}.milestone-card h3{margin:0 0 .5rem}.milestone-card p{margin:0;font-size:14px;line-height:1.4}@media (max-width: 768px){.milestone-card{font-size:.9rem;padding:12px}}.git-tile{margin:1rem;padding:1rem 1.2rem;background:#ffffffe6;border-radius:12px;box-shadow:0 6px 18px #00000040;color:#222;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;z-index:15;-webkit-user-select:text;user-select:text}.git-tile h2{padding:0rem;margin:0rem}.languages-container{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.language-pill{display:inline-block;background-color:#70a9a1;color:#fff;padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:500;border:1px solid #70a9a1;transition:all .3s ease}.language-pill:hover{background-color:#7db5ae;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.loading-text{color:#7d6f86;font-style:italic;font-size:.9rem}.git-links{color:#fff;display:inline-flex;align-items:center;gap:8px;background-color:#7d6f86;padding:8px 16px;border-radius:20px;font-size:1rem;text-decoration:none;transition:all .3s ease}.git-links:hover{background-color:#8a7c94;text-decoration:none}.particles-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.interactive-particle{position:absolute;width:4px;height:4px;background:#edae49;border-radius:50%;opacity:.8;transition:transform .1s ease-out;box-shadow:0 0 6px #edae49cc,0 0 12px #edae4999,0 0 24px #ffdc9666;will-change:transform;backface-visibility:hidden;transform:translateZ(0);z-index:1}.interactive-particle.floating{animation:smoothFloat infinite ease-in-out}.interactive-particle.floating:nth-child(3n){animation-name:smoothFloat}.interactive-particle.floating:nth-child(3n+1){animation-name:smoothFloatVariant1}.interactive-particle.floating:nth-child(3n+2){animation-name:smoothFloatVariant2}@keyframes smoothFloat{0%,to{transform:translate(0)}25%{transform:translate(8px,-12px)}50%{transform:translate(-6px,-8px)}75%{transform:translate(-10px,4px)}}@keyframes smoothFloatVariant1{0%,to{transform:translate(0)}33%{transform:translate(-12px,-6px)}66%{transform:translate(10px,-14px)}}@keyframes smoothFloatVariant2{0%,to{transform:translate(0)}20%{transform:translate(6px,8px)}40%{transform:translate(-8px,12px)}60%{transform:translate(12px,-4px)}80%{transform:translate(-4px,-10px)}}.hero{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:2rem;padding:4rem 5%;min-height:60vh;max-height:60vh;background:inherit;overflow:hidden;z-index:2;position:relative}@media (min-width: 768px){.hero{flex-direction:row;align-items:stretch;justify-content:center;padding:4rem 10%;gap:4rem}}.hero-introduction{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:2rem;background:#ffffffbf;border-radius:1rem;transition:all .3s ease}.hero-headshot{width:180px;height:180px;border-radius:50%;object-fit:cover;border:4px solid white;margin:0 auto 1rem}.hero-name{font-size:2.5rem;margin:.5rem 0;color:#333}.hero-description{font-size:1.1rem;max-width:400px;margin:0 auto;line-height:1.5;color:#666}.hero-nav{flex:1;display:flex;flex-direction:column;gap:1.5rem;position:relative}.hero-card{background:#ffffffbf;padding:2rem;border-radius:1rem;text-align:center;font-size:1.2rem;cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;flex:1;min-height:0;align-items:stretch}.hero-card,.hero-nav:hover .hero-card{flex:1}.hero-nav:has(.hero-card:nth-child(1):hover) .hero-card:nth-child(1),.hero-nav:has(.hero-card:nth-child(2):hover) .hero-card:nth-child(2),.hero-nav:has(.hero-card:nth-child(3):hover) .hero-card:nth-child(3){flex:8}.hero-nav:has(.hero-card:nth-child(1):hover) .hero-card:not(:nth-child(1)),.hero-nav:has(.hero-card:nth-child(2):hover) .hero-card:not(:nth-child(2)),.hero-nav:has(.hero-card:nth-child(3):hover) .hero-card:not(:nth-child(3)){flex:.5}.hero-nav:hover .hero-card:not(:hover){opacity:.6;background:#ffffff80}.hero-card:hover{background:#fffffff2;box-shadow:0 20px 40px #00000026,0 0 20px #edae494d;z-index:10}.hero-card h3{margin:0 0 1rem;font-size:1.4rem;color:#333;transition:all .3s ease}.hero-card .short-description{margin:0;color:#666;line-height:1.4;opacity:1;transform:translateY(0);transition:all .3s ease}.hero-nav:hover .hero-card:not(:hover) .short-description{opacity:0;transform:translateY(-10px);height:0;margin:0}.hero-nav:hover .hero-card:not(:hover) h3{margin-bottom:0}.card-sub-description{height:0;opacity:0;transform:translateY(10px);transition:all .3s ease;margin-top:1rem}.hero-card:hover .card-sub-description{opacity:1;transform:translateY(0);height:auto}.line{display:flex;align-items:center;text-align:center;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;color:#555}*{font-family:Arial,Helvetica,sans-serif}body{margin:0;padding:0;height:100vh;width:100vw}
