@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/libre-baskerville-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Baskerville;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/libre-baskerville-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Baskerville;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/libre-baskerville-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f3efe5;--fg:#111112;--muted:#4d4a44;--line:#ddd7c9;--accent:#337196;--card:#faf8f2;--stock:#f4f4f2;--ink:#111112;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--serif:"Libre Baskerville", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;color-scheme:light dark}:root[data-theme=dark]{--bg:#17171a;--fg:#ece9e2;--muted:#9c968c;--line:#2b2b30;--accent:#f08c6a;--card:#1e1e22}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17171a;--fg:#ece9e2;--muted:#9c968c;--line:#2b2b30;--accent:#f08c6a;--card:#1e1e22}}:root{--sky:#337196;--sky-2:#4e8cb0;--night:#0b1220;--night-2:#16233d;--cool:#8fc4e2;--warm:#f2a07f;--hair:#14161c}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.chapter{scroll-margin-top:1.5rem}html{-webkit-text-size-adjust:100%;font-size:106.25%}body{background:var(--bg);color:var(--fg);font-family:var(--sans);overflow-wrap:break-word;margin:0;line-height:1.6}img,svg,video{max-width:100%;height:auto}pre{max-width:100%;overflow-x:auto}pre code{white-space:pre}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:44rem;margin:0 auto;padding:0 1.25rem}.wrap.wide{max-width:64rem}.grid{grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr));gap:.9rem;display:grid}.grid>*{margin:0}header.site{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:1.5rem 0 1rem;display:flex}header.site nav a:not(.fancy){color:var(--muted)}header.site nav a{margin-left:1.1rem;font-size:.95rem}header.site nav a:not(.fancy)[aria-current=page]{color:var(--fg)}header.site nav{align-items:center;gap:0;display:flex}body.bare header.site.overlay{z-index:10;color:#fff;pointer-events:none;border:0;padding:1.4rem clamp(1rem,4vw,3rem) 0;position:absolute;top:0;left:0;right:0}body.bare header.site.overlay nav{pointer-events:auto}body.bare header.site.overlay nav a:not(.fancy){color:#ffffffc7}body.bare header.site.overlay nav a:not(.fancy):hover,body.bare header.site.overlay nav a:not(.fancy)[aria-current=page]{color:#fff}body.bare main{padding:0 0 4rem}:root{--card-w:clamp(7.4rem, 4.6rem + 11vw, 11.6rem)}@media (width>=900px){header.site{z-index:20;box-sizing:border-box;pointer-events:none;border-bottom:0;flex-direction:row;justify-content:center;align-items:center;gap:0;width:auto;padding:.9rem clamp(1rem,4vw,3rem);position:fixed;top:0;left:0;right:0}header.site nav{pointer-events:auto;flex-direction:row;align-items:center;gap:.4rem;width:auto}header.site nav a{margin-left:0}header.site .fancy{--fancy-hole:var(--bg);padding:.7em 1em;font-size:9px}header.site{background:var(--bg);box-shadow:0 1px 0 var(--line)}body:not(.bare){padding-top:3.4rem}body.bare header.site.overlay{z-index:20;box-shadow:none;background:0 0;padding:.9rem clamp(1rem,4vw,3rem);transition:background .26s,box-shadow .26s;position:fixed;inset:0 0 auto;transform:none}:root[data-rail=page] body.bare header.site.overlay{background:var(--bg);box-shadow:0 1px 0 var(--line)}body.bare header.site.overlay .fancy{--fancy-ink:var(--stock);--fancy-hole:var(--sky);--fancy-on:var(--ink)}:root[data-theme=dark] body.bare header.site.overlay .fancy{--fancy-hole:var(--night)}:root[data-rail=page] body.bare header.site.overlay .fancy{--fancy-ink:var(--fg);--fancy-hole:var(--bg);--fancy-on:var(--bg)}}@media (width<=899px){header.site nav{flex-wrap:wrap;justify-content:flex-end;gap:.75rem}header.site nav a{margin-left:0}header.site .fancy{letter-spacing:0;border:0;padding:.2rem 0;font-size:.88rem}header.site .fancy:before,header.site .fancy .top-key,header.site .fancy .bottom-key-1,header.site .fancy .bottom-key-2{display:none}header.site .fancy .text{text-transform:none;padding-left:0;font-size:1em;font-weight:400}header.site .fancy:hover,header.site .fancy:focus-visible{color:var(--accent);background:0 0}}main{padding:2.5rem 0 4rem}footer.site{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 1.5rem;padding:1.25rem 0 2.5rem;font-size:.85rem;display:flex}footer.site .legal{color:var(--muted);font-size:.78rem}footer.site .legal a{color:inherit;border-bottom:1px solid var(--line);text-decoration:none}footer.site .legal a:hover{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none}footer.site .elsewhere{gap:1.25rem;display:flex}footer.site .elsewhere a{color:var(--muted)}footer.site .elsewhere a:hover{color:var(--accent);text-decoration:none}@media (width<=600px){footer.site{flex-direction:column-reverse;align-items:flex-start;gap:.9rem}}h1,h2,h3{font-family:var(--serif);letter-spacing:-.005em;overflow-wrap:break-word;font-weight:700;line-height:1.25}h1{margin:0 0 .5rem;font-size:2.1rem}h2{margin:2.2rem 0 .75rem;font-size:1.35rem}h3{margin:1.5rem 0 .4rem;font-size:1.1rem}p{margin:0 0 1rem}.lede{color:var(--muted);max-width:38rem;font-size:1.15rem}.meta{color:var(--muted);font-size:.9rem;font-family:var(--mono)}ul.plain{margin:0;padding:0;list-style:none}.card{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:10px;margin:0 0 .9rem;padding:1.1rem 1.25rem;display:block}a.card:hover{border-color:var(--accent);text-decoration:none}.grid .card{margin-bottom:0}.card h3{margin:0 0 .25rem}.card p{color:var(--muted);margin:.25rem 0 .5rem}.tags{flex-wrap:wrap;gap:.35rem;display:flex}.tag{font-family:var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.prose ul{padding-left:1.2rem}.prose li{margin:.35rem 0}.prose strong{font-weight:600}.prose code{font-family:var(--mono);background:var(--line);border-radius:4px;padding:.05em .35em;font-size:.9em}.prose table{border-collapse:collapse;width:max-content;max-width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.4rem .6rem}.row{grid-template-columns:max-content 1fr;gap:.5rem 1.6rem;margin:0 0 1rem;display:grid}.row .k{color:var(--muted);font-family:var(--mono);padding-top:.15rem;font-size:.85rem}@media (width<=600px){.row{grid-template-columns:1fr;gap:.15rem}header.site nav a{margin-left:.8rem}}.fancy{--fancy-ink:var(--fg);--fancy-hole:var(--card);--fancy-on:var(--fancy-ink);box-sizing:border-box;border:2px solid color-mix(in srgb, var(--fancy-ink) 50%, transparent);color:color-mix(in srgb, var(--fancy-ink) 80%, transparent);cursor:pointer;letter-spacing:.05em;text-align:left;background-color:#0000;border-radius:0;padding:.85em 1.4em;font-size:11px;font-weight:700;text-decoration:none;transition:background .3s ease-in-out,color .3s ease-in-out,border-color .3s ease-in-out;display:block;position:relative;overflow:visible}.fancy:before{content:" ";background:var(--fancy-ink);transform-origin:50%;width:1.5625rem;height:2px;transition:background .3s linear,width .3s linear;position:absolute;top:50%;left:1.5em;transform:translateY(-50%)}.fancy .text{text-align:left;text-transform:uppercase;color:inherit;padding-left:3.4em;font-size:1.125em;line-height:1.33333em;transition:padding .3s ease-in-out,color .3s ease-in-out;display:block}.fancy .top-key,.fancy .bottom-key-1,.fancy .bottom-key-2{background:var(--fancy-hole);height:2px;transition:width .5s ease-out,left .3s ease-out,right .3s ease-out;position:absolute}.fancy .top-key{width:1.5625rem;top:-2px;left:.625rem}.fancy .bottom-key-1{width:1.5625rem;bottom:-2px;right:1.875rem}.fancy .bottom-key-2{width:.625rem;bottom:-2px;right:.625rem}.fancy:hover,.fancy:focus-visible,.fancy[aria-current]{border-color:var(--fancy-ink);color:var(--fancy-ink);background:0 0;text-decoration:none}.fancy:hover:before,.fancy:focus-visible:before,.fancy[aria-current]:before{background:var(--fancy-ink);width:.9375rem}.fancy:hover .text,.fancy:focus-visible .text,.fancy[aria-current] .text{padding-left:2.55em}.fancy:hover .top-key,.fancy:focus-visible .top-key,.fancy[aria-current] .top-key{width:0;left:-2px}.fancy:hover .bottom-key-1,.fancy:hover .bottom-key-2,.fancy:focus-visible .bottom-key-1,.fancy:focus-visible .bottom-key-2,.fancy[aria-current] .bottom-key-1,.fancy[aria-current] .bottom-key-2{width:0;right:0}@media (prefers-reduced-motion:reduce){.fancy,.fancy:before,.fancy .text,.fancy span{transition:none}}.btn{border:1px solid var(--accent);color:var(--accent);border-radius:8px;padding:.5rem .9rem;font-size:.95rem;display:inline-block}.btn:hover{background:var(--accent);color:#fff;text-decoration:none}.cta{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;text-decoration:none;display:inline-flex}.cta:hover{text-decoration:none}.cta-label{font-family:var(--serif);letter-spacing:.01em;text-transform:none;padding-bottom:6px;padding-right:12px;font-size:.8rem;font-weight:400;position:relative}.cta-label:after{content:"";transform-origin:100% 100%;background-color:currentColor;width:calc(100% - 12px);height:1.5px;transition:transform .25s ease-out;position:absolute;bottom:0;left:0;transform:scaleX(0)}.cta:hover .cta-label:after,.cta:focus-visible .cta-label:after{transform-origin:0 100%;transform:scaleX(1)}.cta svg{fill:currentColor;flex:none;margin-bottom:6px;transition:transform .3s;transform:translate(-8px)}.cta:hover svg,.cta:focus-visible svg{transform:translate(0)}.cta:active svg{transform:scale(.9)}.cta:focus-visible{outline-offset:8px;border-radius:2px;outline:2px solid}@media (prefers-reduced-motion:reduce){.cta svg,.cta-label:after{transition:none}}.link-out,.out-label{color:color-mix(in srgb, var(--fg) 62%, var(--bg));font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;padding-bottom:.5rem;font-size:.95rem;font-weight:800;text-decoration:none;transition:color .4s cubic-bezier(.25,.8,.25,1);display:inline-block;position:relative}.link-out:after{content:"";pointer-events:none;background-color:var(--accent);width:0;height:2px;transition:width .4s cubic-bezier(.25,.8,.25,1),left .4s cubic-bezier(.25,.8,.25,1);position:absolute;bottom:0;left:50%}.link-out:hover,.link-out:focus-visible{color:var(--fg);text-decoration:none}.link-out:hover:after,.link-out:focus-visible:after{width:100%;left:0}.link-out:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:2px}.links-out{flex-wrap:wrap;gap:.9rem 2.2rem;margin:1.4rem 0 0;display:flex}@media (prefers-reduced-motion:reduce){.link-out,.link-out:after{transition:none}}.mail-row{flex-wrap:wrap;align-items:baseline;gap:.4rem 2.2rem;margin:1.4rem 0 0;display:flex}.out-label{cursor:default}.mail{font-family:var(--sans);letter-spacing:.01em;color:var(--fg);font-size:.95rem;font-weight:700}.cta-back svg{margin-right:8px;transform:translate(8px)scaleX(-1)}.cta-back:hover svg,.cta-back:focus-visible svg{transform:translate(0)scaleX(-1)}.cta-back:active svg{transform:scaleX(-.9)scaleY(.9)}.cta-back .cta-label{padding-left:12px;padding-right:0}.cta-back .cta-label:after{transform-origin:0 100%;left:12px}.cta-back:hover .cta-label:after,.cta-back:focus-visible .cta-label:after{transform-origin:100% 100%}.back-home{color:var(--muted);margin:0 0 1.6rem}.back-home .cta-label{letter-spacing:.16em;text-transform:uppercase;padding-left:9px;font-size:.72rem}.back-home .cta-label:after{height:1px;left:9px}.back-home svg{width:19px;height:7px;margin-bottom:5px}.back-home:hover{color:var(--fg)}
