/* TBYD Landingpage visual models v2 — local, responsive, progressive enhancement */
.landing-visual{max-width:1080px;margin:42px 0 10px;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 18px 42px rgba(17,20,24,.055)}
.landing-visual .vis-head{display:flex;gap:18px;justify-content:space-between;align-items:flex-start;padding:22px 24px 18px;border-bottom:1px solid var(--line)}
.landing-visual .vis-eyebrow{font-size:12px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;font-weight:900;color:var(--accent);margin-bottom:6px}
.landing-visual .vis-title{font-size:22px;line-height:1.18;letter-spacing:-.025em;font-weight:900;margin:0}
.landing-visual .vis-summary{max-width:700px;color:var(--muted);font-size:15px;line-height:1.5;margin:7px 0 0}
.vis-toolbar{display:none;flex-wrap:wrap;gap:8px;padding:14px 24px;border-bottom:1px solid var(--line);background:#fbfaf7}
.has-js .vis-toolbar{display:flex}
.vis-toolbar button{appearance:none;border:1px solid #c7c4bb;background:#fff;color:var(--ink);border-radius:999px;min-height:42px;padding:8px 14px;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.vis-toolbar button:hover{border-color:#8d8980}.vis-toolbar button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 0 0 3px rgba(255,181,62,.8)}
.vis-toolbar button:focus-visible,.vis-node[tabindex="0"]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.vis-stage{padding:22px 20px 16px;background:linear-gradient(180deg,#fff 0%,#fbfaf7 100%);overflow:hidden}
.vis-svg{display:block;width:100%;height:auto;overflow:visible}
.vis-svg-mobile{display:none}
.vis-node{cursor:default;outline:none}.has-js .vis-node[tabindex="0"]{cursor:pointer}
.vis-node rect,.vis-node circle,.vis-node polygon{transition:stroke-width .18s ease,filter .18s ease,opacity .18s ease,transform .18s ease;transform-box:fill-box;transform-origin:center}
.has-js .vis-node:hover rect,.has-js .vis-node:hover circle,.has-js .vis-node:hover polygon,.vis-node.is-selected rect,.vis-node.is-selected circle,.vis-node.is-selected polygon{stroke-width:4;filter:drop-shadow(0 8px 10px rgba(17,20,24,.12));transform:scale(1.012)}
.vis-edge{fill:none;stroke:#6b716e;stroke-width:3}.vis-edge.soft-edge{stroke:#9d9b94;stroke-dasharray:8 7}.vis-edge.bound-edge{stroke:var(--bound);stroke-width:4}.vis-edge.warn-edge{stroke:var(--warning);stroke-width:4}
.vis-label{font-size:17px;font-weight:900;fill:#111418}.vis-small{font-size:13px;font-weight:750;fill:#56606a}.vis-mini{font-size:11.5px;font-weight:750;fill:#56606a}.vis-kicker{font-size:12px;font-weight:900;letter-spacing:.06em;fill:#4b555d}.vis-edge-copy{font-size:11px;font-weight:800;fill:#4e565c}
.node-neutral{fill:#fff;stroke:#8d918d;stroke-width:2}.node-authority{fill:#f5e6d6;stroke:#8a4300;stroke-width:2}.node-bound{fill:#edf5f0;stroke:#215c40;stroke-width:2}.node-pass{fill:#e8f5ec;stroke:#215c40;stroke-width:3}.node-no-pass{fill:#fff0ea;stroke:#7a2415;stroke-width:3}.node-deep{fill:#16201c;stroke:#16201c;stroke-width:2}.label-light{fill:#fff}.boundary-shape{fill:rgba(237,245,240,.28);stroke:#215c40;stroke-width:3;stroke-dasharray:10 7}.factory-boundary{fill:rgba(245,230,214,.22);stroke:#8a4300;stroke-width:3;stroke-dasharray:10 7}
.vis-note-bg{fill:#fff;stroke:#d4d1c8;stroke-width:1.5}.vis-note-bg.pass{fill:#f3faf5;stroke:#8eb5a0}.vis-note-bg.warn{fill:#fff6f1;stroke:#c59a8d}.vis-divider{stroke:#d9d7d0;stroke-width:2}.vis-neq{font-size:24px;font-weight:950;fill:#111418}.vis-side-label{font-size:12px;font-weight:900;letter-spacing:.06em;fill:#4e565c}.vis-repetition{stroke:#8a4300;stroke-width:2;fill:none;stroke-dasharray:5 5}.vis-human{fill:#f5e6d6;stroke:#8a4300;stroke-width:2}.vis-execution{fill:#edf5f0;stroke:#215c40;stroke-width:2}
.vis-detail{min-height:66px;margin:0;padding:16px 24px 19px;border-top:1px solid var(--line);font-size:15px;line-height:1.5;color:#39434c;background:#fff}.vis-detail strong{color:var(--ink)}
.vis-caption{margin:0;padding:0 24px 22px;color:#4b555d;font-size:14px;line-height:1.5;background:#fff}
/* State emphasis only with JS. Without JS every relationship remains visible. */
.has-js .landing-visual .state-pass,.has-js .landing-visual .state-open,.has-js .landing-visual .ae-order,.has-js .landing-visual .ae-rules,.has-js .landing-visual .ae-execution,.has-js .landing-visual .bc-before,.has-js .landing-visual .bc-bound,.has-js .landing-visual .bc-change,.has-js .landing-visual .fm-type,.has-js .landing-visual .fm-sovereign,.has-js .landing-visual .fm-factory,.has-js .landing-visual .fm-target,.has-js .landing-visual .fm-execution{transition:opacity .18s ease,filter .18s ease}
.has-js .landing-visual[data-state="pass"] .state-open,.has-js .landing-visual[data-state="open"] .state-pass{opacity:.18}
.has-js .landing-visual[data-state="pass"] .state-pass,.has-js .landing-visual[data-state="open"] .state-open{filter:drop-shadow(0 3px 7px rgba(17,20,24,.11))}
.has-js .landing-visual[data-visual="authority"][data-state="order"] .ae-rules,.has-js .landing-visual[data-visual="authority"][data-state="order"] .ae-execution{opacity:.2}
.has-js .landing-visual[data-visual="authority"][data-state="rules"] .ae-order,.has-js .landing-visual[data-visual="authority"][data-state="rules"] .ae-execution{opacity:.2}
.has-js .landing-visual[data-visual="authority"][data-state="execution"] .ae-order,.has-js .landing-visual[data-visual="authority"][data-state="execution"] .ae-rules{opacity:.2}
.has-js .landing-visual[data-visual="authority"][data-state="order"] .ae-order,.has-js .landing-visual[data-visual="authority"][data-state="rules"] .ae-rules,.has-js .landing-visual[data-visual="authority"][data-state="execution"] .ae-execution{filter:drop-shadow(0 5px 8px rgba(17,20,24,.12))}
.has-js .landing-visual[data-visual="bureaucracy"][data-state="before"] .bc-bound,.has-js .landing-visual[data-visual="bureaucracy"][data-state="before"] .bc-change{opacity:.16}
.has-js .landing-visual[data-visual="bureaucracy"][data-state="bound"] .bc-before{opacity:.18}.has-js .landing-visual[data-visual="bureaucracy"][data-state="bound"] .bc-change{opacity:.28}
.has-js .landing-visual[data-visual="bureaucracy"][data-state="change"] .bc-before{opacity:.14}.has-js .landing-visual[data-visual="bureaucracy"][data-state="change"] .bc-bound{opacity:.28}
.has-js .landing-visual[data-visual="bureaucracy"][data-state="before"] .bc-before,.has-js .landing-visual[data-visual="bureaucracy"][data-state="bound"] .bc-bound,.has-js .landing-visual[data-visual="bureaucracy"][data-state="change"] .bc-change{filter:drop-shadow(0 4px 7px rgba(17,20,24,.10))}
.has-js .landing-visual[data-visual="formation"][data-state="factory"] .fm-target,.has-js .landing-visual[data-visual="formation"][data-state="factory"] .fm-execution{opacity:.24}
.has-js .landing-visual[data-visual="formation"][data-state="sovereign"] .fm-type,.has-js .landing-visual[data-visual="formation"][data-state="sovereign"] .fm-target,.has-js .landing-visual[data-visual="formation"][data-state="sovereign"] .fm-execution{opacity:.18}
.has-js .landing-visual[data-visual="formation"][data-state="target"] .fm-type,.has-js .landing-visual[data-visual="formation"][data-state="target"] .fm-sovereign{opacity:.18}
.has-js .landing-visual[data-visual="formation"][data-state="factory"] .fm-factory,.has-js .landing-visual[data-visual="formation"][data-state="sovereign"] .fm-sovereign,.has-js .landing-visual[data-visual="formation"][data-state="target"] .fm-target{filter:drop-shadow(0 4px 8px rgba(17,20,24,.12))}
@media(max-width:767px){
 .landing-visual{margin-top:30px;border-radius:16px}.landing-visual .vis-head{padding:18px;display:block}.landing-visual .vis-title{font-size:20px}.vis-toolbar{padding:12px 18px}.vis-toolbar button{font-size:13px;min-height:44px}.vis-stage{padding:14px 10px 12px}.vis-svg-desktop{display:none}.vis-svg-mobile{display:block}.vis-detail{padding:14px 18px 16px}.vis-caption{padding:0 18px 18px}.vis-label{font-size:15px}.vis-small{font-size:11.5px}.vis-mini{font-size:10.5px}
}
@media(prefers-reduced-motion:reduce){.vis-node rect,.vis-node circle,.vis-node polygon,.landing-visual [class*="state-"],.landing-visual [class^="ae-"],.landing-visual [class^="bc-"],.landing-visual [class^="fm-"]{transition:none!important}}
