@font-face{font-family:kdp-headline;src:url(/content-fonts/headline.woff2)format("woff2");font-display:swap}@font-face{font-family:kdp-body;src:url(/content-fonts/body.woff2)format("woff2");font-display:swap}@font-face{font-family:kdp-mono;src:url(/content-fonts/mono-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:kdp-mono;src:url(/content-fonts/mono-700.woff2)format("woff2");font-weight:600 700;font-display:swap}*,:before,:after{box-sizing:border-box}:root{--accent:oklch(58% .215 27);--accent-hover:oklch(52% .2 27);--accent-bright:oklch(64% .21 25);--on-accent:oklch(98.5% .004 25);--c-you:oklch(96% .004 25);--c-best:oklch(63% .24 28);--instrument-ink:oklch(88% .006 25);--instrument-muted:oklch(74% .008 25);--instrument-grid:oklch(88% .006 25/.1);--shell-strong:oklch(97.5% .004 25);--gap-ink:oklch(95% .004 25);--shell-ink:oklch(88% .006 25);--shell-muted:oklch(75% .008 25);--shell-rule:oklch(97% .004 25/.1);--text:640px;--wide:880px;--toc:200px;--gutter:24px;--frame:min(1100px, 100% - 2 * var(--gutter))}:root,:root[data-theme=light]{--page:oklch(99.2% .002 25);--ink:oklch(31% .008 25);--strong:oklch(17% .006 25);--muted:oklch(47% .01 25);--rule:oklch(90% .004 25);--link:oklch(50% .19 27);--shell:oklch(14.5% .004 25);--instrument:oklch(17.5% .005 25);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:oklch(17.5% .005 25);--ink:oklch(86% .006 25);--strong:oklch(96.5% .004 25);--muted:oklch(73% .008 25);--rule:oklch(97% .004 25/.12);--link:oklch(72% .16 25);--shell:oklch(12.5% .004 25);--instrument:oklch(21.5% .006 25);color-scheme:dark}}:root[data-theme=dark]{--page:oklch(17.5% .005 25);--ink:oklch(86% .006 25);--strong:oklch(96.5% .004 25);--muted:oklch(73% .008 25);--rule:oklch(97% .004 25/.12);--link:oklch(72% .16 25);--shell:oklch(12.5% .004 25);--instrument:oklch(21.5% .006 25);color-scheme:dark}html{scroll-behavior:smooth;background:var(--page)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--page);min-height:100dvh;color:var(--ink);overflow-wrap:break-word;flex-direction:column;margin:0;font:18px/1.62 kdp-body,system-ui,sans-serif;display:flex}a{color:var(--link);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.label{letter-spacing:.08em;text-transform:uppercase;font:600 15px/1.2 kdp-headline,sans-serif}.skip{position:absolute;left:-999px}.skip:focus{z-index:99;background:var(--accent);color:var(--on-accent);padding:12px 16px;top:8px;left:16px}main{flex:1}.site{background:var(--shell);color:var(--shell-ink);border-bottom:1px solid var(--shell-rule);z-index:20;position:sticky;top:0}.site-in{width:var(--frame);align-items:center;gap:20px;min-height:64px;margin:0 auto;display:flex}.logo{flex:none;align-items:center;min-height:44px;display:inline-flex}.logo img{width:auto;height:40px;display:block}.nav{align-self:stretch;gap:4px;font-size:15px;display:flex}.nav a{color:var(--shell-muted);align-items:center;min-height:44px;padding:0 10px;text-decoration:none;display:inline-flex;position:relative}.nav a:hover,.nav a[aria-current]{color:var(--shell-ink)}.nav a[aria-current]:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.nav [data-unlinked],.foot [data-unlinked],.nf-actions [data-unlinked],.nf-langs [data-unlinked]{display:none}.grow{flex:1}.lang-switch{font-size:15px;display:flex}.lang-switch a{color:var(--shell-muted);justify-content:center;align-items:center;min-width:44px;min-height:44px;text-decoration:none;display:inline-flex}.lang-switch a[aria-current]{color:var(--shell-ink);font-weight:600}.theme-btn{border:1px solid var(--shell-rule);color:var(--shell-ink);cursor:pointer;background:0 0;border-radius:6px;flex:none;place-items:center;width:44px;height:44px;display:grid}.theme-btn svg{width:20px;height:20px}.theme-btn .i-sun,.theme-btn[data-state=dark] .i-moon{display:none}.theme-btn[data-state=dark] .i-sun{display:block}.btn{background:var(--accent);min-height:44px;color:var(--on-accent);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:6px;align-items:center;padding:0 18px;font:600 16px kdp-headline;text-decoration:none;transition:background-color .15s cubic-bezier(.22,1,.36,1);display:inline-flex}.btn:hover{background:var(--accent-hover)}.hero{color:var(--shell-ink);background:var(--shell);isolation:isolate;position:relative;overflow:hidden}.hero>img{object-fit:cover;object-position:center 55%;filter:saturate(.72)contrast(1.04);z-index:-2;width:100%;height:100%;position:absolute;inset:0}.hero:after{content:"";z-index:-1;background:linear-gradient(180deg, oklch(14.5% .004 25/.3) 0%, oklch(14.5% .004 25/.62) 45%, oklch(14.5% .004 25/.9) 80%, var(--shell) 100%);position:absolute;inset:0}.hero-in{width:min(var(--text), 100% - 2 * var(--gutter));margin:0 auto;padding:clamp(96px,14vh,150px) 0 clamp(36px,5vh,56px)}.kicker{color:var(--shell-muted);align-items:center;gap:12px;margin:0;display:flex}.kicker a{color:var(--shell-ink);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.kicker .sep{background:var(--accent-bright);width:18px;height:1px}.hero h1{text-transform:uppercase;color:var(--shell-strong);text-wrap:balance;margin:10px 0 18px;font:700 clamp(42px,5.4vw,72px)/1 kdp-headline}.dek{color:var(--shell-ink);text-wrap:pretty;margin:0 0 26px;font-size:clamp(19px,1.5vw,21px);line-height:1.45}.byline{color:var(--shell-muted);align-items:center;gap:14px;margin:0;font-size:15px;line-height:1.45;display:flex}.byline strong{color:var(--shell-ink);font-weight:600}.hero.split:after{display:none}.hero.split .hero-grid{width:var(--frame);grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:center;gap:clamp(32px,5vw,72px);margin:0 auto;padding:clamp(48px,7vh,88px) 0 clamp(40px,6vh,64px);display:grid}.hero.split .hero-in{width:auto;margin:0;padding:0}.hero-photo{border:1px solid var(--shell-rule);aspect-ratio:3/4;border-radius:8px;margin:0;overflow:hidden}.hero-photo img{object-fit:cover;width:100%;height:100%;display:block}@media (width<=900px){.hero.split .hero-grid{grid-template-columns:minmax(0,1fr);padding-top:clamp(40px,6vh,64px)}.hero-photo{aspect-ratio:auto;max-width:420px;max-height:340px}.hero-photo img{height:340px}}.foot{background:var(--shell);color:var(--shell-muted);border-top:1px solid var(--shell-rule);font-size:15px}.foot-in{width:var(--frame);grid-template-columns:minmax(220px,2fr) repeat(auto-fit,minmax(140px,1fr));gap:24px;margin:0 auto;padding:48px 0 24px;display:grid}.foot .label{color:var(--shell-ink);margin:0 0 6px;font-size:15px}.foot a{color:var(--shell-muted);align-items:center;min-height:44px;text-decoration:none;display:flex}.foot a:hover{color:var(--shell-ink)}.foot a.logo{display:inline-flex}.foot .logo img{height:48px}.foot-tagline{margin:8px 0 0}.foot-guides:not(:has(a)){display:none}.foot-base{width:var(--frame);border-top:1px solid var(--shell-rule);margin:0 auto;padding:16px 0 32px}@media (width<=760px){:root{--gutter:16px}.nav{display:none}.site-in{gap:8px}.btn.hdr{padding:0 14px}.lang-switch a[aria-current]{display:none}.foot-in{grid-template-columns:1fr 1fr}.foot-in>div:first-child{grid-column:1/-1}}@media (width<=420px){.site-in{gap:4px}.site .logo img{height:32px}.btn.hdr{padding:0 12px}}@media (width<=380px){.btn.hdr{display:none}}.not-found{isolation:isolate;background:var(--shell);color:var(--shell-ink);align-items:center;min-height:calc(100dvh - 64px);display:flex;position:relative;overflow:hidden}.nf-photo{object-fit:cover;filter:saturate(.6)contrast(1.05);opacity:.35;z-index:-2;width:100%;height:100%;position:absolute;inset:0}.not-found:after{content:"";z-index:-1;background:linear-gradient(90deg, var(--shell) 0%, oklch(14.5% .004 25/.85) 55%, oklch(14.5% .004 25/.55) 100%);position:absolute;inset:0}.nf-in{width:var(--frame);margin:0 auto;padding:72px 0}.nf-code{color:#0000;-webkit-text-stroke:2px var(--accent-bright);letter-spacing:-.01em;margin:0;font:700 clamp(96px,18vw,200px)/.85 kdp-headline}.not-found h1{text-transform:uppercase;color:var(--shell-strong);margin:18px 0 14px;font:700 clamp(36px,4.6vw,60px)/1 kdp-headline}.nf-text{max-width:34em;color:var(--shell-ink);margin:0 0 28px;font-size:clamp(18px,1.5vw,20px);line-height:1.5}.nf-actions{flex-wrap:wrap;align-items:center;gap:8px 24px;margin:0 0 20px;display:flex}.nf-link{color:var(--shell-ink);align-items:center;min-height:44px;display:inline-flex}.nf-langs{flex-wrap:wrap;gap:4px 24px;margin:0;font-size:15px;display:flex}.nf-langs a{color:var(--shell-muted);align-items:center;min-height:44px;display:inline-flex}.nf-langs a:hover,.nf-link:hover{color:var(--shell-strong)}figure{margin:36px 0 40px}.instrument{background:var(--instrument);color:var(--instrument-ink);border:1px solid var(--rule);border-radius:8px;padding:20px 20px 14px;container-type:inline-size}.instrument .title{letter-spacing:.07em;text-transform:uppercase;color:var(--shell-strong);margin:0;font:600 16px/1.25 kdp-headline}.instrument .sub{color:var(--instrument-muted);margin:4px 0 12px;font-size:15px}.legend{color:var(--instrument-ink);flex-wrap:wrap;gap:18px;margin:0 0 6px;font:14px kdp-mono,monospace;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:16px;height:3px;margin-right:6px;display:inline-block}.callout{color:var(--shell-strong);margin:0 0 4px;font:700 15px kdp-mono,monospace}.instrument svg{width:100%;height:auto;display:block;overflow:visible}.instrument svg text{fill:var(--instrument-muted);font-family:kdp-mono,monospace}figcaption{color:var(--muted);max-width:var(--text);margin:12px auto 0;font-size:16px;line-height:1.5}figcaption strong{color:var(--strong);font-weight:600}figcaption .src{margin-bottom:8px;font:13px/1.4 kdp-mono,monospace;display:block}details.data{max-width:var(--text);margin:8px auto 0;font-size:15px}details.data summary{cursor:pointer;color:var(--link);align-items:center;min-height:44px;display:inline-flex}details.data table{border-collapse:collapse;font:14px kdp-mono,monospace}details.data th,details.data td{text-align:right;border-bottom:1px solid var(--rule);padding:4px 14px 4px 0}details.data th{color:var(--muted);font-weight:600}.strip-row{border-top:1px solid var(--instrument-grid);grid-template-columns:150px 1fr 56px;align-items:center;gap:16px;padding:8px 0;display:grid}.strip-row:first-of-type{border-top:0}.strip-row .name{letter-spacing:.05em;text-transform:uppercase;color:var(--shell-strong);font:600 17px/1.15 kdp-headline}.strip-row .name .unit{color:var(--instrument-muted);text-transform:none;letter-spacing:0;font:14px kdp-mono,monospace}.strip-row .means{color:var(--instrument-muted);margin-top:3px;font-size:14px;line-height:1.35}.strip-row svg{height:64px}.strip-row .range{color:var(--instrument-muted);text-align:right;flex-direction:column;justify-content:space-between;height:64px;font:14px/1.2 kdp-mono,monospace;display:flex}.strip-axis{color:var(--instrument-muted);grid-template-columns:150px 1fr 56px;gap:16px;font:14px kdp-mono,monospace;display:grid}.strip-axis div:nth-child(2){height:1.4em;position:relative}.strip-axis span{white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.strip-axis span.s0{transform:none}@media (width<=640px){.strip-row,.strip-axis{grid-template-columns:1fr 48px;gap:6px 10px}.strip-row>div:first-child{grid-column:1/-1}.strip-axis>div:first-child{display:none}}.shot{border:1px solid var(--rule);background:var(--instrument);border-radius:8px;overflow:hidden}.shot-bar{border-bottom:1px solid var(--instrument-grid);align-items:center;gap:6px;padding:10px 14px;display:flex}.shot-bar i{background:oklch(34% .006 25);border-radius:50%;width:10px;height:10px}.shot-bar span{color:var(--instrument-muted);margin-left:10px;font:14px kdp-mono,monospace}.shot img{width:100%;height:auto;display:block}.shot-link{flex:auto;justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:24px;text-decoration:none;display:flex}.shot-link>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.shot-link:hover>span:first-child{color:var(--instrument-ink)}.shot-bar .try-hint{border:1px solid var(--instrument-grid);color:var(--instrument-ink);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:5px;margin-left:0;padding:3px 10px;display:inline-flex}.shot-bar .try-hint .ar{color:inherit;margin-left:0}.shot:has(a:hover) .try-hint{color:#fff;background:var(--accent);border-color:var(--accent)}.shot-img-link{display:block}.shot.portrait img{object-fit:cover;object-position:center 55%;max-height:min(560px,70vh)}.dchart{--l:40px;--r:64px;margin-top:10px}.dchart.chart-narrow{--r:8px;display:none}@container (width<=599px){.dchart.chart-wide{display:none}.dchart.chart-narrow{display:block}}.dplot{margin:0 var(--r) 0 var(--l);position:relative}.dchart span{color:var(--instrument-muted);white-space:nowrap;font:14px/1 kdp-mono,monospace;position:absolute}.dplot .tg,.dplot .ts{margin-right:8px;right:100%;transform:translateY(-50%)}.dplot .cap{left:0;transform:translateY(-50%)}.dplot .end{color:var(--gap-ink);margin-left:8px;font-size:15px;font-weight:700;left:100%;transform:translateY(-50%)}.dx{height:20px;margin:8px var(--r) 0 var(--l);position:relative}.dx span{top:0;transform:translate(-50%)}.dx span.s0{transform:none}.dx span.s-end{transform:translate(-100%)}.video{border:1px solid var(--rule);background:var(--instrument);border-radius:8px;overflow:hidden}.video video{aspect-ratio:16/9;width:100%;height:auto;display:block}details.data .data-scroll{overflow-x:auto}.badge a{width:fit-content;max-width:100%;margin:0 auto;display:block}.badge img{max-width:100%;height:auto;display:block}.badge .on-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .badge .on-dark{display:block}:root:not([data-theme=light]) .badge .on-light{display:none}}:root[data-theme=dark] .badge .on-dark{display:block}:root[data-theme=dark] .badge .on-light{display:none}.badge figcaption{text-align:center}.article{padding:clamp(40px, 5vw, 64px) var(--gutter) 0;grid-template-columns:[full-start] minmax(0, 1fr) [wide-start] minmax(0, calc((var(--wide) - var(--text)) / 2)) [text-start] min(var(--text), 100%) [text-end] minmax(0, calc((var(--wide) - var(--text)) / 2)) [wide-end] minmax(0, 1fr) [full-end];display:grid}.article>*{grid-column:text;min-width:0}.article>figure.wide{grid-column:wide}.toc{width:var(--toc);grid-row:1/span 999;place-self:start end;margin-right:40px;font-size:15px;position:sticky;top:96px;grid-column:full-start/wide-start!important}.toc .label{color:var(--muted);margin:0 0 6px;font-size:14px}.toc ol{margin:0;padding:0;list-style:none}.toc a{min-height:44px;color:var(--muted);align-items:center;padding:6px 0;line-height:1.3;text-decoration:none;transition:color .2s cubic-bezier(.22,1,.36,1);display:flex}.toc a:hover{color:var(--strong)}.toc a[aria-current]{color:var(--strong);font-weight:600}.toc-inline{border-bottom:1px solid var(--rule);margin-bottom:28px;display:none}.toc-inline:has(~.inshort){border-bottom:0;margin-bottom:8px}.toc-inline summary{cursor:pointer;min-height:48px;color:var(--strong);align-items:center;display:flex}.toc-inline ol{margin:0 0 14px;padding-left:20px}.toc-inline a{min-height:44px;color:var(--ink);align-items:center;display:inline-flex}@media (width<=1407px){.toc{display:none}.toc-inline{display:block}}.article p{text-wrap:pretty;margin:0 0 20px}.article strong{color:var(--strong)}.article h2{color:var(--strong);letter-spacing:.005em;text-wrap:balance;margin:clamp(44px,5vw,60px) 0 12px;scroll-margin-top:88px;font:700 clamp(27px,2.4vw,32px)/1.15 kdp-headline}.article h3{color:var(--strong);letter-spacing:.01em;margin:32px 0 8px;scroll-margin-top:88px;font:600 22px/1.2 kdp-headline}.article>ul,.article>ol{margin:0 0 20px;padding-left:24px}.article>ul>li,.article>ol>li{margin:0 0 8px}.article code{font:.9em kdp-mono,monospace}img{max-width:100%;height:auto}.article>table{border-collapse:collapse;margin:0 0 24px;font-size:16px;display:block;overflow-x:auto}.article>table th,.article>table td{border-bottom:1px solid var(--rule);text-align:left;padding:8px 10px}.article>table th{color:var(--strong);font-weight:600}.inshort{border-top:1px solid var(--strong);border-bottom:1px solid var(--rule);padding:16px 0 2px;margin:0 0 32px!important}.inshort .label{color:var(--strong);margin:0 0 8px;font-size:14px}.inshort p{color:var(--strong);font-size:19px}.running-at{border-top:1px solid var(--rule);margin-top:44px;padding-top:20px}.running-at .label{color:var(--strong);margin:0 0 12px;font-size:14px}.running-at .logos{flex-wrap:wrap;align-items:center;gap:16px 32px;display:flex}.running-at a{border:1px solid var(--rule);background:#fff;border-radius:10px;align-items:center;min-height:44px;padding:8px 16px;display:inline-flex}.running-at img{width:auto;height:48px}.faq h2{margin-bottom:8px}.faq details{border-bottom:1px solid var(--rule)}.faq summary{cursor:pointer;min-height:48px;color:var(--strong);align-items:center;font-weight:600;display:flex}.faq details p{margin:0 0 16px}.method{border-top:1px solid var(--rule);margin-top:44px;padding-top:20px;font-size:16px}.method .label{color:var(--strong);margin:0 0 12px;font-size:14px}.method dl{grid-template-columns:150px 1fr;gap:6px 16px;margin:0;display:grid}.method dt{color:var(--muted)}.method dd{color:var(--strong);margin:0}.author{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);align-items:center;gap:16px;margin:32px 0 0;padding:20px 0;display:flex}.author p{line-height:1.45;margin:0!important}.author .who{color:var(--strong);letter-spacing:.02em;font:600 20px kdp-headline}.author .role{color:var(--muted);font-size:15px}.author .role a{align-items:center;min-height:44px;display:inline-flex}.cta{background:var(--shell);color:var(--shell-ink);border-top:1px solid var(--shell-rule);border-bottom:1px solid var(--shell-rule);margin-top:72px}.article>.cta{margin-inline:calc(-1 * var(--gutter));grid-column:full}.cta-in{width:var(--frame);margin:0 auto;padding:clamp(40px,5vw,60px) 0}.article .cta h2{text-transform:uppercase;color:var(--shell-strong);margin:0 0 8px;font:700 clamp(30px,3vw,40px)/1.05 kdp-headline}.article .cta p{color:var(--shell-muted);max-width:36em;margin:0 0 22px}.cta .alt{color:var(--shell-ink);align-items:center;min-height:44px;margin-left:20px;display:inline-flex}.index-body{width:var(--frame);margin:48px auto}.hero.plain .hero-in{width:var(--frame);padding-top:clamp(64px,9vh,96px)}@media (width<=760px){.method dl{grid-template-columns:1fr;gap:0}.method dd{margin-bottom:8px}.cta .alt{margin:8px 0 0;display:flex}}.related{width:var(--frame);margin:0 auto;padding:clamp(40px,5vw,60px) 0}.related>h2{color:var(--strong);margin:0 0 20px;font:700 28px kdp-headline}.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px 28px;margin:0;padding:0;list-style:none;display:grid}.card{display:block}.card a{color:inherit;text-decoration:none;display:block}.thumb{aspect-ratio:16/9;background:var(--instrument);border:1px solid var(--rule);border-radius:6px;display:block;overflow:hidden}.thumb svg,.thumb img{object-fit:cover;width:100%;height:100%;display:block}.card .sect{color:var(--link);margin:14px 0 4px;font-size:14px;display:block}.card .card-title{color:var(--strong);letter-spacing:.01em;margin:0 0 6px;font:600 22px/1.2 kdp-headline;display:block}.card a:hover .card-title{color:var(--link)}.card .dek{color:var(--muted);margin:0 0 6px;font-size:16px;display:block}.card .m{color:var(--muted);margin:0;font-size:15px;display:block}@media (width>=900px){.cards .featured{grid-column:1/-1;display:grid}.cards .featured a{grid-template-rows:1fr repeat(4,min-content) 1fr;grid-template-columns:1.4fr 1fr;column-gap:28px;display:grid}.cards .featured .thumb{grid-area:1/1/-1}.cards .featured .sect{grid-area:2/2}.cards .featured .card-title{grid-area:3/2}.cards .featured .dek{grid-area:4/2}.cards .featured .m{grid-area:5/2}.cards .featured .card-title{font-size:30px}}
