PageSourceSearch

https://ruhlman.com/

html ruhlman.com collected 2026-10-02 04:20:12 UTC 120,472 bytes, 1,236 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head ><meta charset="UTF-8" />
3<script>if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script>
3<script>class RocketLazyLoadScripts{constructor(){this.triggerEvents=["keydown","mousedown","mousemove","touchmove","touchstart","touchend","wheel"],this.userEventHandler=this._triggerListener.bind(this),this.touchStartHandler=this._onTouchStart.bind(this),this.touchMoveHandler=this._onTouchMove.bind(this),this.touchEndHandler=this._onTouchEnd.bind(this),this.clickHandler=this._onClick.bind(this),this.interceptedClicks=[],window.addEventListener("pageshow",(e=>{this.persisted=e.persisted})),window.addEventListener("DOMContentLoaded",(()=>{this._preconnect3rdParties()})),this.delayedScripts={normal:[],async:[],defer:[]},this.allJQueries=[]}_addUserInteractionListener(e){document.hidden?e._triggerListener():(this.triggerEvents.forEach((t=>window.addEventListener(t,e.userEventHandler,{passive:!0}))),window.addEventListener("touchstart",e.touchStartHandler,{passive:!0}),window.addEventListener("mousedown",e.touchStartHandler),document.addEventListener("visibilitychange",e.userEventHandler))}_removeUserInteractionListener(){this.triggerEvents.forEach((e=>window.removeEventListener(e,this.userEventHandler,{passive:!0}))),document.removeEventListener("visibilitychange",this.userEventHandler)}_onTouchStart(e){"HTML"!==e.target.tagName&&(window.addEventListener("touchend",this.touchEndHandler),window.addEventListener("mouseup",this.touchEndHandler),window.addEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.addEventListener("mousemove",this.touchMoveHandler),e.target.addEventListener("click",this.clickHandler),this._renameDOMAttribute(e.target,"onclick","rocket-onclick"))}_onTouchMove(e){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler),e.target.removeEventListener("click",this.clickHandler),this._renameDOMAttribute(e.target,"rocket-onclick","onclick")}_onTouchEnd(e){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler)}_onClick(e){e.target.removeEventListener("click",this.clickHandler),this._renameDOMAttribute(e.target,"rocket-onclick","onclick"),this.interceptedClicks.push(e),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}_replayClicks(){window.removeEventListener("touchstart",this.touchStartHandler,{passive:!0}),window.removeEventListener("mousedown",this.touchStartHandler),this.interceptedClicks.forEach((e=>{e.target.dispatchEvent(new MouseEvent("click",{view:e.view,bubbles:!0,cancelable:!0}))}))}_renameDOMAttribute(e,t,n){e.hasAttribute&&e.hasAttribute(t)&&(event.target.setAttribute(n,event.target.getAttribute(t)),event.target.removeAttribute(t))}_triggerListener(){this._removeUserInteractionListener(this),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",this._loadEverythingNow.bind(this)):this._loadEverythingNow()}_preconnect3rdParties(){let e=[];document.querySelectorAll("script[type=rocketlazyloadscript]").forEach((t=>{if(t.hasAttribute("src")){const n=new URL(t.src).origin;n!==location.origin&&e.push({src:n,crossOrigin:t.crossOrigin||"module"===t.getAttribute("data-rocket-type")})}})),e=[...new Map(e.map((e=>[JSON.stringify(e),e]))).values()],this._batchInjectResourceHints(e,"preconnect")}
3async _loadEverythingNow(){this.lastBreath=Date.now(),this._delayEventListeners(),this._delayJQueryReady(this),this._handleDocumentWrite(),this._registerAllDelayedScripts(),this._preloadAllScripts(),await this._loadScriptsFromList(this.delayedScripts.normal),await this._loadScriptsFromList(this.delayedScripts.defer),await this._loadScriptsFromList(this.delayedScripts.async);try{await this._triggerDOMContentLoaded(),await this._triggerWindowLoad()}catch(e){}window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this._replayClicks()}_registerAllDelayedScripts(){document.querySelectorAll("script[type=rocketlazyloadscript]").forEach((e=>{e.hasAttribute("src")?e.hasAttribute("async")&&!1!==e.async?this.delayedScripts.async.push(e):e.hasAttribute("defer")&&!1!==e.defer||"module"===e.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(e):this.delayedScripts.normal.push(e):this.delayedScripts.normal.push(e)}))}async _transformScript(e){return await this._littleBreath(),new Promise((t=>{const n=document.createElement("script");[...e.attributes].forEach((e=>{let t=e.nodeName;"type"!==t&&("data-rocket-type"===t&&(t="type"),n.setAttribute(t,e.nodeValue))})),e.hasAttribute("src")?(n.addEventListener("load",t),n.addEventListener("error",t)):(n.text=e.text,t());try{e.parentNode.replaceChild(n,e)}catch(e){t()}}))}async _loadScriptsFromList(e){const t=e.shift();return t?(await this._transformScript(t),this._loadScriptsFromList(e)):Promise.resolve()}_preloadAllScripts(){this._batchInjectResourceHints([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}_batchInjectResourceHints(e,t){var n=document.createDocumentFragment();e.forEach((e=>{if(e.src){const i=document.createElement("link");i.href=e.src,i.rel=t,"preconnect"!==t&&(i.as="script"),e.getAttribute&&"module"===e.getAttribute("data-rocket-type")&&(i.crossOrigin=!0),e.crossOrigin&&(i.crossOrigin=e.crossOrigin),n.appendChild(i)}})),document.head.appendChild(n)}_delayEventListeners(){let e={};function t(t,n){!function(t){function n(n){return e[t].eventsToRewrite.indexOf(n)>=0?"rocket-"+n:n}e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},eventsToRewrite:[]},t.addEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.add.apply(t,arguments)},t.removeEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.remove.apply(t,arguments)})}(t),e[t].eventsToRewrite.push(n)}function n(e,t){let n=e[t];Object.defineProperty(e,t,{get:()=>n||function(){},set(i){e["rocket"+t]=n=i}})}t(document,"DOMContentLoaded"),t(window,"DOMContentLoaded"),t(window,"load"),t(window,"pageshow"),t(document,"readystatechange"),n(document,"onreadystatechange"),n(window,"onload"),n(window,"onpageshow")}_delayJQueryReady(e){let t=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>t,set(n){if(n&&n.fn&&!e.allJQueries.includes(n)){n.fn.ready=n.fn.init.prototype.ready=function(t){e.domReadyFired?t.bind(document)(n):document.addEventListener("rocket-DOMContentLoaded",(()=>t.bind(document)(n)))};const t=n.fn.on;n.fn.on=n.fn.init.prototype.on=function(){if(this[0]===window){function e(e){return e.split(" ").map((e=>"load"===e||0===e.indexOf("load.")?"rocket-jquery-load":e)).join(" ")}"string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=e(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach((t=>{delete Object.assign(arguments[0],{[e(t)]:arguments[0][t]})[t]}))}return t.apply(this,arguments),this},e.allJQueries.push(n)}t=n}})}async _triggerDOMContentLoaded(){this.domReadyFired=!0,await this._littleBreath(),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this._littleBreath(),window.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this._littleBreath(),document.dispatchEvent(new Event("rocket-readystatechange")),await this._littleBreath(),document.rocketonreadystatechange&&document.rocketonreadystatechange()}async _triggerWindowLoad(){await this._littleBreath(),window.dispatchEvent(new Event("rocket-load")),await this._littleBreath(),window.rocketonload&&window.rocketonload(),await this._littleBreath(),this.allJQueries.forEac
3h((e=>e(window).trigger("rocket-jquery-load"))),await this._littleBreath();const e=new Event("rocket-pageshow");e.persisted=this.persisted,window.dispatchEvent(e),await this._littleBreath(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted})}_handleDocumentWrite(){const e=new Map;document.write=document.writeln=function(t){const n=document.currentScript,i=document.createRange(),r=n.parentElement;let o=e.get(n);void 0===o&&(o=n.nextSibling,e.set(n,o));const s=document.createDocumentFragment();i.setStart(s,0),s.appendChild(i.createContextualFragment(t)),r.insertBefore(s,o)}}async _littleBreath(){Date.now()-this.lastBreath>45&&(await this._requestAnimFrame(),this.lastBreath=Date.now())}async _requestAnimFrame(){return document.hidden?new Promise((e=>setTimeout(e))):new Promise((e=>requestAnimationFrame(e)))}static run(){const e=new RocketLazyLoadScripts;e._addUserInteractionListener(e)}}RocketLazyLoadScripts.run();</script>
3
4
5<meta name="viewport" content="width=device-width, initial-scale=1" />
6<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
7
8	<!-- This site is optimized with the Yoast SEO plugin v26.6 - https://yoast.com/wordpress/plugins/seo/ -->
9	<title>MICHAEL RUHLMAN - Ruhlman</title><link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Muli%3Aregular%2Citalic%2C300%2C300italic%7CKarla%3Aregular%2Citalic%2C700%2C700italic%26amp%3Bsubset%3Dlatin%2C&#038;display=swap" /><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Muli%3Aregular%2Citalic%2C300%2C300italic%7CKarla%3Aregular%2Citalic%2C700%2C700italic%26amp%3Bsubset%3Dlatin%2C&#038;display=swap" media="print" onload="this.media='all'" /><noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Muli%3Aregular%2Citalic%2C300%2C300italic%7CKarla%3Aregular%2Citalic%2C700%2C700italic%26amp%3Bsubset%3Dlatin%2C&#038;display=swap" /></noscript>
10	<link rel="canonical" href="https://ruhlman.com/" />
11	<meta property="og:locale" content="en_US" />
12	<meta property="og:type" content="website" />
13	<meta property="og:title" content="MICHAEL RUHLMAN - Ruhlman" />
14	<meta property="og:description" content="Welcome to my website. Here you’ll find information on my newsletter, all my books, my complete bio, contact information, and recommendations for my favorite kitchen tools and household goods. About Ruhlman&#039;s Newsletter My newsletter covers what I love most: food and cooking, recipes, books we’re reading (my wife, the novelist Ann Hood recommends great new...Read More" />
15	<meta property="og:url" content="https://ruhlman.com/" />
16	<meta property="og:site_name" content="Ruhlman" />
17	<meta property="article:modified_time" content="2026-04-28T16:19:33+00:00" />
18	<meta property="og:image" content="https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078.jpeg" />
19	<meta property="og:image:width" content="480" />
20	<meta property="og:image:height" content="514" />
21	<meta property="og:image:type" content="image/jpeg" />
22	<meta name="twitter:card" content="summary_large_image" />
23	
23<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://ruhlman.com/","url":"https://ruhlman.com/","name":"MICHAEL RUHLMAN - Ruhlman","isPartOf":{"@id":"https://ruhlman.com/#website"},"about":{"@id":"https://ruhlman.com/#/schema/person/dd7875180f83d838b9122e1e36981b8f"},"primaryImageOfPage":{"@id":"https://ruhlman.com/#primaryimage"},"image":{"@id":"https://ruhlman.com/#primaryimage"},"thumbnailUrl":"https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078.jpeg","datePublished":"2024-09-02T02:11:33+00:00","dateModified":"2026-04-28T16:19:33+00:00","breadcrumb":{"@id":"https://ruhlman.com/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://ruhlman.com/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://ruhlman.com/#primaryimage","url":"https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078.jpeg","contentUrl":"https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078.jpeg","width":480,"height":514},{"@type":"BreadcrumbList","@id":"https://ruhlman.com/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https://ruhlman.com/#website","url":"https://ruhlman.com/","name":"Ruhlman","description":"Translating the chef’s craft.","publisher":{"@id":"https://ruhlman.com/#/schema/person/dd7875180f83d838b9122e1e36981b8f"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://ruhlman.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https://ruhlman.com/#/schema/person/dd7875180f83d838b9122e1e36981b8f","name":"bigscoots","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://ruhlman.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/14cf5a4ac91eeb19558c5c03e8a61b0cbd1531e9ef5f35d7ca811f7cde8301a6?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/14cf5a4ac91eeb19558c5c03e8a61b0cbd1531e9ef5f35d7ca811f7cde8301a6?s=96&d=mm&r=g","caption":"bigscoots"},"logo":{"@id":"https://ruhlman.com/#/schema/person/image/"}}]}</script>
23
24	<!-- / Yoast SEO plugin. -->
25
26
27<link rel='dns-prefetch' href='//fonts.googleapis.com' />
28<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' />
29<link rel="alternate" type="application/rss+xml" title="Ruhlman &raquo; Feed" href="https://ruhlman.com/feed/" />
30<link rel="alternate" type="application/rss+xml" title="Ruhlman &raquo; Comments Feed" href="https://ruhlman.com/comments/feed/" />
31<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://ruhlman.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fruhlman.com%2F" />
32<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://ruhlman.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fruhlman.com%2F&#038;format=xml" />
33<script type="rocketlazyloadscript">(()=>{"use strict";const e=[400,500,600,700,800,900],t=e=>`wprm-min-${e}`,n=e=>`wprm-max-${e}`,s=new Set,o="ResizeObserver"in window,r=o?new ResizeObserver((e=>{for(const t of e)c(t.target)})):null,i=.5/(window.devicePixelRatio||1);function c(s){const o=s.getBoundingClientRect().width||0;for(let r=0;r<e.length;r++){const c=e[r],a=o<=c+i;o>c+i?s.classList.add(t(c)):s.classList.remove(t(c)),a?s.classList.add(n(c)):s.classList.remove(n(c))}}function a(e){s.has(e)||(s.add(e),r&&r.observe(e),c(e))}!function(e=document){e.querySelectorAll(".wprm-recipe").forEach(a)}();if(new MutationObserver((e=>{for(const t of e)for(const e of t.addedNodes)e instanceof Element&&(e.matches?.(".wprm-recipe")&&a(e),e.querySelectorAll?.(".wprm-recipe").forEach(a))})).observe(document.documentElement,{childList:!0,subtree:!0}),!o){let e=0;addEventListener("resize",(()=>{e&&cancelAnimationFrame(e),e=requestAnimationFrame((()=>s.forEach(c)))}),{passive:!0})}})();</script>
33<style id='wp-img-auto-sizes-contain-inline-css' type='text/css'>
34img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
35/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
36</style>
37<link rel='stylesheet' id='foodie-pro-theme-css' href='https://ruhlman.com/wp-content/themes/foodiepro-v441/style.css?ver=4.4.1' type='text/css' media='all' />
38<style id='foodie-pro-theme-inline-css' type='text/css'>
39body, .site-description, .sidebar .featured-content .entry-title{font-family:"Muli","Helvetica Neue",sans-serif;font-size:14px;}.genesis-nav-menu{font-family:"Karla","Helvetica Neue",sans-serif;}h1, h2, h3, h4, h5, h6, .site-title, .entry-title, .widgettitle{font-family:"Karla","Helvetica Neue",sans-serif;}.entry-title{font-family:"Karla","Helvetica Neue",sans-serif;}.button, .button-secondary, button, input[type="button"], input[type="reset"], input[type="submit"], a.more-link, .more-from-category a{font-family:"Karla","Helvetica Neue",sans-serif;}
40/*# sourceURL=foodie-pro-theme-inline-css */
41</style>
42<style id='wp-block-library-inline-css' type='text/css'>
43:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
43--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
44
45/*# sourceURL=wp-block-library-inline-css */
46</style>
47<link rel='stylesheet' id='wp-block-cover-css' href='https://ruhlman.com/wp-includes/blocks/cover/style.min.css?ver=6.9.9' type='text/css' media='all' />
48<style id='wp-block-image-inline-css' type='text/css'>
49.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto #5a5a5a40;outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:#5a5a5a40;border:none}.wp-lightbox-overlay{box-sizing:border-box;
49cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
50.is-style-book-cover img { box-shadow: 4px 4px 20px #454545; transform: rotate(3deg) scale(0.9); -webkit-backface-visibility: hidden; margin-top: 10px; margin-bottom: 10px; } .is-style-book-cover { padding: 10px; }
51.is-style-polaroid img { border-bottom: 50px solid #fff; border-right: 15px solid #fff; border-left: 15px solid #fff; border-top: 10px solid #fff; box-shadow: 5px 5px 15px rgba(0, 0, 0, .4); transform: rotate(-5deg) scale(0.9); -webkit-backface-visibility: hidden; margin: 10px 0; }
52/*# sourceURL=wp-block-image-inline-css */
53</style>
54<style id='wp-block-list-inline-css' type='text/css'>
55ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}
56@media only screen and (min-width: 1023px) { .is-style-feast-2-column-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 37px; }
56 .editor-styles-wrapper :where(:not(.is-layout-flex,.is-layout-grid))>.is-style-feast-2-column-list li { margin-left: unset; margin-right: unset; } }
57@media only screen and (min-width: 1023px) { .is-style-feast-3-column-list { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 37px; } .editor-styles-wrapper :where(:not(.is-layout-flex,.is-layout-grid))>.is-style-feast-3-column-list li { margin-left: unset; margin-right: unset; } }
58/*# sourceURL=wp-block-list-inline-css */
59</style>
60<style id='wp-block-columns-inline-css' type='text/css'>
61.wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}
62.is-style-basic-columns .wp-block-column { background-color: var(--branding-color-background, #EEEEEE); color: var(--branding-color-background-text, #000000); padding: 17px 11px; }
63/*# sourceURL=wp-block-columns-inline-css */
64</style>
65<style id='wp-block-group-inline-css' type='text/css'>
66.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative}
67.wp-block-group.is-style-full-width-slanted { -webkit-transform: skewY(1.5deg); transform: skewY(1.5deg); -ms-transform-origin: 100% 0; -webkit-transform-origin: 100% 0; transform-origin: 100% 0; margin-bottom: 20px !important; margin-top: 60px !important; padding-bottom: 70px !important; } .wp-block-group.is-style-full-width-slanted > .wp-block-group__inner-container { -webkit-transform: skewY(-1.5deg); transform: skewY(-1.5deg); -ms-transform-origin: 100% 0; -webkit-transform-origin: 100% 0; transform-origin: 100% 0; }
68.is-style-feast-inline-heading-group h2:first-of-type, .is-style-feast-inline-heading-group h3:first-of-type { transform: translateY(-0.7em);  background: #FFF; display: inline-block; padding: 0 0.5em 0; margin: 0 0.5em; } .is-style-feast-inline-heading-group { border: 2px solid var(--global-palette6, #CCC); padding: 0 1em 1em; margin: 3em 0 2em; } .is-style-feast-inline-heading-group h2:first-child+*, .is-style-feast-inline-heading-group h3:first-child+* { margin-top: 0; }
69/*# sourceURL=wp-block-group-inline-css */
70</style>
71<style id='wp-block-social-links-inline-css' type='text/css'>
72.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{color:currentColor;fill:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{background-color:#fefc00;color:#fff;stroke:#000}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}
72:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}
72:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{color:#fff;stroke:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000}
73/*# sourceURL=https://ruhlman.com/wp-includes/blocks/social-links/style.min.css */
74</style>
75<style id='wp-block-spacer-inline-css' type='text/css'>
76.wp-block-spacer{clear:both}
77/*# sourceURL=https://ruhlman.com/wp-includes/blocks/spacer/style.min.css */
78</style>
79
80<style id='classic-theme-styles-inline-css' type='text/css'>
81/*! This file is auto-generated */
82.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
83/*# sourceURL=/wp-includes/css/classic-themes.min.css */
84</style>
85<link rel='stylesheet' id='wprm-public-css' href='https://ruhlman.com/wp-content/plugins/wp-recipe-maker/dist/public-modern.css?ver=10.2.4' type='text/css' media='all' />
86<style id='global-styles-inline-css' type='text/css'>
87:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
870) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
87.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
88:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
89/*# sourceURL=global-styles-inline-css */
90</style>
91
92<style id='feast-global-styles-inline-css' type='text/css'>
93.feast-plugin a {
94	word-break: break-word;
95}
96.feast-plugin ul.menu a {
97	word-break: initial;
98}
99	p.is-variation-fancy-text {
100		font-style: italic;
101		margin: 0 0 16px 0 !important;
102	}
103	p.is-variation-fancy-text + *:not(div),
104	.wp-block-group__inner-container p.is-variation-fancy-text:first-child {
105		margin-top: 0 !important;
106	}
107button.feast-submenu-toggle {
108	display: none;
109	background: transparent;
110	border: 1px solid #424242;
111	border-radius: 0;
112	box-shadow: none;
113	padding: 0;
114	outline: none;
115	cursor: pointer;
116	position: absolute;
117	line-height: 0;
118	right: 0;
119	top: 3px;
120	width: 42px;
121	height: 42px;
122	justify-content: center;
123	align-items: center;
124}
125button.feast-submenu-toggle svg {
126	width: 20px;
127	height: 20px;
128}
129@media(max-width:1199px) {
130	button.feast-submenu-toggle {
131		display: flex;
132	}
133	.mmm-content ul li.menu-item-has-children {
134		position: relative;
135	}
136	.mmm-content ul li.menu-item-has-children > a {
137		display: inline-block;
138		margin-top: 12px;
139		margin-bottom: 12px;
140		width: 100%;
141		padding-right: 48px;
142	}
143	.mmm-content ul li.menu-item-has-children > ul.sub-menu {
144		display: none;
145	}
146	.mmm-content ul li.menu-item-has-children.open > ul.sub-menu {
147		display: block;
148	}
149	.mmm-content ul li.menu-item-has-children.open > button svg {
150		transform: rotate(180deg);
151	}
152}
153.single .content a,
154.category .content a,
155.feast-modern-category-layout a,
156aside a, 
157.site-footer a {
158	text-decoration: underline;
159}
160.feast-social-media {
161	display: flex;
162	flex-wrap: wrap;
163	align-items: center;
164	justify-content: center;
165	column-gap: 18px;
166	row-gap: 9px;
167	width: 100%;
168	padding: 27px 0;
169}
170.feast-social-media.feast-social-media--align-left {
171	justify-content: flex-start;
172}
173.feast-social-media.feast-social-media--align-right {
174	justify-content: flex-end;
175}
176.feast-social-media a {
177	display: flex;
178	align-items: center;
179	justify-content: center;
180	padding: 12px;
181}
182@media(max-width:600px) {
183	.feast-social-media a {
184		min-height: 50px;
185		min-width: 50px;
186	}
187}
188.feast-ai-buttons-block {
189	display: block;
190	width: 100%;
191}
192.feast-ai-buttons-block .wp-block-buttons {
193	display: flex;
194	flex-wrap: wrap;
195	gap: 12px;
196	width: 100%;
197}
198.feast-ai-buttons-block--align-center .wp-block-buttons {
199	justify-content: center;
200}
201.feast-ai-buttons-block--align-right .wp-block-buttons {
202	justify-content: flex-end;
203}
204.feast-ai-buttons-block .wp-block-buttons .wp-block-button {
205	flex-basis: 0;
206	flex-grow: 1;
207}
208.feast-ai-buttons-block .wp-block-buttons .wp-block-button .wp-block-button__link {
209	white-space: nowrap;
210}
211@media(max-width:600px) {
212	.feast-ai-buttons-block .wp-block-buttons .wp-block-button {
213		flex-basis: 40%;
214	}
215}		
216.site-container .is-style-full-width-feature-wrapper,
217.site-container .is-style-full-width-feature-wrapper-cta,
218.site-container .is-style-full-width-slanted {
219	margin: var(--feast-spacing-xl, 27px) auto;
220	padding: clamp(20px, calc(1.25rem + ((1vw - 6px) * 2.1429)), 32px) 0;
221	box-shadow: 0 0 0 100vmax var(--global-palette7, #f2f2f2);
222	-webkit-clip-path: inset(0 -100vmax);
223	clip-path: inset(0 -100vmax);
224}
225.site-container .is-style-full-width-feature-wrapper,
226.site-container .is-style-full-width-feature-wrapper-cta,
227.site-container .is-style-full-width-slanted {
228	background-color: var(--global-palette7, #f2f2f2);
229}
230.site-container .sidebar .is-style-full-width-feature-wrapper,
231.site-container .sidebar .is-style-full-width-feature-wrapper-cta,
232.site-container .sidebar .is-style-full-width-slanted {
233	box-shadow: none;
234	-webkit-clip-path: none;
235	clip-path: none;
236	background-color: var(--global-palette7, #f2f2f2);
237}
238.site-container .sidebar .is-style-full-width-feature-wrapper > *:first-child,
239.site-container .sidebar .is-style-full-width-feature-wrapper-cta > *:first-child,
240.site-container .sidebar .is-style-full-width-slanted > *:first-child {
241	margin-top: 0;
242}
243.feast-remove-top-padding {
244	padding-top: 0 !important;
245}
246.feast-remove-bottom-padding {
247	padding-bottom: 0 !important;
248}
249.feast-remove-top-margin {
250	margin-top: 0 !important;
251}
252.feast-remove-bottom-margin {
253	margin-bottom: 0 !important;
254}
255.z-10 {
256	position: relative;
257	z-index: 10;
258}
259body h1,
260body h2,
261body h3,
262body h4,
263body h5,
264body h6 {
265	line-height: 1.2;
266}
267.wp-block-media-text.is-variation-media-text-sidebar-bio {
268	display: flex;
269	flex-direction: column;
270	row-gap: 4px;
271}
272.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__media {
273	display: flex;
274	justify-content: center;
275}
276.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__media img {
277	border-radius: 1000px;
278}
279.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__content {
280	padding: 16px 24px 28px;
281	margin: 0;
282	display: flex;
283	flex-direction: column;
284	gap: 10px;
285	box-sizing: border-box;
286}
287.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__content h3,
288.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__content h2 {
289	font-size: 1.625em;
290}
291.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__content * {
292	margin: 0;
293	max-width: 100%;
294}
295.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__content p {
296	line-height: 1.5;
297}
298@media only screen and (max-width: 335px) {
299	.site-inner {
300		padding-left: 0;
301		padding-right: 0;
302	}
303}
304@media only screen and (max-width:1023px) {
305	.feast-layout--modern-footer {
306		padding-left: 5%;
307		padding-right: 5%;
308	}
309}
310@media only screen and (max-width: 600px) {
311	.site-container .feast-layout--modern-footer .is-style-full-width-feature-wrapper,
312	.site-container .feast-layout--modern-footer .is-style-full-width-feature-wrapper-cta,
313	.site-container .feast-layout--modern-footer .is-style-full-width-slanted,
314	.site-container .feast-layout--modern-footer .is-style-full-width-custom-background-feature-wrapper {
315		margin: var(--feast-spacing-xl, 27px) -5%;
316	}
317}
318a.wprm-recipe-jump:hover {
319	opacity: 1.0 !important;
320}
321.wp-block-media-text.is-variation-media-text-sidebar-bio .wp-block-media-text__media img {
322	border-radius: 178px;
323	aspect-ratio: 1 / 1;
324	object-fit: cover;
325}
326.feast-modern-category-layout {
327	text-align: initial;
328}
329.feast-jump-to-buttons .wp-block-button__link svg path {
330	fill: #fff;
331}
332h1,
333h2,
334h3,
335h4,
336h5,
337h6,
338div, 
339.wp-block-group {
340	scroll-margin-top: 80px;
341}
342body .feastmobilenavbar,
343body .desktop-inline-modern-menu ul {
344	overflow: visible;
345	contain: initial;
346}
347.feastmobilenavbar ul.menu > .menu-item {
348	position: relative;
349}
350.feastmobilenavbar ul.menu > .menu-item:hover > .sub-menu,
351.feastmobilenavbar ul.menu > .menu-item:focus-within > .sub-menu {
352	left: 0;
353	opacity: 1;
354}
355.feastmobilenavbar .menu-item-has-children .sub-menu {
356	background: #fff;
357	left: -9999px;
358	top: 100%;
359	opacity: 0;
360	border-radius: 5px;
361	box-shadow: 0 5px 10px rgba(0,0,0,0.15);
362	padding: 10px 0;
363	position: absolute;
364	width: auto;
365	min-width: 200px;
366	z-index: 99;
367	display: flex;
368	flex-direction: column;
369	row-gap: 0;
370	height: auto;
371	margin: 0;
372}
373.feastmobilenavbar .menu-item-has-children .sub-menu > .menu-item {
374	width: 100%;
375	display: block;
376	clear: both;
377	border-top: none !important;
378	min-height: 0 !important;
379	max-width: none;
380	text-align: left;
381}
382.feastmobilenavbar .menu-item-has-children .sub-menu > .menu-item a {
383	width: 100%;
384	background: transparent;
385	padding: 8px 30px 8px 20px;
386	position: relative;
387	white-space: nowrap;
388	display: block;
389}
390@media(max-width:768px) {
391	.menu-item-has-children .sub-menu {
392		left: auto;
393		opacity: 1;
394		position: relative;
395		width: 100%;
396		border-radius: 0;
397		box-shadow: none;
398		padding: 0;
399		display: none;
400	}
401}.wp-block-media-text {
402	row-gap: var(--global-md-spacing, 22px);
403}
404	.wp-block-group {
405	margin-top: var(--global-md-spacing, 1.5rem);
406	margin-bottom: var(--global-md-spacing, 1.5rem);
407}
408
409/*# sourceURL=feast-global-styles-inline-css */
410</style>
411
412<style id='block-visibility-screen-size-styles-inline-css' type='text/css'>
413/* Large screens (desktops, 992px and up) */
414@media ( min-width: 992px ) {
415	.block-visibility-hide-large-screen {
416		display: none !important;
417	}
418}
419
420/* Medium screens (tablets, between 768px and 992px) */
421@media ( min-width: 768px ) and ( max-width: 991.98px ) {
422	.block-visibility-hide-medium-screen {
423		display: none !important;
424	}
425}
426
427/* Small screens (mobile devices, less than 768px) */
428@media ( max-width: 767.98px ) {
429	.block-visibility-hide-small-screen {
430		display: none !important;
431	}
432}
433/*# sourceURL=block-visibility-screen-size-styles-inline-css */
434</style>
435<link rel='stylesheet' id='wp-block-paragraph-css' href='https://ruhlman.
435com/wp-includes/blocks/paragraph/style.min.css?ver=6.9.9' type='text/css' media='all' />
436<style id='wp-block-paragraph-inline-css' type='text/css'>
437.is-style-paragraph-right-arrow a::after { content: " →"; position: relative; margin-left: 0; }
438.is-style-paragraph-external-arrow a::after { content: " ↗"; position: relative; margin-left: 0; }
439/*# sourceURL=wp-block-paragraph-inline-css */
440</style>
441<link rel='stylesheet' id='wp-block-heading-css' href='https://ruhlman.com/wp-includes/blocks/heading/style.min.css?ver=6.9.9' type='text/css' media='all' />
442<script type="rocketlazyloadscript" data-rocket-type="text/javascript" src="https://ruhlman.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 442
442
443<script type="rocketlazyloadscript" data-rocket-type="text/javascript" src="https://ruhlman.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
443
444<link rel="https://api.w.org/" href="https://ruhlman.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://ruhlman.com/wp-json/wp/v2/pages/36767" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://ruhlman.com/xmlrpc.php?rsd" />
445<meta name="generator" content="WordPress 6.9.9" />
446<link rel='shortlink' href='https://ruhlman.com/' />
447<style id='feast-blockandfront-styles'>.feast-about-author { background-color: #f2f2f2; color: #32373c; padding: 17px; margin-top: 57px; display: grid; grid-template-columns: 1fr 3fr !important; } .feast-about-author h2 { margin-top: 7px !important;} .feast-about-author img{ border-radius: 50% !important; }aside .feast-about-author { grid-template-columns: 1fr !important; }.wp-block-search .wp-block-search__input { max-width: 100%; background: #FFF; color: #000; }.wp-block-separator { color: #D6D6D6; border-bottom: none; margin-top: 16px; margin-bottom: 16px; }.screen-reader-text { width: 1px; height: 1px; }footer ul li, .site-footer ul li { list-style-type: none; }footer ul li, .site-footer ul li { list-style-type: none; }aside .wp-block-search { display: grid; grid-template-columns: 1fr; margin: 37px 0;  } aside .wp-block-search__inside-wrapper { display: grid !important; grid-template-columns: 1fr; } aside input { min-height: 50px; }  ​aside .wp-block-search__label, aside .wp-block-search__button { display: none; } aside p, aside div, aside ul { margin: 17px 0; }@media only screen and (max-width: 600px) { aside .wp-block-search { grid-template-columns: 1fr; } aside input { min-height: 50px; margin-bottom: 17px;} }.feast-button a { border: 2px solid #CCC; padding: 7px 14px; border-radius: 20px; text-decoration: none !important; font-weight: bold; } .feast-button { padding: 27px 7px; }a.wp-block-button__link { text-decoration: none !important; }.feast-box-primary {  padding: 17px !important; margin: 17px 0 !important;  }.feast-box-secondary { padding: 17px !important; margin: 17px 0 !important;  }.feast-box-primary li, .feast-box-secondary li {margin-left: 17px !important; }.feast-checklist li::marker { color: transparent; } .feast-checklist li:before { content: '✓'; margin-right: 17px; }.schema-faq-question { font-size: 1.2em; display: block; margin-bottom: 7px;} .schema-faq-section { margin: 37px 0; }</style>
448<style id="feast-hide-h1">.entry-header { display: none; }</style>
449<style type="text/css">
450	.feast-category-index-list, .fsri-list {
451		display: grid;
452		grid-template-columns: repeat(2, minmax(0, 1fr) );
453		grid-gap: 57px 17px;
454		list-style: none;
455		list-style-type: none;
456		margin: 17px 0 !important;
457	}
458	.feast-category-index-list li,
459	.fsri-list li {
460		text-align: center;
461		position: relative;
462		list-style: none !important;
463		margin-left: 0 !important;
464		list-style-type: none !important;
465		overflow: hidden;
466	}
467	.feast-category-index-list li {
468		min-height: 150px;
469	}
470	.feast-category-index-list li a.title {
471		text-decoration: none;
472	}
473	.feast-category-index-list-overlay .fsci-title {
474		position: absolute;
475		top: 88%;
476		left: 50%;
477		transform: translate(-50%, -50%);
478		background: #FFF;
479		padding: 5px;
480		color: #333;
481		font-weight: bold;
482		border: 2px solid #888;
483		text-transform: uppercase;
484		width: 80%;
485	}
486	.listing-item:focus-within, .wp-block-search__input:focus {outline: 2px solid #555; }
487	.listing-item a:focus, .listing-item a:focus .fsri-title, .listing-item a:focus img { opacity: 0.8; outline: none; }
488	.listing-item a, .feast-category-index-list a { text-decoration: none !important; word-break: break-word; font-weight: initial; }
489	li.listing-item:before { content: none !important; } /* needs to override theme */
490	.fsri-list, ul.feast-category-index-list { padding-left: 0 !important; }
491	.fsri-list .listing-item { margin: 0; }
492	.fsri-list .listing-item img { display: block; }
493	.fsri-list .feast_3x4_thumbnail { object-fit: cover; width: 100%; aspect-ratio: 3/4; }
494	.fsri-list .feast_2x3_thumbnail { object-fit: cover; width: 100%; aspect-ratio: 2/3; }
495	.fsri-list .feast_4x3_thumbnail { object-fit: cover; width: 100%; aspect-ratio: 4/3; }
496	.fsri-list .feast_1x1_thumbnail { object-fit: cover; width: 100%; aspect-ratio: 1/1; }
497	.fsri-title, .fsci-title { text-wrap: balance; }
498	.listing-item { display: grid; align-content: flex-start; } .fsri-rating, .fsri-time { place-self: end center; } /* align time + rating bottom */
499	.fsri-category { padding: 8px 12px 0; }
500	.feast-recipe-index .feast-category-link { text-align: right; }
501	.feast-recipe-index .feast-category-link a { text-decoration: underline; }
502	.feast-image-frame, .feast-image-border { border: 3px solid #DDD; }
503	.feast-square-image { aspect-ratio: 1/1; object-fit: cover; }
504	.feast-image-round, .feast-image-round img, .feast-category-index-list.feast-image-round svg, .feast-media-text-image-round .wp-block-media-text__media img { border-radius: 50%; }
505	.feast-image-shadow { box-shadow: 3px 3px 5px #AAA; }
506	.feast-line-through { text-decoration: line-through; }
507	.feast-grid-full, .feast-grid-half, .feast-grid-third, .feast-grid-fourth, .feast-grid-fifth { display: grid; grid-gap: 57px 17px; }
508	.feast-grid-full { grid-template-columns: 1fr !important; }
509	.feast-grid-half { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
510	.feast-grid-third { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
511	.feast-grid-fourth { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
512	.feast-grid-fifth { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
513	@media only screen and (max-width:601px) {
514		.feast-grid-full-horizontal { grid-template-columns: 1fr !important; }
515		.feast-grid-full-horizontal .listing-item { min-height: 0; }
516		.feast-grid-full-horizontal .listing-item a { display: flex; align-items: center; }
517		.feast-grid-full-horizontal .listing-item a > img { width: 33%; }
518		.feast-grid-full-horizontal .listing-item a > .fsri-title { width: 67%; padding: 0; text-align: left; margin-top: 0 !important; padding: 0 16px; }
519		.feast-grid-full-horizontal .fsri-rating, .feast-grid-full-horizontal .fsri-time, .feast-grid-full-horizontal .fsri-recipe
519-keys, .feast-grid-full-horizontal .fsri-recipe-cost { display: none !important; }
520		body .feast-recipe-index .feast-grid-full-horizontal { row-gap: 17px; }
521		body .feast-recipe-index .feast-grid-full-horizontal li { margin-bottom: 0; }
522	}
523	@media only screen and (min-width: 600px) {
524		.feast-category-index-list { grid-template-columns: repeat(4, minmax(0, 1fr) ); }
525		.feast-desktop-grid-full { grid-template-columns: 1fr !important; }
526		.feast-desktop-grid-half { grid-template-columns: repeat(2, 1fr) !important; }
527		.feast-desktop-grid-third { grid-template-columns: repeat(3, 1fr) !important; }
528		.feast-desktop-grid-fourth { grid-template-columns: repeat(4, 1fr) !important; }
529		.feast-desktop-grid-fifth { grid-template-columns: repeat(5, 1fr) !important; }
530		.feast-desktop-grid-sixth { grid-template-columns: repeat(6, 1fr) !important; }
531		.feast-desktop-grid-ninth { grid-template-columns: repeat(6, 1fr) !important; }
532		.feast-desktop-grid-half-horizontal, .feast-desktop-grid-third-horizontal { grid-template-columns: repeat(2, 1fr) !important; }
533		.feast-desktop-grid-full-horizontal { grid-template-columns: 1fr !important; }
534		.feast-desktop-grid-half-horizontal .listing-item a, .feast-desktop-grid-full-horizontal .listing-item a, .feast-desktop-grid-third-horizontal .listing-item a { display: flex; align-items: center; }
535		.feast-desktop-grid-half-horizontal .listing-item a > img, .feast-desktop-grid-full-horizontal a > img, .feast-desktop-grid-third-horizontal .listing-item a > img { width: 33% !important; margin-bottom: 0; }
536		.feast-desktop-grid-half-horizontal .listing-item a > .fsri-title, .feast-desktop-grid-full-horizontal a > .fsri-title, .feast-desktop-grid-third-horizontal .listing-item a > .fsri-title { width: 67%; padding: 0 16px; text-align: left; margin-top: 0 !important; }
537		.feast-desktop-grid-half-horizontal .fsri-rating, .feast-desktop-grid-half-horizontal .fsri-time, .feast-desktop-grid-half-horizontal .fsri-recipe-keys, .feast-desktop-grid-half-horizontal .fsri-recipe-cost { display: none !important; }
538		.feast-desktop-grid-third-horizontal .fsri-rating, .feast-desktop-grid-third-horizontal .fsri-time, .feast-desktop-grid-third-horizontal .fsri-recipe-keys, .feast-desktop-grid-third-horizontal .fsri-recipe-cost { display: none !important; }
539		.feast-desktop-grid-full-horizontal .fsri-rating, .feast-desktop-grid-full-horizontal .fsri-time, .feast-desktop-grid-full-horizontal .fsri-recipe-keys, .feast-desktop-grid-full-horizontal .fsri-recipe-cost { display: none !important; }
540	}
541	@media only screen and (min-width:900px) {
542		.feast-desktop-grid-third-horizontal { grid-template-columns: repeat(3, 1fr) !important; }
543		.feast-desktop-grid-ninth { grid-template-columns: repeat(9, 1fr) !important; }
544	}
545	@media only screen and (min-width:900px) and (max-width:1200px) {
546		.feast-desktop-grid-third-horizontal .listing-item a > img {
547			width: 44%;
548		}
549	}
550	@media only screen and (min-width:600px) and (max-width:775px) {
551		.feast-desktop-grid-third-horizontal .listing-item a > img,
552		.feast-desktop-grid-half-horizontal .listing-item a > img {
553			width: 44%;
554		}
555	}
556	@media only screen and (min-width: 1100px) { .full-width-content main.content { width: 1080px; max-width: 1080px; } .full-width-content .sidebar-primary { display: none;  } }
557	@media only screen and (max-width: 600px) { .entry-content :not(.wp-block-gallery) .wp-block-image { width: 100% !important; } }
558	@media only screen and (min-width: 1024px) {
559		.feast-full-width-wrapper { width: 100vw; position: relative; left: 50%; right: 50%; margin: 37px -50vw; background: #F5F5F5; padding: 17px 0; }
560		.feast-full-width-wrapper .feast-recipe-index { width: 1140px; margin: 0 auto; }
561		.feast-full-width-wrapper .listing-item { background: #FFF; padding: 17px; }
562	}
563	.feast-prev-next { display: grid; grid-template-columns: 1fr;  border-bottom: 1px solid #CCC; margin: 57px 0;  }
564	.feast-prev-post, .feast-next-post { padding: 37px 17px; border-top: 1px solid #CCC; }
565	.feast-next-post { text-align: right; }
566	@media only screen and (min-width: 600px) {
567		.feast-prev-next { grid-template-columns: 1fr 1fr; border-bottom: none; }
568		.feast-next-post { border-left: 1px solid #CCC;}
569		.feast-prev-post, .feast-next-post { padding: 37px; }
570	}
571	.has-background { padding: 1.25em 2.375em; margin: 1em 0; }
572	figure { margin: 0 0 1em; }
573	div.wp-block-image > figure { margin-bottom: 1em; }
574	@media only screen and (max-width: 1023px) {
575		.content-sidebar .content, .sidebar-primary { float: none; clear: both; }
576		.has-background { padding: 1em; margin: 1em 0; }
577	}
578	hr.has-background { padding: inherit; margin: inherit; }
579	body { -webkit-animation: none !important; animation: none !important; }
580	@media only screen and (max-width: 600px) {
581		body {
582			--wp--preset--font-size--small: 16px !important;
583		}
584	}
585	@media only screen and (max-width: 600px) { .feast-desktop-only { display: none; } }
586	@media only screen and (min-width: 600px) { .feast-mobile-only { display: none; } }
587	summary { display: list-item; }
588	.comment-form-cookies-consent > label {
589		display: inline-block;
590		margin-left: 30px;
591	}
592	@media only screen and (max-width: 600px) { .comment-form-cookies-consent { display: grid; grid-template-columns: 1fr 12fr; } }
593	.bypostauthor .comment-author-name { color: unset; }
594	.comment-list article header { overflow: auto; }
595	.fsri-rating .wprm-recipe-rating { pointer-events: none; }
596	.fsri-tasty-recipe-count {
597		display: block;
598		width: 100%;
599		font-size: .8em;
600	}
601	nav#breadcrumbs { margin: 5px 0 15px; }.page .content a {
602	text-decoration: underline;
603}
604.entry-time:after,
605.entry-author:after {
606	content: "";
607	margin: inherit;
608}
609.entry-content .wp-block-group ol li, .entry-content .wp-block-group ul li {
610	margin: 0 0 17px 37px;
611}
612.entry-content ul:not(.fsri-list):not(.feast-category-index-list) li,
613.feast-modern-category-layout ul:not(.fsri-list):not(.feast-category-index-list) li {
614	margin-left: 0;
615	margin-bottom: 0;
616}
617</style><style type="text/css" id='feastbreadcrumbstylesoverride'>
618@media only screen and (max-width: 940px) {
619	nav#breadcrumbs {
620		display: block;
621	}
622}
623</style><style type="text/css" id='feastfoodieprooverrides'>
624.page .content a {
625	text-decoration: underline;
626}
627.entry-time:after,
628.entry-author:after {
629	content: "";
630	margin: inherit;
631}
632</style><style type="text/css"> .tippy-box[data-theme~="wprm"] { background-color: #333333; color: #FFFFFF; } .tippy-box[data-theme~="wprm"][data-placement^="top"] > .tippy-arrow::before { border-top-color: #333333; } .tippy-box[data-theme~="wprm"][data-placement^="bottom"] > .tippy-arrow::before { border-bottom-color: #333333; } .tippy-box[data-theme~="wprm"][data-placement^="left"] > .tippy-arrow::before { border-left-color: #333333; } .tippy-box[data-theme~="wprm"][data-placement^="right"] > .tippy-arrow::before { border-right-color: #333333; } .tippy-box[data-theme~="wprm"] a { color: #FFFFFF; } .wprm-comment-rating svg { width: 18px !important; height: 18px !important; } img.wprm-comment-rating { width: 90px !important; height: 18px !important; } body { --comment-rating-star-color: #343434; } body { --wprm-popup-font-size: 16px; } body { --wprm-popup-background: #ffffff; } body { --wprm-popup-title: #000000; } body { --wprm-popup-content: #444444; } body { --wprm-popup-button-background: #444444; } body { --wprm-popup-button-text: #ffffff; } body { --wprm-popup-accent: #747B2D; }</style><style type="text/css">.wprm-glossary-term {color: #5A822B;text-decoration: underline;cursor: help;}</style><link rel="icon" href="https://ruhlman.com/wp-content/themes/foodiepro-v441/images/favicon.ico" />
633<link rel="pingback" href="https://ruhlman.com/xmlrpc.php" />
634	<style>
635		/* Add animation (Chrome, Safari, Opera) */
636		@-webkit-keyframes openmenu {
637			from {left:-100px;opacity: 0;}
638			to {left:0px;opacity:1;}
639		}
640		@-webkit-keyframes closebutton {
641			0% {opacity: 0;}
642			100% {opacity: 1;}
643		}
644
645		/* Add animation (Standard syntax) */
646		@keyframes openmenu {
647			from {left:-100px;opacity: 0;}
648			to {left:0px;opacity:1;}
649		}
650		@keyframes closebutton {
651			0% {opacity: 0;}
652			100% {opacity: 1;}
653		}
654
655		.mmmadminlinks {
656			position: absolute;
657			left: 20px;
658			top: 0;
659			width: 200px;
660			line-height: 25px;
661			text-align: left;
662			display: none;
663		}
664		@media only screen and ( min-width: 1000px ) {
665			.mmmadminlinks { display: block; }
666		}
667
668		/* The mmm's background */
669		.feastmobilemenu-background {
670			display: none;
671			position: fixed;
672			z-index: 9999;
673			left: 0;
674			top: 0;
675			width: 100%;
676			height: 100%;
677			overflow: auto;
678			background-color: rgb(0, 0, 0);
679			background-color: rgba(0, 0, 0, 0.4);
680		}
681
682		/* Display the mmm when targeted */
683		.feastmobilemenu-background:target {
684			display: table;
685			position: fixed;
686		}
687
688		/* The mmm box */
689		.mmm-dialog {
690			display: table-cell;
691			vertical-align: top;
692			font-size: 20px;
693		}
694
695		/* The mmm's content */
696		.mmm-dialog .mmm-content {
697			margin: 0;
698			padding: 10px 10px 10px 20px;
699			position: fixed;
700			left: 0;
701			background-color: #FEFEFE;
702			contain: strict;
703			overflow-x: hidden;
704			overflow-y: auto;
705			outline: 0;
706			border-right: 1px #777 solid;
707			border-bottom: 1px #777 solid;
708			width: 320px;
709			height: 90%;
710			box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
711
712			/* Add animation */
713			-webkit-animation-name: openmenu; /* Chrome, Safari, Opera */
714			-webkit-animation-duration: 0.6s; /* Chrome, Safari, Opera */
715			animation-name: openmenu;
716			animation-duration: 0.6s;
717		}
718		.mmm-content ul.sub-menu {
719			padding-left: 16px;
720		}
721		.mmm-content li {
722			list-style: none;
723		}
724		#menu-feast-modern-mobile-menu li,
725		.desktop-inline-modern-menu > ul.menu li {
726			min-height: 50px;
727			margin-left: 5px;
728			list-style: none;
729		}
730		#menu-feast-modern-mobile-menu li a,
731		.desktop-inline-modern-menu > ul.menu li a {
732			color: inherit;
733			text-decoration: inherit;
734		}
735
736		/* The button used to close the mmm */
737		.closebtn {
738			text-decoration: none;
739			float: right;
740			margin-right: 10px;
741			font-size: 50px;
742			font-weight: bold;
743			color: #333;
744			z-index: 1301;
745			top: 0;
746			position: fixed;
747			left: 270px;
748			-webkit-animation-name: closebutton; /* Chrome, Safari, Opera */
749			-webkit-animation-duration: 1.5s; /* Chrome, Safari, Opera */
750			animation-name: closebutton;
751			animation-duration: 1.5s;
752		}
753
754		.closebtn:hover,
755		.closebtn:focus {
756			color: #555;
757			cursor: pointer;
758		}
759		@media (prefers-reduced-motion) { /* accessibility animation fix */
760			.mmm-dialog .mmm-content, .closebtn {
761			animation: none !important;
762			}
763		}
764		.mmmheader {
765			font-size: 25px;
766			color: #FFF;
767			height: 80px;
768			display: flex;
769			justify-content: space-between;
770		}
771		#mmmlogo {
772			max-width: 200px;
773			max-height: 70px;
774		}
775		#feast-mobile-search {
776			margin-bottom: 17px;
777			min-height: 50px;
778			overflow: auto;
779		}
780		#feast-mobile-search input[type=submit] {
781			border: 0;
782			height: 30px;
783			margin: 5px 0 0 -30px;
784			padding: 15px;
785			position: absolute;
786			width: 30px;
787			z-index: 200;
788			clip: unset;
789			color: transparent;
790			background: none;
791		}
792		#feast-mobile-search input[type=submit]:hover {
793			background: transparent;
794		}
795		#feast-mobile-search input[type=search] {
796			width: 100%;
797		}
798
799		#feast-mobile-menu-social-icons {
800			margin-top: 17px;
801		}
802
803		#feast-social .simple-social-icons {
804			list-style: none;
805			margin: 0 !important;
806		}
807
808		.feastmobilenavbar {
809			position: fixed;
810			top: 0;
811			left: 0;
812			z-index: 1300;
813			width: 100%;
814			height: 80px;
815			padding: 0;
816			margin: 0 auto;
817			box-sizing: border-box;
818			border-top: 1px solid #CCC;
819			border-bottom: 1px solid #CCC;
820			background: #FFF;
821			display: grid;
822			grid-template-columns: repeat(7, minmax(50px, 1fr));
823			text-align: center;
824			contain: strict;
825			overflow: hidden;
826		}
827		.feastmobilenavbar > div { height: 80px; }
828		.admin-bar .feastmobilenavbar {
829			top: 32px;
830		}
831		@media screen and (max-width:782px) {
832			.admin-bar .feastmobilenavbar {
833				top: 0;
834				position: sticky;
835			}
836			.admin-bar .site-container, .admin-bar .body-template-content {
837				margin-top: 0;
838			}
839		}
840		.feastmobilenavbar .feastmenulogo > a {
841			display: flex;
842			align-items: center;
843		}
844		.feastmobilenavbar a img {
845			margin-bottom: inherit !important;
846		}
847		.feastmenutoggle, .feastsearchtoggle, .feastsubscribebutton {
848			display: flex;
849			align-items: center;
850			justify-items: center;
851			justify-content: center;
852		}
853
854		
855		.feastsearchtoggle svg, .feastmenutoggle svg {
856			width: 30px;
857			height: 30px;
858			padding: 10px;
859			box-sizing: content-box;
860			color: black;
861		}
862		.feastsubscribebutton {
863			overflow: hidden;
864		}
865		.feastsubscribebutton img {
866			max-width: 90px;
867			padding: 15px;
868			margin: 1px;
869		}
870		.feastsubscribebutton svg {
871			color: #000;
872		}
873				.feastmenulogo {
874			overflow: hidden;
875			display: flex;
876			align-items: center;
877			justify-content: center;
878			grid-column-end: span 5;
879		}
880
881		
882		@media only screen and ( max-width: 1199px ) {
883			.feastmenulogo {grid-column-end: span 5; }
884			.feastsubscribebutton { grid-column-end: span 2; }
885		}
886		@media only screen and (max-width: 359px) { /* 320px fix */
887			.feastmobilenavbar {
888				grid-template-columns: repeat(6, minmax(50px, 1fr));
889			}
890			.feastmenulogo {grid-column-end: span 4; }		}
891				@media only screen and ( min-width: 1200px ) {
892			.feastmobilenavbar { display: none; }
893		}
894		@media only screen and ( max-width: 1199px ) {
895			header.site-header, .nav-primary  { display: none !important; visibility: hidden; }
896			.site-container, .body-template-content {  margin-top: 80px;  /* prevents menu overlapping content */ }
897		}
898			</style>
899
900	<style id="feast-edit-font-sizes">body { font-size: 18px; }</style>		<style type="text/css" id="wp-custom-css">
901			.search-form input{
902	width: 90px;
903}		</style>
904		<style id='core-block-supports-inline-css' type='text/css'>
905.wp-container-core-columns-is-layout-9d6595d7{flex-wrap:nowrap;}
906/*# sourceURL=core-block-supports-inline-css */
907</style>
908
909</head>
910<body class="home wp-singular page-template-default page page-id-36767 wp-theme-genesis wp-child-theme-foodiepro-v441 custom-header header-image header-full-width content-sidebar genesis-breadcrumbs-hidden genesis-footer-widgets-hidden foodie-pro feast-plugin wp-6-9-9 fp-14-9-0"><div class="site-container"><ul class="genesis-skip-link"><li><a href="#genesis-nav-primary" class="screen-reader-shortcut"> Skip to primary navigation</a></li><li><a href="#genesis-content" class="screen-reader-shortcut"> Skip to main content</a></li><li><a href="#genesis-sidebar-primary" class="screen-reader-shortcut"> Skip to primary sidebar</a></li></ul><header class="site-header"><div class="wrap"><div class="title-area"><div class="site-title"><a href="https://ruhlman.com/" title="Ruhlman" ><img src="https://ruhlman.com/wp-content/uploads/2025/01/cropped-cropped-ruhlman-top-banner.png" title="Ruhlman" alt="Ruhlman"  data-pin-nopin="true" /></a></div></div></div></header><nav class="nav-primary" aria-label="Main" id="genesis-nav-primary"><div class="wrap"><ul id="menu-feast-modern-mobile-menu" class="menu genesis-nav-menu menu-primary"><li id="menu-item-25200" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25200"><a href="https://ruhlman.com/about-michael/"><span >About</span></a></li>
911<li id="menu-item-31414" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31414"><a href="https://ruhlman.com/ruhlmans-books/"><span >My Books</span></a></li>
912<li id="menu-item-37029" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37029"><a href="https://ruhlman.com/kitchen-essentials/"><span >My Kitchen Essentials</span></a></li>
913<li id="menu-item-31600" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31600"><a href="https://ruhlman.com/press/"><span >Press</span></a></li>
914<li id="menu-item-36819" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36819"><a href="https://ruhlman.com/cv/"><span >CV</span></a></li>
915<li id="menu-item-25222" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25222"><a href="https://ruhlman.com/contact-2/"><span >Contact</span></a></li>
916<li id="feast-search" class="feast-search menu-item"><form class="search-form" method="get" action="https://ruhlman.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-1">Search</label><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search"><input class="search-form-submit" type="submit" value="Search"><meta content="https://ruhlman.com/?s={s}"></form></li></ul></div></nav><header class="feastmobilenavbar"><div class="feastmenutoggle"><a href="#feastmobilemenu"><?xml version="1.0" encoding="iso-8859-1"?>
917<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "//www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
918<svg version="1.1" id="Capa_1" xmlns="//www.w3.org/2000/svg" xmlns:xlink="//www.w3.org/1999/xlink" x="0px" y="0px" width="30px" height="30px" viewBox="0 0 459 459" style="enable-background:new 0 0 459 459;" xml:space="preserve" aria-labelledby="menuicon" role="img">
919	<title id="menuicon">menu icon</title>
920	<g id="menu">
921		<path fill="currentColor" d="M0,382.5h459v-51H0V382.5z M0,255h459v-51H0V255z M0,76.5v51h459v-51H0z"/>
922	</g>
923</svg>
924</a></div><div class="feastmenulogo"><a href="https://ruhlman.com"><img src="https://ruhlman.com/wp-content/uploads/2025/02/small-quill.png" srcset="https://ruhlman.com/wp-content/uploads/2025/02/small-quill.png 2x" alt="go to homepage" data-skip-lazy data-pin-nopin="true" height="70" width="200" /></a></div><div class="feastsearchtoggle"><a href="#feastmobilemenu"><svg xmlns="//www.w3.org/2000/svg" xmlns:xlink="//www.w3.org/1999/xlink" xml:space="preserve" xmlns:svg="//www.w3.org/2000/svg" version="1.1" x="0px" y="0px" width="30px" height="30px" viewBox="0 0 100 100" aria-labelledby="searchicon" role="img">
925  <title id="searchicon">search icon</title>
926  <g transform="translate(0,-952.36218)">
927    <path fill="currentColor" d="M 40 11 C 24.007431 11 11 24.00743 11 40 C 11 55.9926 24.007431 69 40 69 C 47.281794 69 53.935267 66.28907 59.03125 61.84375 L 85.59375 88.40625 C 86.332786 89.16705 87.691654 89.1915 88.4375 88.4375 C 89.183345 87.6834 89.175154 86.2931 88.40625 85.5625 L 61.875 59.03125 C 66.312418 53.937244 69 47.274551 69 40 C 69 24.00743 55.992569 11 40 11 z M 40 15 C 53.830808 15 65 26.16919 65 40 C 65 53.8308 53.830808 65 40 65 C 26.169192 65 15 53.8308 15 40 C 15 26.16919 26.169192 15 40 15 z " transform="translate(0,952.36218)">
928    </path>
929  </g>
930</svg>
931</a></div></header><nav id="feastmobilemenu" class="feastmobilemenu-background" aria-label="main"><div class="mmm-dialog"><div class="mmm-content"><a href="https://ruhlman.com"><img id="mmmlogo" src="https://ruhlman.com/wp-content/uploads/2025/02/small-quill.png" srcset="https://ruhlman.com/wp-content/uploads/2025/02/small-quill.png 2x" alt="Homepage link" data-pin-nopin="true" /></a><div id="feast-mobile-search"><form class="search-form" method="get" action="https://ruhlman.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-2">Search</label><input class="search-form-input" type="search" name="s" id="searchform-2" placeholder="Search"><input class="search-form-submit" type="submit" value="Search"><meta content="https://ruhlman.com/?s={s}"></form></div><ul id="menu-feast-modern-mobile-menu-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25200"><a href="https://ruhlman.com/about-michael/">About</a></li>
932<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31414"><a href="https://ruhlman.com/ruhlmans-books/">My Books</a></li>
933<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37029"><a href="https://ruhlman.com/kitchen-essentials/">My Kitchen Essentials</a></li>
934<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31600"><a href="https://ruhlman.com/press/">Press</a></li>
935<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36819"><a href="https://ruhlman.com/cv/">CV</a></li>
936<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25222"><a href="https://ruhlman.com/contact-2/">Contact</a></li>
937</ul><div id="feast-mobile-menu-social-icons"><div id="feast-social"></div></div><a href="#" class="closebtn">×</a></div></div></nav><div class="site-inner"><div class="content-sidebar-wrap"><main class="content" id="genesis-content"><article class="post-36767 page type-page status-publish entry" aria-label="MICHAEL RUHLMAN"><header class="entry-header"><h1 class="entry-title">MICHAEL RUHLMAN</h1>
938</header><div class="entry-content">
939<figure class="wp-block-image size-full block-visibility-hide-large-screen block-visibility-hide-medium-screen"><img decoding="async" width="480" height="514" src="https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078.jpeg" alt="" class="wp-image-37094" srcset="https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078.jpeg 480w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078-360x386.jpeg 360w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_8078-180x193.jpeg 180w" sizes="(max-width: 480px) 100vw, 480px" /></figure>
940
941
942
943<p class="block-visibility-hide-large-screen block-visibility-hide-medium-screen">Welcome to my website. Here you’ll find information on my newsletter, all my books, my complete bio, contact information, and recommendations for my favorite kitchen tools and household goods.</p>
944
945
946
947<div class="wp-block-cover"><img decoding="async" width="1644" height="1452" class="wp-block-cover__image-background wp-image-37194" alt="" src="https://ruhlman.com/wp-content/uploads/2025/02/ruhlman1.jpg" data-object-fit="cover" srcset="https://ruhlman.com/wp-content/uploads/2025/02/ruhlman1.jpg 1644w, https://ruhlman.com/wp-content/uploads/2025/02/ruhlman1-360x318.jpg 360w, https://ruhlman.com/wp-content/uploads/2025/02/ruhlman1-720x636.jpg 720w, https://ruhlman.com/wp-content/uploads/2025/02/ruhlman1-768x678.jpg 768w, https://ruhlman.
947com/wp-content/uploads/2025/02/ruhlman1-1536x1357.jpg 1536w, https://ruhlman.com/wp-content/uploads/2025/02/ruhlman1-180x159.jpg 180w" sizes="(max-width: 1644px) 100vw, 1644px" /><span aria-hidden="true" class="wp-block-cover__background has-background-dim" style="background-color:#5b4636"></span><div class="wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow">
948<center>
949<div style="background: rgba(255,255,255,0.3); padding: 10px; border-radius: 4px; display: inline-block;">
950  <iframe loading="lazy"
951    src="https://ruhlman.substack.com/embed"
952    width="480"
953    height="320"
954    style="border:none; background: transparent;"
955    frameborder="0"
956    scrolling="no"
957  ></iframe>
958</div>
959</center>
960</div></div>
961
962
963
964<p class="has-text-align-center has-small-font-size"></p>
965
966
967
968<h2 class="wp-block-heading">About Ruhlman's Newsletter</h2>
969
970
971
972<p>My newsletter covers what I love most: food and cooking, recipes, books we’re reading (my wife, the novelist Ann Hood recommends great new books each week), dispatches from our travels, movies and television recommendations, always a different cocktail, and links to my favorite stories of the week. It’s kind of like my own personal mini-magazine. When you subscribe, you’ll receive it as an email every other Saturday. Paid subscribers receive additional posts focused on food and travel, restaurant and hotel recommendations, access to all archives, and direct access to me for personal questions and comments. <a href="https://ruhlman.substack.com/subscribe">Subscribe here</a>.</p>
973
974
975
976<h2 class="wp-block-heading has-medium-font-size">Read The Most Recent</h2>
977
978
979
980<div id="substack-feed-embed" style="font-family: inherit;"></div>
981<script type="rocketlazyloadscript">
982  fetch('https://api.rss2json.com/v1/api.json?rss_url=https://ruhlman.substack.com/feed')
983    .then(r => r.json())
984    .then(data => {
985      const post = data.items[0];
986      const date = new Date(post.pubDate).toLocaleDateString('en-US', {year:'numeric', month:'long', day:'numeric'});
987      const desc = post.description.replace(/<[^>]+>/g, '').substring(0, 200) + '...';
988      document.getElementById('substack-feed-embed').innerHTML = `
989        <div style="padding: 16px 0;">
990          <h3 style="margin:0 0 6px;"><a href="${post.link}" target="_blank" style="text-decoration:none;">${post.title}</a></h3>
991          <p style="margin:0 0 8px; font-size:0.85em; opacity:0.7;">${date}</p>
992          <p style="margin:0 0 10px;">${desc}</p>
993          <a href="${post.link}" target="_blank">Read more →</a>
994        </div>
995      `;
996    });
997</script>
997
998
999
1000
1001<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
1002<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
1003<h2 class="wp-block-heading">Welcome!</h2>
1004</div></div>
1005</div></div>
1006
1007
1008
1009<figure class="wp-block-image size-full block-visibility-hide-small-screen"><img loading="lazy" decoding="async" width="1690" height="1690" src="https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2.jpeg" alt="" class="wp-image-36989" srcset="https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2.jpeg 1690w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2-360x360.jpeg 360w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2-720x720.jpeg 720w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2-180x180.jpeg 180w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2-768x768.jpeg 768w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2-1536x1536.jpeg 1536w, https://ruhlman.com/wp-content/uploads/2025/01/IMG_3332-2-500x500.jpeg 500w" sizes="auto, (max-width: 1690px) 100vw, 1690px" /></figure>
1010
1011
1012
1013<p class="block-visibility-hide-small-screen">Welcome to my website! Here you’ll find my complete bio, a list of all my books, recommendations for my favorite kitchen tools and household goods, and information on my newsletter.</p>
1014
1015
1016
1017<p class="block-visibility-hide-small-screen">To keep up with what’s going on in food, cocktails, travel (I and my wife, <a href="https://www.annhood.us/">Ann Hood</a>, above), travel all over the world), books and movies, or just to be part of the commenting community, <a href="https://ruhlman.substack.com/">subscribe to my newsletter</a>.</p>
1018
1019
1020
1021<p></p>
1022
1023
1024
1025<h2 class="wp-block-heading"><a href="/ruhlmans-books">My Books</a></h2>
1026
1027
1028
1029<p>Since fifth grade I knew I wanted to be a writer—a book writer. It only took 23 years of daily writing to get there. In 1996, I published&nbsp;<em><a href="https://www.amazon.com/Boys-Themselves-Return-Single-Sex-Education/dp/ruhlmancom/0805055959/">Boys Themselves</a></em>&nbsp;(read this, <a href="https://www.nytimes.com/1996/09/29/books/separate-but-equal.html">my first NYTimes review</a>). I followed <em>Boys</em> with&nbsp;<em><a href="https://www.amazon.com/Making-Chef-Mastering-Culinary-Institute/dp/ruhlmancom/080508939X">The Making of a Chef</a></em>, and then my first collaboration, with Thomas Keller, <a href="https://www.amazon.com/French-Laundry-Cookbook-Thomas-Library/dp/ruhlmancom/1579651267/">The French Laundry Cookbook</a>. All told, I’ve written 20 of my own books and 12 collaborations. Non-fiction, fiction and memoir. <a href="/ruhlmans-books/">Check them out</a><a href="/books"> here!</a></p>
1030
1031
1032
1033<h2 class="wp-block-heading"><a href="https://ruhlman.com/kitchen-essentials/">Shop My Kitchen Essentials</a></h2>
1034
1035
1036
1037<p>There are millions of cooking tools, appliances, and household goods available to us. But which ones are good, and which are intriguing but unnecessary? As a trained cook who has worked with the best chefs in the country, I have strong opinions.</p>
1038
1039
1040
1041<p>Here I recommend my favorite tools for your kitchen, chosen for utility, value, and quality. I receive a small affiliate fee if you purchase using the <strong>Buy Now</strong> button. <strong>But please know I only recommend products that I truly <em>love</em>.</strong></p>
1042
1043
1044
1045<p></p>
1046</div></article></main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar" id="genesis-sidebar-primary"><h2 class="genesis-sidebar-title screen-reader-text">Primary Sidebar</h2><div class="feast-modern-sidebar modern-sidebar-widget">
1047
1048
1049<div class="wp-block-group feast-about-author"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
1050<p><strong>Hi, I'm Michael</strong> <strong>Ruhlman</strong>, an award-winning author and cook who writes about chefs, food and cooking, among other things.</p>
1051
1052
1053
1054<p class="has-text-align-center">
1054<a href="https://ruhlman.com/about-michael/">More about me →</a></p>
1055</div></div>
1056
1057
1058
1059<ul class="wp-block-social-links aligncenter is-style-logos-only is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-twitter  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://twitter.com/ruhlman" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Twitter</span></a></li>
1060
1061<li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/michael.ruhlman" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h3.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h3.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>
1062
1063<li class="wp-social-link wp-social-link-instagram  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.instagram.com/ruhlman/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Instagram</span></a></li></ul>
1064
1065
1066
1067<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>
1068
1069
1070
1071<h3 class="wp-block-heading">
1071<a href="https://ruhlman.com/ruhlmans-books/">See my books!</a></h3>
1072
1073
1074
1075<figure class="wp-block-image size-large"><img data-pin-nopin="true" src="https://ruhlman.com/wp-content/uploads/2025/01/Screenshot-2025-01-11-at-4.15.04 PM-720x487.png" alt="" class="wp-image-37009"/></figure>
1076
1077
1078
1079<h3 class="wp-block-heading">Ratio App for iPhone</h3>
1080
1081
1082
1083<p>After I wrote my book <a href="https://www.amazon.com/Ratio-Simple-Behind-Everyday-Cooking/dp/ruhlmancom/1416571728/">Ratio: The Simple Codes Behind the Craft of Everyday Cooking</a>, a colleague and I built a ratio calculator for iPhones that allows you to cook without recipes. For doughs, batters, custards, sauces, stocks and more, simply plug in the amount of one ingredient and the amounts of the other ingredients are instantly calculated. It's also a handy reference for dozens of our most common preparations. (<a href="https://apps.apple.com/us/app/ratio/id345119718">$4.99 in the app store</a>.)</p>
1084
1085
1086
1087<figure class="wp-block-image size-full"><a href="https://apps.apple.com/us/app/ratio/id345119718"><img data-pin-nopin="true" src="https://ruhlman.com/wp-content/uploads/2025/01/300x0w.jpg" alt="" class="wp-image-36957"/></a></figure>
1088
1089
1090
1091<h3 class="wp-block-heading">Collaborate</h3>
1092
1093
1094
1095<p>I’ve collaborated on a dozen books, including cookbooks and a memoir. If you'd like to collaborate on a project, please contact my agent, Gail Hochman, <a href="/cdn-cgi/l/email-protection#caada2a5a9a2a7aba48aa8b8a5a7abb9a3beafe4a9a5a7"><span class="__cf_email__" data-cfemail="a4c3cccbc7ccc9c5cae4c6d6cbc9c5d7cdd0c18ac7cbc9">[email&#160;protected]</span></a>, at Brandt &amp; Hochman Literary Agents, Inc.</p>
1096
1097
1098
1099<p>For speaking engagements contact, Kip Ludwig,&nbsp;<a href="/cdn-cgi/l/email-protection#fb90928bd5978e9f8c929cbb989a9ad5989496"><span class="__cf_email__" data-cfemail="5833312876342d3c2f313f183b3939763b3735">[email&#160;protected]</span></a>.</p>
1100
1101
1102
1103<figure class="wp-block-image size-large"><img data-pin-nopin="true" src="https://ruhlman.com/wp-content/uploads/2025/01/IMG_9211-720x818.jpeg" alt="" class="wp-image-37010"/></figure>
1104</div><div class="feast-modern-sidebar modern-sidebar-widget">
1105
1106
1107<div class="wp-block-group feast-about-author"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
1108<p><strong>Hi, I'm Michael</strong> <strong>Ruhlman</strong>, an award-winning author and cook who writes about chefs, food and cooking, among other things.</p>
1109
1110
1111
1112<p class="has-text-align-center"><a href="https://ruhlman.com/about-michael/">More about me →</a></p>
1113</div></div>
1114
1115
1116
1117<ul class="wp-block-social-links aligncenter is-style-logos-only is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-twitter  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://twitter.com/ruhlman" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Twitter</span></a></li>
1118
1119<li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/michael.ruhlman" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
1119<path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h3.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h3.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>
1120
1121<li class="wp-social-link wp-social-link-instagram  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.instagram.com/ruhlman/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Instagram</span></a></li></ul>
1122
1123
1124
1125<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>
1126
1127
1128
1129<h3 class="wp-block-heading"><a href="https://ruhlman.com/ruhlmans-books/">See my books!</a></h3>
1130
1131
1132
1133<figure class="wp-block-image size-large"><img data-pin-nopin="true" src="https://ruhlman.com/wp-content/uploads/2025/01/Screenshot-2025-01-11-at-4.15.04 PM-720x487.png" alt="" class="wp-image-37009"/></figure>
1134
1135
1136
1137<h3 class="wp-block-heading">Ratio App for iPhone</h3>
1138
1139
1140
1141<p>After I wrote my book <a href="https://www.amazon.com/Ratio-Simple-Behind-Everyday-Cooking/dp/ruhlmancom/1416571728/">Ratio: The Simple Codes Behind the Craft of Everyday Cooking</a>, a colleague and I built a ratio calculator for iPhones that allows you to cook without recipes. For doughs, batters, custards, sauces, stocks and more, simply plug in the amount of one ingredient and the amounts of the other ingredients are instantly calculated. It's also a handy reference for dozens of our most common preparations. (<a href="https://apps.apple.com/us/app/ratio/id345119718">$4.99 in the app store</a>.)</p>
1142
1143
1144
1145<figure class="wp-block-image size-full"><a href="https://apps.apple.com/us/app/ratio/id345119718"><img data-pin-nopin="true" src="https://ruhlman.com/wp-content/uploads/2025/01/300x0w.jpg" alt="" class="wp-image-36957"/></a></figure>
1146
1147
1148
1149<h3 class="wp-block-heading">Collaborate</h3>
1150
1151
1152
1153<p>I’ve collaborated on a dozen books, including cookbooks and a memoir. If you'd like to collaborate on a project, please contact my agent, Gail Hochman, <a href="/cdn-cgi/l/email-protection#8fe8e7e0ece7e2eee1cfedfde0e2eefce6fbeaa1ece0e2"><span class="__cf_email__" data-cfemail="0d6a65626e65606c634d6f7f62606c7e647968236e6260">[email&#160;protected]</span></a>, at Brandt &amp; Hochman Literary Agents, Inc.</p>
1154
1155
1156
1157<p>For speaking engagements contact, Kip Ludwig,&nbsp;<a href="/cdn-cgi/l/email-protection#8ce7e5fca2e0f9e8fbe5ebccefededa2efe3e1"><span class="__cf_email__" data-cfemail="afc4c6df81c3dacbd8c6c8efcccece81ccc0c2">[email&#160;protected]</span></a>.</p>
1158
1159
1160
1161<figure class="wp-block-image size-large">
1161<img data-pin-nopin="true" src="https://ruhlman.com/wp-content/uploads/2025/01/IMG_9211-720x818.jpeg" alt="" class="wp-image-37010"/></figure>
1162</div></aside></div></div><footer class="site-footer"><div class="wrap"><h2 class="screen-reader-text">Footer</h2><div class="feast-modern-footer">
1163<p class="has-text-align-center"><a href="#" rel="nofollow">↑ back to top</a></p>
1164
1165
1166
1167<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
1168<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
1169<h3 class="wp-block-heading" id="h-about">About</h3>
1170
1171
1172
1173<ul class="wp-block-list"><li><a href="/privacy-policy">Privacy Policy</a></li><li><a href="/disclaimer">Disclaimer</a></li><li><a href="/terms-conditions">Terms &amp; Conditions</a></li><li><a href="/accessibility">Accessibility Policy</a></li></ul>
1174</div>
1175
1176
1177
1178<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
1179<h3 class="wp-block-heading" id="h-newsletter">Newsletter</h3>
1180
1181
1182
1183<ul class="wp-block-list"><li><a href="http://Ruhlman.substack.com">Sign Up</a> for my bimonthly newsletter.</li></ul>
1184</div>
1185
1186
1187
1188<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
1189<h3 class="wp-block-heading" id="h-contact">Contact</h3>
1190
1191
1192
1193<ul class="wp-block-list"><li><a href="/contact">Contact</a></li><li><a href="/faq">FAQ</a></li></ul>
1194</div>
1195</div>
1196
1197
1198
1199<p class="has-text-align-center">As an Amazon Associate I earn from qualifying purchases.</p>
1200
1201
1202
1203<p class="has-text-align-center">Copyright © 2020 <strong>Brunch Pro</strong> on the <a rel="noopener noreferrer" href="https://feastdesignco.com/product/brunch-pro/" target="_blank">Brunch Pro Theme</a></p>
1204</div></div></footer></div>
vendor: 108 bytes, line 1204
1204<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1204<script type="text/javascript" id="feast-public-js-js-extra">
1205/* <![CDATA[ */
1206var feastJSData = {"yoastFaqEnabled":""};
1207//# sourceURL=feast-public-js-js-extra
1208/* ]]> */
1209</script>
vendor: 1 bytes, line 1209
1209
1210<script type="rocketlazyloadscript" data-rocket-type="text/javascript" src="https://ruhlman.com/wp-content/plugins/feast-plugin/assets/js/dev/feast-public-js.js?ver=14.9.0" id="feast-public-js-js"></script>
vendor: 1 bytes, line 1210
1210
1211<script type="rocketlazyloadscript" data-rocket-type="text/javascript" id="rocket-browser-checker-js-after">
1212/* <![CDATA[ */
1213"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
1214//# sourceURL=rocket-browser-checker-js-after
1215/* ]]> */
1216</script>
vendor: 1 bytes, line 1216
1216
1217<script type="text/javascript" id="rocket-preload-links-js-extra">
1218/* <![CDATA[ */
1219var RocketPreloadLinksConfig = {"excludeUris":"/(?:.+/)?feed(?:/(?:.+/?)?)?$|/(?:.+/)?embed/|/(index\\.php/)?wp\\-json(/.*|$)|/wp-admin/|/logout/|/wp-login.php|/refer/|/go/|/recommend/|/recommends/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|php|pdf|html|htm","siteUrl":"https://ruhlman.com","onHoverDelay":"100","rateThrottle":"3"};
1220//# sourceURL=rocket-preload-links-js-extra
1221/* ]]> */
1222</script>
vendor: 1 bytes, line 1222
1222
1223<script type="rocketlazyloadscript" data-rocket-type="text/javascript" id="rocket-preload-links-js-after">
1224/* <![CDATA[ */
1225(function() {
1226"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
1227}());
1228
1229//# sourceURL=rocket-preload-links-js-after
1230/* ]]> */
1231</script>
vendor: 1 bytes, line 1231
1231
1232<script type="rocketlazyloadscript" data-rocket-type="text/javascript" src="https://ruhlman.com/wp-content/themes/genesis/lib/js/skip-links.min.js?ver=3.5.0" id="skip-links-js"></script>
vendor: 1 bytes, line 1232
1232
1233<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"eb2912f6246340d8923a711803c97d7d","r":1,"spa":2}' crossorigin="anonymous"></script>
1233
1234</body></html>
1235
1236<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790903990 -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.