@import "variables"; @import "fonts"; @import "grid"; @import "personnel"; @import "gallery"; @import "sponsors"; * { box-sizing: border-box; } html, body, h1, h2, h3, p, ul, li { margin: 0; padding: 0; } h2 { margin-bottom: 2em; } body { font-family: "Noto Sans", Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; font-size: 16px; color: $col-fg-0-light; background-color: $col-bg-0-light; min-height: 100vh; display: flex; flex-direction: column; align-items: stretch; &>* { width: 100%; } &.mobile-nav-open { overflow: hidden; } @media (prefers-color-scheme: dark) { color: $col-fg-0-dark; background-color: $col-bg-0-dark; } } .wrap { width: 100%; max-width: 80em; margin-left: auto; margin-right: auto; } .narrow { max-width: 40em; } .centering { text-align: center; } nav { position: relative; display: flex; align-items: center; border-bottom: 8px solid; border-image: linear-gradient(to right, $col-red-light 20%, $col-orange-light 20%, $col-orange-light 40%, $col-yellow-light 40%, $col-yellow-light 60%, $col-green-light 60%, $col-green-light 80%, $col-purple-light 80%) 5; .wrap { width: 100%; height: 100%; display: flex; justify-content: space-between; align-items: baseline; padding: 2.5em 1em 1em 1em; .logo { height: 4em; display: block; @media (prefers-color-scheme: dark) { filter: contrast(80%) saturate(80%) brightness(180%); } } ul { list-style: none; display: flex; a { display: block; padding: 1em; color: inherit; font-weight: bold; &:hover { text-decoration: underline; } } } #mobile-nav-button { display: none; width: auto; font-size: 2em; font-family: remixicon; cursor: pointer; &::after { content: "\ef3e" } body.mobile-nav-open &::after { content: "\eb99" } } @media only screen and (max-width: $width-mobile) { padding: 1em 2em; align-items: center; .logo { height: 2em } ul { display: none } #mobile-nav-button { display: block } } } .mobile-nav { display: none; position: absolute; left: 0; top: 100%; width: 100%; height: 100vh; z-index: 99; background-color: $col-bg-0-light; overflow: hidden; transform: translateY(7px); // Width of nav border body.mobile-nav-open & { display: block; } ul { list-style: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2em; padding: 2em 1em; a { color: inherit; font-weight: bold; font-size: 1.5em; padding: 1rem; } } // Hide the mobile nav when open and screen is resized to wide mode @media only screen and (min-width: $width-mobile) { body.mobile-nav-open & { display: none } } } @media (prefers-color-scheme: dark) { &, .mobile-nav { background-color: $col-bg-0-dark; color: $col-fg-1-dark; } } } a { text-decoration: none; color: $col-red-light; &:hover { text-decoration: underline; } &[rel~="noreferrer"]::after, &.external::after { content: "\ecaf"; font-family: remixicon; font-size: .8em; font-weight: normal; margin-left: .2em; } } img { max-width: 100%; height: auto; } header { position: relative; min-height: 35em; color: $col-bg-0-light; overflow: hidden; .wrap { padding: 5em 1em; } h1 { font-size: 2.5em; margin-bottom: 1.5em; } &::before { content: ""; position: absolute; z-index: -2; top: 0; left: 0; width: 100%; height: 100%; background-image: url('img/panorama.jpg'); background-size: cover; background-position: center center; background-repeat: no-repeat; filter: blur(4px); transform: scale(1.1); // Fix borders created by the blur } &::after { content: ""; position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 100%; background-image: url('img/forest.svg'); background-size: auto 10em; background-position: center bottom -4px; // -4px fixes a visible line on some resolutions background-repeat: repeat-x; filter: invert(0%) contrast(94.5%); @media (prefers-color-scheme: dark) { filter: invert(100%) contrast(81%); } } } section { padding: 3em 1em; h1 { font-size: 2em; margin: .5em 0 1em 0; &::before { display: block; content: "\ea81"; font-family: remixicon; color: $col-red-light; } } } footer { text-align: center; padding: 5em 1em 1em 1em; margin-top: auto; }