← back to Crankd
public/index.html
96 lines
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>crankd</title>
<style>
:root {
--bg: #0b0b0c;
--fg: #f4f1ea;
--accent: #ff5b3a;
--hair: rgba(244,241,234,0.18);
}
* { box-sizing: border-box; }
html, body { margin:0; padding:0; background:var(--bg); color:var(--fg); font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif; }
a { color: inherit; text-decoration: none; }
/* header — logo UL, hamburger UR */
header {
position: fixed; inset: 0 0 auto 0; z-index: 10;
display: flex; justify-content: space-between; align-items: center;
padding: 18px 22px; pointer-events: none;
}
header .logo, header .menu { pointer-events: auto; }
header .logo { font-weight: 700; letter-spacing: 0.02em; text-transform: lowercase; }
header .menu { font-size: 22px; cursor: pointer; padding: 6px 10px; }
/* hero — large, wordmark below */
.hero {
min-height: 100vh;
display: grid; place-items: center;
background:
radial-gradient(60% 60% at 30% 35%, rgba(255,91,58,0.18), transparent 60%),
radial-gradient(50% 50% at 75% 70%, rgba(120,150,255,0.10), transparent 60%),
var(--bg);
}
.hero-inner { text-align:center; padding: 0 24px; max-width: 980px; }
.hero h1 {
font: 700 clamp(56px, 12vw, 168px)/0.9 "Helvetica Neue", sans-serif;
letter-spacing: -0.04em;
margin: 0 0 14px;
text-transform: lowercase;
}
.hero .tagline {
font-style: italic; opacity: 0.78; font-size: clamp(14px, 1.6vw, 18px);
margin: 0 auto 28px; max-width: 56ch;
}
.cta {
display: inline-block; border: 1px solid var(--hair);
padding: 12px 22px; border-radius: 999px; font-size: 14px;
letter-spacing: 0.04em; text-transform: uppercase;
}
.cta:hover { border-color: var(--accent); color: var(--accent); }
/* compliance footer strip */
.compliance {
border-top: 1px solid var(--hair);
padding: 28px 22px;
font-size: 12px; opacity: 0.66; max-width: 1100px; margin: 0 auto;
}
.compliance b { color: var(--fg); opacity: 1; }
.compliance ul { padding-left: 18px; margin: 8px 0 0; }
</style>
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
</head>
<body>
<header>
<div class="logo">crankd</div>
<div class="menu" aria-label="menu">≡</div>
</header>
<section class="hero">
<div class="hero-inner">
<h1>crankd</h1>
<p class="tagline">opt-in AI-voice prank & escape calls — built compliance-first.</p>
<a class="cta" href="#how">how it works</a>
</div>
</section>
<section id="how" class="compliance">
<b>What crankd is not.</b> crankd does not cold-dial strangers. Every call requires
prior express opt-in from the recipient (or the recipient is you, calling yourself).
<ul>
<li>FCC Feb-2024 rule: every AI-voice call begins with an audible disclosure that the voice is AI-generated.</li>
<li>TCPA: outbound calls only to numbers with a confirmed opt-in record on file.</li>
<li>CA Penal Code §632: recordings require both-party consent — recording is off by default.</li>
<li>Quiet hours: no calls before 8am or after 9pm recipient-local.</li>
<li>DNC scrub runs before every dial.</li>
<li>v0.1 ships in Steve-only mode: dialing is hard-disabled until allowlist is wired.</li>
</ul>
</section>
</body>
</html>