:root{--animation-duration:0.4s;--animation-duration-slow:0.6s;--animation-timing:cubic-bezier(0.4, 0, 0.2, 1);--animation-delay-step:0.1s;--pjax-transition-duration:0.3s}.accelerated{transform:translateZ(0);will-change:transform;backface-visibility:hidden}.delay-100{animation-delay:calc(var(--animation-delay-step) * 1)}.delay-200{animation-delay:calc(var(--animation-delay-step) * 2)}.delay-300{animation-delay:calc(var(--animation-delay-step) * 3)}.delay-400{animation-delay:calc(var(--animation-delay-step) * 4)}.delay-500{animation-delay:calc(var(--animation-delay-step) * 5)}.pjax-loading{overflow-x:hidden}#pjax-container{transition:opacity var(--pjax-transition-duration) ease-out}header{transition:transform 0.3s ease,box-shadow 0.3s ease}header.nav-hidden{transform:translateY(-100%)}header.scrolled{box-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -1px rgb(0 0 0 / .06);background-color:rgb(255 255 255 / .95);backdrop-filter:blur(8px)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn var(--animation-duration) var(--animation-timing) forwards}@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-down{animation:fadeInDown var(--animation-duration) var(--animation-timing) forwards}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp var(--animation-duration) var(--animation-timing) forwards}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-left{animation:fadeInLeft var(--animation-duration) var(--animation-timing) forwards}@keyframes fadeInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-right{animation:fadeInRight var(--animation-duration) var(--animation-timing) forwards}.hover-lift,section .hover-lift,article .hover-lift,.div .hover-lift{transition:transform 0.4s cubic-bezier(.4,0,.2,1),box-shadow 0.4s cubic-bezier(.4,0,.2,1)}.hover-lift:hover,section .hover-lift:hover,article .hover-lift:hover,.div .hover-lift:hover{transform:translateY(-6px) translateZ(0);box-shadow:0 12px 20px -10px rgb(0 0 0 / .1),0 4px 8px -2px rgb(0 0 0 / .05)}.hover-lift.touch-active{transform:translateY(-6px) translateZ(0)}.hover-scale,section .hover-scale,article .hover-scale,.div .hover-scale{transition:transform 0.4s cubic-bezier(.4,0,.2,1)}.hover-scale:hover,section .hover-scale:hover,article .hover-scale:hover,.div .hover-scale:hover{transform:scale(1.1) translateZ(0)}.hover-spin,section .hover-spin,article .hover-spin,.div .hover-spin{transition:transform 0.4s cubic-bezier(.4,0,.2,1)}.hover-spin:hover,section .hover-spin:hover,article .hover-spin:hover,.div .hover-spin:hover{transform:rotate(45deg) translateZ(0)}.hover-rotate,section .hover-rotate,article .hover-rotate,.div .hover-rotate{transition:transform 0.4s cubic-bezier(.4,0,.2,1)}.hover-rotate:hover,section .hover-rotate:hover,article .hover-rotate:hover,.div .hover-rotate:hover{transform:rotate(45deg) translateZ(0)}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes breathe{0%,100%{opacity:1}50%{opacity:.7}}.animate-breathe{animation:breathe 3s ease-in-out infinite}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.animate-shake{animation:shake 0.5s ease-in-out infinite}@keyframes blink{0%,50%,100%{opacity:1}25%,75%{opacity:.5}}.animate-blink{animation:blink 1.5s ease-in-out infinite}.animate-flash{animation:blink 1.5s ease-in-out infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.animate-spin-fast{animation:spin 0.5s linear infinite}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-bounce-1{animation:bounce 1s ease-in-out infinite 0s}.animate-bounce-2{animation:bounce 1s ease-in-out infinite 0.2s}.animate-bounce-3{animation:bounce 1s ease-in-out infinite 0.4s}.fade-in-on-scroll{opacity:0;transform:translateY(20px);transition:opacity 0.6s var(--animation-timing),transform 0.6s var(--animation-timing)}.fade-in-on-scroll.visible{opacity:1;transform:translateY(0)}#pjax-progress{height:3px;background:linear-gradient(90deg,#4f46e5,#7c3aed,#ec4899);background-size:200% 100%;animation:gradientBackground 1.5s ease infinite;box-shadow:0 0 10px rgb(79 70 229 / .3)}@keyframes gradientBackground{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.touch-device button,.touch-device a{-webkit-tap-highlight-color:#fff0}.touch-active{opacity:.8;transform:scale(.98)}.transition-content{transition:opacity 0.4s ease-in-out,transform 0.4s ease-in-out}.transition-sidebar{transition:width 0.4s ease-in-out,opacity 0.4s ease-in-out}.ripple-btn{position:relative;overflow:hidden}.ripple-btn::after{content:'';position:absolute;top:50%;left:50%;width:5px;height:5px;background:rgb(255 255 255 / .5);opacity:0;border-radius:100%;transform:scale(1,1) translate(-50%,-50%);transform-origin:50% 50%}@keyframes ripple{0%{transform:scale(0,0);opacity:.8}100%{transform:scale(100,100);opacity:0}}.ripple-btn:focus:not(:active)::after{animation:ripple 1s ease-out}@keyframes shimmer{0%{background-position:-468px 0}100%{background-position:468px 0}}.skeleton-loading{background:linear-gradient(to right,#f6f7f8 8%,#edeef1 18%,#f6f7f8 33%);background-size:800px 104px;animation:shimmer 1.5s infinite linear}@keyframes typing{from{width:0}to{width:100%}}@keyframes blink-caret{from,to{border-color:#fff0}50%{border-color:currentColor}}.typewriter{overflow:hidden;border-right:.15em solid currentColor;white-space:nowrap;margin:0 auto;animation:typing 3.5s steps(40,end),blink-caret 0.75s step-end infinite}@keyframes gradientBackground{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.gradient-animate{background:linear-gradient(-45deg,#ee7752,#e73c7e,#23a6d5,#23d5ab);background-size:400% 400%;animation:gradientBackground 15s ease infinite}.bg-gradient-animation{background:linear-gradient(-45deg,#ee7752,#e73c7e,#23a6d5,#23d5ab);background-size:400% 400%;animation:gradientBackground 15s ease infinite}.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem}.tag-cloud-item{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;transition:all var(--animation-duration) var(--animation-timing);cursor:pointer}.tag-cloud-item:hover{transform:scale(1.1) translateZ(0)}@media (hover:none) and (pointer:coarse){.touch-feedback{transition:transform 0.15s ease,opacity 0.15s ease}.touch-feedback:active{transform:scale(.95);opacity:.8}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px;transition:background 0.3s ease}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}#pjax-progress{height:3px;background:linear-gradient(90deg,#3b82f6,#60a5fa,#3b82f6);background-size:200% 100%;animation:gradientBackground 2s ease infinite;box-shadow:0 0 10px rgb(59 130 246 / .6),0 0 4px rgb(96 165 250 / .6)}.pjax-loading-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgb(255 255 255 / .15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:999999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 0.4s ease-in,visibility 0.4s ease-in,backdrop-filter 0.4s ease-in;pointer-events:none;margin:0;padding:0;transform:none}.pjax-loading-overlay.active{opacity:1;visibility:visible;pointer-events:auto}.pjax-loading-content{position:relative;z-index:2;text-align:center}.geometric-loader{position:relative;width:120px;height:120px;margin:0 auto;animation:rotate360 3s linear infinite}.geometric-shape{position:absolute;width:40px;height:40px;border-radius:8px}.geometric-shape.shape-1{top:0;left:0;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);animation:pulse-shape 1.5s ease-in-out infinite}.geometric-shape.shape-2{top:0;right:0;background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);animation:pulse-shape 1.5s ease-in-out 0.2s infinite}.geometric-shape.shape-3{bottom:0;left:0;background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);animation:pulse-shape 1.5s ease-in-out 0.4s infinite}.geometric-shape.shape-4{bottom:0;right:0;background:linear-gradient(135deg,#43e97b 0%,#38f9d7 100%);animation:pulse-shape 1.5s ease-in-out 0.6s infinite}@keyframes pulse-shape{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.8);opacity:.6}}@keyframes rotate360{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.loading-text{margin-top:40px;font-size:32px;font-weight:700;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:#fff0;background-clip:text;letter-spacing:8px;color:#667eea}.loading-dot{display:inline-block;animation:bounce-dot 1.4s ease-in-out infinite;line-height:1;vertical-align:middle}.loading-dot:nth-child(1){animation-delay:0s}.loading-dot:nth-child(2){animation-delay:0.2s}.loading-dot:nth-child(3){animation-delay:0.4s}@keyframes bounce-dot{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-20px)}}.particles-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:1;pointer-events:none}.particle{position:absolute;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);opacity:.3;animation:float-particle 4s ease-in-out infinite}.particle:nth-child(1){left:10%;top:20%;animation-delay:0s;animation-duration:3s}.particle:nth-child(2){left:20%;top:80%;animation-delay:0.5s;animation-duration:4s}.particle:nth-child(3){left:30%;top:40%;animation-delay:1s;animation-duration:3.5s}.particle:nth-child(4){left:50%;top:60%;animation-delay:1.5s;animation-duration:4.5s}.particle:nth-child(5){left:60%;top:30%;animation-delay:2s;animation-duration:3.2s}.particle:nth-child(6){left:70%;top:70%;animation-delay:2.5s;animation-duration:4.2s}.particle:nth-child(7){left:80%;top:50%;animation-delay:3s;animation-duration:3.8s}.particle:nth-child(8){left:90%;top:20%;animation-delay:3.5s;animation-duration:4.8s}@keyframes float-particle{0%,100%{transform:translateY(0) translateX(0) scale(1);opacity:.3}25%{transform:translateY(-30px) translateX(10px) scale(1.2);opacity:.5}50%{transform:translateY(-60px) translateX(-10px) scale(1);opacity:.2}75%{transform:translateY(-30px) translateX(15px) scale(1.3);opacity:.4}}@media (max-width:768px){.geometric-loader{width:90px;height:90px}.geometric-shape{width:30px;height:30px}.loading-text{font-size:24px;letter-spacing:6px}.particle{width:6px;height:6px}}@media (max-width:640px){:root{--animation-duration:0.3s;--animation-duration-slow:0.5s;--pjax-transition-duration:0.2s}header.nav-hidden{transform:translateY(-120%)}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}#pjax-container{transition:none!important}header{transform:translateY(0)!important}.pjax-loading-overlay{backdrop-filter:none!important}.geometric-loader,.particles-container{display:none!important}.loading-text{animation:none!important;font-size:18px!important}}