/* Actual desktop renderer in a responsive portrait stage. */
html,body{width:100%;height:100%;overflow:hidden}body .workspace,body[data-composition] .workspace{width:100%;height:100vh!important;min-height:0;padding:0!important;--graph-height:100vh}.page{padding:0}.graph,body[data-composition] .graph{width:100%;height:100vh!important;inset:0!important;right:0!important;margin:0!important;touch-action:none}.inspector,.toolbar,.mini-calendar,#selected-summary,#calendar-connectors{display:none!important}.depth-hint{left:22px;top:20px;right:22px;max-width:none!important}.depth-hint .view-toggle{display:inline-flex!important;height:72px;width:150px;font-size:22px;border-radius:22px}.view-toggle span{font-size:22px}.depth-hint #view-description{font-size:16px;max-width:380px;line-height:1.35;display:inline-block;vertical-align:middle}.depth-hint .legend{font-size:16px;gap:12px;line-height:1.4;margin-top:12px}.depth-hint .legend button{font-size:16px;min-height:34px}.graph .node .name{font-size:20px;line-height:1.15;width:132px;max-width:132px;white-space:normal}.graph .node small{font-size:17px;line-height:1.2;max-width:132px;white-space:normal}.graph .node.family .name{font-size:18px;width:132px;max-width:132px}.graph .node.family small{font-size:16px}.node:focus-visible{outline:4px solid white;outline-offset:5px}.orbit-hint{display:block!important;top:auto!important;bottom:16px;left:22px;font-size:17px;max-width:600px;pointer-events:none}.rank-lane>span{font-size:18px}.graph .node.selected:not([data-person="kim"]) .name{font-size:22px;font-weight:700}.graph .node[data-person="kim"].selected{width:235px;height:94px;grid-template-columns:58px 1fr;column-gap:12px}.graph .node[data-person="kim"].selected .face{width:58px!important;height:58px!important}.graph .node[data-person="kim"].selected .name{font-size:22px;white-space:normal}.graph .node[data-person="kim"].selected small{font-size:17px}.node.background .name{font-size:15px!important}.stage-reset{position:absolute;right:22px;bottom:14px;z-index:200;font-size:24px;width:60px;height:60px;background:#17435cbb;border:1px solid #c2e2ed66;border-radius:50%;color:white;cursor:pointer}.orbit-hint{padding-right:75px}#cloud-hover{font-size:20px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.depth-hint .view-toggle>span:not(.view-thumb){width:70px;font-size:22px}.depth-hint .view-thumb{width:66px;height:60px;border-radius:17px}.depth-hint .view-toggle[aria-checked=true] .view-thumb{transform:translateX(70px)}
.graph:not(.flat-view) .node.family .name{font-size:18px!important;line-height:1.2;width:132px!important;max-width:132px!important;bottom:calc(100% + 42px);white-space:normal}.graph:not(.flat-view) .node.family small{font-size:16px!important;bottom:calc(100% + 14px)}
.graph .node.influence .name,.graph .node.influence small{width:110px;max-width:110px}.graph .node.influence small{font-size:16px}
.depth-hint{grid-template-columns:150px minmax(0,1fr);padding-bottom:12px}.depth-hint #view-description{max-width:none;width:auto}.graph:not(.flat-view) .node.family small{width:132px!important;max-width:132px!important;white-space:normal;left:50%;transform:translateX(-50%)}
.graph .node.family .name,.graph .node.family small,.graph:not(.flat-view) .node.family .name,.graph:not(.flat-view) .node.family small{width:110px!important;max-width:110px!important}.graph .node.teacher .name,.graph .node.teacher small{width:116px;max-width:116px}.graph .node.teacher small{font-size:16px}
@media(max-height:1050px){.graph .node:not(.family):not(.selected) .name{font-size:18px}.graph .node:not(.family):not(.selected) small{font-size:14px;line-height:1.1}.graph .node[data-person="kim"].selected{width:210px;height:78px;grid-template-columns:48px 1fr}.graph .node[data-person="kim"].selected .face{width:48px!important;height:48px!important}.graph .node[data-person="kim"].selected .name{font-size:19px}.graph .node[data-person="kim"].selected small{font-size:15px}.depth-hint{padding-bottom:0}.depth-hint .legend{margin-top:4px}}
@media(max-height:1050px){.orbit-hint{display:none!important}}
.depth-hint[data-zoomed=true]{background:#19465d;box-shadow:0 0 0 24px #19465d;border-radius:8px}
@media(min-width:701px){.depth-hint{grid-template-columns:92px minmax(0,1fr);padding-bottom:0}.depth-hint .view-toggle{width:92px;height:38px;border-radius:12px}.depth-hint .view-toggle>span:not(.view-thumb){width:42px;font-size:12px}.depth-hint .view-thumb{width:40px;height:28px;border-radius:8px}.depth-hint .view-toggle[aria-checked=true] .view-thumb{transform:translateX(42px)}.depth-hint #view-description{font-size:12px}.depth-hint .legend,.depth-hint .legend button{font-size:12px}.graph .node .name,.graph .node:not(.family):not(.selected) .name{font-size:14px;width:132px;max-width:132px}.graph .node small,.graph .node:not(.family):not(.selected) small{font-size:12px}.graph .node.family .name,.graph:not(.flat-view) .node.family .name{font-size:13px!important;width:132px!important;max-width:132px!important;bottom:calc(100% + 30px)}.graph .node.family small,.graph:not(.flat-view) .node.family small{font-size:11px!important;bottom:calc(100% + 12px)}.graph .node[data-person="kim"].selected{width:176px;height:76px;grid-template-columns:44px 1fr}.graph .node[data-person="kim"].selected .face{width:44px!important;height:44px!important}.graph .node[data-person="kim"].selected .name{font-size:14px}.graph .node[data-person="kim"].selected small{font-size:11px}}
/* Compact only short intrinsic stages, preserving the same desktop composition. */
@media(max-width:700px) and (max-height:950px){.depth-hint .legend,.depth-hint .legend button{font-size:14px;gap:6px 10px;max-width:none;min-height:24px}.depth-hint{gap:8px;padding-bottom:0}.graph .node:not(.family):not(.selected) .name{font-size:16px;line-height:1.1}.graph .node:not(.family):not(.selected) small{font-size:13px;line-height:1.05}.graph .node[data-person="kim"].selected{height:70px;width:200px}.graph .node[data-person="kim"].selected .name{font-size:18px}}
/* R57: one aligned, readable, horizontally scrollable legend row. */
.depth-hint #view-description{display:none!important}.depth-hint .legend{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:calc(12px / var(--screen-scale,.6))!important;width:100%;max-width:100%!important;min-width:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin;scrollbar-color:#9bc6d5 #17435c;overscroll-behavior-x:contain;touch-action:pan-x;padding:0 0 4px;margin-top:4px!important;line-height:1.2!important;font-size:calc(11px / var(--screen-scale,.6))!important;grid-column:1/-1;}
.depth-hint .legend>*{display:inline-flex!important;flex:0 0 auto;align-items:center!important;justify-content:flex-start;gap:calc(5px / var(--screen-scale,.6));min-height:calc(40px / var(--screen-scale,.6));font-size:inherit!important;line-height:1.2!important;white-space:nowrap!important;margin:0;padding:0;border:0;vertical-align:middle}.depth-hint .legend .dot{display:inline-block;flex:0 0 auto;width:calc(6px / var(--screen-scale,.6));height:calc(6px / var(--screen-scale,.6));margin:0;border-radius:50%;vertical-align:middle}.depth-hint .legend:focus-visible{outline:2px solid #b6e6ed;outline-offset:3px}
html,body,body .workspace,body[data-composition] .workspace,.graph{background:transparent!important}
.depth-hint .legend>*{min-height:calc(40px / var(--screen-scale,.6))!important}
@media(max-width:700px) and (max-height:950px){.graph.flat-view .node:not(.family):not(.selected) .name,.graph.flat-view .node:not(.family):not(.selected) small{width:100px!important;max-width:100px!important}}
/* Remove the family-box heading; retain each person's accessible name. */
.rank-lane>span{display:none!important}

#family-box53{position:absolute;pointer-events:none;box-sizing:border-box;border:1px solid #b5dce52b;border-radius:14px;background:#153e5622;z-index:0}.flat-view #family-box53{display:none}

/* Shared 12 CSS px inset for the family box in both modes. */
.flat-view #family-box53{display:block}#rank-lanes .rank-lane{border:0!important;background:transparent!important}

/* Authoritative guide: one proportional family composition across modes and focus. */
.graph .node.family .name,.graph.flat-view .node.family .name,.graph:not(.flat-view) .node.family .name{position:absolute!important;bottom:calc(100% + 42px)!important;left:50%;transform:translateX(-50%);width:140px!important;max-width:140px!important;font-size:22px!important;line-height:1.2!important;margin:0!important;text-align:center}.graph .node.family small,.graph.flat-view .node.family small,.graph:not(.flat-view) .node.family small{position:absolute!important;bottom:calc(100% + 14px)!important;left:50%;transform:translateX(-50%);width:140px!important;max-width:140px!important;font-size:18px!important;line-height:1.2!important;margin:0!important;text-align:center}

/* Exact selected C artwork; scales with the approved Ueshiba family proportions. */
#ueshiba-connector57{position:absolute;left:0;top:0;width:100%;height:auto;pointer-events:none;z-index:1;overflow:visible}

/* R57: enlarge only the selected profile portrait; make room within its card. */
.graph .node[data-person="kim"].selected{--portrait57:58px;--card-width57:235px;--card-height57:94px;width:calc(var(--card-width57) + var(--portrait57)*.3);height:calc(var(--card-height57) + var(--portrait57)*.3);grid-template-columns:calc(var(--portrait57)*1.3) 1fr}
.graph .node[data-person="kim"].selected .face{width:calc(var(--portrait57)*1.3)!important;height:calc(var(--portrait57)*1.3)!important}
@media(max-height:1050px){.graph .node[data-person="kim"].selected{--portrait57:48px;--card-width57:210px;--card-height57:78px}}
@media(min-width:701px){.graph .node[data-person="kim"].selected{--portrait57:44px;--card-width57:176px;--card-height57:76px}}
/* Family selection keeps its portrait/text in the same approved band. */
.graph .node.family.selected{margin:0!important}.graph .node.family.selected .name{padding:0!important;background:transparent;color:inherit;text-shadow:0 1px 3px #14384c}.graph .node.family.selected .face{box-shadow:0 0 0 3px #163d68,0 0 0 5px #b8d9e8}
/* The host supplies the zoom/mode controls; suppress the legacy iframe hint at every scale. */
body .workspace .orbit-hint{display:none!important}

/* R64: portrait-only reduction; labels and button hit regions retain their size. */
.graph.flat-view .node[data-person="kim"].selected .face{width:calc(var(--portrait57)*1.3*.9)!important;height:calc(var(--portrait57)*1.3*.9)!important}
.graph.flat-view .node:not(.family){min-width:calc(44px / var(--screen-scale,.6));min-height:calc(44px / var(--screen-scale,.6))}
.graph.flat-view .node:not(.family):not(.selected){gap:3px!important}
