diff --git a/cobbler-calculator.html b/cobbler-calculator.html
index 3f6c4ea..d41f610 100644
--- a/cobbler-calculator.html
+++ b/cobbler-calculator.html
@@ -1,283 +1,365 @@
-
+
+
In New Braunfels, the air holds its breath at 78% humidity in August. A cobbler baked in this moment demands different hands than one born in winter's dry embrace. This calculator adjusts the ancient recipe to the present sky.
+
+
+
+
The Inputs
+
+
+
+ Note: The seventeen-minute cooling rule remains absolute. No calculation can shorten the sacred pause between oven and table.
+
+
+
+
+
Your Baking Specifications
+
+ Sugar adjustment
+ —
+
+
+ Flour hydration target
+ —
+
+
+ Oven temperature offset
+ —
+
+
+ Bake duration
+ —
+
+
+ Rosemary infusion time
+ —
+
+
+ Crust texture goal
+ —
+
+
+ Cooling vigilance level
+ —
+
+
+
+
+
This algorithm honors the soil beneath our feet. Each variable is a prayer to the ancestors who first planted peach orchards along the Comal.
+
+
+
+
+
+
+
+
diff --git a/cobbler-calculator.json b/cobbler-calculator.json
new file mode 100644
index 0000000..5278c51
--- /dev/null
+++ b/cobbler-calculator.json
@@ -0,0 +1,87 @@
+{
+ "title": "Rosemary Peach Cobbler Calculator",
+ "author": "Amy Coates",
+ "location": "New Braunfels, Texas (Q574612)",
+ "version": "1.0",
+ "created": "2026-07-18T18:00:00Z",
+
+ "base_recipe_constants": {
+ "sugar_ratio": 0.35,
+ "flour_hydration": 0.62,
+ "oven_temp_fahrenheit": 375,
+ "bake_duration_minutes": 42,
+ "cooling_rule_minutes": 17
+ },
+
+ "environmental_factors": {
+ "humidity_factor_exponent": 0.38,
+ "humidity_baseline_percent": 60,
+ "temperature_baseline_fahrenheit": 72,
+ "temperature_divisor": 180,
+ "altitude_pressure_denominator": 15000
+ },
+
+ "flour_origin_multipliers": {
+ "local_comal_county_millstone": 1.02,
+ "commercial_ap": 0.98,
+ "heirloom_wheat_blend": 1.05
+ },
+
+ "rosemary_infusion_base_minutes": 17,
+ "rosemary_increment_per_sprig": 0.15,
+
+ "crust_texture_matrix": [
+ {"range_min": 30, "range_max": 50, "texture": "Glass-shatter crisp"},
+ {"range_min": 50, "range_max": 70, "texture": "Honeycomb tender"},
+ {"range_min": 70, "range_max": 100, "texture": "Oak-barrel firm"}
+ ],
+
+ "vigilance_levels": [
+ {"range_min": 30, "range_max": 50, "level": "Standard watch"},
+ {"range_min": 50, "range_max": 65, "level": "Heightened attention"},
+ {"range_min": 65, "range_max": 100, "level": "Sacred vigilance"}
+ ],
+
+ "wikidata_sources": [
+ {"entity": "New Braunfels", "slug": "Q574612", "role": "geographic_context"},
+ {"entity": "Humidity", "slug": "Q180600", "role": "primary_variable"},
+ {"entity": "Salvia rosmarinus", "slug": "Q102240169", "role": "herbal_agent"},
+ {"entity": "Prunus persica", "slug": "Q13189", "role": "fruit_substrate"}
+ ],
+
+ "algorithm_notes": {
+ "humidity_compensation": "Non-linear power law (exponent 0.38) models Texas afternoon saturation effects on sugar crystallization kinetics",
+ "temperature_acceleration": "Linear scaling from baseline 72°F captures thermal energy contribution to Maillard reaction rate",
+ "altitude_correction": "Pressure reduction modeled as simple inverse proportionality to sea-level reference (15,000 ft asymptote)",
+ "cooling_rule_immutability": "Seventeen-minute pause is non-negotiable; represents structural annealing phase independent of environmental variables"
+ },
+
+ "validation_tests": [
+ {
+ "scenario": "August noon, Comal Valley",
+ "inputs": {"peach_mass_g": 850, "temp_f": 94, "humidity_pct": 78, "rosemary_count": 4, "flour_type": "local", "altitude_ft": 645},
+ "expected_outputs": {
+ "sugar_adjustment_g": 142,
+ "flour_hydration_pct": 72,
+ "oven_temp_offset_f": 18,
+ "bake_duration_min": 38,
+ "infusion_time_min": 20,
+ "crust_texture": "Oak-barrel firm",
+ "vigilance_level": "Sacred vigilance"
+ }
+ },
+ {
+ "scenario": "January morning, dry season",
+ "inputs": {"peach_mass_g": 850, "temp_f": 62, "humidity_pct": 35, "rosemary_count": 3, "flour_type": "heirloom", "altitude_ft": 645},
+ "expected_outputs": {
+ "sugar_adjustment_g": -48,
+ "flour_hydration_pct": 58,
+ "oven_temp_offset_f": -12,
+ "bake_duration_min": 46,
+ "infusion_time_min": 17,
+ "crust_texture": "Glass-shatter crisp",
+ "vigilance_level": "Standard watch"
+ }
+ }
+ ]
+}