        :root { 
            --line-color: #ccc; 
            --node-width: 200px; 
            --tree-spacing: 60px;
            /*--accent-color: #007bff;*/
        }
        /* body { font-family: "Helvetica Neue", Arial, sans-serif; background: #f0f2f5; padding: 40px; line-height: 1.6; } */
        
        /* 目次のスタイル */
        #tree-navigation {
            background: white; padding: 20px; border-radius: 12px;
            margin-bottom: 30px; box-shadow: 0 2px 10px rgba(0,0,0,0.05);
        }
        #tree-navigation h3 { margin-top: 0; font-size: 16px; color: #555; border-bottom: 2px solid var(--accent-color); display: inline-block; }
        #tree-navigation ul { list-style: none; padding: 0; margin: 10px 0 0 0; display: flex; flex-wrap: wrap; gap: 15px; }
        #tree-navigation a { text-decoration: none; color: var(--accent-color); font-weight: bold; font-size: 14px; }
        #tree-navigation a:hover { text-decoration: underline; }

        /* ツリーの外枠 */
        .tree-wrapper {
            margin-bottom: var(--tree-spacing);
            background: white; padding: 30px; border-radius: 12px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
            overflow-x: auto;
            scroll-margin-top: 20px; /* リンクジャンプ時の余白 */
        }

        .tree, .tree ul {
            list-style: none; padding-left: 60px; 
            display: flex; flex-direction: column; gap: 15px; position: relative;
        }
        .tree ul::before {
            content: ""; position: absolute; left: 0; top: 0; bottom: 0;
            width: 2px; background: var(--line-color);
        }
        .tree li { position: relative; display: flex; align-items: center; }
        .tree li::before {
            content: ""; position: absolute; left: -60px; top: 50%;
            width: 60px; height: 2px; background: var(--line-color);
        }
        .tree { padding-left: 0; flex-direction: row; }
        .tree > li::before { display: none; }

        /* ノードデザイン */
        .node {
            width: var(--node-width); background: #fff; border: 1px solid #e0e0e0;
            border-radius: 6px; text-decoration: none; color: #333; overflow: hidden;
            transition: 0.2s; z-index: 1; flex-shrink: 0; display: flex; flex-direction: column;
        }
        .node:hover { border-color: var(--accent-color); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
        .thumb { width: 100%; height: 110px; object-fit: cover; background: #eee; display: block; border-bottom: 1px solid #eee; }
        .name { padding: 12px 8px; font-size: 13px; font-weight: 600; display: block; text-align: center; }
