:root{--color-bg: #f5f5f4;--color-text: rgba(0, 0, 0, .75);--color-heading: #000;--color-muted: rgba(0, 0, 0, .7);--color-faint: rgba(0, 0, 0, .5);--color-border: rgba(0, 0, 0, .05);--color-border-strong: rgba(0, 0, 0, .1);--color-hover-bg: rgba(0, 0, 0, .03);--color-decoration: rgba(0, 0, 0, .15);--color-decoration-hover: rgba(0, 0, 0, .25);--color-header-bg: rgba(245, 245, 244, .75);--color-focus: #64748b;--color-surface-subtle: rgba(0, 0, 0, .03);--color-icon-bg: rgba(0, 0, 0, .05);--color-canvas: rgba(229, 229, 229, .4);--color-canvas-text: #4b5563;--font-sans: "Geist Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-display: "Space Grotesk", "Geist Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-200: .875rem;--font-size-300: 1rem;--font-size-400: 1.125rem;--font-size-500: 1.375rem;--font-size-600: 1.75rem;--line-height-200: 1.25rem;--line-height-300: 1.625rem;--line-height-400: 1.625rem;--line-height-450: 1.75rem;--line-height-500: 1.875rem;--line-height-600: 2.125rem;--text-display-size: var(--font-size-600);--text-display-leading: var(--line-height-600);--text-heading-size: var(--font-size-500);--text-heading-leading: var(--line-height-500);--text-subheading-size: var(--font-size-400);--text-subheading-leading: var(--line-height-400);--text-body-size: var(--font-size-300);--text-body-leading: var(--line-height-300);--text-lead-size: var(--font-size-400);--text-lead-leading: var(--line-height-450);--text-small-size: var(--font-size-200);--text-small-leading: var(--line-height-200);--text-caption-size: var(--font-size-200);--text-caption-leading: var(--line-height-200);--space-unit: .25rem;--space-1: var(--space-unit);--space-1-5: calc(var(--space-unit) * 1.5);--space-2: calc(var(--space-unit) * 2);--space-3: calc(var(--space-unit) * 3);--space-4: calc(var(--space-unit) * 4);--space-5: calc(var(--space-unit) * 5);--space-6: calc(var(--space-unit) * 6);--space-7: calc(var(--space-unit) * 7);--space-8: calc(var(--space-unit) * 8);--space-10: calc(var(--space-unit) * 10);--space-12: calc(var(--space-unit) * 12);--space-16: calc(var(--space-unit) * 16);--space-20: calc(var(--space-unit) * 20);--space-32: calc(var(--space-unit) * 32);--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: 1rem;--radius-round: 9999px;--size-control: 2.25rem;--size-control-lg: 2.5rem;--content-measure: 42rem;--transition-base: .3s ease-in-out;--container-max: 640px;--container-px: var(--space-5)}html.dark{--color-bg: #1c1917;--color-text: rgba(255, 255, 255, .8);--color-heading: #fff;--color-muted: rgba(255, 255, 255, .7);--color-faint: rgba(255, 255, 255, .5);--color-border: rgba(255, 255, 255, .05);--color-border-strong: rgba(255, 255, 255, .1);--color-hover-bg: rgba(255, 255, 255, .05);--color-decoration: rgba(255, 255, 255, .3);--color-decoration-hover: rgba(255, 255, 255, .5);--color-header-bg: rgba(28, 25, 23, .25);--color-surface-subtle: rgba(255, 255, 255, .05);--color-icon-bg: rgba(255, 255, 255, .05);--color-canvas: rgba(23, 23, 23, .4);--color-canvas-text: #9ca3af}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{overflow-y:scroll;color-scheme:light;width:100%;height:100%}html.dark{color-scheme:dark}body{min-height:100%;font-family:var(--font-sans);font-size:var(--text-body-size);line-height:var(--text-body-leading);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty;display:flex;flex-direction:column;background-color:var(--color-bg);color:var(--color-text)}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-focus);border-radius:var(--radius-xs)}img,video,svg{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}h1{font-family:var(--font-display);font-size:var(--text-display-size);line-height:var(--text-display-leading);font-weight:500;letter-spacing:0;color:var(--color-heading)}h2{font-size:var(--text-heading-size);line-height:var(--text-heading-leading)}h3{font-size:var(--text-subheading-size);line-height:var(--text-subheading-leading)}.container{margin-left:auto;margin-right:auto;max-width:var(--container-max);padding-left:var(--container-px);padding-right:var(--container-px)}header{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:var(--space-5);padding-bottom:var(--space-12);background-color:var(--color-header-bg);backdrop-filter:blur(12px) saturate(2);-webkit-backdrop-filter:blur(12px) saturate(2);-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 100%);mask-image:linear-gradient(to bottom,black 60%,transparent 100%)}main{flex:1;padding-top:var(--space-32)}footer{padding-top:var(--space-5);padding-bottom:var(--space-8);font-size:var(--text-small-size);line-height:var(--text-small-leading)}article :where(p){margin-top:var(--space-7);margin-bottom:var(--space-7)}article :where(p:first-child){margin-top:0}article :where(p:last-child){margin-bottom:0}article :where(h2,h3,h4,h5,h6){font-family:var(--font-sans);font-weight:600;color:var(--color-heading);letter-spacing:0}article :where(h1){margin-top:0;margin-bottom:var(--space-4)}article :where(h2){margin-top:var(--space-10);margin-bottom:var(--space-5)}article :where(h3){margin-top:var(--space-7);margin-bottom:var(--space-4)}article :where(h4){margin-top:var(--space-7);margin-bottom:var(--space-4);line-height:var(--text-body-leading)}article :where(h1,h2,h3,h4,h5,h6)+:where(p,ul,ol,blockquote){margin-top:0}article :where(a){color:currentColor;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--color-decoration);border-radius:var(--radius-xs);transition:color var(--transition-base),text-decoration-color var(--transition-base)}article :where(a:hover){color:var(--color-heading);text-decoration-color:var(--color-decoration-hover)}article :where(strong){color:var(--color-heading);font-weight:600}article :where(img){margin-inline:auto;border-radius:var(--radius-lg)}article :where(video){width:100%;border-radius:var(--radius-lg);margin-inline:auto}article :is(video,p:has(img,video)){margin-top:var(--space-7);margin-bottom:var(--space-3)}article :is(img,video,p:has(img,video))+p:has(>em:only-child){margin-top:0}article p>em:only-child{font-size:var(--text-caption-size);line-height:var(--text-caption-leading);color:var(--color-faint);display:block;font-style:normal}article :where(blockquote){margin-top:var(--space-7);margin-bottom:var(--space-7);padding-left:var(--space-4);border-left:.25rem solid var(--color-border-strong);font-style:italic;color:var(--color-muted)}article :where(ul){list-style-type:disc;margin-top:var(--space-6);margin-bottom:var(--space-6);padding-left:var(--space-6)}article :where(ol){list-style-type:decimal;margin-top:var(--space-6);margin-bottom:var(--space-6);padding-left:var(--space-6)}article :where(li){margin-top:var(--space-2);margin-bottom:var(--space-2)}article :where(code){font-family:var(--font-mono);font-size:var(--text-small-size);font-weight:600}article :where(pre){font-family:var(--font-mono);font-size:var(--text-small-size);line-height:var(--text-small-leading);margin-top:var(--space-7);margin-bottom:var(--space-7);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);overflow-x:auto;background-color:var(--color-surface-subtle)}html.dark article :where(pre){background-color:var(--color-surface-subtle)}article :where(pre code){font-weight:400;font-size:inherit}article :where(hr){border:none;border-top:1px solid var(--color-border);margin-top:var(--space-12);margin-bottom:var(--space-12)}article :where(figure){margin-top:var(--space-8);margin-bottom:var(--space-8)}article :where(figcaption){font-size:var(--text-small-size);line-height:var(--text-small-leading);margin-top:var(--space-3);color:var(--color-muted)}article :where(table){width:100%;border-collapse:collapse;margin-top:var(--space-8);margin-bottom:var(--space-8);font-size:var(--text-small-size);line-height:var(--text-small-leading)}article :where(thead){border-bottom:1px solid var(--color-border-strong)}article :where(th){font-weight:600;padding:0 var(--space-2) var(--space-2);text-align:left;color:var(--color-heading)}article :where(td){padding:var(--space-2);border-bottom:1px solid var(--color-border)}.link{display:inline-block;border-radius:var(--radius-sm);color:currentColor;text-decoration-color:var(--color-decoration);transition:color var(--transition-base),text-decoration-color var(--transition-base)}.link:hover{color:var(--color-heading);text-decoration-color:var(--color-decoration-hover)}.link--underline{text-decoration:underline;text-underline-offset:2px}.header__inner{display:flex;flex-wrap:wrap;row-gap:var(--space-2);justify-content:space-between}.header__logo-wrap{display:flex;align-items:center;padding:var(--space-3);border-radius:var(--radius-md);transition:background-color var(--transition-base)}.header__logo-wrap:hover{background-color:var(--color-hover-bg)}.header__logo{height:2.5rem;width:auto}html.dark .header__logo{filter:invert(1)}.header__nav{display:flex;gap:var(--space-2);align-items:center;font-weight:500}.header__nav-link{display:flex;align-items:center;justify-content:center;padding-left:var(--space-3);padding-right:var(--space-3);height:var(--size-control);border-radius:var(--radius-md);transition:background-color var(--transition-base)}.header__nav-link:hover{background-color:var(--color-hover-bg)}.header__theme-toggle{display:flex;align-items:center;justify-content:center;width:var(--size-control);height:var(--size-control);border-radius:var(--radius-md);border:none;background:none;color:inherit;cursor:pointer;transition:background-color var(--transition-base)}.header__theme-toggle:hover{background-color:var(--color-hover-bg)}.footer__inner{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--color-border);padding-top:var(--space-8);margin-top:var(--space-16)}.footer__nav{display:flex;align-items:center;gap:var(--space-2);width:100%}.footer__recipe-link{margin-left:auto}.arrow-card{position:relative;list-style:none}.arrow-card__link{display:flex;align-items:center;padding:var(--space-4) var(--space-8) var(--space-4) 0;border-radius:var(--radius-lg);color:inherit;text-decoration:none;transition:color var(--transition-base)}.arrow-card:hover .arrow-card__link{color:var(--color-heading)}.arrow-card__icon-box{width:4rem;height:4rem;flex-shrink:0;background-color:var(--icon-bg, var(--color-icon-bg));border-radius:var(--radius-sm);margin-right:var(--space-4);display:flex;align-items:center;justify-content:center;font-size:1.875rem;line-height:2.25rem}.arrow-card__icon-placeholder{width:1.5rem;height:1.5rem;opacity:.2}.arrow-card__content{display:flex;flex-direction:column;flex:1}.arrow-card__title{font-weight:600;color:var(--color-heading)}.arrow-card__description{font-size:var(--text-small-size);line-height:var(--text-small-leading);color:var(--color-muted)}.arrow-card__meta{color:var(--color-faint);font-size:var(--text-small-size);line-height:var(--text-small-leading);margin-top:var(--space-1-5)}.arrow-card__arrow{position:absolute;top:50%;right:0;transform:translateY(-50%);width:1.25rem;height:1.25rem;stroke-width:2;fill:none;stroke:currentColor}.arrow-card__arrow-line{transform:translate(-.45rem) scaleX(0);transform-origin:right center;transition:transform var(--transition-base)}.arrow-card:hover .arrow-card__arrow-line{transform:translate(-.1rem) scaleX(1)}.arrow-card__arrow-head{transform:translate(-.25rem);transition:transform var(--transition-base)}.arrow-card:hover .arrow-card__arrow-head{transform:translate(0)}.arrow-card__bg{position:absolute;z-index:-1;inset:0 calc(-1 * var(--space-3));border-radius:var(--radius-lg);transition:background-color var(--transition-base)}.arrow-card:hover .arrow-card__bg{background-color:var(--color-hover-bg)}.page-sections{display:flex;flex-direction:column;gap:var(--space-16)}.page-sections--sm{display:flex;flex-direction:column;gap:var(--space-5)}.section-divider{display:flex;flex-direction:column;gap:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-16)}.section-header{display:flex;flex-wrap:wrap;row-gap:var(--space-2);align-items:center;justify-content:space-between}.section-title{font-weight:600;color:var(--color-heading);letter-spacing:0}h1.section-title{font-weight:500}.section-link{font-size:var(--text-small-size);line-height:var(--text-small-leading)}.hero{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.profile-image{border-radius:var(--radius-round);overflow:hidden;width:6rem;height:6rem;margin-bottom:var(--space-4)}.profile-image img{width:100%;object-fit:cover}.page-title{max-width:var(--content-measure)}.page-subtitle{font-size:var(--text-lead-size);line-height:var(--text-lead-leading);max-width:var(--content-measure)}.page-title+.page-subtitle{margin-top:calc(-1 * var(--space-2))}.page-heading{display:flex;flex-direction:column;gap:var(--space-2)}.page-intro{color:var(--color-muted);max-width:var(--content-measure)}.content-list{display:flex;flex-direction:column;list-style:none;padding:0;gap:var(--space-2)}.recipes-intro{display:flex;flex-direction:column;gap:var(--space-3)}.recipe-search-wrap{margin-top:var(--space-10);position:relative;width:100%}.recipe-search{appearance:none;background-color:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font:inherit;height:var(--size-control-lg);padding:.625rem 2.75rem .625rem .75rem;width:100%}.recipe-search::placeholder{color:var(--color-faint)}.recipe-search:focus{border-color:var(--color-decoration-hover);outline:none}.recipe-search::-webkit-search-cancel-button{appearance:none}.recipe-search-clear{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--color-muted);cursor:pointer;display:flex;height:var(--space-8);justify-content:center;padding:0;position:absolute;right:var(--space-1);top:var(--space-1);transition:background-color var(--transition-base),color var(--transition-base);width:var(--space-8)}.recipe-search-clear[hidden]{display:none}.recipe-search-clear:hover{background-color:var(--color-hover-bg);color:var(--color-heading)}.recipe-search-empty{align-items:center;color:var(--color-muted);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-small-size);justify-content:center;line-height:var(--text-small-leading);min-height:12rem;text-align:center}.recipe-search-empty__icon{font-size:3rem;line-height:1}.recipe-search-empty button{background:none;border:none;color:var(--color-heading);cursor:pointer;font:inherit;padding:0;text-decoration:underline;text-decoration-color:var(--color-decoration);text-underline-offset:2px;transition:color var(--transition-base),text-decoration-color var(--transition-base)}.recipe-search-empty button:hover{text-decoration-color:var(--color-decoration-hover)}.recipe-search-empty[hidden],[data-recipe-search-section][hidden]{display:none}.breadcrumb{display:flex;align-items:center;gap:var(--space-1-5);font-size:var(--text-small-size);line-height:var(--text-small-leading)}.breadcrumb--muted{color:var(--color-muted)}.breadcrumb--mb{margin-bottom:var(--space-10)}.breadcrumb--mb-sm{margin-bottom:var(--space-6)}.detail-header{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-10);margin-bottom:var(--space-10)}.detail-suptitle{font-size:var(--text-small-size);line-height:var(--text-small-leading);font-weight:600;color:var(--color-faint)}.detail-title{max-width:var(--content-measure)}.detail-links{display:flex;gap:var(--space-1)}.detail-meta-row{display:flex;align-items:center;gap:var(--space-1-5);color:var(--color-muted)}.detail-meta-text{font-size:var(--text-small-size);line-height:var(--text-small-leading)}.recipe-detail-description{color:var(--color-muted)}.recipe-goes-with{color:var(--color-faint);font-size:var(--text-small-size);line-height:var(--text-small-leading)}.recipe-detail-icon{align-self:stretch;background-color:var(--icon-bg, var(--color-icon-bg));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:3rem;height:8rem;line-height:1;margin-bottom:var(--space-10)}.recipe-detail-content ul{list-style:none;padding-left:0}.recipe-detail-content li{padding-left:var(--space-8);text-indent:calc(-1 * var(--space-8))}.recipe-detail-content ol li{padding-left:0;text-indent:0}.project-meta{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-6) 0;border-top:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong);font-size:var(--text-small-size);line-height:var(--text-small-leading);margin:var(--space-6) 0}.project-meta__row{display:flex;align-items:flex-start}.project-meta__label{font-weight:600;min-width:6rem}.project-meta__value{opacity:.85}.project-meta__awards{opacity:.85;display:flex;flex-direction:column;gap:var(--space-1)}.project-article>video{width:min(calc(100vw - (var(--container-px) * 2)),60rem);margin-left:50%;transform:translate(-50%)}.experience-list{display:flex;flex-direction:column;gap:var(--space-12);list-style:none;padding:0}.experience-item--bordered{border-top:1px solid var(--color-border);padding-top:var(--space-12)}.experience-company{font-weight:600;color:var(--color-heading)}.experience-role{font-size:var(--text-small-size);line-height:var(--text-small-leading);margin-top:var(--space-3);color:var(--color-muted)}.experience-date{font-size:var(--text-small-size);line-height:var(--text-small-leading);margin-top:var(--space-1);color:var(--color-muted)}.experience-description{margin-top:var(--space-3)}.book-intro{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-20)}.book-description{color:var(--color-canvas-text)}.canvas-section{width:100%;display:flex;flex-direction:column;align-items:center;padding:var(--space-10) 0;position:relative}.canvas-container{width:100%;max-width:700px;height:500px;background-color:var(--color-canvas);border-radius:var(--radius-xl);overflow:hidden;cursor:grab;position:relative}.canvas-container:active{cursor:grabbing}.canvas-element{width:100%;height:100%;display:block}.canvas-overlay{position:absolute;bottom:var(--space-4);right:var(--space-4);display:flex;gap:var(--space-4);pointer-events:none}.canvas-reset-btn{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:var(--size-control);height:var(--size-control);border-radius:var(--radius-md);border:none;background:none;color:var(--color-heading);cursor:pointer;transition:background-color var(--transition-base)}.canvas-reset-btn:hover{background-color:var(--color-hover-bg)}.icon-sm{width:1.25rem;height:1.25rem}.external-icon{display:inline-block;margin-left:var(--space-1);opacity:.5;vertical-align:baseline;transition:opacity var(--transition-base)}.external-icon svg{width:.75rem;height:.75rem}article a:hover .external-icon{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.hidden{display:none}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2) format("woff2"),url(/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-sans-latin-600-normal.DFOURf8L.woff2) format("woff2"),url(/_astro/geist-sans-latin-600-normal.CA1yjETN.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-400-normal.DTRLJnHl.woff2) format("woff2"),url(/_astro/geist-mono-latin-400-normal.B2yvC1Cq.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2) format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2) format("woff2"),url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff) format("woff")}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
