@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-italic.DTr-ymY4.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-italic.CSPGnFdO.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-italic.kJKFiXvB.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-italic.CTF9u33F.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-italic.BlcgWI5J.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--muted:color-mix(in srgb,var(--fg) 66%,var(--bg));--faint:color-mix(in srgb,var(--fg) 8%,var(--bg));--line:color-mix(in srgb,var(--fg) 14%,var(--bg));--track:color-mix(in srgb,var(--fg) 7%,var(--bg));--accent-soft:color-mix(in srgb,var(--accent) 11%,var(--bg));--ok:light-dark(oklch(.55 .14 155),oklch(.74 .14 155));--warn:light-dark(oklch(.55 .15 42),oklch(.73 .14 48));--bronze:light-dark(#9c6b43,#c79465);--silver:light-dark(#7f8893,#a7b1bd);--gold:light-dark(#a8831c,#d6ad38);--platinum:light-dark(#3f4b5b,#a8bcd4);--radius-lg:14px;--radius-full:999px;--space-2xs:.4rem;--space-xs:.7rem;--space-sm:1.1rem;--space-md:1.6rem;--space-lg:2.4rem;--space-xl:3.4rem;--space-2xl:5rem;--text-display:clamp(2.7rem,1.5rem + 4vw,4.4rem);--text-h1:clamp(2rem,1.4rem + 2vw,3rem);--text-h2:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);--text-h3:1.25rem;--text-lede:clamp(1.1rem,1rem + .5vw,1.3rem);--text-body:1.0625rem;--text-sm:.875rem;--text-xs:.75rem;--text-2xs:.6875rem;--maxw:1080px;--measure:66ch;--gutter:clamp(1.1rem,4vw,2rem);--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-1:.13s;--dur-2:.26s;--dur-3:.52s;--shadow-1:0 1px 2px color-mix(in srgb,#000 8%,transparent);--shadow-2:0 2px 6px color-mix(in srgb,#000 7%,transparent),0 16px 40px color-mix(in srgb,#000 9%,transparent);--focus-ring:0 0 0 2px var(--bg),0 0 0 4.5px var(--accent)}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.12;letter-spacing:-.022em;margin:0 0 .4em;font-weight:700;text-wrap:balance}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}p{margin:0 0 1em;text-wrap:pretty}a{color:var(--accent);text-decoration:none;transition:color var(--dur-1) var(--ease-out)}a:hover{color:color-mix(in srgb,var(--accent) 78%,var(--fg))}::selection{background:color-mix(in srgb,var(--accent) 24%,var(--bg))}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius)}img,svg{vertical-align:middle}.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.prose{max-width:var(--measure)}.display{font-family:var(--font-display);font-size:var(--text-display);line-height:1.04;letter-spacing:-.03em;font-weight:700;margin:0 0 .3em;text-wrap:balance}.lede{font-size:var(--text-lede);line-height:1.55;color:var(--muted);max-width:var(--measure);margin:0 0 1rem;text-wrap:pretty}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:var(--text-xs);font-weight:700;color:var(--accent);margin:0 0 .6rem}.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:var(--text-2xs);font-weight:700;color:var(--muted)}.data{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em}.asof{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);letter-spacing:.02em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 var(--text-sm)/1 var(--font-body);letter-spacing:.005em;padding:.72rem 1.15rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0);transition-duration:60ms}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;pointer-events:none}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--fg));box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 35%,transparent);color:var(--on-accent)}.btn-secondary{background:var(--surface);color:var(--fg);border-color:var(--line);box-shadow:var(--shadow-1)}.btn-secondary:hover{border-color:color-mix(in srgb,var(--fg) 32%,var(--bg));color:var(--fg)}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover{background:var(--faint);color:var(--fg)}.btn-sm{padding:.45rem .75rem;font-size:var(--text-xs)}.btn-lg{padding:.95rem 1.5rem;font-size:1rem;border-radius:calc(var(--radius) + 2px)}.link-arrow{font-weight:600}.link-arrow:after{content:" →";display:inline-block;transition:translate var(--dur-1) var(--ease-out)}.link-arrow:hover:after{translate:3px 0}.badge{display:inline-flex;align-items:center;gap:.35rem;font:700 var(--text-2xs)/1 var(--font-body);text-transform:uppercase;letter-spacing:.09em;padding:.32rem .6rem;border-radius:var(--radius-full);background:var(--faint);color:var(--muted);border:1px solid transparent}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-ok{background:color-mix(in srgb,var(--ok) 12%,var(--bg));color:var(--ok)}.badge-warn{background:color-mix(in srgb,var(--warn) 12%,var(--bg));color:var(--warn)}.badge-outline{background:transparent;border-color:var(--line);color:var(--muted)}.badge-gold{background:color-mix(in srgb,var(--gold) 14%,var(--bg));color:var(--gold)}.badge-silver{background:color-mix(in srgb,var(--silver) 16%,var(--bg));color:var(--silver)}.badge-bronze{background:color-mix(in srgb,var(--bronze) 14%,var(--bg));color:var(--bronze)}.badge-platinum{background:color-mix(in srgb,var(--platinum) 14%,var(--bg));color:var(--platinum)}.field{display:grid;gap:.35rem}.field>label{font:600 var(--text-xs)/1.2 var(--font-body);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.input{font:400 var(--text-sm)/1.3 var(--font-body);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.68rem .85rem;width:100%;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.input::placeholder{color:color-mix(in srgb,var(--fg) 38%,var(--bg))}.input:hover{border-color:color-mix(in srgb,var(--fg) 28%,var(--bg))}.input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3.5px var(--accent-soft)}.chip{display:inline-flex;align-items:center;gap:.4rem;font:600 var(--text-xs)/1 var(--font-body);color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-full);padding:.45rem .85rem;cursor:pointer;transition:all var(--dur-1) var(--ease-out)}.chip:hover{border-color:color-mix(in srgb,var(--fg) 30%,var(--bg));color:var(--fg)}.chip[aria-pressed=true],.chip.on{background:var(--fg);border-color:var(--fg);color:var(--bg)}.dm-medal{--tc:var(--silver);position:relative;flex:none;width:2.9rem;height:2.9rem;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--tc) 14%,var(--bg));box-shadow:inset 0 0 0 2px var(--tc);color:var(--tc)}.dm-glyph{width:54%;height:54%;color:inherit}.t-gold{--tc:var(--gold)}.t-silver{--tc:var(--silver)}.t-bronze{--tc:var(--bronze)}.t-platinum{--tc:var(--platinum)}.deskmark{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--fg);padding:.35rem 0}.dm-body{display:flex;flex-direction:column;gap:.12rem}.dm-tier{display:flex;align-items:baseline;gap:.4rem}.dm-tier-word{font-family:var(--font-display);font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase}.dm-gold .dm-tier-word{color:var(--gold)}.dm-silver .dm-tier-word{color:var(--silver)}.dm-bronze .dm-tier-word{color:var(--bronze)}.dm-platinum .dm-tier-word{color:var(--platinum)}.dm-mark{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}.dm-meta{display:flex;align-items:baseline;gap:.4rem;font-size:var(--text-xs);color:var(--muted)}.dm-score{font-variant-numeric:tabular-nums;font-weight:700;color:var(--fg)}.score{display:grid;grid-template-columns:1fr auto;gap:.3rem .8rem;align-items:baseline}.score-label{font:600 var(--text-sm)/1.3 var(--font-body)}.score-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-sm)}.score-val small{color:var(--muted);font-weight:400}.score-track{grid-column:1/-1;height:6px;border-radius:var(--radius-full);background:var(--track);overflow:hidden}.score-fill{display:block;height:100%;border-radius:inherit;background:var(--accent);transform-origin:left;transition:width var(--dur-3) var(--ease-out)}.score-fill.ok{background:var(--ok)}.score-fill.warn{background:var(--warn)}.st{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.st caption{text-align:left;font-family:var(--mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;margin-bottom:.6rem}.st th{text-align:left;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;border-bottom:2px solid var(--fg);padding:.5rem .6rem}.st td{border-bottom:1px solid var(--line);padding:.6rem;vertical-align:baseline}.st .num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.st .prod{font-weight:600}.st .src{font-family:var(--mono);font-size:var(--text-xs)}.st tbody tr{transition:background var(--dur-1) var(--ease-out)}.st tbody tr:hover{background:var(--track)}.capsule{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius);padding:1.1rem 1.3rem;margin:0 0 1.2rem;max-width:70ch}.capsule.gap{border-left-color:color-mix(in srgb,var(--fg) 45%,var(--bg));background:var(--faint)}.capsule-text{font-size:1.18rem;line-height:1.55;margin:0;font-weight:500}.capsule-asof{margin:.6rem 0 0}.capsule-next{margin:.7rem 0 0;font-size:var(--text-sm);font-weight:600}.callout{border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius);padding:1rem 1.15rem;background:var(--faint);margin:0 0 1rem}.callout.method{border-left-color:var(--accent);background:var(--accent-soft)}.callout.gap{border-left-color:color-mix(in srgb,var(--fg) 45%,var(--bg))}.callout-title{font-weight:700;font-family:var(--font-display);font-size:.98rem;margin:0 0 .35rem}.callout-body{font-size:var(--text-sm);color:var(--muted)}.callout-body p{margin:0}.por{margin:0;padding:var(--space-md) var(--space-lg);border:1px solid var(--fg);border-top-width:3px;border-radius:3px;background:var(--surface)}.por-eyebrow{margin:0;font-family:var(--mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.por-mark{color:var(--fg);font-weight:700}.por-line{display:flex;align-items:center;gap:.8rem;margin:.35rem 0 0;flex-wrap:wrap}.por-amount{font-family:var(--font-display);font-weight:800;font-size:2.4rem;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.por-stamp{font-family:var(--mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;border:1.5px solid var(--fg);border-radius:3px;padding:.24rem .5rem;white-space:nowrap}.por-read{margin:.6rem 0 0;font-size:var(--text-sm);line-height:1.55}.por-note{margin:.5rem 0 0;font-size:var(--text-xs);line-height:1.5;color:var(--muted)}.por-cite{margin:.7rem 0 0;padding-top:.55rem;border-top:1px solid var(--line)}.por-cite>summary{font-family:var(--mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--muted);cursor:pointer}.por-cite code{display:block;margin-top:.4rem;font-family:var(--mono);font-size:var(--text-xs);line-height:1.5;word-break:break-word}.rc{margin:0;padding:var(--space-md) var(--space-md) var(--space-md) var(--space-lg);border-left:3px solid color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--bg));border-radius:0 var(--radius) var(--radius) 0}.rc-eyebrow{margin:0;font-family:var(--mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}.rc h2{margin:.3rem 0 0;font-size:1.45rem}.rc-summary{margin:.5rem 0 0;line-height:1.6}.rc-themes{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.6rem;margin:var(--space-md) 0 0}.rc-col-h{margin:0 0 .35rem;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;font-weight:700}.rc-plus{color:var(--ok)}.rc-minus{color:var(--warn)}.rc-col ul{margin:0;padding-left:1.1rem;display:grid;gap:.35rem}.rc-col li{font-size:var(--text-sm);line-height:1.45}.rc-n{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted)}.rc-disagree{margin:var(--space-md) 0 0;font-size:var(--text-sm);line-height:1.5;color:var(--muted)}.rc-disagree-k{font-family:var(--mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--fg);display:block;margin-bottom:.15rem}@media(max-width:560px){.rc-themes{grid-template-columns:1fr}}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:.5rem;text-decoration:none;color:var(--fg)}.brand .mark{font-family:var(--font-display);font-weight:700;font-size:1.4rem;letter-spacing:-.015em}.brand .the{color:var(--muted);font-weight:400}.nav{display:flex;gap:.25rem;font-size:var(--text-sm)}.nav a{color:var(--muted);padding:.45rem .7rem;border-radius:var(--radius);transition:all var(--dur-1) var(--ease-out)}.nav a:hover{color:var(--fg);background:var(--faint)}.nav a.active{color:var(--fg);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--radius) var(--radius) 0 0}.footer{border-top:1px solid var(--line);margin-top:var(--space-2xl);padding:var(--space-lg) 0 var(--space-xl);color:var(--muted);font-size:var(--text-sm)}.footer a{color:var(--muted)}.footer a:hover{color:var(--fg)}.crumbs{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;font-size:var(--text-xs);color:var(--muted);font-family:var(--mono);letter-spacing:.01em}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.crumbs .sep{opacity:.45}.pager{display:flex;gap:.35rem;align-items:center}.pager a,.pager span{display:grid;place-items:center;min-width:2.2rem;height:2.2rem;padding:0 .5rem;border-radius:var(--radius);font:600 var(--text-sm)/1 var(--font-body);color:var(--muted);border:1px solid transparent;transition:all var(--dur-1) var(--ease-out)}.pager a:hover{background:var(--faint);color:var(--fg)}.pager .current{background:var(--fg);color:var(--bg)}.pager .gap{color:var(--muted)}@keyframes rise{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}.reveal{opacity:0;translate:0 14px;transition:opacity var(--dur-3) var(--ease-out),translate var(--dur-3) var(--ease-out)}.reveal.in{opacity:1;translate:0 0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;translate:none}}.vcard{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out)}.vcard:hover{box-shadow:var(--shadow-2);translate:0 -2px}.vcard-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:20px 24px 0;flex-wrap:wrap}.vcard-title h3{margin:0 0 .15rem;font-size:1.5rem}.vcard-body{padding:14px 24px 20px;display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem}.vcard-scores{display:grid;gap:.8rem;align-content:start}.vcard-verdict{font-size:var(--text-sm);line-height:1.55;border-left:2px solid var(--line);padding-left:1.1rem;color:var(--muted)}.vcard-verdict b{color:var(--fg)}.vcard-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:14px 24px;border-top:1px solid var(--line);flex-wrap:wrap}.vprice{font-family:var(--mono);font-size:var(--text-sm)}.vprice b{font-size:1.15rem}@media(max-width:600px){.vcard-body{grid-template-columns:1fr}}.ph{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:1.1rem 1.3rem}.ph-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.ph-title{margin:0;font-family:var(--mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}.ph-chart{display:flex;align-items:flex-end;gap:2px;height:76px;margin:1rem 0 .35rem}.ph-bar{flex:1;position:relative;background:var(--accent-soft);border-top:2px solid var(--accent);transition:background var(--dur-1) var(--ease-out)}.ph-bar b{position:absolute;top:-1.5rem;left:50%;translate:-50% 0;font-family:var(--mono);font-size:.66rem;font-weight:700;opacity:0;transition:opacity var(--dur-1) var(--ease-out);white-space:nowrap}.ph-bar:hover{background:color-mix(in srgb,var(--accent) 24%,var(--bg))}.ph-bar:hover b,.ph-bar.now b{opacity:1}.ph-bar.now{background:color-mix(in srgb,var(--accent) 18%,var(--bg))}.ph-x{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.64rem;color:var(--muted)}.fig{margin:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}.fig-media{aspect-ratio:16/9;background:repeating-linear-gradient(45deg,var(--faint) 0 10px,transparent 10px 20px);display:grid;place-items:center;color:var(--muted);font-family:var(--mono);font-size:var(--text-xs)}.fig figcaption{padding:.7rem 1.1rem;font-size:var(--text-xs);color:var(--muted);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line)}.fig-src{font-family:var(--mono)}.toc{position:sticky;top:1rem;display:grid;gap:.15rem;font-size:var(--text-sm);border-left:1px solid var(--line);padding-left:.9rem}.toc a{color:var(--muted);padding:.28rem .6rem;border-radius:var(--radius)}.toc a:hover{background:var(--faint);color:var(--fg)}.toc a.here{color:var(--accent);font-weight:600;background:var(--accent-soft)}.readbar{height:3px;background:var(--track);border-radius:var(--radius-full);overflow:hidden}.readbar b{display:block;height:100%;background:var(--accent)}.h2h{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:stretch}.h2h-col{border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem 1.3rem;background:var(--surface)}.h2h-col.win{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.h2h-vs{align-self:center;font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--muted)}.h2h-name{margin:0 0 .1rem;font-size:1.25rem}.h2h-row{display:flex;justify-content:space-between;gap:1rem;font-size:var(--text-sm);padding:.45rem 0;border-top:1px solid var(--line)}.h2h-row:first-of-type{margin-top:.8rem}.h2h-row b{font-family:var(--mono);font-variant-numeric:tabular-nums}.h2h-row .lead{color:var(--ok)}@media(max-width:640px){.h2h{grid-template-columns:1fr}.h2h-vs{justify-self:center}}.faq{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding:.95rem 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem;transition:color var(--dur-1) var(--ease-out)}.faq summary:hover{color:var(--accent)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--mono);font-weight:400;color:var(--muted);transition:rotate var(--dur-2) var(--ease-out)}.faq details[open] summary:after{rotate:45deg}.faq .a{padding:0 0 1.1rem;color:var(--muted);font-size:var(--text-sm);max-width:60ch}.faq .a p{margin:0 0 .5em}.byline{display:flex;gap:.9rem;align-items:center;border:1px solid var(--line);border-radius:var(--radius-lg);padding:.9rem 1.1rem;background:var(--surface)}.avatar{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:700 1rem var(--font-display);flex:none}.byline-name{font-weight:700}.byline-meta{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted)}.chlog{margin:0;padding:0 0 0 1.2rem;border-left:2px solid var(--line);display:grid;gap:1rem}.chlog li{list-style:none;position:relative}.chlog li:before{content:"";position:absolute;left:calc(-1.2rem - 6px);top:.42rem;width:8px;height:8px;border-radius:50%;background:var(--line)}.chlog li.fix:before{background:var(--warn)}.chlog time{display:block;font-family:var(--mono);font-size:var(--text-2xs);color:var(--muted);letter-spacing:.04em}.chlog p{margin:.1rem 0 0;font-size:var(--text-sm)}.skip-link{position:absolute;left:0;top:-100px;z-index:100;background:var(--accent);color:var(--on-accent);padding:.6rem 1rem;border-radius:0 0 var(--radius) 0;font-weight:600}.skip-link:focus-visible{top:0}@media print{.site-header,.footer,.nav,.btn,.pager,.skip-link,.toc,.readbar{display:none!important}body{background:#fff;color:#000}a{color:#000;text-decoration:underline}.vcard,.ph,.por,.fig{box-shadow:none;break-inside:avoid}}.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.site-header.sticky{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@supports (animation-timeline:scroll()){.site-header.sticky{animation:hdr-shrink linear both;animation-timeline:scroll();animation-range:0 140px}}@keyframes hdr-shrink{to{padding-block:.45rem}}.mnav-btn{display:none;align-items:center;justify-content:center;gap:.4rem}.mnav{position:fixed;inset:0;background:color-mix(in srgb,#000 42%,transparent);opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out);z-index:90}.mnav.open{opacity:1;pointer-events:auto}.mnav-sheet{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);background:var(--bg);border-left:1px solid var(--line);padding:1rem 1.2rem;translate:100% 0;transition:translate var(--dur-2) var(--ease-out);display:flex;flex-direction:column}.mnav.open .mnav-sheet{translate:0 0}.mnav-sheet a{padding:.85rem .5rem;color:var(--fg);font-size:1.05rem;font-weight:600;border-bottom:1px solid var(--line)}.mnav-close{align-self:flex-end;margin:0 0 .4rem}@media(max-width:720px){.nav{display:none}.mnav-btn{display:inline-flex}}@media(max-width:640px){.st-resp thead{display:none}.st-resp,.st-resp tbody,.st-resp tr,.st-resp td,.st-resp caption{display:block}.st-resp tr{border:1px solid var(--line);border-radius:var(--radius-lg);padding:.55rem .95rem;margin:0 0 .8rem;background:var(--surface)}.st-resp tr:hover td{background:transparent}.st-resp td{border:none;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.35rem 0}.st-resp td:before{content:attr(data-th);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.st-resp td.prod{font-family:var(--font-display);font-size:1.1rem}}.empty{border:1.5px dashed var(--line);border-radius:var(--radius-lg);padding:2rem 1.5rem;text-align:center;color:var(--muted)}.empty .t{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--fg);margin:0 0 .3rem}.empty p{margin:0;font-size:var(--text-sm)}.toast{position:fixed;left:50%;bottom:1.4rem;translate:-50% 12px;background:var(--fg);color:var(--bg);font:600 var(--text-sm)/1 var(--font-body);padding:.7rem 1rem;border-radius:var(--radius);box-shadow:var(--shadow-2);opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out);z-index:100;display:flex;gap:.5rem;align-items:center}.toast.show{opacity:1;translate:-50% 0}header[data-astro-cid-3ef6ksr2].site-header{display:block}.bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1rem}.bar[data-astro-cid-3ef6ksr2] .brand[data-astro-cid-3ef6ksr2]{align-items:center;flex:none}.brand-logo[data-astro-cid-3ef6ksr2]{width:24px;height:24px;flex:none;display:block}.bar[data-astro-cid-3ef6ksr2] .brand[data-astro-cid-3ef6ksr2] .mark[data-astro-cid-3ef6ksr2]{white-space:nowrap}@media(max-width:720px){.bar[data-astro-cid-3ef6ksr2] .brand[data-astro-cid-3ef6ksr2] .mark[data-astro-cid-3ef6ksr2]{font-size:1.15rem}}.primary[data-astro-cid-3ef6ksr2]{flex:1 1 auto;min-width:0;align-items:center}.nav-right[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.35rem;margin-left:auto;min-width:0}.nav-trigger[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .7rem;color:var(--muted);font:400 var(--text-sm) / 1.6 var(--font-body);background:none;border:0;border-radius:var(--radius);white-space:nowrap;cursor:pointer;transition:all var(--dur-1) var(--ease-out)}.nav-trigger[data-astro-cid-3ef6ksr2]:hover{color:var(--fg);background:var(--faint)}.nav-trigger[data-astro-cid-3ef6ksr2].active{color:var(--fg);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--radius) var(--radius) 0 0}.caret[data-astro-cid-3ef6ksr2]{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.7;transition:transform var(--dur-1) var(--ease-out)}.nav-group[data-astro-cid-3ef6ksr2]{position:relative}.nav-dropdown[data-astro-cid-3ef6ksr2]{position:absolute;top:calc(100% + .4rem);left:0;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);padding:.4rem;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out),visibility var(--dur-1);z-index:40}.nav-dropdown[data-astro-cid-3ef6ksr2].right{left:auto;right:0}.nav-group[data-astro-cid-3ef6ksr2]:hover .nav-dropdown[data-astro-cid-3ef6ksr2],.nav-group[data-astro-cid-3ef6ksr2]:focus-within .nav-dropdown[data-astro-cid-3ef6ksr2]{opacity:1;visibility:visible;transform:translateY(0)}.nav-group[data-astro-cid-3ef6ksr2]:hover .caret[data-astro-cid-3ef6ksr2],.nav-group[data-astro-cid-3ef6ksr2]:focus-within .caret[data-astro-cid-3ef6ksr2]{transform:rotate(180deg)}.nav-dropdown[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{list-style:none;margin:0;padding:0;display:grid;gap:1px}.nav-dropdown[data-astro-cid-3ef6ksr2] .dd-link[data-astro-cid-3ef6ksr2]{display:block;padding:.55rem .7rem;border-radius:var(--radius);color:var(--fg);font-size:var(--text-sm);font-weight:500;white-space:nowrap}.nav-dropdown[data-astro-cid-3ef6ksr2] .dd-link[data-astro-cid-3ef6ksr2]:hover{background:var(--faint)}.nav-dropdown[data-astro-cid-3ef6ksr2] .dd-link[data-astro-cid-3ef6ksr2].active{color:var(--accent);background:var(--accent-soft);font-weight:600;box-shadow:none}.nav-search[data-astro-cid-3ef6ksr2],.mnav-search[data-astro-cid-3ef6ksr2]{position:relative;display:flex;align-items:center;gap:.4rem;padding:0 .7rem;height:36px;background:var(--faint);border:1px solid var(--line);border-radius:var(--radius-full);transition:border-color var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out)}.nav-search[data-astro-cid-3ef6ksr2]{max-width:240px;flex:1 1 140px;min-width:0}.mnav-search[data-astro-cid-3ef6ksr2]{height:42px;margin:0 0 var(--space-2xs);flex:none}.nav-search[data-astro-cid-3ef6ksr2]:focus-within,.mnav-search[data-astro-cid-3ef6ksr2]:focus-within{background:var(--bg);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 3.5px var(--accent-soft)}.nav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]:focus-visible,.mnav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]:focus-visible,.nav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]:focus,.mnav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]:focus{outline:none;box-shadow:none}.search-icon[data-astro-cid-3ef6ksr2]{width:16px;height:16px;flex:none;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}.nav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2],.mnav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]{flex:1;min-width:0;border:0;background:none;color:var(--fg);font:inherit;font-size:var(--text-sm);outline:none}.nav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]::placeholder,.mnav-search[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]::placeholder{color:var(--muted)}.theme-btn[data-astro-cid-3ef6ksr2]{flex:none;margin-left:auto}@media(max-width:720px){.theme-word[data-astro-cid-3ef6ksr2]{display:none}}.subnav-wrap[data-astro-cid-3ef6ksr2]{border-top:1px solid var(--line);margin-top:var(--space-2xs)}.subnav[data-astro-cid-3ef6ksr2]{overflow-x:auto;scrollbar-width:none;padding-block:.25rem}.subnav[data-astro-cid-3ef6ksr2]::-webkit-scrollbar{display:none}.subnav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{white-space:nowrap}.mnav-sheet[data-astro-cid-3ef6ksr2]{overflow-y:auto}.mnav-sheet[data-astro-cid-3ef6ksr2] .kicker[data-astro-cid-3ef6ksr2]{margin:var(--space-sm) .5rem var(--space-2xs)}.mnav-sheet[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.mnav-sheet[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].sub{font-size:var(--text-sm);font-weight:500;color:var(--muted)}.mnav-sheet[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--accent)}.nav-suggest[data-astro-cid-3ef6ksr2]{position:absolute;top:calc(100% + .4rem);right:0;left:auto;width:min(400px,92vw);z-index:60;margin:0;padding:var(--space-2xs);list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);max-height:66vh;overflow-y:auto}.mnav-search[data-astro-cid-3ef6ksr2] .nav-suggest[data-astro-cid-3ef6ksr2]{right:auto;left:0;width:100%}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-item{display:flex;align-items:center;gap:.65rem;padding:.45rem .55rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-item.ns-active{background:color-mix(in srgb,var(--accent) 12%,var(--bg));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-thumb{width:40px;height:40px;flex-shrink:0;object-fit:contain;background:light-dark(var(--surface),white);border:1px solid var(--line);border-radius:var(--radius);padding:3px;box-sizing:border-box}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-thumb-ph{display:flex;align-items:center;justify-content:center;background:var(--faint);color:var(--muted);font-weight:700;font-size:1rem;padding:0}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:.1rem}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-name{font-weight:600;font-size:.9rem;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-name mark{background:color-mix(in srgb,var(--accent) 28%,transparent);color:inherit;border-radius:2px;padding:0 1px}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-kind{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap}.nav-suggest[data-astro-cid-3ef6ksr2] .ns-from{margin-left:auto;align-self:center;font-family:var(--mono);font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700;white-space:nowrap}.cols[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:var(--space-lg) var(--space-md);margin-bottom:var(--space-lg)}.about[data-astro-cid-sz7xmlte] .mark[data-astro-cid-sz7xmlte]{font-size:1.1rem}.tagline[data-astro-cid-sz7xmlte]{margin:var(--space-2xs) 0 0;font-size:var(--text-xs);max-width:60ch}.col-title[data-astro-cid-sz7xmlte]{margin:0 0 var(--space-xs)}.col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2xs)}.fp[data-astro-cid-sz7xmlte]{font-family:var(--mono);font-variant-numeric:tabular-nums}.disclosure[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);padding-top:var(--space-md);max-width:80ch}.disclosure[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0 0 var(--space-xs)}.bottom-line[data-astro-cid-sz7xmlte]{margin:var(--space-sm) 0 0}@media(max-width:760px){.cols[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr}}@media(max-width:460px){.cols[data-astro-cid-sz7xmlte]{grid-template-columns:1fr}}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}main{display:block;padding-bottom:var(--space-2xl)}section{margin-top:var(--space-xl)}h2{margin-top:var(--space-lg)}h3{margin-top:var(--space-md)}hr{border:0;border-top:1px solid var(--line);margin:var(--space-xl) 0}code{font-family:var(--mono);font-size:.86em;background:var(--faint);padding:.1em .35em;border-radius:var(--radius)}main :where(p):not([class]){max-width:var(--measure)}main :where(p,li) a:not(.btn):not(.badge):not(.chip){text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}[hidden]{display:none!important}select.input{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2385898f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:16px;padding-right:2.2rem}.muted{color:var(--muted)}.small{font-size:.85rem}table{border-collapse:collapse;width:100%}:where(table) caption{text-align:left;color:var(--muted);font-size:.85rem;margin-bottom:.6rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
