/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--glare-a:0%}}}@layer theme{:root,:host{--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--spacing:.25rem;--tracking-tight:-.025em;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-20{top:calc(var(--spacing) * 20)}.isolate{isolation:isolate}.\!grid{display:grid!important}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.border-line{border-color:var(--border)}.bg-surface{background-color:var(--bg-raised)}.text-muted{color:var(--text-muted)}.lowercase{text-transform:lowercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--gray-0:oklch(100% 0 0);--gray-25:oklch(98.7% .003 250);--gray-50:oklch(97.2% .005 250);--gray-100:oklch(94.8% .007 250);--gray-200:oklch(91.5% .01 252);--gray-300:oklch(86% .014 254);--gray-400:oklch(72% .02 256);--gray-500:oklch(58% .024 257);--gray-600:oklch(47% .026 258);--gray-700:oklch(37% .026 260);--gray-800:oklch(28% .022 262);--gray-850:oklch(23.5% .02 263);--gray-900:oklch(19% .018 264);--gray-925:oklch(16.5% .016 264);--gray-950:oklch(14% .014 265);--gray-975:oklch(11.5% .012 265);--brand-50:oklch(97.2% .013 258);--brand-100:oklch(94.2% .028 258);--brand-200:oklch(89% .05 259);--brand-300:oklch(82% .08 260);--brand-400:oklch(73% .11 261);--brand-500:oklch(61% .135 262);--brand-600:oklch(50% .14 263);--brand-700:oklch(43% .125 264);--brand-800:oklch(36.5% .1 265);--brand-900:oklch(29% .075 266);--brand-950:oklch(20% .05 267);--green-50:oklch(97.5% .022 160);--green-300:oklch(84% .11 160);--green-500:oklch(66% .14 158);--green-800:oklch(40% .08 160);--amber-50:oklch(98% .025 88);--amber-100:oklch(95.5% .055 86);--amber-300:oklch(87% .13 82);--amber-500:oklch(77% .16 70);--amber-700:oklch(52% .12 58);--amber-900:oklch(30% .07 60);--blue-50:oklch(97.2% .018 215);--blue-300:oklch(82% .08 215);--blue-500:oklch(64% .11 218);--blue-700:oklch(47% .09 222);--blue-900:oklch(29% .05 225);--bg:var(--gray-25);--bg-subtle:var(--gray-50);--bg-raised:var(--gray-0);--bg-sunken:var(--gray-100);--border:var(--gray-200);--border-strong:var(--gray-300);--text:var(--gray-900);--text-muted:var(--gray-600);--text-faint:var(--gray-500);--accent:var(--brand-600);--accent-hover:var(--brand-700);--accent-contrast:#fff;--accent-subtle:var(--brand-50);--accent-soft:var(--brand-100);--accent-2:oklch(52% .09 225);--highlight:var(--amber-700);--highlight-subtle:var(--amber-50);--focus:var(--brand-600);--ring:var(--brand-500)}@supports (color:color-mix(in lab, red, red)){:root{--ring:color-mix(in oklch, var(--brand-500) 35%, transparent)}}:root{--btn-top:var(--brand-600);--btn-bottom:var(--brand-700);--btn-edge:var(--brand-800);--btn-shine:#ffffff38;--edge-top:var(--gray-200);--edge-bottom:var(--gray-300);--glare:var(--brand-500);--shadow-1:0 1px 2px #0f172a0d, 0 1px 1px #0f172a08;--shadow-2:0 1px 2px #0f172a0d, 0 6px 16px -4px #0f172a14;--shadow-3:0 2px 4px #0f172a0a, 0 18px 40px -12px #0f172a2e;--inner-light:inset 0 1px 0 #ffffffb3;--shadow:var(--shadow-1);--shadow-lift:var(--shadow-3);--grid-line:#0f172a0d;--header-image:url(/headers/chart-waves.webp);--header-filter:none;--header-opacity:1;--glow-1:var(--brand-400)}@supports (color:color-mix(in lab, red, red)){:root{--glow-1:color-mix(in oklch, var(--brand-400) 14%, transparent)}}:root{--glow-2:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){:root{--glow-2:color-mix(in oklch, var(--blue-500) 12%, transparent)}}:root{--header-bg:var(--gray-25)}@supports (color:color-mix(in lab, red, red)){:root{--header-bg:color-mix(in oklch, var(--gray-25) 78%, transparent)}}:root{--logo-bg:#fff;--logo-dark-bg:var(--gray-850);--free-bg:var(--green-50);--free-fg:var(--green-800);--free-dot:var(--green-500);--freemium-bg:var(--blue-50);--freemium-fg:var(--blue-700);--freemium-dot:var(--blue-500);--trial-bg:var(--amber-50);--trial-fg:var(--amber-700);--trial-dot:var(--amber-500);--paid-bg:var(--gray-100);--paid-fg:var(--gray-700);--paid-dot:var(--gray-500);--avatar-s:62%;--avatar-bg-l:92%;--avatar-fg-l:28%;--step--2:.6875rem;--step--1:.8125rem;--step-0:.9375rem;--step-1:clamp(1.0625rem, 1rem + .2vw, 1.125rem);--step-2:clamp(1.25rem, 1.15rem + .45vw, 1.5rem);--step-3:clamp(1.5rem, 1.3rem + .9vw, 2rem);--step-4:clamp(1.875rem, 1.5rem + 1.7vw, 2.75rem);--step-5:clamp(2.25rem, 1.6rem + 3vw, 3.75rem);--tracking-tight:-.035em;--tracking-display:-.045em;--tracking-caps:.08em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-full:999px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:linear(0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 85.9%, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.36s}@media (prefers-color-scheme:dark){:root{--bg:var(--gray-975);--bg-subtle:var(--gray-950);--bg-raised:var(--gray-925);--bg-sunken:oklch(10% .01 265);--border:oklch(25.5% .018 262);--border-strong:oklch(33% .02 260);--text:oklch(95.5% .005 250);--text-muted:oklch(74% .018 255);--text-faint:oklch(62% .02 256);--accent:var(--brand-400);--accent-hover:var(--brand-300);--accent-contrast:var(--brand-950);--accent-subtle:oklch(24% .04 262);--accent-soft:oklch(29% .055 262);--accent-2:oklch(80% .12 210);--highlight:var(--amber-300);--highlight-subtle:oklch(24% .04 70);--focus:var(--brand-400);--ring:var(--brand-400)}@supports (color:color-mix(in lab, red, red)){:root{--ring:color-mix(in oklch, var(--brand-400) 38%, transparent)}}:root{--btn-top:var(--brand-400);--btn-bottom:var(--brand-500);--btn-edge:var(--brand-600);--btn-shine:#ffffff59;--edge-top:oklch(32% .02 260);--edge-bottom:oklch(22.5% .016 262);--glare:var(--brand-400);--shadow-1:0 1px 2px #00000080;--shadow-2:0 1px 2px #00000080, 0 8px 20px -6px #0000008c;--shadow-3:0 2px 4px #00000073, 0 22px 48px -12px #000000b3;--inner-light:inset 0 1px 0 #ffffff0d;--grid-line:#ffffff0b;--header-filter:invert(1) hue-rotate(180deg);--header-opacity:.55;--glow-1:var(--brand-400)}@supports (color:color-mix(in lab, red, red)){:root{--glow-1:color-mix(in oklch, var(--brand-400) 16%, transparent)}}:root{--glow-2:var(--blue-500)}@supports (color:color-mix(in lab, red, red)){:root{--glow-2:color-mix(in oklch, var(--blue-500) 12%, transparent)}}:root{--header-bg:var(--gray-975)}@supports (color:color-mix(in lab, red, red)){:root{--header-bg:color-mix(in oklch, var(--gray-975) 74%, transparent)}}:root{--logo-dark-bg:var(--gray-850);--free-bg:oklch(25% .05 160);--free-fg:var(--green-300);--free-dot:var(--green-500);--freemium-bg:oklch(25% .05 252);--freemium-fg:var(--blue-300);--freemium-dot:var(--blue-500);--trial-bg:oklch(26% .045 70);--trial-fg:var(--amber-300);--trial-dot:var(--amber-500);--paid-bg:var(--gray-850);--paid-fg:oklch(80% .015 255);--paid-dot:var(--gray-500);--avatar-s:38%;--avatar-bg-l:22%;--avatar-fg-l:82%}}@property --glare-a{syntax:"<percentage>";inherits:false;initial-value:0%}.page-clip{overflow-x:clip}.wrap{max-width:76rem;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}@media (width>=1280px){.wrap:not(.wrap-narrow){max-width:100rem;padding-left:2rem;padding-right:2rem}}.wrap-narrow{max-width:62rem}main.wrap{padding-top:1.75rem;padding-bottom:5rem;position:relative}main.wrap:before{content:"";z-index:-1;background:var(--header-image) center 40% / cover no-repeat;width:100vw;height:24rem;filter:var(--header-filter);opacity:var(--header-opacity);pointer-events:none;position:absolute;top:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 50%,#0000);mask-image:linear-gradient(#000 50%,#0000)}.eyebrow{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent);align-items:center;gap:.5rem;margin:0 0 .6rem;font-weight:600;display:inline-flex}.eyebrow:before{content:"";opacity:.6;background:currentColor;width:1rem;height:1px}.eyebrow-hl{color:var(--highlight)}.section{margin-top:clamp(3.5rem,6vw,5.5rem)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem;display:flex}.section-head h2{font-size:var(--step-3);letter-spacing:var(--tracking-tight);margin:0;font-weight:700}.section-head p{color:var(--text-muted);max-width:60ch;margin:.35rem 0 0}.more-link{font-weight:600;font-size:var(--step-0);white-space:nowrap;align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}.more-link:after{content:"→";transition:transform var(--dur-2) var(--ease-out)}.more-link:hover:after{transform:translate(3px)}header.site{z-index:40;background:var(--header-bg);backdrop-filter:saturate(1.8)blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){header.site{animation:linear both header-lift scroll(root);animation-range:0 64px}}}@keyframes header-lift{0%{box-shadow:none;border-bottom-color:#0000}to{border-bottom-color:var(--border);box-shadow:0 8px 24px -16px #00000040}}.site-bar{align-items:center;gap:.5rem 1rem;min-height:4rem;display:flex}.brand{color:var(--text);letter-spacing:-.03em;white-space:nowrap;align-items:center;gap:.6rem;margin-right:.75rem;font-size:1.0625rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--text)}.brand svg{width:1.9rem;height:1.9rem;filter:drop-shadow(0 2px 6px var(--brand-500));flex:none}@supports (color:color-mix(in lab, red, red)){.brand svg{filter:drop-shadow(0 2px 6px color-mix(in oklch, var(--brand-500) 35%, transparent))}}.brand em{color:var(--accent);font-style:normal}.site-nav{align-items:center;gap:.15rem;display:flex}.nav-link,.browse>summary{border-radius:var(--r-full);min-height:2.25rem;font-size:var(--step-0);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:color var(--dur-1), background-color var(--dur-1);align-items:center;gap:.35rem;padding:0 .75rem;font-weight:500;text-decoration:none;display:inline-flex}.nav-link:hover,.browse>summary:hover{color:var(--text);background:var(--bg-subtle)}.nav-link[aria-current=page]{color:var(--text);background:var(--bg-sunken);box-shadow:inset 0 0 0 1px var(--border)}.browse>summary{-webkit-user-select:none;user-select:none;list-style:none}.browse>summary::-webkit-details-marker{display:none}.browse>summary svg{width:.9rem;height:.9rem;transition:transform var(--dur-2) var(--ease-out)}.browse[open]>summary{color:var(--text);background:var(--bg-subtle)}.browse[open]>summary svg{transform:rotate(180deg)}.browse-panel{background:var(--bg-raised);border-bottom:1px solid var(--border);box-shadow:var(--shadow-3);overscroll-behavior:contain;max-height:calc(100dvh - 4rem);position:absolute;top:100%;left:0;right:0;overflow-y:auto}@media (prefers-reduced-motion:no-preference){.browse[open] .browse-panel{animation:drop-in var(--dur-2) var(--ease-out)}}@keyframes drop-in{0%{opacity:0;transform:translateY(-6px)}}.browse-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.5rem 2rem;padding-top:1.5rem;padding-bottom:1.75rem;display:grid}.browse-grid h2{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-faint);margin:0 0 .5rem;font-weight:600}.browse-grid ul{gap:.1rem;margin:0;padding:0;list-style:none;display:grid}.browse-grid a{border-radius:var(--r-md);color:var(--text);font-size:var(--step-0);align-items:center;gap:.6rem;min-height:2.5rem;margin-left:-.55rem;padding:.45rem .55rem;font-weight:500;text-decoration:none;display:flex}.browse-grid a .cat-icon{color:var(--text-faint);transition:color var(--dur-1)}.browse-grid a:hover{background:var(--bg-subtle)}.browse-grid a:hover .cat-icon,.browse-grid a[aria-current=page] .cat-icon,.browse-grid a[aria-current=page]{color:var(--accent)}.browse-grid .count{font-family:var(--font-mono);font-size:var(--step--2);color:var(--text-faint);margin-left:auto;font-weight:500}.cat-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25rem;height:1.25rem}.header-search{flex:0 27rem;min-width:0;margin-left:auto;position:relative}.header-search input{border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-subtle);width:100%;min-height:2.5rem;color:var(--text);font:inherit;font-size:var(--step-0);transition:border-color var(--dur-1), box-shadow var(--dur-2), background-color var(--dur-1);padding:0 1rem 0 2.25rem}.header-search input::placeholder{color:var(--text-faint);opacity:1}.header-search input:hover{border-color:var(--border-strong)}.header-search input:focus{border-color:var(--accent);background:var(--bg-raised);box-shadow:0 0 0 3px var(--ring);outline:none}.header-search>svg{width:1rem;height:1rem;color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:.8rem;transform:translateY(-50%)}.btn.palette-btn[hidden]{display:none}.btn.palette-btn{border-radius:var(--r-full);min-height:2.5rem;color:var(--text-muted);gap:.6rem;margin-left:auto;padding:0 1rem 0 .9rem;font-weight:500}.palette-btn svg{width:1rem;height:1rem}.btn.submit-tool{box-sizing:border-box;border:1px solid var(--border-strong);border-radius:var(--r-full);height:2.5rem;min-height:0;box-shadow:none;white-space:nowrap;flex:none;padding:0 1rem;font-weight:500}@media (width<=1000px){.nav-optional{display:none}}@media (width<=760px){.site-bar{flex-wrap:wrap;row-gap:0;min-height:3.5rem;padding-top:.35rem;padding-bottom:.35rem}.site-bar:has(.header-search){padding-bottom:.6rem}.site-nav{margin-left:auto}.site-bar:has(.header-search):after{content:"";flex-basis:100%;order:2}.header-search{flex:1 1 0;order:3;margin-left:0}.btn.submit-tool{order:4;margin-left:auto}.header-search,.btn.submit-tool{margin-top:.35rem}.btn.palette-btn{display:none}.browse-panel{max-height:calc(100dvh - 6.75rem)}}@media (width<=560px){.wrap{padding-left:1rem;padding-right:1rem}.brand{gap:.45rem;margin-right:0;font-size:.9375rem}.brand svg{width:1.6rem;height:1.6rem}.nav-link,.browse>summary{padding:0 .55rem}.site-bar{column-gap:.5rem}.btn.submit-tool{padding:0 .85rem}}.home-top{isolation:isolate;padding:.75rem 0 .5rem;position:relative}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 1.5rem;margin:0 0 1.25rem;display:flex}.home-head h1{font-size:var(--step-3);letter-spacing:var(--tracking-display);margin:0;font-weight:700;line-height:1.1}.home-stats{text-align:center;color:var(--text-muted);font-size:var(--step--1);margin:2rem 0 0}.home-stats b{font-family:var(--font-mono);color:var(--text);font-weight:600}.home-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,14.5rem),1fr));gap:1.25rem 1rem;display:grid}.home-group h2{font-size:var(--step--2);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-faint);margin:0 0 .5rem;font-weight:600}.home-group ul{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.cat-pill{border:1px solid var(--border);background:var(--bg-raised);box-shadow:var(--shadow-1), var(--inner-light);color:var(--text);transition:transform var(--dur-2) var(--ease-out), border-color var(--dur-1), box-shadow var(--dur-2);border-radius:12px;align-items:center;gap:.6rem;padding:.45rem .75rem .45rem .45rem;text-decoration:none;display:flex}.cat-pill:hover{color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-2), var(--inner-light);transform:translateY(-1px)}.cat-pill .icon-box{border-radius:8px;width:1.9rem;height:1.9rem}.cat-pill .icon-box .cat-icon{width:1.05rem;height:1.05rem}.cat-pill .name{min-width:0;font-weight:600;font-size:var(--step-0);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cat-pill .count{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text-faint);margin-left:auto}.cat-pill:hover .name{color:var(--accent)}@media (width<=560px){.home-groups{gap:1rem}.home-group ul{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-pill{gap:.4rem;min-height:2.5rem;padding:.4rem .6rem}.cat-pill .icon-box{display:none}.cat-pill .name{font-size:var(--step--1);white-space:normal;line-height:1.2}.cat-pill .count{font-size:var(--step--2)}}.hero-search{border-radius:var(--r-lg);background:var(--bg-raised);border:1px solid var(--border-strong);max-width:38rem;box-shadow:var(--shadow-3), var(--inner-light);transition:border-color var(--dur-1), box-shadow var(--dur-2);align-items:center;gap:.5rem;padding:.4rem .4rem .4rem 0;display:flex;position:relative}.hero-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring), var(--shadow-3)}.hero-search>svg{width:1.15rem;height:1.15rem;color:var(--text-faint);flex:none;margin-left:.95rem}.hero-search input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;flex:1;min-height:2.75rem;padding:0 .25rem 0 .75rem;font-size:1rem}.hero-search>svg+input{padding-left:0}.hero-search input:focus{outline:none}.hero-search input::placeholder{color:var(--text-faint);opacity:1}.hero-search .btn{border-radius:12px;padding-left:1.3rem;padding-right:1.3rem}.chips{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.chip{border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-raised);min-height:2.25rem;color:var(--text);font-size:var(--step--1);align-items:center;gap:.4rem;padding:0 .85rem;font-weight:500;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip .cat-icon{width:1rem;height:1rem;color:var(--accent)}.spotlights{gap:clamp(2rem,3.5vw,2.75rem) 2rem;margin-top:clamp(2rem,3.5vw,2.75rem);display:grid}@media (width>=1100px){.spotlights{grid-template-columns:repeat(2,minmax(0,1fr))}}.spotlight .section-head{margin-bottom:1rem}.spotlight .section-head h2{font-size:var(--step-2)}.spotlight .listing-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:.75rem}.inline-ad{justify-items:center;gap:.3rem;margin:clamp(1.5rem,3vw,2.25rem) 0;display:grid}.inline-ad-label{font-size:var(--step--2);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.inline-ad-box{width:100%;overflow:hidden}.inline-ad-banner .inline-ad-box{max-width:970px;height:100px}@media (width>=768px){.inline-ad-banner .inline-ad-box{max-width:728px;height:90px}}@media (width>=1100px){.inline-ad-banner .inline-ad-box{max-width:970px}}.inline-ad-side{margin:1rem 0 0}.inline-ad-side .inline-ad-box{max-width:300px;height:250px}.inline-ad-carbon .inline-ad-box{max-width:330px;height:auto;min-height:125px}.inline-ad[data-test] .inline-ad-box{border:1px dashed var(--border-strong);border-radius:var(--r-md);color:var(--text-muted);font-size:var(--step--1);place-items:center;display:grid}@font-face{font-family:Sen Affiliate;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/sen/sen-latin.woff2)format("woff2")}.affiliate-ad{justify-items:center;gap:.3rem;margin:clamp(1.5rem,3vw,2.25rem) 0;display:grid}.affiliate-ad-label{width:100%;max-width:970px;font-size:var(--step--2);color:var(--text-muted);margin:0}@media (width>=768px) and (width<=1099px){.affiliate-ad-label{max-width:728px}}.affiliate-ad-stage{width:100%;max-width:970px;height:100px}.affiliate-banner{--ad-bg:#0c1b2a;--ad-ink:#f6fbff;--ad-edge:#2c536a;--ad-accent:#84cce9;--ad-glow:#276987;border:1px solid var(--ad-edge);border-radius:var(--r-md);width:100%;height:100%;color:var(--ad-ink);background:radial-gradient(circle at 77% 35%, var(--ad-glow), transparent 50%), linear-gradient(115deg, var(--ad-bg), var(--ad-bg));grid-template-columns:52px minmax(0,1fr);align-items:center;gap:1rem;padding:.7rem 1.3rem;text-decoration:none;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.affiliate-banner{background:radial-gradient(circle at 77% 35%, color-mix(in srgb, var(--ad-glow) 55%, transparent), transparent 50%), linear-gradient(115deg, var(--ad-bg), color-mix(in srgb, var(--ad-bg) 85%, var(--ad-accent)))}}.affiliate-banner{box-shadow:var(--shadow-1);transition:box-shadow var(--dur-2), transform var(--dur-2)}.affiliate-banner:hover{color:var(--ad-ink);box-shadow:var(--shadow-2);transform:translateY(-1px)}.affiliate-banner:focus-visible{outline:3px solid var(--ring);outline-offset:3px}.affiliate-banner:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg, transparent 0 41px, var(--ad-accent) 42px 43px);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.affiliate-banner:after{background:repeating-linear-gradient(90deg, transparent 0 41px, color-mix(in srgb, var(--ad-accent) 8%, transparent) 42px 43px)}}.affiliate-banner:after{-webkit-mask-image:linear-gradient(90deg,#0000 35%,#000);mask-image:linear-gradient(90deg,#0000 35%,#000)}.affiliate-banner-tradingview{--ad-bg:#131722;--ad-edge:#35415c;--ad-accent:#8ab4ff;--ad-glow:#2452a6}.affiliate-banner-whales{--ad-brand-light:#c6dff1;--ad-brand-blue:#53a5d5}.affiliate-banner-finviz{--ad-bg:#353945;--ad-edge:#596479;--ad-accent:#58aefb;--ad-glow:#226db3}.affiliate-banner-tradeideas{--ad-bg:#051a2f;--ad-edge:#24466b;--ad-accent:#f2932a;--ad-glow:#182f57}.affiliate-banner-logo{z-index:1;background:#fff;border-radius:12px;flex:none;place-items:center;width:52px;height:52px;display:grid;position:relative;box-shadow:0 4px 14px #00000029}.affiliate-banner-logo img{object-fit:contain;width:44px;height:44px}.affiliate-banner-copy{z-index:1;gap:.3rem;min-width:0;line-height:1.2;display:grid;position:relative}.affiliate-banner-wordmark{width:fit-content;max-width:100%;display:block}.affiliate-banner-wordmark img{max-width:100%;height:auto;display:block}.affiliate-wordmark-tradingview{width:164px}.affiliate-wordmark-finviz{width:107px}.affiliate-wordmark-tradeideas{width:106px}.affiliate-wordmark-whales{letter-spacing:normal;white-space:nowrap;color:var(--ad-brand-light);font-family:Sen Affiliate,sans-serif;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:600}.affiliate-wordmark-whales span:last-child{color:var(--ad-brand-blue)}.affiliate-banner-copy>span{font-size:var(--step--1);color:var(--ad-ink)}@supports (color:color-mix(in lab, red, red)){.affiliate-banner-copy>span{color:color-mix(in srgb, var(--ad-ink) 78%, var(--ad-accent))}}@media (width>=768px){.affiliate-ad-stage{max-width:728px;height:90px}}@media (width>=1100px){.affiliate-ad-stage{max-width:970px}}@media (width<=600px){.affiliate-banner{grid-template-columns:44px minmax(0,1fr);gap:.7rem;padding:.55rem .65rem}.affiliate-banner-logo{border-radius:10px;width:44px;height:44px}.affiliate-banner-logo img{width:38px;height:38px}.affiliate-wordmark-tradingview{width:147px}.affiliate-wordmark-finviz{width:97px}.affiliate-wordmark-tradeideas{width:94px}.affiliate-wordmark-whales{font-size:1.05rem}.affiliate-banner-copy>span{font-size:.7rem;line-height:1.3}}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,17.5rem),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.cat-card{--mx:50%;--my:0%;border-radius:var(--r-lg);height:100%;color:var(--text);background:radial-gradient(24rem circle at var(--mx) var(--my), var(--glare), transparent 50%) padding-box, linear-gradient(var(--bg-raised), var(--bg-raised)) padding-box, radial-gradient(16rem circle at var(--mx) var(--my), var(--glare), transparent 60%) border-box, linear-gradient(180deg, var(--edge-top), var(--edge-bottom)) border-box;border:1px solid #0000;flex-direction:column;gap:.5rem;padding:1.25rem;text-decoration:none;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.cat-card{background:radial-gradient(24rem circle at var(--mx) var(--my), color-mix(in oklch, var(--glare) var(--glare-a), transparent), transparent 50%) padding-box, linear-gradient(var(--bg-raised), var(--bg-raised)) padding-box, radial-gradient(16rem circle at var(--mx) var(--my), color-mix(in oklch, var(--glare) calc(var(--glare-a) * 5), transparent), transparent 60%) border-box, linear-gradient(180deg, var(--edge-top), var(--edge-bottom)) border-box}}.cat-card{box-shadow:var(--shadow-1), var(--inner-light);transition:--glare-a var(--dur-3) var(--ease-out), transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2)}.cat-card:hover{--glare-a:10%;box-shadow:var(--shadow-2), var(--inner-light);color:var(--text);transform:translateY(-2px)}.cat-card .top{align-items:center;gap:.75rem;display:flex}.icon-box{background:linear-gradient(160deg, var(--accent-soft), var(--accent-subtle));width:2.4rem;height:2.4rem;color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);border-radius:11px;flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.icon-box{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--accent) 18%, transparent)}}.cat-card .name{font-weight:650;font-size:var(--step-1);letter-spacing:-.02em}.cat-card .count{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text-faint);white-space:nowrap;margin-left:auto;font-weight:500}.cat-card .blurb{color:var(--text-muted);font-size:var(--step-0);margin:0;line-height:1.5}.listing-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.listing{--mx:50%;--my:0%;border-radius:var(--r-lg);background:radial-gradient(26rem circle at var(--mx) var(--my), var(--glare), transparent 50%) padding-box, linear-gradient(var(--bg-raised), var(--bg-raised)) padding-box, radial-gradient(18rem circle at var(--mx) var(--my), var(--glare), transparent 60%) border-box, linear-gradient(180deg, var(--edge-top), var(--edge-bottom)) border-box;border:1px solid #0000;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.listing{background:radial-gradient(26rem circle at var(--mx) var(--my), color-mix(in oklch, var(--glare) var(--glare-a), transparent), transparent 50%) padding-box, linear-gradient(var(--bg-raised), var(--bg-raised)) padding-box, radial-gradient(18rem circle at var(--mx) var(--my), color-mix(in oklch, var(--glare) calc(var(--glare-a) * 5), transparent), transparent 60%) border-box, linear-gradient(180deg, var(--edge-top), var(--edge-bottom)) border-box}}.listing{box-shadow:var(--shadow-1), var(--inner-light);transition:--glare-a var(--dur-3) var(--ease-out), transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2)}.listing[hidden],.listing-grid[hidden]{display:none}.listing:hover{--glare-a:8%;box-shadow:var(--shadow-2), var(--inner-light);transform:translateY(-2px)}.listing:focus-within{box-shadow:0 0 0 3px var(--ring), var(--shadow-2)}.listing-head{align-items:center;gap:.8rem;display:flex}.avatar{width:2.75rem;height:2.75rem;font-weight:700;font-size:var(--step-0);letter-spacing:.02em;background:hsl(var(--h) var(--avatar-s) var(--avatar-bg-l));color:hsl(var(--h) var(--avatar-s) var(--avatar-fg-l));border-radius:12px;flex:none;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #0000000a}.listing-title{flex:1;min-width:0}.listing-title h3{font-size:var(--step-1);letter-spacing:-.02em;margin:0;font-weight:650;line-height:1.3}.listing-title h3 a{color:var(--text);transition:color var(--dur-1);text-decoration:none}.listing-title h3 a:after{content:"";border-radius:var(--r-lg);position:absolute;inset:0}.listing-title h3 a:focus-visible{outline:none}.listing:hover .listing-title h3 a{color:var(--accent)}.host{font-family:var(--font-mono);font-size:var(--step--2);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;letter-spacing:0;display:block;overflow:hidden}.listing .desc{font-size:var(--step-0);color:var(--text);margin:0;line-height:1.6}.listing .bestfor{font-size:var(--step--1);color:var(--text-muted);border-left:2px solid var(--accent-soft);margin:0;padding-left:.75rem;line-height:1.5}.listing .bestfor b{color:var(--text);font-weight:600}.badge{border-radius:var(--r-full);font-size:var(--step--2);white-space:nowrap;letter-spacing:.01em;align-self:flex-start;align-items:center;gap:.4rem;padding:.2rem .65rem .2rem .55rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:var(--dot,currentColor);border-radius:50%;width:.4rem;height:.4rem}.badge-free{background:var(--free-bg);color:var(--free-fg);--dot:var(--free-dot)}.badge-freemium{background:var(--freemium-bg);color:var(--freemium-fg);--dot:var(--freemium-dot)}.badge-trial{background:var(--trial-bg);color:var(--trial-fg);--dot:var(--trial-dot)}.badge-paid{background:var(--paid-bg);color:var(--paid-fg);--dot:var(--paid-dot)}.tags{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.tags li{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-sm);padding:.1rem .45rem;font-size:.6875rem}.listing-cats{z-index:1;font-size:var(--step--1);flex-wrap:wrap;gap:.1rem .75rem;margin:0;padding:0;list-style:none;display:flex;position:relative}.listing-cats a{padding:.2rem 0;font-weight:500;text-decoration:none;display:inline-block}.listing-cats a:hover{text-decoration:underline}.listing-foot{border-top:1px dashed var(--border);font-size:var(--step--1);color:var(--text-muted);align-items:center;gap:.75rem;margin-top:auto;padding-top:.85rem;display:flex}.listing-foot .meta{gap:.1rem;min-width:0;display:grid}.listing-foot .price{color:var(--text);font-weight:600}.visit{border-radius:var(--r-full);font-weight:600;font-size:var(--step--1);color:var(--accent);white-space:nowrap;background:var(--accent-subtle);transition:background-color var(--dur-2), color var(--dur-2);align-items:center;gap:.3rem;margin-left:auto;padding:.35rem .7rem;display:inline-flex}.visit svg{width:.85rem;height:.85rem;transition:transform var(--dur-2) var(--ease-spring)}.listing:hover .visit{background:var(--accent);color:var(--accent-contrast)}.listing:hover .visit svg{transform:translate(2px,-2px)}.details-hint{color:var(--text-muted);transition:color var(--dur-1);margin-left:auto;font-weight:600}.listing:hover .details-hint{color:var(--accent)}.details-hint+.visit{margin-left:0}.visit-link{z-index:1;text-decoration:none;position:relative}.listing:hover .visit-link{background:var(--accent-subtle);color:var(--accent)}.listing .visit-link:hover{background:var(--accent);color:var(--accent-contrast)}.listing-labels{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.listing-compact{--desc-lines:6;--price-lines:2;gap:.55rem;padding:.9rem 1rem}.listing-compact .avatar{width:2.25rem;height:2.25rem;font-size:var(--step--1);border-radius:10px}.listing-compact .brand-logo{padding:5px}.listing-compact .listing-head{height:2.6rem}.listing-compact .listing-title h3{font-size:var(--step-0);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.listing-compact .price-line{font-size:var(--step--1);height:calc(var(--price-lines) * 1.7em);-webkit-line-clamp:var(--price-lines);line-clamp:var(--price-lines);-webkit-box-orient:vertical;margin:0;line-height:1.7;display:-webkit-box;overflow:hidden}.listing-compact .price-line .badge{vertical-align:.05em;margin-right:.45rem;padding-top:.1rem;padding-bottom:.1rem;display:inline-flex}.listing-compact .price-note{color:var(--text);font-weight:600}.listing-compact .desc{font-size:var(--step--1);color:var(--text-muted);height:calc(var(--desc-lines) * 1.5em);-webkit-line-clamp:var(--desc-lines);line-clamp:var(--desc-lines);-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.brand-logo{background:var(--logo-bg);box-shadow:inset 0 0 0 1px var(--border), var(--shadow-1);padding:6px;overflow:hidden}.brand-logo img{object-fit:contain;width:100%;height:100%}.brand-logo-dark{background:var(--logo-dark-bg)}.directory-layout{grid-template-columns:14rem minmax(0,1fr);align-items:start;gap:2.5rem;display:grid}.directory-sidebar{position:sticky;top:5.25rem}.directory-categories>summary{font-size:var(--step--1);cursor:pointer;margin-bottom:.5rem;font-weight:650;list-style:none}.directory-categories>summary::-webkit-details-marker{display:none}.directory-categories>summary span{float:right;transition:transform var(--dur-2) var(--ease-out)}.directory-categories[open]>summary span{transform:rotate(180deg)}.directory-group{margin-top:1.25rem}.directory-group>p{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-faint);margin:0 0 .35rem;padding:0 .7rem;font-weight:600}.directory-category{border-radius:var(--r-md);min-height:2.35rem;color:var(--text-muted);font-size:var(--step--1);transition:color var(--dur-1), background-color var(--dur-1);align-items:center;gap:.55rem;padding:.35rem .7rem;font-weight:500;text-decoration:none;display:flex;position:relative}.directory-category .cat-icon{flex:none;width:1rem;height:1rem}.directory-category:hover{background:var(--bg-subtle);color:var(--text)}.directory-category[aria-current=page]{background:var(--bg-raised);color:var(--text);box-shadow:var(--shadow-1), inset 0 0 0 1px var(--border);font-weight:600}.directory-category[aria-current=page]:before{content:"";background:var(--accent);border-radius:3px;width:3px;position:absolute;top:25%;bottom:25%;left:-.5rem}.directory-category[aria-current=page] .cat-icon{color:var(--accent)}.category-count{font-family:var(--font-mono);font-size:var(--step--2);color:var(--text-faint);margin-left:auto}.directory-help{border-top:1px solid var(--border);font-size:var(--step--1);color:var(--text-muted);margin-top:1.5rem;padding-top:1rem}.directory-help a{display:block}.directory-results{min-width:0}.directory-results .filters{grid-template-columns:repeat(6,minmax(0,1fr))}.directory-results .filters>*{grid-column:span 2}.directory-results .filters>.field-q,.directory-results .filters>.field-price{grid-column:span 3}@media (width<=1400px){.directory-results .filters>.field-q,.directory-results .filters>.field-price{grid-column:1/-1}}.directory-results .listing-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr))}.ordering-note{font-size:var(--step--2);color:var(--text-faint);margin:0 0 1rem}.directory-results .filter-status{min-height:2rem;margin-bottom:.5rem}.page-head.page-head-compact{padding:0 0 .9rem}.page-head.page-head-compact h1{max-width:none;font-size:var(--step-2);align-items:center;gap:.75rem;margin:0 0 .3rem;line-height:1.2;display:flex}.page-head.page-head-compact .icon-box{border-radius:11px;width:2.4rem;height:2.4rem;margin:0}.page-head.page-head-compact .icon-box .cat-icon{width:1.25rem;height:1.25rem}.meta-line{font-size:var(--step--1);color:var(--text-muted);margin:0}.meta-line b{color:var(--text);font-family:var(--font-mono);font-weight:600}.directory-results .listing-grid-compact{grid-template-columns:repeat(auto-fill,minmax(min(100%,max(20rem,33.3333% - .5rem)),1fr));gap:.75rem}@media (width>=1280px){.directory-results .filters{grid-template-columns:minmax(10rem,1fr) auto repeat(3,minmax(9rem,.5fr));padding:.75rem 1rem}.directory-results .filters>*,.directory-results .filters>.field-q,.directory-results .filters>.field-price{grid-column:auto}}.active-filters{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.active-filters[hidden]{display:none}.filter-chip{border:1px solid var(--accent-soft);border-radius:var(--r-full);background:var(--accent-subtle);color:var(--accent);font:inherit;font-size:var(--step--1);cursor:pointer;transition:border-color var(--dur-1);align-items:center;gap:.35rem;padding:.35rem .75rem;font-weight:500;display:inline-flex}.filter-chip:hover{border-color:var(--accent)}@media (width<=1050px){.directory-layout{grid-template-columns:minmax(0,1fr);gap:1rem}.directory-sidebar{position:static}.directory-categories{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);box-shadow:var(--shadow-1);padding:.8rem 1rem}.directory-categories>summary{min-height:1.5rem;margin:0}.directory-categories nav{padding-top:1rem}.directory-categories[open] nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;max-height:14rem;display:grid;overflow-y:auto}.directory-categories .all-tools{grid-column:1/-1}.directory-category[aria-current=page]:before,.directory-help{display:none}}.filters-toggle{display:none}@media (width<=620px){.directory-results .filters{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-results .filters>*{grid-column:span 1}.directory-results .filters>.field-price{grid-column:1/-1}.directory-results .filters>.field-q{grid-area:1/1/auto/-1}.directory-results .filters:has(.filters-toggle:not([hidden]))>.field-q{margin-right:6.75rem}.directory-results .filters>.filters-toggle{grid-area:1/2;justify-content:center;justify-self:end;width:6rem}.filters-toggle:not([hidden]){border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);height:2.75rem;color:var(--text);font:inherit;font-size:var(--step--1);cursor:pointer;align-self:end;align-items:center;gap:.4rem;padding:0 .9rem;font-weight:600;display:inline-flex}.filters-toggle svg{width:1rem;height:1rem}.filters-toggle[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.filters-count{border-radius:var(--r-full);background:var(--accent);min-width:1.25rem;height:1.25rem;color:var(--accent-contrast);font-size:var(--step--2);place-items:center;padding:0 .3rem;display:inline-grid}.filters-count[hidden],.filters.is-collapsed>:not(.field-q):not(.filters-toggle){display:none}.directory-results .listing-grid{grid-template-columns:minmax(0,1fr)}.listing{padding:1.15rem}}.filters{border-radius:var(--r-lg);background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-1), var(--inner-light);grid-template-columns:minmax(12rem,2fr) repeat(4,minmax(8.5rem,1fr));gap:.85rem .75rem;margin-bottom:1rem;padding:1rem;display:grid}.filters .field{min-width:0}.filters .input,.filters .select{background-color:var(--bg-subtle);border-color:var(--border);box-shadow:none}.filters .input:focus,.filters .select:focus{background-color:var(--bg-raised);border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.filters .field-q .input{background-image:none;padding-left:2.4rem}.field-q{position:relative}.field-q>svg{width:1rem;height:1rem;color:var(--text-faint);pointer-events:none;position:absolute;bottom:.8rem;left:.85rem}@media (width<=900px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters .field-q,.filters .field-price{grid-column:1/-1}}.field-price{border:0;min-width:0;margin:0;padding:0}.field-price legend{margin-bottom:.4rem;padding:0}.field-price .seg{scrollbar-width:none;width:100%;display:flex;overflow-x:auto}.field-price .seg::-webkit-scrollbar{display:none}.field-price .seg label{flex:1 0 auto}.seg[data-glide] label:has(input:checked){box-shadow:none;background:0 0}.seg-indicator{z-index:0;pointer-events:none;background:var(--bg-raised);box-shadow:var(--shadow-1), var(--inner-light), inset 0 0 0 1px var(--border);transition:transform var(--dur-3) var(--ease-spring), width var(--dur-3) var(--ease-spring);border-radius:7px;position:absolute;top:3px;bottom:3px;left:0}.filter-status{min-height:2.75rem;color:var(--text-muted);font-size:var(--step-0);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.filter-status p{margin:0}.filter-status b{color:var(--text);font-family:var(--font-mono);font-weight:600}.link-btn{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:.5rem .25rem;font-weight:600;text-decoration:underline}.link-btn:hover{color:var(--accent-hover)}.link-btn[hidden]{display:none}.empty{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--r-lg);color:var(--text-muted);background:var(--bg-subtle);padding:3rem 1.25rem}.empty[hidden]{display:none}.empty p{margin:0 0 .5rem}.empty b{color:var(--text)}.page-head{isolation:isolate;padding:.75rem 0 2rem;position:relative}.page-head h1{font-size:var(--step-4);letter-spacing:var(--tracking-display);max-width:24ch;margin:0 0 1rem;font-weight:740;line-height:1.06}.page-head .lede{font-size:var(--step-1);color:var(--text-muted);max-width:68ch;margin:0 0 .8rem;line-height:1.6}.page-head .icon-box{width:3rem;height:3rem;box-shadow:inset 0 0 0 1px var(--accent), var(--shadow-2);border-radius:14px;margin-bottom:1.1rem}@supports (color:color-mix(in lab, red, red)){.page-head .icon-box{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--accent) 18%, transparent), var(--shadow-2)}}.page-head .icon-box .cat-icon{width:1.5rem;height:1.5rem}.meta-row{font-size:var(--step--1);color:var(--text-muted);flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.meta-row li{border-radius:var(--r-full);background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-1);padding:.3rem .75rem}.meta-row b{color:var(--text);font-weight:600;font-family:var(--font-mono)}.crumbs{font-size:var(--step--1);color:var(--text-muted);margin-bottom:1rem}.crumbs ol{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";opacity:.5;margin-right:.4rem}.crumbs a{color:var(--text-muted);text-decoration:none}.crumbs a:hover{color:var(--accent);text-decoration:underline}.choose-grid{counter-reset:choose;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.choose-grid li{counter-increment:choose;border-radius:var(--r-lg);background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-1), var(--inner-light);padding:1.35rem}.choose-grid li:before{content:counter(choose, decimal-leading-zero);border-radius:var(--r-md);width:2rem;height:2rem;font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);background:var(--accent-subtle);place-items:center;font-weight:600;display:inline-grid}.choose-grid h3{font-size:var(--step-1);letter-spacing:-.015em;margin:.8rem 0 .4rem;font-weight:650}.choose-grid p{font-size:var(--step-0);color:var(--text-muted);margin:0;line-height:1.6}.faq{gap:.6rem;max-width:52rem;display:grid}.faq details{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);box-shadow:var(--shadow-1);transition:border-color var(--dur-1)}.faq details[open]{border-color:var(--border-strong)}.faq summary{cursor:pointer;border-radius:var(--r-lg);padding:1.05rem 3rem 1.05rem 1.2rem;font-weight:600;list-style:none;position:relative}.faq summary:hover{color:var(--accent)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";background:var(--bg-subtle);width:1.5rem;height:1.5rem;color:var(--text-muted);transition:transform var(--dur-3) var(--ease-spring), background-color var(--dur-1);border-radius:50%;place-items:center;font-weight:500;display:grid;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.faq details[open] summary:after{background:var(--accent-subtle);color:var(--accent);transform:translateY(-50%)rotate(45deg)}.faq details p{color:var(--text-muted);max-width:70ch;margin:0;padding:0 1.2rem 1.15rem;line-height:1.65}@supports (interpolate-size:allow-keywords){@media (prefers-reduced-motion:no-preference){.faq details{interpolate-size:allow-keywords}.faq details::details-content{height:0;transition:height var(--dur-3) var(--ease-out), content-visibility var(--dur-3) allow-discrete;overflow:clip}.faq details[open]::details-content{height:auto}}}.callout{border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-subtle);font-size:var(--step--1);color:var(--text-muted);max-width:70ch;padding:1.1rem 1.25rem 1.1rem 1.5rem;line-height:1.65;position:relative;overflow:hidden}.callout:before{content:"";background:var(--highlight);width:3px;position:absolute;top:0;bottom:0;left:0}.callout b{color:var(--text)}.cta-band{isolation:isolate;border-radius:var(--r-xl);border:1px solid var(--border);background:radial-gradient(34rem 14rem at 0% 0%, var(--glow-1), transparent 70%), radial-gradient(24rem 12rem at 100% 100%, var(--glow-2), transparent 70%), var(--bg-raised);box-shadow:var(--shadow-2), var(--inner-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding:clamp(1.75rem,4vw,2.75rem);display:flex;position:relative;overflow:hidden}.cta-band:after{content:"";z-index:-1;background:linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 100% 2rem, linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 2rem 100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 40%,#000);mask-image:linear-gradient(90deg,#0000 40%,#000)}.cta-band h2{font-size:var(--step-3);letter-spacing:var(--tracking-tight);margin:0 0 .35rem;font-weight:700}.cta-band p{color:var(--text-muted);max-width:52ch;margin:0}a.btn{text-decoration:none}a.btn:hover{color:var(--accent-contrast)}a.btn-secondary:hover{color:var(--text)}.glossary-nav{flex-wrap:wrap;gap:.35rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.glossary-nav a{border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-raised);min-width:2.5rem;min-height:2.5rem;font-family:var(--font-mono);color:var(--text);box-shadow:var(--shadow-1);transition:border-color var(--dur-1), color var(--dur-1), transform var(--dur-2) var(--ease-spring);place-items:center;font-weight:600;text-decoration:none;display:grid}.glossary-nav a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.glossary dl{gap:.75rem;margin:0;display:grid}.glossary .term{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);box-shadow:var(--shadow-1), var(--inner-light);padding:1.2rem 1.35rem;scroll-margin-top:5.5rem}.glossary .term:target{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.glossary dt{font-weight:650;font-size:var(--step-1);letter-spacing:-.015em;margin:0 0 .35rem}.glossary dd{color:var(--text-muted);max-width:75ch;margin:0;line-height:1.65}.glossary dd a{font-weight:500}.glossary-controls{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:end;gap:1rem;display:grid}.glossary .term-example{background:var(--bg-subtle);border-radius:var(--r-md);border:1px solid var(--border);margin:.85rem 0;padding:.8rem .9rem}.glossary .term-related,.glossary .term-links{font-size:var(--step--1);margin:.7rem 0 0}.glossary [hidden]{display:none}@media (width<=620px){.glossary-controls{grid-template-columns:minmax(0,1fr);gap:.75rem}.glossary-controls .link-btn{justify-self:start}}.glossary h2{font-size:var(--step-3);font-family:var(--font-mono);color:var(--accent);letter-spacing:-.04em;margin:2.75rem 0 1rem;scroll-margin-top:5.5rem}.contact-form{gap:1.1rem;max-width:44rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.contact-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.1rem;display:grid}.contact-form textarea.input{resize:vertical;min-height:9rem;line-height:1.5}.contact-form .label{font-size:var(--step--1);color:var(--text)}.contact-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.palette{border:1px solid var(--border-strong);border-radius:var(--r-xl);background:var(--bg-raised);width:min(40rem,100vw - 2rem);max-height:min(34rem,100dvh - 6rem);color:var(--text);box-shadow:var(--shadow-3), 0 0 0 1px #00000005, var(--inner-light);margin:12vh auto auto;padding:0;overflow:hidden}.palette[open]{flex-direction:column;display:flex}.palette::backdrop{background:var(--gray-975)}@supports (color:color-mix(in lab, red, red)){.palette::backdrop{background:color-mix(in oklch, var(--gray-975) 40%, transparent)}}.palette::backdrop{backdrop-filter:blur(4px)}@media (prefers-reduced-motion:no-preference){.palette[open]{animation:palette-in var(--dur-3) var(--ease-spring)}.palette[open]::backdrop{animation:fade-in var(--dur-2) var(--ease-out)}}@keyframes palette-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}}@keyframes fade-in{0%{opacity:0}}.palette-head{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:0 1rem;display:flex;position:relative}.palette-head svg{width:1.1rem;height:1.1rem;color:var(--text-faint);flex:none}.palette-head input{min-width:0;min-height:3.5rem;color:var(--text);font:inherit;background:0 0;border:0;flex:1;font-size:1.0625rem}.palette-head input:focus{outline:none}.palette-head input::placeholder{color:var(--text-faint)}.palette-body{overscroll-behavior:contain;flex:1;padding:.5rem;overflow-y:auto}.palette-group{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-faint);margin:.35rem 0 .2rem;padding:.35rem .6rem;font-weight:600}.palette-list{margin:0;padding:0;list-style:none}.palette-item,.palette-item:hover{border-radius:var(--r-md);cursor:pointer;color:var(--text);align-items:center;gap:.7rem;min-height:2.75rem;padding:.55rem .6rem;text-decoration:none;display:flex}.palette-item[aria-selected=true]{background:var(--bg-subtle);box-shadow:inset 0 0 0 1px var(--border)}.palette-item[aria-selected=true] .palette-go{opacity:1}.palette-icon{background:var(--bg-subtle);width:1.9rem;height:1.9rem;color:var(--text-muted);border-radius:8px;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:grid;overflow:hidden}.palette-icon.logo{background:var(--logo-bg);box-shadow:inset 0 0 0 1px var(--border);padding:4px}.palette-icon.logo.dark{background:var(--logo-dark-bg)}.palette-icon img{object-fit:contain;width:100%;height:100%}.palette-icon .cat-icon{width:1rem;height:1rem;color:var(--accent)}.palette-text{flex:1;min-width:0;display:grid}.palette-text b{font-weight:550;font-size:var(--step-0);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-text small{font-size:var(--step--1);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-go{opacity:0;color:var(--text-faint);font-size:var(--step--1)}.palette-empty{text-align:center;color:var(--text-muted);font-size:var(--step-0);margin:0;padding:2rem 1rem}.palette-foot{border-top:1px solid var(--border);background:var(--bg-subtle);font-size:var(--step--2);color:var(--text-faint);flex-wrap:wrap;gap:1rem;padding:.6rem 1rem;display:flex}.palette-foot span{align-items:center;gap:.35rem;display:inline-flex}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal view();animation-range:entry entry 40%}}}@keyframes reveal{0%{opacity:0;transform:translateY(24px)}}footer.site{border-top:1px solid var(--border);background:var(--bg-subtle);position:relative}footer.site:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.6;width:min(40rem,80vw);height:1px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.footer-grid{grid-template-columns:minmax(14rem,1.4fr) repeat(3,minmax(9rem,1fr));gap:2rem;padding-top:3.5rem;padding-bottom:2.5rem;display:grid}@media (width<=820px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid>:first-child{grid-column:1/-1}}.footer-grid h2{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-faint);margin:0 0 .75rem;font-weight:600}.footer-grid ul{font-size:var(--step-0);gap:.1rem;margin:0;padding:0;list-style:none;display:grid}.footer-grid li a{color:var(--text-muted);transition:color var(--dur-1);padding:.3rem 0;text-decoration:none;display:inline-block}.footer-grid li a:hover{color:var(--text)}.footer-grid .about{color:var(--text-muted);font-size:var(--step-0);max-width:34ch;margin:.75rem 0 0;line-height:1.6}.footer-legal{border-top:1px solid var(--border);font-size:var(--step--1);color:var(--text-faint);padding-top:1.25rem;padding-bottom:2rem;line-height:1.6}.footer-legal p{max-width:95ch;margin:0 0 .5rem}@media print{.filters,.filter-status,.hero-search,.chips{display:none!important}main.wrap:before{display:none}}.tool-head{padding-bottom:1.5rem}.tool-id{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.tool-id h1{margin:0}.tool-avatar{width:4rem;height:4rem;font-size:var(--step-2);border-radius:16px}.tool-avatar.brand-logo{padding:8px}.tool-host{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text-faint);margin:.2rem 0 0}.tool-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.tool-actions .btn{gap:.45rem}.tool-price{font-weight:600;font-size:var(--step--1)}.deal{border-radius:var(--r-lg);background:var(--highlight-subtle);border:1px solid var(--highlight);gap:.25rem;margin:0 0 2rem;padding:1rem 1.25rem;display:grid}@supports (color:color-mix(in lab, red, red)){.deal{border:1px solid color-mix(in oklch, var(--highlight) 30%, transparent)}}.deal p{margin:0}.deal-code code{font-family:var(--font-mono);border-radius:var(--r-sm);background:var(--bg-raised);border:1px dashed var(--highlight);padding:.1rem .45rem;font-weight:700}.deal-meta{font-size:var(--step--1);color:var(--text-muted)}.tool-layout{gap:2.5rem;display:grid}@media (width>=1000px){.tool-layout{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;gap:3.5rem}.tool-side{order:2;position:sticky;top:5.25rem}}.tool-layout>*{min-width:0}.tool-main{grid-template-columns:minmax(0,1fr);gap:2.5rem;max-width:50rem;display:grid}.tool-main section>h2,.tool-pros-cons h2{font-size:var(--step-2);letter-spacing:var(--tracking-tight);margin:0 0 .75rem;font-weight:700}.tool-main p{margin:0 0 .9rem;line-height:1.7}.tool-features{gap:.75rem;margin:0;display:grid}.tool-features div{border-radius:var(--r-md);background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-1);padding:.9rem 1.1rem}.tool-features dt{margin-bottom:.2rem;font-weight:650}.tool-features dd{color:var(--text-muted);margin:0;line-height:1.6}table.data.tool-plans th,table.data.tool-plans td{white-space:normal;vertical-align:top}table.data.tool-plans tbody th{font-size:var(--step-0);text-transform:none;letter-spacing:0;color:var(--text);white-space:nowrap;background:0 0}table.data.tool-plans td.num{text-align:left;white-space:nowrap}.tool-main .table-wrap{margin-bottom:1rem}.small-note{font-size:var(--step--1);color:var(--text-muted);line-height:1.6}.tool-pros-cons{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1.5rem 2rem;display:grid}.ticks,.crosses{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.ticks li,.crosses li{padding-left:1.6rem;line-height:1.55;position:relative}.ticks li:before,.crosses li:before{border-radius:50%;place-items:center;width:1.1rem;height:1.1rem;font-size:.7rem;font-weight:700;display:grid;position:absolute;top:.1rem;left:0}.ticks li:before{content:"✓";background:var(--free-bg);color:var(--free-fg)}.crosses li:before{content:"–";background:var(--paid-bg);color:var(--paid-fg)}.glance{border-radius:var(--r-lg);background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-2), var(--inner-light);padding:1.25rem}.glance h2{font-size:var(--step-1);margin:0 0 .75rem}.glance dl{font-size:var(--step--1);gap:.6rem;margin:0 0 1rem;display:grid}.glance dl div{grid-template-columns:5.5rem minmax(0,1fr);gap:.5rem;display:grid}.glance dt{color:var(--text-muted)}.glance dd{margin:0;font-weight:500}.glance .muted{color:var(--text-muted);font-weight:400}.glance .tags{margin-bottom:1rem}.glance-btn{width:100%}.glance .small-note{margin:.75rem 0 0}.alt-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.alt-card{border-radius:var(--r-lg);background:var(--bg-raised);border:1px solid var(--border);height:100%;box-shadow:var(--shadow-1), var(--inner-light);color:var(--text);transition:transform var(--dur-2) var(--ease-out), border-color var(--dur-1);align-items:center;gap:.75rem;padding:.85rem 1rem;text-decoration:none;display:flex}.alt-card:hover{color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.alt-card:hover .alt-name{color:var(--accent)}.alt-card .avatar{width:2.5rem;height:2.5rem}.alt-card .brand-logo{padding:5px}.alt-text{min-width:0;display:grid}.alt-name{font-weight:650}.alt-meta{font-size:var(--step--1);color:var(--text-muted)}.guide-head{padding-bottom:1.25rem}.guide-head .eyebrow a{color:inherit}.guide-head h1{max-width:30ch}.guide-byline{font-size:var(--step--1);color:var(--text-muted);max-width:72ch;margin:0;line-height:1.6}.guide-draft{margin:0 0 1rem}.guide-layout{gap:2.5rem;display:grid}.guide-layout>*{min-width:0}@media (width>=1100px){.guide-layout{grid-template-columns:minmax(0,50rem) 15rem;align-items:start;gap:3.5rem}.guide-toc{order:2;position:sticky;top:5.25rem}}@media (width<=1099.98px){.guide-toc{display:none}}.guide-main{grid-template-columns:minmax(0,1fr);gap:2.25rem;max-width:50rem;display:grid}.guide-main section>h2{font-size:var(--step-2);letter-spacing:var(--tracking-tight);margin:0 0 .75rem;font-weight:700}.guide-body{max-width:none}.guide-body>:first-child{margin-top:0}.guide-body h2{scroll-margin-top:5rem}.guide-body p,.guide-body li{line-height:1.7}.short-answer{border-radius:var(--r-lg);background:var(--accent-soft);border:1px solid var(--accent);padding:1.1rem 1.25rem}@supports (color:color-mix(in lab, red, red)){.short-answer{border:1px solid color-mix(in oklch, var(--accent) 25%, transparent)}}.short-answer h2{font-size:var(--step-0);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0 0 .4rem}.short-answer p{font-size:var(--step-1);margin:0;line-height:1.55}table.data.guide-table th,table.data.guide-table td{white-space:normal;vertical-align:top}table.data.guide-table tbody th{font-size:var(--step-0);text-transform:none;letter-spacing:0;color:var(--text);background:0 0;font-weight:650}.guide-table-wrap+.small-note{margin:.6rem 0 0}@media (width<=640px){.guide-table-wrap{background:0 0;border:0;overflow:visible}.guide-table thead{display:none}.guide-table,.guide-table tbody,.guide-table tr,.guide-table th,.guide-table td{display:block}.guide-table tr{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);margin-bottom:.75rem;padding:.75rem 1rem}.guide-table th,.guide-table td{border:0;padding:.2rem 0}.guide-table tbody th{font-size:var(--step-1);padding-bottom:.35rem}.guide-table td{grid-template-columns:6.5rem minmax(0,1fr);gap:.5rem;display:grid}.guide-table td:before{content:attr(data-label);color:var(--text-muted);font-size:var(--step--1)}}.guide-notes{gap:.5rem;margin:0;padding-left:1.3rem;line-height:1.65;display:grid}.guide-tool{gap:.5rem;display:grid}.guide-visit{justify-content:center}.guide-toc{font-size:var(--step--1);border-left:1px solid var(--border);padding-left:1rem}.guide-toc-title{color:var(--text);margin:0 0 .5rem;font-weight:650}.guide-toc ol{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.guide-toc a{color:var(--text-muted);text-decoration:none}.guide-toc a:hover{color:var(--accent)}.guide-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.guide-link{border-radius:var(--r-lg);height:100%;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-1), var(--inner-light);transition:transform var(--dur-2) var(--ease-out), border-color var(--dur-1);gap:.3rem;padding:1rem 1.15rem;text-decoration:none;display:grid}.guide-link:hover{color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.guide-link:hover .guide-link-title{color:var(--accent)}.guide-link-type{font-size:var(--step--2);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.guide-link-title{font-weight:650;font-size:var(--step-1);line-height:1.3}.guide-link-desc{font-size:var(--step--1);color:var(--text-muted);line-height:1.55}@media (prefers-reduced-motion:reduce){.guide-link,.guide-link:hover{transition:none;transform:none}}.az-jump{flex-wrap:wrap;gap:.35rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.az-jump a{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-raised);min-width:2rem;height:2rem;font-family:var(--font-mono);place-items:center;font-weight:600;text-decoration:none;display:grid}.az-jump a:hover{border-color:var(--accent)}.az-group{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem;scroll-margin-top:5rem}.az-group h2{font-family:var(--font-mono);font-size:var(--step-2);color:var(--accent);margin:0 0 .75rem}.az-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.5rem 2rem;margin:0;padding:0;list-style:none;display:grid}.az-list li{display:grid}.az-list a{font-weight:600;text-decoration:none}.az-list a:hover{text-decoration:underline}.az-list span{font-size:var(--step--1);color:var(--text-muted)}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.6}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}.skip{background:var(--accent);color:var(--accent-contrast);border-radius:var(--r-md);z-index:60;padding:.6rem 1rem;position:absolute;top:.5rem;left:-9999px}.skip:focus{left:.5rem}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:from-font}a:hover{color:var(--accent-hover)}h1,h2,h3,h4{text-wrap:balance;letter-spacing:-.02em;line-height:1.2}p{text-wrap:pretty}.mono{font-family:var(--font-mono);letter-spacing:-.01em}.field{flex-direction:column;gap:.4rem;display:flex}.label{font-size:var(--step--1);color:var(--text-muted);font-weight:600}.input,.select{background:var(--bg-raised);width:100%;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-md);font:inherit;font-size:var(--step-0);font-variant-numeric:tabular-nums;min-height:44px;box-shadow:var(--shadow-1);transition:border-color var(--dur-1), box-shadow var(--dur-2) var(--ease-out);padding:.6rem .8rem}.input::placeholder{color:var(--text-faint);opacity:1}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2rem}.input:hover,.select:hover{border-color:var(--text-faint)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:none}.input[aria-invalid=true]{border-color:#d92d20}.hint{font-size:var(--step--1);color:var(--text-muted)}.error{font-size:var(--step--1);color:#d92d20;font-weight:500}.seg{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);gap:2px;padding:3px;display:inline-flex;position:relative}.seg label{z-index:1;min-height:36px;font-size:var(--step--1);white-space:nowrap;color:var(--text-muted);cursor:pointer;transition:color var(--dur-2);border-radius:7px;justify-content:center;align-items:center;padding:0 .8rem;font-weight:550;display:inline-flex;position:relative}.seg label:hover{color:var(--text)}.seg input{opacity:0;width:0;height:0;position:absolute}.seg label:has(input:checked){color:var(--text);background:var(--bg-raised);box-shadow:var(--shadow-1), var(--inner-light)}.seg label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}.btn{background:linear-gradient(180deg, var(--btn-top), var(--btn-bottom));color:var(--accent-contrast);border-radius:var(--r-md);font:inherit;font-size:var(--step-0);letter-spacing:-.005em;cursor:pointer;min-height:44px;box-shadow:inset 0 1px 0 var(--btn-shine), 0 0 0 1px var(--btn-edge), 0 1px 2px #00000026, 0 4px 12px -4px var(--btn-bottom);border:0;justify-content:center;align-items:center;gap:.45rem;padding:.65rem 1.15rem;font-weight:600;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.btn{box-shadow:inset 0 1px 0 var(--btn-shine), 0 0 0 1px var(--btn-edge), 0 1px 2px #00000026, 0 4px 12px -4px color-mix(in oklch, var(--btn-bottom) 55%, transparent)}}.btn{transition:transform var(--dur-1) var(--ease-out), filter var(--dur-1), box-shadow var(--dur-2)}.btn:hover{filter:brightness(1.07)saturate(1.05);color:var(--accent-contrast)}.btn:active{filter:brightness(.97);transform:scale(.97)}.btn-secondary{background:var(--bg-raised);color:var(--text);box-shadow:0 0 0 1px var(--border-strong), var(--shadow-1), var(--inner-light)}.btn-secondary:hover{background:var(--bg-subtle);color:var(--text);filter:none}.btn-ghost{color:var(--text-muted);box-shadow:none;background:0 0}.btn-ghost:hover{background:var(--bg-subtle);color:var(--text);filter:none}kbd,.kbd{min-width:1.35rem;height:1.35rem;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-raised);border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 .3rem;font-size:.6875rem;font-weight:500;line-height:1;display:inline-flex}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1), var(--inner-light)}.prose-block{max-width:68ch}.prose-block h2{font-size:var(--step-2);letter-spacing:-.025em;margin:2.5rem 0 .75rem;font-weight:700}.prose-block h3{font-size:var(--step-1);margin:1.6rem 0 .4rem;font-weight:650}.prose-block p{color:var(--text);margin:0 0 1rem}.prose-block ul,.prose-block ol{margin:0 0 1rem;padding-left:1.3rem}.prose-block li{margin-bottom:.4rem}.prose-block li::marker{color:var(--text-faint)}.prose-block code{font-family:var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-xs);padding:.1em .35em;font-size:.875em}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);overflow-x:auto}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.6rem .85rem}table.data tr:last-child td{border-bottom:0}table.data th{font-size:var(--step--2);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-muted);background:var(--bg-subtle);font-weight:600}table.data tbody tr:hover{background:var(--bg-subtle)}table.data td.num,table.data th.num{text-align:right;font-family:var(--font-mono)}.result-big{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--accent);font-size:clamp(2rem,7vw,3rem);font-weight:700;line-height:1.05}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ad-slot{text-align:center;min-height:1px;margin:2rem 0}.ad-slot[data-test]{border:1px dashed var(--border-strong);border-radius:var(--r-md);color:var(--text-muted);font-size:var(--step--1);padding:2rem 1rem}@media print{header.site,footer.site,.no-print,.ad-slot,.palette,.marquee{display:none!important}body{color:#000;background:#fff}.card,.listing,.cat-card{box-shadow:none;background:#fff;border:1px solid #999}table.data th,table.data td{border-bottom:1px solid #bbb}a{color:#000;text-decoration:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
