@import "tailwindcss"; @theme { /* Polished & Sleek palette */ --color-primary: #f0f0f0; --color-secondary: #a3a3a3; --color-accent: #3b82f6; --color-accent-light: #60a5fa; --color-accent-glow: rgba(59, 130, 246, 0.15); --color-surface: #131619; --color-surface-elevated: #181c20; --color-surface-card: #1d2127; --color-surface-hover: #252a31; --color-border: rgba(255, 255, 255, 0.09); --color-border-hover: rgba(59, 130, 246, 0.3); --color-muted: #8a8f96; --color-text-dim: #636972; --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, monospace; } html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font-sans); overflow-x: hidden; background-color: var(--color-surface); color: var(--color-primary); } ::selection { background-color: var(--color-accent); color: white; } /* Custom scrollbar - dark */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #3a3f47; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #5a6170; } /* Image loading placeholder - dark */ img:not(.logo-silhouette) { background-color: #1a1e23; } /* Smooth focus outlines for accessibility */ :focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: 4px; } /* Gradient text utility */ .text-gradient { background: linear-gradient(135deg, var(--color-accent), var(--color-accent-light)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Glow utilities */ .glow-accent { box-shadow: 0 0 20px var(--color-accent-glow), 0 0 60px rgba(59, 130, 246, 0.05); } .glow-accent-sm { box-shadow: 0 0 10px var(--color-accent-glow); } .border-glow:hover { border-color: var(--color-border-hover); box-shadow: 0 0 20px var(--color-accent-glow), inset 0 0 20px rgba(59, 130, 246, 0.03); } /* Smooth section transitions */ section { position: relative; } /* Improved link underline animation */ .link-hover-underline { position: relative; } .link-hover-underline::after { content: ""; position: absolute; bottom: -2px; left: 0; width: 0; height: 1px; background-color: var(--color-accent); transition: width 0.3s ease; } .link-hover-underline:hover::after { width: 100%; } /* Tabular numbers for stats */ .tabular-nums { font-variant-numeric: tabular-nums; } /* Responsive image aspect ratios */ .aspect-project { aspect-ratio: 16 / 10; } /* Noise texture overlay for depth */ .noise-overlay::before { content: ""; position: absolute; inset: 0; opacity: 0.03; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); pointer-events: none; z-index: 1; } /* Print styles */ @media print { nav, .scroll-indicator { display: none !important; } section { break-inside: avoid; page-break-inside: avoid; } }