html,body{max-width:100%;overflow-x:hidden}:root{--bg-dark: #0a0a0f;--bg-darker: #050508;--accent-cyan: #00f0ff;--accent-magenta: #ff00aa;--accent-purple: #8b5cf6;--text-primary: #ffffff;--text-secondary: #94a3b8;--text-muted: #64748b;--gradient-1: linear-gradient(135deg, #00f0ff 0%, #8b5cf6 50%, #ff00aa 100%);--gradient-2: linear-gradient(90deg, #00f0ff, #8b5cf6)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:DM Sans,sans-serif;background:var(--bg-dark);color:var(--text-primary);overflow-x:hidden;cursor:none}@media (max-width: 768px){body{cursor:auto}}.cursor{width:20px;height:20px;border:2px solid var(--accent-cyan);border-radius:50%;position:fixed;pointer-events:none;z-index:10000;transition:transform .1s ease,background .2s ease;mix-blend-mode:difference}.cursor.hover{transform:scale(2);background:#00f0ff1a}@media (max-width: 768px){.cursor{display:none}}.cursor-dot{width:6px;height:6px;background:var(--accent-cyan);border-radius:50%;position:fixed;pointer-events:none;z-index:10001}@media (max-width: 768px){.cursor-dot{display:none}}.noise{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}.gradient-text{background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.1%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.reveal{opacity:0;transform:translateY(50px);transition:opacity .8s ease,transform .8s ease}.reveal.active{opacity:1;transform:translateY(0)}.mask-text{overflow:hidden}.mask-text span{display:inline-block;transform:translateY(100%);transition:transform .8s cubic-bezier(.23,1,.32,1)}.mask-text.revealed span{transform:translateY(0)}@media (max-width: 768px){.cursor,.cursor-dot{display:none!important}}
