@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;1,500&display=swap');
@import 'tailwindcss';
@theme {
--color-paper: #15120f;
--color-paper-deep: #1c1712;
--color-ink: #f1e9dc;
--color-ink-soft: #b3a797;
--color-ink-faint: #786c5d;
--color-line: #34291e;
--color-card: #1f1a14;
--color-coral: #f17444;
--color-coral-soft: #3a2015;
--color-teal: #3fa593;
--color-teal-soft: #16302a;
--color-plum: #a285c8;
--color-plum-soft: #281f38;
--color-rose: #e07a83;
--color-rose-soft: #3a1d22;
--font-display: 'Instrument Serif', Georgia, serif;
--font-sans: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
}
@layer base {
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
background: var(--color-paper);
color: var(--color-ink);
font-family: var(--font-sans);
-webkit-font-smoothing: antialiased;
}
}
@layer utilities {
.bg-grain {
background-image:
radial-gradient(circle at 20% 20%, rgba(241, 116, 68, 0.14), transparent 38%),
radial-gradient(circle at 85% 0%, rgba(63, 165, 147, 0.12), transparent 42%),
radial-gradient(circle at 50% 100%, rgba(162, 133, 200, 0.1), transparent 45%);
}
}
@keyframes rise {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: none; }
}
.animate-rise {
animation: rise 0.4s cubic-bezier(0.22, 0.9, 0.27, 1) both;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0.35; }
}
.animate-blink {
animation: blink 1.2s ease-in-out infinite;
}
@keyframes loading-sweep {
0% { transform: translateX(-110%); }
100% { transform: translateX(330%); }
}
.animate-loading-sweep {
animation: loading-sweep 1.4s ease-in-out infinite;
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-thumb {
background: var(--color-line);
border-radius: 999px;
}
::-webkit-scrollbar-track {
background: transparent;
}