Shortlist / frontend /src /app /globals.css
Eren-Sama
Fix CSS comment syntax (// /* */)
5fb0343
@import "tailwindcss";
/* Shortlist Design System — Aesthetic: Obsidian Forge — Accent: Acid Chartreuse #c8ff00 — Font: Bricolage Grotesque + JetBrains Mono */
@theme {
--color-root: #08080a;
--color-surface: #111114;
--color-raised: #1a1a1f;
--color-well: #0c0c0e;
--color-accent: #c8ff00;
--color-accent-hover: #d4ff33;
--color-accent-dim: #141a06;
--color-edge: #1e1e24;
--color-edge-strong: #2c2c34;
--color-primary: #eaeaec;
--color-secondary: #9898a4;
--color-muted: #555560;
--color-ok: #34d399;
--color-ok-dim: #0b1f17;
--color-warn: #fbbf24;
--color-warn-dim: #1f1a08;
--color-danger: #f87171;
--color-danger-dim: #1f0b0b;
--color-info: #60a5fa;
--color-info-dim: #0b141f;
--animate-reveal: reveal 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
--animate-reveal-fade: reveal-fade 0.5s ease-out both;
}
@theme inline {
--font-display: var(--font-bricolage);
--font-mono: var(--font-jetbrains);
}
@keyframes reveal {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes reveal-fade {
from { opacity: 0; }
to { opacity: 1; }
}
.d1 { animation-delay: 80ms; }
.d2 { animation-delay: 160ms; }
.d3 { animation-delay: 240ms; }
.d4 { animation-delay: 320ms; }
.d5 { animation-delay: 400ms; }
.d6 { animation-delay: 480ms; }
.d7 { animation-delay: 560ms; }
.d8 { animation-delay: 640ms; }
body {
background: var(--color-root);
color: var(--color-primary);
}
.dot-grid {
background-image: radial-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px);
background-size: 24px 24px;
}
::selection {
background: rgba(200, 255, 0, 0.25);
color: #fff;
}
* {
scrollbar-width: thin;
scrollbar-color: var(--color-edge-strong) transparent;
}
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--color-edge-strong); border-radius: 3px; }
input[type="text"],
input[type="email"],
input[type="password"],
input[type="url"],
input[type="number"],
textarea,
select {
background: var(--color-well);
border: 1px solid var(--color-edge);
color: var(--color-primary);
transition: border-color 0.2s, box-shadow 0.2s;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="url"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(200, 255, 0, 0.06);
outline: none;
}
input::placeholder,
textarea::placeholder {
color: var(--color-muted);
}
input[type="checkbox"] {
accent-color: var(--color-accent);
}
.noise-overlay {
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
background-repeat: repeat;
background-size: 180px 180px;
}
@keyframes aurora {
0%, 100% {
transform: translate(0%, 0%) rotate(0deg) scale(1);
opacity: 0.7;
}
25% {
transform: translate(5%, -8%) rotate(3deg) scale(1.05);
opacity: 0.85;
}
50% {
transform: translate(-3%, 5%) rotate(-2deg) scale(0.98);
opacity: 0.65;
}
75% {
transform: translate(-6%, -3%) rotate(4deg) scale(1.03);
opacity: 0.8;
}
}
@keyframes aurora-shift {
0%, 100% {
transform: translate(0%, 0%) rotate(0deg) scale(1);
opacity: 0.6;
}
33% {
transform: translate(-8%, 6%) rotate(-5deg) scale(1.08);
opacity: 0.8;
}
66% {
transform: translate(6%, -4%) rotate(3deg) scale(0.95);
opacity: 0.5;
}
}
@keyframes float-slow {
0%, 100% { transform: translateY(0) scale(1); }
50% { transform: translateY(-30px) scale(1.015); }
}
@keyframes pulse-glow {
0%, 100% { opacity: 0.5; }
50% { opacity: 0.85; }
}
@keyframes beam-slide {
0% { transform: translateX(-100%) skewX(-20deg); }
100% { transform: translateX(300%) skewX(-20deg); }
}
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
@keyframes gradient-text {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
@keyframes orbit {
from { transform: rotate(0deg) translateX(var(--orbit-radius)) rotate(0deg); }
to { transform: rotate(360deg) translateX(var(--orbit-radius)) rotate(-360deg); }
}
.animate-aurora { animation: aurora 18s ease-in-out infinite; }
.animate-aurora-shift { animation: aurora-shift 22s ease-in-out infinite; }
.animate-float-slow { animation: float-slow 10s ease-in-out infinite; }
.animate-pulse-glow { animation: pulse-glow 6s ease-in-out infinite; }
.animate-marquee { animation: marquee 35s linear infinite; }
.animate-gradient-text {
background-size: 200% 200%;
animation: gradient-text 5s ease infinite;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.grid-pattern {
background-image:
linear-gradient(rgba(200, 255, 0, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(200, 255, 0, 0.03) 1px, transparent 1px);
background-size: 60px 60px;
}
.beam::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(
90deg,
transparent,
rgba(200, 255, 0, 0.06),
transparent
);
animation: beam-slide 6s ease-in-out infinite;
}
.glass {
background: linear-gradient(
135deg,
rgba(17, 17, 20, 0.7),
rgba(17, 17, 20, 0.4)
);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
transition: background 0.4s ease, box-shadow 0.4s ease;
}
.glass:hover {
background: linear-gradient(
135deg,
rgba(17, 17, 20, 0.8),
rgba(17, 17, 20, 0.5)
);
}
a, button {
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}
html, body {
overflow-x: hidden;
}
.gradient-border {
position: relative;
border-radius: 1rem;
overflow: hidden;
}
.gradient-border::before {
content: "";
position: absolute;
inset: 0;
padding: 1px;
border-radius: inherit;
background: linear-gradient(
135deg,
rgba(200, 255, 0, 0.25),
rgba(200, 255, 0, 0.04) 30%,
transparent 50%,
rgba(200, 255, 0, 0.04) 70%,
rgba(200, 255, 0, 0.18)
);
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
}
.glow-line {
position: relative;
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(200, 255, 0, 0.35) 15%,
rgba(200, 255, 0, 0.65) 50%,
rgba(200, 255, 0, 0.35) 85%,
transparent
);
}
.glow-line::after {
content: "";
position: absolute;
inset: -4px 0;
background: linear-gradient(
90deg,
transparent,
rgba(200, 255, 0, 0.12) 20%,
rgba(200, 255, 0, 0.25) 50%,
rgba(200, 255, 0, 0.12) 80%,
transparent
);
filter: blur(8px);
}