.diagram{--dg-fodmap:#cfe96a;--dg-meno:#b9a4f2;--dg-differs:#f2c879;--dg-fw:#87d3df;--dg-neutral:var(--bone);position:relative}.diagram-wires{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.diagram-wires path{fill:none;stroke:var(--rule-2);stroke-width:1.5px;transition:stroke .3s var(--ease), opacity .3s var(--ease)}.diagram-wires path.fw,.diagram-wires path.ref{stroke-dasharray:5 5}.diagram-wires path.lit{stroke:var(--lime);stroke-width:2px}.diagram-wires path.dim{opacity:.1}.diagram-grid{z-index:1;align-items:start;gap:28px;display:grid;position:relative}.diagram-rows{z-index:1;flex-direction:column;gap:56px;display:flex;position:relative}.diagram-row{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.diagram-col{flex-direction:column;gap:24px;min-width:0;display:flex}.diagram-rail{z-index:1;flex-direction:column;gap:20px;display:flex;position:relative}.diagram-rail-title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ash);font-size:11px}.dg-node{border:1px solid var(--rule);background:var(--surface,var(--tar-2));cursor:grab;touch-action:none;width:248px;transition:border-color .25s var(--ease), transform .25s var(--ease), opacity .3s var(--ease), box-shadow .25s var(--ease);border-radius:12px;outline:none;overflow:hidden}.dg-node.wide{width:100%;max-width:560px}.dg-node.dragging{cursor:grabbing;border-color:var(--lime);transition:none;box-shadow:0 26px 64px #0000008c}.dg-node:focus-visible{border-color:var(--lime);box-shadow:0 0 0 3px color-mix(in oklab, var(--lime) 30%, transparent)}.dg-node.pinned{border-color:var(--rule-2)}.dg-node-head{justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.dg-node.has-fields .dg-node-head{border-bottom:1px solid var(--rule)}.dg-node-title{font-family:var(--font-mono);align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:500;display:flex}.dg-node-title .led{background:var(--dg-neutral);border-radius:50%;flex:none;width:8px;height:8px}.dg-node[data-domain=fodmap] .led,.dg-node[data-kind=target] .led{background:var(--dg-fodmap)}.dg-node[data-domain=meno] .led{background:var(--dg-meno)}.dg-node[data-domain=differs] .led{background:var(--dg-differs)}.dg-node[data-kind=fw] .led{background:var(--dg-fw)}.dg-node[data-kind=fw] .dg-node-title{color:var(--dg-fw)}.dg-node[data-domain=fodmap] .dg-node-name{color:var(--dg-fodmap)}.dg-node[data-domain=meno] .dg-node-name{color:var(--dg-meno)}.dg-node-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash);border:1px solid var(--rule-2);white-space:nowrap;border-radius:5px;padding:2px 6px;font-size:10px}.dg-node-sub{color:var(--ash);padding:0 14px 12px;font-size:12.5px;line-height:1.45}.dg-row{transition:background .18s var(--ease);justify-content:space-between;align-items:center;gap:12px;padding:6px 14px;font-size:13px;display:flex}.dg-row:not(:last-child){border-bottom:1px solid color-mix(in oklab, var(--rule) 55%, transparent)}.dg-row .k{color:var(--bone);white-space:nowrap}.dg-row .t{font-family:var(--font-mono);color:var(--ash);text-align:right;font-size:11.5px}.dg-row.key .k{color:var(--lime)}.dg-row[data-tip]{cursor:help}.dg-row:hover,.dg-row:focus-visible{background:color-mix(in oklab, var(--lime) 10%, transparent);outline:none}.dg-row:focus-visible{box-shadow:inset 2px 0 0 var(--lime)}.dg-spine{border:1px solid var(--rule-2);background:var(--tar-2);text-align:center;cursor:pointer;width:100%;color:inherit;transition:border-color .25s var(--ease), box-shadow .25s var(--ease);border-radius:12px;outline:none;padding:16px 14px}.dg-spine:hover,.dg-spine:focus-visible,.dg-spine.pinned{border-color:var(--lime);box-shadow:0 0 0 3px color-mix(in oklab, var(--lime) 22%, transparent)}.dg-spine-title{font-family:var(--font-display);font-size:22px}.dg-spine-fmt{font-family:var(--font-mono);color:var(--ash);margin-top:4px;font-size:11px}.dg-spine-hint{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lime);margin-top:10px;font-size:9.5px}.diagram.has-focus .dg-node:not(.lit),.diagram.has-focus .dg-spine:not(.lit){opacity:.24}.diagram .dg-node.lit{border-color:var(--rule-2);transform:translateY(-2px)}.diagram[data-filter=fodmap] .dg-node[data-domain=meno],.diagram[data-filter=meno] .dg-node[data-domain=fodmap]{opacity:.16;pointer-events:none}.dg-node,.dg-spine{opacity:0;transform:translateY(14px)}.diagram.ready .dg-node,.diagram.ready .dg-spine{opacity:1;transform:none}.diagram-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:28px;display:flex}.dg-chip{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--rule-2);color:var(--ash);cursor:pointer;transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:inline-flex}.dg-chip .dot{background:currentColor;border-radius:50%;width:9px;height:9px}.dg-chip[data-dom=fodmap]{color:var(--dg-fodmap)}.dg-chip[data-dom=meno]{color:var(--dg-meno)}.dg-chip[aria-pressed=true]{background:color-mix(in oklab, currentColor 16%, transparent);border-color:currentColor}.diagram-legend{font-family:var(--font-mono);color:var(--ash);flex-wrap:wrap;gap:22px;margin-bottom:28px;font-size:12px;display:flex}.diagram-legend span{align-items:center;gap:9px;display:inline-flex}.diagram-legend i{border-top:2px solid var(--rule-2);width:28px;height:0;display:inline-block}.diagram-legend i.dash{border-top-style:dashed}.dg-tip{z-index:400;color:#16181b;pointer-events:none;opacity:0;max-width:280px;transition:opacity .16s var(--ease), transform .16s var(--ease);background:#f4f2ea;border:1px solid #07080a29;border-radius:9px;padding:10px 13px;font-size:12.5px;line-height:1.5;position:fixed;top:0;left:0;transform:translateY(5px);box-shadow:0 18px 50px #0009}.dg-tip[data-show]{opacity:1;transform:none}.dg-tip .wip{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#7a4e00;vertical-align:1px;background:#f3cf86;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:9.5px;display:inline-block}.dg-teaser{border:1px solid var(--rule);background:var(--surface,var(--tar-2));cursor:zoom-in;transition:border-color .25s var(--ease);text-align:left;width:100%;color:inherit;border-radius:16px;padding:26px 24px;position:relative;box-shadow:0 30px 80px #00000073}.dg-teaser:hover,.dg-teaser:focus-visible{border-color:var(--rule-2);outline:none}.dg-teaser:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab, var(--lime) 30%, transparent)}.dg-teaser svg{width:100%;height:auto;display:block}.dg-teaser-open{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lime);border:1px solid color-mix(in oklab, var(--lime) 45%, transparent);pointer-events:none;border-radius:999px;padding:6px 12px;font-size:11px;position:absolute;top:16px;right:18px}.dg-modal{background:0 0;border:0;max-width:100vw;max-height:100vh;padding:0}.dg-modal::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#07080ae6}.dg-modal-surface{padding:clamp(24px,5vw,64px);position:fixed;inset:0;overflow:auto}.dg-modal-close{z-index:10;color:var(--bone);cursor:pointer;background:0 0;border:0;font-size:26px;line-height:1;position:fixed;top:18px;right:22px}.dg-modal-close:hover{color:var(--lime)}@media (prefers-reduced-motion:reduce){.diagram .dg-node,.diagram .dg-spine{opacity:1;transform:none}.diagram *{transition:none!important}}@media (max-width:900px){.diagram-wires{display:none}.diagram-grid{grid-template-columns:1fr!important}.diagram-rail{margin-top:24px}}
.jr{align-items:flex-start;gap:32px;display:flex;position:relative}.jr-rail{flex-direction:column;flex:none;gap:8px;width:168px;display:flex}.jr-entry{font-family:var(--font-mono);letter-spacing:.04em;text-align:left;border:1px solid var(--rule-2);color:var(--bone-dim);cursor:pointer;transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);background:0 0;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.jr-entry .dot{background:var(--ash);border-radius:50%;flex:none;width:8px;height:8px}.jr-entry[data-medium=offline] .dot{background:var(--dg-differs,#f2c879)}.jr-entry[data-medium=online] .dot{background:var(--dg-fw,#87d3df)}.jr-entry:hover{border-color:var(--rule-2);color:var(--bone)}.jr-entry[aria-pressed=true]{background:color-mix(in oklab, var(--lime) 12%, transparent);border-color:var(--lime);color:var(--bone)}.jr-main{flex:1;min-width:0}.jr-scenarios{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.jr-scenario{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--rule-2);color:var(--ash);cursor:pointer;transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);background:0 0;border-radius:999px;padding:7px 13px;font-size:11.5px}.jr-scenario[aria-pressed=true]{background:color-mix(in oklab, var(--lime) 16%, transparent);border-color:var(--lime);color:var(--bone)}.jr-scenario-blurb{color:var(--ash);max-width:60ch;margin:0 0 24px;font-size:13px}.jr-canvas{grid-template-columns:repeat(4,minmax(180px,1fr));align-items:start;gap:10px 64px;display:grid;position:relative}.jr-wires{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.jr-wires path{fill:none;stroke:var(--rule-2);stroke-width:1.5px;transition:stroke .3s var(--ease), opacity .3s var(--ease)}.jr-wires path.lit{stroke:var(--lime);stroke-width:2px}.jr-wires path.dim{opacity:.14}.jr-col{z-index:1;flex-direction:column;gap:10px;min-width:0;display:flex;position:relative}.jr-col-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-bottom:2px;font-size:10.5px}.jr-node{font-family:var(--font-sans);text-align:left;background:var(--surface,var(--tar-2));border:1px solid var(--rule);color:var(--bone-dim);cursor:pointer;transition:opacity .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .2s var(--ease);border-radius:10px;outline:none;padding:11px 13px;font-size:13px;line-height:1.3}.jr-node[data-medium=offline]{border-left:2px solid var(--dg-differs,#f2c879)}.jr-node[data-medium=online]{border-left:2px solid var(--dg-fw,#87d3df)}.jr-node:hover,.jr-node:focus-visible{border-color:var(--rule-2);color:var(--bone)}.jr-node[data-lit="1"]{border-color:var(--lime);color:var(--bone);transform:translateY(-1px)}.jr-node[data-selected="1"]{box-shadow:0 0 0 2px color-mix(in oklab, var(--lime) 45%, transparent)}.jr-canvas:has([data-lit="1"]) .jr-node:not([data-lit="1"]){opacity:.4}.jr-detail{background:var(--tar-2);border-left:1px solid var(--rule-2);z-index:20;width:min(360px,100vw);padding:28px 24px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-30px 0 80px #00000080}.jr-detail-close{color:var(--bone);cursor:pointer;background:0 0;border:0;font-size:22px;line-height:1;position:absolute;top:16px;right:18px}.jr-detail-close:hover{color:var(--lime)}.jr-detail-title{font-family:var(--font-display);color:var(--bone);margin:0 0 20px;padding-right:30px;font-size:22px}.jr-detail-field{color:var(--bone-dim);margin-bottom:18px;font-size:13.5px;line-height:1.55}.jr-detail-k{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lime);margin-bottom:5px;font-size:10.5px;display:block}@media (prefers-reduced-motion:reduce){.jr *{transition:none!important}}@media (max-width:900px){.jr{flex-direction:column}.jr-rail{flex-flow:wrap;width:100%}.jr-canvas{grid-template-columns:1fr}.jr-wires{display:none}.jr-detail{width:100vw}}
