@import 'breakpoints'; @import 'colors'; @import 'fonts'; @import 'schedule'; @import 'vars'; * { box-sizing: border-box; margin: 0; padding: 0; } body { background: linear-gradient($color-background-0, $color-background-100); color: $color-text; display: flex; flex-direction: column; font-family: "Noto Sans", sans-serif; margin: 0 auto; min-height: unquote("max(100vh, #{$stars-height})"); max-width: $large; main { flex-grow: 1; } @media screen and (min-width: $small) { &::before { background: url(/stars.svg) repeat-x top; clip-path: polygon(0 0, 100% 0, 100% 100%, calc(50% + #{$large * 0.5}) 100%, calc(50% + #{$large * 0.5}) $header-spacing, calc(50% - #{$large * 0.5}) $header-spacing, calc(50% - #{$large * 0.5}) 100%, 0 100%); content: ''; display: block; height: $stars-height; left: 0; position: absolute; top: 0; width: 100%; z-index: -1; } } } header, footer { padding: 0 1rem; } header { align-items: center; display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 1rem; pre { font-family: "OCR A", "Noto Sans Mono", monospace; font-size: 0.8rem; font-weight: bold; line-height: 1; user-select: none; span { color: $color-highlight; } } nav { font-size: 1.2rem; } .header-brand { display: flex; img + pre { margin-left: 0.5rem; } } .header-logo { height: 3.2rem; width: auto; } .nav-burger { margin-right: 0.5rem; } @media screen and (min-width: $small) { margin-top: $header-spacing; padding-top: 0.5rem; &::before { background: url(/#{$header-variant}.svg) 50% 0% / auto $header-height no-repeat; content: ''; display: block; height: $header-height; left: 0; position: absolute; top: 0; width: 100%; z-index: -1; } } } main { padding: 1rem; .upcoming { font-family: "OCR A", "Noto Sans Mono", monospace; font-size: 3em; text-align: center; .uber { background: url(/uber.svg) no-repeat 50% 69% / 92.5% 92.5%; color: transparent; } } } footer { margin-bottom: 1rem; nav { align-items: end; @media screen and (min-width: $small) { align-items: normal; justify-content: end; } } @media screen and (min-width: $small) { margin-bottom: 0; &::before { background: url(/footer.svg) bottom / auto $footer-height no-repeat; content: ''; display: block; height: $footer-height; left: 0; margin-top: calc(1.5rem + 1.5em); position: absolute; width: 100%; z-index: -1; } & > nav { margin-bottom: $footer-spacing; margin-top: 1.5rem; } } } nav { display: flex; flex-direction: column; &.nav-toggleable { flex-basis: 100%; max-height: 0; overflow-y: hidden; transition: max-height 0.5s; .nav-toggle:checked ~ & { max-height: calc(var(--num-elements) * 2em); } } &.pagination { margin-top: 2.5em; :first-child { margin: 0; } } a, span { line-height: 1.5em; margin: 0.5em 0 0 0; } @media screen and (min-width: $small) { flex-direction: row; &.nav-toggleable { flex-basis: auto; max-height: max-content; } a, span { margin: 0 0 0 1em; } } } a { color: $color-link; text-decoration: none; &:hover, &.is-active { text-decoration: underline; } } h1, h2, h3, h4, h5, h6 { margin-bottom: 0.5em; } p { margin-bottom: 1em; } ol, ul { margin-bottom: 2em; padding-left: 2em; } hr { color: $color-text; margin: 3em 0; } .nav-burger { cursor: pointer; display: flex; flex-direction: column; height: 1rem; justify-content: space-between; width: 1.2rem; div { background: $color-burger; height: 2px; transition: background 0.5s, transform 0.5s; } .nav-toggle:checked ~ & div { background: transparent; &:first-child { background: $color-burger; transform: translateY(0.5rem) translateY(-1px) rotate(45deg) scaleX(141%); } &:last-child { background: $color-burger; transform: translateY(-0.5rem) translateY(1px) rotate(-45deg) scaleX(141%); } } @media screen and (min-width: $small) { display: none; } } .nav-toggle { display: none; }