Skip to content

Teste.html #1

Description

@MOSCHIAT
<title>MOSCHIAT — Um som, uma imagem, um futuro.</title>
<!-- Firebase SDKs -->
<script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-app-compat.js">
</script>
<script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore-compat.js">
</script>

<style>
    /* ===== RESET & VARIÁVEIS ===== */
    :root {
        --bg: #f3f2ee;
        --paper: #faf9f6;
        --black: #111;
        --gray: #70706c;
        --line: #d8d6d0;
        --soft: #e8e6e0;
        --white: #fff;
        --max: 1180px;
    }

    * {
        box-sizing: border-box;
    }

    html {
        scroll-behavior: smooth;
    }

    body {
        margin: 0;
        background: var(--bg);
        color: var(--black);
        font-family: Inter, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    }

    a {
        color: inherit;
        text-decoration: none;
    }

    .container {
        width: min(1120px, calc(100% - 40px));
        margin: auto;
    }

    /* ===== NAV ===== */
    nav {
        height: 76px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid var(--line);
    }

    .logo {
        font-size: 13px;
        font-weight: 800;
        letter-spacing: .12em;
    }

    .nav-links {
        display: flex;
        gap: 28px;
    }

    .nav-links a {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .12em;
        color: var(--gray);
    }

    /* ===== HERO ===== */
    .hero {
        padding: 90px 0 70px;
    }

    .hero-grid {
        display: grid;
        grid-template-columns: 1.5fr .7fr;
        gap: 80px;
        align-items: end;
    }

    .eyebrow {
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: .18em;
        color: var(--gray);
        margin-bottom: 22px;
    }

    h1 {
        font-size: clamp(52px, 8vw, 108px);
        line-height: .86;
        letter-spacing: -.075em;
        margin: 0;
        font-weight: 800;
    }

    .hero-description {
        max-width: 680px;
        margin-top: 32px;
        font-size: 20px;
        line-height: 1.5;
        color: #44433f;
    }

    .timer-card {
        background: var(--black);
        color: var(--white);
        padding: 24px;
        border-radius: 16px;
    }

    .timer-title {
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: .16em;
        color: #999;
        margin-bottom: 16px;
    }

    .timer {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 5px;
    }

    .time {
        background: #202020;
        border-radius: 9px;
        padding: 13px 4px;
        text-align: center;
    }

    .time-number {
        display: block;
        font-size: 25px;
        font-weight: 800;
        letter-spacing: -.05em;
    }

    .time-label {
        display: block;
        margin-top: 4px;
        font-size: 8px;
        text-transform: uppercase;
        color: #999;
    }

    /* ===== SECTIONS GERAIS ===== */
    section {
        padding: 90px 0;
        border-top: 1px solid var(--line);
    }

    .section-grid {
        display: grid;
        grid-template-columns: .65fr 1.35fr;
        gap: 80px;
    }

    .section-title {
        font-size: clamp(34px, 5vw, 64px);
        line-height: .94;
        letter-spacing: -.06em;
        margin: 0;
    }

    .text {
        max-width: 680px;
        color: #55534e;
        font-size: 17px;
        line-height: 1.65;
    }

    .text p {
        margin-top: 0;
        margin-bottom: 20px;
    }

    /* ===== GOAL ===== */
    .goal-number {
        font-size: clamp(70px, 10vw, 120px);
        font-weight: 800;
        letter-spacing: -.08em;
        line-height: 1;
        margin: 40px 0 20px;
    }

    .progress {
        width: 100%;
        height: 12px;
        background: var(--soft);
        border-radius: 100px;
        overflow: hidden;
    }

    .progress-bar {
        height: 100%;
        width: 0%;
        background: var(--black);
        transition: width .5s ease;
    }

    .progress-info {
        display: flex;
        justify-content: space-between;
        margin-top: 10px;
        font-size: 11px;
        color: var(--gray);
    }

    /* ===== REWARDS ===== */
    .rewards {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .reward {
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 14px;
        padding: 26px;
        min-height: 260px;
        display: flex;
        flex-direction: column;
    }

    .reward-value {
        font-size: 34px;
        font-weight: 800;
        letter-spacing: -.06em;
        margin-bottom: 40px;
    }

    .reward h3 {
        font-size: 18px;
        margin: 0 0 10px;
    }

    .reward p {
        margin: 0;
        color: var(--gray);
        font-size: 14px;
        line-height: 1.55;
    }

    .reward-footer {
        margin-top: auto;
        padding-top: 20px;
        font-size: 9px;
        text-transform: uppercase;
        letter-spacing: .14em;
        color: var(--gray);
    }

    /* ===== SESSION ===== */
    .session {
        background: var(--black);
        color: white;
        border-radius: 22px;
        padding: 50px;
    }

    .session-grid {
        display: grid;
        grid-template-columns: 1.2fr .8fr;
        gap: 60px;
    }

    .session h2 {
        font-size: clamp(42px, 6vw, 78px);
        line-height: .9;
        letter-spacing: -.07em;
        margin: 0 0 25px;
    }

    .session p {
        color: #aaa;
        line-height: 1.65;
    }

    .session-specs {
        margin-top: 35px;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .spec {
        padding: 16px 0;
        border-top: 1px solid #333;
        font-size: 13px;
        color: #aaa;
    }

    .spec strong {
        display: block;
        color: white;
        margin-bottom: 4px;
    }

    .vacancies {
        border: 1px solid #333;
        border-radius: 14px;
        padding: 25px;
        align-self: start;
    }

    .vacancies-number {
        font-size: 80px;
        font-weight: 800;
        letter-spacing: -.08em;
        line-height: 1;
    }

    /* ===== PHOTO CARDS ===== */
    .photo-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .photo {
        aspect-ratio: 4 / 5;
        position: relative;
        overflow: hidden;
        background: #aaa;
    }

    .photo span {
        position: absolute;
        bottom: 12px;
        left: 12px;
        color: white;
        font-size: 10px;
        letter-spacing: .16em;
        text-transform: uppercase;
        mix-blend-mode: difference;
    }

    .photo-1 {
        background: linear-gradient(135deg, #dedbd3 0 30%, transparent 30%), radial-gradient(circle at 65% 35%, #222 0 15%, transparent 16%), #aaa;
    }
    .photo-2 {
        background: linear-gradient(25deg, #111 0 25%, transparent 25%), radial-gradient(circle at 40% 60%, #bbb 0 15%, transparent 16%), #777;
    }
    .photo-3 {
        background: linear-gradient(90deg, #d5d1c8 0 48%, #111 48% 53%, #999 53%);
    }
    .photo-4 {
        background: radial-gradient(circle at 50% 40%, #111 0 15%, transparent 16%), linear-gradient(135deg, #eee, #888);
    }
    .photo-5 {
        background: linear-gradient(180deg, #eee 0 65%, #222 65%);
    }
    .photo-6 {
        background: linear-gradient(145deg, #111 0 42%, #d5d1c8 42% 70%, #777 70%);
    }

    /* ===== PROCESS ===== */
    .process {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }

    .process-step {
        padding: 25px;
        border-right: 1px solid var(--line);
        min-height: 190px;
    }

    .process-step:last-child {
        border-right: none;
    }

    .process-number {
        color: var(--gray);
        font-size: 11px;
        margin-bottom: 55px;
    }

    .process-step h3 {
        margin: 0 0 8px;
        font-size: 20px;
    }

    .process-step p {
        margin: 0;
        color: var(--gray);
        font-size: 13px;
    }

    /* ===== MILESTONES ===== */
    .milestones {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 8px;
    }

    .milestone {
        border: 1px solid var(--line);
        background: var(--paper);
        padding: 20px;
        min-height: 140px;
    }

    .milestone strong {
        display: block;
        font-size: 23px;
        margin-bottom: 30px;
    }

    .milestone span {
        color: var(--gray);
        font-size: 12px;
    }

    /* ===== TRANSPARENCY ===== */
    .transparency {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 80px;
    }

    .money-list {
        border-top: 1px solid var(--line);
    }

    .money-row {
        display: flex;
        justify-content: space-between;
        padding: 17px 0;
        border-bottom: 1px solid var(--line);
        font-size: 14px;
    }

    .money-row span {
        color: var(--gray);
    }

    /* ===== CTA ===== */
    .cta {
        background: var(--black);
        color: white;
        border-radius: 22px;
        padding: 55px;
        display: grid;
        grid-template-columns: 1.2fr .8fr;
        gap: 60px;
    }

    .cta h2 {
        font-size: clamp(42px, 6vw, 75px);
        line-height: .9;
        letter-spacing: -.07em;
        margin: 0;
    }

    .cta p {
        color: #aaa;
        max-width: 600px;
        line-height: 1.6;
    }

    .contribute-box {
        background: #1d1d1d;
        border: 1px solid #333;
        border-radius: 14px;
        padding: 22px;
        align-self: center;
    }

    .contribute-box label {
        display: block;
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: .13em;
        color: #999;
        margin-bottom: 10px;
    }

    .amount {
        width: 100%;
        background: #111;
        border: 1px solid #333;
        color: white;
        padding: 15px;
        border-radius: 9px;
        outline: none;
        margin-bottom: 10px;
    }

    .button {
        width: 100%;
        display: block;
        padding: 16px;
        border: none;
        border-radius: 9px;
        background: white;
        color: black;
        text-align: center;
        font-weight: 800;
        cursor: pointer;
    }

    .small {
        margin-top: 12px;
        color: #777;
        font-size: 10px;
        line-height: 1.5;
    }

    /* ===== NOVA SEÇÃO: CAPTURA ===== */
    .capture-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 60px;
        align-items: start;
    }

    .capture-form {
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 20px;
        padding: 40px 35px;
    }

    .capture-form label {
        display: block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .12em;
        color: var(--gray);
        margin-top: 18px;
        margin-bottom: 6px;
    }

    .capture-form label:first-of-type {
        margin-top: 0;
    }

    .capture-form input,
    .capture-form select {
        width: 100%;
        padding: 14px 16px;
        background: var(--white);
        border: 1px solid var(--line);
        border-radius: 10px;
        font-size: 16px;
        color: var(--black);
        outline: none;
        transition: border .2s;
    }

    .capture-form input:focus,
    .capture-form select:focus {
        border-color: var(--black);
    }

    .capture-form .button {
        margin-top: 28px;
        background: var(--black);
        color: var(--white);
        font-weight: 700;
        letter-spacing: .06em;
        border: none;
        padding: 18px;
        border-radius: 10px;
        cursor: pointer;
        transition: background .2s;
    }

    .capture-form .button:hover {
        background: #2a2a2a;
    }

    .capture-form .button:disabled {
        opacity: .5;
        cursor: not-allowed;
    }

    .form-feedback {
        margin-top: 16px;
        font-size: 14px;
        color: #2b7a4b;
        display: none;
    }

    .form-feedback.error {
        color: #b33;
    }

    .whatsapp-direct {
        margin-top: 24px;
        text-align: center;
    }

    .whatsapp-direct a {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        background: #25d366;
        color: white;
        padding: 14px 28px;
        border-radius: 40px;
        font-weight: 700;
        font-size: 16px;
        letter-spacing: .03em;
        transition: background .2s;
    }

    .whatsapp-direct a:hover {
        background: #1ebe5a;
    }

    .whatsapp-direct a svg {
        width: 24px;
        height: 24px;
        fill: white;
    }

    /* ===== FOOTER ===== */
    footer {
        padding: 35px 0 60px;
        display: flex;
        justify-content: space-between;
        color: var(--gray);
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: .12em;
    }

    /* ===== MOBILE ===== */
    @media(max-width: 800px) {
        .container {
            width: min(100% - 28px, 1120px);
        }
        .nav-links {
            display: none;
        }
        .hero-grid,
        .section-grid,
        .session-grid,
        .transparency,
        .cta,
        .capture-grid {
            grid-template-columns: 1fr;
        }
        .rewards {
            grid-template-columns: 1fr 1fr;
        }
        .photo-grid {
            grid-template-columns: 1fr 1fr;
        }
        .process {
            grid-template-columns: 1fr 1fr;
        }
        .process-step {
            border-bottom: 1px solid var(--line);
        }
        .milestones {
            grid-template-columns: 1fr 1fr;
        }
        .capture-form {
            padding: 28px 22px;
        }
    }

    @media(max-width: 520px) {
        .hero {
            padding-top: 55px;
        }
        .rewards,
        .photo-grid,
        .process,
        .milestones {
            grid-template-columns: 1fr;
        }
        .session,
        .cta {
            padding: 28px;
        }
        .session-specs {
            grid-template-columns: 1fr;
        }
        footer {
            flex-direction: column;
            gap: 10px;
        }
    }
</style>
<div class="container">

    <!-- ==========================================
    NAV
    =========================================== -->
    <nav>
        <div class="logo">MOSCHIAT</div>
        <div class="nav-links">
            <a href="#projeto">Projeto</a>
            <a href="#recompensas">Recompensas</a>
            <a href="#processo">Processo</a>
            <a href="#contribuir">Participar</a>
            <a href="#captura">Contato</a>
        </div>
    </nav>

    <!-- ==========================================
    HERO
    =========================================== -->
    <header class="hero">
        <div class="hero-grid">
            <div>
                <div class="eyebrow">MOSCHIAT / STUDY 001 / 2026</div>
                <h1>Um som.<br>Uma imagem.<br>Um futuro.</h1>
                <p class="hero-description">
                    Quero investir em uma ferramenta profissional para estudar
                    produção musical e transformar minhas experimentações em
                    música, imagem e audiovisual.
                </p>
            </div>
            <div class="timer-card">
                <div class="timer-title">Deal ends in</div>
                <div class="timer">
                    <div class="time">
                        <span class="time-number" id="days">00</span>
                        <span class="time-label">Days</span>
                    </div>
                    <div class="time">
                        <span class="time-number" id="hours">00</span>
                        <span class="time-label">Hours</span>
                    </div>
                    <div class="time">
                        <span class="time-number" id="minutes">00</span>
                        <span class="time-label">Minutes</span>
                    </div>
                    <div class="time">
                        <span class="time-number" id="seconds">00</span>
                        <span class="time-label">Seconds</span>
                    </div>
                </div>
            </div>
        </div>
    </header>

    <!-- ==========================================
    PROJETO
    =========================================== -->
    <section id="projeto">
        <div class="section-grid">
            <div>
                <div class="eyebrow">01 / O projeto</div>
                <h2 class="section-title">Não é apenas uma compra.</h2>
            </div>
            <div class="text">
                <p>
                    Esta campanha existe para financiar uma ferramenta que fará
                    parte diretamente do meu processo de estudo e criação:
                    o <strong>FL Studio All Plugins Edition</strong>.
                </p>
                <p>
                    Quero usar esse próximo ciclo para estudar produção musical,
                    explorar novas possibilidades sonoras e transformar essas
                    experimentações em uma linguagem que atravesse música,
                    fotografia e audiovisual.
                </p>
                <p>
                    Quem participa não está simplesmente entregando dinheiro.
                    Está ajudando a financiar uma etapa concreta desse processo
                    e recebe algo proporcional à contribuição.
                </p>
                <div class="goal-number">R$ 1.500</div>
                <div class="progress">
                    <div class="progress-bar" id="progressBar"></div>
                </div>
                <div class="progress-info">
                    <span id="raised">R$ 0 arrecadados</span>
                    <span>Meta: R$ 1.500</span>
                </div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    RECOMPENSAS
    =========================================== -->
    <section id="recompensas">
        <div class="section-grid">
            <div>
                <div class="eyebrow">02 / Recompensas</div>
                <h2 class="section-title">Financie.<br>Receba.<br>Participe.</h2>
            </div>
            <div>
                <div class="rewards">
                    <article class="reward">
                        <div class="reward-value">Qualquer valor</div>
                        <h3>Participação</h3>
                        <p>Agradecimento + atualizações sobre o desenvolvimento da campanha.</p>
                        <div class="reward-footer">Sem valor mínimo</div>
                    </article>
                    <article class="reward">
                        <div class="reward-value">R$ 25+</div>
                        <h3>Edição digital</h3>
                        <p>Acesso ao pacote digital produzido durante a campanha.</p>
                        <div class="reward-footer">Digital</div>
                    </article>
                    <article class="reward">
                        <div class="reward-value">R$ 50+</div>
                        <h3>Audio / Image</h3>
                        <p>6 fotografias em alta resolução + 1 vídeo artístico de 15 segundos.</p>
                        <div class="reward-footer">Edition 001</div>
                    </article>
                    <article class="reward">
                        <div class="reward-value">R$ 100+</div>
                        <h3>Full Process</h3>
                        <p>Pacote completo + bastidores + extras do processo criativo.</p>
                        <div class="reward-footer">Behind the scenes</div>
                    </article>
                    <article class="reward">
                        <div class="reward-value">R$ 250+</div>
                        <h3>MOSCHIAT SESSION</h3>
                        <p>Ensaio fotográfico presencial de 20–50 minutos em Belo Horizonte, com direção artística.</p>
                        <div class="reward-footer">Apenas 5 vagas</div>
                    </article>
                    <article class="reward">
                        <div class="reward-value">R$ 500+</div>
                        <h3>Full Session</h3>
                        <p>Ensaio + pacote completo + experiência especial ligada ao projeto.</p>
                        <div class="reward-footer">Vagas limitadas</div>
                    </article>
                </div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    MOSCHIAT SESSION
    =========================================== -->
    <section>
        <div class="session">
            <div class="session-grid">
                <div>
                    <div class="eyebrow" style="color:#777">03 / R$ 250+</div>
                    <h2>MOSCHIAT<br>SESSION — 20/50</h2>
                    <p>
                        Um ensaio espontâneo de 20 a 50 minutos.
                        Fotografia externa, direção fotográfica,
                        seleção e tratamento das imagens.
                    </p>
                    <p>Belo Horizonte — região central ou local previamente combinado.</p>
                    <div class="session-specs">
                        <div class="spec"><strong>Duração</strong>20–50 minutos</div>
                        <div class="spec"><strong>Formato</strong>Fotografia externa</div>
                        <div class="spec"><strong>Local</strong>Belo Horizonte</div>
                        <div class="spec"><strong>Direção</strong>Direção fotográfica</div>
                        <div class="spec"><strong>Entrega</strong>Fotos digitais selecionadas</div>
                        <div class="spec"><strong>Data</strong>Combinada previamente</div>
                    </div>
                </div>
                <div class="vacancies">
                    <div class="eyebrow" style="color:#777">Disponibilidade</div>
                    <div class="vacancies-number">05</div>
                    <p>vagas de ensaio disponíveis nesta campanha.</p>
                    <p>Caso o conceito peça studio, uma opção próxima à região central será definida previamente. Eventuais custos de locação serão informados antes do ensaio.</p>
                </div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    EDIÇÃO 001
    =========================================== -->
    <section>
        <div class="section-grid">
            <div>
                <div class="eyebrow">04 / Edition 001</div>
                <h2 class="section-title">Seis imagens.<br>Uma obra.</h2>
            </div>
            <div class="text">
                <p>As seis fotografias não serão pensadas como imagens independentes. Cada uma representa uma etapa do mesmo experimento.</p>
            </div>
        </div>
        <div class="photo-grid">
            <div class="photo photo-1"><span>01 / Noise</span></div>
            <div class="photo photo-2"><span>02 / Pulse</span></div>
            <div class="photo photo-3"><span>03 / Frequency</span></div>
            <div class="photo photo-4"><span>04 / Distortion</span></div>
            <div class="photo photo-5"><span>05 / Silence</span></div>
            <div class="photo photo-6"><span>06 / Release</span></div>
        </div>
    </section>

    <!-- ==========================================
    VIDEO
    =========================================== -->
    <section>
        <div class="section-grid">
            <div>
                <div class="eyebrow">05 / Moving Image</div>
                <h2 class="section-title">15 segundos podem dizer bastante.</h2>
            </div>
            <div class="text">
                <p>O vídeo não será um anúncio explicando a campanha. Será uma pequena peça audiovisual.</p>
                <p>Imagem, movimento, textura, corte e uma composição sonora experimental criada durante o processo.</p>
                <p>A peça termina com:</p>
                <p><strong>AJUDE A CONSTRUIR<br>O PRÓXIMO SOM.</strong></p>
            </div>
        </div>
    </section>

    <!-- ==========================================
    PROCESSO
    =========================================== -->
    <section id="processo">
        <div class="section-grid">
            <div>
                <div class="eyebrow">06 / Processo</div>
                <h2 class="section-title">Dinheiro → ferramenta → estudo → obra.</h2>
            </div>
            <div>
                <div class="process">
                    <div class="process-step">
                        <div class="process-number">01</div>
                        <h3>Acquire</h3>
                        <p>Aquisição do FL Studio All Plugins Edition.</p>
                    </div>
                    <div class="process-step">
                        <div class="process-number">02</div>
                        <h3>Study</h3>
                        <p>Estudo de produção, síntese, efeitos e composição.</p>
                    </div>
                    <div class="process-step">
                        <div class="process-number">03</div>
                        <h3>Transform</h3>
                        <p>Transformação das experimentações em imagem e audiovisual.</p>
                    </div>
                    <div class="process-step">
                        <div class="process-number">04</div>
                        <h3>Release</h3>
                        <p>Entrega da edição artística para quem participou.</p>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    MARCOS
    =========================================== -->
    <section>
        <div class="section-grid">
            <div>
                <div class="eyebrow">07 / Progress</div>
                <h2 class="section-title">O progresso também vira obra.</h2>
            </div>
            <div>
                <div class="milestones">
                    <div class="milestone"><strong>R$ 500</strong><span>Preview #01</span></div>
                    <div class="milestone"><strong>R$ 750</strong><span>Foto inédita</span></div>
                    <div class="milestone"><strong>R$ 1.000</strong><span>Preview do vídeo</span></div>
                    <div class="milestone"><strong>R$ 1.250</strong><span>Making of</span></div>
                    <div class="milestone"><strong>R$ 1.500</strong><span>Projeto completo</span></div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    TRANSPARÊNCIA
    =========================================== -->
    <section>
        <div class="transparency">
            <div>
                <div class="eyebrow">08 / Transparência</div>
                <h2 class="section-title">Para onde vai o dinheiro?</h2>
                <div class="text">
                    <p>A meta desta campanha é financiar a aquisição do FL Studio All Plugins Edition.</p>
                    <p>A ferramenta será utilizada no próximo ciclo de estudos e produção musical.</p>
                    <p>Se houver taxas da plataforma de pagamento, elas devem ser consideradas separadamente na prestação de contas.</p>
                </div>
            </div>
            <div class="money-list">
                <div class="money-row"><span>Meta</span><strong>R$ 1.500</strong></div>
                <div class="money-row"><span>Destino principal</span><strong>FL Studio</strong></div>
                <div class="money-row"><span>Finalidade</span><strong>Estudo + produção</strong></div>
                <div class="money-row"><span>Resultado</span><strong>Arte + audiovisual</strong></div>
                <div class="money-row"><span>Taxas</span><strong>Informadas</strong></div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    CARD DIGITAL
    =========================================== -->
    <section>
        <div class="section-grid">
            <div>
                <div class="eyebrow">09 / Digital Artifact</div>
                <h2 class="section-title">MOSCHIAT<br>/ STUDY 001</h2>
            </div>
            <div class="text">
                <p>A contribuição também pode receber uma peça digital concebida como uma edição de arte.</p>
                <p><strong>AUDIO / IMAGE / EXPERIMENT</strong></p>
                <p>6 photographic studies<br>+ 01 moving image<br>+ process archive</p>
                <p>2026 / Edition 001</p>
            </div>
        </div>
    </section>

    <!-- ==========================================
    CTA (contribuição financeira)
    =========================================== -->
    <section id="contribuir">
        <div class="cta">
            <div>
                <div class="eyebrow" style="color:#777">10 / Participate</div>
                <h2>Ajude a construir o próximo som.</h2>
                <p>Qualquer valor participa da construção. Valores maiores desbloqueiam experiências e partes diferentes da edição artística.</p>
                <p>O objetivo é simples: transformar uma ferramenta de estudo em música, imagem e audiovisual.</p>
            </div>
            <div class="contribute-box">
                <label>Sua contribuição</label>
                <input id="amount" class="amount" type="number" min="1" placeholder="Ex.: 50" />
                <a class="button" href="#" onclick="contribute(event)">CONTRIBUIR</a>
                <div class="small">Este botão deve ser conectado ao seu PIX, Mercado Pago ou plataforma de financiamento.</div>
            </div>
        </div>
    </section>

    <!-- ==========================================
    NOVA SEÇÃO: CAPTURA DE LEADS + WHATSAPP
    =========================================== -->
    <section id="captura">
        <div class="section-grid capture-grid">
            <!-- coluna esquerda: texto -->
            <div>
                <div class="eyebrow">Fale com a MOSCHIAT</div>
                <h2 class="section-title">Quer participar ou tirar dúvidas?</h2>
                <div class="text">
                    <p>Preencha o formulário ao lado e entraremos em contato pelo WhatsApp para alinhar sua contribuição, agendar uma sessão ou responder qualquer pergunta.</p>
                    <p>Você também pode nos chamar diretamente clicando no botão abaixo.</p>
                </div>
                <div class="whatsapp-direct">
                    <a href="https://wa.me/5531999999999?text=Olá!%20Vi%20a%20campanha%20MOSCHIAT%20e%20gostaria%20de%20saber%20mais." target="_blank">
                        <!-- Ícone WhatsApp (SVG simples) -->
                        <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
                            <path d="M12.032 21.965c-1.917 0-3.78-.516-5.383-1.49l-4.76 1.558 1.593-4.616A9.931 9.931 0 0 1 2.032 12c0-5.514 4.486-10 10-10s10 4.486 10 10-4.486 10-10 10zm0-18.957c-4.951 0-8.977 4.026-8.977 8.977 0 1.582.413 3.124 1.197 4.455l-.78 2.266 2.34-.764a8.942 8.942 0 0 0 4.22 1.066c4.951 0 8.977-4.026 8.977-8.977s-4.026-8.977-8.977-8.977zm5.18 11.714c-.287.82-1.423 1.5-2.314 1.714-.609.146-1.258.22-1.9.22-.564 0-1.096-.103-1.61-.308-.292-.117-.595-.246-.906-.406-.155-.08-.315-.173-.473-.28-.387-.262-.775-.562-1.14-.927-.362-.363-.664-.752-.927-1.14-.107-.158-.2-.318-.28-.473-.16-.31-.289-.614-.406-.906-.205-.514-.308-1.046-.308-1.61 0-.642.074-1.291.22-1.9.214-.891.894-2.027 1.714-2.314.116-.04.232-.06.347-.06.243 0 .48.114.619.31.12.17.238.354.344.544.176.316.362.658.538 1.014.13.263.252.535.333.786.108.334-.064.677-.33.944l-.555.555c-.106.106-.15.24-.107.373.09.284.244.586.44.904.2.324.436.656.694.914.258.258.59.494.914.694.318.196.62.35.904.44.133.043.267-.001.373-.107l.555-.555c.267-.267.61-.438.944-.33.251.081.523.203.786.333.356.176.698.362 1.014.538.19.106.374.224.544.344.196.139.31.376.31.619 0 .115-.02.231-.06.347z"/>
                        </svg>
                        Fale agora no WhatsApp
                    </a>
                </div>
            </div>

            <!-- coluna direita: formulário -->
            <div class="capture-form">
                <form id="leadForm" onsubmit="return handleLeadSubmit(event)">
                    <label for="leadName">Seu nome</label>
                    <input type="text" id="leadName" placeholder="Ex.: Ana Silva" required />

                    <label for="leadEmail">E-mail</label>
                    <input type="email" id="leadEmail" placeholder="ana@email.com" required />

                    <label for="leadWhats">WhatsApp (com DDD)</label>
                    <input type="tel" id="leadWhats" placeholder="31 99999-9999" required />

                    <label for="leadInterest">Interesse principal</label>
                    <select id="leadInterest">
                        <option value="Quero contribuir financeiramente">Quero contribuir financeiramente</option>
                        <option value="Quero agendar uma SESSION">Quero agendar uma SESSION</option>
                        <option value="Quero saber mais sobre o projeto">Quero saber mais sobre o projeto</option>
                        <option value="Outro">Outro</option>
                    </select>

                    <button type="submit" class="button" id="leadSubmitBtn">Enviar e falar no WhatsApp</button>
                    <div id="leadFeedback" class="form-feedback"></div>
                </form>
            </div>
        </div>
    </section>

    <!-- ==========================================
    FOOTER
    =========================================== -->
    <footer>
        <span>MOSCHIAT / STUDY 001</span>
        <span>AUDIO / IMAGE / EXPERIMENT / 2026</span>
    </footer>

</div>

<!-- ==========================================
SCRIPTS
=========================================== -->
<script>
    /* ==========================================
       CONFIGURAÇÕES GERAIS
    ========================================== */

    // --- DATA FINAL DA CAMPANHA ---
    const deadline = new Date("2026-08-11T04:01:29-03:00").getTime();

    // --- VALOR ARRECADADO ---
    let raised = 0;
    const goal = 1500;

    // --- NÚMERO DO WHATSAPP (com DDD e país) ---
    const WHATSAPP_NUMBER = "5531999999999"; // substitua pelo seu número

    // --- MENSAGEM INICIAL PARA O WHATSAPP ---
    function getWhatsAppMessage(data) {
        return (
            `Olá! Sou ${data.nome} e tenho interesse em "${data.interesse}".%0A` +
            `Meu e-mail: ${data.email}%0A` +
            `Meu WhatsApp: ${data.whatsapp}%0A%0A` +
            `Gostaria de saber mais sobre a campanha MOSCHIAT.`
        );
    }


    /* ==========================================
       FIREBASE — CONFIGURE AQUI!
    ========================================== */

    // Substitua com seus dados do Firebase
    const firebaseConfig = {
        apiKey: "YOUR_API_KEY",
        authDomain: "YOUR_PROJECT.firebaseapp.com",
        projectId: "YOUR_PROJECT_ID",
        storageBucket: "YOUR_PROJECT.appspot.com",
        messagingSenderId: "YOUR_SENDER_ID",
        appId: "YOUR_APP_ID"
    };

    // Inicializa Firebase
    firebase.initializeApp(firebaseConfig);
    const db = firebase.firestore();


    /* ==========================================
       PROGRESSO
    ========================================== */

    function updateProgress() {
        const percentage = Math.min((raised / goal) * 100, 100);
        document.getElementById("progressBar").style.width = percentage + "%";
        document.getElementById("raised").textContent =
            "R$ " + raised.toLocaleString("pt-BR") + " arrecadados";
    }
    updateProgress();


    /* ==========================================
       TEMPORIZADOR
    ========================================== */

    function updateTimer() {
        const now = Date.now();
        const diff = Math.max(0, deadline - now);
        const totalSeconds = Math.floor(diff / 1000);

        const days = Math.floor(totalSeconds / 86400);
        const hours = Math.floor((totalSeconds % 86400) / 3600);
        const minutes = Math.floor((totalSeconds % 3600) / 60);
        const seconds = totalSeconds % 60;

        document.getElementById("days").textContent = String(days).padStart(2, "0");
        document.getElementById("hours").textContent = String(hours).padStart(2, "0");
        document.getElementById("minutes").textContent = String(minutes).padStart(2, "0");
        document.getElementById("seconds").textContent = String(seconds).padStart(2, "0");

        if (diff <= 0) {
            document.querySelector(".timer-title").textContent = "Campaign closed";
        }
    }
    updateTimer();
    setInterval(updateTimer, 1000);


    /* ==========================================
       CONTRIBUIÇÃO FINANCEIRA (CTA)
    ========================================== */

    function contribute(event) {
        event.preventDefault();
        const amount = Number(document.getElementById("amount").value);
        if (!amount || amount < 1) {
            alert("Digite o valor que deseja contribuir.");
            return;
        }
        alert(
            "Contribuição selecionada: R$ " + amount.toLocaleString("pt-BR") +
            "\n\nAgora conecte este botão ao seu sistema de pagamento."
        );
        // Aqui você pode redirecionar para um link de pagamento
        // window.location.href = "SEU_LINK_DE_PAGAMENTO";
    }


    /* ==========================================
       FORMULÁRIO DE CAPTURA + WHATSAPP
    ========================================== */

    const leadForm = document.getElementById("leadForm");
    const leadSubmitBtn = document.getElementById("leadSubmitBtn");
    const leadFeedback = document.getElementById("leadFeedback");

    async function handleLeadSubmit(e) {
        e.preventDefault();

        // coleta os dados
        const nome = document.getElementById("leadName").value.trim();
        const email = document.getElementById("leadEmail").value.trim();
        const whatsapp = document.getElementById("leadWhats").value.trim();
        const interesse = document.getElementById("leadInterest").value;

        // validação simples
        if (!nome || !email || !whatsapp) {
            showFeedback("Por favor, preencha todos os campos.", true);
            return;
        }

        // desabilita botão para evitar múltiplos envios
        leadSubmitBtn.disabled = true;
        leadSubmitBtn.textContent = "Enviando...";
        showFeedback("", false);

        try {
            // 1. Salva no Firestore
            await db.collection("leads").add({
                nome: nome,
                email: email,
                whatsapp: whatsapp,
                interesse: interesse,
                dataCadastro: firebase.firestore.FieldValue.serverTimestamp()
            });

            // 2. Constrói a mensagem para o WhatsApp
            const msg = getWhatsAppMessage({ nome, email, whatsapp, interesse });
            const url = `https://wa.me/${WHATSAPP_NUMBER}?text=${msg}`;

            // 3. Redireciona para o WhatsApp
            window.open(url, "_blank");

            showFeedback("Dados enviados! Você será redirecionado para o WhatsApp.", false);
            leadForm.reset();

        } catch (err) {
            console.error("Erro ao salvar lead:", err);
            showFeedback("Ocorreu um erro ao enviar. Tente novamente ou fale diretamente pelo WhatsApp.", true);
        } finally {
            leadSubmitBtn.disabled = false;
            leadSubmitBtn.textContent = "Enviar e falar no WhatsApp";
        }

        return false;
    }

    function showFeedback(msg, isError) {
        leadFeedback.textContent = msg;
        leadFeedback.style.display = msg ? "block" : "none";
        leadFeedback.className = "form-feedback" + (isError ? " error" : "");
    }

    // Expor a função para o atributo onsubmit do formulário
    window.handleLeadSubmit = handleLeadSubmit;
</script>

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions