@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spectral-400.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/spectral-500.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/spectral-700.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/spectral-400-italic.woff2) format("woff2")}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/chakra-petch-500.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2")}:root{color-scheme:dark;--night: #10141E;--night-deep: #0A0E16;--stone: #1A2130;--stone-edge: #26303F;--bone: #E4E6E2;--mist: #B7C1C7;--faded: #7E8C94;--jade: #6FD8B2;--jade-deep: #24564A;--amber: #E8A24C;--neon-red: #E05348;--steel: #3A4A5C;--font-body: "Spectral", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-wordmark: "Chakra Petch", var(--font-mono);--font-title: "Chakra Petch", Georgia, serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--topbar-h: 62px;--anchor-offset: calc(var(--topbar-h) + var(--space-4));--measure-index: 860px}*{box-sizing:border-box}html{background:var(--night)}html:has(.menu-check:checked){overflow:hidden}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--night);color:var(--bone);font-family:var(--font-body);font-size:19px;line-height:1.7}h1{font-family:var(--font-title)}a{color:var(--jade);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}:focus-visible{outline:2px solid var(--jade);outline-offset:3px}code{font-family:var(--font-mono)}:not(pre)>code{color:var(--jade);font-size:16.5px}.f-night{fill:var(--night)}.f-night-deep{fill:var(--night-deep)}.f-stone{fill:var(--stone)}.f-stone-edge{fill:var(--stone-edge)}.f-bone{fill:var(--bone)}.f-mist{fill:var(--mist)}.f-faded{fill:var(--faded)}.f-jade{fill:var(--jade)}.f-jade-deep{fill:var(--jade-deep)}.f-amber{fill:var(--amber)}.f-neon-red{fill:var(--neon-red)}.f-steel{fill:var(--steel)}.f-sil-0E{fill:#0e1620}.f-sil-14{fill:#141b26}.f-sil-18{fill:#182130}.f-lum{fill:#d8d2c0}@media(prefers-reduced-motion:no-preference){.anim-flick{animation:flick 1.9s steps(2) infinite}.anim-flick-2{animation:flick 1.6s steps(2) infinite;animation-delay:-.7s}.anim-bob{animation:bob 4s ease-in-out infinite alternate}.anim-bob-2{animation:bob 4s ease-in-out infinite alternate;animation-delay:-1.5s}.anim-bob-3{animation:bob-haut 4s ease-in-out infinite alternate;animation-delay:-2.6s}.anim-souffle{animation:souffle 6s infinite}.anim-souffle-2{animation:souffle 6s infinite;animation-delay:-1.5s}.anim-souffle-3{animation:souffle 6s infinite;animation-delay:-3s}.anim-souffle-4{animation:souffle 6s infinite;animation-delay:-4.5s}[data-reveil]:hover [data-sprite^=craftomancer] .f-jade,[data-reveil]:focus-within [data-sprite^=craftomancer] .f-jade{animation:boot .4s steps(1,end)}.anim-fall{animation:fall .9s linear infinite}.anim-fall-2{animation:fall .9s linear infinite;animation-delay:-.45s}.anim-boot{animation:boot .4s steps(1,end) .3s backwards}.anim-boot-flick{animation:boot .4s steps(1,end) .5s backwards,flick 1.9s steps(2) 1.1s infinite}.anim-boot-flick-2{animation:boot .45s steps(1,end) .65s backwards,flick 1.9s steps(2) 1.1s infinite}}@keyframes flick{0%,to{opacity:1}50%{opacity:.65}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes souffle{0%{transform:translateY(0);animation-timing-function:steps(1,end)}70%{transform:translateY(-1px);animation-timing-function:steps(1,end)}90%{transform:translateY(0)}}@keyframes bob-haut{0%{transform:translateY(0)}to{transform:translateY(-7px)}}@keyframes boot{0%{opacity:0}25%{opacity:1}50%{opacity:.2}75%{opacity:.8}to{opacity:1}}@keyframes fall{0%{transform:translateY(0)}to{transform:translateY(20px)}}.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--amber);border:2px solid color-mix(in srgb,var(--amber) 40%,transparent);padding:.05rem var(--space-1);margin-left:.4em;vertical-align:middle}.prose{font-size:19px;line-height:1.7;max-width:66ch}@media(min-width:900px){.prose{max-width:68ch}}.prose>p{margin:var(--space-5) 0}.prose h2{scroll-margin-top:var(--anchor-offset);font-size:21px;font-weight:500;color:var(--jade);margin:var(--space-7) 0 var(--space-4)}.prose h3{scroll-margin-top:var(--anchor-offset);font-size:19px;font-weight:500;color:var(--bone);margin:var(--space-6) 0 var(--space-3)}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin:.5em 0}.prose ul{list-style:none}.prose ul li{position:relative}.prose ul li:before{content:"";position:absolute;left:-1.3em;top:.9em;transform:translateY(-50%);width:.4em;height:.4em;background:var(--jade)}.prose .table-scroll{overflow-x:auto;margin:var(--space-6) 0}.prose table{border-collapse:collapse}.prose th,.prose td{min-width:14ch;padding:var(--space-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--stone-edge)}.prose tr>:first-child{padding-left:0}.prose tr>:last-child{padding-right:0}.prose th{font-family:var(--font-mono);font-size:12.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--bone)}.prose .table-scroll::-webkit-scrollbar{height:6px}.prose .table-scroll::-webkit-scrollbar-track{background:color-mix(in srgb,var(--stone-edge) 40%,transparent)}.prose .table-scroll::-webkit-scrollbar-thumb{background:var(--jade-deep)}.prose pre{font-family:var(--font-mono);border:2px solid var(--stone-edge);background:var(--night-deep)!important;padding:var(--space-4) var(--space-5);font-size:14px;line-height:1.7;margin:var(--space-6) 0 var(--space-5);position:relative}.prose pre>code{display:block;overflow-x:auto}.prose pre:before{content:"LE CONSTRUCT";position:absolute;top:-12px;left:1rem;padding:0 var(--space-2);background:var(--stone);border:2px solid var(--stone-edge);font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;line-height:1.5;color:var(--jade)}.prose .astro-code{--shiki-foreground: var(--bone);--shiki-background: transparent;--shiki-token-comment: var(--mist);--shiki-token-constant: var(--bone);--shiki-token-string: var(--bone);--shiki-token-keyword: var(--bone);--shiki-token-parameter: var(--bone);--shiki-token-function: var(--bone);--shiki-token-string-expression: var(--bone);--shiki-token-punctuation: var(--bone);--shiki-token-link: var(--bone)}.prose blockquote{--daemon-size: 28px;border:2px solid var(--jade-deep);background-color:color-mix(in srgb,var(--jade-deep) 10%,transparent);background-image:var(--sprite-daemon);background-repeat:no-repeat;background-position:var(--space-4) var(--space-4);background-size:var(--daemon-size) var(--daemon-size);padding:var(--space-4);margin:var(--space-6) 0}.prose blockquote>p:first-child{display:flex;align-items:center;min-height:var(--daemon-size);padding-left:calc(var(--daemon-size) + var(--space-4));margin-bottom:var(--space-3)}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose blockquote>p:first-child strong:first-child{font-family:var(--font-mono);color:var(--jade);font-size:11px;letter-spacing:.18em;font-weight:400}.sep,.prose hr{border:0;width:6px;height:6px;margin:var(--space-7) auto;background:var(--jade);position:relative;overflow:visible}.sep:before,.sep:after,.prose hr:before,.prose hr:after{content:"";position:absolute;top:0;width:6px;height:6px;background:var(--stone-edge)}.sep:before,.prose hr:before{left:-14px}.sep:after,.prose hr:after{left:14px}.prose em{color:var(--bone)}
