<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  <title>Kairos — Reclaim Your Morning</title>

  <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=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Syne:wght@400;500;700;800&display=swap" rel="stylesheet" />

  <style>

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {

      --bg: #0e0e0e;

      --surface: #161616;

      --surface2: #1e1e1e;

      --gold: #c9a84c;

      --gold-dim: rgba(201,168,76,0.15);

      --gold-border: rgba(201,168,76,0.2);

      --white: #ffffff;

      --muted: rgba(255,255,255,0.4);

      --muted2: rgba(255,255,255,0.12);

    }

    html { scroll-behavior: smooth; }

    body { background: var(--bg); color: var(--white); font-family: 'Syne', sans-serif; overflow-x: hidden; cursor: none; }


    .cursor { position: fixed; width: 8px; height: 8px; background: var(--gold); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); transition: width 0.3s, height 0.3s; mix-blend-mode: screen; }

    .cursor-ring { position: fixed; width: 36px; height: 36px; border: 1px solid rgba(201,168,76,0.4); border-radius: 50%; pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); transition: width 0.3s, height 0.3s; }

    .cursor.hover { width: 16px; height: 16px; }

    .cursor-ring.hover { width: 56px; height: 56px; }


    body::before { content: ''; position: fixed; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); opacity: 0.35; pointer-events: none; z-index: 1000; }


    nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 28px 60px; background: linear-gradient(to bottom, rgba(14,14,14,0.95), transparent); }

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

    .nav-cta { font-size: 11px; font-weight: 700; letter-spacing: 0.2em; color: var(--gold); text-decoration: none; border: 1px solid var(--gold-border); padding: 10px 22px; transition: background 0.2s, color 0.2s; }

    .nav-cta:hover { background: var(--gold); color: #000; }


    .hero { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 120px 40px 80px; position: relative; overflow: hidden; }

    .hero-glow { position: absolute; width: 700px; height: 700px; border-radius: 50%; background: radial-gradient(circle, rgba(201,168,76,0.07) 0%, transparent 70%); top: 50%; left: 50%; transform: translate(-50%,-60%); pointer-events: none; }

    .hero-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 0.4em; color: var(--gold); margin-bottom: 32px; opacity: 0; transform: translateY(10px); animation: fadeUp 0.8s ease forwards 0.2s; }

    .hero-title { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(64px, 10vw, 120px); line-height: 0.95; letter-spacing: -0.02em; margin-bottom: 12px; opacity: 0; transform: translateY(20px); animation: fadeUp 1s ease forwards 0.4s; }

    .hero-title em { font-style: italic; color: var(--gold); }

    .hero-subtitle { font-family: 'Cormorant Garamond', serif; font-size: clamp(18px, 2.5vw, 26px); font-weight: 300; color: var(--muted); max-width: 540px; line-height: 1.7; margin: 28px auto 56px; opacity: 0; transform: translateY(16px); animation: fadeUp 1s ease forwards 0.6s; }

    .hero-form { display: flex; max-width: 420px; width: 100%; opacity: 0; transform: translateY(16px); animation: fadeUp 1s ease forwards 0.8s; }

    .hero-form input { flex: 1; background: var(--surface); border: 1px solid var(--muted2); border-right: none; color: var(--white); font-family: 'Syne', sans-serif; font-size: 12px; letter-spacing: 0.05em; padding: 16px 20px; outline: none; transition: border-color 0.2s; }

    .hero-form input::placeholder { color: var(--muted); }

    .hero-form input:focus { border-color: var(--gold-border); }

    .hero-form button { background: var(--gold); color: #000; border: none; font-family: 'Syne', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; padding: 16px 28px; cursor: none; transition: opacity 0.2s; white-space: nowrap; }

    .hero-form button:hover { opacity: 0.85; }

    .hero-note { font-size: 10px; letter-spacing: 0.1em; color: var(--muted); margin-top: 16px; opacity: 0; animation: fadeUp 1s ease forwards 1s; }

    .hero-scroll { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; opacity: 0; animation: fadeUp 1s ease forwards 1.4s; }

    .hero-scroll span { font-size: 9px; letter-spacing: 0.3em; color: var(--muted); }

    .scroll-line { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--gold), transparent); animation: scrollPulse 2s ease-in-out infinite; }


    .divider { width: 1px; height: 80px; background: linear-gradient(to bottom, transparent, var(--gold-border), transparent); margin: 0 auto; }


    .about { padding: 120px 60px; max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center; }

    .about-label { font-size: 10px; font-weight: 700; letter-spacing: 0.4em; color: var(--gold); margin-bottom: 24px; }

    .about-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(36px, 4vw, 52px); font-weight: 300; line-height: 1.2; margin-bottom: 28px; }

    .about-title em { font-style: italic; color: var(--gold); }

    .about-body { font-family: 'Cormorant Garamond', serif; font-size: 19px; font-weight: 300; line-height: 1.8; color: var(--muted); }

    .about-body p + p { margin-top: 20px; }


    .about-visual { position: relative; display: flex; align-items: center; justify-content: center; }

    .phone-glow { position: absolute; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(201,168,76,0.1) 0%, transparent 70%); pointer-events: none; }

    .phone-mockup { width: 220px; height: 440px; background: var(--surface); border: 1px solid var(--muted2); border-radius: 36px; position: relative; overflow: hidden; box-shadow: 0 40px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04); }

    .phone-mockup::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 90px; height: 28px; background: var(--bg); border-radius: 0 0 18px 18px; z-index: 2; }

    .phone-screen { padding: 48px 20px 24px; height: 100%; display: flex; flex-direction: column; gap: 12px; }

    .phone-tag { align-self: center; font-size: 7px; font-weight: 700; letter-spacing: 0.2em; color: var(--gold); border: 1px solid var(--gold-border); padding: 4px 10px; border-radius: 100px; }

    .phone-heading { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 300; color: var(--white); text-align: center; line-height: 1.2; }

    .phone-text { font-family: 'Cormorant Garamond', serif; font-size: 11px; color: var(--muted); text-align: center; line-height: 1.6; }

    .phone-btn { background: var(--white); color: #000; font-family: 'Syne', sans-serif; font-size: 8px; font-weight: 700; letter-spacing: 0.2em; padding: 10px; text-align: center; margin-top: auto; }

    .phone-stat { display: flex; align-items: center; justify-content: space-between; background: var(--surface2); border: 1px solid var(--muted2); padding: 10px 14px; font-size: 8px; letter-spacing: 0.15em; color: var(--muted); font-weight: 600; }


    .features { padding: 80px 60px 140px; max-width: 1100px; margin: 0 auto; }

    .features-header { text-align: center; margin-bottom: 80px; }

    .features-label { font-size: 10px; font-weight: 700; letter-spacing: 0.4em; color: var(--gold); margin-bottom: 20px; }

    .features-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(36px, 4vw, 54px); font-weight: 300; line-height: 1.15; }

    .features-title em { font-style: italic; color: var(--gold); }

    .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }

    .feature-card { background: var(--surface); padding: 48px 40px; border: 1px solid var(--muted2); position: relative; overflow: hidden; transition: border-color 0.3s, transform 0.3s; }

    .feature-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(to right, transparent, var(--gold-border), transparent); opacity: 0; transition: opacity 0.3s; }

    .feature-card:hover { border-color: var(--gold-border); transform: translateY(-2px); }

    .feature-card:hover::before { opacity: 1; }

    .feature-number { font-size: 10px; font-weight: 700; letter-spacing: 0.3em; color: var(--gold); opacity: 0.5; margin-bottom: 32px; }

    .feature-icon { width: 40px; height: 40px; margin-bottom: 24px; }

    .feature-name { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 400; margin-bottom: 16px; line-height: 1.1; }

    .feature-desc { font-family: 'Cormorant Garamond', serif; font-size: 17px; font-weight: 300; color: var(--muted); line-height: 1.7; }


    .waitlist { padding: 120px 60px; text-align: center; position: relative; overflow: hidden; }

    .waitlist::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent, rgba(201,168,76,0.04), transparent); pointer-events: none; }

    .waitlist-inner { max-width: 560px; margin: 0 auto; position: relative; }

    .waitlist-label { font-size: 10px; font-weight: 700; letter-spacing: 0.4em; color: var(--gold); margin-bottom: 24px; }

    .waitlist-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(40px, 6vw, 72px); font-weight: 300; line-height: 1.05; margin-bottom: 20px; }

    .waitlist-title em { font-style: italic; color: var(--gold); }

    .waitlist-sub { font-family: 'Cormorant Garamond', serif; font-size: 19px; font-weight: 300; color: var(--muted); line-height: 1.7; margin-bottom: 48px; }

    .waitlist-form { display: flex; max-width: 420px; margin: 0 auto; }

    .waitlist-form input { flex: 1; background: var(--surface); border: 1px solid var(--muted2); border-right: none; color: var(--white); font-family: 'Syne', sans-serif; font-size: 12px; letter-spacing: 0.05em; padding: 16px 20px; outline: none; transition: border-color 0.2s; }

    .waitlist-form input::placeholder { color: var(--muted); }

    .waitlist-form input:focus { border-color: var(--gold-border); }

    .waitlist-form button { background: var(--gold); color: #000; border: none; font-family: 'Syne', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; padding: 16px 28px; cursor: none; transition: opacity 0.2s; white-space: nowrap; }

    .waitlist-form button:hover { opacity: 0.85; }

    .waitlist-note { font-size: 10px; letter-spacing: 0.1em; color: var(--muted); margin-top: 16px; }

    .form-success { display: none; font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 300; color: var(--gold); letter-spacing: 0.05em; padding: 16px; border: 1px solid var(--gold-border); margin-top: 16px; }


    footer { border-top: 1px solid var(--muted2); padding: 40px 60px; display: flex; align-items: center; justify-content: space-between; }

    .footer-logo { font-weight: 800; font-size: 12px; letter-spacing: 0.35em; color: var(--muted); }

    .footer-copy { font-size: 10px; letter-spacing: 0.1em; color: var(--muted); opacity: 0.5; }


    @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }

    @keyframes scrollPulse { 0%,100% { opacity: 0.3; } 50% { opacity: 1; } }


    .reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; }

    .reveal.visible { opacity: 1; transform: translateY(0); }

    .reveal-delay-1 { transition-delay: 0.1s; }

    .reveal-delay-2 { transition-delay: 0.2s; }

    .reveal-delay-3 { transition-delay: 0.3s; }

    .reveal-delay-4 { transition-delay: 0.4s; }

    .reveal-delay-5 { transition-delay: 0.5s; }


    @media (max-width: 900px) {

      nav { padding: 24px 30px; }

      .about { grid-template-columns: 1fr; gap: 60px; padding: 80px 30px; }

      .about-visual { order: -1; }

      .features { padding: 60px 30px 100px; }

      .features-grid { grid-template-columns: 1fr; }

      .waitlist { padding: 80px 30px; }

      footer { flex-direction: column; gap: 16px; padding: 30px; text-align: center; }

    }

    @media (max-width: 600px) {

      .hero-form, .waitlist-form { flex-direction: column; }

      .hero-form input, .waitlist-form input { border-right: 1px solid var(--muted2); border-bottom: none; }

    }

  </style>

</head>

<body>


<div class="cursor" id="cursor"></div>

<div class="cursor-ring" id="cursorRing"></div>


<nav>

  <div class="nav-logo">KAIROS</div>

  <a href="#waitlist" class="nav-cta">JOIN WAITLIST</a>

</nav>


<section class="hero">

  <div class="hero-glow"></div>

  <p class="hero-eyebrow">COMING SOON TO IOS</p>

  <h1 class="hero-title">Reclaim<br>your <em>morning.</em></h1>

  <p class="hero-subtitle">A daily devotional app that keeps your phone locked until you've spent time in stillness. Not productivity. Presence.</p>

  <form class="hero-form" id="heroForm">

    <input type="email" placeholder="YOUR EMAIL" required />

    <button type="submit">NOTIFY ME</button>

  </form>

  <p class="hero-note">No spam. Just a quiet note when we launch.</p>

  <div class="form-success" id="heroSuccess">You're on the list. We'll be in touch.</div>

  <div class="hero-scroll">

    <div class="scroll-line"></div>

    <span>SCROLL</span>

  </div>

</section>


<div class="divider"></div>


<section class="about">

  <div>

    <p class="about-label reveal">ABOUT KAIROS</p>

    <h2 class="about-title reveal reveal-delay-1">The ancient word for <em>the right moment.</em></h2>

    <div class="about-body reveal reveal-delay-2">

      <p>Kairos isn't a productivity app. It's a discipline. Every morning, your most distracting apps stay locked until you've read the day's devotional and sat in reflection.</p>

      <p>Built on Apple's native Screen Time API, the lock is real. The devotionals are brief, honest, and written for people who want faith woven into their actual day — not relegated to Sunday.</p>

      <p>No streaks for streaks' sake. No gamification. Just a quiet rhythm of morning stillness.</p>

    </div>

  </div>

  <div class="about-visual reveal reveal-delay-3">

    <div class="phone-glow"></div>

    <div class="phone-mockup">

      <div class="phone-screen">

        <div class="phone-tag">PSALM 46:10</div>

        <div class="phone-heading">Be Still<br>and Know</div>

        <div class="phone-text">In the noise of every morning, there is a still small voice asking you to pause before you perform.</div>

        <div class="phone-stat">

          <span>🔒 APPS BLOCKED</span>

          <span style="color:var(--gold)">●</span>

        </div>

        <div class="phone-btn">BEGIN READING →</div>

      </div>

    </div>

  </div>

</section>


<div class="divider"></div>


<section class="features">

  <div class="features-header">

    <p class="features-label reveal">HOW IT WORKS</p>

    <h2 class="features-title reveal reveal-delay-1">Designed for <em>discipline,</em><br>not willpower.</h2>

  </div>

  <div class="features-grid">

    <div class="feature-card reveal">

      <div class="feature-number">01</div>

      <svg class="feature-icon" viewBox="0 0 40 40" fill="none">

        <circle cx="20" cy="20" r="18" stroke="#c9a84c" stroke-width="1" stroke-opacity="0.4"/>

        <path d="M20 8L20 20L28 28" stroke="#c9a84c" stroke-width="1.5" stroke-linecap="round"/>

      </svg>

      <h3 class="feature-name">The Daily Lock</h3>

      <p class="feature-desc">At a time you set, Kairos locks your chosen apps via Apple's Screen Time API. The lock is native — not a workaround.</p>

    </div>

    <div class="feature-card reveal reveal-delay-1">

      <div class="feature-number">02</div>

      <svg class="feature-icon" viewBox="0 0 40 40" fill="none">

        <rect x="8" y="10" width="24" height="22" rx="2" stroke="#c9a84c" stroke-width="1" stroke-opacity="0.4"/>

        <line x1="13" y1="17" x2="27" y2="17" stroke="#c9a84c" stroke-width="1.5" stroke-linecap="round"/>

        <line x1="13" y1="22" x2="22" y2="22" stroke="#c9a84c" stroke-width="1.5" stroke-linecap="round"/>

      </svg>

      <h3 class="feature-name">Daily Devotional</h3>

      <p class="feature-desc">3–6 pages of original content, date-matched. Scripture, reflection, and a question. Read at your pace with a 15-second cooldown per page.</p>

    </div>

    <div class="feature-card reveal reveal-delay-2">

      <div class="feature-number">03</div>

      <svg class="feature-icon" viewBox="0 0 40 40" fill="none">

        <circle cx="20" cy="20" r="8" stroke="#c9a84c" stroke-width="1.5"/>

        <circle cx="20" cy="20" r="2" fill="#c9a84c"/>

        <path d="M20 6V12M20 28V34M6 20H12M28 20H34" stroke="#c9a84c" stroke-width="1" stroke-opacity="0.4" stroke-linecap="round"/>

      </svg>

      <h3 class="feature-name">The Unlock</h3>

      <p class="feature-desc">Complete the reading and your apps unlock for the rest of the day. The cycle resets quietly at the same time tomorrow.</p>

    </div>

    <div class="feature-card reveal reveal-delay-3">

      <div class="feature-number">04</div>

      <svg class="feature-icon" viewBox="0 0 40 40" fill="none">

        <path d="M14 20L18 24L26 16" stroke="#c9a84c" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>

        <circle cx="20" cy="20" r="14" stroke="#c9a84c" stroke-width="1" stroke-opacity="0.4"/>

      </svg>

      <h3 class="feature-name">Streak Tracking</h3>

      <p class="feature-desc">A quiet count of consecutive days. Stored locally, no account required. Not a leaderboard — just a mirror.</p>

    </div>

    <div class="feature-card reveal reveal-delay-4">

      <div class="feature-number">05</div>

      <svg class="feature-icon" viewBox="0 0 40 40" fill="none">

        <path d="M12 14C12 10 28 10 28 14L28 26C28 30 20 34 20 34C20 34 12 30 12 26Z" stroke="#c9a84c" stroke-width="1" stroke-opacity="0.4"/>

        <path d="M16 20L18 22L24 17" stroke="#c9a84c" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>

      </svg>

      <h3 class="feature-name">Private by Design</h3>

      <p class="feature-desc">No account needed. Journaling is local-only. No behavioral tracking. Apple handles the lock — we never see your data.</p>

    </div>

    <div class="feature-card reveal reveal-delay-5">

      <div class="feature-number">06</div>

      <svg class="feature-icon" viewBox="0 0 40 40" fill="none">

        <path d="M20 8C28 8 32 14 32 20C32 26 28 32 20 32C12 32 8 26 8 20C8 14 12 8 20 8Z" stroke="#c9a84c" stroke-width="1" stroke-opacity="0.4"/>

        <path d="M15 20Q20 14 25 20Q20 26 15 20Z" stroke="#c9a84c" stroke-width="1.5"/>

      </svg>

      <h3 class="feature-name">Subtly Christian</h3>

      <p class="feature-desc">Faith-rooted but not churchy. Written for people who want their spirituality integrated — not performed.</p>

    </div>

  </div>

</section>


<section class="waitlist" id="waitlist">

  <div class="waitlist-inner">

    <p class="waitlist-label reveal">EARLY ACCESS</p>

    <h2 class="waitlist-title reveal reveal-delay-1">The morning<br>is <em>waiting.</em></h2>

    <p class="waitlist-sub reveal reveal-delay-2">Kairos is in development. Join the waitlist and be first to know when it's ready for iOS.</p>

    <form class="waitlist-form reveal reveal-delay-3" id="waitlistForm">

      <input type="email" placeholder="YOUR EMAIL" required />

      <button type="submit">JOIN</button>

    </form>

    <p class="waitlist-note reveal reveal-delay-4">iOS only · No spam · Ever.</p>

    <div class="form-success" id="waitlistSuccess">You're on the list. We'll be in touch.</div>

  </div>

</section>


<footer>

  <div class="footer-logo">KAIROS</div>

  <div class="footer-copy">© 2026 Kairos. All rights reserved.</div>

</footer>


<script>

  // Cursor

  const cursor = document.getElementById('cursor');

  const ring = document.getElementById('cursorRing');

  let mx = 0, my = 0, rx = 0, ry = 0;

  document.addEventListener('mousemove', e => {

    mx = e.clientX; my = e.clientY;

    cursor.style.left = mx + 'px';

    cursor.style.top = my + 'px';

  });

  (function animateRing() {

    rx += (mx - rx) * 0.12;

    ry += (my - ry) * 0.12;

    ring.style.left = rx + 'px';

    ring.style.top = ry + 'px';

    requestAnimationFrame(animateRing);

  })();

  document.querySelectorAll('a, button, input').forEach(el => {

    el.addEventListener('mouseenter', () => { cursor.classList.add('hover'); ring.classList.add('hover'); });

    el.addEventListener('mouseleave', () => { cursor.classList.remove('hover'); ring.classList.remove('hover'); });

  });


  // Scroll reveal

  const observer = new IntersectionObserver(entries => {

    entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('visible'); });

  }, { threshold: 0.1 });

  document.querySelectorAll('.reveal').forEach(el => observer.observe(el));


  // Brevo

  const BREVO_API_KEY = 'YOUR_BREVO_API_KEY'; // ← paste your key here

  const BREVO_LIST_ID = 3;


  async function submitToBrevo(email) {

    try {

      const res = await fetch('https://api.brevo.com/v3/contacts', {

        method: 'POST',

        headers: {

          'Content-Type': 'application/json',

          'api-key': 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

        },

        body: JSON.stringify({

          email: email,

          listIds: [BREVO_LIST_ID],

          updateEnabled: true

        })

      });

      if (!res.ok) {

        const err = await res.json();

        console.error('Brevo error:', err);

      }

    } catch (e) {

      console.error('Network error:', e);

    }

  }


  function handleForm(formId, successId) {

    const form = document.getElementById(formId);

    const success = document.getElementById(successId);

    if (!form) return;

    form.addEventListener('submit', async e => {

      e.preventDefault();

      const email = form.querySelector('input').value;

      const btn = form.querySelector('button');

      btn.textContent = '...';

      btn.disabled = true;

      await submitToBrevo(email);

      form.style.display = 'none';

      success.style.display = 'block';

    });

  }


  handleForm('heroForm', 'heroSuccess');

  handleForm('waitlistForm', 'waitlistSuccess');

</script>

</body>

</html>