Submatter/apps/web/styles/marketing.css
Randall Stillwell 2f6adf4382 feat(web): Submatter marketing redesign with Signal Editorial system
Introduce public /landing and /pricing pages for the SBMTR brand with
bento features, convoy product demo, motion reveals, and scoped marketing
tokens. Unauthenticated visitors route to the landing page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 22:50:05 -05:00

160 lines
3.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Submatter marketing — Signal Editorial (ui-ux-pro-max: Swiss + interactive demo + bold type) */
.marketing-theme {
--background: 40 18% 96%;
--foreground: 220 20% 8%;
--card: 0 0% 100%;
--card-foreground: 220 20% 8%;
--primary: 228 45% 22%;
--primary-foreground: 40 20% 98%;
--matter: 32 95% 52%;
--matter-foreground: 220 20% 8%;
--agent: 162 72% 38%;
--agent-foreground: 0 0% 100%;
--secondary: 40 12% 92%;
--secondary-foreground: 220 20% 8%;
--muted: 40 10% 93%;
--muted-foreground: 220 8% 42%;
--accent: 228 30% 94%;
--accent-foreground: 228 45% 22%;
--border: 40 8% 86%;
--input: 40 8% 86%;
--ring: 32 95% 52%;
--hero: 240 6% 4%;
--hero-foreground: 40 15% 96%;
--hero-muted: 240 4% 55%;
--hero-border: 240 4% 14%;
--radius: 0.375rem;
color-scheme: light;
}
.marketing-theme .font-display {
font-family: var(--font-display), system-ui, sans-serif;
}
.marketing-theme .font-marketing {
font-family: var(--font-marketing-sans), system-ui, sans-serif;
}
.marketing-theme .font-mono-brand {
font-family: var(--font-mono-brand), ui-monospace, monospace;
}
/* Dot field (React Bits–style ambient grid) */
.marketing-dot-field {
background-image: radial-gradient(
circle at center,
hsl(var(--hero-foreground) / 0.12) 1px,
transparent 1px
);
background-size: 28px 28px;
mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, black 20%, transparent 75%);
}
.marketing-scanline {
background: repeating-linear-gradient(
0deg,
transparent,
transparent 2px,
hsl(var(--hero-foreground) / 0.02) 2px,
hsl(var(--hero-foreground) / 0.02) 4px
);
pointer-events: none;
}
/* Border glow card (React Bits Border Glow–inspired) */
.marketing-glow-card {
position: relative;
background: hsl(var(--card));
transition: box-shadow 200ms ease, border-color 200ms ease;
}
.marketing-glow-card::before {
content: "";
position: absolute;
inset: -1px;
border-radius: inherit;
padding: 1px;
background: linear-gradient(
135deg,
hsl(var(--matter) / 0),
hsl(var(--matter) / 0.35),
hsl(var(--agent) / 0.2),
hsl(var(--matter) / 0)
);
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
opacity: 0;
transition: opacity 200ms ease;
pointer-events: none;
}
.marketing-glow-card:hover::before,
.marketing-glow-card:focus-within::before {
opacity: 1;
}
.marketing-glow-card:hover {
box-shadow:
0 0 0 1px hsl(var(--border)),
0 12px 40px -12px hsl(var(--foreground) / 0.12);
}
@keyframes marketing-blink {
0%,
49% {
opacity: 1;
}
50%,
100% {
opacity: 0;
}
}
.marketing-cursor-blink {
animation: marketing-blink 1.1s step-end infinite;
}
@keyframes marketing-pulse-dot {
0%,
100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.55;
transform: scale(0.92);
}
}
.marketing-pulse-dot {
animation: marketing-pulse-dot 2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
.marketing-cursor-blink,
.marketing-pulse-dot {
animation: none;
}
.marketing-glow-card::before {
transition: none;
}
}