@font-face{font-family:quattro;src:url(../media/iAWriterQuattroS_Regular-s.p.3c4k0xaq54g87.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:quattro;src:url(../media/iAWriterQuattroS_Italic-s.p.1u_8o2prgvf9l.woff2)format("woff2");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:quattro;src:url(../media/iAWriterQuattroS_Bold-s.p.3--jbvwxe31d9.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:quattro;src:url(../media/iAWriterQuattroS_BoldItalic-s.p.0d61w09qncs_3.woff2)format("woff2");font-display:swap;font-weight:700;font-style:italic}@font-face{font-family:quattro Fallback;src:local(Arial);ascent-override:85.4%;descent-override:22.91%;line-gap-override:0.0%;size-adjust:120.02%}.quattro_f0ae8dbc-module__xT0B0a__className{font-family:quattro,quattro Fallback}.quattro_f0ae8dbc-module__xT0B0a__variable{--font-quattro:"quattro", "quattro Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--underline:#3b7ea1;--underline-hover:#fdb515;--paper:var(--lightningcss-light,#fffaf4)var(--lightningcss-dark,#29251f)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-family:var(--font-quattro), ui-monospace, "SF Mono", Menlo, Consolas, monospace;max-width:720px;margin:0 auto;padding:1.25rem 1.25rem 4rem;font-size:16px;line-height:1.7}h1{font-size:1.7rem}h2{font-size:1.2rem}h3{font-size:1rem}h1,h2,h3{line-height:1.25}a,a:visited{color:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);text-underline-offset:3px;text-decoration-thickness:2px}a:hover{-webkit-text-decoration-color:var(--underline-hover);text-decoration-color:var(--underline-hover);text-decoration-thickness:2.5px}button:not(:disabled){cursor:pointer}.weather-line{white-space:nowrap}.unit-toggle{font:inherit;color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:-.45em -.7em -.45em -.35em;padding:.45em .7em;font-size:1.1em;text-decoration-thickness:2px;position:relative}.unit-toggle:hover{-webkit-text-decoration-color:var(--underline-hover);text-decoration-color:var(--underline-hover);text-decoration-thickness:2.5px}a.gh-star-link,a.gh-star-link:hover{text-decoration:none}code{background:var(--paper);border-radius:4px;padding:.1em .35em;font-size:.9em}img{max-width:100%;height:auto}hr{opacity:.15;border:0;border-top:1px solid}sup{vertical-align:baseline;font-size:.55em;line-height:0;position:relative;top:-.6em}p{margin:.4em 0}h1{margin:.5em 0 .3em}h2,h3{margin:1.2em 0 .35em}ul{margin:.3em 0;padding-left:1.5em}li{margin:.15em 0}.mag-label{margin:1.2em 0 .35em;font-size:1.17em;font-weight:600}.intro{align-items:stretch;gap:2.5rem;display:flex}.intro-text{flex:1;min-width:0}.intro-side{flex-direction:column;flex-shrink:0;width:240px;display:flex}.contact-slot{margin-top:1.55em}.portrait{border-radius:8px;width:100%;margin-top:.35rem;margin-bottom:0}@media (max-width:640px){.intro{flex-direction:column}.intro-side{width:100%;max-width:300px}}.split-list{grid-template-columns:1fr 1fr;align-items:start;column-gap:2.5rem;display:grid}.split-list>ul{margin:.3em 0}@media (max-width:640px){.split-list,.cv-grid{grid-template-columns:1fr}.cv-side{text-align:left;white-space:normal;order:0}}main:has(.page-footnote)+hr{display:none}.page-footnote-rule{margin-top:2.5rem}.page-footnote{margin-bottom:.2em}@keyframes footnote-flash{0%,65%{background-color:color-mix(in srgb, var(--underline-hover) 40%, transparent)}to{background-color:#0000}}@media (prefers-reduced-motion:no-preference){.page-footnote.footnote-flash{animation:2s ease-out footnote-flash}}.cv-entry{margin:.9em 0}.cv-grid{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:1.5rem;display:grid}.cv-main{min-width:0}.cv-side{text-align:right;white-space:nowrap;order:1;font-size:13px}.cv-role{font-style:italic}.cv-detail{margin:.15em 0 0;font-size:13px}.gh-star{vertical-align:2px;align-items:center;margin-left:2px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:11.5px;font-weight:600;line-height:1;display:inline-flex}.gh-star-btn{color:#24292f;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;align-items:center;gap:4px;padding:3px 7px;display:inline-flex}.gh-star-count{color:#24292f;background:#fff;border:1px solid #d0d7de;border-radius:6px;margin-left:7px;padding:3px 7px;position:relative}.gh-star-count:before,.gh-star-count:after{content:"";border:4px solid #0000;position:absolute;top:50%;transform:translateY(-50%)}.gh-star-count:before{border-right-color:#d0d7de;right:100%}.gh-star-count:after{border-right-color:#fff;right:calc(100% - 1.5px)}@media (prefers-color-scheme:dark){.gh-star-btn{color:#c9d1d9;background:#21262d;border-color:#30363d}.gh-star-count{color:#c9d1d9;background:#0d1117;border-color:#30363d}.gh-star-count:before{border-right-color:#30363d}.gh-star-count:after{border-right-color:#0d1117}}.media{align-items:flex-start;gap:.8rem;margin:.75em 0;display:flex}.media img{flex-shrink:0}.media-body{min-width:0}small,.muted{font-size:13px}.cc-license-icon{vertical-align:-.125em;width:1em;height:1em}.cc-license-icon+.cc-license-icon{margin-left:.15em}.cc-license-link{border-bottom:2px solid var(--underline);padding-bottom:1px;text-decoration:none}.cc-license-link:hover{border-bottom:2.5px solid var(--underline-hover)}.cols2{flex-wrap:wrap;gap:3rem;display:flex}.cols2>section{flex:1;min-width:280px}.cols2 h2{margin-top:1.2em}.track-grid{grid-template-columns:1fr 1fr;column-gap:2.5rem;display:grid}@media (max-width:640px){.track-grid{grid-template-columns:1fr}}.section-columns{grid-template-columns:1fr 1fr;align-items:start;column-gap:3rem;display:grid}@media (max-width:640px){.section-columns{grid-template-columns:1fr}.section-columns>*{grid-area:auto!important}}.section-columns h3:first-of-type{margin-top:.4em}.intro-side h2{margin:.4em 0 .25em}.latex-logo .latex-a{vertical-align:.28em;margin-left:-.34em;margin-right:-.08em;font-size:.75em}.latex-logo .latex-e{vertical-align:-.25em;margin-left:-.12em;margin-right:-.08em}