:root { /* Color schemes */ color-scheme: light dark; --prickly-pear-yellow: #735f02; --eclipse-gray: #3a3a3a; --pumpkin-olive: #59521c; --manhattan-steel-blue: #224553; --pine-green: #36581d; --brown-swiss-calf-brown: #543c21; --ear-tag-red: #67160e; --flaming-gorge-blue: #1b3e5a; --hayyard-green: #355322; --coeurdalene-purple: #1b245a; --brown-swiss-cow-brown: #563c1f; --buffalo-blue: #0b496a; --saddle-blue: #104165; --brown-swiss-gray: #eaddca; --lavender-purple: #d9c1f6; /* Fonts */ --font-family-antique: Superclarendon, "Bookman Old Style", "URW Bookman", "URW Bookman L", "Georgia Pro", Georgia, serif; --font-family-slab-serif: Rockwell, "Rockwell Nova", "Roboto Slab", "DejaVu Serif", "Sitka Small", serif; --font-family-system-ui: system-ui, sans-serif; } /* Default element styles (for small screens) */ html { background-color: light-dark(var(--brown-swiss-gray), var(--eclipse-gray)); font-family: var(--font-family-slab-serif); } a { color: light-dark(var(--saddle-blue), var(--lavender-purple)); } header { display: flex; justify-content: space-evenly; align-items: center; } nav { display: flex; flex-direction: row; overflow: scroll; padding-bottom: 1rem; position: sticky; top: 0; } nav a { color: light-dark(var(--brown-swiss-gray), var(--manhattan-steel-blue)); background-color: light-dark( var(--manhattan-steel-blue), var(--brown-swiss-gray) ); border-radius: 0.05rem; border-style: outset; border-width: 0.2rem; border-color: light-dark( var(--manhattan-steel-blue), var(--brown-swiss-gray) ); min-width: 7.5rem; max-width: 7.5rem; display: flex; justify-content: space-between; align-items: center; margin: 0.2rem; text-decoration: none; padding: 0 0.2rem; font-family: var(--font-family-system-ui); } nav a:active { border-style: inset; } nav a:hover { background-color: light-dark( var(--buffalo-blue), color-mix(in srgb, var(--prickly-pear-yellow), var(--brown-swiss-gray) 75%) ); } figure { border-color: light-dark(var(--eclipse-gray), var(--brown-swiss-gray)); border-width: 1.5pt; border-style: inset; padding: 1.25pt; } blockquote { background: linear-gradient( to right, light-dark(lightgray, dimgray), color-mix( in srgb, light-dark(var(--brown-swiss-gray), var(--eclipse-gray)), white 25% ) ); border-left: 5px solid black; padding-left: 6px; } blockquote small::before { content: "\2014 \00A0"; } blockquote small { font-size: 80%; } footer { background-color: light-dark(lightgray, dimgray); margin: 0 0 -1em -1em; width: calc(100% - 1em); padding: 0.25em 1.25em; display: flex; justify-content: space-between; align-items: center; } form { margin: 1rem; } fieldset { padding: 1rem; } input, select, textarea { width: 100%; margin-bottom: 0.5rem; } input:invalid, select:invalid, textarea:invalid { border-bottom-width: 2px; border-bottom-color: var(--ear-tag-red); } /* Container-type helper classes */ .row { display: flex; flex-direction: column; width: 100%; } .motto { position: relative; display: grid; place-items: center; text-align: center; color: #fff; font-weight: 600; text-shadow: 0 0 10px rgba(0, 0, 0, 0.33); width: 100%; padding: 0 0 0.5em 0; border-radius: 0.25rem; } .motto::before { content: " "; position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-sizing: border-box; background-size: cover; background-position: 50% 50%; } .motto-inside { position: relative; max-width: 95%; display: grid; place-items: center; text-align: center; } .motto .motto-inside h1 { background-color: rgba(0.33, 0.33, 0.33, 0.33); -webkit-text-stroke: 0.3px lightgray; line-height: 1; } .card { background-color: color-mix( in srgb, light-dark(var(--brown-swiss-gray), var(--eclipse-gray)), white 10% ); border-color: light-dark( var(--manhattan-steel-blue), var(--brown-swiss-gray) ); border-width: 1.5pt; border-radius: 0.1rem; border-style: outset; margin: 1rem 0; padding: 0.5rem; padding-top: 0; position: relative; display: flex; flex-direction: column; } .card-link { white-space: nowrap; display: inline-flex; gap: 0.375rem; align-items: center; text-underline-offset: 0.25em; backface-visibility: hidden; margin: 0 0.5em; } .category-button { position: absolute; top: 1em; right: 1em; display: grid; color: white; background-color: var(--ear-tag-red); border-radius: 0.5em; padding: 1em; } .card-title { margin-right: 3em; } .card-title > a { color: inherit; } .img-thumbnail { width: 100%; height: auto; margin-top: 0.5rem; } .thumb-icon-wrapper { margin-top: 1rem; display: flex; justify-content: center; align-content: center; } .thumb-icon-badge { font-size: xx-large; justify-self: center; align-self: center; padding: 1.5rem 3rem; border-radius: 3rem; background-color: var(--ear-tag-red); color: white; } .fa-container svg { overflow: visible; box-sizing: content-box; display: inline-block; height: 1em; width: 1.25em; vertical-align: -0.125em; } .fa-container svg path { fill: currentColor; } /* Helper classes */ .font-small-caps { font-variant-caps: small-caps; } .img-fluid { max-width: 100%; height: auto; } .float-left { float: none; max-width: 100%; } .float-right { float: none; max-width: 100%; } /* Application-state helper classes */ @media (prefers-color-scheme: light) { .active { background-color: var(--coeurdalene-purple); } } @media (prefers-color-scheme: dark) { .active { color: color-mix(in srgb, var(--manhattan-steel-blue), white 75%); background-color: color-mix(in srgb, var(--brown-swiss-gray), black 75%); border-color: color-mix(in srgb, var(--brown-swiss-gray), black 50%); } } /* Desktop screen size adjustments */ @media (min-width: 768px) { /* Default element styles */ nav { flex-direction: column; padding-right: 1rem; padding-bottom: 0; /* Workaround for Chrome always showing scrollbar even when scrolling not needed */ -ms-overflow-style: none; scrollbar-width: none; } /* Continued Chrome workaround */ nav::-webkit-scrollbar { display: none; } main { width: calc(100% - 10rem); } /* Container-type helper classes */ .row { flex-direction: row; } /* Helper classes */ .float-left { float: left; max-width: 50%; } .float-right { float: right; max-width: 50%; } .card { flex-direction: row; } .img-thumbnail { margin-right: 1rem; } .card-header { width: 20vw; flex-shrink: 0; } .card-body { margin-left: 1rem; } .bolder { font-weight: bolder; background-color: rgba(0, 0, 0, 0.33); border-radius: 0.25em; padding: 0.25em 0.75em 0.5em 0.33em; } /* Clearfix implementation */ h1::before, h2::before, h3::before, h4::before, h5::before, h6::before { content: " "; /* Older browser do not support empty content */ visibility: hidden; display: block; height: 0; clear: both; } } /* end @media */ @supports (animation-timeline: scroll()) and (animation-range: 0 50vh) { @keyframes sticky-header { from { height: 50vh; top: 6rem; } to { height: 10vh; top: -1rem; } } @keyframes blurry-header { from { filter: blur(0); } to { filter: blur(2px); } } @keyframes transparent-text-bg { from { background-color: rgba(0.33, 0.33, 0.33, 0.33); } to { background-color: rgba(0.33, 0.33, 0.33, 0); } } main, footer { position: relative; top: 55vh; } .motto { position: fixed; top: 12rem; animation: sticky-header linear forwards; animation-timeline: scroll(); animation-range: 0.001vh 50vh; } .motto::before { filter: blur(12px); top: 2rem; animation: blurry-header linear forwards; animation-timeline: scroll(); animation-range: 0.001vh 50vh; } .motto-inside h1 { animation: transparent-text-bg linear forwards; animation-timeline: scroll(); animation-range: 0.001vh 40vh; } @media (min-width: 768px) { .motto { width: calc(100% - 8rem); } .motto::before { top: 0; } } } /* end @supports */