.animate-on-scroll{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}.fade-in-up{transform:translateY(40px)}.fade-in-up.is-visible{opacity:1;transform:translateY(0)}.fade-in-down{transform:translateY(-40px)}.fade-in-down.is-visible{opacity:1;transform:translateY(0)}.fade-in-left{transform:translate(-50px)}.fade-in-left.is-visible{opacity:1;transform:translate(0)}.fade-in-right{transform:translate(50px)}.fade-in-right.is-visible{opacity:1;transform:translate(0)}.scale-up{transform:scale(.85)}.scale-up.is-visible{opacity:1;transform:scale(1)}.fade-in{transform:none}.fade-in.is-visible{opacity:1}.blur-in{transform:scale(1.05);filter:blur(12px)}.blur-in.is-visible{opacity:1;transform:scale(1);filter:blur(0)}.rotate-in{transform:rotate(-8deg) scale(.9)}.rotate-in.is-visible{opacity:1;transform:rotate(0) scale(1)}.stagger-1{transition-delay:.08s}.stagger-2{transition-delay:.16s}.stagger-3{transition-delay:.24s}.stagger-4{transition-delay:.32s}.stagger-5{transition-delay:.4s}.stagger-6{transition-delay:.48s}.stagger-7{transition-delay:.56s}.stagger-8{transition-delay:.64s}.counter-animate{display:inline-block}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.gradient-mesh{background:linear-gradient(135deg,#0c4a6e,#0369a1,#0284c7,#0ea5e9,#38bdf8);background-size:300% 300%;animation:gradientShift 15s ease infinite}.gradient-mesh-dark{background:linear-gradient(135deg,#020617,#0c4a6e,#1e293b 60%,#0c4a6e);background-size:400% 400%;animation:gradientShift 20s ease infinite}@keyframes blobFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.95)}}.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;animation:blobFloat 18s ease-in-out infinite;pointer-events:none}.blob-sky{background:#0ea5e9}.blob-orange{background:#f97316}.blob-purple{background:#a855f7}.blob-cyan{background:#06b6d4}@keyframes floatUp{0%{transform:translateY(100vh) translate(0) scale(0);opacity:0}10%{opacity:.6}90%{opacity:.6}to{transform:translateY(-20vh) translate(var(--drift, 100px)) scale(1);opacity:0}}.particle{position:absolute;width:4px;height:4px;background:#fffc;border-radius:50%;pointer-events:none;animation:floatUp var(--duration, 8s) linear infinite;animation-delay:var(--delay, 0s);animation-fill-mode:backwards;box-shadow:0 0 8px #fffc,0 0 16px #38bdf880}.glass{background:#ffffff14;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.15)}.glass-light{background:#ffffffa6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.5)}.tilt-card{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.16,1,.3,1)}.tilt-card:hover{transform:perspective(1000px) rotateX(4deg) rotateY(-4deg) translateY(-8px)}.magnetic-glow{position:relative;overflow:hidden}.magnetic-glow:before{content:"";position:absolute;inset:0;background:radial-gradient(400px circle at var(--mx, 50%) var(--my, 50%),rgba(14,165,233,.15),transparent 40%);opacity:0;transition:opacity .3s;pointer-events:none}.magnetic-glow:hover:before{opacity:1}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-track{display:flex;animation:marquee 30s linear infinite;width:-moz-max-content;width:max-content}.marquee-container:hover .marquee-track{animation-play-state:paused}@keyframes pulseRing{0%{box-shadow:0 0 #f9731699}70%{box-shadow:0 0 0 20px #f9731600}to{box-shadow:0 0 #f9731600}}.pulse-ring{animation:pulseRing 2.5s infinite}.shine{position:relative;overflow:hidden}.shine:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .6s}.shine:hover:after{left:100%}@keyframes floatAC{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-20px) rotate(2deg)}}.float-ac{animation:floatAC 6s ease-in-out infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.typewriter-cursor{display:inline-block;width:3px;background:currentColor;animation:blink 1s infinite;margin-left:4px}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#0ea5e9,#f97316);z-index:100;transition:width .1s;box-shadow:0 0 10px #0ea5e999}.parallax-slow,.parallax-medium{will-change:transform}.reveal-words span{display:inline-block;opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}.reveal-words.is-visible span{opacity:1;transform:translateY(0)}.hover-lift{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px -10px #0ea5e94d}@media(prefers-reduced-motion:reduce){.animate-on-scroll,.animate-on-scroll.fade-in-up,.animate-on-scroll.fade-in-down,.animate-on-scroll.fade-in-left,.animate-on-scroll.fade-in-right,.animate-on-scroll.scale-up,.animate-on-scroll.fade-in,.animate-on-scroll.blur-in,.animate-on-scroll.rotate-in{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.blob,.particle,.marquee-track,.float-ac,.gradient-mesh,.gradient-mesh-dark,.pulse-ring{animation:none!important}.reveal-words span{opacity:1!important;transform:none!important}}.cursor-dot,.cursor-ring{position:fixed;border-radius:50%;pointer-events:none;z-index:9999;will-change:transform;transition:opacity .3s}.cursor-dot{width:8px;height:8px;background:#0ea5e9;box-shadow:0 0 12px 4px #0ea5e9b3;transform:translate(-50%,-50%)}.cursor-ring{width:36px;height:36px;border:2px solid rgba(14,165,233,.5);background:#0ea5e90f;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s,background .3s}.cursor-ring.cursor-hover{width:56px;height:56px;border-color:#f97316b3;background:#f9731614}@media(hover:none){.cursor-dot,.cursor-ring{display:none}}@media(prefers-reduced-motion:reduce){.cursor-dot,.cursor-ring{display:none}}.hero-spotlight{position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px circle at var(--sx, 50%) var(--sy, 50%),rgba(14,165,233,.12),transparent 60%);transition:background .05s;z-index:1}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Plus Jakarta Sans,system-ui,sans-serif}
