@keyframes blink{0%,50%{opacity:1}100%,51%{opacity:0}}.cursor{animation:blink 1s infinite;color:var(--text-primary);font-weight:400}.typing-text{position:relative;display:inline}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.editor-window{animation:fadeIn .8s ease-out}.intro-text{animation:fadeIn 1s ease-out .3s both}@keyframes slideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}.navbar__link::after{animation:slideIn .3s ease-out}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.window-controls__button:hover{animation:pulse .3s ease-in-out}@keyframes slideUp{from{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.editor-window{animation:slideUp .6s cubic-bezier(.25,.46,.45,.94)}@keyframes buttonGlow{0%{box-shadow:0 0 5px var(--accent)}50%{box-shadow:0 0 20px var(--accent),0 0 30px var(--accent)}100%{box-shadow:0 0 5px var(--accent)}}.footer__contact-btn:hover{animation:buttonGlow 1.5s ease-in-out infinite}@keyframes codeAppear{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.code-comment,.code-keyword,.code-variable{animation:codeAppear .5s ease-out}.code-comment{animation-delay:.1s}.code-keyword{animation-delay:.2s}.code-variable{animation-delay:.3s}@media (max-width:768px){.editor-window{animation-duration:.4s}.intro-text{animation-duration:.6s;animation-delay:.2s}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}.cursor{animation:none;opacity:1}}.footer__contact-btn:focus,.navbar__link:focus{outline:2px solid var(--accent);outline-offset:2px;animation:pulse .3s ease-in-out}@keyframes shimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}.loading{background:linear-gradient(90deg,var(--bg-secondary) 0,var(--bg-tertiary) 40px,var(--bg-secondary) 80px);background-size:200px;animation:shimmer 1.5s infinite}