@charset 'utf-8'; /*—~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
—                ██████╗████████╗██╗   ██╗ ██╗      ██████╗        ██████╗ ██╗  ██╗  ██████╗  ██████╗ ████████╗
░               ██╔════╝╚══██╔══╝╚██╗ ██╔╝ ██║     ██╔════╝       ██╔════╝ ██║  ██║ ██╔════╝ ██╔════╝ ╚══██╔══╝
▒               ╚█████╗    ██║    ╚████╔╝  ██║     █████╗  █████╗ ╚█████═╗ ███████║ █████╗   █████╗      ██║   
▓                ╚═══██╗   ██║     ╚██╔╝   ██║     ██╔══╝  ╚════╝  ╚═══██║ ██╔══██║ ██╔══╝   ██╔══╝      ██║   
█               ██████╔╝   ██║      ██║    ███████╗╚██████╗       ██████╔╝ ██║  ██║  ██████╗  ██████╗    ██║   
—               ╚═════╝    ╚═╝      ╚═╝    ╚══════╝ ╚═════╝       ╚═════╝  ╚═╝  ╚═╝  ╚═════╝  ╚═════╝    ╚═╝   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~♦ by qui-design.fr ♦~~~~.

 0 <-| 539
 0 <---| 736
 0 <-----| 979
         737 |----------> ∞
           980 |--------> ∞
             1081 |-----> ∞
               1220 |---> ∞
                 1340 |-> ∞

/*                                               ▓▓▓▓▓▓╗ ▓▓╗  ▓▓╗ ▓▓▓▓▓▓╗ ▓▓▓╗   ▓▓╗ ▓▓▓▓▓▓╗
                                                 ▓▓╔══▓▓╗▓▓║  ▓▓║▓▓╔═══▓▓╗▓▓▓▓╗  ▓▓║▓▓╔════╝
                                                 ▓▓▓▓▓▓╔╝▓▓▓▓▓▓▓║▓▓║   ▓▓║▓▓╔▓▓╗ ▓▓║▓▓▓▓▓╗  
                                                 ▓▓╔═══╝ ▓▓╔══▓▓║▓▓║   ▓▓║▓▓║╚▓▓╗▓▓║▓▓╔══╝  
                                                 ▓▓║     ▓▓║  ▓▓║╚▓▓▓▓▓▓╔╝▓▓║ ╚▓▓▓▓║ ▓▓▓▓▓▓╗
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝ ╚═════╝
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/*~~~~~~~~~~~~  P H O N E  —  P O R T R A I T  |  0  ⟾  7 3 6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@media only screen and (max-width: 539px) {
	#siteDevice {
		content: 'phone-portrait';
	}
	[class*="postSection"] > * {
		flex-wrap: wrap;
	}
}
@media only screen and (max-width: 736px) {
	.pageHero > div h1 br, .pageIntro p br {
		display: contents;
	}
}


/*~~~~~~~~~~  P H O N E  —  L A N D S C A P E  |  0  ⟾  9 7 9.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@media only screen and (max-width: 979px) {
	body, html {
		height: auto;
		-webkit-overflow-scrolling: touch;
	}
	#siteDevice {
		content: 'phone-landscape';
	}
	:root {
		--h1: 3.2rem;
	}
	.pageContent {
		padding-top: calc(var(--h-h) + var(--gap)) !important;
	}
	#headerFrame .siteLogo {
		margin: var(--gut);
	}
	.headerMenuPaneList a:not(.active)::after, .headerMenuPaneList li:has(ol) > a {
		display: none;
	}
	#breadcrumbNav {
		display: none;
	}
	#workArticle {
		padding: 0 var(--edge);
	}

	/* */
	#homeMenuList ul, #homeMenuList header > h3, #homeMenuList p {
		overflow: hidden;
		height: 0;
		opacity: 0;
		transition: height .5s ease-out, opacity .5s ease-out;
	}
	#homeMenuList h2 {
		font-size: 2.2rem;
	}
	#homeMenuList h3 {
		font-size: 1.6rem;
	}
	#homeMenuList p {
		font-size: .8em;
	}
	#homeMenuList img {
		object-position: 50% 75%;
	}
	#homeMenuList > li:nth-of-type(3) img {
		object-position: 50% 40%;
	}
	#homeMenuList ul li::before {
		width: 16px;
	} 
	#homeMenuList [name="homeMenuCheck"]:checked + li {
		flex: 3;
		transition-duration: 1.5s;
	}
	#homeMenuList [name="homeMenuCheck"]:checked + li::before {
		opacity: .4;
		transition-duration: .8s;
	}
	#homeMenuList [name="homeMenuCheck"]:checked + li ul,
	#homeMenuList [name="homeMenuCheck"]:checked + li header > h3,
	#homeMenuList [name="homeMenuCheck"]:checked + li p {
		height: 3lh;
		opacity: 1;
	}
	/* */
	.mosaicList h2 {
		opacity: 1;
	}
	/* */
	#footerLanguageNav {
		order: -1;
		margin: 0 auto;
	}
}


}
@media only screen and (max-width: 1080px) {
}
@media only screen and (max-width: 1280px) {
}





/*                                                                                   ▄▄    
                        ▓▓▓▓▓▓▓▓╗ ▓▓▓▓▓╗ ▓▓▓▓▓▓╗ ▓▓╗      ▓▓▓▓▓▓╗▓▓▓▓▓▓▓▓╗         ▄████▄  
                        ╚══▓▓╔══╝▓▓╔══▓▓╗▓▓╔══▓▓╗▓▓║     ▓▓╔════╝╚══▓▓╔══╝       ▄██▀  ▀██▄
                           ▓▓║   ▓▓▓▓▓▓▓║▓▓▓▓▓▓╔╝▓▓║     ▓▓▓▓▓╗     ▓▓║                    
                           ▓▓║   ▓▓╔══▓▓║▓▓╔══▓▓╗▓▓║     ▓▓╔══╝     ▓▓║          ▀██▄  ▄██▀
                           ▓▓║   ▓▓║  ▓▓║▓▓▓▓▓▓╔╝▓▓▓▓▓▓▓╗ ▓▓▓▓▓▓╗   ▓▓║            ▀████▀  
~~~~~~~~~~~~~~~~~~~~~~~~~~ ╚═╝   ╚═╝  ╚═╝╚═════╝ ╚══════╝ ╚═════╝   ╚═╝              ▀▀    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/*~~~~~~~~~~~~  P H O N E  —  P O R T R A I T  |  0  ⟾  5 4 0.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@media only screen and (min-width: 540px) {
}

/*~~~~~~  T A B L E T  —  P O R T R A I T  |  7 3 7  ⟾  9 0 0.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@media only screen and (min-width: 737px) {
	#siteDevice {
		content: 'tablet-portrait';
	}
	#headerMenuPaneNav {
		width: auto;
	}
	.mosaicList {
		grid-template-columns: repeat(2, 1fr);
	}
}





/*                      ▓▓▓▓▓▓▓▓╗ ▓▓▓▓▓╗ ▓▓▓▓▓▓╗ ▓▓╗      ▓▓▓▓▓▓╗▓▓▓▓▓▓▓▓╗        ██   ██  
                        ╚══▓▓╔══╝▓▓╔══▓▓╗▓▓╔══▓▓╗▓▓║     ▓▓╔════╝╚══▓▓╔══╝       ██     ██ 
                           ▓▓║   ▓▓▓▓▓▓▓║▓▓▓▓▓▓╔╝▓▓║     ▓▓▓▓▓╗     ▓▓║         ██       ██
                           ▓▓║   ▓▓╔══▓▓║▓▓╔══▓▓╗▓▓║     ▓▓╔══╝     ▓▓║          ██     ██
                           ▓▓║   ▓▓║  ▓▓║▓▓▓▓▓▓╔╝▓▓▓▓▓▓▓╗ ▓▓▓▓▓▓╗   ▓▓║           ██   ██ 
~~~~~~~~~~~~~~~~~~~~~~~~~~ ╚═╝   ╚═╝  ╚═╝╚═════╝ ╚══════╝ ╚═════╝   ╚═╝             
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/*~~  T A B L E T  —  L A N D S C A P E  |  9 8 0  ⟾  1 0 8 0.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@media only screen and (min-width: 980px) {
	#siteDevice {
		content: 'tablet-landscape';
	}
	:root {
		--fs: 1.8rem;
		--h-h: calc(12rem + var(--edge)*2);
		--edge: var(--hollow);
	}
	#modalBox article {
		padding: var(--hollow) var(--hole);
	}

	/*~~~~~~~~~~~~~~~~~~~~~~~~~~ SITE HEADER */
	#headerKnob {
		display: none;
		pointer-events: none;
	}
	/*
	.scrolled #headerKnob {
		z-index: 3;
		opacity: 1;
		pointer-events: auto;
	}
	#headerKnob, #headerSwitch:checked ~ #headerKnob {
		z-index: 1;
		opacity: 0;
		color: unset;
	}
	#headerSwitch:checked ~ #headerKnob span {
		opacity: 1 !important;
		transform: none !important;
	}
	*/
	#headerFrame {
		height: var(--h-h);
		padding: var(--edge) calc(var(--edge) + var(--breach));
	}
	#headerMenuPane, #headerMenuPaneNav, .headerMenuPaneList {
		overflow: visible;
	}
	#headerMenuPane, #headerMenuPaneNav, .headerMenuPaneList {
		height: auto;
	}
	#headerMenuPane, #headerSwitch:checked ~ #headerMenuPane {
		z-index: 2;
		position: relative;
		width: auto;
		opacity: 1;
		background: none;
		transition: none;
		backdrop-filter: unset;
	}
	#headerMenuPaneNav, #headerSwitch:checked ~ #headerMenuPane > #headerMenuPaneNav {
		opacity: 1;
		padding: 0;
		transform: translateX(0%);
		background: none;
		box-shadow: none;
		pointer-events: auto;
	}
	#headerMenuPaneNav {
		flex-direction: row;
	}
	/*.scrolled  #headerMenuPaneNav {
		padding-right: 0;
		opacity: 0;
		transform: translateX(101%);
	}*/

	/* */
	.headerMenuPaneList {
		align-items: center;
		flex-direction: row;
		transform: none;
	}
	.headerMenuPaneList li:nth-last-child(n+2) {
		padding-right: var(--space);
	}
	.headerMenuPaneList a, .headerMenuPaneList button {
		padding: .2em .15em;
	}
	.headerMenuPaneList button {
		display: unset;
	}
	.headerMenuPaneList ol a.active span {
		opacity: 1;
	}
	.headerMenuPaneList ol a.active::after {
		opacity: 0;
	}

	/*  */
	#headerMenuPane li ol {
		position: absolute;
		top: 100%;
		max-height: 0;
		opacity: 0;
		transform: scaleY(.001) translateY(-1em);
		transform-origin: top center;
		pointer-events: none;
		padding-top: var(--breach);
		font-size: 1.7rem;
		background: var(--canvas);
		transition: max-height .45s ease, transform .35s ease, opacity .3s ease;
	}
	#headerMenuPane li:hover ol,
	#headerMenuPane li:focus-within ol,
	#headerMenuPane li ol:hover,
	#headerMenuPane li ol:focus {
	   display: block;
		max-height: 15em;
		opacity: 1;
		cursor: pointer;
		transform: scaleY(1) translateY(0);
		pointer-events: auto;
	}
	#headerMenuPane li ol li {
		padding-left: .1em;
		border-bottom: 1px solid currentColor;
	}
	#headerMenuPane li ol li:nth-child(2) a::after {
		letter-spacing: .03em;
	}
	#breadcrumbNav {
		pointer-events: auto;
	}

	/*~~~~~~~~~~~~~~~~~~~~~~~~~~ SITE FOOTER */
	#footerFrame {
		padding: var(--strait) 0;
		font-size: var(--h3);
	}
	#footerFrame > div:first-child {
		flex-direction: row;
		align-items: flex-end;
		margin-bottom: var(--pit);
	}
	#footerNewsletter legend {
		font-size: var(--h3);
		text-transform: uppercase;
		letter-spacing: .04em;
	}
	#footerSocialNav {
		margin-right: var(--hollow);
		flex-direction: row;
	}

	/* Homepage / Splash */
	#splashFrame {
		flex-direction: row;
	}
	#homeAside {
		flex: 0 0 17rem;
		order: 2;
		flex-direction: column;
		padding: var(--space) var(--space) var(--hole);
	}
	#homeAside .siteLogo {
		order: 2;
	}
	#homeAside .siteLogoLandscape {
		display: none;
	}
	#homeAside .siteLogoPortrait {
		display: block;
	}
	#homeAside svg {
		width: 64px;
		height: 335px;
	}
	#homeMenuList > li:last-child {
		flex: .5;
	}
	/* */
	#homeMenuList {
		flex-direction: row;
	}
	#homeMenuList > li label {
		cursor: col-resize;
	}
	#homeMenuList > li::before {
		opacity: 0;
	}
	#homeMenuList > li::after {
		content: attr(data-title);
		position: absolute;
		bottom: var(--hole);
		right: var(--space);
		font-family: var(--fh);
		font-size: var(--h3);
		text-transform: uppercase;
		letter-spacing: .04em;
		color: white;
		writing-mode: vertical-lr;
		transform: rotate(180deg);
		opacity: 1;
		width: 1.25lh;
		background: hsla(0, 0%, 0%, .01);
		/*background: red;*/
		/*filter: drop-shadow(-.045em -.045em hsla(0, 0%, 0%, .35));*/
		/*text-shadow: 0 -.1em .1em hsla(0, 0%, 100%, .05), 0em .1em .1em hsla(0, 0%, 100%, .05), -.1em 0 .1em hsla(0, 0%, 100%, .05), .1em 0 .1em hsla(0, 0%, 100%, .05);*/
	}
	.gecko #homeMenuList li::after {
		/*filter: drop-shadow(.06em .06em hsla(0, 0%, 0%, .5));*/
	}
	#homeMenuList > li::before {
		transition-duration: .8s;
	}
	@media all and (any-hover: hover) {
		#homeMenuList > li:hover {
			flex: 3;
			transition-duration: 9s;
		}
		#homeMenuList > li:hover::before {
			opacity: .85;
		}
		#homeMenuList > li:hover::after {
			opacity: 0;
		}
		#homeMenuList > li:hover header {
			opacity: 1;
		}
		#homeMenuList > li:hover::before, #homeMenuList > li:hover::after, #homeMenuList > li:hover header {
			transition-timing-function: cubic-bezier(.39, .575, .565, 1);
		}
		#homeMenuList > li:hover::before {
			transition-duration: .5s;
		}
	}
	#homeMenuList header {
		max-width: min-content;
		padding: var(--space);
		opacity: 0;
	}
	#homeMenuList h2 {
		margin-bottom: var(--hollow);
	}

	/* Works */
	#workArticle {
		grid: auto / 1fr 1fr;
	}
	#workDetails, #workArtist {
		padding-left: clamp(var(--gap), 10.5vw, 200px);
		padding-right: clamp(var(--gap), 10.5vw, 200px);
	}
	#workArtistPicture figure {
		margin-right: 0;
	}
	#workNexus {
		grid-column-end: span 2;
		padding: 0 var(--edge);
	}
	#workNexus ul {
		grid: 1fr / repeat(3, 1fr);
	}

	#worksFilterBox {
		width: auto;
	}
	#filterKnob {
		position: absolute;
		top: -1.5lh;
	}

	/* Shop */
	#headerCart {
		padding: 0 var(--space);
	}
}


}



                                                           

/*                               ▓▓▓╗   ▓▓▓╗ ▓▓▓▓▓▓╗ ▓▓▓╗   ▓▓╗▓▓╗▓▓▓▓▓▓▓▓╗ ▓▓▓▓▓▓╗ ▓▓▓▓▓▓╗ 
                                 ▓▓▓▓╗ ▓▓▓▓║▓▓╔═══▓▓╗▓▓▓▓╗  ▓▓║▓▓║╚══▓▓╔══╝▓▓╔═══▓▓╗▓▓╔══▓▓╗
                                 ▓▓╔▓▓▓▓╔▓▓║▓▓║   ▓▓║▓▓╔▓▓╗ ▓▓║▓▓║   ▓▓║   ▓▓║   ▓▓║▓▓▓▓▓▓╔╝
                                 ▓▓║╚▓▓╔╝▓▓║▓▓║   ▓▓║▓▓║╚▓▓╗▓▓║▓▓║   ▓▓║   ▓▓║   ▓▓║▓▓╔══▓▓╗
                                 ▓▓║ ╚═╝ ▓▓║╚▓▓▓▓▓▓╔╝▓▓║ ╚▓▓▓▓║▓▓║   ▓▓║   ╚▓▓▓▓▓▓╔╝▓▓║  ▓▓║
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ╚═╝     ╚═╝ ╚═════╝ ╚═╝  ╚═══╝╚═╝   ╚═╝    ╚═════╝ ╚═╝  ╚═╝
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/*~~~~~~~~~~~~~~~~~~~~~~~~~~  M O N I T O R  |  1 0 8 1  ⟾  ∞.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MONITOR */
@media only screen and (min-width: 1081px) {
	:root {
		/*--edge: var(--strait);*/
	}
	#siteDevice {
		content: 'monitor';
	}
	.mosaicList {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media only screen and (min-width: 1120px) {
	#footerFrame .siteLogo svg {
		width: auto;
		height: 150px;
	}
}

/*~~~~~~~~~~~~~~~~~~~~~~~ MONITOR LAPTOP */
@media only screen and (min-width: 1220px) {
	#siteDevice {
		content: 'monitor-laptop-narrow';
	}
}
@media only screen and (min-width: 1340px) {
	#siteDevice {
		content: 'monitor-laptop';
	}
	.mosaicList {
		grid-template-columns: repeat(4, 1fr);
	}
}

/*~~~~~~~~~~~~~~~~~~~~~~~~ MONITOR LARGE */
@media only screen and (min-width: 1540px) {
	#siteDevice {
		content: 'monitor-large';
	}
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~ MONITOR WIDE */
@media only screen and (min-width: 1860px) {
	#siteDevice {
		content: 'monitor-wide';
	}
}

/*~~~~~~~~~~~~~~~~~~~~~~~~ MONITOR GIANT */
@media only screen and (min-width: 2440px) {
	#siteDevice {
		content: 'monitor-giant';
	}
}





/*                                                    ▓▓▓▓▓▓╗ ▓▓▓▓▓▓╗ ▓▓╗▓▓▓╗   ▓▓╗▓▓▓▓▓▓▓▓╗
                                                      ▓▓╔══▓▓╗▓▓╔══▓▓╗▓▓║▓▓▓▓╗  ▓▓║╚══▓▓╔══╝
                                                      ▓▓▓▓▓▓╔╝▓▓▓▓▓▓╔╝▓▓║▓▓╔▓▓╗ ▓▓║   ▓▓║   
                                                      ▓▓╔═══╝ ▓▓╔══▓▓╗▓▓║▓▓║╚▓▓╗▓▓║   ▓▓║   
                                                      ▓▓║     ▓▓║  ▓▓║▓▓║▓▓║ ╚▓▓▓▓║   ▓▓║   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ╚═╝     ╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝   ╚═╝   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@page {
	margin: 10mm 12mm 0mm 12mm;
}

@media print {
	#mediaQueries {
		content: 'print';
	}
	*, *::before, *::after {
		color: black !important;
		text-shadow: none !important;
		box-shadow: none !important;
		background: transparent !important;
		-webkit-print-color-adjust: exact;
	}
	html, body {
		position: relative !important;
		overflow: visible !important;
		width: auto !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		font-size: 10pt !important;
		border: none !important;
		background: none !important;
	}
	#siteFrame, #siteMain {
		min-height: 287mm !important;
		break-inside: auto;
	}
	.rotulus {
		width: 190mm !important;
		margin: auto !important;
	}
	/* */
	a, a:visited {
		text-decoration: underline;
	}
	pre, blockquote,
	#pageChildList li {
		border: 1px solid var(--dove);
	}
	thead {
		display: table-header-group;
	}
	p, h2, h3 {
		orphans: 3;
		widows: 3;
	}
	sup {
		vertical-align: text-bottom;
	}
}

/*~~~~~~~~~~~ SUPER CLASS FOR PRINT MODE */
.print *, .print *::before, .print *::after {
	color: black !important;
	text-shadow: none !important;
	box-shadow: none !important;
	background: transparent !important;
	-webkit-print-color-adjust: exact;
}
html.print, .print body {
	position: relative !important;
	overflow: visible !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 10pt !important;
	border: none !important;
	background: none !important;
}
.print #siteFrame, .print #siteMain {
	min-height: 287mm !important;
	page-break-inside: avoid !important;
}
.print .rotulus {
	width: 190mm !important;
	margin: auto !important;
}
/* */
.print a, .print a:visited {
	text-decoration: underline;
}
.print pre, .print blockquote {
	border: 1px solid var(--dove);
	page-break-inside: avoid;
}
.print thead {
	display: table-header-group;
}
.print p, .print h2, .print h3 {
	orphans: 3;
	widows: 3;
}
.print sup {
	vertical-align: text-bottom;
}





/*—~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/