@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: #faf5ee;
--color-paper-deep: #f1e9dc;
--color-ink: #221d18;
--color-ink-soft: #6b6259;
--color-ink-faint: #a89e92;
--color-line: #e6dccb;
--color-card: #fffdfa;
--color-coral: #e8602f;
--color-coral-soft: #fce3d6;
--color-teal: #1f6f63;
--color-teal-soft: #dcefe9;
--color-plum: #6c4f8c;
--color-plum-soft: #ece3f3;
--color-rose: #c8505b;
--color-rose-soft: #f8dde0;
--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(232, 96, 47, 0.07), transparent 38%),
radial-gradient(circle at 85% 0%, rgba(31, 111, 99, 0.06), transparent 42%),
radial-gradient(circle at 50% 100%, rgba(108, 79, 140, 0.05), 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;
}