/*
 * nullpunkt2011.ch — hand-written stylesheet.
 *
 * Rewritten from the 2011 original by Dominik Ogilvie / Avant La Lettre: same typography,
 * same vermilion accent, same independently scrolling column system. Modernised — no vendor
 * prefixes, grid instead of floats — and with one deliberate addition: below 48em the columns
 * collapse into a single normally scrolling page. The original set `overflow-y: hidden` on
 * `html` and was desktop-only; keeping that verbatim would make the archive unusable on a
 * phone.
 */

:root {
	--accent: #f20;
	--accent-hover: #e91d00;
	--ink: #000;
	--ink-soft: #333;
	--rule: #555;
	--paper: #fff;
	--serif: Times, 'Times New Roman', serif;
	--column-top: 172px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font: 16px/1.4 var(--serif);
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
p,
ul,
ol,
dl,
dd,
figure,
blockquote {
	margin: 0;
}

a {
	color: var(--accent);
	text-decoration: none;
}

a:hover,
a:focus {
	color: var(--accent-hover);
	text-decoration: underline;
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

img {
	max-width: 100%;
	height: auto;
}

i {
	font-style: italic;
}

small,
.small,
aside,
dd {
	font-size: 13px;
}

strong,
b {
	font-weight: 700;
}

time {
	font-family: Georgia, serif;
	font-size: 0.96em;
}

hr {
	height: 1px;
	margin: 1em 0;
	border: 0;
	border-top: 1px solid #ccc;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 300;
	padding: 0.5rem 0.75rem;
	background: var(--paper);
	font-size: 14px;
}

.skip-link:focus {
	left: 0;
}

/* --- masthead ----------------------------------------------------------- */

.site-header {
	width: 540px;
	margin: 0 auto;
	padding-top: 10px;
	background: var(--paper);
}

.site-title {
	font-size: inherit;
	font-weight: inherit;
}

.wordmark {
	display: block;
	color: var(--ink);
}

.wordmark:hover,
.wordmark:focus {
	color: var(--ink);
	text-decoration: none;
}

.wordmark .name,
.site-header nav a {
	display: block;
	width: 300px;
	margin: 0 auto;
	border-bottom: 1px solid var(--accent);
	text-align: center;
}

.wordmark .name {
	height: 30px;
	line-height: 28px;
	font-size: 16px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
}

.wordmark .silben {
	display: block;
	width: 300px;
	height: 40px;
	margin: 0 auto;
	border-bottom: 1px solid var(--accent);
	font-size: 21px;
	font-weight: 700;
	line-height: 40px;
	letter-spacing: 1px;
	text-align: center;
}

/* The syllable rules that give MA·GA·ZIN its look. */
.silben span {
	margin-right: 0.3em;
	padding-right: 0.2em;
	border-right: 0.12em solid #999;
}

.wordmark:hover .silben span,
.wordmark:focus .silben span {
	border-color: #f48e80;
}

.site-header nav ul {
	padding: 0;
	list-style: none;
}

.site-header nav a {
	padding: 2px 0 0;
	font-size: 14px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.site-header nav a i {
	letter-spacing: 0;
	text-transform: none;
}

.site-header nav a[aria-current='page'] {
	color: var(--accent);
}

/* --- corner icons ------------------------------------------------------- */

#verweise {
	position: fixed;
	top: 40px;
	left: 2%;
	z-index: 200;
	margin: 0;
	padding: 0;
	list-style: none;
}

#verweise li {
	display: inline;
}

#verweise img {
	width: 46px;
	height: 56px;
}

/* --- the column system -------------------------------------------------- */

.scrollspalten {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	position: absolute;
	inset: var(--column-top) 0 0;
	width: 100%;
}

.scrollspalten > * {
	height: 100%;
	padding: 0 0 2rem;
	border-right: 1px solid var(--ink);
	overflow-x: hidden;
	overflow-y: auto;
}

.scrollspalten > *:last-child {
	border-right: 0;
}

.scrollspalten div > *,
.scrollspalten article > * {
	width: 88%;
	margin-left: 20px;
	text-align: left;
}

/* Column titles sit in the gutter above their column. */
.spaltentitel {
	margin: 0 0 12px 8px;
	padding: 0 0 0.8em 1em;
	background: url('/assets/grafik/spaltentitel.png') no-repeat 3px -8px;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--ink);
}

.scrollspalten h2,
.ticker * {
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
}

.scrollspalten article p {
	text-indent: 32px;
	font-weight: 700;
	line-height: 1.2;
}

.scrollspalten article h3 + p,
.scrollspalten article p.aside {
	text-indent: 0;
}

article h3 {
	margin: 0.8em 0 0;
	font-weight: 700;
	text-transform: uppercase;
}

article strong {
	border-bottom: 1px solid #444;
}

article p.aside {
	font-style: italic;
	font-weight: 400;
}

blockquote p {
	margin-left: 32px;
	text-indent: 0 !important;
}

/* --- single-article layout ---------------------------------------------- */

#scroll-1er {
	grid-auto-flow: row;
	grid-auto-columns: auto;
}

#scroll-1er > * {
	border-right: 0;
}

#scroll-1er article {
	display: grid;
	grid-template-columns: 45% 1fr;
	gap: 0 3%;
	align-items: start;
	width: 100%;
	margin: 0;
	padding: 0 2%;
}

#portraitbild {
	padding-top: 42px;
}

#portrait {
	width: 88%;
	margin: 0 6%;
	padding-bottom: 1.5em;
}

#schrift {
	padding-top: 42px;
}

#schrift h1 {
	position: absolute;
	left: -9999px;
}

#bildspalte {
	padding-top: 42px;
	font-size: 13px;
	line-height: 1.5;
	counter-reset: chapter;
}

#bildspalte a {
	display: inline-block;
	width: 42%;
	margin: 0 0 20px 6%;
}

#bildspalte img {
	width: 100%;
}

#bildspalte a::after {
	content: '[Abb. ' counter(chapter) ']';
	counter-increment: chapter;
}

#rubriktitel-1er {
	display: block;
	width: 712px;
	max-width: calc(100% - 2rem);
	margin: 18px auto;
	padding: 0 0 0.8em 1em;
	background: url('/assets/grafik/spaltentitel.png') no-repeat 3px -8px;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--ink-soft);
}

/* --- lists -------------------------------------------------------------- */

ul.artikel,
ul.addendum,
ul.liste-menschen {
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.artikel li,
ul.addendum li {
	clear: both;
	padding: 0.1em 0.2em 0.3em;
	border-top: 1px solid var(--rule);
	line-height: 18px;
	text-transform: uppercase;
}

ul.addendum {
	margin: 0.7em 0 1.4em;
}

ul.addendum li {
	font-weight: 400;
	text-transform: none;
}

ul.addendum li a:first-child {
	font-weight: 700;
}

ul.artikel li a,
.liste-abc dd a {
	color: var(--ink-soft);
}

li time {
	float: right;
	margin-bottom: 0.3em;
	color: var(--accent);
}

#fabrikate ul.artikel li {
	text-align: right;
}

#fabrikate ul.artikel li time {
	float: left;
	margin-right: 0.5em;
}

ul.liste-menschen > li {
	margin: 0.2em 0;
	padding: 0.2em 0 1em;
	border-top: 1px solid var(--accent);
	color: var(--accent);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.2;
	text-transform: uppercase;
}

ul.liste-menschen ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.liste-menschen ul li a {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: uppercase;
}

dl.liste-abc dt {
	padding: 0 0.2em;
	color: var(--accent);
}

.liste-abc dd + dt {
	margin-top: 1em;
}

.liste-abc dd {
	border-top: 1px solid var(--rule);
	color: var(--ink-soft);
	text-transform: uppercase;
}

dl.tags {
	margin-top: 1.5em;
}

.tags * {
	font-size: 14px;
	text-align: right;
	text-transform: uppercase;
}

.tags dd a {
	color: var(--accent);
}

.tags-12er {
	display: inline-block;
	padding: 5px 1em;
	border: 2px solid var(--ink-soft);
	color: var(--ink-soft);
	font-size: 14px;
	text-transform: uppercase;
	white-space: nowrap;
}

.ticker article {
	display: inline;
	margin: 0 0.2em 0 0;
}

.ticker * {
	display: inline;
}

p.menschen-keinbild a {
	display: block;
	width: 91%;
	padding: 5px 2px;
	border: 2px solid var(--ink-soft);
	color: var(--ink-soft);
	font-size: 14px;
	text-align: center;
	text-transform: uppercase;
}

ul.mediakit,
ul.flyer {
	width: 280px;
	margin: 0 auto;
	list-style: none;
}

ul.mediakit li a {
	display: block;
	width: 210px;
	min-height: 110px;
	padding-left: 94px;
	background: var(--paper) url('/assets/grafik/icon-pressemappe.png') no-repeat -6px -4px;
}

ul.flyer li a {
	min-height: 90px;
	background-image: url('/assets/grafik/icon-flyer.png');
	background-position: -6px -6px;
}

/* --- front page --------------------------------------------------------- */

#koordinaten {
	position: relative;
	width: 542px;
	max-width: 100%;
	margin: 0 auto;
	padding-top: 10px;
	background: var(--paper) url('/assets/grafik/koordinaten.png') no-repeat top center;
	box-shadow: 5px 8px 22px #555;
}

#koordinaten h1,
#koordinaten h2,
#koordinaten h3 {
	width: 300px;
	margin: 0 auto;
	border-bottom: 1px solid var(--accent);
	text-align: center;
}

#koordinaten h2,
#koordinaten b {
	font-family: Georgia, serif;
	font-size: 30px;
	font-weight: 400;
	letter-spacing: 0.12em;
}

#koordinaten h2 i {
	font-size: 21px;
	font-style: normal;
	text-transform: uppercase;
}

#koordinaten h3 {
	height: auto;
	padding-top: 0.5em;
	border-color: var(--ink);
	font-size: 13px;
	line-height: 24px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

#definition {
	width: 440px;
	max-width: 100%;
	margin-left: 24px;
	padding: 1.5em 0 1.5em 24px;
	font-size: 20px;
	line-height: 1.2;
	text-indent: -24px;
}

#links,
#rechts {
	font-size: 12px;
	line-height: 13.5px;
}

#koordinaten p {
	margin: 0 0 1em 24px;
	text-indent: -24px;
}

/* --- footer ------------------------------------------------------------- */

.site-footer {
	position: relative;
	z-index: 150;
	max-width: 540px;
	margin: 0 auto;
	padding: 2rem 1rem 3rem;
	background: var(--paper);
	font-size: 13px;
	line-height: 1.5;
}

.impressum p {
	margin: 0 0 0.75em;
}

.impressum a {
	color: var(--ink-soft);
}

.site-info {
	margin-top: 1.5em;
	font-size: 11px;
	color: var(--ink-soft);
}

/* The columns are positioned; on wide screens the footer sits below the viewport. */
@media screen and (min-width: 48em) {
	body {
		overflow-y: hidden;
	}

	.site-footer {
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		padding-bottom: 1rem;
	}

	body.kind-front {
		overflow-y: auto;
	}

	body.kind-front .site-footer {
		position: static;
		transform: none;
	}
}

/* --- narrow screens: one column, normal scrolling ----------------------- */

@media screen and (max-width: 47.9375em) {
	.site-header,
	#koordinaten,
	#definition {
		width: auto;
		max-width: 100%;
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.wordmark .name,
	.wordmark .silben,
	.site-header nav a,
	#koordinaten h1,
	#koordinaten h2,
	#koordinaten h3 {
		width: auto;
		max-width: 300px;
	}

	#verweise {
		position: static;
		margin: 1rem 0;
		padding-left: 1rem;
	}

	.scrollspalten {
		display: block;
		position: static;
		inset: auto;
	}

	.scrollspalten > * {
		height: auto;
		border-right: 0;
		border-top: 1px solid var(--ink);
		overflow: visible;
	}

	.scrollspalten div > *,
	.scrollspalten article > * {
		width: auto;
		margin-left: 0;
	}

	.scrollspalten > * {
		padding: 1.5rem 1rem;
	}

	.spaltentitel {
		margin-left: 0;
	}

	#scroll-1er article {
		display: block;
		padding: 0;
	}

	#portraitbild,
	#schrift,
	#bildspalte {
		padding-top: 1rem;
	}

	#bildspalte a {
		width: 46%;
		margin: 0 2% 1rem 0;
	}

	#rubriktitel-1er {
		width: auto;
		margin: 1rem;
	}
}

@media print {
	.site-header nav,
	#verweise,
	.skip-link {
		display: none;
	}

	body {
		overflow: visible;
		color: #000;
	}

	.scrollspalten {
		display: block;
		position: static;
	}

	.scrollspalten > * {
		height: auto;
		overflow: visible;
	}
}
