/* Custom styles that complement Tailwind */

/* Smooth scroll offset for fixed nav */
section[id] {
    scroll-margin-top: 80px;
}

/* Selection color */
::selection {
    background-color: #568341;
    color: #FAF9F6;
}

/* Focus visible for keyboard nav */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline: 2px solid #568341;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Geometric shape animations */
@keyframes float {
    0%, 100% { transform: translateY(0px) rotate(15deg); }
    50% { transform: translateY(-12px) rotate(15deg); }
}

@keyframes float-reverse {
    0%, 100% { transform: translateY(0px) rotate(45deg); }
    50% { transform: translateY(10px) rotate(45deg); }
}

.geo-square {
    animation: float 6s ease-in-out infinite;
}

.geo-square.rotate-45 {
    animation: float-reverse 8s ease-in-out infinite;
}

/* Subtle gradient on hero photo card */
.stat-card {
    will-change: transform;
}

/* Prevent layout shift on images */
img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Custom select arrow */
select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23568341' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/* Print styles */
@media print {
    nav, .geo-circle, .geo-square, .geo-triangle {
        display: none;
    }
    body {
        color: #000;
        background: #fff;
    }
}
