:root{--c-base:#eff1f5;--c-mantle:#e6e9ef;--c-crust:#dce0e8;--c-surface2:#acb0be;--c-surface1:#bcc0cc;--c-surface0:#ccd0da;--c-overlay2:#7c7f93;--c-overlay1:#8c8fa1;--c-overlay0:#9ca0b0;--c-text:#4c4f69;--c-subtext1:#5c5f77;--c-subtext0:#6c6f85;--c-mauve:#8839ef;--c-green:#40a02b;--c-red:#d20f39;--c-yellow:#df8e1d;--c-blue:#1e66f5;--c-header-bg:var(--c-crust);--c-header-text:var(--c-text);--c-hairline:var(--c-overlay1);--c-body-bg:var(--c-base);--c-panel-bg:var(--c-base);--c-accent:var(--c-mauve);--c-shadow:var(--c-text);--c-banner-bg:#d20f39;--c-banner-fg:#eff1f5;--accent-ul-offset:.4em;--font-serif:"Noto Serif", Georgia, "Times New Roman", serif;--font-display:"Noto Serif Display", Georgia, "Times New Roman", serif;--font-sans:"Noto Sans", -apple-system, "Segoe UI", sans-serif;--font-mono:"Noto Sans Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--header-h:80px;--header-h-phone:64px;--lift-x-band:.12em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--space-9:6.5rem;--radius:10px;--max-content:72rem;--max-prose:42rem;--motion-fast:.18s;--motion-medium:.42s;--motion-ease:cubic-bezier(.22, .61, .36, 1);--mocha-base:#1e1e2e;--mocha-mantle:#181825;--mocha-crust:#11111b;--mocha-surface2:#585b70;--mocha-surface1:#45475a;--mocha-surface0:#313244;--mocha-overlay2:#9399b2;--mocha-overlay1:#7f849c;--mocha-overlay0:#6c7086;--mocha-text:#cdd6f4;--mocha-subtext1:#bac2de;--mocha-subtext0:#a6adc8;--mocha-mauve:#cba6f7;--mocha-peach:#fab387;--mocha-green:#a6e3a1;--mocha-red:#f38ba8;--mocha-yellow:#f9e2af;--mocha-blue:#89b4fa;--mocha-sky:#89dceb}@media (prefers-color-scheme:dark){:root{--c-base:var(--mocha-base);--c-mantle:var(--mocha-mantle);--c-crust:var(--mocha-crust);--c-surface2:var(--mocha-surface2);--c-surface1:var(--mocha-surface1);--c-surface0:var(--mocha-surface0);--c-overlay2:var(--mocha-overlay2);--c-overlay1:var(--mocha-overlay1);--c-overlay0:var(--mocha-overlay0);--c-text:var(--mocha-text);--c-subtext1:var(--mocha-subtext1);--c-subtext0:var(--mocha-subtext0);--c-mauve:var(--mocha-mauve);--c-green:var(--mocha-green);--c-red:var(--mocha-red);--c-yellow:var(--mocha-yellow);--c-blue:var(--mocha-blue);--c-header-bg:var(--c-surface2);--c-body-bg:var(--c-mantle);--c-banner-bg:#f38ba8;--c-banner-fg:#11111b}}@media (prefers-reduced-motion:reduce){:root{--motion-fast:1ms;--motion-medium:1ms}}@font-face{font-family:Noto Serif;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSerif-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Noto Serif Display;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSerifDisplay-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSansMono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSansMono-keys.woff2)format("woff2");unicode-range:U+2190,U+2192}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSansSymbols2-keys.woff2)format("woff2");unicode-range:U+2318,U+2325}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/NotoSansMath-keys.woff2)format("woff2");unicode-range:U+21E7}:root{--bp-header:48.5rem}.site-header{z-index:40;background:var(--c-header-bg);color:var(--c-header-text);height:var(--header-h-phone);position:sticky;top:0}@media (width>=48.5rem){.site-header{height:var(--header-h)}}.site-header__inner{max-width:var(--max-content);align-items:center;gap:var(--space-3);height:100%;padding-inline:var(--space-5);margin-inline:auto;display:flex}.site-header__home{flex:none}.site-header__mark{flex:none;width:44px;height:44px}@media (width>=48.5rem){.site-header__mark{width:56px;height:56px}}.site-header__word{top:calc(-1 * var(--lift-x-band));font-family:var(--font-serif);letter-spacing:.01em;color:var(--c-blue);white-space:nowrap;font-size:24px;font-weight:700;text-decoration:none;position:relative}@media (width>=48.5rem){.site-header__word{font-size:30px}}.site-header__divider{background:var(--c-hairline);width:1px;height:32px;margin-inline:var(--space-4);flex:none;display:none}@media (width>=48.5rem){.site-header__divider{display:block}}.site-header__nav{display:none}@media (width>=48.5rem){.site-header__nav{gap:26px;margin:0;padding:0;list-style:none;display:flex}.site-header__nav a{top:calc(-1 * var(--lift-x-band));font-family:var(--font-serif);color:var(--c-header-text);font-size:19px;font-weight:700;text-decoration:none;display:inline-block;position:relative}}.site-header__oss{display:none}@media (width>=48.5rem){.site-header__oss{top:calc(-1 * var(--lift-x-band));font-family:var(--font-serif);color:var(--c-header-text);margin-left:auto;font-size:19px;font-weight:700;text-decoration:none;display:inline-block;position:relative}}.site-header a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--c-accent);text-underline-offset:var(--accent-ul-offset);text-decoration-thickness:2px}.site-header__toggle{width:48px;height:48px;color:var(--c-header-text);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin-left:auto;display:flex}@media (width>=48.5rem){.site-header__toggle{display:none}}.site-header__panel{background:var(--c-header-bg);color:var(--c-header-text);font-family:var(--font-serif);padding:var(--space-1) var(--space-5) var(--space-3);font-size:19px;font-weight:700;display:none}.site-header__panel[data-open=true]{display:block}@media (width>=48.5rem){.site-header__panel{display:none!important}}.site-header__panel a{height:48px;color:var(--c-header-text);align-items:center;text-decoration:none;display:flex}.site-header__panel hr{border:0;border-top:1px solid var(--c-hairline);margin:var(--space-1) 0}.site-footer{background:var(--c-header-bg);color:var(--c-header-text);font-family:var(--font-sans);margin-top:var(--space-9)}.site-footer__inner{max-width:var(--max-content);padding:var(--space-6) var(--space-5) 6.5px;gap:0 var(--space-7);flex-wrap:wrap;justify-content:space-between;margin-inline:auto;display:flex}.site-footer nav{gap:var(--space-5);flex-wrap:wrap;margin-left:auto;display:flex}.site-footer__copyright{border-top:1px solid var(--c-hairline);width:100%;margin:var(--space-3) 0 0;padding-top:var(--space-3);color:var(--c-text);font-size:.8125rem}.site-footer__copyright--mark{align-items:center;gap:.4em;display:flex}.site-footer__copyright--mark .maker{flex:none}.site-footer a{text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline;text-decoration-color:var(--c-accent);text-underline-offset:var(--accent-ul-offset);text-decoration-thickness:2px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h-phone) + var(--space-4))}@media (width>=48.5rem){html{scroll-padding-top:calc(var(--header-h) + var(--space-4))}}body{background:var(--c-body-bg);min-height:100vh;color:var(--c-text);font-family:var(--font-serif);flex-direction:column;margin:0;font-size:1.0625rem;line-height:1.65;display:flex}main{flex:1}img,svg{max-width:100%;display:block}[hidden]{display:none}a{color:inherit}h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 var(--space-3);font-weight:700;line-height:1.2}body[data-site=bundlehound] :is(h1,h2,h3,h4){font-weight:400}h1{font-size:clamp(2rem,1.6rem + 1.6vw,3rem)}h2{font-size:clamp(1.5rem,1.3rem + .8vw,2rem)}h3{font-size:1.25rem}p{margin:0 0 var(--space-4)}.prose{max-width:var(--max-prose);overflow-wrap:break-word}.prose :is(h2,h3){margin-top:var(--space-7)}.prose p,.prose ul,.prose ol{font-size:1.125rem;line-height:1.66}.prose ul,.prose ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}.table-scroll{max-width:100%;margin:0 0 var(--space-4);overflow-x:auto}.table-scroll table{margin:0}table{border-collapse:collapse;width:100%;min-width:28rem;margin:0 0 var(--space-4)}th,td{text-align:left;vertical-align:top;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--c-hairline);font-size:.9375rem}th{font-family:var(--font-sans);font-weight:600}code,pre,kbd{font-family:var(--font-mono);font-size:inherit}.prose pre{margin:0 0 var(--space-4);background:var(--c-panel-bg);border:1px solid var(--c-hairline);border-radius:var(--radius);padding:var(--space-4);color:var(--c-text);font-size:.9375rem;line-height:1.55;overflow-x:auto}.faq-item{border-bottom:1px solid var(--c-hairline)}.faq-item summary{cursor:pointer;font-family:var(--font-sans);padding:var(--space-3) 0;font-size:1.0625rem;font-weight:600;line-height:1.65}.prose .footnote{font-family:var(--font-sans);margin-top:var(--space-7);font-size:.8125rem;line-height:1.65}.home-column{max-width:var(--max-prose);margin-inline:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose>.visually-hidden:first-child+:is(h2,h3){margin-top:0}.skip-link{left:var(--space-3);background:var(--c-accent);color:var(--c-mantle);padding:var(--space-2) var(--space-4);border-radius:var(--radius);z-index:100;transition:top var(--motion-fast) var(--motion-ease);font-family:var(--font-sans);font-weight:600;text-decoration-color:currentColor;position:absolute;top:-100px}.skip-link:focus{top:var(--space-3)}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.container{width:100%;max-width:var(--max-content);padding:var(--space-7) var(--space-5) 0;margin-inline:auto}.prototype-banner{background:var(--c-banner-bg);color:var(--c-banner-fg);font-family:var(--font-sans);text-align:center;padding:var(--space-3) var(--space-4);font-size:19px;font-weight:700;line-height:1.4}.prototype-banner p{margin:0}.home-hero{text-align:center;max-width:var(--max-prose);margin:var(--space-5) auto var(--space-9)}.home-hero p{font-family:var(--font-display);color:var(--c-blue);text-wrap:balance;margin:0;font-size:clamp(1.5rem,1.25rem + .9vw,2rem);font-weight:400;line-height:1.25}.home-spotlight{text-align:center;margin:0 auto var(--space-7);max-width:var(--max-prose)}.home-spotlight h2{margin:0 0 var(--space-2);font-size:clamp(2rem,1.6rem + 1.6vw,2.75rem)}.home-spotlight h2+p{text-wrap:balance;margin:0;font-size:1.25rem;line-height:1.5}.home-spotlight h2 a{text-decoration:none}.home-spotlight h2 a:hover{text-decoration:underline;text-decoration-color:var(--c-accent)}.home-picture{margin:var(--space-6) auto 0}.home-picture img{border-radius:var(--radius);width:100%;height:auto}@media (width>=64rem){.home-picture{width:min(1026px, calc(100vw - 2 * var(--space-5)));margin-inline:50%;translate:-50%}}.home-teaser__body>:first-child{margin-top:0}.prose.home-teaser__body>p:last-child{font-family:var(--font-sans);color:var(--c-subtext1);margin-top:var(--space-6);font-size:.9375rem;font-weight:600}.app-entries,.app-list{margin:0 0 var(--space-6);padding:0;list-style:none}.prose .app-entries,.prose .app-list{padding-left:0}.app-entry{gap:var(--space-5);margin-top:var(--space-6);grid-template-columns:64px 1fr;display:grid}.app-entry__icon{width:64px;height:64px}.app-entry__icon-link{align-self:start;display:block}.prose .app-entry__name{margin:0 0 var(--space-1)}.app-entry__name a{text-decoration:none}.app-entry__name a:hover{text-decoration:underline;text-decoration-color:var(--c-accent)}.prose .app-entry__status{font-family:var(--font-sans);color:var(--c-subtext1);margin-bottom:var(--space-3);font-size:.9375rem}.prose .app-entry__tagline{font-weight:700}.app-entry__links{font-family:var(--font-sans)}.app-list li{margin:var(--space-4) 0}.app-list__link{gap:var(--space-4);align-items:center;text-decoration:none;display:inline-flex}.app-list__link:hover .app-list__name{text-decoration:underline;text-decoration-color:var(--c-accent);text-underline-offset:var(--accent-ul-offset)}.app-list__icon{flex:none;width:40px;height:40px}.app-list__name{font-family:var(--font-sans);font-size:1.0625rem;font-weight:600}.prose .app-list__line{color:var(--c-subtext1);margin:calc(-1 * var(--space-2)) 0 0 calc(40px + var(--space-4))}.prose .app-list__line--shared{margin-left:0}.prose .app-list__line--lead{margin:0 0 var(--space-2)}.prose .article-date,.prose .article-meta{font-family:var(--font-sans);color:var(--c-text);margin:0 0 var(--space-2);font-size:.875rem}.prose .article-meta{margin-bottom:var(--space-5);color:var(--c-subtext1)}.article h1{margin-bottom:var(--space-3)}.article-banner{border-radius:var(--radius);width:100%;height:auto;margin:0 0 var(--space-6)}.article-list{list-style:none}.prose .article-list{padding-left:0}.article-list li{margin:0 0 var(--space-6)}.prose .article-list__title{margin:0 0 var(--space-2);font-size:1.5rem}.article-list__title a{text-decoration:none}.article-list__title a:hover{text-decoration:underline;text-decoration-color:var(--c-accent)}.prose section.contact{margin-bottom:var(--space-7)}.article-pills{gap:var(--space-2);margin:var(--space-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.prose .article-pills{padding-left:0}.prose .article-pills li{margin:0}.article .article-pills{margin:0 0 var(--space-5)}.article-pill{min-height:1.5rem;font-family:var(--font-sans);border:1.5px solid var(--c-blue);background:var(--mocha-blue);color:var(--mocha-mantle);cursor:pointer;border-radius:999px;align-items:center;padding:.2em .7em;font-size:.8125rem;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.article-pill:hover{text-underline-offset:.2em;text-decoration:underline}.article-pill[aria-pressed=true]{background:var(--c-text);border-color:var(--c-text);color:var(--c-body-bg)}.article-pill[aria-pressed=true]:before{content:"✓ "}.article-filter{font-family:var(--font-sans);margin:0 0 var(--space-6);position:relative}.article-filter__tags{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.article-filter__label{font-family:var(--font-sans);margin-right:var(--space-2);font-size:.9375rem;font-weight:600}.article-filter__search{margin:0 0 var(--space-4);position:relative}.article-filter__glyph{color:var(--c-text);pointer-events:none;position:absolute;top:50%;left:.7em;translate:0 -50%}.article-filter__search input{font:inherit;color:var(--c-text);background:var(--c-panel-bg);border:1px solid var(--c-overlay2);border-radius:8px;width:100%;padding:.55em .75em .55em 2.3em;font-size:1rem}@media (width>=72rem){.article-filter__search{top:0;left:calc(100% + var(--space-5));width:11.5rem;margin:0;position:absolute}}.prose .article-filter__count{font-family:var(--font-sans);color:var(--c-subtext1);margin:var(--space-3) 0 0;min-height:1.3em;font-size:.875rem}.prose .article-filter__none{font-family:var(--font-sans);font-size:1rem}
