@import "tailwindcss"; @import "tw-animate-css"; @custom-variant dark (&:is(.dark *)); @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-inter-sans); --font-mono: var(--font-ptSans-mono); --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); } :root { --radius: 0.625rem; --background: oklch(1 0 0); --foreground: oklch(0.145 0 0); --card: oklch(1 0 0); --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); --popover-foreground: oklch(0.145 0 0); --primary: oklch(0.205 0 0); --primary-foreground: oklch(0.985 0 0); --secondary: oklch(0.97 0 0); --secondary-foreground: oklch(0.205 0 0); --muted: oklch(0.97 0 0); --muted-foreground: oklch(0.556 0 0); --accent: oklch(0.97 0 0); --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.577 0.245 27.325); --border: oklch(0.922 0 0); --input: oklch(0.922 0 0); --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); --sidebar-accent-foreground: oklch(0.205 0 0); --sidebar-border: oklch(0.922 0 0); --sidebar-ring: oklch(0.708 0 0); } .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.922 0 0); --primary-foreground: oklch(0.205 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); --ring: oklch(0.556 0 0); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.556 0 0); } body { @apply scroll-smooth } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; } html { @apply scroll-smooth; } } .background__noisy { @apply bg-blend-normal pointer-events-none opacity-90; background-size: 25ww auto; background-image: url("/deepsite/background_noisy.webp"); @apply fixed w-screen h-screen -z-1 top-0 left-0; } .monaco-editor .margin { @apply !bg-neutral-900; } .monaco-editor .monaco-editor-background { @apply !bg-neutral-900; } .monaco-editor .line-numbers { @apply !text-neutral-500; } .matched-line { @apply bg-sky-500/30; } /* Fast liquid deformation animations */ @keyframes liquidBlob1 { 0%, 100% { border-radius: 40% 60% 50% 50%; transform: scaleX(1) scaleY(1) rotate(0deg); } 12.5% { border-radius: 20% 80% 70% 30%; transform: scaleX(1.6) scaleY(0.4) rotate(25deg); } 25% { border-radius: 80% 20% 30% 70%; transform: scaleX(0.5) scaleY(2.1) rotate(-15deg); } 37.5% { border-radius: 30% 70% 80% 20%; transform: scaleX(1.8) scaleY(0.6) rotate(40deg); } 50% { border-radius: 70% 30% 20% 80%; transform: scaleX(0.4) scaleY(1.9) rotate(-30deg); } 62.5% { border-radius: 25% 75% 60% 40%; transform: scaleX(1.5) scaleY(0.7) rotate(55deg); } 75% { border-radius: 75% 25% 40% 60%; transform: scaleX(0.6) scaleY(1.7) rotate(-10deg); } 87.5% { border-radius: 50% 50% 75% 25%; transform: scaleX(1.3) scaleY(0.8) rotate(35deg); } } @keyframes liquidBlob2 { 0%, 100% { border-radius: 60% 40% 50% 50%; transform: scaleX(1) scaleY(1) rotate(12deg); } 16% { border-radius: 15% 85% 60% 40%; transform: scaleX(0.3) scaleY(2.3) rotate(50deg); } 32% { border-radius: 85% 15% 25% 75%; transform: scaleX(2.0) scaleY(0.5) rotate(-20deg); } 48% { border-radius: 30% 70% 85% 15%; transform: scaleX(0.4) scaleY(1.8) rotate(70deg); } 64% { border-radius: 70% 30% 15% 85%; transform: scaleX(1.9) scaleY(0.6) rotate(-35deg); } 80% { border-radius: 40% 60% 70% 30%; transform: scaleX(0.7) scaleY(1.6) rotate(45deg); } } @keyframes liquidBlob3 { 0%, 100% { border-radius: 50% 50% 40% 60%; transform: scaleX(1) scaleY(1) rotate(0deg); } 20% { border-radius: 10% 90% 75% 25%; transform: scaleX(2.2) scaleY(0.3) rotate(-45deg); } 40% { border-radius: 90% 10% 20% 80%; transform: scaleX(0.4) scaleY(2.5) rotate(60deg); } 60% { border-radius: 25% 75% 90% 10%; transform: scaleX(1.7) scaleY(0.5) rotate(-25deg); } 80% { border-radius: 75% 25% 10% 90%; transform: scaleX(0.6) scaleY(2.0) rotate(80deg); } } @keyframes liquidBlob4 { 0%, 100% { border-radius: 45% 55% 50% 50%; transform: scaleX(1) scaleY(1) rotate(-15deg); } 14% { border-radius: 90% 10% 65% 35%; transform: scaleX(0.2) scaleY(2.8) rotate(35deg); } 28% { border-radius: 10% 90% 20% 80%; transform: scaleX(2.4) scaleY(0.4) rotate(-50deg); } 42% { border-radius: 35% 65% 90% 10%; transform: scaleX(0.3) scaleY(2.1) rotate(70deg); } 56% { border-radius: 80% 20% 10% 90%; transform: scaleX(2.0) scaleY(0.5) rotate(-40deg); } 70% { border-radius: 20% 80% 55% 45%; transform: scaleX(0.5) scaleY(1.9) rotate(55deg); } 84% { border-radius: 65% 35% 80% 20%; transform: scaleX(1.6) scaleY(0.6) rotate(-25deg); } } /* Fast flowing movement animations */ @keyframes liquidFlow1 { 0%, 100% { transform: translate(0, 0); } 16% { transform: translate(60px, -40px); } 32% { transform: translate(-45px, -70px); } 48% { transform: translate(80px, 25px); } 64% { transform: translate(-30px, 60px); } 80% { transform: translate(50px, -20px); } } @keyframes liquidFlow2 { 0%, 100% { transform: translate(0, 0); } 20% { transform: translate(-70px, 50px); } 40% { transform: translate(90px, -30px); } 60% { transform: translate(-40px, -55px); } 80% { transform: translate(65px, 35px); } } @keyframes liquidFlow3 { 0%, 100% { transform: translate(0, 0); } 12% { transform: translate(-50px, -60px); } 24% { transform: translate(40px, -20px); } 36% { transform: translate(-30px, 70px); } 48% { transform: translate(70px, 20px); } 60% { transform: translate(-60px, -35px); } 72% { transform: translate(35px, 55px); } 84% { transform: translate(-25px, -45px); } } @keyframes liquidFlow4 { 0%, 100% { transform: translate(0, 0); } 14% { transform: translate(50px, 60px); } 28% { transform: translate(-80px, -40px); } 42% { transform: translate(30px, -90px); } 56% { transform: translate(-55px, 45px); } 70% { transform: translate(75px, -25px); } 84% { transform: translate(-35px, 65px); } } /* Light sweep animation for buttons */ @keyframes lightSweep { 0% { transform: translateX(-150%); opacity: 0; } 8% { opacity: 0.3; } 25% { opacity: 0.8; } 42% { opacity: 0.3; } 50% { transform: translateX(150%); opacity: 0; } 58% { opacity: 0.3; } 75% { opacity: 0.8; } 92% { opacity: 0.3; } 100% { transform: translateX(-150%); opacity: 0; } } .light-sweep { position: relative; overflow: hidden; } .light-sweep::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 300%; background: linear-gradient( 90deg, transparent 0%, transparent 20%, rgba(56, 189, 248, 0.1) 35%, rgba(56, 189, 248, 0.2) 45%, rgba(255, 255, 255, 0.2) 50%, rgba(168, 85, 247, 0.2) 55%, rgba(168, 85, 247, 0.1) 65%, transparent 80%, transparent 100% ); animation: lightSweep 7s cubic-bezier(0.4, 0, 0.2, 1) infinite; pointer-events: none; z-index: 1; filter: blur(1px); }