.vis-math math{font-family:math,"STIX Two Math","Cambria Math",serif}.vis-math--block{display:block;overflow-x:auto;padding:6px 0}.vis-math--block>.katex{display:block}.vis-math--block math{font-size:1.2em;display:block;width:-moz-max-content;width:max-content;min-width:100%}.vis-math mtd{text-align:center}.vis-math--block:focus-visible,.vis-symbols:focus-visible,.vis-code__pre:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.vis-panel{padding-top:2rem}.vis-head__title{scroll-margin-top:7rem;font-family:Craft Mincho,Hiragino Mincho ProN,Yu Mincho,serif;font-size:clamp(1.5rem,3.4vw,2.25rem);line-height:1.3;font-weight:500;color:var(--color-ink)}.vis-head__text{margin-top:.75rem;max-width:40rem;line-height:1.9;text-wrap:pretty}.vis-formulas{max-width:48rem;margin-top:1.5rem}.vis-formula+.vis-formula{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-line)}.vis-formula__caption{font-size:.875rem;color:var(--color-muted);letter-spacing:.04em}.vis-symbols{margin-top:.5rem;overflow-x:auto}.vis-symbols table{width:100%;border-collapse:collapse;font-size:.875rem;line-height:1.6}.vis-symbols th,.vis-symbols td{padding:6px 28px 6px 0;text-align:left;vertical-align:baseline;font-weight:400;border-top:1px solid var(--color-line)}.vis-symbols thead th{color:var(--color-muted);font-size:.8125rem;border-top:0;padding-top:0;white-space:nowrap}.vis-symbols tbody th{white-space:nowrap}.vis-symbols td:last-child{white-space:nowrap;color:var(--color-muted)}.vis-sim{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:1.25rem}.vis-sim__stage{border:1px solid var(--color-muted);border-radius:4px;overflow:hidden;background:var(--color-surface)}.vis-canvas{display:block;width:100%;height:auto;aspect-ratio:var(--aspect, 4 / 3);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.vis-sim[data-size=overview] .vis-canvas{max-height:max(20rem,calc(100vh - 15rem));max-height:max(20rem,calc(100svh - 15rem))}.vis-canvas--scroll{touch-action:pan-y}.vis-canvas:focus-visible{outline:2px solid var(--color-ink);outline-offset:-4px}.vis-placeholder{display:grid;place-items:center;aspect-ratio:var(--aspect, 4 / 3);color:var(--color-ink);font-size:.875rem}.vis-sim__readout{margin-top:8px;font-family:Fira Mono,Zen Kurenaido,ui-monospace,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto}.vis-sim__side{min-width:0}.vis-sim__controls,.vis-stack__item{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:4px 28px;align-content:start}.vis-sim__controls>.vis-toolbar,.vis-stack__item>.vis-toolbar{grid-column:1 / -1;margin-bottom:8px}.vis-stack{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr)}.vis-stack__item{grid-area:1 / 1;min-width:0}.vis-stack__item[data-active=false]{visibility:hidden}.vis-stack__item[data-active=false][data-reserve=false]{display:none}.vis-sim__readout .vis-stack__item{display:block}.vis-sim__switcher{position:relative;z-index:1;margin-bottom:-1px}.vis-sim__switcher+.vis-sim__stage{border-top-left-radius:0}.vis-group{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:4px 28px}.vis-group__label{grid-column:1 / -1;margin-top:8px;font-size:.8125rem;letter-spacing:.04em;color:var(--color-ink)}@media (min-width: 1024px) and (orientation: landscape){.vis-sim{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;gap:28px}.vis-sim__controls,.vis-stack__item,.vis-group{grid-template-columns:minmax(0,1fr);gap:4px}}.vis-sim[data-size=step]{--stage-h: clamp(var(--step-h-phone-min, 220px), 62vw, var(--step-h-phone-max, 300px))}@media (min-width: 640px){.vis-sim[data-size=step]{--stage-h: clamp(var(--step-h-pc-min, 280px), 34vw, var(--step-h-pc-max, 360px))}}.vis-sim[data-size=step] .vis-canvas,.vis-sim[data-size=step] .vis-placeholder{aspect-ratio:auto;height:var(--stage-h)}.vis-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.vis-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--color-muted);border-radius:4px;background:transparent;color:var(--color-ink);font:inherit;font-size:.875rem;line-height:1;cursor:pointer}.vis-btn svg{width:18px;height:18px;flex:none}.vis-btn:hover:not(:disabled):not([aria-pressed=true]){border-color:var(--color-ink);background:rgb(var(--color-accent) / .3)}.vis-btn[aria-pressed=true]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.vis-btn:focus-visible,.vis-seg__item:focus-visible,.vis-tab:focus-visible,.vis-combo__chip:focus-visible,.vis-code__summary:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.vis-btn:disabled,.vis-seg__item:disabled{opacity:.4;cursor:not-allowed}.vis-seg{display:inline-flex}.vis-seg__item{min-height:44px;padding:0 14px;border:1px solid var(--color-muted);background:transparent;color:var(--color-ink);font:inherit;font-size:.875rem;line-height:1;cursor:pointer}.vis-seg__item+.vis-seg__item{margin-left:-1px}.vis-seg__item:first-child{border-radius:4px 0 0 4px}.vis-seg__item:last-child{border-radius:0 4px 4px 0}.vis-seg__item:hover:not(:disabled):not([aria-checked=true]){background:rgb(var(--color-accent) / .3)}.vis-seg__item[aria-checked=true]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper);position:relative}.vis-seg--tabs{display:flex;flex-wrap:wrap}.vis-seg--tabs .vis-seg__item{border-bottom-color:var(--color-muted)}.vis-seg--tabs .vis-seg__item:first-child{border-radius:4px 0 0}.vis-seg--tabs .vis-seg__item:last-child{border-radius:0 4px 0 0}.vis-seg--tabs .vis-seg__item[aria-checked=true]{border-bottom-color:var(--color-ink)}.vis-seg--quiet .vis-seg__item[aria-checked=true]{background:transparent;color:var(--color-ink);border-color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--color-ink)}.vis-slider{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;-moz-column-gap:12px;column-gap:12px}.vis-slider__label{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;font-size:.875rem;line-height:1.6}.vis-slider__symbol{font-size:1.05em}.vis-slider__value{font-family:Fira Mono,Zen Kurenaido,ui-monospace,monospace;font-size:.8125rem;font-variant-numeric:tabular-nums;white-space:nowrap}.vis-slider__unit{margin-left:4px;color:var(--color-muted)}.vis-slider__input{grid-column:1 / -1;width:100%;height:44px;margin:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vis-slider__input::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--color-ink) var(--p),var(--color-muted) var(--p))}.vis-slider__input::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border:2px solid var(--color-paper);border-radius:4px;background:var(--color-ink);box-shadow:0 0 0 1px var(--color-ink)}.vis-slider__input::-moz-range-track{height:4px;border-radius:2px;background:var(--color-muted)}.vis-slider__input::-moz-range-progress{height:4px;border-radius:2px;background:var(--color-ink)}.vis-slider__input::-moz-range-thumb{box-sizing:border-box;width:20px;height:20px;border:2px solid var(--color-paper);border-radius:4px;background:var(--color-ink);box-shadow:0 0 0 1px var(--color-ink)}.vis-slider__input:focus-visible{outline:2px solid var(--color-ink);outline-offset:0;border-radius:4px}.vis-slider__input:disabled{opacity:.4;cursor:not-allowed}.vis-slider[data-disabled] .vis-slider__label,.vis-slider[data-disabled] .vis-slider__value{opacity:.4}.vis-code{margin-top:1.75rem;border-top:1px solid var(--color-line)}.vis-code__summary{display:flex;align-items:center;gap:10px;min-height:44px;font-size:.9375rem;cursor:pointer;list-style:none}.vis-code__summary::-webkit-details-marker{display:none}.vis-code__summary:before{content:"";width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent currentColor;transition:transform .12s ease}.vis-code[open]>.vis-code__summary:before{transform:rotate(90deg)}@media (prefers-reduced-motion: reduce){.vis-code__summary:before{transition:none}}.vis-code__summary:hover{text-decoration:underline;text-underline-offset:3px}.vis-code__body{display:grid;gap:14px;padding-bottom:8px}.vis-code__status,.vis-code__missing{font-size:.8125rem;color:var(--color-muted)}.vis-code__item{margin:0;min-width:0}.vis-code__caption{margin-bottom:4px;font-family:Fira Mono,Zen Kurenaido,ui-monospace,monospace;font-size:.75rem;color:var(--color-muted)}.vis-code__pre{margin:0;padding:12px 14px;overflow-x:auto;border:1px solid var(--color-line);border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-family:Fira Mono,Zen Kurenaido,ui-monospace,monospace;font-size:.8125rem;line-height:1.65;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.vis-sources{margin-top:1.5rem;font-size:.875rem;line-height:1.7;color:var(--color-muted)}.vis-sources__title{font-size:.8125rem;letter-spacing:.04em}.vis-sources ul{margin-top:4px;list-style:none;padding:0}.vis-sources li+li{margin-top:4px}.vis-sources a{text-decoration:underline;text-underline-offset:3px}.vis-sources a:hover{color:var(--color-ink)}@media (pointer: coarse),(max-width: 640px){.vis-sources a{display:inline-block;padding:10px 0}}.vis-tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--color-line)}.vis-tab{flex:1 1 0;min-width:-moz-max-content;min-width:max-content;min-height:48px;padding:0 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--color-muted);font:inherit;font-size:.9375rem;cursor:pointer}@media (min-width: 640px){.vis-tab{flex:0 0 auto;padding:0 24px}}.vis-tab:hover:not([aria-selected=true]){color:var(--color-ink);background:rgb(var(--color-accent) / .2)}.vis-tab[aria-selected=true]{color:var(--color-ink);border-bottom-color:var(--color-ink)}.vis-overview{margin-top:2rem}.vis-part__title{font-family:Craft Mincho,Hiragino Mincho ProN,Yu Mincho,serif;font-size:clamp(1.25rem,2.4vw,1.5rem);line-height:1.4;font-weight:500;color:var(--color-ink)}.vis-caption{margin-top:.75rem;max-width:40rem;font-size:.875rem;line-height:1.8;text-wrap:pretty}.vis-step{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--color-line);scroll-margin-top:6rem}.vis-step__title{display:flex;align-items:flex-start;gap:.75rem}.vis-step__title:focus-visible{outline:2px solid var(--color-ink);outline-offset:4px}.vis-step__num,.vis-combo__chip{display:inline-grid;place-items:center;flex:none;border:1px solid var(--color-ink);border-radius:4px;background:transparent;color:var(--color-ink);font-family:Fira Mono,Zen Kurenaido,ui-monospace,monospace;font-variant-numeric:tabular-nums;line-height:1}.vis-step__num{width:2rem;height:2rem;font-size:.9375rem}.vis-step__text{margin-top:.75rem;max-width:40rem;line-height:1.9;text-wrap:pretty}.vis-step .vis-sim{margin-top:1.5rem}.vis-step .vis-formulas{margin-top:2rem}.vis-symbols-details{margin-top:1.25rem}.vis-symbols-details>.vis-symbols{margin-top:0;padding-bottom:8px}.vis-symbols-details+.vis-code{margin-top:0}.vis-combo{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--color-line)}.vis-combo__text{margin-top:.75rem;max-width:40rem;line-height:1.9;text-wrap:pretty}.vis-combo__list{margin-top:1.25rem;max-width:40rem;padding:0;list-style:none}.vis-combo__item{display:flex;align-items:center;gap:16px;padding:6px 0;border-top:1px solid var(--color-line)}.vis-combo__steps{display:flex;flex:0 0 6.5rem;flex-wrap:wrap;gap:4px}.vis-combo__chip{width:2.25rem;height:2.25rem;font-size:.875rem;cursor:pointer}.vis-combo__chip:hover{background:rgb(var(--color-accent) / .3)}@media (pointer: coarse),(max-width: 640px){.vis-combo__chip{width:44px;height:44px}}.vis-combo__label{line-height:1.7}.vis-legend{display:flex;flex-wrap:wrap;gap:2px 20px;margin-top:8px;font-size:.8125rem;line-height:1.7}.vis-legend__item{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.vis-legend__label{display:inline-flex;align-items:baseline;gap:4px}.vis-legend__symbol{font-size:1.05em}.vis-legend__value{font-family:Fira Mono,Zen Kurenaido,ui-monospace,monospace;font-variant-numeric:tabular-nums}.vis-legend__swatch{align-self:center;width:10px;height:10px;border:1px solid var(--color-muted);border-radius:2px}
