:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#283e36;background:#f7f6f2;font-synthesis:none;--green:#294b3e;--muted:#8a9087;--gold:#ac8c56;--line:#e8e7df}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button{transition:background .15s,transform .15s}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b49b69;outline-offset:3px}button:hover:not(:disabled){filter:brightness(.96)}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-family:Songti SC,STSong,serif}h1{font-size:36px;font-weight:600;letter-spacing:2px;margin:12px 0}h2{font-size:29px;line-height:1.65;font-weight:500}h3{font-size:16px;font-weight:600}p{line-height:1.9}small{font-size:12px}.muted,.hint{color:#858b82;font-size:13px}.hint{line-height:1.8}.eyebrow{font-size:11px;letter-spacing:3px;color:#a98b57}.primary,.secondary,.light-button{border:1px solid transparent;border-radius:6px;padding:11px 20px;font-size:13px;white-space:nowrap}.primary{background:var(--green);color:#fff}.secondary{background:#fff;border-color:#dedfd5;color:var(--green)}.light-button{background:#edf0df;color:#294b3e;padding:12px 19px}.light-button span{margin-left:28px}.full{width:100%}.text-button{border:0;background:none;color:#627965;font-size:12px;padding:8px 0}.danger{color:#a45345}.brand{display:flex;align-items:center;gap:12px;font-family:Songti SC,serif;font-size:22px;letter-spacing:2px;font-weight:600}.brand small{display:block;font-family:inherit;font-weight:400;color:#939789;letter-spacing:1px;margin-top:5px;font-size:10px}.seal{display:grid;place-items:center;width:42px;height:46px;border:2px solid #a74836;border-radius:5px;color:#a74836;font-size:16px;writing-mode:vertical-rl;letter-spacing:4px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#243e34;color:#efe9d7;padding:45px 65px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.login-story .brand{color:#efe9d7}.login-story .seal{color:#dfb78c;border-color:#dfb78c}.story-main{position:relative;padding:85px 0 130px;z-index:1}.story-main h1{font-size:62px;line-height:1.5;font-weight:400;margin:22px 0}.story-main p{color:#b6c1b1;font-size:14px}.story-main .eyebrow{color:#c6b181}.login-story>small{font-size:11px;color:#8eaa94;letter-spacing:3px}.story-orbit{position:absolute;right:-200px;bottom:-100px;width:430px;height:430px;border:1px solid #94a68633;border-radius:50%;display:grid;place-items:center}.story-orbit:after,.story-orbit:before{content:"";position:absolute;top:40px;right:40px;bottom:40px;left:40px;border:1px solid #94a68633;border-radius:50%}.story-orbit:after{top:90px;right:90px;bottom:90px;left:90px}.story-orbit span{font-family:serif;font-size:75px;color:#c6b18166}.story-orbit i{position:absolute;width:10px;height:10px;border-radius:50%;background:#d1be91;left:48px;top:70px}.story-orbit i:nth-child(2){left:355px;top:115px;width:6px;height:6px}.story-orbit i:nth-child(3){left:120px;top:275px;width:7px;height:7px}.login-panel{display:grid;place-items:center;padding:45px}.login-card{width:100%;max-width:355px}.login-card h2{margin:12px 0 4px;font-size:35px}.login-card>.primary{margin-top:25px}.dev-box{margin-top:28px;padding:20px;background:#efeee7;border:1px solid #e1e1d6;border-radius:8px;text-align:center}.dev-box>span{display:block;font-size:11px;letter-spacing:2px;color:#8f917e;margin-bottom:14px}.dev-box small{display:block;color:#919689;font-size:10px}.dev-box .text-button{display:block;width:100%;margin:6px 0}.login-foot{text-align:center;font-size:11px;color:#9b9c91;margin-top:25px}.qr-box{margin-top:20px;text-align:center;padding:15px;border:1px solid var(--line);background:#fff}.qr-box img{width:195px;height:195px}.qr-box p{font-size:12px;color:#8a9087}.workspace{display:flex;min-height:100vh}.sidebar{width:234px;background:#fdfcf8;border-right:1px solid var(--line);padding:32px 22px 0;display:flex;flex-direction:column;position:fixed;top:0;bottom:0}.sidebar .brand{font-size:21px}.family-switch{margin:39px 0 28px}.family-switch label{font-size:10px;color:#9a9d90;letter-spacing:2px;margin-bottom:9px}.family-switch select{background:#f5f4ed;border:1px solid #e8e7df;color:#4b5d4e;font-size:12px;padding:11px;width:100%}.sidebar nav{display:grid;gap:8px}.sidebar nav button{display:flex;align-items:center;gap:15px;border:0;background:none;padding:13px 14px;text-align:left;color:#7f887c;font-size:13px;border-radius:5px}.sidebar nav button>span{font-size:19px;width:20px;text-align:center}.sidebar nav button.active{background:#eaf0e5;color:#36543d;font-weight:600}.sidebar nav button i{font-style:normal;background:#b58f5b;color:#fff;border-radius:10px;padding:1px 6px;font-size:10px;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:35px 4px 25px}.small-orbit{color:#b8aa81;border:1px solid #e6e3d6;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.sidebar-bottom p{font-family:Songti SC,serif;color:#a4a68e;font-size:13px;margin:12px 0 5px}.account{border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;padding:20px 0;font-size:11px}.account small{display:block;color:#9da193;margin-top:5px;font-size:9px}.account button{margin-left:auto;font-size:10px}.avatar{display:grid;place-items:center;width:30px;height:30px;background:#e5e9dc;border-radius:50%;color:#6b7e62}.workspace main{margin-left:234px;width:calc(100% - 234px)}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 40px;color:#858c7e;font-size:11px;letter-spacing:1px;background:#fdfcf8}.topbar .secondary{padding:8px 14px;font-size:11px}.status-dot{display:inline-block;width:5px;height:5px;background:#819276;border-radius:50%;margin-right:8px;vertical-align:middle}.dev-badge{background:#f3ebd9;color:#a88a4e;padding:4px 7px;margin-left:14px;font-size:10px;border-radius:3px}.main-content{padding:35px 40px 0;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:27px}.page-heading h1{font-size:30px;letter-spacing:2px}.page-heading p{color:#8e9489;font-size:12px;margin-bottom:0}.heading-actions{display:flex;gap:10px}.hero{background:#2a4539;border-radius:10px;display:flex;justify-content:space-between;padding:35px 40px;min-height:280px;overflow:hidden;position:relative}.hero .eyebrow{font-size:10px;color:#b4c09d}.hero h2{color:#f0ecdb;font-size:30px;margin:13px 0;line-height:1.5;letter-spacing:2px}.hero p{font-size:11px;color:#b8c4ae;line-height:1.85;margin-bottom:22px}.hero .light-button{padding:10px 15px;font-size:11px}.hero-art{position:absolute;right:5%;width:310px;height:310px;top:8px;display:grid;place-items:center}.orbit{position:absolute;border:1px solid #a5b38a33;border-radius:50%;width:270px;height:270px}.orbit.o2{width:195px;height:195px;transform:rotate(35deg);border-style:dashed}.orbit.o3{width:110px;height:110px}.art-center{color:#d2c394;font-family:Songti SC,serif;font-size:42px;font-weight:400}.art-label{position:absolute;border:1px solid #899b7333;background:#324c3e;color:#b5c09d;font-size:10px;border-radius:50%;width:44px;height:44px;display:grid;place-items:center}.a1{left:24px;top:55px}.a2{right:8px;top:145px}.a3{left:75px;bottom:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0 28px}.stats article{border:1px solid var(--line);border-radius:8px;background:#fdfcf8;padding:20px 22px}.stats article>span{font-size:11px;color:#7d8577}.stats strong{display:block;font-size:31px;font-weight:500;margin:14px 0 10px;font-family:Georgia,serif}.stats strong small{font-size:11px;font-weight:400;color:#9c9d8c}.stats p{font-size:10px;color:#a1a495;margin:0}.two-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}.panel{background:#fdfcf9;border:1px solid var(--line);border-radius:8px;padding:23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-heading h3{margin:0}.panel-heading .text-button{font-size:10px}.person-row{width:100%;display:flex;align-items:center;gap:13px;border:0;background:none;text-align:left;padding:13px 0;border-bottom:1px solid #efeee7;color:#41513f}.person-row:last-child{border-bottom:0}.person-row b{font-size:12px;font-weight:500;display:block}.person-row small{display:block;margin-top:6px;font-size:10px;color:#a0a392}.person-row em{margin-left:auto;font-size:10px;font-style:normal;color:#a1a48f}.person-row>span:last-child{font-size:11px;color:#9d9e8c;margin-left:10px}.person-avatar{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e9e9dd;color:#7d8666;font-family:Songti SC,serif;font-size:17px;flex-shrink:0}.person-avatar.deceased{background:#ede6da;color:#a08c68}.person-avatar.large{width:58px;height:58px;font-size:27px}.next-step{padding:28px}.next-step h3{font-family:Songti SC,serif;font-size:19px;font-weight:500;margin-top:15px;line-height:1.7}.next-step>p{font-size:11px;color:#949887}.next-step .secondary{font-size:11px;padding:9px 13px}.export-block{border-top:1px solid var(--line);margin-top:25px;padding-top:22px}.export-block h4{font-size:12px;font-weight:500;margin-bottom:5px}.export-block p{font-size:10px;color:#9a9f8e;margin-bottom:6px}.export-block .text-button{font-size:11px}.page-footer{padding:30px 0 22px;color:#a2a58f;font-size:10px;letter-spacing:2px}.page-footer span{float:right;color:#b3b5a4}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.toolbar input{max-width:330px;background:#fdfcf8}.toolbar .muted{font-size:11px}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.person-card{text-align:center;padding:25px}.card-open{background:none;border:0;color:inherit;width:100%}.person-card h3{font-size:19px;margin:13px 0 6px;font-family:Songti SC,serif}.person-card p{font-size:11px;color:#969b8d}.tags{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin:13px 0}.tags span,.tag{font-size:10px;padding:4px 7px;border-radius:3px;background:#eeefe5;color:#859174}.bio-excerpt{height:42px;overflow:hidden;text-align:left;border-top:1px solid #edede5;padding-top:12px}.star-mark{color:#b69b62;font-size:13px;margin-left:6px}.tree-canvas{overflow:auto;border:1px solid var(--line);border-radius:8px;background-color:#f0f0e9;background-image:radial-gradient(#cfcfc1 1px,transparent 1px);background-size:19px 19px}.tree-node{cursor:pointer}.node-name{font-family:Songti SC,serif;font-size:17px;fill:#3b5142}.node-dates{font-size:10px;fill:#9a9c88}.relationship-list{margin-top:20px}.relationship-row{display:flex;align-items:center;gap:15px;padding:13px 0;border-top:1px solid var(--line);font-size:12px}.relationship-row .muted{font-size:11px;flex:1}.relationship-row b{font-weight:500}.relationship-row>span:first-child{min-width:150px}.starfield{position:relative;height:560px;border-radius:12px;background:radial-gradient(ellipse at 40% 80%,#304e54 0,transparent 55%),radial-gradient(ellipse at 65% 20%,#293a4b 0,#121f2c 70%);overflow:hidden}.star-dust{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 20px 30px,#d3d1af88 90%,transparent),radial-gradient(1px 1px at 100px 130px,#b1bdca66 90%,transparent),radial-gradient(1px 1px at 60px 90px,#ddd7b555 90%,transparent);background-size:171px 163px,253px 239px,137px 211px}.star-caption{position:absolute;left:30px;top:26px;color:#9eacb5;font-size:10px;letter-spacing:3px}.family-star{position:absolute;background:none;border:0;transform:translate(-50%,-50%);color:#dfcf9c;text-align:center;min-width:62px;padding:12px}.family-star span{font-size:25px;display:block;text-shadow:0 0 15px #e5cd89,0 0 40px #d6bd7977;animation:glow 5s infinite ease-in-out}.family-star b{font-size:12px;font-weight:400;letter-spacing:2px;color:#d2d9d4;display:block;margin-top:10px}.family-star:hover{background:#ffffff0a;border-radius:12px}.star-footer{position:absolute;bottom:15px;left:0;right:0;text-align:center;color:#7a909c;font-size:10px;letter-spacing:2px;pointer-events:none}.star-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#cfcec0}.star-empty>span{font-size:45px;color:#c9b57f;text-shadow:0 0 30px #c9b57f99}.star-empty h2{font-size:25px;margin-top:20px;margin-bottom:8px}.star-empty p{font-size:12px;color:#869ba4}.request-row{display:flex;gap:15px;align-items:center;border-top:1px solid var(--line);padding:12px 0;font-size:12px}.request-row span{flex:1}.empty-welcome{min-height:65vh;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column}.empty-welcome h1{font-size:31px}.empty-welcome p{color:#8d9487;font-size:13px}.empty-welcome>.primary{margin-top:20px;margin-bottom:10px}.big-seal{font-family:serif;border:2px solid #b57254;color:#b57254;font-size:45px;width:80px;height:85px;display:grid;place-items:center;border-radius:5px;margin-bottom:30px}.inline-empty{text-align:center;padding:45px 10px;color:#9ba18f;font-size:12px}.error{background:#f9eae4;border:1px solid #eed5cb;border-radius:6px;padding:12px 16px;color:#a55742;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.toast{position:fixed;right:30px;top:85px;background:#e5eddf;color:#46603d;border:1px solid #cbd7bf;padding:14px 22px;border-radius:7px;font-size:12px;z-index:30;box-shadow:0 4px 25px #1b3c2710}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#172c2459;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;display:flex;justify-content:center;align-items:center;padding:25px}.modal{position:relative;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;background:#fdfcf8;border-radius:12px;padding:32px 38px;box-shadow:0 20px 90px #10261a33}.modal h2{font-size:27px;margin-bottom:20px}.modal .eyebrow{font-size:10px}.close{position:absolute;top:16px;right:18px;background:none;border:0;font-size:27px;color:#929986}.modal form>label,.form-grid label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#66765e;margin-bottom:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #dddcd0;border-radius:5px;background:#fffefa;color:#354c3d;outline:none;font-size:13px}input:focus,select:focus,textarea:focus{border-color:#9dba87;box-shadow:0 0 0 2px #9dba8722}textarea{min-height:105px;resize:vertical;line-height:1.7}.invite-code{display:block;background:#eeefe5;border:1px dashed #c7cbb7;padding:20px;text-align:center;word-break:break-all;font-size:16px;color:#536b47;-webkit-user-select:all;user-select:all}.profile{text-align:center}.profile h2{margin:15px 0 0}.profile h3{text-align:left;margin-top:25px}.profile>p:not(.muted){text-align:left;font-size:13px}.profile-bio{white-space:pre-wrap;color:#6d7a65;overflow-wrap:anywhere}.profile .secondary{margin-top:20px}@keyframes glow{50%{opacity:.55;text-shadow:0 0 7px #e5cd89}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:1500px){.main-content{padding-top:45px}.hero{min-height:320px;padding:42px 45px}.hero-art{right:9%;top:25px}.hero h2{font-size:35px}.stats{margin-top:25px}.stats article{padding:25px}.page-heading{margin-bottom:32px}}@media(max-width:1100px){.sidebar{width:200px;padding-left:15px;padding-right:15px}.workspace main{margin-left:200px;width:calc(100% - 200px)}.main-content{padding:26px 25px 0}.topbar{padding:0 25px}.stats{gap:10px}.stats article{padding:16px 13px}.stats p{font-size:9px}.hero-art{right:-20px;opacity:.65}.hero>div:first-child{z-index:1}.two-columns{gap:15px}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.relationship-row{flex-wrap:wrap}}@media(max-width:760px){.login-layout{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh;padding:30px}.sidebar{position:static;width:100%;padding:20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:21px}.family-switch{margin:20px 0 12px}.sidebar nav{display:flex;overflow-x:auto;gap:5px}.sidebar nav button{padding:10px;gap:7px;white-space:nowrap;font-size:11px}.sidebar nav button>span{font-size:15px}.sidebar-bottom{display:none}.account{position:absolute;right:20px;top:15px;border:0;padding:0}.account>div,.account>.avatar{display:none}.workspace{display:block}.workspace main{width:100%;margin:0}.topbar{height:55px;padding:0 20px}.main-content{padding:24px 18px 0}.page-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%}.heading-actions button{flex:1}.page-heading h1{font-size:27px}.hero{padding:28px 23px;min-height:290px}.hero h2{font-size:28px}.hero-art{right:-130px;opacity:.4}.hero>div:first-child{z-index:1}.stats{grid-template-columns:repeat(2,1fr)}.stats article{padding:18px}.two-columns{grid-template-columns:1fr}.people-grid{gap:12px}.person-card{padding:20px 10px}.toolbar{align-items:flex-start;flex-wrap:wrap}.toolbar input{max-width:none}.modal{padding:28px 23px}.modal-backdrop{padding:14px}.starfield{height:470px}.page-footer{letter-spacing:1px}.page-footer span{font-size:9px}.tree-canvas{max-height:600px}.toolbar .muted{line-height:1.8}.relationship-row>span:first-child{min-width:auto}.star-caption{font-size:9px;letter-spacing:1px}}
