@tailwind base; @tailwind components; @tailwind utilities; /* ─── Reset ──────────────────────────────────────────────────────────── */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', -apple-system, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; background: #ffffff; color: #0a0b0d; overflow: hidden; height: 100vh; -webkit-app-region: drag; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } button, input, select, textarea, a, label { -webkit-app-region: no-drag; } /* ─── Scrollbar ──────────────────────────────────────────────────────── */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #dee1e6; border-radius: 100px; } ::-webkit-scrollbar-thumb:hover { background: #7c828a; } /* ─── Display Type (Inter as CoinbaseDisplay substitute) ─────────────── */ .display-text { font-family: 'Inter', sans-serif; font-weight: 400; letter-spacing: -0.02em; } /* ─── Mono Numbers ───────────────────────────────────────────────────── */ .number-mono { font-family: 'JetBrains Mono', 'Geist Mono', monospace; font-weight: 500; font-variant-numeric: tabular-nums; } /* ═══ COINBASE BUTTON SYSTEM ═════════════════════════════════════════ */ .btn-primary { @apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-on-primary rounded-pill transition-colors; background-color: #0052ff; } .btn-primary:hover { background-color: #003ecc; } .btn-primary:active { background-color: #003ecc; } .btn-primary:disabled { background-color: #a8b8cc; cursor: not-allowed; } .btn-primary-lg { @apply inline-flex items-center justify-center px-8 py-4 text-button font-semibold text-on-primary rounded-pill transition-colors; background-color: #0052ff; height: 56px; } .btn-primary-lg:hover { background-color: #003ecc; } .btn-secondary { @apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-ink bg-surface-strong rounded-pill transition-colors; } .btn-secondary:hover { background-color: #dee1e6; } .btn-secondary-dark { @apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-on-dark rounded-pill transition-colors; background-color: #16181c; } .btn-secondary-dark:hover { background-color: #1e2025; } .btn-outline-dark { @apply inline-flex items-center justify-center px-5 py-3 text-button font-semibold text-on-dark rounded-pill transition-colors border border-white/30 bg-transparent; } .btn-outline-dark:hover { border-color: #ffffff; } .btn-text { @apply inline-flex items-center justify-center px-2 py-1 font-semibold rounded-pill transition-colors bg-transparent; color: #0052ff; font-size: 16px; } .btn-text:hover { background-color: rgba(0, 82, 255, 0.06); } /* ═══ COINBASE CARDS ═════════════════════════════════════════════════ */ .card { @apply bg-canvas rounded-xl p-xl; border: 1px solid #dee1e6; } .card-flat { @apply bg-canvas rounded-xl p-xl; } .card-dark { @apply rounded-xl p-xl; background: #16181c; color: #ffffff; } /* ═══ COINBASE FORMS ═════════════════════════════════════════════════ */ .input-field { @apply w-full px-4 py-3.5 text-body-md bg-canvas text-ink rounded-md transition-all; border: 1px solid #dee1e6; height: 48px; } .input-field:focus { outline: none; border-color: #0052ff; border-width: 2px; padding-left: 15px; /* compensate for 2px border */ } .input-field::placeholder { color: #7c828a; } .search-pill { @apply w-full px-5 py-3 text-body-sm bg-surface-strong text-ink rounded-pill transition-all; height: 44px; border: none; } .search-pill:focus { outline: none; box-shadow: 0 0 0 2px #0052ff; } /* ═══ BADGE PILLS ════════════════════════════════════════════════════ */ .badge-pill { @apply inline-flex items-center px-2.5 py-0.5 rounded-pill text-caption-strong uppercase tracking-wider; background: #eef0f3; color: #0a0b0d; } .badge-pill-blue { background: rgba(0, 82, 255, 0.08); color: #0052ff; } .badge-pill-green { background: rgba(5, 177, 105, 0.08); color: #05b169; } .badge-pill-red { background: rgba(207, 32, 47, 0.08); color: #cf202f; } /* ═══ DARK HERO BAND ═════════════════════════════════════════════════ */ .hero-band-dark { background: #0a0b0d; color: #ffffff; padding: 96px 0; } /* ═══ ASSET ROW ══════════════════════════════════════════════════════ */ .asset-row { @apply flex items-center py-4 transition-colors; border-bottom: 1px solid #eef0f3; } .asset-row:hover { background: #f7f7f7; } .asset-row:last-child { border-bottom: none; } .asset-icon { @apply flex items-center justify-center rounded-full; width: 32px; height: 32px; background: #eef0f3; } /* ═══ HAIRLINE DIVIDER ═══════════════════════════════════════════════ */ .hairline { @apply w-full; height: 1px; background: #dee1e6; } .hairline-soft { @apply w-full; height: 1px; background: #eef0f3; } /* ═══ PAGE TRANSITIONS ═══════════════════════════════════════════════ */ .page-enter { animation: page-fade 0.25s ease-out; } @keyframes page-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } /* ═══ TOGGLE SWITCH ══════════════════════════════════════════════════ */ .toggle { @apply relative inline-flex items-center cursor-pointer; width: 44px; height: 24px; } .toggle-track { @apply w-full h-full rounded-full transition-colors; background: #dee1e6; } .toggle-track.active { background: #0052ff; } .toggle-thumb { @apply absolute w-5 h-5 rounded-full bg-white shadow-soft transition-all; top: 2px; left: 2px; } .toggle-thumb.active { left: 22px; } /* ═══ SECTION RHYTHM ═════════════════════════════════════════════════ */ .section-light { @apply bg-canvas; padding: 96px 0; } .section-soft { @apply bg-surface-soft; padding: 96px 0; } .section-dark { background: #0a0b0d; color: #ffffff; padding: 96px 0; }