/* Custom Properties Mapping */
:root {
--ochre-earth: #C36428;
--acacia-green: #2D5A27;
--savanna-gold: #E6AF2E;
--deep-charcoal: #1A1A1A;
--warm-cream: #FAF9F6;
--ease-premium: cubic-bezier(0.16, 1, 0.3, 1);
}
/* Base Overrides for clean start */
html {
scroll-behavior: smooth;
}
/* Texture Overlay - SVG Grain */
.grain-overlay {
position: fixed;
inset: 0;
z-index: 9999;
pointer-events: none;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.035'/%3E%3C/svg%3E");
}
/* Glassmorphism Header */
.glass-header {
background: rgba(250, 249, 246, 0.8);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(195, 100, 40, 0.15);
}
/* Scrolled Header State */
.glass-header.scrolled {
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
}
/* Mesh Gradient Hero Background */
.mesh-bg {
background-color: var(--warm-cream);
background-image:
radial-gradient(circle at 10% 20%, rgba(195, 100, 40, 0.12) 0%, transparent 40%),
radial-gradient(circle at 90% 80%, rgba(45, 90, 39, 0.08) 0%, transparent 50%),
radial-gradient(circle at 50% 50%, rgba(250, 249, 246, 1) 0%, transparent 100%);
}
/* Interactive CTA Lift Effect */
.hover-lift {
transition: all 0.4s var(--ease-premium);
will-change: transform, background-color, box-shadow;
}
.hover-lift:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px -5px rgba(195, 100, 40, 0.3);
background-color: #a8531f; /* Darker Ochre */
}
/* Impact Card Styling */
.impact-card {
background: #ffffff;
border: 1px solid rgba(195, 100, 40, 0.05);
border-radius: 16px;
padding: 32px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
transition: transform 0.5s var(--ease-premium), box-shadow 0.5s var(--ease-premium);
}
.impact-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 30px rgba(195, 100, 40, 0.06);
}
/* Program Card Styling */
.program-card {
transition: transform 0.6s var(--ease-premium);
cursor: pointer;
border-radius: 16px;
}
.program-card:hover {
transform: translateY(-6px);
}
.program-card > div:last-child {
transition: box-shadow 0.6s var(--ease-premium);
}
.program-card:hover > div:last-child {
box-shadow: 0 20px 40px -10px rgba(0,0,0,0.08);
}
/* Scroll Reveal Animation Classes */
.reveal {
opacity: 0;
transform: translateY(40px);
transition: opacity 0.8s var(--ease-premium), transform 0.8s var(--ease-premium);
will-change: opacity, transform;
}
.reveal.active {
opacity: 1;
transform: translateY(0);
}
/* Bento Grid Layout System */
.bento-grid {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-auto-rows: 200px;
gap: 20px;
}
.bento-card {
position: relative;
border-radius: 24px;
overflow: hidden;
transition: transform 0.5s var(--ease-premium);
}
.bento-card:hover {
transform: scale(1.02);
}
.bento-card img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.8s var(--ease-premium);
}
.bento-card:hover img {
transform: scale(1.1);
}
.bento-overlay {
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 60%);
padding: 32px;
display: flex;
flex-direction: column;
justify-content: flex-end;
color: white;
}
.bento-hero { grid-column: span 8; grid-row: span 2; }
.bento-tall { grid-column: span 4; grid-row: span 3; }
.bento-wide { grid-column: span 8; grid-row: span 2; }
.bento-square { grid-column: span 4; grid-row: span 1; }
@media (max-width: 1024px) {
.bento-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 300px; }
.bento-hero, .bento-tall, .bento-wide, .bento-square { grid-column: span 1; grid-row: span 1; }
}
@media (max-width: 640px) {
.bento-grid { grid-template-columns: 1fr; }
}