* {
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}

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

summary {
	cursor: pointer;
}

pre code {
	padding: 1rem;
}

blockquote {
	border-left: 5px solid var(--border-color);
	margin: 2rem 0;
	padding: 1rem;
}

del {
	text-decoration: line-through;
}

table {
	border-collapse: collapse;
	margin: 2rem 0;
	text-align: left;
	width: 100%;
}

tr {
	border-bottom: 1px solid var(--border-color);
}

th,
td {
	padding: 0.5rem;
}

hr {
	border-top: 1px solid #252525;
	border-left: 1px solid #252525;
	border-bottom: 1px solid #7a7a7a;
	border-right: 1px solid #7a7a7a;

	margin: 2rem 0;
	clear: both;
}

figure {
	margin: 2em 0;
}

figcaption {
	padding: 0.5em 1em;
	text-align: center;
	font-size: .875rem;
}

.image-pixelated,
img[src$=".gif"]:not(.image-smooth),
img[src$=".png"]:not(.image-smooth) {
	image-rendering: crisp-edges;
}
.blog-article__title {
	margin-bottom: .25rem;
}

.blog-article__time {
	font-size: .8125rem;
}

.comment-form > div {
	display: table-row;
}

.comment-form > div > * {
	display: table-cell;
	vertical-align: top;
	padding: 0 1rem .25rem 0;
}

.back-button-holder {
	text-align: center;
	margin: 2rem 0;
}
hr.dashed {
	border-style: dashed;
}

hr.styled {
	border: none;
	image-rendering: crisp-edges;
	background-position: 0;
}

hr.styled--flowers {
	background: url('/assets/rules/flowers.gif');
	height: 25px;
}

hr.styled--bow {
	background: url('/assets/rules/bow.gif');
	height: 18px;
	background-position: 50%;
}

hr.styled--island {
	background: url('/assets/rules/island.gif');
	height: 32px;
}

hr.styled--offroad {
	background: url('/assets/rules/offroad.gif');
	height: 32px;
	background-position: 50%;
}

hr.styled--tap {
	background: url('/assets/rules/tap.gif');
	height: 23px;
}

hr.styled--forest {
	background: url('/assets/rules/forest.gif');
	height: 29px;
}

hr.styled--melting {
	background: url('/assets/rules/melting.gif');
	height: 9px;
}

hr.styled--warp-speed {
	background: url('/assets/rules/warp_speed.gif');
	height: 18px;
	background-position: 100%;
}

hr.styled--dynamite {
	background: url('/assets/rules/dynamite.gif');
	height: 12px;
	background-position: 100%;
}

hr.styled--winter,
._theme--winter hr.unstyled {
	border: none;
	background: url('/assets/winter/christmas-lights.gif');
	background-position-x: 3px;
	height: 27px;
}
body {
	max-width: 800px;

	margin: 0 auto;
	box-sizing: content-box;

	--padding-x: .5rem;
	--padding-y: 2rem;

	padding: var(--padding-y) var(--padding-x);

	--extra-padding-top: env(safe-area-inset-top, 0px);
	--extra-padding-right: env(safe-area-inset-right, 0px);
	--extra-padding-bottom: env(safe-area-inset-bottom, 0px);
	--extra-padding-left: env(safe-area-inset-left, 0px);

	padding-top: calc(var(--padding-y) + var(--extra-padding-top));
	padding-right: calc(var(--padding-x) + var(--extra-padding-right));
	padding-bottom: calc(var(--padding-y) + var(--extra-padding-bottom));
	padding-left: calc(var(--padding-x) + var(--extra-padding-left));

	color: var(--text-color);
	background: var(--background);
}

.footer {
	text-align: center;
}

.footer__image {
	font-size: 0;
	margin-top: .75rem;
}

.footer__text {
	font-size: .75rem;
	margin-top: .5rem;
}

.footer__buttons {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: .15rem;

	font-size: 0;
}

.footer__buttons img {
	width: 88px;
	height: 31px;

	image-rendering: pixelated;
}

.header.header--big {
	display: grid;
	grid-template-areas:
		"avatar title"
		"avatar menu";
	justify-content: start;
	gap: 0 1rem;
	grid-template-columns: max-content;
}

.header.header--big .header__avatar {
	--size: 75px;

	grid-area: avatar;

	width: var(--size);
	height: var(--size);

	border-radius: 100%;
	box-sizing: border-box;
}

.header.header--big .header__title {
	grid-area: title;
	align-self: end;
	font-size: 28px;
	margin: .285em 0 .1425em;
	line-height: 1em;
}

@media screen and (max-width: 480px) {
	.header.header--big .header__title {
		font-size: 24px;
	}
}

.header.header--small .header__title {
	font-weight: 700;

	display: inline-block;
	margin-right: .45em;
}

.header.header--small .header__title::after {
	content: '\003A';
}

.header .header__menu {
	grid-area: menu;
	align-self: start;
	display: inline-block;
}

.header .header__menu ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 .75rem;

	list-style: none;

	margin: 0;
	padding: 0;
}

.header .header__menu ul li {
	margin: 0;
}

.header .header__menu {
	--link-visited-color: var(--link-color);
}


main {
	margin: 2em 0;
}

.va-middle > * {
	vertical-align: middle;
}
ul.styled--gold-star {
	list-style-image: url('/assets/lists/list-gold-star.png');
	image-rendering: crisp-edges;
}
:root {
	--link-color: #0007cc;
	--link-visited-color: #7d0eb4;
	--link-hover-color: #cc0000;

	--border-color: #7a7a7a;
	--code-color: inherit;

	--text-color: #000;
	--background: #fff;
}

._theme--sky {
	--background: url('/assets/backgrounds/sky.png');
}

._theme--black {
	--link-color: #fff;
	--link-visited-color: #b3b3b3;

	--background: #000;
	--text-color: #fff;
}

._theme--space {
	--link-color: #fff;
	--link-visited-color: #b3b3b3;

	--background: url('/assets/backgrounds/stardown.gif');
	--text-color: #fff;
}

._theme--tonsky {
	--background: #fddb29;
	--link-color: #1a0000;
	--link-visited-color: #533737;
}

._theme--panther {
	--link-color: #A90FB3;
	--link-hover-color: #0686E0;
	--link-visited-color: #8C5E93;

	--background: url('/assets/backgrounds/bkgpstlpatrn1.jpg');
	--text-color: #570466;
}


/* start: winter themes */

._theme--winter-2026 {
	--background: url('/assets/backgrounds/aurora.png') no-repeat 50% 0 / 100%, url('/assets/backgrounds/snow/snow02.gif'), #00a0f0;
	--text-color: #000;

	--snow-shadow-s: 0px -1px #fff;
	--snow-shadow-l: 0px -1.5px #fff;
}

._theme--winter-2026,
._theme--winter-2025 {
	cursor: url('/assets/cursors/christmas-tree.cur'), default;
}

._theme--winter-2025 {
	--background: url('/assets/backgrounds/jwsnow1g.gif'), #7bb6ed;
	--text-color: #080822;

	--snow-shadow-s: 0px -1px #fff;
	--snow-shadow-l: 0px -1.5px #fff;
}

._theme--winter-2026 .header__avatar,
._theme--winter-2025 .header__avatar {
	box-shadow: var(--snow-shadow-l);
}

._theme--winter-2026 h1, ._theme--winter-2026 h2,
._theme--winter-2025 h1, ._theme--winter-2025 h2 {
	text-shadow: var(--snow-shadow-l);
}

._theme--winter-2026 h3, ._theme--winter-2026 h4,
._theme--winter-2025 h3, ._theme--winter-2025 h4 {
	text-shadow: var(--snow-shadow-s);
}

._theme--winter-2026 main h1,
._theme--winter-2025 main h1 {
	text-shadow: none;
	filter: drop-shadow(var(--snow-shadow-l));
}

._theme--winter-2026 main h2,
._theme--winter-2025 main h2 {
	text-shadow: none;
	filter: drop-shadow(var(--snow-shadow-s));
}


._theme--winter-2024 {
	--link-color: #fff;
	--link-visited-color: #cdccf0;

	--background: url('/assets/backgrounds/snowbg.gif');
	--text-color: #fff;
}

._theme--winter-2023 {
	--link-color: #fff;
	--link-visited-color: #cdccf0;

	--background: url('/assets/winter/christmas-lights-2.gif') repeat-x, url('/assets/backgrounds/winter.gif');
	--text-color: #fff;
}

[class*="_theme--winter"] body::before {
	height: 24px; /* height of /assets/winter/christmas-lights-2.gif*/
	width: 100vw;
	background: url('/assets/winter/christmas-lights-2.gif') repeat-x;
	position: absolute;
	content: ' ';
	top: 0;
	left: 0;
	right: 0;
	display: block;
	image-rendering: pixelated;
}

[class*="_theme--winter"] .header {
	margin-top: 24px; /* height of /assets/winter/christmas-lights-2.gif*/
}

[class*="_theme--winter"] .footer {
	align-items: center;
	margin-top: -.5rem;
}

[class*="_theme--winter"] main h1::before,
[class*="_theme--winter"] main h2::before {
	content: '';
	background: url('/assets/winter/nano-tree.gif') left center no-repeat;
	background-size: contain;
	image-rendering: pixelated;
	display: inline-block;
	vertical-align: middle;
	height: 1em;
	width: 1em;
	margin-right: .1em;
	margin-bottom: 2px;
}

/* end: winter themes */


a {
	color: var(--link-color);
}

a:visited {
	color: var(--link-visited-color);
}

a:hover,
a:visited:hover {
	color: var(--link-hover-color);
}

._dashed {
	text-decoration-style: dashed;
}

._dotted {
	text-decoration-style: dotted;
}

._none {
	text-decoration: none;
}

._no-visited {
	--link-visited-color: var(--link-color);
}

a.external-link::after{
	display: inline-block;
	content: '';
	width: 12px;
	height: 12px;
	background: url(/assets/wikipedia_external_link.png) no-repeat;
	image-rendering: pixelated;
	margin-left: 3px;
}

.theme-switchers--hidden {
	display: none;
}
:root {
	--font-family-monospace: Consolas, Menlo, Monaco, monospace;
	--font-family-serif: Times, serif;
}

body {
	font-size: 16px;
	line-height: 1.25;
	font-family: var(--font-family-serif);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 1.5rem 0 1rem;
}

ul li ~ li,
ol li ~ li {
	margin-top: .5rem;
}


pre,
code,
.monospace {
	font-family: var(--font-family-monospace);
	color: var(--code-color);
}

code,
.monospace {
	white-space: pre-wrap;
	font-size: .8em;
}
:root {
	--avatar-size: 100px;
	--move-x-animation-duration: 7s;
	--move-y-animation-duration: 4s;
}

.flying-avatar {
	width: var(--avatar-size);
	height: var(--avatar-size);

	border-radius: 100%;
	box-sizing: border-box;

	cursor: pointer;

	will-change: left, top;
	position: absolute;

	animation:
		move-x var(--move-x-animation-duration) linear 0s infinite alternate,
		move-y var(--move-y-animation-duration) linear 0s infinite alternate;
}


@keyframes move-x {
	from { left: 0; } to { left: calc(100% - var(--avatar-size)); }
}

@keyframes move-y {
	from { top: 0; } to { top: calc(100% - var(--avatar-size)); }
}

.not-found {
	margin: auto;
	padding-bottom: 4rem;

	text-align: center;
	user-select: none;
}

.not-found__title {
	font-size: 14rem;
	line-height: 1;

	margin: 0;
}

.not-found__subtitle {
	font-size: 1.55rem;
}
.blog-posts-by-year .blog-posts-by-year__list {
	list-style-type: none;
	padding-left: 2rem;
}
.pgp-signed-contacts {
	font-family: var(--font-family-monospace);
	white-space: pre-wrap;
	font-size: 14px;
	margin-top: 1.5rem;
	overflow-x: auto;
}

.pgp-signed-contacts a:not(:hover) {
	text-decoration: none;
	color: inherit;
}
.guestbook-form-holder {
	clear: both;
}

.guestbook-form > div {
	display: table-row;
}

.guestbook-form > div > * {
	display: table-cell;
	vertical-align: top;
	padding: 0 1rem .25rem 0;
}

.guestbook-reply {
	padding-left: 1rem;
	margin-bottom: 1rem;
	border-left: 3px solid var(--border-color);
}

.guestbook-reply p:last-child {
	margin-bottom: 0;
}
.how-to-reach-links>a,
.how-to-reach-links>span {
	margin-right: 1em;
}

ul.webrings {
	display: inline;
	list-style: none;
	padding: 0;
}

.webrings li {
	display: inline;
	margin-right: .75rem;
	white-space: nowrap;
}

.xxiivv-icon {
	display: inline;
	height: 1rem;
	vertical-align: middle;
	margin-bottom: 3px;
	margin-right: 2px;
}

.special-themes-attention {
	vertical-align: middle;
	margin-top: -4px;
}
.now-page ul {
	image-rendering: pixelated;
	list-style-image: url('/assets/lists/b_green.gif');
}

.now-page ul ul {
	list-style-image: url('/assets/lists/b_green_sq.gif');
}

.now-page ul ul ul,
.now-page ul ul ol {
	list-style-image: none;
}

.now-page__disclaimer {
	font-style: italic;
	margin-bottom: 1.5rem;
}
.photography > section + hr {
	border: none;
}

.photography > section + hr::after {
	content: '\2053';
	display: block;
	text-align: center;
	opacity: .75;
	margin-top: 4px;
}

.gallery {
	gap: 4px;
	display: grid;
}

.gallery img {
	display: block; /* remove extra gaps because of whitespaces */
}

.gallery--2b {
	grid-template-columns: repeat(2, 1fr);
}

.gallery--3 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery--3 :nth-child(1) {
	grid-column: span 2;
}

.gallery--4 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery--4b {
	grid-template-columns: repeat(3, 1fr);
}

.gallery--4b :nth-child(1) {
	grid-column: span 3;
}

.gallery--5 {
	grid-template: repeat(3, auto) / repeat(2, 1fr);
}

.gallery--5 :nth-child(1) {
	grid-column: span 2;
}

.gallery--6 {
	grid-template: repeat(3, auto) / repeat(6, 1fr);
}

.gallery--6 > * {
	grid-column: span 2;
}

.gallery--6 :nth-child(1) {
	grid-column: span 6;
}

.gallery--6 :is(:nth-child(2),	:nth-child(3)) {
	grid-column: span 3;
}

.gallery--7 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery--7 :nth-child(1) {
	grid-column: span 3;
}

.gallery--8 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery--9 {
	grid-template: repeat(3, auto) / repeat(6, 1fr);
}

.gallery--9 > * {
	grid-column: span 3;
}

.gallery--9 :nth-child(7),
.gallery--9 :nth-child(8),
.gallery--9 :nth-child(9) {
	grid-column: span 2;
}

.gallery--10 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery--10 :nth-child(1) {
	grid-column: span 3;
}
.resume main li {
	list-style-image: url('/assets/lists/metalic_purple.gif');
	image-rendering: pixelated;
}

.resume-record {
	margin-bottom: 1.5rem;
}

.resume-record__dates {
	white-space: nowrap;
}

.resume-record__title {
	margin-right: .5em;
}

.resume-record ul li {
	margin: .5rem 0;
	list-style-image: none;
	list-style-type: square;
}

.resume main a,
.resume main a:visited {
	color: inherit;
}

.resume main a:hover {
	color: var(--link-hover-color);
}

ul.resume-contacts {
	display: flex;
	flex-wrap: wrap;
	padding: 0;
	margin-top: -.75em;
}

ul.resume-contacts li {
	list-style: none;
	margin: 0;
}

ul.resume-contacts a:not(:hover, :active) {
	text-decoration: none;
	color: inherit;
}

ul.resume-contacts :not(:last-child)::after {
	content: "\b7";
	margin: 0 .5em;
}

aside.other-formats {
	float: right;
	font-size: .875rem;
	border-left: 1px solid;
	margin: 0 0 1em 1.5em;
	padding: 0 0 0 1.5em;
}

@media screen and (max-width: 480px) {
	aside.other-formats {
		float: none;
		border: none;
		padding: 1em 0;
		margin: 0;
	}
}

.other-formats__title {
	margin: 0 0 .25em;
}

.other-formats__links {
	margin: .25em 0;
}

.other-formats__links a img {
	vertical-align: middle;
	height: 14px;
	padding-right: 2px;
}
