/* Custom styles that extend beyond Tailwind */

:root {
    --terracotta-50: #fbf4f1;
    --terracotta-100: #f5e6df;
    --terracotta-200: #ebc8bb;
    --terracotta-300: #e0a48e;
    --terracotta-400: #d47e5e;
    --terracotta-500: #c4613b;
    --terracotta-600: #a84c2d;
    --terracotta-700: #8a3d26;
    --terracotta-800: #703323;
    --terracotta-900: #5c2c20;
    --terracotta-950: #31130d;
    --sand-100: #faf6ef;
    --sand-200: #f3ebd7;
    --sand-300: #e8d7b0;
}

/* Base typography refinements */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.font-serif {
    line-height: 1.1;
}

/* Subtle texture overlay for cream sections */
.bg-cream {
    background-image: radial-gradient(ellipse at top left, rgba(235, 200, 187, 0.08) 0%, transparent 60%);
}

.bg-warm {
    background-image: radial-gradient(ellipse at bottom right, rgba(235, 200, 187, 0.1) 0%, transparent 60%);
}

/* Focus styles for accessibility */
a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--terracotta-500);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Selection color */
::selection {
    background: var(--terracotta-200);
    color: var(--terracotta-900);
}

/* Smooth image loading */
img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Print styles */
@media print {
    .fade-section {
        opacity: 1 !important;
        transform: none !important;
    }
    #navbar, .mobile-menu {
        display: none;
    }
}
