.ai-shell{min-height:100vh;overflow-x:hidden;position:relative;background:hsl(var(--background));color:hsl(var(--foreground));font-family:Mona Sans,Arial,sans-serif;color-scheme:dark}.ai-ambient{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.ai-ambient-dots{position:absolute;inset:0;opacity:.48;background-image:radial-gradient(circle at 1px 1px,hsla(0,0%,100%,.08) 1.2px,transparent 0);background-size:22px 22px;-webkit-mask-image:radial-gradient(circle at center,#000 54%,transparent 100%);mask-image:radial-gradient(circle at center,#000 54%,transparent 100%)}.ai-ambient-glow{position:absolute;inset:-20%;background:radial-gradient(circle at 20% 20%,hsla(0,0%,100%,.03),transparent 30%),radial-gradient(circle at 80% 10%,hsla(0,0%,100%,.04),transparent 28%),radial-gradient(circle at 50% 80%,rgba(0,0,0,.035),transparent 35%);animation:ai-drift 20s linear infinite}.ai-content{position:relative;z-index:1}.ai-shell,.ai-shell *{box-sizing:border-box}.ai-shell *,.ai-shell ::backdrop,.ai-shell ::file-selector-button,.ai-shell :after,.ai-shell :before{border-color:hsl(var(--border))}.ai-shell .text-balance{text-wrap:balance}.ai-shell .mask{-webkit-mask-image:radial-gradient(#000 0,transparent 80%);mask-image:radial-gradient(#000 0,transparent 80%)}.ai-shell .animate-hover{animation:ai-hover 4s cubic-bezier(.45,0,.55,1) infinite}.ai-shell .animate-dashesReverse{animation:ai-dashes .8s linear infinite reverse}.ai-shell .bg-linear-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.ai-shell .bg-linear-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.ai-shell .bg-linear-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.ai-shell .bg-linear-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.ai-shell .bg-linear-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}@keyframes ai-dashes{0%{stroke-dashoffset:-7}to{stroke-dashoffset:0}}@keyframes ai-hover{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ai-drift{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(2%,-1.5%,0) scale(1.03)}to{transform:translateZ(0) scale(1)}}