/** * Shared styles for static error pages (404, 410). * Uses same theme tokens and local fonts as the main site. * Linked from 404.html and 410.html; Critters inlines critical CSS at build time. */ /* Theme: light (default) — matches src/app.css :root */ :root { color-scheme: light dark; --ep-bg: #ffffff; --ep-bg-alt: #faf9ff; --ep-text: #14121a; --ep-text-secondary: #3f3a4a; --ep-primary: #6d28d9; --ep-primary-hover: #5b21b6; --ep-font: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; --ep-font-heading: 'Fraunces', ui-serif, Georgia, 'Times New Roman', serif; --ep-size-base: 18px; --ep-line-height: 1.75; } /* Theme: dark — matches src/app.css @media (prefers-color-scheme: dark) */ @media (prefers-color-scheme: dark) { :root { --ep-bg: #0b0b12; --ep-bg-alt: #121226; --ep-text: #f3f2ff; --ep-text-secondary: #c9c6e4; --ep-primary: #a78bfa; --ep-primary-hover: #c4b5fd; } } /* Local fonts — same paths as +layout.svelte preloads */ @font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/inter-v20-latin-regular.woff2') format('woff2'); } @font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/inter-v20-latin-500.woff2') format('woff2'); } @font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/fraunces-v38-latin-600.woff2') format('woff2'); } /* Error page layout */ .error-page { margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center; font-family: var(--ep-font); font-size: var(--ep-size-base); line-height: var(--ep-line-height); color: var(--ep-text); background-color: var(--ep-bg-alt); } .error-page main { text-align: center; padding: 2rem 1.5rem; max-width: 28rem; } .error-page .emoji { font-size: 4rem; margin-bottom: 0.5rem; } .error-page h1 { font-family: var(--ep-font-heading); font-size: 2rem; font-weight: 600; margin: 0 0 0.75rem; color: var(--ep-text); } .error-page p { margin: 0 0 1.5rem; color: var(--ep-text-secondary); } .error-page a { color: var(--ep-primary); font-weight: 500; text-decoration: none; } .error-page a:hover { color: var(--ep-primary-hover); text-decoration: underline; } .error-page a:focus-visible { outline: 2px solid var(--ep-primary); outline-offset: 2px; }