@import "tailwindcss"; @theme { --color-primary: #0a0a0a; --color-secondary: #171717; --color-accent: #3b82f6; --color-accent-light: #60a5fa; --color-surface: #fafafa; --color-surface-dark: #f5f5f5; --color-muted: #737373; --font-sans: var(--font-inter), ui-sans-serif, system-ui, sans-serif; --font-mono: var(--font-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; } ::selection { background-color: var(--color-accent); color: white; } /* Subtle custom scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #d4d4d4; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #a3a3a3; } /* Image loading placeholder - not for logo silhouettes */ img:not(.logo-silhouette) { background-color: #f5f5f5; } /* 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; } /* 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; } /* Print styles */ @media print { nav, .scroll-indicator { display: none !important; } section { break-inside: avoid; page-break-inside: avoid; } }