From 728c01d2f7803571808ee6b9d06135401b08b600 Mon Sep 17 00:00:00 2001 From: snxraven Date: Fri, 4 Jul 2025 02:30:40 -0400 Subject: [PATCH] edit particles --- css/style-min.css | 1504 --------------------------------------------- css/style.css | 38 +- css/style.min.css | 202 +----- js/main.js | 14 +- 4 files changed, 64 insertions(+), 1694 deletions(-) delete mode 100644 css/style-min.css diff --git a/css/style-min.css b/css/style-min.css deleted file mode 100644 index 945e935..0000000 --- a/css/style-min.css +++ /dev/null @@ -1,1504 +0,0 @@ -/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */ -@layer properties; -@layer theme, base, components, utilities; -@layer theme { - :root, :host { - --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", - "Courier New", monospace; - --color-teal-300: oklch(85.5% 0.138 181.071); - --color-teal-400: oklch(77.7% 0.152 181.912); - --color-teal-500: oklch(70.4% 0.14 182.503); - --color-blue-400: oklch(70.7% 0.165 254.624); - --color-blue-500: oklch(62.3% 0.214 259.815); - --color-gray-200: oklch(92.8% 0.006 264.531); - --color-gray-300: oklch(87.2% 0.01 258.338); - --color-gray-800: oklch(27.8% 0.033 256.848); - --color-gray-900: oklch(21% 0.034 264.665); - --color-white: #fff; - --spacing: 0.25rem; - --container-2xl: 42rem; - --container-3xl: 48rem; - --container-7xl: 80rem; - --text-sm: 0.875rem; - --text-sm--line-height: calc(1.25 / 0.875); - --text-base: 1rem; - --text-base--line-height: calc(1.5 / 1); - --text-lg: 1.125rem; - --text-lg--line-height: calc(1.75 / 1.125); - --text-xl: 1.25rem; - --text-xl--line-height: calc(1.75 / 1.25); - --text-2xl: 1.5rem; - --text-2xl--line-height: calc(2 / 1.5); - --text-3xl: 1.875rem; - --text-3xl--line-height: calc(2.25 / 1.875); - --text-4xl: 2.25rem; - --text-4xl--line-height: calc(2.5 / 2.25); - --text-5xl: 3rem; - --text-5xl--line-height: 1; - --font-weight-medium: 500; - --font-weight-semibold: 600; - --font-weight-bold: 700; - --tracking-tight: -0.025em; - --tracking-wide: 0.025em; - --leading-relaxed: 1.625; - --radius-md: 0.375rem; - --radius-lg: 0.5rem; - --radius-xl: 0.75rem; - --ease-out: cubic-bezier(0, 0, 0.2, 1); - --blur-xl: 24px; - --default-transition-duration: 150ms; - --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - --default-font-family: var(--font-sans); - --default-mono-font-family: var(--font-mono); - } -} -@layer base { - *, ::after, ::before, ::backdrop, ::file-selector-button { - box-sizing: border-box; - margin: 0; - padding: 0; - border: 0 solid; - } - html, :host { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - tab-size: 4; - font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); - font-feature-settings: var(--default-font-feature-settings, normal); - font-variation-settings: var(--default-font-variation-settings, normal); - -webkit-tap-highlight-color: transparent; - } - hr { - height: 0; - color: inherit; - border-top-width: 1px; - } - abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - h1, h2, h3, h4, h5, h6 { - font-size: inherit; - font-weight: inherit; - } - a { - color: inherit; - -webkit-text-decoration: inherit; - text-decoration: inherit; - } - b, strong { - font-weight: bolder; - } - code, kbd, samp, pre { - font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); - font-feature-settings: var(--default-mono-font-feature-settings, normal); - font-variation-settings: var(--default-mono-font-variation-settings, normal); - font-size: 1em; - } - small { - font-size: 80%; - } - sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - sub { - bottom: -0.25em; - } - sup { - top: -0.5em; - } - table { - text-indent: 0; - border-color: inherit; - border-collapse: collapse; - } - :-moz-focusring { - outline: auto; - } - progress { - vertical-align: baseline; - } - summary { - display: list-item; - } - ol, ul, menu { - list-style: none; - } - img, svg, video, canvas, audio, iframe, embed, object { - display: block; - vertical-align: middle; - } - img, video { - max-width: 100%; - height: auto; - } - button, input, select, optgroup, textarea, ::file-selector-button { - font: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - letter-spacing: inherit; - color: inherit; - border-radius: 0; - background-color: transparent; - opacity: 1; - } - :where(select:is([multiple], [size])) optgroup { - font-weight: bolder; - } - :where(select:is([multiple], [size])) optgroup option { - padding-inline-start: 20px; - } - ::file-selector-button { - margin-inline-end: 4px; - } - ::placeholder { - opacity: 1; - } - @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { - ::placeholder { - color: currentcolor; - @supports (color: color-mix(in lab, red, red)) { - color: color-mix(in oklab, currentcolor 50%, transparent); - } - } - } - textarea { - resize: vertical; - } - ::-webkit-search-decoration { - -webkit-appearance: none; - } - ::-webkit-date-and-time-value { - min-height: 1lh; - text-align: inherit; - } - ::-webkit-datetime-edit { - display: inline-flex; - } - ::-webkit-datetime-edit-fields-wrapper { - padding: 0; - } - ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { - padding-block: 0; - } - :-moz-ui-invalid { - box-shadow: none; - } - button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { - appearance: button; - } - ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { - height: auto; - } - [hidden]:where(:not([hidden="until-found"])) { - display: none !important; - } -} -@layer utilities { - .absolute { - position: absolute; - } - .fixed { - position: fixed; - } - .relative { - position: relative; - } - .static { - position: static; - } - .inset-0 { - inset: calc(var(--spacing) * 0); - } - .top-1\/2 { - top: calc(1/2 * 100%); - } - .-left-full { - left: -100%; - } - .left-1\/2 { - left: calc(1/2 * 100%); - } - .z-1 { - z-index: 1; - } - .z-2 { - z-index: 2; - } - .z-10 { - z-index: 10; - } - .z-50 { - z-index: 50; - } - .container { - width: 100%; - @media (width >= 40rem) { - max-width: 40rem; - } - @media (width >= 48rem) { - max-width: 48rem; - } - @media (width >= 64rem) { - max-width: 64rem; - } - @media (width >= 80rem) { - max-width: 80rem; - } - @media (width >= 96rem) { - max-width: 96rem; - } - } - .mx-auto { - margin-inline: auto; - } - .mt-3 { - margin-top: calc(var(--spacing) * 3); - } - .mt-4 { - margin-top: calc(var(--spacing) * 4); - } - .mt-6 { - margin-top: calc(var(--spacing) * 6); - } - .mt-8 { - margin-top: calc(var(--spacing) * 8); - } - .mb-1\.5 { - margin-bottom: calc(var(--spacing) * 1.5); - } - .mb-2 { - margin-bottom: calc(var(--spacing) * 2); - } - .mb-3 { - margin-bottom: calc(var(--spacing) * 3); - } - .mb-4 { - margin-bottom: calc(var(--spacing) * 4); - } - .mb-6 { - margin-bottom: calc(var(--spacing) * 6); - } - .mb-8 { - margin-bottom: calc(var(--spacing) * 8); - } - .mb-10 { - margin-bottom: calc(var(--spacing) * 10); - } - .mb-12 { - margin-bottom: calc(var(--spacing) * 12); - } - .ml-6 { - margin-left: calc(var(--spacing) * 6); - } - .block { - display: block; - } - .contents { - display: contents; - } - .flex { - display: flex; - } - .grid { - display: grid; - } - .hidden { - display: none; - } - .inline { - display: inline; - } - .inline-block { - display: inline-block; - } - .h-0 { - height: calc(var(--spacing) * 0); - } - .h-0\.5 { - height: calc(var(--spacing) * 0.5); - } - .h-10 { - height: calc(var(--spacing) * 10); - } - .w-0 { - width: calc(var(--spacing) * 0); - } - .w-6 { - width: calc(var(--spacing) * 6); - } - .w-10 { - width: calc(var(--spacing) * 10); - } - .max-w-2xl { - max-width: var(--container-2xl); - } - .max-w-3xl { - max-width: var(--container-3xl); - } - .max-w-7xl { - max-width: var(--container-7xl); - } - .max-w-full { - max-width: 100%; - } - .-translate-x-1\/2 { - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .-translate-y-1\/2 { - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .transform { - transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); - } - .list-inside { - list-style-position: inside; - } - .list-decimal { - list-style-type: decimal; - } - .list-disc { - list-style-type: disc; - } - .grid-cols-1 { - grid-template-columns: repeat(1, minmax(0, 1fr)); - } - .flex-col { - flex-direction: column; - } - .flex-wrap { - flex-wrap: wrap; - } - .items-center { - align-items: center; - } - .justify-between { - justify-content: space-between; - } - .justify-center { - justify-content: center; - } - .gap-2 { - gap: calc(var(--spacing) * 2); - } - .gap-4 { - gap: calc(var(--spacing) * 4); - } - .gap-6 { - gap: calc(var(--spacing) * 6); - } - .space-y-2 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); - } - } - .space-y-4 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); - } - } - .space-y-6 { - :where(& > :not(:last-child)) { - --tw-space-y-reverse: 0; - margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); - margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); - } - } - .self-center { - align-self: center; - } - .overflow-hidden { - overflow: hidden; - } - .rounded { - border-radius: 0.25rem; - } - .rounded-lg { - border-radius: var(--radius-lg); - } - .rounded-md { - border-radius: var(--radius-md); - } - .rounded-xl { - border-radius: var(--radius-xl); - } - .border { - border-style: var(--tw-border-style); - border-width: 1px; - } - .bg-gray-800 { - background-color: var(--color-gray-800); - } - .bg-gray-900 { - background-color: var(--color-gray-900); - } - .bg-gray-900\/20 { - background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 20%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-gray-900) 20%, transparent); - } - } - .bg-gray-900\/80 { - background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 80%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-gray-900) 80%, transparent); - } - } - .bg-gray-900\/98 { - background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 98%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-gray-900) 98%, transparent); - } - } - .bg-teal-400 { - background-color: var(--color-teal-400); - } - .bg-gradient-to-r { - --tw-gradient-position: to right in oklab; - background-image: linear-gradient(var(--tw-gradient-stops)); - } - .bg-\[radial-gradient\(circle\,rgba\(20\,184\,166\,0\.5\)\,transparent\)\] { - background-image: radial-gradient(circle,rgba(20,184,166,0.5),transparent); - } - .from-teal-400 { - --tw-gradient-from: var(--color-teal-400); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .from-teal-500 { - --tw-gradient-from: var(--color-teal-500); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .from-transparent { - --tw-gradient-from: transparent; - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .via-white\/40 { - --tw-gradient-via: color-mix(in srgb, #fff 40%, transparent); - @supports (color: color-mix(in lab, red, red)) { - --tw-gradient-via: color-mix(in oklab, var(--color-white) 40%, transparent); - } - --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); - --tw-gradient-stops: var(--tw-gradient-via-stops); - } - .to-blue-500 { - --tw-gradient-to: var(--color-blue-500); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .to-transparent { - --tw-gradient-to: transparent; - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .bg-\[length\:300\%_300\%\] { - background-size: 300% 300%; - } - .bg-clip-text { - background-clip: text; - } - .p-6 { - padding: calc(var(--spacing) * 6); - } - .p-8 { - padding: calc(var(--spacing) * 8); - } - .px-1 { - padding-inline: calc(var(--spacing) * 1); - } - .px-1\.5 { - padding-inline: calc(var(--spacing) * 1.5); - } - .px-2 { - padding-inline: calc(var(--spacing) * 2); - } - .px-4 { - padding-inline: calc(var(--spacing) * 4); - } - .px-7 { - padding-inline: calc(var(--spacing) * 7); - } - .py-0\.5 { - padding-block: calc(var(--spacing) * 0.5); - } - .py-1 { - padding-block: calc(var(--spacing) * 1); - } - .py-2 { - padding-block: calc(var(--spacing) * 2); - } - .py-3\.5 { - padding-block: calc(var(--spacing) * 3.5); - } - .py-8 { - padding-block: calc(var(--spacing) * 8); - } - .py-16 { - padding-block: calc(var(--spacing) * 16); - } - .pb-16 { - padding-bottom: calc(var(--spacing) * 16); - } - .pl-6 { - padding-left: calc(var(--spacing) * 6); - } - .text-center { - text-align: center; - } - .font-mono { - font-family: var(--font-mono); - } - .text-2xl { - font-size: var(--text-2xl); - line-height: var(--tw-leading, var(--text-2xl--line-height)); - } - .text-3xl { - font-size: var(--text-3xl); - line-height: var(--tw-leading, var(--text-3xl--line-height)); - } - .text-4xl { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - .text-5xl { - font-size: var(--text-5xl); - line-height: var(--tw-leading, var(--text-5xl--line-height)); - } - .text-base { - font-size: var(--text-base); - line-height: var(--tw-leading, var(--text-base--line-height)); - } - .text-lg { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - } - .text-sm { - font-size: var(--text-sm); - line-height: var(--tw-leading, var(--text-sm--line-height)); - } - .text-xl { - font-size: var(--text-xl); - line-height: var(--tw-leading, var(--text-xl--line-height)); - } - .leading-relaxed { - --tw-leading: var(--leading-relaxed); - line-height: var(--leading-relaxed); - } - .font-bold { - --tw-font-weight: var(--font-weight-bold); - font-weight: var(--font-weight-bold); - } - .font-medium { - --tw-font-weight: var(--font-weight-medium); - font-weight: var(--font-weight-medium); - } - .font-semibold { - --tw-font-weight: var(--font-weight-semibold); - font-weight: var(--font-weight-semibold); - } - .tracking-tight { - --tw-tracking: var(--tracking-tight); - letter-spacing: var(--tracking-tight); - } - .tracking-wide { - --tw-tracking: var(--tracking-wide); - letter-spacing: var(--tracking-wide); - } - .text-gray-200 { - color: var(--color-gray-200); - } - .text-gray-300 { - color: var(--color-gray-300); - } - .text-teal-300 { - color: var(--color-teal-300); - } - .text-teal-400 { - color: var(--color-teal-400); - } - .text-transparent { - color: transparent; - } - .text-white { - color: var(--color-white); - } - .underline { - text-decoration-line: underline; - } - .opacity-0 { - opacity: 0%; - } - .opacity-90 { - opacity: 90%; - } - .shadow-lg { - --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .shadow-xl { - --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - .backdrop-blur-xl { - --tw-backdrop-blur: blur(var(--blur-xl)); - -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - } - .backdrop-filter { - -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - } - .transition { - transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .transition-\[left\] { - transition-property: left; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .transition-all { - transition-property: all; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .transition-transform { - transition-property: transform, translate, scale, rotate; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } - .duration-300 { - --tw-duration: 300ms; - transition-duration: 300ms; - } - .duration-500 { - --tw-duration: 500ms; - transition-duration: 500ms; - } - .ease-out { - --tw-ease: var(--ease-out); - transition-timing-function: var(--ease-out); - } - .group-hover\:left-full { - &:is(:where(.group):hover *) { - @media (hover: hover) { - left: 100%; - } - } - } - .group-hover\:h-\[200px\] { - &:is(:where(.group):hover *) { - @media (hover: hover) { - height: 200px; - } - } - } - .group-hover\:w-\[200px\] { - &:is(:where(.group):hover *) { - @media (hover: hover) { - width: 200px; - } - } - } - .group-hover\:opacity-100 { - &:is(:where(.group):hover *) { - @media (hover: hover) { - opacity: 100%; - } - } - } - .hover\:scale-110 { - &:hover { - @media (hover: hover) { - --tw-scale-x: 110%; - --tw-scale-y: 110%; - --tw-scale-z: 110%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - } - } - .hover\:bg-gradient-to-r { - &:hover { - @media (hover: hover) { - --tw-gradient-position: to right in oklab; - background-image: linear-gradient(var(--tw-gradient-stops)); - } - } - } - .hover\:from-blue-500 { - &:hover { - @media (hover: hover) { - --tw-gradient-from: var(--color-blue-500); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - } - } - .hover\:to-teal-400 { - &:hover { - @media (hover: hover) { - --tw-gradient-to: var(--color-teal-400); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - } - } - .hover\:text-blue-400 { - &:hover { - @media (hover: hover) { - color: var(--color-blue-400); - } - } - } - .hover\:shadow-\[0_8px_30px_rgba\(20\,184\,166\,0\.7\)\] { - &:hover { - @media (hover: hover) { - --tw-shadow: 0 8px 30px var(--tw-shadow-color, rgba(20,184,166,0.7)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - } - .focus\:outline-none { - &:focus { - --tw-outline-style: none; - outline-style: none; - } - } - .sm\:mb-8 { - @media (width >= 40rem) { - margin-bottom: calc(var(--spacing) * 8); - } - } - .sm\:grid-cols-2 { - @media (width >= 40rem) { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - } - .sm\:p-8 { - @media (width >= 40rem) { - padding: calc(var(--spacing) * 8); - } - } - .sm\:p-10 { - @media (width >= 40rem) { - padding: calc(var(--spacing) * 10); - } - } - .sm\:p-12 { - @media (width >= 40rem) { - padding: calc(var(--spacing) * 12); - } - } - .sm\:px-6 { - @media (width >= 40rem) { - padding-inline: calc(var(--spacing) * 6); - } - } - .sm\:text-2xl { - @media (width >= 40rem) { - font-size: var(--text-2xl); - line-height: var(--tw-leading, var(--text-2xl--line-height)); - } - } - .sm\:text-3xl { - @media (width >= 40rem) { - font-size: var(--text-3xl); - line-height: var(--tw-leading, var(--text-3xl--line-height)); - } - } - .sm\:text-4xl { - @media (width >= 40rem) { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - } - .sm\:text-lg { - @media (width >= 40rem) { - font-size: var(--text-lg); - line-height: var(--tw-leading, var(--text-lg--line-height)); - } - } - .md\:flex { - @media (width >= 48rem) { - display: flex; - } - } - .md\:hidden { - @media (width >= 48rem) { - display: none; - } - } - .md\:p-10 { - @media (width >= 48rem) { - padding: calc(var(--spacing) * 10); - } - } - .md\:text-4xl { - @media (width >= 48rem) { - font-size: var(--text-4xl); - line-height: var(--tw-leading, var(--text-4xl--line-height)); - } - } - .lg\:grid-cols-3 { - @media (width >= 64rem) { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - } - .lg\:grid-cols-4 { - @media (width >= 64rem) { - grid-template-columns: repeat(4, minmax(0, 1fr)); - } - } - .lg\:p-16 { - @media (width >= 64rem) { - padding: calc(var(--spacing) * 16); - } - } - .lg\:px-8 { - @media (width >= 64rem) { - padding-inline: calc(var(--spacing) * 8); - } - } -} -@font-face { - font-family: 'Minecraft'; - src: url('../font/MinecraftRegular-Bmg3.otf') format('opentype'); - font-weight: normal; - font-style: normal; -} -body { - background: linear-gradient(135deg, #0b0f2b, #1a2249); - font-family: 'Roboto', 'Verdana', sans-serif; - color: #e0e7ff; - overflow-x: hidden; - position: relative; - margin: 0; - min-height: 100vh; - scroll-behavior: smooth; -} -.minecraft-font { - font-family: 'Minecraft', sans-serif; - letter-spacing: 0.8px; - text-shadow: 0 0 8px rgba(20, 184, 166, 0.5); - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - transform: translateZ(0); -} -.section-bg { - background: rgba(10, 17, 40, 0.75); - border-radius: 24px; - border: 1px solid rgba(255, 255, 255, 0.1); - box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4), inset 0 0 15px rgba(255, 255, 255, 0.08); - transition: box-shadow 0.4s ease; - animation: floatSection 4s ease-in-out infinite; - z-index: 2; -} -.section-bg h1, .section-bg h2, .section-bg h3, .section-bg h4, .section-bg p { - transform: translateZ(0); - color: #14b8a6; -} -.section-bg:hover { - box-shadow: 0 12px 40px rgba(20, 184, 166, 0.4), inset 0 0 20px rgba(255, 255, 255, 0.12); -} -@keyframes floatSection { - 0%, 100% { - box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4), inset 0 0 15px rgba(255, 255, 255, 0.08); - } - 50% { - box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5), inset 0 0 18px rgba(255, 255, 255, 0.1); - } -} -.btn-minecraft { - background: linear-gradient(45deg, #14b8a6, #3b82f6); - background-size: 300% 300%; - border: none; - color: #fff; - text-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - border-radius: 14px; - padding: 14px 30px; - font-weight: 700; - position: relative; - overflow: hidden; - transition: transform 0.3s, box-shadow 0.3s; - animation: gradientShift 5s ease infinite; -} -.btn-minecraft::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); - transition: left 0.5s; -} -.btn-minecraft:hover::before { - left: 100%; -} -.btn-minecraft:hover { - transform: scale(1.1); - box-shadow: 0 8px 30px rgba(20, 184, 166, 0.7); -} -.btn-minecraft::after { - content: ''; - position: absolute; - top: 50%; - left: 50%; - width: 0; - height: 0; - background: radial-gradient(circle, rgba(20, 184, 166, 0.5), transparent); - opacity: 0; - transition: width 0.3s, height 0.3s, opacity 0.3s; - transform: translate(-50%, -50%); -} -.btn-minecraft:hover::after { - width: 200px; - height: 200px; - opacity: 1; -} -@keyframes gradientShift { - 0% { - background-position: 0% 50%; - } - 50% { - background-position: 100% 50%; - } - 100% { - background-position: 0% 50%; - } -} -.hero-bg { - position: relative; - overflow: hidden; - min-height: 600px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 24px; - background: rgba(10, 17, 40, 0.75); - z-index: 2; -} -.hero-bg iframe { - position: absolute; - top: 50%; - left: 50%; - width: 120%; - height: 120%; - min-height: 600px; - transform: translate(-50%, -50%) scale(1.2); - object-fit: cover; - z-index: 1; - border: none; - pointer-events: none; - backface-visibility: hidden; -} -.hero-bg img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - z-index: 0; - display: none; -} -.hero-bg::before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.6)); - z-index: 2; -} -.hero-content { - position: relative; - z-index: 3; - text-align: center; - padding: 4rem; - animation: scaleIn 1.2s ease-out; -} -.hero-content h2, .hero-content p { - transform: translateZ(0); - color: #14b8a6; -} -.header-content { - animation: scaleIn 1s ease-out; -} -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0.95); - } - to { - opacity: 1; - transform: scale(1); - } -} -.feature-card { - background: rgba(15, 23, 50, 0.85); - border-radius: 18px; - padding: 2rem; - border: 1px solid rgba(255, 255, 255, 0.06); - transition: transform 0.4s ease, box-shadow 0.4s ease; - position: relative; - overflow: hidden; - animation: floatSection 5s ease-in-out infinite; -} -.feature-card:hover { - transform: translateY(-12px) scale(1.03); - box-shadow: 0 12px 35px rgba(20, 184, 166, 0.5); -} -.feature-card::before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: radial-gradient(circle at 30% 30%, rgba(20, 184, 166, 0.3), transparent); - opacity: 0; - transition: opacity 0.4s; -} -.feature-card:hover::before { - opacity: 1; -} -.particle { - position: absolute; - width: 5px; - height: 5px; - background: linear-gradient(45deg, #14b8a6, #60a5fa); - border-radius: 50%; - animation: float 12s infinite ease-in-out; - z-index: -1; - pointer-events: none; - box-shadow: 0 0 15px rgba(20, 184, 166, 0.9); -} -.particle.large { - width: 8px; - height: 8px; - animation-duration: 14s; -} -@keyframes float { - 0%, 100% { - transform: translateY(0) translateX(0); - opacity: 0.2; - } - 50% { - transform: translateY(-60px) translateX(25px); - opacity: 0.8; - } -} -.header-bg { - background: linear-gradient(180deg, rgba(10, 17, 40, 0.95), rgba(5, 15, 35, 0.95)); - border-bottom: 1px solid rgba(255, 255, 255, 0.12); - position: relative; - overflow: hidden; - z-index: 2; -} -.header-bg h1, .header-bg p { - transform: translateZ(0); - color: #14b8a6; -} -footer { - z-index: 2; - background: rgba(10, 17, 40, 0.75); -} -footer a { - color: #2dd4bf; - transition: color 0.3s, text-shadow 0.3s; -} -footer a:hover { - color: #60a5fa; - text-shadow: 0 0 8px rgba(96, 165, 250, 0.7); -} -.nav-btn { - display: inline-block; - padding: 0.5rem 1rem; - background: linear-gradient(to right, #14b8a6, #3b82f6); - color: white; - text-decoration: none; - border-radius: 0.375rem; - font-size: 0.875rem; - font-weight: 500; - transition: transform 0.2s, box-shadow 0.2s; - min-width: 100px; - text-align: center; -} -.nav-btn:hover { - transform: translateY(-2px); - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); -} -.hamburger { - display: none; - position: fixed; - top: 1rem; - right: 1rem; - z-index: 20001; -} -.hamburger.active .bar:nth-child(1) { - transform: translateY(8px) rotate(45deg); -} -.hamburger.active .bar:nth-child(2) { - opacity: 0; -} -.hamburger.active .bar:nth-child(3) { - transform: translateY(-8px) rotate(-45deg); -} -.mobile-nav-container { - display: none; - opacity: 0; - visibility: hidden; - transition: opacity 0.3s ease, visibility 0.3s ease; - background: linear-gradient(135deg, rgba(10, 17, 40, 0.98), rgba(5, 15, 35, 0.98)); - backdrop-filter: blur(5px); - z-index: 20000; - padding: 4rem 2rem; - pointer-events: auto; -} -.mobile-nav-container.active { - display: flex; - opacity: 1; - visibility: visible; -} -.mobile-nav-container ul li a { - display: block; - padding: 1rem 2rem; - border-radius: 8px; - transition: background 0.3s ease; - font-size: 1.25rem; - text-shadow: 0 0 8px rgba(20, 184, 166, 0.5); - transform: translateZ(0); -} -.mobile-nav-container ul li a:hover { - transform: translateX(10px); -} -@media (max-width: 768px) { - .hero-bg { - min-height: 500px; - } - .hero-bg iframe { - min-height: 500px; - } - .btn-minecraft { - padding: 12px 26px; - font-size: 0.9rem; - } - .minecraft-font.text-5xl { - font-size: 2.5rem; - } - .minecraft-font.text-4xl { - font-size: 2rem; - } - .minecraft-font.text-3xl { - font-size: 1.75rem; - } - .feature-card { - padding: 1.5rem; - } - .nav-btn { - display: none; - } - .hamburger { - display: flex; - } -} -@media (max-width: 640px) { - .hero-bg { - min-height: 400px; - } - .hero-bg iframe { - min-height: 400px; - } - .mobile-nav-container ul li a { - font-size: 1rem; - padding: 0.75rem 1.5rem; - } -} -@property --tw-translate-x { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-translate-y { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-translate-z { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-rotate-x { - syntax: "*"; - inherits: false; -} -@property --tw-rotate-y { - syntax: "*"; - inherits: false; -} -@property --tw-rotate-z { - syntax: "*"; - inherits: false; -} -@property --tw-skew-x { - syntax: "*"; - inherits: false; -} -@property --tw-skew-y { - syntax: "*"; - inherits: false; -} -@property --tw-space-y-reverse { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-border-style { - syntax: "*"; - inherits: false; - initial-value: solid; -} -@property --tw-gradient-position { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-from { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-via { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-to { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-stops { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-via-stops { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-from-position { - syntax: ""; - inherits: false; - initial-value: 0%; -} -@property --tw-gradient-via-position { - syntax: ""; - inherits: false; - initial-value: 50%; -} -@property --tw-gradient-to-position { - syntax: ""; - inherits: false; - initial-value: 100%; -} -@property --tw-leading { - syntax: "*"; - inherits: false; -} -@property --tw-font-weight { - syntax: "*"; - inherits: false; -} -@property --tw-tracking { - syntax: "*"; - inherits: false; -} -@property --tw-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-shadow-color { - syntax: "*"; - inherits: false; -} -@property --tw-shadow-alpha { - syntax: ""; - inherits: false; - initial-value: 100%; -} -@property --tw-inset-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-inset-shadow-color { - syntax: "*"; - inherits: false; -} -@property --tw-inset-shadow-alpha { - syntax: ""; - inherits: false; - initial-value: 100%; -} -@property --tw-ring-color { - syntax: "*"; - inherits: false; -} -@property --tw-ring-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-inset-ring-color { - syntax: "*"; - inherits: false; -} -@property --tw-inset-ring-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-ring-inset { - syntax: "*"; - inherits: false; -} -@property --tw-ring-offset-width { - syntax: ""; - inherits: false; - initial-value: 0px; -} -@property --tw-ring-offset-color { - syntax: "*"; - inherits: false; - initial-value: #fff; -} -@property --tw-ring-offset-shadow { - syntax: "*"; - inherits: false; - initial-value: 0 0 #0000; -} -@property --tw-backdrop-blur { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-brightness { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-contrast { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-grayscale { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-hue-rotate { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-invert { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-opacity { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-saturate { - syntax: "*"; - inherits: false; -} -@property --tw-backdrop-sepia { - syntax: "*"; - inherits: false; -} -@property --tw-duration { - syntax: "*"; - inherits: false; -} -@property --tw-ease { - syntax: "*"; - inherits: false; -} -@property --tw-scale-x { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@property --tw-scale-y { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@property --tw-scale-z { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@layer properties { - @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { - *, ::before, ::after, ::backdrop { - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-translate-z: 0; - --tw-rotate-x: initial; - --tw-rotate-y: initial; - --tw-rotate-z: initial; - --tw-skew-x: initial; - --tw-skew-y: initial; - --tw-space-y-reverse: 0; - --tw-border-style: solid; - --tw-gradient-position: initial; - --tw-gradient-from: #0000; - --tw-gradient-via: #0000; - --tw-gradient-to: #0000; - --tw-gradient-stops: initial; - --tw-gradient-via-stops: initial; - --tw-gradient-from-position: 0%; - --tw-gradient-via-position: 50%; - --tw-gradient-to-position: 100%; - --tw-leading: initial; - --tw-font-weight: initial; - --tw-tracking: initial; - --tw-shadow: 0 0 #0000; - --tw-shadow-color: initial; - --tw-shadow-alpha: 100%; - --tw-inset-shadow: 0 0 #0000; - --tw-inset-shadow-color: initial; - --tw-inset-shadow-alpha: 100%; - --tw-ring-color: initial; - --tw-ring-shadow: 0 0 #0000; - --tw-inset-ring-color: initial; - --tw-inset-ring-shadow: 0 0 #0000; - --tw-ring-inset: initial; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-offset-shadow: 0 0 #0000; - --tw-backdrop-blur: initial; - --tw-backdrop-brightness: initial; - --tw-backdrop-contrast: initial; - --tw-backdrop-grayscale: initial; - --tw-backdrop-hue-rotate: initial; - --tw-backdrop-invert: initial; - --tw-backdrop-opacity: initial; - --tw-backdrop-saturate: initial; - --tw-backdrop-sepia: initial; - --tw-duration: initial; - --tw-ease: initial; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-scale-z: 1; - } - } -} diff --git a/css/style.css b/css/style.css index 27cddf4..e4ae1dc 100644 --- a/css/style.css +++ b/css/style.css @@ -271,31 +271,39 @@ body { .particle { position: absolute; - width: 5px; - height: 5px; - background: linear-gradient(45deg, #14b8a6, #60a5fa); + width: 8px; + height: 8px; + background: linear-gradient(45deg, #14b8a6, #3b82f6); border-radius: 50%; - animation: float 12s infinite ease-in-out; + opacity: 0; + animation: float linear infinite, fadeInOut ease-in-out infinite; z-index: -1; pointer-events: none; box-shadow: 0 0 15px rgba(20, 184, 166, 0.9); } .particle.large { - width: 8px; - height: 8px; - animation-duration: 14s; + width: 12px; + height: 12px; +} + +@keyframes fadeInOut { + 0%, 100% { opacity: 0; } + 50% { opacity: 0.8; } } @keyframes float { - 0%, 100% { - transform: translateY(0) translateX(0); - opacity: 0.2; - } - 50% { - transform: translateY(-60px) translateX(25px); - opacity: 0.8; - } + 0% { transform: translateY(0); } + 100% { transform: translateY(-100vh); } +} + +.particle.fade-out { + animation: fadeOut 0.5s ease-out forwards; +} + +@keyframes fadeOut { + 0% { opacity: 0.8; } + 100% { opacity: 0; } } .header-bg { diff --git a/css/style.min.css b/css/style.min.css index 2f4fc3f..6c995fb 100644 --- a/css/style.min.css +++ b/css/style.min.css @@ -200,6 +200,9 @@ } } @layer utilities { + .visible { + visibility: visible; + } .absolute { position: absolute; } @@ -215,15 +218,6 @@ .inset-0 { inset: calc(var(--spacing) * 0); } - .top-1\/2 { - top: calc(1/2 * 100%); - } - .-left-full { - left: -100%; - } - .left-1\/2 { - left: calc(1/2 * 100%); - } .z-1 { z-index: 1; } @@ -317,18 +311,12 @@ .inline-block { display: inline-block; } - .h-0 { - height: calc(var(--spacing) * 0); - } .h-0\.5 { height: calc(var(--spacing) * 0.5); } .h-10 { height: calc(var(--spacing) * 10); } - .w-0 { - width: calc(var(--spacing) * 0); - } .w-6 { width: calc(var(--spacing) * 6); } @@ -347,14 +335,6 @@ .max-w-full { max-width: 100%; } - .-translate-x-1\/2 { - --tw-translate-x: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .-translate-y-1\/2 { - --tw-translate-y: calc(calc(1/2 * 100%) * -1); - translate: var(--tw-translate-x) var(--tw-translate-y); - } .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); } @@ -415,12 +395,6 @@ margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); } } - .self-center { - align-self: center; - } - .overflow-hidden { - overflow: hidden; - } .rounded { border-radius: 0.25rem; } @@ -468,40 +442,14 @@ --tw-gradient-position: to right in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); } - .bg-\[radial-gradient\(circle\,rgba\(20\,184\,166\,0\.5\)\,transparent\)\] { - background-image: radial-gradient(circle,rgba(20,184,166,0.5),transparent); - } .from-teal-400 { --tw-gradient-from: var(--color-teal-400); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } - .from-teal-500 { - --tw-gradient-from: var(--color-teal-500); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .from-transparent { - --tw-gradient-from: transparent; - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .via-white\/40 { - --tw-gradient-via: color-mix(in srgb, #fff 40%, transparent); - @supports (color: color-mix(in lab, red, red)) { - --tw-gradient-via: color-mix(in oklab, var(--color-white) 40%, transparent); - } - --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); - --tw-gradient-stops: var(--tw-gradient-via-stops); - } .to-blue-500 { --tw-gradient-to: var(--color-blue-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } - .to-transparent { - --tw-gradient-to: transparent; - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - .bg-\[length\:300\%_300\%\] { - background-size: 300% 300%; - } .bg-clip-text { background-clip: text; } @@ -523,9 +471,6 @@ .px-4 { padding-inline: calc(var(--spacing) * 4); } - .px-7 { - padding-inline: calc(var(--spacing) * 7); - } .py-0\.5 { padding-block: calc(var(--spacing) * 0.5); } @@ -535,9 +480,6 @@ .py-2 { padding-block: calc(var(--spacing) * 2); } - .py-3\.5 { - padding-block: calc(var(--spacing) * 3.5); - } .py-8 { padding-block: calc(var(--spacing) * 8); } @@ -633,9 +575,6 @@ .underline { text-decoration-line: underline; } - .opacity-0 { - opacity: 0%; - } .opacity-90 { opacity: 90%; } @@ -661,71 +600,19 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } - .transition-\[left\] { - transition-property: left; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } .transition-all { transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } - .transition-transform { - transition-property: transform, translate, scale, rotate; - transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); - transition-duration: var(--tw-duration, var(--default-transition-duration)); - } .duration-300 { --tw-duration: 300ms; transition-duration: 300ms; } - .duration-500 { - --tw-duration: 500ms; - transition-duration: 500ms; - } .ease-out { --tw-ease: var(--ease-out); transition-timing-function: var(--ease-out); } - .group-hover\:left-full { - &:is(:where(.group):hover *) { - @media (hover: hover) { - left: 100%; - } - } - } - .group-hover\:h-\[200px\] { - &:is(:where(.group):hover *) { - @media (hover: hover) { - height: 200px; - } - } - } - .group-hover\:w-\[200px\] { - &:is(:where(.group):hover *) { - @media (hover: hover) { - width: 200px; - } - } - } - .group-hover\:opacity-100 { - &:is(:where(.group):hover *) { - @media (hover: hover) { - opacity: 100%; - } - } - } - .hover\:scale-110 { - &:hover { - @media (hover: hover) { - --tw-scale-x: 110%; - --tw-scale-y: 110%; - --tw-scale-z: 110%; - scale: var(--tw-scale-x) var(--tw-scale-y); - } - } - } .hover\:bg-gradient-to-r { &:hover { @media (hover: hover) { @@ -757,14 +644,6 @@ } } } - .hover\:shadow-\[0_8px_30px_rgba\(20\,184\,166\,0\.7\)\] { - &:hover { - @media (hover: hover) { - --tw-shadow: 0 8px 30px var(--tw-shadow-color, rgba(20,184,166,0.7)); - box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - } - } - } .focus\:outline-none { &:focus { --tw-outline-style: none; @@ -1101,30 +980,47 @@ body { } .particle { position: absolute; - width: 5px; - height: 5px; - background: linear-gradient(45deg, #14b8a6, #60a5fa); + width: 8px; + height: 8px; + background: linear-gradient(45deg, #14b8a6, #3b82f6); border-radius: 50%; - animation: float 12s infinite ease-in-out; + opacity: 0; + animation: float linear infinite, fadeInOut ease-in-out infinite; z-index: -1; pointer-events: none; box-shadow: 0 0 15px rgba(20, 184, 166, 0.9); } .particle.large { - width: 8px; - height: 8px; - animation-duration: 14s; + width: 12px; + height: 12px; } -@keyframes float { +@keyframes fadeInOut { 0%, 100% { - transform: translateY(0) translateX(0); - opacity: 0.2; + opacity: 0; } 50% { - transform: translateY(-60px) translateX(25px); opacity: 0.8; } } +@keyframes float { + 0% { + transform: translateY(0); + } + 100% { + transform: translateY(-100vh); + } +} +.particle.fade-out { + animation: fadeOut 0.5s ease-out forwards; +} +@keyframes fadeOut { + 0% { + opacity: 0.8; + } + 100% { + opacity: 0; + } +} .header-bg { background: linear-gradient(180deg, rgba(10, 17, 40, 0.95), rgba(5, 15, 35, 0.95)); border-bottom: 1px solid rgba(255, 255, 255, 0.12); @@ -1256,21 +1152,6 @@ footer a:hover { padding: 0.75rem 1.5rem; } } -@property --tw-translate-x { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-translate-y { - syntax: "*"; - inherits: false; - initial-value: 0; -} -@property --tw-translate-z { - syntax: "*"; - inherits: false; - initial-value: 0; -} @property --tw-rotate-x { syntax: "*"; inherits: false; @@ -1464,27 +1345,9 @@ footer a:hover { syntax: "*"; inherits: false; } -@property --tw-scale-x { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@property --tw-scale-y { - syntax: "*"; - inherits: false; - initial-value: 1; -} -@property --tw-scale-z { - syntax: "*"; - inherits: false; - initial-value: 1; -} @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop { - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-translate-z: 0; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; @@ -1529,9 +1392,6 @@ footer a:hover { --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-ease: initial; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-scale-z: 1; } } } diff --git a/js/main.js b/js/main.js index cc502c5..bd039b2 100644 --- a/js/main.js +++ b/js/main.js @@ -39,13 +39,19 @@ function createParticle() { if (Math.random() > 0.6) particle.classList.add('large'); particle.style.left = `${Math.random() * 100}%`; particle.style.top = `${Math.random() * 100}%`; - particle.style.animationDelay = `${Math.random() * 10}s`; - particle.style.animationDuration = `${10 + Math.random() * 8}s`; + particle.style.animationDelay = `${Math.random() * 8}s`; + particle.style.animationDuration = `${8 + Math.random() * 6}s`; document.body.appendChild(particle); - setTimeout(() => particle.remove(), 18000); + // Remove particle with fade-out effect + setTimeout(() => { + particle.classList.add('fade-out'); + // Wait for fade-out animation to complete before removing + setTimeout(() => particle.remove(), 500); + }, 14000); } -setInterval(createParticle, 500); +// Create particles frequently +setInterval(createParticle, 50); function throttle(fn, wait) { let lastTime = 0;