.dir-hero{padding-block:var(--sp-7) var(--sp-8);background:var(--paper);border-bottom:1px solid var(--rule-light)}.dir-hero-tight{padding-block:var(--sp-6) var(--sp-7)}.dir-h1{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:var(--ls-tight);max-width:22ch;margin-top:var(--sp-3);font-weight:700;line-height:1.04}.dir-lede{margin-top:var(--sp-4);max-width:62ch;font-size:var(--fs-md);color:var(--fg-muted);line-height:1.5}.dir-meta{margin-top:var(--sp-4);font-size:var(--fs-sm);color:var(--fg-faint)}.dir-meta a{text-underline-offset:3px;text-decoration:underline}.dir-hero-actions{margin-top:var(--sp-5)}.dir-hero .label a{color:inherit}.dir-crumbs ol{margin:0 0 var(--sp-4);font-size:var(--fs-sm);color:var(--fg-faint);flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.dir-crumbs li+li:before{content:"›";color:var(--fg-faint);margin-right:6px}.dir-crumbs a{color:var(--fg-muted)}.dir-crumbs a:hover{color:var(--blue)}.dir-crumbs [aria-current]{color:var(--fg)}.dir-filter{margin-top:var(--sp-6);gap:var(--sp-4);max-width:900px;display:grid}.dir-filter input{border:1px solid var(--rule-light);border-radius:var(--r-pill);background:var(--white);width:100%;font:inherit;font-size:var(--fs-base);color:var(--ink);padding:16px 20px}.dir-filter input:focus{outline:2px solid var(--blue);outline-offset:2px}.dir-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.dir-chip{border:1px solid var(--rule-light);border-radius:var(--r-pill);background:var(--white);font:inherit;font-size:var(--fs-sm);color:var(--ink-70);cursor:pointer;padding:8px 14px}.dir-chip:hover{border-color:var(--blue);color:var(--ink)}.dir-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.dir-section.s-white{background:var(--white)}.dir-section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.dir-count{font-size:var(--fs-sm);color:var(--fg-faint)}.dir-empty{margin-top:var(--sp-5);color:var(--fg-muted)}.dir-method{gap:var(--sp-5);max-width:760px;display:grid}.dir-grid{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.dir-grid-2{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.dir-card{gap:var(--sp-3);padding:var(--sp-5);background:var(--white);border:1px solid var(--rule-light);border-radius:var(--r-md);transition:border-color var(--t-micro,.2s) ease, transform var(--t-micro,.2s) ease;flex-direction:column;display:flex;position:relative}.dir-card:hover{border-color:var(--blue);transform:translateY(-2px)}.dir-card-head{align-items:center;gap:var(--sp-3);display:flex}.dir-mark{background:var(--blue-tint);width:40px;height:40px;color:var(--blue-deep);font-family:var(--font-display);border-radius:10px;flex:none;place-items:center;font-weight:700;display:grid}.dir-card-name{font-family:var(--font-display);font-size:var(--fs-md);letter-spacing:var(--ls-snug);font-weight:700;line-height:1.2}.dir-card-name a:after{content:"";border-radius:inherit;position:absolute;inset:0}.dir-card-name a:focus-visible{outline:none}.dir-card:has(a:focus-visible){outline:2px solid var(--blue);outline-offset:2px}.dir-card-vendor{font-size:var(--fs-xs);color:var(--fg-faint)}.dir-card-tagline{font-size:var(--fs-sm);color:var(--ink-70);line-height:1.5}.dir-card-best{font-size:var(--fs-sm);color:var(--ink);line-height:1.45}.dir-card-best span{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-faint);margin-bottom:2px;display:block}.dir-card-price{padding-top:var(--sp-3);border-top:1px solid var(--rule-light);font-size:var(--fs-sm);color:var(--blue-deep);margin-top:auto;font-weight:600}.dir-cats{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.dir-cat{gap:var(--sp-2);padding:var(--sp-5);border-radius:var(--r-md);background:var(--paper);border:1px solid var(--rule-light);flex-direction:column;display:flex}.dir-cat:hover{border-color:var(--blue)}.dir-cat-name{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:var(--ls-snug);font-weight:700}.dir-cat-intro{font-size:var(--fs-sm);color:var(--ink-70);line-height:1.5}.dir-cat-count{padding-top:var(--sp-2);font-size:var(--fs-sm);color:var(--blue-deep);margin-top:auto;font-weight:600}.dir-cat:hover .arrow{transform:translate(4px)}.dir-pairs{gap:var(--sp-3);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));padding:0;list-style:none;display:grid}.dir-pairs a{border:1px solid var(--rule-light);border-radius:var(--r-md);background:var(--white);padding:14px 18px;font-weight:600;display:block}.dir-pairs a:hover{border-color:var(--blue)}.dir-pairs span{color:var(--flare);padding-inline:2px;font-weight:500}.dir-guides{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.dir-guides-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.dir-guide{gap:var(--sp-2);padding:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--rule-light);background:var(--white);flex-direction:column;display:flex}.dir-guide:hover{border-color:var(--blue)}.dir-guide-title{font-family:var(--font-display);font-size:var(--fs-md);letter-spacing:var(--ls-snug);font-weight:700;line-height:1.25}.dir-guide-desc{font-size:var(--fs-sm);color:var(--ink-70);line-height:1.5}.dir-guide-date{font-size:var(--fs-xs);color:var(--fg-faint);margin-top:auto}.dir-links{gap:var(--sp-2);padding:0;list-style:none;display:grid}.dir-links a{text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:3px;font-weight:600}.dir-layout{gap:var(--sp-7);padding-block:var(--sp-7) var(--sp-9);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1000px){.dir-layout,.dir-layout-3{grid-template-columns:minmax(0,1fr) 300px}}@media (width>=1240px){.dir-layout-3{grid-template-columns:200px minmax(0,1fr) 280px}}.dir-main{gap:var(--sp-7);align-content:start;min-width:0;display:grid}.dir-aside{gap:var(--sp-4);align-content:start;display:grid}@media (width>=1000px){.dir-aside{align-self:start;position:sticky;top:92px}}.dir-toc{font-size:var(--fs-sm)}.dir-toc ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dir-toc a{color:var(--ink-70);line-height:1.35;display:block}.dir-toc a:hover{color:var(--blue)}.dir-toc-title,.dir-glance-title,.dir-block-title,.dir-takeaways-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-faint);margin-bottom:var(--sp-3);font-weight:500}@media (width<=1239px){.dir-layout-3 .dir-toc{padding:var(--sp-4) var(--sp-5);border:1px solid var(--rule-light);border-radius:var(--r-md);background:var(--white);grid-column:1/-1}.dir-layout-3 .dir-toc ol{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (width>=1240px){.dir-toc{align-self:start;position:sticky;top:92px}}.dir-block h2,.dir-faq h2,.dir-sources h2,.dir-editorial h2{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:var(--ls-snug);margin-bottom:var(--sp-4);font-weight:700;line-height:1.2}.dir-block>p,.dir-block dd,.dir-block li{line-height:1.6}.dir-block>p+p{margin-top:var(--sp-3)}.dir-block h3{font-size:var(--fs-base);margin-bottom:var(--sp-2);font-weight:700}.dir-note{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--fg-faint);line-height:1.5}.dir-note a,.dir-block>p a{text-underline-offset:3px;text-decoration:underline}.dir-block [id],.dir-main>section[id],.dir-block,.dir-faq,.dir-sources,.dir-editorial{scroll-margin-top:92px}.dir-takeaways{padding:var(--sp-5) var(--sp-6);border-radius:var(--r-md);background:var(--blue-tint);border:1px solid #b6e3df}.dir-takeaways .dir-takeaways-title{color:var(--blue-deep)}.dir-takeaways ul{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.dir-takeaways li{padding-left:26px;line-height:1.5;position:relative}.dir-takeaways li:before{content:"";background:var(--blue);border-radius:50%;width:9px;height:9px;position:absolute;top:.55em;left:4px}.dir-table-wrap{border:1px solid var(--rule-light);border-radius:var(--r-md);background:var(--white);overflow-x:auto}.dir-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.dir-table th,.dir-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule-light);padding:12px 16px;line-height:1.45}.dir-table tbody tr:last-child>*{border-bottom:0}.dir-table thead th{background:var(--paper-2);white-space:nowrap;font-weight:600}.dir-table tbody th{font-weight:600}.dir-table a{text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:3px}.dir-table-vs td{min-width:180px}.dir-fit{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.dir-fit>div{padding:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--rule-light);background:var(--white)}.dir-fit ul{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.dir-fit li{padding-left:24px;position:relative}.dir-fit-yes li:before{content:"✓";color:var(--blue);font-weight:700;position:absolute;left:0}.dir-fit-no li:before{content:"✕";color:var(--flare);font-weight:700;position:absolute;left:0}.dir-features{gap:var(--sp-3);margin:0;display:grid}.dir-features>div{padding:var(--sp-4) var(--sp-5);border-left:3px solid var(--blue);background:var(--white);border-radius:0 var(--r-sm) var(--r-sm) 0}.dir-features dt{font-weight:700}.dir-features dd{color:var(--ink-70);margin:4px 0 0}.dir-steps{counter-reset:step;gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.dir-steps li{counter-increment:step;min-height:30px;padding-left:44px;position:relative}.dir-steps li:before{content:counter(step);background:var(--ink);width:30px;height:30px;color:var(--paper);font-size:var(--fs-sm);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:-2px;left:0}.inline-cta{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-md);background:var(--flare-tint);border:1px solid #ffc7b3;flex-wrap:wrap;display:flex}.inline-cta p{color:var(--ink);flex:280px;margin:0;line-height:1.5}.inline-cta strong{font-weight:700}.inline-cta a{border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font-size:var(--fs-sm);flex:none;padding:12px 20px;font-weight:600;text-decoration:none}.inline-cta a:hover{background:var(--blue-deep)}.dir-glance,.dir-sticky{padding:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--rule-light);background:var(--white)}.dir-glance dl{font-size:var(--fs-sm);gap:10px;margin:0;display:grid}.dir-glance dl>div{justify-content:space-between;gap:var(--sp-3);display:flex}.dir-glance dt{color:var(--fg-faint)}.dir-glance dd{text-align:right;margin:0;font-weight:600}.dir-glance a{text-underline-offset:3px;text-decoration:underline}.dir-sticky{background:var(--ink);border-color:var(--ink);color:var(--on-dark);gap:var(--sp-4);display:grid}.dir-sticky-title{font-family:var(--font-display);font-size:var(--fs-md);color:#fff;font-weight:700;line-height:1.25}.dir-sticky-points{gap:var(--sp-2);font-size:var(--fs-sm);margin:0;padding:0;list-style:none;display:grid}.dir-sticky-points li{padding-left:22px;position:relative}.dir-sticky-points li:before{content:"✓";color:#7fd8d1;font-weight:700;position:absolute;left:0}.dir-sticky-btn{justify-content:center}.dir-sticky .lnk{color:var(--on-dark)}.dir-faq{gap:var(--sp-4);display:grid}.dir-faq h2{margin-bottom:0}.dir-faq .faq-item{padding:var(--sp-4) var(--sp-5);border-radius:var(--r-md);background:var(--white);border:1px solid var(--rule-light)}.dir-faq .faq-q{font-size:var(--fs-base);margin-bottom:var(--sp-2);font-weight:700}.dir-faq .faq-item p{color:var(--ink-70);line-height:1.6}.dir-sources ol{font-size:var(--fs-sm);gap:6px;padding-left:1.4em;display:grid}.dir-sources a{color:var(--ink-70);text-underline-offset:3px;word-break:break-word;text-decoration:underline}.dir-editorial{padding:var(--sp-5) var(--sp-6);border-radius:var(--r-md);background:var(--paper-2)}.dir-editorial p{line-height:1.6}.dir-editorial ul{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--ink-70);gap:4px;padding-left:1.2em;display:grid}.dir-prose{max-width:72ch}.dir-prose h2{scroll-margin-top:92px}.dir-prose table{display:block;overflow-x:auto}.dir-prose th,.dir-prose td{white-space:normal;vertical-align:top;min-width:120px}.dir-prose td:not(:first-child),.dir-prose th:not(:first-child){text-align:left}.dir-prose .inline-cta{margin-block:1.6em}.dir-prose .inline-cta p:before,.dir-prose .inline-cta a:before{content:none}@media (width<=600px){.dir-takeaways,.dir-editorial,.inline-cta{padding:var(--sp-4)}.dir-table th,.dir-table td{padding:10px 12px}}.dir-walk{margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-md);border:1px solid var(--blue);background:var(--blue-tint);gap:4px;display:grid}.dir-walk:hover{background:#c4e9e6}.dir-walk-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--blue-deep)}.dir-walk-title{font-family:var(--font-display);font-size:var(--fs-md);letter-spacing:var(--ls-snug);font-weight:700}.dir-walk-desc{font-size:var(--fs-sm);color:var(--ink-70)}.dir-walk-groups{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.dir-walk-group{padding:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--rule-light);background:var(--paper)}.dir-walk-group h3{font-family:var(--font-display);font-size:var(--fs-md);margin-bottom:var(--sp-3);font-weight:700}.dir-walk-group h3 a:hover{color:var(--blue)}.dir-walk-group ul{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.dir-walk-group li a{border-top:1px solid var(--rule-light);font-size:var(--fs-sm);gap:2px;padding:8px 0;display:grid}.dir-walk-group li:first-child a{border-top:0}.dir-walk-group li a span{color:var(--ink-70)}.dir-walk-group li a:hover strong{color:var(--blue)}.dir-glance .lnk{margin-top:var(--sp-3)}.dir-prose pre{white-space:pre-wrap;word-break:break-word;padding:var(--sp-5) var(--sp-5) var(--sp-4);border-radius:var(--r-md);font-family:var(--font-mono);margin-top:1em;font-size:.82em;line-height:1.6;position:relative;overflow-x:auto}.dir-prose pre code{font-family:inherit}.dir-copy{border-radius:var(--r-pill);color:#fff;font:600 var(--fs-xs) var(--font-body), system-ui, sans-serif;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;padding:4px 10px;position:absolute;top:8px;right:8px}.dir-copy:hover{background:#ffffff2e}
