.ds-head{position:relative;isolation:isolate;color:var(--p);padding-block:var(--bt);background:var(--bs)}.ds-head .crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);list-style:none;padding:0;margin:0;font-size:var(--text-xs);color:var(--au)}.ds-head .crumbs li:not(:first-child):before{content:'' / '';margin-inline-end:var(--space-xs);color:var(--at)}.ds-head .crumbs a{color:var(--al);transition:color var(--dur-fast)}@media (hover:hover){.ds-head .crumbs a:hover{color:var(--as)}}.ds-head .crumbs .current{color:var(--p);font-weight:var(--weight-semibold);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aqo{margin:0;font-size:var(--text-label);font-weight:var(--label-weight);text-transform:var(--label-case);letter-spacing:var(--tracking-caps-sm);color:var(--al)}.w9{margin:var(--space-sm) 0 0;font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--text-h1);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);color:var(--p);text-wrap:balance}.xh{margin:var(--space-lg) 0 0;max-width:var(--measure-page);font-size:var(--text-lede);line-height:var(--leading-body);color:var(--a7);text-wrap:pretty}.xi{list-style:none;padding:0;margin:var(--space-2xl) 0 0;display:flex;flex-wrap:wrap;row-gap:var(--space-sm);font-size:var(--text-sm);color:var(--al)}.xl{color:var(--p);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.ww a{color:var(--p);font-weight:var(--weight-bold);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--bk);transition:text-decoration-color var(--dur-fast) var(--ease-standard)}@media (hover:hover){.ww a:hover{text-decoration-color:var(--p)}}.ww a:focus-visible{outline:2px solid var(--p);outline-offset:2px;border-radius:var(--radius-2xs)}.wx{padding-block-start:var(--bu)}.w6{min-width:0}.wn{display:none}@media (width>=75em){.wx{display:grid;grid-template-columns:minmax(0,1fr) 17rem;column-gap:var(--space-3xl);align-items:start}.wn{display:block;position:sticky;top:calc(var(--sticky-top) + env(safe-area-inset-top,0px))}}@media (width>=980px) and (width<=74.99em){.wm.tas-fab:not([hidden]){display:inline-flex;transform:translateY(0)}body:has(.wm) .site-footer{--ba:4rem}}.dg{padding-block:var(--x);border-top:var(--border-w) solid var(--border)}.c8{margin:0 0 var(--space-sm);font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--bf);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-heading);color:var(--fg-strong);text-wrap:balance}.c8+:is(.qa,ul){margin-top:var(--space-lg)}.pc{margin:0 0 var(--space-xl);max-width:var(--measure-page);font-size:var(--text-md);line-height:var(--leading-body);color:var(--fg-muted);text-wrap:pretty}.sl{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-lg);align-items:start;max-width:var(--measure-page);padding:var(--space-xl) var(--space-2xl) var(--space-xl) var(--space-xl);background:var(--bg-elevated);border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.sl>*{grid-column:2}.sl>.wy{grid-column:1;grid-row:1/span 2;width:20px;height:20px;margin-top:1px;color:var(--accent)}.wz{margin:var(--space-3xs) 0 var(--space-2xs);font-family:var(--font-sans);font-size:var(--text-label);font-weight:var(--label-weight);text-transform:var(--label-case);letter-spacing:var(--tracking-caps-sm);line-height:var(--leading-snug);color:var(--fg-muted)}@media (width<=480px){.sl{column-gap:var(--space-md);padding:var(--space-lg)}.sl>.wy{grid-row:1}.sl>.wz{align-self:center;margin:0}.sl>:not(.wy):not(.wz){grid-column:1/-1;margin-top:var(--space-md)}}.qa{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr));gap:var(--space-lg)}.dn{display:flex;flex-direction:column;gap:var(--space-xs);height:100%;padding:var(--space-xl);border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-card);color:var(--fg);text-decoration:none;transition:transform var(--dur-fast),border-color var(--dur-fast),box-shadow var(--dur-moderate) var(--ease-standard)}.dn:focus-visible{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}@media (hover:hover){.dn:hover{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}}.dn:active{transform:translateY(var(--v));transition-duration:var(--dur-micro)}.s7{margin:0;font-size:var(--text-2xs);font-weight:var(--label-weight);color:var(--fg-muted)}.d1{margin:0;font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--t);font-weight:var(--weight-bold);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--fg-strong);text-wrap:balance}@media (hover:hover){.dn:hover .d1{color:var(--accent)}}.e6{margin:0;font-size:var(--text-base);line-height:var(--leading-body);color:var(--fg-muted)}.r3{margin:auto 0 0;padding-top:var(--space-xs);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--fg)}.r3:after{content:none;color:var(--accent)}.p5{list-style:none;margin:var(--space-xl) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:max(var(--space-sm),var(--af,0px))}.p5 a{display:inline-flex;align-items:center;min-block-size:var(--tap-min);padding:var(--space-2xs) var(--space-lg);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius-pill);background:var(--bg-elevated);color:var(--fg);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none;transition:color var(--dur-fast),border-color var(--dur-fast),background var(--dur-fast)}.p5 a:after{content:none;margin-inline-start:.3em;color:var(--accent)}.p5 a[target=_blank]:after{content:'↗' / ''}.p5 a:focus-visible{color:var(--accent);border-color:var(--accent-a40);background:var(--accent-wash)}@media (hover:hover){.p5 a:hover{color:var(--accent);border-color:var(--accent-a40);background:var(--accent-wash)}}@media print{.ds-head:before,.wn,.wm{display:none!important}.ds-head{padding-block:var(--space-lg)!important}.dn,.sl{break-inside:avoid;box-shadow:none}}.hu{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:'photo head' 'links links';column-gap:var(--space-xl);align-items:center;padding:var(--space-2xl);background:var(--bg-elevated);border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.ia{grid-area:photo;width:4.5rem;height:4.5rem;margin:4px;border-radius:var(--radius-pill);object-fit:cover;box-shadow:0 0 0 3px var(--bg-elevated),0 0 0 4px var(--border-strong)}.i0{grid-area:head;min-width:0}.i1{margin:0;font-size:var(--text-label);font-weight:var(--label-weight);line-height:var(--leading-snug);letter-spacing:var(--tracking-caps-sm);text-transform:var(--label-case);color:var(--fg-subtle)}.hv{margin:var(--space-2xs) 0 var(--space-3xs);font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--t);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-heading)}.hv a{color:var(--fg-strong);text-decoration:none;padding-block:4px;transition:color var(--dur-fast)}.hv a:hover{color:var(--accent)}.i2{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--fg-muted)}.e8{grid-area:links;display:flex;flex-wrap:wrap;align-items:center;gap:max(var(--space-sm),var(--af,0px));margin:var(--space-xl) 0 0;padding-top:var(--space-lg);border-top:var(--border-w) solid var(--border);font-size:var(--text-sm)}.e8 a{display:inline-flex;align-items:center;min-block-size:max(2.25rem,var(--tap-min));padding:var(--space-2xs) var(--space-lg);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius-pill);background:var(--bg-elevated);color:var(--fg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);text-decoration:none;transition:color var(--dur-fast),border-color var(--dur-fast),background var(--dur-fast)}.e8 a[target=_blank]:after{content:'↗' / '';margin-inline-start:.3em;color:var(--fg-subtle)}.e8 a:hover,.e8 a:focus-visible{color:var(--accent);border-color:var(--accent-a40);background:var(--accent-wash)}.e8 .g2{color:var(--fg-strong);font-weight:var(--weight-bold)}.e8 .g2:after{content:none;margin-inline-start:.35em;transition:transform var(--dur-fast) var(--ease-standard)}.e8 .g2:hover{border-color:var(--accent);background:color-mix(in oklch,var(--accent) 14%,var(--bg-elevated))}.e8 .g2:hover:after{transform:translateX(2px)}.hw{display:inline-flex;flex-wrap:wrap;gap:max(var(--space-sm),var(--af,0px));margin-inline-start:auto}.e8 .dz{padding-inline:var(--space-xs);border-color:transparent;background:transparent;color:var(--fg-muted);font-weight:var(--weight-medium);text-decoration:underline;text-decoration-color:color-mix(in oklch,var(--fg-muted) 40%,transparent);text-underline-offset:3px}.e8 .dz:hover,.e8 .dz:focus-visible{border-color:transparent;background:transparent;color:var(--accent);text-decoration-color:currentColor}@media (width<=560px){.hu{grid-template-areas:'photo head' 'links links';column-gap:var(--space-lg);padding:var(--space-xl)}.ia{width:3.5rem;height:3.5rem;align-self:center}.hw{margin-inline-start:0}.hw>.dz:first-child{margin-inline-start:calc(-1 * (var(--space-xs) + var(--border-w)))}}@media (prefers-reduced-motion:reduce){.e8 .g2:after{transition:none}}@media print{.hu{break-inside:avoid;page-break-inside:avoid;box-shadow:none}}.x3{margin-block:0 var(--x)}.x4{margin-block-end:var(--space-3xl)}.xm{margin:0}.xm dt{margin:0 0 var(--space-2xs);font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--t);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--fg-strong)}.xm dfn{font-style:normal}.xm dd{margin:0;font-size:var(--text-md);line-height:var(--leading-body);color:var(--fg);text-wrap:pretty}.xp{max-width:var(--measure-page);padding-block-end:var(--x)}.xp>h2:first-child{margin-top:0}.xp>h2:first-child:after{content:none}.at6{overflow-x:auto;overscroll-behavior-x:contain;border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:linear-gradient(to right,var(--bg-elevated) 18px,transparent) 0 0,linear-gradient(to left,var(--bg-elevated) 18px,transparent) 100% 0,linear-gradient(to right,var(--scroll-shadow),transparent) 0 0,linear-gradient(to left,var(--scroll-shadow),transparent) 100% 0;background-repeat:no-repeat;background-color:var(--bg-elevated);background-size:36px 100%,36px 100%,18px 100%,18px 100%;background-attachment:local,local,scroll,scroll}.at6:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.adg{width:100%;min-width:36rem;border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.adg th,.adg td{padding:var(--space-sm) var(--space-lg);text-align:start;vertical-align:middle;white-space:nowrap;border-bottom:var(--border-w) solid var(--border)}.adg tbody tr:last-child :is(th,td){border-bottom:none}.adg thead th{padding-block:var(--space-sm);background:var(--bg-subtle);font-size:var(--text-label);font-weight:var(--label-weight);text-transform:var(--label-case);letter-spacing:var(--tracking-caps-sm);color:var(--fg-subtle);border-bottom-color:var(--border-strong)}.adg thead th:first-child{width:100%}.adg tbody tr{transition:background var(--dur-fast) var(--ease-standard)}@media (hover:hover){.adg tbody tr:hover{background:var(--accent-a5)}}.adg tbody th{font-weight:var(--weight-semibold)}.adg thead th:first-child,.adg tbody th{position:sticky;inset-inline-start:0;z-index:1;background:var(--bg-elevated);box-shadow:inset calc(-1 * var(--border-w)) 0 0 var(--border)}.adg thead th:first-child{background:var(--bg-subtle);z-index:2}@media (width<=30em){.adg thead th:first-child{width:auto}.adg tbody th{white-space:normal;min-width:9.5rem;max-width:10.5rem}.adg th,.adg td{padding-inline:var(--space-md)}}@media (hover:hover){.adg tbody tr:hover th{background:var(--accent-wash)}}.xg{display:inline-block;min-block-size:24px;color:var(--fg-strong);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}.xg:focus-visible{color:var(--accent)}@media (hover:hover){.adg tbody tr:hover .xg{color:var(--accent)}}.xj{font-weight:var(--weight-bold);color:var(--fg-strong)}.ag8{display:block;font-size:var(--text-xs);color:var(--fg-muted)}.xk,.a9b{color:var(--fg-muted)}.ady{margin-inline-start:.15em;color:var(--fg-muted);font-weight:var(--weight-normal)}.a03{margin:var(--space-sm) 0 0;max-width:var(--measure-page);font-size:var(--text-sm);line-height:var(--leading-body);color:var(--fg-muted)}@media (width<=47.99em){.abw{flex-direction:column}.abw a{display:flex;justify-content:space-between;gap:var(--space-sm);padding-block:var(--space-xs);border-radius:var(--radius-md)}}.ym{list-style:none;margin:0;padding:0;display:grid;max-width:var(--measure-page);border-top:var(--border-w) solid var(--border)}.ew{margin:0;padding:var(--space-md) 0;border-bottom:var(--border-w) solid var(--border);line-height:var(--leading-body)}.ew:last-child{border-bottom:0}.ey{font-weight:var(--weight-semibold);color:var(--fg-strong)}.e0{color:var(--fg-strong)}.eo{color:var(--fg-muted);font-size:var(--text-sm)}.eo a{color:var(--fg);text-decoration:underline;text-decoration-color:color-mix(in oklch,currentColor 45%,transparent);text-underline-offset:2px}@media (hover:hover){.eo a:hover{text-decoration-color:currentColor}}.abt{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:var(--space-md)}.fu{display:grid;grid-template-columns:4rem minmax(0,1fr) auto;align-items:center;gap:var(--space-md);height:100%;padding:var(--space-md) var(--space-lg) var(--space-md) var(--space-md);border:var(--border-w) solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-card);color:var(--fg);text-decoration:none;transition:transform var(--dur-fast),border-color var(--dur-fast),box-shadow var(--dur-moderate) var(--ease-standard)}.fu:focus-visible{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}@media (hover:hover){.fu:hover{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}}.fu:active{transform:translateY(var(--v));transition-duration:var(--dur-micro)}.gj{display:block;width:4rem;height:4rem;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-subtle)}.gd{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}.gf{font-size:var(--text-label);font-weight:var(--label-weight);text-transform:var(--label-case);letter-spacing:var(--tracking-caps-sm);color:var(--fg-subtle)}.f9{font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-snug);color:var(--fg-strong);transition:color var(--dur-fast)}@media (hover:hover){.fu:hover .f9{color:var(--accent)}}.gg{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3xs) var(--space-sm);font-size:var(--text-xs);color:var(--fg-muted)}.fj{--a0:var(--fg-subtle);--c0:var(--fg);display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-label);font-weight:var(--label-weight);text-transform:var(--label-case);letter-spacing:var(--tracking-caps-sm);color:var(--c0)}.fj:before{content:'';width:8px;height:8px;flex-shrink:0;border-radius:var(--radius-pill);background:var(--a0)}.fj[data-v=reference]{--a0:var(--accent)}.fj[data-v=highly-recommended]{--a0:var(--i)}.fj[data-v=recommended]{--a0:var(--h)}.fj[data-v=mixed]{--a0:var(--j)}.fj[data-v=pass]{--a0:var(--bv)}.gh{flex-basis:100%;font-variant-numeric:tabular-nums}.ga{font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--ay);font-weight:var(--weight-bold);line-height:var(--o);font-variant-numeric:tabular-nums;color:var(--fg-strong)}.ga:after{content:'/10';margin-inline-start:var(--space-3xs);font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--fg-muted)}.x5{grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}.iu{position:relative}.ik{color:inherit;text-decoration:none;display:inline-block;min-block-size:24px}.ik:before{content:'';position:absolute;inset:0;border-radius:inherit}.iu:focus-within{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}.ik:focus-visible{color:var(--accent)}@media (hover:hover){.iu:hover .ik{color:var(--accent)}}