{"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: 8,\n    textDecoration: \"none\",\n    fontWeight: 700,\n    fontSize: 15,\n    background: kind === \"primary\" ? \"#9c2f22\" : \"transparent\",\n    color: kind === \"primary\" ? \"#ffffff\" : \"#9c2f22\",\n    border: \"2px solid #9c2f22\",\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, `.reading-boccalone-formulas{box-sizing:border-box!important;background:#f2eadb!important;color:#582c24!important;font-family:system-ui,-apple-system,Segoe UI,sans-serif!important;line-height:1.75!important;width:100%!important;max-width:1100px!important;margin:0 auto!important;padding:0 clamp(20px,5vw,64px) 64px!important;overflow-wrap:anywhere} .reading-boccalone-formulas *{box-sizing:border-box} .reading-boccalone-formulas .reading-mast{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #582c2430;padding:24px 0;margin-bottom:36px} .reading-boccalone-formulas .reading-brand{font-size:18px;font-weight:700;letter-spacing:-.035em;text-decoration:none!important} .reading-boccalone-formulas .reading-nav{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;font-size:13px} .reading-boccalone-formulas .reading-nav a{display:inline-flex;align-items:center;min-height:44px} .reading-boccalone-formulas .reading-kicker{color:#582c24!important;font-size:11px!important;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0 0 12px!important} .reading-boccalone-formulas h1{font:400 clamp(36px,5.2vw,58px)/1.09 Georgia,Times New Roman,serif!important;letter-spacing:-.045em!important;margin:0 0 24px!important;max-width:22ch;text-wrap:balance} .reading-boccalone-formulas h2{font:400 clamp(25px,3vw,34px)/1.2 Georgia,Times New Roman,serif!important;letter-spacing:-.025em!important;margin:42px 0 18px!important;color:#582c24!important;text-wrap:balance} .reading-boccalone-formulas h3{font-size:18px!important;line-height:1.4!important;margin:22px 0 9px!important;color:#582c24!important} .reading-boccalone-formulas p,.reading-boccalone-formulas li{font-size:16px;line-height:1.8;max-width:76ch;color:#582c24} .reading-boccalone-formulas p{margin-top:0;margin-bottom:18px} .reading-boccalone-formulas h1+p{font-size:19px!important;line-height:1.7!important;max-width:64ch;color:#582c24!important} .reading-boccalone-formulas section{max-width:100%!important;padding-left:0!important;padding-right:0!important} .reading-boccalone-formulas section+section{margin-top:32px} .reading-boccalone-formulas a{color:#582c24;text-underline-offset:4px;text-decoration-thickness:1px} .reading-boccalone-formulas a:hover{text-decoration:underline} .reading-boccalone-formulas :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #bb542f;outline-offset:4px} .reading-boccalone-formulas :is(button,select,input:not([type=checkbox]):not([type=radio]),summary){min-height:44px;font:inherit} .reading-boccalone-formulas :is(input,select,textarea){max-width:100%;color:#202820;background:#fff;border:1px solid #7a827a;border-radius:5px;padding:9px 11px} .reading-boccalone-formulas :is(input[type=checkbox],input[type=radio]){min-width:20px;min-height:20px;vertical-align:middle} .reading-boccalone-formulas label{display:inline-block;line-height:1.7} .reading-boccalone-formulas ul,.reading-boccalone-formulas ol{padding-left:24px} .reading-boccalone-formulas li{margin-bottom:10px} .reading-boccalone-formulas blockquote{border-left:3px solid #bb542f;background:#e6d9c4;margin:24px 0;padding:18px 24px} .reading-boccalone-formulas pre{max-width:100%;overflow-x:auto;background:#e6d9c4;padding:18px;border:1px solid #582c2430;font-size:14px} .reading-boccalone-formulas code{font-size:.9em} .reading-boccalone-formulas .reading-table{max-width:100%;overflow-x:auto;margin:24px 0;border:1px solid #582c2430;border-radius:5px} .reading-boccalone-formulas table{width:100%!important;max-width:none!important;border-collapse:collapse!important;margin:0!important;font-size:14px!important;min-width:560px} .reading-boccalone-formulas th,.reading-boccalone-formulas td{padding:14px 16px!important;text-align:left;vertical-align:top;border-bottom:1px solid #582c2425!important;line-height:1.65!important;color:#582c24!important;background:#f2eadb!important} .reading-boccalone-formulas th{background:#e6d9c4!important;font-weight:650!important} .reading-boccalone-formulas details{padding:16px 0!important;border-bottom:1px solid #582c2430!important;background:transparent!important} .reading-boccalone-formulas summary{cursor:pointer;font-weight:600;color:#582c24;padding:10px 0} .reading-boccalone-formulas img,.reading-boccalone-formulas svg{max-width:100%;height:auto} .reading-boccalone-formulas .reading-footer{border-top:1px solid #582c2430;margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:13px} .reading-boccalone-formulas.reading-policy{max-width:950px!important} .reading-boccalone-formulas.reading-policy h2{padding-top:24px;border-top:1px solid #582c2425} .reading-boccalone-formulas.reading-reference h3{padding-top:18px;border-top:1px solid #582c2425} .reading-boccalone-formulas.reading-worksheet h1{max-width:24ch} .reading-boccalone-formulas.reading-worksheet :is(button,input,select,textarea){font-size:16px} @media(max-width:680px){.reading-boccalone-formulas{padding:0 20px 40px!important} .reading-boccalone-formulas .reading-mast{display:block;padding:20px 0;margin-bottom:28px} .reading-boccalone-formulas .reading-nav{margin-top:8px;gap:4px 18px} .reading-boccalone-formulas h1{font-size:37px!important} .reading-boccalone-formulas h2{font-size:27px!important;margin-top:34px!important} .reading-boccalone-formulas p,.reading-boccalone-formulas li{font-size:16px!important} .reading-boccalone-formulas h1+p{font-size:18px!important} .reading-boccalone-formulas [class*=\"grid\"],.reading-boccalone-formulas [class*=\"Grid\"],.reading-boccalone-formulas [class*=\"cta-row\"]{grid-template-columns:1fr!important;flex-wrap:wrap!important} .reading-boccalone-formulas .reading-footer{display:block} .reading-boccalone-formulas .reading-footer a{display:inline-flex;min-height:44px;align-items:center} .reading-boccalone-formulas .reading-table{margin-left:0;margin-right:0}}`), _react2.default.createElement('p', { className: \"reading-kicker\",}, \"Reading\")\n      , _react2.default.createElement('style', null, `\n        .reading-boccalone-formulas .bcpage{max-width:880px;margin:0 auto;padding:28px 20px 64px;color:#231d1b;\n          font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n          line-height:1.62;font-size:17px}\n        .reading-boccalone-formulas .bcpage h1{font-size:2rem;line-height:1.2;margin:0 0 12px}\n        .reading-boccalone-formulas .bcpage h2{font-size:1.35rem;line-height:1.3;margin:36px 0 10px}\n        .reading-boccalone-formulas .bcpage h3{font-size:1.08rem;line-height:1.35;margin:22px 0 6px}\n        .reading-boccalone-formulas .bcpage p{margin:0 0 14px}\n        .reading-boccalone-formulas .bcpage ul{margin:0 0 16px;padding-left:22px}\n        .reading-boccalone-formulas .bcpage li{margin:0 0 8px}\n        .reading-boccalone-formulas .bcpage a{color:#8a2a1e}\n        .reading-boccalone-formulas .bc-intro{font-size:1.16rem;color:#4a3d39}\n        .reading-boccalone-formulas .bc-callout{background:#fbf3ef;border-left:4px solid #9c2f22;padding:12px 16px;border-radius:6px;margin:6px 0 16px;font-size:0.98rem}\n        .reading-boccalone-formulas .bc-warn{background:#fdf6e8;border-left:4px solid #a8730f;padding:12px 16px;border-radius:6px;margin:6px 0 16px;font-size:0.98rem}\n        .reading-boccalone-formulas .bcpage details{border:1px solid #ece0da;border-radius:8px;padding:10px 14px;margin:0 0 10px;background:#fdfaf8}\n        .reading-boccalone-formulas .bcpage summary{cursor:pointer;font-weight:600}\n        .reading-boccalone-formulas .bcpage details p{margin:10px 0 2px}\n        .reading-boccalone-formulas .bc-ctarow{margin:16px 0 10px}\n        .reading-boccalone-formulas .bc-table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:0.95rem;display:block;overflow-x:auto}\n        .reading-boccalone-formulas .bc-table th,.reading-boccalone-formulas .bc-table td{border:1px solid #e8dcd6;padding:8px 10px;text-align:left;vertical-align:top}\n        .reading-boccalone-formulas .bc-table th{background:#fbf3ef;font-weight:700}\n        @media (max-width:560px){.reading-boccalone-formulas .bcpage{font-size:16px;padding:22px 16px 56px}.reading-boccalone-formulas .bcpage h1{font-size:1.6rem}}\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;"}