body { background: #f2f2f2; padding: 0; margin: 0; font-family: Roboto, sans-serif; } #header { height: 100px; width: 100%; background-color: rebeccapurple; position: fixed; top: 0; right: 0; line-height: 100px; text-align: center; span { color: white; font-size: 2em; } } h1 { margin: 0; margin-bottom: 1rem; } #content { margin-top: 100px; min-height: calc(100vh - 100px); padding-top: 1rem; padding-bottom: 1rem; div.block { width: 800px; max-width: calc(100vw - 7rem); background: white; padding: 2rem; text-align: center; margin: { left: auto; right: auto; } &:nth-of-type(n + 2) { margin-top: 1rem; } } div#container { position: relative; height: 225px; left: 50%; transform: translateX(-50%); #img { display: block; height: 100%; width: auto; border-left: 9px solid #fff; transition: margin 0.5s ease, border-color 0.2s ease; } div#reflection { background: url(reflection.svg); background-size: cover; position: absolute; bottom: 0; width: 100%; height: 100%; transition: margin 0.5s ease; } } .col { display: inline-block; height: 70px; width: 70px; cursor: pointer; transition: background-color 0.2s ease; background-color: #fff; &:nth-child(n + 2) { margin-left: 4px; } } #customcol { margin-top: 1rem; input { padding: 0.5rem; transition: background-color 0.2s ease; &:invalid { background-color: lightcoral; } } } input#file { position: absolute; height: 85px; max-width: calc(800px + 4rem); width: calc(100% - 2rem); transform: translateX(-50%); left: 50%; top: 116px; opacity: 0; &:hover { cursor: pointer; & + label { background: rgb(144, 90, 199); } } & + label { color: white; background-color: rebeccapurple; padding: 0.9rem 1rem; transition: background-color 0.2s ease; svg { fill: white; padding-right: 5px; } } } } #footer { height: 100px; width: 100%; background-color: rgb(54, 30, 78); color: white; text-align: center; line-height: 100px; a { color: white; } }