/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--text-xs:calc(.75rem*var(--text-scale));--text-xs--line-height:calc(1/.75);--text-sm:calc(.875rem*var(--text-scale));--text-sm--line-height:calc(1.25/.875);--text-base:calc(1rem*var(--text-scale));--text-base--line-height: 1.5 ;--text-lg:calc(1.125rem*var(--text-scale));--text-lg--line-height:calc(1.75/1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-widest:.1em;--leading-relaxed:1.625;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{border-color:hsl(var(--border))}:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:calc(1rem*var(--text-scale));line-height:1.65}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.top-\[50\%\]{top:50%}.top-\[calc\(var\(--sticky-offset\,0px\)\+1\.5rem\)\]{top:calc(var(--sticky-offset,0px) + 1.5rem)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-50{z-index:50}.z-\[100\]{z-index:100}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-\[4\/5\]{aspect-ratio:4/5}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-\[1px\]{height:1px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-8{min-height:calc(var(--spacing)*8)}.min-h-9{min-height:calc(var(--spacing)*9)}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-\[60px\]{min-height:60px}.min-h-\[120px\]{min-height:120px}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-2\/3{width:66.6667%}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-9{width:calc(var(--spacing)*9)}.w-\[1px\]{width:1px}.w-\[76vw\]{width:76vw}.w-full{width:100%}.w-max{width:max-content}.max-w-80{max-width:calc(var(--spacing)*80)}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[20ch\]{min-width:20ch}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-10{gap:calc(var(--spacing)*10)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-destructive{border-color:hsl(var(--destructive))}.border-frame{border-color:hsl(var(--frame))}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-field{background-color:hsl(var(--field))}.bg-frame{background-color:hsl(var(--frame))}.bg-overlay\/55{background-color:hsl(var(--overlay))}@supports (color:color-mix(in lab,red,red)){.bg-overlay\/55{background-color:color-mix(in oklab,hsl(var(--overlay))55%,transparent)}}.bg-primary,.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary))10%,transparent)}}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[1px\]{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground,.text-foreground\/50{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,hsl(var(--foreground))50%,transparent)}}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.accent-auto{accent-color:auto}.opacity-0{opacity:0}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:color-mix(in oklab,hsl(var(--muted))40%,transparent)}}.group-\[\.destructive\]\:text-destructive-foreground\/80:is(:where(.group).destructive *){color:hsl(var(--destructive-foreground))}@supports (color:color-mix(in lab,red,red)){.group-\[\.destructive\]\:text-destructive-foreground\/80:is(:where(.group).destructive *){color:color-mix(in oklab,hsl(var(--destructive-foreground))80%,transparent)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media (hover:hover){.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover{border-color:color-mix(in oklab,hsl(var(--destructive))30%,transparent)}}.group-\[\.destructive\]\:hover\:bg-destructive:is(:where(.group).destructive *):hover{background-color:hsl(var(--destructive))}.group-\[\.destructive\]\:hover\:text-destructive-foreground:is(:where(.group).destructive *):hover{color:hsl(var(--destructive-foreground))}}.focus\:opacity-100:focus{opacity:1}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.group-\[\.destructive\]\:focus\:ring-destructive:is(:where(.group).destructive *):focus{--tw-ring-color:hsl(var(--destructive))}.group-\[\.destructive\]\:focus\:ring-destructive-foreground:is(:where(.group).destructive *):focus{--tw-ring-color:hsl(var(--destructive-foreground))}.group-\[\.destructive\]\:focus\:ring-offset-destructive:is(:where(.group).destructive *):focus{--tw-ring-offset-color:hsl(var(--destructive))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[selected\=true\]\:bg-primary[data-selected=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:text-primary-foreground[data-selected=true]{color:hsl(var(--primary-foreground))}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:.8}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50% }.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100% }.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48% }.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50% }.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48% }.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100% }.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}@media (min-width:40rem){.sm\:top-auto{top:auto}.sm\:right-0{right:calc(var(--spacing)*0)}.sm\:bottom-0{bottom:calc(var(--spacing)*0)}.sm\:w-72{width:calc(var(--spacing)*72)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100% }}@media (min-width:48rem){.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:w-80{width:calc(var(--spacing)*80)}}.dark\:bg-overlay\/75:is(.dark *){background-color:hsl(var(--overlay))}@supports (color:color-mix(in lab,red,red)){.dark\:bg-overlay\/75:is(.dark *){background-color:color-mix(in oklab,hsl(var(--overlay))75%,transparent)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:px-\[1ch\] [cmdk-group-heading]{padding-inline:1ch}.\[\&_\[cmdk-group-heading\]\]\:pb-1 [cmdk-group-heading]{padding-bottom:calc(var(--spacing)*1)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:font-semibold [cmdk-group-heading]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\>svg\]\:h-3\.5>svg{height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:w-3\.5>svg{width:calc(var(--spacing)*3.5)}.\[\&\[data-selected\=true\]_\*\]\:text-primary-foreground[data-selected=true] *{color:hsl(var(--primary-foreground))}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin-v1.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin-ext-v1.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:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-italic-latin-v1.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:IBM Plex Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-italic-latin-ext-v1.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-latin-v1.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-latin-ext-v1.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-mono-600-latin-v1.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-mono-600-latin-ext-v1.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:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-mono-700-latin-v1.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:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-mono-700-latin-ext-v1.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:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-latin-v1.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:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-latin-ext-v1.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:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-sans-500-latin-v1.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:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-sans-500-latin-ext-v1.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:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600-latin-v1.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:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600-latin-ext-v1.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:IBM Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-sans-700-latin-v1.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:IBM Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-sans-700-latin-ext-v1.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:IBM Plex Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-italic-latin-v1.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:IBM Plex Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-italic-latin-ext-v1.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-serif-400-latin-v1.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:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-serif-400-latin-ext-v1.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/plex-serif-400-italic-latin-v1.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:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/plex-serif-400-italic-latin-ext-v1.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-serif-600-latin-v1.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:IBM Plex Serif;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-serif-600-latin-ext-v1.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-serif-700-latin-v1.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:IBM Plex Serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-serif-700-latin-ext-v1.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--background:40 54% 95%;--foreground:28 18% 14%;--card:42 60% 97%;--card-foreground:28 18% 14%;--popover:42 60% 97%;--popover-foreground:28 18% 14%;--secondary:38 34% 92%;--secondary-foreground:28 20% 18%;--muted:40 30% 90%;--muted-foreground:32 11% 38%;--destructive:0 68% 44%;--destructive-foreground:40 60% 97%;--border:36 18% 78%;--input:36 16% 70%;--radius:0;--pencil:32 14% 52%;--overlay:28 24% 10%;--frame:28 18% 14%;--shadow-solid:37 19% 70%;--field:28 18% 14%;--field-foreground:40 54% 95%;--term-close:4 70% 58%;--term-min:40 82% 52%;--term-max:142 45% 45%;--motion:1}@media (prefers-reduced-motion:reduce){:root{--motion:0}}:root[data-motion=reduzido]{--motion:0}:root[data-motion=completo]{--motion:1}:root{--text-scale:1}:root[data-text-scale="90"]{--text-scale:.9}:root[data-text-scale="110"]{--text-scale:1.1}:root[data-text-scale="125"]{--text-scale:1.25}.site-sidebar,.site-header,.tui-statusbar,.preferences-panel,.text-scale-fixed{--text-scale:1;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-7xl:4.5rem;font-size:1rem}:root{--font-reading:"IBM Plex Serif",ui-serif,Georgia,Cambria,"Times New Roman",serif;--font-reading-heading:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,sans-serif}:root[data-reading-font=sans]{--font-reading:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,sans-serif}:root[data-reading-font=mono]{--font-reading:var(--font-mono);--font-reading-heading:var(--font-mono)}.dark{--background:0 0% 0%;--foreground:42 14% 81%;--card:0 0% 4%;--card-foreground:42 14% 81%;--popover:0 0% 4%;--popover-foreground:42 14% 81%;--secondary:0 0% 10%;--secondary-foreground:42 14% 81%;--muted:0 0% 8%;--muted-foreground:34 7% 63%;--destructive:357 80% 52%;--destructive-foreground:0 0% 0%;--border:262 8% 22%;--input:262 8% 30%;--pencil:262 11% 43%;--overlay:0 0% 0%;--term-close:4 72% 64%;--term-min:40 85% 60%;--term-max:142 48% 55%;--frame:42 14% 81%;--shadow-solid:0 0% 23%;--field:0 0% 10%;--field-foreground:45 56% 92%}:root{--primary:357 95% 43%;--primary-foreground:40 60% 97%;--accent:357 70% 92%;--accent-foreground:357 60% 20%;--ring:357 95% 43%}.dark{--primary:357 80% 52%;--primary-foreground:0 0% 0%;--accent:357 30% 12%;--accent-foreground:357 30% 88%;--ring:357 80% 52%}:root{--tag-vermelho:#d50612;--tag-verde:#39936c;--tag-ocre:#ac7d00;--tag-azul:#0571b3;--tag-violeta:#4b15a8;--tag-mix:black;--tag-mix-amount:50%}.dark{--tag-vermelho:#e6242f;--tag-verde:#45b384;--tag-ocre:#f5b200;--tag-azul:#1480c2;--tag-violeta:#8c67cb;--tag-mix:white;--tag-mix-amount:52%}:root:not(.dark)[data-accent=grafite]{--primary:38 11% 28%;--primary-foreground:40 60% 97%;--accent:38 14% 92%;--accent-foreground:38 60% 20%;--ring:38 11% 28%}:root.dark[data-accent=grafite]{--primary:45 56% 92%;--primary-foreground:0 0% 0%;--accent:45 8% 12%;--accent-foreground:45 30% 88%;--ring:45 56% 92%}:root:not(.dark):is([data-accent=azul],[data-accent=auto][data-post-accent=azul]){--primary:203 94% 36%;--primary-foreground:40 60% 97%;--accent:203 60% 92%;--accent-foreground:203 60% 20%;--ring:203 94% 36%}:root.dark:is([data-accent=azul],[data-accent=auto][data-post-accent=azul]){--primary:203 81% 42%;--primary-foreground:0 0% 0%;--accent:203 30% 12%;--accent-foreground:203 30% 88%;--ring:203 81% 42%}:root:not(.dark):is([data-accent=vermelho],[data-accent=auto][data-post-accent=vermelho]){--primary:357 95% 43%;--primary-foreground:40 60% 97%;--accent:357 70% 92%;--accent-foreground:357 60% 20%;--ring:357 95% 43%}:root.dark:is([data-accent=vermelho],[data-accent=auto][data-post-accent=vermelho]){--primary:357 80% 52%;--primary-foreground:0 0% 0%;--accent:357 30% 12%;--accent-foreground:357 30% 88%;--ring:357 80% 52%}:root:not(.dark):is([data-accent=verde],[data-accent=auto][data-post-accent=verde]){--primary:154 44% 40%;--primary-foreground:40 60% 97%;--accent:154 38% 92%;--accent-foreground:154 60% 20%;--ring:154 44% 40%}:root.dark:is([data-accent=verde],[data-accent=auto][data-post-accent=verde]){--primary:154 44% 49%;--primary-foreground:0 0% 0%;--accent:154 30% 12%;--accent-foreground:154 30% 88%;--ring:154 44% 49%}:root:not(.dark):is([data-accent=ocre],[data-accent=auto][data-post-accent=ocre]){--primary:44 100% 34%;--primary-foreground:44 60% 10%;--accent:44 70% 92%;--accent-foreground:44 60% 20%;--ring:44 100% 34%}:root.dark:is([data-accent=ocre],[data-accent=auto][data-post-accent=ocre]){--primary:44 100% 48%;--primary-foreground:0 0% 0%;--accent:44 30% 12%;--accent-foreground:44 30% 88%;--ring:44 100% 48%}:root:not(.dark):is([data-accent=violeta],[data-accent=auto][data-post-accent=violeta]){--primary:262 78% 37%;--primary-foreground:40 60% 97%;--accent:262 55% 92%;--accent-foreground:262 60% 20%;--ring:262 78% 37%}:root.dark:is([data-accent=violeta],[data-accent=auto][data-post-accent=violeta]){--primary:262 49% 60%;--primary-foreground:0 0% 0%;--accent:262 30% 12%;--accent-foreground:262 30% 88%;--ring:262 49% 60%}.accent-swatch[data-accent=grafite]{--swatch:38 11% 28%}.accent-swatch[data-accent=azul]{--swatch:203 94% 36%}.accent-swatch[data-accent=vermelho]{--swatch:357 95% 43%}.accent-swatch[data-accent=verde]{--swatch:154 44% 40%}.accent-swatch[data-accent=ocre]{--swatch:44 100% 34%}.accent-swatch[data-accent=violeta]{--swatch:262 78% 37%}.dark .accent-swatch[data-accent=grafite]{--swatch:45 56% 92%}.dark .accent-swatch[data-accent=azul]{--swatch:203 81% 42%}.dark .accent-swatch[data-accent=vermelho]{--swatch:357 80% 52%}.dark .accent-swatch[data-accent=verde]{--swatch:154 44% 49%}.dark .accent-swatch[data-accent=ocre]{--swatch:44 100% 48%}.dark .accent-swatch[data-accent=violeta]{--swatch:262 49% 60%}.accent-swatch{color:hsl(var(--swatch));letter-spacing:0}.accent-auto{display:inline-flex}.technologies-strip{scrollbar-color:hsl(var(--primary))hsl(var(--field));margin-top:1.25rem;padding-bottom:.6rem;overflow-x:auto}.technologies-strip:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:3px}.technologies-list{gap:1.5ch;width:max-content;list-style:none;display:flex}.technologies-tile{border:1px solid hsl(var(--frame));background-color:hsl(var(--foreground));flex:none;justify-content:center;align-items:center;width:58px;height:58px;display:flex}.technologies-tile img{object-fit:contain;width:36px;height:36px}.prose{color:hsl(var(--foreground));font-family:var(--font-reading);font-size:calc(1.1875rem*var(--text-scale));overflow-wrap:break-word;text-wrap:pretty;max-width:42rem;line-height:1.7}:root[data-reading-font=mono] .prose{font-size:calc(1rem*var(--text-scale))}.prose>*+*{margin-top:1.25em}.prose h2,.prose h3,.prose h4{font-family:var(--font-reading-heading);letter-spacing:0;text-wrap:balance;scroll-margin-top:calc(var(--sticky-offset,0px) + 1.5rem);font-weight:600;line-height:1.3}.prose h2{font-size:calc(1.625rem*var(--text-scale));margin-top:1.7em;margin-bottom:.6em}.prose h2+*{margin-top:0}.prose h3{font-size:calc(1.25rem*var(--text-scale));margin-top:2em}.prose h4{font-size:calc(1.0625rem*var(--text-scale));margin-top:1.75em}.prose a{color:hsl(var(--primary));text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.prose .heading-anchor{color:hsl(var(--muted-foreground));opacity:0;margin-left:.4em;text-decoration:none;transition:opacity .15s}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.prose h4:hover .heading-anchor,.prose .heading-anchor:focus-visible{opacity:1}.prose ul,.prose ol{padding-left:1.5rem}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.4em}.prose blockquote{border:1px solid hsl(var(--pencil));color:hsl(var(--foreground));margin-block:2em;padding:1.1rem 3ch 1.5rem;font-size:1.06em;font-style:italic;position:relative}.prose blockquote:before{content:"Citação";content:"Citação"/"";background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));padding-inline:1ch;font-style:normal;font-weight:600;line-height:1.6;position:absolute;top:-.85em;left:1.5ch}.prose hr{height:auto;font-family:var(--font-mono);text-align:center;white-space:nowrap;color:hsl(var(--pencil));border:0;margin-block:2em;line-height:1;overflow:hidden}.prose hr:before{content:"─────────────── ◆ ───────────────";content:"─────────────── ◆ ───────────────"/""}.prose img{border:1px solid hsl(var(--pencil)/.4)}.prose figcaption{color:hsl(var(--muted-foreground));font-size:calc(.875rem*var(--text-scale));text-align:center;margin-top:.5em}.prose strong{color:hsl(var(--foreground));font-weight:700}.prose :not(pre)>code{background-color:hsl(var(--muted));color:hsl(var(--primary));padding:.15em .4em;font-size:.875em}.prose .code-frame{border:1px solid hsl(var(--pencil));margin-block:2.25rem 1.75rem;position:relative}.prose .code-frame pre{border:0;margin:0}.code-frame-head{font-family:var(--font-mono);font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--foreground));pointer-events:none;justify-content:space-between;align-items:center;gap:1rem;line-height:1.6;display:flex;position:absolute;top:-.85em;left:1.5ch;right:1.5ch}.code-frame-title,.code-copy{background-color:hsl(var(--background));pointer-events:auto;padding-inline:1ch}.code-frame-title{font-weight:600}.prose .code-frame pre.shiki{padding-top:1.35rem}.code-frame.is-terminal pre:not(.has-line-numbers) .line:not(:empty):before{content:"$ ";content:"$ "/"";color:hsl(var(--primary))}.code-copy,.quote-copy{visibility:hidden;font-family:var(--font-mono);font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--primary));font-style:normal}.code-copy:before,.quote-copy:before{content:"[";content:"["/""}.code-copy:after,.quote-copy:after{content:"]";content:"]"/""}[data-copy-ready] .code-copy,[data-copy-ready] .quote-copy{visibility:visible}.code-copy:hover,.code-copy:focus-visible,.quote-copy:hover,.quote-copy:focus-visible{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));outline:2px solid #0000}.quote-copy{background-color:hsl(var(--background));padding-inline:1ch;line-height:1.6;position:absolute;bottom:-.85em;right:1.5ch}.prose pre.has-line-numbers code{counter-reset:line}.prose pre.has-line-numbers .line:before{counter-increment:line;content:counter(line);text-align:right;width:2.5ch;color:hsl(var(--muted-foreground)/.6);margin-right:1.25ch;display:inline-block}.prose pre{border:1px solid hsl(var(--pencil)/.35);font-size:calc(.875rem*var(--text-scale));tab-size:2;padding:1rem 1.25rem;line-height:1.65;overflow-x:auto}.prose pre.shiki{background-color:hsl(var(--card))}.prose .shiki,.prose .shiki span{color:var(--shiki-light)}.dark .prose .shiki,.dark .prose .shiki span{color:var(--shiki-dark)}.prose sup a[data-footnote-ref]{font-family:var(--font-mono);font-size:.75em;text-decoration:none}.prose sup a[data-footnote-ref]:before{content:"["}.prose sup a[data-footnote-ref]:after{content:"]"}.prose .footnotes{border-top:1px solid hsl(var(--pencil));font-size:calc(.9375rem*var(--text-scale));margin-top:2.4em;padding-top:.9rem;line-height:1.6}.prose .footnotes-title{font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));color:hsl(var(--foreground));margin:0 0 .5rem;font-weight:600}.prose .footnotes-title .heading-anchor{display:none}.link-preview{z-index:45;border:1px solid hsl(var(--frame));background-color:hsl(var(--background));width:min(40ch,100vw - 2rem);color:hsl(var(--foreground));font-family:var(--font-mono);font-size:calc(.8125rem*var(--text-scale));box-shadow:var(--shadow-dialog);padding:1rem 1.5ch .65rem;line-height:1.5;position:fixed}.link-preview-dock{z-index:45;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.4rem;padding:.5rem;display:flex;position:fixed;inset:auto 0 0 auto}.link-preview-dock .link-preview{pointer-events:auto;width:min(320px,100vw - 1rem);position:static}.link-preview-host{color:hsl(var(--primary));line-height:1.5}.link-preview-foot{text-align:right;margin-top:.5rem}.link-preview-action:before{content:"[";content:"["/""}.link-preview-action:after{content:"]";content:"]"/""}@media (min-width:861px){.link-preview-dock{bottom:var(--statusbar-h)}}.link-preview-action{font:inherit;color:hsl(var(--primary))}.link-preview-title{font-weight:600;line-height:1.35;display:block}.link-preview-text{margin-top:.25rem}.footnote-sheet{z-index:40;border:3px double hsl(var(--frame));background-color:hsl(var(--background));align-items:flex-start;gap:2ch;padding:1.4rem 2ch .9rem;display:flex;position:fixed;inset:auto 0 0}@media (min-width:861px){.footnote-sheet{bottom:var(--statusbar-h)}}.footnote-sheet-body{max-width:62ch;max-height:50dvh;font-size:calc(1.0625rem*var(--text-scale));flex:1;overflow-y:auto}.footnote-sheet-close{border:1px solid hsl(var(--foreground));background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-mono);box-shadow:var(--shadow-button);transition:transform calc(60ms*var(--motion)),box-shadow calc(60ms*var(--motion));flex:none;padding:.1rem 1.5ch;font-weight:600}.footnote-sheet-close:active{box-shadow:none;transform:translate(6px,5px)}.footnote-sheet-close:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:3px}.prose table{border-collapse:collapse;width:100%;font-size:calc(.9375rem*var(--text-scale));display:block;overflow-x:auto}.prose th,.prose td{border:1px solid hsl(var(--pencil)/.5);text-align:left;padding:.5rem .75rem}.prose th{background-color:hsl(var(--card));font-family:var(--font-mono);font-size:.9em;font-weight:600}.prose kbd{border:1px solid hsl(var(--pencil)/.6);border-bottom-width:2px;padding:.1em .4em;font-size:.8125em}.prose .content-figure{margin-block:2em}.prose .content-figure img:not([width]){width:100%}.prose .content-figure img[width]{max-width:100%;height:auto;margin-inline:auto}.prose .callout{--callout-color:hsl(var(--pencil));border:1px solid var(--callout-color);margin-block:2.25em 1.75em;padding:1.1rem 2ch 1rem;position:relative}.prose .callout[data-type=dica]{--callout-color:hsl(var(--primary))}.prose .callout[data-type=aviso]{--callout-color:hsl(var(--destructive))}.prose .callout-title{max-width:calc(100% - 3ch);font-size:calc(.8125rem*var(--text-scale));margin:0;left:1.5ch}.prose .callout-kind{color:var(--callout-color)}.prose .callout[data-type=nota] .callout-kind{color:hsl(var(--foreground))}.prose .callout-body,.prose .callout-body>:first-child{margin-top:0}.prose .gallery{gap:1rem;margin-block:2em;display:grid}.prose .gallery .content-figure{margin-block:0}@media (min-width:640px){.prose .gallery-2{grid-template-columns:repeat(2,minmax(0,1fr))}.prose .gallery-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.prose .content-video{margin-block:2.25em 2em}.prose .video-frame{border:1px solid hsl(var(--pencil));padding:.75rem;position:relative}.prose .video-label{font-size:calc(.8125rem*var(--text-scale));margin:0}.prose .content-video .video-facade,.prose .content-video .video-player{aspect-ratio:16/9;background-color:#000;border:0;width:100%;display:grid}.prose .content-video[data-vertical] .video-frame{max-width:22rem;margin-inline:auto}.prose .content-video[data-vertical] :is(.video-facade,.video-player){aspect-ratio:9/16}.prose .content-video .video-facade{place-items:center;text-decoration:none;position:relative}.prose .content-video .video-facade img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.prose .content-video .video-play{position:relative}.prose .content-video .video-facade:hover .video-play{box-shadow:2px 2px hsl(var(--shadow-solid));transform:translate(3px,3px)}.prose .content-video .video-facade:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:3px}.prose .content-video .video-facade:focus-visible .video-play{outline:2px solid hsl(var(--primary-foreground));outline-offset:-5px}.prose .content-video figcaption{margin-top:.75rem}:root{--sidebar-w:18rem;--layout-max:84rem}.site-frame{flex-direction:column;min-height:100vh;display:flex}@media (min-width:861px){.site-frame{padding-bottom:var(--statusbar-h)}}.site-layout{width:100%;max-width:var(--layout-max);flex:1;margin-inline:auto;display:flex}.site-sidebar{width:var(--sidebar-w);top:var(--sticky-offset,0px);flex-shrink:0;align-self:flex-start;padding:2.5rem 0 2rem 2rem;position:sticky}.profile-window{padding:1.75rem 2ch 1.25rem}.profile-link{text-align:center;color:inherit;flex-direction:column;align-items:center;gap:.85rem;text-decoration:none;display:flex}.profile-link:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:4px}.profile-photo{object-fit:cover;border:4px double hsl(var(--frame));width:8.25rem;height:8.25rem;box-shadow:7px 6px hsl(var(--shadow-solid));border-radius:50%;display:block}.profile-name{font-weight:600;font-size:calc(1.0625rem*var(--text-scale));transition:color calc(.12s*var(--motion));line-height:1.3}.profile-link:hover .profile-name{color:hsl(var(--primary))}.profile-tagline{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground))}.profile-sep{color:hsl(var(--primary));margin-inline:.6ch}.site-content{flex-direction:column;flex:1;min-width:0;display:flex}.site-main{flex:1}.site-main:focus{outline:none}.page-shell{width:100%;max-width:52rem;padding:2.5rem 2rem 1rem}.page-shell-listing{max-width:none}.page-shell-article{max-width:76rem}.page-window-listing{padding-top:2rem}.page-window-heading{font-size:calc(.9375rem*var(--text-scale))}.page-window-prefix{color:hsl(var(--muted-foreground));font-weight:400}.listing-lead{text-wrap:pretty;max-width:70ch;line-height:1.7}.listing-tags{margin:1rem 0 1.15rem}.listing-back{color:hsl(var(--primary));margin-top:.9rem;display:inline-block}.listing-feed,.article-back{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));align-items:center;gap:.5rem;margin-top:2.5rem;display:inline-flex}.listing-empty{color:hsl(var(--muted-foreground));margin-top:1.5rem}.toc-fab{right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:35;width:3rem;height:3rem;font-size:calc(1.25rem*var(--text-scale));justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed}@media (min-width:1200px){.tui-button.toc-fab{display:none}}@media (min-width:861px){.toc-fab{bottom:calc(1rem + var(--statusbar-h))}}@media (max-width:860px){.tui-button.toc-fab{right:0;bottom:calc(5rem + env(safe-area-inset-bottom,0px));z-index:15;border:3px double hsl(var(--frame));background-color:hsl(var(--background));width:2.25rem;height:4.5rem;color:hsl(var(--foreground));box-shadow:none;border-right:0}}@media (max-width:1199px){.page-shell-article.has-toc-button{padding-bottom:5rem}}.toc-sheet{padding:1.5rem 1ch calc(.9rem + env(safe-area-inset-bottom,0px))}.toc-sheet-list{max-height:65vh;overflow-y:auto}.toc-sheet .toc-link{align-items:center;min-height:2.75rem;padding-inline:1.5ch;display:flex}.toc-sheet-top{border-top:1px solid hsl(var(--frame));width:100%;min-height:2.75rem;color:hsl(var(--primary));align-items:center;gap:1ch;padding-inline:1.5ch;display:flex}@media (max-width:860px){.site-layout{flex-direction:column}.site-sidebar{display:none}.page-shell{padding:1.75rem 1.25rem 1rem}}.route-scanline{z-index:50;pointer-events:none;background-color:hsl(var(--primary));height:1px;box-shadow:0 0 12px 2px hsl(var(--primary)/.45);position:fixed;top:0;left:0;right:0}.route-scanline>span{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));font-family:var(--font-mono);font-size:calc(.6875rem*var(--text-scale));padding:0 .4rem;line-height:1.4;position:absolute;top:-1.35rem;left:.75rem}@media (prefers-reduced-motion:reduce){:root:not([data-motion=completo]) .route-scanline{display:none}}:root[data-motion=reduzido] .route-scanline{display:none}.section-heading{color:hsl(var(--foreground))}.page-header{margin-bottom:2rem}.page-lead{color:hsl(var(--muted-foreground));margin-top:.75rem}.agora-updated{font-size:calc(.75rem*var(--text-scale));color:hsl(var(--pencil));margin-top:.75rem}.search-form{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:.75rem 1.5ch;margin:1.1rem 0;padding:0 6px 5px 0;display:flex}.search-form-input{flex:1;min-width:18ch}.search-form-status,.search-form-note{font-size:calc(.875rem*var(--text-scale));color:hsl(var(--muted-foreground));margin:0 0 .5rem}.search-key-picker{font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));border:0;flex-wrap:wrap;align-items:center;gap:.35rem .5ch;margin:0;padding:0 1ch;display:flex}.search-key-picker>span{margin-right:1ch}.search-key-chip:has(input:focus-visible){outline:2px solid hsl(var(--foreground));outline-offset:2px}.credits-section{margin-top:2.5rem}.credits-list{gap:.4rem;margin-top:1rem;list-style:none;display:grid}.credits-list li{align-items:baseline;gap:1ch;margin-inline:-1ch;padding:.1rem 1ch;display:flex}.credits-name{flex-shrink:0;max-width:60%;font-weight:600}.credits-list .entry-leader{opacity:.75}.credits-meta{text-align:right;min-width:0;font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));flex-shrink:1}.page-window>.entry-list{border-top:1px solid hsl(var(--frame));margin-inline:-1ch;padding:.5rem 1ch 0}.agora-section{margin-top:2.5rem}.agora-list{color:hsl(var(--muted-foreground));gap:.5rem;margin-top:.75rem;list-style:none;display:grid}.agora-list li{padding-left:1.5rem;position:relative}.agora-list li:before{content:">";color:hsl(var(--primary));position:absolute;left:0}.agora-link{color:hsl(var(--foreground));text-decoration:underline;-webkit-text-decoration-color:hsl(var(--primary));text-decoration-color:hsl(var(--primary));text-underline-offset:.2em}.hero{padding-bottom:2.5rem}.hero-name{font-size:calc(clamp(2rem,6vw,3rem)*var(--text-scale));text-wrap:balance;font-weight:600;line-height:1.15}.hero-mark{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));padding-inline:.3ch}.hero-actions{flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.75rem;padding:0 6px 5px 0;display:flex}.lifestyle-hint{font-size:calc(.75rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.25rem}.hero-tagline{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.5rem}.hero-sep{color:hsl(var(--primary));margin-inline:.6ch}.page-window{padding:2.75rem 6ch 3rem}.page-window>section+section{margin-top:.5rem}@media (max-width:860px){.page-window{padding:2rem 2.4ch 2.25rem}}.project-list{border-top:1px solid hsl(var(--frame));margin:1.4rem -1ch 0;list-style:none}.project-row{border-bottom:1px solid hsl(var(--frame));grid-template-columns:3ch minmax(0,1fr);gap:.25rem 2ch;padding:.9rem 1ch;display:grid}.project-number{color:hsl(var(--primary));font-weight:600}.project-title-line{flex-wrap:wrap;align-items:baseline;gap:.25rem 2ch;display:flex}.project-title{font-size:calc(1rem*var(--text-scale));font-weight:600}.project-type{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));border:3px double;padding:0 .8ch}.project-description{color:hsl(var(--muted-foreground));margin:.25rem 0 .5rem;line-height:1.6}.project-foot{flex-wrap:wrap;align-items:center;gap:.4rem 1ch;display:flex}.project-stack{list-style:none;display:contents}.project-stack-chip{font-size:calc(.8125rem*var(--text-scale))}.project-more{color:hsl(var(--primary));font-size:calc(.875rem*var(--text-scale));margin-left:auto;padding-inline:1ch;font-weight:600}.project-dialog-title{font-size:calc(1.25rem*var(--text-scale));font-weight:600;line-height:1.3}.project-dialog-text{color:hsl(var(--foreground));line-height:1.6}.project-dialog-contribution{font-size:calc(.875rem*var(--text-scale));line-height:1.65}.project-dialog-stack{font-size:calc(.8125rem*var(--text-scale))}.project-dialog-actions{justify-content:flex-end;padding:0 6px 5px 0;display:flex}.contact-heading{font-size:calc(.9375rem*var(--text-scale));margin-bottom:.6rem;font-weight:600}.contact-email{font-size:calc(.875rem*var(--text-scale));overflow-wrap:anywhere;text-align:left;padding:.35rem 1.5ch;font-weight:400;display:block}.contact-socials{flex-wrap:wrap;gap:1rem 20px;padding-bottom:6px;list-style:none;display:flex}.contact-social{color:hsl(var(--foreground));padding:1px 1.5ch}.contact-fieldset{gap:1rem;padding:1rem 2ch 1.25rem;display:grid}.tui-form-row{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.35rem 1ch;display:grid}.tui-form-row>*{margin:0}.tui-form-row:has(textarea){grid-template-columns:minmax(0,1fr)}.tui-form-row:has(textarea) .tui-form-message{grid-column:1}.tui-form-message{grid-column:2}.contact-submit{justify-self:start;margin-top:.5rem}.github-source{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.5rem}.github-panels{gap:1.25rem 3ch;margin-top:1.25rem;display:grid}@media (min-width:1024px){.github-panels{grid-template-columns:repeat(2,minmax(0,1fr))}}.github-panel{min-width:0;padding:.6rem 1.5ch .75rem}.github-bars{font-size:calc(.8125rem*var(--text-scale));gap:2px;list-style:none;display:grid;overflow:hidden}.github-bar-row{white-space:pre;gap:1ch;display:flex}.github-bar-name{flex:none;min-width:11ch}.github-bar{flex:0 auto;min-width:0;overflow:hidden}.github-bar-value{flex:none}.github-summary{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.5rem}.github-achievements{flex-wrap:wrap;gap:.75rem 3ch;margin-top:1.1rem;list-style:none;display:flex}.github-achievements li{align-items:center;gap:1.5ch;display:flex}.github-achievements img{width:44px;height:44px}.github-achievement-desc{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground))}.not-found{flex-direction:column;gap:2.5rem;display:flex}.not-found-window{text-align:center;width:100%;max-width:60ch;box-shadow:var(--shadow-dialog);align-self:center;padding:1.75rem 3ch 1.5rem}.not-found-code{font-size:calc(4rem*var(--text-scale));color:hsl(var(--primary));font-weight:600;line-height:1}.not-found-title{font-size:calc(1.375rem*var(--text-scale));margin-top:.9rem;font-weight:600}.not-found-text{margin-top:.75rem;line-height:1.6}.not-found-actions{flex-wrap:wrap;justify-content:center;gap:.9rem 22px;margin-top:1.4rem;padding-bottom:6px;display:flex}.not-found-recent{padding:1.6rem 3ch 1rem}.header-tool{font-size:.875rem}.tui-drawer{border-right:3px double hsl(var(--frame));background-color:hsl(var(--background));width:min(20rem,85vw);max-width:none;padding:1rem 1.25rem}.tui-drawer-body{flex-direction:column;gap:1.1rem;height:100%;padding:.25rem .25rem 1rem;display:flex;overflow-y:auto}button.tui-chip.mobile-menu-close:focus:not(:hover){color:hsl(var(--foreground));background-color:#0000}@media (hover:none){button.tui-chip:is(.mobile-menu-close,.mobile-menu-icon):is(:hover,:focus,:focus-visible){color:hsl(var(--foreground));background-color:#0000}}.mobile-menu-close{letter-spacing:.06em;text-transform:uppercase;align-self:flex-start;min-height:2.75rem;padding-inline:1.5ch;font-size:.9375rem}.mobile-menu-search{border:3px double hsl(var(--frame));min-height:2.75rem;color:hsl(var(--muted-foreground));align-items:center;padding-inline:1.5ch;font-size:.9375rem;display:flex}.mobile-menu-search:after{content:"_";content:"_"/"";color:hsl(var(--primary));margin-left:.5ch}.mobile-menu-search:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:2px}.mobile-menu-list{flex-direction:column;gap:.35rem;list-style:none;display:flex}.mobile-menu-link{letter-spacing:.08em;text-transform:uppercase;text-underline-offset:.3em;align-items:center;min-height:2.75rem;padding-inline:1.5ch;font-size:1.0625rem;font-weight:500;text-decoration:underline;display:flex}.mobile-menu-actions{gap:.75rem;margin-top:auto;padding:0 6px 5px 1ch;display:flex}.tui-drawer .mobile-menu-icon.tui-chip{justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;display:inline-flex}.mobile-menu-icon svg{width:1.25rem;height:1.25rem}.tui-window.mobile-prefs-card{z-index:2;box-shadow:var(--shadow-dialog);flex-direction:column;padding:1.4rem 0 .25rem;display:flex;position:absolute;inset:5.25rem .6rem .75rem}.mobile-prefs-card-body{flex-direction:column;gap:1.25rem;min-height:0;padding:.6rem 1ch .5rem;display:flex;overflow-y:auto}.mobile-menu-box{border:1px solid hsl(var(--frame));padding:1rem 1ch .6rem;position:relative}.reading-font-toggle{font-family:var(--font-reading);font-size:calc(.9375rem*var(--text-scale));font-weight:600;line-height:1}.site-layout-blog .page-shell{margin-inline:auto}.site-header{z-index:20;background-color:hsl(var(--background));font-family:var(--font-mono);flex-wrap:wrap;align-items:center;column-gap:1ch;padding:.5rem 1rem;display:flex;position:sticky;top:0}.site-header:has(.reading-rule-row){padding-bottom:0}.site-header-edge{color:hsl(var(--frame));white-space:pre;-webkit-user-select:none;user-select:none;flex-shrink:0}.site-header-name{flex-shrink:0;align-items:center;gap:1ch;font-weight:600;display:inline-flex}.site-header-mark{width:17px;height:17px}.site-header-fill{white-space:nowrap;min-width:2ch;color:hsl(var(--frame));-webkit-user-select:none;user-select:none;flex:1;overflow:hidden}.site-header-nav ul{gap:1ch;list-style:none;display:flex}.site-header-link{font-size:.875rem}.site-header .tui-chip{line-height:1.4}.site-header-tools{flex-shrink:0;align-items:center;gap:1ch;display:flex}.site-header .mobile-menu-trigger,.site-header .tool-short{display:none}.reading-rule-row{border-bottom:1px solid hsl(var(--frame));flex-basis:100%;order:10;align-items:center;height:1.25rem;margin:.5rem -1rem 0;padding-inline:1ch;font-size:.8125rem;line-height:1;display:flex;overflow:hidden}.reading-rule{white-space:nowrap;color:hsl(var(--muted-foreground));-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.reading-rule-lit{width:var(--lit,0px);color:hsl(var(--primary));font-weight:600;position:absolute;inset:0 auto 0 0;overflow:hidden}.reading-rule-cursor{top:50%;left:clamp(0px,var(--lit,0px),calc(100% - .6em));background-color:hsl(var(--primary));width:.6em;height:1.1em;animation:reading-cursor-blink calc(1.1s*var(--motion))steps(1)infinite;display:none;position:absolute;transform:translateY(-50%)}.reading-rule[data-head] .reading-rule-cursor{display:block}@keyframes reading-cursor-blink{50%{opacity:0}}@media (max-width:1100px){.site-header .tool-long{display:none}.site-header .tool-short{display:inline}.site-header-name-text{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.site-header-brand{display:inline-block}.site-header [data-typed]{vertical-align:bottom;white-space:pre}:root[data-type-name] .site-header [data-typed]{max-width:0;animation:0s 5s forwards typed-name-failsafe}:root[data-type-name] .site-header [data-typed],.site-header [data-typing]{overflow:hidden}@keyframes typed-name-failsafe{to{max-width:none}}.site-header-cursor{color:hsl(var(--primary));animation:reading-cursor-blink calc(1.1s*var(--motion))steps(1)infinite}.site-header-name:is(:hover,:focus-visible) .site-header-cursor{color:inherit}:root[data-type-name] .site-header-cursor,.site-header [data-typing]~.site-header-cursor{animation:none}.site-header-brand-short{display:none}@media (max-width:860px){.site-header{column-gap:1ch;padding:.6rem .75rem}.site-header-edge,.site-header-fill,.site-header-nav,.site-header .header-tool:not(.mobile-menu-trigger,.reading-font-toggle,[data-testid=button-theme-toggle]),.site-header .preferences{display:none}.site-header-tools{display:contents}.site-header .mobile-menu-trigger{order:1;justify-content:center;min-width:2.75rem;min-height:2.5rem;font-size:1.125rem;display:inline-flex}.site-header .mobile-menu-trigger .mobile-menu-label{display:none}.site-header-name{flex:1;order:2;justify-content:center;min-width:0}.site-header-name-text{clip:auto;white-space:nowrap;text-overflow:ellipsis;width:auto;height:auto;color:hsl(var(--primary));margin:0;position:static;overflow:hidden}.site-header-name-text>.text-primary,.site-header-brand{display:none}.site-header-brand-short{display:inline-block}.site-header-tools>*{order:3}.site-header .reading-font-toggle,.site-header [data-testid=button-theme-toggle]{min-height:2.5rem}.reading-rule-row{margin:.6rem -.75rem 0}.site-header:has(.reading-rule-row){padding-bottom:0}}.preferences{position:relative}.preferences-panel{z-index:30;border:3px double hsl(var(--frame));background-color:hsl(var(--background));width:min(54rem,100vw - 2rem);box-shadow:var(--shadow-dialog);text-align:left;padding:1.6rem 2ch 1.1rem;position:absolute;top:calc(100% + .9rem);right:0}.preferences-grid{max-height:min(60vh,32rem,calc(100vh - var(--sticky-offset,0px) - var(--statusbar-h) - 9rem));grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.4rem 2ch;padding-top:.6rem;display:grid;overflow-y:auto}.preferences-group{border:1px solid hsl(var(--frame));padding:1rem 1ch .6rem;position:relative}.preferences-label{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--foreground))}.preferences-hint{font-size:calc(.75rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.35rem;padding-inline:1ch;line-height:1.5}.segmented{flex-direction:column;display:flex}.segmented-option{cursor:pointer;font-size:calc(.875rem*var(--text-scale));color:hsl(var(--foreground));align-items:center;gap:1ch;padding:.05rem 1ch;display:flex}.segmented-mark{color:hsl(var(--primary));white-space:pre}.segmented-option.is-active .segmented-mark{color:inherit}.segmented-option:has(input:focus-visible){outline:2px solid hsl(var(--foreground));outline-offset:2px}.text-scale{align-items:center;gap:1ch;padding-inline:1ch;display:flex}.text-scale-button{padding:0 1.5ch}.text-scale-value{text-align:center;min-width:4ch;font-size:calc(.875rem*var(--text-scale));font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}.preferences-group-wide{grid-column:1/-1}.preferences-actions{justify-content:flex-end;margin-top:1.1rem;padding:0 6px 5px 0;display:flex}@media (max-width:640px){.preferences-panel{top:calc(var(--sticky-offset,0px) + .9rem);width:auto;position:fixed;left:.5rem;right:.5rem}.preferences-grid{max-height:calc(100dvh - var(--sticky-offset,0px) - var(--statusbar-h) - 8rem);grid-template-columns:minmax(0,1fr)}}@media (forced-colors:active){.preferences-panel,.preferences-group,.text-scale-button{border-color:canvastext}}.entry-total{font-size:calc(.875rem*var(--text-scale));color:hsl(var(--pencil));margin-top:1.5rem}.entry-list{margin-top:.5rem;list-style:none}.entry-loading{border:1px solid hsl(var(--frame));margin-top:1.4rem;padding:.9rem 2ch}.entry-loading-line{font-family:var(--font-mono);font-weight:600}.entry-loading-cursor{color:hsl(var(--primary))}.entry-loading-note{max-width:64ch;color:hsl(var(--muted-foreground));margin-top:.5rem;line-height:1.6}.entry-row{--entry-date-w:calc(12.075rem*var(--text-scale));margin-inline:-1ch;padding:.45rem 1ch .6rem}.entry-row+.entry-row{margin-top:.5rem}.entry-meta{z-index:1;position:relative}.entry-line{align-items:baseline;gap:.75rem;display:flex}.entry-date{width:var(--entry-date-w);font-size:calc(.875rem*var(--text-scale));color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;flex-shrink:0}.entry-title{color:hsl(var(--foreground));font-weight:600}.entry-title.hl:is(:hover,:focus-visible){box-shadow:none;outline:2px solid #0000}.entry-leader{white-space:nowrap;min-width:0;color:hsl(var(--muted-foreground));-webkit-user-select:none;user-select:none;flex:1rem;overflow:hidden}.entry-leader:before{content:"........................................................................................................................................................";content:"........................................................................................................................................................"/""}.entry-meta{font-size:calc(.875rem*var(--text-scale));color:hsl(var(--muted-foreground));flex-shrink:0;align-items:baseline;gap:.75rem;display:flex}.entry-tag{color:var(--tag-color,hsl(var(--primary)))}.reading-time{position:relative}.reading-time-trigger{cursor:help}.reading-time-popup{z-index:10;border:3px double hsl(var(--pencil));background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-mono);font-size:calc(.75rem*var(--text-scale));white-space:nowrap;padding:.2rem .5rem;position:absolute;bottom:calc(100% + .35rem);right:0}.entry-summary{padding-left:calc(var(--entry-date-w) + .75rem);max-width:calc(var(--entry-date-w) + .75rem + 42rem);font-family:var(--font-reading);font-size:calc(1rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.3rem;line-height:1.55}.entry-draft{padding-left:calc(var(--entry-date-w) + .75rem);font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--destructive));margin-top:.25rem}@media (max-width:640px){.entry-line{flex-wrap:wrap;gap:.25rem .75rem}.entry-leader{display:none}.entry-date{width:auto}.entry-summary,.entry-draft{padding-left:0}}.tag-cloud{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.1rem 3ch;margin:1.6rem 0 .6rem;padding-inline:5px;list-style:none;display:flex}.tag-cloud .tag-cloud-chip{font-size:min(calc(.75rem*var(--text-scale)*var(--tag-scale,1)),6vw);transform:translateY(var(--tag-lift,0em));letter-spacing:0;overflow-wrap:anywhere;border:0;padding:0 .6ch;font-weight:600}.article-grid{gap:2rem;display:grid}@media (min-width:1200px){.article-grid{grid-template-columns:minmax(0,46rem) 15rem;gap:3rem}}.article-toc{display:none}@media (min-width:1200px){.article-toc{display:block}}.listing-grid{gap:2rem;display:grid}.listing-aside{display:none}@media (min-width:1200px){.listing-grid{grid-template-columns:minmax(0,1fr) 15rem;gap:3rem}.listing-aside{display:block}}.listing-aside-inner{top:calc(var(--sticky-offset,0px) + 1.5rem);font-family:var(--font-mono);font-size:calc(.8125rem*var(--text-scale));gap:2rem;display:grid;position:sticky}.listing-aside-window{padding:1.4rem 1.5ch 1rem}.listing-aside-years{gap:.3rem;list-style:none;display:grid}.listing-aside-year{justify-content:space-between;padding:.1rem 1ch;display:flex}.back-to-top{font-family:var(--font-mono);font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));transition:color .15s}.article-head{max-width:42rem;margin-top:.5rem}.article-title{font-family:var(--font-reading-heading);font-size:calc(2rem*var(--text-scale));letter-spacing:0;text-wrap:balance;margin-top:1rem;font-weight:700;line-height:1.2}@media (min-width:768px){.article-title{font-size:calc(2.75rem*var(--text-scale))}}:root[data-reading-font=mono] .article-title{font-size:calc(1.75rem*var(--text-scale))}@media (min-width:768px){:root[data-reading-font=mono] .article-title{font-size:calc(2.25rem*var(--text-scale))}}.article-cover{border:3px double hsl(var(--pencil));font-family:var(--font-mono);margin-bottom:1.6rem;padding:1.25rem 3ch 1.4rem}.article-cover-head{border-bottom:1px dashed hsl(var(--pencil));font-size:calc(.875rem*var(--text-scale));color:hsl(var(--muted-foreground));justify-content:space-between;gap:2ch;padding-bottom:.6rem;display:flex}.article-cover-title{font-size:calc(clamp(1.5625rem,4vw,2.375rem)*var(--text-scale));text-wrap:balance;margin:1.4rem 0;font-weight:600;line-height:1.2}.article-cover-cursor{color:hsl(var(--primary))}.article-cover-foot{font-size:calc(.875rem*var(--text-scale));align-items:center;gap:2ch;display:flex}.article-cover-tag{border:3px double var(--tag-color);color:var(--tag-color);padding:0 1ch}.article-cover-minutes{color:hsl(var(--muted-foreground))}.article-meta{font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));color:hsl(var(--muted-foreground));flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;margin-top:1rem;display:flex}.article-meta-dot{color:hsl(var(--pencil))}.article-meta-tag{color:var(--tag-color,hsl(var(--primary)))}.article-meta-draft{background-color:hsl(var(--destructive)/.12);color:hsl(var(--destructive));padding:0 .35rem}.article-byline{font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));margin-top:.6rem}.article-byline a{color:hsl(var(--primary))}.article-tags{max-width:42rem;margin-top:2.5rem}.article-summary{max-width:42rem;font-family:var(--font-reading);font-size:calc(1.3125rem*var(--text-scale));text-wrap:pretty;margin-top:1.1rem;line-height:1.55}.tldr{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));flex-wrap:wrap;align-items:center;gap:.25rem .6ch;margin-top:1.25rem;display:flex}.tldr-item{align-items:baseline;gap:.6ch;display:inline-flex}.tldr-option{color:hsl(var(--primary));padding:0 .8ch}.tldr-sep{color:hsl(var(--pencil))}.series-box{border:1px dashed hsl(var(--pencil)/.6);font-size:calc(.875rem*var(--text-scale));margin-top:1.5rem;padding:.9rem 1.1rem}.series-box-title{font-weight:600}.series-box-list{color:hsl(var(--muted-foreground));margin-top:.5rem;padding-left:1.5rem;list-style:decimal}.series-box-list li+li{margin-top:.2rem}.series-box-link{color:hsl(var(--primary))}.entry-pager{border-block:1px solid hsl(var(--frame));grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;padding-block:.65rem;display:grid}.entry-pager-link{border:3px double hsl(var(--frame));transition:background-color calc(.12s*var(--motion)),color calc(.12s*var(--motion));flex-direction:column;gap:.2rem;padding:.6rem 1.5ch;display:flex}.entry-pager-link:is(:hover,:focus-visible){background-color:hsl(var(--primary));border-color:hsl(var(--primary));outline:2px solid #0000}.entry-pager-link:is(:hover,:focus-visible) *{color:hsl(var(--primary-foreground))}.entry-pager-link.is-next{text-align:right;grid-column:2}.entry-pager-label{font-family:var(--font-mono);font-size:calc(.75rem*var(--text-scale));color:hsl(var(--pencil))}.entry-pager-title{color:hsl(var(--foreground));font-weight:500}@media (max-width:640px){.entry-pager{grid-template-columns:1fr}.entry-pager-link.is-next{grid-column:1}}.pagination{font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));align-items:baseline;gap:1rem;margin-top:2rem;display:flex}.pagination ul{flex-wrap:wrap;gap:.75rem;list-style:none;display:flex}.pagination-step,.pagination-page{color:hsl(var(--muted-foreground));transition:color .15s}.pagination-step.is-disabled{color:hsl(var(--pencil)/.5)}.archive-year-box{border:1px solid hsl(var(--frame));scroll-margin-top:calc(var(--sticky-offset,0px) + 1.5rem);margin-top:1.75rem;padding:1rem 1ch .75rem;position:relative}.archive-year{color:hsl(var(--primary));font-size:calc(1rem*var(--text-scale))}.archive-month+.archive-month{margin-top:.5rem}.archive-month-name{font-family:var(--font-mono);font-size:calc(.875rem*var(--text-scale));text-transform:lowercase;color:hsl(var(--muted-foreground));margin:.35rem 1ch .25rem;font-weight:600}.archive-list{list-style:none}.archive-row{align-items:baseline;gap:2ch;padding:.1rem 1ch;display:flex}.archive-day{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;flex-shrink:0}.archive-title{min-width:0}.archive-collection{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));border:3px double;flex-shrink:0;padding:0 .8ch}.archive-top{margin-top:1.25rem}@media (forced-colors:active){.archive-year-box{border-color:canvastext}}.share-list{flex-wrap:wrap;list-style:none;display:flex}.share-option{font-size:calc(.875rem*var(--text-scale))}.share-title{margin-bottom:.85rem}.share-card .share-list{gap:.5rem 1ch}.share-menu{position:relative}.share-menu-trigger{color:hsl(var(--primary));font:inherit;text-underline-offset:3px;text-decoration:underline}.share-menu-panel{z-index:25;border:1px solid hsl(var(--frame));background-color:hsl(var(--background));min-width:24ch;box-shadow:var(--shadow-dialog);padding:1.1rem 0 .4rem;position:absolute;top:calc(100% + .4rem);left:0}.share-menu-panel .share-list{color:hsl(var(--foreground));flex-direction:column;gap:.4rem;padding-inline:1ch}.share-menu-panel .share-option{white-space:nowrap;width:100%;display:flex}.comments{margin-top:2.5rem}.comments-note{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));margin-top:.4rem}.comments-frame{margin-top:1.25rem}.giscus-frame{color-scheme:light}.dark .giscus-frame{color-scheme:dark}.article-foot{font-size:calc(.875rem*var(--text-scale));flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.85rem;display:flex}.related{margin-top:2.5rem}.article-foot-link,.article-foot .back-to-top,.article-back,.listing-back,.listing-feed,.article-byline a,.writing-all{color:hsl(var(--primary));text-underline-offset:3px;text-decoration:underline}.related ul{margin-inline:-1ch;list-style:none}.related-row{padding:.25rem 1ch}.related-title{font-weight:600}.related-meta{font-size:calc(.8125rem*var(--text-scale));color:hsl(var(--muted-foreground));display:block}.article-end .article-back{color:hsl(var(--primary));font-size:calc(.875rem*var(--text-scale));margin-top:1.5rem}.site-footer{border-top:3px double hsl(var(--frame));font-size:calc(.8125rem*var(--text-scale));margin:4rem 2rem 0;padding:.75rem 0 2.5rem;line-height:1.7}.site-layout:not(.site-layout-blog) .site-footer{max-width:48rem}.site-content:has(.page-shell-article) .site-footer{width:calc(100% - 4rem);max-width:72rem;margin-inline:auto}.site-footer-links{flex-wrap:wrap;gap:.5rem 1ch;margin:0 0 .5rem -1ch;list-style:none;display:flex}.site-footer-links .tui-chip{color:hsl(var(--primary))}.site-footer-copy a{color:hsl(var(--primary));text-decoration:underline}@media (max-width:860px){.site-footer{margin-inline:1.25rem}.site-content:has(.page-shell-article) .site-footer{width:calc(100% - 2.5rem)}}@media (forced-colors:active){.site-footer,.reading-rule-row,.profile-photo{border-color:canvastext}.hl:is(:hover,:focus-visible,.is-active,[aria-current]){outline:1px solid highlight}}:root{--shadow-window:10px 8px 0 0 hsl(var(--shadow-solid));--shadow-dialog:12px 10px 0 0 hsl(var(--shadow-solid));--shadow-button:6px 5px 0 0 hsl(var(--shadow-solid));--statusbar-h:1.75rem}.tui-window{background-color:hsl(var(--background));border:3px double hsl(var(--frame));box-shadow:var(--shadow-window);position:relative}.tui-border-label,.tui-window-title{text-overflow:ellipsis;white-space:nowrap;background-color:hsl(var(--background));max-width:calc(100% - 2ch);font-family:var(--font-mono);padding-inline:1ch;font-weight:600;line-height:1.6;position:absolute;top:-.85em;left:1ch;overflow:hidden}.tui-window-title{max-width:calc(100% - 4ch);color:hsl(var(--primary));left:50%;transform:translate(-50%)}.tui-window-title[data-align=start]{left:1.5ch;transform:none}@media (max-width:640px){.tui-window{box-shadow:none}.page-window-heading{white-space:normal;text-overflow:clip}}.tui-double-rule{white-space:nowrap;font-family:var(--font-mono);color:hsl(var(--pencil));-webkit-user-select:none;user-select:none;line-height:1;overflow:hidden}.tui-double-rule:before{content:"════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════";content:"════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════"/""}.tui-heading{font-family:var(--font-mono);font-size:calc(.9375rem*var(--text-scale));letter-spacing:.04em;text-transform:uppercase;align-items:baseline;margin:0;font-weight:600;display:flex}.tui-heading:before{content:"═[ ";content:"═[ "/"";color:hsl(var(--primary));flex:none}.tui-heading-text:after{content:" ]";content:" ]"/"";color:hsl(var(--primary))}.tui-heading:after{content:"════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════";content:"════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════"/"";white-space:nowrap;min-width:2ch;color:hsl(var(--frame));flex:1;margin-left:.5ch;font-weight:400;overflow:hidden}.tui-dialog{background-color:hsl(var(--background));color:hsl(var(--foreground));border:3px double hsl(var(--frame));box-shadow:var(--shadow-dialog)}.tui-dialog-close{background-color:hsl(var(--background));font-family:var(--font-mono);padding-inline:.5ch;line-height:1.6;position:absolute;top:-.85em;left:1ch}.tui-dialog-close-mark{color:hsl(var(--primary));font-weight:600}.tui-dialog-close~.tui-window-title[data-align=start]{left:6ch}.tui-dialog-close:hover,.tui-dialog-close:focus-visible{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));outline:2px solid #0000}.tui-dialog-close:is(:hover,:focus-visible) .tui-dialog-close-mark{color:inherit}.tui-dialog-scroll{gap:1rem;max-height:75vh;display:grid;overflow-y:auto}.command-item-meta{font-size:calc(.8125rem*var(--text-scale));flex:none}.command-input-row{border-bottom:1px solid hsl(var(--frame));align-items:center;gap:1ch;padding:.5rem 2ch .75rem;display:flex}.tui-row{position:relative}.tui-row-link:after{content:"";position:absolute;inset:0}.tui-row-link:focus-visible{outline:2px solid #0000}.tui-row:has(.tui-row-link:is(:hover,:focus-visible)){background-color:hsl(var(--primary))}.tui-row:has(.tui-row-link:is(:hover,:focus-visible)),.tui-row:has(.tui-row-link:is(:hover,:focus-visible)) :not(.reading-time-popup){color:hsl(var(--primary-foreground));border-color:hsl(var(--primary-foreground))}.project-more.tui-row-link:focus-visible{outline-offset:2px;outline:2px solid}@media (forced-colors:active){.tui-row:has(.tui-row-link:is(:hover,:focus-visible)){outline:1px solid highlight}}.tui-button{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground));font-family:var(--font-mono);box-shadow:var(--shadow-button);cursor:pointer;transition:transform calc(60ms*var(--motion)),box-shadow calc(60ms*var(--motion));border:0;justify-content:center;align-items:center;gap:1ch;padding:.25rem 2ch;font-weight:600;text-decoration:none;display:inline-flex}.tui-button-secondary{background-color:hsl(var(--foreground));color:hsl(var(--background))}.tui-button-outline{border:1px solid hsl(var(--foreground));background-color:hsl(var(--background));color:hsl(var(--foreground))}.tui-button-destructive{background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.tui-button:active:not(:disabled){box-shadow:none;transform:translate(6px,5px)}.tui-button:disabled{cursor:not-allowed;opacity:.6}.tui-field{background-color:hsl(var(--field));width:100%;color:hsl(var(--field-foreground));font-family:var(--font-mono);border:0;padding:.2rem 1ch}.tui-field::placeholder{color:hsl(var(--field-foreground)/.6)}.tui-field:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.tui-label-dots{white-space:pre;font-family:var(--font-mono);flex:none}.tui-fieldset{border:1px solid hsl(var(--frame));min-width:0;margin:0;padding:.4rem 1ch .6rem}.tui-fieldset>legend{font-family:var(--font-mono);padding-inline:1ch;font-weight:600}.tui-statusbar{z-index:40;height:var(--statusbar-h);border-top:1px solid hsl(var(--frame));background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-mono);white-space:nowrap;align-items:center;font-size:.875rem;display:flex;position:fixed;inset:auto 0 0}.tui-statusbar-item{padding-inline:1.5ch}.tui-statusbar-key{color:hsl(var(--primary));font-weight:600}.tui-statusbar-path{text-overflow:ellipsis;min-width:0;margin-left:auto;padding-inline:1.5ch;overflow:hidden}@media (max-width:860px){.tui-statusbar{display:none}}.tui-button:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:3px}@media (forced-colors:active){.tui-window,.tui-fieldset,.tui-statusbar{border-color:canvastext}.tui-button,.tui-field{border:1px solid canvastext}}.hl,.prose a:not(.heading-anchor,.video-facade){transition:color calc(.12s*var(--motion)),background-color calc(.12s*var(--motion)),box-shadow calc(.12s*var(--motion))}.hl:hover,.hl:focus-visible,.hl.is-active,.hl[aria-current],.prose a:not(.heading-anchor,.video-facade):hover,.prose a:not(.heading-anchor,.video-facade):focus-visible{background-color:hsl(var(--primary));box-shadow:0 0 0 .15em hsl(var(--primary));color:hsl(var(--primary-foreground))}.hl:is(:hover,:focus-visible,.is-active,[aria-current]) *{color:inherit}.tag-chip{--tag-ink:var(--tag-color,hsl(var(--primary)))}@supports (color:color-mix(in lab,red,red)){.tag-chip{--tag-ink:color-mix(in oklab,var(--tag-color,hsl(var(--primary)))calc(100% - var(--tag-mix-amount)),var(--tag-mix))}}.tag-chip{border:3px double var(--tag-ink);font-family:var(--font-mono);font-size:calc(.75rem*var(--text-scale));letter-spacing:.04em;color:var(--tag-ink);transition:color calc(.12s*var(--motion)),background-color calc(.12s*var(--motion));padding:.15rem .55rem;text-decoration:none;display:inline-block}.tag-chip:is(:hover,:focus-visible,[aria-current]){background-color:var(--tag-ink);color:hsl(var(--background))}@media (forced-colors:active){.tag-chip{color:linktext;border-color:canvastext}.tag-chip:is(:hover,:focus-visible,[aria-current]){outline:1px solid highlight}}.tui-chip{--chip-color:hsl(var(--primary));--chip-on:hsl(var(--primary-foreground));border:3px double var(--chip-color);color:inherit;font-family:var(--font-mono);white-space:nowrap;cursor:pointer;transition:color calc(.12s*var(--motion)),background-color calc(.12s*var(--motion));background-color:#0000;align-items:center;gap:.5ch;padding:0 1ch;line-height:1.6;text-decoration:none;display:inline-flex}.tui-chip[data-tone=frame]{--chip-color:hsl(var(--frame));--chip-on:hsl(var(--background))}:is(a,button,label).tui-chip:is(:hover,:focus-visible),.tui-chip:is(.is-active,[aria-current],[aria-expanded=true]){background-color:var(--chip-color);color:var(--chip-on)}:is(a,button,label).tui-chip:is(:hover,:focus-visible) *,.tui-chip:is(.is-active,[aria-current],[aria-expanded=true]) *{color:inherit}:not(a,button,label).tui-chip{cursor:default}.tui-chip:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:2px}@media (forced-colors:active){.tui-chip{border-color:canvastext}.tui-chip:is(:hover,:focus-visible,.is-active,[aria-current]){outline:1px solid highlight}}.reading-window{padding:2.75rem 5ch 2.5rem}.article-end{margin-top:2.5rem;padding:2.25rem 5ch}.article-end .share-card{margin-top:0}@media (max-width:640px){.reading-window,.article-end{margin-inline:-.5rem;padding:2rem 2ch}.reading-window .tui-window-title{max-width:calc(100% - 4ch)}}.toc-window{font-size:calc(.875rem*var(--text-scale));padding:1.5rem 1ch .75rem}.toc-window .toc-list{max-height:calc(100vh - var(--sticky-offset,0px) - var(--statusbar-h) - 9rem);padding:.2em;overflow-y:auto}.toc-list{gap:.15rem;list-style:none;display:grid}.toc-item{padding-left:1ch}.toc-item.is-sub{padding-left:3ch}.toc-link{color:hsl(var(--muted-foreground))}.toc-window-foot{border-top:1px solid hsl(var(--frame));margin-top:.75rem;padding:.6rem 1ch 0}.tui-sheet-bottom{border:3px double hsl(var(--frame))}@media (forced-colors:active){.prose blockquote,.prose .callout,.prose .code-frame,.entry-pager-link,.link-preview{border-color:canvastext}}@media (max-width:640px){.page-window,.reading-window,.article-end{box-shadow:none;background-color:#0000;border:0;margin-inline:0;padding:0}.page-window>span.tui-window-title,.reading-window>.tui-window-title{display:none}.page-window-heading{max-width:none;color:hsl(var(--foreground));font-size:calc(1.75rem*var(--text-scale));white-space:normal;background-color:#0000;margin:0 0 1rem;padding:0;line-height:1.25;position:static;transform:none}.page-window-heading:before{content:"> ";content:"> "/"";color:hsl(var(--primary))}.page-window-heading>span[aria-hidden]{color:hsl(var(--muted-foreground));font-size:.6em;font-weight:400}.page-window>.entry-list{border-top:0;margin-inline:0;padding:0}.article-end{border-top:3px double hsl(var(--frame));margin-top:2.5rem;padding-top:1.75rem}.article-cover{border-inline:0;padding-inline:0}.entry-row{padding-block:.9rem}.entry-row+.entry-row{border-top:1px dashed hsl(var(--pencil));margin-top:0}.entry-row .entry-title{font-size:calc(1.0625rem*var(--text-scale));flex-basis:100%;order:-1;line-height:1.4}}.segmented-option .accent-swatch[data-accent]{color:hsl(var(--swatch))}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
