* { box-sizing: border-box; } body { font-family: "Noto Sans", sans-serif; margin: 0; display: grid; grid-template-columns: max(325px, 15%) auto; background: #fafafa; } h1, h2, h3, h4, h5, h6 { font-family: "Open Sans", sans-serif; } main article h1 a, main article h2 a, main article h3 a, main article h4 a, main article h5 a, main article h6 a { color: inherit; text-decoration: none; } h1, h2, h3 { font-weight: 400; } h1 { font-size: 3em; text-align: center; } main article h1 a { /* needed for chrome */ /*noinspection CssInvalidPropertyValue*/ text-decoration: underline mediumpurple dotted 5px; } h2 { font-size: 1.6em; } main { box-shadow: 0 0 40px black; z-index: 2; } main article { max-width: 1800px; padding: 0 50px 30px; margin: 0 auto; background: #fafafa; min-height: 100%; overflow: auto; font-size: 1.1em; } main article h2, main article h3 { border-left: 5px solid mediumpurple; padding-left: 5px; margin-left: -10px; } main article a { color: #60a; text-decoration-style: dotted; text-decoration-color: transparent; transition: 0.2s all; } main article a:hover { text-decoration-color: unset; } p { line-height: 1.5em; } header { /* sidebar */ position: sticky; top: 0; background: #333; height: 100vh; transition: 0.2s all; } header::after { /* the background image behind the sidebar */ /* will use webp with jpeg fallback when https://developer.mozilla.org/en-US/docs/Web/CSS/image()#browser_compatibility becomes a thing, until then, it's jpeg only for now :c */ display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; /*noinspection CssInvalidFunction*/ background: linear-gradient(to bottom, #333, #333 10%, 70%, transparent), /* image("/assets/img/background.webp", "/assets/img/background.jpeg") no-repeat bottom center/cover, */ url("/assets/img/background.jpeg") no-repeat bottom center/cover, #333; filter: blur(3px) saturate(75%); content: ""; } #hamburger { /* hamburger menu button, should only display on mobile devices. see @media section at bottom of file */ display: none; position: fixed; top: 10px; left: 10px; padding: 10px; background: #fafafa; color: mediumpurple; border-radius: 10px; height: 27px; width: 27px; z-index: 3; box-sizing: content-box; } #hb-icon { height: 100%; width: 100%; background: linear-gradient(to bottom, mediumpurple, mediumpurple 10%, #fafafa 10%, #fafafa 45%, mediumpurple 45%, mediumpurple 55%, #fafafa 55%, #fafafa 90%, mediumpurple 90%, mediumpurple 100%); } nav a { color: white; } nav a { padding: 10px 40px; display: block; width: 100%; text-align: center; text-decoration: none; font-size: 1.5em; transition: 0.2s all; position: relative; } nav a::before { width: 5px; top: 0; bottom: 0; left: -5px; background: mediumpurple; content: ""; display: block; position: absolute; transition: 0.2s all; } nav a:hover { background: #00000044; } nav a.current:not(:hover) { background: #9370db44; } nav a:hover::before, nav a.current::before { left: 0; } #logo { object-fit: contain; display: block; width: min(100%, 150px); height: auto; margin: 30px auto 50px auto; } #bune-img { height: max(200px, 10vh); display: block; margin: 50px auto 0; } .project { border-top: thin grey solid; } .project:last-of-type { border-bottom: thin grey solid; } .project p { margin-bottom: 0.5em; } .project-footer { font-size: 0.85em; padding-bottom: 1em; } .project-footer a { font-style: italic; } /* smaller screen tweaks */ @media only screen and (max-device-width : 840px) { body { grid-template-columns: max(225px, 15%) auto; } } /* mobile tweaks */ @media only screen and (max-device-width : 480px) { main { width: 100vw; box-shadow: none; } main article { padding: 0 20px 30px; } h1 { font-size: 2.5em; } h2 { font-size: 1.5em; } header { position: fixed; left: -100vw; width: 100vw; overflow: hidden; z-index: 3; } header.active { left: 0; } #hamburger { display: inline-block; touch-action: manipulation; } }