$col-dark: rgb(11, 22, 33); $col-mid: rgb(111, 122, 133); $col-light: rgb(211, 222, 233); html { box-sizing: border-box; min-height: 101%; } *, *::before, *::after { box-sizing: inherit; margin: 0; padding: 0; } a { border-bottom: 1px dashed $col-dark; color: $col-dark; text-decoration: none; } a:hover { border-bottom: 1px solid $col-dark; color: $col-mid; text-decoration: none; } a:visited { border-bottom: 1px dashed $col-mid; color: $col-mid; } body { background-color: black; } img { max-width: 100%; } .wrap { perspective: 1111px; transform-style: preserve3d; } .search__label { background-color: $col-mid; border: 2px solid $col-light; border-radius: 1em; color: $col-light; height: 1.25em; position: absolute; top: calc(1.75em - 1.5px); right: calc(2.5em - 1.5px); width: 1.25em; z-index: 999; transition: all .666s ease-in-out; &::before { content: ''; position: absolute; top: 0; left: 0; transition: all .666s ease-in-out; } &::after { background-color: $col-light; border-radius: 0.25em; content: ''; height: 0.25em; position: absolute; bottom: -0.25em; right: -0.25em; transform: rotate(45deg); transform-origin: 50% 75%; width: 0.5em; transition: all .666s ease-in-out; } &:active { border: 1px solid $col-light; transition: all 0s; } } .search__input { background-color: $col-mid; border: 2px solid $col-light; border-radius: 1.5em; color: transparent; height: 3em; padding: 0.5em 1em 0.5em 1em; position: absolute; top: 1.5em; right: 2em; width: 3em; z-index: 666; transition: width .666s ease-in-out; } .page { background-color: $col-light; transform-origin: 50% 0; transform: rotateX(0); transition: transform .666s ease-out; } .overlay { display: none; } .banner { background-color: $col-dark; color: $col-light; min-height: 5em; padding: 1em 5em 1em 1em; transition: padding .333s ease-out; } .banner__title { padding: 0.25em 0.1225em; } .content { min-height: 22em; padding: 2em 1em; } .content__text { border-bottom: 1px solid $col-mid; margin-bottom: 1em; padding-bottom: 1em; } .content__gallery { width: 100%; &::after { content: ''; display: block; clear: both; } } .content__image { float: left; position: relative; width: 50%; } .content__image--loading { background-color: lighten($col-mid, 33.3%); display: block; float: left; padding-top: 40%; position: relative; width: 50%; &::before { border: 2px solid $col-mid; border-radius: 50%; content: ''; height: 4em; margin: auto; position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 4em; } &::after { background-color: $col-mid; border-radius: 0.25em; content: ''; height: 0.25em; margin: auto; position: absolute; top: 0; right: 0; bottom: 0; left: 0; transform: translateX(0.75em); transform-origin: 50% 50%; width: 1.5em; animation: loading 6.66s linear infinite; } } @keyframes loading { 0% { transform: rotate(0deg) translateX(0.75em); } 100% { transform: rotate(360deg) translateX(0.75em); } } .search__input:focus ~ .page { transform: rotateX(-30deg) translateY(4em); transition: transform .666s ease-in-out; & .overlay { background-color: rgba(0, 0, 0, 0.5); display: block; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 333; } } .search__input:focus ~ .search__label { background-color: transparent; border: 2px solid $col-light; border-radius: 1em; color: $col-light; height: 1.75em; position: absolute; top: calc(1.5em + 2px); right: 2.25em; width: 1.75em; z-index: 999; transition: all .666s ease-in-out, transform .666s ease-in-out; &::before { color: $col-light; content: 'go'; display: block; position: absolute; top: 0; left: 0.25em; transition: color .666s ease-in-out, left .666s ease-in-out; } &::after { background-color: transparent; bottom: 0.5em; right: 0.25em; transition: all .666s ease-out; } } .search__input:focus { color: $col-light; width: 18em; transition: color .666s ease-in-out, width .666s ease-in-out; }