Iwara UI Fix

An alternate style for 天音's Iwara 1-Click Filter script, also works as a standalone

Versione datata 04/03/2020. Vedi la nuova versione l'ultima versione.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Iwara UI Fix
// @namespace    none
// @version      1.6
// @description  An alternate style for 天音's Iwara 1-Click Filter script, also works as a standalone
// @author       Nothson
// @license      CC BY-NC
// @resource     https://creativecommons.org/licenses/by-nc/4.0/
// @match        https://*.iwara.tv/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

/*
	--- Iwara UI Fix by Nothson : https://iwara.tv/users/Nothson ---

		Mainly for scratching the Iwara's UI/UX itches I have.
		I'm not a senior web dev so plz don't scold me if the code below looks messy to you.

		4 Mar 2020

		- In the cards, view count and likes are reformatted into k and M prefixes
			- Hover over them to see the original numbers

		3 Mar 2020

		- Changed the approach to replace the blank images, there were some corner cases that make errors
		- Added profile picture border for special roles (profile page only) + unique animated border for my own
		- Added script version number at the bottom of the page

		2 Mar 2020
		
		- Now, this script has conflicts with Iwara 1-Click Filter version 1.6 and newer
			- See the note at the bottom of any Iwara page for the workaround

		1 Mar 2020

		- Added like percentage
		- Polaroid print style for video/image cards
		- Repositioned the card stats & icons
		- Added flairs, shown on the right of the card stats
			- Fire Icon: % like reaches the threshold (based on view count) + 200 views or more
			- Star Icon: % like reaches the threshold + 20k views or more
			- Lock Icon: Private video
			- Grid Icon: Multiple images
			- Screen Icon: External player (YouTube, Vimeo, etc.)
		- Card transitions on hover + extra transitions for some flairs
		- Added block backgrounds on many regions + made paddings and margins consistent
		- Fixed video player seek head
		- Changed forum post timestamp text color
		- Fixed user profile background, user lists (following/followers), and layout
		- Perhaps a few more things I did but couldn't remember, idk

		Expected to run after Erono's Iwara 1-Click Filter Script: https://greasyfork.org/scripts/393957
		However, this script works as a standalone UI fix as well
		Tested on the latest version of Firefox & Chrome, plus responsive
*/

window.addEventListener('load', async function() {
	if (!window.location.href.match('://i.iwara.tv')) {
		let oneClickFilterConflict = document.head.querySelector('#css_custom') || document.head.querySelector('#css_likes');
		
		let baseCSS = document.createElement('style');	// Add original CSS rules from 1-Click Filter
		baseCSS.innerHTML = `
			/* ads */
			/*
			.block-extra-content, .extra-content-block {display: none;}
			*/

			/* fix page */
			body {background-color: #eee;}
			section#content > .container {background-color: #eee; padding: 10px;}
			.container {width: unset;}
			@media (min-width: 1300px) {.container {width: 1300px;}}

			/* fix overflow */
			#block-system-main, .row {margin-left: 0; margin-right: 0;}
			.col-sm-3, .col-sm-6, .col-sm-9, .col-xs-6, .col-sm-12 {padding-left: 0; padding-right: 0;}
			.view-videos .view-content .views-row, .view-images .view-content .views-row {padding-bottom: 0px;}

			/* compact page */
			.view-content .col-sm-3, .view-content .col-sm-6 {width: 50%; float: left;}
			@media (min-width: 768px) {
			.view-content .col-sm-3 {width: 25%;}
			}

			/* card style */
			.node.node-teaser {background-color: #ffffff; border: 1px solid #ccc; border-radius: 4px; padding: 5px; margin: 4px;}
			.node.node-teaser .icon-bg, .node.node-teaser .private-video {width: calc(100% - 10px);}
			.node.node-teaser .icon-bg .likes-icon {filter: drop-shadow(0px 0px 2px #000);}
			.node.node-teaser h3.title {font-size: 1em; line-height: 1em; height: 3em; margin-bottom: 0px; overflow: hidden;}
			.node.node-teaser .username {display: block; white-space: nowrap; overflow: hidden;}
			.node.node-teaser .field-item {min-height: 2em;}
			.node.node-video .content {margin: 4px;}
			.sidebar .block.block-views,
			.sidebar .block.block-facetapi,
			.sidebar .block.block-mainblocks   {background-color: #fafafa; border: 1px solid #ccc; border-radius: 4px; padding: 8px; margin: 4px 4px 8px 4px;}
			.sidebar .node.node-sidebar_teaser {background-color: #ffffff; border: 1px solid #ccc; border-radius: 2px; padding: 4px; margin: 2px;}
			.sidebar .node.node-sidebar_teaser .icon-bg, .node.node-sidebar_teaser .private-video {width: calc(100% - 8px);}
			.sidebar .node.node-sidebar_teaser .icon-bg .likes-icon {filter: drop-shadow(0px 0px 2px #000);}
			.item-list ul.pager li {margin: 0; padding: 0;}
			.item-list ul.pager li.pager-current,
			.item-list ul.pager li.pager-ellipsis,
			.item-list ul.pager li > a {background: #fafafa; border: 1px solid #ccc; border-radius: 8px; padding: 4px 16px; margin: 0px; display: inline-block;}

			/* video style for external link (youtube) */
			/*
			.node.node-teaser .field-type-video-embed-field {border: 4px solid #c33; background-color: #000;}
			.node.node-teaser .field-type-video-embed-field .field-items {overflow: hidden;}
			.node.node-teaser .field-type-video-embed-field .field-items .field-item {margin: -4px;}
			*/

			/* image style in subscriptions page */
			.view-subscriptions .field-type-image {border: 1px solid #ccc; background-color: #fff; padding: 5px;}
			.view-subscriptions .field-type-image .field-items {overflow: hidden;}
			.view-subscriptions .field-type-image .field-items .field-item {margin: -6px;}

			/* search and playist */
			.node-wide_teaser {background-color: #fafafa; border: 1px solid #ccc; border-radius: 4px; padding: 4px; margin: 4px;}
			.node-wide_teaser {width: unset; word-break: break-all; min-height: 170px;}
			.node-wide_teaser .col-sm-2 {width: 230px; padding: 4px;}
			.node-wide_teaser .col-sm-10 {width: calc(100% - 230px); padding: 4px;}
			.node-wide_teaser .field-name-field-video {border: 1px solid #999;}
			.node-wide_teaser .field-name-field-video-url {border: 1px solid #999; position: absolute; top: 0px; left: -230px; margin: 4px;}
			@media (max-width: 768px) {.node-wide_teaser .field-name-field-video-url {display: none;}}
			.node-wide_teaser .field-name-field-images .field-item {display: unset;}
			.node-wide_teaser .field-name-field-images .field-item > a > img {width: calc(100%/3 - 8px); border: 1px solid #aaa; padding: 4px; margin: 4px;}
			.node-wide_teaser .field-name-field-images .field-item > video {width: calc(100%/1 - 8px); margin: 4px; border: 1px solid #aaa; padding: 4px; height: auto;}
			.node-wide_teaser .node-info {padding: 4px;}
			.node-wide_teaser .node-info .submitted {display: inline-block; width: 100%;}
			.node-wide_teaser .node-info .submitted h1.title {font-size: 28px; position: unset; margin: unset;}
			ul.facetapi-facetapi-tagcloud li > a {white-space: normal;}
			ul.facetapi-facetapi-tagcloud .element-invisible {display: none;}

			/* footer */
			#wrapper {margin-bottom: unset; padding-bottom: unset;}
			footer {height: unset;}
			footer .block {width: 25%; float: left;}
			footer .block.block-forum {width: 50%;}
			footer .copyright {float: unset;}

			/* video player */
			/* expand volume and seekbar height */
			.video-js .vjs-volume-bar {margin: 1em 0em;}
			.video-js .vjs-volume-bar.vjs-slider-horizontal, .video-js .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {height: 1em;}
			.video-js .vjs-progress-holder, .video-js .vjs-progress-holder .vjs-load-progress, .video-js .vjs-progress-holder .vjs-play-progress {height: 1em;}
		`;
		baseCSS.id = 'xtension-base-css';
		document.head.appendChild(baseCSS);
		
		let cards = document.querySelectorAll('.node-teaser, .node-sidebar_teaser');
		
		function logn (val, base) {
			return Math.log(val) / Math.log(base);
		}
		
		function kilo2Number (text) {
			if (text.match('k') == null) {
				return {value: parseInt(text), isKilo: false};
			}
			else {
				return {value: parseFloat(text.replace('k', '')) * 1000, isKilo: true};
			}
		}
		
		function number2Prefixed(value) {
			if (value < 999) {
				return value;
			}
			else if (value < 99999) {
				return (value / 1000).toFixed(1) + 'k';
			}
			else if (value < 999999) {
				return Math.floor(value / 1000) + 'k';
			}
			else {
				return (value / 1000000).toFixed(1) + 'M';
			}
		}
		
		function getFlair (viewCount, likePercentage, card) {
			if (card.querySelector('.private-video')) {
				return 'lock';
			}
			else if ((card.className.match('node-sidebar_teaser') && card.children.length > 2) || card.children.length > 4) {
				return 'share';
			}
			else {
				let likeThreshold = 8 - logn(viewCount, 6);
				if (viewCount < 200) {
					return '';
				}
				else if (viewCount < 20000) {
					return (likePercentage > likeThreshold) ? 'fire' : '';
				}
				else {
					return (likePercentage > likeThreshold) ? 'star' : '';
				}
			}
		}

		// HTML Mod
		cards.forEach(card => {
			let icons = card.querySelector('.icon-bg');
			if (icons) {	// Rearrange stat icons, add like percentage and flairs
				if ((card.className.match('node-sidebar_teaser') && card.children.length > 1) || card.children.length > 3) {
					card.insertBefore(icons, card.children[2]);
				}
				else {
					card.insertBefore(icons, card.children[1]);
				}
				if (card.className.match('node-image') && icons.children.length == 3) {
						icons.appendChild(icons.children[1]);
						icons.appendChild(icons.children[0]);
				}
				else if (icons.children.length == 2) {
					icons.appendChild(icons.children[0]);
				}

				let likeNode = icons.querySelector('.glyphicon-heart');
				if (likeNode && !(card.className.match('node-image') && card.className.match('node-sidebar_teaser'))) {
					likeNode = likeNode.nextSibling;
					let viewNode = icons.querySelector('.glyphicon-eye-open').nextSibling;
					let viewNodeTxt = viewNode.wholeText.trim();
					let likeNodeTxt = likeNode.wholeText.trim();
					let like = kilo2Number(likeNodeTxt);
					let viewCount = kilo2Number(viewNodeTxt);
					let likePercentage = (viewCount == 0) ? 0 : parseFloat(like.value / viewCount.value * 100).toFixed(2);
					viewNode.parentElement.setAttribute('title', viewNodeTxt);
					viewNode.nodeValue = ' ' + number2Prefixed(viewCount.value);
					if (likeNode) {
						likeNode.parentElement.setAttribute('title', likeNodeTxt);
						likeNode.nodeValue = ' ' + number2Prefixed(like.value);
					}
					if (!card.className.match('node-sidebar_teaser')) {
						let likePercentageHTML = document.createElement('div');
						likePercentageHTML.className += 'right-icon likes-icon like-percentage';
						if (like.isKilo || viewCount.isKilo) {
							likePercentageHTML.innerText = '(~' + likePercentage + '%)';
						}
						else {
							likePercentageHTML.innerText = '(' + likePercentage + '%)';
						}
						likeNode.parentElement.parentElement.appendChild(likePercentageHTML);
					}
					if (card.className.match('node-video')) {
						let flair = getFlair(viewCount.value, likePercentage, card);
						if (flair) {
							card.className += ' flair-' + flair;
							let flairNode = document.createElement('div');
							flairNode.setAttribute('class', 'left-icon flair-icon');
							flairNode.innerHTML = '<i class="glyphicon glyphicon-' + flair + '" title="Flair"></i>';
							icons.appendChild(flairNode);
						}
					}
				}
			}
			else {
				let blankFooter = document.createElement('div');
				blankFooter.setAttribute('class', 'icon-bg');
				card.appendChild(blankFooter);
			}

			let thumbnail = card.querySelector('a > img');
			if (!thumbnail) {	// Fix inconsistent height of the cards with no thumbnail
				let imgArea = card.firstElementChild;
				let title = card.querySelector('h3.title > a');
				if (!title) {
					title = card.querySelector('.field-item > a');
				}
				let url = (title) ? title.getAttribute('href') : '';
				imgArea.innerHTML = '<div class="field blankimg"><div class="field-items"><div class="field-item"><a' +
					(url ? ' href="' + url + '"' : '') +
					(title ? ' title="' + title.innerText + '"' : '') +
					'>' + 
					(card.className.match('node-sidebar_teaser') ? '<img width="141" height="84"></img>' : '<img width="220" height="150"></img>') +
					'</a></div></div></div>';
			}
		});

		let contentInfo = document.querySelector('body.node-type-video .node.node-video .node-info .node-views, body.node-type-image .node.node-image .node-info .node-views');
		if (contentInfo) {	// Add like percentage for a video/image page
			let heartIcon = contentInfo.querySelector('.glyphicon.glyphicon-heart');
			if (heartIcon) {
				let eyeIcon = contentInfo.querySelector('.glyphicon.glyphicon-eye-open');
				let viewCount = parseInt(eyeIcon.nextSibling.nodeValue.replace(/,/g, ''));
				let like = parseInt(heartIcon.nextSibling.nodeValue.replace(/,/g, ''));
				let likePercentage = (viewCount == 0) ? 0 : parseFloat(like / viewCount * 100).toFixed(4);
				heartIcon.nextSibling.nodeValue = ' ' + like + ' (' + likePercentage + '%)';
				contentInfo.appendChild(contentInfo.querySelector('.glyphicon.glyphicon-heart'));
				contentInfo.appendChild(contentInfo.querySelector('.glyphicon.glyphicon-eye-open').previousSibling);
			}
		}

		let copyrightNode = document.querySelector('footer .copyright');
		if (copyrightNode) {	// Add script credits
			let innerHTMLExt = '<br><u><b><a href="https://greasyfork.org/en/scripts/397126">Iwara UI Fix</a></b></u> version ' + GM_info.script.version + ' by <u><b><a href="/users/nothson">Nothson</a></b></u><br><b>Note:</b> <u><b><a href="/images/iwara-1-click-filter">Iwara 1-Click Filter</a></b></u>\'s <b>User Style</b> and/or <b>Like Colors</b> are enabled. Disable them in the in-page settings, then refresh to prevent style conflict.';
			if (!oneClickFilterConflict) {
				innerHTMLExt = '<br><u><b><a href="https://greasyfork.org/en/scripts/397126">Iwara UI Fix</a></b></u> version ' + GM_info.script.version + ' by <u><b><a href="/users/nothson">Nothson</a></b></u><br><i>Based on CSS rules from <u><b><a href="/images/iwara-1-click-filter">Iwara 1-Click Filter</a></b></u> (version 1.5) by <u><b><a href="/users/erono">Erono</a></b></u></i>.';
			}
			copyrightNode.innerHTML = copyrightNode.firstChild.nodeValue + innerHTMLExt;
		}
		
		let addForumCommentElement = document.querySelectorAll('#forum-comments h2.comment-form, #forum-comments noscript, #forum-comments #comment-form');
		if (addForumCommentElement.length > 0) {	// Wrap forum's "Add new comment" section in a block
			let commentBlock = document.createElement('div');
			commentBlock.id = 'add-forum-comment-block';
			addForumCommentElement.forEach(elem => {
				commentBlock.appendChild(elem);
			});
			document.getElementById('forum-comments').appendChild(commentBlock);
		}
		
		let creatorProfileCard = document.querySelector('body.page-user.page-user- #block-views-profile-block .field-content');
		if (creatorProfileCard) {
			if (document.body.className.match('page-user-603563')) {	// My special profile pic border + tooltip
				creatorProfileCard.innerHTML = creatorProfileCard.innerHTML + creatorProfileCard.innerHTML + creatorProfileCard.innerHTML + creatorProfileCard.innerHTML + creatorProfileCard.innerHTML + creatorProfileCard.innerHTML + creatorProfileCard.innerHTML;
				creatorProfileCard.children[5].setAttribute('src', 'https://i.imgur.com/fQZC1bB.png');
				creatorProfileCard.setAttribute('title', 'The creator of "Iwara UI Fix"');
			}
			else {	// User role profile pic border
				let role = document.querySelector('body.page-user.page-user- #content div.content > div.profile > div:last-child > ul > li');
				if (role) {
					switch (role.innerText) {
						case 'administrator':
							creatorProfileCard.className += ' role-admin';
							creatorProfileCard.setAttribute('title', 'Administrator');
							break;
						case 'moderator':
							creatorProfileCard.className += ' role-mod';
							creatorProfileCard.setAttribute('title', 'Moderator');
							break;
					}
					role = role.parentElement.parentElement;
					role.parentElement.removeChild(role);
				}
			}
		}
		
		// CSS Override
		let styleOverride = document.createElement('style');
		styleOverride.id = 'xtension-css';
		styleOverride.innerHTML = `
			.node.node-teaser,
			.node.node-sidebar_teaser,
			.node.node-teaser i,
			.node.node-sidebar_teaser i,
			.node.node-teaser img,
			.node.node-sidebar_teaser img {
				transition: 0.15s!important;
			}

			/*
			.node.node-teaser img,
			.node.node-sidebar_teaser img {
				filter: contrast(0)!important;
			}
			*/

			.node.node-teaser h3.title,
			.node.node-sidebar_teaser h3.title {
				height: auto!important;
				white-space: nowrap!important;
				text-overflow: ellipsis!important;
			}

			.node.node-teaser:hover,
			.node.node-sidebar_teaser:hover {
				box-shadow: 3pt 12pt 12pt -6pt #0004;
				transform: rotate3d(0.9, -0.1, 0.1, 3deg) scale(1.02);
				z-index: 42;
			}

			.node.node-teaser.flair-fire:hover,
			.node.node-sidebar_teaser.flair-fire:hover {
				transform: rotate3d(0.9, -0.1, 0.1, -4.5deg) scale(1.02);
				border-color: #f40a;
			}

			.node.node-teaser.flair-star:hover,
			.node.node-sidebar_teaser.flair-star:hover {
				transform: rotate3d(-0.9, 0.1, -0.2, 4.5deg) scale(1.04);
				filter: drop-shadow(-0.2em -0.2em 2em #ffe8);
				outline: 0.32em solid #fe8;
				border: 0;
				border-radius: 0;
			}

			.views-responsive-grid.views-responsive-grid-horizontal.views-columns-2 > * {
				margin-bottom: 0;
			}

			.node.node-teaser .icon-bg,
			.node.node-sidebar_teaser .icon-bg {
				width: 100%!important;
				position: unset;
				margin-top: 0.4em;
				padding: 0;
			}

			.node.node-sidebar_teaser .icon-bg {
				min-height: 1.35em;
			}

			.node:hover .icon-bg {
				background: unset!important;
			}

			.node.node-teaser .left-icon,
			.node.node-sidebar_teaser .left-icon {
				color: inherit;
				margin-left: 0.1em;
				font-size: 0.8em;
				filter: unset!important;

			}

			.node.node-teaser .right-icon,
			.node.node-sidebar_teaser .right-icon {
				float: left!important;
				color: inherit;
				margin-left: 0.5em;
				font-size: 0.8em;
				filter: unset!important;
			}

			.node-image.node-sidebar_teaser .right-icon:first-of-type {
				margin-left: 0;
			}

			.node.node-teaser .left-icon.multiple-icon,
			.node.node-sidebar_teaser .left-icon.multiple-icon {
				float: right!important;
				color: inherit;
				margin-left: 0.5em;
				font-size: 0.8em;
				filter: unset!important;
			}

			.node.node-teaser .left-icon.flair-icon,
			.node.node-sidebar_teaser .left-icon.flair-icon {
				float: right!important;
				color: inherit;
				margin-right: 0.1em;
				font-size: 0.8em;
				filter: unset!important;
			}

			.node.node-teaser .right-icon.like-percentage,
			.node.node-sidebar_teaser .right-icon.like-percentage {
				margin-left: 0.3em;
			}

			.node.node-teaser h3.title {
				width: 100%;
				height: 2em;
			}

			.node.node-teaser.flair-lock:hover [title="Flair"],
			.node.node-sidebar_teaser.flair-lock:hover [title="Flair"] {
				color: #bbbf;
			}

			.node.node-teaser.flair-fire:hover [title="Flair"],
			.node.node-sidebar_teaser.flair-fire:hover [title="Flair"] {
				color: #f40f;
				filter: drop-shadow(0.12em -0.16em 0 #f806) drop-shadow(-0.12em -0.04em 0.06em #fd08);
			}

			.node.node-teaser.flair-star:hover [title="Flair"] {
				color: #fd4f;
				transform: rotate(18deg) scale(3.2);
				filter: drop-shadow(1pt 0.5pt 0.5pt #0002) drop-shadow(-0.04em -0.04em 0.1em #ffd8) drop-shadow(0.08em 0.08em 0.02em #fb0f);
			}

			.node.node-sidebar_teaser.flair-star:hover [title="Flair"] {
				color: #fd4f;
				transform: rotate(18deg) scale(2.4);
				filter: drop-shadow(1pt 0.5pt 0.5pt #0002) drop-shadow(-0.04em -0.04em 0.1em #ffd8) drop-shadow(0.12em 0.12em 0.01em #fb0f);
			}

			.node.node-video.node-teaser.flair-lock:hover > div > div div > a > img,
			.node.node-video.node-sidebar_teaser.flair-lock:hover > div div > div > a > img {
				filter: grayscale(1);
			}

			.node.node-video.node-teaser.flair-fire:hover > div > div div > a > img,
			.node.node-video.node-sidebar_teaser.flair-fire:hover > div > div div > a > img {
				filter: sepia(0.3) contrast(1.25) hue-rotate(-15deg) saturate(1.25);
			}

			.node.node-video.node-teaser.flair-star:hover > div > div div > a > img,
			.node.node-video.node-sidebar_teaser.flair-star:hover > div > div div > a > img {
				filter: sepia(0.5) brightness(1.1) contrast(1.25) saturate(1.5);
			}

			.node.node-teaser .blankimg,
			.node.node-sidebar_teaser .blankimg {
				display: block;
				border: #ccc 0.5pt dashed;
			}

			.node.node-teaser .blankimg a,
			.node.node-sidebar_teaser .blankimg a {
				filter: opacity(0);
			}

			.video-js .vjs-play-progress:before {
				top: -40%;
				color: #fffd;
				font-size: 1.8em;
				box-shadow: 0 8pt 8pt -4pt #0006;
			}

			.video-js .vjs-volume-level:before {
				display: none;
			}

			body.front #wrapper > section > .container,
			body.page-node-add form,
			body.page-node-edit form,
			body.page-user-friends #content > .container,
			body.page-user-liked #content > .container,
			body.page-subscriptions #content > .container,
			body.page-my-content #content > .container,
			body.page-messages #content > .container,
			body.page-user-edit form,
			body.page-comment #content > .container,
			body.page-forum #content > .container,
			body.node-type-video .node.node-video > .content,
			body.node-type-image .node.node-image > .content,
			#comments,
			#add-forum-comment-block,
			.region.region-content .view-id-profile,
			.node.node-journal,
			[class*="block-views"],
			.sidebar .block.block-facetapi,
			.sidebar .block.block-mainblocks,
			.region.region-sidebar .extra-content-block {
				background-color: #fafafa;
				border: 1px solid #ccc;
				border-radius: 4px!important;
				padding: 0.8em!important;
				margin: 0.5em 0.5em 1em 0.5em!important;
			}

			body.page-user #content {
				background-attachment: fixed;
			}

			body.page-user- #content > .container {
				background-color: #eee8;
			}

			body.page-user [class*="block-views"],
			body.page-user .sidebar .block.block-views,
			#block-mainblocks-user-connect,
			body.page-user #comments {
				background-color: #fafafad0;
			}

			body.page-node-add form,
			body.page-node-edit form {
				background-color: #ffffff;
			}

			body.front #wrapper > section > .container,
			body.page-user-friends #content > .container,
			body.page-user-liked #content > .container,
			body.page-subscriptions #content > .container,
			body.page-my-content #content > .container,
			body.page-messages #content > .container,
			body.page-user-edit form,
			body.page-comment #content > .container,
			body.page-forum #content > .container {
				margin-left: auto!important;
				margin-right: auto!important;
			}

			body.page-forum #content > .container .panel-group > * {
				margin-top: 1em;
			}

			body.node-type-video .node.node-video .node-info .node-views .glyphicon.glyphicon-heart,
			body.node-type-image .node.node-image .node-info .node-views .glyphicon.glyphicon-heart {
				margin-left: 0.5em;
			}

			.node.node-wide_teaser {
				padding: 0.8em!important;
				margin: 0.5em 0.5em 1em 0.5em!important;
			}

			.forum-post {
				margin: 0.5em 0.5em 1em 0.5em!important;
			}

			.forum-post > .panel-heading > .text-muted {
				color: #0008;
			}

			body.node-type-video .node.node-video > .content,
			body.node-type-image .node.node-image > .content {
				padding: 0!important;
			}

			body.node-type-video .node.node-video > .content > .node-buttons,
			body.node-type-image .node.node-image > .content > .node-buttons {
				margin-bottom: 0;
			}

			body.node-type-video .node.node-video > .content > .well {
				max-width: 100%!important;
				margin: 0;
			}

			.node-journal #comments {
				border: unset;
			}

			.view-profile.view-display-id-block {
				background-color: unset;
				padding: unset;
				box-shadow: unset;
			}

			#block-views-profile-block {
				background-color: #fafafa;
				box-shadow: 2pt 8pt 8pt -4pt #0004;
			}

			.region.region-sidebar .view-id-profile .views-responsive-grid > .views-row > div img,
			.region.region-content .view-id-profile .views-responsive-grid > .views-row > div img {
				border-radius: 50%;
				overflow: hidden;
				border: #0001 0.2em solid;
			}

			h1 {
				padding: 0.25em;
				margin: 0;
			}

			#comments > h2.title {
				padding: 0.4em;
				margin-bottom: 0.8em;
			}
			
			#add-forum-comment-block > h2,
			.extra-content-block {
				padding: 0.6em 0;
			}
			
			.region.region-sidebar .extra-content-block {
				background-color: #0000;
				border: 0;
				overflow: hidden;
			}
			
			.region.region-sidebar .extra-content-block iframe {
				transform: translateX(-8.75pt);
			}
			
			.extra-content-block > center + br,
			body.node-type-video #block-extra-content-extra-content-block-5, 
			body.node-type-video #block-extra-content-extra-content-block-8 {
				display: none;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content {
				position: relative;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img {
				margin: 5%;
				transform-origin: 48%;
				border: 0;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img:nth-child(1) {
				position: absolute;
				filter: contrast(0) brightness(0) opacity(0.15);
				animation: special-border 2.4s -1.5s infinite linear;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img:nth-child(2) {
				position: absolute;
				filter: contrast(0) sepia(1) saturate(3) brightness(1.7) opacity(0.9);
				animation: special-border 4.3s infinite linear;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img:nth-child(3) {
				position: absolute;
				filter: contrast(0) sepia(1) saturate(7) brightness(1.5) hue-rotate(120deg) opacity(0.9);
				animation: special-border 1.2s -0.71s infinite linear;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img:nth-child(4) {
				position: absolute;
				filter: contrast(0) sepia(1) saturate(7) brightness(1.2) hue-rotate(240deg) opacity(0.9);
				animation: special-border 3.4s -0.13s infinite linear;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img:nth-child(5) {
				position: absolute;
				filter: contrast(0) brightness(2) opacity(0.9);
				animation: special-border 0.7s -0.24s infinite linear;
			}
			
			body.page-user-603563 #block-views-profile-block .field-content > img:nth-child(6) {
				position: absolute;
			}
			
			@keyframes special-border {
				0% {transform: translate(2%, 0) rotateZ(40deg) scale(1.03);}
				100% {transform: translate(2%, 0) rotateZ(400deg) scale(1.03);}
			}
			
			body.page-user.page-user- #block-views-profile-block .field-content.role-admin > img {
				border: #f88 6pt solid;
			}
			
			body.page-user.page-user- #block-views-profile-block .field-content.role-mod > img {
				border: #8af 6pt solid;
			}
			`;
		document.head.appendChild(styleOverride);
	}
}, true);