@keyframes fadeIn{0%{filter:blur(5px);opacity:0}to{filter:blur(0);opacity:1}}@keyframes slideUp{0%{filter:blur(4px);opacity:0;transform:translateY(30px) scale(.95)}to{filter:blur(0);opacity:1;transform:translateY(0) scale(1)}}@keyframes scaleIn{0%{filter:blur(2px);opacity:0;transform:scale(.98)}to{filter:blur(0);opacity:1;transform:scale(1)}}@keyframes brushStroke{0%{opacity:0;transform:scaleX(0) skewX(20deg)}to{opacity:1;transform:scaleX(1) skewX(0)}}.fade-in,.slide-up{animation:none;opacity:1;transition:opacity .3s ease,transform .3s ease}.slide-up{transform:translateY(0)}.scale-in{animation:none;opacity:1;transform:scale(1);transition:opacity .3s ease,transform .3s ease}.brush-stroke{animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1);animation-fill-mode:forwards;opacity:0}.nav-links a{position:relative;transition:color .3s ease}.nav-links a:before{background:var(--accent-color);bottom:-2px;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:right;width:100%}.nav-links a.active:before,.nav-links a:hover:before{transform:scaleX(1);transform-origin:left}.post-grid article{transition:all .4s cubic-bezier(.4,0,.2,1)}.post-grid article:hover{box-shadow:0 15px 40px var(--brushstroke-dark);transform:translateY(-10px) rotate(.5deg)}.post-grid article:before{background:linear-gradient(45deg,transparent,hsla(0,0%,100%,.1),transparent);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .4s ease}.post-grid article:hover:before{opacity:1}.button{overflow:hidden;transition:all .2s ease}.button:after{background:linear-gradient(45deg,transparent,hsla(0,0%,100%,.2),transparent);content:"";height:100%;left:0;position:absolute;top:0;transform:translateX(-100%);transition:transform .6s ease;width:100%}.button:hover:after{transform:translateX(100%)}.button:hover{box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-3px) scale(1.02)}@keyframes spin{0%{opacity:.8;transform:rotate(0deg) scale(.95)}to{opacity:1;transform:rotate(1turn) scale(1)}}.loading{animation:spin 1s cubic-bezier(.4,0,.2,1) infinite;border:3px solid var(--brushstroke-light);border-radius:50%;border-top-color:var(--accent-color);display:inline-block;height:2.5rem;width:2.5rem}.page-transition{animation:none;opacity:1;transition:opacity .2s ease}.page-transition-out{animation:fadeIn .5s cubic-bezier(.4,0,.2,1) reverse}html{scroll-behavior:smooth}.post-image{overflow:hidden}.post-image img{transition:transform .3s ease;will-change:transform}.post-image:hover img{filter:saturate(1.1) brightness(1.05);transform:scale(1.05)}::-moz-selection{background:var(--accent-color);color:#fff;text-shadow:none}::selection{background:var(--accent-color);color:#fff;text-shadow:none}.post-date,.post-date *,.post-date .day,.post-date .month,[class*=blog] .post-date,[class*=blog] .post-date .day,[class*=blog] .post-date .month,[class*=post] .post-date,[class*=post] .post-date .day,[class*=post] .post-date .month{animation:none!important;filter:none!important;-webkit-filter:none!important;opacity:1!important;text-shadow:none!important;transform:none!important;transition:none!important;will-change:auto!important}.interest-item{transition:all .4s cubic-bezier(.4,0,.2,1)}.interest-item:hover{background:linear-gradient(135deg,var(--canvas-texture),var(--background-color));transform:translateY(-5px)}.interest-item i{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.interest-item:hover i{transform:scale(1.2) rotate(5deg)}.form-group input,.form-group textarea{transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}.form-group input:focus,.form-group textarea:focus{box-shadow:0 5px 15px var(--brushstroke-dark);transform:translateY(-2px)}.skill-level{animation:brushStroke 1.2s cubic-bezier(.4,0,.2,1);transform-origin:left}.site-header{transform:translateY(0);transition:transform .2s ease;will-change:transform}.container{opacity:1;transition:opacity .2s ease;will-change:opacity}.nav-links a:before{transition:transform .2s ease}.blog-post:hover,.button:hover,.nav-links a:hover:before{transition:all .2s ease}.transition-overlay{background:var(--background-color);bottom:0;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .2s ease;z-index:9999}.transition-overlay.active{opacity:1}.fade-in .post-date,.post-date,.scale-in .post-date{filter:none!important;-webkit-filter:none!important;-moz-filter:none!important;-o-filter:none!important;-ms-filter:none!important}.fade-in .post-date,.fade-in .post-date *,.post-date,.post-date *,.scale-in .post-date,.scale-in .post-date *{animation:none!important;background:transparent!important;box-shadow:none!important;opacity:1!important;text-shadow:none!important;transform:none!important;transition:none!important;will-change:auto!important}.fade-in .post-date *,.post-date *,.scale-in .post-date *{filter:none!important;-webkit-filter:none!important}