@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;700&display=swap');

        body {
            font-family: 'Inter', sans-serif;
        }

        .font-mono {
            font-family: 'JetBrains Mono', monospace;
        }

        ::selection {
            background-color: rgba(224, 191, 184, 0.3);
            color: #042f2e;
        }

        @keyframes scan {
            0% { top: -10%; opacity: 0; }
            20% { opacity: 1; }
            80% { opacity: 1; }
            100% { top: 110%; opacity: 0; }
        }

        @keyframes scan-h {
            0% { left: -10%; opacity: 0; }
            20% { opacity: 1; }
            80% { opacity: 1; }
            100% { left: 110%; opacity: 0; }
        }

        /* Playful / Funny Animations for IXRF */
        @keyframes jelly {
            0%, 100% { transform: scale(1, 1); }
            25% { transform: scale(1.4, 0.6); }
            50% { transform: scale(0.6, 1.4); }
            75% { transform: scale(1.2, 0.8); }
        }
        .anim-jelly { animation: jelly 0.5s cubic-bezier(0.25, 1, 0.5, 1); }
        .springy { transition-timing-function: cubic-bezier(0.68, -0.6, 0.32, 1.6) !important; }

        /* Utility classes for guaranteed animation rendering */
        .anim-scan { animation: scan 4s ease-in-out infinite; }
        .anim-scan-fast { animation: scan 1s ease-in-out infinite; }
        /* (moved ML-Engineered Analytics animations to Assets/css/ml-analytics.css) */

        /* Minimal reset for native disclosure marker */
        summary::-webkit-details-marker { display: none; }
        summary { list-style: none; }

details[open] .details-chevron { transform: rotate(180deg); }

/* Absorption plot stroke style (moved out of inline SVG <style>) */
#absorption-svg .cls-1 {
    fill: none;
    stroke: currentColor;
    stroke-linejoin: round;
    stroke-linecap: round;
    stroke-width: 2.5px;
    vector-effect: non-scaling-stroke;
}
