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&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&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&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'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 » Feed" href="https://ruhlman.com/feed/" /> 30<link rel="alternate" type="application/rss+xml" title="Ruhlman » 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&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 <em><a href="https://www.amazon.com/Boys-Themselves-Return-Single-Sex-Education/dp/ruhlmancom/0805055959/">Boys Themselves</a></em> (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 <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 protected]</span></a>, at Brandt & Hochman Literary Agents, Inc.</p> 1096 1097 1098 1099<p>For speaking engagements contact, Kip Ludwig, <a href="/cdn-cgi/l/email-protection#fb90928bd5978e9f8c929cbb989a9ad5989496"><span class="__cf_email__" data-cfemail="5833312876342d3c2f313f183b3939763b3735">[email 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 protected]</span></a>, at Brandt & Hochman Literary Agents, Inc.</p> 1154 1155 1156 1157<p>For speaking engagements contact, Kip Ludwig, <a href="/cdn-cgi/l/email-protection#8ce7e5fca2e0f9e8fbe5ebccefededa2efe3e1"><span class="__cf_email__" data-cfemail="afc4c6df81c3dacbd8c6c8efcccece81ccc0c2">[email 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 & 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.