Spaces:
Sleeping
Sleeping
| html, body { | |
| margin: 0; | |
| padding: 0; | |
| font-family: 'Source Sans Pro', ui-sans-serif, system-ui, sans-serif; | |
| overflow: auto; | |
| } | |
| body { | |
| margin: auto; | |
| min-height: 95vh; /* full page height */ | |
| width: fit-content; | |
| display: flex; | |
| justify-content: center; /* horizontal center */ | |
| align-items: center; /* vertical center */ | |
| } | |
| .container { | |
| display: flex; | |
| flex-direction: row; | |
| justify-content: center; | |
| align-items: stretch; | |
| font-size: 1rem; | |
| line-height: 1.5rem; | |
| box-sizing: border-box; | |
| min-width: 700px; | |
| gap: max(4.5vw, 50px); | |
| } | |
| .col { | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: center; | |
| align-items: center; | |
| min-height: 200px; | |
| min-width: 200px; | |
| max-width: max(33.3vw, 550px); | |
| width: 100%; | |
| gap: max(2.5vw, 20px); | |
| /* background-color: rgba(173, 216, 230, 0.2); */ | |
| } | |
| .col.mid { | |
| max-width: max(25vw, 375px); | |
| } | |
| .image-wrapper { | |
| position: relative; /* Needed for SVG absolute positioning */ | |
| display: flex; | |
| } | |
| .image-wrapper img { | |
| display: flex; | |
| min-width: 200px; | |
| max-width: 100%; | |
| } | |
| .svg { | |
| width: 100%; | |
| height: 100%; | |
| pointer-events: none; /* allow hover to pass through*/ | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| opacity: 0.7; | |
| transition: 0.5s ease; | |
| } | |
| .svg:has(.outer:hover) { | |
| opacity: 1; | |
| } | |
| /* Clipping mask */ | |
| .svg .mask .outer { | |
| stroke-width: 2; | |
| stroke: white ; | |
| fill: white ; | |
| vector-effect: non-scaling-stroke; | |
| } | |
| .svg .mask .inner { | |
| fill: black ; | |
| } | |
| /* fill */ | |
| .svg .level0 { | |
| fill: #fa761733; | |
| transition: 0.4s ease; | |
| } | |
| .svg:has(.outer:hover) .level0 { | |
| fill: transparent ; | |
| } | |
| /* stroke */ | |
| .svg .outer, .svg .inner { | |
| fill: transparent; | |
| stroke: #fa7617; | |
| stroke-width: 2; | |
| vector-effect: non-scaling-stroke; /* keep stroke width after resizing */ | |
| transition: 0.4s ease; | |
| } | |
| .svg .outer { | |
| cursor: pointer; | |
| pointer-events: visibleFill; | |
| } | |
| .svg:has(.outer:hover) .outer, .svg:has(.outer:hover) .inner { | |
| stroke-width: 3px; | |
| } | |
| /* Backgroound mask -> inverse of Clipping mask */ | |
| .svg .bg-mask .outer { | |
| fill: black; | |
| stroke: none; | |
| } | |
| .svg .bg-mask .inner { | |
| fill: white; | |
| stroke: none; | |
| } | |
| /* Darken background when hover */ | |
| .svg .bg { | |
| fill: transparent; | |
| } | |
| .svg:has(.outer:hover) .bg { | |
| fill: rgba(0, 0, 0, 0.5); | |
| } | |
| {{svgs}} | |
| .tbox { | |
| width: 100%; | |
| padding-left: 10px; | |
| padding-right: 10px; | |
| box-sizing: border-box; | |
| cursor: pointer; | |
| position: relative; | |
| border-color: rgba(0, 0, 0, 0.2); | |
| } | |
| .tbox.left { | |
| text-align: right; | |
| border-right-style: solid; | |
| border-right-width: max(0.4vw, 5px); | |
| } | |
| .tbox.right { | |
| text-align: left; | |
| border-left-style: solid; | |
| border-left-width: max(0.4vw, 5px); | |
| } | |
| .tbox .heading { | |
| font-size: max(1.2vw, 13px); | |
| font-weight: bold; | |
| padding-bottom: max(0.25vw, 2px); | |
| } | |
| .tbox .highlight { | |
| background-color: rgba(0, 0, 0, 0.2); | |
| } | |
| .tbox .content { | |
| font-size: max(calc(1.2vw - 1.2px), 12px); | |
| line-height: 1.5; | |
| } | |
| .tbox::before { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; /* start from vertical center */ | |
| width: max(0.4vw, 5px); | |
| height: 0; /* expand height from 0 */ | |
| background-color: transparent; | |
| transform: translateY(-50%); /* anchor at center */ | |
| transition: height 0.4s ease, background-color 0.4s ease; | |
| } | |
| .tbox.left::before { | |
| right: calc(-1 * max(0.4vw, 5px)); | |
| } | |
| .tbox.right::before { | |
| left: calc(-1 * max(0.4vw, 5px)); | |
| } | |
| .tbox:hover::before { | |
| height: 100%; /* grow to full height of .tbox only */ | |
| background-color: black; | |
| } | |
| {{tboxs}} | |
| .connector { | |
| position: absolute; | |
| z-index: 3; | |
| overflow: visible; | |
| opacity: 0.5; | |
| transition: opacity 0.3s ease; | |
| } | |
| .connector line { | |
| stroke-linecap: round; | |
| stroke-width: max(0.28vw, 2.5px); | |
| } | |
| .connector:hover { | |
| opacity: 1; | |
| } | |
| .connector:hover line { | |
| stroke-width: 3.2px; | |
| } | |
| {{connectors}} |