@import"https://fonts.googleapis.com/css2?family=Marck+Script&display=swap";:root{--primary-gradient-start:#79bcf3;--primary-gradient-end:#4d9be5;--primary-blue:#4089cf;--text-white:#fff;--text-gray:#545656;--border-white-light:hsla(0,0%,100%,.2);--bg-white-hover:hsla(0,0%,100%,.15);--bg-white-active:hsla(0,0%,100%,.3);--container-max-width:1200px}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0;outline:none}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.clearfix{display:inline-block}* html .clearfix{height:1%}.clearfix{display:block}a,a:hover{text-decoration:none}body,html{min-height:100%;height:100%;margin:0 auto;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:18px;background:#fff}#__next,body{display:flex;flex-direction:column}#__next{min-height:100vh;position:relative}.family-tree-wrapper{height:80vh;width:100%;position:relative;background:#fff}:root{--bg-primary:#fff;--bg-secondary:#fff;--bg-tertiary:#fff;--surface:#ababab;--text-primary:#000;--text-secondary:#000;--text-muted:#000;--accent:#3b82f6;--accent-hover:#2563eb;--border:#6e788793;--shadow:rgba(0,0,0,.25);--person-bg:#fef3c7;--person-border:#f59e0b;--person-text:#92400e;--edge-color:#94a3b8}.tree-container{height:100%;position:relative;overflow:hidden;border:1px solid #000;border-radius:1%}.person-node{cursor:pointer;border-radius:12px;padding:4px;position:relative}.person-content{display:flex;flex-direction:column;align-items:center;z-index:1;transition:all .2s ease}.person-content:hover{transform:scale(1.1)}.person-photo{width:100px;height:100px;border-radius:50%;overflow:hidden;border:2px solid var(--person-border);background:var(--person-bg);transition:all .2s ease}.person-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%}.person-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.name{margin-top:8px;font-size:12px;font-weight:600;color:var(--person-text);line-height:1.2}.name,.years{text-align:center}.years{font-size:10px;color:var(--text-muted);margin-top:2px}.missing-parents-badges{position:absolute;top:0;right:0;z-index:10;pointer-events:auto}.parent-badge{position:absolute;width:32px;height:32px;border-radius:50%;background:var(--accent);border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;box-shadow:0 2px 4px var(--shadow);transition:all .2s ease;cursor:pointer}.parent-badge:hover{transform:scale(1.2);z-index:20;background:var(--accent-hover)}.parent-badge-image{width:100%;height:100%;border-radius:50%;object-fit:cover}.parent-badge-initials{font-size:14px;font-weight:700;color:#fff;text-transform:uppercase}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:modalOverlayFade .2s ease}.modal-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;width:90vw;max-width:600px;max-height:90vh;overflow:hidden;z-index:1001;animation:modalSlide .3s ease}.modal-header{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;z-index:10}.modal-back,.modal-close{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.modal-back:hover,.modal-close:hover{background:var(--surface);color:var(--text-primary);transform:scale(1.1)}.modal-content{padding:72px 32px 32px;overflow-y:auto;max-height:90vh;display:flex;flex-direction:column}.modal-title-section{text-align:left;margin-bottom:24px}.modal-main-title{font-size:2.2rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.1}.modal-two-column{display:flex;gap:20px;margin-bottom:24px}.modal-left-column{flex-shrink:0;width:300px}.modal-right-column{flex:1 1;display:flex;flex-direction:column;gap:12px;padding-left:12px}.modal-photo-large{width:300px;height:350px;background:var(--surface);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.modal-photo-large img{width:100%;height:100%;object-fit:cover}.modal-photo-placeholder{color:var(--text-muted);display:flex;align-items:center;justify-content:center}.modal-info-group{display:flex;flex-direction:column;gap:12px;position:relative;padding-bottom:16px;border-bottom:1px solid var(--border)}.modal-info-group:last-child{border-bottom:none;padding-bottom:0}.modal-info-label{font-size:1.3rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.2}.modal-info-value{font-size:1rem;color:var(--text-secondary);font-weight:400;line-height:1.2;margin-top:4px;padding-left:4px}.modal-info-buttons{display:flex;flex-wrap:wrap;gap:8px}.modal-info-button{background:var(--accent);color:#fff;padding:8px 16px;border-radius:30px;font-size:.9rem;font-weight:600;border:none;cursor:pointer;transition:all .3s ease}.modal-info-button:hover{background:var(--accent-hover);transform:translateY(-2px)}.modal-biography-section{border-top:1px solid var(--border);padding-top:24px}.modal-biography-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 16px}.modal-biography-text{font-size:1rem;color:var(--text-primary);line-height:1.6;white-space:pre-line}@keyframes modalOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes modalSlide{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}@media(max-width:768px){.modal-container{width:95vw}.modal-title-section,.modal-two-column{margin-bottom:16px}.modal-content{padding:72px 20px 24px}.modal-main-title{font-size:2rem}.modal-two-column{flex-direction:column;gap:10px}.modal-left-column{width:100%;display:flex;justify-content:center}.modal-photo-large{width:200px;height:240px}.modal-right-column{padding-left:0}.modal-info-group{padding:16px 0}.modal-info-label{font-size:1.1rem}.modal-info-value{font-size:.8rem}.modal-info-buttons{flex-direction:column;gap:10px;margin-top:12px}.modal-info-button{text-align:center;padding:12px 18px;font-size:1rem}.modal-biography-title{font-size:1.5rem}}.react-flow__renderer{background:var(--bg-primary)}.react-flow__controls{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px}.react-flow__controls button{background:var(--bg-tertiary);color:var(--text-primary);border:none;border-radius:8px;margin:4px;transition:all .2s ease}.react-flow__controls button:hover{background:var(--surface);color:var(--text-primary);transform:scale(1.05)}.react-flow__controls button svg{fill:var(--text-secondary)}.react-flow__background{background-color:var(--bg-primary)}.react-flow__minimap{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px}.react-flow__edge path{stroke:var(--edge-color);stroke-width:2;transition:all .2s ease}.react-flow__edge:hover path{stroke-width:3}.react-flow__edge-straight{stroke:var(--edge-color)}.react-flow__edge.marriage path{stroke:var(--person-border);stroke-width:2}.connector-handle,.person-handle,.react-flow__handle{background:transparent;border:none;width:8px;height:8px;opacity:0}.connector-node{width:1px;height:1px;background:transparent;border:none}.error-state,.loading-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;padding:40px;background:hsla(0,0%,100%,.9);border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.error-state p,.loading-state p{margin:0 0 16px;color:#64748b;font-size:16px}.error-state button{background:#6366f1;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s ease}.error-state button:hover{background:#5855eb}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}table{width:100%;border-collapse:collapse;margin:20px 0;box-shadow:0 2px 8px rgba(0,0,0,.1);border-radius:8px;overflow:hidden}table td,table th{padding:12px 15px;border:1px solid #ddd;vertical-align:top;line-height:1.5;text-align:left}table th{background-color:#f1f3f4;font-weight:600;color:#2c3e50}table tr:nth-child(2n){background-color:#f8f9fa}table tr:hover{background-color:#e3f2fd}table td:first-child{background-color:#f1f3f4;font-weight:500}ol li{margin-bottom:15px}ol li p{margin-bottom:10px}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.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:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;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:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid #fff;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.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.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{font-size:10px;background:hsla(0,0%,100%,.5);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}.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-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border:1px solid #1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform: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.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.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.bottom,.react-flow__resize-control.line.top{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%}