.perspective-1000,.perspective-2000{perspective-origin:50%}.perspective-3000{perspective:3000px;perspective-origin:50%}.transform-3d{transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.gpu-3d{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}@keyframes card-float{0%,to{transform:translateY(0) rotateX(0) rotateY(0)}50%{transform:translateY(-10px) rotateX(2deg) rotateY(2deg)}}.card-float:hover{animation:card-float 2s ease-in-out infinite}@keyframes shimmer-gallery{0%{background-position:-1000px 0}to{background-position:1000px 0}}.gallery-shimmer{position:relative;overflow:hidden}.gallery-shimmer:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2) 50%,transparent);background-size:1000px 100%;animation:shimmer-gallery 3s infinite;pointer-events:none}.stacked-card{position:absolute;inset:0;transition:all .6s cubic-bezier(.32,.72,0,1)}.stacked-card-active{z-index:10;transform:translateX(0) translateZ(0) rotateY(0deg) scale(1);filter:brightness(1)}.stacked-card-next{z-index:9;transform:translateX(60px) translateZ(-100px) rotateY(15deg) scale(.9);filter:brightness(.7)}.stacked-card-prev{z-index:8;transform:translateX(-60px) translateZ(-200px) rotateY(-15deg) scale(.85);filter:brightness(.6)}.carousel-center{transform:translateX(0) translateY(0) translateZ(0) scale(1) rotateY(0deg);z-index:10;filter:brightness(1)}.carousel-right{transform:translateX(300px) translateY(50px) translateZ(-200px) scale(.8) rotateY(-30deg)}.carousel-left,.carousel-right{z-index:5;filter:brightness(.7)}.carousel-left{transform:translateX(-300px) translateY(50px) translateZ(-200px) scale(.8) rotateY(30deg)}.bento-item{position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.bento-item:hover{transform:scale(1.02) translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.3);z-index:10}.bento-item:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(59,130,246,.1) 50%,transparent);opacity:0;transition:opacity .3s}.bento-item:hover:after{opacity:1}.parallax-image-1{transform:translateY(0)}.parallax-image-2{transform:translateY(-30px)}.parallax-image-3{transform:translateY(0)}.gallery-overlay-dark{background:linear-gradient(0deg,rgba(0,0,0,.8) 0,rgba(0,0,0,.4) 50%,transparent)}.gallery-overlay-light{background:linear-gradient(0deg,rgba(0,0,0,.6) 0,rgba(0,0,0,.2) 50%,transparent)}.gallery-overlay-gradient{background:linear-gradient(135deg,rgba(59,130,246,.6),rgba(147,51,234,.6))}@keyframes gallery-skeleton{0%{background-position:-200% 0}to{background-position:200% 0}}.gallery-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:gallery-skeleton 1.5s ease-in-out infinite}.nav-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.nav-dot-active{width:32px;border-radius:4px;background:white}.nav-dot:hover{background:rgba(255,255,255,.8);transform:scale(1.2)}.gallery-nav-button{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);box-shadow:0 4px 12px rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;transition:all .2s;cursor:pointer}.gallery-nav-button:hover{background:white;transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.2)}.gallery-nav-button:active{transform:scale(.95)}.gallery-category-badge{display:inline-block;padding:4px 12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;background:rgba(59,130,246,.9);color:white;backdrop-filter:blur(8px);box-shadow:0 2px 8px rgba(59,130,246,.3)}.gallery-image-zoom{transition:transform .5s cubic-bezier(.4,0,.2,1)}.gallery-image-zoom:hover{transform:scale(1.1)}@keyframes caption-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gallery-caption{animation:caption-slide-up .4s ease-out}.gallery-focusable:focus{outline:2px solid rgba(59,130,246,.5);outline-offset:4px}.gallery-focusable:focus:not(:focus-visible){outline:none}@media (max-width:768px){.perspective-1000,.perspective-2000,.perspective-3000{perspective:500px}.stacked-card-next,.stacked-card-prev{transform:translateX(30px) translateZ(-50px) rotateY(10deg) scale(.9)}.carousel-left,.carousel-right{transform:translateX(150px) translateY(30px) translateZ(-100px) scale(.85) rotateY(-20deg)}}@media (prefers-reduced-motion:reduce){.bento-item,.gallery-image-zoom,.gallery-nav-button,.nav-dot,.stacked-card{transition:none!important;animation:none!important}.card-float:hover{animation:none}}@media print{.gallery-nav-button,.gallery-overlay-dark,.gallery-overlay-gradient,.gallery-overlay-light,.nav-dot{display:none}}@media (prefers-color-scheme:dark){.gallery-skeleton{background:linear-gradient(90deg,#2a2a2a 25%,#1a1a1a 50%,#2a2a2a 75%)}.gallery-nav-button{background:rgba(0,0,0,.8)}.gallery-nav-button:hover{background:rgba(0,0,0,.9)}}@media (prefers-contrast:high){.gallery-overlay-dark,.gallery-overlay-light{background:rgba(0,0,0,.9)}.gallery-category-badge{border:2px solid white}}@keyframes gradient-x{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.animate-gradient-x{background-size:200% auto;animation:gradient-x 3s ease infinite}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.3) 50%,transparent);background-size:1000px 100%;animation:shimmer 2s infinite}@keyframes pulse-glow{0%,to{opacity:.75;box-shadow:0 0 20px rgba(59,130,246,.5)}50%{opacity:1;box-shadow:0 0 30px rgba(59,130,246,.8)}}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes rotate-subtle{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-rotate-subtle{animation:rotate-subtle 20s linear infinite}@keyframes scale-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-scale-pulse{animation:scale-pulse 2s ease-in-out infinite}@keyframes bounce-subtle{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(-10px);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce-subtle{animation:bounce-subtle 2s infinite}@keyframes glow-border{0%,to{border-color:rgba(59,130,246,.5);box-shadow:0 0 10px rgba(59,130,246,.3)}50%{border-color:rgba(59,130,246,1);box-shadow:0 0 20px rgba(59,130,246,.6)}}.animate-glow-border{animation:glow-border 2s ease-in-out infinite}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .6s ease-out}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-left{animation:slide-in-left .6s ease-out}@keyframes slide-in-right{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-right{animation:slide-in-right .6s ease-out}@keyframes gradient-border{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.gradient-border{position:relative;animation:gradient-border 4s ease infinite}.gradient-border,.gradient-border:before{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#ec4899,#3b82f6);background-size:300% 300%;border-radius:1rem;padding:2px}.gradient-border:before{content:"";position:absolute;inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.gpu-accelerated{transform:translateZ(0);-webkit-transform:translateZ(0)}html{scroll-behavior:smooth}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#3b82f6;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#2563eb}.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.backdrop-blur-md{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.backdrop-blur-lg{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.text-shadow-sm{text-shadow:0 1px 2px rgba(0,0,0,.1)}.text-shadow-md{text-shadow:0 2px 4px rgba(0,0,0,.2)}.text-shadow-lg{text-shadow:0 4px 8px rgba(0,0,0,.3)}.glass{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px 0 rgba(31,38,135,.37)}.glass,.glass-dark{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.glass-dark{background:rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px 0 rgba(0,0,0,.37)}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.15)}.perspective-1000{perspective:1000px}.perspective-2000{perspective:2000px}.flip-card{transform-style:preserve-3d;transition:transform .6s}.flip-card:hover{transform:rotateY(180deg)}.flip-card-back,.flip-card-front{backface-visibility:hidden;position:absolute;inset:0}.flip-card-back{transform:rotateY(180deg)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}