:root{--color-bg:#f6f1e7;--color-bg-deep:#efe7d8;--color-surface:#fffdf8;--color-text:#2b261f;--color-muted:#776e60;--color-border:#e3d9c7;--color-border-strong:#cfc2aa;--color-primary:#2f5d50;--color-primary-hover:#234a3f;--color-primary-soft:#2f5d5017;--color-accent:#b8893b;--color-accent-soft:#b8893b24;--color-primary-deep:#1b3a31;--color-on-primary:#f6f1e7;--color-accent-bright:#e0b862;--color-danger:#b3261e;--male-bg:#e1eaf2;--male-fg:#3f6489;--female-bg:#f5e4e9;--female-fg:#94475f;--unknown-bg:#ece6da;--unknown-fg:#6f675a;--sky-top:#e3eee9;--sky-bottom:#f7f1e4;--soil-top:#d8c39e;--soil-mid:#c9ae84;--soil-deep:#a98a63;--grass:#7fa35f;--bark-light:#9a7652;--bark-dark:#6b4f35;--root:#7d5d3f;--branch:#7a5a3c;--leaf:#6f9a52;--leaf-dark:#4d7838;--canopy-light:#cfe3bd;--canopy-dark:#a9cc92;--radius:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #3b2f1e0f;--shadow-md:0 6px 20px #3b2f1e14, 0 1px 3px #3b2f1e0f;--header-height:4.25rem;--focus-transition:.9s;--focus-ease:cubic-bezier(.65, 0, .35, 1);--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.5}*,:before,:after{box-sizing:border-box}body{margin:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;font-weight:600}a{color:var(--color-primary)}.muted{color:var(--color-muted)}button,.button-link,.button-secondary-link{--btn-bg:linear-gradient(180deg, #386f60, var(--color-primary));--btn-bg-hover:linear-gradient(180deg, #3c7867, #2b5649);--btn-border:#27503f;--btn-color:#fff;--btn-shadow:inset 0 1px 0 #ffffff29, 0 1px 2px #1b3a3138, 0 4px 12px -4px #2f5d5073;--btn-shadow-hover:inset 0 1px 0 #ffffff2e, 0 2px 4px #1b3a312e, 0 10px 20px -8px #2f5d508c;--btn-shadow-active:inset 0 2px 4px #0000002e;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);font:inherit;letter-spacing:.005em;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.15rem;font-weight:600;line-height:1.25;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,box-shadow .18s,transform .18s;display:inline-flex}button:hover:not(:disabled),.button-link:hover,.button-secondary-link:hover{background:var(--btn-bg-hover)}.button-link:hover,.button-secondary-link:hover{color:var(--btn-color)}:where(button:not(.icon-button,.link-button,.verify-chip,.input-icon-action,.activity-person,.history-link,.relative-item-main,.tree-sheet-item,.family-tree-controls button,.tree-bottombar button)),.button-link,.button-secondary-link{box-shadow:var(--btn-shadow)}:where(button:not(.icon-button,.link-button,.verify-chip,.input-icon-action,.activity-person,.history-link,.relative-item-main,.tree-sheet-item,.family-tree-controls button,.tree-bottombar button)):hover:not(:disabled),.button-link:hover,.button-secondary-link:hover{box-shadow:var(--btn-shadow-hover);transform:translateY(-1px)}:where(button:not(.icon-button,.link-button,.verify-chip,.input-icon-action,.activity-person,.history-link,.relative-item-main,.tree-sheet-item,.family-tree-controls button,.tree-bottombar button)):active:not(:disabled),.button-link:active,.button-secondary-link:active{box-shadow:var(--btn-shadow-active);transform:translateY(1px)}button:where(.icon-button,.link-button,.verify-chip,.input-icon-action,.activity-person,.history-link,.relative-item-main){font-weight:500}button .app-icon,.button-link .app-icon,.button-secondary-link .app-icon{flex:none}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;filter:saturate(.6)}.button-sm{border-radius:10px;gap:.4rem;padding:.42rem .85rem;font-size:.88rem}.button-secondary,.button-secondary-link{--btn-bg:linear-gradient(180deg, #fffefb, #f9f4ea);--btn-bg-hover:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 5%, #fffefb), color-mix(in srgb, var(--color-primary) 11%, #fffefb));--btn-border:var(--color-border-strong);--btn-color:var(--color-primary);--btn-shadow:inset 0 1px 0 #fff, 0 1px 2px #3b2f1e14;--btn-shadow-hover:inset 0 1px 0 #fff, 0 4px 12px -4px #3b2f1e2e;--btn-shadow-active:inset 0 2px 3px #3b2f1e1f}.button-secondary:hover:not(:disabled),.button-secondary-link:hover{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border-strong))}.button-danger-solid{--btn-bg:linear-gradient(180deg, #c53a30, var(--color-danger));--btn-bg-hover:linear-gradient(180deg, #b8312a, #951f19);--btn-border:#8f1e18;--btn-shadow:inset 0 1px 0 #ffffff29, 0 1px 2px #6e140f40, 0 4px 12px -4px #b3261e73;--btn-shadow-hover:inset 0 1px 0 #ffffff2e, 0 2px 4px #6e140f33, 0 10px 20px -8px #b3261e80}.button-danger{--btn-bg:linear-gradient(180deg, #fffefb, #fbf3ef);--btn-bg-hover:linear-gradient(180deg, #fdf1ee, #f9e3de);--btn-border:#b3261e66;--btn-color:var(--color-danger);--btn-shadow:inset 0 1px 0 #fff, 0 1px 2px #6e140f14;--btn-shadow-hover:inset 0 1px 0 #fff, 0 4px 12px -4px #b3261e40;--btn-shadow-active:inset 0 2px 3px #6e140f1f}.button-danger:hover:not(:disabled){border-color:var(--color-danger)}.button-ghost,.button-ghost-danger{--btn-bg:transparent;--btn-border:transparent;--btn-shadow:none;--btn-shadow-hover:none;--btn-shadow-active:none}.button-ghost{--btn-bg-hover:var(--color-primary-soft);--btn-color:var(--color-muted)}.button-ghost:hover:not(:disabled){color:var(--color-primary)}.button-ghost-danger{--btn-bg-hover:#b3261e14;--btn-color:var(--color-danger)}.button-ghost:hover:not(:disabled),.button-ghost-danger:hover:not(:disabled){transform:none}@media (prefers-reduced-motion:reduce){button,.button-link,.button-secondary-link{transition:none}button:hover,button:active,.button-link:hover,.button-link:active,.button-secondary-link:hover,.button-secondary-link:active{transform:none!important}}.footer-end{margin-left:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon-button{width:2.1rem;height:2.1rem;color:var(--color-muted);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;font-size:1.3rem;line-height:1;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary)}.icon-button--danger:hover:not(:disabled){color:var(--color-danger);background:#b3261e14}.link-button{color:var(--color-primary);text-underline-offset:3px;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #2f5d5059;text-decoration:underline #2f5d5059}.link-button:hover:not(:disabled){background:0 0;text-decoration-color:currentColor}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],select,textarea{width:100%;font:inherit;border:1px solid var(--color-border-strong);border-radius:var(--radius);color:var(--color-text);background:#fffefb;padding:.6rem .75rem;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #3b2f1e0a}input:hover,select:hover,textarea:hover{border-color:var(--color-muted)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);background:#fff;outline:none}input::placeholder,textarea::placeholder{color:#b0a691}textarea{resize:vertical;line-height:1.5}button:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.field{flex-direction:column;gap:.3rem;display:flex}.field label{font-size:.92rem;font-weight:500}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.field-error,.form-message{color:var(--color-danger);margin:0;font-size:.9rem}.form-message{border-radius:var(--radius);background:#b3261e12;padding:.6rem .8rem}.checkbox{align-items:center;gap:.5rem;display:flex}.field-hint{color:var(--color-muted);margin:.25rem 0 0;font-size:.82rem}.form-success{border-radius:var(--radius);background:var(--color-primary-soft);color:var(--color-primary);margin:0;padding:.6rem .8rem;font-size:.9rem}.auth-forgot{font-size:.9rem}.date-fields{border:none;flex-direction:column;gap:.4rem;margin:0;padding:0;display:flex}.date-fields legend{margin-bottom:.3rem;font-size:.92rem;font-weight:500}.date-fields{gap:.6rem}.date-fields-row{grid-template-columns:.8fr 1.4fr 1fr;gap:.5rem;display:grid}.date-part{flex-direction:column;gap:.2rem;display:flex}.date-part>span{letter-spacing:.04em;color:var(--color-muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.input-with-icon{display:block;position:relative}.input-with-icon .app-icon{color:var(--color-muted);pointer-events:none;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.input-with-icon input{padding-left:2.1rem}.actions{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.badge{background:var(--color-accent-soft);color:#8a6526;border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:500;display:inline-block}.badge--muted{background:var(--color-bg-deep);color:var(--color-muted)}.confirm{border-radius:var(--radius);background:#b3261e0a;border:1px solid #b3261e59;margin-top:1rem;padding:.85rem}.confirm p{margin:0}.brand-mark{align-items:center;gap:.55rem;display:inline-flex}.brand-mark-icon{flex:none;width:2rem;height:2rem}.brand-mark-disc{fill:var(--color-primary)}.brand-mark-branches{fill:none;stroke:#f6f1e7;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.brand-mark-leaf{fill:#f6f1e7}.brand-mark-leaf--accent{fill:#e0b862}.brand-mark-name{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-text);font-size:1.3rem;font-weight:600}.app-header{z-index:2;box-sizing:border-box;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);align-items:center;gap:1.5rem;padding:0 1.5rem;display:flex;position:relative}.app-header-brand{text-decoration:none}.app-header-link{color:var(--color-muted);font-weight:500;text-decoration:none}.app-header-link:hover,.app-header-link.router-link-exact-active{color:var(--color-primary)}.app-header-user{color:var(--color-muted);margin-left:auto}.verify-chip{background:var(--color-accent-soft);color:#7a5a22;white-space:nowrap;text-overflow:ellipsis;border:1px solid #b8893b73;border-radius:999px;align-items:center;gap:.35rem;min-width:0;max-width:22rem;margin-left:auto;padding:.3rem .7rem;font-size:.82rem;display:inline-flex;overflow:hidden}.verify-chip:hover:not(:disabled){background:#b8893b38}.verify-chip+.app-header-user{margin-left:0}.page{padding:2rem 1.5rem}.auth-switch{text-align:center;color:var(--color-muted);margin:0}.trees-page{max-width:68rem;margin:0 auto;padding-top:2.5rem;padding-bottom:3rem}.trees-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 1.5rem;margin-bottom:1.75rem;animation:.45s ease-out both auth-form-in;display:flex}.trees-header h1{margin:.15rem 0 0;font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.15}.trees-overview{margin:.35rem 0 0}.trees-header-actions{flex-wrap:wrap;gap:.6rem;display:flex}.trees-header-actions a{border-radius:12px;padding:.65rem 1.1rem;font-weight:500}.trees-error{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.tree-grid{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));align-items:start;gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.tree-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;transition:box-shadow .2s,transform .2s,border-color .2s;animation:.45s ease-out both auth-form-in;display:flex;overflow:hidden}.tree-card:nth-child(2){animation-delay:60ms}.tree-card:nth-child(n+3){animation-delay:.12s}.tree-card:hover:not(.tree-card--editing){border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tree-card-cover{background:radial-gradient(circle at 50% 120%, color-mix(in srgb, var(--canopy-dark) 55%, transparent), transparent 60%), linear-gradient(180deg, var(--sky-top), var(--sky-bottom));border-bottom:1px solid var(--color-border);place-items:center;height:7rem;text-decoration:none;display:grid;position:relative}.tree-card-scene{width:100%;height:100%;position:absolute;inset:0}.tree-card-soil{fill:color-mix(in srgb, var(--soil-top) 55%, transparent)}.tree-card-roots{fill:none;stroke:var(--root);stroke-width:2px;stroke-linecap:round;opacity:.55}.tree-card-avatar{box-shadow:0 0 0 4px var(--color-surface), var(--shadow-md);transition:transform .25s;position:relative}.tree-card:hover .tree-card-avatar{transform:scale(1.05)}.tree-card-body{flex-direction:column;gap:.35rem;padding:1rem 1.25rem .75rem;display:flex}.tree-card-badges{flex-wrap:wrap;gap:.35rem;display:flex}.tree-card-badges .badge{align-items:center;gap:.3rem;display:inline-flex}.tree-role--owner{background:var(--color-primary-soft);color:var(--color-primary)}.tree-card-name{font-family:var(--font-display);color:var(--color-text);overflow-wrap:anywhere;font-size:1.35rem;font-weight:600;line-height:1.2;text-decoration:none}:is(.tree-card-name:hover,.tree-card:has(.tree-card-cover:hover) .tree-card-name){color:var(--color-primary)}.tree-card-summary{align-items:center;gap:.4rem;margin:0;font-size:.9rem;display:flex}.tree-card-summary .app-icon{flex:none}.tree-card-actions{border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 45%, var(--color-surface));align-items:center;gap:.5rem;margin-top:auto;padding:.5rem .75rem;display:flex}.tree-card-tools{flex-wrap:wrap;gap:.15rem;width:100%;display:flex}.tree-card-tools .button-ghost-danger{margin-left:auto}.tree-card .inline-editor,.tree-card .confirm{margin:0 1.25rem 1.25rem}.tree-add-link{box-sizing:border-box;border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);height:100%;min-height:14rem;color:var(--color-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:1.5rem;text-decoration:none;transition:border-color .2s,background-color .2s;display:flex}.tree-add-link:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.tree-add-link .muted{font-size:.88rem}.tree-add-icon{background:var(--color-primary);width:3rem;height:3rem;color:var(--color-on-primary);border-radius:50%;place-items:center;margin-bottom:.25rem;transition:transform .2s;display:inline-grid}.tree-add-link:hover .tree-add-icon{transform:rotate(90deg)}.tree-skeleton{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;gap:.75rem;padding-bottom:1.25rem;display:flex;overflow:hidden}.tree-skeleton-cover,.tree-skeleton-line{background:linear-gradient(90deg, var(--color-bg-deep) 25%, var(--color-bg) 50%, var(--color-bg-deep) 75%);background-size:200% 100%;animation:1.4s linear infinite shimmer;display:block}.tree-skeleton-cover{height:7rem}.tree-skeleton-line{border-radius:6px;height:.9rem;margin:0 1.25rem}.tree-skeleton-line--short{width:45%}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=640px){.trees-page{padding-top:1.5rem}.trees-header-actions{width:100%}.trees-header-actions a{white-space:nowrap;flex:1;justify-content:center;padding-inline:.75rem;font-size:.92rem}.tree-grid{grid-template-columns:1fr}.tree-add-link{min-height:8rem}}@media (prefers-reduced-motion:reduce){.trees-header,.tree-card,.tree-skeleton-cover,.tree-skeleton-line{animation:none}}.tree-page{height:calc(100dvh - var(--header-height));flex-direction:column;display:flex}.tree-toolbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.85rem 1.5rem .75rem;display:flex}.tree-title{margin:0;font-size:1.45rem;line-height:1.2}.toolbar-end{margin-left:auto}.tree-heading{flex:16rem;min-width:0}.tree-tools{flex-wrap:wrap;flex:100%;gap:.45rem;display:flex}.tree-tools button{white-space:nowrap;flex:none}.tree-bottombar,.tree-sheet,.tree-sheet-backdrop{display:none}@media (width<=720px){.tree-toolbar{gap:.5rem;padding:.6rem 1rem}.tree-heading{flex-basis:100%}.tree-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.2rem;overflow:hidden}.tree-subtitle{font-size:.82rem}.tree-subtitle-count,.tree-tools,.tree-toolbar .toolbar-end{display:none}.tree-toolbar--searching .toolbar-end{flex:100%;width:auto;margin-left:0;display:block}.tree-toolbar--searching .tree-search-hint{display:none}.tree-bottombar{padding:.3rem .4rem calc(.3rem + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;box-shadow:0 -6px 18px #3b2f1e0f}.tree-bottombar button{min-height:3.4rem;box-shadow:none;color:var(--color-muted);background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .2rem;font-size:.72rem;font-weight:600;display:flex;position:relative}.tree-bottombar button .app-icon{box-sizing:content-box;border-radius:999px;padding:.2rem .9rem;transition:background-color .15s}.tree-bottombar button:hover:not(:disabled){background:0 0}.tree-bottombar button[aria-pressed=true]{color:var(--color-primary)}.tree-bottombar button[aria-pressed=true] .app-icon{background:var(--color-primary-soft)}.tree-bottombar-more path{stroke-width:3.4px}.tree-bottombar-dot{border:2px solid var(--color-surface);background:var(--color-danger);border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:.35rem;right:calc(50% - 1.1rem)}.tree-sheet-backdrop{z-index:20;background:#2b261f40;display:block;position:absolute;inset:0}.tree-sheet{z-index:21;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-direction:column;padding:.6rem .75rem .75rem;animation:.2s ease-out sheet-in;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #3b2f1e26}.tree-sheet:before{content:"";background:var(--color-border-strong);border-radius:999px;align-self:center;width:2.5rem;height:4px;margin-bottom:.5rem}.tree-sheet-title{color:var(--color-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .25rem .5rem;font-size:.75rem;font-weight:700}.tree-sheet-item{min-height:3.25rem;box-shadow:none;color:var(--color-text);text-align:left;background:0 0;border:0;border-radius:12px;justify-content:flex-start;align-items:center;gap:.85rem;padding:.4rem .5rem;font-size:1rem;font-weight:500;display:flex}.tree-sheet-item:hover:not(:disabled),.tree-sheet-item[aria-pressed=true]{background:var(--color-primary-soft)}.tree-sheet-item .toolbar-badge{margin-left:auto}.tree-sheet-icon{background:var(--color-primary-soft);width:2.4rem;height:2.4rem;color:var(--color-primary);border-radius:12px;place-items:center;display:grid}}@keyframes sheet-in{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.tree-sheet{animation:none}}.tree-subtitle{color:var(--color-muted);margin:.1rem 0 0;font-size:.9rem}.tree-subtitle strong{color:var(--color-text);font-weight:600}.tree-workspace{flex:1;min-height:0;display:flex;position:relative}.family-tree{background:linear-gradient(var(--sky-top), var(--sky-bottom) 75%);flex:1;min-width:0;position:relative}.family-tree-canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.family-tree-canvas:active{cursor:grabbing}.tree-soil-top{stop-color:var(--soil-top)}.tree-soil-mid{stop-color:var(--soil-mid)}.tree-soil-deep{stop-color:var(--soil-deep)}.tree-soil-speck{fill:#5a42282e}.tree-grass{fill:none;stroke:var(--grass);stroke-width:6px;stroke-linecap:round}.tree-canopy-light{stop-color:var(--canopy-light)}.tree-canopy-dark{stop-color:var(--canopy-dark)}.tree-canopy{opacity:.75;animation:.8s ease-out both tree-fade-in}.tree-canopy ellipse,.tree-canopy circle{transition:cx var(--focus-transition) var(--focus-ease), cy var(--focus-transition) var(--focus-ease), r var(--focus-transition) var(--focus-ease), rx var(--focus-transition) var(--focus-ease), ry var(--focus-transition) var(--focus-ease)}.tree-bark-light{stop-color:var(--bark-light)}.tree-bark-dark{stop-color:var(--bark-dark)}.tree-generation-label{transition:transform var(--focus-transition) var(--focus-ease);dominant-baseline:middle;fill:#5d6f56;letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:700}.tree-generation-label--underground{fill:#5a4126}.tree-generation-label--focus{fill:#8a6526}.tree-trunk{stroke:var(--bark-dark);stroke-width:1px;animation:.6s ease-out .5s both tree-fade-in}.tree-link{fill:none;stroke-linecap:round;animation:.6s ease-out .6s both tree-fade-in}.tree-link--branch{stroke:var(--branch)}.tree-link--root{stroke:var(--root)}.tree-link--dashed{stroke-dasharray:7 6}.tree-link--ghost{stroke:#7a5a3c73;stroke-dasharray:3 6}.tree-rootlet{fill:none;stroke:var(--root);stroke-width:2.5px;stroke-linecap:round;opacity:.55;animation:.6s ease-out .7s both tree-fade-in}.tree-leaf{transform-box:fill-box;transform-origin:0;animation:.6s ease-out .8s both tree-fade-in,3.2s ease-in-out 1.4s infinite alternate leaf-sway}.tree-leaf-blade{fill:var(--leaf);stroke:var(--leaf-dark);stroke-width:.8px}.tree-leaf-rib{fill:none;stroke:var(--leaf-dark);stroke-width:.8px;opacity:.7}@keyframes leaf-sway{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.tree-union{animation:.6s ease-out .65s both tree-fade-in}.tree-union-line{fill:none;stroke:var(--color-accent);stroke-width:2.5px;stroke-linecap:round}.tree-union-badge{fill:var(--color-surface);stroke:var(--color-accent);stroke-width:1.5px}.tree-union-ring{fill:none;stroke:var(--color-accent);stroke-width:1.6px}.tree-union--ended .tree-union-line{stroke:#b3a68e;stroke-dasharray:5 5}.tree-union--ended .tree-union-badge,.tree-union--ended .tree-union-ring{stroke:#b3a68e}.tree-node{cursor:pointer;transition:transform var(--focus-transition) var(--focus-ease);outline:none;animation:.6s ease-out .3s both tree-fade-in}.tree-node-box{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1.5px;transition:stroke .15s,fill .15s}.tree-node--male .tree-node-box{stroke:#c3d3e2}.tree-node--female .tree-node-box{stroke:#e7c6d0}.tree-node:hover .tree-node-box{stroke:var(--color-primary)}.tree-node--selected .tree-node-box,.tree-node:focus-visible .tree-node-box{stroke:var(--color-primary);stroke-width:2.5px}.tree-node-ring{fill:none;stroke:var(--color-accent);stroke-width:2.5px}.tree-node--focus .tree-node-box{fill:#fffaf0}.tree-avatar{fill:var(--unknown-bg)}.tree-avatar-initials{dominant-baseline:central;text-anchor:middle;fill:var(--unknown-fg);font-family:var(--font-display);font-size:16px;font-weight:600}.tree-node--male .tree-avatar{fill:var(--male-bg)}.tree-node--male .tree-avatar-initials{fill:var(--male-fg)}.tree-node--female .tree-avatar{fill:var(--female-bg)}.tree-node--female .tree-avatar-initials{fill:var(--female-fg)}.tree-node--focus .tree-avatar{stroke:var(--color-accent);stroke-width:2px}.tree-node--deceased .tree-avatar,.tree-node--deceased .tree-avatar-initials{opacity:.6}.tree-node--deceased .tree-avatar-photo{filter:grayscale(.6)}.tree-node--deceased .tree-node-name{color:#4f483d}.tree-node--underground .tree-node-box{fill:#fffaf1}.tree-node--placeholder .tree-node-box,.tree-node--duplicate .tree-node-box{stroke-dasharray:6 4}.tree-node-content{flex-direction:column;justify-content:center;height:100%;line-height:1.25;display:flex}.tree-node-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);color:var(--color-text);font-size:15.5px;font-weight:600;overflow:hidden}.tree-node-years{color:var(--color-muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12.5px}.tree-node-more circle{fill:var(--color-surface);stroke:var(--color-border-strong);stroke-width:1.2px}.tree-node-more path{fill:none;stroke:var(--color-muted);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.tree-node--ghost .tree-node-box{fill:#fffdf88c;stroke:var(--color-border-strong);stroke-dasharray:6 5}.tree-ghost-icon{fill:var(--color-primary-soft);transition:fill .15s}.tree-ghost-plus{stroke:var(--color-primary);stroke-width:2px;stroke-linecap:round}.tree-ghost-label{dominant-baseline:middle;fill:var(--color-muted);font-size:14px;font-weight:500}.tree-node--ghost:hover .tree-node-box,.tree-node--ghost:focus-visible .tree-node-box{fill:var(--color-surface);stroke:var(--color-primary)}.tree-node--ghost:hover .tree-ghost-icon{fill:#2f5d502e}.tree-node--ghost:hover .tree-ghost-label{fill:var(--color-primary)}.family-tree-controls{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:999px;align-items:center;gap:.15rem;padding:.3rem;display:flex;position:absolute;bottom:1.25rem;right:1.25rem}.family-tree-controls button{min-width:2.3rem;height:2.3rem;color:var(--color-primary);background:0 0;border:none;border-radius:999px;padding:0 .6rem;font-size:1.15rem}.family-tree-controls button:hover:not(:disabled){background:var(--color-primary-soft)}.family-tree-controls .family-tree-controls-text{font-size:.9rem;font-weight:500}.family-tree-controls-divider{background:var(--color-border);width:1px;height:1.3rem}@keyframes tree-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.tree-node,.tree-link,.tree-union,.tree-leaf,.tree-rootlet,.tree-trunk,.tree-canopy,.tree-canopy ellipse,.tree-canopy circle,.tree-generation-label,.tree-card{transition:none;animation:none}}.choice-group{border:none;flex-direction:column;gap:.4rem;min-width:0;margin:0;padding:0;display:flex;position:relative}.choice-group legend{margin-bottom:.35rem;padding:0;font-size:.92rem;font-weight:500}.choice-group-options{flex-wrap:wrap;gap:.4rem;display:flex}.choice{cursor:pointer;position:relative}.choice-input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice-label{border:1px solid var(--color-border-strong);color:var(--color-text);background:#fffefb;border-radius:999px;align-items:center;padding:.45rem .85rem;font-size:.92rem;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.choice:hover .choice-label{border-color:var(--color-primary);background:var(--color-primary-soft)}.choice-input:checked+.choice-label{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:0 2px 6px #2f5d5040}.choice-input:focus-visible+.choice-label{outline:2px solid var(--color-primary);outline-offset:2px}.choice-group--sm .choice-label{padding:.3rem .65rem;font-size:.85rem}.switch{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;align-items:center;gap:.7rem;padding:.75rem .9rem;display:flex;position:relative}.switch-input{opacity:0;position:absolute}.switch-track{background:var(--color-border-strong);border-radius:999px;flex:none;width:2.4rem;height:1.4rem;transition:background-color .2s;position:relative}.switch-thumb{background:#fff;border-radius:50%;width:1.1rem;height:1.1rem;transition:transform .2s;position:absolute;top:.15rem;left:.15rem;box-shadow:0 1px 3px #0003}.switch-input:checked+.switch-track{background:var(--color-primary)}.switch-input:checked+.switch-track .switch-thumb{transform:translate(1rem)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--color-primary);outline-offset:2px}.side-panel{background:var(--color-surface);border-left:1px solid var(--color-border);flex-direction:column;width:26rem;max-width:100%;min-height:0;animation:.25s ease-out panel-in;display:flex;overflow:hidden;box-shadow:-10px 0 30px #3b2f1e14}@keyframes panel-in{0%{opacity:0;transform:translate(14px)}}@media (width<=720px){.side-panel{border-left:none;width:auto;position:absolute;inset:0}}@media (prefers-reduced-motion:reduce){.side-panel{animation:none}}.side-panel-body{flex:1;min-height:0;padding:1.25rem 1.5rem 1.5rem;position:relative;overflow-y:auto}.side-panel-footer{border-top:1px solid var(--color-border);background:#fffdf8f2;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.85rem 1.5rem;display:flex;box-shadow:0 -6px 16px #3b2f1e0d}.panel-hero{text-align:center;background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--unknown-bg), var(--color-surface));border-bottom:1px solid var(--color-border);flex-direction:column;align-items:center;padding:1.6rem 1.5rem 1.2rem;display:flex;position:relative}.panel-hero--male{background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--male-bg), var(--color-surface))}.panel-hero--female{background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--female-bg), var(--color-surface))}.panel-hero--share{background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--color-accent-soft), var(--color-surface))}.panel-hero--history{background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--sky-top), var(--color-surface))}.panel-hero-switch{margin-top:.4rem;font-size:.88rem}.panel-hero--trash{background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--soil-top), var(--color-surface))}.panel-hero--add{background:radial-gradient(circle at 50% -40%, #ffffffb3, transparent 60%), linear-gradient(180deg, var(--canopy-light), var(--color-surface))}.panel-hero h2{margin:.7rem 0 0;font-size:1.5rem;line-height:1.2}.panel-hero-text{flex-direction:column;align-items:center;min-width:0;display:flex}.panel-hero-eyebrow{color:var(--color-primary);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.panel-hero--compact{text-align:left;flex-direction:row;gap:.9rem;padding:1rem 3rem 1rem 1.5rem}.panel-hero--compact .panel-hero-text{align-items:flex-start}.panel-hero--compact .avatar--lg{border-width:2px;width:3.2rem;height:3.2rem;font-size:1.2rem}.panel-hero--compact h2{margin:0;font-size:1.25rem}.panel-close{position:absolute;top:.75rem;right:.75rem}.panel-hero-years{color:var(--color-muted);font-variant-numeric:tabular-nums;margin:.2rem 0 0}.panel-hero-badges{flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.6rem 0 0;display:flex}.panel-hero-badges .badge{align-items:center;gap:.25rem;display:inline-flex}.panel-hero-relation{color:var(--color-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin:.4rem 0 0;display:flex}.person-chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .6rem .15rem .2rem;font-weight:500;display:inline-flex}.avatar{background:var(--unknown-bg);width:3.4rem;height:3.4rem;color:var(--unknown-fg);font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:1.3rem;font-weight:600;display:inline-grid}.avatar--male{background:var(--male-bg);color:var(--male-fg)}.avatar--female{background:var(--female-bg);color:var(--female-fg)}.avatar--lg{border:3px solid var(--color-surface);width:5rem;height:5rem;box-shadow:0 0 0 2px var(--color-accent), var(--shadow-md);font-size:1.8rem}.avatar--sm{width:2.4rem;height:2.4rem;font-size:.95rem}.avatar--xs{width:1.6rem;height:1.6rem;font-size:.7rem}.avatar--photo{background:var(--color-bg-deep);overflow:hidden}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-edit{display:inline-block;position:relative}.avatar-edit--busy{opacity:.55;pointer-events:none}.avatar-edit-button{border:2px solid var(--color-surface);background:var(--color-primary);color:#fff;width:2rem;height:2rem;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:50%;place-items:center;transition:background-color .15s,transform .15s;display:grid;position:absolute;bottom:-.15rem;right:-.15rem}.avatar-edit-button:hover{background:var(--color-primary-hover);transform:scale(1.06)}.avatar-edit-button:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.avatar--ghost{background:var(--color-surface);color:var(--color-primary)}.facts{grid-template-columns:1fr 1fr;gap:.6rem;margin:0;display:grid}.fact{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);padding:.65rem .8rem}.fact--wide{grid-column:1/-1}.fact dt{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;display:flex}.fact dd{margin:.2rem 0 0;font-weight:500}.fact-place{color:var(--color-muted);align-items:center;gap:.25rem;margin-top:.15rem;font-size:.9rem;font-weight:400;display:flex}.notes{border-left:3px solid var(--color-accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--color-bg);font-family:var(--font-display);white-space:pre-wrap;margin:1rem 0 0;padding:.85rem 1rem;font-size:1.02rem}.hint{border-radius:var(--radius);background:var(--color-accent-soft);color:#6f5524;margin:0 0 1rem;padding:.65rem .85rem;font-size:.9rem}.form-section .hint{margin:0}.panel-section{margin-top:1.4rem}.relatives h3{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.75rem;font-weight:600;display:flex}.count{background:var(--color-bg-deep);letter-spacing:0;border-radius:999px;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .35rem;font-size:.7rem;display:inline-grid}.relatives ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.relative-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);align-items:center;transition:border-color .15s,box-shadow .15s;display:flex}.relative-item:hover,.relative-item--editing{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.relative-item-main{border-radius:var(--radius);min-width:0;color:var(--color-text);text-align:left;background:0 0;border:none;flex:1;justify-content:flex-start;gap:.7rem;padding:.5rem .6rem}.relative-item-main:hover:not(:disabled){background:var(--color-primary-soft)}.relative-item-text{flex-direction:column;min-width:0;display:flex}.relative-item-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:1.02rem;font-weight:600;overflow:hidden}.relative-item-meta{text-overflow:ellipsis;white-space:nowrap;color:var(--color-muted);font-size:.82rem;font-weight:400;overflow:hidden}.relative-item-edit{margin-right:.35rem}.side-panel-form,.person-form{flex-direction:column;gap:.9rem;display:flex}.form-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:.75rem;padding:.95rem 1rem 1.05rem;display:flex}.form-section-title{color:var(--color-primary);align-items:center;gap:.45rem;margin:0;font-size:1.05rem;display:flex}.side-panel-body .side-panel-form{margin:0}.inline-editor{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);flex-direction:column;gap:.75rem;margin:.4rem 0 .6rem;padding:.9rem;animation:.2s ease-out tree-fade-in;display:flex}.inline-editor-group{flex-direction:column;gap:.35rem;display:flex}.inline-editor-label{font-size:.92rem;font-weight:500}.trash-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.trash-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);align-items:center;gap:.7rem;padding:.6rem .7rem;display:flex}.trash-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.trash-item-text .relative-item-meta{white-space:normal}.empty-state{text-align:center;color:var(--leaf-dark);flex-direction:column;align-items:center;gap:.25rem;padding:2rem 1rem;display:flex}.empty-state p{color:var(--color-text);margin:0}.empty-state .muted{color:var(--color-muted);font-size:.9rem}.tree-search{width:min(20rem,40vw);position:relative}.tree-search-field input{padding-right:2rem}.tree-search-field input::-webkit-search-cancel-button{cursor:pointer}.tree-search-hint{border:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-muted);font-family:var(--font-body);border-radius:5px;padding:0 .4rem;font-size:.75rem;line-height:1.4;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.tree-search-popover{z-index:5;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-width:18rem;max-height:22rem;box-shadow:var(--shadow-md);padding:.35rem;animation:.15s ease-out tree-fade-in;position:absolute;top:calc(100% + .4rem);left:0;right:0;overflow-y:auto}.tree-search-status{color:var(--color-muted);margin:0;padding:.6rem .7rem;font-size:.9rem}.tree-search-list{margin:0;padding:0;list-style:none}.tree-search-option{border-radius:calc(var(--radius) - 2px);cursor:pointer;align-items:center;gap:.65rem;padding:.45rem .55rem;display:flex}.tree-search-option--active{background:var(--color-primary-soft)}.member-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);align-items:center;gap:.7rem;padding:.6rem .7rem;display:flex}.member-text{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.member-text .badge{font-family:var(--font-body);vertical-align:middle;margin-left:.25rem;font-size:.7rem}.invite-link{border:1px dashed var(--color-primary);border-radius:var(--radius);background:var(--color-primary-soft);grid-template-columns:1fr auto;gap:.5rem;padding:.75rem;animation:.25s ease-out tree-fade-in;display:grid}.invite-link input{font-size:.85rem}.invite-link-note{color:var(--color-muted);grid-column:1/-1;margin:0;font-size:.82rem}.invitation-from{color:var(--color-muted);margin:.35rem 0 0;font-size:1.05rem}.invitation-from strong{color:var(--color-text)}.invitation-ticket{text-align:center;background:radial-gradient(circle at 50% 0%, var(--color-accent-soft), transparent 60%), var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;align-items:center;gap:.75rem;margin-top:1.6rem;padding:2.4rem 1.5rem 1.4rem;display:flex;position:relative}.invitation-ticket:after{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent-bright));border-radius:0 0 4px 4px;height:4px;position:absolute;inset:auto 1.25rem 0}.invitation-ticket h1{overflow-wrap:anywhere;margin:0;font-size:clamp(1.6rem,4vw,2rem);line-height:1.15}.invitation-seal{border:4px solid var(--color-bg);background:linear-gradient(145deg, var(--color-primary), var(--color-primary-deep));width:3.6rem;height:3.6rem;color:var(--color-accent-bright);box-shadow:var(--shadow-md);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.invitation-role{border-radius:var(--radius);background:var(--color-primary-soft);text-align:left;align-items:flex-start;gap:.65rem;width:100%;padding:.75rem .9rem;display:flex}.invitation-role>span:last-child{flex-direction:column;gap:.1rem;font-size:.92rem;display:flex}.invitation-role-icon{background:var(--color-surface);width:2rem;height:2rem;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;display:grid}.invitation-expires{color:var(--color-muted);align-items:center;gap:.35rem;margin:0;font-size:.85rem;display:inline-flex}.invitation-ticket--off{filter:grayscale(.85);opacity:.75;box-shadow:var(--shadow-sm)}.invitation-off{border:1px solid color-mix(in srgb, var(--color-accent) 35%, var(--color-border));border-radius:var(--radius);background:var(--color-accent-soft);align-items:flex-start;gap:.7rem;padding:.85rem 1rem;display:flex}.invitation-off p{margin:.15rem 0 0}.invitation-off-icon{background:var(--color-surface);width:2rem;height:2rem;color:color-mix(in srgb, var(--color-accent) 70%, var(--color-text));border-radius:50%;flex:none;place-items:center;display:grid}.invitation-note{text-align:center;margin:0;font-size:.85rem}.invitation-note svg{vertical-align:-2px;margin-right:.25rem}.invitation-ticket--loading{gap:.9rem;padding-top:2.8rem}.invitation-skeleton{background:linear-gradient(90deg, var(--color-bg-deep) 25%, var(--color-bg) 50%, var(--color-bg-deep) 75%);background-size:200% 100%;border-radius:999px;animation:1.4s linear infinite shimmer;display:block}.invitation-skeleton--seal{width:3.6rem;height:3.6rem;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.invitation-skeleton--line{width:60%;height:.8rem}.invitation-skeleton--title{width:80%;height:1.8rem}.history-link{border:1px dashed var(--color-border-strong);border-radius:var(--radius);width:100%;color:var(--color-muted);background:0 0;justify-content:flex-start;margin-top:1.4rem;padding:.6rem .8rem;font-size:.9rem}.history-link:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.activity-day+.activity-day{margin-top:1.25rem}.activity-day-label{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin:0 0 .5rem;font-size:.75rem;font-weight:600}.activity-list{margin:0;padding:0;list-style:none;position:relative}.activity-list:before{content:"";background:var(--color-border);width:2px;position:absolute;top:.9rem;bottom:.9rem;left:.9rem}.activity{gap:.75rem;padding:.45rem 0;display:flex;position:relative}.activity-icon{border:2px solid var(--color-surface);background:var(--color-primary-soft);width:1.8rem;height:1.8rem;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.activity-body{flex:1;min-width:0}.activity-sentence{margin:.1rem 0 0;line-height:1.45}.activity-person{color:var(--color-primary);font:inherit;font-family:var(--font-display);text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:600;-webkit-text-decoration:underline #2f5d504d;text-decoration:underline #2f5d504d;display:inline}.activity-person:hover:not(:disabled){background:0 0;text-decoration-color:currentColor}.activity-time{color:var(--color-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.activity-details{margin-top:.35rem;font-size:.88rem}.activity-details summary{cursor:pointer;color:var(--color-muted)}.activity-details dl{border-radius:var(--radius);background:var(--color-bg);margin:.4rem 0 0;padding:.5rem .7rem}.activity-change{padding:.2rem 0}.activity-change dt{color:var(--color-muted);font-size:.78rem;font-weight:600}.activity-change dd{margin:0}.activity-before{color:var(--color-muted);-webkit-text-decoration:line-through #776e6080;text-decoration:line-through #776e6080}.activity-after{font-weight:500}.load-more{width:100%;margin-top:1rem}.life-title{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);align-items:center;gap:.4rem;margin:0 0 .6rem;font-size:.75rem;font-weight:600;display:flex}.life-empty{margin:0 0 .6rem;font-size:.9rem}.life-list{margin:0;padding:0;list-style:none;position:relative}.life-list:before{content:"";background:linear-gradient(var(--leaf), var(--bark-light));opacity:.45;width:2px;position:absolute;top:1rem;bottom:1rem;left:.95rem}.life-item{align-items:flex-start;gap:.75rem;padding:.4rem 0;display:flex;position:relative}.life-icon{border:2px solid var(--color-surface);background:var(--canopy-light);width:1.9rem;height:1.9rem;color:var(--leaf-dark);border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.life-body{flex:1;min-width:0}.life-heading{margin:.15rem 0 0}.life-heading strong{font-family:var(--font-display);font-size:1.02rem}.life-detail{color:var(--color-text)}.life-meta{color:var(--color-muted);align-items:center;gap:.25rem;margin:.05rem 0 0;font-size:.86rem;display:flex}.life-notes{white-space:pre-wrap;margin:.3rem 0 0;font-size:.88rem}.life-add{margin-top:.4rem}.back-link{color:var(--color-muted);margin-bottom:1rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--color-primary)}.file-drop{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-muted);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:.35rem;padding:1.75rem 1.25rem;transition:border-color .15s,background-color .15s,transform .15s;display:flex}.file-drop:hover,.file-drop:focus-within,.file-drop--over{border-color:var(--color-primary);background:var(--color-primary-soft)}.file-drop--over{transform:scale(1.01)}.file-drop--chosen{border-style:solid;border-color:var(--color-primary)}.file-drop--invalid{border-color:var(--color-danger)}.file-drop-icon{background:var(--color-primary-soft);width:3.25rem;height:3.25rem;color:var(--color-primary);border-radius:50%;place-items:center;margin-bottom:.35rem;display:grid}.file-drop--chosen .file-drop-icon{background:var(--color-primary);color:var(--color-on-primary)}.file-drop-name{overflow-wrap:anywhere;max-width:100%;color:var(--color-text);font-weight:600}.file-drop-hint{font-size:.88rem}.import-merge-note{border-radius:var(--radius);background:var(--color-accent-soft);gap:.5rem;margin:0;padding:.75rem .9rem;font-size:.92rem;line-height:1.5;display:flex}.import-merge-note .app-icon{color:var(--color-accent);flex:none;margin-top:.2rem}.import-progress{color:var(--color-muted);flex-direction:column;gap:.5rem;font-size:.9rem;display:flex}.import-progress-bar{background:var(--color-primary-soft);border-radius:999px;height:6px;position:relative;overflow:hidden}.import-progress-bar i{background:var(--color-primary);border-radius:999px;width:35%;animation:1.3s ease-in-out infinite import-progress;position:absolute;inset:0 auto 0 0}@keyframes import-progress{0%{transform:translate(-100%)}to{transform:translate(290%)}}.import-help{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-surface) 60%, var(--color-bg));flex-direction:column;gap:.75rem;padding:1.5rem;animation:.5s ease-out .12s both auth-form-in;display:flex}.import-help h2{align-items:center;gap:.45rem;margin:0;font-size:1.05rem;display:flex}.import-help h2:not(:first-child){margin-top:.75rem}.import-help h2 .app-icon{color:var(--color-primary)}.import-help p{margin:0;line-height:1.5}.import-sources{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.import-sources li{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:.25rem .7rem;font-size:.85rem}.import-checklist{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.import-checklist li{padding-left:1.4rem;position:relative}.import-checklist li:before{content:"✓";color:var(--color-primary);font-weight:700;position:absolute;left:.15rem}.import-help-note{font-size:.88rem}.import-help-privacy{border-top:1px solid var(--color-border);gap:.5rem;padding-top:.9rem;font-size:.9rem;display:flex;margin-top:.5rem!important}.import-help-privacy .app-icon{color:var(--color-primary);flex:none;margin-top:.15rem}.import-result{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:40rem;box-shadow:var(--shadow-md);flex-direction:column;gap:1.25rem;margin:0 auto;padding:2rem 1.75rem;animation:.45s ease-out both auth-form-in;display:flex}.import-result-head{text-align:center;flex-direction:column;align-items:center;gap:.35rem;display:flex}.import-result-head .auth-status-icon{margin-bottom:.6rem}.import-result-head h1{margin:0;font-size:clamp(1.6rem,4vw,2rem)}.import-result-head .muted{overflow-wrap:anywhere;margin:0}.import-stat-icon{color:var(--color-accent);margin:0 auto .3rem;display:block}.import-details{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem .9rem}.import-details summary{align-items:center;gap:.4rem;display:flex}.import-details p{margin:.5rem 0 0}.import-result-actions{flex-wrap:wrap;justify-content:center}.import-stats{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.import-stats li{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);text-align:center;padding:.7rem}.import-stats strong{font-family:var(--font-display);color:var(--color-primary);font-size:1.5rem;display:block}.import-details summary{cursor:pointer;font-weight:500}.import-details ul{max-height:14rem;margin:.4rem 0 0;padding-left:1.2rem;font-size:.9rem;overflow-y:auto}.export-intro{margin:0;font-size:.92rem}.history-link--tight{margin-top:.5rem}.duplicate-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.duplicate-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.duplicate-head{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.duplicate-reasons{color:var(--color-muted);font-size:.82rem}.duplicate-person{align-items:center;gap:.6rem;min-width:0;display:flex}.duplicate-item .actions{margin-top:.15rem}.merge-back{margin-bottom:.75rem}.merge-cards{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.9rem;display:grid}.merge-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);text-align:center;flex-direction:column;align-items:center;gap:.3rem;min-width:0;padding:.8rem .6rem;transition:border-color .2s,box-shadow .2s,opacity .2s;display:flex}.merge-card:not(.merge-card--keep){opacity:.72;border-style:dashed}.merge-card--keep{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.merge-card .relative-item-name,.merge-card .relative-item-meta{overflow-wrap:anywhere;white-space:normal;max-width:100%}.merge-card-label{color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:600}.merge-card--keep .merge-card-label{color:var(--color-primary)}.merge-rows{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.merge-row{border-bottom:1px solid var(--color-border);flex-direction:column;gap:.2rem;padding:.55rem 0;display:flex}.merge-row:last-child{border-bottom:0}.merge-row-label{color:var(--color-muted);font-size:.8rem}.merge-row-value{overflow-wrap:anywhere}.merge-submit{width:100%;margin-top:1rem}@media (prefers-reduced-motion:reduce){.merge-card{transition:none}}.places-filter{margin-bottom:.5rem}.places-similar-toggle{align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.9rem;display:inline-flex}.places-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.place-item{border-bottom:1px solid var(--color-border);padding:.55rem 0}.place-item:last-child{border-bottom:0}.place-row{align-items:center;gap:.55rem;display:flex}.place-icon{color:var(--color-accent);flex:none}.place-text{flex-direction:column;flex:1;min-width:0;display:flex}.place-name{overflow-wrap:anywhere}.place-text .relative-item-meta{white-space:normal}.place-similar{color:#8a6526}.place-editor{flex-direction:column;gap:.4rem;margin:.5rem 0 .2rem 1.6rem;display:flex}.place-editor .hint{margin:0}.import-duplicates{border-radius:var(--radius);background:var(--color-accent-soft);color:#6f5220;align-items:flex-start;gap:.6rem;margin:1rem 0;padding:.75rem .9rem;display:flex}.import-duplicates p{margin:0}.import-duplicates .app-icon{flex:none;margin-top:.15rem}.activity-meta{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.activity-undo{align-items:center;gap:.25rem;font-size:.8rem;display:inline-flex}.activity--undone .activity-sentence{color:var(--color-muted)}.activity--undone .activity-icon{opacity:.55}.activity-confirm{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.4rem;font-size:.88rem;display:flex}.activity-undo-error{margin:.4rem 0 0;font-size:.85rem}.toolbar-badge{background:var(--color-accent);color:#fff;border-radius:999px;place-items:center;min-width:1.15rem;height:1.15rem;padding:0 .3rem;font-size:.72rem;font-weight:700;line-height:1;display:inline-grid}.link-button--danger{color:var(--color-danger);text-decoration-color:#b3261e59}.connections-intro{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--leaf-dark);flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.25rem;display:flex}.connections-intro>.app-icon{box-sizing:content-box;background:var(--color-primary-soft);color:var(--color-primary);border-radius:12px;padding:.55rem}.connections-intro p,.connections-intro ul{color:var(--color-text);margin:0}.connections-intro ul{flex-direction:column;gap:.35rem;padding-left:1.1rem;font-size:.92rem;display:flex}.connections-title{align-items:center;gap:.4rem;display:flex}.connection-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:.55rem;margin-bottom:.75rem;padding:.75rem;display:flex}.connection-card--incoming{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.connection-lead,.connection-reasons{margin:0;font-size:.88rem}.connection-reasons{color:var(--color-muted)}.connection-pair{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.connection-side{border-radius:var(--radius);background:var(--color-bg);text-align:center;flex-direction:column;align-items:center;gap:.2rem;min-width:0;padding:.55rem .4rem;display:flex}.connection-side .relative-item-name,.connection-side .relative-item-meta{overflow-wrap:anywhere;white-space:normal;max-width:100%}.connection-label{max-width:100%;color:var(--color-muted);letter-spacing:.03em;overflow-wrap:anywhere;text-transform:uppercase;font-size:.72rem;font-weight:600}.connection-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.connection-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.55rem 0;display:flex}.connection-row:last-child{border-bottom:0}.connection-row .relative-item-text{flex:1;min-width:0}.connection-row .relative-item-meta{white-space:normal}.connection-row-actions{gap:.75rem;display:flex}.connection-confirm,.connection-row .form-message{flex-basis:100%}.connections-participation{border-top:1px dashed var(--color-border-strong);flex-direction:column;align-items:flex-start;gap:.4rem;margin-top:1.25rem;padding-top:.9rem;font-size:.88rem;display:flex}.connections-participation p{margin:0}.connected-source{color:var(--color-muted);margin:0 0 .75rem;font-size:.9rem}.connected-mine{margin-bottom:.9rem}.relative-item--living{opacity:.8;align-items:center;gap:.6rem;padding:.45rem .55rem;display:flex}.connected-import{margin-bottom:.9rem}.import-box{border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary-soft);flex-direction:column;gap:.6rem;margin-bottom:1rem;padding:.85rem;display:flex}.import-box p{margin:0}.import-warning{border-radius:var(--radius);background:var(--color-accent-soft);color:#6f5220;padding:.6rem .7rem;font-size:.9rem}.import-warning ul{flex-direction:column;gap:.4rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.import-warning li{flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.import-ancestors{align-items:center;gap:.45rem;font-size:.92rem;display:inline-flex}.account-page{flex-direction:column;gap:1.25rem;max-width:52rem;margin:0 auto;padding-top:2.5rem;padding-bottom:3rem;display:flex}.account-profile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:.45s ease-out both auth-form-in;overflow:hidden}.account-profile-band{background:radial-gradient(circle at 85% 120%, color-mix(in srgb, var(--color-accent-bright) 45%, transparent), transparent 55%), linear-gradient(135deg, var(--color-primary-deep), var(--color-primary));height:5.5rem}.account-profile-body{align-items:flex-start;gap:1.25rem;padding:0 1.75rem 1.5rem;display:flex}.account-avatar{border:4px solid var(--color-surface);background:linear-gradient(145deg, var(--color-accent-bright), var(--color-accent));width:6rem;height:6rem;color:var(--color-primary-deep);font-family:var(--font-display);box-shadow:var(--shadow-md);border-radius:50%;flex:none;place-items:center;margin-top:-3rem;font-size:2.1rem;font-weight:600;display:grid}.account-profile-text{min-width:0;padding-top:.9rem}.account-profile-text h1{overflow-wrap:anywhere;margin:.1rem 0 .35rem;font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.15}.account-data{margin:0;position:relative}.account-data dd{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0;display:flex}.account-data-icon{color:var(--color-muted)}.account-chip{border-radius:999px;align-items:center;gap:.25rem;padding:.12rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.account-chip--ok{background:var(--color-primary-soft);color:var(--color-primary)}.account-chip--pending{background:var(--color-accent-soft);color:color-mix(in srgb, var(--color-accent) 70%, var(--color-text))}.account-stats{margin:.45rem 0 0;font-size:.92rem}.account-verify{border-radius:var(--radius);background:var(--color-accent-soft);color:color-mix(in srgb, var(--color-accent) 70%, var(--color-text));flex-wrap:wrap;align-items:center;gap:.6rem .75rem;margin:0 1.75rem 1rem;padding:.75rem .9rem;display:flex}.account-verify p{color:var(--color-text);flex:14rem;margin:0;font-size:.92rem}.account-profile-actions{border-top:1px solid var(--color-border);justify-content:flex-end;padding:.75rem 1.75rem;display:flex}.account-grid{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.25rem;display:grid}.account-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.5rem;animation:.45s ease-out both auth-form-in;display:flex}.account-grid .account-card:nth-child(2){animation-delay:60ms}.account-card h2{margin:0;font-size:1.2rem}.account-card p{margin:0}.account-card>.button-secondary-link{margin-top:auto}.account-card-icon{background:var(--color-primary-soft);width:2.6rem;height:2.6rem;color:var(--color-primary);border-radius:12px;place-items:center;display:grid}.account-card-icon--danger{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger)}.account-transfer-tip{background:var(--color-accent-soft);border-radius:var(--radius);gap:.5rem;padding:.7rem .85rem;display:flex}.account-transfer-tip svg{color:var(--color-accent);flex:none;margin-top:.2rem}.account-details{align-items:stretch;animation-delay:40ms}.account-details-head{align-items:center;gap:1rem;display:flex}.account-details-head p{margin-top:.15rem}.account-rows{margin:.4rem 0 0;padding:0;list-style:none}.account-row{border-top:1px solid var(--color-border);padding:.85rem 0}.account-row:last-child{padding-bottom:0}.account-row-view{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;display:flex}.account-row-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;flex:0 0 4.5rem;font-size:.85rem;font-weight:600}.account-row-value{overflow-wrap:anywhere;flex:10rem;min-width:0}.account-row-done{margin-top:.5rem}.account-row-form{background:var(--color-bg);border-radius:var(--radius);flex-direction:column;gap:.8rem;max-width:26rem;margin-top:.9rem;padding:1rem;display:flex}.account-row-form .field-hint{margin:0}.account-danger{border-color:color-mix(in srgb, var(--color-danger) 28%, var(--color-border));background:linear-gradient(180deg, color-mix(in srgb, var(--color-danger) 4%, var(--color-surface)), var(--color-surface) 70%);animation-delay:.12s}.account-danger-head{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;width:100%;display:flex}.account-danger-head>div{flex:14rem}.account-danger-head p{margin-top:.15rem}.account-confirm{border-top:1px dashed color-mix(in srgb, var(--color-danger) 30%, var(--color-border));flex-direction:column;gap:.7rem;width:100%;margin-top:.4rem;padding-top:1rem;display:flex}.account-confirm-title{font-size:1.05rem}.account-trees{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.account-trees li{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);align-items:flex-start;gap:.55rem;padding:.6rem .8rem;display:flex}.account-trees-icon{color:var(--color-primary);flex:none;margin-top:.15rem}.account-confirm .field{max-width:24rem}@media (width<=640px){.account-page{padding-top:1.25rem}.account-profile-body{flex-direction:column;align-items:flex-start;gap:0;padding:0 1.25rem 1.25rem}.account-avatar{width:5rem;height:5rem;margin-top:-2.5rem;font-size:1.75rem}.account-card{padding:1.25rem}.account-danger-head .button-danger{width:100%}.account-confirm .actions>button{flex:auto}}.auth-note{color:var(--color-muted);text-align:center;margin:0;font-size:.85rem}a.app-header-user{align-items:center;gap:.5rem;min-width:0;text-decoration:none;display:inline-flex}.app-header-user-icon{background:var(--color-primary-soft);width:2rem;height:2rem;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;display:inline-grid}.app-header-user-name{white-space:nowrap;text-overflow:ellipsis;max-width:14rem;overflow:hidden}.verify-chip-text{text-overflow:ellipsis;overflow:hidden}.app-header-user-icon{letter-spacing:.02em;font-size:.78rem;font-weight:700;position:relative}.app-header-user-dot{border:2px solid var(--color-surface);background:var(--color-accent);border-radius:50%;width:.6rem;height:.6rem;position:absolute;top:-1px;right:-1px}.app-header-link{align-items:center;gap:.4rem;display:inline-flex}.app-header-link-icon{display:none}@media (width<=640px){.app-header{gap:.5rem;padding:0 .75rem 0 1rem}.app-header .brand-mark-name{font-size:1.15rem}.app-header-link{border-radius:50%;place-items:center;width:2.6rem;height:2.6rem;margin-left:auto;display:grid}.app-header-link:hover,.app-header-link.router-link-active{background:var(--color-primary-soft)}.app-header-link-icon{width:21px;height:21px;color:var(--color-primary);display:block}.app-header-link-text,.app-header-user-name{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-header .verify-chip,.app-header-logout{display:none}.app-header-user{margin-left:0}.app-header-user-icon{width:2.4rem;height:2.4rem;font-size:.85rem}}a.app-header-user:hover{color:var(--color-text);text-decoration:underline}.auth-split{background:var(--color-surface);grid-template-columns:minmax(22rem,1.05fr) minmax(0,1fr);min-height:100dvh;display:grid}.auth-showcase{color:var(--color-on-primary);background:radial-gradient(circle at 20% 15%, color-mix(in srgb, var(--color-accent-bright) 22%, transparent), transparent 42%), radial-gradient(circle at 90% 95%, color-mix(in srgb, var(--grass) 28%, transparent), transparent 50%), linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-hover) 55%, var(--color-primary-deep) 100%);flex-direction:column;gap:2rem;padding:2.5rem 3rem;display:flex;position:relative;overflow:hidden}.auth-showcase:after{content:"";pointer-events:none;background-image:radial-gradient(#ffffff0f 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0}.auth-showcase>*{z-index:1;position:relative}.auth-showcase-brand .brand-mark-disc{fill:var(--color-on-primary)}.auth-showcase-brand .brand-mark-branches{stroke:var(--color-primary)}.auth-showcase-brand .brand-mark-leaf{fill:var(--color-primary)}.auth-showcase-brand .brand-mark-name{color:var(--color-on-primary)}.auth-showcase-body{flex-direction:column;flex:1;justify-content:center;width:100%;max-width:30rem;margin:0 auto;display:flex}.auth-showcase-title{font-family:var(--font-display);margin:0;font-size:clamp(1.9rem,3vw,2.6rem);font-weight:600;line-height:1.15}.auth-showcase-lead{color:color-mix(in srgb, var(--color-on-primary) 80%, transparent);margin:.75rem 0 0;font-size:1.05rem}.auth-tree{width:100%;max-width:24rem;margin:1.75rem auto;overflow:visible}.auth-tree-ground{stroke:color-mix(in srgb, var(--color-on-primary) 25%, transparent);stroke-width:1.5px;stroke-dasharray:2 6;stroke-linecap:round}.auth-tree-lines path,.auth-tree-roots path{fill:none;stroke-width:3px;stroke-linecap:round}.auth-tree-lines path{stroke:color-mix(in srgb, var(--color-on-primary) 55%, transparent)}.auth-tree-roots path{stroke:color-mix(in srgb, var(--color-accent-bright) 75%, transparent)}.auth-tree-nodes circle,.auth-tree-ancestors circle{stroke-width:3px;animation:.6s cubic-bezier(.34,1.56,.64,1) both auth-node-in;animation-delay:calc(var(--i) * 90ms + .15s);transform-box:fill-box;transform-origin:50%}.auth-tree-nodes circle{fill:var(--canopy-light);stroke:var(--color-primary-hover)}.auth-tree-nodes .auth-tree-me{fill:var(--color-on-primary);stroke:var(--color-accent-bright)}.auth-tree-ancestors circle{fill:var(--color-accent-bright);stroke:var(--color-primary-deep)}@keyframes auth-node-in{0%{opacity:0;transform:scale(.3)}}.auth-features{color:color-mix(in srgb, var(--color-on-primary) 90%, transparent);flex-direction:column;gap:.75rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.auth-features li{align-items:flex-start;gap:.75rem;display:flex}.auth-feature-icon{background:color-mix(in srgb, var(--color-on-primary) 12%, transparent);width:2rem;height:2rem;color:var(--color-accent-bright);border-radius:50%;flex:none;place-items:center;display:inline-grid}.auth-main{background:radial-gradient(circle at 100% 0%, var(--color-accent-soft), transparent 35%), var(--color-bg);place-items:center;padding:3rem 1.5rem;display:grid}.auth-form{flex-direction:column;gap:1.1rem;width:100%;max-width:25rem;animation:.5s ease-out both auth-form-in;display:flex}@keyframes auth-form-in{0%{opacity:0;transform:translateY(12px)}}.auth-form-header h1{margin:.15rem 0 .35rem;font-size:2rem;line-height:1.15}.auth-form-header .muted{margin:0}.auth-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin:0;font-size:.78rem;font-weight:600}.auth-form .field{gap:.4rem}.field-label-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.auth-form input[type=text],.auth-form input[type=email],.auth-form input[type=password]{background:var(--color-surface);border-radius:12px;padding-top:.75rem;padding-bottom:.75rem}.auth-form input[aria-invalid=true]{border-color:var(--color-danger)}.auth-remember{color:var(--color-muted);font-size:.92rem}.auth-submit{--btn-shadow:inset 0 1px 0 #ffffff2e, 0 1px 2px #1b3a3133, 0 8px 18px -6px #2f5d5080;--btn-shadow-hover:inset 0 1px 0 #fff3, 0 2px 4px #1b3a312e, 0 14px 26px -10px #2f5d5099;border-radius:14px;width:100%;padding:.9rem 1.1rem;font-size:1rem}.auth-action{text-align:center;display:block}.auth-status-icon{background:var(--color-primary-soft);width:4.25rem;height:4.25rem;color:var(--color-primary);box-shadow:0 0 0 8px color-mix(in srgb, var(--color-primary) 5%, transparent);border-radius:50%;place-items:center;animation:.5s cubic-bezier(.34,1.56,.64,1) both auth-status-pop;display:grid}.auth-status-icon--ok{background:var(--color-primary);color:var(--color-on-primary)}.auth-status-icon--warn{background:var(--color-accent-soft);color:color-mix(in srgb, var(--color-accent) 70%, var(--color-text));box-shadow:0 0 0 8px color-mix(in srgb, var(--color-accent) 7%, transparent)}.auth-status-icon--loading .spinner{border-color:color-mix(in srgb, var(--color-primary) 25%, transparent);border-top-color:var(--color-primary);width:1.6rem;height:1.6rem}@keyframes auth-status-pop{0%{opacity:0;transform:scale(.6)}}.auth-status-tips{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-muted);flex-direction:column;gap:.5rem;margin:0;padding:.9rem 1rem;font-size:.92rem;list-style:none;display:flex}.auth-status-tips li,.auth-status-help{align-items:flex-start;gap:.55rem;display:flex}.auth-status-tips svg,.auth-status-help svg{color:var(--color-primary);flex:none;margin-top:.2rem}.auth-status-help{border-radius:var(--radius);background:var(--color-primary-soft);margin:0;padding:.85rem 1rem;font-size:.92rem}.auth-form .auth-switch{border-top:1px solid var(--color-border);padding-top:1.1rem}.input-icon{position:relative}.input-icon>input{padding-left:2.6rem}.input-icon--action>input{padding-right:2.9rem}.input-icon-symbol{color:var(--color-muted);pointer-events:none;transition:color .15s;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.input-icon:focus-within .input-icon-symbol{color:var(--color-primary)}.input-icon-action{color:var(--color-muted);background:0 0;border:none;border-radius:8px;padding:.4rem;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.input-icon-action:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary)}.input-icon-action:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.password-meter{color:var(--color-muted);align-items:center;gap:.6rem;font-size:.82rem;display:flex}.password-meter-bars{flex:1;grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.password-meter-bars i{background:var(--color-border);border-radius:2px;height:4px;transition:background-color .2s}.password-meter[data-level="0"] .password-meter-label,.password-meter[data-level="1"] .password-meter-label{color:var(--color-danger)}.password-meter[data-level="1"] .on{background:var(--color-danger)}.password-meter[data-level="2"] .on{background:var(--color-accent)}.password-meter[data-level="3"] .on,.password-meter[data-level="4"] .on{background:var(--color-primary)}.field-ok{color:var(--color-primary);align-items:center;gap:.3rem;margin:0;font-size:.82rem;display:inline-flex}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=880px){.auth-split{grid-template-rows:auto 1fr;grid-template-columns:1fr}.auth-showcase{gap:0;padding:1.25rem 1.25rem 1.5rem}.auth-showcase-body{margin:0}.auth-showcase-title{margin-top:1rem;font-size:1.45rem}.auth-showcase-lead{margin-top:.35rem;font-size:.95rem}.auth-showcase .auth-tree,.auth-features{display:none}.auth-main{place-items:start center;padding:2rem 1rem 3rem}.auth-form-header h1{font-size:1.7rem}}@media (prefers-reduced-motion:reduce){.auth-form,.auth-status-icon,.invitation-skeleton,.account-profile,.account-card,.landing-hero-text,.import-help,.import-result,.auth-tree-nodes circle,.auth-tree-ancestors circle{animation:none}.spinner{animation-duration:1.6s}.import-progress-bar i{animation-duration:3s}}.create-tree{max-width:64rem;margin:0 auto;padding-top:2.5rem;padding-bottom:3rem}.create-tree-intro{max-width:40rem;margin-bottom:1.75rem;animation:.5s ease-out both auth-form-in}.create-tree-intro h1{margin:.15rem 0 .4rem;font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.15}.create-tree-intro .muted{margin:0;font-size:1.02rem}.create-tree-grid{grid-template-columns:minmax(0,1.25fr) minmax(17rem,1fr);align-items:start;gap:1.5rem;display:grid}.create-tree-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:1.25rem;padding:1.75rem;animation:.5s ease-out 50ms both auth-form-in;display:flex}.create-tree-step{flex-direction:column;gap:1rem;display:flex}.create-tree-step+.create-tree-step{border-top:1px solid var(--color-border);padding-top:1.25rem}.create-tree-step h2{align-items:center;gap:.6rem;margin:0;font-size:1.15rem;display:flex}.step-number{background:var(--color-primary);width:1.7rem;height:1.7rem;color:var(--color-on-primary);font-family:var(--font-body);border-radius:50%;place-items:center;font-size:.85rem;font-weight:600;display:inline-grid}.create-tree-form input[type=text],.create-tree-form input[type=number]{border-radius:12px;padding-top:.7rem;padding-bottom:.7rem}.create-tree-form input[aria-invalid=true]{border-color:var(--color-danger)}.create-tree-year{max-width:13rem}.create-tree-actions{justify-content:flex-end;align-items:center;gap:.75rem;padding-top:.25rem;display:flex}.create-tree-actions .auth-submit{width:auto;min-width:13rem}.create-tree-actions .button-secondary-link{border-radius:12px;padding:.8rem 1.1rem}.create-tree-preview{top:calc(var(--header-height) + 1.5rem);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--canopy-light) 70%, transparent), transparent 60%), linear-gradient(180deg, var(--sky-top), var(--sky-bottom) 70%);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;align-items:center;padding:1.5rem 1.25rem 1.25rem;animation:.5s ease-out .12s both auth-form-in;display:flex;position:sticky}.create-tree-preview-label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:.72rem;font-weight:600}.create-tree-preview-title{overflow-wrap:anywhere;max-width:100%;font-family:var(--font-display);color:var(--color-primary);margin:.2rem 0 1.25rem;font-size:1.35rem;font-weight:600}.preview-tree{flex-direction:column;align-items:center;width:100%;max-width:16rem;display:flex}.preview-slots{justify-content:space-around;width:100%;display:flex}.preview-slot{border:1.5px dashed var(--color-border-strong);background:color-mix(in srgb, var(--color-surface) 70%, transparent);color:var(--color-muted);border-radius:999px;align-items:center;gap:.25rem;padding:.4rem .75rem;font-size:.82rem;display:inline-flex}.preview-links{width:50%;height:1.6rem;display:block}.preview-links path{fill:none;stroke:var(--branch);stroke-width:2px;vector-effect:non-scaling-stroke}.preview-person{border-radius:var(--radius-lg);border-top:4px solid var(--unknown-fg);background:var(--color-surface);width:100%;box-shadow:var(--shadow-md);flex-direction:column;align-items:center;gap:.35rem;padding:1rem .75rem .85rem;transition:border-color .25s;display:flex}.preview-person--male{border-top-color:var(--male-fg)}.preview-person--female{border-top-color:var(--female-fg)}.preview-person-name{overflow-wrap:anywhere;max-width:100%;font-family:var(--font-display);font-size:1.1rem;font-weight:600;line-height:1.2}.preview-person-years{color:var(--color-muted);font-size:.85rem}.create-tree-preview-note{color:var(--color-muted);text-align:left;align-items:flex-start;gap:.45rem;margin:1.25rem 0 0;font-size:.85rem;display:flex}.create-tree-preview-note .app-icon{color:var(--leaf-dark);flex:none;margin-top:.15rem}@media (width<=820px){.create-tree{padding-top:1.5rem}.create-tree-grid{grid-template-columns:1fr}.create-tree-preview{order:-1;padding:1rem;position:static}.create-tree-preview-title{margin-bottom:.75rem}.create-tree-preview-note{display:none}.create-tree-form{padding:1.25rem}.create-tree-actions{flex-direction:column-reverse;align-items:stretch}.create-tree-actions .auth-submit,.create-tree-actions .button-secondary-link{justify-content:center;width:100%}}@media (width<=420px){.create-tree-form .field-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.create-tree-intro,.create-tree-form,.create-tree-preview{animation:none}}.status-topbar{height:var(--header-height);align-items:center;padding:0 1.5rem;display:flex}.status-topbar a{color:var(--color-text);text-decoration:none}.status-page{min-height:calc(100dvh - var(--header-height));background:radial-gradient(ellipse 60% 45% at 50% 30%, color-mix(in srgb, var(--canopy-light) 45%, transparent), transparent 70%), var(--color-bg);place-items:center;padding:1.5rem 1rem 3rem;display:grid}.status-page--embedded,.tree-page>.status-page{flex:1;min-height:0}.status-card{text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:28rem;box-shadow:var(--shadow-md);flex-direction:column;align-items:center;gap:.75rem;padding:2.25rem 1.75rem;animation:.45s ease-out both auth-form-in;display:flex}.status-card .auth-status-icon{margin-bottom:.5rem}.status-card h1{font-family:var(--font-display);margin:0;font-size:1.65rem;line-height:1.2}.status-text p{color:var(--color-muted);margin:0;line-height:1.55}.status-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:.75rem;display:flex}.status-actions:empty{display:none}@media (prefers-reduced-motion:reduce){.status-card{animation:none}}.auth-showcase-home{color:inherit;align-self:flex-start;text-decoration:none}.landing{background:var(--color-bg);min-height:100dvh}.landing-hero{color:var(--color-on-primary);background:radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--color-accent-bright) 22%, transparent), transparent 40%), radial-gradient(circle at 90% 95%, color-mix(in srgb, var(--grass) 28%, transparent), transparent 50%), linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-hover) 55%, var(--color-primary-deep) 100%);padding:0 1rem 2.5rem;position:relative;overflow:hidden}.landing-hero:after{content:"";pointer-events:none;background-image:radial-gradient(#ffffff0f 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0}.landing-hero>*{z-index:1;position:relative}.landing-topbar{max-width:68rem;height:var(--header-height);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.landing-topbar-login{border:1px solid color-mix(in srgb, var(--color-on-primary) 45%, transparent);color:var(--color-on-primary);border-radius:999px;padding:.45rem 1rem;font-weight:600;text-decoration:none}.landing-topbar-login:hover{background:color-mix(in srgb, var(--color-on-primary) 12%, transparent)}.landing-hero-body{gap:1rem;max-width:68rem;margin:0 auto;padding-top:1.5rem;display:grid}.landing-hero-text{animation:.5s ease-out both auth-form-in}.landing-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-bright);margin:0;font-size:.78rem;font-weight:600}.landing-hero h1{font-family:var(--font-display);margin:.6rem 0 0;font-size:clamp(2rem,6vw,3.1rem);font-weight:600;line-height:1.12}.landing-lead{max-width:34rem;color:color-mix(in srgb, var(--color-on-primary) 82%, transparent);margin:1rem 0 0;font-size:1.08rem;line-height:1.55}.landing-cta{flex-wrap:wrap;gap:.7rem;margin-top:1.75rem;display:flex}.landing-cta a{border-radius:var(--radius);padding:.85rem 1.4rem;font-weight:600;text-decoration:none}.landing-cta-primary{background:var(--color-accent-bright);color:var(--color-primary-deep);box-shadow:0 6px 18px #0000002e}.landing-cta-primary:hover{background:color-mix(in srgb, var(--color-accent-bright) 88%, white)}.landing-cta-secondary{border:1px solid color-mix(in srgb, var(--color-on-primary) 45%, transparent);color:var(--color-on-primary)}.landing-cta-secondary:hover{background:color-mix(in srgb, var(--color-on-primary) 12%, transparent)}.landing-note{color:color-mix(in srgb, var(--color-on-primary) 70%, transparent);margin:.9rem 0 0;font-size:.9rem}.landing-hero .auth-tree{max-width:22rem;margin:.5rem auto 0}.landing-main{flex-direction:column;gap:3.5rem;max-width:68rem;margin:0 auto;padding:3rem 1rem 4rem;display:flex}.landing-section h2,.landing-privacy h2,.landing-final h2{font-family:var(--font-display);margin:.4rem 0 0;font-size:clamp(1.5rem,4vw,2rem);line-height:1.2}.landing-steps{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.landing-step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.4rem;position:relative}.landing-step-icon{background:var(--color-primary-soft);width:2.6rem;height:2.6rem;color:var(--color-primary);border-radius:12px;place-items:center;display:grid}.landing-step-number{font-family:var(--font-display);color:color-mix(in srgb, var(--color-accent) 35%, transparent);font-size:2.2rem;font-weight:600;line-height:1;position:absolute;top:1rem;right:1.2rem}.landing-step h3,.landing-features h3{margin:.9rem 0 .3rem;font-size:1.1rem}.landing-step p,.landing-features p{color:var(--color-muted);margin:0;line-height:1.5}.landing-privacy{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-wrap:wrap;gap:1.25rem;padding:1.75rem 1.4rem;display:flex}.landing-privacy>div{flex:18rem}.landing-privacy-icon{background:var(--color-primary);width:3.4rem;height:3.4rem;color:var(--color-on-primary);border-radius:50%;place-items:center;display:grid}.landing-privacy ul{gap:.7rem;margin:1.1rem 0 1.25rem;padding:0;list-style:none;display:grid}.landing-privacy li{gap:.6rem;line-height:1.5;display:flex}.landing-privacy-check{color:var(--color-primary);flex:none;margin-top:.2rem}.landing-link{color:var(--color-primary);font-weight:600}.landing-features{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.25rem 1.5rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.landing-features li{gap:.9rem;display:flex}.landing-features .account-card-icon{flex:none}.landing-features h3{margin-top:.2rem}.landing-final{text-align:center;background:var(--color-bg-deep);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem 1.25rem;display:flex}.landing-final h2{max-width:26rem}.landing-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:68rem;margin:0 auto;padding:1.5rem 1rem 2.5rem;display:flex}.landing-footer nav{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.landing-footer a{color:var(--color-muted);text-decoration:none}.landing-footer a:hover{color:var(--color-primary)}@media (width>=880px){.landing-hero{padding:0 2rem 4rem}.landing-hero-body{grid-template-columns:1.1fr 1fr;align-items:center;gap:3rem;padding-top:3rem}.landing-hero .auth-tree{max-width:26rem}.landing-main{gap:4.5rem;padding:4.5rem 2rem 5rem}.landing-privacy{padding:2.25rem 2.5rem}.landing-features{grid-template-columns:repeat(2,1fr);gap:1.75rem 3rem}.landing-footer{padding:1.5rem 2rem 3rem}}.privacy-page{max-width:64rem;margin:0 auto;padding-top:2.5rem;padding-bottom:4rem}.privacy-intro{max-width:44rem;animation:.5s ease-out both auth-form-in}.privacy-intro h1{margin:.15rem 0 .5rem;font-size:clamp(2rem,4vw,2.6rem);line-height:1.1}.privacy-lead{color:var(--color-muted);margin:0;font-size:1.08rem;line-height:1.6}.privacy-summary{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.6rem;margin:1.5rem 0 0;padding:1rem 1.1rem;list-style:none;display:grid}.privacy-summary li{align-items:flex-start;gap:.55rem;font-weight:500;line-height:1.45;display:flex}.privacy-summary .app-icon{color:var(--color-primary);flex:none;margin-top:.1rem}.privacy-layout{grid-template-columns:1fr;gap:1.5rem;margin-top:2rem;display:grid}.privacy-toc details{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.9rem 1.1rem}.privacy-toc summary{cursor:pointer;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);font-size:.78rem;font-weight:600}.privacy-toc ol{counter-reset:toc;gap:.15rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.privacy-toc li{counter-increment:toc}.privacy-toc a{color:var(--color-text);border-radius:8px;gap:.55rem;padding:.35rem .5rem;line-height:1.35;text-decoration:none;display:flex}.privacy-toc a:before{content:counter(toc);min-width:1.1rem;color:var(--color-accent);font-variant-numeric:tabular-nums;font-weight:600}.privacy-toc a:hover{background:var(--color-primary-soft);color:var(--color-primary)}.privacy-content{max-width:42rem;font-size:1.04rem}.privacy-content section{border-top:1px solid var(--color-border);padding:1.75rem 0;scroll-margin-top:1rem}.privacy-content section:first-child{border-top:0;padding-top:0}.privacy-content h2{font-family:var(--font-display);align-items:center;gap:.6rem;margin:0 0 .85rem;font-size:1.4rem;line-height:1.25;display:flex}.privacy-h2-icon{background:var(--color-primary-soft);width:2.1rem;height:2.1rem;color:var(--color-primary);border-radius:10px;flex:none;place-items:center;display:grid}.privacy-content p,.privacy-content li{line-height:1.7}.privacy-content p{margin:0 0 .75rem}.privacy-content p:last-child{margin-bottom:0}.privacy-content ul{gap:.55rem;margin:0;padding-left:1.25rem;display:grid}.privacy-content li::marker{color:var(--color-accent)}@media (width>=880px){.privacy-layout{grid-template-columns:15rem minmax(0,1fr);align-items:start;gap:3rem}.privacy-toc{position:sticky;top:1.5rem}.privacy-toc summary{pointer-events:none;list-style:none}.privacy-toc summary::-webkit-details-marker{display:none}}@media (prefers-reduced-motion:reduce){.privacy-intro{animation:none}}@media (width<=720px){.panel-hero{text-align:left;flex-direction:row;gap:.9rem;padding:.9rem 3rem .9rem 1rem}.panel-hero-text{align-items:flex-start}.panel-hero .avatar--lg{border-width:2px;flex:none;width:3.2rem;height:3.2rem;font-size:1.2rem}.panel-hero h2{margin:0;font-size:1.25rem}.panel-hero-years{font-size:.9rem}.panel-hero-badges,.panel-hero-relation{justify-content:flex-start}.panel-hero .avatar-edit-button{width:1.6rem;height:1.6rem}.side-panel-body{padding:1rem}.side-panel-footer{padding:.75rem 1rem}}@media (width<=640px){.page{padding-left:1rem;padding-right:1rem}.account-row-view{grid-template-columns:minmax(0,1fr) auto;gap:.1rem .75rem;display:grid}.account-row-label{grid-column:1;font-size:.75rem}.account-row-value{grid-column:1}.account-row-view>button{grid-area:1/2/span 2;align-self:center}.account-verify{margin:0 1.25rem 1rem}.account-profile-actions{padding:.6rem 1.25rem}.create-tree .create-tree-preview{display:none}.side-panel-footer{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}}.google-button{color:#1f1f1f;background:#fff;border:1px solid #c6c6c6;border-radius:14px;justify-content:center;align-items:center;gap:.7rem;width:100%;min-height:3.1rem;padding:.7rem 1.1rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,box-shadow .18s,transform .18s;display:flex;box-shadow:inset 0 1px #fff,0 1px 2px #3b2f1e14}.google-button:hover{color:#1f1f1f;background:#f8f9fa;border-color:#a8a8a8;transform:translateY(-1px);box-shadow:inset 0 1px #fff,0 4px 12px -4px #3b2f1e33}.google-button:active{transform:translateY(1px);box-shadow:inset 0 2px 3px #3b2f1e1f}.google-button-logo{flex:none;width:1.25rem;height:1.25rem}.auth-divider{color:var(--color-muted);align-items:center;gap:.75rem;margin:0;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}@media (prefers-reduced-motion:reduce){.google-button{transition:none}.google-button:hover,.google-button:active{transform:none}}
