@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";.person em{color:#665842;font-size:.78rem;font-style:normal}.tree{position:relative}.relations{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:visible}.relations path{fill:none;stroke:#8f7049;stroke-width:1.4px}.generation,.nodes{z-index:1}.generation:not(:first-child):before,.nodes:before{display:none}.focus-relations .person{opacity:.34}.focus-relations .person.active,.focus-relations .person.related{opacity:1;background:#fff7e5;border-color:#a7352a}.focus-relations .relations path{opacity:.14}.focus-relations .relations path.linked{opacity:1;stroke:#a7352a;stroke-width:3px}.review{z-index:5;position:fixed;inset:3.5rem max(1rem,50vw - 29rem);overflow:auto;box-shadow:0 1.5rem 3rem #251a1070}.review:before{content:"";z-index:-1;background:#251a1055;position:fixed;inset:0}@media (width<=640px){.review{inset:1rem}}.form-error{color:#a7352a;margin:.25rem 0;font-size:.9rem}.reset-password{color:#8b3b2a;background:0 0;border:0;width:100%;margin-top:.7rem;text-decoration:underline}.dialog .submit{font-size:0}.dialog .submit:after{content:"立即保存";font-size:1rem}.person small{display:none}.drawer{border:1px solid #ae9b78;border-top:4px solid #8b3b2a;width:min(22rem,100vw - 2rem);height:auto;max-height:42vh;top:auto;bottom:1rem;right:1rem;overflow:auto;transform:translateY(120%);box-shadow:0 .8rem 2.4rem #412b1840}@media (width<=640px){.drawer{width:calc(100vw - 1rem);max-height:45vh;bottom:.5rem;right:.5rem}}.relations{inset:0 auto auto 0}.tree{isolation:isolate}.relations path{vector-effect:non-scaling-stroke}.generation>p{z-index:2;background:#f3eddf;width:max-content;margin-left:auto;margin-right:auto;padding:0 .55rem;position:relative}.tree{scrollbar-color:#a7352a #e5d9c2;scrollbar-width:thin;padding:1.5rem 0 4.5rem}.tree:after{content:"← 左右滑动可查看完整家谱 →";z-index:2;white-space:nowrap;color:#766751;background:#f3eddf;border:1px solid #d6c6a9;border-radius:99rem;padding:.28rem .75rem;font-size:.78rem;position:absolute;bottom:.7rem;left:50%;transform:translate(-50%)}.nodes{gap:1.25rem}.person{width:9.5rem;min-height:7rem;padding:.65rem .5rem;transition:transform .16s,box-shadow .16s,border-color .16s;box-shadow:0 .2rem .45rem #4a34100e}.person:hover{border-color:#a7352a;transform:translateY(-.2rem);box-shadow:0 .55rem 1rem #4a341025}.person b{font-size:1.08rem}.person em{line-height:1.35}.kinship{margin-bottom:.05rem}.focus-relations .relations path.linked{stroke-width:3.2px;filter:drop-shadow(0 0 .12rem #a7352a80)}.generation>p{background:0 0}.tree{transform-origin:top;width:100%;overflow:hidden}.tree:after{display:none}.generation{padding:7rem 0 1rem}.generation:first-of-type{padding-top:1.5rem}.relations path{stroke-linecap:round;stroke-linejoin:round}.layered-tree{isolation:isolate;position:relative;padding:0!important;overflow:hidden!important}.layered-tree .person{z-index:1;width:9.5rem;height:10rem;min-height:10rem;position:absolute}.layered-tree .layer-label{z-index:1;text-align:center;color:#766751;pointer-events:none;margin:0;font-size:.85rem;position:absolute;left:0;right:0}.layered-tree .relations{z-index:0}.layered-tree .person{font-size:1.08rem}.layered-tree .person b{font-size:1.35rem}.layered-tree .kinship{font-size:1.18rem}.layered-tree .person em{font-size:1.02rem}.layered-tree .layer-label{font-size:1rem}@media (width<=640px){.layered-tree{max-width:100vw;overflow:auto!important}.layered-tree .person{font-size:1.15rem}.layered-tree .person b{font-size:1.48rem}.layered-tree .kinship{font-size:1.28rem}.drawer{max-height:36vh}.toolbar{gap:.55rem}.toolbar span{font-size:.85rem}}.relations path{stroke:#a7352a;stroke-width:2.2px;opacity:.92}.kinship{color:#a7352a;letter-spacing:.05em;font-size:.84rem;font-weight:700}:root{color:#29251f;background:#f3eddf;font-family:Noto Serif SC,Songti SC,serif;font-size:16px}*{box-sizing:border-box}body{background:radial-gradient(#d7c9aa 1px,#0000 1px) 0 0/22px 22px,#f3eddf;margin:0}button,input,select{font:inherit}button{cursor:pointer;color:#32291d;background:#fffaf0;border:1px solid #bba985;border-radius:.25rem;min-height:44px;padding:.65rem .95rem}button:hover{background:#f4ead3}.vermilion{color:#fff9ec;background:#a7352a;border-color:#8d291f}.vermilion:hover{background:#86271f}.ink{color:#fff9ec;background:#2f302b;border-color:#2f302b}main{max-width:96rem;margin:auto;padding:1rem}header{border-bottom:2px solid #6c3826;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem .3rem;display:flex}header>div{align-items:center;gap:.85rem;display:flex}.seal{color:#fff;outline-offset:3px;background:#a7352a;outline:2px solid #a7352a;place-items:center;width:3rem;height:3rem;margin:0;font-size:1.75rem;display:grid}h1,h2,p{margin-top:0}h1{margin:0;font-size:clamp(1.5rem,4vw,2.3rem)}.sub,.eyebrow{color:#8b3b2a;letter-spacing:.12em;margin:.15rem 0 0;font-size:.85rem}nav,.actions{flex-wrap:wrap;gap:.55rem;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem 0;display:flex}.toolbar label{font-weight:600}.toolbar input{background:#fffdf7;border:1px solid #bba985;border-radius:.25rem;min-height:44px;margin-left:.5rem;padding:.6rem}.toolbar span{color:#675e50;flex:1}.tree{padding:1rem 0 3rem;overflow:auto}.generation{min-width:max-content;padding:1.4rem 0 0;position:relative}.generation:not(:first-child):before{content:"";border-left:1px solid #907c5c;height:1.4rem;position:absolute;top:0;left:50%}.generation>p{text-align:center;color:#766751;font-size:.85rem}.nodes{justify-content:center;gap:1rem;display:flex;position:relative}.nodes:before{content:"";border-top:1px solid #907c5c;width:calc(100% - 8rem);position:absolute;top:-.7rem}.person{background:#fffdf7;border:1px solid #8b7352;border-top:4px solid #8b3b2a;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;width:8.7rem;min-height:5.9rem;display:flex}.person.active{outline-offset:2px;outline:3px solid #c79a45}.person small{color:#8b3b2a;font-size:.72rem}.drawer{z-index:2;background:#fffaf0;border-left:1px solid #ae9b78;width:min(24rem,92vw);height:100vh;padding:1.5rem;transition:all .2s;position:fixed;top:0;right:0;transform:translate(105%);box-shadow:-6px 0 18px #412b181c}.drawer.open{transform:none}.close{float:right;background:0 0;border:0;min-width:44px;padding:0;font-size:1.8rem}.drawer h2{margin:.5rem 0 1.5rem;font-size:2rem}dl{border-top:1px solid #ddcfb3;grid-template-columns:5rem 1fr;gap:1rem;padding-top:1rem;display:grid}dt{color:#796950}dd{margin:0}.danger{color:#a7352a;border-color:#a7352a}.review{background:#fffaf0;border:1px solid #bba985;margin:1rem 0;padding:1.25rem}.review-title{justify-content:space-between;align-items:center;display:flex}.review article{border-top:1px solid #e2d5ba;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.review article p{color:#6c6252;margin:.35rem 0 0;font-size:.85rem}.review article div:last-child{gap:.5rem;display:flex}.empty{color:#6c6252}.shade{z-index:3;background:#251a10a8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:#fffaf0;border-top:5px solid #a7352a;width:min(30rem,100%);padding:1.5rem;box-shadow:0 1.5rem 3rem #140d08}.dialog label{flex-direction:column;gap:.35rem;margin:1rem 0;font-weight:600;display:flex}.dialog input,.dialog select{background:#fffdf7;border:1px solid #bba985;border-radius:.2rem;width:100%;min-height:44px;padding:.65rem}.submit{width:100%;margin-top:.5rem}.search{background:#fffaf0;border:1px solid #bba985;padding:1rem}.search button{margin:.2rem}.search h2{font-size:1.25rem}@media (width<=640px){main{padding:.7rem}.toolbar{align-items:stretch}.toolbar input{width:100%;margin:.5rem 0 0}.toolbar span{flex:auto}.nodes{justify-content:flex-start}.review article{flex-direction:column;align-items:flex-start}.generation{padding-top:1.2rem}}
