/* CSS split file; preserve manifest load order. */ .lineage-main-card { margin-top: 16px; min-height: 0; } .lineage-main-card h2 { margin-bottom: 6px; } .lineage-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; } .lineage-head h2 { margin-bottom: 0; } .lineage-title-note { display: inline-block; margin-left: 10px; font-size: 12px; font-weight: 700; color: rgba(126, 86, 52, 0.78); vertical-align: middle; } .lineage-main-content { height: min(78vh, 980px); min-height: 520px; max-height: calc(100vh - 120px); overflow: auto; overscroll-behavior: auto; padding: 10px 6px 24px; background: rgba(255,250,244,0.48); border-radius: 14px; border: 1px solid rgba(84,68,48,0.10); scrollbar-gutter: stable both-edges; } .lineage-forest { display: flex; flex-direction: column; gap: 12px; } body::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: radial-gradient(circle at 8% 20%, rgba(255,255,255,0.62), transparent 16%), radial-gradient(circle at 92% 18%, rgba(255,255,255,0.45), transparent 18%), linear-gradient(180deg, transparent 0%, rgba(114, 152, 78, 0.05) 100%); } .stage-wrap::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 18% 14%, rgba(255,255,255,0.12), transparent 18%), radial-gradient(circle at 84% 10%, rgba(255,255,255,0.09), transparent 16%), linear-gradient(180deg, rgba(255,255,255,0.07), transparent 24%); z-index: 1; } #gameCanvas { position: relative; z-index: 0; } .card::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 1px 0 rgba(255,255,255,0.55); } /* Family tree node primitives. The archive deliberately uses these nodes inside an SVG-backed tree, not the old card/grid UI. */ .family-node { position: relative; display: block; min-width: 0; min-height: 34px; padding: 6px 8px; border-radius: 10px; background: linear-gradient(180deg, rgba(255,253,248,0.96), rgba(248,241,229,0.90)); border: 1px solid rgba(84,68,48,0.14); box-shadow: 0 3px 8px rgba(64,48,32,0.045); overflow: hidden; isolation: isolate; overflow: hidden !important; } .family-node.child { border-color: rgba(103, 178, 44, 0.38); box-shadow: inset 0 0 0 1px rgba(156,232,75,0.17), 0 3px 8px rgba(64,48,32,0.045); } .family-node[data-family-tarinai-id] { cursor: pointer; transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease; } .family-node[data-family-tarinai-id]:hover { transform: translateY(-1px); border-color: rgba(112,178,66,0.42); box-shadow: 0 5px 12px rgba(64,48,32,0.08); } .family-node.dead { opacity: 0.9; filter: grayscale(0.32); } .family-node.missing { opacity: 0.48; border-style: dashed; } .family-portrait { position: absolute; right: -6px; bottom: -8px; width: calc(64px * var(--family-icon-scale, 1)); height: calc(64px * var(--family-icon-scale, 1)); z-index: 0; pointer-events: none; } .family-genetic-stats { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 5px; margin-top: 2px; font-size: 9.7px; line-height: 1.13; color: rgba(88, 70, 48, 0.86); letter-spacing: -0.02em; white-space: normal; max-width: 82px; } .family-genetic-stats span { display: inline-flex; gap: 1px; min-width: 0; white-space: nowrap; } .family-genetic-stats b { font-weight: 800; color: rgba(120, 86, 30, 0.92); } .lineage-family-tree .tree-node.champion { border-color: rgba(202, 146, 33, 0.58); box-shadow: inset 0 0 0 1px rgba(247, 200, 64, 0.30), 0 3px 8px rgba(120, 78, 12, 0.09); } .lineage-family-tree .tree-node.champion::before { content: "\265B "; position: absolute; right: 6px; top: 4px; z-index: 2; font-size: 14px; color: rgba(158, 102, 20, 0.95); text-shadow: 0 1px 0 rgba(255,255,255,0.70); } .family-node.alive .family-portrait { opacity: 0.80; } .family-node.dead .family-portrait { opacity: 0.20; } .family-portrait img { width: 100%; height: 100%; object-fit: contain; filter: saturate(0.95); } .family-copy { position: relative; z-index: 1; min-width: 0; line-height: 1.12; max-width: calc(100% - 8px); } .family-copy strong, .family-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .tool[data-tip] { position: relative; } .lineage-family-tree .lineage-tree-panel { position: relative; overflow: visible; min-width: 360px; margin-top: 6px; border-radius: 14px; background: linear-gradient(90deg, rgba(84,68,48,0.045) 1px, transparent 1px), linear-gradient(180deg, rgba(84,68,48,0.040) 1px, transparent 1px), rgba(255,250,244,0.48); background-size: 34px 34px, 34px 34px, auto; border: 1px solid rgba(84,68,48,0.10); } .lineage-family-tree .lineage-links { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 1; isolation: isolate; } .lineage-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; } .btn.active { background: #efffde; border-color: rgba(103,178,44,0.46); font-weight: 700; } .lineage-render-status { position: sticky; top: 0; left: 0; z-index: 6; width: max-content; margin: 0 0 8px; padding: 6px 10px; border-radius: 999px; font-size: 12px; color: var(--muted); background: rgba(255,255,255,0.88); border: 1px solid rgba(84,68,48,0.10); box-shadow: 0 4px 10px rgba(64,48,32,0.06); } .lineage-stale-status { position: sticky; top: 0; left: 0; z-index: 6; width: max-content; max-width: calc(100% - 12px); margin: 0 0 8px; padding: 6px 10px; border-radius: 999px; font-size: 12px; color: rgba(92, 75, 52, 0.82); background: rgba(255, 249, 232, 0.92); border: 1px solid rgba(150, 115, 46, 0.16); box-shadow: 0 4px 10px rgba(64,48,32,0.05); } .lineage-family-tree .lineage-links path { fill: none; stroke: rgba(107, 88, 61, 0.58); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .lineage-family-tree .lineage-links .partner-link { stroke-width: 2.4; stroke: rgba(98, 80, 56, 0.68); stroke-dasharray: 5 4; } .lineage-family-tree .lineage-links .child-link { stroke-width: 2; stroke: rgba(107, 88, 61, 0.58); } .lineage-family-tree .tree-node { position: absolute; width: 150px; height: 104px; min-height: 104px; box-sizing: border-box; align-items: flex-start; background: linear-gradient(180deg, #fffdf8, #f8f1e5); box-shadow: 0 2px 5px rgba(64,48,32,0.035); contain: layout paint style; z-index: 2; isolation: isolate; } .lineage-family-tree .tree-node.child { border-color: rgba(103,178,44,0.34); } .lineage-family-tree .tree-node.dead { opacity: 1; filter: none; } .lineage-family-tree .tree-node[data-family-tarinai-id]:hover { transform: none; } .lineage-family-tree .tree-node .family-portrait { right: 4px; top: 4px; bottom: auto; width: 48px; height: 48px; } .lineage-family-tree .tree-generation-label { position: absolute; left: 10px; width: 54px; padding: 3px 0; border-radius: 999px; font-size: 11px; color: var(--muted); text-align: center; background: rgba(255,255,255,0.70); border: 1px solid rgba(84,68,48,0.08); z-index: 2; } .lineage-family-tree .lineage-empty-family { position: absolute; left: 72px; bottom: 8px; padding: 5px 8px; border-radius: 9px; background: rgba(255,255,255,0.70); } @media (max-width: 720px) { .lineage-main-content { height: 70vh; min-height: 420px; max-height: none; } } /* Restored from the original ZIP: fixed colony graph/legend sizing. */ .colony-card { overflow: visible; min-height: 0; flex: 0 0 auto; } .colony-stats { grid-template-columns: repeat(2, 1fr); margin-bottom: 8px; } .colony-chart { display: block; width: 100%; height: 188px; min-height: 188px; border: 1px solid rgba(84, 68, 48, 0.14); border-radius: 14px; background: linear-gradient(180deg, rgba(255,255,255,0.70), rgba(246,240,228,0.54)); overflow: hidden; } .colony-card h2 { line-height: 1.45; margin-bottom: 10px; } .colony-chart svg { display: block; width: 100%; height: 100%; } .colony-chart-legend { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; margin: 4px 0 8px; font-size: 11px; color: var(--muted); line-height: 1.25; } .colony-chart-legend span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; } .colony-chart-legend i { width: 10px; height: 10px; border-radius: 999px; display: inline-block; box-shadow: 0 0 0 1px rgba(70, 52, 36, 0.10); cursor: pointer; transition: opacity 120ms ease, transform 120ms ease; } .colony-chart-legend i:hover, .colony-chart-legend i:focus-visible { transform: scale(1.18); outline: none; } .colony-chart-legend .series-hidden { opacity: 0.42; text-decoration: line-through; } .colony-chart-legend .series-hidden i { background: transparent !important; box-shadow: inset 0 0 0 2px currentColor; } /* Family tree personality tags: consolidated final cascade. */ .family-personality-tags { box-sizing: border-box !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: 13px !important; gap: 2px 3px !important; width: 100% !important; max-width: 100% !important; height: 28px !important; max-height: 28px !important; margin-left: 0 !important; margin-right: 0 !important; justify-self: stretch !important; overflow: hidden !important; } .family-personality-tags em { box-sizing: border-box !important; display: block !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; height: 13px !important; padding: 1px 2px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; line-height: 11px !important; font-size: 7.2px !important; font-style: normal; letter-spacing: -0.08em !important; text-align: center !important; border-radius: 999px; background: rgba(103,178,44,0.11); border: 1px solid rgba(103,178,44,0.20); color: rgba(64,72,48,0.86); } .lineage-family-tree .tree-node .family-copy { width: 100% !important; max-width: 100% !important; position: static !important; display: flex !important; flex-direction: column !important; gap: 1px !important; } .lineage-family-tree .tree-node .family-copy strong, .lineage-family-tree .tree-node .family-copy > span:not(.family-personality-tags) { max-width: 100% !important; } .lineage-family-tree .tree-node .family-copy > .family-personality-tags { position: static !important; width: 100% !important; max-width: 100% !important; height: 24px !important; max-height: 24px !important; margin: 2px 0 0 !important; grid-auto-rows: 11px !important; gap: 1px 3px !important; z-index: 3 !important; } .lineage-family-tree .tree-node .family-personality-tags em { height: 11px !important; line-height: 9px !important; font-size: 6.8px !important; }