html {
font-size: 1.2rem;
box-sizing: border-box;
scrollbar-gutter: stable both-edges;
--hue: 60;
--accent-hue: 20;
--invert-percent: 0;
--background: hsl(var(--hue), 17%, 98%);
--active-color-normal: hsl(var(--accent-hue), 10.94%, 95.67%);
--border-color-normal: hsl(var(--accent-hue), 6.88%, 37.06%);
--text-color-normal: hsl(var(--hue), 0%, 0%);
--secondary-color-normal: hsl(var(--hue), 0%, 10%);
--accent-color-normal: hsl(21, 78.65%, 34.9%);
color: var(--text-color-normal);
}
html[data-theme='dark'] {
--hue: 0;
--accent-hue: 20;
--invert-percent: 100;
--background: hsl(var(--accent-hue), 27%, 10%);
--active-color-normal: hsl(var(--accent-hue), 15.46%, 19.02%);
--border-color-normal: hsl(var(--accent-hue), 6.88%, 37.06%);
--text-color-normal: hsl(var(--hue), 100%, 100%);
--secondary-color-normal: hsl(var(--hue), 0%, 90%);
--accent-color-normal: hsl(var(--accent-hue), 78.65%, 34.9%);
}
html.color-theme-in-transition,
html.color-theme-in-transition *,
html.color-theme-in-transition *:before,
html.color-theme-in-transition *:after {
transition: all 750ms !important;
transition-delay: 0 !important;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
* {
margin: 0;
padding: 0;
border: 0;
font-family: Helvetica, Arial, sans-serif;
}
a {
color: var(--text-color-normal);
}
body {
max-width: 55rem;
margin-inline: auto;
margin-block: 0.5rem 2rem;
padding-inline: 1rem;
background-color: var(--background);
}
/* Post List */
.post-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
gap: 2rem;
margin-block: 2rem;
width: 100%;
}
.post-list article {
background-color: var(--active-color-normal);
border-bottom: 2px solid var(--accent-color-normal);
border-radius: 0.5rem;
padding: 1rem;
display: flex;
flex-direction: column;
height: 100%;
overflow-wrap: break-word;
word-break: break-all;
min-width: 0;
overflow: hidden;
}
.post-list article img {
width: 100%;
height: 12rem;
object-fit: cover;
border-radius: 0.25rem;
margin-bottom: 0.75rem;
}
.post-list article h2 {
font-size: 1.25rem;
margin-bottom: 0.5rem;
overflow-wrap: break-word;
word-break: normal;
}
.post-list .date-and-tags {
display: flex;
}
.post-list article p {
overflow-wrap: break-word;
word-break: normal;
}
.post-list article p.date, .post-list article .tags {
font-size: 0.9rem;
color: var(--secondary-color-normal);
margin-bottom: 0.5rem;
}
.post-list article .tags {
font-style: italic;
margin-left: 0.5rem;
}
/* prevent .post-list from overflowing on very narrow viewports */
@media screen and (max-width: 25rem) {
.post-list {
grid-template-columns: 1fr;
}
}
/* Images */
img {
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
/* Article */
@media screen and (max-width: 50rem) {
article.post {
padding-inline: 1rem;
}
}
article.post {
margin-block: 2rem;
}
.frontmatter {
display: flex;
flex-direction: column;
gap: 0.5rem
}
.frontmatter p {
font-style: italic;
}
.tags {
display: flex;
align-items: center;
gap: 0.5rem; /* space between label and list */
}
.tags ul {
display: flex;
gap: 0.5rem;
list-style: none;
padding: 0;
margin: 0;
}
.post-content {
line-height: 1.6;
margin-block: 1rem;
}
.post-content p,
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
margin-block: 0.5rem;
}
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
margin-top: 2rem;
}
.post-content img {
display: block;
max-width: 100%;
height: auto;
margin-block: 1rem;
}
.post-content img.float-left {
float: right;
max-width: 40%;
margin: 0 1rem 1rem 0;
}
.post-content img.float-right {
float: right;
max-width: 40%;
margin: 0 0 1rem 1rem;
}
.post-content .emphasised {
font-size: 1.5rem;
font-weight: bold;
}
.post-content h1, .frontmatter h1 {
font-size: 2rem;
}
.post-content a {
color: var(--text-color-normal);
}
/* clearfix */
.post-content::after {
content: "";
display: table;
clear: both;
}
/* disable floats on narrow screens */
@media screen and (max-width: 50rem) {
.post-content img.float-left,
.post-content img.float-right {
float: none;
width: 100%;
margin: 1rem 0;
}
}
/* Nav header */
.header {
margin-top: 2rem;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-column-gap: 15px;
grid-row-gap: 10px;
grid-column: 2/2;
margin-bottom: 1rem;
}
.header_content {
display: flex;
align-items: center;
gap: 0rem;
}
.header_name {
float: left;
padding: 0.6rem;
border-bottom: 3px solid var(--accent-color-normal);
margin-right: 0rem;
text-decoration: none;
}
.header_name h1 {
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 0.1rem;
font-weight: bold;
margin:0;
}
/* stacked-alpha-video {
display: inline-block;
} */
stacked-alpha-video video {
display: none;
}
.is-hidden { opacity:0 !important; pointer-events:none; }
.fox-player { position: relative; width: var(--size, 80px); }
.ratio-1x1::before { content: ""; display: block; } /* square */
.fox-player > * { position: absolute; inset: 0; width: 100%; height: 100%; }
.fox-thumb { all:unset; cursor:pointer; display:block; z-index:2; }
.fox-thumb img { width:100%; height:100%; display:block; object-fit:cover; }
.nav {
padding-top: 1rem;
grid-column: 3/3;
display: flex;
justify-content: flex-end;
align-items: center;
}
.nav ul {
list-style: none;
display: flex;
gap: 1rem;
margin: 0;
padding: 0;
}
.nav ul li a {
text-decoration: none;
-webkit-text-decoration: none;
padding: 0.5rem 1rem;
transition: color 0.1s ease-in, background-color 0.1s ease-in;
text-transform: uppercase;
}
.nav ul li.current a {
font-weight: bold;
}
.nav ul li a:hover {
text-decoration: underline;
}
.nav ul li.current a:hover {
text-decoration: none;
}
.nav button {
background-color: var(--background);
color: var(--text-color-normal);
}
@media screen and (max-width: 50rem) {
.header {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto auto;
margin-top: 1rem;
}
.header_content {
grid-column: 1;
grid-row: 1;
}
.nav {
grid-column: 1;
grid-row: 2;
justify-content: flex-start;
padding-inline: 1rem;
}
.nav ul li a {
text-decoration: underline;
padding: 0;
}
}
/* Footer */
.footer {
margin-top: 1rem;
margin-bottom: 2rem;
border-top: 2pt solid var(--accent-color-normal);
}
.footer_content {
padding: 0.5em 0;
display: flex;
justify-content: space-between;
align-items: center;
}
.footer_content p {
margin: 0;
font-size: 0.8rem;
flex: 1;
line-height: 1;
}
p.footer_center {
text-align: center;
}
p.footer_left {
text-align: left;
}
p.footer_right {
text-align: right;
}
.footer_center svg {
vertical-align: middle;
width: 1em;
height: 1em;
}
.footer_right .footer_logo {
width: 1.2em;
vertical-align: middle;
}