| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- @import "tailwindcss";
- /*
- * krypco design tokens — brand-led, dark, calm, premium.
- * Accents come from the official mark (magenta / blue / green).
- * Components use tokens only — never hardcode hex in JSX.
- */
- @theme {
- /* Surfaces — near-black zinc layering */
- --color-background: #07070a;
- --color-card: #0e0e12;
- --color-popover: #121218;
- --color-border: #23232c;
- --color-input: #2a2a34;
- /* Text */
- --color-foreground: #f4f4f5;
- --color-muted: #14141a;
- --color-muted-foreground: #9b9ba8;
- /* Brand primary — logo magenta #952082 */
- --color-accent: #952082;
- --color-accent-hover: #b0289a;
- --color-accent-foreground: #fff7fc;
- --color-accent-muted: rgb(149 32 130 / 0.16);
- /* Public-proof secondary — logo green */
- --color-proof: #009d63;
- --color-proof-hover: #1bb57a;
- --color-proof-muted: rgb(0 157 99 / 0.14);
- /* Depth / trust blue from mark */
- --color-depth: #004f8d;
- --color-depth-muted: rgb(0 79 141 / 0.18);
- /* Status — chain semantics */
- --color-pending: #e8b84a;
- --color-pending-muted: rgb(232 184 74 / 0.12);
- --color-confirmed: #34d399;
- --color-confirmed-muted: rgb(52 211 153 / 0.12);
- --color-anchored: #5b9fd4;
- --color-anchored-muted: rgb(91 159 212 / 0.14);
- /* Shape */
- --radius-sm: 0.375rem;
- --radius-md: 0.5rem;
- --radius-lg: 0.75rem;
- --radius-xl: 1rem;
- --radius-2xl: 1.25rem;
- }
- @theme inline {
- --font-sans: var(--font-body), ui-sans-serif, system-ui, sans-serif;
- --font-display: var(--font-display), ui-sans-serif, system-ui, sans-serif;
- --font-mono: var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;
- }
- :root {
- color-scheme: dark;
- }
- body {
- background: var(--color-background);
- color: var(--color-foreground);
- font-family: var(--font-sans);
- }
- /* Subtle grain — atmosphere without purple blob clichés */
- body::before {
- content: "";
- pointer-events: none;
- position: fixed;
- inset: 0;
- z-index: 50;
- opacity: 0.035;
- mix-blend-mode: overlay;
- 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");
- }
- /* Phones / reduced motion: drop grain (cheaper paint) */
- @media (max-width: 640px), (prefers-reduced-motion: reduce) {
- body::before {
- display: none;
- }
- }
- /* Comfortable tap targets on small screens */
- @media (max-width: 640px) {
- input,
- textarea,
- select {
- font-size: 16px; /* avoids iOS zoom-on-focus */
- }
- }
- ::selection {
- background: var(--color-accent);
- color: var(--color-accent-foreground);
- }
- /* Display type utility */
- .font-display {
- font-family: var(--font-display);
- }
- /* Marketing section rhythm */
- .section-pad {
- padding-block: clamp(4rem, 10vw, 7.5rem);
- }
- .prose-measure {
- max-width: 38rem;
- }
- /* Hybrid journey connector line */
- .journey-line {
- background: linear-gradient(
- 90deg,
- var(--color-accent) 0%,
- var(--color-depth) 50%,
- var(--color-proof) 100%
- );
- }
- @media (prefers-reduced-motion: reduce) {
- *,
- *::before,
- *::after {
- animation-duration: 0.01ms !important;
- animation-iteration-count: 1 !important;
- transition-duration: 0.01ms !important;
- }
- }
|