/* * Additional fonts */ /* LinBiolinum is sans-serif; see linuxlibertine.org */ @font-face { font-family: "LibertinusSans"; src: url("../fonts/Libertinus/LibertinusSans-Regular.otf") format("opentype"); } @font-face { font-family: "LibertinusSans"; font-weight: bold; src: url("../fonts/Libertinus/LibertinusSans-Bold.otf") format("opentype"); } @font-face { font-family: "LibertinusSans"; font-style: italic; src: url("../fonts/Libertinus/LibertinusSans-Italic.otf") format("opentype"); } /* * General settings */ :root { --tr-card-height: 300px; --tr-smallest-width: 350px; --pico-font-family-sans-serif: LibertinusSans, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif, var(--pico-font-family-emoji); --pico-font-size: 112.5%; } /* don't underline links in headings */ h1, h2, h3, h4, h5, h6 { a { --pico-text-decoration: none; } } /* Override breakpoint settings for hamburger menu in Yohn's Pico fork */ @media (max-width: 767px) { nav[role=navigation][data-breakpoint=my-md] { flex-wrap: wrap; overflow: hidden; } nav[role=navigation][data-breakpoint=my-md]:has(input[type=checkbox]:checked) { overflow: visible; } nav[role=navigation][data-breakpoint=my-md] label { display: block; } nav[role=navigation][data-breakpoint=my-md]>[role=list] { display: none; flex-direction: column; align-items: flex-start; width: 90vw; max-height: 0; margin: 0 auto; background-color: var(--pico-muted-border-color); box-shadow: var(--pico-box-shadow); opacity: 0; transition: max-height var(--pico-transition), opacity var(--pico-transition); } nav[role=navigation][data-breakpoint=my-md]>[role=list] li { width: calc(100% - var(--pico-nav-link-spacing-vertical) * 2); margin: calc(var(--pico-nav-link-spacing-vertical) * 0.5) var(--pico-nav-link-spacing-vertical); padding: 0; } nav[role=navigation][data-breakpoint=my-md]>[role=list] li>details.dropdown { width: 100%; } nav[role=navigation][data-breakpoint=my-md]>[role=list] li>form[role=search] { margin-block-end: 0; } nav[role=navigation][data-breakpoint=my-md]>[role=list] a { display: block; margin: 0; border-radius: 0; border-block-end: 1px solid transparent; transition: border-color var(--pico-transition), color var(--pico-transition); } nav[role=navigation][data-breakpoint=my-md]>[role=list] a:hover { border-bottom-color: var(--pico-underline); text-decoration: none; } nav[role=navigation][data-breakpoint=my-md] input[type=checkbox]:checked~[role=list] { display: block; max-height: 100vh; opacity: 1; } } /* end override hamburger settings */ @media (min-width: 576px) { :root { --pico-font-size: 118.75%; } /* Two cards side by side on small screens */ .card { max-width: calc(50% - var(--pico-block-spacing-horizontal) / 2); } } @media (min-width: 768px) { :root { --pico-font-size: 125%; } } @media (min-width: 1024px) { :root { --pico-font-size: 131.25%; } /* Three cards side by side on large screens */ .card { max-width: calc(33% - var(--pico-block-spacing-horizontal) * 2 / 3); } } @media (min-width: 1280px) { :root { --pico-font-size: 137.5%; } .container { max-width: 1170px; } } @media screen and (min-width: 1536px) { :root { --pico-font-size: 143.75%; } /* Four cards side by side on xs-large screens */ .card { max-width: calc(25% - var(--pico-block-spacing-horizontal) * 3 / 4); } .container { max-width: 1280px; } } /* * Light/Dark mode settings (adapted from Yohn's Pico fork) */ /* Light color scheme (default); can be forced with data-theme="light" */ [data-theme="light"], :root:not([data-theme="dark"]) {} /* Dark color scheme. Everything must be set twice: - once for automatically enabled dark mode - and once for when dark mode is forced via toggle */ @media only screen and (prefers-color-scheme: dark) {} [data-theme="dark"] {} /* * Specific elements on the page */ /* Jumbotron */ #jumbotron-title { border-bottom: thin solid var(--pico-h1-color); h1 { font-size: 2.66rem; font-weight: 500; margin-bottom: calc(var(--pico-spacing) * 0.5); a { color: var(--pico-h1-color); text-decoration-color: var(--pico-h1-color); } } } #jumbotron-subtitle h2 { font-size: 1.86rem; font-weight: 500; margin-top: calc(var(--pico-spacing) * 0.5); } /* Navbar */ #site-navbar { a { --pico-text-decoration: none; } ul { margin-left: 0; margin-right: 0; li.sun-moon-li { padding-right: 0; } li[aria-current=page]>a, li[aria-current=page]>details>summary>a { text-decoration: underline; } a { font-size: 1rem; font-weight: bold; text-align: right; } details.dropdown { margin-block-end: calc(var(--pico-spacing) * -1); >summary:not([role]) a, li a { color: var(--pico-primary); } >summary:not([role]) { background-color: inherit; border: none; } } li a { text-align: left; } } } /* make hamburger icon bigger */ #hamburger-label { font-size: 1.77rem; } /* change color of sun icon to white*/ #sun-moon:not(:checked)::before { background-color: var(--pico-color); } /* change background & border color of theme toggle */ #sun-moon:not([aria-invalid]) { background-color: var(--pico-primary-background); border-color: var(--pico-primary-border); } /* move theme toggle switch to the right when inside dropdown menu */ #sun-moon-label { margin-left: auto; margin-right: 0; } /* style newsletter subscription form */ .newsletter-form { display: flex; flex-flow: row wrap; } .newsletter-email { flex: 1 0 var(--tr-smallest-width); min-width: var(--tr-smallest-width); } .newsletter-submit { flex: 0 1 content; } /* Main content */ #main-header h1, #site-footer p { box-shadow: var(--pico-card-box-shadow); padding: calc(var(--pico-block-spacing-horizontal) * 0.5) calc(var(--pico-block-spacing-vertical) * 0.5); text-align: center; background-color: var(--pico-card-background-color); } .featured-image { text-align: center; } figcaption { text-align: center; font-size: 0.8em; a { font-size: 0.85m;} } #no-bottom-margin { margin-bottom: 0; } /* Index page */ .index { display: flex; flex-wrap: wrap; justify-content: space-evenly; align-items: center; row-gap: 1rem; margin-bottom: 3lh; img { flex: 0 0 auto; max-height: calc(var(--tr-card-height) * 2); aspect-ratio: auto; } p { flex: 0 1 var(--tr-smallest-width); font-size: 1.2rem; } .index-link::after { content: "\00a0\02192"; /* arrow to the right */ } a { color: var(--pico-h1-color); --pico-text-decoration: none; } } .events .tr-muted { color: var(--pico-muted-color); } /* event list */ .event-info { vertical-align: top; max-width: 240px; } .event-detail { vertical-align: top; } /* flex settings for layout of cards */ .cards { display: flex; flex-flow: row wrap; list-style-type: none; padding-left: inherit; column-gap: var(--pico-block-spacing-horizontal); } /* flexitem settings for cards, flex settings for single card */ .card { display: flex; flex-flow: column nowrap; flex: 1 0 100%; list-style-type: none; padding-left: calc(var(--pico-spacing) * 0.5); padding-right: calc(var(--pico-spacing) * 0.5); box-shadow: var(--pico-card-box-shadow); } /* flexitem settings for single card */ .card-header { flex: 0 0 3.5lh; /* set card header to fixed height equivalent to two lines of text */ margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1); margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1); /* Use overflow on card heading if it's longer than two lines of text */ h3 { color: var(--pico-primary); display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; margin-bottom: auto; } } .card-body img { height: var(--tr-card-height); object-fit: contain; } /* settings for articles */ #article-body, #page-body { overflow: hidden; display: flex; justify-content: space-between; flex-flow: row wrap-reverse; .body-column-text { flex: 0 0 calc(50% - var(--pico-block-spacing-horizontal)); min-width: var(--tr-smallest-width); margin-bottom: var(--pico-block-spacing-vertical); } .body-column-img { flex: 0 0 calc(50% - var(--pico-block-spacing-horizontal)); min-width: var(--tr-smallest-width); margin-bottom: var(--pico-block-spacing-vertical); display: flex; flex-flow: column nowrap; justify-content: space-between; } h2 { margin-top: var(--pico-block-spacing-vertical); --pico-font-size: 1.25rem; } blockquote { margin-top: 0px; padding-top: 0px; margin-bottom: 0px; padding-bottom: 0px; } img { max-height: calc(var(--tr-card-height) * 2); min-width: var(--tr-smallest-width); max-width: 100%; object-fit: contain; display: block; margin: auto; } /* h2:has(+ .article-stats) { margin-top: var(--pico-block-spacing-vertical); } */ .article-stats { padding-left: 0; li { list-style: none; } } .article-tags { padding-left: var(--pico-block-spacing-horizontal); margin-bottom: 0; li { list-style: disc; } } } /* settings for slide shows on wide cards */ /* see https://www.smashingmagazine.com/2012/04/pure-css3-cycling-slideshow/ */ .wcard { display: flex; flex-flow: wrap; column-gap: calc(var(--pico-nav-element-spacing-horizontal) * 2); .wcard-gallery { flex: 1 0 calc((100% - (2 * var(--pico-nav-element-spacing-horizontal))) * 0.618); min-width: 300px; } .wcard-title { flex: 1 0 calc((100% - (2 * var(--pico-nav-element-spacing-horizontal))) * 0.382); min-width: 185px; display: flex; justify-content: center; align-items: center; } } .wcard-gallery { height: var(--tr-card-height); position: relative; overflow: visible; .wcard-gallery-mask { height: var(--tr-card-height); overflow: hidden; } ul { margin: 0; padding: 0; position: relative; } li.wcard-image { position: absolute; list-style: none; height: var(--tr-card-height); width: 100%; animation: image-slide 20s ease-in-out infinite; left: -100%; opacity: 0; a { display: block; position: absolute; overflow-y: visible; height: 100%; width: 100%; } img { bottom: 0%; width: 100%; position: relative; } .wcard-tooltip { background: rgba(0, 0, 0, 0.7); max-width: 80%; position: absolute; top: 20px; left: 20px; transition: top 0.3s ease-in-out; opacity: 0; p { color: var(--pico-tooltip-color); font-size: var(--pico-font-size); padding: var(--pico-nav-element-spacing-horizontal); margin: 0; } } } li.wcard-image:hover .wcard-tooltip { opacity: 1; } } @keyframes image-slide { 0%, 31% { left: -100%; opacity: 0; } 5%, 25% { left: 0px; opacity: 1; } 30% { left: 100%; opacity: 0; } } #leave-empty { display: none; } img.impr { height: 1.2lh; } .main-footer { font-size: calc(var(--pico-font-size) * .7); a { color: var(--pico-text-color); } } .muted { --pico-color: var(--pico-muted-color); } .heart { color: red; } /* .article-footer { margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1); margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1); }*/