globals.css 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. @import "tailwindcss";
  2. /*
  3. * krypco design tokens — brand-led, dark, calm, premium.
  4. * Accents come from the official mark (magenta / blue / green).
  5. * Components use tokens only — never hardcode hex in JSX.
  6. */
  7. @theme {
  8. /* Surfaces — near-black zinc layering */
  9. --color-background: #07070a;
  10. --color-card: #0e0e12;
  11. --color-popover: #121218;
  12. --color-border: #23232c;
  13. --color-input: #2a2a34;
  14. /* Text */
  15. --color-foreground: #f4f4f5;
  16. --color-muted: #14141a;
  17. --color-muted-foreground: #9b9ba8;
  18. /* Brand primary — logo magenta #952082 */
  19. --color-accent: #952082;
  20. --color-accent-hover: #b0289a;
  21. --color-accent-foreground: #fff7fc;
  22. --color-accent-muted: rgb(149 32 130 / 0.16);
  23. /* Public-proof secondary — logo green */
  24. --color-proof: #009d63;
  25. --color-proof-hover: #1bb57a;
  26. --color-proof-muted: rgb(0 157 99 / 0.14);
  27. /* Depth / trust blue from mark */
  28. --color-depth: #004f8d;
  29. --color-depth-muted: rgb(0 79 141 / 0.18);
  30. /* Status — chain semantics */
  31. --color-pending: #e8b84a;
  32. --color-pending-muted: rgb(232 184 74 / 0.12);
  33. --color-confirmed: #34d399;
  34. --color-confirmed-muted: rgb(52 211 153 / 0.12);
  35. --color-anchored: #5b9fd4;
  36. --color-anchored-muted: rgb(91 159 212 / 0.14);
  37. /* Shape */
  38. --radius-sm: 0.375rem;
  39. --radius-md: 0.5rem;
  40. --radius-lg: 0.75rem;
  41. --radius-xl: 1rem;
  42. --radius-2xl: 1.25rem;
  43. }
  44. @theme inline {
  45. --font-sans: var(--font-body), ui-sans-serif, system-ui, sans-serif;
  46. --font-display: var(--font-display), ui-sans-serif, system-ui, sans-serif;
  47. --font-mono: var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;
  48. }
  49. :root {
  50. color-scheme: dark;
  51. }
  52. body {
  53. background: var(--color-background);
  54. color: var(--color-foreground);
  55. font-family: var(--font-sans);
  56. }
  57. /* Subtle grain — atmosphere without purple blob clichés */
  58. body::before {
  59. content: "";
  60. pointer-events: none;
  61. position: fixed;
  62. inset: 0;
  63. z-index: 50;
  64. opacity: 0.035;
  65. mix-blend-mode: overlay;
  66. background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  67. }
  68. /* Phones / reduced motion: drop grain (cheaper paint) */
  69. @media (max-width: 640px), (prefers-reduced-motion: reduce) {
  70. body::before {
  71. display: none;
  72. }
  73. }
  74. /* Comfortable tap targets on small screens */
  75. @media (max-width: 640px) {
  76. input,
  77. textarea,
  78. select {
  79. font-size: 16px; /* avoids iOS zoom-on-focus */
  80. }
  81. }
  82. ::selection {
  83. background: var(--color-accent);
  84. color: var(--color-accent-foreground);
  85. }
  86. /* Display type utility */
  87. .font-display {
  88. font-family: var(--font-display);
  89. }
  90. /* Marketing section rhythm */
  91. .section-pad {
  92. padding-block: clamp(4rem, 10vw, 7.5rem);
  93. }
  94. .prose-measure {
  95. max-width: 38rem;
  96. }
  97. /* Hybrid journey connector line */
  98. .journey-line {
  99. background: linear-gradient(
  100. 90deg,
  101. var(--color-accent) 0%,
  102. var(--color-depth) 50%,
  103. var(--color-proof) 100%
  104. );
  105. }
  106. @media (prefers-reduced-motion: reduce) {
  107. *,
  108. *::before,
  109. *::after {
  110. animation-duration: 0.01ms !important;
  111. animation-iteration-count: 1 !important;
  112. transition-duration: 0.01ms !important;
  113. }
  114. }