260 lines
5.1 KiB
CSS
260 lines
5.1 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
:root {
|
|
--font-sans: "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
|
|
--font-display: "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
|
|
--pmflow-brand: #2463eb;
|
|
--pmflow-brand-soft: #eef4ff;
|
|
--pmflow-brand-border: #cfe0ff;
|
|
--background: 0 0% 100%;
|
|
--foreground: 222.2 84% 4.9%;
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 222.2 84% 4.9%;
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 222.2 84% 4.9%;
|
|
--primary: 221 83% 53%;
|
|
--primary-foreground: 210 40% 98%;
|
|
--secondary: 210 40% 96.1%;
|
|
--secondary-foreground: 222.2 47.4% 11.2%;
|
|
--muted: 210 40% 96.1%;
|
|
--muted-foreground: 215.4 16.3% 46.9%;
|
|
--accent: 210 40% 96.1%;
|
|
--accent-foreground: 222.2 47.4% 11.2%;
|
|
--destructive: 0 84.2% 60.2%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
--border: 214.3 31.8% 91.4%;
|
|
--input: 214.3 31.8% 91.4%;
|
|
--ring: 221 83% 53%;
|
|
--radius: 0.75rem;
|
|
}
|
|
|
|
.dark {
|
|
--background: 222.2 84% 4.9%;
|
|
--foreground: 210 40% 98%;
|
|
--card: 222.2 84% 4.9%;
|
|
--card-foreground: 210 40% 98%;
|
|
--popover: 222.2 84% 4.9%;
|
|
--popover-foreground: 210 40% 98%;
|
|
--primary: 221 83% 53%;
|
|
--primary-foreground: 222.2 47.4% 11.2%;
|
|
--secondary: 217.2 32.6% 17.5%;
|
|
--secondary-foreground: 210 40% 98%;
|
|
--muted: 217.2 32.6% 17.5%;
|
|
--muted-foreground: 215 20.2% 65.1%;
|
|
--accent: 217.2 32.6% 17.5%;
|
|
--accent-foreground: 210 40% 98%;
|
|
--destructive: 0 62.8% 30.6%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
--border: 217.2 32.6% 17.5%;
|
|
--input: 217.2 32.6% 17.5%;
|
|
--ring: 221 83% 53%;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;
|
|
}
|
|
body {
|
|
@apply bg-background text-foreground;
|
|
font-family: var(--font-sans);
|
|
text-rendering: optimizeLegibility;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.font-display {
|
|
font-family: var(--font-display);
|
|
}
|
|
|
|
.pmflow-grid {
|
|
background-image:
|
|
linear-gradient(rgba(36, 99, 235, 0.05) 1px, transparent 1px),
|
|
linear-gradient(90deg, rgba(36, 99, 235, 0.05) 1px, transparent 1px);
|
|
background-size: 96px 96px;
|
|
mask-image: radial-gradient(circle at center, black, transparent 84%);
|
|
}
|
|
}
|
|
|
|
@keyframes pmflow-drift {
|
|
0% {
|
|
transform: translateX(-6%);
|
|
}
|
|
|
|
50% {
|
|
transform: translateX(6%);
|
|
}
|
|
|
|
100% {
|
|
transform: translateX(-6%);
|
|
}
|
|
}
|
|
|
|
@keyframes pmflow-rise {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(28px);
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes fadeSlideIn {
|
|
from {
|
|
opacity: 0;
|
|
filter: blur(16px);
|
|
transform: translateY(18px);
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
filter: blur(0);
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slideRightIn {
|
|
from {
|
|
opacity: 0;
|
|
filter: blur(20px);
|
|
transform: translateX(36px);
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
filter: blur(0);
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes testimonialIn {
|
|
from {
|
|
opacity: 0;
|
|
filter: blur(14px);
|
|
transform: translateY(24px) scale(0.96);
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
filter: blur(0);
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.animate-element {
|
|
opacity: 0;
|
|
animation: fadeSlideIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
|
|
}
|
|
|
|
.animate-slide-right {
|
|
opacity: 0;
|
|
animation: slideRightIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
|
|
}
|
|
|
|
.animate-testimonial {
|
|
opacity: 0;
|
|
animation: testimonialIn 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
|
|
}
|
|
|
|
.animate-delay-100 {
|
|
animation-delay: 100ms;
|
|
}
|
|
|
|
.animate-delay-200 {
|
|
animation-delay: 200ms;
|
|
}
|
|
|
|
.animate-delay-300 {
|
|
animation-delay: 300ms;
|
|
}
|
|
|
|
.animate-delay-400 {
|
|
animation-delay: 400ms;
|
|
}
|
|
|
|
.animate-delay-500 {
|
|
animation-delay: 500ms;
|
|
}
|
|
|
|
.animate-delay-600 {
|
|
animation-delay: 600ms;
|
|
}
|
|
|
|
.animate-delay-700 {
|
|
animation-delay: 700ms;
|
|
}
|
|
|
|
.animate-delay-800 {
|
|
animation-delay: 800ms;
|
|
}
|
|
|
|
.animate-delay-900 {
|
|
animation-delay: 900ms;
|
|
}
|
|
|
|
.animate-delay-1000 {
|
|
animation-delay: 1000ms;
|
|
}
|
|
|
|
.animate-delay-1200 {
|
|
animation-delay: 1200ms;
|
|
}
|
|
|
|
.animate-delay-1400 {
|
|
animation-delay: 1400ms;
|
|
}
|
|
|
|
.animate-delay-1600 {
|
|
animation-delay: 1600ms;
|
|
}
|
|
|
|
.custom-checkbox {
|
|
position: relative;
|
|
height: 1.125rem;
|
|
width: 1.125rem;
|
|
appearance: none;
|
|
border-radius: 0.45rem;
|
|
border: 1px solid hsl(var(--border));
|
|
background: hsl(var(--background));
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.custom-checkbox:checked {
|
|
border-color: hsl(var(--primary));
|
|
background: hsl(var(--primary));
|
|
box-shadow: 0 0 0 4px hsl(var(--primary) / 0.14);
|
|
}
|
|
|
|
.custom-checkbox::after {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0.36rem;
|
|
top: 0.14rem;
|
|
height: 0.5rem;
|
|
width: 0.24rem;
|
|
border: solid transparent;
|
|
border-width: 0 2px 2px 0;
|
|
transform: rotate(45deg);
|
|
transition: border-color 0.2s ease;
|
|
}
|
|
|
|
.custom-checkbox:checked::after {
|
|
border-color: white;
|
|
}
|
|
|
|
.font-geist {
|
|
font-family: var(--font-sans);
|
|
}
|
|
}
|