.ft{margin:1.25rem 0;font-family:var(--font-ui)}.ft__bar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:end;justify-content:space-between;margin-bottom:.6rem}.ft__find{display:flex;flex-direction:column;gap:.25rem;flex:1 1 14rem;max-width:22rem}.ft__lab{font-size:.78rem;color:var(--reg-muted)}.ft__input{font:400 .9rem var(--font-ui);padding:.45rem .6rem;border:1px solid var(--reg-border-strong);border-radius:6px;background:var(--reg-surface);color:var(--reg-text)}.ft__ctl{display:flex;flex-wrap:wrap;gap:.4rem}.ft__btn{min-width:2.3rem;height:2.3rem;padding:0 .7rem;border:1px solid var(--reg-border-strong);border-radius:999px;background:var(--reg-surface);color:var(--reg-heading);font:500 .85rem var(--font-ui);cursor:pointer}.ft__btn:hover,.ft__btn:focus-visible{border-color:var(--reg-gold);color:var(--reg-gold)}.ft__btn[aria-pressed=true]{background:var(--reg-gold);border-color:var(--reg-gold);color:var(--reg-surface)}.ft__stage{position:relative;height:min(78vh,760px);border:1px solid var(--reg-border);border-radius:10px;overflow:hidden;background:var(--reg-surface);touch-action:none;cursor:grab}.ft__stage:active{cursor:grabbing}.ft__stage:focus-visible{outline:2px solid var(--reg-gold);outline-offset:2px}.ft__svg{display:block;width:100%;height:100%;user-select:none}.ft__lane{fill:var(--reg-text);opacity:.035}.ft__lanehead{font:600 20px var(--font-display);letter-spacing:.02em}.ft__tick{stroke:var(--reg-border);stroke-width:1;stroke-dasharray:2 6}.ft__year{font:600 14px var(--font-ui);fill:var(--reg-muted)}.ft__kin{fill:none;stroke:var(--reg-muted);stroke-width:1.4;opacity:.7}.ft__kin--jump{stroke-dasharray:5 5;display:none}.ft__wed{fill:none;stroke:#c0392b;stroke-width:1.5;opacity:.75}.ft__wed--far{stroke-dasharray:6 5}.ft__box{fill:var(--reg-surface);stroke-width:1.5}.ft__node{cursor:pointer}.ft__node:hover .ft__box,.ft__node:focus .ft__box{stroke-width:3}.ft__node:focus{outline:none}.ft__node.is-mon .ft__box{stroke:var(--reg-gold);stroke-width:3}.ft__node.is-heir .ft__box{stroke:var(--reg-gold);stroke-width:2.5;stroke-dasharray:6 4}.ft__node.is-sel .ft__box{stroke-width:4;filter:drop-shadow(0 0 6px rgba(184,137,43,.6))}.ft__name{font:600 13px var(--font-ui);fill:var(--reg-heading)}.ft__life{font:400 12px var(--font-ui);fill:var(--reg-muted);font-variant-numeric:tabular-nums}.ft--line .ft__node:not(.is-mon):not(.is-heir){opacity:.28}.ft--line .ft__kin:not(.is-line),.ft--line .ft__wed{opacity:.12}.ft--line .ft__kin.is-line{stroke:var(--reg-gold);stroke-width:4;opacity:1;display:inline}.ft__card{position:absolute;top:.75rem;right:.75rem;width:min(22rem,calc(100% - 1.5rem));max-height:calc(100% - 1.5rem);overflow:auto;padding:.9rem 1rem;border:1px solid var(--reg-border-strong);border-radius:10px;background:var(--reg-surface);color:var(--reg-text);box-shadow:0 8px 28px #0000002e;font-size:.9rem;line-height:1.45;cursor:auto}.ft__card p{margin:.35rem 0}.ft__house{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin:0 1.5rem 0 0!important}.ft__cardname{font-family:var(--font-display);font-size:1.2rem;margin:.2rem 1.5rem .2rem 0;color:var(--reg-heading)}.ft__cardlife{color:var(--reg-muted)}.ft__note{font-style:italic}.ft__x{position:absolute;top:.4rem;right:.5rem;border:0;background:none;font-size:1.4rem;line-height:1;color:var(--reg-muted);cursor:pointer}.ft__jump{display:inline;text-align:left;border:0;padding:0;background:none;color:var(--reg-link, var(--reg-gold));font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.ft__read{font-weight:600}.ft__legend{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;list-style:none;padding:0;margin:.7rem 0 0;font-size:.8rem;color:var(--reg-muted)}.ft__legend li{display:flex;align-items:center;gap:.4rem;margin:0}.ft__sw{display:inline-block;width:1.4rem;height:.9rem;border:2px solid;border-radius:3px;background:var(--reg-surface)}.ft__sw--mon{border:3px solid var(--reg-gold)}.ft__sw--wed{height:0;border:0;border-top:2px solid #c0392b;border-radius:0}.ft__fail{color:var(--reg-muted);font-style:italic}.ft__list{margin:1.5rem 0}.ft__list summary{cursor:pointer;font-weight:600}.ft__list h3{margin-top:1rem}.ft__dates{color:var(--reg-muted)}@media(max-width:640px){.ft__stage{height:70vh}.ft__card{top:auto;bottom:.5rem;right:.5rem;max-height:55%}}
