*, *::before, *::after { box-sizing: border-box; } /* Уровень 1 */ .block-menu { position: relative; background: #818181; width: 30px; height: 100vh; display: inline-block; transition: width 1s; } h1 { color: #ffffff; transform: rotate(90deg); white-space: nowrap; position: absolute; top: 300px; left: -34px; font-weight: bold; transition: transform 1s, visibility 0.7s, color 1s; } .block-menu:hover { width: 300px; } .block-menu:hover h1 { transform: translateX(270px) rotate(90deg); color: #9e9e9e; visibility: hidden; } .menu { line-height: 2.5; position: absolute; top: 100px; left: -150px; visibility: hidden; transition: transform 1s, visibility 0.3s; } li::before { content: ""; display: inline-block; border: 3px black solid; background: orange; width: 12px; height: 12px; transform: rotate(45deg); } a { padding-left: 15px; text-decoration: none; color: #ffffff; font-weight: bold; font-size: 20px; } .block-menu:hover .menu { visibility: visible; opacity: 1; transform: translateX(200px); } a:hover { color: rgb(255, 208, 0); transition: color 0.3s linear; } /* Уровень 2 */ .header { background: #0d5825; width: 600px; height: 625px; font-size: 25px; color: white; text-align: center; padding-top: 40px; position: relative; float: right; margin-right: 449px; } blockquote::before { content: "\201C"; } blockquote::after { content: "\201D "; } blockquote { font-weight: bold; } p { line-height: 1.3; font-style: italic; } img { width: 150px; position: absolute; left: 150px; } .card1 { top: 250px; transform: rotate(-30deg); transition: transform 0.5s; } .card2 { left: 210px; top: 250px; transform: rotate(-15deg); transition: transform 0.5s; } .card3 { left: 267px; top: 270px; transform: rotate(5deg); transition: transform 0.5s; } .card1:hover { transform: translateY(-30px) rotate(-30deg); } .card2:hover { transform: translateY(-30px) rotate(-15deg); } .card3:hover { transform: translateY(-30px) rotate(5deg); } /* Уровень 3 */ /* Я не сделал на всю ширину экрана, потому что не знаю какой у вас размер */ .square { width: 449px; height: 625px; position: absolute; right: 0; display: inline-block; } .moving-block { width: 100px; height: 100px; background: rgb(255, 0, 0); position: absolute; animation: moving 8s linear infinite normal both; } @keyframes moving { 0% { top: 0; left: 0; } 25% { top: 525px; left: 0; background: rgb(0, 0, 255); } 50% { left: 349px; bottom: 0; background: rgb(3, 153, 3); } 75% { bottom: 525px; right: 0; background: rgb(255, 255, 0); } 100% { right: 349px; background: rgb(255, 0, 0); } }