@import "tailwindcss"; @import "tw-animate-css"; @custom-variant dark (&:is(.dark *)); /* ============================================================ NAC XIC Token Presale — Global Theme Design: Dark Cyberpunk / Quantum Finance Colors: Amber Gold #f0b429 | Quantum Blue #00d4ff | Deep Black #0a0a0f Fonts: Space Grotesk (headings) | JetBrains Mono (numbers) | DM Sans (body) ============================================================ */ @theme inline { --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); } /* Dark theme — NAC Cyberpunk palette */ :root { --radius: 0.75rem; --background: oklch(0.08 0.005 280); --foreground: oklch(0.92 0.005 80); --card: oklch(0.11 0.006 280); --card-foreground: oklch(0.92 0.005 80); --popover: oklch(0.11 0.006 280); --popover-foreground: oklch(0.92 0.005 80); --primary: oklch(0.78 0.18 75); /* Amber Gold */ --primary-foreground: oklch(0.08 0.005 280); --secondary: oklch(0.15 0.006 280); --secondary-foreground: oklch(0.75 0.005 80); --muted: oklch(0.15 0.006 280); --muted-foreground: oklch(0.55 0.01 280); --accent: oklch(0.7 0.2 210); /* Quantum Blue */ --accent-foreground: oklch(0.08 0.005 280); --destructive: oklch(0.65 0.22 25); --destructive-foreground: oklch(0.985 0 0); --border: oklch(1 0 0 / 8%); --input: oklch(1 0 0 / 10%); --ring: oklch(0.78 0.18 75); --chart-1: oklch(0.78 0.18 75); --chart-2: oklch(0.7 0.2 210); --chart-3: oklch(0.65 0.22 25); --chart-4: oklch(0.75 0.15 150); --chart-5: oklch(0.7 0.18 300); --sidebar: oklch(0.11 0.006 280); --sidebar-foreground: oklch(0.92 0.005 80); --sidebar-primary: oklch(0.78 0.18 75); --sidebar-primary-foreground: oklch(0.08 0.005 280); --sidebar-accent: oklch(0.15 0.006 280); --sidebar-accent-foreground: oklch(0.92 0.005 80); --sidebar-border: oklch(1 0 0 / 8%); --sidebar-ring: oklch(0.78 0.18 75); } /* Force dark mode globally */ .dark { --background: oklch(0.08 0.005 280); --foreground: oklch(0.92 0.005 80); --card: oklch(0.11 0.006 280); --card-foreground: oklch(0.92 0.005 80); } @layer base { * { @apply border-border outline-ring/50; } html { color-scheme: dark; } body { @apply bg-background text-foreground; font-family: 'DM Sans', system-ui, sans-serif; background-color: #0a0a0f; color: rgba(255, 255, 255, 0.87); -webkit-font-smoothing: antialiased; } button:not(:disabled), [role="button"]:not([aria-disabled="true"]), a[href] { @apply cursor-pointer; } } @layer components { .container { width: 100%; margin-left: auto; margin-right: auto; padding-left: 1rem; padding-right: 1rem; } .flex { min-height: 0; min-width: 0; } @media (min-width: 640px) { .container { padding-left: 1.5rem; padding-right: 1.5rem; } } @media (min-width: 1024px) { .container { padding-left: 2rem; padding-right: 2rem; max-width: 1280px; } } /* ── NAC Card ── */ .nac-card { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.07); backdrop-filter: blur(8px); transition: border-color 0.2s ease; } .nac-card:hover { border-color: rgba(240, 180, 41, 0.15); } /* ── NAC Card Blue ── */ .nac-card-blue { background: rgba(0, 212, 255, 0.04); border: 1px solid rgba(0, 212, 255, 0.15); } /* ── Amber Glow Effect ── */ .amber-glow { box-shadow: 0 0 40px rgba(240, 180, 41, 0.06), 0 0 80px rgba(240, 180, 41, 0.03); } /* ── Amber Text Glow ── */ .amber-text-glow { text-shadow: 0 0 20px rgba(240, 180, 41, 0.4); } /* ── Counter / Monospace Numbers ── */ .counter-digit { font-family: 'JetBrains Mono', 'Courier New', monospace; font-variant-numeric: tabular-nums; } /* ── TRC20 Address Display ── */ .trc20-address { font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; word-break: break-all; color: rgba(0, 212, 255, 0.9); line-height: 1.6; } /* ── Primary Button ── */ .btn-primary-nac { background: linear-gradient(135deg, #f0b429 0%, #ffd700 50%, #f0b429 100%); color: #0a0a0f; font-weight: 700; border: none; transition: all 0.2s ease; position: relative; overflow: hidden; } .btn-primary-nac::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 100%); opacity: 0; transition: opacity 0.2s; } .btn-primary-nac:hover:not(:disabled)::before { opacity: 1; } .btn-primary-nac:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(240, 180, 41, 0.35); } .btn-primary-nac:active:not(:disabled) { transform: translateY(0); } .btn-primary-nac:disabled { opacity: 0.4; cursor: not-allowed; } /* ── Secondary Button ── */ .btn-secondary-nac { background: rgba(240, 180, 41, 0.1); color: #f0b429; border: 1px solid rgba(240, 180, 41, 0.3); font-weight: 600; transition: all 0.2s ease; } .btn-secondary-nac:hover { background: rgba(240, 180, 41, 0.18); border-color: rgba(240, 180, 41, 0.5); } /* ── Input Field ── */ .input-nac { background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.9); outline: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; } .input-nac:focus { border-color: rgba(240, 180, 41, 0.5); box-shadow: 0 0 0 3px rgba(240, 180, 41, 0.08); } .input-nac::placeholder { color: rgba(255, 255, 255, 0.25); } .input-nac::-webkit-inner-spin-button, .input-nac::-webkit-outer-spin-button { -webkit-appearance: none; } /* ── Network Tab ── */ .network-tab { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.07); color: rgba(255, 255, 255, 0.55); transition: all 0.2s ease; cursor: pointer; } .network-tab:hover { background: rgba(240, 180, 41, 0.06); border-color: rgba(240, 180, 41, 0.2); color: rgba(255, 255, 255, 0.8); } .network-tab.active { background: rgba(240, 180, 41, 0.1); border-color: rgba(240, 180, 41, 0.4); color: #f0b429; box-shadow: 0 0 16px rgba(240, 180, 41, 0.12); } /* ── Progress Bar ── */ .progress-bar-animated { background: linear-gradient(90deg, #f0b429, #ffd700, #f0b429); background-size: 200% 100%; animation: shimmer 2s linear infinite; box-shadow: 0 0 12px rgba(240, 180, 41, 0.4); } /* ── Step Number Badge ── */ .step-num { width: 22px; height: 22px; min-width: 22px; border-radius: 50%; background: rgba(240, 180, 41, 0.15); border: 1px solid rgba(240, 180, 41, 0.4); color: #f0b429; font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; justify-content: center; font-family: 'Space Grotesk', sans-serif; } /* ── Hex Background Pattern ── */ .hex-bg { background-image: radial-gradient(circle at 20% 50%, rgba(240, 180, 41, 0.04) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(0, 212, 255, 0.04) 0%, transparent 50%); } /* ── Scan Line Effect ── */ .scan-line { position: relative; overflow: hidden; } .scan-line::after { content: ''; position: absolute; top: -100%; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(240, 180, 41, 0.3), transparent); animation: scan 4s linear infinite; } /* ── Pulse Amber ── */ .pulse-amber { animation: pulseAmber 2s ease-in-out infinite; } /* ── Fade In Up ── */ .fade-in-up { animation: fadeInUp 0.6s ease-out; } } /* ── Keyframes ── */ @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } @keyframes scan { 0% { top: -2px; } 100% { top: 102%; } } @keyframes pulseAmber { 0%, 100% { box-shadow: 0 4px 20px rgba(240, 180, 41, 0.25); } 50% { box-shadow: 0 4px 32px rgba(240, 180, 41, 0.5); } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }