.app-shell--blog{max-width:100vw;min-height:100dvh;color:hsl(var(--foreground));background:hsl(var(--background));font-feature-settings:normal;font-variation-settings:normal;scroll-behavior:smooth;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:Mulish,sans-serif;overflow-x:hidden}.app-main--public-blog{width:100%;min-height:calc(100dvh - 20rem);margin:0;padding:0}.blog-shell__header,.blog-shell__footer{--blog-shell-bg:hsl(var(--background) / .95);--blog-shell-ink:hsl(var(--foreground));--blog-shell-muted:hsl(var(--muted-foreground));--blog-shell-line:hsl(var(--border) / .4);--blog-shell-accent:hsl(var(--accent));color:var(--blog-shell-ink);background:hsl(var(--background))}.blog-shell__header{z-index:50;border-bottom:1px solid var(--blog-shell-line);padding-top:var(--safe-area-inset-top);background:var(--blog-shell-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0}.blog-shell__header-inner{width:min(100%,80rem);height:72px;padding-inline:calc(1.5rem + var(--safe-area-inset-left)) calc(1.5rem + var(--safe-area-inset-right));justify-content:space-between;align-items:center;gap:1rem;margin-inline:auto;display:flex}.blog-shell__brand{color:var(--blog-shell-ink);align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.blog-shell__brand-icon{box-shadow:0 10px 15px -3px hsl(var(--accent) / .2);border-radius:.5rem}.blog-shell__brand-text{color:var(--blog-shell-ink);font-family:var(--font-serif);font-size:1.25rem;font-weight:var(--font-weight-bold);letter-spacing:0;line-height:1.2}.blog-shell__brand-text span{color:var(--blog-shell-accent);font-style:italic}.blog-shell__nav,.blog-shell__actions{align-items:center;display:flex}.blog-shell__nav{gap:2rem}.blog-shell__actions{gap:1rem}.blog-shell__nav a,.blog-shell__login,.blog-shell__mobile-panel a{color:var(--blog-shell-muted);font-size:.75rem;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase;transition:color var(--duration-fast) var(--ease-standard);text-decoration:none}.blog-shell__nav a:hover,.blog-shell__nav a:focus-visible,.blog-shell__nav a[aria-current=page],.blog-shell__login:hover,.blog-shell__login:focus-visible,.blog-shell__mobile-panel a:hover,.blog-shell__mobile-panel a:focus-visible{color:var(--blog-shell-ink)}.blog-shell__language{display:block}.blog-shell__language .public-header__language-trigger{min-height:0;color:var(--blog-shell-muted);background:0 0;border:0;border-radius:.375rem;padding:.375rem .5rem}.blog-shell__language .public-header__language-trigger:hover,.blog-shell__language .public-header__language-trigger:focus-visible{color:var(--blog-shell-ink)}.blog-shell__cta{min-height:0;color:hsl(var(--background));background:hsl(var(--foreground));font-size:.75rem;font-weight:var(--font-weight-bold);letter-spacing:.05em;text-transform:uppercase;transition:background-color var(--duration-fast) var(--ease-standard);border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem 1rem;text-decoration:none;display:inline-flex}.blog-shell__cta:hover,.blog-shell__cta:focus-visible{color:hsl(var(--background));background:hsl(var(--foreground) / .9)}.blog-shell__action-divider{background:var(--blog-shell-line);width:1px;height:1rem}.blog-shell__theme-toggle,.blog-shell__menu-button{min-height:0;color:var(--blog-shell-muted);transition:color var(--duration-fast) var(--ease-standard);background:0 0;border:0;border-radius:.375rem;justify-content:center;align-items:center;padding:.375rem;display:inline-flex}.blog-shell__theme-toggle:hover,.blog-shell__theme-toggle:focus-visible,.blog-shell__menu-button:hover,.blog-shell__menu-button:focus-visible{color:var(--blog-shell-ink)}.blog-shell__menu-button{color:var(--blog-shell-ink);display:none}.blog-shell__mobile-controls{align-items:center;gap:.5rem;display:none}.blog-shell__mobile-panel{z-index:50;border-bottom:1px solid var(--blog-shell-line);width:100%;padding:1.5rem calc(1.5rem + var(--safe-area-inset-right)) 1.5rem calc(1.5rem + var(--safe-area-inset-left));background:hsl(var(--background));animation:blog-mobile-panel-in var(--duration-fast) var(--ease-standard);flex-direction:column;gap:1rem;display:none;position:absolute;top:64px;left:0}.blog-shell__mobile-panel nav{flex-direction:column;gap:1rem;display:flex}.blog-shell__mobile-panel a{color:var(--blog-shell-ink);text-align:left;padding-block:.5rem}.blog-shell__mobile-language{padding-top:.5rem}.blog-shell__mobile-language .public-header__language{width:fit-content}.blog-shell__mobile-language .public-header__language-trigger{width:auto;color:var(--blog-shell-muted);background:0 0;border:0;border-radius:.375rem;justify-content:flex-start;padding:.5rem .75rem}.blog-shell__mobile-language .public-header__language-trigger:hover,.blog-shell__mobile-language .public-header__language-trigger:focus-visible{color:var(--blog-shell-ink)}.blog-shell__mobile-actions{border-top:1px solid var(--blog-shell-line);flex-direction:column;gap:.75rem;margin-top:1rem;padding-top:1rem;display:flex}.blog-shell__mobile-actions a{text-align:center;width:100%;padding-block:.75rem}.blog-shell__mobile-actions a:not(.blog-shell__cta){color:var(--blog-shell-muted)}.blog-shell__mobile-actions a:not(.blog-shell__cta):hover,.blog-shell__mobile-actions a:not(.blog-shell__cta):focus-visible{color:var(--blog-shell-ink)}.blog-shell__mobile-actions .blog-shell__cta{border-radius:.375rem;width:100%;padding:.75rem 1rem}@keyframes blog-mobile-panel-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.blog-shell__footer{border-top:1px solid var(--blog-shell-line);padding-block:4rem}.blog-shell__footer-inner{width:min(100%,100rem);padding-inline:calc(1rem + var(--safe-area-inset-left)) calc(1rem + var(--safe-area-inset-right));margin-inline:auto}.blog-shell__footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem 2rem;margin-bottom:6rem;display:grid}.blog-shell__footer-brand{flex-direction:column;grid-column:span 2;display:flex}.blog-shell__footer-brand p{max-width:24rem;color:var(--blog-shell-muted);font-size:.875rem;line-height:var(--line-height-relaxed);margin:1.5rem 0 2rem}.blog-shell__socials{flex-wrap:wrap;gap:1rem;display:flex}.blog-shell__socials a{border:1px solid var(--blog-shell-line);width:2.5rem;height:2.5rem;color:var(--blog-shell-muted);transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.blog-shell__socials a:hover,.blog-shell__socials a:focus-visible{color:var(--blog-shell-ink);background:hsl(var(--secondary) / .2)}.blog-shell__footer-column h2{border-bottom:1px solid var(--blog-shell-line);color:hsl(var(--muted-foreground) / .6);font-family:var(--font-mono);font-size:.625rem;font-weight:var(--font-weight-regular);letter-spacing:.12em;text-transform:uppercase;margin:0 0 1.5rem;padding-bottom:1rem}.blog-shell__footer-column ul{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.blog-shell__footer-column a{color:hsl(var(--foreground) / .7);font-size:.75rem;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase;transition:color var(--duration-fast) var(--ease-standard);text-decoration:none}.blog-shell__footer-column a:hover,.blog-shell__footer-column a:focus-visible{color:var(--blog-shell-ink)}.blog-shell__footer-bottom{border-top:1px solid var(--blog-shell-line);flex-direction:column;justify-content:space-between;align-items:center;gap:1rem;padding-top:2rem;display:flex}.blog-shell__footer-bottom p{color:hsl(var(--muted-foreground) / .6);font-family:var(--font-mono);letter-spacing:.12em;text-align:center;text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;margin:0;font-size:.625rem;display:flex}.blog-shell__footer-bottom p span:not(:last-child):after{content:"|";margin-left:1rem}.blog-shell__badges{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.blog-shell__badges a{align-items:center;display:inline-flex}.blog-shell__badges img{max-width:100%;height:auto;display:block}.blog-shell__badge-dark{display:none}.dark .blog-shell__badge-dark{display:inline-flex}.dark .blog-shell__badge-light{display:none}.blog-page{--blog-ink:hsl(var(--foreground));--blog-muted:hsl(var(--muted-foreground));--blog-paper:hsl(var(--card));--blog-soft:hsl(var(--muted) / .5);--blog-line:hsl(var(--border));--blog-accent:hsl(var(--accent));width:100%;color:var(--blog-ink);background:hsl(var(--background));font-family:var(--font-sans);padding-bottom:4rem}.blog-page h1,.blog-page h2,.blog-page h3,.blog-page p{margin:0}.blog-hero{background:linear-gradient(180deg, hsl(var(--secondary) / .5), hsl(var(--background)));padding-block:3rem 4rem}.blog-hero>div,.blog-featured,.blog-latest,.blog-page--missing{width:min(100%,56rem);padding-inline:calc(1rem + var(--safe-area-inset-left)) calc(1rem + var(--safe-area-inset-right));margin-inline:auto}.blog-hero h1{font-family:var(--font-serif);font-feature-settings:var(--font-feature-serif);font-size:2.25rem;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:0}.blog-hero p{max-width:42rem;color:var(--blog-muted);font-size:1.125rem;line-height:var(--line-height-relaxed);margin-top:1rem}.blog-hero a{color:hsl(var(--accent-foreground));background:var(--blog-accent);font-size:.875rem;font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm);transition:background-color var(--duration-fast) var(--ease-standard);border-radius:.75rem;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.625rem 1.25rem;text-decoration:none;display:inline-flex}.blog-hero a:hover,.blog-hero a:focus-visible{background:hsl(var(--accent) / .9)}.blog-featured{margin-top:-2rem}.blog-latest{margin-top:2.5rem}.blog-latest__heading{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.blog-latest__heading h2{font-family:var(--font-serif);font-size:1.125rem;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);white-space:nowrap;flex:none}.blog-latest__heading span{background:var(--blog-line);flex:1;height:1px}.blog-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1rem;display:grid}.blog-card{border:1px solid var(--blog-line);height:100%;color:var(--blog-ink);background:var(--blog-paper);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);border-radius:.75rem;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.blog-card:hover,.blog-card:focus-visible{border-color:hsl(var(--accent) / .4);box-shadow:var(--shadow-lg);transform:translateY(-.125rem)}.blog-card--featured{box-shadow:var(--shadow-sm);border-radius:1rem;display:block}.blog-card--featured:hover,.blog-card--featured:focus-visible{border-color:hsl(var(--accent) / .5);transform:none}.blog-card__media{aspect-ratio:16/9;background:linear-gradient(135deg, hsl(var(--accent) / .1), hsl(var(--secondary)), hsl(var(--accent) / .05));flex:none;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.blog-card__media>span{max-width:80%;color:hsl(var(--muted-foreground) / .65);font-family:var(--font-serif);font-size:.875rem;font-weight:var(--font-weight-medium);text-align:center}.blog-card__media>img,.blog-article__hero-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.blog-card__media>img{transition:transform var(--duration-base) var(--ease-standard)}.blog-card:hover .blog-card__media>img,.blog-card:focus-visible .blog-card__media>img{transform:scale(1.05)}.blog-card__content{flex-direction:column;flex:1;min-height:0;padding:1.25rem;display:flex}.blog-card--featured .blog-card__content{padding:1.5rem}.blog-card__tags{flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem;display:flex}.blog-card--featured .blog-card__tags{margin-bottom:.75rem}.blog-card__tags span{color:var(--blog-accent);background:hsl(var(--accent) / .1);font-size:.625rem;font-weight:var(--font-weight-medium);border-radius:999px;padding:.125rem .5rem}.blog-card h2,.blog-card h3{font-family:var(--font-serif);font-feature-settings:var(--font-feature-serif);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug);transition:color var(--duration-fast) var(--ease-standard)}.blog-card h2{margin-bottom:.5rem;font-size:1.25rem}.blog-card h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.375rem;font-size:1rem;display:-webkit-box;overflow:hidden}.blog-card:hover h2,.blog-card:hover h3,.blog-card:focus-visible h2,.blog-card:focus-visible h3{color:var(--blog-accent)}.blog-card p{color:var(--blog-muted);font-size:.875rem;line-height:var(--line-height-relaxed);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.75rem;display:-webkit-box;overflow:hidden}.blog-card--featured p{margin-bottom:1rem;font-size:1rem}.blog-card__footer{color:var(--blog-muted);align-items:center;margin-top:auto;display:flex}.blog-card__footer span,.blog-card__footer strong{align-items:center;gap:var(--space-1);display:inline-flex}.blog-card__footer strong{color:var(--blog-accent);font-weight:var(--font-weight-medium);transition:gap var(--duration-fast) var(--ease-standard), opacity var(--duration-fast) var(--ease-standard);margin-left:auto}.blog-card__footer--featured{flex-wrap:wrap;justify-content:space-between;gap:.75rem;font-size:.875rem}.blog-card__footer--featured strong{gap:.25rem;font-size:.875rem}.blog-card:hover .blog-card__footer--featured strong,.blog-card:focus-visible .blog-card__footer--featured strong{gap:.5rem}.blog-card__meta{align-items:center;gap:1rem;display:flex}.blog-card__footer--compact{gap:.75rem;font-size:.75rem}.blog-card__separator{color:var(--blog-line)}.blog-card__read-time{background:hsl(var(--secondary));color:var(--blog-muted);border-radius:.25rem;padding:.125rem .375rem;font-size:.625rem}.blog-card__footer--compact strong{opacity:0;gap:.25rem;font-size:.75rem}.blog-card:hover .blog-card__footer--compact strong,.blog-card:focus-visible .blog-card__footer--compact strong{opacity:1}.blog-empty{border:1px solid var(--blog-line);padding:var(--space-6);background:var(--blog-paper);border-radius:.75rem;grid-column:1/-1}.blog-empty p{color:var(--blog-muted)}.blog-empty h2{margin-block:var(--space-2);font-family:var(--font-serif);font-size:var(--font-size-h3)}.blog-eyebrow{margin:0 0 var(--space-3);color:var(--blog-accent);font-size:var(--font-size-caption);font-weight:var(--font-weight-extrabold);letter-spacing:0;text-transform:uppercase}.blog-post{width:100%;padding-bottom:4rem}.blog-post__header{background:linear-gradient(180deg, hsl(var(--secondary) / .5), hsl(var(--background)));padding-block:2rem 3rem}.blog-post__header-inner,.blog-post__body-shell,.blog-post__cta-shell,.blog-post__product-hunt,.blog-post__bottom-nav{width:min(100%,48rem);padding-inline:calc(1rem + var(--safe-area-inset-left)) calc(1rem + var(--safe-area-inset-right));margin-inline:auto}.blog-post__back-link,.blog-page--missing a{color:var(--blog-muted);font-size:.875rem;font-weight:var(--font-weight-medium);transition:color var(--duration-fast) var(--ease-standard);align-items:center;gap:.375rem;text-decoration:none;display:inline-flex}.blog-post__back-link{margin-bottom:1.5rem}.blog-post__back-link:hover,.blog-post__back-link:focus-visible,.blog-page--missing a:hover,.blog-page--missing a:focus-visible{color:var(--blog-ink)}.blog-post__title,.blog-page--missing h1{color:var(--blog-ink);font-family:var(--font-serif);font-feature-settings:var(--font-feature-serif);font-size:1.875rem;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:0;margin-bottom:1rem}.blog-post__description,.blog-page--missing p{max-width:42rem;color:var(--blog-muted);font-size:1.125rem;line-height:var(--line-height-relaxed);margin-bottom:1.5rem}.blog-post__sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.blog-post__meta,.blog-post__meta span{align-items:center;display:flex}.blog-post__meta{color:var(--blog-muted);flex-wrap:wrap;gap:1rem;font-size:.875rem}.blog-post__meta span{gap:.375rem}.blog-post__meta svg{color:hsl(var(--muted-foreground) / .7)}.blog-post__tags{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.blog-post__tags span{border:1px solid hsl(var(--accent) / .2);color:var(--blog-accent);background:hsl(var(--accent) / .1);font-size:.75rem;font-weight:var(--font-weight-medium);border-radius:999px;padding:.25rem .625rem}.blog-post__hero{width:min(100%,56rem);padding-inline:calc(1rem + var(--safe-area-inset-left)) calc(1rem + var(--safe-area-inset-right));margin:-1.5rem auto 0}.blog-post__hero img{border:1px solid var(--blog-line);width:100%;box-shadow:var(--shadow-lg);border-radius:1rem;display:block}.blog-post__body-shell{margin-top:2.5rem}.blog-raw-markdown{max-width:none;color:var(--blog-ink);font-size:1.125rem;line-height:var(--line-height-relaxed);word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.blog-raw-markdown [data-markdown-table-scroll=true],.markdown-table-scroll{border-radius:calc(var(--radius) - 2px);overscroll-behavior:contain;scrollbar-width:thin;width:100%;max-width:100%;max-height:min(70dvh,520px);margin-block:.75rem;overflow:auto}.blog-raw-markdown table,.markdown-table{border-collapse:collapse;border-color:inherit;table-layout:auto;text-align:left;text-indent:0;overflow-wrap:normal;scrollbar-width:none;word-break:normal;width:max-content;min-width:100%;max-width:none;margin:0;font-size:.875em;line-height:1.5;display:table;overflow-x:auto}.blog-raw-markdown th{overflow-wrap:normal;vertical-align:top;white-space:nowrap;word-break:normal}.blog-raw-markdown td{overflow-wrap:normal;vertical-align:top;white-space:normal;word-break:normal;min-width:12rem;max-width:26rem}.blog-article__body{max-width:none;color:var(--blog-ink);font-size:1.125rem;line-height:var(--line-height-relaxed)}.blog-raw-markdown h1,.blog-raw-markdown h2,.blog-raw-markdown h3,.blog-article__body h1,.blog-article__body h2,.blog-article__body h3{font-family:var(--font-serif);font-feature-settings:var(--font-feature-serif);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:0}.blog-raw-markdown h1,.blog-article__body h1{margin:3rem 0 1rem;font-size:1.875rem}.blog-raw-markdown h2,.blog-article__body h2{color:var(--blog-accent);margin:2.5rem 0 1rem;font-size:1.5rem}.blog-raw-markdown h3,.blog-article__body h3{margin:2rem 0 .75rem;font-size:1.25rem}.blog-raw-markdown p,.blog-raw-markdown ul,.blog-raw-markdown ol,.blog-raw-markdown blockquote,.blog-raw-markdown figure,.blog-raw-markdown hr,.blog-article__body p,.blog-article__body ul,.blog-article__body ol,.blog-article__body blockquote,.blog-article__body figure,.blog-article__body hr,.blog-code-block,.blog-article__body [data-markdown-table-scroll=true]{margin:1rem 0}.blog-raw-markdown p,.blog-article__body p{color:hsl(var(--foreground) / .9)}.blog-raw-markdown ul,.blog-raw-markdown ol,.blog-article__body ul,.blog-article__body ol{padding-left:1.625rem}.blog-raw-markdown li,.blog-article__body li{color:hsl(var(--foreground) / .9);margin:.35rem 0}.blog-raw-markdown li::marker{color:var(--blog-accent)}.blog-article__body li::marker{color:var(--blog-accent)}.blog-raw-markdown blockquote,.blog-article__body blockquote{border-left:4px solid var(--blog-accent);color:hsl(var(--foreground) / .8);background:hsl(var(--secondary) / .3);border-radius:0 .5rem .5rem 0;padding:.25rem 1rem}.blog-raw-markdown blockquote p,.blog-article__body blockquote p{color:inherit}.blog-raw-markdown a,.blog-article__body a{color:var(--blog-accent);font-weight:var(--font-weight-medium);text-decoration:none}.blog-raw-markdown a:hover,.blog-raw-markdown a:focus-visible,.blog-article__body a:hover,.blog-article__body a:focus-visible{text-decoration:underline}.blog-raw-markdown figure,.blog-article__body figure{gap:.5rem;display:grid}.blog-raw-markdown figure a,.blog-article__body figure a{display:block}.blog-raw-markdown img,.blog-article__body img{border:1px solid var(--blog-line);border-radius:.75rem;max-width:100%;height:auto;display:block}.blog-raw-markdown figcaption,.blog-article__body figcaption{color:var(--blog-muted);text-align:center;font-size:.75rem}.blog-raw-markdown hr,.blog-article__body hr{border:0;border-top:1px solid var(--blog-line)}.blog-code-block{border:1px solid var(--blog-line);background:hsl(var(--secondary) / .5);border-radius:.75rem;overflow:hidden}.dark .blog-code-block{background:#18181b}.blog-code-block__header{border-bottom:1px solid var(--blog-line);background:hsl(var(--secondary) / .7);justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.dark .blog-code-block__header{background:#27272a80}.blog-code-block__label,.blog-code-block__actions,.blog-code-block__copy{align-items:center;display:inline-flex}.blog-code-block__label{color:var(--blog-muted);font-size:.75rem;font-weight:var(--font-weight-medium);gap:.5rem}.blog-code-block__actions{gap:.25rem}.blog-code-block__copy{color:var(--blog-muted);transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);background:0 0;border:0;border-radius:.375rem;gap:.375rem;padding:.25rem .5rem;font-size:.75rem}.blog-code-block__copy:hover,.blog-code-block__copy:focus-visible{color:var(--blog-ink);background:hsl(var(--secondary))}.dark .blog-code-block__copy:hover,.dark .blog-code-block__copy:focus-visible{background:#3f3f46}.blog-code-block__scroll{overflow-x:auto}.blog-code-block__pre{color:hsl(var(--foreground) / .85);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:var(--line-height-relaxed);background:0 0;margin:0;padding:1rem}.dark .blog-code-block__pre{color:#abb2bf;text-shadow:0 1px #0000004d}.blog-code-block__line{color:inherit;text-shadow:inherit}.blog-code-block__token{color:inherit;white-space:pre;background:0 0;padding:0;display:inline}.blog-raw-markdown code,.blog-article__body code{color:var(--blog-ink);background:hsl(var(--secondary));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;font-weight:var(--font-weight-regular);border-radius:.25rem;padding:.125rem .375rem}.blog-raw-markdown table,.blog-article__body table{border-collapse:collapse;table-layout:auto;text-align:left;overflow-wrap:normal;word-break:normal;background:0 0;width:max-content;min-width:100%;max-width:none;margin:0;display:table}.blog-raw-markdown th,.blog-raw-markdown td,.blog-article__body th,.blog-article__body td{border-bottom:1px solid var(--blog-line);overflow-wrap:normal;text-align:start;vertical-align:top;word-break:normal;padding:.625rem .75rem}.blog-raw-markdown th,.blog-article__body th{color:var(--blog-ink);font-weight:var(--font-weight-bold);white-space:nowrap}.blog-raw-markdown td,.blog-article__body td{white-space:normal;min-width:12rem;max-width:26rem}.blog-post__cta-shell{margin-top:3rem}.blog-post__cta{border:1px solid var(--blog-line);background:linear-gradient(135deg, hsl(var(--accent) / .05), hsl(var(--secondary) / .5), hsl(var(--accent) / .05));border-radius:1rem;padding:1.5rem}.blog-post__cta-inner{flex-direction:column;gap:1rem;display:flex}.blog-post__cta h2{font-family:var(--font-serif);font-size:1.125rem;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:.25rem}.blog-post__cta p{color:var(--blog-muted);font-size:.875rem}.blog-post__cta-link{color:hsl(var(--accent-foreground));background:var(--blog-accent);font-size:.875rem;font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm);transition:background-color var(--duration-fast) var(--ease-standard);border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;margin-top:0;padding:.625rem 1.25rem;text-decoration:none;display:inline-flex}.blog-post__cta-link:hover,.blog-post__cta-link:focus-visible{background:hsl(var(--accent) / .9)}.blog-post__product-hunt{justify-content:center;margin-top:2.5rem;display:flex}.blog-post__product-hunt img{width:250px;height:54px;display:block}.blog-post__product-hunt .blog-post__ph-dark,.dark .blog-post__product-hunt .blog-post__ph-light{display:none!important}.dark .blog-post__product-hunt .blog-post__ph-dark{display:block!important}.blog-post__bottom-nav{margin-top:2rem}.blog-page--missing{border:1px solid var(--blog-line);background:var(--blog-paper);margin-top:clamp(2rem,5vw,3.5rem);padding:clamp(1rem,4vw,1.5rem);display:grid}@media (width>=640px){.blog-hero{padding-top:4rem;padding-bottom:5rem}.blog-hero h1{font-size:3rem}.blog-hero p{font-size:1.25rem}.blog-featured,.blog-latest,.blog-hero>div{padding-inline:calc(1.5rem + var(--safe-area-inset-left)) calc(1.5rem + var(--safe-area-inset-right))}.blog-post__header{padding-block:3rem 4rem}.blog-post__header-inner,.blog-post__body-shell,.blog-post__cta-shell,.blog-post__product-hunt,.blog-post__bottom-nav,.blog-post__hero{padding-inline:calc(1.5rem + var(--safe-area-inset-left)) calc(1.5rem + var(--safe-area-inset-right))}.blog-post__title{font-size:2.25rem}.blog-post__description{font-size:1.25rem}.blog-post__body-shell{margin-top:3rem}.blog-post__cta-shell{margin-top:4rem}.blog-post__cta{padding:2rem}.blog-post__cta-inner{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;display:flex}.blog-post__cta-link{flex:none;margin-top:0}.blog-latest{margin-top:3rem}.blog-list{gap:1.5rem}.blog-card--featured .blog-card__content{padding:2rem}.blog-card h2{font-size:1.5rem}}@media (width>=768px){.blog-shell__footer{padding-block:6rem}.blog-shell__footer-inner{padding-inline:calc(2.5rem + var(--safe-area-inset-left)) calc(2.5rem + var(--safe-area-inset-right))}.blog-shell__footer-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.blog-shell__footer-brand{grid-column:span 4}.blog-shell__footer-column{grid-column:span 2}.blog-shell__footer-bottom{flex-direction:row}.blog-shell__footer-bottom p{text-align:left;justify-content:flex-start}}@media (width>=1024px){.blog-hero h1{font-size:3.75rem}.blog-featured,.blog-latest,.blog-hero>div{padding-inline:calc(2rem + var(--safe-area-inset-left)) calc(2rem + var(--safe-area-inset-right))}.blog-post__title{font-size:3rem}.blog-post__header-inner,.blog-post__body-shell,.blog-post__cta-shell,.blog-post__product-hunt,.blog-post__bottom-nav,.blog-post__hero{padding-inline:calc(2rem + var(--safe-area-inset-left)) calc(2rem + var(--safe-area-inset-right))}}@media (width>=768px) and (width<=1023px){.blog-shell__header-inner{padding-inline:calc(1rem + var(--safe-area-inset-inline-start)) calc(1rem + var(--safe-area-inset-inline-end));gap:.75rem}.blog-shell__nav{gap:1rem}.blog-shell__actions{gap:.75rem}}@media (width<=767px){.blog-shell__nav,.blog-shell__actions{display:none}.blog-shell__mobile-controls,.blog-shell__menu-button{display:inline-flex}.blog-shell__mobile-panel{display:flex}.blog-shell__footer-bottom p span:not(:last-child):after{content:none;margin-left:0}}@media (width<=639px){.blog-list{grid-template-columns:1fr}}@media (width<=820px){.blog-article__meta{grid-template-columns:1fr}}@media (hover:none) and (pointer:coarse){.blog-card__footer--compact strong{opacity:1}.blog-shell__socials a{min-width:44px;min-height:44px}}
