forskjeller.naiv.no/public/index.html
Ole-Morten Duesund 6c156ce2ab Bruk standard Plausible-stier for analytics-proxy
Erstatter /implausibly/js/pa-*.js med /js/script.js og
/implausibly/api/event med /api/event på alle sider.
Caddy-snippeten håndterer omskriving server-side.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 12:07:49 +01:00

254 lines
7.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="nb">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Forskjeller — interaktive visualiseringer</title>
<meta property="og:type" content="website">
<meta property="og:locale" content="nb_NO">
<meta property="og:site_name" content="Forskjeller">
<meta property="og:title" content="Forskjeller">
<meta property="og:description" content="Interaktive visualiseringer som viser hvordan små forskjeller vokser over tid.">
<meta property="og:url" content="https://forskjeller.naiv.no/">
<meta name="twitter:card" content="summary">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,600;1,9..144,300&family=DM+Sans:wght@300;400;500&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #f5f2eb;
--ink: #1a1714;
--ink2: #5a5650;
--ink3: #8a857e;
--accent: #c0392b;
--border: rgba(26,23,20,0.12);
}
body {
font-family: 'DM Sans', sans-serif;
background: var(--bg);
color: var(--ink);
min-height: 100vh;
display: flex;
flex-direction: column;
}
header {
background: var(--ink);
color: var(--bg);
padding: 3.5rem 2rem 3rem;
text-align: center;
position: relative;
overflow: hidden;
}
header::before {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(
-45deg,
transparent,
transparent 40px,
rgba(255,255,255,0.02) 40px,
rgba(255,255,255,0.02) 41px
);
}
header .eyebrow {
font-size: 11px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: rgba(245,242,235,0.5);
margin-bottom: 1rem;
font-weight: 400;
}
header h1 {
font-family: 'Fraunces', serif;
font-size: clamp(2.2rem, 6vw, 3.5rem);
font-weight: 600;
line-height: 1.1;
margin-bottom: 1rem;
position: relative;
}
header p.lead {
font-size: clamp(0.95rem, 2vw, 1.1rem);
color: rgba(245,242,235,0.65);
max-width: 520px;
margin: 0 auto;
font-weight: 300;
line-height: 1.7;
}
main {
max-width: 720px;
margin: 0 auto;
padding: 2.5rem 1.25rem 4rem;
flex: 1;
}
.topic-group {
margin-bottom: 2.25rem;
}
.group-heading {
font-family: 'Fraunces', serif;
font-size: 0.8rem;
font-weight: 300;
text-transform: uppercase;
letter-spacing: 0.14em;
color: var(--ink3);
margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid var(--border);
}
.topic-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.75rem;
}
@media (max-width: 560px) {
.topic-grid { grid-template-columns: 1fr; }
}
.topic-card {
display: flex;
flex-direction: column;
background: #fff;
border: 1px solid var(--border);
border-radius: 8px;
padding: 1.25rem 1.4rem;
text-decoration: none;
color: var(--ink);
transition: border-color 0.15s, box-shadow 0.15s;
}
.topic-card:hover {
border-color: var(--accent);
box-shadow: 0 2px 12px rgba(192,57,43,0.08);
}
.topic-card h2 {
font-family: 'Fraunces', serif;
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 0.35rem;
}
.topic-card p {
font-size: 0.88rem;
color: var(--ink2);
line-height: 1.55;
flex: 1;
}
.topic-card .arrow {
display: inline-block;
color: var(--accent);
font-size: 0.8rem;
margin-top: 0.6rem;
font-weight: 500;
letter-spacing: 0.02em;
}
.topic-card .tag {
display: inline-block;
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--ink3);
background: var(--bg);
border: 1px solid var(--border);
border-radius: 3px;
padding: 0.15rem 0.4rem;
margin-bottom: 0.5rem;
align-self: flex-start;
}
footer {
text-align: center;
padding: 2rem 1rem;
font-size: 12px;
color: var(--ink3);
border-top: 1px solid var(--border);
}
footer a { color: var(--ink3); }
</style>
<!-- Privacy-friendly analytics by Plausible -->
<script async src="/js/script.js"></script>
<script>
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
plausible.init({ endpoint: "/api/event" })
</script>
</head>
<body>
<header>
<p class="eyebrow">forskjeller.naiv.no</p>
<h1>Forskjeller</h1>
<p class="lead">Interaktive visualiseringer som viser hvordan tilsynelatende små forskjeller vokser over tid.</p>
</header>
<main>
<section class="topic-group">
<h2 class="group-heading">Lønn &amp; arbeid</h2>
<div class="topic-grid">
<a href="lonn/" class="topic-card">
<span class="tag">Kalkulator</span>
<h2>Lønnsforskjellen vokser</h2>
<p>Prosentvise tillegg ser rettferdige ut, men en liten forskjell i startlønn blir til hundretusener over en karriere.</p>
<span class="arrow">Se kalkulatoren &rarr;</span>
</a>
<a href="lonnsutvikling/" class="topic-card">
<span class="tag">SSB-data</span>
<h2>Dobbel ulikhet i lønn</h2>
<p>Direktørene fikk 3× flere kroner i lønnsvekst enn renholdere — og høyere prosentvekst. SSB-tall 20162025.</p>
<span class="arrow">Se visualiseringen &rarr;</span>
</a>
</div>
</section>
<section class="topic-group">
<h2 class="group-heading">Bolig</h2>
<div class="topic-grid">
<a href="bolig/" class="topic-card">
<span class="tag">Kalkulator</span>
<h2>Boligforskjellen forsterkes</h2>
<p>To boliger stiger like mye i prosent — men belåningen forsterker gapet i egenkapital dramatisk.</p>
<span class="arrow">Se kalkulatoren &rarr;</span>
</a>
<a href="boligeierskap/" class="topic-card">
<span class="tag">SSB-data</span>
<h2>Hvem eier boligen din?</h2>
<p>Bare 1 av 3 eier fritt. 38 % deler med banken, 28 % leier. Unge aleneboende? 2 av 3 leier.</p>
<span class="arrow">Se visualiseringen &rarr;</span>
</a>
<a href="boutgifter/" class="topic-card">
<span class="tag">SSB-data</span>
<h2>Det er dyrt å være fattig</h2>
<p>41 % av de fattigste bruker over 40 % av inntekten på bolig. Blant de rikeste: 7 %. SSB-data 20152024.</p>
<span class="arrow">Se visualiseringen &rarr;</span>
</a>
</div>
</section>
<section class="topic-group">
<h2 class="group-heading">Sparing &amp; arv</h2>
<div class="topic-grid">
<a href="sparing/" class="topic-card">
<span class="tag">Kalkulator</span>
<h2>Rentes rente forsterker</h2>
<p>Likt sparebeløp, ulik avkastning. Noen få prosentpoeng i forskjell skaper enorme gap over tid.</p>
<span class="arrow">Se kalkulatoren &rarr;</span>
</a>
<a href="arv/" class="topic-card">
<span class="tag">Kalkulator</span>
<h2>Arvens forsprang</h2>
<p>Person A starter fra null, person B arver. Begge sparer likt — men gapet lukkes aldri.</p>
<span class="arrow">Se kalkulatoren &rarr;</span>
</a>
</div>
</section>
</main>
<footer>
Tallene er illustrative og ikke finansiell rådgivning · <a href="https://kode.naiv.no/olemd/forskjeller.naiv.no">Kildekode</a>
</footer>
</body>
</html>