code:
# Deprecated!

Fix have been included in Guard Play mod, so there's no need in this one.

# Guard Play - Loading Order Patch

Fixes loading order of Guard Play mod and its dependencies (error: `Cannot read property 'sts' of undefined`).

## Requirements

- [Guard Play](https://gitgud.io/AutomaticInfusion/kp_guard_play/)

## Download

Download [the latest version of the mod][latest].

## Installation

Use [installation guide](https://gitgud.io/karryn-prison-mods/modding-wiki/-/wikis/Installation/).

[latest]: https://gitgud.io/karryn-prison-mods/guard-play-patch/-/releases/permalink/latest "The latest release"

repo_name: karryn/prison

license: unknown


code:
[General]
gameName=karrynsprison
version=1.0.0
category="24"
hasCustomURL=true
url=https://gitgud.io/karryn-prison-mods/guard-play-patch/-/blob/master/README.md
pictureUrl=https://gitgud.io/uploads/-/system/project/avatar/28774/patch.png
modName="[DEPRECATED] Guard Play - Loading Order Patch"
description="Deprecated: have been included in Guard Play mod"
author=madtisa
dependencies=8,10

[Plugins]
GitGud\projectId=28774
GitGud\releaseId=0.0.0
GitGud\packageType=source-package


code:
// #MODS TXT LINES:
//    {"name":"EEL","status":true,"parameters":{}},
//    {"name":"GuardPlay","status":true,"parameters":{}},
// #MODS TXT LINES END


code:
# IDE, temp, generated, and other local-only files
.idea/
*.iml
node_modules/
tweego.exe
*.html
*.7z

* Ignoring working folder for Quin2k
mod/
*.code-workspace
release/

repo_name: fizzyboi/degrees

path: .gitignore

license: mit


code:
<NotepadPlus>
	<UserLang name="Sugarcube4" ext="twee tw" udlVersion="2.1">
		<Settings>
			<Global caseIgnored="no" allowFoldOfComments="no" foldCompact="yes" forcePureLC="0" decimalSeparator="0" />
			<Prefix Keywords1="yes" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
		</Settings>
		<KeywordLists>
			<Keywords name="Comments">00 01 02 03/% 03/* 03<!-- 04%/ 04*/ 04--></Keywords>
			<Keywords name="Numbers, prefix1"></Keywords>
			<Keywords name="Numbers, prefix2"></Keywords>
			<Keywords name="Numbers, extras1"></Keywords>
			<Keywords name="Numbers, extras2"></Keywords>
			<Keywords name="Numbers, suffix1"></Keywords>
			<Keywords name="Numbers, suffix2"></Keywords>
			<Keywords name="Numbers, range"></Keywords>
			<Keywords name="Operators1">+ - * / = += -= *= /= ++ -- == != === !== > < >= <= ! && || & | ( )</Keywords>
			<Keywords name="Operators2"></Keywords>
			<Keywords name="Folders in code1, open"><<if</Keywords>
			<Keywords name="Folders in code1, middle"></Keywords>
			<Keywords name="Folders in code1, close"><</if>></Keywords>
			<Keywords name="Folders in code2, open"></Keywords>
			<Keywords name="Folders in code2, middle"></Keywords>
			<Keywords name="Folders in code2, close"></Keywords>
			<Keywords name="Folders in comment, open"></Keywords>
			<Keywords name="Folders in comment, middle"></Keywords>
			<Keywords name="Folders in comment, close"></Keywords>
			<Keywords name="Keywords1">$ _</Keywords>
			<Keywords name="Keywords2"></Keywords>
			<Keywords name="Keywords3"></Keywords>
			<Keywords name="Keywords4"></Keywords>
			<Keywords name="Keywords5"></Keywords>
			<Keywords name="Keywords6"></Keywords>
			<Keywords name="Keywords7"></Keywords>
			<Keywords name="Keywords8"></Keywords>
			<Keywords name="Delimiters">00:: 01 02((EOL)) 03<< 04 05>> 06[[ 07 08]] 09< 10 11> 12'' 13 14'' 15// 16 17// 18@@ 19 20@@ 21[img[ 22 23]]</Keywords>
		</KeywordLists>
		<Styles>
			<WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="COMMENTS" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" />
			<WordsStyle name="LINE COMMENTS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS1" fgColor="004080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
			<WordsStyle name="KEYWORDS2" fgColor="8080C0" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="OPERATORS" fgColor="800040" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
			<WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
			<WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="DELIMITERS1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="5" fontSize="12" nesting="0" />
			<WordsStyle name="DELIMITERS2" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="50334724" />
			<WordsStyle name="DELIMITERS3" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="1024" />
			<WordsStyle name="DELIMITERS4" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="32" />
			<WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="16" />
			<WordsStyle name="DELIMITERS7" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
			<WordsStyle name="DELIMITERS8" fgColor="8080FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
		</Styles>
	</UserLang>
</NotepadPlus>


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="48" height="48" version="1.1" inkscape:version="0.48.0 r9654">
  <defs id="defs4"/>
  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="11.313708" inkscape:cx="27.203376" inkscape:cy="26.578528" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1280" inkscape:window-height="968" inkscape:window-x="-4" inkscape:window-y="-4" inkscape:window-maximized="1">
	<inkscape:grid type="xygrid" id="grid2985" empspacing="5" visible="true" enabled="true" snapvisiblegridlinesonly="true"/>
  </sodipodi:namedview>
  <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1004.3622)">
	<g id="g3000" transform="translate(-6,1003)">
	  <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path2987" d="m 30,2.3621826 -20,10.0000004 20,10 20,-10 z" style="fill:#f9f9f9;stroke:none"/>
	  <path style="fill:#ececec;stroke:none" d="m 30,22.362183 0,25 20,-10 0,-25 z" id="path2989" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
	  <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path2991" d="m 30,22.362183 0,25 -20,-10 0,-25 z" style="fill:#cccccc;stroke:none"/>
	  <path inkscape:connector-curvature="0" id="path2993" d="M 30,2.3749996 10,12.375 l 0,25 20,10 20,-10 0,-25 L 30,2.3749996 z" style="fill:none;stroke:#4d4d4d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
	</g>
  </g>
  <metadata>
	<rdf:RDF>
	  <cc:Work>
		<dc:format>image/svg+xml</dc:format>
		<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
		<cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
		<dc:publisher>
		  <cc:Agent rdf:about="http://openclipart.org/">
			<dc:title>Open Clip Art Library</dc:title>
		  </cc:Agent>
		</dc:publisher>
		<dc:title>Sugar Cube icon</dc:title>
		<dc:date>2010-10-10T11:46:52</dc:date>
		<dc:description>A sugar cube.</dc:description>
		<dc:source>http://openclipart.org/detail/89407/sugar-cube-icon-by-jhnri4</dc:source>
		<dc:creator>
		  <cc:Agent>
			<dc:title>jhnri4</dc:title>
		  </cc:Agent>
		</dc:creator>
		<dc:subject>
		  <rdf:Bag>
			<rdf:li>SVG</rdf:li>
			<rdf:li>block</rdf:li>
			<rdf:li>clip art</rdf:li>
			<rdf:li>clipart</rdf:li>
			<rdf:li>cube</rdf:li>
			<rdf:li>icon</rdf:li>
			<rdf:li>sugar</rdf:li>
			<rdf:li>white</rdf:li>
		  </rdf:Bag>
		</dc:subject>
	  </cc:Work>
	  <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
		<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
		<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
		<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
	  </cc:License>
	</rdf:RDF>
  </metadata>
</svg>


code:
#!/bin/bash

if [ ! -f "$(command -v tweego)" ]; then
	echo "Cannot find tweego. Please install tweego before compiling."
	exit 1
fi

VERSION="$(git describe --tags --always --dirty)"

TWEEGO_PATH="./StoryFormats" tweego -o "Degrees of Lewdity $VERSION.html" game
cp "Degrees of Lewdity $VERSION.html" "Degrees of Lewdity.html"
echo "Done: \"Degrees of Lewdity.html\""

path: compile


code:
@set TWEEGO_PATH=%cd%\StoryFormats
@tweego -o "Degrees of Lewdity VERSION.html" game


code:
#!/usr/bin/env python3
import fileinput
import re
import sys

WARNING = '\033[93m'
ENDC = '\033[0m'

def myprint(*args):
	global filename
	print(WARNING, filename + ":", ENDC,*args)

def yield_line_and_islastline(f):
	global filename
	global linenumber
	try:
		prevline = next(f)
		filename = fileinput.filename()
		linenumber = fileinput.filelineno()
	except StopIteration:
		return
	for line in f:
		yield (prevline, f.isfirstline())
		filename = fileinput.filename()
		linenumber = fileinput.filelineno()
		prevline = line
	yield prevline, True

pattern = re.compile(r'(<<(\/?) *(if|for|else|switch|case|replace|link)[^a-zA-Z][^<>]*)')

tagfound = []
try:
	for line, isLastLine in yield_line_and_islastline(fileinput.input()):
		for (whole,end,tag) in re.findall(pattern,line):
			if tag == "else" or tag == 'case':
				if len(tagfound) == 0:
					myprint("Found", tag, "but with no opening tag:")
					myprint("  ", linenumber,":", whole)
					fileinput.nextfile()
				lasttag = tagfound[-1]
				if (tag == "else" and lasttag["tag"] != "if") or (tag == "case" and lasttag["tag"] != "switch"):
					myprint("Mismatched else: Opening tag was:")
					myprint("  ",lasttag["linenumber"],":", lasttag["whole"])
					myprint("But this tag was:")
					myprint("  ",linenumber,":", whole)
					fileinput.nextfile()
					break
			elif end != '/':
				tagfound.append({"whole": whole, "linenumber":linenumber,"tag":tag})
			else:
				if len(tagfound) == 0:
					myprint("Found closing tag but with no opening tag:")
					myprint("  ", linenumber,":", whole)
					fileinput.nextfile()
					break
				lasttag = tagfound.pop()
				if lasttag["tag"] != tag:
					myprint("Mismatched tag: Opening tag was:")
					myprint("  ",lasttag["linenumber"],":", lasttag["whole"])
					myprint("Closing tag was:")
					myprint("  ",linenumber,":", whole)
					fileinput.nextfile()
					break

		if isLastLine:
			if len(tagfound) != 0:
				myprint("End of file found but", len(tagfound), ("tag hasn't" if len(tagfound)==1 else "tags haven't"), "been closed:")
			for tag in tagfound:
				myprint("  ", tag["linenumber"],":", tag["whole"])
			tagfound = []
except UnicodeDecodeError as e:
	myprint(e)
	print("   Hint: In Linux, you can get more details about Unicode errors by running:")
	print("	 isutf8", fileinput.filename())
	print("   :Note it might be caused by ", filename)


code:
:: StoryData
{
"ifid": "A6AFB52D-38F2-4CB5-86A8-54BF665670D6"
}

:: StorySettings
ifid:53a77e3c-607d-4e9a-9da4-db728646c388

:: StoryTitle
Degrees of Lewdity

:: Start [nobr nosave]
<<effects>>

This work of fiction contains content of a sexual nature and is inappropriate for minors. All characters depicted are at least 18 years of age. Everything is consensual role play, and any animals are actually people in costumes.

Save files are stored in your browser's cache. Save to file in the Export/Import tab in options to avoid losing them.

<<initsettings>>
<<settings>>

[[Begin->Start2]]

:: Start2 [nobr]

<<variablesStart2>>
<<effects>>

Welcome to the alpha of Degrees of Lewdity!

If you want to avoid trouble, dress modestly and stick to safe, well-lit areas. Nights are particularly dangerous. Dressing lewd will attract attention, both good and bad.

The new school year starts tomorrow at 9:00. The bus service is the easiest way to get around town. Don't forget your uniform!

<<link [[Next|Orphanage Intro]]>><</link>>

<<if $debug is 1>><<set $cheatdisable to "f">><<set $money to 500000>>
	<<link [[School Start|Oxford Street]]>><<pass 1 day>><</link>>

	<<link [[Science Start|Oxford Street]]>><<pass 1 day>><<pass 2 hours>><</link>>

	<<link [[Maths Start|Oxford Street]]>><<pass 1 day>><<pass 3 hours>><</link>>

	<<link [[English Start|Oxford Street]]>><<pass 1 day>><<pass 4 hours>><</link>>

	<<link [[History Start|Oxford Street]]>><<pass 1 day>><<pass 6 hours>><</link>>

	<<link [[Swimming Start|Oxford Street]]>><<pass 1 day>><<pass 7 hours>><</link>>

	<<link [[Testing Room]]>><<upperstrip>><<lowerstrip>><<underlowerstrip>><</link>>

	<<link [[Robin Low Trauma Low Love|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 0>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 2>><<trauma 60>><</link>>

	<<link [[Robin Low Trauma Medium Love|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 50>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 2>><<trauma 60>><</link>>

	<<link [[Robin Low Trauma High Love|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 90>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 2>><<trauma 60>><</link>>

	<<link [[Robin High Trauma Low Love|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 0>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>>

	<<link [[Robin High Trauma Medium Love|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 50>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>>

	<<link [[Robin High Trauma High Love|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 90>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>>

	<<link [[Robin After Paying Police With Money|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $robinpolicepay to 1>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>>

	<<link [[Robin After Paying Police With Body|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $robinpolicebody to 1>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>>

	<<link [[Robin's Debt Paid|Robin's Room Entrance]]>><<npc Robin>><<endevent>><<set $robinpaid to 1>><<set $NPCName[$NPCNameList.indexOf("Robin")].init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>>

<</if>>


code:
Config.history.controls = false;

Config.history.maxStates = 1;

State.initPRNG();

window.versionUpdateCheck = true;

Config.saves.onLoad = function (save) {
	window.versionUpdateCheck = true;
}

/*LinkNumberify and images will enable or disable the feature completely*/
/*debug will enable or disable the feature only for new games*/
window.StartConfig = {
	"debug": 1,
	"enableImages": true,
	"enableLinkNumberify": true,
	"version": "0.2.5.3",
}

config.saves.autosave = "autosave";

Config.saves.isAllowed = function () {
	if (tags().contains("nosave")) {
		return false;
	}
	return true;
};

prehistory['version-update'] = function () {
	if (Story.has('VersionUpdate')) {
		try {
			Wikifier.wikifyEval(Story.get('VersionUpdate').text);
		}
		catch (ex) {
			Alert.error('VersionUpdate', ex.message);
		}
	}
};

importStyles("style.css")
.then(function () {
	console.log("External Style Sheet Active")
})
.catch(function (err) {
	console.log("External Style Sheet Missing");
});


code:
:: Widgets Version Info [widget]
<<widget "versioninfo">><<nobr>>

Degrees of Lewdity <<print StartConfig.version>>

"ETA Soon" edition

More information can be found at [[https://vrelnir.blogspot.com/| "https://vrelnir.blogspot.com/"]]

<</nobr>><</widget>>


code:
mouse.tooltip {font-weight: normal;}

mouse.tooltip span {
	z-index:210;
	display:none;
	padding:14px 10px;
	margin-top:50px; margin-left:-40px;
	min-width: 50px;
	max-width: 450px !important;
	line-height:20px;
	border-radius:2px;
	box-shadow: 0px 0px 8px 4px #000;
}

mouse.tooltip:hover span {
	display:inline;
	position:absolute;
	border:2px solid #000000;
	color: #000000;
	font-weight: normal;
	text-decoration: none;
	font-size:1.0em;
	background:#C4C4C4 repeat-x 0 0;
}

#saveDataInput {
	min-width: inherit;
	width: 95%
}

.passage {
	-o-transition:.2s ease-in;
	transition:.2s ease-in;
}

.closeButton, .macro-button {
	width: 100%;
	font-size: 110%;
	max-width: 240px;
	background-color: #222;
	border: 1px solid #444;
}

.fixedClose {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	background-color: #222;
	width: auto;
	height: auto;
	margin: 0;
	z-index: 1;
	padding: 0;
	border-bottom: 1px solid #fff;
}

.macro-button:hover {
	background-color: #333;
	border: 1px solid #fff;
}

.customOverlay {
	display: block;
	position:fixed;
	top: 20px;
	bottom: 20px;
	left: 20px;
	right:20px;
	height: auto;
	width: auto;
	border: 2px #fff solid;
	background-color: #222;
	text-align: left;
	padding: 0 3px 3px;
	overflow-y: scroll;
	z-index: 1000;
	max-width: 1000px;
}

@media only screen and (min-width: 801px) {
	.customOverlay {
		left: 300px;
	}
}

.debugOverlay {
	display: block;
	position: fixed;
	top: 20px;
	bottom: 20px;
	right: 20px;
	height: auto;
	width: auto;
	max-width: 700px;
	z-index: 1001;
	padding: 3px;
	border: 2px #fff solid;
	background-color: #333;
	overflow-y: scroll;
}

.overlayMenu ul {
	text-align: left;
	list-style: none;
	margin: 0;
	padding: 0;
}

.overlayMenu ul li {
	float: left;
	height: 35px;
	margin-right: 1px;
}

.debugOverlay ul li input {
	width: 80px;
	margin: 0;
}

.overlayItem {
	border-top: 2px #fff solid;
	clear: both;
}

#statsHelp {
	overflow-y: scroll;
	height: auto;
	max-height: 200px;
}

.hidden {
	display: none;
}

.close {
	background-color: darkred;
}

#savesList {
	border: 1px solid #ccc;
	max-width: 700px;
	width: 95%;
}

#savesList tr {
	border-top: 1px solid #999;
	margin: 1px;
	line-height: 1;
}

#savesList tr:first-child {
	border-top: 1px solid #ccc;
}

#savesList tr td:first-child {
	padding: 8px;
}

#savesList tr td {
	margin: 1px;
}

.datestamp {
	font-size: 13px;
}

.right {
	float: right;
}

.saveMenuButton {
	background-color: #4372FF !important;
	margin: 4px 4px 4px 0;
}

.saveMenuButton:hover {
	background-color: #4372FF !important;
}

#menu {
	display: none;
}

.settingsToggle {
	display: inline-block;
	float: left;
	width: 45%;
	min-width: 275px;
	padding: 3px;
	margin: 5px;
	border: 1px solid #666;
}

#divmap {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 256px;

}

#map {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 10;
}

#maparrow {
		position: absolute;
		left: 0px;
		top: 0px;
	z-index: 20;
}

#ui-bar-toggle {
	z-index: 500;
}

#ui-bar {
	z-index: 300;
}

body.has-images header#title {
	display: none;
}
body.has-images #story-caption {
	/* 256 px: images
	2.5 em: ui-bar-body margin-top */
	margin-top: calc(256px - 2.5em);
}

}

.nostyle {
	list-style: none;
}

/*Wardrobe UI*/
.clothingBox {
	display: inline-block;
	float: left;
	border: solid 2px #fff;
	height: 250px;
	width: 270px;
	padding: 4px;
	margin: 2px;
}

.clothingBox div{
	position: relative;
	bottom: 0px;
	height: 190px;
	overflow-y: scroll;
}

.clothingBox div ul{
	margin-left: 0px;
}

.red {
	color: #EC3535;
}

.pink {
	color: #E40081;
}

.purple {
	color: #AA4BC8;
}

.blue {
	color: #4372FF;
}

.lblue {
	color: #559BC0;
}

.teal {
	color: #08C1C1;
}

.green {
	color: #38B20A;
}

.brown {
	color: #4C2217;
}

.brat {
	color: #B75D41;
}

.meek {
	color: #C44B8B;
}

.def {
	color: #D20000;
}

.hide a {
	color: #eee;
	text-decoration: none;
}

.hide a:hover {
	color: #eee;
	text-decoration: none;
}

.sub {
	color: #AA4BC8;
}

.gold {
	color: #FFD700;
}

.yellow {
	color: #FFD700;
}

.orange {
	color: #f28500
}

.tangerine {
	color: #f28500
}

.black {
	color: #929292
}

.brown {
	color: #aa7243
}

.lightbrown {
	color: #C5793A
}

.platinum {
	color: #FEF593
}

.strawberry {
	color: #F08C51
}

.lewd {
	color: #E04880
}

.grey {
	color: #B7B7B7
}

.general {
	opacity: 0.99;

}

.wetstage2 {
	opacity: 0.90;
		filter: brightness(0.95);

}

.wetstage3 {
	opacity: 0.75;
		filter: brightness(0.90);

}

#stats {
	height: 20px;
	width: 256px;
	overflow: hidden;
	border-top: #fff 2px solid;
	border-bottom: #fff 2px solid;
	position: fixed;
	top: 232px;
	left: 0px;
}

#stats > * {
	position: absolute;
	top: 232px;
	left: 0px;
}

.icon_ui {
	position: static !important;
	height: 14px;
	width: 14px;
}

#statbar {
	position: relative;
	left: 0px;
	top: 9px;
	z-index: 0;
}

#img {
	height: 256px;
	width: 256px;
	overflow: hidden;

	position: fixed;
	top: 0px;
	left: 0px;
}

#img > * {
	position: absolute;
	top: 0px;
	left: 0px;
}

.icon_ui {
	position: static !important;
	height: 14px;
	width: 14px;
}
.layer-bg {
	z-index: 0;
}

#relative {
	position: relative;
	width: 0px;
	height: 0px;
	z-index: 10;
}

#icon {
	position: static;
	vertical-align:middle;
}

#daystate {
	position: fixed;
	left: 0px;
	top: 0px;
	z-index: 10;
}

#weather {
	position: fixed;
	left: 0px;
	top: 64px;
	z-index: 10;
}

#location {
	position: fixed;
	left: 0px;
	top: 128px;
	z-index: 10;
}

#spray1 {
	position: fixed;
	left: 0px;
	top: 192px;
	z-index: 10;
}

#spray2 {
	position: fixed;
	left: 16px;
	top: 192px;
	z-index: 10;
}

#spray3 {
	position: fixed;
	left: 32px;
	top: 192px;
	z-index: 10;
}

#spray4 {
	position: fixed;
	left: 48px;
	top: 192px;
	z-index: 10;
}

#spray5 {
	position: fixed;
	left: 64px;
	top: 192px;
	z-index: 10;
}

#divandroidxray {
	position: relative;
	display: inline-block;
	height: 256px;
	width: 256px;
}

#xrayvaginal, #divsex #xrayvaginal {
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 3;
}

#xrayvaginalcum, #divsex #xrayvaginalcum {
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 4;
}

#xraypenile, #divsex #xraypenile {
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 2;
}

#xrayanal, #divsex #xrayanal {
	position: absolute;
	left: 512px;
	top: 0px;
	z-index: 1;
}

#xrayandroidanal, #divsex #xrayandroidanal {
	position: relative;
	left: 0px;
	top: -150px;
	z-index: 1;
}

/*
removed unused:
#arm #underacc #legs #feet #bottom #top #sleeve #outer #outersleeve #neckacc
*/

.layer-head-back {
	z-index: 0;
}
.layer-basehead {
	z-index: 5;
}
.layer-backhair {
	z-index: 10;
}
.layer-back-lower {
	z-index: 15;
}
.layer-base {
	z-index: 20;
}
.layer-hirsute {
	z-index: 21;
}

.layer-eyes {
	z-index: 30;
}
.layer-sclera {
	z-index: 35;
}
.layer-mouth {
	z-index: 40;
}
.layer-breasts {
	z-index: 35;
}
.layer-blush {
	z-index: 50;
}
.layer-tears {
	z-index: 55;
}
.layer-hair {
	z-index: 60;
}
.layer-brow {
	z-index: 62;
}
.layer-lashes {
	z-index: 64;
}
.layer-legs {
	z-index: 64;
}
.layer-under_lower {
	z-index: 65;
}
.layer-under_lower-top {
	z-index: 67;
}
.layer-under_upper {
	z-index: 70;
}
.layer-under_upper-top {
	z-index: 72;
}
.layer-under_lower-high {
	z-index: 75;
}
.layer-under_lower_top-high {
	z-index: 77;
}
.layer-under {
	z-index: 75;
}
.layer-feet {
	z-index: 85;
}
.layer-lower {
	z-index: 90;
}
.layer-lower_top {
	z-index: 92;
}
.layer-upper {
	z-index: 95;
}
.layer-upper_top {
	z-index: 97;
}

.layer-collar {
	z-index: 103;
}

.layer-rightarm {
	z-index: 105;
}
.layer-leftarm {
	z-index: 105;
}
.layer-rightarmclothes {
	z-index: 110;
}
.layer-leftarmunderclothes {
	z-index: 107;
}
.layer-rightarmunderclothes {
	z-index: 107;
}
.layer-leftarmclothes {
	z-index: 110;
}
.layer-lower-high {
	z-index: 115;
}
.layer-lower-top-high {
	z-index: 117;
}
.layer-hairforwards {
	z-index: 132;
}
.layer-fronthair {
	z-index: 133;
}
.layer-brow {
	z-index: 138;
}
.layer-neck {
	z-index: 140;
}
.layer-face {
	z-index: 145;
}
.layer-head {
	z-index: 150;
}
.layer-penis {
	z-index: 160;
}

.layer-parasite {
	z-index: 160;
}
#divsex {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 768px;

}
#divsex > *, #divandroidsex > * {
	position: absolute;
	left: 256px;
	top: 0px;
}

#divandroidsex {
		position: relative;
		display: inline-block;
		height: 256px;
		width: 256px;
		left: -256px;
}

#closepenis, #divsex #closepenis {
		position: absolute;
		left: 321px;
		top: -30px;
	z-index: 250;
}

#closeanus, #divsex #closeanus {
		position: absolute;
		left: 451px;
		top: -30px;
	z-index: 250;
}

#closevagina, #divsex #closevagina {
		position: absolute;
		left: 386px;
		top: -30px;
	z-index: 250;
}

.layer-voreback {
	z-index: -20;
}
.layer-sexbaseback {
	z-index: 1;
}
.layer-sexpenis {
	z-index: 5;
}
.layer-beastback {
	z-index: 6;
}
.layer-sexbase {
	z-index: 10;
}
.layer-sexbaseoverlay {
	z-index: 12;
}
.layer-sexeyes {
	z-index: 20;
}
.layer-sexsclera {
	z-index: 30;
}
.layer-sexmouth {
	z-index: 40;
}
.layer-sexblush {
	z-index: 50;
}
.layer-sextears {
	z-index: 60;
}
.layer-beastfront {
	z-index: 65;
}
.layer-sexbrow {
	z-index: 80;
}
.layer-sexlashes {
	z-index: 90;
}
.layer-sexbasefront {
	z-index: 100;
}
.layer-doggyhirsute {
	z-index: 101;
}
.layer-sexunder {
	z-index: 102;
}
.layer-sexlower {
	z-index: 104;
}
.layer-sexupper {
	z-index: 106;
}
.layer-sexaboveclothes {
	z-index: 108;
}

.layer-beastforeground {
	z-index: 120;
}

.layer-apparatus {
	z-index: 130;
}
.layer-midapparatus {
	z-index: 131;
}
.layer-frontapparatus {
	z-index: 132;
}

.layer-sexhair {
	z-index: 140;
}

.layer-sexarmsbound {
	z-index: 150;
}

.layer-foreground {
	z-index: 200;
}
.layer-frontforeground {
	z-index: 220;
}

/*! <<numberpool>> macro set for SugarCube v2 */
div[id|="numberbox-body"] {
	display: inline-block;
}
div[id|="numberbox-body"] input {
	min-width: 3em;
	width: 3em;
	text-align: center;
}
div[id|="numberbox-body"] button {
	font-family: "tme-fa-icons";
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: normal;
	speak: none;
	padding: 0.4em 0.6em;
}
div[id|="numberbox-body"] button[id|="numberbox-minus"] {
	margin-right: 0.4em;
}
div[id|="numberbox-body"] button[id|="numberbox-plus"] {
	margin-left: 0.4em;
}

div[id|="numberslider-body"] {
	display: inline-block;
	width: 100%;
}
div[id|="numberslider-body"] span {
	display: inline-block;
	/*font-size: 1.25em;*/
	margin-left: 0.25em;
	min-width: 3em;
	text-align: center;
	vertical-align: middle;
}
div[id|="numberslider-body"] input {
	-webkit-appearance: none;
	cursor: pointer;
	height: 1.25em;
	width: 95%;
	max-width: 20em;
	vertical-align: middle;
}
div[id|="numberslider-body"] input:focus {
	outline: none;
}
div[id|="numberslider-body"] input::-webkit-slider-runnable-track {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
	cursor: pointer;
	height: 10px;
	width: 100%;
}
div[id|="numberslider-body"] input::-webkit-slider-thumb {
	-webkit-appearance: none;
	background: #ddd;
	border: 3px solid #aaa;
	border-radius: 0;
	cursor: pointer;
	height: 18px;
	margin-top: -5px;
	width: 33px;
}
div[id|="numberslider-body"] input:focus::-webkit-slider-runnable-track {
	background: #222;
}
div[id|="numberslider-body"] input::-moz-range-track {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
	cursor: pointer;
	height: 10px;
	width: 100%;
}
div[id|="numberslider-body"] input::-moz-range-thumb {
	background: #ddd;
	border: 3px solid #aaa;
	border-radius: 0;
	cursor: pointer;
	height: 18px;
	width: 33px;
}
div[id|="numberslider-body"] input::-ms-track {
	background: transparent;
	border-color: transparent;
	color: transparent;
	cursor: pointer;
	height: 10px;
	width: 99%; /* fallback for MS browsers without support for calc() */
	width: calc(100% - 1px);
}
div[id|="numberslider-body"] input::-ms-fill-lower {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
}
div[id|="numberslider-body"] input::-ms-fill-upper {
	background: #222;
	border: 1px solid #444;
	border-radius: 0;
}
div[id|="numberslider-body"] input::-ms-thumb {
	background: #ddd;
	border: 3px solid #aaa;
	border-radius: 0;
	cursor: pointer;
	height: 16px;
	width: 33px;
}

label {
	cursor: pointer;
}

.meter {
	position: relative;
	height: 0.3em;
	width: 100%;
	background-color: gray;
	text-align: center;
	z-index: -10;
}
.redbar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #EC3535;
	z-index: 0;
}

.pinkbar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #E40081;
	z-index: 0;
}

.purplebar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #AA4BC8;
	z-index: 0;
}

.bluebar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #4372FF;
	z-index: 0;
}

.lbluebar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #559BC0;
	z-index: 0;
}

.tealbar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #08C1C1;
	z-index: 0;
}

.greenbar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #38B20A;
	z-index: 0;
}

.goldbar {
	position: absolute;
	left: 0;
	top: 0;
	height: 0.3em;
	background-color: #FFD700;
	z-index: 0;
}

/*
 * Hair/Eye/Clothing colour filters
 * Expected document structure:
 * - some outer element has .hair-$haircolour (or .eye-/.lower-/.upper-/.under-) class
 * - inner image element has .colour-hair (or -eye/-lower/-upper/-under) class
 */
/* Hair: base is red */
.hair-black .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(40%) contrast(100%);
	filter: hue-rotate(0deg) saturate(0%) brightness(40%) contrast(100%);
}
.hair-platinumblond .colour-hair {
	-webkit-filter: hue-rotate(57deg) saturate(250%) brightness(180%) contrast(60%) sepia(0.75);
	filter: hue-rotate(57deg) saturate(250%) brightness(180%) contrast(60%) sepia(0.75);
}
.hair-blond .colour-hair {
	-webkit-filter: hue-rotate(60deg) saturate(130%) brightness(135%) contrast(100%);
	filter: hue-rotate(60deg) saturate(130%) brightness(135%) contrast(100%);
}
.hair-blue .colour-hair {
	-webkit-filter: hue-rotate(210deg) saturate(200%) brightness(60%) contrast(150%);
	filter: hue-rotate(210deg) saturate(200%) brightness(60%) contrast(150%);
}
.hair-brown .colour-hair {
	-webkit-filter: hue-rotate(40deg) saturate(100%) brightness(80%) contrast(100%);
	filter: hue-rotate(40deg) saturate(100%) brightness(80%) contrast(100%);
}
.hair-lightbrown .colour-hair {
	-webkit-filter: hue-rotate(40deg) saturate(100%) brightness(100%) contrast(110%);
	filter: hue-rotate(40deg) saturate(100%) brightness(100%) contrast(110%);
}
.hair-darkbrown .colour-hair {
	-webkit-filter: hue-rotate(40deg) saturate(70%) brightness(20%) contrast(100%);
	filter: hue-rotate(40deg) saturate(70%) brightness(20%) contrast(100%);
}
.hair-strawberryblond .colour-hair {
	-webkit-filter: hue-rotate(30deg) saturate(110%) brightness(110%) contrast(100%);
	filter: hue-rotate(30deg) saturate(110%) brightness(110%) contrast(100%);
}
.hair-ginger .colour-hair {
	-webkit-filter: hue-rotate(55deg) saturate(200%) brightness(110%) contrast(100%);
	filter: hue-rotate(55deg) saturate(200%) brightness(110%) contrast(100%);
}
.hair-green .colour-hair {
	-webkit-filter: hue-rotate(90deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(90deg) saturate(100%) brightness(100%) contrast(100%);
}
.hair-teal .colour-hair {
	-webkit-filter: hue-rotate(165deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(165deg) saturate(100%) brightness(100%) contrast(100%);
}
.hair-pink .colour-hair {
	-webkit-filter: hue-rotate(-20deg) saturate(70%) brightness(130%) contrast(100%);
	filter: hue-rotate(-20deg) saturate(70%) brightness(130%) contrast(100%);
}
.hair-hotpink .colour-hair {
	-webkit-filter: hue-rotate(320deg) saturate(100%) brightness(120%) contrast(100%);
	filter: hue-rotate(320deg) saturate(100%) brightness(120%) contrast(100%);
}
.hair-softpink .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(30%) brightness(190%) contrast(100%);
	filter: hue-rotate(0deg) saturate(30%) brightness(190%) contrast(100%);
}
.hair-purple .colour-hair {
	-webkit-filter: hue-rotate(-80deg) saturate(110%) brightness(60%) contrast(200%);
	filter: hue-rotate(-80deg) saturate(110%) brightness(60%) contrast(200%);
}
.hair-red .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
}
.hair-crimson .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(155%) brightness(75%) contrast(135%);
	filter: hue-rotate(0deg) saturate(155%) brightness(75%) contrast(135%);
}
.hair-white .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(160%) contrast(100%);
	filter: hue-rotate(0deg) saturate(0%) brightness(160%) contrast(100%);
}
.hair-snowwhite .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(190%) contrast(100%);
	filter: hue-rotate(0deg) saturate(0%) brightness(190%) contrast(100%);
}
.hair-deepblue .colour-hair {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(190%) contrast(100%);
	filter: hue-rotate(240deg) saturate(100%) brightness(40%) contrast(120%);
}

/* Eye: base is hazel */
.eye-dark-blue .colour-eye {
	-webkit-filter: hue-rotate(170deg) brightness(90%) saturate(100%) contrast(140%);
	filter: hue-rotate(170deg) brightness(90%) saturate(100%) contrast(140%);
}
.eye-light-blue .colour-eye {
	-webkit-filter: hue-rotate(160deg) brightness(180%) saturate(120%) contrast(100%);
	filter: hue-rotate(160deg) brightness(180%) saturate(120%) contrast(100%);
}
.eye-purple .colour-eye {
	-webkit-filter: hue-rotate(-120deg) brightness(80%) saturate(200%) contrast(190%);
	filter: hue-rotate(-120deg) brightness(80%) saturate(200%) contrast(190%);
}
.eye-hazel .colour-eye {
	-webkit-filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
}
.eye-amber .colour-eye {
	-webkit-filter: hue-rotate(0deg) brightness(170%) saturate(100%) contrast(100%);
	filter: hue-rotate(0deg) brightness(170%) saturate(100%) contrast(100%);
}
.eye-green .colour-eye {
	-webkit-filter: hue-rotate(30deg) brightness(140%) saturate(100%) contrast(100%);
	filter: hue-rotate(30deg) brightness(140%) saturate(100%) contrast(100%);
}
.eye-lightgreen .colour-eye {
	-webkit-filter: hue-rotate(30deg) brightness(170%) saturate(160%) contrast(100%);
	filter: hue-rotate(30deg) brightness(170%) saturate(160%) contrast(100%);
}
.eye-red .colour-eye {
	-webkit-filter: hue-rotate(335deg) saturate(200%) brightness(100%) contrast(140%);
	filter: hue-rotate(335deg) saturate(200%) brightness(100%) contrast(140%);
}
.eye-pink .colour-eye {
	-webkit-filter: hue-rotate(-105deg) brightness(150%) saturate(120%) contrast(120%);
	filter: hue-rotate(-105deg) brightness(150%) saturate(120%) contrast(120%);
}
.eye-grey .colour-eye {
	-webkit-filter: hue-rotate(0deg) brightness(140%) saturate(0%) contrast(100%);
	filter: hue-rotate(0deg) brightness(140%) saturate(0%) contrast(100%);
}
/* Clothing: base is red */
.upper-blue .colour-upper, .lower-blue .colour-lower, .under_lower-blue .colour-under_lower, .under_upper-blue .colour-under_upper, .head-blue .colour-head, .face-blue .colour-face, .neck-blue .colour-neck, .legs-blue .colour-legs, .feet-blue .colour-feet, .upper_acc-blue .colour-upper_acc, .lower_acc-blue .colour-lower_acc, .under_lower_acc-blue .colour-under_lower_acc, .under_upper_acc-blue .colour-under_upper_acc, .head_acc-blue .colour-head_acc, .face_acc-blue .colour-face_acc, .neck_acc-blue .colour-neck_acc, .legs_acc-blue .colour-legs_acc, .feet_acc-blue .colour-feet_acc {
	-webkit-filter: hue-rotate(-120deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(-120deg) saturate(100%) brightness(100%) contrast(100%);
}
.upper-white .colour-upper, .lower-white .colour-lower, .under_lower-white .colour-under_lower, .under_upper-white .colour-under_upper, .head-white .colour-head, .face-white .colour-face, .neck-white .colour-neck, .legs-white .colour-legs, .feet-white .colour-feet, .upper_acc-white .colour-upper_acc, .lower_acc-white .colour-lower_acc, .under_lower_acc-white .colour-under_lower_acc, .under_upper_acc-white .colour-under_upper_acc, .head_acc-white .colour-head_acc, .face_acc-white .colour-face_acc, .neck_acc-white .colour-neck_acc, .legs_acc-white .colour-legs_acc, .feet_acc-white .colour-feet_acc {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(440%) contrast(140%);
	filter: hue-rotate(0deg) saturate(0%) brightness(440%) contrast(140%);
}
.upper-red .colour-upper, .lower-red .colour-lower, .under_lower-red .colour-under_lower, .under_upper-red .colour-under_upper, .head-red .colour-head, .face-red .colour-face, .neck-red .colour-neck, .legs-red .colour-legs, .feet-red .colour-feet, .upper_acc-red .colour-upper_acc, .lower_acc-red .colour-lower_acc, .under_lower_acc-red .colour-under_lower_acc, .under_upper_acc-red .colour-under_upper_acc, .head_acc-red .colour-head_acc, .face_acc-red .colour-face_acc, .neck_acc-red .colour-neck_acc, .legs_acc-red .colour-legs_acc, .feet_acc-red .colour-feet_acc {
	-webkit-filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(0deg) saturate(100%) brightness(100%) contrast(100%);
}
.upper-green .colour-upper, .lower-green .colour-lower, .under_lower-green .colour-under_lower, .under_upper-green .colour-under_upper, .head-green .colour-head, .face-green .colour-face, .neck-green .colour-neck, .legs-green .colour-legs, .feet-green .colour-feet, .upper_acc-green .colour-upper_acc, .lower_acc-green .colour-lower_acc, .under_lower_acc-green .colour-under_lower_acc, .under_upper_acc-green .colour-under_upper_acc, .head_acc-green .colour-head_acc, .face_acc-green .colour-face_acc, .neck_acc-green .colour-neck_acc, .legs_acc-green .colour-legs_acc, .feet_acc-green .colour-feet_acc {
	-webkit-filter: hue-rotate(120deg) saturate(100%) brightness(150%) contrast(100%);
	filter: hue-rotate(120deg) saturate(100%) brightness(150%) contrast(100%);
}
.upper-black .colour-upper, .lower-black .colour-lower, .under_lower-black .colour-under_lower, .under_upper-black .colour-under_upper, .head-black .colour-head, .face-black .colour-face, .neck-black .colour-neck, .legs-black .colour-legs, .feet-black .colour-feet, .upper_acc-black .colour-upper_acc, .lower_acc-black .colour-lower_acc, .under_lower_acc-black .colour-under_lower_acc, .under_upper_acc-black .colour-under_upper_acc, .head_acc-black .colour-head_acc, .face_acc-black .colour-face_acc, .neck_acc-black .colour-neck_acc, .legs_acc-black .colour-legs_acc, .feet_acc-black .colour-feet_acc {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(110%) contrast(110%);
	filter: hue-rotate(0deg) saturate(0%) brightness(110%) contrast(110%);
}
.upper-pink .colour-upper, .lower-pink .colour-lower, .under_lower-pink .colour-under_lower, .under_upper-pink .colour-under_upper, .head-pink .colour-head, .face-pink .colour-face, .neck-pink .colour-neck, .legs-pink .colour-legs, .feet-pink .colour-feet, .upper_acc-pink .colour-upper_acc, .lower_acc-pink .colour-lower_acc, .under_lower_acc-pink .colour-under_lower_acc, .under_upper_acc-pink .colour-under_upper_acc, .head_acc-pink .colour-head_acc, .face_acc-pink .colour-face_acc, .neck_acc-pink .colour-neck_acc, .legs_acc-pink .colour-legs_acc, .feet_acc-pink .colour-feet_acc {
	-webkit-filter: hue-rotate(-30deg) saturate(50%) contrast(100%) brightness(160%);
	filter: hue-rotate(-30deg) saturate(50%) contrast(100%) brightness(160%);
}
.upper-purple .colour-upper, .lower-purple .colour-lower, .under_lower-purple .colour-under_lower, .under_upper-purple .colour-under_upper, .head-purple .colour-head, .face-purple .colour-face, .neck-purple .colour-neck, .legs-purple .colour-legs, .feet-purple .colour-feet, .upper_acc-purple .colour-upper_acc, .lower_acc-purple .colour-lower_acc, .under_lower_acc-purple .colour-under_lower_acc, .under_upper_acc-purple .colour-under_upper_acc, .head_acc-purple .colour-head_acc, .face_acc-purple .colour-face_acc, .neck_acc-purple .colour-neck_acc, .legs_acc-purple .colour-legs_acc, .feet_acc-purple .colour-feet_acc {
	-webkit-filter: hue-rotate(-80deg) saturate(100%) brightness(100%) contrast(100%);
	filter: hue-rotate(-80deg) saturate(100%) brightness(100%) contrast(100%);
}
.upper-tangerine .colour-upper, .lower-tangerine .colour-lower, .under_lower-tangerine .colour-under_lower, .under_upper-tangerine .colour-under_upper, .head-tangerine .colour-head, .face-tangerine .colour-face, .neck-tangerine .colour-neck, .legs-tangerine .colour-legs, .feet-tangerine .colour-feet, .upper_acc-tangerine .colour-upper_acc, .lower_acc-tangerine .colour-lower_acc, .under_lower_acc-tangerine .colour-under_lower_acc, .under_upper_acc-tangerine .colour-under_upper_acc, .head_acc-tangerine .colour-head_acc, .face_acc-tangerine .colour-face_acc, .neck_acc-tangerine .colour-neck_acc, .legs_acc-tangerine .colour-legs_acc, .feet_acc-tangerine .colour-feet_acc {
	-webkit-filter: hue-rotate(60deg) saturate(150%) brightness(200%) contrast(100%);
	filter: hue-rotate(60deg) saturate(150%) brightness(200%) contrast(100%);
}
.upper-yellow .colour-upper, .lower-yellow .colour-lower, .under_lower-yellow .colour-under_lower, .under_upper-yellow .colour-under_upper, .head-yellow .colour-head, .face-yellow .colour-face, .neck-yellow .colour-neck, .legs-yellow .colour-legs, .feet-yellow .colour-feet, .upper_acc-yellow .colour-upper_acc, .lower_acc-yellow .colour-lower_acc, .under_lower_acc-yellow .colour-under_lower_acc, .under_upper_acc-yellow .colour-under_upper_acc, .head_acc-yellow .colour-head_acc, .face_acc-yellow .colour-face_acc, .neck_acc-yellow .colour-neck_acc, .legs_acc-yellow .colour-legs_acc, .feet_acc-yellow .colour-feet_acc {
	-webkit-filter: hue-rotate(65deg) saturate(100%) brightness(290%) contrast(300%) sepia(0.55);
	filter: hue-rotate(65deg) saturate(100%) brightness(290%) contrast(300%) sepia(0.55);
}
.upper-brown .colour-upper, .lower-brown .colour-lower, .under_lower-brown .colour-under_lower, .under_upper-brown .colour-under_upper, .head-brown .colour-head, .face-brown .colour-face, .neck-brown .colour-neck, .legs-brown .colour-legs, .feet-brown .colour-feet, .upper_acc-brown .colour-upper_acc, .lower_acc-brown .colour-lower_acc, .under_lower_acc-brown .colour-under_lower_acc, .under_upper_acc-brown .colour-under_upper_acc, .head_acc-brown .colour-head_acc, .face_acc-brown .colour-face_acc, .neck_acc-brown .colour-neck_acc, .legs_acc-brown .colour-legs_acc, .feet_acc-brown .colour-feet_acc {
	-webkit-filter: hue-rotate(55deg) saturate(100%) brightness(90%) contrast(100%);
	filter: hue-rotate(55deg) saturate(100%) brightness(90%) contrast(100%);
}

/* wet clothes */
.upper-wetblue .colour-upper, .lower-wetblue .colour-lower, .under_lower-wetblue .colour-under_lower, .under_upper-wetblue .colour-under_upper {
	-webkit-filter: hue-rotate(-120deg) saturate(0.5) brightness(90%) contrast(100%) opacity(0.5);
	filter: hue-rotate(-120deg) saturate(0.5) brightness(90%) contrast(100%) opacity(0.5);
}
.upper-wetwhite .colour-upper, .lower-wetwhite .colour-lower, .under_lower-wetwhite .colour-under_lower, .under_upper-wetwhite .colour-under_upper {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(430%) contrast(140%) opacity(0.5);
	filter: hue-rotate(0deg) saturate(0%) brightness(430%) contrast(140%) opacity(0.5);
}
.upper-wetred .colour-upper, .lower-wetred .colour-lower, .under_lower-wetred .colour-under_lower, .under_upper-wetred .colour-under_upper {
	-webkit-filter: hue-rotate(0deg) saturate(0.5) brightness(90%) contrast(100%) opacity(0.5);
	filter: hue-rotate(0deg) saturate(0.5) brightness(90%) contrast(100%) opacity(0.5);
}
.upper-wetgreen .colour-upper, .lower-wetgreen .colour-lower, .under_lower-wetgreen .colour-under_lower, .under_upper-wetgreen .colour-under_upper {
	-webkit-filter: hue-rotate(120deg) saturate(0.5) brightness(140%) contrast(100%) opacity(0.5);
	filter: hue-rotate(120deg) saturate(0.5) brightness(140%) contrast(100%) opacity(0.5);
}
.upper-wetblack .colour-upper, .lower-wetblack .colour-lower, .under_lower-wetblack .colour-under_lower, .under_upper-wetblack .colour-under_upper {
	-webkit-filter: hue-rotate(0deg) saturate(0%) brightness(90%) contrast(110%) opacity(0.5);
	filter: hue-rotate(0deg) saturate(0%) brightness(90%) contrast(110%) opacity(0.5);
}
.upper-wetpink .colour-upper, .lower-wetpink .colour-lower, .under_lower-wetpink .colour-under_lower, .under_upper-wetpink .colour-under_upper {
	-webkit-filter: hue-rotate(-30deg) saturate(25%) contrast(100%) brightness(150%) opacity(0.5);
	filter: hue-rotate(-30deg) saturate(25%) contrast(100%) brightness(150%) opacity(0.5);
}
.upper-wetpurple .colour-upper, .lower-wetpurple .colour-lower, .under_lower-wetpurple .colour-under_lower, .under_upper-wetpurple .colour-under_upper {
	-webkit-filter: hue-rotate(-90deg) saturate(0.5) brightness(90%) contrast(100%) opacity(0.5);
	filter: hue-rotate(-90deg) saturate(0.5) brightness(90%) contrast(100%) opacity(0.5);
}
.upper-wettangerine .colour-upper, .lower-wettangerine .colour-lower, .under_lower-wettangerine .colour-under_lower, .under_upper-wettangerine .colour-under_upper {
	-webkit-filter: hue-rotate(60deg) saturate(0.75) brightness(190%) contrast(100%) opacity(0.5);
	filter: hue-rotate(60deg) saturate(0.75) brightness(190%) contrast(100%) opacity(0.5);
}
.upper-wetyellow .colour-upper, .lower-wetyellow .colour-lower, .under_lower-wetyellow .colour-under_lower, .under_upper-wetyellow .colour-under_upper {
	-webkit-filter: hue-rotate(65deg) saturate(0.5) brightness(280%) contrast(300%) sepia(0.55) opacity(0.5);
	filter: hue-rotate(65deg) saturate(0.5) brightness(280%) contrast(300%) sepia(0.55) opacity(0.5);
}
.upper-wetbrown .colour-upper, .lower-wetbrown .colour-lower, .under_lower-wetbrown .colour-under_lower, .under_upper-wetbrown .colour-under_upper {
	-webkit-filter: hue-rotate(60deg) saturate(150%) brightness(200%) contrast(100%) opacity(0.5);
	filter: hue-rotate(60deg) saturate(150%) brightness(200%) contrast(100%) opacity(0.5);
}

/*
 * Animation-related classes. Work-in-progress
 * Expected document structure:
 * <div class="i256" -- should have the image size-related class
 *					(or have fixed size & overflow: hidden any other way)
 *	<img class="anim-2s anim-2f" -- should have
 *		1) duration-related class like "anim-2s" (2 seconds)
 *		2) frame count-related class like "anim-2f" (2 frames)
 *		OR
 *	<img class="anim-doggy-4f-vfast"
 *		-- should have frame count & speed class
 *			like "anim-doggy-4f-vfast" (4 frames, very fast)
 */
.i256 {
	width: 256px;
	height: 256px;
	overflow: hidden;
}
.i128 {
	width: 128px;
	height: 128px;
	overflow: hidden;
}
.i64 {
	width: 64px;
	height: 64px;
	overflow: hidden;
}
.i256 > *, .i128 > *, .i64 > * {
	position: absolute;
}
.anim-1s, .anim-2s {
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* joint duration & frame-count classes */

/* generic idle animation, -slow(default)/-mid/-fast */
.anim-idle-1f, .anim-idle-1f-slow { }
.anim-idle-2f, .anim-idle-2f-slow {
	-webkit-animation-duration: 2s; /* 1s x 2 */
	-webkit-animation-timing-function: steps(2);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 2s; /* 1s x 2 */
	animation-timing-function: steps(2);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-idle-3f, .anim-idle-3f-slow {
	-webkit-animation-duration: 3s; /* 1s x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 3s; /* 1s x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-idle-4f-mid {
	-webkit-animation-duration: 1320ms; /* 330ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1320ms; /* 330ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-idle-4f-fast {
	-webkit-animation-duration: 320ms; /* 80ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 320ms; /* 80ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* sex animations, main slot */

.anim-doggy-3f-vfast {
	-webkit-animation-duration: 240ms; /* 80ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 240ms; /* 80ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-3f-fast {
	-webkit-animation-duration: 330ms; /* 110ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 330ms; /* 110ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-3f-mid {
	-webkit-animation-duration: 510ms; /* 170ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 510ms; /* 170ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-3f-slow {
	-webkit-animation-duration: 990ms; /* 330ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1320ms; /* 330ms x 3 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-vfast {
	-webkit-animation-duration: 320ms; /* 80ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 320ms; /* 80ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-fast {
	-webkit-animation-duration: 440ms; /* 110ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 440ms; /* 110ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-mid {
	-webkit-animation-duration: 680ms; /* 170ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 680ms; /* 170ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-4f-slow {
	-webkit-animation-duration: 1320ms; /* 330ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1320ms; /* 330ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-5f-vfast {
	-webkit-animation-duration: 400ms; /* 80ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 400ms; /* 80ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-5f-fast {
	-webkit-animation-duration: 550ms; /* 110ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 550ms; /* 110ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-5f-mid {
	-webkit-animation-duration: 850ms; /* 170ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 850ms; /* 170ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-5f-slow {
	-webkit-animation-duration: 1650ms; /* 330ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1650ms; /* 330ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-6f-vfast {
	-webkit-animation-duration: 480ms; /* 80ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 480ms; /* 80ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-6f-fast {
	-webkit-animation-duration: 660ms; /* 110ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 660ms; /* 110ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-6f-mid {
	-webkit-animation-duration: 1020ms; /* 170ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1020ms; /* 170ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-doggy-6f-slow {
	-webkit-animation-duration: 1980ms; /* 330ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1980ms; /* 330ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* sex animations, close-up slots */
.anim-close-3f-vfast {
	-webkit-animation-duration: 240ms; /* 80ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 240ms; /* 80ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-3f-fast {
	-webkit-animation-duration: 330ms; /* 110ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 330ms; /* 110ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-3f-mid {
	-webkit-animation-duration: 510ms; /* 170ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 510ms; /* 170ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-3f-slow {
	-webkit-animation-duration: 990ms; /* 330ms x 3 */
	-webkit-animation-timing-function: steps(3);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 990ms; /* 330ms x 3 */
	animation-timing-function: steps(3);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-vfast {
	-webkit-animation-duration: 320ms; /* 80ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 320ms; /* 80ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-fast {
	-webkit-animation-duration: 440ms; /* 110ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 440ms; /* 110ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-mid {
	-webkit-animation-duration: 680ms; /* 170ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 680ms; /* 170ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-4f-slow {
	-webkit-animation-duration: 1320ms; /* 330ms x 4 */
	-webkit-animation-timing-function: steps(4);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1320ms; /* 330ms x 4 */
	animation-timing-function: steps(4);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
/*Currently unused*/
.anim-close-5f-vfast {
	-webkit-animation-duration: 400ms; /* 80ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 400ms; /* 80ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-fast {
	-webkit-animation-duration: 550ms; /* 110ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 550ms; /* 110ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-mid {
	-webkit-animation-duration: 850ms; /* 170ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 850ms; /* 170ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-5f-slow {
	-webkit-animation-duration: 1650ms; /* 330ms x 5 */
	-webkit-animation-timing-function: steps(5);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1650ms; /* 330ms x 5 */
	animation-timing-function: steps(5);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-vfast {
	-webkit-animation-duration: 480ms; /* 80ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 480ms; /* 80ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-fast {
	-webkit-animation-duration: 660ms; /* 110ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 660ms; /* 110ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-mid {
	-webkit-animation-duration: 1020ms; /* 170ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1020ms; /* 170ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-close-6f-slow {
	-webkit-animation-duration: 1980ms; /* 330ms x 6 */
	-webkit-animation-timing-function: steps(6);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1980ms; /* 330ms x 6 */
	animation-timing-function: steps(6);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

.anim-xray-8f-vfast {
	-webkit-animation-duration: 320ms; /* 40ms x 8 */
	-webkit-animation-timing-function: steps(8);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 320ms; /* 40ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-xray-8f-fast {
	-webkit-animation-duration: 480ms; /* 60ms x 8 */
	-webkit-animation-timing-function: steps(8);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 480ms; /* 60ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-xray-8f-mid {
	-webkit-animation-duration: 640ms; /* 80ms x 8 */
	-webkit-animation-timing-function: steps(8);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 640ms; /* 80ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}
.anim-xray-8f-slow {
	-webkit-animation-duration: 1320ms; /* 170ms x 8 */
	-webkit-animation-timing-function: steps(8);
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-name: anim-default;
	animation-duration: 1320ms; /* 170ms x 8 */
	animation-timing-function: steps(8);
	animation-iteration-count: infinite;
	animation-name: anim-default;
}

/* duration related-classes.
	When adding, don't forget to add it to rule above with animation-iteration-count */
.anim-1s {
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
}
.anim-2s {
	-webkit-animation-duration: 2s;
	animation-duration: 2s;
}

/* frame-count related classes */
.anim-2f {
	-webkit-animation-timing-function: steps(2);
	animation-timing-function: steps(2);
}
.anim-4f {
	-webkit-animation-timing-function: steps(4);
	animation-timing-function: steps(4);
}

@keyframes anim-default {
	0% {
	-webkit-transform: translateX(0);
	transform: translateX(0);
	}
	100% {
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
	}
}


code:
window.overlayShowHide = function(elementId){
	var div = document.getElementById(elementId);
	if(div != undefined){
		div.classList.toggle("hidden");
		if(elementId === "debugOverlay"){
		   SugarCube.State.variables.debugMenu[0] = !SugarCube.State.variables.debugMenu[0];
		}
	}
}

window.overlayMenu = function(elementId, type){
	switch(type){
		case "debug":
		var debug = ["debugMain", "debugCharacter", "debugEvents"]
		for(var i = 0, l = debug.length; i < l; i++){
			var div = document.getElementById(debug[i]);
			if(div != undefined){
				SugarCube.State.variables.debugMenu[1] = elementId;
				if(elementId === debug[i]){
					div.classList.remove("hidden");
				}else{
					div.classList.add("hidden");
				}
			}
		}
		break;
	}
}

/*Sidebar swipe*/
document.addEventListener('touchstart', handleTouchStart, false);
document.addEventListener('touchmove', handleTouchMove, false);

var xDown = null;
var yDown = null;

function getTouches(evt) {
	return evt.touches ||			 // browser API
			evt.originalEvent.touches; // jQuery
}

function handleTouchStart(evt) {
	var firstTouch = getTouches(evt)[0];
	xDown = firstTouch.clientX;
	yDown = firstTouch.clientY;
};

function handleTouchMove(evt) {
	if ( ! xDown || ! yDown ) {
		return;
	}

	/**
	 * Activate the swipe only when finger near the UI Bar.
	 * 50px - +/- width of unstowed UI Bar
	 * 280px - +/- width of unstowed UI bar
	 */
	if ( isUIBarStowed() ) {
		if ( xDown > 50 ) {
			return;
		}
	} else
	{
		if ( xDown > 280 ) {
			return;
		}
	}

	var xUp = evt.touches[0].clientX;
	var yUp = evt.touches[0].clientY;

	var xDiff = xDown - xUp;
	var yDiff = yDown - yUp;

	if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {/*most significant*/
		if ( xDiff > 0 ) {
			UIBar.stow();/* left swipe */
		} else {
			UIBar.unstow();/* right swipe */
		}
	} else {
		if ( yDiff > 0 ) {
			/* up swipe */
		} else {
			/* down swipe */
		}
	}
	/* reset values */
	xDown = null;
	yDown = null;
};

function isUIBarStowed() {
	return $( '#ui-bar' ).hasClass( 'stowed' );
}

var disableNumberifyInVisibleElements = [
	'#passage-testing-room',
];

// Number-ify links
var currentLinks = [];

function getPrettyKeyNumber(counter) {
	var str = "";

	if (counter > 30)
		str = "Ctrl + ";
	else if (counter > 20)
		str = "Alt + ";
	else if (counter > 10)
		str = "Shift + ";

	if (counter % 10 === 0)
		str += "0";
	else if (counter < 10)
		str += counter;
	else {
		var c = Math.floor(counter / 10);
		str += (counter - (10 * c)).toString();
	}

	return str;
}

$(document).on(':passagerender', function(ev) {
	currentLinks = [];

	if (passage() == "GiveBirth") {
		$(ev.content).find("[type=checkbox]").on('propertychange change', function() { new Wikifier(null, '<<resetPregButtons>>');
		generateNumbers(ev);} );
	}

	generateNumbers(ev);
});

function generateNumbers(ev){
	if (!State.variables.numberify_enabled || !StartConfig.enableLinkNumberify)
		return;

	for (var i = 0; i < disableNumberifyInVisibleElements.length; i++) {
		if ($(ev.content).find(disableNumberifyInVisibleElements[i]).length || $(ev.content).is(disableNumberifyInVisibleElements[i]))
			return; // simply skip this render
	}

	currentLinks = $(ev.content).find(".link-internal"); // wanted to use .macro-link, but wardrobe and something else doesn't get selected, lmao

	$(currentLinks).each(function(i, el) {
		if(!$(el).hasClass('nonumberify')) $(el).html("(" + getPrettyKeyNumber(i + 1) + ") " + $(el).html());
	});
}

$(document).on('keyup', function(ev) {
	if (!State.variables.numberify_enabled || !StartConfig.enableLinkNumberify)
		return;

	if ((ev.keyCode >= 48 && ev.keyCode <= 57) || (ev.keyCode >= 96 && ev.keyCode <= 105)) {
		var fixedKeyIndex = (ev.keyCode < 60 ? ev.keyCode - 48 : ev.keyCode - 96);

		var requestedLinkIndex = [
			9,
			0,
			1,
			2,
			3,
			4,
			5,
			6,
			7,
			8
		][fixedKeyIndex];

		if (ev.ctrlKey)
			requestedLinkIndex += 30;
		else if (ev.altKey)
			requestedLinkIndex += 20;
		else if (ev.shiftKey)
			requestedLinkIndex += 10;

		if ($(currentLinks).length >= requestedLinkIndex + 1)
			$(currentLinks[requestedLinkIndex]).click();
	}
});


code:
function colourContainerClasses() {
	var V = State.variables;
	return 'hair-'  + (V.haircolour||'').replace(/ /g,'-') +
		' ' + 'eye-'   + (V.eyecolour||'').replace(/ /g,'-') +
		' ' + 'upper-' + (V.upperwet > 100 ? 'wet' : '') + (V.worn.upper.colour||'').replace(/ /g,'-') +
		' ' + 'lower-' + (V.lowerwet > 100 ? 'wet' : '') + (V.worn.lower.colour||'').replace(/ /g,'-') +
		' ' + 'under_lower-' + (V.underlowerwet > 100 ? 'wet' : '') + (V.worn.under_lower.colour||'').replace(/ /g,'-') +
		' ' + 'under_upper-' + (V.underupperwet > 100 ? 'wet' : '') + (V.worn.under_upper.colour||'').replace(/ /g,'-') +
		' ' + 'head-' + (V.worn.head.colour||'').replace(/ /g,'-') +
		' ' + 'face-' + (V.worn.face.colour||'').replace(/ /g,'-') +
		' ' + 'neck-' + (V.worn.neck.colour||'').replace(/ /g,'-') +
		' ' + 'legs-' + (V.worn.legs.colour||'').replace(/ /g,'-') +
		' ' + 'feet-' + (V.worn.feet.colour||'').replace(/ /g,'-') +
		' ' + 'upper_acc-' + (V.worn.upper.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'lower_acc-' + (V.worn.lower.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'under_lower_acc-' + (V.worn.under_lower.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'under_upper_acc-' + (V.worn.under_upper.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'head_acc-' + (V.worn.head.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'face_acc-' + (V.worn.face.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'neck_acc-' + (V.worn.neck.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'legs_acc-' + (V.worn.legs.accessory_colour||'').replace(/ /g,'-') +
		' ' + 'feet_acc-' + (V.worn.feet.accessory_colour||'').replace(/ /g,'-')
}
window.colourContainerClasses = colourContainerClasses; // export function


code:
window.hairdressers = function(type, value){
	switch(type){
		case 1:
			SugarCube.State.variables.money -= 3000;
			SugarCube.State.variables.hairlength = (100 * value);
			SugarCube.State.variables.phase = 1;
			new Wikifier(null, '<<pass 20>>');
			break;
		case 2:
			SugarCube.State.variables.money -= 3000;
			SugarCube.State.variables.fringelength = (200 * value);
			SugarCube.State.variables.phase = 2;
			new Wikifier(null, '<<pass 20>>');
			break;
		case 3:
			SugarCube.State.variables.money -= 6000;
			SugarCube.State.variables.haircolour = SugarCube.State.variables.hairdressersHairColour[value];
			SugarCube.State.variables.phase = 3;
			new Wikifier(null, '<<pass 30>>');
			break;
	}
	SugarCube.State.display(SugarCube.State.variables.passage);
}

window.mapMove = function(moveTo){
	var currentPassage = SugarCube.State.variables.passage;
	var destination_table = [];
	for(var i=1; i < SugarCube.State.variables.link_table.length; i++) {
		var temp = SugarCube.State.variables.link_table[i].split("|")[1];
		if(temp) {
			destination_table[destination_table.length] = temp.split("]]")[0];
		}
	}
	var avaliable = SugarCube.State.variables.map.avaliable;

	if(SugarCube.State.variables.debug == 1 || avaliable[currentPassage].includes(moveTo) && destination_table.includes(moveTo))
	//if(SugarCube.State.variables.debug == 1 || avaliable[currentPassage].includes(moveTo))
	{
		new Wikifier(null, '<<pass 5>>');
		SugarCube.State.display(moveTo);
	}
}


code:
window.returnSaveDetails = function(){
	return Save.get();
}

window.loadSave = function(saveSlot){
	if(saveSlot === "auto"){
		Save.autosave.load();
	}else{
		Save.slots.load(saveSlot);
	}
}

window.save = function(saveSlot){
	if(saveSlot != undefined){
		Save.slots.save(saveSlot);
		SugarCube.State.variables.currentOverlay = null;
		overlayShowHide("customOverlay");
	}
}

window.deleteSave = function(saveSlot, confirm){
	if(saveSlot === "all"){
		if(confirm === undefined){
			new Wikifier(null, '<<clearSaveMenu>>');
			return;
		}else if(confirm === true){
			Save.clear();
		}
	}else if(saveSlot === "auto"){
		Save.autosave.delete();
	}else{
		Save.slots.delete(saveSlot);
	}
	new Wikifier(null, '<<resetSaveMenu>>');
}

window.importSave = function(saveFile){
	if(!window.FileReader) return; // Browser is not compatible

	var reader = new FileReader();

	reader.onloadend = function(){
		DeserializeGame(this.result);
	}

	reader.readAsText(saveFile[0]);
}

window.SerializeGame = function () { return Save.serialize(); }; window.DeserializeGame = function (myGameState) { return Save.deserialize(myGameState) };

window.getSaveData = function(){
	var input = document.getElementById("saveDataInput");
	input.value = Save.serialize();
}

window.loadSaveData = function(){
	var input = document.getElementById("saveDataInput");
	var result = Save.deserialize(input.value);
	if (result === null) {
		input.value = "Invalid Save."
	}
}

window.clearTextBox = function(id){
	document.getElementById(id).value = "";
}

window.topTextArea = function(id){
	var textArea = document.getElementById(id);
	textArea.scroll(0, 0);
}

window.bottomTextArea = function(id){
	var textArea = document.getElementById(id);
	textArea.scroll(0, textArea.scrollHeight);
}


code:
:: npcList [widget]
<<widget "npcList">><<nobr>>
<<set $baseNPC = {penis : 0, vagina: 0, breastsdesc: 0, chest: 0, lactation: 0, lefthand: 0, righthand: 0, anus: 0, mouth: 0, gender: 0, description: 0, insecurity: 0, pronoun: 0, pronouns: {he: 0, his: 0}, penissize: 0, breastsize: 0, buttsize: 0, ballssize: 0, penisdesc: 0, breastdesc: 0, health: 0, skincolour: 0, teen: 0, adult: 0, intro:0, speechpenisescape: 0, speechvaginaescape: 0, speechanusescape:0}>>

<<set _n1 to clone($baseNPC)>>
<<set _n2 to clone($baseNPC)>>
<<set _n3 to clone($baseNPC)>>
<<set _n4 to clone($baseNPC)>>
<<set _n5 to clone($baseNPC)>>
<<set _n6 to clone($baseNPC)>>

<<set $NPCList = [_n1, _n2, _n3, _n4, _n5, _n6]>>

<<for _i = 0; _i < $NPCList.length; _i++>>
	<<set $NPCList[_i].lefthand to "none">>
	<<set $NPCList[_i].lefthand to "none">>
	<<set $NPCList[_i].righthand to "none">>
	<<set $NPCList[_i].penis to "none">>
	<<set $NPCList[_i].vagina to "none">>
	<<set $NPCList[_i].mouth to "none">>
	<<set $NPCList[_i].chest to "none">>
	<<set $NPCList[_i].gender to 0>>
	<<set $NPCList[_i].pronoun to 0>>
	<<set $NPCList[_i].description to 0>>
<</for>>
<<set $npcListVersion to 1>>
<</nobr>><</widget>>


code:
:: npcNamed [widget]
<<widget "npcNamed">><<nobr>>
<!-- To add new Named NPC, add new _nXX variable and tag values to end. Rest of code should automatically scope based on size of list. -->
<!-- NPC descriptions is set as names, and their titles are being established for compatibility with general NPCs -->
<<if $npcNamedVersion is 1>>
<<set _tempNPCName to clone($NPCName)>>
<</if>>
<<set $baseNNPC = {penis : 0, vagina: 0, gender: 0, description: 0, insecurity: 0, pronoun: 0, penissize: 0, penisdesc: 0, buttsize: 0, ballssize: 0, breastsize: 0, breastdesc: 0, breastsdesc: 0, skincolour: 0, teen: 0, adult: 0, intro: 0}>>

	<<set _n1 to clone($baseNNPC)>>
	<<set _n2 to clone($baseNNPC)>>
	<<set _n3 to clone($baseNNPC)>>
	<<set _n4 to clone($baseNNPC)>>
	<<set _n5 to clone($baseNNPC)>>
	<<set _n6 to clone($baseNNPC)>>
	<<set _n7 to clone($baseNNPC)>>
	<<set _n8 to clone($baseNNPC)>>
	<<set _n9 to clone($baseNNPC)>>
	<<set _n10 to clone($baseNNPC)>>
	<<set _n11 to clone($baseNNPC)>>
	<<set _n12 to clone($baseNNPC)>>
	<<set _n13 to clone($baseNNPC)>>
	<<set _n14 to clone($baseNNPC)>>
	<<set _n15 to clone($baseNNPC)>>
	<<set _n16 to clone($baseNNPC)>>
	<<set _n17 to clone($baseNNPC)>>
	<<set _n18 to clone($baseNNPC)>>
	<<set _n19 to clone($baseNNPC)>>
	<<set _n20 to clone($baseNNPC)>>
	<<set _n21 to clone($baseNNPC)>>
	<<set _n22 to clone($baseNNPC)>>
	<<set _n23 to clone($baseNNPC)>>

<<set $NPCName = [_n1, _n2, _n3, _n4, _n5, _n6, _n7, _n8, _n9, _n10, _n11, _n12, _n13, _n14, _n15, _n16, _n17, _n18, _n19, _n20, _n21]>>

<<set $NPCNameList to ["Avery","Bailey","Briar","Charlie","Darryl","Doren","Eden","Gwylan","Harper","Jordan","Kylar","Landry","Leighton","Mason","Morgan","River","Robin","Sam","Sirris","Whitney","Winter"]>>

<!-- Draft default pronoun list. Random selection is part of initNPCgender widget -->
/% <<set _pro to ["m","f","f","m","m","m","m","m","f","f","m","m","f","m","f","m","m","m","f","m","m","m","m"]>> %/

<<set _tit to ["businessperson", "caretaker", "brothel owner", "dance coach", "club owner","English teacher","hunter", "shopkeeper", "doctor","pious","loner","criminal","headteacher", "swimming teacher","sewer dweller","maths teacher","orphan","cafe owner","science teacher","bully", "history teacher"]>>

<<set _ins to ["weak","weak","looks","ethics","ethics","ethics","looks","weak","skill","ethics","weak","skill","skill","ethics","weak","ethics","ethics","ethics","ethics","looks","skill"]>>

<<set _swi to ["a","a","a","a","a","a","a","t","a","a","t","a","a","a","a","a","t","a","a","t","a"]>>

<<for _i to 0; _i lt $NPCName.length; _i++>>

	<<set $NPCName[_i].nam to $NPCNameList[_i]>>
	<<set $NPCName[_i].description to $NPCNameList[_i]>>
	<<set $NPCName[_i].title to _tit[_i]>>
	<<set $NPCName[_i].pronoun to "none">>
	<<set $NPCName[_i].gender to "none">>
	<<set $NPCName[_i].penissize to 0>>
	<<set $NPCName[_i].penisdesc to "none">>
	<<if $npcNamedVersion isnot 1>>/*Keeps init from resetting for saves made in 0.2.5*/
		<<set $NPCName[_i].init to 0>>
	<</if>>
	<<set $NPCName[_i].insecurity to _ins[_i]>>
	<<if _swi[_i] is "t">>
		<<set $NPCName[_i].adult to 0>>
		<<set $NPCName[_i].teen to 1>>
	<<else>>
		<<set $NPCName[_i].adult to 1>>
		<<set $NPCName[_i].teen to 0>>
	<</if>>
	<<set $NPCName[_i].trust to 0>>
	<<set $NPCName[_i].love to 0>>
	<<set $NPCName[_i].dom to 0>>
	<<set $NPCName[_i].lust to 0>>
	<<set $NPCName[_i].rage to 0>>
	<<if $npcNamedVersion isnot 1>>
		<<set $NPCName[_i].state to "">>
	<</if>>
	<<set $NPCName[_i].trauma to 0>>
<</for>>

<</nobr>><</widget>>

<<widget "npcNamedUpdate">><<nobr>>/*Applies new system to old saves, and carries over relevant variables.*/

<<if $npcNamedVersion is undefined or $npcNamedVersion is 1>>
<<npcNamed>>
<</if>>

<<if $npcNamedVersion is 1>><<set $npcNamedVersion to 2>><!-- Runs only if a game was saved during V2.5. -->
<<set $NPCName = [_n1, _n2, _n3, _n4, _n5, _n6, _n7, _n8, _n9, _n10, _n11, _n12, _n13, _n14, _n15, _n16, _n17, _n18, _n19, _n20, _n21]>>

	<<for _e to 0; _e lt $NPCName.length; _e++>>
		<<if _e is 0>>
		<<set _lowerCaseName to "avery">>
		<<set _upperCaseName to "Avery">>
		<<elseif _e is 1>>
		<<set _lowerCaseName to "bailey">>
		<<set _upperCaseName to "Bailey">>
		<<elseif _e is 2>>
		<<set _lowerCaseName to "briar">>
		<<set _upperCaseName to "Briar">>
		<<elseif _e is 3>>
		<<set _lowerCaseName to "charlie">>
		<<set _upperCaseName to "Charlie">>
		<<elseif _e is 4>>
		<<set _lowerCaseName to "darryl">>
		<<set _upperCaseName to "Darryl">>
		<<elseif _e is 5>>
		<<set _lowerCaseName to "doren">>
		<<set _upperCaseName to "Doren">>
		<<elseif _e is 6>>
		<<set _lowerCaseName to "eden">>
		<<set _upperCaseName to "Eden">>
		<<elseif _e is 7>>
		<<set _lowerCaseName to "gwylan">>
		<<set _upperCaseName to "Gwylan">>
		<<elseif _e is 8>>
		<<set _lowerCaseName to "harper">>
		<<set _upperCaseName to "Harper">>
		<<elseif _e is 9>>
		<<set _lowerCaseName to "jordan">>
		<<set _upperCaseName to "Jordan">>
		<<elseif _e is 10>>
		<<set _lowerCaseName to "kylar">>
		<<set _upperCaseName to "Kylar">>
		<<elseif _e is 11>>
		<<set _lowerCaseName to "landry">>
		<<set _upperCaseName to "Landry">>
		<<elseif _e is 12>>
		<<set _lowerCaseName to "leighton">>
		<<set _upperCaseName to "Leighton">>
		<<elseif _e is 13>>
		<<set _lowerCaseName to "mason">>
		<<set _upperCaseName to "Mason">>
		<<elseif _e is 14>>
		<<set _lowerCaseName to "morgan">>
		<<set _upperCaseName to "Morgan">>
		<<elseif _e is 15>>
		<<set _lowerCaseName to "river">>
		<<set _upperCaseName to "River">>
		<<elseif _e is 16>>
		<<set _lowerCaseName to "robin">>
		<<set _upperCaseName to "Robin">>
		<<elseif _e is 17>>
		<<set _lowerCaseName to "sam">>
		<<set _upperCaseName to "Sam">>
		<<elseif _e is 18>>
		<<set _lowerCaseName to "sirris">>
		<<set _upperCaseName to "Sirris">>
		<<elseif _e is 19>>
		<<set _lowerCaseName to "whitney">>
		<<set _upperCaseName to "Whitney">>
		<<elseif _e is 20>>
		<<set _lowerCaseName to "winter">>
		<<set _upperCaseName to "Winter">>
		<</if>>

		<<print '<<if $' + _lowerCaseName + 'gender isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].pronoun to $' + _lowerCaseName + 'gender>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'penis isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].penis to $' + _lowerCaseName + 'penis>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'vagina isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].vagina to $' + _lowerCaseName + 'vagina>><</if>>'>>

	<</for>>

<<set $NPCName to clone(_tempNPCName)>>

<<elseif $npcNamedVersion is undefined>><<set $npcNamedVersion to 2>><!-- needed for compatibility for V2.4 and prior saves -->
	<<for _e to 0; _e lt $NPCName.length; _e++>>
		<<if _e is 0>>
		<<set _lowerCaseName to "avery">>
		<<set _upperCaseName to "Avery">>
		<<elseif _e is 1>>
		<<set _lowerCaseName to "bailey">>
		<<set _upperCaseName to "Bailey">>
		<<elseif _e is 2>>
		<<set _lowerCaseName to "briar">>
		<<set _upperCaseName to "Briar">>
		<<elseif _e is 3>>
		<<set _lowerCaseName to "charlie">>
		<<set _upperCaseName to "Charlie">>
		<<elseif _e is 4>>
		<<set _lowerCaseName to "darryl">>
		<<set _upperCaseName to "Darryl">>
		<<elseif _e is 5>>
		<<set _lowerCaseName to "doren">>
		<<set _upperCaseName to "Doren">>
		<<elseif _e is 6>>
		<<set _lowerCaseName to "eden">>
		<<set _upperCaseName to "Eden">>
		<<elseif _e is 7>>
		<<set _lowerCaseName to "gwylan">>
		<<set _upperCaseName to "Gwylan">>
		<<elseif _e is 8>>
		<<set _lowerCaseName to "harper">>
		<<set _upperCaseName to "Harper">>
		<<elseif _e is 9>>
		<<set _lowerCaseName to "jordan">>
		<<set _upperCaseName to "Jordan">>
		<<elseif _e is 10>>
		<<set _lowerCaseName to "kylar">>
		<<set _upperCaseName to "Kylar">>
		<<elseif _e is 11>>
		<<set _lowerCaseName to "landry">>
		<<set _upperCaseName to "Landry">>
		<<elseif _e is 12>>
		<<set _lowerCaseName to "leighton">>
		<<set _upperCaseName to "Leighton">>
		<<elseif _e is 13>>
		<<set _lowerCaseName to "mason">>
		<<set _upperCaseName to "Mason">>
		<<elseif _e is 14>>
		<<set _lowerCaseName to "morgan">>
		<<set _upperCaseName to "Morgan">>
		<<elseif _e is 15>>
		<<set _lowerCaseName to "river">>
		<<set _upperCaseName to "River">>
		<<elseif _e is 16>>
		<<set _lowerCaseName to "robin">>
		<<set _upperCaseName to "Robin">>
		<<elseif _e is 17>>
		<<set _lowerCaseName to "sam">>
		<<set _upperCaseName to "Sam">>
		<<elseif _e is 18>>
		<<set _lowerCaseName to "sirris">>
		<<set _upperCaseName to "Sirris">>
		<<elseif _e is 19>>
		<<set _lowerCaseName to "whitney">>
		<<set _upperCaseName to "Whitney">>
		<<elseif _e is 20>>
		<<set _lowerCaseName to "winter">>
		<<set _upperCaseName to "Winter">>
		<</if>>

		<<print '<<if $' + _lowerCaseName + 'trust isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].trust to $' + _lowerCaseName + 'trust>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'love isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].love to $' + _lowerCaseName + 'love>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'dom isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].dom to $' + _lowerCaseName + 'dom>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'lust isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].lust to $' + _lowerCaseName + 'lust>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'rage isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].rage to $' + _lowerCaseName + 'rage>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'state isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].state to $' + _lowerCaseName + 'state>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'trauma isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].trauma to $' + _lowerCaseName + 'trauma>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'gender isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].pronoun to $' + _lowerCaseName + 'gender>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'gender isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].gender to $' + _lowerCaseName + 'gender>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'penissize isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].penissize to $' + _lowerCaseName + 'penissize>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'penisdesc isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].penisdesc to $' + _lowerCaseName + 'penisdesc>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'penis isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].penis to $' + _lowerCaseName + 'penis>><</if>>'>>
		<<print '<<if $' + _lowerCaseName + 'vagina isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].vagina to $' + _lowerCaseName + 'vagina>><</if>>'>>
		<<print '<<if $init' + _lowerCaseName + ' isnot undefined>><<set $NPCName[$NPCNameList.indexOf("' + _upperCaseName + '")].init to $init' + _lowerCaseName + '>><</if>>'>>

	<</for>>
<</if>>
<</nobr>><</widget>>


code:
:: Widgets pregnancyVar [widget]
<<widget "pregnancyVar">><<nobr>>
	<<containersInit>>
	<<if $objectVersion.prenancyObjectRepair isnot 1>>
		<<prenancyObjectRepair>>
		<<set $objectVersion.prenancyObjectRepair to 1>>
	<</if>>
<</nobr>><</widget>>

<<widget "containersInit">><<nobr>>
<<if $container is undefined>>
	<<set $container to {
		"lastLocation": null,
		"list":["home", "lake"],
		"home":{
			"upgrades":{
				"capacity":0,
				"foodStorage":0,
				"luxury":0
			},
			"name": "Tiny Fish Tank",
			"count": 0,
			"maxCount": 1,
			"daysSinceFed": 0,
			"maxDaysWithoutFood": 3,
			"creatures":{
				0: null
			},
			"deadCreatures": 0,
			"visited": false,
			"leaveLink": "Bedroom"
		},
		"portable":{
			"creatures":[],
			"value":0
		},
		"lake":{
			"upgrades":{
				"capacity":0,
				"foodStorage":0,
				"luxury":0
			},
			"name": "pond",
			"count": 0,
			"maxCount": 3,
			"daysSinceFed": 0,
			"maxDaysWithoutFood": 31,
			"creatures":{
				0: null
			},
			"deadCreatures": 0,
			"visited": false,
			"leaveLink": "Lake Waterfall"
		},
	}>>
<</if>>
<<if $container.home.kylarDelay is undefined>>
	<<set $container.home.kylarDelay to 0>>
	<<set $container.home.kylarFed to false>>
	<<set $container.home.kylarHelp to false>>
<</if>>
<</nobr>><</widget>>

<<widget "prenancyObjectRepair">><<nobr>>
	<<set _pregnancy to $sexStats.anus.pregnancy>>
	<<set _trueCount to 0>>
	<<for _i to 0; _i lt 4; _i++>>
		<<if _pregnancy[_i] isnot null>>
			<<set _trueCount++>>
			<<if _pregnancy[_i].creature is undefined>>
				<<set _pregnancy[_i].creature to either("Tentacle","Spider","Fish","Snake","Eel")>>
			<</if>>
		<</if>>
	<</for>>
	<<if _trueCount isnot _pregnancy.count>>
		<<set _pregnancy.count to clone(_trueCount)>>
	<</if>>
	<<set _list to ["home", "lake", "portable"]>>
	<<for _i to 0; _i lt _list.length; _i++>>
		<<set _container to $container[_list[_i]]>>
		<<for _j to 0; _j lt _container.maxCount; _j++>>
			<<if _container.creatures[_j] isnot undefined and _container.creatures[_j] isnot null>>
				<<if _container.creatures[_j].creature is undefined>>
					<<set _container.creatures[_j].creature to either("Tentacle","Spider","Fish","Snake","Eel")>>
				<</if>>
			<</if>>
			<<if _container.upgrades.luxury is undefined>>
				<<set _container.upgrades.luxury to 0>>
			<</if>>
		<</for>>
	<</for>>
<</nobr>><</widget>>


code:
:: Widgets variablesPassage [widget]
<<widget "variablesPassage">><<nobr>>
/*Variable that you need to check on every passage*/

<<set $link_table to []>>
<<set $map.hideLinksCheck to []>>

<</nobr>><</widget>>


code:
:: PassageHeader [nobr]
<<set $passage to passage()>><<set $tags to tags()>>
<<if $passage isnot "Start" and $passage isnot "Start2">>
	<<if versionUpdateCheck is true>>
		<<variablesVersionUpdate>>
		<<pregnancyVar>>

		<<script>>
			versionUpdateCheck = false;
		<</script>>
	<</if>>
	<<variablesPassage>>
<</if>>