[data-family-tree-root]{--ft-bg:#f6f3ec;--ft-bg-dots:#d9d2c3;--ft-surface:#fff;--ft-surface-2:#f1ede4;--ft-surface-3:#e7e1d4;--ft-border:#d9d2c4;--ft-border-strong:#b9b0a0;--ft-text:#1d262b;--ft-text-muted:#5a6670;--ft-primary:#1f6f5f;--ft-primary-strong:#175446;--ft-primary-soft:#dcefe7;--ft-on-primary:#fff;--ft-accent:#d98c2b;--ft-accent-soft:#fbeedb;--ft-danger:#b4323a;--ft-danger-soft:#fbe7e8;--ft-success:#2e7d4f;--ft-success-soft:#e0f3e7;--ft-female:#c2507a;--ft-female-soft:#fbe3ec;--ft-male:#2f6fb3;--ft-male-soft:#dfeafa;--ft-other:#7a5bb8;--ft-other-soft:#ebe3fa;--ft-neutral:#6b7a85;--ft-neutral-soft:#e6ebee;--ft-edge:#b2a893;--ft-edge-couple:#d98c2b;--ft-shadow:0 10px 30px #1d262b1f;--ft-shadow-lg:0 24px 60px #1d262b33;--ft-ring:0 0 0 4px #d98c2b73;--ft-radius:16px;--ft-radius-lg:24px;--ft-topbar-h:64px;--ft-bottombar-h:68px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:var(--ft-bg);min-height:100dvh;color:var(--ft-text);font-family:var(--font-sans),ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;line-height:1.45}:root[data-ft-theme=dark] [data-family-tree-root]{--ft-bg:#151a1d;--ft-bg-dots:#2b3338;--ft-surface:#1f262a;--ft-surface-2:#273035;--ft-surface-3:#313c42;--ft-border:#3a454c;--ft-border-strong:#566470;--ft-text:#eef2f4;--ft-text-muted:#a8b4bd;--ft-primary:#5fc3a5;--ft-primary-strong:#86d9c0;--ft-primary-soft:#1e3a33;--ft-on-primary:#0b1b16;--ft-accent:#f0a84a;--ft-accent-soft:#3d2f19;--ft-danger:#f08a90;--ft-danger-soft:#3d2224;--ft-success:#7fd49a;--ft-success-soft:#1f3a2a;--ft-female:#f08fb4;--ft-female-soft:#44242f;--ft-male:#86b6ee;--ft-male-soft:#1f3148;--ft-other:#bb9ff0;--ft-other-soft:#32294c;--ft-neutral:#a3afb8;--ft-neutral-soft:#2d373d;--ft-edge:#5b6771;--ft-edge-couple:#f0a84a;--ft-shadow:0 10px 30px #0006;--ft-shadow-lg:0 24px 60px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-ft-theme=light]) [data-family-tree-root]{--ft-bg:#151a1d;--ft-bg-dots:#2b3338;--ft-surface:#1f262a;--ft-surface-2:#273035;--ft-surface-3:#313c42;--ft-border:#3a454c;--ft-border-strong:#566470;--ft-text:#eef2f4;--ft-text-muted:#a8b4bd;--ft-primary:#5fc3a5;--ft-primary-strong:#86d9c0;--ft-primary-soft:#1e3a33;--ft-on-primary:#0b1b16;--ft-accent:#f0a84a;--ft-accent-soft:#3d2f19;--ft-danger:#f08a90;--ft-danger-soft:#3d2224;--ft-success:#7fd49a;--ft-success-soft:#1f3a2a;--ft-female:#f08fb4;--ft-female-soft:#44242f;--ft-male:#86b6ee;--ft-male-soft:#1f3148;--ft-other:#bb9ff0;--ft-other-soft:#32294c;--ft-neutral:#a3afb8;--ft-neutral-soft:#2d373d;--ft-edge:#5b6771;--ft-edge-couple:#f0a84a;--ft-shadow:0 10px 30px #0006;--ft-shadow-lg:0 24px 60px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}[data-family-tree-root] h1,[data-family-tree-root] h2,[data-family-tree-root] h3,[data-family-tree-root] h4{letter-spacing:-.01em;margin:0;font-family:inherit;font-weight:800;line-height:1.2}[data-family-tree-root] p{margin:0}[data-family-tree-root] :focus-visible{outline:3px solid var(--ft-accent);outline-offset:2px}[data-family-tree-root] a{color:var(--ft-primary);text-underline-offset:3px;text-decoration:underline}[data-family-tree-root] a.ft-btn,[data-family-tree-root] a.ft-icon-btn,[data-family-tree-root] a.ft-menu__item,[data-family-tree-root] a.ft-bottombar__item,[data-family-tree-root] a.ft-topbar__brand{color:var(--ft-text);text-decoration:none}[data-family-tree-root] a.ft-btn--primary{color:var(--ft-on-primary)}[data-family-tree-root] a.ft-btn--danger{color:var(--ft-danger)}[data-family-tree-root] a.ft-bottombar__item{color:var(--ft-text-muted)}.ft-visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.ft-muted{color:var(--ft-text-muted)}.ft-small{font-size:.9rem}.ft-btn{appearance:none;background:var(--ft-surface-2);min-height:50px;color:var(--ft-text);font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:1rem;font-weight:700;line-height:1.2;text-decoration:none;transition:transform .12s,background-color .12s,border-color .12s,box-shadow .12s;display:inline-flex}.ft-btn:hover{background:var(--ft-surface-3)}.ft-btn:active{transform:scale(.97)}.ft-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.ft-btn--primary{background:var(--ft-primary);color:var(--ft-on-primary)}.ft-btn--primary:hover{background:var(--ft-primary-strong)}.ft-btn--secondary{background:var(--ft-surface);border-color:var(--ft-border-strong)}.ft-btn--secondary:hover{background:var(--ft-surface-2)}.ft-btn--ghost{background:0 0}.ft-btn--ghost:hover{background:var(--ft-surface-2)}.ft-btn--danger{background:var(--ft-danger-soft);color:var(--ft-danger)}.ft-btn--danger:hover,.ft-btn--danger-solid{background:var(--ft-danger);color:#fff}.ft-btn--lg{border-radius:16px;min-height:58px;padding:0 26px;font-size:1.1rem}.ft-btn--sm{border-radius:12px;min-height:42px;padding:0 14px;font-size:.95rem}.ft-btn--block{width:100%}.ft-icon-btn{appearance:none;width:48px;height:48px;color:var(--ft-text);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:14px;justify-content:center;align-items:center;transition:background-color .12s,transform .12s;display:inline-flex}.ft-icon-btn:hover{background:var(--ft-surface-2)}.ft-icon-btn:active{transform:scale(.95)}.ft-icon-btn--solid{background:var(--ft-surface);border-color:var(--ft-border);box-shadow:var(--ft-shadow)}.ft-icon-btn--solid:hover{background:var(--ft-surface-2)}.ft-choice{border-radius:var(--ft-radius);border:2px solid var(--ft-border);background:var(--ft-surface);width:100%;min-height:76px;color:var(--ft-text);text-align:left;font:inherit;cursor:pointer;align-items:center;gap:16px;padding:14px 16px;transition:border-color .12s,background-color .12s,transform .12s;display:flex}.ft-choice:hover{border-color:var(--ft-primary);background:var(--ft-primary-soft)}.ft-choice:active{transform:scale(.985)}.ft-choice__icon{background:var(--ft-primary-soft);width:48px;height:48px;color:var(--ft-primary);border-radius:14px;flex:none;place-items:center;display:grid}.ft-choice__title{font-size:1.05rem;font-weight:800}.ft-choice__hint{color:var(--ft-text-muted);font-size:.9rem}.ft-segment{background:var(--ft-surface-2);border-radius:14px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;max-width:100%;padding:4px;display:inline-grid}.ft-field>.ft-segment{width:100%;display:grid}.ft-segment__item{appearance:none;min-width:0;min-height:42px;color:var(--ft-text-muted);font:inherit;cursor:pointer;text-align:center;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:6px 10px;font-weight:700;line-height:1.15;display:inline-flex}.ft-segment__item[aria-pressed=true],.ft-segment__item[aria-checked=true]{background:var(--ft-surface);color:var(--ft-text);box-shadow:0 2px 8px #0000001f}.ft-field{gap:6px;display:grid}.ft-label{font-size:.95rem;font-weight:800}.ft-hint{color:var(--ft-text-muted);font-size:.88rem}.ft-input,.ft-textarea,.ft-select{border:2px solid var(--ft-border-strong);background:var(--ft-surface);width:100%;min-height:54px;color:var(--ft-text);font:inherit;border-radius:14px;padding:12px 14px;font-size:1.05rem;transition:border-color .12s}.ft-input::-moz-placeholder{color:var(--ft-text-muted);opacity:.8}.ft-textarea::-moz-placeholder{color:var(--ft-text-muted);opacity:.8}.ft-input::placeholder,.ft-textarea::placeholder{color:var(--ft-text-muted);opacity:.8}.ft-input:focus,.ft-textarea:focus,.ft-select:focus{border-color:var(--ft-primary);box-shadow:0 0 0 4px var(--ft-primary-soft);outline:none}.ft-input[aria-invalid=true]{border-color:var(--ft-danger)}.ft-textarea{resize:vertical;min-height:110px;line-height:1.5}.ft-input-wrap{position:relative}.ft-input-wrap .ft-input{padding-right:56px}.ft-input-wrap__btn{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.ft-error{background:var(--ft-danger-soft);color:var(--ft-danger);border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;font-weight:600;display:flex}.ft-notice{background:var(--ft-accent-soft);color:var(--ft-text);border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.ft-switch{border:2px solid var(--ft-border);background:var(--ft-surface);cursor:pointer;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:8px 14px;font-weight:700;display:flex}.ft-switch__track{background:var(--ft-border-strong);border-radius:999px;flex:none;width:52px;height:30px;transition:background-color .15s;position:relative}.ft-switch__thumb{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000004d}.ft-switch[aria-checked=true] .ft-switch__track{background:var(--ft-primary)}.ft-switch[aria-checked=true] .ft-switch__thumb{transform:translate(22px)}.ft-card{background:var(--ft-surface);border:1px solid var(--ft-border);border-radius:var(--ft-radius-lg);box-shadow:var(--ft-shadow)}.ft-chip{background:var(--ft-neutral-soft);min-height:30px;color:var(--ft-neutral);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 12px;font-size:.85rem;font-weight:800;display:inline-flex}.ft-chip--success{background:var(--ft-success-soft);color:var(--ft-success)}.ft-chip--warning{background:var(--ft-accent-soft);color:var(--ft-accent)}.ft-chip--danger{background:var(--ft-danger-soft);color:var(--ft-danger)}.ft-chip--primary{background:var(--ft-primary-soft);color:var(--ft-primary)}.ft-avatar{letter-spacing:.02em;background:var(--ft-neutral-soft);width:46px;height:46px;color:var(--ft-neutral);border-radius:50%;flex:none;place-items:center;font-size:1rem;font-weight:800;display:grid}.ft-avatar--lg{width:72px;height:72px;font-size:1.5rem}.ft-avatar--female{background:var(--ft-female-soft);color:var(--ft-female)}.ft-avatar--male{background:var(--ft-male-soft);color:var(--ft-male)}.ft-avatar--other{background:var(--ft-other-soft);color:var(--ft-other)}.ft-shell{flex-direction:column;min-height:100dvh;display:flex;position:relative}.ft-topbar{z-index:30;height:var(--ft-topbar-h);padding:0 12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));background:color-mix(in srgb,var(--ft-surface)88%,transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--ft-border);align-items:center;gap:8px;display:flex;position:sticky;top:0}.ft-topbar__brand{align-items:center;gap:10px;min-width:0;font-size:1.05rem;font-weight:800;display:flex}.ft-topbar__brand span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ft-topbar__logo{background:var(--ft-primary);width:38px;height:38px;color:var(--ft-on-primary);border-radius:12px;flex:none;place-items:center;display:grid}.ft-topbar__spacer{flex:1}.ft-main{flex:1;min-height:0;position:relative}.ft-bottombar{z-index:30;min-height:var(--ft-bottombar-h);padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--ft-surface)92%,transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--ft-border);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.ft-bottombar__item{appearance:none;min-height:var(--ft-bottombar-h);color:var(--ft-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:.8rem;font-weight:800;display:flex;position:relative}.ft-bottombar__item[aria-current=page]{color:var(--ft-primary)}.ft-badge{background:var(--ft-danger);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.75rem;font-weight:800;display:grid;position:absolute;top:8px;right:calc(50% - 26px)}.ft-has-bottombar{padding-bottom:calc(var(--ft-bottombar-h) + env(safe-area-inset-bottom))}@media (min-width:900px){.ft-bottombar{display:none}.ft-has-bottombar{padding-bottom:0}.ft-canvas-controls{bottom:12px}}.ft-desktop-only{display:none}@media (min-width:900px){.ft-desktop-only{display:inline-flex}.ft-mobile-only{display:none!important}}.ft-canvas{touch-action:none;cursor:grab;background-color:var(--ft-bg);background-image:radial-gradient(var(--ft-bg-dots)1.2px,transparent 1.3px);-webkit-user-select:none;user-select:none;background-size:26px 26px;position:absolute;inset:0;overflow:hidden}.ft-canvas--dragging{cursor:grabbing}.ft-layer{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.ft-layer--animated{transition:transform .38s cubic-bezier(.2,.8,.2,1)}.ft-edges{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.ft-edges path{fill:none;stroke:var(--ft-edge);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.ft-edges path.ft-edge--couple{stroke:var(--ft-edge-couple);stroke-width:3px}.ft-node{border:2px solid var(--ft-border);background:var(--ft-surface);width:176px;height:92px;color:var(--ft-text);text-align:left;font:inherit;cursor:pointer;border-radius:18px;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative;box-shadow:0 4px 14px #00000014}.ft-node:hover{border-color:var(--ft-border-strong);box-shadow:0 8px 22px #00000024}.ft-node--female{border-color:color-mix(in srgb,var(--ft-female)45%,var(--ft-border))}.ft-node--male{border-color:color-mix(in srgb,var(--ft-male)45%,var(--ft-border))}.ft-node--other{border-color:color-mix(in srgb,var(--ft-other)45%,var(--ft-border))}.ft-node--focus{border-color:var(--ft-primary);box-shadow:0 0 0 5px var(--ft-primary-soft),0 10px 26px #00000029;border-width:3px}.ft-node--selected{box-shadow:var(--ft-ring),0 10px 26px #00000029}.ft-node--deceased .ft-avatar{filter:saturate(.3)}.ft-node__body{gap:2px;min-width:0;display:grid}.ft-node__name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.98rem;font-weight:800;line-height:1.2;display:-webkit-box;overflow:hidden}.ft-node__meta{color:var(--ft-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.ft-node__add{background:var(--ft-primary);width:32px;height:32px;color:var(--ft-on-primary);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-14px;right:-14px;box-shadow:0 3px 8px #00000040}.ft-canvas-controls{right:12px;bottom:calc(12px + var(--ft-bottombar-h) + env(safe-area-inset-bottom));z-index:5;gap:8px;display:grid;position:absolute}.ft-canvas-legend{z-index:5;background:color-mix(in srgb,var(--ft-surface)85%,transparent);border:1px solid var(--ft-border);color:var(--ft-text-muted);border-radius:12px;flex-wrap:wrap;gap:8px 14px;padding:8px 12px;font-size:.82rem;font-weight:700;display:flex;position:absolute;bottom:12px;left:12px}.ft-canvas-legend i{border-top:3px solid var(--ft-edge);vertical-align:middle;border-radius:2px;width:22px;height:0;margin-right:6px;display:inline-block}.ft-canvas-legend i.couple{border-color:var(--ft-edge-couple)}.ft-fab{z-index:6;box-shadow:var(--ft-shadow-lg);position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.ft-list{gap:8px;display:grid}.ft-row{border-radius:var(--ft-radius);border:1px solid var(--ft-border);background:var(--ft-surface);width:100%;min-height:70px;color:var(--ft-text);text-align:left;font:inherit;cursor:pointer;align-items:center;gap:14px;padding:10px 14px;transition:background-color .12s,border-color .12s;display:flex}.ft-row:hover{background:var(--ft-surface-2);border-color:var(--ft-border-strong)}.ft-row__body{flex:1;min-width:0}.ft-row__title{font-size:1.02rem;font-weight:800}.ft-row__meta{color:var(--ft-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.ft-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ft-text-muted);margin:0 0 8px;font-size:.85rem;font-weight:800}.ft-backdrop{z-index:40;background:#0a0f1273;animation:.18s ft-fade;position:fixed;inset:0}.ft-sheet{z-index:41;background:var(--ft-surface);box-shadow:var(--ft-shadow-lg);max-height:min(88dvh,100%);padding-bottom:env(safe-area-inset-bottom);border-radius:24px 24px 0 0;flex-direction:column;animation:.26s cubic-bezier(.2,.8,.2,1) ft-slide-up;display:flex;position:fixed;bottom:0;left:0;right:0}.ft-sheet__handle{background:var(--ft-border-strong);border-radius:999px;flex:none;width:44px;height:5px;margin:10px auto 0}.ft-sheet__header{flex:none;align-items:center;gap:8px;padding:10px 12px 10px 20px;display:flex}.ft-sheet__title{flex:1;min-width:0;font-size:1.25rem;font-weight:800}.ft-sheet__body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:4px 20px 24px;overflow-y:auto}.ft-sheet__footer{border-top:1px solid var(--ft-border);background:var(--ft-surface);flex:none;gap:10px;padding:12px 20px 16px;display:flex}.ft-sheet__footer>*{flex:1}@media (min-width:900px){.ft-sheet{border-radius:24px 0 0 24px;width:440px;max-height:none;animation:.26s cubic-bezier(.2,.8,.2,1) ft-slide-left;inset:0 0 0 auto}.ft-sheet--center{border-radius:24px;width:min(520px,100vw - 32px);max-height:calc(100dvh - 48px);animation:.2s cubic-bezier(.2,.8,.2,1) ft-pop;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.ft-sheet__handle{display:none}}.ft-dialog{z-index:100001;background:var(--ft-surface);width:min(440px,100vw - 32px);box-shadow:var(--ft-shadow-lg);border-radius:24px;padding:24px;animation:.2s cubic-bezier(.2,.8,.2,1) ft-pop;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.ft-toasts{z-index:100010;left:50%;bottom:calc(var(--ft-bottombar-h) + env(safe-area-inset-bottom) + 12px);pointer-events:none;gap:8px;width:min(480px,100vw - 24px);display:grid;position:fixed;transform:translate(-50%)}@media (min-width:900px){.ft-toasts{bottom:20px}}.ft-toast{background:var(--ft-text);color:var(--ft-bg);box-shadow:var(--ft-shadow-lg);pointer-events:auto;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;font-weight:700;animation:.2s ft-slide-up;display:flex}.ft-toast--error{background:var(--ft-danger);color:#fff}.ft-toast--success{background:var(--ft-success);color:#fff}.ft-menu{right:12px;top:calc(var(--ft-topbar-h) - 6px);z-index:35;background:var(--ft-surface);border:1px solid var(--ft-border);width:min(340px,100vw - 24px);box-shadow:var(--ft-shadow-lg);transform-origin:100% 0;border-radius:20px;padding:8px;animation:.16s ft-menu-pop;position:absolute}.ft-menu__item{width:100%;min-height:50px;color:var(--ft-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;font-weight:700;text-decoration:none;display:flex}.ft-menu__item:hover{background:var(--ft-surface-2)}.ft-menu__divider{background:var(--ft-border);height:1px;margin:6px 4px}.ft-spinner{border:3px solid var(--ft-border);border-top-color:var(--ft-primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite ft-spin}.ft-skeleton{background:linear-gradient(90deg,var(--ft-surface-2)25%,var(--ft-surface-3)50%,var(--ft-surface-2)75%);background-size:200% 100%;border-radius:12px;animation:1.2s ease-in-out infinite ft-shimmer}.ft-page{width:100%;max-width:520px;padding:24px 16px 40px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));margin:0 auto}.ft-page--wide{max-width:980px}.ft-page>*,.ft-card>*,.ft-sheet__body>*{min-width:0}.ft-hero-icon{background:var(--ft-primary-soft);width:64px;height:64px;color:var(--ft-primary);border-radius:20px;place-items:center;display:grid}@keyframes ft-fade{0%{opacity:0}to{opacity:1}}@keyframes ft-slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes ft-slide-left{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes ft-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ft-menu-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes ft-spin{to{transform:rotate(360deg)}}@keyframes ft-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){[data-family-tree-root] *,[data-family-tree-root] :before,[data-family-tree-root] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ft-avatar--xl{width:104px;height:104px;font-size:2.1rem}.ft-avatar--photo{background:var(--ft-surface-3);padding:0;overflow:hidden}.ft-avatar--photo img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.ft-node__label{background:var(--ft-primary);max-width:calc(100% - 24px);color:var(--ft-on-primary);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border-radius:999px;padding:2px 10px;font-size:.74rem;font-weight:800;line-height:1.5;position:absolute;top:-13px;left:12px;overflow:hidden}.ft-node__label--you{background:var(--ft-accent);color:#1d1408}.ft-node__counts{color:var(--ft-text-muted);gap:8px;font-size:.78rem;font-weight:700;display:inline-flex}.ft-banner{background:var(--ft-accent-soft);border-bottom:1px solid var(--ft-border);flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 16px;display:flex}.ft-banner__text{flex:260px;font-weight:600}.ft-banner__actions{flex-wrap:wrap;gap:8px;display:flex}.ft-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.ft-photo-tile{aspect-ratio:1;background:var(--ft-surface-2);cursor:pointer;color:var(--ft-text);font:inherit;border:0;border-radius:14px;padding:0;position:relative;overflow:hidden}.ft-photo-tile img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.ft-photo-tile:hover img{transform:scale(1.04)}.ft-photo-tile--add{border:2px dashed var(--ft-border-strong);color:var(--ft-primary);background:0 0;align-content:center;place-items:center;gap:4px;font-size:.9rem;font-weight:800;display:grid}.ft-photo-tile--locked{background:linear-gradient(135deg,color-mix(in srgb,var(--ft-primary)22%,transparent),color-mix(in srgb,var(--ft-accent)22%,transparent)),var(--ft-surface-2);text-align:center;align-content:center;place-items:center;gap:4px;padding:8px;font-size:.9rem;font-weight:800;display:grid}.ft-photo-tile__badge{color:#fff;background:#0009;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:800;position:absolute;bottom:6px;left:6px}.ft-lightbox{z-index:55;color:#fff;background:#080a0cf0;flex-direction:column;animation:.16s ft-fade;display:flex;position:fixed;inset:0}.ft-lightbox__bar{padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));align-items:center;gap:8px;display:flex}.ft-lightbox__bar .ft-icon-btn{color:#fff}.ft-lightbox__bar .ft-icon-btn:hover{background:#ffffff1f}.ft-lightbox__stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:0 8px;display:flex;position:relative}.ft-lightbox__stage img{-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;user-select:none;border-radius:8px;max-width:100%;max-height:100%}.ft-lightbox__nav{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.ft-lightbox__nav:hover{background:#ffffff3d}.ft-lightbox__nav--prev{left:12px}.ft-lightbox__nav--next{right:12px}.ft-lightbox__info{padding:12px 16px 16px;padding-bottom:max(16px,env(safe-area-inset-bottom));gap:10px;width:100%;max-width:760px;margin:0 auto;display:grid}.ft-lightbox__info .ft-btn{min-height:44px}.ft-lightbox__actions{flex-wrap:wrap;gap:8px;display:flex}.ft-lightbox__actions .ft-btn--secondary{color:#fff;background:#ffffff1a;border-color:#ffffff4d}.ft-story-card{border-radius:var(--ft-radius);border:1px solid var(--ft-border);background:var(--ft-surface);width:100%;color:var(--ft-text);text-align:left;font:inherit;cursor:pointer;gap:4px;padding:14px 16px;display:grid}.ft-story-card:hover{background:var(--ft-surface-2)}.ft-story-card__title{font-size:1.02rem;font-weight:800}.ft-story-card__excerpt{color:var(--ft-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.92rem;display:-webkit-box;overflow:hidden}.ft-story-body{white-space:pre-wrap;font-size:1.08rem;line-height:1.7}.ft-locked-row{background:var(--ft-surface-2);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex}.ft-locked-row svg{color:var(--ft-text-muted);flex:none}.ft-cta-card{border-radius:var(--ft-radius-lg);background:var(--ft-primary-soft);border:1px solid color-mix(in srgb,var(--ft-primary)30%,transparent);gap:10px;padding:18px;display:grid}.ft-cta-card h3{font-size:1.15rem}.ft-chip-list{flex-wrap:wrap;gap:8px;display:flex}.ft-person-chip{border:1px solid var(--ft-border-strong);background:var(--ft-surface);border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:4px 6px 4px 4px;font-size:.92rem;font-weight:700;display:inline-flex}.ft-person-chip .ft-avatar{width:30px;height:30px;font-size:.75rem}.ft-person-chip button{appearance:none;color:var(--ft-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.ft-person-chip button:hover{background:var(--ft-surface-2);color:var(--ft-text)}.ft-tabs{scrollbar-width:none;gap:6px;margin:0 -4px;padding:4px;display:flex;overflow-x:auto}.ft-tabs::-webkit-scrollbar{display:none}.ft-tab{appearance:none;border:1px solid var(--ft-border);background:var(--ft-surface);min-height:46px;color:var(--ft-text-muted);font:inherit;cursor:pointer;border-radius:12px;flex:none;align-items:center;gap:8px;padding:0 16px;font-weight:800;display:inline-flex}.ft-tab[aria-selected=true]{background:var(--ft-primary);border-color:var(--ft-primary);color:var(--ft-on-primary)}.ft-tab__count{background:var(--ft-danger);color:#fff;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.75rem;display:grid}.ft-check{width:24px;height:24px;accent-color:var(--ft-primary);flex:none}.ft-activity{border-radius:var(--ft-radius);border:1px solid var(--ft-border);background:var(--ft-surface);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.ft-activity--reverted{opacity:.6}.ft-activity--reverted .ft-activity__summary{text-decoration:line-through}.ft-activity__body{flex:1;min-width:0}.ft-activity__summary{font-weight:700}.ft-email-frame{border:1px solid var(--ft-border);background:#fff;border-radius:14px;width:100%;min-height:60vh}.ft-details>summary{cursor:pointer;min-height:44px;color:var(--ft-primary);align-items:center;gap:8px;font-weight:800;list-style:none;display:flex}.ft-details>summary::-webkit-details-marker{display:none}.ft-radio-card{border:2px solid var(--ft-border);background:var(--ft-surface);text-align:left;width:100%;font:inherit;color:var(--ft-text);cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.ft-radio-card[aria-checked=true]{border-color:var(--ft-primary);background:var(--ft-primary-soft)}.ft-radio-card__dot{border:2px solid var(--ft-border-strong);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-top:2px;display:grid}.ft-radio-card[aria-checked=true] .ft-radio-card__dot{border-color:var(--ft-primary)}.ft-radio-card[aria-checked=true] .ft-radio-card__dot:after{content:"";background:var(--ft-primary);border-radius:50%;width:10px;height:10px}.ft-node-wrap{width:176px;height:92px;position:absolute}.ft-edges path.ft-edge--ended{stroke-dasharray:7 6;stroke:var(--ft-edge)}.ft-union{z-index:2;border:2px solid var(--ft-edge-couple);background:var(--ft-surface);height:24px;color:var(--ft-text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:800;line-height:1;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.ft-union svg{color:var(--ft-edge-couple);flex:none}.ft-union--icon{justify-content:center;width:26px;padding:0}.ft-union--ended{border-style:dashed;border-color:var(--ft-border-strong);color:var(--ft-text-muted)}.ft-union--ended svg{color:var(--ft-text-muted)}.ft-union:disabled{cursor:default;opacity:1}.ft-union:not(:disabled):hover{box-shadow:var(--ft-ring)}.ft-node__counts{color:var(--ft-text-muted);gap:8px;font-size:11px;font-weight:800;display:inline-flex;position:absolute;bottom:6px;right:8px}.ft-node__counts span{align-items:center;gap:3px;display:inline-flex}.ft-add-pill{z-index:3;background:var(--ft-primary);height:30px;color:var(--ft-on-primary);font:inherit;white-space:nowrap;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:3px;padding:0 10px 0 7px;font-size:12px;font-weight:800;animation:.14s ft-pill-in;display:none;position:absolute;box-shadow:0 3px 10px #00000038}.ft-add-pill:hover{background:var(--ft-primary-strong)}.ft-add-pill--top{top:-15px;left:50%;transform:translate(-50%)}.ft-add-pill--bottom{bottom:-15px;left:50%;transform:translate(-50%)}.ft-add-pill--left{top:50%;left:-18px;transform:translate(-50%,-50%)}.ft-add-pill--right{top:50%;right:-18px;transform:translate(50%,-50%)}.ft-node-wrap--selected .ft-add-pill{display:inline-flex}@media (hover:hover) and (pointer:fine){.ft-node-wrap:hover .ft-add-pill,.ft-node-wrap:focus-within .ft-add-pill{display:inline-flex}.ft-node-wrap:hover .ft-node__label{opacity:0}.ft-node-wrap:hover{z-index:4}}.ft-node-wrap--selected{z-index:4}.ft-node-wrap--selected .ft-node__label{opacity:0}@keyframes ft-pill-in{0%{opacity:0}to{opacity:1}}.ft-cropper{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#111;border-radius:20px;position:relative;overflow:hidden}.ft-cropper:active{cursor:grabbing}.ft-cropper img{transform-origin:0 0;pointer-events:none;max-width:none;position:absolute;top:0;left:0}.ft-cropper__mask{outline-offset:-3px;pointer-events:none;border-radius:50%;outline:3px solid #ffffffe6;position:absolute;inset:0;box-shadow:0 0 0 999px #0000008c}.ft-range{accent-color:var(--ft-primary);height:32px}.ft-filter-chip{appearance:none;border:1px solid var(--ft-border-strong);background:var(--ft-surface);min-height:40px;color:var(--ft-text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.92rem;font-weight:700;display:inline-flex}.ft-filter-chip:hover{background:var(--ft-surface-2)}.ft-filter-chip[aria-checked=true],.ft-filter-chip[aria-pressed=true]{background:var(--ft-text);border-color:var(--ft-text);color:var(--ft-bg)}.ft-filter-chip__count{opacity:.6;font-weight:800}.ft-writer,.ft-reader{background:var(--ft-surface-2);flex-direction:column;animation:.16s ft-fade;display:flex;position:fixed;inset:0}.ft-writer__bar{min-height:64px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));background:var(--ft-surface);border-bottom:1px solid var(--ft-border);flex:none;align-items:center;gap:10px;display:flex}.ft-writer__heading{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:800;overflow:hidden}.ft-writer__spacer{flex:1}.ft-writer__ribbon{background:var(--ft-surface);border-bottom:1px solid var(--ft-border);scrollbar-width:thin;flex:none;align-items:center;gap:4px;padding:6px 12px;display:flex;overflow-x:auto}.ft-tool-group{border-right:1px solid var(--ft-border);flex:none;align-items:center;gap:2px;margin-right:4px;padding-right:6px;display:flex}.ft-tool-group:last-child{border-right:0}.ft-tool{appearance:none;width:42px;height:42px;color:var(--ft-text);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:inline-grid}.ft-tool:hover:not(:disabled){background:var(--ft-surface-2)}.ft-tool[aria-pressed=true]{background:var(--ft-primary-soft);color:var(--ft-primary)}.ft-tool:disabled{opacity:.35;cursor:default}.ft-tool-select{border:1px solid var(--ft-border-strong);background:var(--ft-surface);height:42px;color:var(--ft-text);font:inherit;border-radius:10px;padding:0 30px 0 12px;font-size:.95rem;font-weight:700}.ft-writer__scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:32px 16px 96px;overflow-y:auto}.ft-writer__page,.ft-reader__page{background:var(--ft-surface);border-radius:6px;max-width:860px;min-height:calc(100% - 32px);margin:0 auto;padding:64px 72px 96px;box-shadow:0 1px 3px #00000014,0 12px 40px #00000014}.ft-reader__page{max-width:760px}@media (max-width:700px){.ft-writer__scroll{padding:0 0 96px}.ft-writer__page,.ft-reader__page{box-shadow:none;border-radius:0;min-height:100%;padding:24px 18px 64px}}.ft-writer__title{resize:none;width:100%;color:var(--ft-text);font:inherit;letter-spacing:-.02em;field-sizing:content;background:0 0;border:0;min-height:1.2em;padding:0;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;line-height:1.2;display:block}.ft-writer__title:focus{outline:none}.ft-writer__title::placeholder{color:var(--ft-border-strong)}.ft-writer__meta{border-bottom:1px solid var(--ft-border);flex-wrap:wrap;gap:8px;margin:16px 0 28px;padding-bottom:20px;display:flex}.ft-writer__meta-btn{border:1px solid var(--ft-border);background:var(--ft-surface-2);min-height:40px;color:var(--ft-text-muted);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.92rem;display:inline-flex}.ft-writer__meta-btn strong{color:var(--ft-text)}.ft-writer__meta-btn input{width:9em;color:var(--ft-text);font:inherit;background:0 0;border:0;font-weight:700}.ft-writer__meta-btn input:focus{outline:none}.ft-writer__editor{outline:none;min-height:50vh}.ft-writer__editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:var(--ft-border-strong);pointer-events:none}.ft-writer__editor .ProseMirror-selectednode,.ft-writer__editor img.ProseMirror-selectednode{outline:3px solid var(--ft-accent)}.ft-writer__status{padding:8px 16px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--ft-surface);border-top:1px solid var(--ft-border);color:var(--ft-text-muted);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:.85rem;font-weight:600;display:flex;position:absolute;bottom:0;left:0;right:0}.ft-writer__error{width:min(560px,100% - 24px);box-shadow:var(--ft-shadow-lg);position:absolute;bottom:56px;left:50%;transform:translate(-50%)}.ft-templates{margin-bottom:24px}.ft-templates__grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.ft-template{border:1px solid var(--ft-border);background:var(--ft-surface-2);min-height:92px;color:var(--ft-text);text-align:left;font:inherit;cursor:pointer;border-radius:14px;gap:4px;padding:14px 16px;display:grid}.ft-template:hover{border-color:var(--ft-primary);background:var(--ft-primary-soft)}.ft-template__name{font-weight:800}.ft-template__hint{color:var(--ft-text-muted);font-size:.88rem}.ft-reader__kicker{color:var(--ft-accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:.85rem;font-weight:800}[data-family-tree-root] .ft-reader__title{letter-spacing:-.02em;margin-bottom:20px;font-size:clamp(2rem,5vw,3rem);line-height:1.1}.ft-reader__byline{align-items:center;gap:12px;margin-bottom:20px;display:flex}.ft-prose{color:var(--ft-text);overflow-wrap:anywhere;font-family:Georgia,Iowan Old Style,Times New Roman,serif;font-size:1.18rem;line-height:1.75}.ft-prose>*+*{margin-top:.9em}[data-family-tree-root] .ft-prose h1,[data-family-tree-root] .ft-prose h2,[data-family-tree-root] .ft-prose h3{font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;margin-top:1.4em;line-height:1.25}[data-family-tree-root] .ft-prose h1{font-size:2em}[data-family-tree-root] .ft-prose h2{font-size:1.5em}[data-family-tree-root] .ft-prose h3{font-size:1.2em}.ft-prose p{margin:0}.ft-prose ul,.ft-prose ol{padding-left:1.4em}.ft-prose ul{list-style:outside}.ft-prose ol{list-style:decimal}.ft-prose li+li{margin-top:.3em}.ft-prose blockquote{border-left:4px solid var(--ft-accent);color:var(--ft-text-muted);margin-left:0;padding:.2em 0 .2em 1.1em;font-style:italic}.ft-prose mark{background:color-mix(in srgb,var(--ft-accent)35%,transparent);color:inherit;border-radius:3px;padding:0 .15em}.ft-prose img{border-radius:12px;max-width:100%;height:auto;margin:1.4em auto;display:block}.ft-prose hr{border:0;border-top:2px solid var(--ft-border);margin:2em 0}.ft-prose a{color:var(--ft-primary);text-decoration:underline}.ft-prose em{font-style:italic}.ft-prose strong{font-weight:700}.ft-profile{background:var(--ft-bg);flex-direction:column;animation:.16s ft-fade;display:flex;position:fixed;inset:0}.ft-profile__scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.ft-profile__inner{max-width:1040px;padding:28px 16px 64px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));margin:0 auto}.ft-profile__hero{flex-wrap:wrap;align-items:center;gap:24px 32px;margin-bottom:24px;display:flex}.ft-profile__photo{flex:none;position:relative}.ft-profile__photo .ft-avatar{width:168px;height:168px;box-shadow:0 0 0 6px var(--ft-surface),var(--ft-shadow);font-size:3.2rem}.ft-profile__photo-btn{border:3px solid var(--ft-surface);background:var(--ft-primary);width:48px;height:48px;color:var(--ft-on-primary);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:6px;right:6px}.ft-profile__intro{flex:320px;justify-items:start;gap:6px;min-width:0;display:grid}[data-family-tree-root] .ft-profile__name{letter-spacing:-.02em;font-size:clamp(2rem,5vw,2.8rem);line-height:1.1}.ft-profile__nick{color:var(--ft-text-muted);font-size:1.1rem;font-style:italic}.ft-profile__actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.ft-profile__tabs{z-index:2;background:var(--ft-bg);border-bottom:1px solid var(--ft-border);gap:4px;margin:0 -16px 24px;padding:0 16px;display:flex;position:sticky;top:0}.ft-profile__tab{appearance:none;min-height:54px;color:var(--ft-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:0 18px;font-size:1.05rem;font-weight:800;display:inline-flex}.ft-profile__tab[aria-selected=true]{color:var(--ft-text);border-bottom-color:var(--ft-primary)}.ft-profile__tab-count{background:var(--ft-surface-3);min-width:24px;height:24px;color:var(--ft-text);border-radius:999px;place-items:center;padding:0 7px;font-size:.8rem;display:grid}.ft-profile__about{gap:32px;display:grid}@media (min-width:900px){.ft-profile__about{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}.ft-profile__group{color:var(--ft-text-muted);font-size:.95rem;font-weight:800}.ft-facts{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.ft-fact{border-radius:var(--ft-radius);background:var(--ft-surface);border:1px solid var(--ft-border);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.ft-fact__icon{background:var(--ft-primary-soft);width:38px;height:38px;color:var(--ft-primary);border-radius:12px;flex:none;place-items:center;display:grid}.ft-fact__label{text-transform:uppercase;letter-spacing:.05em;color:var(--ft-text-muted);font-size:.82rem;font-weight:800}.ft-fact__value{font-weight:700}.ft-marriage{border-radius:var(--ft-radius-lg);background:var(--ft-surface-2);gap:8px;padding:12px;display:grid}.ft-marriage__head{min-height:40px;color:var(--ft-text);font:inherit;cursor:pointer;text-transform:capitalize;background:0 0;border:0;align-items:center;gap:8px;padding:0 6px;font-weight:800;display:flex}.ft-marriage__head svg:first-child{color:var(--ft-edge-couple)}.ft-marriage__children{border-left:2px solid var(--ft-border-strong);gap:6px;margin-left:22px;padding-left:14px;display:grid}.ft-album{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}@media (max-width:520px){.ft-album{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}}.ft-write-cta{border-radius:var(--ft-radius-lg);border:2px dashed color-mix(in srgb,var(--ft-primary)45%,var(--ft-border));background:var(--ft-primary-soft);width:100%;color:var(--ft-text);font:inherit;cursor:pointer;align-items:center;gap:16px;padding:18px 20px;display:flex}.ft-write-cta:hover{border-style:solid}.ft-story-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.ft-story-tile{border-radius:var(--ft-radius-lg);border:1px solid var(--ft-border);background:var(--ft-surface);color:var(--ft-text);text-align:left;font:inherit;cursor:pointer;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.ft-story-tile:hover{box-shadow:var(--ft-shadow);transform:translateY(-2px)}.ft-story-tile__cover{aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;width:100%}.ft-story-tile__body{gap:6px;padding:16px 18px 18px;display:grid}.ft-story-tile__title{font-family:Georgia,Times New Roman,serif;font-size:1.3rem;font-weight:700;line-height:1.25}.ft-row__counts{color:var(--ft-text-muted);flex:none;gap:10px;font-size:.9rem;font-weight:800;display:inline-flex}.ft-row__counts span{align-items:center;gap:4px;display:inline-flex}.ft-notice--stack{flex-direction:column;align-items:stretch;gap:12px}.ft-row__meta:first-letter{text-transform:uppercase}[data-family-tree-root] .ft-writer__editor:focus,[data-family-tree-root] .ft-writer__editor:focus-visible,[data-family-tree-root] .ft-writer__title:focus-visible{outline:none}@media (max-width:600px){.ft-profile__photo .ft-avatar{width:112px;height:112px;font-size:2.2rem}.ft-profile__photo-btn{width:42px;height:42px;bottom:-4px;right:-4px}.ft-profile__hero{gap:16px}.ft-profile__tab{padding:0 12px}}[data-family-tree-root] a.ft-tree-chip,[data-family-tree-root] a.ft-tree-card{color:var(--ft-text);text-decoration:none}.ft-emblem{filter:drop-shadow(0 2px 3px #0000002e);flex:none;display:inline-block}.ft-emblem--image{border-radius:12px;place-items:center;display:inline-grid;overflow:hidden}.ft-emblem--image img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.ft-switcher{min-width:0}.ft-switcher__button{min-width:0;max-width:min(46vw,420px);min-height:48px;color:var(--ft-text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:10px;padding:4px 10px 4px 4px;font-size:1.05rem;font-weight:800;display:flex}.ft-switcher__button:hover,.ft-switcher__button[aria-expanded=true]{background:var(--ft-surface-2)}.ft-switcher__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ft-switcher__chevron{color:var(--ft-text-muted);flex:none}.ft-switcher__current{align-items:center;gap:12px;padding:8px 12px 10px;display:flex}.ft-menu--left{transform-origin:0 0;left:12px;right:auto}.ft-menu__label{letter-spacing:.04em;text-transform:uppercase;color:var(--ft-text-muted);margin:6px 12px 2px;font-size:.78rem;font-weight:800}.ft-other-trees{border-radius:var(--ft-radius);background:var(--ft-accent-soft);border:1px solid color-mix(in srgb,var(--ft-accent)35%,transparent);gap:8px;padding:12px;display:grid}.ft-other-trees__title{margin:0;font-weight:800}.ft-other-trees__list{gap:8px;display:grid}.ft-other-trees__actions{flex-wrap:wrap;gap:6px;display:flex}.ft-profile__intro .ft-other-trees{max-width:460px;margin:4px 0}.ft-tree-chip{border:1px solid var(--ft-border);background:var(--ft-surface);width:100%;min-height:56px;color:var(--ft-text);font:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:8px 12px;transition:border-color .12s,transform .12s;display:flex}.ft-tree-chip:hover{border-color:var(--ft-primary)}.ft-tree-chip:active{transform:scale(.985)}.ft-tree-chip__name{font-weight:800;line-height:1.25;display:block}.ft-tree-chip__hint{color:var(--ft-text-muted);font-size:.86rem;display:block}.ft-search{display:block;position:relative}.ft-search>svg{color:var(--ft-text-muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.ft-search .ft-input{padding-left:44px}.ft-pick-list{gap:6px;max-height:min(48vh,460px);padding:2px;display:grid;overflow-y:auto}.ft-pick-row{border:2px solid var(--ft-border);background:var(--ft-surface);min-height:56px;color:var(--ft-text);font:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:8px 12px;display:flex}.ft-pick-row[aria-checked=true]{border-color:var(--ft-primary);background:var(--ft-primary-soft)}.ft-pick-row__check{border:2px solid var(--ft-border-strong);width:28px;height:28px;color:var(--ft-on-primary);border-radius:8px;flex:none;place-items:center;display:grid}.ft-pick-row[aria-checked=true] .ft-pick-row__check{background:var(--ft-primary);border-color:var(--ft-primary)}.ft-tree-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px;display:grid}.ft-tree-card{border-radius:var(--ft-radius-lg);border:1px solid var(--ft-border);background:var(--ft-surface);width:100%;min-height:108px;color:var(--ft-text);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:16px;padding:16px 18px;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;box-shadow:0 1px #00000005}.ft-tree-card:hover{border-color:var(--ft-primary);box-shadow:var(--ft-shadow)}.ft-tree-card:active{transform:scale(.99)}.ft-tree-card--invite{border-color:var(--ft-accent);background:var(--ft-accent-soft)}.ft-tree-card--new{background:0 0;border-style:dashed;border-width:2px}.ft-tree-card__plus{background:var(--ft-primary-soft);width:60px;height:72px;color:var(--ft-primary);border-radius:16px;flex:none;place-items:center;display:grid}.ft-tree-card__name{font-size:1.2rem;font-weight:800;line-height:1.25;display:block}.ft-tree-card__meta{color:var(--ft-text-muted);align-items:center;gap:6px;margin-top:4px;display:flex}.ft-emblem-picker{grid-template-columns:auto 1fr;align-items:center;gap:20px;display:grid}.ft-emblem-picker__preview{background:radial-gradient(circle at 50% 40%,var(--ft-surface),var(--ft-surface-2));border:1px solid var(--ft-border);border-radius:20px;place-items:center;width:132px;height:140px;display:grid}.ft-swatches{flex-wrap:wrap;gap:10px;display:flex}.ft-swatch{cursor:pointer;border:3px solid #0000;border-radius:12px;width:40px;height:40px;box-shadow:inset 0 0 0 1px #00000026}.ft-swatch[aria-checked=true]{box-shadow:inset 0 0 0 1px #00000026,0 0 0 2px var(--ft-text);border-color:#e2bd62}.ft-choice[aria-checked=true]{border-color:var(--ft-primary);background:var(--ft-primary-soft)}.ft-choice>svg{color:var(--ft-primary);flex:none}.ft-share{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ft-share__url{background:var(--ft-surface-2);overflow-wrap:anywhere;border-radius:12px;flex:240px;min-width:0;padding:12px 14px;font-size:.95rem}@media (max-width:560px){.ft-emblem-picker{grid-template-columns:1fr;justify-items:start}.ft-switcher__button{max-width:52vw;font-size:.98rem}.ft-tree-card{min-height:92px;padding:14px}}.ft-node__counts .ft-node__trees{color:var(--ft-accent);font-weight:800}.ft-other-trees{min-width:0}.ft-other-trees .ft-btn{white-space:normal;text-align:left;min-width:0}.ft-other-trees--empty{background:0 0;border:0;padding:0}.ft-other-trees--empty .ft-btn{color:var(--ft-text-muted);padding-left:0}.ft-row{min-width:0}.flex>.ft-row{flex:auto}:where(.ft-sheet__body .grid:not([class*=grid-cols]),.ft-page .grid:not([class*=grid-cols])),.ft-list{grid-template-columns:minmax(0,1fr)}.ft-list>.flex{min-width:0}.ft-filter-chip--soft:not([aria-checked=true]){border-style:dashed}
