/* ------------------------------------------------------------------ *
 * Window groups
 * ------------------------------------------------------------------ */
#status {
	flex-grow: 2;
}

#todo {
	flex-grow: 3;
}

/* ------------------------------------------------------------------ *
 * Visitor counter
 * ------------------------------------------------------------------ */
#visitor-span {
	vertical-align: -5px;
}

/* ------------------------------------------------------------------ *
 * Updates
 * ------------------------------------------------------------------ */
#updates ul {
	height: 300px;
	overflow-y: scroll;
}

window.maximized#updates ul {
	height: auto;
	min-height: 0;
	flex: 1 1 auto;
}

#updates ul li {
	border-bottom: 1px solid var(--interactive-border-dark);
	padding: 0.5rem 0;
}

#updates ul li a {
	text-decoration: none;
}

#updates ul li div {
	color: var(--text);
}

#updates ul li h3 {
	color: var(--link);
	text-decoration: underline;
}

#updates ul li h3:hover {
	color: var(--link-hover);
}

.update-timestamp {
	float: right;
}

.update-additions {
	color: var(--ok);
	margin-right: 1rem;
}

.update-deletions {
	color: var(--danger);
}

.update-message,
.update-notice {
	color: var(--text);
	font-style: italic;
	opacity: 0.8;
}

.update-error {
	color: var(--danger);
}

/* ------------------------------------------------------------------ *
 * Guestbook
 * ------------------------------------------------------------------ */

#guestbook iframe {
	display: block;
	width: 100%;
	min-height: 550px;
	height: 20rem;
}

window.maximized#guestbook iframe {
	height: auto;
	min-height: 0;
	flex: 1 1 auto;
}

/* ------------------------------------------------------------------ *
 * Welcome
 * ------------------------------------------------------------------ */
#welcome-group {
	/* margin-bottom: 0.5rem; */
}

#welcome {
	padding-bottom: 100px;
}

/* ------------------------------------------------------------------ *
 * Floating image windows
 * ------------------------------------------------------------------ */
.image-window {
	position: absolute;
	margin: 0;
	padding: 0;
}

.image-window img {
	display: block;
	width: 100%;
	height: 100%;
}

#hello-img-window {
	left: -100px;
	bottom: -15px;
}

#hello-img-window img {
	width: 200px;
}

#katz-img-window {
	bottom: -25px;
	right: -100px;
}

#katz-img-window img {
	width: 250px;
}

#light-img-window {
	right: -70px;
	top: 75px;
}

/* ------------------------------------------------------------------ *
 * Last.fm "now playing"
 * ------------------------------------------------------------------ */
#lastfm-window {
	position: absolute;
	left: -100px;
	top: -100px;
	width: 300px;
}

#listening {
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
}

#listening h2 {
	padding: 0;
	margin: 0;
	padding-bottom: 1rem;
	font-size: 1rem;
}

#listening a {
	display: flex;
	align-items: stretch;
	gap: 0.75rem;
}

#lastfm-window img {
	display: block;
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
	object-fit: cover;
}

#trackInfo {
	height: 64px;
	padding: 0;
	margin: 0;
	min-width: 0;
	flex: 1 1 auto;
}

#trackInfo h3,
#trackInfo h4 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.2rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

#trackInfo h4 {
	padding-top: 0.25rem;
}

/* ------------------------------------------------------------------ *
 * Music highlights
 * ------------------------------------------------------------------ */
#music-highlights-window {
	width: 33.333%;
}

#music-highlights-list li {
	border-bottom: 1px solid var(--interactive-border-dark);
}

.music-card {
	background-color: var(--window-background);
	border: 2px solid var(--window-border-light);
	color: var(--text);
	padding: 0.5rem;
	margin: 0.25rem 0;
	transition:
		background-color 0.3s ease,
		border-color 0.3s ease,
		color 0.3s ease;
}

.music-card a {
	color: var(--link);
}

.music-card a:hover {
	color: var(--link-hover);
}

.music-card a > div {
	display: flex;
	align-items: stretch;
	gap: 1rem;
}

.music-card img {
	display: block;
	flex: 0 0 auto;
	width: 5rem;
	height: 5rem;
	object-fit: cover;
}

.music-card h3 {
	align-self: center;
	margin: 0;
}

#music-player-window {
	width: 66.666%;
}

/* ------------------------------------------------------------------ *
 * Banner
 * ------------------------------------------------------------------ */
.blink {
	display: block;
	width: 7.5rem;
}

aerial-banner {
	display: block;
	width: 100%;
	max-width: 100vw;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

aerial-banner ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	width: max-content;
	max-width: none;
}

@keyframes scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

/* ------------------------------------------------------------------ *
 * Third-party widgets
 * ------------------------------------------------------------------ */
taskbar .start-menu {
	background-image: var(--wallpaper-image);
}

.cursors-root {
	border-radius: 0;
}

/* ------------------------------------------------------------------ *
 * Etc
 * ------------------------------------------------------------------ */

#construction-gif {
	height: 20rem;
}

/* ------------------------------------------------------------------ *
 * Responsive
 * ------------------------------------------------------------------ */
@media (max-width: 900px) {
	#info,
	#site,
	#music {
		flex-direction: column;
	}

	#music-highlights-window,
	#music-player-window {
		width: auto;
	}

	#lastfm-window {
		position: relative;
		left: auto;
		top: auto;
		width: auto;
	}

	#hello-img-window,
	#katz-img-window,
	#light-img-window {
		position: relative;
		margin: 0.5rem auto;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
		width: fit-content;
		max-width: 100%;
	}

	#hello-img-window img,
	#katz-img-window img,
	#light-img-window img {
		max-width: 100%;
		height: auto;
	}

	#welcome {
		padding-bottom: 0;
	}
}
