2026-02-10 22:25:44 +01:00
|
|
|
/* RESET */
|
|
|
|
|
* { box-sizing: border-box; margin-bottom: 0 }
|
|
|
|
|
|
|
|
|
|
/* VARIABLES */
|
2025-11-27 21:29:35 +01:00
|
|
|
:root {
|
|
|
|
|
--color-text: oklch(20% 0 0);
|
|
|
|
|
--color-background: oklch(98% 0 0);
|
|
|
|
|
--color-accent: oklch(50% 0.15 250);
|
|
|
|
|
--color-border: oklch(85% 0 0);
|
|
|
|
|
--color-muted: oklch(50% 0 0);
|
2026-01-14 14:40:44 +01:00
|
|
|
|
2025-11-27 21:29:35 +01:00
|
|
|
--space-xs: 0.5rem;
|
|
|
|
|
--space-s: 1rem;
|
|
|
|
|
--space-m: 2rem;
|
|
|
|
|
--space-l: 4rem;
|
2026-01-14 14:40:44 +01:00
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
--size-content: 42rem;
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* GLOBAL */
|
2025-11-27 21:29:35 +01:00
|
|
|
html {
|
|
|
|
|
font-family: system-ui, sans-serif;
|
2026-02-10 22:25:44 +01:00
|
|
|
font-size: clamp(16px, 2.3vw, 20px);
|
2025-11-27 21:29:35 +01:00
|
|
|
line-height: 1.6;
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
background: var(--color-background);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
margin: 0;
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-rows: auto 1fr auto;
|
|
|
|
|
min-height: 100vh;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* CONTENT CENTERING */
|
|
|
|
|
.contain, :where(main > article, main > section, main > div) {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: minmax(var(--space-s), 1fr) minmax(0, var(--size-content)) minmax(var(--space-s), 1fr);
|
|
|
|
|
& > * { grid-column: 2 }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* TYPOGRAPHY */
|
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
line-height: 1.3;
|
|
|
|
|
margin-top: 1.3em;
|
|
|
|
|
text-wrap: pretty;
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
2026-02-10 22:25:44 +01:00
|
|
|
h1 { font-size: 2.3rem }
|
|
|
|
|
h4 { font-weight: 700 }
|
|
|
|
|
|
|
|
|
|
p, ul, ol, dl { margin-block: 1em }
|
2025-11-27 21:29:35 +01:00
|
|
|
|
|
|
|
|
a {
|
|
|
|
|
color: var(--color-accent);
|
2026-02-10 22:25:44 +01:00
|
|
|
text-decoration: none;
|
|
|
|
|
&:hover { text-decoration: underline }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
img { max-width: 100%; height: auto; display: block }
|
2025-11-27 21:29:35 +01:00
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* HEADER */
|
2025-11-27 21:29:35 +01:00
|
|
|
header {
|
2026-02-10 22:25:44 +01:00
|
|
|
border-bottom: 1px solid var(--color-border);
|
|
|
|
|
|
|
|
|
|
& > div {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
gap: var(--space-s);
|
|
|
|
|
align-items: center;
|
|
|
|
|
padding-block: var(--space-s);
|
|
|
|
|
}
|
2026-01-14 14:40:44 +01:00
|
|
|
|
2025-11-27 21:29:35 +01:00
|
|
|
& nav {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: var(--space-s);
|
|
|
|
|
flex-wrap: wrap;
|
2026-02-10 22:25:44 +01:00
|
|
|
align-items: center;
|
2026-01-14 14:40:44 +01:00
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
&:first-child { flex: 1 }
|
2026-01-14 14:40:44 +01:00
|
|
|
|
2025-11-27 21:29:35 +01:00
|
|
|
& a {
|
|
|
|
|
text-decoration: none;
|
2026-02-10 22:25:44 +01:00
|
|
|
&:hover { text-decoration: underline }
|
|
|
|
|
&[aria-current] { font-weight: bold }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* MAIN */
|
|
|
|
|
main { padding-block: var(--space-m) }
|
2025-11-27 21:29:35 +01:00
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* FOOTER */
|
2025-11-27 21:29:35 +01:00
|
|
|
footer {
|
2026-02-10 22:25:44 +01:00
|
|
|
border-top: 1px solid var(--color-border);
|
2025-11-27 21:29:35 +01:00
|
|
|
padding-block: var(--space-s);
|
|
|
|
|
font-size: 0.875rem;
|
|
|
|
|
color: var(--color-muted);
|
2026-02-10 22:25:44 +01:00
|
|
|
& p { margin: 0 }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* CODE */
|
2025-11-27 21:29:35 +01:00
|
|
|
code {
|
2026-02-10 22:25:44 +01:00
|
|
|
background: oklch(95% 0.02 250);
|
2025-11-27 21:29:35 +01:00
|
|
|
padding: 0.125em 0.25em;
|
|
|
|
|
border-radius: 0.25em;
|
|
|
|
|
font-size: 0.9em;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pre {
|
2026-02-10 22:25:44 +01:00
|
|
|
background: oklch(95% 0.02 250);
|
2025-11-27 21:29:35 +01:00
|
|
|
padding: var(--space-s);
|
|
|
|
|
border-radius: 0.5em;
|
|
|
|
|
overflow-x: auto;
|
2026-02-10 22:25:44 +01:00
|
|
|
& code { background: none; padding: 0 }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* TABLES */
|
|
|
|
|
table { border-collapse: collapse; width: 100%; margin-block: var(--space-s) }
|
|
|
|
|
th, td { padding: var(--space-xs); text-align: start; border-bottom: 1px solid var(--color-border) }
|
|
|
|
|
th { font-weight: bold }
|
2025-11-27 21:29:35 +01:00
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* BLOCKQUOTES */
|
2025-11-27 21:29:35 +01:00
|
|
|
blockquote {
|
|
|
|
|
margin-inline: 0;
|
|
|
|
|
padding-inline-start: var(--space-s);
|
|
|
|
|
border-inline-start: 4px solid var(--color-accent);
|
|
|
|
|
color: var(--color-muted);
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-10 22:25:44 +01:00
|
|
|
/* ARTICLE */
|
|
|
|
|
article time { color: var(--color-muted); font-size: 0.875rem }
|
|
|
|
|
|
|
|
|
|
/* LIST VIEWS */
|
|
|
|
|
.list-item {
|
|
|
|
|
margin-bottom: var(--space-m);
|
|
|
|
|
& img { margin-bottom: var(--space-xs) }
|
|
|
|
|
& h2 { margin-top: 0 }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.grid {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
|
|
|
|
|
gap: var(--space-m);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.card {
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
border-radius: 0.5rem;
|
|
|
|
|
padding: var(--space-s);
|
|
|
|
|
& img { margin-bottom: var(--space-xs); border-radius: 0.25rem }
|
|
|
|
|
& h3 { margin-top: 0 }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.compact-list {
|
|
|
|
|
list-style: none;
|
|
|
|
|
padding: 0;
|
|
|
|
|
& li { border-bottom: 1px solid var(--color-border); padding-block: var(--space-xs) }
|
|
|
|
|
& a {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: baseline;
|
|
|
|
|
gap: var(--space-s);
|
|
|
|
|
&:hover strong { text-decoration: underline }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|
2026-02-10 22:25:44 +01:00
|
|
|
& time { white-space: nowrap; font-size: 0.875rem }
|
|
|
|
|
& p { margin-top: var(--space-xs); color: var(--color-muted); font-size: 0.9rem }
|
2025-11-27 21:29:35 +01:00
|
|
|
}
|