html, body { width: 100%; min-height: 100vh; } body { display: grid; grid-template-columns: auto 1fr; grid-template-rows: 1fr; justify-items: stretch; align-items: stretch; position: relative; nav.big { background: #2c2c38; padding: 0.5rem 1rem 1rem; max-width: 15rem; display: flex; flex-direction: column; header { margin: 0 0 1rem; display: flex; flex-direction: column; align-items: stretch; border-bottom: 2px solid #888888; h1 { font-size: 1.5rem; font-weight: 700; font-family: $font-sansserif; margin-bottom: 0; text-align: left; color: #eeeeee; a { color: #eeeeee; text-decoration: none; &:hover { color: #cf5ccd; } } } h2 { font-size: 1rem; font-weight: 600; font-family: $font-sansserif; margin-bottom: 0; text-align: right; color: #eeeeee; } } ol { margin: 0 2rem; padding: 0; li { width: 100%; font-size: 1.25rem; font-family: $font-sansserif; color: #eeeeee; a { text-decoration: none; margin: 0 0 0.25rem 0; color: #5babd1; &:hover { color: #cf5ccd; } &.current { color: #cf5ccd; &:hover { color: #fefefe; } } } ol { margin: 0 0 0 1rem; } } } } nav.small { display: none; width: 100%; align-items: center; justify-content: space-between; background: #2c2c38; padding: 0; position: fixed; top: 0; left: 0; right: 0; >* { margin: 0.5rem; } a { text-decoration: none; font-family: $font-sansserif; color: #5babd1; &:hover { color: #cf5ccd; } } span { display: inline-flex; align-items: center; >* { margin-right: 0.5rem; &:last-child { margin-right: 0; } } } span.title { text-decoration: none; font-family: $font-sansserif; color: #fefefe; justify-self: center; } span.placeholder { width: 1em; height: 1em; } } >* { min-width: 0; min-height: 0; } article { max-width: 38rem; padding: 0.5rem 2rem 0 2rem; >* { max-width: 100%; } } .next-chapter { width: 100%; a { display: flex; align-items: center; justify-content: flex-end; margin-right: 0.5rem; font-size: 1.2rem; text-decoration: none; font-family: $font-sansserif; color: #5babd1; &:hover { color: #cf5ccd; } span:first-child { margin-right: 0.5rem; } } } footer { width: 100%; text-align: right; display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; } } @media screen and (max-width: 768px) { body { grid-template-columns: 1fr; grid-template-rows: auto 1fr; nav.big { display: none; } nav.small { display: flex; } article { margin-top: 2rem; padding: 1rem 0.5rem 0 0.5rem; } } }