Files
internetforkids/assets/css/custom.css
Christian Gick b517af5c2f
All checks were successful
Deploy Internet for Kids / Build & Push (push) Successful in 13s
Deploy Internet for Kids / Deploy (push) Successful in 6s
Deploy Internet for Kids / Health Check (push) Successful in 2s
Deploy Internet for Kids / Smoke Tests (push) Successful in 3s
Deploy Internet for Kids / IndexNow Ping (push) Successful in 7s
Deploy Internet for Kids / Promote to Latest (push) Successful in 2s
Deploy Internet for Kids / Rollback (push) Has been skipped
Deploy Internet for Kids / Audit (push) Successful in 2s
feat: self-host Newsreader font, remove Google Fonts CDN
Local woff2 files for latin + latin-ext (DE/FR support).
No external font requests for privacy/GDPR compliance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:07:32 +03:00

202 lines
5.3 KiB
CSS

/* Internet for Kids — Newsreader typography (darioamodei.com-inspired)
Warm, literary, research-publication feel */
/* Local Newsreader font — latin */
@font-face {
font-family: 'Newsreader';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(/fonts/newsreader/newsreader-latin.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext (DE umlauts, FR accents) */
@font-face {
font-family: 'Newsreader';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(/fonts/newsreader/newsreader-latin-ext.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* italic latin */
@font-face {
font-family: 'Newsreader';
font-style: italic;
font-weight: 400 500;
font-display: swap;
src: url(/fonts/newsreader/newsreader-italic-latin.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* italic latin-ext */
@font-face {
font-family: 'Newsreader';
font-style: italic;
font-weight: 400 500;
font-display: swap;
src: url(/fonts/newsreader/newsreader-italic-latin-ext.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
--ifk-font: 'Newsreader', 'Times New Roman', serif;
--ifk-text: #1c1917;
--ifk-bg: #fafaf9;
--ifk-accent: #4d7c0f;
--ifk-accent-hover: #3f6212;
--ifk-secondary: #059669;
}
/* Global background */
body {
background-color: var(--ifk-bg) !important;
color: var(--ifk-text) !important;
}
/* Override Congo's dark bg classes */
.bg-neutral {
background-color: var(--ifk-bg) !important;
}
/* All text in Newsreader */
body, p, li, td, th, blockquote, figcaption {
font-family: var(--ifk-font) !important;
font-size: 20px;
line-height: 32px;
color: var(--ifk-text);
}
/* Headings */
h1, h2, h3, h4, h5, h6 {
font-family: var(--ifk-font) !important;
color: var(--ifk-text);
font-weight: 600;
}
h1, .article-title {
font-size: 2rem;
line-height: 1.15;
font-weight: 600;
margin-bottom: 1.5rem;
}
h2 {
font-size: 1.5rem;
line-height: 1.3;
margin-top: 2.5rem;
margin-bottom: 1rem;
}
h3 {
font-size: 1.25rem;
line-height: 1.35;
margin-top: 2rem;
}
/* Article content — constrain width for readability */
article .prose,
article .content,
.article-content {
max-width: 800px;
}
/* Paragraphs */
article p {
margin-bottom: 1.5rem;
}
/* Links — subtle, Amodei-style */
article a {
color: var(--ifk-accent);
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 2px;
}
article a:hover {
color: var(--ifk-accent-hover);
text-decoration-thickness: 2px;
}
/* Blockquotes — elegant left-border */
blockquote {
font-family: var(--ifk-font) !important;
font-style: italic;
font-size: 20px;
line-height: 32px;
border-left: 3px solid var(--ifk-secondary);
padding-left: 1.5rem;
margin: 2rem 0;
color: var(--ifk-text);
opacity: 0.85;
}
/* Navigation — keep sans-serif for UI elements */
nav, nav a, nav span,
header, header a,
footer, footer a, footer span,
.breadcrumbs, .taxonomy-list,
.article-meta, .post-meta,
time, .reading-time {
font-family: system-ui, -apple-system, 'Segoe UI', sans-serif !important;
font-size: 0.875rem;
}
/* Header title */
header a[href="/"] span,
header a[rel="me"] {
font-family: var(--ifk-font) !important;
font-size: 1.1rem;
font-weight: 500;
}
/* Tags/categories — small sans pills */
.taxonomy-term, [href*="/tags/"], [href*="/categories/"] {
font-family: system-ui, -apple-system, sans-serif !important;
font-size: 0.75rem !important;
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* Table of contents — smaller sans */
#TableOfContents, #TableOfContents a {
font-family: system-ui, -apple-system, sans-serif !important;
font-size: 0.85rem !important;
line-height: 1.6;
}
/* Homepage recent articles */
.summary {
font-family: var(--ifk-font) !important;
font-size: 18px;
line-height: 28px;
}
/* Data tables in articles — keep readable */
.csm-table, .csm-table td, .csm-table th {
font-family: var(--ifk-font) !important;
font-size: 16px;
line-height: 1.5;
}
/* Stats banner — override with sans for numbers */
.ifk-stat-num {
font-family: var(--ifk-font) !important;
}
.ifk-stat-label {
font-family: system-ui, -apple-system, sans-serif !important;
}
/* Chart labels keep sans */
.ifk-chart-card h4 {
font-family: system-ui, -apple-system, sans-serif !important;
}
/* Smooth dark mode override (if ever enabled) */
/* Status badges keep their blue palette */
.csm-enforced { background: var(--ifk-accent) !important; }
.csm-passed { background: var(--ifk-secondary) !important; }
.csm-progress { background: #86efac !important; color: #14532d !important; }
.csm-guidelines { background: #d1fae5 !important; color: #065f46 !important; }