<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Anton&family=Barlow:wght@400;500;600&family=Barlow+Semi+Condensed:wght@600&display=swap" />
<style>
.pod-embed-container {
--asphalt: #0d0e10;
--asphalt-2: #141619;
--card: #1a1d21;
--line: #2a2e34;
--ink: #ecebe6;
--muted: #9a9ea6;
--amber: #f7b322;
--amber-deep: #d9930c;
--danger: #ff6b5e;
box-sizing: border-box;
width: 100%;
margin: 0 auto;
padding: 0;
background: var(--asphalt);
color: var(--ink);
font-family: "Barlow", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
font-size: 16px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
border-radius: 12px;
overflow: hidden;
background-image:
radial-gradient(120% 80% at 50% -10%, rgba(247,179,34,0.10), transparent 60%),
repeating-linear-gradient(0deg, rgba(255,255,255,0.015) 0 2px, transparent 2px 4px);
}
.pod-embed-container * {
box-sizing: border-box;
}
.pod-hazard {
height: 10px;
width: 100%;
background: repeating-linear-gradient(45deg, var(--amber) 0 16px, #111 16px 32px);
box-shadow: 0 1px 0 rgba(0,0,0,0.4);
}
.pod-wrap {
max-width: 600px;
margin: 0 auto;
padding: 32px 20px 40px;
}
.pod-eyebrow {
font-family: "Barlow Semi Condensed", sans-serif;
text-transform: uppercase;
letter-spacing: 0.2em;
font-size: 13px;
font-weight: 600;
color: var(--amber);
display: flex;
align-items: center;
gap: 10px;
}
.pod-eyebrow::after {
content: "";
height: 1px;
flex: 1;
background: linear-gradient(90deg, var(--line), transparent);
}
.pod-embed-container h1 {
font-family: "Anton", Impact, sans-serif;
font-weight: 400;
font-size: clamp(34px, 7vw, 56px);
line-height: 1.0;
letter-spacing: 0.01em;
text-transform: uppercase;
margin: 16px 0 0;
color: var(--ink);
}
.pod-embed-container h1 .strike {
color: var(--muted);
position: relative;
white-space: nowrap;
}
.pod-embed-container h1 .strike::after {
content: "";
position: absolute;
left: -2%;
right: -2%;
top: 52%;
height: 4px;
background: var(--amber);
transform: rotate(-3deg);
border-radius: 2px;
}
.pod-lede {
font-size: 16px;
color: var(--ink);
margin: 18px 0 0;
line-height: 1.5;
}
.pod-lede + .pod-lede {
margin-top: 12px;
color: var(--muted);
}
.pod-card {
margin-top: 28px;
background: var(--card);
border: 1px solid var(--line);
border-radius: 12px;
padding: 22px;
box-shadow: 0 16px 40px -20px rgba(0,0,0,0.8);
}
.pod-card h2 {
font-family: "Barlow Semi Condensed", sans-serif;
text-transform: uppercase;
letter-spacing: 0.06em;
font-size: 18px;
font-weight: 600;
margin: 0 0 4px;
color: var(--ink);
}
.pod-card p.pod-sub {
margin: 0 0 16px;
color: var(--muted);
font-size: 14px;
}
.pod-form {
display: flex;
flex-direction: column;
gap: 12px;
}
.pod-form label {
font-family: "Barlow Semi Condensed", sans-serif;
text-transform: uppercase;
letter-spacing: 0.1em;
font-size: 12px;
font-weight: 600;
color: var(--muted);
margin-bottom: -4px;
}
.pod-form input[type=text],
.pod-form input[type=email] {
width: 100%;
padding: 12px 14px;
font-size: 15px;
font-family: inherit;
background: var(--asphalt-2);
color: var(--ink);
border: 1px solid var(--line);
border-radius: 8px;
transition: border-color .15s, box-shadow .15s;
}
.pod-form input::placeholder { color: #6b6f77; }
.pod-form input:focus {
outline: none;
border-color: var(--amber);
box-shadow: 0 0 0 3px rgba(247,179,34,0.18);
}
.pod-hp {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
.pod-btn {
margin-top: 4px;
padding: 13px 18px;
font-family: "Barlow Semi Condensed", sans-serif;
text-transform: uppercase;
letter-spacing: 0.09em;
font-weight: 600;
font-size: 16px;
color: #1a1204;
background: var(--amber);
border: none;
border-radius: 8px;
cursor: pointer;
transition: transform .06s ease, background .15s;
}
.pod-btn:hover { background: #ffc23f; }
.pod-btn:active { transform: translateY(1px); }
.pod-btn:disabled { opacity: .6; cursor: default; }
.pod-msg {
margin-top: 10px;
font-size: 14px;
min-height: 1.2em;
}
.pod-msg.err { color: var(--danger); }
.pod-success {
text-align: center;
padding: 8px 4px 4px;
}
.pod-success .tick {
width: 48px;
height: 48px;
border-radius: 50%;
margin: 0 auto 12px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(247,179,34,0.14);
border: 1px solid var(--amber);
font-size: 24px;
color: var(--amber);
}
.pod-success h2 { margin-bottom: 6px; }
.pod-success p { color: var(--muted); margin: 0; font-size: 14px; }
.pod-footer {
margin-top: 24px;
text-align: center;
color: #71757c;
font-size: 12.5px;
font-family: "Barlow Semi Condensed", sans-serif;
letter-spacing: 0.05em;
}
</style>
<div class="pod-embed-container">
<div class="pod-hazard"></div>
<div class="pod-wrap">
<div class="pod-eyebrow">NYC Moto Meetup</div>
<h1>We're leaving <span class="strike">Meetup.com</span></h1>
<p class="pod-lede">Meetup has changed over the years — and not for the better. They refuse to treat their paying hosts fairly, and worse, they've stopped treating the riders who just want to show up and ride the way they deserve.</p>
<p class="pod-lede">So we're taking our rides somewhere better — a home of our own.</p>
<div class="pod-card" id="pod-card">
<h2>Don't miss a ride</h2>
<p class="pod-sub">Leave your name and email to get notified when meetups and group rides go live on the new platform.</p>
<form id="pod-signup" class="pod-form" novalidate>
<div class="pod-hp" aria-hidden="true">
<label>Leave empty</label>
<input type="text" name="website" tabindex="-1" autocomplete="off" />
</div>
<label for="pod-name">Name</label>
<input type="text" id="pod-name" name="name" placeholder="Your name" autocomplete="name" required />
<label for="pod-email">Email</label>
<input type="email" id="pod-email" name="email" placeholder="you@email.com" autocomplete="email" required />
<button type="submit" id="pod-btn" class="pod-btn">Notify me</button>
<div class="pod-msg" id="pod-msg" role="status" aria-live="polite"></div>
</form>
</div>
<div class="pod-footer">No spam. Just rides. · See you on the road.</div>
</div>
</div>
<script>
(function() {
var form = document.getElementById('pod-signup');
var btn = document.getElementById('pod-btn');
var msg = document.getElementById('pod-msg');
var card = document.getElementById('pod-card');
function validEmail(v){
if(!v || v.indexOf(' ') !== -1) return false;
var at = v.indexOf('@');
var dot = v.lastIndexOf('.');
return at > 0 && dot > at + 1 && dot < v.length - 1;
}
form.addEventListener('submit', function(e){
e.preventDefault();
msg.className = 'pod-msg';
msg.textContent = '';
var name = document.getElementById('pod-name').value.trim();
var email = document.getElementById('pod-email').value.trim();
var website = form.website.value;
if(!name){
msg.className='pod-msg err';
msg.textContent='Please add your name.';
return;
}
if(!validEmail(email)){
msg.className='pod-msg err';
msg.textContent='Please enter a valid email address.';
return;
}
btn.disabled = true;
btn.textContent = 'Adding you...';
fetch('https://owxtsagmzbwudxrnphmi.supabase.co/functions/v1/meetup', {
method:'POST',
headers:{'Content-Type':'application/json'},
body: JSON.stringify({name: name, email: email, website: website})
})
.then(function(r){ return r.json().then(function(d){ return {ok: r.ok, d: d}; }); })
.then(function(res){
if(res.ok){
card.innerHTML = '<div class="pod-success">'
+ '<div class="tick">✓</div>'
+ '<h2>You're on the list</h2>'
+ '<p>Keep the rubber side down — we'll reach out as soon as the new platform is live.</p>'
+ '</div>';
} else {
btn.disabled = false;
btn.textContent = 'Notify me';
msg.className = 'pod-msg err';
msg.textContent = (res.d && res.d.error) ? res.d.error : 'Something went wrong. Please try again.';
}
})
.catch(function(){
btn.disabled = false;
btn.textContent = 'Notify me';
msg.className = 'pod-msg err';
msg.textContent = 'Network error. Please try again.';
});
});
})();
</script>