/* Thank you Mu-An (https://muan.co), for the inspiration, and some bits of code I took from your notes (https://muan.co/notes)! */

:root {
	--background-colour: #ffffff;
	--blue: #00bfff;
	--back-colour: #f0f0f0;
	--back-text-colour: #000000;
	--box-shadow: #dddddd;
	--circle-text-colour: #00bfff;
	--background-target: #dedede;
	--default-text: #000000;
	--default-text-target: #000000;
	--default-text-strong: #000000;
	--h1-hover: #0086b3;
	--image-border: #000000;
	--note-hover: #0086b3;
	--note-a: #5e5e62;
	--pre-colour: #000000;
	--header-description-colour: #9f9fa1;
	--footer-description-colour: #9f9fa1;
	--blockquote-mark-colour: #5e5e62;
	--header-description-size: 0.9rem;
	--footer-description-size: 0.9rem;
	--hr-background-colour: #cfcfcf;
	--pre-background-colour: #f5f5f4;
	--description-background-colour: #f5f5f4;
	--blockquote-background-colour: #ffffff;
	--blockquote-text-colour: #000000;
	--update-background-colour: #f0f0f0;
	--updated-timestamp-colour: #979798;
	--div-blue: #1a5d74;
	--pinned-colour: #ffd700;
	--love-colour: #ff2a04;
	--scroll-colour: 26, 93, 116;
	--colour-fill: 255, 255, 255;
	--scroll-colour-muted: 0, 191, 255;
	--font-header: "Inter", "IBM Plex Sans", "karla", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	--font-body: "IBM Plex Sans", "karla", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	--font-mono: "Inconsolata", "IBM Plex Mono", ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace;
}

@media (prefers-color-scheme: dark) {
	:root {
		--background-colour: #151615;
		--blue: #00bfff;
		--back-colour: #2c2c2c;
		--back-text-colour: #ffffff;
		--box-shadow: #999999;
		--background-target: #000000;
		--default-text: #ffffff;
		--default-text-target: #ffffff;
		--default-text-strong: #ffffff;
		--header-description-colour: #5e5e62;
		--footer-description-colour: #5e5e62;
		--h1-hover: #0086b3;
		--image-border: #373737;
		--note-hover: #0086b3;
		--note-a: #828282;
		--pre-colour: #e8e8e8;
		--hr-background-colour: #535353;
		--pre-background-colour: #222222;
		--description-background-colour: #222222;
		--blockquote-background-colour: #1d1d1d;
		--blockquote-text-colour: #ffffff;
		--update-background-colour: #484848;
		--scroll-colour: 26, 93, 116;
		--colour-fill: 21, 22, 21;
		--scroll-colour-muted: 0, 191, 255;
	}
}

/* I am going to regret this, but I can always change it back, right? */
@font-face {
	font-family: 'karla';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: local('Karla Italic'), local('Karla-Italic'), url(/css/f/karla-italic-400-02.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'karla';
	font-style: italic;
	font-weight: 700;
	font-display: swap;
	src: local('Karla Bold Italic'), local('Karla-BoldItalic'), url(/css/f/karla-italic-700-02.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'karla';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local('Karla'), local('Karla-Regular'), url(/css/f/karla-normal-400-02.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'karla';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: local('Karla Bold'), local('Karla-Bold'), url(/css/f/karla-normal-700-02.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'IBM Plex Sans';
	font-style: normal;
	font-weight: 400;
	src: url('/css/f/ibm-plex-sans-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'IBM Plex Sans';
	font-style: italic;
	font-weight: 400;
	src: url('/css/f/ibm-plex-sans-v19-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'IBM Plex Sans';
	font-style: normal;
	font-weight: 500;
	src: url('/css/f/ibm-plex-sans-v19-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'IBM Plex Sans';
	font-style: normal;
	font-weight: 700;
	src: url('/css/f/ibm-plex-sans-v19-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Source Code Pro';
	font-style: normal;
	font-weight: 400;
	src: url('/css/f/source-code-pro-v22-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'IBM Plex Mono';
	font-style: normal;
	font-weight: 400;
	src: url('/css/f/ibm-plex-mono-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 400;
  src: url('/css/f/inconsolata-v31-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  src: url('/css/f/inter-v13-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

html {
	background-color: var(--background-colour);
}

body {
	margin: 20px auto;
	max-width: 40em;
	line-height: 1.8rem;
	font-size: 18px;
	color: var(--default-text);
	background-color: var(--background-colour);
	padding: 0 15px;
	font-family: var(--font-body);
	-webkit-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
	overflow-y: scroll;
}

::-webkit-scrollbar {
	width:.75rem
}

::-webkit-scrollbar-track {
	--tw-bg-opacity: 1;
	background-color: rgba(var(--colour-fill), var(--tw-bg-opacity));
}

::-webkit-scrollbar-thumb {
	--tw-bg-opacity: 1;
	background-color: rgba(var(--scroll-colour), var(--tw-bg-opacity));
}

::-webkit-scrollbar-thumb:hover {
	--tw-bg-opacity: 1;
	background-color: rgba(var(--scroll-colour-muted), var(--tw-bg-opacity));
}

.description {
	color: var(--header-description-colour);
	font-size: var(--header-description-size);
	line-height: 1.3rem;
	margin: 5px 0 10px 0;
}

section:hover {
	color: var(--default-text-target);
}

::selection {
	color: var(--blue);
	background: slategray;
}

h1, h2, h3 {
	line-height: 1.0;
	font-family: var(--font-header);
}

h1 {
	color: #dddddd;
	font-size: min(32px, 8vw);
	letter-spacing: 2px;
	margin-bottom: 0;
	margin-top: 40px;
}

h1 a {
	text-decoration: none;
}

h1 a:hover {
	color: var(--h1-hover);
}

pre, code {
	font-family: var(--font-mono);
	color: var(--pre-colour);
	margin: 0;
	overflow: auto;
	overflow-y: hidden;
	line-height: 1.8em;
	background: var(--pre-background-colour);
	padding: 2px 5px 2px 5px;
	border-radius: 10px;
}

ul, ol {
	margin-left: 0.8em;
	padding-left: 1.2em;
}

ul {
	list-style-type: square;
}

li::marker {
	color: var(--blue);
}

.note:not(:last-child) {
	font-size: 18px;
	border-bottom: 2px dotted var(--div-blue);
	padding: 1.5rem 0 1.5rem 0;
}

.note:last-child {
	font-size: 18px;
	border-bottom: 2px dotted var(--div-blue);
	padding: 1.5rem 0 1.5rem 0;
}

.note-body {                
	padding-top: 10px;
}

.note:target {
	color: var(--default-text-target);
	border-bottom: 2px dotted var(--default-text-target);
}

.note-single {
	font-size: 18px;
	border-bottom: 2px dotted var(--div-blue);
	color: var(--default-text-target);
	padding: 1.5rem 0 1.5rem 0;
}

.note p:first-child {
	margin-top: 3px;
}

.note p:last-child {
	margin-bottom: 3px;
}

.note-single p:first-child {
	margin-top: 3px;
}

.note-single p:last-child {
	margin-bottom: 3px;
}

a {
	color: var(--default-text);
	text-decoration-color: var(--blue);
	text-decoration-thickness: .130em;
	text-underline-offset: 1.5px;
	text-decoration-skip-ink: auto;
}

a:hover {
	color: var(--note-hover);
}

.note-single a:hover {
	color: var(--note-hover);
}

.note-date {
	font-family: var(--font-mono);
	font-size: 1rem;
}

.note-date a {
	text-decoration: none;
	color: var(--note-a);
}

.note-date a:hover {
	color: var(--note-hover);
}

img.w720 {
	width: 720px;
	height: auto;
	border-radius: 5px;
}

img.h100{
	width: auto;
	height: 100%;
	border-radius: 5px;
}

img.w100 {
	width: 100%;
	height: auto;
	border-radius: 5px;
}

.paginator {
	display: flex;
	justify-content: space-between;
	margin: 2.5ch auto 2.5ch auto; 
}

.footer {
	font-family: var(--font-body);
	font-size: var(--footer-description-size);
	color: var(--footer-description-colour);
	line-height: 1.3rem;
}

hr {
	border: none;
	height: 2px;
	background-color: var(--blue);
	margin: 0;
	width: 15%;
}

blockquote {
	border-left: .130em solid var(--blue);
	color: var(--blockquote-text-colour);
	padding-left: 1rem;
	margin: 0rem;
}

/* This remains here, because I might come back to it in the near future */
/*blockquote::before {
	content: "> ";
	color: var(--blockquote-mark-colour);
	float: left;
	margin: 0 0 0 -1.5rem;
}*/

blockquote a:hover {
	color: #0086b3;
}

blockquote a {
	color: #00bfff;
}

strong {
	color: var(--default-text-strong);
}

.update {
	text-transform: uppercase;
	display: table;
	font-size: 0.9rem;
	font-weight: normal !important;
	color: var(--default-text-strong);
	line-height: 1.5rem;
	padding: 1px 10px 1px 10px;
	border-left: 4px #f40009 solid;
	background-color: var(--update-background-colour);
}

.update em {
	font-style: normal;
	font-weight: bold;
	font-family: var(--font-mono);
	padding-left: 10px;
	color: var(--updated-timestamp-colour);
}

p.via::before {
        content: "\002197";
	color: var(--note-hover);
	float: left;
        padding: 0 0.4rem 0 0;
}

.video-container {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 */
	height: 0;
}

.video-container iframe {
	border-radius: 5px;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.pinned {
	color: var(--pinned-colour);
}

.pinned:hover {
	color: var(--pinned-colour);
	fill: var(--pinned-colour) !important;
}

.award {
	color: var(--pinned-colour);
	fill: none;
}

.award:hover {
	color: var(--pinned-colour);
	fill: none;
}

.love {
	color: var(--love-colour);
	fill: var(--love-colour) !important;
}

.love:hover {
	color: var(--love-colour);
	fill: var(--love-colour) !important;
}

.comment {
	font-size: 1.1rem;
}

.back {
	text-decoration: none;
	background-color: var(--back-colour);
	color: var(--back-text-colour);
	display: inline-block;
	width: 1.4em;
	text-align: center;
	line-height: 1.4em;
	aspect-ratio: 1/1;
	border-radius: 4em;
}

.indexperm {
	color: var(--blue);
}

.indexperm:hover {
	color: var(--blue);
}

.stars {
	color: #ffd700;
}

.feather {
	width: 0.9rem;
	height: 0.8rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	vertical-align: middle;
}

.site-name {
	letter-spacing: 1px;
}

.built-timestamp {
	font-family: var(--font-mono);
	font-size: var(--footer-description-size);
}

.blurb {
        border-left: 3px var(--blue) solid;
	color: slategray;
	font-size: 16px;
	padding: 2px 10px 2px 10px;
        background-color: var(--description-background-colour);
}

figcaption {
	line-height: 1.3rem;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	color: slategray;
}

figcaption::before {
        content: "\21B3";
        color: var(--blue);
        float: left;
        padding: 0 0.4rem 0 0;
}

figcaption a {
	color: var(--note-hover);
}

figcaption a:hover {
	color: var(--note-hover);
}

figcaption a:visited {
	color: var(--note-hover);
}

ins {
	text-underline-offset: 3px;
        text-decoration-skip-ink: auto;
}

.tinylytics_kudos {
	color: var(--blue);
	background-color: transparent;
	border: none;
	cursor: pointer;
	font-size: 0.9rem;
	font-family: var(--font-body);
	display: inline-flex;
	padding: 0;
}

.tinylytics_kudos::before {
        content: "\2661";
        color: var(--blue);
        margin: 0 5px 0 10px;
}

.box {
	padding: 10px;
	border: 1px solid var(--default-text);
	border-radius: 5px;
	box-shadow: 2px 3px var(--box-shadow);
/* Pretty cool piece of code. */
/*	box-shadow: 0 10px 0 -5px #be6700, 0 20px 0 -10px #66ccff, 0 30px 0 -16px #dedcb9; */
}

.readmore {
	text-transform: uppercase;
	font-size: 0.9rem;
}

.readmore::before {
	content: "\2192";
	color: var(--blue);
	float: left;
	margin: 0 10px 0 0;
}

.mark {
	color: var(--blue);
}

.gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.7em 0.7em;
    	a {
		display: grid;
	}
}

.cursor h1::after {
	content: "";
	width: 3px;
	height: 30px;
	background: var(--blue);
	display: inline-block;
	animation: cursor-blink 1.2s steps(2) infinite;
}

.cursor h1 {
	display: flex;
	align-items: center;
	gap: 2px;
}


@keyframes cursor-blink {
	0% {
		opacity: 0;
	}
}

@media only screen and (max-width: 600px) {
	.note:not(:last-child) {
		font-size: 1.1rem;
	}
	.note:last-child {
		font-size: 1.1rem;
	}
	.note-single {
		font-size: 1.1rem;
	}
	.note:target {
		color: var(--default-text-target);
	}
	img.w100 {
		width: 100%;
		border-radius: 5px;
	}
	ul, ol {
		margin-left: 0.5em;
		padding-left: 1.5em;
	}
}
