Something went wrong. Try again.
a new old personal site matmanna.dev
tailwind jekyll
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424*, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ;}
::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ;}
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/
/*1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)*/
*,::before,::after { box-sizing: border-box; /* 1 */ border-width: 0; /* 2 */ border-style: solid; /* 2 */ border-color: #e5e7eb; /* 2 */}
::before,::after { --tw-content: '';}
/*1. Use a consistent sensible line-height in all browsers.2. Prevent adjustments of font size after orientation changes in iOS.3. Use a more readable tab size.4. Use the user's configured `sans` font-family by default.5. Use the user's configured `sans` font-feature-settings by default.6. Use the user's configured `sans` font-variation-settings by default.7. Disable tap highlights on iOS*/
html,:host { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -moz-tab-size: 4; /* 3 */ -o-tab-size: 4; tab-size: 4; /* 3 */ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ font-feature-settings: normal; /* 5 */ font-variation-settings: normal; /* 6 */ -webkit-tap-highlight-color: transparent; /* 7 */}
/*1. Remove the margin in all browsers.2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.*/
body { margin: 0; /* 1 */ line-height: inherit; /* 2 */}
/*1. Add the correct height in Firefox.2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)3. Ensure horizontal rules are visible by default.*/
hr { height: 0; /* 1 */ color: inherit; /* 2 */ border-top-width: 1px; /* 3 */}
/*Add the correct text decoration in Chrome, Edge, and Safari.*/
abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted;}
/*Remove the default font size and weight for headings.*/
h1,h2,h3,h4,h5,h6 { font-size: inherit; font-weight: inherit;}
/*Reset links to optimize for opt-in styling instead of opt-out.*/
a { color: inherit; text-decoration: inherit;}
/*Add the correct font weight in Edge and Safari.*/
b,strong { font-weight: bolder;}
/*1. Use the user's configured `mono` font-family by default.2. Use the user's configured `mono` font-feature-settings by default.3. Use the user's configured `mono` font-variation-settings by default.4. Correct the odd `em` font sizing in all browsers.*/
code,kbd,samp,pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ font-feature-settings: normal; /* 2 */ font-variation-settings: normal; /* 3 */ font-size: 1em; /* 4 */}
/*Add the correct font size in all browsers.*/
small { font-size: 80%;}
/*Prevent `sub` and `sup` elements from affecting the line height in all browsers.*/
sub,sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline;}
sub { bottom: -0.25em;}
sup { top: -0.5em;}
/*1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)3. Remove gaps between table borders by default.*/
table { text-indent: 0; /* 1 */ border-color: inherit; /* 2 */ border-collapse: collapse; /* 3 */}
/*1. Change the font styles in all browsers.2. Remove the margin in Firefox and Safari.3. Remove default padding in all browsers.*/
button,input,optgroup,select,textarea { font-family: inherit; /* 1 */ font-feature-settings: inherit; /* 1 */ font-variation-settings: inherit; /* 1 */ font-size: 100%; /* 1 */ font-weight: inherit; /* 1 */ line-height: inherit; /* 1 */ letter-spacing: inherit; /* 1 */ color: inherit; /* 1 */ margin: 0; /* 2 */ padding: 0; /* 3 */}
/*Remove the inheritance of text transform in Edge and Firefox.*/
button,select { text-transform: none;}
/*1. Correct the inability to style clickable types in iOS and Safari.2. Remove default button styles.*/
button,input:where([type='button']),input:where([type='reset']),input:where([type='submit']) { -webkit-appearance: button; /* 1 */ background-color: transparent; /* 2 */ background-image: none; /* 2 */}
/*Use the modern Firefox focus style for all focusable elements.*/
:-moz-focusring { outline: auto;}
/*Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)*/
:-moz-ui-invalid { box-shadow: none;}
/*Add the correct vertical alignment in Chrome and Firefox.*/
progress { vertical-align: baseline;}
/*Correct the cursor style of increment and decrement buttons in Safari.*/
::-webkit-inner-spin-button,::-webkit-outer-spin-button { height: auto;}
/*1. Correct the odd appearance in Chrome and Safari.2. Correct the outline style in Safari.*/
[type='search'] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */}
/*Remove the inner padding in Chrome and Safari on macOS.*/
::-webkit-search-decoration { -webkit-appearance: none;}
/*1. Correct the inability to style clickable types in iOS and Safari.2. Change font properties to `inherit` in Safari.*/
::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */}
/*Add the correct display in Chrome and Safari.*/
summary { display: list-item;}
/*Removes the default spacing and border for appropriate elements.*/
blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre { margin: 0;}
fieldset { margin: 0; padding: 0;}
legend { padding: 0;}
ol,ul,menu { list-style: none; margin: 0; padding: 0;}
/*Reset default styling for dialogs.*/
dialog { padding: 0;}
/*Prevent resizing textareas horizontally by default.*/
textarea { resize: vertical;}
/*1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)2. Set the default placeholder color to the user's configured gray 400 color.*/
input::-moz-placeholder, textarea::-moz-placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */}
input::placeholder,textarea::placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */}
/*Set the default cursor for buttons.*/
button,[role="button"] { cursor: pointer;}
/*Make sure disabled buttons don't get the pointer cursor.*/
:disabled { cursor: default;}
/*1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) This can trigger a poorly considered lint error in some tools but is included by design.*/
img,svg,video,canvas,audio,iframe,embed,object { display: block; /* 1 */ vertical-align: middle; /* 2 */}
/*Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)*/
img,video { max-width: 100%; height: auto;}
/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) { display: none;}
.container { width: 100%;}
@media (min-width: 640px) { .container { max-width: 640px; }}
@media (min-width: 768px) { .container { max-width: 768px; }}
@media (min-width: 1024px) { .container { max-width: 1024px; }}
@media (min-width: 1280px) { .container { max-width: 1280px; }}
@media (min-width: 1536px) { .container { max-width: 1536px; }}
a { --tw-text-opacity: 1; color: rgb(154 52 18 / var(--tw-text-opacity, 1)); text-decoration-line: underline; text-decoration-style: dotted;}
.dark a { --tw-text-opacity: 1; color: rgb(251 146 60 / var(--tw-text-opacity, 1));}
h1 { font-family: sans-serif}
a[href^="http://"]:not(.no-external-icon):not([data-no-external-icon]):after, a[href^="https://"]:not(.no-external-icon):not([data-no-external-icon]):after { content: "\f08e"; font-family: FontAwesome; font-weight: normal; font-style: normal; display: inline-block; margin-left: 3px; text-decoration: none; padding-left: 3px;}
body { text-underline-offset: 4px; counter-reset: sidenote-counter;}
small { display: none;}
@media (min-width: 1024px) { small { display: block; }}
small { margin-right: -35%; counter-increment: sidenote-counter; float: right; clear: right; width: 40%; margin-top: 1em; margin-bottom: 1em; font-size: 1.0rem; line-height: 1.3; vertical-align: baseline; position: relative; padding: 1em; border-top: 1px dotted #CCCCCC; border-bottom: 1px dotted #CCCCCC;}
@media (min-width: 1280px) { small { margin-right: -50%; }}
small::before { margin-right: 0.5rem; margin-top: 0.25rem; height: 2rem; width: 2rem; align-items: center; border-radius: 9999px; --tw-border-opacity: 1; border-color: rgb(249 115 22 / var(--tw-border-opacity, 1)); padding: 0.25rem; text-align: center; content: counter(sidenote-counter); float: left; border-style: solid; border-width: 2px;}
strong { font-weight: 700; text-transform: uppercase;}
hr { margin-top: 1rem; margin-bottom: 1rem;}
.prose>h2, h3 { gap: 8px; display: flex;}
li::marker { --tw-text-opacity: 1 !important; color: rgb(249 115 22 / var(--tw-text-opacity, 1)) !important;}
.task-list-item-checkbox { margin-right: 8px;}
.visible { visibility: visible;}
.collapse { visibility: collapse;}
.static { position: static;}
.fixed { position: fixed;}
.absolute { position: absolute;}
.relative { position: relative;}
.right-0 { right: 0px;}
.top-0 { top: 0px;}
.z-10 { z-index: 10;}
.my-0 { margin-top: 0px; margin-bottom: 0px;}
.my-4 { margin-top: 1rem; margin-bottom: 1rem;}
.my-8 { margin-top: 2rem; margin-bottom: 2rem;}
.mb-2 { margin-bottom: 0.5rem;}
.mb-4 { margin-bottom: 1rem;}
.ml-3 { margin-left: 0.75rem;}
.mr-1 { margin-right: 0.25rem;}
.mr-2 { margin-right: 0.5rem;}
.mt-0 { margin-top: 0px;}
.mt-1 { margin-top: 0.25rem;}
.mt-3 { margin-top: 0.75rem;}
.mt-4 { margin-top: 1rem;}
.mt-8 { margin-top: 2rem;}
.block { display: block;}
.inline-block { display: inline-block;}
.inline { display: inline;}
.flex { display: flex;}
.table { display: table;}
.grid { display: grid;}
.contents { display: contents;}
.hidden { display: none;}
.h-24 { height: 6rem;}
.h-3 { height: 0.75rem;}
.h-36 { height: 9rem;}
.h-4 { height: 1rem;}
.h-6 { height: 1.5rem;}
.h-fit { height: -moz-fit-content; height: fit-content;}
.h-full { height: 100%;}
.w-3 { width: 0.75rem;}
.w-36 { width: 9rem;}
.w-4 { width: 1rem;}
.w-40 { width: 10rem;}
.w-6 { width: 1.5rem;}
.w-full { width: 100%;}
.min-w-0 { min-width: 0px;}
.min-w-36 { min-width: 9rem;}
.\!max-w-\[85ch\] { max-width: 85ch !important;}
.max-w-\[85ch\] { max-width: 85ch;}
.flex-1 { flex: 1 1 0%;}
.flex-shrink { flex-shrink: 1;}
.grow { flex-grow: 1;}
.-translate-y-4 { --tw-translate-y: -1rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));}
.transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));}
.resize { resize: both;}
.flex-row { flex-direction: row;}
.flex-col { flex-direction: column;}
.flex-wrap { flex-wrap: wrap;}
.content-center { align-content: center;}
.items-end { align-items: flex-end;}
.items-center { align-items: center;}
.items-stretch { align-items: stretch;}
.justify-center { justify-content: center;}
.gap-1 { gap: 0.25rem;}
.gap-2 { gap: 0.5rem;}
.gap-3 { gap: 0.75rem;}
.gap-4 { gap: 1rem;}
.space-y-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));}
.self-center { align-self: center;}
.overflow-hidden { overflow: hidden;}
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.rounded { border-radius: 0.25rem;}
.rounded-full { border-radius: 9999px;}
.rounded-md { border-radius: 0.375rem;}
.rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem;}
.border { border-width: 1px;}
.border-0 { border-width: 0px;}
.border-t-\[6px\] { border-top-width: 6px;}
.border-solid { border-style: solid;}
.border-dotted { border-style: dotted;}
.border-primary-500 { --tw-border-opacity: 1; border-color: rgb(249 115 22 / var(--tw-border-opacity, 1));}
.border-primary-500\/40 { border-color: rgb(249 115 22 / 0.4);}
.bg-primary-100 { --tw-bg-opacity: 1; background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));}
.bg-primary-200 { --tw-bg-opacity: 1; background-color: rgb(254 215 170 / var(--tw-bg-opacity, 1));}
.bg-primary-300 { --tw-bg-opacity: 1; background-color: rgb(253 186 116 / var(--tw-bg-opacity, 1));}
.bg-primary-500 { --tw-bg-opacity: 1; background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));}
.bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));}
.object-cover { -o-object-fit: cover; object-fit: cover;}
.p-0 { padding: 0px;}
.p-2 { padding: 0.5rem;}
.p-4 { padding: 1rem;}
.px-0 { padding-left: 0px; padding-right: 0px;}
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem;}
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem;}
.px-4 { padding-left: 1rem; padding-right: 1rem;}
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem;}
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem;}
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem;}
.py-4 { padding-top: 1rem; padding-bottom: 1rem;}
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem;}
.pt-0 { padding-top: 0px;}
.pt-3 { padding-top: 0.75rem;}
.pt-8 { padding-top: 2rem;}
.text-\[11px\] { font-size: 11px;}
.text-sm { font-size: 0.875rem; line-height: 1.25rem;}
.text-xs { font-size: 0.75rem; line-height: 1rem;}
.font-bold { font-weight: 700;}
.uppercase { text-transform: uppercase;}
.lowercase { text-transform: lowercase;}
.italic { font-style: italic;}
.leading-tight { line-height: 1.25;}
.text-primary-200 { --tw-text-opacity: 1; color: rgb(254 215 170 / var(--tw-text-opacity, 1));}
.text-primary-500 { --tw-text-opacity: 1; color: rgb(249 115 22 / var(--tw-text-opacity, 1));}
.text-primary-600 { --tw-text-opacity: 1; color: rgb(234 88 12 / var(--tw-text-opacity, 1));}
.text-primary-700 { --tw-text-opacity: 1; color: rgb(194 65 12 / var(--tw-text-opacity, 1));}
.text-primary-800 { --tw-text-opacity: 1; color: rgb(154 52 18 / var(--tw-text-opacity, 1));}
.no-underline { text-decoration-line: none;}
.opacity-0 { opacity: 0;}
.shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);}
.outline-primary-200 { outline-color: #fed7aa;}
.ring { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);}
.blur-sm { --tw-blur: blur(4px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);}
.filter { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);}
.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;}
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;}
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;}
.duration-100 { transition-duration: 100ms;}
.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);}
input.task-list-item-checkbox { margin-right: 8px !important;}
.toc-link { display: flex; align-items: center; gap: .5rem;}
.toc-bullet { display: inline-flex; width: 1.25rem; left: -23px; height: 1.25rem; align-items: center; justify-content: center;}
.toc-ring-svg { width: 0.7rem; height: 0.7rem;}
.toc-ring-bg { stroke: rgba(0, 0, 0, 0.08);}
.dark .toc-ring-bg { stroke: rgba(255, 255, 255, 0.06);}
.toc-ring { stroke: rgba(0, 0, 0, 0.5); stroke-dasharray: 50; stroke-dashoffset: 50;}
.dark .toc-ring { stroke: rgba(255, 255, 255, 0.9);}
.toc-link-text { display: inline;}
.toc-fixed .toc-bullet { display: none !important;}
.content strong { text-transform: none !important;}
@media (min-width: 170ch) { .projects-width-breakout { --projects-breakout-width: min(170ch, calc(100vw - 2rem)); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: var(--projects-breakout-width); max-width: none; margin-left: calc((80ch - var(--projects-breakout-width)) / 2); margin-right: calc((80ch - var(--projects-breakout-width)) / 2); }}
.\[keywords\:node-addon-api\] { keywords: node-addon-api;}
@font-face { font-family: 'Libertinus Mono';
src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAACUsAA4AAAAASUAAACTWAAZMzAAAAAAAAAAAAAAAAAAAAAAAAAAAGigbIByDLgZgAFQRCAqBgnDlNwE2AiQDgWwLsLn3QAATYCJAOfcAQgBZF0B8JNWxMMkgBjm1b1wDzstgGwZFx99U89oDpYyh2qnmsDqVeuYNGBHDYOwMDXGmf/////JyeTMdZtyLGBIJKaWfY9qKWUpNE9lzJXtFIW5J6Rc0FFy5mo62q1o2LNozy8EzM7Nh8iYea+ey8zSnxdHUdrrbWGGl9/eqFo57LkpSwo4S+VVBODz369MbA94aDh83lX4SOLWdgDF0yY457F6rUjuSAKkvBmeVTqX21H0gjG4uvQfLpTbxHYlNvEfxtJSfmV1BMDLzDEgj3opZtMeoJjnfaIjlTf32JiucTrT9935QcDQRAMJTjloQ+WKcpPPX86w4d60ORdYBE/9Vsl7+iGnlT7j2/XLbZlYOwyKNFGrDjxQkXf4VfPJnmQ8AXat8Pza/P9i27g4Jo84Jo4IlMJkRIEQRQVBBWjZuXMmFGzem7mtDd7LtwmVTHI9ex9KjbSY5EIFwECQdXjcALpkYKf537vRwHtjMbTpAzA2Wgg40zxtDXdinjV+v/UzR/YpXHgAVlbMC6B8NM2/9r8kxzo+3dJk4rUcAID5I1kPmzv55vLDn7l8RoIimDBEscFwToFyxSJMaW1Pe7ptgPzzHmED4WWPnAtoxAn9iNb2+gq67NQlmDQ4HbbPwJFiUlu/myzf6djpucltW/Wemos/sWQANnGxmo20hUyRJBwffOm+ypl/MfT/g2Q+eWHoFjLE7kvCWC4zU1thW4T7y6RKzcE4OvZ7zWb8O5/Jw5ZGBKGhCEqofB/7B1bAseOjWglEM8TN//day3IIJAAJQ4tnaN62XEWniAEOBwT+QA+6l4/eURDAdEIZ7xhrbez+y4eKx0Fp8YfS9CjEQBaXYSfZqcF5We8+T51fV8FG6vsjR1kSyDPWpKDSHcHm2TSwKRc3SVbYGE0oBm093DzBH5a+3L3b5RkW2aQsgPJQZacMGSb2OHm8PlS/G+a6uKT9ZGcaSY6MfbHVLME93X3fEnErIUpPF/L+fhzandAkea786V0FWEe9rBLatOZGFM8czDEI8xgMrIZXuECEQWesFiPkdN9vmnNZuZTM5T51AS6cBdhMRLlNtfnXx9aNvS2LHRFD0WiEAqMLO3K84BC4YtEaKxHe4RRCCWZ/zXV/isGCteO2U1YwALZSRI6SXslvgLRAPlGgGlGdBlhmjGQRBJqdmrKMgllZgw/P56n9r6z7wxZ5i1dyODx2E+p0iV98/8VlC5RrY5Pfykdr7D8valmu58AJFAXaV4hdZKjrrJUdJB0oXbVucR/fxf4+/8ugf3LpbC7JI8AJR2CjkDuKpBL+gYAGeTokSeBd5p1jFh1SJQKXRDoJDiFVvs5Zcgihc1O6DLF25a526/+bWlLr+XQFp8PgCmg6w6En7WjWkse6Vov+aOZ/lZG8qa0B1AkIQL0xPnaaN+zYIXg4MITC/P1Sk14pdfghkE0XNEO9rq6VqpXmP0n22H+fvt4qvTZYS8etPa3T4LfRJSgAGobDg4IJuwk6xkJpJgTL40ADfxBOoEsD2Q1AJjaiau+v/E3/ACxZOPWCgnOEqPiOkIQB4TAW47H4fWur2B/SXomEkNcG250TRZNou0cJVCoJqCXvzz0gsTRksMX3S9P/7f1yj7KT9p0hWClWghXrXuwl6zri2iDZ529fy5pSgwk4WyxaqhtI5NZ83eN7x3LadmOiL5UYkqCHBgLrMda+33Zr26O39/1KYFDwKFFUwBnQ+n+QS5uN2fdf96MRIhIJf0tLPfUkO79fzh7E1pyakTgppb6ih9Pwp5sDOs2Tvxmq1x1+2/87cuUfXXZOFxnAHAfBYIOo1nDNOAWnVvtih6c0sMAAAAASUVORK') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;}
.hover\:underline:hover { text-decoration-line: underline;}
@media (min-width: 640px) { .sm\:flex-row { flex-direction: row; }}
@media (min-width: 768px) { .md\:h-24 { height: 6rem; }
.md\:w-36 { width: 9rem; }
.md\:min-w-36 { min-width: 9rem; }
.md\:items-center { align-items: center; }}
@media (min-width: 1024px) { .lg\:h-36 { height: 9rem; }
.lg\:w-48 { width: 12rem; }
.lg\:min-w-44 { min-width: 11rem; }
.lg\:items-center { align-items: center; }}
@media (prefers-color-scheme: dark) { .dark\:border-none { border-style: none; }
.dark\:bg-primary-800 { --tw-bg-opacity: 1; background-color: rgb(154 52 18 / var(--tw-bg-opacity, 1)); }
.dark\:bg-primary-900 { --tw-bg-opacity: 1; background-color: rgb(124 45 18 / var(--tw-bg-opacity, 1)); }
.dark\:bg-primary-950 { --tw-bg-opacity: 1; background-color: rgb(67 20 7 / var(--tw-bg-opacity, 1)); }
.dark\:text-primary-200 { --tw-text-opacity: 1; color: rgb(254 215 170 / var(--tw-text-opacity, 1)); }
.dark\:text-primary-300 { --tw-text-opacity: 1; color: rgb(253 186 116 / var(--tw-text-opacity, 1)); }
.dark\:text-primary-400 { --tw-text-opacity: 1; color: rgb(251 146 60 / var(--tw-text-opacity, 1)); }
.dark\:text-primary-600 { --tw-text-opacity: 1; color: rgb(234 88 12 / var(--tw-text-opacity, 1)); }
.dark\:text-primary-700 { --tw-text-opacity: 1; color: rgb(194 65 12 / var(--tw-text-opacity, 1)); }
.dark\:outline-primary-900 { outline-color: #7c2d12; }}