| @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("/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; |
| } |
|
|
| |
| @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); |
| } |
| } |
|
|
| |
| @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); } |
| } |
|
|
| |
| @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); |
| } |
|
|