/* * Additional fonts */ /* LinBiolinum is sans-serif; see linuxlibertine.org */ @font-face { font-family: "LinBiolinum"; src: url("../fonts/LinLibertine/LinBiolinum_R.otf") format("opentype"); } @font-face { font-family: "LinBiolinum"; font-weight: bold; src: url("../fonts/LinLibertine/LinBiolinum_RB.otf") format("opentype"); } @font-face { font-family: "LinBiolinum"; font-style: italic; src: url("../fonts/LinLibertine/LinBiolinum_RI.otf") format("opentype"); } /* * Modified Pico settings (standard Pico) */ :root { --pico-font-family-sans-serif: LinBiolinum, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif, var(--pico-font-family-emoji); --bg-gradient-light: linear-gradient(to right, #FCEFD9, white, #FCEFD9); --bg-gradient-dark: linear-gradient(to right, #4D3700, black, #4D3700); } a { --pico-text-decoration: none; } /* * Override breakpoint settings for hamburger menu (overrides 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; } } /* * Settings specific to breakpoints */ @media (min-width: 576px) { .card { max-width: calc(50% - var(--pico-block-spacing-horizontal) / 2); } } @media (min-width: 1024px) { .card { max-width: calc(33% - var(--pico-block-spacing-horizontal) * 2 / 3); } } @media (min-width: 1280px) { .container { max-width: 1170px; } } @media screen and (min-width: 1536px) { .card { max-width: calc(25% - var(--pico-block-spacing-horizontal) * 3 / 4); } .container { max-width: 1280px; } } /* * Light/Dark mode settings */ /* Light color scheme (Default) */ /* Can be forced with data-theme="light" */ [data-theme="light"], :root:not([data-theme="dark"]) { #sun-moon:not(:checked)::before { background-color: var(--pico-color); } #sun-moon:not([aria-invalid]) { border-color: var(--pico-primary); } } /* Dark color scheme (Auto) */ /* Automatically enabled if user has Dark mode enabled */ @media only screen and (prefers-color-scheme: dark) { :root:not([data-theme]) { #jumbotron-title { border-bottom: thin solid white; } #main-header h1, #site-footer p { background: var(--bg-gradient-dark); } } } /* Dark color scheme (Forced) */ /* Enabled if forced with data-theme="dark" */ [data-theme="dark"] { #jumbotron-title { border-bottom: thin solid white; } #main-header h1, #site-footer p { background: var(--bg-gradient-dark); } } /* * Specific elements on the page */ /* Jumbotron */ #jumbotron-title { border-bottom: thin solid black; h1 { font-size: 3rem; font-weight: 500; margin-bottom: calc(var(--pico-spacing) * 0.5); a { color: var(--pico-h1-color); } } } #jumbotron-subtitle h2 { font-size: 2.1rem; font-weight: 500; margin-top: calc(var(--pico-spacing) * 0.5); } /* Navbar */ #site-navbar { ul { /* box-shadow: var(--pico-card-box-shadow); */ margin-left: 0; margin-right: 0; li:last-child { padding-right: 0; } } a { font-size: calc(var(--pico-font-size) * 0.9); font-weight: bold; text-align: right; } } #hamburger-label { font-size: calc(var(--pico-font-size) * 2); } #sun-moon { background-color: var(--pico-primary); } #sun-moon-label { margin-left: auto; margin-right: 0; } /* Main content */ #main-header h1, #site-footer p { background: var(--bg-gradient-light); 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; } .cards { display: flex; flex-flow: row wrap; list-style-type: none; padding-left: inherit; justify-content: space-between; /* column-gap: var(--pico-block-spacing-horizontal); */ } .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); } .article-header { flex: 0 0 3.5lh; margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1); margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1); h3 { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; margin-bottom: auto; } } .article-body { text-align: center; img { height: 270px; } } .article-footer { margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1); margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1); }