.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}header-component:where(.astro-zgz2aqyx){transition:padding .3s,transform .3s,margin-inline .3s,border .15s,background-color .15s;&.not-top{--un-border-opacity: 1;border-color:hsl(var(--border) / var(--un-border-opacity));--un-bg-opacity: 1;background-color:hsl(var(--background) / var(--un-bg-opacity));padding-left:.375rem;padding-right:.375rem;box-shadow:#fff 0 0,#18181b14 0 0 0 1px,#27272a14 0 10px 15px -3px,#27272a14 0 4px 6px -4px}&[data-show=false]:not(.expanded){transform:translateY(-5rem)}}@media(min-width:800px){header-component:where(.astro-zgz2aqyx).not-top{margin-inline:8%}}.dark header-component:where(.astro-zgz2aqyx).not-top{background-color:hsl(var(--muted) / var(--un-bg-opacity))}@media(max-width:640px){#headerExpandContent:where(.astro-zgz2aqyx){grid-template-rows:0fr;transition:opacity .3s,padding .3s,border-color .15s,grid-template-rows .3s}.expanded:where(.astro-zgz2aqyx) #headerExpandContent:where(.astro-zgz2aqyx){grid-template-rows:1fr}.expanded:where(.astro-zgz2aqyx).not-top #headerExpandContent:where(.astro-zgz2aqyx){box-shadow:#fff 0 0,#18181b14 0 0 0 1px,#27272a14 0 10px 15px -3px,#27272a14 0 4px 6px -4px}header-component:where(.astro-zgz2aqyx) #headerExpandContent:where(.astro-zgz2aqyx):after{box-sizing:content-box;content:"";position:absolute;inset-inline:calc(-1rem - 1px);bottom:0;top:-5rem;z-index:-1;transition:.3s;visibility:hidden;opacity:0;border-bottom:1px solid transparent}header-component:where(.astro-zgz2aqyx):not(.not-top) #headerExpandContent:where(.astro-zgz2aqyx):after{visibility:visible;bottom:-1rem;opacity:1;background-color:hsl(var(--muted) / var(--un-bg-opacity, 1));border-bottom-color:hsl(var(--border) / var(--un-border-opacity, 1))}}#toggleDarkMode:where(.astro-zgz2aqyx){&[data-theme=dark]{.system:where(.astro-zgz2aqyx){display:none}.dark:where(.astro-zgz2aqyx){display:block}}&[data-theme=light]{.system:where(.astro-zgz2aqyx){display:none}.light{display:block}}}.cmdk{border:none;padding:0;background:transparent;color:hsl(var(--foreground));max-width:660px;width:92vw;margin:0 auto;margin-top:10vh}.cmdk::backdrop{background:hsl(var(--background) / .55);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%)}.cmdk[open]{animation:cmdk-in .2s cubic-bezier(.16,1,.3,1)}@keyframes cmdk-in{0%{opacity:0;transform:translateY(-.5rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cmdk__inner{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:.7rem;overflow:hidden;box-shadow:0 0 0 1px hsl(var(--primary) / .06),0 28px 70px -14px hsl(var(--foreground) / .22),0 10px 24px -10px hsl(var(--foreground) / .14)}.cmdk__header{display:flex;align-items:center;gap:.65rem;padding:.95rem 1.1rem;border-bottom:1px solid hsl(var(--border) / .7);position:relative}.cmdk__header:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,hsl(var(--primary) / .4),transparent)}.cmdk__prompt{color:hsl(var(--primary));font-size:.95rem;user-select:none;font-weight:500}.cmdk__input{flex:1;background:transparent;border:none;outline:none;color:hsl(var(--foreground));font-size:1rem;font-family:inherit;padding:0}.cmdk__input::placeholder{color:hsl(var(--muted-foreground) / .55)}.cmdk__kbd{font-size:.68rem;color:hsl(var(--muted-foreground) / .8);border:1px solid hsl(var(--border));padding:.18rem .45rem;border-radius:.25rem;background:hsl(var(--muted) / .5);letter-spacing:.04em}.cmdk__list{list-style:none;padding:.4rem 0 .5rem;margin:0;max-height:60vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:hsl(var(--border)) transparent}.cmdk__list::-webkit-scrollbar{width:6px}.cmdk__list::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:3px}.cmdk__section{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.55rem 1.1rem .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;letter-spacing:.06em;text-transform:lowercase}.cmdk__section-label{color:hsl(var(--muted-foreground) / .7)}.cmdk__section-count{color:hsl(var(--muted-foreground) / .45);font-variant-numeric:tabular-nums}.cmdk__section:not(:first-child){border-top:1px solid hsl(var(--border) / .4);margin-top:.45rem;padding-top:.75rem}.cmdk__item{display:grid;grid-template-columns:1.75rem 1fr auto;align-items:center;column-gap:.85rem;padding:.55rem 1.1rem;margin:0 .35rem;border-radius:.4rem;cursor:pointer;color:hsl(var(--foreground));position:relative;transition:background-color .1s linear,color .1s linear}.cmdk__item-icon{width:1.15rem;height:1.15rem;color:hsl(var(--muted-foreground) / .8);transition:color .1s linear}.cmdk__item-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.cmdk__item-title{font-size:.95rem;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk__item-sub{font-size:.7rem;color:hsl(var(--muted-foreground) / .65);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.cmdk__item-excerpt{font-family:inherit;white-space:normal;font-size:.78rem;line-height:1.4;color:hsl(var(--muted-foreground));overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cmdk__item-excerpt mark{background:hsl(var(--primary) / .18);color:hsl(var(--foreground));padding:0 .15em;border-radius:.15rem;font-weight:500}.cmdk__item-meta{display:inline-flex;align-items:center;gap:.5rem;font-size:.68rem;color:hsl(var(--muted-foreground) / .55)}.cmdk__item-tag{text-transform:lowercase;letter-spacing:.04em;padding:.12rem .4rem;border-radius:.25rem;border:1px solid hsl(var(--border) / .7);background:hsl(var(--muted) / .35)}.cmdk__item-enter{opacity:0;color:hsl(var(--primary));font-size:.85rem;transform:translate(-4px);transition:opacity .12s ease-out,transform .12s ease-out}.cmdk__item[aria-selected=true]{background:hsl(var(--primary) / .08)}.cmdk__item[aria-selected=true]:before{content:"";position:absolute;left:0;top:.4rem;bottom:.4rem;width:2px;background:hsl(var(--primary));border-radius:0 2px 2px 0}.cmdk__item[aria-selected=true] .cmdk__item-icon{color:hsl(var(--primary))}.cmdk__item[aria-selected=true] .cmdk__item-tag{border-color:hsl(var(--primary) / .4);color:hsl(var(--primary));background:hsl(var(--primary) / .06)}.cmdk__item[aria-selected=true] .cmdk__item-enter{opacity:1;transform:translate(0)}.cmdk__empty{display:flex;align-items:center;gap:.65rem;padding:1.5rem 1.25rem;color:hsl(var(--muted-foreground));font-size:.9rem;justify-content:center}.cmdk__empty-prompt{color:hsl(var(--primary) / .8);font-weight:500}.cmdk__footer{display:flex;gap:1.1rem;padding:.55rem 1.1rem;border-top:1px solid hsl(var(--border) / .7);background:hsl(var(--muted) / .35);font-size:.68rem;color:hsl(var(--muted-foreground) / .75)}.cmdk__footer kbd{font-family:inherit;border:1px solid hsl(var(--border));padding:.05rem .32rem;border-radius:.2rem;margin-right:.3rem;background:hsl(var(--card));color:hsl(var(--foreground));font-size:.62rem;line-height:1}@media(max-width:480px){.cmdk{width:100vw;max-width:none;margin-top:5vh}.cmdk__inner{border-radius:.6rem .6rem 0 0}.cmdk__item-meta{display:none}.cmdk__list{max-height:70vh}}@media(prefers-reduced-motion:reduce){.cmdk[open]{animation:none}.cmdk__item,.cmdk__item-icon,.cmdk__item-enter{transition:none}}.cmdk-trigger{display:inline-flex;align-items:center;gap:.55rem;height:2rem;padding:0 .5rem 0 .65rem;background:hsl(var(--muted) / .6);border:1px solid hsl(var(--border));border-radius:.45rem;color:hsl(var(--muted-foreground));cursor:pointer;font-family:inherit;font-size:.82rem;line-height:1;transition:border-color .15s ease-out,background-color .15s ease-out,color .15s ease-out}.cmdk-trigger:hover{border-color:hsl(var(--primary) / .5);color:hsl(var(--foreground));background:hsl(var(--muted) / .9)}.cmdk-trigger:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.cmdk-trigger__icon{width:.95rem;height:.95rem;flex-shrink:0;color:hsl(var(--muted-foreground) / .85)}.cmdk-trigger:hover .cmdk-trigger__icon{color:hsl(var(--primary))}.cmdk-trigger__label{display:inline-flex;align-items:baseline;gap:.15rem;font-size:.78rem}.cmdk-trigger__tilde{color:hsl(var(--primary) / .7)}.cmdk-trigger__placeholder{color:hsl(var(--muted-foreground) / .85)}.cmdk-trigger__kbd{display:inline-flex;align-items:center;gap:.1rem;padding:.18rem .4rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:.25rem;font-size:.68rem;color:hsl(var(--foreground));margin-left:.25rem}.cmdk-trigger__mod{font-weight:500}@media(max-width:640px){.cmdk-trigger{gap:.35rem;padding:0 .4rem}.cmdk-trigger__label{display:none}.cmdk-trigger__kbd{margin-left:0;padding:.15rem .3rem;font-size:.62rem}}@media(prefers-reduced-motion:reduce){.cmdk-trigger{transition:none}}.ft:where(.astro-35ed7um5){margin:6rem 0 2rem;padding-top:2.5rem;border-top:1px solid hsl(var(--border) / .5);position:relative}.ft:where(.astro-35ed7um5):before{content:"";position:absolute;top:-1px;left:0;width:4rem;height:1px;background:hsl(var(--primary) / .5)}.ft__grid:where(.astro-35ed7um5){display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:3rem;margin-bottom:2.5rem}.ft__col:where(.astro-35ed7um5){display:flex;flex-direction:column;gap:.85rem;min-width:0}.ft__brand:where(.astro-35ed7um5){display:inline-flex;align-items:baseline;text-decoration:none;color:hsl(var(--foreground));font-size:1.05rem;font-weight:600;letter-spacing:-.01em;width:fit-content;transition:color .2s ease-out}.ft__brand:where(.astro-35ed7um5):hover{color:hsl(var(--primary))}.ft__brand-dot:where(.astro-35ed7um5){color:hsl(var(--primary))}.ft__tagline:where(.astro-35ed7um5){font-size:.88rem;color:hsl(var(--muted-foreground));line-height:1.55;margin:0;max-width:38ch}.ft__status:where(.astro-35ed7um5){display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;color:hsl(var(--muted-foreground) / .8);letter-spacing:.02em;margin-top:.25rem}.ft__status-dot:where(.astro-35ed7um5){width:.4rem;height:.4rem;border-radius:50%;background:#7da35c;box-shadow:0 0 0 3px #7da35c2e;flex-shrink:0}.ft__h:where(.astro-35ed7um5){font-size:.7rem;font-weight:500;text-transform:lowercase;letter-spacing:.05em;color:hsl(var(--muted-foreground) / .6);margin:0 0 .35rem}.ft__list:where(.astro-35ed7um5){list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}.ft__link:where(.astro-35ed7um5){color:hsl(var(--foreground));text-decoration:none;font-size:.92rem;transition:color .18s ease-out,padding-left .18s ease-out;width:fit-content}.ft__link:where(.astro-35ed7um5):hover{color:hsl(var(--primary));padding-left:.25rem}.ft__mail:where(.astro-35ed7um5){display:inline-block;color:hsl(var(--foreground));text-decoration:none;font-size:.85rem;padding:.45rem .7rem;border:1px solid hsl(var(--border));border-radius:.3rem;width:fit-content;transition:border-color .2s ease-out,color .2s ease-out}.ft__mail:where(.astro-35ed7um5):hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.ft__social:where(.astro-35ed7um5){list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.45rem}.ft__social-link:where(.astro-35ed7um5){display:inline-flex;align-items:center;gap:.35rem;color:hsl(var(--muted-foreground));text-decoration:none;font-size:.85rem;transition:color .18s ease-out;width:fit-content}.ft__social-link:where(.astro-35ed7um5):hover{color:hsl(var(--primary))}.ft__social-arrow:where(.astro-35ed7um5){color:hsl(var(--muted-foreground) / .4);font-size:.7rem;transition:transform .18s ease-out,color .18s ease-out}.ft__social-link:where(.astro-35ed7um5):hover .ft__social-arrow:where(.astro-35ed7um5){color:hsl(var(--primary));transform:translate(2px,-2px)}.ft__bar:where(.astro-35ed7um5){display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.25rem;border-top:1px solid hsl(var(--border) / .4);font-size:.72rem;color:hsl(var(--muted-foreground) / .7)}.ft__bar-left:where(.astro-35ed7um5),.ft__bar-right:where(.astro-35ed7um5){display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ft__bar-tilde:where(.astro-35ed7um5){color:hsl(var(--primary) / .7)}.ft__bar-sep:where(.astro-35ed7um5){opacity:.4}.ft__bar-link:where(.astro-35ed7um5){color:hsl(var(--muted-foreground) / .85);text-decoration:none;transition:color .18s ease-out}.ft__bar-link:where(.astro-35ed7um5):hover{color:hsl(var(--primary))}@media(max-width:768px){.ft__grid:where(.astro-35ed7um5){grid-template-columns:1fr;gap:2rem}.ft__bar:where(.astro-35ed7um5){flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.ft__brand:where(.astro-35ed7um5),.ft__link:where(.astro-35ed7um5),.ft__mail:where(.astro-35ed7um5),.ft__social-link:where(.astro-35ed7um5),.ft__social-arrow:where(.astro-35ed7um5),.ft__bar-link:where(.astro-35ed7um5){transition:none}}.kbd-hints:where(.astro-tywyzive){position:fixed;bottom:1.25rem;left:50%;z-index:55;display:flex;align-items:center;gap:.65rem;padding:.5rem .85rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:.5rem;box-shadow:0 0 0 1px hsl(var(--primary) / .08),0 8px 24px -8px hsl(var(--foreground) / .18);font-size:.8rem;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-50%,.5rem);transition:opacity .28s ease-out,transform .28s ease-out;pointer-events:none}.kbd-hints:where(.astro-tywyzive).is-visible{opacity:1;transform:translate(-50%);pointer-events:auto}.kbd-hints__icon:where(.astro-tywyzive){color:hsl(var(--primary));font-size:.75rem}.kbd-hints__text:where(.astro-tywyzive){color:hsl(var(--foreground))}.kbd-hints__text:where(.astro-tywyzive) kbd:where(.astro-tywyzive){font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--muted));border:1px solid hsl(var(--border));padding:.1rem .4rem;border-radius:.25rem;font-size:.7rem;margin:0 .1rem;color:hsl(var(--foreground))}.kbd-hints__close:where(.astro-tywyzive){background:transparent;border:none;color:hsl(var(--muted-foreground) / .6);cursor:pointer;padding:.1rem .3rem;border-radius:.2rem;transition:color .15s ease-out,background-color .15s ease-out}.kbd-hints__close:where(.astro-tywyzive):hover{color:hsl(var(--foreground));background:hsl(var(--muted))}@media(max-width:480px){.kbd-hints:where(.astro-tywyzive){bottom:.75rem;width:calc(100vw - 1.5rem);max-width:none;font-size:.75rem}}@media(prefers-reduced-motion:reduce){.kbd-hints:where(.astro-tywyzive){transition:opacity .1s linear;transform:translate(-50%)}}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Variable.ttf) format("truetype");font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-VariableItalic.ttf) format("truetype");font-style:italic;font-display:swap}html{font-family:Satoshi,sans-serif;background-color:hsl(var(--background));min-height:100%}header-component.not-top a[aria-label=Brand]{font-size:0;line-height:1;letter-spacing:0}header-component.not-top a[aria-label=Brand]:before{content:"L";font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}header-component.not-top a[aria-label=Brand]:after{content:".S";font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:hsl(var(--primary))}@media(min-width:641px){header-component.not-top a[aria-label="Nav menu item"]{font-size:.88rem;padding-left:.5rem;padding-right:.5rem}}header-component.not-top .cmdk-trigger{gap:.35rem;padding:0 .4rem}header-component.not-top .cmdk-trigger__label{display:none}header-component.not-top .cmdk-trigger__kbd{margin-left:0;padding:.15rem .32rem;font-size:.66rem}header-component a[aria-label="Nav menu item"][aria-current=page],header a[aria-label="Nav menu item"][aria-current=page]{position:relative;color:hsl(var(--foreground))}header-component a[aria-label="Nav menu item"][aria-current=page]:after,header a[aria-label="Nav menu item"][aria-current=page]:after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:.35rem;height:1.5px;background:hsl(var(--primary));border-radius:1px;transform-origin:left center;animation:nav-active-in .28s ease-out}@keyframes nav-active-in{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@media(prefers-reduced-motion:reduce){header-component a[aria-label="Nav menu item"][aria-current=page]:after,header a[aria-label="Nav menu item"][aria-current=page]:after{animation:none}}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:200;padding:.55rem .9rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:.35rem;font-size:.85rem;font-weight:500;text-decoration:none;box-shadow:0 4px 16px hsl(var(--foreground) / .18);transform:translateY(-150%);transition:transform .18s ease-out}.skip-link:focus{transform:translateY(0);outline:2px solid hsl(var(--primary));outline-offset:2px}@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}#main-content:focus{outline:none}.page-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:.25rem}.page-cta__link{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:500;color:hsl(var(--foreground));text-decoration:none;transition:color .2s ease-out}.page-cta__link:hover{color:hsl(var(--primary))}.page-cta__link span{display:inline-block;transition:transform .2s ease-out}.page-cta__link:hover span{transform:translate(.25rem)}.page-cta__link--muted{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;font-weight:400;color:hsl(var(--muted-foreground))}@media(prefers-reduced-motion:reduce){.page-cta__link,.page-cta__link span{transition:none}}body{background-color:hsl(var(--background));min-height:100dvh}:root{--background: 219 28% 97%;--card: 218 30% 99%;--popover: 218 30% 99%;--muted: 219 22% 93%;--secondary: 218 18% 88%;--input: 218 18% 91%;--border: 218 18% 84%;--foreground: 220 16% 22%;--card-foreground: 220 16% 22%;--popover-foreground: 220 16% 22%;--secondary-foreground: 220 16% 28%;--muted-foreground: 220 10% 38%;--primary: 213 32% 52%;--primary-foreground: 219 28% 96%;--accent: 193 43% 67%;--accent-foreground: 220 16% 22%;--destructive: 354 42% 56%;--destructive-foreground: 219 28% 96%;--ring: 213 32% 52%;--radius: .5rem}.sepia{--background: 38 30% 94%;--card: 38 35% 97%;--popover: 38 35% 97%;--muted: 36 24% 90%;--secondary: 34 18% 84%;--input: 34 18% 88%;--border: 32 16% 78%;--foreground: 24 22% 18%;--card-foreground: 24 22% 18%;--popover-foreground: 24 22% 18%;--secondary-foreground: 24 22% 24%;--muted-foreground: 24 14% 38%;--primary: 200 30% 38%;--primary-foreground: 38 35% 97%;--accent: 28 35% 42%;--accent-foreground: 38 35% 97%;--destructive: 8 45% 45%;--destructive-foreground: 38 35% 97%;--ring: 200 30% 38%}.dark{--background: 220 16% 16%;--foreground: 218 27% 94%;--card: 219 18% 22%;--card-foreground: 218 27% 94%;--popover: 219 18% 22%;--popover-foreground: 218 27% 94%;--primary: 193 43% 67%;--primary-foreground: 220 16% 16%;--secondary: 220 16% 32%;--secondary-foreground: 218 27% 90%;--muted: 219 17% 26%;--muted-foreground: 219 16% 68%;--accent: 179 25% 65%;--accent-foreground: 220 16% 16%;--destructive: 354 42% 65%;--destructive-foreground: 218 27% 94%;--border: 220 14% 36%;--input: 219 17% 26%;--ring: 193 43% 67%}:root{--un-default-border-color: hsl(var(--border) / 1)}html.dark{color-scheme:dark}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.03;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.08 0 0 0 0 0.09 0 0 0 0 0.11 0 0 0 0.95 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:240px 240px}html.dark body:before,html.sepia body:before{display:none}body>*{position:relative;z-index:1}a{transition:all .3s cubic-bezier(.23,1,.32,1);position:relative;text-decoration-skip-ink:auto;&:hover{color:hsl(var(--primary) / var(--un-text-opacity, 1))}&:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px;border-radius:2px}}svg[class*=icon],svg[class*=Icon]{color:currentColor;transition:color .2s ease}header-component svg{color:currentColor}.dark header-component svg{color:hsl(var(--foreground) / .6)}.dark header-component button:hover svg,.dark header-component a:hover svg{color:hsl(var(--primary))}:not(.dark) header-component svg{color:hsl(var(--foreground) / .6)}:not(.dark) header-component button:hover svg,:not(.dark) header-component a:hover svg{color:hsl(var(--primary))}.htb-accent{color:hsl(var(--primary))}.htb-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:.5rem;transition:all .2s ease}.htb-card:hover{border-color:hsl(var(--primary) / .25);box-shadow:0 2px 8px hsl(var(--primary) / .08)}button,[class*=button],[class*=Button]{transition:all .3s cubic-bezier(.23,1,.32,1);text-decoration:none!important}[class*=button] p,[class*=Button] p{margin:0!important;padding:0!important}button:focus-visible,[class*=button]:focus-visible,[class*=Button]:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.dark .bg-muted{background-color:hsl(var(--muted) / var(--un-bg-opacity, 1))!important}.dark .bg-background{background-color:hsl(var(--background) / var(--un-bg-opacity, 1))!important}.dark .group:hover .group-hover\:bg-muted,.dark .group.expanded.not-top .dark\:group-\[\.expanded\.not-top\]\:bg-muted,.dark .group\/expand.expanded .group-\[\.expanded\]\/expand\:bg-muted,.dark .\[\&\.highlight-bg-translucent\]\:bg-muted.highlight-bg-translucent{background-color:hsl(var(--muted) / var(--un-bg-opacity, 1))!important}.dark quote-component p{color:#fff!important}.dark blockquote{color:hsl(var(--muted-foreground))!important;background-color:transparent!important;border-left-width:2px!important;border-left-color:hsl(var(--primary) / .45)!important;font-size:.95rem!important;font-style:italic!important;margin-top:.6rem!important;margin-bottom:.6rem!important}.dark blockquote p{color:hsl(var(--muted-foreground))!important;font-size:.95rem!important;font-style:italic!important;margin-top:0!important;margin-bottom:0!important}.dark .prose blockquote,.dark .prose blockquote p,.dark blockquote,.dark blockquote p{color:hsl(var(--muted-foreground))!important}.dark table{margin-top:.6rem!important;margin-bottom:.6rem!important;margin-left:auto!important;margin-right:auto!important;font-size:.9rem!important;width:auto!important}.dark thead{background-color:transparent!important;border-bottom-width:2px!important;border-bottom-color:hsl(var(--border))!important;border-top-width:2px!important;border-top-color:hsl(var(--border))!important}.dark thead th{font-weight:600!important;color:hsl(var(--foreground))!important;padding:.5rem .75rem!important;letter-spacing:.02em!important}.dark tbody td{padding:.5rem .75rem!important;color:hsl(var(--foreground) / .82)!important;border-bottom-width:1px!important;border-bottom-color:hsl(var(--border) / .7)!important}.dark tbody tr:last-child td{border-bottom-width:0!important}strong{color:inherit!important;font-weight:600!important}strong.info,strong.note{color:#4e6f97!important;font-weight:600!important}.dark strong.info,.dark strong.note{color:#a4cfdb!important;font-weight:600!important}strong.success,strong.tip{color:#719353!important;font-weight:600!important}.dark strong.success,.dark strong.tip{color:#a4bf8d!important;font-weight:600!important}strong.warning{color:#c38e22!important;font-weight:600!important}.dark strong.warning{color:#e8c47d!important;font-weight:600!important}strong.danger,strong.error{color:#b54a55!important;font-weight:600!important}.dark strong.danger,.dark strong.error{color:#d98c94!important;font-weight:600!important}.callout-content strong,.dark .callout-content strong{color:inherit!important;font-weight:600!important}em,i{color:inherit!important;font-style:italic!important}:root{color-scheme:light}.dark{color-scheme:dark}code{display:inline;word-break:break-word}code span,.dark code span,code [data-language]{color:inherit}h1{padding-top:2rem}h2{padding-top:1.5rem}.prose ul li,.prose ol li{margin-bottom:.5rem!important}.prose ul ul,.prose ul ol,.prose ol ul,.prose ol ol{margin-top:.5rem!important;margin-bottom:.5rem!important;margin-left:1.5rem!important}:root:not(.dark) .prose{color:hsl(var(--foreground) / .9)}:root:not(.dark) .prose strong:not(.info):not(.note):not(.success):not(.tip):not(.warning):not(.danger):not(.error){color:hsl(var(--foreground))}:root{--reading-font: "Satoshi", sans-serif;--reading-size: 1.0625rem;--reading-leading: 1.75;--reading-measure: 68ch}html[data-reading-font=serif]{--reading-font: "New York", "Charter", "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif}html[data-reading-font=mono]{--reading-font: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace}html[data-reading-size=s]{--reading-size: .9375rem}html[data-reading-size=m]{--reading-size: 1.0625rem}html[data-reading-size=l]{--reading-size: 1.1875rem}html[data-reading-size=xl]{--reading-size: 1.3125rem}html[data-reading-leading=compact]{--reading-leading: 1.55}html[data-reading-leading=normal]{--reading-leading: 1.75}html[data-reading-leading=relaxed]{--reading-leading: 1.95}html[data-reading-width=narrow]{--reading-measure: 58ch}html[data-reading-width=normal]{--reading-measure: 68ch}html[data-reading-width=wide]{--reading-measure: 78ch}#content.prose,#content .prose,article #content{font-family:var(--reading-font);font-size:var(--reading-size);line-height:var(--reading-leading)}#content.prose p,#content .prose p{max-width:var(--reading-measure);font-size:var(--reading-size);line-height:var(--reading-leading)}html #content.prose ul,html #content.prose ol,html #content.prose li,html #content.prose dl,html #content.prose dt,html #content.prose dd,html #content .prose ul,html #content .prose ol,html #content .prose li,html #content .prose dl,html #content .prose dt,html #content .prose dd{font-size:var(--reading-size)!important;line-height:var(--reading-leading)!important}html #content.prose li::marker,html #content .prose li::marker{font-size:var(--reading-size);color:hsl(var(--primary) / .65)}#content pre,#content table,#content blockquote,#content figure,#content [class*=callout],#content [class*=Callout]{max-width:none}#content pre,#content pre code,#content :not(pre)>code{font-family:JetBrains Mono,SF Mono,Menlo,Consolas,monospace!important}.reading-settings{position:fixed;bottom:5rem;right:1rem;z-index:50;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:.55rem}@media(min-width:640px){.reading-settings{bottom:5.5rem;right:1.25rem}}.reading-settings__collapse-all{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;border:1px solid hsl(var(--border));border-radius:9999px;background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 4px 16px hsl(var(--foreground) / .06);transition:transform .18s ease-out,color .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out;opacity:1}.reading-settings__collapse-all[hidden]{display:none}.reading-settings__collapse-all:hover{color:hsl(var(--foreground));border-color:hsl(var(--primary) / .5);transform:translateY(-1px);box-shadow:0 1px 2px hsl(var(--primary) / .06),0 6px 20px hsl(var(--primary) / .12)}.reading-settings__collapse-all:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.reading-settings__collapse-all[aria-pressed=true]{color:hsl(var(--primary));border-color:hsl(var(--primary) / .5)}.reading-settings__collapse-icon{width:1.1rem;height:1.1rem;transition:transform .24s cubic-bezier(.16,1,.3,1)}.reading-settings__collapse-all[aria-pressed=true] .reading-settings__collapse-icon{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){.reading-settings__collapse-all,.reading-settings__collapse-icon{transition:none}}.reading-settings__trigger{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border-radius:9999px;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 4px 16px hsl(var(--foreground) / .06);transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s ease-out;cursor:pointer;font-family:Satoshi,sans-serif;font-weight:500;line-height:1;overflow:hidden;white-space:nowrap}.reading-settings__trigger:hover{border-color:hsl(var(--primary) / .5);box-shadow:0 1px 2px hsl(var(--primary) / .06),0 6px 20px hsl(var(--primary) / .12);transform:translateY(-1px)}.reading-settings__trigger:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.reading-settings__trigger .reading-settings__aa{display:inline-flex;align-items:baseline;gap:.04em;line-height:1;white-space:nowrap}.reading-settings__trigger .lg{font-size:1.05rem;font-weight:600;line-height:1}.reading-settings__trigger .sm{font-size:.78rem;font-weight:500;line-height:1}.reading-settings__panel{position:absolute;bottom:calc(100% + .75rem);right:0;width:19.5rem;background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:.875rem;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 12px 40px hsl(var(--foreground) / .14);padding:1rem;display:flex;flex-direction:column;gap:.875rem;font-family:Satoshi,sans-serif;opacity:0;transform:translateY(.5rem) scale(.98);transform-origin:bottom right;transition:opacity .18s ease-out,transform .18s ease-out;pointer-events:none}.reading-settings[data-open=true] .reading-settings__panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.reading-settings__header{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:.5rem;border-bottom:1px solid hsl(var(--border) / .6)}.reading-settings__title{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:hsl(var(--muted-foreground) / .85)}.reading-settings__reset{font-size:.75rem;color:hsl(var(--muted-foreground));background:none;border:0;cursor:pointer;padding:.125rem .25rem;border-radius:.25rem;transition:color .15s ease-out}.reading-settings__reset:hover{color:hsl(var(--primary))}.reading-settings__row{display:flex;flex-direction:column;gap:.4rem}.reading-settings__label{font-size:.75rem;color:hsl(var(--muted-foreground));font-weight:500}.reading-settings__segment{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.25rem;background:hsl(var(--muted) / .7);border-radius:.5rem;padding:.2rem}.reading-settings__segment button{appearance:none;border:0;background:transparent;color:hsl(var(--muted-foreground));font-size:.8125rem;padding:.4rem .5rem;border-radius:.375rem;cursor:pointer;font-family:inherit;font-weight:500;transition:background .15s ease-out,color .15s ease-out,box-shadow .15s ease-out}.reading-settings__segment button:hover{color:hsl(var(--foreground))}.reading-settings__segment button[aria-pressed=true]{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 2px hsl(var(--foreground) / .08)}.reading-settings__segment button[data-font=serif]{font-family:New York,Charter,Sitka Text,Georgia,serif}.reading-settings__segment button[data-font=mono]{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:.75rem}.reading-settings__segment button[data-size=s]{font-size:.7rem}.reading-settings__segment button[data-size=m]{font-size:.8125rem}.reading-settings__segment button[data-size=l]{font-size:.9375rem}.reading-settings__segment button[data-size=xl]{font-size:1.0625rem}.reading-settings__theme{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.reading-settings__theme button{appearance:none;background:transparent;border:1px solid hsl(var(--border));border-radius:.5rem;padding:.5rem .25rem;cursor:pointer;font-family:inherit;font-size:.75rem;color:hsl(var(--muted-foreground));display:flex;flex-direction:column;align-items:center;gap:.35rem;transition:border-color .15s ease-out,color .15s ease-out}.reading-settings__theme button:hover{color:hsl(var(--foreground))}.reading-settings__theme button[aria-pressed=true]{border-color:hsl(var(--primary));color:hsl(var(--foreground))}.reading-settings__theme .swatch{width:1.5rem;height:1.5rem;border-radius:9999px;border:1px solid hsl(var(--border))}.reading-settings__theme [data-theme=light] .swatch{background:#f3f4f6}.reading-settings__theme [data-theme=sepia] .swatch{background:#f6f1ea}.reading-settings__theme [data-theme=dark] .swatch{background:#111318}@media(prefers-reduced-motion:reduce){.reading-settings__panel,.reading-settings__trigger{transition:none}}.reading-settings__divider{height:1px;background:hsl(var(--border) / .55);margin:.25rem 0 .1rem}.reading-settings__hint{display:block;font-weight:400;font-size:.68rem;color:hsl(var(--muted-foreground) / .7);margin-top:.1rem;letter-spacing:.01em}@font-face{font-family:OpenDyslexic;src:url(https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}html[data-reading-dyslexic=on] #content,html[data-reading-dyslexic=on] #content p,html[data-reading-dyslexic=on] #content li,html[data-reading-dyslexic=on] #content blockquote,html[data-reading-dyslexic=on] #content h1,html[data-reading-dyslexic=on] #content h2,html[data-reading-dyslexic=on] #content h3,html[data-reading-dyslexic=on] #content h4,html[data-reading-dyslexic=on] #content h5,html[data-reading-dyslexic=on] #content h6{font-family:OpenDyslexic,Atkinson Hyperlegible,Verdana,Tahoma,sans-serif!important;letter-spacing:.04em;word-spacing:.16em}html[data-reading-dyslexic=on] #content{--reading-leading: 1.95}html[data-reading-dyslexic=on] #content pre,html[data-reading-dyslexic=on] #content pre code,html[data-reading-dyslexic=on] #content :not(pre)>code{letter-spacing:.02em}.rs-collapsible-heading{cursor:pointer;position:relative;display:flex;align-items:baseline;gap:.65rem;padding-right:1.5rem;transition:color .18s ease-out;user-select:none}.rs-collapsible-heading:hover{color:hsl(var(--primary))}.rs-collapsible-heading:focus-visible{outline:2px solid hsl(var(--primary) / .5);outline-offset:4px;border-radius:.25rem}.rs-chevron{display:inline-flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;margin-left:auto;color:hsl(var(--muted-foreground) / .7);transition:transform .22s cubic-bezier(.16,1,.3,1),color .18s ease-out;flex-shrink:0}.rs-chevron-icon{width:100%;height:100%}.rs-collapsible-heading:hover .rs-chevron{color:hsl(var(--primary))}.rs-collapsible-heading.is-collapsed .rs-chevron{transform:rotate(-90deg)}[data-rs-hidden=true]{display:none!important}@media(prefers-reduced-motion:reduce){.rs-chevron,.rs-collapsible-heading{transition:none}}:root{--text-base: 1rem;--text-line: 1.55}.page-hero__eyebrow,.page-hero__lede,.article-hero__eyebrow,.article-hero__lede,.article-hero__updated,.article-hero__byline,.article-hero__author,.article-hero__tags,.article-hero__tags a,.blog-index__eyebrow,.blog-index__lede,.blog-index__listhead,.blog-index__listhead>*,.blog-index__tags,.blog-index__tag,.blog-index__pagination,.blog-index__pag-link,.blog-index__pag-counter,.blog-index__empty,.post-card__meta,.post-card__desc,.post-card__tags,.post-card__sub,.article-row__date,.article-row__desc,.article-row__meta,.article-row__title,.archives-row__date,.archives-row__title,.archives-row__meta,.archives-year__count,.archives-empty,.tags-cloud,.tags-cloud__item,.tags-cloud__count,.tags-empty,.terms-text,.terms-mail,.terms-notice,.terms-notice p,.terms-notice__title,.terms-notice__icon,.about-hero__lede,.partners-hero__lede,.projects-hero__lede,.ressources-hero__lede,.ressources-text,.ressources-rss,.tool__name,.tool__desc,.tool-section__head,.tool-section__title,.tool-section__count,.tool-section__tilde,.skill-pill,.skill-group__head,.skill-group__title,.skill-group__count,.skill-group__tilde,.substats__platform,.substats__count,.substats__text,.substats__num,.partner-card,.partner-card__details,.partner-card__features,.partner-card__features li,.partner-card__title h3,.partner-card__title p,.partner-card__badge,.partner-card__cta,.partners-disclosure dt,.partners-disclosure dd,.partners-notice__body,.partners-notice__title,.cert-card,.cert-card__tag,.cert-card__status,.cert-card__link,.cert-modal__caption,.cert-modal__title,.cert-modal__path,.cert-modal__close,.cert-modal__status,.cert-modal__status-ok,.cert-modal__status-pending,.cmdk__input,.cmdk__prompt,.cmdk__kbd,.cmdk__section,.cmdk__section-label,.cmdk__section-count,.cmdk__item-title,.cmdk__item-sub,.cmdk__item-excerpt,.cmdk__item-meta,.cmdk__item-tag,.cmdk__item-enter,.cmdk__empty,.cmdk__empty-prompt,.cmdk__footer,.cmdk-trigger,.cmdk-trigger__label,.cmdk-trigger__tilde,.cmdk-trigger__placeholder,.kbd-hints,.kbd-hints__text,.kbd-hints__icon,.kbd-hints__close,.ft__brand,.ft__brand-name,.ft__tagline,.ft__h,.ft__list,.ft__link,.ft__mail,.ft__social,.ft__social-link,.ft__social-arrow,.ft__status,.ft__bar,.ft__bar-left,.ft__bar-right,.ft__bar-tilde,.ft__bar-link,.nf__lede,.nf__terminal,.nf__line,.nf__line--code,.nf__link,.nf__link-icon,.flag__lede,.flag__eyebrow,.flag__terminal,.flag__status,.flag__card-head,.flag__card-meta,.flag__value,.flag__copy,.flag__copy-hint,.flag__quote p,.flag__quote-hint,.flag__link,.flag__link-icon,.intr__lede,.intr__eyebrow,.intr__terminal,.intr__alert,.intr__video-head,.intr__video-meta,.intr__link,.intr__link-icon,.term__bar,.term__path,.term__path-ext,.term__badge,.term__body,.term__flag,.term__out,.term__row,.term__row--cmd,.term__status,.term__status-left,.term__status-right,.intro-term,.page-cta,.page-cta__link,.page-cta__link--muted,.search-page,.search-kbd,.search-disabled,.archives-year__num,.skip-link,.page-hero__tilde,.article-hero__tilde,.intr__eyebrow-tilde,.flag__eyebrow-tilde{font-size:var(--text-base)!important}.cmdk__kbd,.cmdk-trigger__kbd,.cmdk-trigger__mod,.kbd-hints__text kbd,.cmdk__footer kbd,.search-kbd,.cmdk__item-enter,.term__ln,.term__dot,.cert-modal__dot,.nf__terminal:before,.term__caret,.flag__caret,.intr__caret,.nf__caret,.archives-row__arrow,.post-card__arrow,.article-row__arrow,.cmdk-trigger__icon{font-size:.78rem!important}body{font-size:var(--text-base);line-height:var(--text-line)}@media print{:root,:root.dark,:root.sepia{--background: 0 0% 100%;--foreground: 0 0% 12%;--card: 0 0% 100%;--card-foreground: 0 0% 12%;--muted: 0 0% 96%;--muted-foreground: 0 0% 35%;--border: 0 0% 80%;--primary: 0 0% 20%;--accent: 0 0% 30%;--destructive: 0 0% 30%}html,body{background:#fff!important;color:#000!important}body:before{display:none!important}header,header-component,footer,.ft,.skip-link,.cmdk,.reading-settings,.reading-progress,.kbd-hints,.cmdk-trigger,[aria-label="Pied de page"],[data-pagefind-ignore],.article-hero__rule,.article-row__arrow,.post-card__arrow,.archives-row__arrow{display:none!important}body>div{max-width:100%!important;padding:0!important}main,article{max-width:none!important;padding:0!important;margin:0!important}a[href^=http]:after,a[href^="/"]:after{content:" (" attr(href) ")";font-size:.78em;color:#555;word-break:break-all}a[href^="#"]:after,a[href^="mailto:"]:after{content:""}h1,h2,h3,h4,h5,h6{page-break-after:avoid;color:#000!important}p,li,blockquote{orphans:3;widows:3}img,pre,table,figure{page-break-inside:avoid}pre,code{background:#f5f5f5!important;color:#111!important;border:1px solid #ddd!important}pre{white-space:pre-wrap;word-wrap:break-word}.article-hero__image,.blur-layer{display:none!important}aside[id=sidebar],aside.ressources-toc,toc-heading{display:none!important}iframe[src*=youtube]{display:none!important}}html body code:before,html body code:after{content:none!important}:not(pre)>code:not([data-language]){font-family:JetBrains Mono,Fira Code,Consolas,Monaco,Courier New,monospace!important;font-size:.82em!important;font-weight:500!important;padding:.15em .42em!important;border-radius:.3rem!important;border:1px solid hsl(var(--border))!important;background-color:hsl(var(--muted) / .7)!important;color:hsl(var(--foreground))!important;display:inline!important;line-height:1.5!important;white-space:normal!important;transition:background-color .18s ease-out,border-color .18s ease-out!important}:not(pre)>code:not([data-language]):hover{background-color:hsl(var(--muted))!important;border-color:hsl(var(--primary) / .4)!important}@media(prefers-reduced-motion:reduce){:not(pre)>code:not([data-language]){transition:none!important}}code{font-family:JetBrains Mono,Fira Code,SF Mono,Consolas,monospace;font-size:.8125em;padding:.2em .4em;border-radius:.25rem;word-break:break-word;display:inline;background-color:hsl(var(--muted));color:hsl(var(--foreground))}code span{color:var(--shiki-light, currentColor)}.dark code span{color:var(--shiki-dark, currentColor)}.sepia code span{color:var(--shiki-light, currentColor)}code span.line{display:inline}html.dark .highlight{color:hsl(var(--foreground) / var(--un-text-opacity))!important}.highlight{color:var(--highlightColor, hsl(var(--primary) / var(--un-text-opacity)))!important}.highlight-bg{background-color:var( --highlightColor, hsl(var(--primary) / var(--un-text-opacity)) )!important}
