@font-face{font-family:Redaction Inclusive;src:url(./Redaction-Inclusive-Regular-Bau2pw2_.woff2) format("woff2"),url(./Redaction-Inclusive-Regular-PjF4cz8w.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;--font-mono: "Iosevka", "Iosevka Web", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-title: "Redaction Inclusive", Georgia, serif;--canvas-bg: oklch(.93 .01 260);--canvas-ink: oklch(.24 .02 260);--canvas-accent: oklch(.55 .16 260);--bg: color-mix(in oklch, var(--canvas-ink) 72%, oklch(.13 .01 270));--fg: color-mix(in oklch, var(--canvas-bg) 90%, white);--dark: color-mix(in oklch, white 20%, var(--canvas-ink));--muted: color-mix(in oklch, var(--fg) 52%, var(--bg));--line: var(--dark);--line-strong: var(--dark);--accent: oklch(from var(--canvas-accent) .76 min(c, .17) h);--hue-rainbow: linear-gradient( to right in oklch longer hue, oklch(.7 .13 0), oklch(.7 .13 360) );--s-font-small: .75rem;--dur: .16s;--dur-theme: .4s}@media(prefers-reduced-motion:reduce){:root{--dur: 0ms;--dur-theme: 0ms}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:.8125rem;line-height:1.6;transition:background-color var(--dur-theme) linear,color var(--dur-theme) linear}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent)}:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}button{font:inherit;color:inherit}.marks{display:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--dark);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::-webkit-scrollbar-corner{background:var(--bg)}@supports (-moz-appearance: none){*{scrollbar-width:thin;scrollbar-color:var(--dark) transparent}}.tabs{display:flex}.tabs__tab+.tabs__tab{margin-left:-1px}.tabs .tabs__tab:hover,.tabs .tabs__tab[aria-selected=true]{position:relative;z-index:1}.tabs__tab,.viz-flip,.compo-regen,.control--gamut{font-family:var(--font-mono);font-size:var(--s-font-small);background:transparent;border:1px solid var(--line-strong);padding:1em 1.75em;cursor:pointer;transition:background-color var(--dur) linear,color var(--dur) linear,border-color var(--dur) linear}.tabs__tab:hover,.viz-flip:hover,.compo-regen:hover,.control--gamut:hover{border-color:var(--fg)}.tabs__tab[aria-selected=true],.control--gamut[data-active],.viz-flip[data-flipped]{background:var(--fg);border-color:var(--fg);color:var(--bg)}[data-copied]:after{content:" ✓"}.topbar{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--bg) 78%,transparent)}.topbar__strip{flex:1;display:flex;height:14px;outline:1px solid var(--line)}.topbar__strip span{flex:1;background:var(--swatch)}:root{--gutter: clamp(1rem, 3vw, 2rem);--col-gap: clamp(1.75rem, 4vw, 4.5rem)}.layout{display:grid;grid-template-columns:calc(clamp(280px,24vw,340px) + var(--gutter)) minmax(0,1fr);gap:var(--col-gap)}.side{position:relative}.side:after{content:"";position:absolute;top:3.25rem;right:0;bottom:-1px;left:0;border-right:1px solid var(--line);pointer-events:none}.side__in{position:sticky;top:0;max-height:100vh;overflow-y:auto;padding:0 1.5rem 2.5rem var(--gutter);direction:rtl}.side__in>*{direction:ltr}.sheet{padding-right:var(--gutter);max-width:76rem}.side__tabs{display:flex;position:sticky;top:0;z-index:2;margin-top:1.8rem;margin-bottom:0;background:var(--bg);transition:background-color var(--dur-theme) linear}.side__tabs:after,.side__tabs:before{content:"";position:absolute;height:1px;background:var(--line);width:calc(var(--gutter) - 1rem);top:50%}.side__tabs:before{left:calc(-1 * var(--gutter))}.side__tabs:after{right:calc(-1 * var(--gutter))}.side__tabs .tabs,.side .tabs__tab{flex:1}.side__tabs .control--gamut{flex:none;margin-left:-1px}.side__tabs .control--gamut:hover{position:relative;z-index:1}.side__curve{margin:0 0 1.25rem}.side__curve[hidden]{display:none}.hero{padding:clamp(2rem,6vh,4.5rem) var(--gutter) clamp(2.5rem,6vh,5rem)}.wordmark{margin:0 0 2.5rem;font-family:var(--font-title);font-weight:400;font-synthesis:none;font-size:clamp(3.25rem,9vw,7.5rem);line-height:.95;letter-spacing:-.05em}.intro{margin:0;max-width:36em;font-family:var(--font-title);font-weight:400;font-synthesis:none;font-size:clamp(1.2rem,2.2vw,1.6rem);line-height:1.45}.links{display:flex;gap:1.5rem;margin:2rem 0 0}.links a{font-size:var(--s-font-small)}.links a:after{content:" ↗";color:var(--accent)}.sec{padding:1.25rem 0 4rem}.sec__head{display:flex;align-items:center;gap:1.25rem;margin-bottom:2.25rem}.sec__head:before{content:"";flex:none;height:1px;width:calc(var(--col-gap) - 1.25rem);margin-left:calc(-1 * var(--col-gap));background:var(--line)}.sec__head:after{content:"";order:2;flex:1;height:1px;background:var(--line)}.sec__head .compo-tools,.sec__head .export-tools,.sec__head .proj-tools{order:3}.sec__title{margin:0;font-family:var(--font-title);font-size:2.5rem;font-weight:400;font-synthesis:none;letter-spacing:.01em}.sec__note{margin:.9rem 0 0;font-size:var(--s-font-small);color:var(--muted)}.hanger{display:flex;align-items:flex-end;height:clamp(260px,44vh,440px);border-bottom:1px solid var(--line-strong)}.hanger__band{position:relative;flex:1;height:100%;margin:0;padding:0;border:0;background:none;cursor:pointer}.hanger__fill{position:absolute;inset:auto 0 0;height:calc(var(--reach, 1) * 100%);background:var(--swatch);display:flex;align-items:flex-end;justify-content:center;transition:height var(--dur-theme) cubic-bezier(.3,.7,0,1)}.hanger__label{writing-mode:vertical-rl;padding:.9em 0;font-size:var(--s-font-small);white-space:nowrap;color:#fff;opacity:0;transition:opacity var(--dur) linear}.hanger__band--light .hanger__label{color:#000}.hanger__band:hover .hanger__label,.hanger__band:focus-visible .hanger__label{opacity:1}.hanger__band[data-copied]:after{content:"copied";position:absolute;left:50%;bottom:calc(var(--reach, 1) * 100% + .6em);translate:-50% 0;font-size:var(--s-font-small);color:var(--accent)}.curve-pane{padding:.25rem 0}.curve-pane svg{display:block;width:100%;height:auto;overflow:visible}.curve-pane [data-handle]{cursor:grab}.curve-pane[data-dragging],.curve-pane[data-dragging] [data-handle]{cursor:grabbing}.control{display:block;position:relative;border:1px solid var(--line-strong);padding:.8rem .75rem}.control+.control{margin-top:-1px}.control__row{display:flex;justify-content:space-between;align-items:center;gap:1rem;position:relative;z-index:1;pointer-events:none}.control__label{font-size:var(--s-font-small);line-height:1.05;white-space:nowrap}.control__value{font-variant-numeric:tabular-nums;color:var(--accent)}.control--range .control__value{padding:0 .25rem;background:var(--bg);transition:background-color var(--dur-theme) linear}.control--range{background-image:radial-gradient(circle,color-mix(in oklch,var(--fg) 14%,transparent) 1px,transparent 1.5px);background-size:calc(100% / var(--tick-n, 10)) 100%;background-position:calc(-100% / (2 * var(--tick-n, 10) - 2)) center}.control--range:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in oklch,var(--accent) 20%,transparent);border-right:2px solid var(--accent);transform-origin:left center;transform:scaleX(var(--valueRel, 0)) scaleY(.8);transition:transform var(--dur) cubic-bezier(.3,.7,0,1)}.control--range:hover:before,.control--range:focus-within:before,.control--range:active:before{transform:scaleX(var(--valueRel, 0)) scaleY(1)}.control--hue:before{background-image:var(--hue-rainbow);background-size:calc(100% / var(--valueRel, 1)) 100%;background-position:left center;background-repeat:no-repeat}.control--range input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.control--select{display:flex;align-items:center;justify-content:space-between;gap:1rem}.control--select .control__label{flex:none}.control--select select{font:inherit;font-size:var(--s-font-small);color:var(--fg);background:transparent;border:0;padding:0;text-align:right;cursor:pointer}.control--from input{display:block;width:100%;margin-top:.3rem;padding:.2em 0;font:inherit;color:var(--fg);background:transparent;border:0;border-bottom:1px solid var(--line-strong)}.control--from input:focus{outline:none;border-bottom-color:var(--accent)}.control--from input::placeholder{color:var(--muted)}.control--from[data-invalid] input{border-bottom-color:#e64343}.control--from[data-invalid] .control__label:after{content:" — not a color";color:#e64343;text-transform:none}.control--from[data-clamped] .control__label:after{content:" — clamped to gamut";color:var(--accent);text-transform:none}.viz-row{display:grid;grid-template-columns:repeat(3,1fr)}.viz-cell+.viz-cell{border-left:0}.viz-cell{position:relative;margin:0;padding:1rem}.viz-flip{padding:1em 1.35em}.slice-svg,.wheel-svg{display:block;width:100%;height:auto;color:var(--fg);overflow:visible}.slice-svg .grid{stroke:currentColor;stroke-opacity:.1;stroke-width:1}.slice-svg .axis-center{stroke:currentColor;stroke-opacity:.5;stroke-width:1.5}.slice-svg .tick,.slice-svg .label{fill:var(--muted);font-size:var(--s-font-small);font-family:var(--font-mono)}.slice-svg .title,.slice-svg .axis{display:none}.slice-svg .env-line{fill:none;stroke:currentColor;stroke-opacity:.6;stroke-width:1.5}.slice-svg .tri{fill:none;stroke:currentColor;stroke-opacity:.5;stroke-width:1;stroke-dasharray:4 3}.slice-svg .tri-model{fill:currentColor;fill-opacity:.04;stroke:currentColor;stroke-opacity:.55;stroke-width:1}.slice-svg .guide{stroke:currentColor;stroke-opacity:.16;stroke-width:1}.slice-svg .traj{fill:none;stroke:currentColor;stroke-opacity:.4;stroke-width:1;stroke-dasharray:2 2}.slice-svg .dot{fill:var(--bg);stroke:currentColor;stroke-width:1.5}.slice-svg .cusp{fill:none;stroke:currentColor;stroke-opacity:.9;stroke-width:1.5}.slice-legend{display:none}.wheel-grid-dot{fill:currentColor;fill-opacity:.14}.wheel-fade-in{stop-color:var(--bg);stop-opacity:1}.wheel-fade-out{stop-color:var(--bg);stop-opacity:0}.wheel-inner-edge{fill:none;stroke:currentColor;stroke-opacity:.35;stroke-width:1}.wheel-hue-arc{fill:none;stroke:currentColor;stroke-opacity:.8;stroke-width:1}.wheel-hue-dot{fill:#000;stroke:#fff;stroke-width:1}.wheel-boundary{fill:none;stroke:currentColor;stroke-opacity:.7;stroke-width:1}.wheel-ring{fill:none;stroke:currentColor;stroke-opacity:.12;stroke-width:1}.wheel-cusp-ring{fill:none;stroke:currentColor;stroke-width:1}.wheel-cusp-min,.wheel-cusp-cusp{stroke-opacity:.55;stroke-dasharray:5 4}.wheel-cusp-avg{stroke-opacity:.3;stroke-dasharray:2 4}.wheel-cusp-max{stroke-opacity:.3;stroke-dasharray:1 4}.wheel-cusp-label{fill:var(--muted);font-size:var(--s-font-small);font-family:var(--font-mono)}.wheel-traj{stroke-width:2;stroke-opacity:.95}.wheel-dot{fill:var(--bg);stroke:currentColor;stroke-width:1.5}.cc-tri{fill:none;stroke:var(--fg);stroke-opacity:.55;stroke-width:1}.cc-median{stroke:var(--fg);stroke-opacity:.4;stroke-width:1;stroke-dasharray:2 3}.cc-chord{stroke:var(--fg);stroke-opacity:.18;stroke-width:1}.cc-ghost{fill:none;stroke:var(--fg);stroke-opacity:.3;stroke-width:1;stroke-dasharray:3 3}.cc-curve{fill:none;stroke:var(--accent);stroke-width:2}.cc-q{fill:var(--muted)}.cc-dot{stroke:var(--bg);stroke-width:1}.cc-handle{fill:var(--bg);stroke:var(--fg);stroke-width:1.5;transition:fill var(--dur) linear}.cc-hit{fill:transparent}.curve-pane [data-handle]:hover .cc-handle{fill:var(--accent)}.cc-label{fill:var(--muted);font-size:var(--s-font-small);font-family:var(--font-mono)}.cc-match{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:2 2}.compo-tools{display:flex;align-items:center;gap:1.25rem}.compo-hue{font-size:var(--s-font-small);color:var(--muted);cursor:pointer}.compo-hue input{accent-color:var(--accent)}.compositions{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-flow:dense;gap:1px;background:var(--line);border:1px solid var(--line)}.tile{margin:0;padding:14%;border:0;aspect-ratio:1;background:var(--tile-ground);cursor:pointer}.tile--big{grid-column:span 2;grid-row:span 2;padding:18%}.tile svg{display:block;width:100%;height:100%}.tile-lines{fill:none;stroke:var(--bg);stroke-width:1.25}.export-tools{display:flex;align-items:center;gap:1.25rem}.export__code{margin:0;padding:1.25rem;border:1px solid var(--line);background:color-mix(in oklch,black 22%,transparent);font-size:var(--s-font-small);font-family:var(--font-mono);white-space:pre;line-height:1.7;max-height:380px;overflow:auto}.colophon{display:flex;align-items:center;flex-wrap:wrap;gap:2rem;border-top:1px solid var(--line);padding:2.5rem var(--gutter) 4rem}.ellogo{display:block;flex:none;order:-1;width:clamp(6rem,9vw,8.5rem)}.ellogo svg{display:block;width:100%;height:auto}.ellogo__font{fill:var(--muted);transition:fill var(--dur) linear}.ellogo__logo{stroke:var(--accent);transition:stroke var(--dur-theme) linear}.ellogo:hover .ellogo__font{fill:var(--fg)}.cite{margin:0;max-width:48em;font-family:var(--font-title);font-weight:400;font-synthesis:none;font-size:1rem;line-height:1.6;color:var(--muted)}@media(max-width:900px){.layout{display:block}.side{border-right:0;border-bottom:1px solid var(--line)}.side:after{display:none}.side__in{position:static;max-height:none;overflow:visible;padding:1.5rem var(--gutter) 2rem}.side__tabs{position:static;padding-block:0;margin-bottom:1.25rem}.sheet{padding-inline:var(--gutter)}.sec__head:before{display:none}.viz-row{grid-template-columns:1fr}.viz-cell+.viz-cell{border-left:1px solid var(--line);border-top:0}.compositions{grid-template-columns:repeat(4,1fr)}}@media(max-width:640px){.hanger{height:220px}.sec__head{flex-wrap:wrap}.compositions{grid-template-columns:repeat(3,1fr)}.topbar__strip{display:none}.topbar{justify-content:space-between}}
