/*
* Crowdergy public site — minimal stylesheet.
* Mirrors the iOS design system (TOGColor / TOGFont) so the web
* presence reads as the same product. Self-hosted Google Fonts via
* a single in each page; no JS, no tracking.
*/
:root {
--color-bg: #080b12;
--color-surface: rgba(255, 255, 255, 0.04);
--color-surface-border: rgba(255, 255, 255, 0.08);
--color-text-primary: #ffffff;
--color-text-secondary: rgba(255, 255, 255, 0.55);
--color-text-tertiary: rgba(255, 255, 255, 0.30);
--color-solar: #fbbf24;
--color-battery: #4ade80;
--color-link: #fbbf24;
--color-link-hover: #fcd34d;
/* iOS-look: body text uses SF Pro (Apple) / system-ui (everywhere
else) so the page feels native rather than monospace-coded. The
display stack is still Nunito for headings — same role as
TOGFont.display on the iOS app. Mono is reserved for only. */
--font-system: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', system-ui, sans-serif;
--font-display: 'Nunito', 'SF Pro Rounded', system-ui, sans-serif;
--font-mono: 'JetBrains Mono', 'SF Mono', 'Menlo', monospace;
--space-sm: 8px;
--space-md: 12px;
--space-lg: 20px;
--space-xl: 32px;
--space-2xl: 48px;
--radius-md: 16px;
--max-content: 720px;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: var(--color-bg);
color: var(--color-text-primary);
font-family: var(--font-system);
font-size: 16px;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: var(--font-mono);
font-size: 0.92em;
background: rgba(255, 255, 255, 0.06);
padding: 1px 6px;
border-radius: 4px;
}
a {
color: var(--color-link);
text-decoration: none;
border-bottom: 1px dotted rgba(251, 191, 36, 0.4);
transition: color 0.15s ease, border-color 0.15s ease;
}
a:hover { color: var(--color-link-hover); border-bottom-color: var(--color-link-hover); }
main {
max-width: var(--max-content);
margin: 0 auto;
padding: var(--space-2xl) var(--space-lg);
}
header.brand {
display: flex;
align-items: center;
gap: var(--space-md);
margin-bottom: var(--space-2xl);
}
header.brand img {
width: 56px;
height: 56px;
}
header.brand h1 {
font-family: var(--font-display);
font-size: 32px;
font-weight: 800;
margin: 0;
letter-spacing: -0.02em;
}
h2 {
font-family: var(--font-display);
font-size: 22px;
font-weight: 700;
margin: var(--space-2xl) 0 var(--space-md);
letter-spacing: -0.01em;
}
h3 {
font-family: var(--font-display);
font-size: 17px;
font-weight: 700;
margin: var(--space-xl) 0 var(--space-sm);
color: var(--color-solar);
}
p { margin: 0 0 var(--space-md); color: var(--color-text-secondary); }
p strong, li strong { color: var(--color-text-primary); font-weight: 600; }
ul {
margin: 0 0 var(--space-md);
padding-left: var(--space-lg);
}
ul li { color: var(--color-text-secondary); margin-bottom: var(--space-sm); }
hr {
border: none;
border-top: 1px solid var(--color-surface-border);
margin: var(--space-2xl) 0;
}
.tagline {
font-family: var(--font-display);
font-size: 22px;
font-weight: 800;
color: var(--color-solar);
letter-spacing: -0.01em;
margin: 0 0 var(--space-lg);
}
.lead {
font-size: 18px;
color: var(--color-text-primary);
line-height: 1.55;
margin-bottom: var(--space-xl);
}
.meta {
font-size: 12px;
color: var(--color-text-tertiary);
text-transform: uppercase;
letter-spacing: 0.08em;
}
.cta-row {
display: flex;
flex-wrap: wrap;
gap: var(--space-md);
margin: var(--space-xl) 0;
}
.btn {
display: inline-flex;
align-items: center;
gap: var(--space-sm);
padding: 12px 20px;
font-family: var(--font-mono);
font-size: 14px;
font-weight: 600;
border-radius: 12px;
border: 1px solid var(--color-surface-border);
background: var(--color-surface);
color: var(--color-text-primary);
text-decoration: none;
transition: border-color 0.15s ease, background 0.15s ease;
}
.btn:hover {
border-color: rgba(251, 191, 36, 0.4);
background: rgba(251, 191, 36, 0.06);
}
.btn--primary {
background: var(--color-solar);
border-color: var(--color-solar);
color: #000;
}
.btn--primary:hover {
background: #fcd34d;
border-color: #fcd34d;
}
footer {
margin-top: var(--space-2xl);
padding-top: var(--space-lg);
border-top: 1px solid var(--color-surface-border);
font-size: 12px;
color: var(--color-text-tertiary);
display: flex;
flex-wrap: wrap;
gap: var(--space-md);
justify-content: space-between;
}
footer a { color: var(--color-text-secondary); border-bottom: none; }
footer a:hover { color: var(--color-text-primary); }
/* Subtle radial glow in the background — matches the iOS glass cards */
body::before {
content: '';
position: fixed;
inset: 0;
background:
radial-gradient(circle at 20% 0%, rgba(251, 191, 36, 0.06), transparent 45%),
radial-gradient(circle at 80% 90%, rgba(74, 222, 128, 0.04), transparent 50%);
pointer-events: none;
z-index: -1;
}