/* * stables.css - Shared Design System * Source of truth: live site https://stablescouncil.github.io/ (fetched 2026-03-11) * All tokens and component styles are extracted verbatim from the live site CSS. * Never override these values locally. Never duplicate these rules. * * Usage: */ /* ───────────────────────────────────────── 1. GOOGLE FONTS (same as live site) ───────────────────────────────────────── */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;900&display=swap'); /* ───────────────────────────────────────── 2. DESIGN TOKENS (exact from live site :root) ───────────────────────────────────────── */ :root { --bg: #0b0f14; --panel: #101826; --text-primary: #e6edf3; --text-secondary: #9fb0c0; --accent-cyan: #67e8f9; --accent-purple: #a78bfa; --accent-pink: #f472b6; --accent-amber: #fbbf24; /* Aliases (for compatibility) */ --text: #e6edf3; --muted: #9fb0c0; --accent: #67e8f9; --glow: rgba(103, 232, 249, 0.15); --container-pad: clamp(1rem, 5vw, 2.5rem); --section-gap: clamp(2rem, 10vw, 6.25rem); } /* ───────────────────────────────────────── 3. RESET ───────────────────────────────────────── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } /* ───────────────────────────────────────── 4. BASE (exact from live site body) ───────────────────────────────────────── */ body { font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; background-color: var(--bg); color: var(--text-primary); line-height: 1.6; overflow-x: hidden; } /* ───────────────────────────────────────── 5. BUTTONS ← exact from live site Source: stablescouncil.github.io CSS lines 297–340 ───────────────────────────────────────── */ /* .buttons is the HTML alias; .btn-group is the canonical class - both work */ .btn-group, .buttons { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; } .btn { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 220px; height: 64px; border-radius: 16px; text-decoration: none; font-weight: 600; font-size: 16px; font-family: inherit; transition: all 0.3s ease; cursor: pointer; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(103, 232, 249, 0.3); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 40px rgba(103, 232, 249, 0.15); } .btn:hover { transform: translateY(-2px); box-shadow: 0 25px 70px rgba(0, 0, 0, 0.6), 0 0 50px rgba(103, 232, 249, 0.25); border-color: rgba(103, 232, 249, 0.5); } /* Primary: cyan-purple gradient, light text */ .btn-primary { background: linear-gradient(135deg, rgba(103, 232, 249, 0.3), rgba(167, 139, 250, 0.3)) !important; color: #e6edf3 !important; } .btn-primary:hover { background: linear-gradient(135deg, rgba(103, 232, 249, 0.4), rgba(167, 139, 250, 0.4)) !important; } /* Choice: neutral peer option, same weight for every option in the group */ .btn-choice { background: rgba(15, 23, 42, 0.6) !important; color: #e6edf3 !important; border: 1px solid rgba(103, 232, 249, 0.3) !important; } .btn-choice:hover { background: rgba(15, 23, 42, 0.8) !important; border-color: rgba(103, 232, 249, 0.5) !important; } /* Secondary: dark semi-transparent, cyan border, light text */ .btn-secondary { background: rgba(15, 23, 42, 0.6) !important; color: #e6edf3 !important; border: 1px solid rgba(103, 232, 249, 0.3) !important; } .btn-secondary:hover { background: rgba(15, 23, 42, 0.8) !important; border-color: rgba(103, 232, 249, 0.5) !important; } /* Danger: destructive or risk action */ .btn-danger { background: rgba(239, 68, 68, 0.12) !important; color: #e6edf3 !important; border: 1px solid rgba(239, 68, 68, 0.34) !important; } .btn-danger:hover { background: rgba(239, 68, 68, 0.18) !important; border-color: rgba(239, 68, 68, 0.52) !important; } /* Disabled / soon: unavailable action */ .btn-disabled, .btn[aria-disabled="true"] { background: rgba(24, 34, 52, 0.52) !important; color: rgba(159, 176, 192, 0.68) !important; border: 1px solid rgba(148, 163, 184, 0.16) !important; cursor: not-allowed !important; opacity: 0.72; } /* Link action: opens a page, document, or reference */ .btn-link-action { background: rgba(103, 232, 249, 0.08) !important; color: #67e8f9 !important; border: 1px solid rgba(103, 232, 249, 0.28) !important; } .btn-label { font-size: 11px; font-weight: 400; opacity: 0.6; } @media (max-width: 768px) { .btn-group { flex-direction: column; } .btn { width: 100%; justify-content: center; } } /* ───────────────────────────────────────── 6. BADGE (from live site) ───────────────────────────────────────── */ .badge { display: inline-block; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); padding: 6px 14px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: 1.5px; color: var(--accent-cyan); text-transform: uppercase; margin-bottom: 24px; } .badge-growth { color: var(--accent-purple); } .badge-business { color: var(--accent-amber); } /* ───────────────────────────────────────── 7. LAYOUT ───────────────────────────────────────── */ .container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 var(--container-pad); } /* ───────────────────────────────────────── 8. PANEL / CARD (from live site mockup-frame) ───────────────────────────────────────── */ .panel { background: var(--panel); border: 1px solid rgba(255,255,255,0.1); border-radius: 24px; box-shadow: 0 40px 100px rgba(0,0,0,0.5); } /* ───────────────────────────────────────── 9. DEMO LAUNCH DISCLAIMER MODAL (homepage + links page) Shared so the two pages cannot drift; spacing follows the rhythm. ───────────────────────────────────────── */ .demo-launch-overlay { display: none; position: fixed; inset: 0; z-index: 10000; align-items: center; justify-content: center; padding: 20px; background: rgba(0, 0, 0, 0.74); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); } .demo-launch-overlay.open { display: flex; } .demo-launch-card { max-width: 560px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 24px 22px; border: 1px solid rgba(251, 191, 36, 0.45); border-radius: 18px; background: linear-gradient(180deg, rgba(251, 191, 36, 0.08), rgba(11, 15, 20, 0.98)); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.65); } .demo-launch-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; } .demo-launch-title { font-size: 1.3rem; font-weight: 900; line-height: 1.25; color: #fff; } .demo-launch-close { flex-shrink: 0; padding: 0 2px; border: none; background: none; color: var(--accent-amber); font-size: 26px; line-height: 1; cursor: pointer; } .demo-launch-warn { margin-bottom: 18px; padding: 14px 16px; border: 1px solid rgba(251, 191, 36, 0.35); border-radius: 12px; background: rgba(251, 191, 36, 0.06); } .demo-launch-warn-label { margin-bottom: 8px; font-size: 0.85rem; font-weight: 900; letter-spacing: 0.04em; color: var(--accent-amber); } .demo-launch-warn p { margin: 0 0 10px; font-size: 0.95rem; line-height: 1.6; color: var(--text-primary); } .demo-launch-warn p:last-child { margin-bottom: 0; } .demo-launch-warn p.muted { font-size: 0.92rem; color: var(--text-secondary); } .demo-launch-warn strong { color: #fff; } .demo-launch-warn a { color: var(--accent-cyan); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; } .demo-launch-lead { margin: 0 0 16px; font-weight: 800; text-align: center; color: #fff; } .demo-launch-options { display: flex; flex-direction: column; gap: 20px; } .demo-launch-option { display: flex; flex-direction: column; align-items: center; gap: 9px; } .demo-launch-option p { margin: 0; font-size: 0.85rem; line-height: 1.5; text-align: center; color: var(--text-secondary); } .demo-launch-option p strong { color: var(--text-primary); } .demo-launch-badge { display: inline-block; padding: 1px 8px; border: 1px solid rgba(103, 232, 249, 0.4); border-radius: 999px; font-size: 0.7rem; font-weight: 900; letter-spacing: 0.04em; color: var(--accent-cyan); vertical-align: 1px; } .demo-launch-option .btn { width: auto; min-width: 240px; max-width: 100%; white-space: normal; text-align: center; text-decoration: none; }