:root{--bind: #4F3BE6;--bind-deep: #3F2DC4;--paper: #F7F2E8;--paper-deep: #EFE8DA;--ink: #1B1813;--ink-2: #4F4A42;--ink-3: #7A7369;--ghost: #CFC7B8;--thread: #4F3BE6;--gold: #F2B63D;--serif: "STIX Two Text", "Times New Roman", Times, serif;--mono: "Courier Prime", "Courier New", Courier, monospace;--indent: 4.5rem;--sheet-x: 4.5rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1.5rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}body{margin:0;background:var(--bind);color:var(--ink);font-family:var(--serif);font-size:1.125rem;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal}::selection{background:var(--gold);color:var(--ink)}.index ::selection{background:var(--paper);color:var(--bind)}:focus-visible{outline:2px solid var(--thread);outline-offset:3px}.index :focus-visible{outline-color:var(--paper)}a{color:inherit;text-decoration-color:var(--ink-3);text-underline-offset:.18em;text-decoration-thickness:1px;transition:text-decoration-color .12s ease-out,color .12s ease-out}a:hover{color:var(--ink);text-decoration-color:var(--gold);text-decoration-thickness:2px}.page{max-width:1360px;margin:0 auto;padding:2.5rem 2.5rem 3.5rem;display:grid;grid-template-columns:13rem minmax(0,1fr);column-gap:2.5rem;align-items:start}.index{position:sticky;top:2.5rem;color:var(--paper);font-family:var(--mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.4}.index .title{display:block;font-weight:700;margin:0 0 1.75rem;padding-bottom:.75rem;border-bottom:1px solid rgba(247,242,232,.45);text-decoration:none;color:var(--paper)}.index .title:hover{color:var(--paper);text-decoration:underline;text-decoration-color:var(--paper)}.index ol{list-style:none;margin:0;padding:0}.index li{margin:0}.index ol a{display:block;padding:.32rem .5rem;margin-left:-.5rem;text-decoration:none;color:var(--paper);transition:background-color .12s ease-out,color .12s ease-out}.index ol a:hover{background:#f7f2e824;color:var(--paper)}.index ol a[aria-current=page]{background:var(--paper);color:var(--bind)}.index .install{margin-top:1.75rem;padding-top:1rem;border-top:1px solid rgba(247,242,232,.45)}.index .install a{display:block;border:1px solid var(--paper);padding:.55rem .75rem;font-weight:700;text-decoration:none;color:var(--paper);transition:background-color .12s ease-out,color .12s ease-out}.index .install a:hover{background:var(--gold);border-color:var(--gold);color:var(--bind)}.sheet{background:var(--paper);padding:2.25rem var(--sheet-x) 2.5rem;min-width:0;animation:settle .42s ease-out both}@keyframes settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.running{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;font-size:.9375rem;letter-spacing:.02em;margin-bottom:2.5rem}.running .l{text-align:left}.running .c{text-align:center;font-variant-caps:small-caps;letter-spacing:.08em}.running .r{text-align:right}section{margin:0 0 3rem}.lede{font-size:1.25rem}h2{font-family:var(--serif);font-weight:700;font-size:.9375rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 1rem;line-height:1.3}.body{padding-left:var(--indent)}.body>*{max-width:70ch}.body>figure,.body>pre,.body>.wide{max-width:none}p{margin:0 0 1rem}p:last-child{margin-bottom:0}em{font-style:italic}strong{font-weight:700}.name{font-weight:400;font-size:clamp(1.9rem,1rem + 2.6vw,3.25rem);line-height:1.12;letter-spacing:-.012em;margin:0 0 1rem;max-width:26ch;text-wrap:balance}.name b{font-weight:700}.name .dash{margin:0 .1em}.name a{text-decoration:none}.name a:hover{color:var(--thread)}.lede{font-size:1.25rem;line-height:1.45;max-width:58ch;margin:0;color:var(--ink-2)}pre,code,kbd,samp{font-family:var(--mono);font-variant-ligatures:none;font-feature-settings:"tnum" 1}code{font-size:.95em}pre{margin:0 0 1rem;font-size:.9375rem;line-height:1.55;white-space:pre;overflow-x:auto;padding:.25rem 0 .5rem;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.meta{font-family:var(--mono);font-size:.8125rem;letter-spacing:.02em;color:var(--ink-2)}.meta .k{font-weight:700;color:var(--ink)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin:1rem 0 0}.btn{appearance:none;display:inline-block;font:700 .8125rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1px solid var(--ink);padding:.85rem 1.25rem;cursor:pointer;min-width:15.5rem;text-align:center;text-decoration:none;transition:background-color .12s ease-out,color .12s ease-out,border-color .12s ease-out}.btn:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn:active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn.secondary{font-weight:400}.actions .note{font-family:var(--mono);font-size:.8125rem;color:var(--ink-2);letter-spacing:.01em}.entries{list-style:none;margin:0;padding:0;max-width:none}.entries li{margin:0}.entries a{display:grid;grid-template-columns:7.5rem minmax(0,1fr);column-gap:1.5rem;align-items:baseline;padding:.9rem .75rem .95rem;margin-left:-.75rem;max-width:calc(70ch + 9rem);text-decoration:none;border-bottom:1px solid var(--ghost);transition:background-color .12s ease-out,color .12s ease-out}.entries li:first-child a{border-top:1px solid var(--ink)}.entries li:last-child a{border-bottom:1px solid var(--ink)}.entries a:hover{background:var(--ink);color:var(--paper)}.entries a:hover .when,.entries a:hover .sub{color:var(--paper);opacity:.8}.entries .when{font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--ink-3);white-space:nowrap}.entries .what{font-size:1.25rem;line-height:1.3;font-weight:400}.entries .sub{display:block;font-size:1rem;color:var(--ink-2);margin-top:.2rem;line-height:1.4}.entries .what b{font-weight:700}.year{font-family:var(--mono);font-size:.8125rem;letter-spacing:.08em;color:var(--ink-3);margin:1.75rem 0 .25rem}.year:first-child{margin-top:0}.prose>*{max-width:70ch}.prose h2,.prose h3,.prose h4{font-family:var(--serif);text-transform:none;letter-spacing:-.005em;font-weight:700;margin:2.5rem 0 .75rem}.prose h2{font-size:1.5rem;line-height:1.25}.prose h3{font-size:1.2rem;line-height:1.3}.prose h4{font-size:1rem;text-transform:uppercase;letter-spacing:.08em}.prose p{margin:0 0 1.1rem}.prose strong{font-weight:700}.prose a{text-decoration-color:var(--ghost)}.prose a:hover{text-decoration-color:var(--gold)}.prose ul,.prose ol{margin:0 0 1.25rem;padding-left:1.75rem}.prose li{margin:0 0 .5rem;padding-left:.25rem}.prose li>p{margin-bottom:.4rem}.prose ul{list-style:none}.prose ul>li{position:relative}.prose ul>li:before{content:"—";position:absolute;left:-1.75rem;color:var(--thread);font-family:var(--mono)}.prose ol{list-style:none;counter-reset:item}.prose ol>li{position:relative;counter-increment:item}.prose ol>li:before{content:counter(item) ".";position:absolute;left:-1.75rem;font-family:var(--mono);font-size:.875rem;font-weight:700;color:var(--thread);top:.15em}.prose li ul,.prose li ol{margin:.4rem 0 .25rem}.prose blockquote{margin:2.25rem 0;padding:.25rem 0 .25rem 1.5rem;border-left:3px solid var(--gold);font-size:1.4rem;line-height:1.35;letter-spacing:-.005em;color:var(--ink);text-wrap:balance}.prose blockquote p{margin:0 0 .6rem}.prose blockquote p:last-child{margin-bottom:0}.prose blockquote em{font-style:italic}.prose blockquote strong{font-weight:700}.prose blockquote cite{display:block;margin-top:.6rem;font:400 .8125rem/1.4 var(--mono);letter-spacing:.04em;font-style:normal;color:var(--ink-3)}.prose code{font-size:.9em;background:var(--paper-deep);padding:.08em .3em;margin:0 .05em}.prose pre{margin:1.5rem 0;padding:1rem 1.25rem;font-size:.9375rem;line-height:1.55;background:var(--ink);color:var(--paper);border-left:3px solid var(--thread);overflow-x:auto;scrollbar-color:var(--paper) transparent}.prose pre code{background:none;padding:0;font-size:inherit;color:inherit}.astro-code,.prose pre.astro-code{background:var(--ink)!important}.astro-code span{color:var(--paper)!important}.astro-code .line:before{content:""}.prose kbd{font-family:var(--mono);font-size:.85em;border:1px solid var(--ink);padding:0 .35em}.prose hr{border:0;height:1px;background:var(--ink);margin:2.5rem 0;max-width:8rem}.prose img{display:block;max-width:100%;height:auto;margin:1.75rem auto .75rem;background:#fff}.prose p:has(>img:only-child){text-align:center}.prose figure+p>em:only-child{display:block;font-size:.9375rem;color:var(--ink-3);line-height:1.45;margin-top:-.25rem;text-align:center;margin-left:auto;margin-right:auto}.prose table{border-collapse:collapse;font-size:1rem;margin:1.5rem 0;width:100%}.prose th,.prose td{text-align:left;padding:.5rem 1.5ch .5rem 0;border-bottom:1px solid var(--ghost);vertical-align:top}.prose th{font-family:var(--mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--ink)}.prose tr:last-child td{border-bottom:1px solid var(--ink)}.seealso{list-style:none;margin:0;padding:0}.seealso li{margin:0 0 .5rem}.seealso .k{font-family:var(--mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-right:.75rem}.footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;font-size:.9375rem;letter-spacing:.02em;padding-top:1.5rem;border-top:1px solid var(--ink)}.footer .c{text-align:center}.footer .r{text-align:right}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:1100px){:root{--sheet-x: 3rem;--indent: 3rem}.page{grid-template-columns:11rem minmax(0,1fr);column-gap:2rem;padding:2rem}}@media(max-width:900px){:root{--sheet-x: 1.5rem;--indent: 0rem}.page{grid-template-columns:1fr;padding:0;row-gap:0}.index{position:sticky;top:0;z-index:10;background:var(--bind);display:flex;align-items:center;gap:1rem;padding:.85rem 1.25rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.index::-webkit-scrollbar{display:none}.index .title{margin:0;padding:0 1rem 0 0;border-bottom:0;border-right:1px solid rgba(247,242,232,.45);white-space:nowrap}.index ol{display:flex;gap:.25rem}.index ol a{margin-left:0;white-space:nowrap}.index .install{margin:0 0 0 auto;padding:0;border:0}.index .install a{padding:.4rem .6rem;white-space:nowrap}.sheet{padding-top:1.75rem}.running{grid-template-columns:1fr 1fr}.running .c{display:none}.entries a{grid-template-columns:1fr;row-gap:.2rem;margin-left:0;padding-inline:.5rem}.footer{grid-template-columns:1fr 1fr}.footer .c{display:none}}.form{max-width:70ch;margin-top:1.25rem}.form .field{display:block;width:100%;font:400 1.0625rem/1.4 var(--serif);color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:0;padding:.6rem .75rem;margin:.3rem 0 1rem;transition:border-color .12s ease-out,box-shadow .12s ease-out}.form .field:focus{outline:none;border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.form .field::placeholder{color:var(--ink-3)}.form label.meta{display:block;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.form textarea.field{resize:vertical;min-height:8rem}.form .status{min-height:1.4em;margin:.6rem 0 0}.form.sent .status{color:var(--thread);font-weight:700}.form .btn:disabled{opacity:.45;cursor:not-allowed}.form .btn:disabled:hover{background:var(--paper);border-color:var(--ink);color:var(--ink)}.subscribe .row{display:flex;gap:0;max-width:34rem}.subscribe .row .field{margin:0;border-right:0}.subscribe .row .btn{min-width:0;padding-inline:1.5rem;white-space:nowrap}.subscribe.compact{margin-top:1rem}.subscribe label.meta{margin-bottom:.5rem}@media(max-width:520px){.subscribe .row{flex-direction:column}.subscribe .row .field{border-right:1px solid var(--ink);border-bottom:0}}.body>figure.hero{margin:1.75rem 0 0;max-width:70ch}figure.hero img{display:block;width:100%;height:auto}.share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.25rem}.share .k{font-family:var(--mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-right:.5rem}.share .chip{appearance:none;font:400 .8125rem/1 var(--mono);letter-spacing:.04em;color:var(--ink);background:transparent;border:1px solid var(--ink);padding:.45rem .7rem;cursor:pointer;text-decoration:none;transition:background-color .12s ease-out,color .12s ease-out,border-color .12s ease-out}.share .chip:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}.share .status{margin-left:.25rem;color:var(--ink-2)}.contact-intro{margin-bottom:.5rem}.prose figure{margin:1.75rem 0;max-width:70ch;text-align:center}.prose figure img{margin:0 auto}.prose figcaption{font-size:.9375rem;color:var(--ink-3);line-height:1.45;margin-top:.6rem;font-style:italic}
