Custom Website Development
Build fast, scalable, and fully customized websites tailored to your business goals designed to convert visitors into customers.
/* Theme Name: GrowthRasta Theme URI: https://growthrasta.com Author: GrowthRasta Description: Custom 3D Scroll Website for GrowthRasta Digital Marketing Agency Version: 1.0 *//* ============================================ ROOT VARIABLES ============================================ */ :root { --lime: #c8f135; --lime-hover: #d4f84a; --dark: #080a06; --dark2: #0f130b; --dark3: #161c10; --muted: #6b7a5e; --light: #e8ead4; --white: #f5f7ec; --font-display: 'Syne', sans-serif; --font-body: 'DM Sans', sans-serif; --transition: 0.3s ease; --radius-sm: 8px; --radius-md: 14px; --radius-lg: 24px; --radius-pill: 100px; }/* ============================================ RESET & BASE ============================================ */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }html { scroll-behavior: smooth; font-size: 16px; }body { font-family: var(--font-body); background-color: var(--dark); color: var(--white); overflow-x: hidden; cursor: none; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }body::after { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 999; opacity: 0.02; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); }img, video { max-width: 100%; display: block; }a { text-decoration: none; color: inherit; }ul, ol { list-style: none; }button { cursor: pointer; border: none; background: none; font-family: inherit; }/* ============================================ CUSTOM CURSOR ============================================ */ .cursor { position: fixed; width: 12px; height: 12px; background: var(--lime); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); transition: width 0.3s ease, height 0.3s ease; mix-blend-mode: difference; }.cursor-ring { position: fixed; width: 40px; height: 40px; border: 1px solid var(--lime); border-radius: 50%; pointer-events: none; z-index: 9998; transform: translate(-50%, -50%); transition: width 0.3s ease, height 0.3s ease, opacity 0.3s ease; opacity: 0.5; }.cursor.cursor--hover { width: 20px; height: 20px; }.cursor-ring.cursor-ring--hover { opacity: 1; }/* ============================================ TYPOGRAPHY ============================================ */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 800; line-height: 1.05; letter-spacing: -0.03em; color: var(--white); }h1 { font-size: clamp(3.5rem, 8vw, 7.5rem); } h2 { font-size: clamp(2.5rem, 5vw, 4rem); } h3 { font-size: 1.5rem; } h4 { font-size: 1.15rem; }p { font-weight: 300; color: var(--muted); line-height: 1.75; }.text-lime { color: var(--lime); } .text-white { color: var(--white); } .text-muted { color: var(--muted); } .text-italic { font-style: italic; }/* ============================================ BUTTONS ============================================ */ .btn-primary { display: inline-block; background: var(--lime); color: var(--dark); padding: 1rem 2.5rem; border-radius: var(--radius-pill); font-family: var(--font-display); font-weight: 700; font-size: 0.9rem; letter-spacing: 0.02em; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; white-space: nowrap; }.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 20px 40px rgba(200, 241, 53, 0.25); background: var(--lime-hover); }.btn-primary:active { transform: translateY(0); }.btn-ghost { display: inline-flex; align-items: center; gap: 8px; color: var(--white); font-size: 0.9rem; opacity: 0.7; transition: opacity 0.2s ease; }.btn-ghost:hover { opacity: 1; }.btn-ghost .arrow { font-size: 1.2rem; transition: transform 0.2s ease; }.btn-ghost:hover .arrow { transform: translateX(4px); }.btn-outline { display: inline-block; border: 1px solid rgba(200, 241, 53, 0.3); color: var(--lime); padding: 1rem 2.5rem; border-radius: var(--radius-pill); font-family: var(--font-display); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.02em; transition: border-color 0.3s ease, background 0.3s ease; }.btn-outline:hover { border-color: var(--lime); background: rgba(200, 241, 53, 0.08); }/* ============================================ NAVIGATION ============================================ */ .site-nav, nav#site-navigation, .main-navigation { position: fixed; top: 0; width: 100%; z-index: 100; padding: 1.5rem 4rem; display: flex; justify-content: space-between; align-items: center; }.site-nav::before, nav#site-navigation::before, .main-navigation::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(8, 10, 6, 0.92), transparent); pointer-events: none; }/* Logo */ .site-logo, .custom-logo-link, .logo { font-family: var(--font-display); font-weight: 800; font-size: 1.4rem; letter-spacing: -0.02em; color: var(--white); position: relative; z-index: 1; }.site-logo span, .logo span { color: var(--lime); }/* Nav links */ .nav-links, .menu, .nav-menu { display: flex; gap: 2.5rem; list-style: none; position: relative; z-index: 1; }.nav-links a, .menu-item a, .nav-menu a { color: var(--muted); font-size: 0.85rem; font-weight: 400; letter-spacing: 0.05em; text-transform: uppercase; transition: color var(--transition); }.nav-links a:hover, .menu-item a:hover, .nav-menu a:hover, .current-menu-item a { color: var(--lime); }.nav-cta { background: var(--lime); color: var(--dark) !important; padding: 0.6rem 1.5rem; border-radius: var(--radius-pill); font-size: 0.85rem; font-weight: 600; font-family: var(--font-display); position: relative; z-index: 1; transition: transform 0.2s ease, background 0.2s ease; }.nav-cta:hover { transform: scale(1.05); background: var(--lime-hover) !important; }/* ============================================ HERO SECTION ============================================ */ .hero, .home-hero, #hero { min-height: 100vh; display: flex; align-items: center; padding: 0 4rem; position: relative; overflow: hidden; }.hero-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 60% 60% at 70% 50%, rgba(200, 241, 53, 0.06) 0%, transparent 70%); pointer-events: none; }.hero-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(200, 241, 53, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(200, 241, 53, 0.04) 1px, transparent 1px); background-size: 80px 80px; mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%); -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%); pointer-events: none; }.hero-content { position: relative; z-index: 2; max-width: 900px; }.hero-tag { display: inline-flex; align-items: center; gap: 8px; background: rgba(200, 241, 53, 0.08); border: 1px solid rgba(200, 241, 53, 0.2); border-radius: var(--radius-pill); padding: 0.4rem 1rem; font-size: 0.75rem; color: var(--lime); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 2rem; opacity: 0; transform: translateY(20px); }.hero-tag::before { content: ''; width: 6px; height: 6px; background: var(--lime); border-radius: 50%; animation: pulse 2s infinite; flex-shrink: 0; }@keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.3); } }.hero-title { font-family: var(--font-display); font-size: clamp(3.5rem, 8vw, 7.5rem); font-weight: 800; line-height: 0.95; letter-spacing: -0.03em; margin-bottom: 2rem; color: var(--white); }.hero-title .line { display: block; overflow: hidden; }.hero-title .word { display: inline-block; transform: translateY(110%); }.hero-title .accent { color: var(--lime); font-style: italic; }.hero-sub { font-size: 1.1rem; color: var(--muted); font-weight: 300; line-height: 1.7; max-width: 480px; margin-bottom: 3rem; opacity: 0; transform: translateY(20px); }.hero-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; opacity: 0; transform: translateY(20px); }.hero-scroll-indicator { position: absolute; bottom: 2.5rem; right: 4rem; display: flex; flex-direction: column; align-items: center; gap: 8px; opacity: 0.4; z-index: 2; }.scroll-text { font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; writing-mode: vertical-rl; color: var(--muted); }.scroll-line { width: 1px; height: 60px; background: linear-gradient(to bottom, var(--lime), transparent); animation: scrollAnim 2s infinite; }@keyframes scrollAnim { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform: scaleY(1); transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }/* ============================================ MARQUEE / TICKER STRIP ============================================ */ .marquee-section { border-top: 1px solid rgba(200, 241, 53, 0.1); border-bottom: 1px solid rgba(200, 241, 53, 0.1); padding: 1.5rem 0; overflow: hidden; background: var(--dark2); }.marquee-track { display: flex; gap: 3rem; width: max-content; animation: marquee 25s linear infinite; }.marquee-track:hover { animation-play-state: paused; }@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }.marquee-item { white-space: nowrap; font-family: var(--font-display); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); display: flex; align-items: center; gap: 3rem; }.marquee-item::after { content: '✦'; color: var(--lime); font-size: 0.6rem; }/* ============================================ SECTIONS — SHARED ============================================ */ .section, .gr-section { padding: 8rem 4rem; }.section-header { margin-bottom: 5rem; }.section-num { display: block; font-size: 0.75rem; color: var(--lime); letter-spacing: 0.15em; text-transform: uppercase; font-family: var(--font-display); margin-bottom: 1rem; opacity: 0; }.section-title { font-family: var(--font-display); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; line-height: 1.05; letter-spacing: -0.03em; color: var(--white); }/* ============================================ SERVICES SECTION ============================================ */ #services, .services-section { background: var(--dark); }.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; background: rgba(200, 241, 53, 0.08); border: 1.5px solid rgba(200, 241, 53, 0.08); border-radius: var(--radius-lg); overflow: hidden; }.service-card { background: var(--dark2); padding: 2.5rem; position: relative; overflow: hidden; transition: background var(--transition); transform: perspective(1000px) rotateY(25deg) translateZ(-80px); opacity: 0; }.service-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 0% 100%, rgba(200, 241, 53, 0.06), transparent 60%); opacity: 0; transition: opacity var(--transition); pointer-events: none; }.service-card:hover { background: var(--dark3); }.service-card:hover::before { opacity: 1; }.service-icon { width: 52px; height: 52px; border: 1px solid rgba(200, 241, 53, 0.25); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 1.5rem; background: rgba(200, 241, 53, 0.05); transition: border-color var(--transition), background var(--transition); }.service-card:hover .service-icon { border-color: var(--lime); background: rgba(200, 241, 53, 0.12); }.service-name { font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; margin-bottom: 0.75rem; letter-spacing: -0.01em; color: var(--white); }.service-desc { font-size: 0.875rem; color: var(--muted); line-height: 1.75; font-weight: 300; }.service-arrow { position: absolute; bottom: 2.5rem; right: 2.5rem; width: 36px; height: 36px; border: 1px solid rgba(200, 241, 53, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; color: var(--lime); opacity: 0; transform: translateY(8px); transition: opacity var(--transition), transform var(--transition), border-color var(--transition); }.service-card:hover .service-arrow { opacity: 1; transform: translateY(0); border-color: var(--lime); }/* ============================================ STATS SECTION ============================================ */ .stats-section { padding: 8rem 4rem; background: var(--dark2); position: relative; overflow: hidden; }.stats-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 50% 80% at 50% 0%, rgba(200, 241, 53, 0.04) 0%, transparent 70%); pointer-events: none; }.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; position: relative; z-index: 1; }.stat-item { padding: 3rem 2rem; border: 1px solid rgba(200, 241, 53, 0.06); text-align: center; background: rgba(8, 10, 6, 0.5); transform: translateY(60px); opacity: 0; transition: border-color var(--transition); }.stat-item:hover { border-color: rgba(200, 241, 53, 0.15); }.stat-num { font-family: var(--font-display); font-size: clamp(3rem, 5vw, 5rem); font-weight: 800; color: var(--lime); line-height: 1; margin-bottom: 0.75rem; letter-spacing: -0.04em; display: block; }.stat-label { font-size: 0.8rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 400; }/* ============================================ PROCESS SECTION ============================================ */ #process, .process-section { padding: 8rem 4rem; background: var(--dark); }.process-list { margin-top: 4rem; }.process-item { display: grid; grid-template-columns: 80px 1fr auto; align-items: center; gap: 3rem; padding: 2.5rem 0; border-bottom: 1px solid rgba(200, 241, 53, 0.07); position: relative; transform: translateX(-60px); opacity: 0; transition: padding-left var(--transition); cursor: default; }.process-item:first-child { border-top: 1px solid rgba(200, 241, 53, 0.07); }.process-item:hover { padding-left: 1rem; }.process-item::after { content: ''; position: absolute; left: 0; top: 0; width: 0; height: 100%; background: rgba(200, 241, 53, 0.03); transition: width 0.4s ease; z-index: -1; }.process-item:hover::after { width: 100%; }.process-step-num { font-family: var(--font-display); font-size: 0.7rem; font-weight: 700; color: var(--lime); letter-spacing: 0.1em; opacity: 0.5; }.process-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; color: var(--white); transition: color var(--transition); }.process-item:hover .process-title { color: var(--lime); }.process-desc { max-width: 400px; font-size: 0.875rem; color: var(--muted); line-height: 1.7; font-weight: 300; }/* ============================================ TESTIMONIAL SECTION ============================================ */ .testimonial-section { padding: 8rem 4rem; background: var(--dark2); display: flex; align-items: center; justify-content: center; text-align: center; position: relative; overflow: hidden; }.testimonial-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 60% 60% at 50% 50%, rgba(200, 241, 53, 0.05) 0%, transparent 70%); pointer-events: none; }.testimonial-content { position: relative; z-index: 2; max-width: 800px; transform: scale(0.9); opacity: 0; }.testimonial-quote { font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 700; line-height: 1.2; letter-spacing: -0.03em; margin-bottom: 2.5rem; color: var(--white); }.testimonial-quote .highlight { color: var(--lime); }.testimonial-author { display: flex; align-items: center; justify-content: center; gap: 1rem; }.author-avatar { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, var(--lime), #6bcf37); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 800; font-size: 1rem; color: var(--dark); flex-shrink: 0; }.author-info { text-align: left; }.author-name { font-size: 0.9rem; font-weight: 500; color: var(--white); }.author-role { font-size: 0.8rem; color: var(--muted); }/* ============================================ CTA SECTION ============================================ */ #contact, .cta-section { padding: 10rem 4rem; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; position: relative; overflow: hidden; background: var(--dark); }.cta-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 40% 60% at 30% 50%, rgba(200, 241, 53, 0.05) 0%, transparent 70%), radial-gradient(ellipse 40% 60% at 70% 50%, rgba(200, 241, 53, 0.04) 0%, transparent 70%); pointer-events: none; }.cta-label { font-size: 0.75rem; color: var(--lime); letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 2rem; font-family: var(--font-display); opacity: 0; transform: translateY(20px); position: relative; z-index: 1; }.cta-title { font-family: var(--font-display); font-size: clamp(3rem, 8vw, 7rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em; margin-bottom: 3rem; position: relative; z-index: 1; opacity: 0; transform: translateY(40px); color: var(--white); }.cta-title .line { display: block; }.cta-title .lime { color: var(--lime); }.cta-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; justify-content: center; opacity: 0; transform: translateY(20px); position: relative; z-index: 1; }/* ============================================ FOOTER ============================================ */ .site-footer, footer { padding: 3rem 4rem; border-top: 1px solid rgba(200, 241, 53, 0.08); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; background: var(--dark); }.footer-logo { font-family: var(--font-display); font-weight: 800; font-size: 1.1rem; letter-spacing: -0.02em; color: var(--white); }.footer-logo span { color: var(--lime); }.footer-copy { font-size: 0.8rem; color: var(--muted); }.footer-links { display: flex; gap: 2rem; list-style: none; }.footer-links a { font-size: 0.8rem; color: var(--muted); transition: color var(--transition); }.footer-links a:hover { color: var(--lime); }/* ============================================ GSAP ANIMATION INITIAL STATES (these get overridden by GSAP on scroll) ============================================ */ .anim-fade-up { opacity: 0; transform: translateY(40px); }.anim-fade-in { opacity: 0; }.anim-slide-left { opacity: 0; transform: translateX(-60px); }.anim-scale-in { opacity: 0; transform: scale(0.9); }/* ============================================ WORDPRESS SPECIFIC OVERRIDES ============================================ *//* Remove default WP margins */ .wp-block-group, .wp-block-cover, .wp-block-columns { margin: 0 !important; }/* Elementor resets */ .elementor-section.elementor-section-full_width .elementor-container { max-width: 100%; }.elementor-widget-wrap { align-items: flex-start; }/* Gutenberg block resets */ .entry-content > * { margin: 0; }/* WordPress alignment helpers */ .aligncenter { margin-left: auto; margin-right: auto; } .alignleft { float: left; margin-right: 1.5rem; } .alignright { float: right; margin-left: 1.5rem; }/* ============================================ UTILITY CLASSES ============================================ */ .container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 4rem; }.flex { display: flex; } .flex-center { display: flex; align-items: center; justify-content: center; } .flex-between { display: flex; align-items: center; justify-content: space-between; } .flex-col { display: flex; flex-direction: column; } .gap-sm { gap: 0.5rem; } .gap-md { gap: 1rem; } .gap-lg { gap: 2rem; } .mt-sm { margin-top: 1rem; } .mt-md { margin-top: 2rem; } .mt-lg { margin-top: 4rem; }.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }/* ============================================ RESPONSIVE — TABLET (max 1024px) ============================================ */ @media (max-width: 1024px) { .services-grid { grid-template-columns: repeat(2, 1fr); }.stats-grid { grid-template-columns: repeat(2, 1fr); }.process-item { grid-template-columns: 60px 1fr; gap: 1.5rem; }.process-desc { display: none; }nav, .site-nav, .main-navigation { padding: 1.25rem 2rem; }.section, .gr-section { padding: 6rem 2rem; }.hero, .stats-section, .process-section, .testimonial-section, .cta-section, #contact { padding-left: 2rem; padding-right: 2rem; } }/* ============================================ RESPONSIVE — MOBILE (max 768px) ============================================ */ @media (max-width: 768px) { body { cursor: auto; }.cursor, .cursor-ring { display: none; }.nav-links, .menu, .nav-menu { display: none; }nav, .site-nav, .main-navigation { padding: 1rem 1.5rem; }.hero, #hero { padding: 8rem 1.5rem 4rem; min-height: 100svh; }.hero-title { font-size: clamp(2.8rem, 12vw, 5rem); }.hero-actions { flex-direction: column; align-items: flex-start; gap: 1rem; }.hero-scroll-indicator { right: 1.5rem; bottom: 2rem; }.services-grid { grid-template-columns: 1fr; border-radius: var(--radius-md); }.stats-grid { grid-template-columns: repeat(2, 1fr); }.stat-item { padding: 2rem 1.25rem; }.process-item { grid-template-columns: 1fr; gap: 0.5rem; padding: 1.75rem 0; }.process-step-num { opacity: 0.4; }.testimonial-section { padding: 5rem 1.5rem; }.cta-section, #contact { padding: 6rem 1.5rem; }.cta-title { font-size: clamp(2.5rem, 12vw, 4rem); }.cta-actions { flex-direction: column; width: 100%; }.btn-primary, .btn-outline { width: 100%; text-align: center; padding: 1rem 1.5rem; }.site-footer, footer { padding: 2rem 1.5rem; flex-direction: column; text-align: center; gap: 1rem; }.footer-links { flex-wrap: wrap; justify-content: center; gap: 1.25rem; }.section, .gr-section { padding: 5rem 1.5rem; }.section-header { margin-bottom: 3rem; } }/* ============================================ REDUCED MOTION ============================================ */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }.marquee-track { animation: none; }.scroll-line { animation: none; } }
Skip to contentBuild fast, scalable, and fully customized websites tailored to your business goals designed to convert visitors into customers.
We create visually compelling designs that communicate your brand identity effectively. From social media creatives to branding, ads, and marketing
Reach your ideal audience with targeted ad campaigns on Meta platforms like Facebook and Instagram. We create engaging creatives, precise
We design and manage high-performing ad campaigns on Google Ads that bring immediate traffic and conversions. From search ads to
Our SEM services focus on paid search strategies to instantly boost your visibility on platforms like Google Ads. We create
We help your website rank higher on search engines like Google to drive organic traffic and long-term growth. Our SEO