:root{--color-bg: #fbfcff;--color-surface: #ffffff;--color-text: #151821;--color-muted: #636b7a;--color-border: #e3e6ed;--color-accent: #635bff;--color-accent-strong: #4f46e5;--radius-sm: .5rem;--radius-md: .875rem;--shadow-soft: 0 .75rem 2rem rgb(24 30 48 / 8%);color:var(--color-text);background:var(--color-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{background:var(--color-bg)}body{margin:0;min-width:20rem;background:var(--color-bg);color:var(--color-text);font-size:1rem;line-height:1.5}a{color:var(--color-accent-strong);text-decoration-thickness:.1em;text-underline-offset:.18em}a:hover{color:var(--color-accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:.2rem solid var(--color-accent);outline-offset:.2rem}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.12;letter-spacing:-.025em}h1{max-width:18ch;font-size:clamp(2rem,7vw,4rem)}.container{width:min(100% - 2rem,72rem);margin-inline:auto}.site-header{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.site-header__inner,.site-footer__inner{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding-block:1rem}.site-brand,.site-footer__brand{color:var(--color-text);font-weight:800;letter-spacing:-.035em;text-decoration:none}.primary-nav,.footer-nav{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin:0;padding:0;list-style:none}.primary-nav a,.footer-nav a{font-size:.875rem;font-weight:650;text-decoration:none}main{min-height:calc(100vh - 12rem)}.homepage-intro{padding-block:clamp(3rem,8vw,7rem)}.homepage-intro>p:last-child{max-width:42rem;color:var(--color-muted);font-size:1.125rem}.eyebrow{color:var(--color-accent-strong);font-size:.875rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface)}.site-footer__brand{margin:0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.625rem 1rem;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;font:inherit;font-weight:700;text-decoration:none}.button:hover{background:var(--color-accent-strong);color:#fff}.tool-grid,.article-grid{display:grid;gap:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:10;top:.75rem;left:.75rem;transform:translateY(-200%);padding:.625rem .875rem;border-radius:var(--radius-sm);background:var(--color-text);color:#fff;font-weight:700;text-decoration:none}.skip-link:focus{transform:translateY(0)}@media(min-width:48rem){.site-header__inner,.site-footer__inner{flex-direction:row;align-items:center;justify-content:space-between}.tool-grid,.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.tool-grid,.article-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-reduced-motion:no-preference){a,button{transition:color .12s ease,background-color .12s ease}}.homepage-hero{padding-block:clamp(3rem,8vw,6rem) clamp(2.5rem,6vw,4.5rem)}.homepage-hero__inner{max-width:58rem}.homepage-hero h1{margin-bottom:1rem}.homepage-hero__description{max-width:46rem;margin-bottom:1.5rem;color:var(--color-muted);font-size:clamp(1rem,2vw,1.125rem)}.homepage-search{max-width:46rem;padding:.875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-soft)}.homepage-search label{display:block;margin-bottom:.5rem;font-weight:750}.homepage-search__controls{display:grid;gap:.625rem}.homepage-search input{width:100%;min-width:0;min-height:2.75rem;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font:inherit}.homepage-hero__browse{display:inline-block;margin-top:1rem;font-weight:700}.homepage-section{padding-block:clamp(2.5rem,6vw,4.5rem)}.homepage-section--surface{border-block:1px solid var(--color-border);background:var(--color-surface)}.homepage-section__heading{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:.75rem 1.5rem;margin-bottom:1.5rem}.homepage-section__heading .eyebrow{margin-bottom:.375rem}.homepage-section__heading h2,.homepage-method h2{margin-bottom:0;font-size:clamp(1.625rem,4vw,2.25rem)}.category-grid{display:grid;gap:.875rem;margin:0;padding:0;list-style:none}.category-card,.featured-article,.article-card,.homepage-empty-state{display:block;height:100%;padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.category-card{color:var(--color-text);text-decoration:none}.category-card:hover{border-color:var(--color-accent);color:var(--color-text)}.category-card span{display:block;margin-bottom:.5rem;font-weight:800;letter-spacing:-.015em}.category-card small{display:block;color:var(--color-muted);font-size:.9375rem;line-height:1.45}.homepage-section--surface .article-card,.homepage-section--surface .homepage-empty-state{background:var(--color-bg)}.featured-article{max-width:48rem}.featured-article h3,.article-card h3,.homepage-empty-state h3{margin-bottom:.625rem;font-size:1.25rem}.featured-article>p:not(.eyebrow),.article-card>p:not(.eyebrow),.homepage-empty-state p,.homepage-method>.container>p:last-child{color:var(--color-muted)}.featured-article>a,.article-card>a{font-weight:700}.homepage-empty-state{max-width:42rem}.homepage-method{padding-bottom:clamp(3rem,8vw,6rem)}.homepage-method>.container>p:last-child{max-width:52rem;margin-top:1rem}@media(min-width:36rem){.homepage-search__controls{grid-template-columns:minmax(0,1fr) auto}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.site-search__results:not(:empty){margin-top:1rem}.site-search__result-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.site-search__result-list li{padding-top:.75rem;border-top:1px solid var(--color-border)}.site-search__result-list a{font-weight:750}.site-search__result-list p{margin:.25rem 0;color:var(--color-muted)}.site-search__result-list small{color:var(--color-muted)}main{overflow-wrap:anywhere}img{max-width:100%;height:auto}.site-brand{display:inline-flex;align-items:center;gap:.625rem}.site-brand img{flex:0 0 32px}.primary-nav a,.footer-nav a{display:inline-flex;align-items:center;min-height:2.75rem}.site-header__inner>*,.site-footer__inner>*{min-width:0}.table-scroll{max-width:100%;overflow-x:auto;margin-block:1.25rem;overscroll-behavior-inline:contain}.table-scroll table{width:100%;min-width:36rem;border-collapse:collapse;font-size:.9375rem}.table-scroll th,.table-scroll td{padding:.75rem;text-align:left;vertical-align:top;border:1px solid var(--color-border)}.table-scroll th{background:var(--color-bg)}.featured-image,.tool-screenshot{display:block;width:100%;height:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.article-figure,.tool-figure{max-width:48rem;margin:1.5rem 0 0}.article-figure figcaption,.tool-figure figcaption{margin-top:.625rem;font-size:.8125rem;color:var(--color-muted)}.article-card .featured-image,.featured-article .featured-image{margin-bottom:1rem}.utility-page{max-width:48rem;padding-block:3rem 4rem}.utility-page h1{max-width:22ch}.utility-page section{margin-top:1.5rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.utility-page h2{font-size:1.4rem}.table-scroll th,.table-scroll td{overflow-wrap:normal}.table-scroll th:first-child,.table-scroll td:first-child{min-width:10rem}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: oklch(16% .012 280);--color-surface: oklch(20% .014 280);--color-raised: oklch(25% .015 280);--color-text: oklch(95% .006 280);--color-muted: oklch(74% .018 280);--color-border: oklch(34% .018 280);--color-accent: oklch(77% .13 290);--color-accent-strong: oklch(83% .1 290);--color-on-accent: oklch(18% .035 290);--color-focus: oklch(85% .13 290);--color-error: oklch(80% .13 25);--color-success: oklch(82% .12 155);--font-display: "Space Grotesk Variable", sans-serif;--font-body: "Inter Variable", sans-serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--text-sm:.875rem;--text-body:1rem;--text-title:clamp(1.75rem,3.5vw,2.75rem);--radius-sm:.375rem;--radius-md:.625rem;--shadow-soft:none;--ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-short:.12s}html,body{overflow-x:clip;color-scheme:dark;font-family:var(--font-body)}body{line-height:1.65}html h1,html h2,html h3,html .site-brand{font-family:var(--font-display);font-style:normal;overflow-wrap:anywhere;min-width:0}html h1{font-size:var(--text-title);max-width:28ch;letter-spacing:-.04em;line-height:1.15}html h2{font-size:1.65rem;letter-spacing:-.035em}html a,html button{transition:none}html a{color:var(--color-accent)}html a:hover{color:var(--color-accent-strong)}html :focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}html .container{width:min(100% - 2rem,76rem)}html .site-header{background:var(--color-bg)}html .site-header__inner{gap:var(--space-md);padding-block:var(--space-lg)}html .site-brand{font-size:1.2rem;color:var(--color-text)}html .primary-nav a,html .footer-nav a{white-space:nowrap;font-size:var(--text-sm);color:var(--color-muted)}html .primary-nav a:hover,html .primary-nav a[aria-current=page]{color:var(--color-text)}html .button{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent);white-space:nowrap}html .button:hover{background:var(--color-accent-strong);color:var(--color-on-accent)}html button:active,html .button:active{transform:translateY(1px)}html button:disabled{opacity:.5;cursor:not-allowed}html [aria-busy=true]{opacity:.75}html [aria-invalid=true]{border-color:var(--color-error)}html [data-state=success]{border-color:var(--color-success)}html .eyebrow{text-transform:none;letter-spacing:0;font-size:var(--text-sm);font-weight:500;color:var(--color-muted)}.discovery-top{padding-block:var(--space-2xl);border-bottom:1px solid var(--color-border)}.discovery-top h1{margin-bottom:var(--space-md)}.discovery-top p{color:var(--color-muted);max-width:60ch}.discovery-count{font-size:var(--text-sm);margin-bottom:var(--space-sm)}html .homepage-search{max-width:none;padding:0;background:none;border:0;box-shadow:none}html .homepage-search input{background:var(--color-surface)}html .homepage-search label{font-size:var(--text-sm);color:var(--color-muted);font-weight:500}.discovery-layout{display:grid;gap:var(--space-2xl);padding-block:var(--space-2xl)}.discovery-categories h2{font-size:1rem;margin-bottom:var(--space-md)}.discovery-categories ul{padding:0;margin:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.discovery-categories a{display:block;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-muted);text-decoration:none;font-size:var(--text-sm)}.discovery-categories a:hover{background:var(--color-surface);color:var(--color-text)}.discovery-heading{display:flex;justify-content:space-between;gap:var(--space-md);align-items:baseline;margin-bottom:var(--space-lg)}.discovery-heading h2{margin:0}.discovery-heading>a{white-space:nowrap;font-size:var(--text-sm)}.discovery-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.discovery-tool{min-width:0;padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.discovery-tool figure{margin:0 0 var(--space-md)}.discovery-tool img{display:block;width:100%;aspect-ratio:8/5;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.discovery-tool h3{margin-bottom:var(--space-sm);font-size:1.25rem}.discovery-tool h3 a{text-decoration:none;color:var(--color-text)}.discovery-tool p{color:var(--color-muted);font-size:var(--text-sm);margin-bottom:var(--space-sm)}.discovery-tool .tool-kind{color:var(--color-accent);font-size:.75rem}.reading-band{border-top:1px solid var(--color-border);padding-block:var(--space-2xl)}.reading-layout{display:grid;gap:var(--space-2xl)}.reading-list{list-style:none;padding:0;margin:0}.reading-list li{padding-block:var(--space-lg);border-bottom:1px solid var(--color-border)}.reading-list h3{font-size:1.15rem;margin-bottom:var(--space-sm)}.reading-list h3 a{color:var(--color-text);text-decoration:none}.reading-list p{color:var(--color-muted);font-size:var(--text-sm);margin:0}.method-note{padding-block:var(--space-xl);color:var(--color-muted);font-size:var(--text-sm);border-top:1px solid var(--color-border)}html .site-footer{background:var(--color-bg);padding-block:var(--space-lg)}html .site-footer__inner{align-items:flex-start}html .site-footer__brand{color:var(--color-text)}.footer-description{color:var(--color-muted);font-size:var(--text-sm);max-width:26ch}html .footer-nav{gap:var(--space-sm) var(--space-lg)}html .directory-search{padding-block:var(--space-2xl)}html .directory-search__controls{border-radius:var(--radius-sm)}html .tool-grid{grid-template-columns:minmax(0,1fr)}html .tool-card{border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:none;box-shadow:none;padding:var(--space-lg) 0}html .tool-card__mark{background:var(--color-raised);color:var(--color-muted);border-radius:var(--radius-sm);font-family:var(--font-display)}html .tool-card__category{color:var(--color-muted);font-size:.75rem;font-weight:400}html .tool-card h2{font-size:1.25rem}html .tool-card__best-for{font-size:var(--text-sm)}html .article,html .tool-detail{max-width:64rem}html .article__hero,html .tool-detail__hero{padding-block:var(--space-xl);max-width:50rem}html .article h1{max-width:30ch}html .article section,html .tool-detail section,html .utility-page section{border:0;border-top:1px solid var(--color-border);padding:var(--space-xl) 0 0;border-radius:0;background:none;box-shadow:none;max-width:48rem}html .article__body{line-height:1.8}html .article__body h2{margin-top:var(--space-2xl)}html .article-figure{max-width:32rem;margin-top:0}html .article-figure figcaption{font-size:.75rem}html .article__dates time{display:inline-block;margin-right:var(--space-md)}html .tool-figure{max-width:48rem;margin-top:0}.article-toc{max-width:48rem;margin-top:var(--space-xl);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.article-toc summary{cursor:pointer;font-weight:600}.article-toc ul{padding-left:var(--space-lg);margin-bottom:0}html .breadcrumbs{font-size:.75rem}html .breadcrumbs a{white-space:nowrap}html .table-scroll{background:var(--color-surface)}html .table-scroll th{background:var(--color-raised)}html .utility-page{padding-top:var(--space-2xl)}html .skip-link{background:var(--color-accent);color:var(--color-on-accent)}@media(min-width:40rem){.discovery-grid,html .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.discovery-top .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);align-items:center;gap:var(--space-3xl)}.discovery-layout{grid-template-columns:13rem minmax(0,1fr)}.discovery-categories ul{display:grid}.discovery-categories a{padding:var(--space-sm) 0;border:0}.reading-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl)}html .footer-nav{max-width:40rem}}@media(max-width:39.99rem){.discovery-heading{flex-direction:column;gap:var(--space-sm)}html .primary-nav{gap:var(--space-sm) var(--space-md)}.discovery-categories a{font-size:.75rem;padding:var(--space-sm)}}@media(prefers-reduced-motion:reduce){html *,html *:before,html *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
