:root{--paper: #f5f1e8;--surface: #fbf8f1;--surface-sunken: #efe9da;--ink: #211c16;--ink-soft: #5c5346;--rule: #ddd5c4;--accent: #b4451f;--accent-ink: #8f3414;--accent-contrast: #ffffff;--focus: #1a55c0;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--measure: 64ch;--radius: 10px;--shadow: 0 1px 2px rgba(33, 28, 22, .06), 0 12px 32px rgba(33, 28, 22, .09);color-scheme:light dark}:root[data-theme=dark]{--paper: #17140f;--surface: #211c16;--surface-sunken: #100d09;--ink: #ece6d8;--ink-soft: #b3a994;--rule: #38322a;--accent: #e6783f;--accent-ink: #f29b6c;--accent-contrast: #17140f;--focus: #8fb6ff;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 14px 36px rgba(0, 0, 0, .45)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--paper: #17140f;--surface: #211c16;--surface-sunken: #100d09;--ink: #ece6d8;--ink-soft: #b3a994;--rule: #38322a;--accent: #e6783f;--accent-ink: #f29b6c;--accent-contrast: #17140f;--focus: #8fb6ff;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 14px 36px rgba(0, 0, 0, .45)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);line-height:1.6;accent-color:var(--accent)}.wrap{width:min(100% - 2.5rem,90rem);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:.5rem;top:-3rem;z-index:10;padding:.6rem 1rem;background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius);text-decoration:none;transition:top .12s ease}.skip-link:focus{top:.5rem}:where(a,button,input,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}a{color:var(--accent-ink);text-underline-offset:.15em}kbd{font-family:var(--font-sans);font-size:.85em;padding:.05em .4em;border:1px solid var(--rule);border-bottom-width:2px;border-radius:5px;background:var(--surface)}.site-header{border-bottom:1px solid var(--rule);padding-block:clamp(3.25rem,1rem + 5vw,4.5rem) 2rem;background:linear-gradient(180deg,var(--surface),var(--paper))}.eyebrow{margin:0 0 .75rem;font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink)}.title{margin:0;font-family:var(--font-serif);font-weight:600;font-size:clamp(2.4rem,1rem + 6vw,4.5rem);line-height:1.04;letter-spacing:-.01em}.title em{font-style:italic;color:var(--accent-ink)}.lede{margin:1.25rem 0 0;font-size:clamp(1.1rem,1rem + .4vw,1.35rem);color:var(--ink-soft)}.disclaimer{margin-top:1.75rem;padding:1rem 1.25rem;font-size:.95rem;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:var(--radius)}main.wrap{padding-block:clamp(2rem,1rem + 4vw,4rem)}.layout{display:grid;grid-template-columns:30fr 70fr;gap:clamp(1.5rem,1rem + 2vw,3rem);align-items:start}@media(max-width:60rem){.layout{grid-template-columns:1fr}}.controls{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1.25rem;padding:clamp(1rem,.8rem + 1vw,1.5rem);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}@media(max-width:60rem){.controls{position:static}}.control-header{display:flex;flex-direction:column;gap:.85rem}.control-groups{display:flex;flex-direction:column;gap:1.1rem}.controls-title{margin:0;font-size:1.05rem;letter-spacing:.02em}.control-group{margin:0;padding:.9rem 0 0;border:0;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:.75rem}.control-group legend{padding:0;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.check{display:grid;grid-template-columns:auto 1fr;gap:.1rem .55rem;align-items:center}.check input{width:1.2rem;height:1.2rem}.check label{font-size:.98rem;cursor:pointer}.check-hint{grid-column:2;font-size:.82rem;color:var(--ink-soft)}.check--info{grid-template-columns:auto 1fr auto}.check--info .check-hint,.check--info .info-panel{grid-column:2 / -1}.control-master label{font-weight:600}.control-hint{margin:0;font-size:.82rem;color:var(--ink-soft)}.mode{display:flex;flex-direction:column;gap:.5rem}.mode-params{display:flex;flex-direction:column;gap:.45rem;min-inline-size:0;margin:.05rem 0 .15rem .5rem;padding:.5rem 0 .15rem .8rem;border:0;border-left:2px solid var(--rule)}.mode-params[hidden]{display:none}.radiogroup{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .7rem;margin:0;padding:0;border:0;min-inline-size:0}.radiogroup-legend{padding:0;font-size:.82rem;color:var(--ink-soft)}.radio{display:flex;align-items:center;gap:.35rem}.radio input{width:1.1rem;height:1.1rem}.radio label{font-size:.92rem;cursor:pointer}.slider{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.25rem .5rem}.slider label{font-size:.95rem;font-weight:500}.slider input[type=range]{grid-column:1 / -1;width:100%;-webkit-appearance:none;appearance:none;height:1.5rem;background:transparent;cursor:pointer}.slider input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:var(--surface-sunken);border:1px solid var(--rule)}.slider input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:var(--surface-sunken);border:1px solid var(--rule)}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:1.5rem;height:1.5rem;margin-top:calc((6px - 1.5rem)/2);border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 1px 3px #0000004d}.slider input[type=range]::-moz-range-thumb{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.slider output{font-size:.82rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;text-align:right}.btn,.reveal-btn{font:inherit;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius);border:1px solid transparent;background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:transform 80ms ease,filter .12s ease,background .12s ease}.btn:hover,.reveal-btn:hover{filter:brightness(1.06)}.btn:active,.reveal-btn:active{transform:translateY(1px)}.reveal-btn{width:100%;text-align:center}.reveal-btn[aria-pressed=true]{background:var(--surface-sunken);color:var(--ink);border-color:var(--accent)}.theme-toggle{position:fixed;top:.85rem;right:.85rem;z-index:30;display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.85rem;font-weight:600;padding:.4rem .8rem;border-radius:999px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:var(--shadow);transition:border-color .12s ease,background .12s ease}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle__icon{font-size:1rem;line-height:1}.section-heading{font-family:var(--font-serif);font-size:clamp(1.5rem,1rem + 1.6vw,2.1rem);line-height:1.15;margin:0 0 .4rem}#reading .section-heading{margin-top:0}.section-note{margin:0 0 1.25rem;color:var(--ink-soft)}.reading-surface{padding:clamp(1.25rem,1rem + 2vw,2.75rem);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}.prose{font-family:var(--font-serif);font-size:clamp(1.1rem,1rem + .45vw,1.3rem);line-height:1.75}.prose p{margin:0 0 1.1em}.prose p:last-child{margin-bottom:0}.math-demo{margin-top:clamp(1.75rem,1rem + 2.5vw,3rem)}.math-heading{font-family:var(--font-serif);font-size:clamp(1.2rem,1rem + 1vw,1.6rem);line-height:1.2;margin:0 0 .4rem}.math-surface{margin-top:1rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.math-surface__body{padding:clamp(1.25rem,1rem + 2vw,2.5rem);overflow-x:auto}.math-surface .katex{color:var(--ink);font-size:1.15em}.math-surface .katex-display{margin:0}.math-note{margin:1rem 0 0;font-size:.9rem;line-height:1.65;color:var(--ink-soft)}.math-note .menu-path{font-weight:600;color:var(--ink)}.math-render-label{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.6rem;margin:0;padding:.7rem 1rem;background:var(--surface-sunken);border-bottom:1px solid var(--rule);font-size:.88rem;line-height:1.55;color:var(--ink-soft)}.math-render-label strong{color:var(--ink)}.math-render-label__badge,.math-panel__badge{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--accent);color:var(--accent-contrast);font-size:.9rem;font-weight:700;line-height:1}.math-compare{margin-top:clamp(1.75rem,1rem + 2.5vw,2.75rem);display:flex;flex-direction:column;gap:1rem}.math-compare__heading{font-family:var(--font-serif);font-size:clamp(1.1rem,1rem + .7vw,1.4rem);line-height:1.2;margin:0}.math-compare .section-note{margin:0}.math-panel{margin:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.math-panel__label{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.15rem .6rem;padding:.7rem 1rem;background:var(--surface-sunken);border-bottom:1px solid var(--rule)}.math-panel__badge{grid-row:span 2}.math-panel__name{font-weight:700}.math-panel__by{font-size:.85rem;line-height:1.5;color:var(--ink-soft)}.math-panel__body{padding:clamp(1rem,.8rem + 1.5vw,2rem);overflow-x:auto}.math-panel__body math{font-size:1.2em;color:var(--ink)}.math-panel__body .MathJax,.math-panel__body mjx-container{color:var(--ink)}.math-panel__status{margin:0;padding:0 1rem .9rem;font-size:.85rem;color:var(--ink-soft)}.math-panel__status:empty{padding:0}.table-demo{margin-top:clamp(2.5rem,2rem + 3vw,4.5rem)}.table-surface{margin-top:.5rem;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.95rem;font-variant-numeric:tabular-nums}.data-table caption{text-align:left}.data-table th,.data-table td{padding:.55rem .85rem;text-align:left;white-space:nowrap;border-bottom:1px solid var(--rule)}.data-table th:not(:first-child):not(:last-child),.data-table td:not(:first-child):not(:last-child){text-align:right}.data-table thead th{background:var(--surface-sunken);color:var(--ink);font-weight:600;border-bottom:2px solid var(--rule)}.data-table tbody th{font-weight:600}.data-table tbody tr:hover{background:var(--surface-sunken)}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}@media(max-width:52rem){.data-table:not(.sim-sr) thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.data-table:not(.sim-sr),.data-table:not(.sim-sr) tbody,.data-table:not(.sim-sr) tr,.data-table:not(.sim-sr) th,.data-table:not(.sim-sr) td{display:block}.data-table:not(.sim-sr) tbody tr{padding:.35rem 0 .6rem;border-bottom:1px solid var(--rule)}.data-table:not(.sim-sr) tbody tr:last-child{border-bottom:0}.data-table:not(.sim-sr) tbody th{padding:.5rem 1rem .35rem;font-size:1.05rem;background:var(--surface-sunken);border-bottom:0}.data-table:not(.sim-sr) td{display:grid;grid-template-columns:minmax(7.5rem,40%) 1fr;gap:.75rem;padding:.3rem 1rem;white-space:normal;overflow-wrap:anywhere;border-bottom:0}.data-table:not(.sim-sr) td:before{content:attr(data-label) / "";font-size:.82rem;font-weight:600;color:var(--ink-soft)}.data-table:not(.sim-sr) td:not(:first-child):not(:last-child){text-align:left}.data-table:not(.sim-sr) tbody tr:hover{background:transparent}}.table-note{margin:1rem 0 0;font-size:.9rem;line-height:1.65;color:var(--ink-soft)}.cvd-demo{margin-top:clamp(2.5rem,2rem + 3vw,4.5rem);padding-top:clamp(2rem,1.5rem + 2vw,3rem);border-top:1px solid var(--rule)}.cvd-controls{margin:0 0 1.25rem;padding:1rem 1.25rem 1.1rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);min-inline-size:0}.cvd-controls__legend{padding:0 .4rem;font-weight:600}.cvd-columns{display:grid;grid-template-columns:minmax(14rem,18rem) 1fr;gap:.75rem 2rem;align-items:start}@media(max-width:40rem){.cvd-columns{grid-template-columns:1fr}}.cvd-options{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}.cvd-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:.55rem;padding:.15rem 0}.cvd-option input{width:1.2rem;height:1.2rem;margin:0}.cvd-option label{font-size:1rem;cursor:pointer}.cvd-detail{padding:.85rem 1.1rem 1rem;background:var(--surface-sunken);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0}.cvd-detail.is-empty{padding:0;border:0}.cvd-detail__heading{margin:0 0 .35rem;font-size:1rem;font-weight:700}.cvd-detail__text{margin:0;font-size:.92rem;line-height:1.55}.info-btn{display:inline-grid;place-items:center;width:2rem;height:2rem;padding:0;font:inherit;border-radius:50%;border:2px solid var(--accent-ink);background:transparent;color:var(--accent-ink);cursor:pointer;transition:background .12s ease,color .12s ease}.info-btn__icon{font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:1.05rem;line-height:1}.info-btn:hover,.info-btn[aria-expanded=true]{background:var(--accent-ink);color:var(--surface)}.info-panel{grid-column:2 / -1;margin:.35rem 0 .4rem;padding:.7rem .9rem;font-size:.92rem;line-height:1.55;color:var(--ink);background:var(--surface-sunken);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0}.info-panel:empty{margin:0;padding:0;border:0}.cvd-status{margin:0 0 1rem;font-weight:600;color:var(--accent-ink)}.cvd-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:clamp(1rem,.75rem + 1vw,1.75rem)}.cvd-figure{margin:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.cvd-figure img{display:block;width:100%;height:auto;background:#fff;transition:filter .2s ease}.cvd-figure figcaption{padding:.85rem 1rem 1rem;font-size:.9rem;line-height:1.55;color:var(--ink-soft)}.cvd-figure figcaption strong{color:var(--ink)}@media(prefers-reduced-motion:reduce){.cvd-figure img{transition:none}}#bookmarklet,#credits{margin-top:clamp(2.5rem,2rem + 3vw,4.5rem);padding-top:clamp(2rem,1.5rem + 2vw,3rem);border-top:1px solid var(--rule)}.bookmarklet-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:clamp(1.5rem,1rem + 2vw,2.5rem);align-items:start}.bookmarklet-item__heading{margin:0 0 .4rem;font-family:var(--font-serif);font-size:1.15rem;line-height:1.2}.bookmarklet-item .section-note{margin-bottom:1rem}.bookmarklet-link{display:inline-block;padding:.7rem 1.2rem;background:var(--accent);color:var(--accent-contrast);font-weight:700;border-radius:var(--radius);text-decoration:none;box-shadow:var(--shadow);cursor:grab}.bookmarklet-link:active{cursor:grabbing}.bookmarklet-code{margin-top:1.5rem;display:flex;flex-direction:column;gap:.6rem;max-width:60ch}.bookmarklet-code label{font-weight:600}.bookmarklet-code textarea{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8rem;width:100%;padding:.6rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface-sunken);color:var(--ink-soft);resize:vertical;word-break:break-all}.bookmarklet-code .btn{align-self:flex-start}.credits{padding-left:1.1rem;color:var(--ink-soft)}.credits li{margin-bottom:.6rem}.site-footer{border-top:1px solid var(--rule);padding-block:2rem;margin-top:3rem}.site-footer p{margin:0;font-size:.9rem;color:var(--ink-soft)}.noscript-note{margin-top:1rem;color:var(--accent-ink)}.glyph{display:inline-block;vertical-align:baseline}.sim-math use[data-char]{transform-box:fill-box;transform-origin:center}.word{display:inline-block}.sim-visual.m-flip :is(.glyph,use)[data-char=b],.sim-visual.m-flip :is(.glyph,use)[data-char=d],.sim-visual.m-flip :is(.glyph,use)[data-char=p],.sim-visual.m-flip :is(.glyph,use)[data-char=q],.sim-visual.m-flip :is(.glyph,use)[data-char=g]{scale:-1 1}.sim-visual.m-flip :is(.glyph,use)[data-char="6"],.sim-visual.m-flip :is(.glyph,use)[data-char="9"]{rotate:180deg}.sim-visual.m-crowd{letter-spacing:calc(-.06em * var(--crowd-amp, 1));word-spacing:calc(-.18em * var(--crowd-amp, 1))}.sim-visual.m-blur{filter:blur(calc(1.4px * var(--blur-amp, 1)))}.motion-ok .sim-visual.m-blur{animation:dsx-focus var(--blur-period, 2s) ease-in-out infinite alternate}@keyframes dsx-focus{0%{filter:blur(calc(.8px * var(--blur-amp, 1)))}to{filter:blur(calc(2.6px * var(--blur-amp, 1)))}}.motion-ok .sim-visual.m-wobble .glyph,.motion-ok .sim-visual.m-wobble use[data-char]{animation:dsx-wobble var(--wobble-period, 1.6s) var(--gd, 0s) infinite alternate ease-in-out}@keyframes dsx-wobble{0%{transform:translate(calc(-.4px * var(--wobble-amp, 1)),calc(-.7px * var(--wobble-amp, 1))) rotate(calc(-2.6deg * var(--wobble-amp, 1)))}to{transform:translate(calc(.4px * var(--wobble-amp, 1)),calc(.7px * var(--wobble-amp, 1))) rotate(calc(2.6deg * var(--wobble-amp, 1)))}}.sim-visual.m-fragment{font-family:var(--font-sans)}.lens-host{position:relative}.lens-veil{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;--lx: 50%;--ly: 50%;--lr: 30%}.lens-host.lens-on .lens-veil{opacity:1}.lens-host[data-polarity=tunnel] .lens-veil{background:radial-gradient(circle at var(--lx) var(--ly),transparent 0,transparent calc(var(--lr) * .72),rgba(0,0,0,.86) calc(var(--lr) * 1.35),rgba(0,0,0,.97) 100%)}.lens-host[data-polarity=scotoma] .lens-veil{background:radial-gradient(circle at var(--lx) var(--ly),rgba(0,0,0,.97) 0,rgba(0,0,0,.9) calc(var(--lr) * .6),transparent calc(var(--lr) * 1.15),transparent 100%)}.lens-host[data-blackhole=true] .lens-veil{background:transparent}
