.typing-animation{overflow:hidden;border-right:3px solid #fff;white-space:pre-wrap;animation:typing 2s steps(40),blink-caret .75s step-end infinite}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:#fff}}.particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.particle{position:absolute;font-size:2rem;animation:float 3s ease-in-out infinite;opacity:.6}@keyframes float{0%,to{transform:translateY(0) rotate(0deg);opacity:.6}50%{transform:translateY(-20px) rotate(180deg);opacity:1}}.confetti{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;animation:confetti-fall 3s linear infinite}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.code-rain{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.code-char{position:absolute;color:#0f0;font-family:Courier New,monospace;font-size:1.2rem;animation:code-fall 2s linear infinite;text-shadow:0 0 10px #0f0}@keyframes code-fall{0%{transform:translateY(-100vh);opacity:1}to{transform:translateY(100vh);opacity:0}}.stars{top:0;left:0;width:100%;height:100%;pointer-events:none}.star,.stars{position:absolute}.star{width:2px;height:2px;background:#fff;border-radius:50%;animation:twinkle 3s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}@media (max-width:768px){.typing-animation{animation:none;border-right:none}.text-5xl{font-size:2.5rem}.text-6xl{font-size:3rem}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.5)}button:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.2)}button:active{transform:translateY(0)}.text-transparent{background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.backdrop-blur-lg{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}