:root{color:#251f1f;font-synthesis:none;letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{min-width:320px}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{transition:transform .16s,background-color .16s,border-color .16s,color .16s}#root{min-height:100svh}::selection{color:#fff;background:#b58645}.app,.login-page{min-height:100svh;color:var(--text);background:linear-gradient(90deg, #ffffff09 1px, transparent 1px), linear-gradient(180deg, var(--bg), var(--bg-panel));background-size:44px 44px,auto}.topbar{border-bottom:1px solid var(--line-dark);color:var(--text-invert);justify-content:space-between;align-items:center;gap:24px;min-height:104px;padding:22px 32px;display:flex;position:relative;overflow:hidden}.brand-block,.login-mark,.panel-heading,.section-heading,.detail-identity,.stat-tile,.theme-switcher,.header-actions,.filters,.button-row,.fact{align-items:center;display:flex}.brand-block,.login-mark,.panel-heading,.section-heading,.detail-identity{gap:14px}.brand-block,.header-actions{z-index:2;position:relative}.brand-block h1,.login-mark h1,.panel-heading h2,.section-heading h2,.detail-identity h2,.empty-state h2,.empty-detail h2{margin:0;line-height:1.08}.brand-block h1,.login-mark h1{color:var(--text-invert);letter-spacing:-.5px;font-family:Playfair Display,Georgia,Times New Roman,serif;font-size:34px;font-weight:700}.family-seal{aspect-ratio:1;background:linear-gradient(135deg, var(--accent), var(--accent-strong));border:2px solid var(--gold);color:var(--gold);text-shadow:0 2px 4px #00000080;border-radius:50%;justify-content:center;align-items:center;height:58px;font-family:Playfair Display,Georgia,Times New Roman,serif;font-size:18px;font-weight:800;display:grid;box-shadow:0 4px 12px #0000004d,inset 0 0 0 2px #ffffff1a}.family-seal.large{height:76px;font-size:24px}.eyebrow{color:var(--gold);letter-spacing:0;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:800}.header-actions{justify-content:flex-end;gap:10px}.theme-switcher{border:1px solid var(--line-dark);color:var(--text-invert);background:#ffffff14;border-radius:8px;gap:4px;min-height:42px;padding:4px 6px}.theme-option,.tab,.icon-button,.primary-button,.secondary-button,.directory-row,.tree-card,.relation-row button{appearance:none;cursor:pointer;font:inherit;border:0}.theme-option{color:inherit;background:0 0;border-radius:6px;min-height:32px;padding:0 10px;font-size:13px;font-weight:700}.theme-option.active{background:var(--surface);color:var(--accent-strong)}.icon-button{border:1px solid var(--line-dark);color:var(--text-invert);background:#ffffff14;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.icon-button:hover,.theme-option:hover,.tab:hover,.primary-button:hover,.secondary-button:hover,.directory-row:hover,.tree-card:hover{transform:translateY(-1px)}.workspace{padding:24px 32px 32px}.system-banner{background:color-mix(in srgb, var(--surface) 92%, var(--gold));border-bottom:1px solid var(--line-dark);color:var(--text);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:9px 32px;display:flex}.system-banner span,.system-banner strong{font-size:13px}.system-banner strong{color:var(--accent)}.system-banner.error{background:color-mix(in srgb, var(--danger) 12%, var(--surface))}.system-banner.error strong{color:var(--danger)}.command-strip{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.view-tabs{border:1px solid var(--line-dark);background:#ffffff14;border-radius:8px;gap:5px;padding:5px;display:flex}.tab{color:var(--text-invert);white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:7px;min-height:38px;padding:0 12px;display:inline-flex}.tab.active{background:var(--surface);color:var(--accent-strong);font-weight:800}.filters{flex:1;justify-content:flex-end;gap:10px;min-width:280px}.search-field,.select-field,.login-form label,.add-form label{gap:8px;display:grid}.search-field,.select-field{background:var(--surface);border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:flex}.search-field{flex:1;max-width:520px}.search-field input,.select-field select,.login-form input,.add-form input,.add-form select,.data-section textarea{color:var(--text);font:inherit;background:0 0;border:0;outline:0;width:100%;min-width:0}.select-field select{min-width:138px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;gap:12px;min-height:78px;padding:16px}.stat-tile svg{color:var(--accent)}.stat-tile strong,.stat-tile span{display:block}.stat-tile strong{font-size:24px;line-height:1}.stat-tile span{color:var(--muted);margin-top:4px;font-size:13px}.content-shell{grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;gap:18px;display:grid}.primary-surface,.detail-panel,.login-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.primary-surface{min-height:660px;overflow:hidden}.tree-viewport{background:linear-gradient(90deg, #0000000b 1px, transparent 1px), linear-gradient(180deg, var(--surface-strong), var(--surface-soft));cursor:grab;-webkit-overflow-scrolling:touch;background-size:30px 30px,auto;width:100%;height:660px;overflow:auto}.tree-viewport svg{width:100%;min-width:980px;min-height:100%;display:block}.tree-links path{fill:none;stroke:var(--gold);stroke-linecap:round;stroke-width:2.4px}.tree-card{border:1px solid var(--line);color:var(--text);text-align:left;background:#ffffffe6;border-radius:8px;grid-template-rows:auto auto auto;grid-template-columns:46px minmax(0,1fr);align-items:center;width:155px;height:120px;padding:12px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.tree-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.tree-card .avatar{grid-row:1/span 3}.person-name,.person-meta,.person-life{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.person-name{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:38px;font-weight:800;line-height:1.15;display:-webkit-box}.person-meta,.person-life{color:var(--muted);font-size:12px;line-height:1.35}.avatar{background:linear-gradient(135deg, #ffffff38, transparent), var(--avatar-color);color:#fff;border:1px solid #ffffff73;border-radius:8px;flex:none;justify-content:center;align-items:center;font-family:Georgia,Times New Roman,serif;font-weight:800;display:inline-flex}.avatar-small{width:38px;height:38px;font-size:13px}.avatar-medium{width:42px;height:42px;font-size:15px}.avatar-large{width:76px;height:76px;font-size:25px}.detail-panel{align-self:start;min-height:660px;padding:20px;position:sticky;top:18px}.close-detail{background:var(--surface-soft);border-color:var(--line);color:var(--text);float:right}.detail-identity{margin:16px 0 22px}.status{background:var(--surface-soft);color:var(--muted);border-radius:999px;margin-top:8px;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.status.living{background:color-mix(in srgb, var(--success) 13%, white);color:var(--success)}.detail-facts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fact{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;gap:8px;min-height:56px;padding:10px}.fact svg{color:var(--accent);flex:none}.fact span,.fact strong{display:block}.fact span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.fact strong{overflow-wrap:anywhere;font-size:13px;line-height:1.25}.detail-section,.contact-box{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.detail-section h3,.contact-box h3,.roadmap-card h3{text-transform:uppercase;margin:0 0 10px;font-size:14px;line-height:1.2}.detail-section p,.roadmap-card p{color:var(--muted);margin:0}.detail-section p+p{margin-top:6px}.relation-row{grid-template-columns:72px minmax(0,1fr);gap:8px;margin-bottom:10px;display:grid}.relation-row>span{color:var(--muted);font-size:13px;font-weight:800}.relation-row div{flex-wrap:wrap;gap:7px;display:flex}.relation-row button,.source-list span{background:var(--surface-soft);color:var(--text);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.relation-row button:hover{color:var(--accent)}.relation-row em{color:var(--muted);font-size:13px}.source-list{flex-wrap:wrap;gap:8px;display:flex}.contact-box{background:color-mix(in srgb, var(--accent) 9%, white);border:1px solid color-mix(in srgb, var(--accent) 25%, white);border-radius:8px;padding:14px}.contact-box .fact{margin-top:8px}.directory-list{gap:8px;margin-top:18px;display:grid}.directory-row{background:var(--surface-strong);border:1px solid var(--line);color:var(--text);text-align:left;border-radius:8px;grid-template-columns:42px minmax(160px,1.4fr) minmax(120px,.9fr) 72px minmax(100px,.7fr) 24px;align-items:center;gap:12px;min-height:66px;padding:12px;display:grid}.directory-row.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.directory-row span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.directory-row .directory-name{color:var(--text);font-weight:800}.data-grid{grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:18px;display:grid}.data-section,.roadmap-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;padding:18px}.data-section textarea{background:var(--surface-soft);border:1px solid var(--line);resize:vertical;border-radius:8px;min-height:266px;margin-top:18px;padding:14px}.button-row{flex-wrap:wrap;gap:10px;margin-top:14px}.data-section .button-row{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.data-section .button-row .primary-button,.data-section .button-row .secondary-button{width:100%;padding-inline:10px}.primary-button,.secondary-button{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-weight:800;display:inline-flex}.primary-button{background:var(--accent);color:var(--accent-contrast)}.secondary-button{background:var(--surface-soft);color:var(--text)}.file-button input{display:none}.form-note,.form-error{border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:13px;font-weight:800}.form-note{background:color-mix(in srgb, var(--success) 11%, white);color:var(--success)}.form-error{background:color-mix(in srgb, var(--danger) 12%, white);color:var(--danger)}.add-form{gap:12px;margin-top:18px;display:grid}.add-form label,.login-form label{color:var(--muted);font-size:13px;font-weight:800}.add-form input,.add-form select,.login-form input{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;min-height:42px;padding:0 12px}.add-form textarea{min-height:96px}.form-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.roadmap-heading{grid-column:1/-1}.roadmap-card svg{color:var(--accent);margin-bottom:14px}.empty-state,.empty-detail{color:var(--muted);text-align:center;place-content:center;align-items:center;gap:12px;min-height:480px;display:grid}.login-page{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);display:grid}.login-visual{color:var(--text-invert);flex-direction:column;justify-content:space-between;min-height:100svh;padding:52px;display:flex}.login-mark h1{font-size:44px}.lineage-preview{flex-wrap:wrap;align-items:center;gap:12px;max-width:760px;display:flex}.preview-person{border:1px solid var(--line-dark);color:var(--text-invert);background:#ffffff1a;border-radius:8px;align-items:center;gap:9px;min-height:58px;padding:9px 12px;display:inline-flex}.preview-person span{font-weight:800}.login-panel{place-self:center;width:calc(100% - 48px);max-width:430px;padding:28px}.panel-heading h2{font-size:27px}.login-form{gap:14px;margin-top:24px;display:grid}.theme-login{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:18px;display:flex}.theme-login>span{color:var(--muted);font-size:13px;font-weight:800}.theme-login .theme-switcher{background:var(--surface-soft);border-color:var(--line);color:var(--text)}.auth-mode-switch{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;margin-top:20px;padding:4px;display:grid}.auth-mode-switch button{appearance:none;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;min-height:36px;font-size:13px;font-weight:800}.auth-mode-switch button.active{background:var(--surface-strong);color:var(--accent-strong);box-shadow:0 1px 3px #00000014}.auth-note{color:var(--muted);margin:14px 0 0;font-size:13px}button:disabled{cursor:not-allowed;opacity:.62;transform:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--gold) 70%, transparent);outline-offset:2px}@media (width<=1180px){.command-strip,.topbar{flex-direction:column;align-items:stretch}.header-actions,.filters{justify-content:flex-start}.content-shell{grid-template-columns:1fr}.detail-panel{min-height:auto;position:static}}@media (width<=820px){.workspace,.topbar,.system-banner{padding-left:16px;padding-right:16px}.brand-block h1,.login-mark h1{font-size:28px}.view-tabs,.filters,.header-actions{flex-wrap:wrap}.stats-grid,.data-grid,.roadmap-grid,.detail-facts,.form-pair{grid-template-columns:1fr}.search-field{max-width:none}.primary-surface,.tree-viewport{min-height:560px}.directory-row{grid-template-columns:42px minmax(0,1fr) 24px}.directory-row span:nth-of-type(n+3){display:none}.login-page{display:block}.login-visual{min-height:42svh;padding:28px 18px}.login-panel{width:calc(100% - 28px);margin:-18px auto 24px}}@media (width<=560px){.tab span,.theme-switcher svg{display:none}.theme-switcher{flex-wrap:wrap}.stat-tile{min-height:66px}.tree-viewport svg{min-width:720px}.relation-row{grid-template-columns:1fr}}.tree-viewport-container{width:100%;height:100%;position:relative}.zoom-controls{border:1px solid var(--line);z-index:10;background:#ffffffe6;border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 4px 15px #00000026}.zoom-controls button{background:var(--surface-soft);width:36px;height:36px;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-weight:800;transition:all .12s;display:flex}.zoom-controls button:hover{background:var(--accent);color:var(--accent-contrast);transform:translateY(-1px)}.zoom-controls span{text-align:center;color:var(--muted);font-size:11px;font-weight:800}.tree-zoom-group{transition:transform .2s cubic-bezier(.4,0,.2,1)}.zoom-hint{color:var(--muted);opacity:.6;white-space:nowrap;pointer-events:none;margin:0;font-size:11px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.admin-badge{background:linear-gradient(135deg, var(--gold), var(--accent));color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:4px;align-items:center;gap:4px;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-flex}.edit-actions{gap:8px;margin-top:16px;display:flex}.edit-actions button{flex:1}.tree-card{transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 10px #0000000a}.tree-card:hover{border-color:var(--gold);transform:scale(1.03)translateY(-2px);box-shadow:0 8px 20px #0000001a}.tree-card.selected{border-color:var(--accent);background:var(--surface-strong);box-shadow:0 4px 20px #a7352e26}.biography-edit{border:1px solid var(--line);background:var(--surface-strong);width:100%;min-height:100px;color:var(--text);border-radius:6px;margin-top:8px;padding:8px;font-family:inherit;font-size:14px}.login-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.login-modal-content{background:var(--bg);border:1px solid var(--line-dark);border-radius:12px;width:90%;max-width:960px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000080}.login-modal-close{border:1px solid var(--line-dark);color:var(--text-invert);cursor:pointer;z-index:10;background:#ffffff14;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.login-modal-close:hover{background:var(--accent);color:var(--accent-contrast)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.app{background:radial-gradient(circle at 18% -8%, #c59a362e, transparent 28rem), radial-gradient(circle at 92% 8%, #ffffff14, transparent 24rem), linear-gradient(180deg, var(--bg), var(--bg-panel))}.theme-royal .brand-block h1{text-shadow:0 2px #0000001f,0 14px 30px #0000004d}.theme-royal .command-strip{background:linear-gradient(#fffaef29,#fffaef0f);border-color:#d6aa434d}.theme-royal .primary-surface{position:relative}.theme-royal .tree-viewport-container,.theme-royal .directory-panel,.theme-royal .data-grid,.theme-royal .roadmap-grid{z-index:2;position:relative}.theme-royal .detail-panel>*{z-index:1;position:relative}.topbar{border-bottom:1px solid var(--line-dark);min-height:86px;padding:16px 32px}.brand-block h1,.login-mark h1{letter-spacing:0;font-size:clamp(26px,3vw,38px)}.app-brand{min-width:0}.app-logo{width:50px;height:50px}.header-actions{flex-wrap:wrap}.theme-switcher,.icon-button,.primary-button,.secondary-button,.tab,.search-field,.select-field,.stat-tile,.primary-surface,.detail-panel,.login-panel,.data-section,.roadmap-card,.directory-row,.tree-card,.fact{border-radius:10px}.icon-button,.theme-switcher{background:#ffffff1a;box-shadow:inset 0 1px #ffffff14}.primary-button{box-shadow:0 10px 22px color-mix(in srgb, var(--accent) 22%, transparent)}.secondary-button{border:1px solid var(--line)}.workspace{max-width:1720px;margin:0 auto;padding:22px 32px 36px}.system-banner{background:color-mix(in srgb, var(--surface) 86%, transparent);border-bottom:1px solid var(--line-dark);box-shadow:inset 0 1px #ffffff14}.command-strip{border:1px solid var(--line-dark);background:#ffffff12;border-radius:14px;align-items:stretch;gap:12px;padding:8px}.view-tabs{background:0 0;border:0;padding:0}.tab{min-height:44px;padding:0 14px}.tab.active{box-shadow:0 10px 24px #0000001f}.filters{min-width:320px}.search-field,.select-field{min-height:44px;box-shadow:0 12px 28px #00000014}.stats-grid{gap:14px}.stat-tile{min-height:86px;padding:18px;box-shadow:0 14px 34px #0000001f}.stat-tile svg{background:color-mix(in srgb, var(--accent) 10%, var(--surface-soft));box-sizing:content-box;border-radius:8px;padding:9px}.stat-tile strong{font-size:27px}.content-shell{grid-template-columns:minmax(0,1fr) minmax(360px,390px);gap:20px}.primary-surface,.detail-panel{border-radius:14px;box-shadow:0 22px 60px #0003}.primary-surface{min-height:700px}.tree-viewport{background:linear-gradient(90deg, #452d180e 1px, transparent 1px), linear-gradient(180deg, var(--surface-strong), var(--surface-soft));background-size:32px 32px,auto;height:700px}.tree-links path{stroke:color-mix(in srgb, var(--gold) 88%, var(--accent));stroke-width:2.8px}.tree-node-group{gap:10px;width:max-content;min-width:100%}.tree-card{border-color:color-mix(in srgb, var(--line) 82%, white);width:162px;height:118px;padding:13px}.tree-card.gender-male{border-top-color:var(--accent-strong)}.tree-card.gender-female{border-top-color:#d994a5}.tree-card .avatar{border-radius:10px}.person-name{font-size:16px}.person-meta,.person-life{font-size:11px}.detail-panel{padding:22px}.detail-identity{align-items:flex-start;margin-top:10px}.detail-identity h2{font-size:clamp(26px,2.1vw,34px)}.avatar-large{border-radius:12px;width:78px;height:78px}.status{border-radius:8px}.detail-facts{gap:10px}.fact{box-shadow:inset 0 1px #ffffff8c}.detail-section,.contact-box{margin-top:20px;padding-top:18px}.relation-row{grid-template-columns:112px minmax(0,1fr)}.relation-row button,.source-list span{border-radius:8px;padding:6px 10px}.contact-box{background:color-mix(in srgb, var(--danger) 7%, var(--surface-strong));border-color:color-mix(in srgb, var(--danger) 18%, var(--line))}.directory-panel,.data-grid,.roadmap-grid{padding:24px}.data-grid{gap:20px}.data-section,.roadmap-card{border-radius:12px}.data-section textarea,.add-form input,.add-form select,.login-form input,.biography-edit{border-radius:10px}.data-section textarea{line-height:1.55}.zoom-controls{background:color-mix(in srgb, var(--surface-strong) 92%, transparent);border-radius:12px;padding:10px}.zoom-controls button{border-radius:10px}.zoom-hint{background:color-mix(in srgb, var(--surface-strong) 72%, transparent);border-radius:999px;padding:4px 10px}.login-modal-content{border-radius:16px;max-width:980px}.login-panel{border-radius:14px}.auth-mode-switch{border-radius:10px}@media (width<=1180px){.command-strip{flex-direction:column}.filters{min-width:0}}@media (width<=820px){.workspace{padding-top:16px}.topbar{min-height:auto}.command-strip{border-radius:12px}.view-tabs{padding-bottom:2px;overflow-x:auto}.tab{flex:none}.stats-grid{grid-template-columns:1fr 1fr}.primary-surface,.tree-viewport{min-height:620px}.tree-viewport{height:620px}.data-section .button-row{grid-template-columns:1fr}}@media (width<=560px){.stats-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr;display:grid}.tree-card{width:158px}.tree-node-group .tree-card{max-width:158px}.zoom-controls{bottom:28px;right:12px}}.landing-page{color:#f9fafb;background:radial-gradient(circle at 12% -8%,#c59a3629,#0000 26rem),radial-gradient(circle at 90% 0,#2563eb24,#0000 28rem),linear-gradient(#111827,#1f2937);min-height:100svh}.landing-header{justify-content:space-between;align-items:center;gap:24px;max-width:1180px;margin:0 auto;padding:22px 24px;display:flex}.landing-brand,.landing-nav,.landing-actions{align-items:center;display:flex}.landing-brand{color:#fff;gap:12px;font-size:22px;font-weight:900;text-decoration:none}.landing-nav{gap:8px}.landing-nav a{color:#f9fafbc7;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:800;text-decoration:none}.landing-nav a:hover,.landing-nav .landing-login{color:#fff;background:#ffffff1a}.landing-hero{grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);align-items:center;gap:44px;max-width:1180px;min-height:calc(100svh - 100px);margin:0 auto;padding:48px 24px 70px;display:grid}.landing-copy h1{max-width:820px;margin:0;font-size:clamp(42px,6vw,72px);line-height:.98}.landing-copy>p:not(.eyebrow){color:#f9fafbb8;max-width:680px;margin:22px 0 0;font-size:18px;line-height:1.65}.landing-actions{flex-wrap:wrap;gap:12px;margin-top:30px}.landing-actions .secondary-button{color:#fff;background:#ffffff1a;border-color:#ffffff29}.landing-preview{min-width:0}.preview-window{background:#ffffff14;border:1px solid #ffffff29;border-radius:18px;overflow:hidden;box-shadow:0 28px 90px #00000059}.preview-toolbar{background:#ffffff14;border-bottom:1px solid #ffffff1f;align-items:center;gap:7px;height:42px;padding:0 16px;display:flex}.preview-toolbar span{background:#ffffff5c;border-radius:50%;width:10px;height:10px}.preview-tree{background:linear-gradient(90deg,#1118270f 1px,#0000 1px) 0 0/34px 34px,linear-gradient(#fffdf8,#f4ead9);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:430px;padding:38px;display:grid}.preview-node{color:#241913;min-height:82px;transform:translateY(var(--node-offset));background:#ffffffe6;border:1px solid #dec7a4;border-radius:12px;grid-template-columns:38px minmax(0,1fr);align-self:start;align-items:center;gap:4px 10px;padding:12px;display:grid}.preview-node .avatar{grid-row:1/span 2}.preview-node strong,.preview-node span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.preview-node span{color:#7e6655;font-size:12px}.landing-section{max-width:1180px;margin:0 auto;padding:34px 24px 76px}.landing-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px;display:grid}.landing-card,.model-list>div{background:#ffffff14;border:1px solid #ffffff24;border-radius:14px;padding:22px}.landing-card svg{color:#c59a36}.landing-card h3,.model-section h2{margin:12px 0 8px}.landing-card p{color:#f9fafbb8;margin:0;line-height:1.55}.guide-section{gap:22px;display:grid}.guide-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.guide-steps article{background:#ffffff14;border:1px solid #ffffff24;border-radius:14px;padding:20px}.guide-steps strong,.guide-steps span{display:block}.guide-steps strong{color:#fff;margin-bottom:8px}.guide-steps span{color:#f9fafbb8;line-height:1.5}.pricing-section{gap:24px;display:grid}.pricing-section>div:first-child{max-width:860px}.pricing-section>div:first-child p:not(.eyebrow){color:#f9fafbb8;margin:12px 0 0;font-size:16px;line-height:1.65}.pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.pricing-card{background:#ffffff17;border:1px solid #ffffff26;border-radius:16px;gap:12px;padding:24px;display:grid}.pricing-card>span{color:#c59a36;text-transform:uppercase;font-size:13px;font-weight:900}.pricing-card h3{color:#fff;margin:0;font-size:26px;line-height:1.1}.pricing-card small{color:#f9fafb94;font-size:13px;font-weight:800}.pricing-card p{color:#f9fafbb8;margin:0;line-height:1.55}.pricing-card ul{gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.pricing-card li{color:#f9fafbd1;align-items:center;gap:8px;line-height:1.35;display:flex}.pricing-card li svg{color:#c59a36;flex:none}.pricing-card .primary-button,.pricing-card .secondary-button{width:100%;margin-top:8px;text-decoration:none}.payment-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1200;background:#030712c2;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.payment-modal{color:#241913;background:#fffdf8;border:1px solid #dec7a4;border-radius:18px;width:min(100%,460px);max-width:460px;padding:28px;position:relative;box-shadow:0 30px 90px #00000073}.payment-modal h2{margin:0 0 8px;font-size:30px;line-height:1.1}.payment-modal p{color:#6c5a4d;line-height:1.55}.payment-price{color:#a82424;margin:8px 0 12px;font-size:28px;display:block}.payment-qr{background:#fff;border:1px solid #dec7a4;border-radius:14px;width:100%;max-width:260px;margin:18px auto;padding:10px;display:block}.payment-placeholder{color:#6c5a4d;text-align:center;background:#f4ead9;border:1px dashed #c59a36;border-radius:14px;place-items:center;gap:8px;margin:18px 0;padding:22px;display:grid}.payment-placeholder strong{color:#241913}.payment-info{background:#f4ead9;border-radius:12px;gap:4px;padding:14px;display:grid}.payment-info span{color:#7e6655;text-transform:uppercase;font-size:12px;font-weight:900}.payment-info strong{color:#241913;overflow-wrap:anywhere}.model-section{grid-template-columns:.7fr 1.3fr;gap:24px;display:grid}.model-list{gap:12px;display:grid}.model-list strong,.model-list span{display:block}.model-list strong{color:#fff;margin-bottom:8px}.model-list span{color:#f9fafbb8;line-height:1.45}@media (width<=920px){.landing-hero,.model-section,.landing-card-grid,.guide-steps,.pricing-grid{grid-template-columns:1fr}.landing-hero{min-height:auto;padding-top:28px}}@media (width<=620px){.landing-header{flex-direction:column;align-items:flex-start}.landing-nav{flex-wrap:wrap}.landing-copy h1{font-size:40px}.preview-tree{grid-template-columns:1fr;padding:18px}}.theme-royal{--bg:#2a0a0a;--bg-panel:#1a0505;--surface:#fffbf5;--surface-strong:#fff;--surface-soft:#f7efe0;--text:#2a1a0a;--text-invert:#fdf6e3;--text-dim:#8a6a4a;--muted:#8a6a4a;--line:#dfc9aa;--line-dark:#ffd76433;--accent:#9b1c1c;--accent-strong:#6f0f0f;--accent-contrast:#fdf6e3;--accent-2:#d4af37;--gold:#d4af37;--success:#2f7d5b;--danger:#b84b43;--shadow:0 18px 50px #3c0a0a59;font-family:Playfair Display,Georgia,Times New Roman,serif}.theme-modern{--bg:#1e293b;--bg-panel:#0f172a;--surface:#f8fafc;--surface-strong:#fff;--surface-soft:#f1f5f9;--text:#1e293b;--text-invert:#f1f5f9;--text-dim:#64748b;--muted:#64748b;--line:#e2e8f0;--line-dark:#ffffff1f;--accent:#3b82f6;--accent-strong:#1d4ed8;--accent-contrast:#fff;--accent-2:#0ea5e9;--gold:#f59e0b;--success:#10b981;--danger:#ef4444;--shadow:0 18px 50px #0f172a4d;font-family:Inter,system-ui,-apple-system,sans-serif}.app-brand{align-items:center;gap:14px;display:flex}.app-logo{object-fit:cover;width:52px;height:52px;box-shadow:0 0 0 2px var(--gold,#d4af37), 0 4px 12px #0006;border-radius:50%;flex-shrink:0}.login-mark{flex-direction:column;align-items:flex-start}.login-mark .app-brand{flex-direction:column;align-items:flex-start;gap:20px}.login-mark .app-logo{width:96px;height:96px;box-shadow:0 0 0 3px var(--gold,#d4af37), 0 8px 24px #00000080}.tree-card.gender-male{border-top:4px solid #8b0000}.tree-card.gender-female{border-top:4px solid #e8a0a0}.tree-card .person-name.living{color:#1a7a3a;font-weight:900}.tree-node-group{justify-content:center;align-items:center;gap:8px;width:max-content;min-width:100%;height:100%;display:flex}.tree-node-group .tree-card{flex:0 0 155px;max-width:155px}.spouse-card{opacity:.92;border-style:dashed!important}.spouse-card:hover{opacity:1}.theme-royal .tree-card{background:linear-gradient(145deg,#fffcf5 0%,#f9f1e0 100%);box-shadow:1px 2px 6px #8b000014,0 1px 2px #0000000d}.theme-royal .tree-card.selected{border-color:var(--accent);background:linear-gradient(145deg,#fff8ee 0%,#faecd6 100%);box-shadow:0 0 0 3px #9b1c1c33,1px 2px 8px #8b000033}.theme-royal .topbar{background:linear-gradient(#1a0505,#2a0a0a);border-bottom:2px solid #d4af374d}.theme-royal .detail-panel{border-left:2px solid var(--line);background:#fffbf5}.theme-modern .tree-card{border:1px solid var(--line);background:#fff;box-shadow:0 1px 3px #0000000f}.theme-modern .tree-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f626,0 2px 8px #00000014}.theme-modern .topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172af2;border-bottom:1px solid #ffffff1a}.theme-modern .detail-panel{border-left:1px solid var(--line);background:#fff}.theme-royal{--bg:#210607;--bg-panel:#3a0c0c;--surface:#fff9ef;--surface-strong:#fffdf8;--surface-soft:#f4ead9;--text:#241913;--text-invert:#fff7e8;--text-dim:#7e6655;--muted:#7e6655;--line:#dec7a4;--line-dark:#f4d38e38;--accent:#a82424;--accent-strong:#741414;--accent-contrast:#fff8ec;--gold:#c59a36;--shadow:0 24px 70px #22080847;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.theme-modern{--bg:#111827;--bg-panel:#1f2937;--surface:#f7f8fb;--surface-strong:#fff;--surface-soft:#eef2f7;--text:#162033;--text-invert:#f9fafb;--text-dim:#647084;--muted:#647084;--line:#d9e1eb;--accent:#2563eb;--accent-strong:#1d4ed8;--gold:#b8872d;--shadow:0 24px 70px #0f172a33;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.theme-royal .brand-block h1,.theme-royal .login-mark h1,.theme-royal .detail-identity h2,.theme-royal .section-heading h2,.theme-royal .panel-heading h2,.theme-royal .tree-card .person-name{font-family:Playfair Display,Georgia,Times New Roman,serif}.theme-modern .brand-block h1,.theme-modern .login-mark h1,.theme-modern .detail-identity h2,.theme-modern .section-heading h2,.theme-modern .panel-heading h2,.theme-modern .tree-card .person-name{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}
