:root{color-scheme:dark;--page: #0b0e14;--paper: #101817;--panel: #131c1b;--panel-2: #182220;--text: #f8fafc;--muted: #94a3b8;--faint: #64748b;--rule: #2b3937;--edge: #94a3b8;--upper-fill: #1e1b4b;--upper-stroke: #a5b4fc;--lower-fill: #064e3b;--lower-stroke: #34d399;--code-bg: #0c1313;--code-border: #263331;--control-accent: #a5b4fc;--serif: Georgia, "Times New Roman", serif;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace}html[data-theme=light]{color-scheme:light;--page: #e8e4db;--paper: #f2efe8;--panel: #ebe6dd;--panel-2: #e3ded4;--text: #0f172a;--muted: #64748b;--faint: #7c8799;--rule: #cbc5ba;--edge: #334155;--upper-fill: #e0e7ff;--upper-stroke: #4338ca;--lower-fill: #d1fae5;--lower-stroke: #047857;--code-bg: #ebe7df;--code-border: #d5cfc4;--control-accent: #4338ca}*{box-sizing:border-box}html{min-width:320px;background:var(--page)}body{margin:0;background:var(--page);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{color:inherit}code,pre{font-family:var(--mono)}[hidden]{display:none!important}.lab-header{display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1680px,calc(100% - 40px));margin:0 auto;padding:22px 0 18px;border-bottom:1px solid var(--rule)}.lab-name{color:var(--text);font:600 14px/1 system-ui,sans-serif;text-decoration:none}.lab-header-actions{display:flex;align-items:center;gap:18px;color:var(--muted);font:600 12px/1 system-ui,sans-serif;letter-spacing:.02em}.theme-toggle,.options-toggle,.controls button{border:1px solid var(--rule);border-radius:999px;background:transparent;padding:8px 12px;cursor:pointer}.theme-toggle:hover,.options-toggle:hover,.controls button:hover{border-color:var(--control-accent)}.lab-layout{display:block;width:100%;margin:24px 0 48px}.controls{position:fixed;z-index:30;top:76px;right:20px;width:min(320px,calc(100vw - 32px));max-height:calc(100dvh - 96px);overflow:auto;border:1px solid var(--rule);border-radius:10px;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 18px 64px #00000052;opacity:0;transform:translateY(-8px) scale(.985);transform-origin:top right;pointer-events:none;transition:opacity .14s ease,transform .16s ease;backdrop-filter:blur(14px)}.controls[data-open=true]{opacity:1;transform:none;pointer-events:auto}.controls-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 12px;border-bottom:1px solid var(--rule)}.controls-head strong{font-size:13px;letter-spacing:.04em}.controls-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.controls-head button{padding:5px 9px;color:var(--muted);font-size:11px}.controls fieldset{display:grid;gap:11px;margin:0;padding:14px;border:0;border-bottom:1px solid var(--rule)}.controls fieldset:last-child{border-bottom:0}.controls legend,.control-label{padding:0;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.control-label{margin-top:3px}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;overflow:hidden;border:1px solid var(--rule);border-radius:6px}.segmented--stacked{grid-auto-flow:row}.segmented label{position:relative;display:flex;align-items:center;justify-content:center;min-height:31px;padding:6px 8px;color:var(--muted);font-size:11px;cursor:pointer}.segmented label+label{border-left:1px solid var(--rule)}.segmented--stacked label+label{border-top:1px solid var(--rule);border-left:0}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented label:has(input:checked){background:var(--panel-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--control-accent)}.toggle-row{display:flex;align-items:center;gap:9px;color:var(--text);font-size:12px;cursor:pointer}.toggle-row input{width:15px;height:15px;accent-color:var(--control-accent)}.range-control{display:grid;gap:8px;color:var(--text);font-size:12px}.range-control>span{display:flex;justify-content:space-between;gap:12px}.range-control output{color:var(--control-accent);font-family:var(--mono)}.range-control input{width:100%;accent-color:var(--control-accent)}.preview{width:100%;min-width:0;overflow:hidden;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper)}.nutshell{padding:clamp(34px,5vw,76px) 0 clamp(44px,6vw,88px)}.copy-column{width:min(680px,calc(100% - 40px));margin:0 auto}.copy-column h2{margin:0 0 30px;font:400 clamp(2.6rem,5vw,4.8rem)/.94 var(--serif);letter-spacing:-.055em}.copy-column p{margin:0;font:400 18px/1.7 var(--serif)}.copy-column--after{margin-top:36px}.definition-block,.constructor-call pre{margin:22px 0 0;overflow:auto;border:1px solid var(--code-border);border-radius:6px;background:var(--code-bg);color:var(--text);font:600 13px/1.68 var(--mono);tab-size:4}.definition-block{padding:16px 18px}.definition-block code{display:block}.code-line{display:block;min-width:max-content}.stack-hover-hint{margin-top:8px!important;color:var(--muted);font:500 11px/1.4 var(--mono)!important}.stack-line{margin-inline:-8px;padding-inline:8px;border-radius:3px;cursor:default;outline:none;transition:color .12s ease,background .12s ease}.stack-line:hover,.stack-line:focus,.stack-line.is-path-active{background:color-mix(in srgb,var(--control-accent) 13%,transparent);color:var(--control-accent)}.repl-constructor{margin-top:8px;padding-top:8px;border-top:1px solid var(--code-border)}.inline-constructor-block{margin-top:22px}.figure-viewport{width:100%;margin:30px 0 0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:thin}.figure-fit{position:relative;margin:0 auto}.figure-stage{--composition-offset-x: 0px;--figure-fit-scale: 1;display:flex;align-items:center;justify-content:center;gap:34px;width:max-content;padding:8px 22px 12px;transform:translate(var(--composition-offset-x)) scale(var(--figure-fit-scale));transform-origin:top left}.figure-stage[data-orientation=vertical]{--graph-axis-x: 250px;flex-direction:column;align-items:flex-start;gap:22px}.figure-stage[data-orientation=vertical]>.constructor-call,.figure-stage[data-orientation=vertical]>.relation{position:relative;left:var(--graph-axis-x);transform:translate(-50%)}.constructor-call{flex:0 0 auto;max-width:390px}.constructor-call pre{margin:0;padding:12px 14px;white-space:pre}.constructor-call[data-multiline=false] pre{border-color:transparent;background:transparent;padding:9px 0}.relation{display:grid;flex:0 0 56px;width:56px;height:32px;place-items:center;color:var(--muted)}.relation-arrow,.relation-equals{grid-area:1 / 1}.relation-arrow{width:56px;height:24px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.relation-equals{display:none;font-size:31px;font-weight:650;line-height:1}.relation[data-kind=equals] .relation-arrow{display:none}.relation[data-kind=equals] .relation-equals{display:block}.figure-stage[data-orientation=vertical] .relation-arrow{transform:rotate(90deg)}.graph-cluster{display:flex;align-items:center;gap:26px}.graph-scroll{--graph-area-pad-x: 40px;--graph-area-pad-y: 28px;--graph-area-border-width: 1px;--graph-area-radius: 10px;--graph-area-opacity: 18%;position:relative;flex:0 0 auto;isolation:isolate}.graph-scroll:before{content:"";position:absolute;z-index:0;inset:calc(-1 * var(--graph-area-pad-y)) calc(-1 * var(--graph-area-pad-x));border:var(--graph-area-border-width) solid var(--rule);border-radius:var(--graph-area-radius);background:color-mix(in srgb,var(--panel) var(--graph-area-opacity),transparent);opacity:0;pointer-events:none}.graph-scroll[data-area=true]:before{opacity:1}.wgss-graph{position:relative;z-index:1;display:block;width:840px;height:390px;overflow:visible}.wgss-graph[data-orientation=vertical]{width:500px;height:703px}.node-legend{--legend-offset-x: 0px;flex:0 0 224px;width:224px;color:var(--text);transform:translate(var(--legend-offset-x))}.legend-head{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.legend-rule{height:1.5px;margin:11px 0 20px;border-radius:999px;background:var(--rule)}.legend-item{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:12px;margin:0 0 24px}.legend-item svg{width:40px;height:40px;overflow:visible}.legend-item strong,.legend-item small{display:block}.legend-item strong{font-size:14px}.legend-item small{margin-top:2px;color:var(--muted);font-size:11px}.wgss-graph [data-edge-index],.wgss-graph [data-node-name]{transition:opacity .13s ease}.wgss-graph[data-path-active=true] [data-edge-index],.wgss-graph[data-path-active=true] [data-node-name]{opacity:.14}.wgss-graph[data-path-active=true] .is-path-active{opacity:1}.edge.is-path-active{stroke:var(--control-accent);stroke-width:5}[data-edge-index].is-path-active .edge-num{fill:var(--control-accent)}[data-node-name].is-path-active .node-upper,[data-node-name].is-path-active .node-root-outer,[data-node-name].is-path-active .node-iface,[data-node-name].is-path-active .node-lower{stroke-width:5}.edge{fill:none;stroke:var(--edge);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.edge-badge{fill:var(--paper);stroke:none;rx:11px;ry:11px}.edge-num{fill:var(--text);font-size:16px;font-weight:800;text-anchor:middle;dominant-baseline:central}.node-upper,.node-root-outer{fill:var(--upper-fill);stroke:var(--upper-stroke);stroke-width:3}.node-upper-dot{fill:var(--upper-stroke)}.node-root-inner{fill:none;stroke:var(--upper-stroke);stroke-width:1.8}.node-iface{fill:var(--lower-fill);stroke:var(--lower-stroke);stroke-width:3;stroke-linejoin:miter}.iface-label{fill:var(--lower-stroke);font-size:19px;font-weight:800;text-anchor:middle;dominant-baseline:central}.node-lower{fill:var(--lower-fill);stroke:var(--lower-stroke);stroke-width:3;stroke-linejoin:round}.node-lower-dot{fill:var(--lower-stroke)}.node-lower-in{fill:none;stroke:var(--lower-stroke);stroke-width:1.8;stroke-linejoin:round}.tag-root,.tag-leaf{font-size:11px;font-weight:800;letter-spacing:.14em;text-anchor:middle}.tag-root{fill:var(--upper-stroke)}.tag-leaf{fill:var(--lower-stroke)}@media(max-width:920px){.lab-header{width:calc(100% - 28px)}.lab-header-actions>span{display:none}.controls{top:68px;right:14px;max-height:calc(100dvh - 82px)}}@media(max-width:600px){.lab-header{padding-top:16px}.lab-header-actions{gap:8px}.theme-toggle,.options-toggle{padding:7px 9px}.copy-column p{font-size:17px}.definition-block{font-size:11px}}
