<!-- © 2026 Round Table Strategy LLC. All rights reserved. -->
<!-- RT-ORIGIN: Round Table Strategy LLC | Author: Regie Durana | wsbroundtable.com | Est. 2024 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="author" content="Round Table Strategy LLC" />
    <title>Second Habit - Transform Struggle Into Second Nature</title>
    <meta name="description" content="First habits come naturally. Second habits are the ones you build through daily practice until they become effortless.">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --primary: #1a1a2e;
            --accent: #e94560;
            --light: #f5f5f7;
            --text: #333;
            --text-light: #666;
        }

        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            line-height: 1.6;
            color: var(--text);
            background: var(--light);
        }

        .container {
            max-width: 800px;
            margin: 0 auto;
            padding: 0 24px;
        }

        /* Hero Section */
        .hero {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            padding: 60px 24px;
            background: linear-gradient(135deg, var(--primary) 0%, #16213e 100%);
            color: white;
        }

        .logo {
            font-size: 0.9rem;
            font-weight: 600;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--accent);
            margin-bottom: 40px;
        }

        .hero h1 {
            font-size: clamp(2.5rem, 8vw, 4.5rem);
            font-weight: 700;
            line-height: 1.1;
            margin-bottom: 24px;
        }

        .hero h1 span {
            color: var(--accent);
        }

        .tagline {
            font-size: 1.25rem;
            color: rgba(255,255,255,0.8);
            max-width: 600px;
            margin-bottom: 48px;
        }

        /* Journey Visual */
        .journey {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
            justify-content: center;
            margin-bottom: 48px;
            font-size: 0.95rem;
        }

        .journey-step {
            padding: 8px 20px;
            background: rgba(255,255,255,0.1);
            border-radius: 50px;
            border: 1px solid rgba(255,255,255,0.2);
        }

        .journey-arrow {
            color: var(--accent);
            font-weight: bold;
        }

        .journey-step.active {
            background: var(--accent);
            border-color: var(--accent);
        }

        /* CTA Button */
        .cta-button {
            display: inline-block;
            padding: 16px 40px;
            background: var(--accent);
            color: white;
            text-decoration: none;
            font-weight: 600;
            font-size: 1rem;
            border-radius: 50px;
            transition: transform 0.2s, box-shadow 0.2s;
        }

        .cta-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(233, 69, 96, 0.3);
        }

        /* Concept Section */
        .concept {
            padding: 100px 24px;
            background: white;
        }

        .concept h2 {
            font-size: 2rem;
            text-align: center;
            margin-bottom: 60px;
            color: var(--primary);
        }

        .concept-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 40px;
            max-width: 900px;
            margin: 0 auto;
        }

        .concept-card {
            padding: 32px;
            background: var(--light);
            border-radius: 16px;
        }

        .concept-card h3 {
            font-size: 1.1rem;
            color: var(--primary);
            margin-bottom: 12px;
        }

        .concept-card p {
            color: var(--text-light);
            font-size: 0.95rem;
        }

        .concept-number {
            display: inline-block;
            width: 32px;
            height: 32px;
            background: var(--accent);
            color: white;
            border-radius: 50%;
            text-align: center;
            line-height: 32px;
            font-weight: 600;
            font-size: 0.85rem;
            margin-bottom: 16px;
        }

        /* Signup Section */
        .signup {
            padding: 100px 24px;
            background: var(--primary);
            color: white;
            text-align: center;
        }

        .signup h2 {
            font-size: 2rem;
            margin-bottom: 16px;
        }

        .signup p {
            color: rgba(255,255,255,0.7);
            margin-bottom: 40px;
            max-width: 500px;
            margin-left: auto;
            margin-right: auto;
        }

        /* Getformly form placeholder */
        .form-container {
            max-width: 450px;
            margin: 0 auto;
        }

        .email-form {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            justify-content: center;
        }

        .email-form input[type="email"] {
            flex: 1;
            min-width: 250px;
            padding: 16px 24px;
            border: none;
            border-radius: 50px;
            font-size: 1rem;
            font-family: inherit;
        }

        .email-form button {
            padding: 16px 32px;
            background: var(--accent);
            color: white;
            border: none;
            border-radius: 50px;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            font-family: inherit;
            transition: transform 0.2s;
        }

        .email-form button:hover {
            transform: translateY(-2px);
        }

        /* Social Links */
        .social {
            margin-top: 48px;
        }

        .social p {
            font-size: 0.85rem;
            margin-bottom: 16px;
            color: rgba(255,255,255,0.5);
        }

        .social-links {
            display: flex;
            justify-content: center;
            gap: 20px;
        }

        .social-links a {
            color: white;
            text-decoration: none;
            font-size: 0.9rem;
            opacity: 0.7;
            transition: opacity 0.2s;
        }

        .social-links a:hover {
            opacity: 1;
        }

        /* Footer */
        footer {
            padding: 40px 24px;
            text-align: center;
            background: #0f0f1a;
            color: rgba(255,255,255,0.4);
            font-size: 0.85rem;
        }

        /* Mobile */
        @media (max-width: 600px) {
            .hero {
                padding: 40px 20px;
            }

            .journey {
                font-size: 0.85rem;
            }

            .journey-step {
                padding: 6px 14px;
            }

            .email-form {
                flex-direction: column;
            }

            .email-form input[type="email"],
            .email-form button {
                width: 100%;
            }
        }
    </style>
</head>
<body>
    <!-- Hero Section -->
    <section class="hero">
        <div class="logo">Second Habit</div>
        <h1>Transform Struggle<br>Into <span>Second Nature</span></h1>
        <p class="tagline">First habits come naturally. Second habits are the ones you build through daily practice until they become effortless.</p>

        <div class="journey">
            <span class="journey-step">Struggle</span>
            <span class="journey-arrow">&rarr;</span>
            <span class="journey-step">Practice</span>
            <span class="journey-arrow">&rarr;</span>
            <span class="journey-step">Mastery</span>
            <span class="journey-arrow">&rarr;</span>
            <span class="journey-step active">Natural</span>
        </div>

        <a href="#signup" class="cta-button">Start Your Journey</a>
    </section>

    <!-- Concept Section -->
    <section class="concept">
        <div class="container">
            <h2>What Is a Second Habit?</h2>
            <div class="concept-grid">
                <div class="concept-card">
                    <span class="concept-number">1</span>
                    <h3>First Habits Are Natural</h3>
                    <p>These are the things you do without thinking. They come easily because they're part of who you already are.</p>
                </div>
                <div class="concept-card">
                    <span class="concept-number">2</span>
                    <h3>Second Habits Require Work</h3>
                    <p>These are the skills and behaviors that don't come naturally. They demand daily effort, discipline, and intention.</p>
                </div>
                <div class="concept-card">
                    <span class="concept-number">3</span>
                    <h3>Mastery Takes Time</h3>
                    <p>Through repetition and persistence, you build competence. The struggle lessens. Confidence grows. You're getting closer.</p>
                </div>
                <div class="concept-card">
                    <span class="concept-number">4</span>
                    <h3>It Becomes Natural</h3>
                    <p>What once required effort now flows effortlessly. Your second habit has become your first habit. Time to choose the next one.</p>
                </div>
            </div>
        </div>
    </section>

    <!-- Signup Section -->
    <section class="signup" id="signup">
        <div class="container">
            <h2>Join the Journey</h2>
            <p>Get weekly insights on building habits that transform your life. No spam, just actionable wisdom.</p>

            <div class="form-container">
                <!-- REPLACE THIS WITH YOUR GETFORMLY EMBED CODE -->
                <form class="email-form" action="YOUR_GETFORMLY_ACTION_URL" method="POST">
                    <input type="email" name="email" placeholder="Enter your email" required>
                    <button type="submit">Subscribe</button>
                </form>
                <!-- END GETFORMLY PLACEHOLDER -->
            </div>

            <div class="social">
                <p>Follow for daily inspiration</p>
                <div class="social-links">
                    <a href="https://instagram.com/thesecondhabit" target="_blank">Instagram</a>
                    <a href="https://facebook.com/groups/secondhabit" target="_blank">Facebook</a>
                </div>
            </div>
        </div>
    </section>

    <!-- Footer -->
    <footer>
        <p>&copy; 2026 Round Table Strategy LLC. Second Habit&trade; is a trademark of Round Table Strategy LLC. All rights reserved.</p>
    </footer>
</body>
</html>