.tzo-toc { //padding-top: 10px; li { margin: 9px 0; } } .tzo-text { //padding: 10px 0 0; p, center { margin-top: 15px; margin-bottom: 15px; //font-family: serif; } p.tzo-chapter { text-align: center; font-weight: bold; font-size: $fs + 2px; } figure { text-align: center; margin-left: 0; margin-right: 0; .img-wrapper { box-sizing: border-box; border: thin $border-color solid; padding: 5px; max-width: 100%; margin: 0 auto; display: inline-block; } img { display: block; height: auto; max-width: 100%; } figcaption { font-style: italic; color: $dark-grey; padding-top: 4px; } } .tzo-nav { line-height: 140%; text-align: center; > span { color: $light-grey; } } } .ic-books { ul:last-child { li:last-child { margin-bottom: 0; } margin-bottom: 0; } } .tzo-map { $cell: 14.2857%; // 100% / 7 $node-size: 12.5%; // circle diameter $radius-offset: ($node-size/2) * 0.7071067811865476; // (node-size/2) * sqrt(2)/2 $diag: $cell * 1.41421356; // cell × sqrt(2) $inner-circle-size: 0px; $node-border-size: 2px; $node-border-color: $head-items-border; $node-border-color-hover: $head-items-hover-border; position: relative; width: 100%; max-width: 700px; aspect-ratio: 1 / 1; margin: 15px auto; .node { position: absolute; width: $node-size; height: $node-size; background: $hover-hl; border-radius: 50%; color: $fg; text-decoration: none; overflow: hidden; display: flex; align-items: center; justify-content: center; flex-direction: column; @include no-underline(); /* center on its left/top */ transform: translate(-50%, -50%); z-index: 3; &-number { font-weight: bold; line-height: 100%; } &-label { color: $light-grey; } @media screen and (max-width: 600px) { &-number, &-label { font-size: $fs - 2px; } } @media screen and (max-width: 450px) { &-number, &-label { font-size: $fs - 4px; } &-label { line-height: $fs; } } @media screen and (max-width: 380px) { &-label { display: none; } } } .node:hover { background: $hover-hl-darker; .node-number, .node-label { color: $fg; opacity: 1; } } /* ── ARROWS ────────────────────────────────────────── */ .arrow { position: absolute; width: calc((#{$diag} - #{$node-size}) - 12px); height: 0; border-top: $node-border-size solid $node-border-color; /* start at 0,0 and then translate+rotate */ transform-origin: 0 0; z-index: 2; } .arrow::after { content: ""; position: absolute; left: 100%; top: -6px; border-left: 11px solid $node-border-color; border-top: 5px solid transparent; border-bottom: 5px solid transparent; } .dir45 { margin-left: $radius-offset; margin-top: $radius-offset; transform: rotate(45deg); } .dir135 { margin-left: -1 * $radius-offset; margin-top: $radius-offset; transform: rotate(135deg); } /* ── NODE POSITIONS (col,row) = (1…7,1…7) ────────── */ /* left = cell*(col−0.5), top = cell*(row−0.5) */ #n1 { left: $cell * 3.5; top: $cell * 0.5; } #n21 { left: $cell * 2.5; top: $cell * 1.5; } #n22 { left: $cell * 4.5; top: $cell * 1.5; } #n31 { left: $cell * 1.5; top: $cell * 2.5; } #n32 { left: $cell * 3.5; top: $cell * 2.5; } #n33 { left: $cell * 5.5; top: $cell * 2.5; } #n41 { left: $cell * 0.5; top: $cell * 3.5; } #n42 { left: $cell * 2.5; top: $cell * 3.5; } #n43 { left: $cell * 4.5; top: $cell * 3.5; } #n44 { left: $cell * 6.5; top: $cell * 3.5; } #n51 { left: $cell * 1.5; top: $cell * 4.5; } #n52 { left: $cell * 3.5; top: $cell * 4.5; } #n53 { left: $cell * 5.5; top: $cell * 4.5; } #n61 { left: $cell * 2.5; top: $cell * 5.5; } #n62 { left: $cell * 4.5; top: $cell * 5.5; } #n7 { left: $cell * 3.5; top: $cell * 6.5; } /* ── ARROW ORIGINS: exactly at the *center* of each “from” node ── */ .a1-21, .a1-22 { left: $cell * 3.5; top: $cell * 0.5; } .a21-31, .a21-32 { left: $cell * 2.5; top: $cell * 1.5; } .a22-32, .a22-33 { left: $cell * 4.5; top: $cell * 1.5; } .a31-41, .a31-42 { left: $cell * 1.5; top: $cell * 2.5; } .a32-42, .a32-43 { left: $cell * 3.5; top: $cell * 2.5; } .a33-43, .a33-44 { left: $cell * 5.5; top: $cell * 2.5; } .a41-51 { left: $cell * 0.5; top: $cell * 3.5; } .a42-51, .a42-52 { left: $cell * 2.5; top: $cell * 3.5; } .a43-52, .a43-53 { left: $cell * 4.5; top: $cell * 3.5; } .a44-53 { left: $cell * 6.5; top: $cell * 3.5; } .a51-61 { left: $cell * 1.5; top: $cell * 4.5; } .a52-61, .a52-62 { left: $cell * 3.5; top: $cell * 4.5; } .a53-62 { left: $cell * 5.5; top: $cell * 4.5; } .a61-7 { left: $cell * 2.5; top: $cell * 5.5; } .a62-7 { left: $cell * 4.5; top: $cell * 5.5; } } .index-title { text-align: center; font-size: $fs + 6px; font-weight: normal; } .index-subtitle { text-align: center; color: $grey; padding-top: 4px; } //.index-hr { // margin: 15px 0; // text-align: center; // color: $light-grey; //} .index-more { text-align: center; padding-top: 5px; }