﻿/* ════════════════════════════════════════
       HERO
    ════════════════════════════════════════ */

:root {
    --bg: #080b11;
    --bg2: #0d1118;
    --card: rgba(255,255,255,.038);
    --border: rgba(255,255,255,.08);
    --text: #e8edf4;
    --muted: #7a8fa6;
    --accent: #00c896;
    --accent-rgb: 0,200,150;
    --gold: #f0a500;
    --upwork: #14a800;
    --upwork-rgb: 20,168,0;
    --font-head: 'Syne', sans-serif;
    --font-body: 'DM Sans', sans-serif;
    --font-mono: 'DM Mono', monospace;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

h1, h2, h3, h4, h5 {
    font-family: var(--font-head);
    line-height: 1.15;
}


   
.hero {
    position: relative;
    overflow: hidden;
    padding: 110px 0 90px;
}

    /* Animated grid */
    .hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
        background-size: 52px 52px;
        mask-image: radial-gradient(ellipse 90% 80% at 50% 0%, black 20%, transparent 100%);
    }

    /* Glow orb top */
    .hero::after {
        content: '';
        position: absolute;
        top: -200px;
        left: 50%;
        transform: translateX(-50%);
        width: 860px;
        height: 460px;
        background: radial-gradient(ellipse, rgba(var(--accent-rgb),.14) 0%, rgba(var(--accent-rgb),.04) 40%, transparent 70%);
        pointer-events: none;
    }

    .hero .container {
        position: relative;
        z-index: 1;
    }

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--accent);
    background: rgba(var(--accent-rgb),.08);
    border: 1px solid rgba(var(--accent-rgb),.2);
    padding: 7px 15px;
    border-radius: 40px;
    margin-bottom: 26px;
    animation: fadeUp .6s ease both;
}

.hero-headline {
    font-size: clamp(34px, 5.5vw, 64px);
    font-weight: 800;
    color: var(--text);
    max-width: 820px;
    margin-bottom: 24px;
    animation: fadeUp .65s .08s ease both;
}

    .hero-headline .accent {
        color: var(--accent);
    }

    .hero-headline .dim {
        color: var(--muted);
        font-weight: 600;
    }

.hero-sub {
    font-size: 17px;
    color: var(--muted);
    max-width: 600px;
    margin-bottom: 44px;
    animation: fadeUp .65s .16s ease both;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 60px;
    animation: fadeUp .65s .24s ease both;
}

/* Trust strip */
.trust-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    align-items: center;
    animation: fadeUp .65s .32s ease both;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--muted);
}

    .trust-item i {
        color: var(--accent);
        font-size: 12px;
    }

/* ════════════════════════════════════════
       LANGUAGE STACK
    ════════════════════════════════════════ */
.stack-section {
    padding: 64px 0 20px;
    border-top: 1px solid var(--border);
}

.section-label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 24px;
}

.lang-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 0;
}

.lang-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 11px 20px;
    border-radius: 10px;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 500;
    border: 1px solid transparent;
    transition: transform .2s, box-shadow .2s;
}

    .lang-badge:hover {
        transform: translateY(-3px);
        box-shadow: 0 10px 28px rgba(0,0,0,.4);
    }

    .lang-badge .dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: currentColor;
        animation: pulse-dot 2s ease-in-out infinite;
    }

    .lang-badge.rust {
        background: rgba(222,95,40,.1);
        border-color: rgba(222,95,40,.3);
        color: #de5f28;
    }

    .lang-badge.go {
        background: rgba(0,173,216,.1);
        border-color: rgba(0,173,216,.3);
        color: #00add8;
    }

    .lang-badge.python {
        background: rgba(255,212,59,.1);
        border-color: rgba(255,212,59,.3);
        color: #e3b800;
    }

@keyframes pulse-dot {
    0%,100% {
        opacity: 1
    }

    50% {
        opacity: .35
    }
}

/* ════════════════════════════════════════
       BOT CATEGORY SECTIONS
    ════════════════════════════════════════ */
.cat-section {
    padding: 72px 0 0;
}

.cat-header {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 36px;
}

.cat-icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
    border: 1px solid;
}

    .cat-icon.green {
        background: rgba(var(--accent-rgb),.1);
        border-color: rgba(var(--accent-rgb),.22);
        color: var(--accent);
    }

    .cat-icon.purple {
        background: rgba(153,69,255,.1);
        border-color: rgba(153,69,255,.25);
        color: #9945ff;
    }

    .cat-icon.orange {
        background: rgba(255,107,53,.1);
        border-color: rgba(255,107,53,.25);
        color: #ff6b35;
    }

    .cat-icon.blue {
        background: rgba(0,212,255,.1);
        border-color: rgba(0,212,255,.25);
        color: #00d4ff;
    }

    .cat-icon.gold {
        background: rgba(240,165,0,.1);
        border-color: rgba(240,165,0,.25);
        color: var(--gold);
    }

    .cat-icon.pink {
        background: rgba(232,67,147,.1);
        border-color: rgba(232,67,147,.25);
        color: #e84393;
    }

    .cat-icon.polymarket {
        background: rgba(98,126,234,.1);
        border-color: rgba(98,126,234,.3);
        color: #627eea;
    }

.cat-title-block h2 {
    font-size: clamp(20px, 2.5vw, 27px);
    font-weight: 800;
    color: var(--text);
    margin-bottom: 6px;
}

.cat-title-block p {
    font-size: 14.5px;
    color: var(--muted);
    max-width: 580px;
}

/* Bot grid */
.bot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(295px, 1fr));
    gap: 16px;
    margin-bottom: 0;
}

.bot-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px 22px 20px;
    position: relative;
    overflow: hidden;
    transition: border-color .25s, transform .25s, box-shadow .25s;
}

    .bot-card::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: var(--card-line, var(--accent));
        opacity: 0;
        transition: opacity .25s;
    }

    .bot-card:hover {
        border-color: rgba(255,255,255,.15);
        transform: translateY(-4px);
        box-shadow: 0 18px 44px rgba(0,0,0,.32);
    }

        .bot-card:hover::before {
            opacity: 1;
        }

    /* accent line colours per category */
    .bot-card.c-green {
        --card-line: var(--accent);
    }

    .bot-card.c-purple {
        --card-line: #9945ff;
    }

    .bot-card.c-orange {
        --card-line: #ff6b35;
    }

    .bot-card.c-blue {
        --card-line: #00d4ff;
    }

    .bot-card.c-gold {
        --card-line: var(--gold);
    }

    .bot-card.c-pink {
        --card-line: #e84393;
    }

    .bot-card.c-poly {
        --card-line: #627eea;
    }

    .bot-card.c-red {
        --card-line: #ff3860;
    }

    .bot-card.c-dashed {
        border-style: dashed;
    }

.bot-card-icon {
    width: 40px;
    height: 40px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    margin-bottom: 14px;
    background: rgba(255,255,255,.05);
    color: var(--card-line, var(--accent));
    border: 1px solid rgba(255,255,255,.06);
}

.bot-card h4 {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 8px;
}

.bot-card p {
    font-size: 13px;
    line-height: 1.68;
    color: var(--muted);
    margin-bottom: 16px;
}

.bot-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.bot-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .06em;
    padding: 3px 8px;
    border-radius: 4px;
    background: rgba(255,255,255,.05);
    color: var(--muted);
    border: 1px solid rgba(255,255,255,.07);
    text-transform: uppercase;
}

/* Divider */
.section-divider {
    height: 1px;
    background: var(--border);
    margin: 72px 0 0;
}

/* ════════════════════════════════════════
       POLYMARKET — special callout
    ════════════════════════════════════════ */
.polymarket-banner {
    background: linear-gradient(135deg, rgba(98,126,234,.1) 0%, rgba(98,126,234,.04) 100%);
    border: 1px solid rgba(98,126,234,.25);
    border-radius: 18px;
    padding: 36px 40px 32px;
    margin-bottom: 40px;
    position: relative;
    overflow: hidden;
}

    .polymarket-banner::after {
        content: '';
        position: absolute;
        top: -80px;
        right: -80px;
        width: 260px;
        height: 260px;
        background: radial-gradient(circle, rgba(98,126,234,.14), transparent 70%);
        pointer-events: none;
    }

.poly-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #627eea;
    background: rgba(98,126,234,.1);
    border: 1px solid rgba(98,126,234,.25);
    padding: 5px 12px;
    border-radius: 40px;
    margin-bottom: 16px;
}

.polymarket-banner h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 10px;
}

.polymarket-banner p {
    font-size: 14.5px;
    color: var(--muted);
    max-width: 680px;
    line-height: 1.72;
}

/* ════════════════════════════════════════
       PROCESS STEPS
    ════════════════════════════════════════ */
.process-section {
    padding: 80px 0 72px;
    border-top: 1px solid var(--border);
}

    .process-section h2 {
        font-size: clamp(22px, 3vw, 32px);
        font-weight: 800;
        margin-bottom: 48px;
    }

.process-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
    gap: 0;
    position: relative;
}

    .process-steps::before {
        content: '';
        position: absolute;
        top: 28px;
        left: 0;
        right: 0;
        height: 1px;
        background: linear-gradient(90deg, transparent, var(--border) 15%, var(--border) 85%, transparent);
    }

.process-step {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 24px 0 0;
}

.step-num {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--accent);
    background: var(--bg);
    padding-right: 12px;
    margin-bottom: 18px;
    position: relative;
    z-index: 1;
}

.step-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 7px;
}

.step-desc {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.65;
}

/* ════════════════════════════════════════
       UPWORK CTA
    ════════════════════════════════════════ */
.upwork-cta {
    background: linear-gradient(135deg, rgba(var(--upwork-rgb),.1) 0%, rgba(var(--upwork-rgb),.03) 100%);
    border: 1px solid rgba(var(--upwork-rgb),.22);
    border-radius: 20px;
    padding: 52px 52px 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
    margin-bottom: 80px;
}

    .upwork-cta::before {
        content: '';
        position: absolute;
        top: -140px;
        left: 50%;
        transform: translateX(-50%);
        width: 600px;
        height: 300px;
        background: radial-gradient(ellipse, rgba(var(--upwork-rgb),.12), transparent 70%);
        pointer-events: none;
    }

.upwork-logo-badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    font-weight: 700;
    color: var(--upwork);
    background: rgba(var(--upwork-rgb),.1);
    border: 1px solid rgba(var(--upwork-rgb),.25);
    padding: 8px 18px;
    border-radius: 40px;
    margin-bottom: 24px;
}

.upwork-cta h2 {
    font-size: clamp(26px, 4vw, 40px);
    font-weight: 800;
    color: var(--text);
    margin-bottom: 16px;
}

.upwork-cta p {
    font-size: 15.5px;
    color: var(--muted);
    max-width: 600px;
    margin: 0 auto 36px;
    line-height: 1.72;
}

.upwork-guarantees {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 28px;
    margin-bottom: 40px;
}

.upwork-guarantee {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--muted);
}

    .upwork-guarantee i {
        color: var(--upwork);
        font-size: 13px;
    }

.btn-upwork {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 36px;
    background: var(--upwork);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    border-radius: 10px;
    font-family: var(--font-head);
    letter-spacing: .01em;
    transition: filter .2s, transform .2s, box-shadow .2s;
    box-shadow: 0 8px 32px rgba(var(--upwork-rgb),.35);
}

    .btn-upwork:hover {
        filter: brightness(1.1);
        transform: translateY(-3px);
        box-shadow: 0 14px 40px rgba(var(--upwork-rgb),.45);
    }

    .btn-upwork i {
        font-size: 16px;
    }

.upwork-sub {
    margin-top: 20px;
    font-size: 12.5px;
    color: var(--muted);
}

/* ════════════════════════════════════════
       SHARED BUTTON STYLES
    ════════════════════════════════════════ */
.btn-accent {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 26px;
    background: var(--accent);
    color: #000;
    font-size: 14px;
    font-weight: 700;
    border-radius: 9px;
    font-family: var(--font-head);
    transition: filter .2s, transform .2s;
}

    .btn-accent:hover {
        filter: brightness(1.1);
        transform: translateY(-2px);
    }

.btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 26px;
    background: transparent;
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    border-radius: 9px;
    border: 1px solid var(--border);
    font-family: var(--font-head);
    transition: background .2s, transform .2s;
}

    .btn-ghost:hover {
        background: rgba(255,255,255,.05);
        transform: translateY(-2px);
    }

/* ════════════════════════════════════════
       ANIMATIONS
    ════════════════════════════════════════ */
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ════════════════════════════════════════
       RESPONSIVE
    ════════════════════════════════════════ */
@media (max-width: 720px) {
    .upwork-cta {
        padding: 36px 22px 32px;
    }

    .polymarket-banner {
        padding: 28px 22px;
    }

    .process-steps {
        gap: 32px;
    }

        .process-steps::before {
            display: none;
        }

    .process-step {
        padding: 0;
    }
}

@media (max-width: 520px) {
    .hero {
        padding: 72px 0 56px;
    }

    .bot-grid {
        grid-template-columns: 1fr;
    }
}
