.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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,:root[data-theme=dark]{--bg:#0b101b;--bg-glow:#1d2742;--surface:#121a2b;--surface-2:#19223a;--glass:#0e1422c7;--ink:#f1e8d4;--muted:#a59b86;--gold:#d4af6a;--gold-2:#f3dca0;--gold-3:#8c7246;--line:#d4af6a80;--line-soft:#d4af6a38;--dots:#d4af6a29;--card-a:#1b2439;--card-b:#10172a;--input:#ffffff0a;--me:#c8463e;--danger:#c0392b;--shadow:0 18px 40px -18px #000c;--btn-bg:linear-gradient(180deg, #f3dca0, #c9a052);--btn-ink:#241a08;--btn-glow:0 6px 16px -8px #d4af6acc;--font-display:"Cinzel", serif;--font-serif:"Cormorant Garamond", serif;--font-ui:"Inter", system-ui, sans-serif;--label-case:uppercase;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f1e1;--bg-glow:#faf8ee;--surface:#fbf9f1;--surface-2:#ece6d2;--glass:#faf8eee6;--ink:#23221d;--muted:#6f6b5c;--gold:#2f5a44;--gold-2:#012d1c;--gold-3:#8fa596;--line:#012d1c6b;--line-soft:#3d3b3424;--dots:#3d3b341f;--card-a:#fffdf7;--card-b:#fbf8ee;--input:#ffffffb3;--me:#c0473a;--danger:#b23b2f;--shadow:0 1px 2px #23221d0f, 0 12px 28px -16px #23221d47;--btn-bg:#012d1c;--btn-ink:#fff;--btn-glow:0 6px 16px -10px #012d1c99;--font-display:"Newsreader", Georgia, serif;--font-serif:"Newsreader", Georgia, serif;--font-ui:"Rethink Sans", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light] body{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), radial-gradient(ellipse 90% 60% at 50% 0%, var(--bg-glow) 0%, var(--bg) 70%) fixed, var(--bg)}:root[data-theme=light] .medallion{background:var(--gold-2);padding:2px;box-shadow:0 4px 12px -6px #012d1c73}:root[data-theme=light] .medallion-inner{border-color:var(--card-a);background:radial-gradient(circle at 35% 30%,#fffdf7,#efe9d6)}:root[data-theme=light] .is-me .medallion,:root[data-theme=light] .medallion.is-me{background:var(--me)}:root[data-theme=light] .is-placeholder .medallion{box-shadow:none;background:0 0}:root[data-theme=light] .monogram,:root[data-theme=light] .card-name,:root[data-theme=light] .panel-name{letter-spacing:-.01em;font-weight:500}:root[data-theme=light] .family-name{letter-spacing:-.02em;font-size:22px;font-weight:500}:root[data-theme=light] .card-surname,:root[data-theme=light] .card-years,:root[data-theme=light] .panel-years,:root[data-theme=light] .panel-section h3,:root[data-theme=light] .legend h3,:root[data-theme=light] .legend-text,:root[data-theme=light] .lineage-hint,:root[data-theme=light] .card-badge{font-family:var(--font-ui)}:root[data-theme=light] .panel-section h3,:root[data-theme=light] .legend h3{letter-spacing:.08em;color:var(--ink)}:root[data-theme=light] .panel-title{letter-spacing:-.01em;color:var(--ink);font-size:22px;font-weight:500}:root[data-theme=light] .card.is-selected{border-color:var(--gold-2);box-shadow:0 0 0 3px #012d1c24, var(--shadow)}:root[data-theme=light] .card.is-me{box-shadow:0 0 0 3px #c0473a29, var(--shadow)}:root[data-theme=light] .react-flow__edge.edge-on .react-flow__edge-path{filter:none}:root[data-theme=light] .bio,:root[data-theme=light] .story p{font-size:16.5px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{background-color:var(--bg)}body{background:radial-gradient(ellipse 90% 60% at 50% 0%, var(--bg-glow) 0%, var(--bg) 70%) fixed, var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-variant-ligatures:no-common-ligatures no-contextual;font-size:14px;overflow:hidden}button{font:inherit;color:inherit}.canvas{position:fixed;inset:0}.react-flow{--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:var(--dots);--xy-edge-stroke-default:var(--line);--xy-edge-stroke-width-default:2;--xy-controls-button-background-color-default:var(--surface);--xy-controls-button-background-color-hover-default:var(--surface-2);--xy-controls-button-color-default:var(--gold);--xy-controls-button-color-hover-default:var(--gold-2);--xy-controls-button-border-color-default:var(--line-soft);--xy-controls-box-shadow-default:var(--shadow);--xy-minimap-background-color-default:var(--surface);--xy-minimap-mask-background-color-default:#00000059;--xy-minimap-node-background-color-default:var(--gold-3);--xy-minimap-node-stroke-color-default:transparent}.react-flow__controls{border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}.minimap{border:1px solid var(--line-soft);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.react-flow__edge-path{transition:opacity .25s,stroke .25s}.react-flow__edge.edge-on .react-flow__edge-path{stroke:var(--gold-2);stroke-width:3px;filter:drop-shadow(0 0 6px #f3dca08c)}.react-flow__edge.edge-adopted .react-flow__edge-path{stroke-dasharray:7 6}.react-flow__edge.edge-dim .react-flow__edge-path{opacity:.14}.handle{opacity:0;pointer-events:none;border:0!important;width:2px!important;min-width:0!important;height:2px!important;min-height:0!important}.household{height:230px;display:flex;position:relative}.household-slot{align-items:flex-start;height:100%;display:flex}.stem{background:var(--line);width:2px;margin-left:-1px;transition:opacity .25s;position:absolute;top:76px;bottom:0}.stem.is-dimmed{opacity:.14}.ring{z-index:2;place-items:center;margin-top:64px;transition:opacity .25s;display:grid;position:relative}.union-symbol circle,.union-symbol path{fill:none;stroke:var(--gold);stroke-width:2.2px;stroke-linecap:round}.union-symbol .gem{fill:var(--gold-2);stroke-width:1.2px}.union-symbol.is-divorced circle{stroke:var(--muted)}.union-symbol.is-divorced path{stroke:var(--me)}.ring.is-dimmed{opacity:.25}.card{z-index:1;border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--card-a), var(--card-b));height:100%;box-shadow:var(--shadow), inset 0 1px 0 #ffffff0d;cursor:pointer;text-align:center;border-radius:20px;flex-direction:column;align-items:center;padding:18px 10px 14px;transition:transform .2s,box-shadow .2s,opacity .25s,filter .25s,border-color .2s;display:flex;position:relative}.card:hover{border-color:var(--line);transform:translateY(-3px)}.card:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}.card.is-selected{border-color:var(--gold-2);box-shadow:0 0 0 3px #d4af6a47, 0 0 34px -4px #f3dca073, var(--shadow)}.card.is-dimmed{opacity:.3;filter:saturate(.4)}.card.is-placeholder{border-style:dashed;border-color:var(--line);box-shadow:none;background:0 0}.card.is-me{border-color:var(--me);box-shadow:0 0 0 3px #c8463e38, 0 0 40px -8px #c8463e8c, var(--shadow)}.medallion{background:conic-gradient(from 210deg, var(--gold-3), var(--gold-2), var(--gold), var(--gold-3), var(--gold-2), var(--gold-3));border-radius:50%;flex:none;width:104px;height:104px;padding:3px;position:relative;box-shadow:0 6px 18px -6px #0009}.medallion-inner{border:3px solid var(--card-b);background:radial-gradient(circle at 35% 30%, var(--surface-2), var(--card-b));border-radius:50%;place-items:center;width:100%;height:100%;display:grid;overflow:hidden}.medallion img{object-fit:cover;width:100%;height:100%}.monogram{font-family:var(--font-display);letter-spacing:.04em;color:var(--gold);font-size:32px;font-weight:600}.is-placeholder .medallion{border:2px dashed var(--line);box-shadow:none;background:0 0}.is-placeholder .medallion-inner{background:0 0;border:0}.is-placeholder .monogram{color:var(--muted)}.is-me .medallion,.medallion.is-me{background:conic-gradient(from 210deg, var(--me), var(--gold-2), var(--gold), var(--me), var(--gold-2), var(--me))}.is-deceased .medallion img{filter:grayscale(.85)sepia(.25)}.crown{color:var(--gold-2);filter:drop-shadow(0 2px 4px #00000080);position:absolute;top:-15px;left:50%;transform:translate(-50%)}.card-name{font-family:var(--font-serif);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:12px;font-size:21px;font-weight:700;line-height:1.05;overflow:hidden}.card.is-placeholder .card-name{color:var(--muted);font-style:italic;font-weight:500}.card-surname{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:3px;font-size:11px;overflow:hidden}.card-years{font-family:var(--font-display);letter-spacing:.1em;color:var(--gold);margin-top:auto;font-size:11.5px}.card-badge{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--me);border-radius:999px;margin-top:auto;padding:3px 12px;font-size:10px;font-weight:700}.card-years+.card-badge{margin-top:6px}.topbar{z-index:10;border:1px solid var(--line-soft);background:var(--glass);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow);border-radius:18px;align-items:center;gap:16px;padding:10px 14px;display:flex;position:fixed;top:14px;left:16px;right:16px}.brand{align-items:center;gap:12px;min-width:0;display:flex}.default-crest path{fill:none;stroke:var(--gold);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.default-crest path:first-child{fill:var(--surface-2)}.crest-box{flex:none;position:relative}.crest{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;place-items:center;width:44px;height:44px;padding:0;transition:border-color .15s,background .15s;display:grid}.crest:hover,.crest[aria-expanded=true]{border-color:var(--line-soft);background:var(--input)}.crest img{object-fit:contain;max-width:40px;max-height:40px}.crest-menu{z-index:30;border:1px solid var(--line-soft);background:var(--surface);width:240px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;align-items:stretch;gap:8px;padding:16px;display:flex;position:absolute;top:calc(100% + 10px);left:0}.crest-preview{background:var(--input);border-radius:12px;place-items:center;height:96px;margin-bottom:4px;display:grid}.crest-preview img{object-fit:contain;max-width:80px;max-height:80px}.crest-menu .muted{text-align:center;margin:0;font-size:12px}.family-name{font-family:var(--font-display);letter-spacing:.06em;color:var(--gold-2);field-sizing:content;background:0 0;border:0;border-bottom:1px dashed #0000;min-width:6ch;max-width:40vw;padding:0;font-size:20px;font-weight:700}.family-name:hover,.family-name:focus{border-bottom-color:var(--line);outline:none}.stats{color:var(--muted);margin:2px 0 0;font-size:12px}.search{border:1px solid var(--line-soft);background:var(--input);max-width:360px;color:var(--muted);border-radius:999px;flex:1;align-items:center;gap:8px;margin-left:auto;padding:0 12px;display:flex;position:relative}.search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:9px 0}.search:focus-within{border-color:var(--line)}.search-results{border:1px solid var(--line-soft);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0}.search-results button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;width:100%;padding:9px 10px}.search-results button:hover{background:var(--surface-2)}.search-results small{color:var(--muted)}.tools{align-items:center;gap:6px;display:flex}.tool{border:1px solid var(--line-soft);height:36px;color:var(--gold);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:600;display:inline-flex}.tool:hover,.tool.is-active{border-color:var(--line);color:var(--gold-2)}.tool.is-active{background:var(--input)}.tool-confirm{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.lineage-hint{z-index:5;border:1px solid var(--line-soft);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--gold-2);font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;pointer-events:none;border-radius:999px;padding:7px 16px;font-size:12px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.has-panel .lineage-hint{left:calc(50% - 220px)}.panel{z-index:20;border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--surface), var(--card-b));width:420px;box-shadow:var(--shadow), 0 0 0 1px #0003;border-radius:22px;padding:26px 24px 30px;animation:.28s cubic-bezier(.2,.8,.2,1) slide-in;position:fixed;top:88px;bottom:16px;right:16px;overflow-y:auto}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}.panel-close{position:absolute;top:14px;right:14px}.icon-btn{border:1px solid var(--line-soft);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:hover{color:var(--ink);border-color:var(--line)}.panel-hero{text-align:center;border-bottom:1px solid var(--line-soft);flex-direction:column;align-items:center;padding-bottom:20px;display:flex}.medallion-xl{width:148px;height:148px;padding:4px}.medallion-xl .monogram{font-size:46px}.panel-name{font-family:var(--font-serif);margin:16px 0 0;font-size:32px;font-weight:700;line-height:1.05}.panel-nick{font-family:var(--font-serif);color:var(--muted);margin:4px 0 0;font-size:18px;font-style:italic}.panel-years{font-family:var(--font-display);letter-spacing:.08em;color:var(--gold);margin:8px 0 0;font-size:13px}.panel-years span{color:var(--muted);font-family:var(--font-ui);letter-spacing:0}.pill{border:1px dashed var(--line);color:var(--muted);border-radius:999px;margin:10px 0 0;padding:3px 12px;font-size:12px}.panel-actions{margin-top:16px}.panel-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--gold-2);margin:0 0 18px;font-size:18px}.panel-section{border-bottom:1px solid var(--line-soft);padding:18px 0}.panel-section:last-child{border-bottom:0}.panel-section h3{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:600;display:flex}.facts p{color:var(--ink);align-items:center;gap:8px;margin:0 0 8px;display:flex}.facts p:last-child{margin-bottom:0}.facts svg,.fact-cross{color:var(--gold);text-align:center;flex:none;width:14px}.bio{font-family:var(--font-serif);white-space:pre-wrap;margin:0;font-size:18px;line-height:1.5}.muted{color:var(--muted);margin:0 0 10px;font-size:13px}.links{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-soft);color:var(--ink);border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:13px;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--line);color:var(--gold-2)}.kin-list{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.kin{border:1px solid var(--line-soft);background:var(--input);cursor:pointer;text-align:left;border-radius:14px;align-items:center;gap:10px;min-width:0;padding:7px 9px;display:flex}.kin:hover{border-color:var(--line)}.kin-avatar{border:1.5px solid var(--gold);width:34px;height:34px;font-family:var(--font-display);color:var(--gold);border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid;overflow:hidden}.kin.is-placeholder .kin-avatar{color:var(--muted);border-style:dashed}.kin-avatar img{object-fit:cover;width:100%;height:100%}.kin-text{flex-direction:column;min-width:0;display:flex}.kin-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.kin-rel{color:var(--muted);font-size:11px}.add-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.story{border-left:2px solid var(--gold);margin:0 0 14px;padding:2px 0 2px 14px}.story h4{font-family:var(--font-serif);margin:0 0 4px;font-size:19px}.story p{font-family:var(--font-serif);white-space:pre-wrap;margin:0;font-size:17px;font-style:italic;line-height:1.45}.story footer{color:var(--muted);margin-top:6px;font-size:12px}.story-form{margin-bottom:4px}.danger{text-align:center}.confirm{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.link-btn{color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:6px;padding:0 0 0 8px;font-size:12px;text-decoration:underline;display:inline-flex}.danger .link-btn:hover{color:var(--danger)}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:9px 18px;font-size:13px;font-weight:600;transition:filter .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{padding:7px 12px;font-size:12.5px}.btn-gold{background:var(--btn-bg);color:var(--btn-ink);box-shadow:var(--btn-glow)}.btn-gold:hover{filter:brightness(1.07)}.btn-ghost{border-color:var(--line-soft);color:var(--ink);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--line)}.btn-danger{background:var(--danger);color:#fff}.form{flex-direction:column;gap:14px;display:flex}.form-photo{align-items:center;gap:16px;display:flex}.medallion-lg{cursor:pointer;border:0;width:96px;height:96px}.photo-overlay{color:#fff;opacity:0;background:#00000073;border-radius:50%;place-items:center;transition:opacity .15s;display:grid;position:absolute;inset:3px}.medallion-lg:hover .photo-overlay,.medallion-lg:focus-visible .photo-overlay{opacity:1}.form-photo-actions{flex-wrap:wrap;gap:8px;display:flex}.form-error{color:var(--danger);font-size:12px}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.form input,.form select,.form textarea{border:1px solid var(--line-soft);background:var(--input);width:100%;min-width:0;color:var(--ink);font:inherit;border-radius:10px;padding:9px 11px}.form textarea{resize:vertical;font-family:var(--font-serif);font-size:17px;line-height:1.45}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #d4af6a2e}.form select option{background:var(--surface)}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.form .check input{width:auto;accent-color:var(--gold)}.link-row{grid-template-columns:22px 120px 1fr 34px;align-items:center;gap:8px;display:grid}.link-row-icon{color:var(--gold);place-items:center;display:grid}.field .btn{align-self:flex-start}.form-actions{justify-content:flex-end;gap:8px;padding-top:6px;display:flex}@media (width<=760px){.topbar{flex-wrap:wrap;gap:10px;top:8px;left:8px;right:8px}.search{flex-basis:100%;order:3;max-width:none}.tools{margin-left:auto}.tool span{display:none}.family-name{font-size:17px}.panel{border-radius:22px 22px 0 0;width:auto;padding:22px 16px 28px;inset:30vh 0 0}.grid-2,.kin-list{grid-template-columns:1fr}.link-row{grid-template-columns:22px 1fr 34px}.link-row select{grid-column:2/4}.link-row input{grid-column:2}.react-flow__minimap,.has-panel .lineage-hint{display:none}}.react-flow__node-household{pointer-events:all!important}.deceased-mark{border:1.5px solid var(--gold);background:var(--card-b);width:26px;height:26px;color:var(--gold-2);font-family:var(--font-serif);border-radius:50%;place-items:center;font-size:17px;font-weight:700;line-height:1;display:grid;position:absolute;bottom:-2px;right:-2px}.medallion-xl .deceased-mark{width:34px;height:34px;font-size:22px;bottom:2px;right:2px}.legend{z-index:15;border:1px solid var(--line-soft);background:var(--glass);-webkit-backdrop-filter:blur(14px);width:250px;box-shadow:var(--shadow);border-radius:18px;padding:14px 16px 16px;animation:.2s ease-out slide-in;position:fixed;top:88px;left:16px}.legend header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.legend h3{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0;font-size:13px}.legend ul{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:10px;font-size:13px;display:flex}.legend li>svg,.legend-sym{flex:none;place-items:center;width:36px;display:grid}.legend-sym .deceased-mark{width:22px;height:22px;font-size:15px;position:static}.legend-text{font-family:var(--font-display);color:var(--gold);white-space:nowrap;font-size:10.5px}.legend-placeholder{border:1.5px dashed var(--line);width:24px;height:24px;color:var(--muted);font-family:var(--font-display);border-radius:50%;margin:0 6px;font-size:12px}.legend-me{color:var(--gold-2)}.legend-line path{stroke:var(--gold);stroke-width:2px}.legend-line.is-dashed path{stroke-dasharray:5 4}.relations{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.relation{border:1px solid var(--line-soft);background:var(--input);border-radius:14px;padding:10px 12px}.relation-head{align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.relation-fields{flex-wrap:wrap;gap:8px;display:flex}.relation-fields select,.relation-fields input{border:1px solid var(--line-soft);background:var(--input);color:var(--ink);font:inherit;border-radius:9px;padding:6px 9px;font-size:12.5px}.relation-fields select{flex-basis:100%}.relation-fields label{flex-direction:column;flex:1;gap:3px;min-width:130px;display:flex}.relation-fields label span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.relation-fields option{background:var(--surface)}.adopted-check{margin-bottom:14px;font-size:13px}.adopted-check input{accent-color:var(--gold)}@media (width<=760px){.legend{top:auto;bottom:16px;left:8px}}.card>*{flex-shrink:0}.card-kin{font-family:var(--font-serif);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:4px;font-size:14px;font-style:italic;line-height:1.1;overflow:hidden}.panel-kin{font-family:var(--font-serif);color:var(--gold);margin:6px 0 0;font-size:18px;font-style:italic}.panel-kin-new{font-family:var(--font-serif);color:var(--gold);margin:-8px 0 16px;font-size:17px;font-style:italic}.me-section{text-align:center}.me-section .link-btn:hover{color:var(--gold-2)}.relation-fields{border:0;min-width:0;margin:0;padding:0}.sync{transition:color .2s}.sync-saving{color:var(--gold)}.sync-offline{color:var(--danger)}.back-btn{text-decoration:none}.crest.is-static{cursor:default}.tool-select{appearance:none;font:inherit;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-repeat:no-repeat;background-size:5px 5px;max-width:170px;padding-right:26px;font-size:13px;font-weight:600}.tool-select option{background:var(--surface);color:var(--ink)}.tool:disabled{opacity:.4;cursor:not-allowed}.toast{z-index:40;background:var(--danger);color:#fff;box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:10px;padding:10px 16px;font-size:13px;display:flex;position:fixed;bottom:64px;left:50%;transform:translate(-50%)}.toast .link-btn{color:#fff}.page-loading{min-height:100vh;color:var(--muted);font-family:var(--font-serif);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:20px;display:flex}.btn-block{width:100%;padding:12px 18px;font-size:14px}.hint{color:var(--muted);font-size:12px}.auth-page{place-items:center;min-height:100vh;padding:24px 16px;display:grid;overflow-y:auto}.auth-card{border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--surface), var(--card-b));width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:24px;padding:36px 32px 28px}.auth-crest{justify-content:center;margin-bottom:14px;display:flex}.auth-card h1{text-align:center;font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-size:32px;font-weight:600}.auth-sub{text-align:center;color:var(--muted);margin:8px 0 24px;line-height:1.5}.auth-switch{text-align:center;color:var(--muted);margin:20px 0 0;font-size:13px}.auth-switch a,.home a{color:var(--gold)}.home{height:100vh;overflow-y:auto}.home-bar{justify-content:space-between;align-items:center;gap:16px;max-width:1080px;margin:0 auto;padding:18px 20px;display:flex}.home-brand{color:var(--gold);font-family:var(--font-display);letter-spacing:.04em;align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.home-brand span{color:var(--ink)}.home-user{align-items:center;gap:8px;display:flex}.muted-inline{color:var(--muted);margin-right:4px;font-size:13px}.home-main{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.home-main h1{font-family:var(--font-serif);letter-spacing:-.02em;margin:0;font-size:clamp(34px,5vw,48px);font-weight:600}.home-sub{color:var(--muted);margin:6px 0 28px}.tree-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));align-items:start;gap:16px;display:grid}.tree-card{border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--card-a), var(--card-b));box-shadow:var(--shadow);border-radius:20px;transition:border-color .15s,transform .15s;position:relative}.tree-card:hover{border-color:var(--line)}.tree-card-link{gap:16px;padding:20px;text-decoration:none;display:flex;color:inherit!important}.tree-card-crest{background:var(--input);border-radius:16px;flex:none;place-items:center;width:64px;height:64px;display:grid}.tree-card-crest img{object-fit:contain;max-width:54px;max-height:54px}.tree-card-body{flex-direction:column;gap:5px;min-width:0;display:flex}.tree-card-name{font-family:var(--font-serif);text-overflow:ellipsis;font-size:22px;font-weight:600;line-height:1.1;overflow:hidden}.tree-card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;font-size:12.5px;display:flex}.role{border:1px solid var(--line);color:var(--gold);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.role-owner{background:var(--gold-2);border-color:var(--gold-2);color:var(--card-b)}.tree-card-actions{text-align:right;padding:0 20px 14px}.tree-card-actions .link-btn:hover{color:var(--danger)}.new-tree{min-height:116px;box-shadow:none;color:var(--gold);cursor:pointer;background:0 0;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-weight:600;display:flex}.new-tree-form{padding:20px}.new-tree-form h3{font-family:var(--font-serif);margin:0;font-size:22px}.template-options .check{font-size:13.5px}.template-options input{accent-color:var(--gold)}@media (width<=760px){.tool-select{max-width:120px}.auth-card{padding:28px 20px 22px}}.link-editor{flex-direction:column;gap:12px;display:flex}.link-field{flex-direction:column;gap:5px;display:flex}.link-field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.link-field select{border:1px solid var(--line-soft);background:var(--input);color:var(--ink);font:inherit;border-radius:10px;padding:8px 10px;font-size:13px}.link-field select:focus{border-color:var(--gold);outline:none}.link-field option{background:var(--surface)}.chooser{border:1px dashed var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.chooser>span{color:var(--muted);flex-basis:100%}.relation-remove{margin-top:8px;padding:0}.relation-remove:hover:not(:disabled){color:var(--danger)}.relation-remove:disabled{opacity:.45;cursor:not-allowed}.react-flow__node-connectors{pointer-events:none!important}.connectors{display:block;overflow:visible}.connector{fill:none;stroke:var(--line);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;transition:opacity .25s,stroke .25s}.connector.is-adopted{stroke-dasharray:7 6}.connector.is-on{stroke:var(--gold-2);stroke-width:3px;filter:drop-shadow(0 0 5px #f3dca080)}.connector.is-dim{opacity:.14}:root[data-theme=light] .connector.is-on{filter:none}.react-flow__minimap-node.mm-hidden{display:none}.connector.is-half{stroke-dasharray:3 6;stroke-width:2px;opacity:.85}.connector.is-half.is-dim{opacity:.14}.legend-line.is-half path{stroke-dasharray:2 4}.fold-btn,.fold-pill{z-index:3;border:1px solid var(--line);background:var(--surface);color:var(--gold);cursor:pointer;font:600 12px/1 var(--font-ui);box-shadow:var(--shadow);place-items:center;display:grid;position:absolute}.fold-btn{opacity:0;border-radius:50%;width:22px;height:22px;transition:opacity .15s}.fold-children{font-size:15px;transform:translate(-50%,-50%)}.household:hover .fold-btn,.card:hover .fold-btn,.fold-btn:focus-visible{opacity:1}.fold-ancestors{top:8px;right:8px}.fold-pill{background:var(--gold-2);border-color:var(--gold-2);height:24px;color:var(--card-b);white-space:nowrap;border-radius:999px;padding:0 10px}.fold-down{transform:translate(-50%,-50%)}.fold-up{top:-12px;left:50%;transform:translate(-50%)}.fold-btn:hover,.fold-pill:hover{filter:brightness(1.08)}.view-actions{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:center;gap:8px;padding:14px 0 4px;display:flex}.view-actions+.panel-section{border-top:0}.share-anchor{position:relative}.share-panel{z-index:30;border:1px solid var(--line-soft);background:var(--surface);width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow);border-radius:18px;padding:16px 18px;position:absolute;top:calc(100% + 10px);right:0}.share-panel header{justify-content:space-between;align-items:center;display:flex}.share-panel h3{font-family:var(--font-serif);margin:0;font-size:22px}.share-panel section{border-bottom:1px solid var(--line-soft);padding:12px 0}.share-panel section:last-child{border-bottom:0;padding-bottom:0}.share-panel h4{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;font-size:12px}.share-panel .muted{margin:6px 0 10px}.share-actions{justify-content:space-between;margin-top:10px;display:flex}.share-actions .link-btn{padding:0}.danger-link:hover{color:var(--danger)}.member-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.member-list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.member-list .link-btn{color:var(--ink);padding:0;font-size:13.5px;text-decoration:none}.copy-link{flex-direction:column;gap:8px;display:flex}.copy-link input{border:1px solid var(--line-soft);background:var(--input);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:8px 10px;font-size:12.5px}.copy-link-actions{flex-wrap:wrap;gap:8px;display:flex}.copy-link-actions a{text-decoration:none}.access-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.access-row select{border:1px solid var(--line-soft);background:var(--input);min-width:180px;color:var(--ink);font:inherit;border-radius:10px;flex:1;padding:7px 9px;font-size:13px}.access-row option{background:var(--surface)}.access-member p{margin:0 0 8px}.account-badge{background:var(--gold-2);width:22px;height:22px;color:var(--card-b);border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;left:8px}.auth-card .btn-block{text-decoration:none}.forgot-link{align-self:flex-end;color:var(--muted)!important}.welcome{margin:8px 0 32px}.welcome h2{font-family:var(--font-serif);margin:0 0 16px;font-size:26px;font-weight:600}.welcome-options{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.welcome-card{border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--card-a), var(--card-b));box-shadow:var(--shadow);border-radius:20px;flex-direction:column;align-items:flex-start;gap:4px;padding:22px;display:flex}.welcome-card h3{font-family:var(--font-serif);margin:0;font-size:22px}.welcome-card p{color:var(--muted);flex:1;margin:4px 0 14px;line-height:1.5}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line-soft);background:var(--surface);width:100%;max-width:620px;max-height:calc(100vh - 32px);box-shadow:var(--shadow);border-radius:22px;padding:28px 28px 24px;position:relative;overflow-y:auto}.modal-close{position:absolute;top:14px;right:14px}.guide h2{font-family:var(--font-serif);margin:0 0 6px;font-size:30px}.guide section{border-bottom:1px solid var(--line-soft);padding:12px 0}.guide section:last-child{border-bottom:0}.guide h3{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;font-size:12px}.guide p,.guide li{margin:0;line-height:1.55}.guide ul{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.tips{z-index:12;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);width:360px;max-width:calc(100vw - 80px);box-shadow:var(--shadow);border-radius:18px;padding:16px 18px;animation:.3s ease-out slide-in;position:fixed;bottom:16px;left:64px}.tips h3{font-family:var(--font-serif);margin:0 24px 8px 0;font-size:19px}.tips ul{flex-direction:column;gap:5px;margin:0 0 12px;padding-left:18px;font-size:13px;line-height:1.45;display:flex}.tips-close{width:28px;height:28px;position:absolute;top:10px;right:10px}@media (width<=760px){.tips{width:auto;max-width:none;left:8px;right:8px}}.landing{height:100vh;overflow-y:auto}.landing-bar{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:16px;padding:14px max(20px,50% - 560px);display:flex;position:sticky;top:0}.landing-brand{font-family:var(--font-serif);letter-spacing:-.01em;align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.landing-bar nav{gap:8px;display:flex}.landing a.btn{text-decoration:none}.btn-lg{padding:13px 24px;font-size:15px}.landing section{max-width:1120px;margin:0 auto;padding:0 20px}.landing h2{font-family:var(--font-serif);letter-spacing:-.02em;text-align:center;margin:0 0 24px;font-size:clamp(28px,4vw,40px);font-weight:500}.landing-hero{grid-template-columns:1fr 1.05fr;align-items:center;gap:48px;display:grid;padding-top:64px!important;padding-bottom:80px!important}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 12px;font-size:12px;font-weight:600}.hero-text h1{font-family:var(--font-serif);letter-spacing:-.025em;margin:0;font-size:clamp(38px,5.4vw,62px);font-weight:500;line-height:1.04}.hero-sub{color:var(--muted);max-width:520px;margin:20px 0 28px;font-size:17px;line-height:1.6}.hero-cta{flex-wrap:wrap;gap:10px;display:flex}.hero-note{color:var(--muted);margin:16px 0 0;font-size:13px}.hero-visual{border:1px solid var(--line-soft);background:radial-gradient(circle at 1px 1px, var(--dots) 1.2px, transparent 0) 0 0 / 22px 22px, linear-gradient(180deg, var(--card-a), var(--surface-2));box-shadow:var(--shadow);border-radius:28px;padding:28px 12px;overflow-x:auto}.demo-tree{justify-content:center;min-width:520px;display:flex}.demo-tree ul{justify-content:center;margin:0;padding:22px 0 0;list-style:none;display:flex;position:relative}.demo-tree>ul{padding-top:0}.demo-tree li{flex-direction:column;align-items:center;padding:22px 6px 0;display:flex;position:relative}.demo-tree>ul>li{padding-top:0}.demo-tree li:before,.demo-tree li:after{content:"";border-top:2px solid var(--line);width:50%;height:22px;position:absolute;top:0;right:50%}.demo-tree li:after{border-left:2px solid var(--line);left:50%;right:auto}.demo-tree li:only-child:before,.demo-tree li:only-child:after,.demo-tree>ul>li:before,.demo-tree>ul>li:after{display:none}.demo-tree li:only-child{padding-top:22px}.demo-tree>ul>li:only-child{padding-top:0}.demo-tree li:first-child:before,.demo-tree li:last-child:after{border:0}.demo-tree li:last-child:before{border-right:2px solid var(--line);border-radius:0 8px 0 0}.demo-tree li:first-child:after{border-radius:8px 0 0}.demo-tree ul ul:before{content:"";border-left:2px solid var(--line);height:22px;position:absolute;top:0;left:50%}.demo-couple{align-items:center;gap:4px;display:flex}.demo-card{border:1px solid var(--line-soft);background:var(--card-a);width:92px;box-shadow:var(--shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:center;padding:10px 6px 9px;display:flex;position:relative}.demo-card.is-me{border-color:var(--me);box-shadow:0 0 0 3px #c0473a26, var(--shadow)}.demo-crown{color:var(--gold-2);position:absolute;top:-11px}.demo-medallion{border:2px solid var(--gold-2);width:44px;height:44px;font-family:var(--font-serif);color:var(--gold);background:radial-gradient(circle at 35% 30%,#fffdf7,#efe9d6);border-radius:50%;place-items:center;margin-bottom:6px;font-size:17px;display:grid;position:relative}.is-me .demo-medallion{border-color:var(--me)}.demo-dagger{border:1px solid var(--gold);background:var(--card-a);border-radius:50%;place-items:center;width:17px;height:17px;font-size:11px;display:grid;position:absolute;bottom:-4px;right:-5px}.demo-card strong{font-family:var(--font-serif);font-size:15px;font-weight:600}.demo-card em{font-family:var(--font-serif);color:var(--muted);font-size:12px}.demo-card small{letter-spacing:.04em;color:var(--gold);margin-top:2px;font-size:9.5px}.landing-features{padding-top:24px!important;padding-bottom:80px!important}.feature-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.feature{border:1px solid var(--line-soft);background:var(--card-a);box-shadow:var(--shadow);border-radius:20px;padding:24px}.feature-icon{background:var(--surface-2);width:46px;height:46px;color:var(--gold-2);border-radius:14px;place-items:center;margin-bottom:14px;display:grid}.feature h3{font-family:var(--font-serif);margin:0 0 8px;font-size:21px;font-weight:600}.feature p{color:var(--muted);margin:0;line-height:1.55}.landing-steps{padding-bottom:80px!important}.landing-steps ol{counter-reset:paso;grid-template-columns:repeat(3,1fr);gap:16px;margin:0;padding:0;list-style:none;display:grid}.landing-steps li{counter-increment:paso;border-top:2px solid var(--gold-2);color:var(--muted);padding:20px 22px;line-height:1.55}.landing-steps li:before{content:counter(paso);font-family:var(--font-serif);color:var(--gold-2);margin-bottom:8px;font-size:34px;display:block}.landing-steps strong{color:var(--ink)}.landing-final{text-align:center;border-top:1px solid var(--line-soft);padding:56px 20px 72px!important}.landing-final h2{margin-bottom:8px}.landing-final p{color:var(--muted);margin:0 0 22px}.landing-footer{border-top:1px solid var(--line-soft);max-width:1120px;color:var(--muted);justify-content:space-between;margin:0 auto;padding:20px;font-size:13px;display:flex}.landing-footer a{color:var(--gold)}@media (width<=900px){.landing-hero{grid-template-columns:1fr;gap:32px;padding-top:40px!important}.feature-grid,.landing-steps ol{grid-template-columns:1fr}}@media (width<=480px){.landing-bar{padding-top:calc(env(safe-area-inset-top) + 12px)!important}.landing-bar nav{gap:6px!important}.landing-bar nav .btn-sm{padding-left:12px;padding-right:12px}.hero-cta .btn{flex:1}.hero-visual{padding:20px 8px;overflow:hidden}.demo-tree{zoom:.62}}.theme-corner{position:fixed;top:16px;right:16px}.landing-bar nav{align-items:center}.surname-offer{border:1px solid var(--gold);background:var(--input);border-radius:16px;margin:16px 0 4px;padding:14px 16px;animation:.25s ease-out slide-in}.surname-offer h3{font-family:var(--font-serif);letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 4px;font-size:19px}.surname-offer .muted{margin:0 0 10px}.surname-offer ul{flex-direction:column;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.surname-offer .check{font-size:13.5px}.surname-offer .check input{accent-color:var(--gold)}.cropper-backdrop{z-index:60}.cropper-modal{border:1px solid var(--line-soft);background:var(--surface);width:100%;max-width:560px;max-height:calc(100vh - 32px);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;display:flex;overflow:hidden}.cropper-modal header,.cropper-modal footer{justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;display:flex}.cropper-modal footer{border-top:1px solid var(--line-soft);justify-content:flex-end}.cropper-modal h2{font-family:var(--font-serif);margin:0;font-size:24px;font-weight:500}.cropper-area{background:#1b1a17;height:min(60vh,420px);position:relative}.cropper-hint{color:var(--muted);text-align:center;margin:10px 20px 0;font-size:12.5px}.cropper-controls{flex-direction:column;gap:10px;padding:12px 20px 16px;display:flex}.cropper-controls label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);grid-template-columns:52px 1fr;align-items:center;gap:10px;font-size:12px;font-weight:600;display:grid}.cropper-controls input[type=range]{width:100%;accent-color:var(--gold-2)}.cropper-quick{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.form-photo-actions .btn:disabled{opacity:.5}.card.is-external{border:1.5px dashed var(--gold);background:linear-gradient(180deg, var(--surface-2), var(--card-b))}.card.is-external .medallion{opacity:.85}.external-badge{border:1px solid var(--gold);background:var(--card-a);width:22px;height:22px;color:var(--gold);border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;left:8px}.pill-link{color:var(--gold);border-style:solid}.link-chip span{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.link-request{z-index:14;border:1px solid var(--gold);background:var(--glass);-webkit-backdrop-filter:blur(14px);width:min(720px,100vw - 32px);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:14px;padding:12px 16px;font-size:13.5px;line-height:1.45;display:flex;position:fixed;top:88px;left:50%;transform:translate(-50%)}.link-request p{flex:1;margin:0}.link-request svg{vertical-align:-2px;color:var(--gold)}.link-request div{flex:none;gap:8px;display:flex}.link-actions{align-items:center;gap:8px;display:inline-flex}.fork h2{font-family:var(--font-serif);margin:0 0 6px;font-size:28px}.fork>.muted{margin:0 0 16px;line-height:1.5}.fork .field{margin-bottom:14px}.fork input[type=text],.fork .field>input{border:1px solid var(--line-soft);background:var(--input);color:var(--ink);font:inherit;border-radius:10px;padding:9px 11px}.fork-options{gap:8px}.fork-option{border:1px solid var(--line-soft);cursor:pointer;border-radius:14px;gap:10px;padding:12px 14px;font-size:14px;display:flex}.fork-option.is-on{border-color:var(--gold);background:var(--input)}.fork-option.is-disabled{opacity:.6;cursor:not-allowed}.fork-option input{accent-color:var(--gold-2);margin-top:3px}.fork-option small{color:var(--muted);margin-top:3px;line-height:1.4;display:block}.fork-connect{align-items:flex-start;margin:4px 0 8px;font-size:13.5px;line-height:1.45}.fork-connect input{accent-color:var(--gold-2);margin-top:3px}@media (width<=760px){.link-request{flex-direction:column;align-items:stretch;top:auto;bottom:16px}}.history>.muted{margin:-8px 0 12px;line-height:1.5}.history-filter{margin-bottom:8px}.history-list{margin:0;padding:0;list-style:none}.history-day{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:18px 0 8px;font-size:11px;font-weight:600}.history-item{border:1px solid var(--line-soft);background:var(--input);border-radius:14px;margin-bottom:8px;padding:12px 14px}.history-item.is-event{background:0 0;border-style:dashed}.history-item.is-reverted .history-lines{opacity:.55;text-decoration:line-through;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.history-meta{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.history-avatar{background:var(--gold-2);width:24px;height:24px;color:var(--card-b);font-family:var(--font-serif);border-radius:50%;place-items:center;font-size:13px;display:grid}.history-lines{flex-direction:column;gap:4px;margin:0;padding:0 0 0 4px;font-size:13.5px;line-height:1.45;list-style:none;display:flex}.history-details{color:var(--muted);margin:4px 0 0;padding-left:16px;font-size:12.5px}.history-undo{margin-top:8px;padding:0}.history-undo:hover{color:var(--gold-2)}.history-old{margin-top:8px;font-size:11.5px;display:block}.history-confirm{justify-content:flex-start;margin-top:8px}.history-more{margin:8px auto 0;display:flex}.admin .home-brand .back-btn{color:var(--ink)}.admin-stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:28px;display:grid}.admin-stat{border:1px solid var(--line-soft);background:var(--card-a);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:2px;padding:16px 18px;display:flex}.admin-stat span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.admin-stat strong{font-family:var(--font-serif);font-size:34px;font-weight:500;line-height:1.1}.admin-stat small{color:var(--muted);font-size:12px}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-tabs{border:1px solid var(--line-soft);background:var(--input);border-radius:999px;padding:4px;display:inline-flex}.admin-tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600}.admin-tabs button.is-on{background:var(--gold-2);color:var(--card-b)}.admin-search{max-width:320px;margin-left:0}.admin-table-wrap{border:1px solid var(--line-soft);background:var(--card-a);border-radius:16px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13.5px}.admin-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:12px 14px}.admin-table tr:last-child td{border-bottom:0}.admin-table td small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-tree-link{font-family:var(--font-serif);font-size:17px;font-weight:600;text-decoration:none;color:var(--gold-2)!important}.admin-tree-link:hover{text-decoration:underline}.admin-flags>*{margin:0 6px 6px 0;display:inline-block}.admin-chip,.home-user a.tool{text-decoration:none}.account{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px;display:grid}.account-card{border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--card-a), var(--card-b));box-shadow:var(--shadow);border-radius:20px;padding:24px}.account-card h2{font-family:var(--font-serif);margin:0;font-size:26px;font-weight:500}.account-card .muted{margin:0;line-height:1.5}.account-card .form-actions{align-items:center}.saved-ok{color:var(--gold);margin-right:auto;font-size:13px;font-weight:600}.account-forgot{font-size:13px}.account-link span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}@media (width<=760px){.account-link span{max-width:110px;display:inline}}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.gallery-thumb{aspect-ratio:1;border:1px solid var(--line-soft);background:var(--surface-2);cursor:pointer;border-radius:12px;padding:0;position:relative;overflow:hidden}.gallery-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .25s}.gallery-thumb:hover img{transform:scale(1.05)}.gallery-caption{color:#fff;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#0000,#0009);padding:14px 6px 5px;font-size:11px;line-height:1.2;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.gallery-thumb.is-doc{background:var(--card-a)}.gallery-thumb.is-doc .gallery-caption{color:var(--ink);text-align:center;background:0 0}.gallery-doc{height:100%;color:var(--gold);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding-bottom:14px;display:flex}.gallery-doc small{letter-spacing:.1em;font-size:10px;font-weight:700}.gallery-add{border-style:dashed;border-color:var(--line);color:var(--gold);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.lightbox{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a08d1;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.lightbox-body{background:var(--surface);border-radius:20px;grid-template-columns:minmax(0,1fr) 300px;width:min(1200px,100%);height:min(86vh,900px);display:grid;position:relative;overflow:hidden;box-shadow:0 30px 80px -30px #000000b3}.lightbox-close{z-index:2;background:var(--surface);position:absolute;top:12px;right:12px}.lightbox-media{background:#161512;place-items:center;min-height:0;display:grid;position:relative}.lightbox-media img{object-fit:contain;max-width:100%;max-height:100%}.lightbox-media iframe{background:#fff;border:0;width:100%;height:100%}.lightbox-nav{z-index:2;color:#23221d;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:44px;height:44px;font-size:28px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav.prev{left:12px}.lightbox-nav.next{right:12px}.lightbox-info{border-left:1px solid var(--line-soft);padding:56px 22px 22px;overflow-y:auto}.lightbox-count{color:var(--muted);margin:0 0 6px;font-size:12px}.lightbox-info h3{font-family:var(--font-serif);margin:0 0 4px;font-size:24px;font-weight:500;line-height:1.2}.lightbox-date{color:var(--gold);margin:0 0 12px;font-size:13px}.lightbox-desc{font-family:var(--font-serif);white-space:pre-wrap;margin:0 0 16px;font-size:16.5px;line-height:1.5}.lightbox-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lightbox-actions a{text-decoration:none}@media (width<=820px){.lightbox-body{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;height:92vh}.lightbox-info{border-left:0;border-top:1px solid var(--line-soft);max-height:40vh;padding-top:16px}}.invite-form{flex-direction:column;gap:8px;display:flex}.invite-form select,.invite-form input,.invite-form textarea{border:1px solid var(--line-soft);background:var(--input);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:8px 10px;font-size:13px}.invite-form textarea{resize:vertical}.invite-form option{background:var(--surface)}.sent-ok{color:var(--gold);margin:0 0 8px;font-size:13px;font-weight:600}.gallery-tagged{filter:drop-shadow(0 1px 2px #00000080);font-size:13px;line-height:1;position:absolute;top:4px;right:4px}.tag-layer{max-width:100%;max-height:100%;line-height:0;display:inline-block;position:relative}.tag-layer img{object-fit:contain;max-width:100%;max-height:min(86vh,900px);display:block}.tag-layer.is-tagging img{cursor:crosshair}.tag-marker{--r:32px;transform:translate(-50%, calc(var(--r) + 6px));cursor:pointer;opacity:0;background:0 0;border:0;padding:0;transition:opacity .15s;position:absolute}.tag-marker span{color:#fff;font:600 12px/1.4 var(--font-ui);white-space:nowrap;background:#012d1ceb;border-radius:999px;padding:3px 10px;transition:background .15s;display:block;box-shadow:0 2px 8px #00000059}.tag-layer:hover .tag-marker,.tag-layer.is-tagging .tag-marker,.tag-layer.show-all .tag-marker,.tag-marker.is-on{opacity:1}.tag-marker.is-on span{background:#a47b2c}.tag-layer.is-tagging .tag-marker:before,.tag-pending-ring{content:"";pointer-events:none;border:2px solid #ffffffe6;border-radius:50%;position:absolute;box-shadow:0 0 0 1px #00000059}.tag-layer.is-tagging .tag-marker:before{pointer-events:auto;width:calc(var(--r) * 2);height:calc(var(--r) * 2);left:calc(50% - var(--r));top:calc(-2 * var(--r) - 6px)}.tag-pending-ring{border-color:#d4af6a;transform:translate(-50%,-50%)}.tag-hint{color:#fff;pointer-events:none;background:#012d1ceb;border-radius:999px;margin:0;padding:6px 14px;font-size:13px;line-height:1.4;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.tag-picker{z-index:3;border:1px solid var(--line-soft);background:var(--surface);width:230px;box-shadow:var(--shadow);border-radius:14px;padding:10px;line-height:1.4;position:absolute;transform:translate(-50%,12px)}.tag-picker.is-inline{width:100%;position:static;transform:none}.tag-picker input{border:1px solid var(--line-soft);background:var(--input);width:100%;color:var(--ink);font:inherit;border-radius:9px;padding:7px 9px;font-size:13px}.tag-picker ul{max-height:200px;margin:6px 0;padding:0;list-style:none;overflow-y:auto}.tag-picker li button{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;border-radius:8px;padding:6px 8px;font-size:13px}.tag-picker li button:hover{background:var(--surface-2)}.tag-picker .link-btn{padding:0}.tag-list{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px;padding:12px 0;display:flex}.tag-list-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-basis:100%;font-size:11px;font-weight:600}.tag-chip{border:1px solid var(--line-soft);background:var(--input);border-radius:999px;align-items:center;font-size:13px;transition:border-color .15s;display:inline-flex}.tag-chip.is-on{border-color:var(--gold)}.tag-chip button{cursor:pointer;color:var(--ink);font:inherit;background:0 0;border:0}.tag-chip-name{padding:4px 4px 4px 10px}.tag-chip-name:hover{text-decoration:underline}.tag-chip-x{padding:4px 9px 4px 4px;color:var(--muted)!important}.tag-show-all{letter-spacing:0;text-transform:none;margin-left:10px;padding:0;font-size:11px;color:var(--gold)!important}.tag-size{color:var(--muted);grid-template-columns:auto 1fr;align-items:center;gap:8px;margin-top:8px;font-size:12px;display:grid}.tag-size input{accent-color:#a47b2c;width:100%}.lightbox-info h3.is-editable{cursor:text;border-radius:6px;margin-left:-4px;padding-left:4px;transition:background .15s}.lightbox-info h3.is-editable:hover{background:var(--input)}.lightbox-title-input{border:1px solid var(--gold);background:var(--input);width:100%;color:var(--ink);font-family:var(--font-serif);border-radius:8px;outline:none;margin:0 0 4px;padding:2px 6px;font-size:24px;font-weight:500;line-height:1.2;box-shadow:0 0 0 3px #d4af6a2e}.share-photos{border:1px solid var(--line-soft);border-radius:12px;align-items:flex-start;margin:0 0 10px;padding:10px 12px;font-size:13px}.share-photos input{accent-color:var(--gold-2);margin-top:3px}.share-photos small{color:var(--muted);margin-top:2px;display:block}.gallery-head{justify-content:space-between}.gallery-more-link{font-family:var(--font-ui);letter-spacing:0;text-transform:none;padding:0;font-size:12px;color:var(--gold)!important}.gallery-more{place-items:center;display:grid}.gallery-more img{filter:blur(2px)brightness(.55);position:absolute;inset:0}.gallery-more span{color:#fff;text-shadow:0 1px 3px #00000080;flex-direction:column;align-items:center;display:flex;position:relative}.gallery-more strong{font-family:var(--font-serif);font-size:22px;line-height:1}.gallery-more small{font-size:11px;font-weight:600}.gallery-more:not(:has(img)) span{color:var(--gold);text-shadow:none}.gbrowser-backdrop{z-index:65;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0899;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gbrowser{border:1px solid var(--line-soft);background:var(--surface);border-radius:24px;flex-direction:column;width:min(1180px,100%);height:min(92vh,1000px);animation:.25s ease-out slide-in;display:flex;overflow:hidden;box-shadow:0 30px 80px -30px #0009}.gbrowser-head{justify-content:space-between;align-items:center;gap:16px;padding:20px 24px 12px;display:flex}.gbrowser-head h2{font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-size:30px;font-weight:500}.gbrowser-head p{color:var(--muted);margin:2px 0 0;font-size:13px}.gbrowser-head-actions{align-items:center;gap:10px;display:flex}.gbrowser-filters{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:0 24px 14px;display:flex}.gbrowser-filters select,.gbrowser-filters input{border:1px solid var(--line-soft);background:var(--input);height:34px;color:var(--ink);font:inherit;border-radius:999px;padding:0 10px;font-size:13px}.gbrowser-filters option{background:var(--surface)}.gb-search{flex:1;min-width:180px}.gb-years{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.gb-years input{text-align:center;width:74px}.seg{border:1px solid var(--line-soft);background:var(--input);border-radius:999px;padding:3px;display:inline-flex}.seg button{height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 12px;font-size:12.5px;font-weight:600}.seg button.is-on{background:var(--gold-2);color:var(--card-b)}.gbrowser-body{flex:1;padding:8px 24px 28px;overflow-y:auto}.gbrowser-empty{text-align:center;margin-top:40px}.gbrowser-group{z-index:1;background:linear-gradient(var(--surface) 75%, transparent);font-family:var(--font-serif);color:var(--gold-2);margin:0 -24px;padding:14px 24px 8px;font-size:20px;font-weight:500;position:sticky;top:-8px}.gbrowser-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-items:start;gap:14px;margin-top:6px;display:grid}.gb-card{border:1px solid var(--line-soft);background:var(--card-a);box-shadow:var(--shadow);text-align:left;cursor:pointer;border-radius:16px;flex-direction:column;padding:0;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.gb-card:hover{border-color:var(--line);transform:translateY(-3px)}.gb-media{aspect-ratio:4/3;background:var(--surface-2);display:block;position:relative;overflow:hidden}.gb-media img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.gb-media.is-doc{background:linear-gradient(160deg, var(--card-a), var(--surface-2));place-items:center;display:grid}.gb-media .gallery-doc{padding:0}.gb-text{flex-direction:column;gap:2px;padding:10px 12px 12px;display:flex}.gb-text strong{font-family:var(--font-serif);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;line-height:1.2;overflow:hidden}.gb-text small{color:var(--muted);font-size:12px}.gb-origin{color:var(--gold)!important}@media (width<=700px){.gbrowser-backdrop{padding:0}.gbrowser{border-radius:0;height:100vh}.gbrowser-grid{grid-template-columns:repeat(2,1fr);gap:10px}}select:not(.tool-select){appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%238a8573' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.75 6 6.25l4.5-4.5'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:36px!important}select:not(.tool-select):focus-visible{border-color:var(--gold);outline:none}.gb-origin.is-own{color:var(--muted)!important}html{-webkit-tap-highlight-color:transparent}button,a,select,input,label{touch-action:manipulation}.sheet-handle{display:none}.panel-top{z-index:3;position:absolute;top:14px;right:14px}.panel-top .panel-close{position:static}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}.dock{z-index:15;left:50%;bottom:calc(env(safe-area-inset-bottom) + 12px);border:1px solid var(--line-soft);background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.4);box-shadow:var(--shadow), 0 10px 30px -12px #00000040;border-radius:24px;gap:2px;padding:5px;transition:opacity .2s,transform .3s cubic-bezier(.2,.9,.25,1);display:flex;position:fixed;transform:translate(-50%)}.has-panel .dock{opacity:0;pointer-events:none;transform:translate(-50%,24px)}.dock button{width:76px;height:56px;color:var(--gold);cursor:pointer;background:0 0;border:0;border-radius:19px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 4px;font-size:11.5px;font-weight:600;transition:background .15s,transform .15s;display:flex;position:relative}.dock button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.dock button:active{background:var(--input);transform:scale(.94)}.dock button.is-active{background:var(--btn-bg);color:var(--btn-ink)}.dock button:disabled{opacity:.4}.dock-dot{border:2px solid var(--surface);background:var(--me);border-radius:50%;width:8px;height:8px;position:absolute;top:9px;right:22px}.msheet-backdrop{z-index:40;background:#14161266;align-items:flex-end;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.msheet{width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 28px);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);transform:translateY(var(--drag,0px));border-radius:24px 24px 0 0;flex-direction:column;transition:transform .32s cubic-bezier(.2,.9,.25,1);animation:.34s cubic-bezier(.2,.9,.25,1) sheet-up;display:flex;box-shadow:0 -10px 40px -10px #00000059}.msheet.is-tall{height:calc(100dvh - env(safe-area-inset-top) - 28px)}.msheet-head{touch-action:none;grid-template-columns:34px 1fr 34px;align-items:center;padding:18px 14px 10px;display:grid;position:relative}.msheet-head h3{text-align:center;font-family:var(--font-display);grid-column:2;margin:0;font-size:19px;font-weight:500}.msheet-head .sheet-handle{position:absolute;top:7px;left:50%;transform:translate(-50%)}.msheet-body{overscroll-behavior:contain;flex:1;min-height:0;padding:2px 14px 22px;overflow-y:auto}.msheet-note{color:var(--muted);margin:0 4px 14px;font-size:13.5px;line-height:1.45}.mdir-search{z-index:1;border:1px solid var(--line-soft);background:var(--surface-2);height:46px;box-shadow:0 -6px 0 6px var(--surface);color:var(--muted);border-radius:14px;align-items:center;gap:10px;margin-bottom:6px;padding:0 14px;display:flex;position:sticky;top:0}.mdir-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:16px}.mdir-clear{background:var(--line-soft);width:26px;height:26px;color:var(--ink);border:0;border-radius:50%;place-items:center;display:grid}.mdir-group h4{color:var(--muted);letter-spacing:.08em;margin:14px 8px 2px;font-size:12px;font-weight:700}.mdir-row,.maction{width:100%;min-height:58px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:8px;display:flex}.mdir-row:active,.maction:active{background:var(--surface-2)}.mdir-row.is-me{background:var(--surface-2);margin-top:4px}.mdir-row>svg{color:var(--muted);opacity:.6;flex:none}.mavatar{border:1.5px solid var(--gold-3);background:var(--surface-2);width:42px;height:42px;color:var(--gold);font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:15px;display:grid;overflow:hidden}.is-me .mavatar{border-color:var(--me)}.mavatar img{object-fit:cover;width:100%;height:100%}.mdir-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mdir-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-weight:600;overflow:hidden}.mdir-text strong em{color:var(--muted);font-weight:400}.mdir-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mdir-empty{color:var(--muted);text-align:center;margin:40px 0}.msurnames{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.msurname{border:1px solid var(--line-soft);background:var(--input);height:42px;color:var(--ink);cursor:pointer;border-radius:999px;padding:0 16px;font-size:15px;font-weight:600}.msurname small{color:var(--muted);margin-left:4px;font-weight:500}.msurname.is-active{background:var(--btn-bg);color:var(--btn-ink);border-color:#0000}.msurname.is-active small{color:inherit;opacity:.75}.mactions{flex-direction:column;gap:2px;display:flex}.maction-icon{background:var(--surface-2);width:42px;height:42px;color:var(--gold);border-radius:13px;flex:none;place-items:center;display:grid}.maction.is-active .maction-icon{background:var(--btn-bg);color:var(--btn-ink)}.maction:disabled{opacity:.5}@media (width<=760px){input,select,textarea,.form input,.form select,.form textarea{font-size:16px}.btn{min-height:42px}.btn-sm{min-height:36px}.icon-btn{width:38px;height:38px}.topbar{top:calc(env(safe-area-inset-top) + 8px);border-radius:20px;flex-wrap:nowrap;padding:7px 12px 7px 8px;left:10px;right:10px}.topbar .brand{flex:1;gap:8px}.topbar .brand>div:last-child{flex:1;min-width:0}.topbar .crest{width:38px;height:38px}.family-name{text-overflow:ellipsis;width:100%;max-width:100%;font-size:19px}.stats{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.lineage-hint,.has-panel .lineage-hint{left:50%;bottom:calc(env(safe-area-inset-bottom) + 84px);text-overflow:ellipsis;max-width:calc(100vw - 32px);overflow:hidden}.legend{top:auto;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 84px);width:auto}.tips,.link-request{top:auto;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 84px);width:auto;transform:none}.toast{bottom:calc(env(safe-area-inset-bottom) + 90px);max-width:calc(100vw - 32px)}.panel.is-sheet{top:calc(env(safe-area-inset-top) + 10px);width:auto;padding:0 18px calc(30px + env(safe-area-inset-bottom));overscroll-behavior:contain;transform:translateY(var(--drag,0px));border-bottom:0;border-radius:24px 24px 0 0;transition:transform .36s cubic-bezier(.2,.9,.25,1);animation:.38s cubic-bezier(.2,.9,.25,1) sheet-up;bottom:0;left:0;right:0;box-shadow:0 -12px 40px -14px #00000059}.panel.sheet-peek{touch-action:none;transform:translateY(calc(100% - 50dvh + var(--drag,0px)));overflow:hidden}.panel-top.sheet-grab,.is-sheet .panel-top{background:linear-gradient(var(--surface) 75%, transparent);touch-action:none;justify-content:center;height:30px;margin:0 -18px;display:flex;position:sticky;top:0}.is-sheet .sheet-handle,.msheet .sheet-handle{background:var(--line);opacity:.6;border-radius:3px;width:40px;height:5px;margin-top:8px;display:block}.is-sheet .panel-close{position:absolute;top:10px;right:12px}.is-sheet .panel-hero{padding-top:0}.is-sheet .medallion-xl{width:112px;height:112px}.is-sheet .medallion-xl .monogram{font-size:36px}.is-sheet .panel-name{font-size:28px}.is-sheet .panel-title{margin-top:4px}.is-sheet .form-actions{z-index:2;bottom:calc(-30px - env(safe-area-inset-bottom));padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft);background:var(--surface);margin:8px -18px 0;position:sticky}.is-sheet .form-actions .btn{flex:1}.share-panel{z-index:45;overscroll-behavior:contain;width:auto;max-width:none;max-height:86dvh;padding:18px 18px calc(24px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;animation:.34s cubic-bezier(.2,.9,.25,1) sheet-up;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -12px 40px -10px #0006}}@media (hover:none){.hide-touch{display:none}}@media (width<=760px){.lightbox{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0d0d0b;padding:0}.lightbox-body{width:100%;height:100dvh;box-shadow:none;border-radius:0;grid-template-rows:minmax(0,1fr) auto}.lightbox-media{padding-top:env(safe-area-inset-top);touch-action:pan-y pinch-zoom;background:#0d0d0b}.lightbox-close{top:calc(env(safe-area-inset-top) + 10px);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1414128c;border-color:#ffffff40}.lightbox-nav{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14141273;width:38px;height:38px;font-size:24px}.lightbox-nav.prev{left:8px}.lightbox-nav.next{right:8px}.lightbox-info{max-height:44dvh;padding:16px 18px calc(18px + env(safe-area-inset-bottom));background:var(--surface);border-top:0;border-radius:20px 20px 0 0;margin-top:-16px;position:relative}.lightbox-info h3{font-size:22px}.gbrowser{height:100dvh}.gbrowser-head{padding:calc(env(safe-area-inset-top) + 14px) 16px 10px}.gbrowser-head h2{font-size:24px;line-height:1.15}.gbrowser-filters{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding:0 16px 12px;overflow-x:auto}.gbrowser-filters::-webkit-scrollbar{display:none}.gbrowser-filters>*{flex:none}.gbrowser-filters .gb-search{width:190px}.gbrowser-body{padding:12px 12px calc(20px + env(safe-area-inset-bottom))!important}.gb-card strong{font-size:15px}}.account-avatar{display:none}@media (width<=760px){.home-bar{z-index:5;padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;background:linear-gradient(var(--bg) 70%, transparent);position:sticky;top:0}.home-user{gap:6px}.home-user .tool{justify-content:center;width:40px;height:40px;padding:0}.account-link span{display:none!important}.account-avatar{background:var(--btn-bg);width:100%;height:100%;color:var(--btn-ink);font-family:var(--font-ui);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:13px;font-style:normal;font-weight:700;display:grid}.home-user .account-link{border:0}.home-main{padding-left:16px!important;padding-right:16px!important;padding-bottom:calc(32px + env(safe-area-inset-bottom))!important}.home-main h1{font-size:34px}.modal-backdrop{place-items:end stretch;padding:0}.modal,.cropper-modal{max-width:none;max-height:calc(100dvh - env(safe-area-inset-top) - 20px);padding-bottom:calc(20px + env(safe-area-inset-bottom));border-bottom:0;border-radius:24px 24px 0 0;animation:.34s cubic-bezier(.2,.9,.25,1) sheet-up}.lightbox-media{overflow:hidden}.tag-picker{z-index:80;border-radius:18px;width:auto;padding:12px;animation:.15s ease-out fade-in;position:fixed;right:12px;transform:none;box-shadow:0 18px 50px -12px #0000008c;top:calc(env(safe-area-inset-top) + 58px)!important;left:12px!important}.tag-picker ul{max-height:168px}.tag-picker li button{min-height:40px}}@media (width>=761px) and (width<=1180px){.tools .tool>span{display:none}.tools .tool{padding:0 10px}.tools{gap:4px}.search{min-width:150px}.topbar .brand>div:last-child{min-width:0}.family-name{text-overflow:ellipsis;max-width:100%}.stats{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}.install-hint{border:1px solid var(--line-soft);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;align-items:flex-start;gap:14px;margin:4px 0 22px;padding:14px 44px 14px 14px;animation:.3s ease-out fade-in;display:flex;position:relative}.install-hint img{border-radius:12px;flex:none;width:52px;height:52px}.install-hint strong{font-family:var(--font-display);font-size:17px;font-weight:500;display:block}.install-hint p{color:var(--muted);margin:3px 0 0;font-size:13.5px;line-height:1.45}.install-hint p svg{vertical-align:-2px;color:var(--gold)}.install-hint b{color:var(--ink);font-weight:600}.install-hint .btn{margin-top:10px}.install-close{position:absolute;top:10px;right:10px;width:30px!important;height:30px!important}
