.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--black:#000;--white:#fff;--bg:var(--white);--fg:var(--black);--muted:#555;--surface:#f4f4f4;--border:#ddd;--current-bg:#eaeaea;--code-bg:#2a2a2a;--code-fg:var(--white);--font-display:var(--font-parmigiano);--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--radius:8px;--max-width:1080px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:var(--black);--fg:var(--white);--muted:#aaa;--surface:#111;--border:#2a2a2a;--current-bg:#1c1c1c;--code-bg:#1e1e1e;--code-fg:var(--white)}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media (prefers-reduced-motion:no-preference){:root{interpolate-size:allow-keywords}details::details-content{opacity:0;block-size:0;transition:block-size .32s cubic-bezier(.25, .8, .25, 1), opacity .25s ease-out, content-visibility .32s allow-discrete;overflow:hidden}details[open]::details-content{opacity:1;block-size:auto}}body{background:var(--bg);color:var(--fg);font:17px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%;height:auto;display:block}a{color:var(--fg);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:4px}code{font-family:var(--font-mono);font-size:.92em}:not(pre)>code{overflow-wrap:anywhere}h1,h2,h3{font-family:var(--font-display);margin:0 0 .6em;font-weight:300;line-height:1.15}h1{letter-spacing:-.01em;font-size:clamp(2.2rem,5vw,3.6rem)}h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}h3{font-size:1.35rem;font-weight:700}.container{width:min(100% - 2.5rem, var(--max-width));margin-inline:auto}.skip-link{background:var(--fg);color:var(--bg);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.site-header{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1.5rem;min-height:4.5rem;display:flex}.brand-wrap{align-items:center;gap:.75rem;display:flex}.brand{display:block}.brand img{width:136px;height:auto}.version-tag{font:500 .72rem/1 var(--font-mono);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.3rem .55rem;transform:translateY(.22rem)}.nav-wrap{align-items:center;gap:1.75rem;display:flex}.nav{gap:1.75rem;margin:0;padding:0;list-style:none;display:flex}.nav a{font:300 1.2rem/1 var(--font-display);padding-block:.35rem;text-decoration:none;display:inline-block;position:relative}.nav a:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .2s;position:absolute;bottom:-.1rem;left:0;right:0;transform:scaleX(0)}.nav a:hover:after{transform:scaleX(1)}.nav a[aria-current=page]:after{height:2px;transform:scaleX(1)}.lang-switch{font:500 .78rem/1 var(--font-mono);letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.42rem .6rem;text-decoration:none}.lang-switch:hover{color:var(--fg);border-color:var(--fg)}.nav-github{background:var(--fg);color:var(--bg);border-radius:999px;padding:.5rem .95rem;font-size:.92rem;font-weight:600;text-decoration:none}.nav-github,.button-github{align-items:center;gap:.45em;display:inline-flex}.icon-github{fill:currentColor;flex:none;width:1.05em;height:1.05em}.nav-github:hover{opacity:.85}@media (prefers-reduced-motion:reduce){.nav a:after{transition:none}}.nav-panel{display:contents}.nav-wrap>.nav-panel .nav-github{order:3}.nav-wrap>.lang-switch{order:2}.nav-wrap>.nav-panel .nav{order:1}.nav-toggle{display:none}@media (width<=640px){.header-inner{gap:.75rem;min-height:3.75rem;position:relative}.brand img{width:112px}.version-tag{transform:translateY(.18rem)}.nav-wrap{gap:.6rem}.nav-toggle{order:3}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{background:currentColor;border-radius:1px;width:1rem;height:1.5px;transition:transform .25s,opacity .2s;display:block}.nav-toggle-bars{position:relative}.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";position:absolute;left:0}.nav-toggle-bars:before{transform:translateY(-4px)}.nav-toggle-bars:after{transform:translateY(4px)}.site-header:has(.nav-panel:popover-open) .nav-toggle-bars{background:0 0}.site-header:has(.nav-panel:popover-open) .nav-toggle-bars:before{transform:rotate(45deg)}.site-header:has(.nav-panel:popover-open) .nav-toggle-bars:after{transform:rotate(-45deg)}.nav-panel{width:auto;height:auto;color:inherit;background:var(--bg);border:0;border-bottom:1px solid var(--border);opacity:0;visibility:hidden;flex-direction:column;align-items:stretch;gap:.25rem;margin:0;padding:.75rem 1.25rem 1.25rem;transition:opacity .2s,transform .25s cubic-bezier(.25,.8,.25,1),visibility 0s linear .25s;display:flex;position:fixed;inset:calc(3.75rem + 1px) 0 auto;overflow:visible;transform:translateY(-.5rem)}.nav-panel:popover-open{opacity:1;visibility:visible;transition-delay:0s;transform:none}.nav-panel .nav{flex-direction:column;gap:0}.nav-panel .nav a{border-bottom:1px solid var(--border);padding:.85rem 0;font-size:1.35rem;display:block}.nav-panel .nav a:after{display:none}.nav-panel .nav a[aria-current=page]{font-weight:700}.nav-panel .nav-github{align-self:flex-start;margin-top:1rem}}@media (width<=640px) and (prefers-reduced-motion:reduce){.nav-panel,.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{transition:none}}.mobile-only,.actions.mobile-only{display:none}@media (width<=760px){.desktop-only,.actions.desktop-only{display:none}.mobile-only{display:block}.actions.mobile-only{display:flex}.mobile-plain{background:var(--bg)}}.hero{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(2rem,5vw,4rem);overflow:hidden}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"text graphic""install install""meta meta";align-items:center;column-gap:3rem;display:grid}.hero-text{grid-area:text}.hero-graphic{grid-area:graphic;align-self:start}.hero-install{grid-area:install;margin-top:1rem}.hero-meta{grid-area:meta}.hero h1{max-width:14ch}@media (width<=760px){.hero-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"text""graphic""install""meta"}.hero-graphic{margin:.5rem -.75rem 0}.hero-install{margin-top:0}.hero-install .actions,.cta .actions.mobile-only{flex-direction:column;align-items:stretch}}.loom{width:100%;height:auto;color:var(--fg);animation:.9s ease-out both loom-in;display:block;overflow:visible}@keyframes loom-in{0%{opacity:0}}.loom-thread{fill:none;stroke:currentColor;stroke-width:1px;opacity:.22}.loom-pulse{fill:currentColor;opacity:0}.loom-node{fill:currentColor}.loom-ring,.loom-halo{fill:none;stroke:currentColor;stroke-width:1px;opacity:0}.loom-source{fill:var(--bg);stroke:currentColor;stroke-width:.75px}.loom-mark{fill:currentColor;opacity:.85}.loom-label{font:500 13px var(--font-mono);fill:currentColor;dominant-baseline:middle}.loom-caption{font:italic 300 17px var(--font-display);fill:var(--muted);text-anchor:middle}@media (width<=760px){.loom-label{font-size:19px}.loom-caption{font-size:22px}}@media (prefers-reduced-motion:reduce){.loom-pulses,.loom-ring,.loom-halo{display:none}}.lead{font-family:var(--font-display);color:var(--muted);max-width:52ch;font-size:1.4rem;font-weight:300;line-height:1.45}.terminal,.doc-body pre,.faq-answer pre{background:var(--code-bg);color:var(--code-fg);border-radius:var(--radius);border:1px solid var(--border);scrollbar-width:thin;scrollbar-color:#666 var(--code-bg);padding:1.1rem 1.25rem;font-size:.92rem;line-height:1.55;position:relative;overflow-x:auto}.terminal::-webkit-scrollbar,.doc-body pre::-webkit-scrollbar,.faq-answer pre::-webkit-scrollbar{background:var(--code-bg);height:8px}.terminal::-webkit-scrollbar-thumb,.doc-body pre::-webkit-scrollbar-thumb,.faq-answer pre::-webkit-scrollbar-thumb{background:#666;border-radius:999px}pre.has-copy{padding-right:3.25rem}.code-block{margin:1em 0;position:relative}.code-block>pre{margin:0}.copy-button{color:#aaa;background:var(--code-bg);cursor:pointer;border:0;border-radius:6px;place-items:center;width:2rem;height:2rem;padding:0;display:grid;position:absolute;top:50%;right:.55rem;transform:translateY(-50%)}.copy-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem}.copy-button:hover{color:var(--code-fg);background:#ffffff1a}.copy-button:focus-visible{outline-color:var(--code-fg)}.code-block.is-multiline>.copy-button{top:.55rem;transform:none}.live-version{opacity:0;filter:blur(3px);animation:.6s ease-out 4s forwards live-version-in;display:inline-block;transform:translateY(.2em)}.live-version.is-loaded{animation:.6s ease-out forwards live-version-in}.live-version.is-instant{opacity:1;filter:none;animation:none;transform:none}@keyframes live-version-in{to{opacity:1;filter:none;transform:none}}@media (prefers-reduced-motion:reduce){.live-version{filter:none;transform:none}@keyframes live-version-in{to{opacity:1}}}.cta-note{color:var(--muted);max-width:34ch;margin-inline:auto}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem;font-size:.85rem;font-weight:600}.hero-meta{color:var(--muted);margin-top:1.25rem;font-size:.92rem}.hero .actions{justify-content:center;margin-top:1.75rem}.narrow{max-width:780px}.actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.button{text-align:center;border:1px solid var(--fg);color:var(--fg);border-radius:999px;justify-content:center;align-items:center;padding:.7rem 1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--surface)}.button-primary{background:var(--fg);color:var(--bg)}.button-primary:hover{background:var(--fg);opacity:.85}.section{padding-block:clamp(3rem,7vw,5rem)}.section-alt{background:var(--surface);--muted:var(--fg)}.section-lead{font-family:var(--font-display);max-width:52ch;margin:0;font-size:1.3rem;font-weight:300;line-height:1.45}.more{margin-top:.5rem}.more a{font-weight:600}.more a:after{content:" →"}main p a[href^=http]:not([href^="https://mestiere.io"]):not(.button):after,main li a[href^=http]:not([href^="https://mestiere.io"]):after,main td a[href^=http]:not([href^="https://mestiere.io"]):after{content:" ↗";font-size:.85em;text-decoration:none;display:inline-block}.button[href^=http]:not(.button-github):after{content:"↗";margin-left:.4em;font-size:.9em}.note{color:var(--muted);font-size:.95rem}.features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.features li{border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.features p{color:var(--muted);margin:0}.columns{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;display:grid}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding-block:2rem;font-size:.95rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.footer-inner p{margin:0}.page-it,.is-it .page-en{display:none}.is-it .page-it{display:block}.not-found{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3rem;min-height:70vh;padding-block:3rem;display:grid}.not-found h1{max-width:14ch}.not-found .lead{max-width:34ch}.not-found .actions{justify-content:flex-start}.loom-thread-loose{opacity:.35}.loom-missing{fill:none;stroke:currentColor;stroke-width:1px;stroke-dasharray:2 3;opacity:.7}.loom-label-missing{opacity:.5}@media (width<=760px){.not-found{grid-template-columns:minmax(0,1fr);gap:1rem;min-height:0;padding-block:1.5rem 3rem}.not-found-graphic{order:-1;margin-inline:-.75rem}.not-found .actions{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.loom-404 .loom-pulse{display:none}}.steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step}.steps li:before{content:counter(step);border:1px solid var(--fg);width:2rem;height:2rem;font-family:var(--font-display);border-radius:50%;place-items:center;margin-bottom:.75rem;display:inline-grid}.steps p{color:var(--muted);margin:0}.faq{border-top:1px solid var(--border)}.faq-item{border-bottom:1px solid var(--border)}.faq-item summary{cursor:pointer;padding:1.1rem 2rem 1.1rem 0;list-style:none;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:before,.faq-item summary:after{content:"";background:currentColor;width:.85rem;height:1.5px;transition:transform .32s cubic-bezier(.25,.8,.25,1);position:absolute;top:50%;right:.3rem}.faq-item summary:before{transform:translateY(-50%)rotate(90deg)}.faq-item summary:after{transform:translateY(-50%)}.faq-item[open] summary:before{transform:translateY(-50%)rotate(0)}.faq-item summary h3{margin:0;font-size:1.25rem;display:inline}.faq-answer{color:var(--muted);padding-bottom:1.1rem}.faq-answer p:first-child{margin-top:0}.cta{text-align:center}.cta .actions{justify-content:center}.docs-layout{grid-template-columns:220px minmax(0,1fr);gap:3rem;padding-block:3rem 4rem;display:grid}.docs-nav{align-self:start;font-size:.95rem;position:sticky;top:6rem}.docs-nav-title,.toc-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .75rem;font-size:.78rem;font-weight:600}.docs-nav ul,.toc ul{margin:0;padding:0;list-style:none}.docs-nav li{margin:.15rem 0}.docs-nav a{border-radius:6px;padding:.35rem .75rem;text-decoration:none;display:block}.docs-nav a:hover{background:var(--surface)}.docs-nav a,.docs-menu a{border:1px solid #0000}.docs-nav a[aria-current=page],.docs-menu a[aria-current=page]{background:var(--current-bg);border-color:var(--border);font-weight:600}.doc{min-width:0;max-width:760px}.doc-header h1{margin-bottom:.4em}.doc-lead{font-family:var(--font-display);color:var(--muted);margin-top:0;font-size:1.3rem;font-weight:300;line-height:1.45}.toc{border:1px solid var(--border);border-radius:var(--radius);margin:2rem 0;padding:1rem 1.25rem;font-size:.95rem}.toc ul{columns:2;column-gap:2rem}.toc li{break-inside:avoid;padding:.15rem 0}.doc-body h2{margin-top:2.5rem;padding-top:.5rem}.doc-body h3{margin-top:2rem;font-size:1.3rem}.doc-body h2,.doc-body h3{scroll-margin-top:5.5rem;position:relative}.anchor:before{content:"#"}.anchor{color:var(--muted);opacity:0;font-family:var(--font-sans);font-weight:400;text-decoration:none;position:absolute;left:-1.1em}h2:hover>.anchor,h3:hover>.anchor,.anchor:focus{opacity:1}.doc-body li{margin:.3rem 0}.doc-body blockquote{border-left:3px solid var(--fg);color:var(--muted);margin:1.5rem 0;padding:.25rem 1.25rem}.table-wrap{margin:1.5rem 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.55rem .75rem}th{border-bottom-color:var(--fg);font-weight:600}.docs-menu{display:none}.docs-menu details{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.docs-menu summary{cursor:pointer;flex-direction:column;gap:.15rem;padding:.75rem 3rem .75rem 1rem;list-style:none;display:flex;position:relative}.docs-menu summary::-webkit-details-marker{display:none}.docs-menu summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:.55rem;height:.55rem;transition:transform .2s;position:absolute;top:50%;right:1.1rem;transform:translateY(-70%)rotate(45deg)}.docs-menu details[open] summary:after{transform:translateY(-30%)rotate(-135deg)}.docs-menu details[open] summary{border-bottom:1px solid var(--border)}.docs-menu-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:600}.docs-menu-current{font:300 1.25rem/1.2 var(--font-display)}.docs-menu ul{margin:0;padding:.4rem;list-style:none}.docs-menu a{border-radius:6px;padding:.65rem .75rem;text-decoration:none;display:block}@media (prefers-reduced-motion:reduce){.docs-menu summary:after,.faq-item summary:before{transition:none}}.pager{grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;display:grid}.pager a{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;font-weight:600;text-decoration:none;display:block}.pager a:hover{border-color:var(--fg)}.pager span{color:var(--muted);font-size:.8rem;font-weight:400;display:block}.pager-next{text-align:right}.doc-meta{color:var(--muted);margin-top:2rem;font-size:.88rem}.footer-links{flex-wrap:wrap;gap:.5rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}@media (width<=860px){.docs-layout{grid-template-columns:1fr;gap:1.5rem;padding-top:1.5rem}.docs-nav{display:none}.docs-menu{display:block}.toc ul{columns:1}.anchor{display:none}}.version-tag,.lang-switch,.nav-toggle{box-sizing:border-box;border:1px solid var(--border);height:1.75rem;font:500 .72rem/1 var(--font-mono);letter-spacing:.04em;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:0 .6rem}.version-tag,.lang-switch{display:inline-flex}.nav-toggle{cursor:pointer;background:0 0;min-width:2.6rem}.lang-switch:hover,.nav-toggle:hover{color:var(--fg);border-color:var(--fg)}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{width:.85rem}@media (width<=640px){.nav-toggle{color:var(--fg);display:inline-flex}}
