.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--header-height: 60px;color:#25211d;background:#fbfaf7;font-family:Malgun Gothic,AppleGothic,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;height:100vh;overflow:hidden}button{font:inherit}.app-shell{display:flex;flex-direction:column;height:100vh;background:#fbfaf7}.header{z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--header-height);padding:0 20px;color:#f6f3eb;background:#2c251e;box-shadow:0 2px 10px #00000026}.header h1{margin:0;font-size:18px;font-weight:700;text-align:center}.header-right{display:flex;flex:0 1 auto;align-items:center;gap:10px;min-width:0}.bible-search{position:relative;z-index:20;width:min(330px,28vw);min-width:210px}.bible-search-field{display:flex;align-items:center;gap:7px;height:36px;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:0 8px;color:#fffaf2;background:#ffffff1c}.bible-search-field:focus-within{border-color:#f1c6a1;background:#ffffff2b;box-shadow:0 0 0 2px #f1c6a12e}.bible-search-field>svg{flex:0 0 auto;color:#f3d8be}.bible-search-field input{min-width:0;flex:1;border:0;outline:0;color:#fff;background:transparent;font:inherit;font-size:12px}.bible-search-field input::placeholder{color:#fffaf2b8}.bible-search-field input::-webkit-search-cancel-button{filter:invert(1)}.bible-search-field kbd{display:grid;flex:0 0 auto;place-items:center;width:19px;height:19px;border:1px solid rgba(255,255,255,.32);border-radius:3px;color:#fffaf2d1;font-family:inherit;font-size:10px;line-height:1}.bible-search-results{position:absolute;top:calc(100% + 8px);right:0;width:min(430px,80vw);max-height:min(520px,70vh);overflow-y:auto;border:1px solid #d6cabc;border-radius:5px;background:#fffdf9;box-shadow:0 12px 28px #2c251e38}.bible-search-results>button{display:grid;gap:5px;width:100%;border:0;border-bottom:1px solid #ece5dc;padding:10px 12px;color:#403832;background:transparent;text-align:left;cursor:pointer}.bible-search-results>button:last-child{border-bottom:0}.bible-search-results>button:hover,.bible-search-results>button:focus-visible{outline:0;background:#f5efe7}.bible-search-results>button>span{display:flex;align-items:baseline;gap:7px}.bible-search-results strong{color:#8c2d19;font-size:12px}.bible-search-results small{color:#81766c;font-size:10px}.bible-search-results p{margin:0;overflow:hidden;color:#4d443c;font-size:12px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.bible-search-empty{padding:18px 12px;color:#7d7269;font-size:12px;text-align:center}.nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border:0;border-radius:4px;padding:8px 14px;color:#fff;background:#8c2d19;font-size:13px;font-weight:700;cursor:pointer}.nav-btn:hover{background:#b03a20}.panel-command{min-width:140px;background:#6f2b1d}.panel-command.active{background:#a63a24;box-shadow:inset 0 0 0 1px #ffffff38}.panel-command kbd{display:grid;place-items:center;min-width:20px;height:20px;border:1px solid rgba(255,255,255,.36);border-radius:3px;color:#fffaf2;background:#00000029;font-family:inherit;font-size:10px;line-height:1}.main-container{--left-sidebar-width: 260px;--right-sidebar-width: 380px;--center-left-reserve: 0px;--center-right-reserve: 0px;position:relative;display:flex;flex:1;min-height:0;overflow:hidden}.main-container.finder-depth-2{--left-sidebar-width: min(430px, 48vw)}.main-container.finder-depth-3{--left-sidebar-width: min(620px, 64vw)}.main-container.left-open{--center-left-reserve: var(--left-sidebar-width)}.main-container.right-open{--center-right-reserve: var(--right-sidebar-width)}.sidebar{position:absolute;top:0;bottom:0;z-index:6;height:100%;overflow-y:auto;transition:width .25s ease,transform .25s ease,box-shadow .25s ease}.sidebar.left{left:0;width:var(--left-sidebar-width);padding:14px 12px 18px;background:#f5f2eb;border-right:1px solid #dcd7ca;box-shadow:4px 0 16px #00000014}.sidebar.left.collapsed{transform:translate(-100%)}.sidebar.right{right:0;z-index:7;width:var(--right-sidebar-width);padding:22px;background:#fff;border-left:2px solid #e6dfd3;box-shadow:-4px 0 15px #0000000d}.sidebar.right.collapsed{transform:translate(100%)}.canvas-container{position:relative;flex:1;width:100%;min-width:0;height:100%;background:#faf8f5;cursor:grab;touch-action:none}.canvas-container:active{cursor:grabbing}canvas{display:block;width:100%;height:100%}.center-screen{position:absolute;top:0;left:var(--center-left-reserve);right:var(--center-right-reserve);bottom:0;z-index:5;width:auto;min-width:0;overflow-x:hidden;overflow-y:auto;border-left:1px solid #d8cbbb;border-right:1px solid #ece3d8;padding:26px;color:#2c251e;background:#fffdf8fa;box-shadow:-12px 0 30px #2c251e29;opacity:0;pointer-events:none;transform:translate(calc(100% + var(--center-right-reserve)));transition:left .25s ease,right .25s ease,transform .28s ease,opacity .2s ease}.festival-explorer{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;min-height:0;color:#332b25}.festival-toolbar{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;border:1px solid #ded4c8;border-radius:6px;background:#f8f4ee}.festival-toolbar input,.festival-toolbar select{height:34px;border:1px solid #cfc2b4;border-radius:4px;padding:0 10px;color:#3f3730;background:#fffdf9}.festival-toolbar input{width:min(220px,100%);margin-left:auto}.festival-tabs{display:flex;gap:4px}.festival-tabs button{display:flex;align-items:center;gap:5px;border:0;border-radius:4px;padding:8px 10px;color:#6e6259;background:transparent;cursor:pointer}.festival-tabs button.active{color:#fff;background:#8c2d19}.festival-state{display:grid;min-height:260px;place-items:center;color:#756a61}.festival-month-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;align-content:start;min-width:0}.festival-month-grid section{min-height:150px;border:1px solid #ded4c8;border-radius:6px;padding:10px;background:#fffdf9}.festival-month-grid header{display:flex;gap:9px;align-items:center;padding-bottom:8px;border-bottom:1px solid #eee7de}.festival-month-grid header>span{font-size:21px;color:#8c2d19;direction:rtl}.festival-month-grid header div,.festival-table-wrap th,.festival-table-wrap td{display:grid;gap:3px}.festival-month-grid small,.festival-table-wrap small{color:#8a7f75;font-size:10px;font-weight:400}.festival-month-grid p{display:flex;gap:5px;min-height:30px;margin:8px 0;color:#61705a;font-size:10px;line-height:1.45}.festival-month-grid section>div{display:flex;flex-wrap:wrap;gap:4px}.festival-month-grid button{border:1px solid #e0d7ce;border-left:3px solid var(--festival-color);border-radius:3px;padding:5px 7px;color:#51473f;background:#faf7f2;font-size:10px;cursor:pointer}.festival-month-grid button.active{color:#fff;background:var(--festival-color);border-color:var(--festival-color)}.festival-table-wrap,.theme-map{max-height:58vh;overflow:auto;border:1px solid #ded4c8;border-radius:6px;background:#fff}.festival-table-wrap table{width:100%;border-collapse:collapse;font-size:11px}.festival-table-wrap thead{position:sticky;top:0;z-index:1;color:#fff;background:#4b4037}.festival-table-wrap th,.festival-table-wrap td{padding:9px;border-bottom:1px solid #eee7de;text-align:left;vertical-align:top}.festival-table-wrap tbody tr{cursor:pointer}.festival-table-wrap tbody tr:hover,.festival-table-wrap tbody tr.selected{background:#fbf0e8}.work-level{align-self:start;justify-self:start;border-radius:10px;padding:2px 6px;color:#fff;background:#82766c;font-size:9px}.work-level.level-2,.work-level.level-3{background:#8c2d19}.theme-map{min-width:720px}.theme-head,.theme-map>button{display:grid;grid-template-columns:140px repeat(12,minmax(36px,1fr));align-items:center;min-height:34px;border:0;border-bottom:1px solid #eee7de;background:#fff}.theme-head{position:sticky;top:0;z-index:1;color:#fff;background:#4b4037}.theme-head span{padding:5px;font-size:9px;text-align:center}.theme-map>button{width:100%;color:#4e443d;cursor:pointer}.theme-map>button:hover{background:#fbf0e8}.theme-map>button strong{text-align:left;padding:7px;font-size:10px}.theme-map i{width:14px;height:14px;margin:auto;border-radius:3px;background:#eee8e1}.theme-map i[data-score="1"]{background:#d7a46f}.theme-map i[data-score="2"]{background:#8c2d19}.festival-relations{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:8px;align-content:start}.relation-focus{grid-column:1/-1;display:grid;place-items:center;min-height:80px;border:2px solid #8c2d19;border-radius:8px;background:#fbf0e8}.relation-focus span{font-size:18px;direction:rtl}.festival-relations button{display:grid;gap:4px;border:1px solid #d9cec2;border-radius:6px;padding:10px;text-align:left;background:#fff;cursor:pointer}.festival-relations button span{color:#8c2d19;font-size:9px;text-transform:uppercase}.festival-relations button small{color:#7c7168;line-height:1.4}.festival-detail{align-self:start;position:sticky;top:0;border:1px solid #d6cabc;border-radius:7px;padding:14px;background:#fffdf9;box-shadow:0 4px 14px #44342814}.festival-detail>div>span{display:inline-block;border-radius:10px;padding:3px 7px;color:#fff;font-size:9px}.festival-detail h3{margin:8px 0 2px;font-size:19px}.festival-detail b{color:#776b62;font-size:11px}.festival-detail>p{color:#8c2d19;font-weight:700;line-height:1.5}.festival-detail dl{display:grid;gap:8px}.festival-detail dl div{display:grid;gap:3px;padding-top:7px;border-top:1px solid #eee6dd}.festival-detail dt{color:#8d8178;font-size:9px}.festival-detail dd{margin:0;font-size:11px;line-height:1.45}.theme-bars{display:grid;gap:5px;margin-top:12px}.theme-bars span{position:relative;overflow:hidden;border-radius:3px;padding:5px 7px;background:#eee8e1;font-size:9px}.theme-bars i{position:absolute;inset:0 auto 0 0;background:#8c2d1938}.festival-summary-note{margin-top:10px;border-left:3px solid #a96513;padding:8px 10px;color:#6d6259;background:#fbf5e9;font-size:11px;line-height:1.5}.visualization-tools-view{display:grid;gap:16px}.visualization-tools-intro{border:1px solid #d9d0c4;border-radius:6px;padding:14px 16px;background:#fffdf9}.visualization-tools-intro p{margin:10px 0 0;color:#5a4f46;line-height:1.7}.visualization-tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.visualization-tool-card{display:grid;gap:10px;border:1px solid #ddd3c6;border-left:4px solid var(--tool-accent);border-radius:6px;padding:14px;background:#fff}.visualization-tool-card .tool-badge{display:inline-flex;align-self:start;border-radius:999px;padding:4px 8px;color:#fff;background:var(--tool-accent);font-size:11px;font-weight:800}.visualization-tool-card h3{margin:0;color:#2f2721;font-size:16px;line-height:1.3}.visualization-tool-card p{margin:0;color:#564c43;font-size:12px;line-height:1.65}.visualization-tool-card dl{display:grid;gap:8px;margin:0}.visualization-tool-card dl div{display:grid;gap:3px;padding-top:8px;border-top:1px solid #eee7de}.visualization-tool-card dt{color:#8c8177;font-size:10px;font-weight:800}.visualization-tool-card dd{margin:0;color:#413830;font-size:12px;line-height:1.55}@media(max-width:1100px){.festival-explorer{grid-template-columns:1fr}.festival-detail{position:static}}@media(max-width:760px){.festival-toolbar input{margin-left:0;flex:1}.festival-tabs{width:100%;overflow:auto}.festival-table-wrap{max-height:52vh}}.center-screen.open{opacity:1;pointer-events:auto;transform:translate(0)}.center-screen.fullscreen{left:0;right:0;z-index:9;border-right:0;border-left:0;box-shadow:none}.center-screen-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid #e1d8ca}.center-screen-header h2{margin:0 0 8px;font-size:28px;line-height:1.2}.center-screen-header p{max-width:56ch;margin:0;color:#5d5349;font-size:14px;line-height:1.7}.center-screen-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.center-fullscreen-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-width:58px;height:36px;border:1px solid #d8cbbb;border-radius:4px;padding:0 8px;color:#4a3e36;background:#fffaf2;cursor:pointer}.center-fullscreen-toggle:hover,.center-fullscreen-toggle.active{color:#fff;background:#2c251e}.center-fullscreen-toggle kbd{display:grid;place-items:center;min-width:20px;height:20px;border:1px solid currentColor;border-radius:3px;font-family:inherit;font-size:10px;line-height:1;opacity:.72}.icon-close{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border:1px solid #d8cbbb;border-radius:4px;color:#4a3e36;background:#fffaf2;font-size:24px;line-height:1;cursor:pointer}.icon-close:hover{background:#f3ede4}.detail-action{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:40px;margin-top:18px;border:0;border-radius:4px;padding:10px 12px;color:#fff;background:#2c251e;font-size:13px;font-weight:700;cursor:pointer}.detail-action:hover{background:#4a3e36}.detail-action>span{min-width:0}.detail-action kbd{display:grid;flex:0 0 auto;place-items:center;min-width:22px;height:22px;margin-left:auto;border:1px solid rgba(255,255,255,.34);border-radius:3px;color:#fff;background:#ffffff14;font-family:inherit;font-size:10px;line-height:1}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.fact-tile{display:grid;gap:5px;min-height:78px;border:1px solid #ded4c6;border-radius:6px;padding:13px;background:#fff}.fact-tile span{color:#746a60;font-size:12px;font-weight:700}.fact-tile strong{color:#2c251e;font-size:15px;line-height:1.35}.detail-body{display:grid;gap:16px}.detail-section{border-top:1px solid #e3dacd;padding-top:15px}.detail-section h3{margin-bottom:8px;font-size:16px}.detail-section p{margin:0;color:#5b5148;font-size:14px;line-height:1.75}.related-list{display:flex;flex-wrap:wrap;gap:8px}.related-list span{border:1px solid #d3c6b6;border-radius:4px;padding:7px 9px;color:#534438;background:#fffdf8;font-size:12px;font-weight:700}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.tag-list span{border:1px solid #d9cbbc;border-radius:4px;padding:5px 7px;color:#5a493d;background:#fffaf2;font-size:12px;font-weight:700}h2,h3{margin-top:0;color:#2c251e}.helper-text{color:#62594f;font-size:13px;line-height:1.65}.divider{height:1px;margin:16px 0;background:#d7d0c2}.meta-tag{display:inline-block;margin-bottom:10px;border-radius:4px;padding:4px 8px;color:#fff;background:#8c2d19;font-size:11px;font-weight:700}.meta-tag.book{background:#6b4eb8}.meta-tag.dataset{background:#285b82}.meta-tag.redemption{background:#8c2d19}.meta-tag.neutral{background:#746a60}.original-text{display:inline-block;margin:5px 0;border-left:4px solid #8c2d19;border-radius:4px;padding:6px 12px;color:#4a3e3d;background:#fdf5f3;font-family:Times New Roman,serif;font-size:22px;font-weight:700}.schema-list{display:flex;flex-wrap:wrap;gap:6px}.schema-list span{border:1px solid #d1c4b0;border-radius:4px;padding:5px 7px;color:#534438;background:#fffdf8;font-size:12px;font-weight:700}.graph-stat{display:grid;gap:4px;margin:12px 0;border:1px solid #d8cbbb;border-radius:6px;padding:10px;background:#fffdf8}.graph-stat strong{color:#2c251e;font-size:13px}.graph-stat span{color:#62594f;font-size:12px;line-height:1.45}.lod-list{display:grid;gap:8px;margin:10px 0 16px}.lod-item{display:grid;gap:3px;border:1px solid #d8cbbb;border-radius:6px;padding:9px;background:#fffdf8}.lod-item strong{color:#2c251e;font-size:12px}.lod-item span{color:#6c6258;font-size:11px}.layer-toggle-list{display:grid;gap:6px;margin:0}.layer-toggle{display:flex;align-items:center;gap:8px;min-height:34px;border:1px solid #ded6ca;border-radius:4px;padding:7px 8px;color:#4a3e3d;background:#fffdf8;font-size:12px;font-weight:700;cursor:pointer}.layer-toggle span{flex:1;min-width:0}.layer-toggle kbd{display:grid;flex:0 0 auto;place-items:center;width:21px;height:21px;border:1px solid #c9beb1;border-bottom-color:#a99c8d;border-radius:4px;background:#fff;color:#5e554c;font-family:inherit;font-size:11px;font-weight:800;line-height:1;box-shadow:0 1px #3d302414}.layer-toggle input{width:15px;height:15px;margin:0 0 0 auto;accent-color:#8c2d19}.sidebar-heading{display:flex;align-items:center;gap:10px;min-height:42px;padding:4px 5px 12px;border-bottom:1px solid #d7d0c2}.sidebar-heading>svg{color:#8c2d19}.sidebar-heading div{display:grid;gap:2px}.sidebar-heading h2{margin:0;font-size:17px}.sidebar-heading span{color:#786e64;font-size:10px;font-weight:700}.sidebar-section-label{margin:16px 5px 7px;color:#766b61;font-size:11px;font-weight:800}.sidebar-accordion{border-bottom:1px solid #ddd5ca}.timeline-sidebar-accordion{margin-top:8px;border:1px solid #cfc3b4;border-radius:5px;background:#fffdf8}.sidebar-accordion-trigger{display:grid;grid-template-columns:20px minmax(0,1fr) auto 18px;align-items:center;gap:7px;width:100%;min-height:42px;border:0;padding:8px 6px;color:#3f3731;background:transparent;text-align:left;cursor:pointer}.timeline-sidebar-accordion .sidebar-accordion-trigger{padding:8px 9px;color:#fffaf2;background:#3d352f}.sidebar-accordion-trigger>span{min-width:0;overflow-wrap:anywhere;font-size:13px;font-weight:800}.sidebar-accordion-trigger>small{min-width:26px;border-radius:3px;padding:3px 5px;color:#655b52;background:#e9e2d8;font-size:10px;font-weight:800;text-align:center}.timeline-sidebar-accordion .sidebar-accordion-trigger>small{color:#fffaf2;background:#ffffff24}.sidebar-accordion-content{padding:5px 0 9px 27px}.timeline-sidebar-accordion .sidebar-accordion-content{padding:8px}.data-catalog-groups{border-top:1px solid #ddd5ca}.dataset-menu-list{display:grid;gap:3px}.dataset-menu-button{display:grid;grid-template-columns:20px minmax(0,1fr) 18px;align-items:center;gap:7px;width:100%;min-height:42px;border:1px solid transparent;border-radius:4px;padding:6px 7px;color:#4a4037;background:transparent;text-align:left;cursor:pointer}.dataset-menu-button:hover{border-color:#d5c9ba;background:#fffdf8}.dataset-menu-button.active{border-color:#b98f7d;color:#702b1d;background:#fff6f2}.dataset-menu-button:disabled{cursor:wait;opacity:.55}.dataset-menu-button>span{display:grid;min-width:0;gap:2px}.dataset-menu-button strong{overflow-wrap:anywhere;font-size:12px}.dataset-menu-button small{color:#82766c;font-size:10px}.sidebar-data-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:14px;border:1px solid #d7cec1;border-radius:5px;overflow:hidden;background:#d7cec1}.sidebar-data-status>span{display:grid;gap:2px;min-width:0;padding:8px 4px;background:#fffdf8;text-align:center}.sidebar-data-status strong{color:#3f3731;font-size:12px}.sidebar-data-status small{color:#7d7269;font-size:9px;line-height:1.2}.finder-explorer{display:grid;min-width:0;border:1px solid #d4cabd;border-radius:5px;overflow:hidden;background:#fff}.finder-path{display:flex;align-items:center;gap:3px;min-width:0;min-height:34px;border-bottom:1px solid #dcd3c8;padding:7px 10px;color:#746960;background:#f4f1eb;font-size:10px;white-space:nowrap;overflow:hidden}.finder-path span,.finder-path strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.finder-path button{min-width:0;border:0;border-radius:3px;padding:3px 4px;overflow:hidden;color:#746960;background:transparent;font-size:inherit;font-weight:700;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.finder-path button:hover,.finder-path button.active{color:#2f2924;background:#e7e1d8}.finder-path strong{color:#3f3731}.finder-browser{display:grid;min-width:0;min-height:360px}.finder-browser-scroll{min-width:0;overflow:hidden}.finder-browser.depth-1{grid-template-columns:minmax(0,1fr)}.finder-browser.depth-2{grid-template-columns:minmax(145px,.82fr) minmax(185px,1.08fr)}.finder-browser.depth-3{grid-template-columns:minmax(145px,.82fr) minmax(185px,1.08fr) minmax(205px,1.22fr)}.finder-column{min-width:0;border-right:1px solid #ddd5cb;background:#fff}.finder-column:last-child{border-right:0}.finder-items,.finder-preview{animation:finder-column-reveal .2s ease-out}@keyframes finder-column-reveal{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.finder-column>header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;border-bottom:1px solid #e2dbd2;padding:7px 9px;color:#61574f;background:#faf8f4}.finder-column>header span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:10px;font-weight:800;white-space:nowrap}.finder-column>header small{flex:0 0 auto;color:#8b8076;font-size:9px}.finder-groups>button,.finder-items>button{display:grid;align-items:center;gap:6px;width:100%;min-height:40px;border:0;border-bottom:1px solid #eee8e0;padding:7px 8px;color:#494039;background:transparent;text-align:left;cursor:pointer}.finder-groups>button{grid-template-columns:18px minmax(0,1fr) auto 15px}.finder-items>button{grid-template-columns:18px minmax(0,1fr) 15px}.finder-groups>button:hover,.finder-items>button:hover{background:#f8f5f0}.finder-groups>button.active,.finder-items>button.active{color:#fff;background:#285b82}.finder-groups>button:disabled,.finder-items>button:disabled{cursor:wait;opacity:.52}.finder-groups>button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:10px;font-weight:800;white-space:nowrap}.finder-groups>button>small{color:#8c8177;font-size:8px}.finder-groups>button.active>small{color:#eaf4fb}.finder-items>button>span{display:grid;min-width:0;gap:2px}.finder-items>button strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.finder-items>button small{color:#877c72;font-size:8px}.finder-items>button.active small{color:#eaf4fb}.finder-preview{background:#fffdf9}.finder-preview-content{display:grid;align-content:start;gap:8px;padding:14px}.finder-preview-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid #c9d7e1;border-radius:5px;color:#285b82;background:#f2f7fa}.finder-preview-kind{color:#285b82;font-size:9px;font-weight:900}.finder-preview-content h3{margin:0;font-size:16px;line-height:1.3;overflow-wrap:anywhere}.finder-preview-content>p{margin:0;color:#665c53;font-size:10px;line-height:1.6}.finder-preview-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #dfd7cd;border-bottom:1px solid #dfd7cd}.finder-preview-facts>span{display:grid;gap:2px;min-width:0;border-right:1px solid #dfd7cd;padding:8px 6px}.finder-preview-facts>span:last-child{border-right:0}.finder-preview-facts small{color:#887d73;font-size:8px}.finder-preview-facts strong{color:#403832;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.finder-preview-content .detail-action{margin-top:3px;font-size:11px}.finder-preview-empty{display:grid;place-items:center;align-content:center;gap:8px;min-height:250px;padding:20px;color:#94887d}.finder-preview-empty strong{font-size:11px}@media(max-width:1200px){.finder-browser.depth-1{grid-template-columns:minmax(220px,1fr);width:100%}.finder-browser.depth-2{grid-template-columns:145px minmax(190px,1fr);width:100%}.finder-browser.depth-3{grid-template-columns:145px 190px 220px;width:max-content}.finder-browser-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#9f9387 #ece7df}}.dataset-summary-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:15px 0 12px;border:1px solid #d9d0c4;border-radius:4px;overflow:hidden;background:#d9d0c4}.dataset-summary-stats span{padding:9px;color:#665c53;background:#faf8f3;font-size:11px;text-align:center}.bible-verse-detail,.bible-chapter-detail{display:grid;gap:18px}.bible-verse-quote,.bible-verse-context{border:1px solid #d9cfc3;border-radius:5px;background:#fffdf9}.bible-verse-quote{padding:18px 20px 22px}.bible-verse-quote .dataset-section-heading,.bible-verse-context .dataset-section-heading{margin-bottom:14px}.bible-verse-quote>p{margin:0;color:#342d28;font-family:Malgun Gothic,AppleGothic,system-ui,sans-serif;font-size:22px;font-weight:700;line-height:1.8}.bible-chapter-verses{display:grid;gap:6px}.bible-chapter-verses p{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;margin:0;border-radius:4px;padding:7px 9px;color:#3f352d;font-size:15px;line-height:1.75}.bible-chapter-verses p.focused{background:#fff2c2}.bible-chapter-verses p.focused strong{font-weight:900}.bible-chapter-verses span{color:#9a5f14;font-size:12px;font-weight:900;line-height:2.15;text-align:right}.bible-chapter-verses strong{font-weight:600}.scripture-reference-button{display:inline;border:0;border-bottom:1px solid rgba(154,95,20,.45);padding:0;color:#8a4f0c;background:transparent;font:inherit;font-weight:900;cursor:pointer}.scripture-reference-button:hover,.scripture-reference-button:focus-visible{color:#5f3405;border-bottom-color:currentColor;outline:none}.bible-verse-context{padding:14px 16px 16px}.bible-verse-tags{display:flex;flex-wrap:wrap;gap:6px}.bible-verse-tags span{border:1px solid #d4c7b9;border-radius:3px;padding:5px 7px;color:#5e5147;background:#faf6f0;font-size:11px;font-weight:700}.dataset-summary-stats strong{color:#2c251e;font-size:15px}.dataset-table-wrap{width:100%;overflow:auto;border:1px solid #d9d0c4;border-radius:4px;background:#fff}.dataset-table{width:100%;min-width:680px;border-collapse:collapse;table-layout:auto}.dataset-table th,.dataset-table td{border-right:1px solid #e6ded4;border-bottom:1px solid #e6ded4;padding:9px 10px;color:#4b423a;font-size:12px;line-height:1.45;text-align:left;vertical-align:top;overflow-wrap:anywhere}.dataset-table th{position:sticky;top:0;z-index:1;color:#332c27;background:#eee8de;font-size:11px;white-space:nowrap}.dataset-table th:last-child,.dataset-table td:last-child{border-right:0}.dataset-table tr:last-child td{border-bottom:0}.dataset-table-wrap.compact{max-height:230px}.dataset-table-wrap.compact .dataset-table{min-width:0;table-layout:fixed}.dataset-table-wrap.compact th,.dataset-table-wrap.compact td{padding:7px 8px;font-size:11px}.dataset-empty{border:1px dashed #d4cabd;border-radius:4px;padding:18px;color:#796e64;background:#faf8f3;font-size:12px;text-align:center}.dataset-detail-view{display:grid;gap:22px}.dataset-node-map{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid #ded5c9;border-bottom:1px solid #ded5c9;padding:12px 0}.dataset-node-token,.dataset-root-node{display:grid;gap:2px;border:1px solid #d2c7b9;border-radius:4px;padding:6px 8px;background:#fffdf8}.dataset-root-node{place-items:center;color:#fff;background:#3d352f;font-size:12px;font-weight:800}.dataset-node-token small{color:#877b71;font-size:9px}.dataset-node-token strong{color:#3e352e;font-size:12px}.dataset-table-section,.dataset-relations-section{display:grid;gap:10px}.dataset-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#574c42}.dataset-section-heading>div{display:flex;align-items:baseline;gap:8px}.dataset-section-heading span{font-size:14px;font-weight:800}.dataset-section-heading strong{color:#81756b;font-size:11px}.relation-flow-list{border-top:1px solid #dfd6ca}.relation-flow-row{display:grid;grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr) minmax(80px,.8fr);align-items:center;gap:8px;min-height:40px;border-bottom:1px solid #e6ded4;padding:7px 2px}.relation-flow-row strong{color:#3d352f;font-size:12px}.relation-flow-row>span{border-radius:3px;padding:4px 6px;color:#fff;background:#285b82;font-size:10px;font-weight:800;text-align:center}.relation-flow-row small{color:#7e736a;font-size:10px;text-align:right}.redemption-view{display:grid;gap:20px}.redemption-phase-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #d8cbbb;border-bottom:1px solid #d8cbbb}.redemption-phase{display:grid;grid-template-columns:28px minmax(0,1fr);gap:3px 8px;min-height:76px;border-right:1px solid #ded5c9;padding:12px 10px;background:#fffdf8}.redemption-phase:last-child{border-right:0}.redemption-phase>span{grid-row:1 / 3;color:#8c2d19;font-size:11px;font-weight:900}.redemption-phase strong{min-width:0;color:#342d27;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.redemption-phase small{color:#7d7269;font-size:10px}.redemption-phase.phase-covenant-pattern{background:#f5f8fa}.redemption-phase.phase-christ-fulfillment{background:#fbf3ef}.redemption-phase.phase-church-completion{background:#f1f7f4}.redemption-theme-tabs{display:flex;flex-wrap:wrap;gap:5px;padding-bottom:12px;border-bottom:1px solid #e0d7cc}.redemption-theme-tabs button{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid #d6ccbf;border-radius:4px;padding:7px 9px;color:#5c5148;background:#fff;font-size:11px;font-weight:800;cursor:pointer}.redemption-theme-tabs button:hover{border-color:var(--theme-color, #8c2d19);color:#332c27}.redemption-theme-tabs button.active{border-color:var(--theme-color, #8c2d19);color:#fff;background:var(--theme-color, #8c2d19)}.theme-swatch{width:8px;height:8px;border-radius:50%;background:var(--theme-color)}.redemption-theme-tabs button.active .theme-swatch{border:1px solid rgba(255,255,255,.75)}.redemption-workspace{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(300px,1.1fr);align-items:start;gap:22px}.redemption-flow{display:grid;gap:0;margin:0;padding:0;list-style:none}.redemption-step{position:relative;min-width:0;padding-bottom:16px;transition:opacity .18s ease}.redemption-step.muted{opacity:.28}.redemption-step:before{position:absolute;top:24px;bottom:-1px;left:60px;width:2px;background:#c9b9aa;content:""}.redemption-step:last-child:before{display:none}.redemption-step>button{position:relative;display:grid;grid-template-columns:32px 38px minmax(0,1fr);align-items:center;gap:7px;width:100%;min-height:66px;border:1px solid transparent;border-radius:6px;padding:7px 8px 7px 4px;color:#3e352e;background:transparent;text-align:left;cursor:pointer}.redemption-step>button:hover,.redemption-step>button.active{border-color:#cbbbad;background:#fff;box-shadow:0 4px 12px #362c2414}.redemption-step>button.active{border-left:4px solid var(--movement-color, #8c2d19);padding-left:0}.redemption-step-number{color:#8a7e73;font-size:10px;font-weight:900;text-align:center}.redemption-step-marker{z-index:1;display:grid;place-items:center;width:34px;height:34px;border:2px solid #ffffff;border-radius:50%;color:#fff;background:var(--movement-color, #8c2d19);box-shadow:0 0 0 1px var(--movement-color, #8c2d19)}.redemption-step-copy{display:grid;min-width:0;gap:2px}.redemption-step-copy small{color:#766b61;font-size:10px;font-weight:700}.redemption-step-copy strong{color:#342d27;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.redemption-step-copy em{color:var(--movement-color, #8c2d19);font-size:10px;font-style:normal;font-weight:800}.redemption-bridge{display:block;margin:2px 4px 0 79px;color:#80756b;font-size:10px;line-height:1.45}.movement-creation{--movement-color: #23705a}.movement-promise{--movement-color: #6b4eb8}.movement-covenant{--movement-color: #285b82}.movement-kingdom{--movement-color: #a96513}.movement-fulfillment{--movement-color: #8c2d19}.movement-mission{--movement-color: #187267}.movement-completion{--movement-color: #3d352f}.redemption-stage-detail{position:sticky;top:0;display:grid;gap:15px;min-width:0;border-top:4px solid var(--movement-color, #8c2d19);border-bottom:1px solid #d9cfc2;padding:18px 4px}.redemption-stage-heading{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:10px}.redemption-stage-heading>span{display:grid;place-items:center;width:40px;height:40px;border-radius:4px;color:#fff;background:var(--movement-color, #8c2d19);font-size:12px;font-weight:900}.redemption-stage-heading small{color:var(--movement-color, #8c2d19);font-size:10px;font-weight:900}.redemption-stage-heading h3{margin:3px 0 0;font-size:21px;line-height:1.25;overflow-wrap:anywhere}.redemption-stage-summary{margin:0;color:#51483f;font-size:13px;line-height:1.75}.redemption-reference-list{display:flex;flex-wrap:wrap;gap:5px}.redemption-reference-list span{border:1px solid #d7ccbf;border-radius:4px;padding:5px 7px;color:#51473f;background:#fffdf8;font-size:10px;font-weight:800}.redemption-christ-link{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;border-left:3px solid #8c2d19;padding:10px 12px;color:#6f2b1d;background:#fbf1ed}.redemption-christ-link>svg{margin-top:2px}.redemption-christ-link strong{display:block;margin-bottom:3px;font-size:11px}.redemption-christ-link p{margin:0;color:#5c4439;font-size:11px;line-height:1.6}.redemption-thread-list{border-top:1px solid #dfd6cb}.redemption-thread-row{display:grid;grid-template-columns:9px 76px minmax(0,1fr);align-items:start;gap:7px;border-bottom:1px solid #e8e0d6;padding:9px 0}.redemption-thread-row>span{width:8px;height:8px;margin-top:4px;border-radius:50%}.redemption-thread-row strong{color:#453b34;font-size:10px}.redemption-thread-row p{margin:0;color:#685e55;font-size:10px;line-height:1.55}.redemption-perspective-note{margin:0;color:#81766c;font-size:9px;line-height:1.55}.redemption-summary-flow{display:grid;margin-top:14px;border-top:1px solid #ddd3c7}.redemption-summary-flow>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:38px;border-bottom:1px solid #e5ddd3}.redemption-summary-flow span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:#fff;background:#8c2d19;font-size:9px;font-weight:900}.redemption-summary-flow strong{color:#453c35;font-size:11px}.redemption-summary-flow small{color:#7f746a;font-size:9px}.tribe-matrix-view{display:grid;gap:16px;min-width:0}.tribe-matrix-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;align-items:end;gap:8px}.tribe-matrix-search{position:relative;display:flex;align-items:center}.tribe-matrix-search>svg{position:absolute;left:11px;color:#786e64;pointer-events:none}.tribe-matrix-search input,.tribe-era-select select{width:100%;min-height:40px;border:1px solid #d5cabe;border-radius:4px;color:#3f3731;background:#fff;font-size:12px;outline:none}.tribe-matrix-search input{padding:8px 10px 8px 35px}.tribe-matrix-search input:focus,.tribe-era-select select:focus{border-color:#8c2d19;box-shadow:0 0 0 2px #8c2d191f}.tribe-era-select{display:grid;gap:4px}.tribe-era-select>span{color:#776d63;font-size:10px;font-weight:800}.tribe-era-select select{padding:8px 28px 8px 10px}.tribe-result-count{min-height:40px;border:1px solid #d8cec1;border-radius:4px;padding:9px 11px;color:#6d6259;background:#faf8f3;font-size:11px;white-space:nowrap}.tribe-result-count strong{color:#2f2924;font-size:15px}.tribe-standard-note{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:7px;border-left:3px solid #285b82;padding:9px 11px;color:#4c5359;background:#f2f7fa;font-size:11px;line-height:1.55}.tribe-standard-note>svg{margin-top:1px;color:#285b82}.tribe-person-focus{display:grid;gap:12px;border-top:4px solid var(--tribe-accent, #8c2d19);border-bottom:1px solid #ded5ca;padding:14px 4px}.tribe-person-focus-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tribe-person-focus-heading span{color:var(--tribe-accent, #8c2d19);font-size:10px;font-weight:800}.tribe-person-focus-heading h3{margin:3px 0 0;font-size:20px}.tribe-person-focus-heading button{display:grid;flex:0 0 auto;place-items:center;width:32px;height:32px;border:1px solid #d8cfc4;border-radius:4px;color:#544a42;background:#fff;cursor:pointer}.tribe-person-focus-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #e2d9ce;border-bottom:1px solid #e2d9ce}.tribe-person-focus-facts>span{display:grid;gap:3px;min-width:0;border-right:1px solid #e2d9ce;padding:9px 10px}.tribe-person-focus-facts>span:last-child{border-right:0}.tribe-person-focus-facts small{color:#80756b;font-size:9px}.tribe-person-focus-facts strong{color:#433b34;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.tribe-person-tags{display:flex;flex-wrap:wrap;gap:5px}.tribe-person-tags span{border:1px solid #d8cec2;border-radius:3px;padding:4px 6px;color:#61574f;background:#fffdf9;font-size:9px;font-weight:700}.tribe-matrix-scroll{width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #d9cfc3;border-radius:4px;background:#fff;scrollbar-color:#a99b8c #eee9e1}.tribe-matrix-grid{display:grid;align-items:stretch;width:max-content;min-width:100%}.tribe-column{min-width:178px;border-right:1px solid #ded6cc;background:#fff}.tribe-column:last-child{border-right:0}.tribe-column.supplemental{background:#f7f5f1}.tribe-column-header{display:grid;grid-template-columns:27px minmax(0,1fr);gap:3px 7px;min-height:122px;border-top:5px solid var(--tribe-accent);border-bottom:1px solid #dcd3c8;padding:10px;background:#faf8f4}.tribe-column-header>span{grid-row:1 / 3;color:var(--tribe-accent);font-size:10px;font-weight:900}.tribe-column-header h3{margin:0;font-size:15px;line-height:1.25}.tribe-column-header small{display:block;margin-top:2px;color:#7c7168;font-size:9px;line-height:1.35}.tribe-column-header p{grid-column:1 / -1;margin:5px 0 0;color:#60564e;font-size:10px;line-height:1.4}.tribe-column-header>strong{grid-column:1 / -1;color:var(--tribe-accent);font-size:11px}.tribe-column-people{display:grid;align-content:start}.tribe-column-people>button{display:grid;gap:3px;width:100%;min-height:86px;border:0;border-bottom:1px solid #e5ded5;border-left:3px solid transparent;padding:9px 10px;color:#433b34;background:transparent;text-align:left;cursor:pointer}.tribe-column-people>button:hover,.tribe-column-people>button.active{border-left-color:var(--tribe-accent);background:#faf8f4}.tribe-column-people>button>span{display:flex;align-items:center;justify-content:space-between;gap:6px}.tribe-column-people strong{color:#352f2a;font-size:12px}.tribe-column-people em{border-radius:3px;padding:2px 4px;color:#fff;background:var(--tribe-accent);font-size:8px;font-style:normal;font-weight:800}.tribe-column-people small{color:var(--tribe-accent);font-size:9px;font-weight:700}.tribe-column-people p{margin:0;color:#655b53;font-size:9px;line-height:1.4}.tribe-column-people i{color:#8a7f75;font-size:8px;font-style:normal}.tribe-column-empty{min-height:86px;padding:18px 10px;color:#998d82;font-size:10px;text-align:center}.tribe-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:12px}.tribe-summary-grid>span{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;border-left:3px solid var(--tribe-accent);padding:6px 7px;background:#faf8f4}.tribe-summary-grid strong{overflow-wrap:anywhere;color:#443c35;font-size:10px}.tribe-summary-grid small{flex:0 0 auto;color:#7d7269;font-size:9px}.tribe-summary-note{margin:12px 0 0;color:#786e65;font-size:10px;line-height:1.55}@media(max-width:1500px){.redemption-workspace{grid-template-columns:1fr}.redemption-stage-detail{position:static}}@media(max-width:1350px){.redemption-phase-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.redemption-phase:nth-child(2){border-right:0}.redemption-phase:nth-child(-n+2){border-bottom:1px solid #ded5c9}}@media(max-width:980px){.center-screen{left:0;right:0;z-index:8;width:100%;min-width:0;transform:translate(100%)}}@media(max-width:760px){.main-container{--right-sidebar-width: min(340px, 86vw)}.main-container.finder-depth-1{--left-sidebar-width: min(260px, 92vw)}.main-container.finder-depth-2{--left-sidebar-width: min(430px, 92vw)}.main-container.finder-depth-3{--left-sidebar-width: min(620px, 92vw)}.header{gap:8px;padding:0 10px}.header h1{min-width:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.header-right{flex:1 1 auto;gap:6px;min-width:0}.bible-search{width:auto;min-width:0;flex:1 1 116px}.bible-search-field{gap:4px;padding:0 6px}.bible-search-field input{font-size:11px}.bible-search-field kbd{display:none}.nav-btn{padding:7px 9px;font-size:12px}.panel-command{min-width:62px;gap:5px}.panel-command-label{display:none}.sidebar.left{left:0}.sidebar.right{right:0}.center-screen{left:0;right:0;z-index:8;width:100%;min-width:0;padding:18px;transform:translate(100%)}.center-screen-header{gap:12px}.center-screen-header h2{font-size:23px}.detail-grid{grid-template-columns:1fr}.relation-flow-row{grid-template-columns:minmax(80px,1fr) auto minmax(80px,1fr)}.relation-flow-row small{grid-column:1 / -1;text-align:left}.dataset-section-heading>div{display:grid;gap:2px}.redemption-phase-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.redemption-phase:nth-child(2){border-right:0}.redemption-phase:nth-child(-n+2){border-bottom:1px solid #ded5c9}.redemption-theme-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.redemption-theme-tabs button{justify-content:flex-start;min-width:0}.redemption-step>button{grid-template-columns:28px 34px minmax(0,1fr)}.redemption-step:before{left:53px}.redemption-step-marker{width:30px;height:30px}.redemption-bridge{margin-left:70px}.redemption-thread-row{grid-template-columns:9px minmax(70px,.35fr) minmax(0,1fr)}.tribe-matrix-toolbar{grid-template-columns:1fr}.tribe-result-count{width:max-content}.tribe-person-focus-facts{grid-template-columns:1fr}.tribe-person-focus-facts>span{border-right:0;border-bottom:1px solid #e2d9ce}.tribe-person-focus-facts>span:last-child{border-bottom:0}.tribe-column,.tribe-matrix-grid{min-width:168px}}.bible-visualization-hub{display:grid;gap:18px;color:#342d27}.bible-viz-panel{overflow:hidden;border:1px solid #d9d0c4;border-radius:7px;background:#fffdf9}.bible-viz-heading{display:flex;align-items:start;justify-content:space-between;gap:18px;border-bottom:1px solid #e7ddd2;padding:14px 16px}.bible-viz-heading span{color:#8c2d19;font-size:11px;font-weight:900}.bible-viz-heading h3{margin:3px 0 0;font-size:16px}.bible-viz-heading p{max-width:330px;margin:1px 0 0;color:#76695e;font-size:12px;line-height:1.55}.network-filters{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 0}.network-filters button{border:1px solid #d8cbbb;border-radius:999px;padding:5px 9px;color:#65594f;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.network-filters button.active{border-color:#8c2d19;color:#fff;background:#8c2d19}.cytoscape-canvas{height:390px;margin:8px 10px 0;border-radius:5px;background:#faf6f0}.network-status{min-height:20px;padding:9px 16px 12px;color:#74685e;font-size:12px}.network-status strong{color:#8c2d19}.react-flow-canvas{height:390px;background:#faf6f0}.react-flow-canvas .react-flow__node{font-family:inherit}.flow-stage-node{display:grid;gap:4px;padding:10px 12px}.flow-stage-node span{color:#997142;font-size:10px;font-weight:900}.flow-stage-node strong{color:#342d27;font-size:13px}.flow-stage-node small{color:#74685e;font-size:10px}.mermaid-canvas{overflow:auto;padding:22px 12px;text-align:center}.mermaid-canvas svg{min-width:660px;max-width:100%;height:auto}.festival-chart{height:300px;padding:8px 12px 0}.festival-chart>p{padding:80px 0;color:#75695f;text-align:center}@media(max-width:720px){.bible-viz-heading{display:grid;gap:6px}.bible-viz-heading p{max-width:none}.cytoscape-canvas,.react-flow-canvas{height:330px}.mermaid-canvas{text-align:left}}.tool-comparison-view{display:grid;gap:14px;color:#342d27}.tool-comparison-intro{display:flex;align-items:start;justify-content:space-between;gap:18px;border:1px solid #d9d0c4;border-radius:7px;padding:15px 17px;background:#fffdf9}.tool-comparison-intro span{color:#8c2d19;font-size:11px;font-weight:900}.tool-comparison-intro h3{margin:4px 0 0;font-size:17px}.tool-comparison-intro p{max-width:470px;margin:0;color:#6f6257;font-size:12px;line-height:1.6}.tool-comparison-controls{display:flex;flex-wrap:wrap;gap:7px}.tool-comparison-controls button{border:1px solid #d4c7b9;border-radius:999px;padding:7px 11px;color:#65594f;background:#fffdf9;font-size:12px;font-weight:800;cursor:pointer}.tool-comparison-controls button.active{border-color:#8c2d19;color:#fff;background:#8c2d19}.tool-comparison-status{display:flex;flex-wrap:wrap;align-items:center;gap:7px 11px;border-left:3px solid #a96513;padding:3px 0 3px 10px;color:#73675d;font-size:12px}.tool-comparison-status strong{color:#3d342d}.tool-comparison-status em{color:#8c2d19;font-style:normal;font-weight:800}.tool-comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tool-compare-card{overflow:hidden;min-width:0;border:1px solid #d9d0c4;border-radius:7px;background:#fffdf9}.tool-compare-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px solid #e7ddd2;padding:10px 12px}.tool-compare-card>header span{color:#3d342d;font-size:14px;font-weight:900}.tool-compare-card>header small{color:#827469;font-size:10px}.tool-compare-flow,.tool-compare-cytoscape,.tool-compare-d2,.tool-compare-chart{height:320px;background:#faf6f0}.tool-compare-flow .react-flow__node{font-family:inherit}.compare-flow-node{display:grid;gap:3px;padding:8px 10px}.compare-flow-node span{color:#846d58;font-size:9px;font-weight:800}.compare-flow-node strong{color:#382f28;font-size:12px;line-height:1.25}.tool-compare-d2{overflow:auto;padding:10px;text-align:center}.tool-compare-d2 svg{min-width:450px;max-width:100%;height:auto}.tool-compare-chart{padding:8px 10px 0}@media(max-width:980px){.tool-comparison-grid{grid-template-columns:1fr}}@media(max-width:700px){.tool-comparison-intro{display:grid;gap:8px}.tool-comparison-intro p{max-width:none}.tool-compare-flow,.tool-compare-cytoscape,.tool-compare-d2,.tool-compare-chart{height:280px}}
