.ds-head{position:relative;isolation:isolate;color:var(--u);padding-block:var(--bu);background:var(--bt)}.ds-head:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--accent)}.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(--a8)}.ds-head .crumbs li:not(:first-child):before{content:'' / '';margin-inline-end:var(--space-xs);color:var(--bb)}.ds-head .crumbs a{color:var(--a7);transition:color var(--dur-fast)}.ds-head .crumbs a:hover{color:var(--at)}.ds-head .crumbs .current{color:var(--u);font-weight:var(--weight-semibold);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apr{margin:0;font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);color:var(--at)}.v4{margin:var(--space-sm) 0 0;font-family:var(--font-display);font-size-adjust:var(--g);font-size:clamp(2rem,6.5vw,3.75rem);font-weight:var(--weight-bold);line-height:var(--k);letter-spacing:var(--au);color:var(--u);text-wrap:balance}.wb{margin:var(--space-lg) 0 0;max-width:var(--v);font-size:clamp(1.0625rem,1rem + .3vw,1.15rem);line-height:var(--leading-body);color:var(--bf);text-wrap:pretty}.wc{list-style:none;padding:0;margin:var(--space-2xl) 0 0;display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-xl);font-size:var(--text-sm);color:var(--a7)}.wg{color:var(--u);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.vq a{color:var(--u);font-weight:var(--weight-bold);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--bo);transition:text-decoration-color var(--dur-fast) var(--ease-standard)}.vq a:hover{text-decoration-color:var(--u)}.vq a:focus-visible{outline:2px solid var(--u);outline-offset:2px;border-radius:2px}.vr{padding-block-start:var(--bv)}.vz{min-width:0}.vb{display:none}@media (width>=75em){.vr{display:grid;grid-template-columns:minmax(0,1fr) 17rem;column-gap:var(--space-3xl);align-items:start}.vb{display:block;position:sticky;top:calc(var(--sticky-top) + env(safe-area-inset-top,0px))}}@media (width>=980px) and (width<=74.99em){.va.tas-fab:not([hidden]){display:inline-flex;transform:translateY(0)}body:has(.va) .site-footer{--bd:4rem}}.c9{padding-block:var(--ac);border-top:var(--border-w) solid var(--border)}.c6{margin:0 0 var(--space-sm);font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--bj);font-weight:var(--weight-bold);line-height:var(--k);letter-spacing:var(--h);color:var(--fg-strong);text-wrap:balance}.c6+:is(.i5,ul){margin-top:var(--space-lg)}.hw{margin:0 0 var(--space-xl);max-width:var(--v);font-size:var(--text-md);line-height:var(--leading-body);color:var(--fg-muted);text-wrap:pretty}.rb{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-lg);align-items:start;max-width:var(--v);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)}.rb>*{grid-column:2}.rb>.vt{grid-column:1;grid-row:1/span 2;box-sizing:content-box;width:20px;height:20px;padding:var(--space-sm);border:var(--border-w) solid color-mix(in oklch,var(--accent) 20%,transparent);border-radius:var(--radius-md);background:color-mix(in oklch,var(--accent) 12%,transparent);color:var(--accent)}.vu{margin:var(--space-3xs) 0 var(--space-2xs);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);line-height:var(--leading-snug);color:var(--accent)}@media (width<=480px){.rb{column-gap:var(--space-md);padding:var(--space-lg)}.rb>.vt{grid-row:1}.rb>.vu{align-self:center;margin:0}.rb>:not(.vt):not(.vu){grid-column:1/-1;margin-top:var(--space-md)}}.i5{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr));gap:var(--space-lg)}.dm{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)}.dm:hover,.dm:focus-visible{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}.dm:active{transform:translateY(var(--aa));transition-duration:var(--dur-micro)}.rr{margin:0;font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--accent)}.d0{margin:0;font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--z);font-weight:var(--weight-bold);line-height:var(--leading-snug);letter-spacing:var(--w);color:var(--fg-strong);text-wrap:balance}.dm:hover .d0{color:var(--accent)}.e5{margin:0;font-size:var(--text-base);line-height:var(--leading-body);color:var(--fg-muted)}.qz{margin:auto 0 0;padding-top:var(--space-xs);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--fg)}.qz:after{content:' →' / '';color:var(--accent)}.iy{list-style:none;margin:var(--space-xl) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:max(var(--space-sm),var(--ak,0px))}.iy a{display:inline-flex;align-items:center;min-block-size:var(--q);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)}.iy a:after{content:' →' / '';margin-inline-start:.3em;color:var(--accent)}.iy a[target=_blank]:after{content:'↗' / ''}.iy a:hover,.iy a:focus-visible{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 45%,transparent);background:color-mix(in oklch,var(--accent) 6%,var(--bg-elevated))}@media print{.ds-head:before,.vb,.va{display:none!important}.ds-head{padding-block:var(--space-lg)!important}.dm,.rb{break-inside:avoid;box-shadow:none}}.g1{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)}.g9{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 color-mix(in oklab,var(--accent) 35%,var(--border))}.hg{grid-area:head;min-width:0}.hh{margin:0;font-size:var(--text-2xs);font-weight:var(--weight-bold);line-height:var(--leading-snug);letter-spacing:var(--tracking-caps-sm);text-transform:uppercase;color:var(--accent)}.g2{margin:var(--space-2xs) 0 var(--space-3xs);font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--z);font-weight:var(--weight-bold);line-height:var(--k);letter-spacing:var(--h)}.g2 a{color:var(--fg-strong);text-decoration:none;padding-block:4px;transition:color var(--dur-fast)}.g2 a:hover{color:var(--accent)}.hj{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--fg-muted)}.e9{grid-area:links;display:flex;flex-wrap:wrap;align-items:center;gap:max(var(--space-sm),var(--ak,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)}.e9 a{display:inline-flex;align-items:center;min-block-size:max(2.25rem,var(--q));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)}.e9 a[target=_blank]:after{content:'↗' / '';margin-inline-start:.3em;color:var(--accent)}.e9 a:hover,.e9 a:focus-visible{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 45%,transparent);background:color-mix(in oklch,var(--accent) 6%,var(--bg-elevated))}.e9 .gs{color:var(--accent);font-weight:var(--weight-bold);border-color:color-mix(in oklch,var(--accent) 40%,transparent);background:color-mix(in oklch,var(--accent) 8%,var(--bg-elevated))}.e9 .gs:after{content:'→' / '';margin-inline-start:.35em;transition:transform var(--dur-fast) var(--ease-standard)}.e9 .gs:hover{border-color:var(--accent);background:color-mix(in oklch,var(--accent) 14%,var(--bg-elevated))}.e9 .gs:hover:after{transform:translateX(2px)}.g3{display:inline-flex;flex-wrap:wrap;gap:max(var(--space-sm),var(--ak,0px));margin-inline-start:auto}.e9 .dx{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}.e9 .dx:hover,.e9 .dx:focus-visible{border-color:transparent;background:transparent;color:var(--accent);text-decoration-color:currentColor}@media (width<=560px){.g1{grid-template-areas:'photo head' 'links links';column-gap:var(--space-lg);padding:var(--space-xl)}.g9{width:3.5rem;height:3.5rem;align-self:center}.g3{margin-inline-start:0}.g3>.dx:first-child{margin-inline-start:calc(-1 * (var(--space-xs) + var(--border-w)))}}@media (prefers-reduced-motion:reduce){.e9 .gs:after{transition:none}}@media print{.g1{break-inside:avoid;page-break-inside:avoid;box-shadow:none}}.wx{margin-block:0 var(--ac)}.wy{margin-block-end:var(--space-3xl)}.wi{margin:0}.wi dt{margin:0 0 var(--space-2xs);font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--z);font-weight:var(--weight-bold);line-height:var(--k);letter-spacing:var(--w);color:var(--fg-strong)}.wi dfn{font-style:normal}.wi dd{margin:0;font-size:var(--text-md);line-height:var(--leading-body);color:var(--fg);text-wrap:pretty}.wm{max-width:var(--v);padding-block-end:var(--ac)}.wm>h2:first-child{margin-top:0}.wm>h2:first-child:after{content:none}.as2{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) 30%,transparent) 0 0,linear-gradient(to left,var(--bg-elevated) 30%,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:28px 100%,28px 100%,18px 100%,18px 100%;background-attachment:local,local,scroll,scroll}.as2:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.acf{width:100%;min-width:36rem;border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.acf th,.acf 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)}.acf tbody tr:last-child :is(th,td){border-bottom:none}.acf thead th{padding-block:var(--space-sm);background:var(--bg-subtle);font-size:var(--text-2xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);color:var(--fg-subtle);border-bottom-color:var(--border-strong)}.acf thead th:first-child{width:100%}.acf tbody tr{transition:background var(--dur-fast) var(--ease-standard)}.acf tbody tr:hover{background:color-mix(in oklch,var(--accent) 5%,transparent)}.acf tbody th{font-weight:var(--weight-semibold)}.acf thead th:first-child,.acf 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)}.acf thead th:first-child{background:var(--bg-subtle);z-index:2}@media (width<=30em){.acf thead th:first-child{width:auto}.acf tbody th{white-space:normal;min-width:9.5rem;max-width:10.5rem}.acf th,.acf td{padding-inline:var(--space-md)}}.acf tbody tr:hover th{background:color-mix(in oklch,var(--accent) 5%,var(--bg-elevated))}.wa{display:inline-block;min-block-size:24px;color:var(--fg-strong);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard)}.acf tbody tr:hover .wa,.wa:focus-visible{color:var(--accent)}.wd{font-weight:var(--weight-bold);color:var(--fg-strong)}.aga{display:block;font-size:var(--text-xs);color:var(--fg-muted)}.wf,.a8g{color:var(--fg-muted)}.acy{margin-inline-start:.15em;color:var(--fg-muted);font-weight:var(--weight-normal)}.az4{margin:var(--space-sm) 0 0;max-width:var(--v);font-size:var(--text-sm);line-height:var(--leading-body);color:var(--fg-muted)}@media (width<=47.99em){.aar{flex-direction:column}.aar a{display:flex;justify-content:space-between;gap:var(--space-sm);padding-block:var(--space-xs);border-radius:var(--radius-md)}}.xh{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-sm)}.ew{margin:0;padding:var(--space-sm) var(--space-md);border:var(--border-w) solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);line-height:var(--leading-body)}.ey{font-weight:var(--weight-semibold);color:var(--fg-strong)}.e0{color:var(--fg-strong)}.ek{color:var(--fg-muted);font-size:var(--text-sm)}.ek a{color:var(--fg);text-decoration:underline;text-decoration-color:color-mix(in oklch,currentColor 45%,transparent);text-underline-offset:2px}.ek a:hover{text-decoration-color:currentColor}.aap{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:var(--space-md)}.fo{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)}.fo:hover,.fo:focus-visible{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}.fo:active{transform:translateY(var(--aa));transition-duration:var(--dur-micro)}.gf{display:block;width:4rem;height:4rem;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-subtle)}.ga{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}.gb{font-size:var(--text-3xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);color:var(--fg-subtle)}.f6{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)}.fo:hover .f6{color:var(--accent)}.gc{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3xs) var(--space-sm);font-size:var(--text-xs);color:var(--fg-muted)}.fd{--a4:var(--fg-subtle);--bc:var(--fg-muted);display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-3xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);color:var(--bc)}.fd:before{content:'';width:6px;height:6px;flex-shrink:0;border-radius:var(--radius-pill);background:var(--a4);box-shadow:0 0 0 3px color-mix(in oklch,var(--a4) 20%,transparent)}.fd[data-v=reference],.fd[data-v=highly-recommended]{--a4:var(--accent);--bc:var(--accent)}.fd[data-v=recommended]{--a4:var(--i);--bc:var(--bx)}.fd[data-v=mixed]{--a4:var(--l);--bc:var(--b1)}.fd[data-v=pass]{--a4:var(--bw);--bc:var(--bq)}.gd{flex-basis:100%;font-variant-numeric:tabular-nums}.f7{font-family:var(--font-display);font-size-adjust:var(--g);font-size:var(--a0);font-weight:var(--weight-bold);line-height:var(--j);font-variant-numeric:tabular-nums;color:var(--fg-strong)}.f7:after{content:'/10';margin-inline-start:var(--space-3xs);font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--fg-muted)}.e8{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}.wz{grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}.hc{position:relative}.ha{color:inherit;text-decoration:none;display:inline-block;min-block-size:24px}.ha:before{content:'';position:absolute;inset:0;border-radius:inherit}.hc:focus-within{transform:translateY(var(--lift-sm));border-color:var(--accent);box-shadow:var(--shadow-card-hover)}.hc:hover .ha,.ha:focus-visible{color:var(--accent)}