:root{color-scheme:dark;--bg:#111110;--panel:#1c1c1a;--panel2:#232320;--line:#353530;--text:#e5e5df;--muted:#aaa9a1;--accent:#4aba82;--naive:#f28e8e;--bonf:#e8c67b;--holm:#baa4ed;--sidak:#83bcea;--holmsidak:#71d3cf;--hochberg:#e1a16b;--hommel:#df9ac6;--bh:#61c997;--by:#b6d67c;--storey:#f7b683;--adabh:#9ba8f3;--null:#a6a6a0;--true:#61c997;--grid-pos:#3ccf9c;--grid-neg:#ff6e4f;--grid-null:#c9c8c0;--grid-tile:#2a2a26;--grid-hit:#f4f4ee;--grid-false:#f5b841;--grid-false-fill:#ffd24d;--grid-ink-dark:#10110f;--grid-ink-light:#f1f1ea;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(16px,calc(11px + .55vw),32px);line-height:1.55}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1rem}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-underline-offset:.22em}button,input,select{font:inherit}button,select{min-height:2.75rem;border:1px solid var(--line);border-radius:.5rem;background:var(--panel2);color:var(--text);padding:.55rem .8rem}button{cursor:pointer;font-size:.8rem;font-weight:650}button:hover{border-color:var(--muted);background:#2c2c27}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#0d2116;border-color:var(--accent)}button.primary:hover{background:#61ce99}select{max-width:100%;font-size:.85rem}input{accent-color:var(--accent)}input[type=number]{width:100%;padding:.5rem;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:.4rem}input[type=checkbox]{width:1.1rem;height:1.1rem}input[type=range]{display:block;width:100%;height:1.8rem;margin:.15rem 0;direction:ltr}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4vw,3.1rem);line-height:1.12;letter-spacing:-.035em;max-width:24ch;text-wrap:balance}h2{font-size:1.15rem;line-height:1.3}h3{font-size:1rem;line-height:1.4}p{overflow-wrap:anywhere}small,.hint{font-size:.75rem;color:var(--muted);line-height:1.55}.shell{width:min(100% - 2rem,78rem);margin:auto}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 0;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:.95rem;color:var(--text);font-weight:700;white-space:nowrap}.brand span{color:var(--muted);font-weight:400}.language-control{display:flex;align-items:center;gap:.6rem}.language-control label{font-size:.75rem;color:var(--muted)}.language-control select{min-height:2.4rem;max-width:12rem}.hero{padding:2.5rem 0 2rem}.eyebrow{color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.09em;margin-bottom:.65rem}.lead{max-width:70ch;color:var(--muted);font-size:.95rem;margin-top:1rem}.section-nav{display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;margin-top:1.25rem;font-size:.8rem}.section-nav a{padding:.3rem 0}.workspace{display:grid;grid-template-columns:minmax(14rem,18rem) minmax(0,1fr);gap:1.4rem;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:.8rem;padding:1.25rem}.settings h2{margin-bottom:1rem}.settings>select{width:100%;margin:.35rem 0 1rem}.controls{display:grid;gap:.8rem}.control-label{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;font-size:.82rem}.control-label output{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.hint{margin-top:.3rem}.auto{display:flex;gap:.5rem;align-items:center;font-size:.8rem;min-height:2.75rem;margin-top:.6rem}.actions{display:grid;grid-template-columns:1fr auto;gap:.5rem}.text-button{width:100%;background:transparent;border-color:transparent;margin-top:.3rem}.seed-details{margin-top:.75rem;border-top:1px solid var(--line);padding-top:.4rem}.seed-details summary{font-size:.75rem}.seed-details input{margin-top:.5rem}.results{min-width:0}.results-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem}.segmented{display:flex;border:1px solid var(--line);border-radius:.5rem;padding:.2rem;gap:.2rem}.segmented button{min-height:2rem;font-size:.72rem;border-color:transparent;padding:.3rem .6rem;background:transparent}.segmented button[aria-pressed=true]{background:var(--panel2);color:var(--accent)}.run-state{margin:.65rem 0 1rem;min-height:2.2rem}.run-state p{font-size:.72rem;color:var(--muted);min-height:1.4em}progress{display:block;width:100%;height:3px;border:none;accent-color:var(--accent);margin-top:.3rem;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:.7rem;padding:1rem;min-width:0}.metric-head{min-height:3.7rem;display:flex;flex-direction:column;justify-content:space-between;gap:.3rem}.metric-head h3{font-size:.86rem}.metric-target{font-size:.68rem;color:var(--muted);min-height:1em}.metric-card>p{font-size:.72rem;color:var(--muted);min-height:5em;margin:.65rem 0 1.1rem}.bars{display:grid;gap:.9rem}.bar-label{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.7rem;margin-bottom:.25rem}.bar-label a{color:var(--text);text-decoration:none;overflow-wrap:anywhere}.bar-label a:hover{text-decoration:underline}.bar-label strong{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.track{height:.5rem;background:#30302b;border-radius:3px;position:relative;direction:ltr}.fill{height:100%;border-radius:3px;min-width:0}.target-line{position:absolute;top:-3px;bottom:-3px;border-inline-start:1px dashed var(--text);opacity:.75}.target-note{margin:.75rem 0 1.25rem;max-width:100ch}.result-details{margin-top:.8rem;padding:1rem}.result-details summary{font-size:.86rem}.result-details p{margin:.6rem 0}.table-scroll{overflow-x:auto;margin-top:.8rem}table{border-collapse:collapse;width:100%;font-size:.75rem}th,td{text-align:end;border-bottom:1px solid var(--line);padding:.65rem .5rem;font-variant-numeric:tabular-nums;white-space:nowrap}th:first-child,td:first-child{text-align:start;white-space:normal;min-width:8rem}th{color:var(--muted);font-weight:500}td .method{display:flex;align-items:center;gap:.4rem}.dot{width:.4rem;height:.4rem;border-radius:100%;flex-shrink:0}summary{cursor:pointer;padding:.4rem 0;min-height:2.2rem}details[open]>summary{margin-bottom:.4rem}.notice{border-inline-start:3px solid var(--bonf);background:#2b281d;padding:.7rem 1rem;margin:.7rem 0;font-size:.8rem}.result-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}#share-status{min-height:1.5em}.assumptions{margin:2rem 0}.assumptions p{margin-top:.75rem;font-size:.84rem;max-width:110ch}.assumptions .hint{font-size:.75rem}.hist-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.72rem;color:var(--muted)}.null-dot::before,.real-dot::before{content:"";display:inline-block;width:.6rem;height:.6rem;margin-inline-end:.4rem;background:var(--null)}.real-dot::before{background:var(--true)}.hist-chart{display:flex;align-items:end;height:8rem;gap:2px;direction:ltr;border-bottom:1px solid var(--line);margin-top:1rem}.hist-bin{display:flex;align-items:end;gap:1px;flex:1;height:100%;position:relative}.hist-bin>span{width:50%;min-height:0}.hist-axis{display:flex;justify-content:space-between;direction:ltr;font-size:.7rem;color:var(--muted);margin-top:.25rem}.guide{max-width:62rem;margin:3rem auto}.guide>h2{font-size:1.8rem;letter-spacing:-.025em}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin:2rem 0}.guide-grid section{border-top:1px solid var(--line);padding-top:1rem}.guide p{font-size:.85rem;color:var(--muted);margin:.65rem 0 1rem}.guide>h3{margin:2rem 0 1rem}.guide details{border-bottom:1px solid var(--line);padding:.35rem 0}.guide summary{font-size:.9rem;font-weight:600}.guide details p{max-width:85ch}.guide .lead{font-size:.95rem}.sources{margin-top:2rem}.sources li{font-size:.8rem;margin:.6rem 0}footer{padding:1.5rem 0 2rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}footer>p{max-width:85ch}.languages{margin-top:1.25rem}.languages h2{font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:.5rem}.languages ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr));gap:.2rem 1.5rem}.languages li>span,.languages li>a{unicode-bidi:isolate}.languages li{font-size:.875rem;line-height:1.4;padding:.3rem 0;color:var(--muted);overflow-wrap:break-word}.languages a[aria-current]{color:var(--text);font-weight:700}.skip{position:absolute;inset-block-start:-10rem;background:var(--accent);color:var(--bg);padding:1rem;z-index:10}.skip:focus{inset-block-start:0}.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}[hidden]{display:none!important}[dir=rtl] .bar-label,[dir=rtl] .control-label{text-align:start}
@media(min-width:1600px){.shell{width:min(100% - 3rem,74rem)}}
@media(max-width:1050px){.metric-grid{grid-template-columns:1fr}.metric-card{display:grid;grid-template-columns:minmax(8rem,1fr) 1.5fr;gap:.5rem 1rem}.metric-head{min-height:0;justify-content:start}.metric-card>p{grid-column:1;min-height:0;margin:0;font-size:.72rem}.bars{grid-column:2;grid-row:1/3}.metric-target{margin-top:.3rem}.workspace{grid-template-columns:minmax(13rem,17rem) minmax(0,1fr)}}
@media(max-width:700px){.shell{width:calc(100% - 1.5rem)}.hero{padding:1.75rem 0}.workspace{grid-template-columns:1fr;gap:1.2rem}.controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}.control-label{font-size:.8rem}.settings{padding:1rem}.settings .hint{font-size:.72rem}.language-control{gap:.3rem}.language-control label{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.language-control select{max-width:10rem}.guide-grid{grid-template-columns:1fr}.guide>h2{font-size:1.5rem}.assumptions{margin:1.5rem 0}.result-actions>button{flex:1}.metric-card{grid-template-columns:minmax(7rem,1fr) 1.5fr}.lead{font-size:.9rem}.settings>select{margin-bottom:.75rem}}
@media(max-width:370px){.controls{grid-template-columns:1fr}.metric-card{display:block}.metric-card>p{margin:.6rem 0 1rem}.topbar{gap:.5rem}.language-control select{max-width:8.5rem}.brand{font-size:.82rem}.panel{padding:.85rem}.results-heading{align-items:start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.settings,.topbar,.section-nav,.result-actions,footer,progress{display:none}.workspace{display:block}.shell{width:100%}body{background:white;color:black}.panel,.metric-card{break-inside:avoid}.guide{margin-top:2rem}}
/* Visual simulation grid (grid.js). Colours: --grid-* tokens in :root; sizes/motion: GRID in grid.js. */
.grid-panel{margin-bottom:1rem;background:radial-gradient(120% 70% at 50% 0%,#23241f 0%,var(--panel) 62%);overflow:hidden}
.grid-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem 1.2rem;flex-wrap:wrap}
.grid-head h3{font-size:1.1rem;letter-spacing:-.01em}
.grid-head>div:first-child{flex:1 1 22rem}
.grid-intro{font-size:.875rem;color:var(--muted);margin-top:.3rem;max-width:62ch}
.grid-tools{display:flex;align-items:center;gap:.35rem;direction:ltr}
.icon-button{min-width:2.75rem;min-height:2.75rem;padding:0;display:inline-grid;place-items:center;border-radius:.6rem}
.icon-button svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;grid-area:1/1}
#grid-play svg:first-child{fill:currentColor;stroke:none}
#grid-play .pause,#grid-play.playing svg:first-child{display:none}
#grid-play.playing .pause{display:block}
.icon-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:#1d2b23}
#grid-experiment{font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--muted);min-width:8.5em;text-align:center}
.grid-summary{font-size:1rem;font-weight:650;margin:1.1rem 0 .8rem;font-variant-numeric:tabular-nums}
.grid-legend{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem}
.legend-item{display:inline-flex;align-items:center;gap:.5rem;min-height:2.5rem;padding:.25rem .8rem .25rem .3rem;border-radius:999px;font-size:.875rem;font-weight:500;background:var(--panel2)}
.legend-item strong{font-variant-numeric:tabular-nums;font-weight:700}
.legend-item[aria-pressed=true]{border-color:var(--accent);background:#1d2b23}
.swatch{width:1.7rem;height:1.7rem;display:block}
.grid-key{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .8rem;font-size:.875rem;color:var(--muted);margin-top:.7rem}
.key-label{color:var(--text);font-weight:600}
.hue::before{content:"";display:inline-block;width:.85rem;height:.85rem;border-radius:.2rem;margin-inline-end:.35rem;vertical-align:-.1em;background:var(--grid-null)}
.hue-neg::before{background:var(--grid-neg)}
.hue-pos::before{background:var(--grid-pos)}
.bright-bar{width:6rem;height:.7rem;border-radius:999px;background:linear-gradient(90deg,var(--grid-tile),var(--grid-pos));direction:ltr}
[dir=rtl] .bright-bar{transform:scaleX(-1)}
.grid-stage{position:relative;direction:ltr;margin-top:.9rem}
.grid-stage canvas,.grid-many canvas{display:block;width:100%;border-radius:.4rem;transition:opacity .3s ease}
#stale:not([hidden])~#result-content .grid-panel canvas,#result-content[aria-busy=true] .grid-panel canvas{opacity:.45}
.grid-tip{position:absolute;z-index:3;pointer-events:none;display:grid;gap:.1rem;min-width:11rem;padding:.55rem .75rem;border:1px solid var(--line);border-radius:.55rem;background:rgba(12,12,11,.94);box-shadow:0 10px 30px rgba(0,0,0,.5);font-size:.875rem;line-height:1.45;white-space:nowrap;transform:translate(-50%,calc(-100% - 12px));font-variant-numeric:tabular-nums}
.grid-tip.below{transform:translate(-50%,12px)}
.tip-title{font-weight:700}
.tip-hit{color:var(--grid-pos)}.tip-false{color:var(--grid-false)}.tip-miss{color:var(--text)}.tip-correct{color:var(--muted)}
.tip-muted{color:var(--muted)}
.grid-sub{font-size:.95rem;margin:1.4rem 0 .6rem}
.grid-methods{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem}
.mini{display:flex;flex-direction:column;align-items:stretch;gap:.45rem;padding:.6rem .65rem;text-align:start;font-weight:500;min-height:0;background:#20201d;transition:border-color .2s,background .2s}
.mini canvas{display:block;width:100%}
.mini[aria-pressed=true]{border-color:var(--accent);background:#1b2820;box-shadow:inset 0 0 0 1px var(--accent)}
.mini-name{font-size:.875rem;font-weight:650;line-height:1.3;min-height:2.6em}
.mini-counts{display:flex;gap:.8rem;font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--muted)}
.mini-hit{color:var(--grid-pos)}.mini-false{color:var(--grid-false)}
.grid-many{margin-top:1.6rem;border-top:1px solid var(--line);padding-top:.3rem}
.grid-many .hint{font-size:.875rem;max-width:80ch}
.many-bands{display:flex;direction:ltr;margin:.8rem 0 .35rem;font-size:.875rem;color:var(--muted)}
.many-bands span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:2px solid var(--line);padding-bottom:.15rem}
.many-bands span:first-child{border-color:var(--grid-pos);color:var(--text)}
.many-bands .band-flag{flex:none;display:flex;justify-content:center;overflow:visible;text-overflow:clip;font-size:.75rem;color:var(--grid-false);border-color:var(--grid-false)}
.many-bands[hidden]{display:none}
#grid-many{cursor:pointer}
#grid-canvas:focus-visible,#grid-many:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.many-stats{display:grid;gap:.2rem;margin-top:.7rem;font-size:.875rem;font-variant-numeric:tabular-nums}
.flag-swatch{display:inline-block;width:.45rem;height:.9rem;border-radius:.1rem;background:var(--grid-false);margin-inline-end:.45rem;vertical-align:-.12em}
@media(max-width:700px){.grid-panel{padding:1rem}.grid-tools{width:100%;justify-content:space-between}.grid-methods{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-tip{min-width:0;white-space:normal;max-width:15rem}}
/* Tile order control + true-effect axis (grid.js GRID.layouts / renderAxis) */
.grid-order{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .7rem;font-size:.875rem;margin-top:.9rem}
.segmented{display:inline-flex;direction:ltr}
.segmented .icon-button{border-radius:0;margin-inline-start:-1px}
.segmented .icon-button:first-child{border-radius:.6rem 0 0 .6rem;margin-inline-start:0}
.segmented .icon-button:last-child{border-radius:0 .6rem .6rem 0}
.segmented .icon-button[aria-pressed=true]{position:relative;z-index:1}
.grid-axis{position:relative;height:2.9em;font-size:.875rem;opacity:0;transition:opacity .35s ease;pointer-events:none}
.grid-axis.on{opacity:1}
.grid-axis span{position:absolute;top:0;padding-top:.35rem;border-top:3px solid;text-align:center;color:var(--muted);line-height:1.25;overflow-wrap:break-word;transition:left .56s cubic-bezier(.65,0,.35,1),width .56s cubic-bezier(.65,0,.35,1)}
.grid-axis .axis-neg{border-color:var(--grid-neg)}
.grid-axis .axis-none{border-color:var(--grid-null)}
.grid-axis .axis-pos{border-color:var(--grid-pos)}
@media(prefers-reduced-motion:reduce){.grid-axis,.grid-axis span{transition:none}}
