:root { --navbar-height: 96px; --teal: 162, 223, 203; --black: 25, 23, 30; --brown: 81, 73, 65; --tan: 158, 144, 112; --lightblue: 147, 225, 242; --background-color: rgba(var(--tan), .12); --header-color: var(--background-color); --footer-color: rgba(var(--teal)); --borders: 1px solid rgba(var(--black), .86); } * { font-family: "Lato", sans-serif; box-sizing: border-box; } html, body { height: 100vh; width: 100vw; font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; } html, body, p, h1, h2, h3, h4, h5, h6 { padding: 0; margin: 0; } body { background-color: var(--background-color); } header { background-color: var(--header-color); border-bottom: var(--borders); font-variant: small-caps; height: var(--navbar-height); } footer { background-color: var(--footer-color); border-top: var(--borders); } .color-teal { color: rgba(var(--teal), .86); text-shadow: -1px -1px 0 rgba(var(--black), .52), 1px -1px 0 rgba(var(--black), .52), -1px 1px 0 rgba(var(--black), .52), 1px 1px 0 rgba(var(--black), .52); } .color-tan { color: rgba(var(--tan), .86); } .container { max-width: 1200px; margin-left: auto; margin-right: auto; } .h-100 { height: 100%; } .nav { display: flex; align-items: center; justify-content: space-between; } .nav > div:first-child { margin-left: 1.25rem; } .nav > div:last-child { margin-right: 1rem; } .nav > * { width: 33.33%; } .nav .hamburger { border: none; background-color: transparent; } .nav .hamburger ion-icon { margin-top: 0.15rem; } .nav-logo > img { width: 64px; height: 64px; } .nav-title { align-items: center; } .nav-hyperlinks, .nav-title { display: flex; flex-direction: column; } .nav-hyperlinks { align-items: end; } .nav-hyperlinks > ul { list-style: none; margin: 0.5rem 0; padding: 0; } .nav-hyperlinks > ul > li { display: inline; float: left; } .nav-hyperlinks > ul > li > a { padding: 0 1rem; } .nav-hyperlinks a { display: flex; align-items: center; align-content: center; text-decoration: none; color: rgba(var(--black), .52); } .nav-hyperlinks a:hover { color: rgba(var(--black), .86); } .nav-hyperlinks ion-icon { font-size: 28px; } .nav-hyperlinks li:not([data-mobile]) { display: none; } .nav-hyperlinks li[data-mobile] { display: list-item; } .nav-hyperlinks a span { display: inline-block; overflow: hidden; white-space: nowrap; max-width: 0; transition: max-width 0.25s linear; margin-left: 0.25rem; } .nav-hyperlinks a:hover span { max-width: 100px; } .mobile-nav { display: flex; flex-direction: column; position: fixed; bottom: 0; top: 0; right: 0; width: 400px; border-left: var(--borders); transform: translateX(100%); transition: transform 0.25s ease-in-out; z-index: 1000; /* I want the background to be white with a tan overlay. * TODO: see if there's a way to do this without linear-gradient so I can change the base "white" color for dark mode */ background-color: white; background-image: linear-gradient(rgba(var(--tan), 0.12), rgba(var(--tan), 0.12)); background-blend-mode: multiply; } .mobile-nav.show { transform: none; } .mobile-nav .hamburger { border: none; background-color: transparent; } .mobile-nav .hamburger ion-icon { margin-top: 0.15rem; font-size: 28px; } .mobile-nav-header { display: flex; align-items: center; justify-content: space-between; background-color: rgba(var(--tan), 1); width: 100%; padding: 1rem; } .mobile-nav-header h1 { font-size: 1.5rem; font-weight: 600; } .mobile-nav ul { list-style: none; padding: 0; margin: 0; } .mobile-nav ul li { border-bottom: var(--borders); } .mobile-nav ul li:first-child { border-top: var(--borders); } .mobile-nav ul li:hover { background-color: rgba(var(--lightblue), .52); } .mobile-nav ul li a { text-decoration: none; color: rgba(var(--black), .52); display: flex; align-items: center; padding: 0.5rem; } .mobile-nav ul li span { margin-left: 0.5rem; } .mobile-nav-backdrop { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-color: rgb(var(--black)); opacity: 0; z-index: 999; transition: opacity 0.25s ease-in-out; } .mobile-nav-backdrop.show { opacity: 0.5; } nav li[data-mobile] { cursor: pointer; } .flex-adaptive { display: flex; flex-direction: column-reverse; } .flex-1 { flex: 1; } footer { padding: 3rem 1.5rem; color: rgba(var(--black), .86); } footer a { text-decoration: none; color: rgba(var(--black), .52); } footer a:hover { color: rgba(var(--black), .86); } footer h3 { font-size: 2rem; } footer h4 { font-size: 1.25rem; font-weight: 400; margin-bottom: 1rem; } footer p { margin: 0 0 0.5rem 0; font-size: 0.85rem; color: rgba(var(--black), .52); } footer > div { display: flex; flex-direction: column; justify-content: space-around; width: 100%; } footer > div > * { width: 100%; text-align: center; } footer > div > :last-child { margin-top: 1rem; } footer ul { width: 100%; list-style: none; padding: 0; margin: 0; } footer ul li { margin: 0.5rem 0; } footer ul li:first-child { margin-top: 0; } footer ul li:last-child { margin-bottom: 0; } .footer-socials > a > ion-icon { color: rgba(var(--lightblue), .86); background-color: rgba(var(--brown), .86); border-radius: 100%; border: var(--borders); box-sizing: content-box; padding: 0.5rem; margin: 0 0.5rem; } .footer-socials > a:first-child > ion-icon { margin-left: 0; } .footer-socials > a:last-child > ion-icon { margin-right: 0; } .footer-links { display: flex; text-align: center; margin: 1rem 0 0 0; } .footer-links > * { flex-grow: 1; } .footer-links > :last-child { margin-left: 2rem; } /* -xs */ @media (min-width: 576px) { .container { max-width: 540px; } } /* -sm */ @media (min-width: 768px) { .container { max-width: 720px; } } /* -md */ @media (min-width: 992px) { .container { max-width: 960px; } nav > div:first-child, nav > div:last-child { margin: 0; } .nav-hyperlinks li[data-mobile] { display: none; } .nav-hyperlinks li:not([data-mobile]) { display: list-item; } .flex-adaptive { flex-direction: row; } footer ul { width: fit-content; } footer > div { flex-direction: row; } footer > div > * { width: fit-content; } footer > div > *:first-child { text-align: start; } footer > div > :last-child { margin-top: 0; } .footer-links { text-align: start; } } /* -lg */ @media (min-width: 1200px) { .container { max-width: 1140px; } } /* -xl */ @media (min-width: 1400px) { .container { max-width: 1320px; } }