@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-500-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-600-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-700-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/manrope-400-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/manrope-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/manrope-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/manrope-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/manrope-500-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/manrope-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/manrope-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/manrope-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/manrope-600-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/manrope-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/manrope-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/manrope-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/manrope-700-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/manrope-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/manrope-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/manrope-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/playfair-display-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/playfair-display-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/playfair-display-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/playfair-display-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/playfair-display-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/playfair-display-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/playfair-display-800-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/playfair-display-800-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/playfair-display-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-italic-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-italic-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/spectral-300-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/spectral-300-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/spectral-300-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/spectral-300-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spectral-500-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spectral-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spectral-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spectral-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-600-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box;margin:0;padding:0}:root{--paper: #faf6ee;--paper-dark: #f3ecdc;--paper-darker: #ebe2cc;--surface: #ffffff;--border: #d8cdb5;--border-soft: #e8e0cc;--ink: #2a201a;--ink-soft: #6b5d4c;--ink-faint: #a89d88;--accent: #7a1a1a;--accent-soft: #b85454;--accent-bg: #fbe9e3;--gold: #b88a3d;--gold-soft: #e0c890;--male: #d6e1ec;--male-line: #5a7891;--male-bg: #ebf1f6;--female: #ecd5d5;--female-line: #9c6868;--female-bg: #f7e8e8;--highlight: #f6dc8a;--shadow-soft: 0 1px 2px rgba(60, 40, 20, .05);--shadow-med: 0 4px 18px rgba(60, 40, 20, .1)}html,body{height:100%;overflow:hidden}body{font-family:Manrope,system-ui,sans-serif;background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app,.lineage-explorer-app{display:grid;grid-template-rows:auto auto 1fr auto;height:100vh}body.is-onboarding>.lineage-explorer-app,.lineage-explorer-app:has(>.onboard-banner),body:has(>.onboard-banner) .lineage-explorer-app{grid-template-rows:auto auto auto 1fr auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--surface);gap:16px}.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}.brand-mark{width:42px;height:42px;background:var(--accent);color:var(--paper);display:grid;place-items:center;font-size:22px;border-radius:2px;font-family:Cormorant Garamond,serif;font-weight:600;letter-spacing:-.04em;position:relative}.brand-mark:after{content:"";position:absolute;inset:3px;border:1px solid rgba(250,246,238,.35);border-radius:1px;pointer-events:none}.brand h1{font-family:Cormorant Garamond,serif;font-weight:600;font-size:22px;letter-spacing:-.01em;color:var(--ink);line-height:1.1}.brand-sub{font-size:10.5px;color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:2px}.header-tools{display:flex;align-items:center;gap:8px}.search-wrap{position:relative}#search{width:290px;padding:9px 14px 9px 36px;border:1px solid var(--border);border-radius:4px;font:inherit;font-size:13px;background:var(--paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b5d4c' stroke-width='2'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>");background-repeat:no-repeat;background-position:11px center;background-size:14px;color:var(--ink);transition:all .15s}#search:focus{outline:none;border-color:var(--accent);background-color:var(--surface)}.search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:4px;max-height:320px;overflow-y:auto;display:none;z-index:50;box-shadow:var(--shadow-med)}.search-results.open{display:block}.search-result{padding:9px 14px;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;font-size:13px;border-bottom:1px solid var(--border-soft);gap:8px}.search-result:last-child{border-bottom:0}.search-result:hover{background:var(--paper-dark)}.search-result-name{font-family:Cormorant Garamond,serif;font-size:15px;font-weight:600}.search-result-meta{color:var(--ink-faint);font-size:11px;white-space:nowrap}.search-result-family{display:inline-block;margin-right:8px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:500}.search-empty{padding:14px;text-align:center;color:var(--ink-faint);font-size:12px;font-style:italic}.btn-icon{width:38px;height:38px;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:4px;font-size:16px;color:var(--ink-soft);transition:all .15s;display:grid;place-items:center;font-family:inherit}.btn-icon:hover{background:var(--paper-dark);color:var(--accent);border-color:var(--accent)}.btn-icon:active{transform:scale(.96)}.tabs-bar{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:var(--paper-dark);padding:0 24px;gap:0;overflow-x:auto;scrollbar-width:none}.tabs-bar::-webkit-scrollbar{display:none}.tab{padding:11px 22px;background:none;border:0;cursor:pointer;font:inherit;color:var(--ink-soft);border-bottom:2px solid transparent;transition:all .15s;display:flex;align-items:baseline;gap:10px;font-family:Cormorant Garamond,serif;font-size:18px;font-weight:500;white-space:nowrap;position:relative}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent);border-color:var(--accent);font-weight:600}.tab-meta{font-family:Manrope,sans-serif;font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.12em;font-weight:500}.tab.active .tab-meta{color:var(--accent-soft)}.canvas-wrap{display:flex;position:relative;overflow:hidden;min-height:0}.canvas-container{flex:1;position:relative;overflow:hidden;background:var(--paper);background-image:radial-gradient(circle at 1px 1px,rgba(120,100,70,.12) 1px,transparent 0);background-size:26px 26px}.tree-svg{display:block;width:100%;height:100%;cursor:grab;user-select:none}.tree-svg.grabbing,.canvas-container.grabbing{cursor:grabbing}.canvas-container{cursor:grab}.canvas-container.over-card{cursor:pointer}.tree-canvas{display:none;position:absolute;inset:0;touch-action:none;user-select:none;-webkit-user-select:none}.canvas-container.canvas-mode .tree-canvas{display:block}.canvas-container.canvas-mode .tree-svg{display:none}.canvas-controls{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;gap:4px;background:var(--surface);padding:4px;border:1px solid var(--border);border-radius:4px;box-shadow:var(--shadow-soft);z-index:10}.canvas-controls .btn-icon{border:0;width:32px;height:32px;font-size:14px}.canvas-controls .btn-icon:hover{border:0;background:var(--paper-dark)}.legend{position:absolute;bottom:16px;left:16px;background:var(--surface);padding:8px 14px;border:1px solid var(--border);border-radius:4px;display:flex;gap:14px;font-size:11px;color:var(--ink-soft);box-shadow:var(--shadow-soft);flex-wrap:wrap;max-width:calc(100% - 100px);z-index:5}.legend-item{display:flex;align-items:center;gap:6px;white-space:nowrap}.dot{width:11px;height:11px;border-radius:2px;border:1px solid var(--ink-faint)}.dot-male{background:var(--male-bg);border-color:var(--male-line)}.dot-female{background:var(--female-bg);border-color:var(--female-line)}.dot-deceased{background:var(--ink-faint)}.dot-alive{background:var(--paper);border-color:var(--gold);border-width:2px}.family-header{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none;z-index:5}.family-info{background:var(--surface);padding:10px 16px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 4px 4px 0;max-width:480px;box-shadow:var(--shadow-soft);pointer-events:auto}.family-info-title{font-family:Cormorant Garamond,serif;font-size:19px;font-weight:600;color:var(--ink)}.family-info-region{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em}.family-info-desc{font-size:12.5px;color:var(--ink-soft);margin-top:6px;display:none;line-height:1.55}.family-info.expanded .family-info-desc{display:block}.family-info-toggle{font-size:11px;color:var(--accent);margin-top:4px;cursor:pointer;font-weight:500}.family-info-toggle:hover{text-decoration:underline}.node{cursor:pointer}.node-rect{fill:var(--surface);stroke:var(--ink-soft);stroke-width:1;transition:stroke-width .15s,stroke .15s,fill .15s}.node-rect.male{fill:var(--male-bg);stroke:var(--male-line)}.node-rect.female{fill:var(--female-bg);stroke:var(--female-line)}.node-rect.alive{stroke:var(--gold);stroke-width:2}.node:hover .node-rect{stroke-width:2.5}.node.selected .node-rect{stroke:var(--accent);stroke-width:2.5}.node.match .node-rect{fill:var(--highlight);stroke:var(--gold);stroke-width:2.5}.node.dimmed{opacity:.18}.node.dimmed:hover{opacity:1}.node-rect.pending{stroke:#d4a44a!important;stroke-width:2!important;stroke-dasharray:4 3;fill-opacity:.85}.node.node-pending:hover .node-rect.pending{stroke-width:3!important}.node-pending-mark{font-size:12px;fill:#b8800a;pointer-events:none;font-family:sans-serif}.node.node-hidden{opacity:.5}.node.node-hidden:hover{opacity:.85}.node-rect.hidden{stroke-dasharray:2 2;fill-opacity:.5}.node-hidden-mark{font-size:12px;fill:#5a4a30;pointer-events:none;font-family:sans-serif}.node-name{font-family:Cormorant Garamond,serif;font-weight:600;font-size:14px;fill:var(--ink);text-anchor:middle;pointer-events:none}.node-dates{font-family:Manrope,sans-serif;font-size:10.5px;fill:var(--ink-soft);text-anchor:middle;pointer-events:none;font-weight:500}.node-spouse{font-family:Manrope,sans-serif;font-size:9.5px;fill:var(--ink-soft);text-anchor:middle;pointer-events:none;font-style:italic}.node-occupation{font-family:Manrope,sans-serif;font-size:9px;fill:var(--ink-faint);text-anchor:middle;pointer-events:none;letter-spacing:.04em;text-transform:uppercase;font-weight:500}.node-deceased-mark{font-size:9px;fill:var(--ink-faint);text-anchor:end;pointer-events:none}.link{fill:none;stroke:var(--ink-faint);stroke-width:1.2;opacity:.55}.link.path-highlight{stroke:var(--accent);stroke-width:2;opacity:1}.link.link-adoptive{stroke-dasharray:6 4;opacity:.75}.link.link-adoptive.path-highlight{stroke-dasharray:6 4}.node-placeholder .node-box,.node-placeholder rect{stroke-dasharray:4 3;opacity:.6}.node-placeholder text{font-style:italic;opacity:.7}.generation-label{font-family:Cormorant Garamond,serif;font-style:italic;font-size:11px;fill:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase}.details-panel{width:400px;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;flex-shrink:0;position:relative}.panel-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;color:var(--ink-soft)}.panel-empty-icon{font-size:56px;color:var(--border);margin-bottom:18px;font-family:Cormorant Garamond,serif;line-height:1}.panel-empty p{font-size:14px;max-width:240px;line-height:1.6}.panel-empty-hint{font-size:11px;color:var(--ink-faint);margin-top:22px;letter-spacing:.05em;display:flex;flex-direction:column;gap:4px}.panel-empty-hint span{font-style:italic}.panel-content{padding:26px 30px 50px}.panel-header{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:22px;position:relative}.panel-decoration{width:30px;height:1px;background:var(--accent);margin-bottom:8px}.panel-name{font-family:Cormorant Garamond,serif;font-size:27px;font-weight:700;letter-spacing:-.01em;line-height:1.1;color:var(--ink)}.panel-lifespan{font-size:11px;color:var(--ink-soft);letter-spacing:.18em;text-transform:uppercase;margin-top:8px;font-weight:500}.panel-occupation{font-style:italic;font-family:Cormorant Garamond,serif;font-size:17px;color:var(--accent);margin-top:6px;font-weight:500}.panel-close{position:absolute;right:0;top:0;border:0;background:none;font-size:26px;cursor:pointer;color:var(--ink-faint);width:28px;height:28px;display:grid;place-items:center;line-height:1;font-family:inherit}.panel-close:hover{color:var(--accent)}.panel-section{margin-bottom:24px}.panel-section:last-child{margin-bottom:0}.panel-section-title{font-family:Cormorant Garamond,serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;padding-bottom:5px;border-bottom:1px solid var(--border);font-weight:600}.fact-grid{display:grid;gap:10px}.fact-row{display:grid;grid-template-columns:95px 1fr;font-size:13px;align-items:baseline;gap:4px}.fact-label{color:var(--ink-soft);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.fact-value{color:var(--ink);font-family:Cormorant Garamond,serif;font-size:16px;font-weight:500;line-height:1.3}.fact-value-place{color:var(--ink-soft);font-size:12px;font-family:Manrope,sans-serif;font-style:italic;font-weight:400;margin-top:1px}.fact-value-age{color:var(--ink-faint);font-family:Manrope,sans-serif;font-style:italic;font-size:11px;font-weight:400;display:inline-block;margin-left:6px}.marriage-block{background:var(--paper);border-left:3px solid var(--accent-soft);padding:14px 16px;margin-bottom:12px;border-radius:0 3px 3px 0}.marriage-block:last-child{margin-bottom:0}.marriage-num{font-size:9.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.15em;font-weight:500;margin-bottom:4px}.marriage-spouse{font-family:Cormorant Garamond,serif;font-size:18px;font-weight:600;color:var(--ink);margin-bottom:6px;display:flex;align-items:baseline;gap:8px}.marriage-spouse:before{content:"⚭";color:var(--accent);font-size:16px}.marriage-meta{font-size:12px;color:var(--ink-soft);line-height:1.6}.marriage-note{font-style:italic;margin-top:4px;display:block;color:var(--ink-soft);font-size:11.5px;padding-top:4px;border-top:1px dashed var(--border)}.children-list{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}.children-label{font-size:9.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.15em;margin-bottom:6px;font-weight:500}.child-link{display:inline-block;background:var(--surface);border:1px solid var(--border);padding:4px 10px;margin:3px 4px 3px 0;border-radius:12px;font-size:11.5px;cursor:pointer;color:var(--ink);transition:all .15s;font-family:Cormorant Garamond,serif;font-weight:500}.child-link:hover{background:var(--accent);color:var(--paper);border-color:var(--accent)}.child-link-dates{color:var(--ink-faint);font-size:10px;margin-left:4px;font-family:Manrope,sans-serif;font-weight:400}.child-link:hover .child-link-dates{color:var(--paper-dark)}.bio-text{font-size:13.5px;line-height:1.7;color:var(--ink);font-family:Cormorant Garamond,serif;font-weight:500}.parent-link{display:inline-flex;align-items:baseline;gap:4px;font-size:14px;color:var(--accent);cursor:pointer;border-bottom:1px dashed var(--accent-soft);margin-right:14px;font-family:Cormorant Garamond,serif;font-weight:500}.parent-link:hover{border-bottom-style:solid}.parent-link-dates{font-size:10.5px;font-family:Manrope,sans-serif;color:var(--ink-faint);font-weight:400;font-style:italic}.no-info{font-size:12px;color:var(--ink-faint);font-style:italic}.timeline{background:var(--paper-dark);border-top:1px solid var(--border);padding:10px 24px 12px}.timeline-row{display:flex;align-items:center;gap:14px}.timeline-label{font-size:10.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.12em;font-weight:500;white-space:nowrap}#year-slider{flex:1;max-width:700px;-webkit-appearance:none;appearance:none;height:4px;background:var(--border);border-radius:2px;outline:none}#year-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--accent)}#year-slider::-moz-range-thumb{width:18px;height:18px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--accent)}.timeline-year{font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600;color:var(--accent);min-width:64px;text-align:center;letter-spacing:-.01em}.timeline-info{font-size:11px;color:var(--ink-soft);font-style:italic;min-width:130px}.btn-text{background:none;border:0;color:var(--ink-soft);font-size:12px;cursor:pointer;padding:4px 8px;text-decoration:underline;font-family:inherit}.btn-text:hover{color:var(--accent)}.btn-text.active{color:var(--accent);font-weight:600}@media(max-width:1000px){.details-panel{position:absolute;right:0;top:0;bottom:0;z-index:100;box-shadow:-8px 0 24px #0000001a;transform:translate(100%);transition:transform .25s ease;width:min(400px,92vw)}.details-panel.open{transform:translate(0)}}@media(max-width:700px){.topbar{padding:10px 14px;flex-direction:column;align-items:stretch;gap:8px}.header-tools{flex-wrap:wrap}#search{width:100%}.search-wrap{flex:1;min-width:0}.tabs-bar{padding:0 14px}.tab{padding:10px 14px;font-size:16px}.timeline{padding:10px 14px}.timeline-info{display:none}.family-header{left:8px;right:8px;top:8px}.family-info-desc{font-size:11.5px}.legend{left:8px;bottom:8px;padding:6px 10px;gap:8px;font-size:10px}.canvas-controls{right:8px;bottom:8px}.panel-content{padding:20px 20px 50px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel-content{animation:fadeIn .2s ease}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.family-banner-name{font-family:Cormorant Garamond,serif;font-size:24px;font-weight:600;fill:#5a1414;letter-spacing:.5px}.family-banner-region{font-family:Manrope,sans-serif;font-size:9px;font-weight:500;fill:#8b6f47;letter-spacing:2.5px}.family-banner-line{stroke:#c9a961;stroke-width:1;stroke-dasharray:1,4;opacity:.5}.cross-family-link{fill:none;stroke:#c9a961;stroke-width:2;stroke-dasharray:6,4;opacity:.85}.cross-family-glyph{font-family:Cormorant Garamond,serif;font-size:22px;fill:#b8860b;font-weight:600}.couple-link{fill:none;stroke:#b8860b;stroke-width:2;opacity:.9}.couple-link-glyph{font-family:Cormorant Garamond,serif;font-size:16px;fill:#b8860b;font-weight:600;letter-spacing:0}.node.satellite-external .node-rect{stroke-dasharray:4,3}.marriage-link{fill:none;stroke:#b8860b;stroke-width:2.5;opacity:.9}.link.path-highlight{stroke:#7a1a1a;stroke-width:1.5;opacity:.85}.node.focus .node-rect{stroke:#7a1a1a;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(122,26,26,.35))}.node.focus .node-name{font-weight:700}.node.cross-family .node-rect{stroke-dasharray:none;stroke:#b8860b;stroke-width:1.8}.node-family-mark{font-family:Cormorant Garamond,serif;font-size:11px;fill:#8b6f47;font-weight:600;opacity:.7}.node-rect.ghost{fill:#f5efe2;stroke:#b8a07a;stroke-width:1;stroke-dasharray:4,3}.node.ghost-spouse{cursor:default;opacity:.85}.node.ghost-spouse .node-name{fill:#6b5942;font-style:italic}.kindred-banner{position:absolute;top:14px;left:14px;right:130px;display:flex;align-items:center;gap:14px;background:#faf6eef5;border:1px solid rgba(201,169,97,.4);border-radius:4px;padding:8px 12px;box-shadow:0 2px 12px #3c281414;z-index:5;font-family:Manrope,sans-serif}.back-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:1px solid #c9a961;border-radius:3px;color:#5a1414;font-family:Manrope,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.back-button:hover{background:#faf6ee;border-color:#7a1a1a;color:#7a1a1a}.kindred-focus-info{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}.kindred-focus-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8b6f47;font-weight:600}.kindred-focus-name{font-family:Cormorant Garamond,serif;font-size:19px;font-weight:600;color:#2a1810}.kindred-focus-stats{font-size:11px;color:#6b5942;font-style:italic}.panel-family-tag{font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:#8b6f47;font-weight:600;margin-bottom:4px}.cross-family-tag{display:inline-block;margin-top:4px;padding:4px 10px;background:linear-gradient(to right,#c9a9612e,#c9a9610f);border-left:2px solid #c9a961;border-radius:2px;font-size:11px;color:#5a1414;font-weight:500;cursor:pointer;transition:all .15s ease}.cross-family-tag:hover{background:linear-gradient(to right,#c9a96152,#c9a9611f);color:#7a1a1a}.marriage-note{display:block;margin-top:4px;font-size:11px;font-style:italic;color:#8b6f47}.panel-actions{display:flex;flex-direction:column;gap:8px;border-top:1px dashed rgba(201,169,97,.4);padding-top:14px;margin-top:6px}.focus-button,.overview-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:3px;font-family:Manrope,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;letter-spacing:.3px;width:100%}.focus-button{background:#7a1a1a;color:#faf6ee;border:1px solid #5a1414}.focus-button:hover{background:#5a1414;box-shadow:0 2px 6px #7a1a1a40}.overview-button{background:#faf6ee;color:#5a1414;border:1px solid #c9a961}.overview-button:hover{background:#f3eadb;border-color:#7a1a1a}.tab.tab-overview{font-family:Cormorant Garamond,serif;font-style:italic;background:linear-gradient(to bottom,#faf6ee,#f3eadb);border-color:#c9a961;color:#5a1414}.tab.tab-overview.active{background:linear-gradient(to bottom,#7a1a1a,#5a1414);color:#faf6ee;border-color:#5a1414}.tab-overview-icon{font-style:normal;font-size:14px;margin-right:2px}@media(max-width:1000px){.kindred-banner{left:8px;right:100px;top:8px;padding:6px 10px;gap:8px}.kindred-focus-name{font-size:16px}.back-button{padding:5px 8px;font-size:11px}.back-button span:nth-child(2){display:none}}.panel-edit-btn{position:absolute;top:14px;right:56px;background:#4a9d3e;color:#fff;border:0;padding:6px 12px;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;z-index:5;font-family:inherit}.panel-edit-btn:hover{background:#2d6a26}.panel-edit-action{display:block;width:100%;background:#4a9d3e;color:#fff;border:0;padding:12px 16px;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit;margin-bottom:8px;text-align:center;box-sizing:border-box}.panel-edit-action:hover{background:#2d6a26}.panel-edit-action:active{background:#1f4a19}.qe-overlay{position:fixed;inset:0;background:#0000008c;z-index:9000;animation:qeFadeIn .2s ease}@keyframes qeFadeIn{0%{opacity:0}to{opacity:1}}.qe-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:540px;background:#fff8ed;z-index:9001;display:flex;flex-direction:column;box-shadow:-4px 0 16px #0003;animation:qeSlideIn .25s ease}@keyframes qeSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.qe-header{background:#6b3e15;color:#fff;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #c8a14e}.qe-header h2{margin:0;font-size:1.2rem;font-family:Georgia,serif}.qe-close{background:#fff3;color:#fff;border:0;width:36px;height:36px;border-radius:50%;font-size:1.4rem;cursor:pointer}.qe-close:hover{background:#ffffff59}.qe-body{padding:1.2rem 1.5rem;overflow-y:auto;flex:1}.qe-body h3{color:#6b3e15;margin:1.2rem 0 .6rem;font-size:1rem;border-bottom:1px solid #d8cdb5;padding-bottom:.3rem}.qe-body h3:first-of-type{margin-top:0}.qe-row{margin-bottom:.8rem}.qe-row label{display:block;font-size:.8rem;color:#6b3e15;font-weight:600;margin-bottom:.25rem}.qe-row input,.qe-row select,.qe-body textarea{width:100%;padding:.5rem .7rem;border:1px solid #d8cdb5;border-radius:4px;background:#fff;font-size:.95rem;box-sizing:border-box;font-family:inherit}.qe-row input:focus,.qe-row select:focus,.qe-body textarea:focus{outline:2px solid #c8a14e;border-color:#c8a14e}.qe-body textarea{resize:vertical;min-height:80px}.qe-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.qe-row-2>div{margin:0}.qe-row-3{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:.6rem}.qe-row-3>div{margin:0}.qe-radios{display:flex;gap:1.2rem;padding:.4rem 0}.qe-radios label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-weight:400;margin:0}.qe-marriage-block{background:#d8f0c866;border:1px solid #4a9d3e;border-radius:6px;padding:.8rem;margin-bottom:.6rem}.qe-btn-add{background:#d8c4a3;color:#6b3e15;border:0;padding:.5rem 1rem;border-radius:4px;font-size:.85rem;cursor:pointer;font-family:inherit}.qe-btn-add:hover{background:#c8a14e;color:#fff}.qe-btn-tiny{background:#e74c3c;color:#fff;border:0;padding:.25rem .6rem;border-radius:3px;font-size:.75rem;cursor:pointer;margin-top:.4rem;font-family:inherit}.qe-actions{position:sticky;bottom:0;background:linear-gradient(to top,#fff8ed 80%,transparent);padding:1rem 0 .5rem;margin-top:1.5rem;display:flex;gap:.6rem}.qe-btn-save{background:#4a9d3e;color:#fff;border:0;padding:.7rem 1.4rem;border-radius:5px;font-weight:600;cursor:pointer;flex:1;font-family:inherit;font-size:.95rem}.qe-btn-save:hover{background:#2d6a26}.qe-btn-cancel{background:#ccc;border:0;padding:.7rem 1.4rem;border-radius:5px;cursor:pointer;font-family:inherit}.qe-msg{margin-top:.8rem;padding:.6rem .8rem;border-radius:4px;text-align:center;font-size:.9rem}.qe-msg:empty{display:none}.qe-msg-info{background:#fff8ed;color:#6b3e15}.qe-msg-ok{background:#e8f5e0;color:#2d6a26}.qe-msg-error{background:#ffe5e0;color:#c0392b}.qe-pending-banner{background:#fff3cd;border:1px solid #c8a14e;color:#6b3e15;padding:.6rem .9rem;border-radius:5px;font-size:.9rem;margin-bottom:1rem}.qe-section-hint{font-size:.8rem;color:#8b6f47;margin:0 0 .6rem;line-height:1.4}.qe-parent-widget{display:flex;flex-direction:column;gap:.3rem}.qe-parent-widget label{margin-bottom:.1rem}.qe-current-link{font-size:.85rem;color:#5a4a30;background:#f5ecd7;padding:.3rem .5rem;border-radius:3px}.qe-create-link{font-size:.8rem;color:#6b3e15;text-decoration:underline;margin-top:.2rem}.qe-create-link:hover{color:#c8a14e}.qe-relation-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.8rem;max-height:200px;overflow-y:auto;padding:.4rem;background:#faf3e0;border-radius:4px}.qe-relation-item{display:flex;justify-content:space-between;padding:.3rem .5rem;background:#fff;border-radius:3px;border-left:3px solid #c8a14e;font-size:.9rem}.qe-relation-name{font-weight:500;color:#3a2e1e}.qe-relation-meta{color:#8b6f47;font-size:.85rem}.qe-relation-empty{padding:.6rem;background:#faf3e0;border-radius:4px;color:#8b6f47;font-style:italic;font-size:.85rem;margin-bottom:.6rem}.qe-action-buttons{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.qe-btn-add-link{background:#d8c4a3;color:#3a2e1e;border:0;padding:.5rem .9rem;border-radius:4px;font-weight:600;text-decoration:none;font-size:.88rem;cursor:pointer;display:inline-block;font-family:inherit}.qe-btn-add-link:hover{background:#c8a14e;color:#fff}.qe-tab-hint{background:#e8f0f8;border-left:3px solid #88a8c8;padding:.5rem .7rem;border-radius:3px;font-size:.82rem;color:#4a5a70;margin:.8rem 0}@media(max-width:600px){.qe-drawer{max-width:100%}.qe-row-3,.qe-row-2{grid-template-columns:1fr}.qe-action-buttons{flex-direction:column}.qe-btn-add-link{text-align:center}}.onboard-banner{position:relative;background:linear-gradient(180deg,#fef3d4,#fbe7a3);border-bottom:2px solid #c8a14e;z-index:100;box-shadow:0 3px 10px #0000001a;font-family:Manrope,sans-serif;flex-shrink:0}.onboard-banner-inner{max-width:900px;margin:0 auto;padding:.9rem 1.2rem;display:flex;gap:1rem;align-items:flex-start;justify-content:space-between}.onboard-banner-text{flex:1;font-size:.94rem;color:#4a3520;line-height:1.5}.onboard-banner-text strong{color:#6b3e15}.onboard-banner-instr{display:block;margin-top:.4rem;font-size:.88rem;color:#5a4a30}.onboard-banner-actions{display:flex;gap:.4rem;align-items:flex-start;flex-shrink:0}.onboard-btn-skip{background:#ffffffb3;border:1px solid #c8a14e;color:#6b3e15;padding:.4rem .9rem;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600}.onboard-btn-skip:hover{background:#fff}.onboard-btn-skip-perm{background:transparent;border:1px solid #c8a14e;color:#8b6f47;width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:1.1rem;font-weight:600;padding:0;display:flex;align-items:center;justify-content:center}.onboard-btn-skip-perm:hover{background:#ffffff80;color:#6b3e15}@media(max-width:600px){.onboard-banner-inner{flex-direction:column;padding:.8rem}.onboard-banner-text{font-size:.88rem}}.soj-hover:hover{background:var(--paper-darker)!important}html,body{height:100%;margin:0;padding:0;overscroll-behavior:none;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{height:100vh;height:100dvh;overflow:hidden}body>.lineage-explorer-app{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto}body.is-onboarding>.lineage-explorer-app{grid-template-rows:auto auto 1fr auto}body>.lineage-explorer-app .canvas-wrap{min-height:0;height:100%;overflow:hidden;position:relative}body>.lineage-explorer-app .details-panel{height:100%;max-height:100%;overflow:hidden;display:flex;flex-direction:column}body>.lineage-explorer-app .details-panel.open .panel-content{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0;-webkit-overflow-scrolling:touch}@media(min-width:1001px){body>.lineage-explorer-app .details-panel{transition:width .2s ease}body>.lineage-explorer-app .details-panel:not(.open),body>.lineage-explorer-app .details-panel.panel-collapsed{width:0!important;min-width:0!important;border-left:0!important;overflow:hidden!important}}.panel-toggle{position:absolute;top:50%;transform:translateY(-50%);z-index:60;width:20px;height:54px;border:1px solid var(--border, #d8cdb5);border-right:0;border-radius:7px 0 0 7px;background:var(--surface, #fff);color:var(--accent, #7a1a1a);cursor:pointer;display:none;align-items:center;justify-content:center;font-size:15px;font-weight:700;font-family:inherit;padding:0;box-shadow:0 1px 5px #3c281424;transition:right .2s ease}.panel-toggle:hover{background:var(--paper-dark, #f3ecdc)}.tree-svg .link,.tree-svg .marriage-link,.tree-svg .couple-link,.tree-svg .cross-family-link,.tree-svg .link.path-highlight{vector-effect:non-scaling-stroke}.tree-svg{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,.btn-icon,.btn-home,a{-webkit-tap-highlight-color:transparent}.btn-home{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--paper-darker, #ebe2cc);border:1px solid var(--border, #d8cdb5);border-radius:4px;color:var(--ink, #2a201a);text-decoration:none;font-family:Manrope,system-ui,-apple-system,sans-serif;font-size:13px;font-weight:600;white-space:nowrap;flex-shrink:0;margin-right:14px;min-height:36px;transition:background .15s,border-color .15s}.btn-home:hover,.btn-home:focus-visible{background:var(--accent-bg, #fbe9e3);border-color:var(--accent, #7a1a1a);outline:none}#year-slider{padding:13px 0;margin:-13px 0;background-clip:content-box;cursor:pointer}#year-slider::-webkit-slider-thumb{width:22px;height:22px}#year-slider::-moz-range-thumb{width:22px;height:22px}#year-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #7a1a1a4d}#year-slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px #7a1a1a4d}.tree-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;background:var(--paper, #faf6ee);z-index:20;text-align:center;padding:2rem}body:not(.is-loading) .tree-loading{display:none}.tree-loading-spinner{width:56px;height:56px;border:4px solid var(--paper-darker, #ebe2cc);border-top-color:var(--accent, #7a1a1a);border-radius:50%;animation:tree-spin .9s linear infinite}@keyframes tree-spin{to{transform:rotate(360deg)}}.tree-loading-text{font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;color:var(--ink-soft, #6b5d4c);font-style:italic}.tree-error{position:absolute;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;gap:1rem;background:var(--paper, #faf6ee);z-index:20;text-align:center;padding:2rem}body.is-error .tree-error{display:flex}body.is-error .tree-loading{display:none}.tree-error-icon{font-size:3rem;opacity:.6}.tree-error-title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.6rem;color:var(--accent, #7a1a1a);margin:0}.tree-error-text{max-width:420px;color:var(--ink-soft, #6b5d4c);line-height:1.5;margin:0}.tree-error-btn{margin-top:.5rem;padding:.7rem 1.5rem;min-height:44px;background:var(--accent, #7a1a1a);color:#fff;border:none;border-radius:6px;font-family:Manrope,system-ui,sans-serif;font-weight:600;font-size:.95rem;cursor:pointer}.tree-error-btn:hover{background:#5a1414}@media(prefers-reduced-motion:reduce){.tree-loading-spinner{animation:none;border-top-color:var(--accent, #7a1a1a)}.details-panel{transition:none!important}.panel-content{animation:none!important}}@media(max-width:768px){.canvas-controls .btn-icon,.header-tools .btn-icon{width:44px;height:44px;font-size:16px}.btn-home{min-height:44px;padding:10px 14px;margin-right:8px}body>.lineage-explorer-app .topbar{padding:10px 12px}.brand h1{font-size:18px!important;line-height:1.15}.brand-sub{font-size:9.5px!important}.brand-mark{width:36px!important;height:36px!important;font-size:18px!important}.search-wrap,#search{width:100%!important;max-width:100%!important}}@media(max-width:380px){.brand h1{font-size:16px!important}.brand-mark{width:32px!important;height:32px!important;font-size:16px!important}.btn-home{padding:8px 10px;font-size:12px}.btn-home .lbl{display:none}}.search-results{z-index:200;max-height:60vh;max-height:60dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(max-width:600px){.timeline-row{flex-wrap:wrap;gap:6px}.timeline-label{font-size:11px}.timeline-year{font-size:14px}#year-slider{flex:1;min-width:140px}}.empty-sois-list{overflow-y:auto;max-height:calc(100vh - 350px);max-height:calc(100dvh - 350px);min-height:200px}.empty-soj-item{cursor:pointer;min-height:44px;display:flex;align-items:center}.empty-soj-item:hover,.empty-soj-item:focus-visible{background:var(--paper-darker, #ebe2cc);outline:none}.skip-link{position:absolute;top:-40px;left:8px;background:var(--accent, #7a1a1a);color:#fff;padding:8px 14px;border-radius:4px;font-family:Manrope,system-ui,sans-serif;font-size:14px;font-weight:600;z-index:1000;text-decoration:none;transition:top .15s}.skip-link:focus{top:8px}@media print{.canvas-controls,.legend,.timeline,.topbar,.details-panel,.tree-loading,.tree-error{display:none!important}body>.lineage-explorer-app{grid-template-rows:1fr}.canvas-wrap{height:100vh}}.details-panel:has(.tree-editor-panel){padding:0!important;width:clamp(460px,30vw,620px)!important;max-width:620px!important}.tree-editor-panel{display:flex;flex-direction:column;height:100%;max-height:100%;min-height:0;background:#fdfaf2;font-family:inherit}.tree-editor-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(180deg,#f3e9d2,#ead7af);border-bottom:2px solid #c8b182;box-shadow:0 2px 4px #785a3214}.tree-editor-header-add{background:linear-gradient(180deg,#e7f3e0,#c8e6b8);border-bottom:2px solid #94c97e;box-shadow:0 2px 4px #50783c14}.tree-editor-title{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.tree-editor-icon{font-size:22px}.tree-editor-name{font-size:15px;font-weight:600;color:#5a3e2a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-editor-subtitle{font-size:11px;color:#8b6f47}.tree-editor-close{background:#785a3214;border:1px solid rgba(120,90,50,.2);color:#5a3e2a;width:32px;height:32px;border-radius:50%;font-size:16px;cursor:pointer;transition:all .15s}.tree-editor-close:hover{background:#785a3229;transform:scale(1.05)}.details-panel:has(.tree-editor-panel){animation:tree-drawer-slide-in .22s ease-out}@keyframes tree-drawer-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(prefers-reduced-motion:reduce){.details-panel:has(.tree-editor-panel){animation:none}}.tp-show-basic-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 14px;margin-bottom:14px;background:linear-gradient(180deg,#f9f1dd,#f0e5d0);border:1px dashed #c8b182;border-radius:6px;font-size:13px;font-weight:500;color:#5a3e2a;cursor:pointer;font-family:inherit;transition:all .15s}.tp-show-basic-toggle:hover{background:linear-gradient(180deg,#f0e5d0,#e6d8b6);border-color:#a89060}.tp-show-basic-toggle .tp-toggle-icon{font-size:14px;transition:transform .2s}.tp-show-basic-toggle[data-expanded=true] .tp-toggle-icon{transform:rotate(90deg)}.tree-editor-body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:14px 16px 80px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.tree-editor-body::-webkit-scrollbar{width:10px}.tree-editor-body::-webkit-scrollbar-track{background:#f0e5d0}.tree-editor-body::-webkit-scrollbar-thumb{background:#c8b182;border-radius:5px}.tree-editor-body::-webkit-scrollbar-thumb:hover{background:#a89060}.tp-edit-banner{display:flex;gap:8px;align-items:flex-start;background:#fff8e6;border-left:3px solid #d8b264;padding:10px 12px;margin-bottom:14px;font-size:12px;line-height:1.45;color:#5a3e2a;border-radius:4px}.tp-banner-icon{flex-shrink:0}.tp-edit-fields-source{display:none}.tp-edit-fields-source.tp-fallback-visible{display:block}.tp-section{background:#fff;border:1px solid #e6d8b6;border-radius:6px;margin-bottom:10px;overflow:hidden;transition:box-shadow .15s}.tp-section:hover{box-shadow:0 2px 6px #785a3214}.tp-section-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f9f1dd;cursor:pointer;user-select:none;border-bottom:1px solid transparent;transition:background .15s}.tp-section-header:hover{background:#f3e9d2}.tp-section[data-open=true] .tp-section-header{border-bottom-color:#e6d8b6}.tp-section-title{font-size:13px;font-weight:600;color:#5a3e2a;display:flex;align-items:center;gap:8px}.tp-section-icon{font-size:14px}.tp-section-chevron{font-size:12px;color:#8b6f47;transition:transform .2s}.tp-section[data-open=true] .tp-section-chevron{transform:rotate(90deg)}.tp-section-body{padding:14px;display:none}.tp-section[data-open=true] .tp-section-body{display:block}.tp-section-body .fc-field{margin-bottom:12px}.tp-section-body .fc-field:last-child{margin-bottom:0}.tp-section-body label{display:block;font-size:12px;font-weight:600;color:#5a3e2a;margin-bottom:4px}.tp-section-body input[type=text],.tp-section-body input[type=number],.tp-section-body input[type=date],.tp-section-body select,.tp-section-body textarea{width:100%;padding:8px 10px;border:1px solid #d4c498;border-radius:4px;background:#fdfaf2;font-family:inherit;font-size:13px;color:#2e2418;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.tp-section-body input:focus,.tp-section-body select:focus,.tp-section-body textarea:focus{outline:none;border-color:#a89060;box-shadow:0 0 0 3px #a8906026}.tp-section-body textarea{min-height:70px;resize:vertical}.tp-section-body input[type=file]{font-size:12px;padding:6px}.tp-section-body .fc-field-error-inline,.tp-section-body .fc-field-error{color:#c95a30;font-size:11px;margin-top:3px}.tp-section-body .fc-honeypot{display:none!important}.tree-editor-footer{flex:0 0 auto;display:flex;gap:8px;padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:2px solid #c8b182;box-shadow:0 -2px 8px #785a321f;justify-content:flex-end;position:relative;z-index:10;min-height:56px;align-items:center}.tree-editor-footer .te-btn{flex:1 1 auto;max-width:50%;padding:12px 16px;font-size:15px;font-weight:600;font-family:inherit;border-radius:10px;border:1px solid #c9a961;cursor:pointer;min-height:48px;touch-action:manipulation;transition:background .15s,color .15s}.tree-editor-footer .te-btn-cancel{background:#fff;color:#5e3a22}.tree-editor-footer .te-btn-cancel:hover{background:#f3ead6}.tree-editor-footer .te-btn-save{background:#5e3a22;color:#faf6ed;border-color:#5e3a22}.tree-editor-footer .te-btn-save:hover{background:#6f4a2c}.tree-editor-footer .btn{padding:10px 18px;border-radius:5px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;font-family:inherit;min-height:44px;min-width:88px}.tree-editor-footer .btn-secondary{background:#f0e5d0;color:#5a3e2a;border-color:#d4c498}.tree-editor-footer .btn-secondary:hover{background:#e6d8b6}.tree-editor-footer .btn-primary{background:linear-gradient(180deg,#a89060,#8a7548);color:#fff;font-weight:600}.tree-editor-footer .btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#b89e6c,#927f52)}.tree-editor-footer .btn-primary:disabled{background:#c0b090;cursor:not-allowed;opacity:.7}#treePanelEditMessage{padding:10px 12px;margin-bottom:12px;border-radius:4px;font-size:12px;line-height:1.4}@media(max-width:1024px){body>.lineage-explorer-app .details-panel:has(.tree-editor-panel){width:50vw!important;min-width:380px;max-width:520px}}@media(max-width:640px){body>.lineage-explorer-app .details-panel:has(.tree-editor-panel){position:fixed!important;inset:0;width:100vw!important;max-width:100vw!important;z-index:1000;box-shadow:-4px 0 20px #0003}.tree-editor-panel{height:100dvh;max-height:100dvh}.tree-editor-header,.tree-editor-body{padding:12px}.tree-editor-footer{padding:10px 12px}.tree-editor-footer .btn{flex:1;padding:10px;font-size:14px}}
