/* Portal global styles — loaded after Mantine's CSS, no Tailwind preflight so it never fights Mantine's base styles. */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); :root { --ema-surface-light: #f5f8fc; --ema-surface-dark: #0e1521; } body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } /* Tinted app background that adapts to the color scheme. */ [data-mantine-color-scheme='light'] body { background-color: var(--ema-surface-light); } [data-mantine-color-scheme='dark'] body { background-color: var(--ema-surface-dark); } [data-mantine-color-scheme] body { transition: background-color 200ms ease; } /* ---- Motion utilities ---------------------------------------------------- */ @keyframes ema-fade-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } .ema-page-enter { animation: ema-fade-up 320ms cubic-bezier(0.22, 1, 0.36, 1) both; } /* Subtle lift on interactive cards. */ .ema-hover-lift { transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease; } .ema-hover-lift:hover { transform: translateY(-3px); } @media (prefers-reduced-motion: reduce) { .ema-page-enter, .ema-hover-lift { animation: none; transition: none; } }