/**
 * GLSL shaders for the Liquid orb atmosphere layer.
 *
 * The Liquid variant uses a soft diffuse haze (BackSide) around the sphere
 * with smooth falloff, not a concentrated rim ring.
 */
export declare const glowVertex = "\nvarying vec3 vNormal;\nvarying vec3 vViewDirection;\n\nvoid main() {\n    vNormal = normalize(normalMatrix * normal);\n    vec4 worldPos = modelMatrix * vec4(position, 1.0);\n    vViewDirection = normalize(cameraPosition - worldPos.xyz);\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
export declare const atmosphereFragment = "\nprecision highp float;\n\nuniform float u_time;\nuniform vec3  u_color1;\nuniform vec3  u_color2;\nuniform vec3  u_color3;\nuniform float u_intensity;\n\nvarying vec3 vNormal;\nvarying vec3 vViewDirection;\n\nvoid main() {\n    vec3 N = normalize(vNormal);\n    vec3 V = normalize(vViewDirection);\n\n    float NdotV = max(dot(N, V), 0.0);\n\n    // Wide, smooth falloff \u2014 visible across the whole surface, not just edges.\n    // Uses smoothstep to avoid the sharp rim ring that pow(1-NdotV, n) creates.\n    float glow = 1.0 - smoothstep(0.0, 0.85, NdotV);\n    glow *= glow; // soften further\n\n    // Slow colour rotation\n    float a  = u_time * 0.2;\n    float ca = cos(a), sa = sin(a);\n    vec3 dir = vec3(\n        N.x * ca - N.z * sa,\n        N.y,\n        N.x * sa + N.z * ca\n    );\n\n    float vert = dir.y * 0.5 + 0.5;\n    vec3  col  = mix(u_color3, u_color1, vert);\n    float midW = 1.0 - abs(vert - 0.5) * 2.0;\n    col = mix(col, u_color2, midW * 0.5);\n\n    float pulse = 0.92 + sin(u_time * 0.6) * 0.08;\n    float alpha = glow * u_intensity * pulse;\n\n    gl_FragColor = vec4(col * alpha, alpha);\n}\n";
