{"compiledCode":"\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _react = require('react'); var _react2 = _interopRequireDefault(_react);\n\n function FormulasPage() {\n  const d = {\"h1\":\"Formula worksheet\",\"intro\":\"Write your formula in baker's percentages next to the gram weights, scale it to the bake you are planning, then record the conditions that decide how it turns out. Boccalone publishes no tested house formula; this worksheet is for recording your own.\",\"inShort\":\"Flour is always 100%, and every other ingredient is a percentage of flour weight. Divide your total dough weight by the sum of the percentages to get the flour weight; every other ingredient follows from it.\",\"primaryCtas\":[{\"label\":\"Baker's percentages explained\",\"href\":\"/blog/bakers-percentages-for-pizza\"},{\"label\":\"How to log a bake\",\"href\":\"/blog/how-to-log-a-bake\"}],\"whoFor\":[],\"whenToUse\":[],\"sections\":[{\"heading\":\"Scale a formula to your bake\",\"paragraphs\":[\"1. Decide ball weight and ball count, and multiply them for total dough weight.\",\"2. Add up the percentages, with flour at 100%.\",\"3. Divide total dough weight by that sum, written as a decimal, to get the flour weight.\",\"4. Multiply the flour weight by each ingredient's percentage.\"],\"note\":\"Write the working down. A scaled formula you cannot check is a formula you cannot debug.\"},{\"heading\":\"Worked example\",\"paragraphs\":[\"Illustrative inputs only, not a recommended formula: four balls of 250 g, 65% hydration, 2.8% salt, and 0.2% instant yeast.\",\"Total dough is 4 × 250 g = 1,000 g. The percentages sum to 168%, so flour is 1,000 ÷ 1.68 = 595.2 g, and water is 595.2 × 0.65 = 386.9 g. Round only at the end, and round small quantities such as yeast to the precision your scale can actually read.\"],\"table\":{\"head\":[\"Ingredient\",\"Baker's %\",\"Grams\"],\"rows\":[[\"Flour\",\"100%\",\"595.2\"],[\"Water\",\"65%\",\"386.9\"],[\"Salt\",\"2.8%\",\"16.7\"],[\"Instant yeast\",\"0.2%\",\"1.2\"],[\"Total\",\"168%\",\"1,000.0\"]]}},{\"heading\":\"Record these fields for every bake\",\"table\":{\"head\":[\"Field\",\"What to write\"],\"rows\":[[\"Date and baker\",\"Who mixed and baked it, and when\"],[\"Flour\",\"Brand and product, protein content, and W value where published\"],[\"Formula\",\"Every ingredient in baker's percentages and grams\"],[\"Finished dough temperature\",\"Measured after mixing, not the room temperature\"],[\"Fermentation\",\"Each stage with its duration and its temperature\"],[\"Balls\",\"Ball weight and how they were shaped\"],[\"Oven and surface\",\"Oven type, surface, preheat time, and surface temperature if you measured it\"],[\"Bake\",\"Bake time and when you turned the pizza\"],[\"Outcome\",\"What came out, what went wrong, and the one thing you would change next time\"]]}},{\"heading\":\"Keep sourced and measured values apart\",\"paragraphs\":[\"If a value came from a published formula, note the source. If it came from your own bake, note the date and conditions. One bake does not establish how a formula performs in general, and it says nothing about food safety.\"],\"bullets\":[{\"text\":\"Desired dough temperature\",\"href\":\"/blog/desired-dough-temperature\"},{\"text\":\"Fermentation is time and temperature, not just time\",\"href\":\"/blog/fermentation-is-time-and-temperature\"}]}],\"faqs\":[{\"q\":\"Why is flour always 100%?\",\"a\":\"Because every other ingredient is measured against it. That is what lets you compare two formulas at a glance and scale either one to any batch size.\"},{\"q\":\"Does the worked example recommend 65% hydration?\",\"a\":\"No. The numbers only show the arithmetic. The right hydration depends on your flour, your style, and your bake; the style references and the hydration guide cover how to choose it.\"},{\"q\":\"Should I include preferment flour in the 100%?\",\"a\":\"Yes. Count all the flour in the dough, including any in a poolish or biga, as the 100%, and all the water in the hydration. Otherwise two versions of the same dough will not compare.\"}],\"related\":[{\"label\":\"Dough and fermentation\",\"href\":\"/dough\"},{\"label\":\"How we test\",\"href\":\"/how-we-test\"},{\"label\":\"Troubleshooting\",\"href\":\"/troubleshooting\"},{\"label\":\"Pizza styles\",\"href\":\"/styles\"}],\"closingCtaHeading\":\"Use the record to diagnose\",\"closingCtaText\":\"When a bake goes wrong, compare its record with the last good one and change one variable at a time.\",\"closingCtas\":[{\"label\":\"Troubleshooting by symptom\",\"href\":\"/troubleshooting\"},{\"label\":\"Dough and fermentation\",\"href\":\"/dough\"}]};\n  const btn = (kind) => ({\n    display: \"inline-block\",\n    padding: kind === \"primary\" ? \"11px 18px\" : \"9px 16px\",\n    margin: \"6px 10px 6px 0\",\n    borderRadius: 0,\n    textDecoration: \"none\",\n    fontWeight: 700,\n    fontSize: 15,\n    background: kind === \"primary\" ? \"var(--c1fflz6z-runtime-action-bg)\" : \"transparent\",\n    color: kind === \"primary\" ? \"var(--c1fflz6z-runtime-action-fg)\" : \"var(--c1fflz6z-runtime-accent)\",\n    border: \"1px solid var(--c1fflz6z-runtime-action-bg)\",\n  });\n  return (\n    _react2.default.createElement('div', { className: \"bcpage reading-boccalone-formulas reading-article\"  , 'aria-labelledby': \"bc-title\", 'data-reading-page': \"formulas\",}, _react2.default.createElement('style', null, `\n.reading-boccalone-formulas{box-sizing:border-box;width:100%;max-width:960px;margin:0 auto;padding:64px clamp(20px,5vw,64px) 80px;color:var(--c1fflz6z-runtime-text);background:var(--c1fflz6z-runtime-bg);font-family:var(--c1fflz6z-font-body);font-size:17px;line-height:1.75;overflow-wrap:anywhere}\n.reading-boccalone-formulas *{box-sizing:border-box} .reading-boccalone-formulas :is(h1,h2,h3){font-family:var(--c1fflz6z-font-heading);font-weight:400;color:var(--c1fflz6z-runtime-text);text-wrap:balance}\n.reading-boccalone-formulas h1{font-size:clamp(42px,5.5vw,72px);line-height:1.08;letter-spacing:-.015em;margin:0 0 26px;max-width:24ch}\n.reading-boccalone-formulas h2{font-size:clamp(28px,3.5vw,38px);line-height:1.18;margin:48px 0 18px} .reading-boccalone-formulas h3{font-size:25px;line-height:1.25;margin:28px 0 12px}\n.reading-boccalone-formulas :is(p,ul,ol){margin-top:0;margin-bottom:20px} .reading-boccalone-formulas li{margin-bottom:8px} .reading-boccalone-formulas :is(ul,ol){padding-left:24px} .reading-boccalone-formulas p{max-width:74ch}\n.reading-boccalone-formulas .reading-kicker{font-family:var(--c1fflz6z-font-body);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--c1fflz6z-runtime-accent);margin:0 0 16px}\n.reading-boccalone-formulas :is(.bc-intro,h1+p){font-size:20px;line-height:1.65;margin-bottom:30px} .reading-boccalone-formulas a{color:var(--c1fflz6z-runtime-accent);text-underline-offset:4px} .reading-boccalone-formulas a:hover{text-decoration-thickness:2px}\n.reading-boccalone-formulas :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--c1fflz6z-runtime-accent);outline-offset:4px}\n.reading-boccalone-formulas :is(.bc-callout,.bc-warn,.gf-note){background:var(--c1fflz6z-runtime-panel);border-left:3px solid var(--c1fflz6z-runtime-action-bg);padding:18px 22px;margin:24px 0;font-size:16px}\n.reading-boccalone-formulas :is(.gf-card,.gf-rule,.gf-step){border-top:1px solid var(--c1fflz6z-runtime-border);padding:22px 0;margin:0} .reading-boccalone-formulas :is(.gf-card,.gf-rule) h3{margin-top:0} .reading-boccalone-formulas .gf-rule strong{display:block;margin-bottom:8px}\n.reading-boccalone-formulas .gf-cta{display:inline-flex;align-items:center;min-height:48px;padding:12px 20px;margin:0 12px 12px 0;border:1px solid var(--c1fflz6z-runtime-action-bg);border-radius:4px;background:var(--c1fflz6z-runtime-action-bg);color:var(--c1fflz6z-runtime-action-fg);text-decoration:none;font-weight:600}\n.reading-boccalone-formulas .gf-cta.secondary{background:transparent;color:var(--c1fflz6z-runtime-accent)} .reading-boccalone-formulas .bc-ctarow{margin:24px 0;display:flex;flex-wrap:wrap;gap:10px} .reading-boccalone-formulas .bc-ctarow a{margin:0;min-height:48px;display:inline-flex;align-items:center}\n.reading-boccalone-formulas :is(.reading-table,.gf-scroll){max-width:100%;overflow-x:auto;margin:24px 0;overscroll-behavior-x:contain} .reading-boccalone-formulas table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6;margin:0} .reading-boccalone-formulas :is(th,td){padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--c1fflz6z-runtime-border);color:var(--c1fflz6z-runtime-text)} .reading-boccalone-formulas th{background:var(--c1fflz6z-runtime-panel);font-weight:700} .reading-boccalone-formulas .bc-table{display:table}\n.reading-boccalone-formulas details{padding:18px 0;border-bottom:1px solid var(--c1fflz6z-runtime-border)} .reading-boccalone-formulas summary{cursor:pointer;font-weight:600;min-height:44px;padding:8px 0} .reading-boccalone-formulas details p{margin:12px 0 0}\n.reading-boccalone-formulas :is(input,select,textarea,button){font:inherit;color:var(--c1fflz6z-runtime-text);max-width:100%;min-height:44px} .reading-boccalone-formulas :is(input,select,textarea){background:var(--c1fflz6z-runtime-bg);border:1px solid var(--c1fflz6z-runtime-border);padding:10px 12px} .reading-boccalone-formulas :is(img,svg){max-width:100%;height:auto}\n.reading-boccalone-formulas .reading-footer{border-top:1px solid var(--c1fflz6z-runtime-border);margin-top:56px;padding-top:24px;font-size:14px} .reading-boccalone-formulas .reading-footer a{display:inline-flex;min-height:44px;align-items:center}\n@media(max-width:600px){.reading-boccalone-formulas{padding:36px 20px 56px;font-size:16px} .reading-boccalone-formulas h1{font-size:44px} .reading-boccalone-formulas h2{font-size:29px;margin-top:36px} .reading-boccalone-formulas h3{font-size:24px} .reading-boccalone-formulas :is(.bc-intro,h1+p){font-size:18px} .reading-boccalone-formulas :is(th,td){padding:10px;font-size:14px}}\n`), _react2.default.createElement('p', { className: \"reading-kicker\",}, \"Reading\")\n\n\n      , _react2.default.createElement('h1', { id: \"bc-title\",}, d.h1)\n      , _react2.default.createElement('p', { className: \"bc-intro\",}, d.intro)\n      , d.primaryCtas && d.primaryCtas.length ? (\n        _react2.default.createElement('div', { className: \"bc-ctarow\",}\n          , d.primaryCtas.map((c, i) => (\n            _react2.default.createElement('a', { key: i, href: c.href, style: btn(i === 0 ? \"primary\" : \"ghost\"),}, c.label)\n          ))\n        )\n      ) : null\n\n      , d.notice ? _react2.default.createElement('p', { className: \"bc-warn\",}, d.notice) : null\n\n      , d.inShort ? (\n        _react2.default.createElement('section', { 'aria-label': \"In short\" ,}\n          , _react2.default.createElement('h2', null, \"In short\" )\n          , _react2.default.createElement('p', null, d.inShort)\n        )\n      ) : null\n\n      , d.whoFor && d.whoFor.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"Who this is for\"   ,}\n          , _react2.default.createElement('h2', null, \"Who this is for\"   )\n          , _react2.default.createElement('ul', null, d.whoFor.map((x, i) => _react2.default.createElement('li', { key: i,}, x)))\n        )\n      ) : null\n\n      , d.whenToUse && d.whenToUse.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"When to use this\"   ,}\n          , _react2.default.createElement('h2', null, \"When to use this\"   )\n          , _react2.default.createElement('ul', null, d.whenToUse.map((x, i) => _react2.default.createElement('li', { key: i,}, x)))\n        )\n      ) : null\n\n      , d.sections.map((s, i) => (\n        _react2.default.createElement('section', { key: i, 'aria-label': s.heading,}\n          , _react2.default.createElement('h2', null, s.heading)\n          , (s.paragraphs || []).map((pp, j) => _react2.default.createElement('p', { key: j,}, pp))\n          , s.table ? (\n            _react2.default.createElement('div', { className: \"reading-table\", tabIndex: 0, role: \"region\", 'aria-label': \"Scrollable reference table\"  ,}, _react2.default.createElement('table', { className: \"bc-table\",}\n              , _react2.default.createElement('thead', null, _react2.default.createElement('tr', null, s.table.head.map((h, j) => _react2.default.createElement('th', { key: j,}, h))))\n              , _react2.default.createElement('tbody', null\n                , s.table.rows.map((r, j) => (\n                  _react2.default.createElement('tr', { key: j,}, r.map((c, k) => _react2.default.createElement('td', { key: k,}, c)))\n                ))\n              )\n            ))\n          ) : null\n          , (s.bullets || []).length ? (\n            _react2.default.createElement('ul', null\n              , s.bullets.map((b, j) => (\n                _react2.default.createElement('li', { key: j,}, b.href ? _react2.default.createElement('a', { href: b.href,}, b.text) : b.text)\n              ))\n            )\n          ) : null\n          , s.note ? _react2.default.createElement('p', { className: \"bc-callout\",}, s.note) : null\n          , s.warn ? _react2.default.createElement('p', { className: \"bc-warn\",}, s.warn) : null\n        )\n      ))\n\n      , d.related && d.related.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"Related pages\" ,}\n          , _react2.default.createElement('h2', null, \"Where to go next\"   )\n          , _react2.default.createElement('ul', null, d.related.map((r, i) => _react2.default.createElement('li', { key: i,}, _react2.default.createElement('a', { href: r.href,}, r.label))))\n        )\n      ) : null\n\n      , d.faqs && d.faqs.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"Frequently asked questions\"  ,}\n          , _react2.default.createElement('h2', null, \"Frequently asked questions\"  )\n          , d.faqs.map((f, i) => (\n            _react2.default.createElement('details', { key: i,}\n              , _react2.default.createElement('summary', null, f.q)\n              , _react2.default.createElement('p', null, f.a)\n            )\n          ))\n        )\n      ) : null\n\n      , d.closingCtaHeading ? (\n        _react2.default.createElement('section', { 'aria-label': \"Next step\" ,}\n          , _react2.default.createElement('h2', null, d.closingCtaHeading)\n          , _react2.default.createElement('p', null, d.closingCtaText)\n          , _react2.default.createElement('div', { className: \"bc-ctarow\",}\n            , (d.closingCtas || []).map((c, i) => (\n              _react2.default.createElement('a', { key: i, href: c.href, style: btn(i === 0 ? \"primary\" : \"ghost\"),}, c.label)\n            ))\n          )\n        )\n      ) : null\n    , _react2.default.createElement('aside', { className: \"reading-footer\",}, _react2.default.createElement('a', { href: \"/\",}, \"Back to Boccalone\"  )))\n  );\n} exports.default = FormulasPage;"}