/* Projects container */ .project { position: relative; display: flex; justify-content: center; align-items: flex-start; margin: 4em auto; } /* Project link */ .project-content { position: relative; display: flex; flex-direction: column; align-items: center; margin: 0 auto; } /* Project link covering entire content */ .project-link { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 2; text-decoration: none; color: transparent; background: transparent; cursor: none; } /* Timeline container */ .timeline { max-width: 80%; margin: 0 auto; position: relative; padding-left: 4em; box-sizing: border-box; } /* Project content (default) */ .project div { position: relative; display: inline-block; padding: 2em; box-sizing: border-box; margin-top: 3em; width: 70%; max-width: 700px; border: 2px solid #999; border-radius: 10px; color: #999; overflow: hidden; transition: transform 1.5s border-color 0.5s ease, color 0.5s ease; } /* Project container (hover) */ .project div:hover { border-color: #333; transform: scale(1.005); } /* Project container (focused) */ .project div.focused { color: #333; border-color: #333; } /* Vertical line (default) */ .project::before { content: ''; position: absolute; top: 4em; left: 0; width: 1.5px; height: 125%; background-color: #999; transform: translateX(-50%); transition: background-color 0.5s ease; z-index: 0; } /* Vertical line (focused) */ .project.focused::before { background-color: #333; } /* Project-dot */ .project-dot { position: absolute; left: 0; top: 2.5em; width: 2em; height: 2em; background: #fff; border: 2px solid #999; border-radius: 50%; color: #999; font-size: 2em; display: flex; align-items: center; justify-content: center; transform: translateX(-50%) translateY(-50%); z-index: 1; transition: border-color 0.5s ease, color 0.5s ease; } /* Project-dot (active) */ .project-dot.visible { border-color: #333; color: #333; } /* Project image */ .project-image { max-width: 100%; flex-shrink: 0; height: auto; opacity: 0.2; transition: opacity 0.2s ease-in-out; } /* Project image (focused) */ .project.focused .project-image { opacity: 1; } /* Project date line */ .project-date { font-size: 0.8em; color: #999; margin-top: -0.5em; } /* Project description */ .project-description { font-size: 1em; margin-top: 2em; color: #999; } /* Adaptations for Smaller Screens */ @media screen and (max-width: 768px) { .timeline { max-width: 90%; padding-left: 3em; } .project { margin: 3em auto; } .project div { width: 75%; padding: 1.5em; } .project-dot { width: 1.5em; height: 1.5em; font-size: 1.5em; } .project-date, .project-description { font-size: 0.9em; } }