@import "tailwindcss"; @theme { --color-brand-dark: #0B0D11; --color-brand-panel: #151921; --color-brand-accent: #FFB84C; --color-brand-cyan: #22D3EE; --color-brand-red: #E11D48; --font-sans: "Inter", sans-serif; --font-mono: "Space Mono", monospace; --animate-reveal: reveal 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; @keyframes reveal { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } } @utility text-massive { line-height: 0.9; letter-spacing: -0.04em; } @utility text-stroke { -webkit-text-stroke: 1px rgba(255, 255, 255, 0.1); color: transparent; } @utility skill-tag { @apply text-[10px] font-mono font-bold uppercase tracking-wider px-2 py-2 border border-slate-700 text-slate-400 hover:border-brand-accent hover:text-white transition-colors cursor-default select-none; } @utility btn-primary { @apply bg-brand-accent text-brand-dark px-8 py-4 text-xs font-bold uppercase tracking-widest hover:bg-white transition-colors inline-block; } @utility btn-ghost { @apply border border-slate-600 text-white px-8 py-4 text-xs font-bold uppercase tracking-widest hover:border-brand-accent hover:bg-brand-accent/5 transition-colors inline-block; } @utility grid-overlay { background-size: 100px 100px; background-image: linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px); pointer-events: none; z-index: 0; } /* Base Styles */ body { background-color: var(--color-brand-dark); color: #ffffff; overflow-x: hidden; /* cursor: none; Handled by CustomCursor component logic, but we might want it here if we implement the custom cursor fully */ } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--color-brand-dark); } ::-webkit-scrollbar-thumb { background: #334155; } ::-webkit-scrollbar-thumb:hover { background: var(--color-brand-accent); } /* Reveal Animation Class (handled by JS intersection observer usually, but basic class here) */ .reveal-text { opacity: 0; transform: translateY(20px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); } .reveal-text.active { opacity: 1; transform: translateY(0); } /* Cursor Styles */ .cursor-dot, .cursor-outline { position: fixed; top: 0; left: 0; transform: translate(-50%, -50%); border-radius: 50%; z-index: 9999; pointer-events: none; } .cursor-dot { width: 8px; height: 8px; background-color: var(--color-brand-accent); } .cursor-outline { width: 40px; height: 40px; border: 1px solid rgba(255, 184, 76, 0.5); transition: width 0.2s, height 0.2s, background-color 0.2s; } /* Interactive Elements Cursor Hover Effect */ .hover-trigger:hover ~ .cursor-outline, a:hover ~ .cursor-outline, button:hover ~ .cursor-outline { width: 60px; height: 60px; background-color: rgba(255, 184, 76, 0.05); border-color: var(--color-brand-accent); }