/* * 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; }