@import url('base.css');

@import url("https://fonts.googleapis.com/css?family=Josefin+Sans:100,400,700");

:root {
    --neptune: #37d;
    --primary: #fff;
    --red: #9b214a;
    --pink: #fb7aa6;
    --blue: #345263;
    --skyblue: #b2daf1;
    --gold: #facc8c;
    --thumb-size: 8rem;
    --body-width: 60rem;
}

html, body {
    background: #111;
    color: #fff;
    /*font-family: 'Josefin Sans';*/
    font-family: 'Century Gothic', 'San Francisco', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    -webkit-transform: translate3d(0px, 0px, 0px);
    margin: 0;
    padding: 0;
}

/***** Map items ***/
.realm {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
	height: 33%;
	align-items: stretch;
	align-content: stretch;
}

.heading.realm-title {
    z-index: 10;
    position: relative;
    border-bottom: 1px solid var(--primary);
	margin: 0;
	flex: 0 0 4rem;
	height: 4rem;
	line-height: 4rem;
	min-height: 0;
	background-image: linear-gradient(#111 0%, transparent);
	padding-top: 1rem;
	box-sizing: content-box;
}

.realm > .children {
	display: flex;
	margin: 0;
	flex: 5 1 4rem;
	height: 4rem;
	min-height: 1em;
}

.nav-item {
	position: relative;
    /*display: block;*/
	min-height: 0;
	text-align: center;
    color: inherit;
    text-decoration: none;
	align-self: baseline;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.nav-item.dwarf {
	flex: 1 1 4rem;
}
.nav-item.planet {
	flex: 2 1 4rem;
}
.icon-dwarf, .icon-planet {
	display: table-cell;
	max-width: 100%;
	position: relative;
    object-fit: contain;
    object-position: center;
}
.planet-body {
	/*transform:  scale(2) translate3d(0, -33%, 0);*/
    margin-top: -100%;
}
.nav-item > .link {
	z-index: 2;
	position: relative;
	margin: 0;
	text-shadow: 0 1px 2px #111, 0 -1px 2px #333;
	/*text-align: center;*/
	/*font-weight: 700;*/
}


.link-list {
	/*display: flex;*/
	list-style-type: none;
	/*justify-content: space-around;*/
	padding: 1rem;
}

.children.link-list {
	display: flex;
	justify-content: space-around;
	padding: 1rem;
}


.link-list > li {
	margin-bottom: 1rem;
}

.link-list.nav-list {
	/*justify-content: space-between;*/
}
.nav-list .nav-link:first-of-type > .link:before {
	content: '<';
}
.nav-list .nav-link:last-of-type > .link:after {
	content: '>';
}

.concept {
    flex: 1 1 10em;
}

/*
.nav-item:hover {
    color: var(--pink);
}*/

/*.planet-body {
    flex: 0 0 100%;
    width: 100%;
    height: calc(var(--thumb-size) * 2);
    background-position: bottom center;
    margin-top: calc(var(--thumb-size) * -1);
    z-index: 1;
}

.planet-body:after {
    content: '';
    width: 100%;
    height: 100%;
    display: block;
    background-image: linear-gradient(rgba(17, 17, 17, 1) 0%, rgba(17, 17, 17, 0.5) 33%, rgba(17, 17, 17, 0) 66%);
}*/

@media (max-width: 480px) {
	.realm-title {
		font-size: 2em;
		padding-top: 0;
	}
	.nav-item {
		min-width: 50%;
		height: 50%;
	}
    .children {
        flex-wrap: wrap;
    }
	.planet-body {
		/*background-position: left center;*/
		/*margin-top: calc(var(--thumb-size) * -0.5);*/
		margin-top: 0;
	}
	.icon-dwarf, .icon-planet {
		width: 50%;
	}
	.nav-item .link {
      position: absolute;
      top: 50%;
      left: 50%;
      font-size: 1rem;
    }
	.nav-item.concept .icon.noun {
		margin: 0;
	}
}

.starry {
    background-image: url(../images/backgrounds/stars_976.jpg);
    background-size: cover;
    background-position: center;
}
.starry.hidden {
	background-image: none;
}

@media (max-width: 768px) {
    .starry {
        background-image: url(../images/backgrounds/stars_760.jpg);
    }
}

@media (max-width: 480px) {
    .starry {
        background-image: url(../images/backgrounds/stars_480.jpg);
    }
}

@media (min-width: 1200px) {
    .starry {
        background-image: url(../images/backgrounds/stars_1200.jpg);
    }
}

/*.article > .content-block {
    background: #111;
}*/

.content > figure {
	max-width: 100%;

}

figcaption > cite:before {
	content: '\2014';
	padding-right: 1ex;
}

.can-hide {
	opacity: 1;
	visibility: visible;
	transition: opacity 1s, visibility 1s 0s;
}
.can-hide.hidden {
	opacity: 0;
	visibility: hidden;
}

.article-background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: -1;
	background-color: #111;
}
.bg-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}
.bg-img-center > .bg-image {
	object-position: center -25%;
}
.responsive-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fig.is-article-background {
	height: 70vh;
}
.fig.is-article-background > img {
	opacity: 0;
}
.bg-opaque {
	/*background-color: #111;*/
	/*background-color: transparent;*/
	/*background-image: linear-gradient(90deg, rgba(0, 0, 0, 0) calc(50% - 32rem - 1px), #111 calc(50% - 32rem), #111 calc(50% + 32rem), rgba(0, 0, 0, 0) calc(50% + 32rem + 1px));*/*/
}
.bg-opaque .has-bg {
	/*background-color: #111;*/
	background-color: transparent;
	background-image: linear-gradient(90deg, rgba(0, 0, 0, 0) calc(50% - 32rem - 1px), #111 calc(50% - 32rem), #111 calc(50% + 32rem), rgba(0, 0, 0, 0) calc(50% + 32rem + 1px));*/
}
.bg-transparent .has-bg {
	background-color: transparent;
}
.bg-half .has-bg {
	/*background-color: rgba(17, 17, 17, 0.75);*/
	background-color: transparent;
	background-image: linear-gradient(90deg, rgba(0, 0, 0, 0) calc(50% - 32rem - 1px), rgba(17, 17, 17, 0.75) calc(50% - 32rem), rgba(17, 17, 17, 0.75) calc(50% + 32rem), rgba(0, 0, 0, 0) calc(50% + 32rem + 1px));
}
.bg-fadeto.bg-opaque .has-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(17, 17, 17, 0.5) 15%, #111 50%);
	background-color: transparent;
}
.bg-fadeto.bg-half .has-bg {
    background-image: linear-gradient(rgba(0, 0, 0, 0) 5%, rgba(17, 17, 17, 0.75) 33%);

	background-color: transparent;
}

.definitions {
}
.definitions > dt, .definitions > dd {

}
.definitions > dt {
	font-weight: 400;
	font-size: 1.5rem;
}
.definitions > dd {
	margin-bottom: 1rem;
	font-size: 1rem;
	letter-spacing: 0.5pt;
	font-style: italic;
}

.swiper-container {
	width: 100%;
	max-height: 100vh;
	overflow-y: auto;
}

.swiper-scrollbar {
	z-index: 100;
}
.swiper-scrollbar-drag {
	background: rgba(255,255,255,0.5);
}
.swiper-scrollbar-drag:hover {
	background: rgba(255,255,255,0.75);
}

.article.swiper-container > .swiper-wrapper {
	flex-direction: column;
}

.article.swiper-container .swiper-slide {

}
.xfixed {
	display: none;
}
pre {
    white-space: pre-line;
    overflow-y: scroll;
    height: 100%;
}
/*
.swiper-slide img {
    display: block;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}
*/

section:before, section:after, .title:before, .title:after {
	content: '';
	display: table;
}

.justify-bottom {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.article-concept .article-hero, .article-planet .article-hero {
	height: 25vh;
}
.article-concept .hero-title, .article-planet .hero-title {
	flex: 1 1 100%;
}

.article-dwarf .article-hero {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100vh;
}

.article-dwarf .hero-title {
	flex: 1 1 33%;
	font-size: 4rem;
}
.hero-title > h1 {
	margin: 0;
}
.article-dwarf .hero-image {
	flex: 0 1 33%;
	max-height: 33%;
	object-fit: contain;
}
.planet-data {
	flex: 1 0 33%;
}

.planet-data > dl {
	width: 100%;
	background: #111;
}

.article-dwarf .content-block, .article-planet .content-block, .article-dwarf .article-hero, .article-planet .article-hero {
	min-height: 100%;
}
.content-block {
	min-height: 50vh;
	align-items: center;
}
.content-block, .article-hero {
	display: flex;
	flex-direction: column;
}
.content-block > .title {
	border-bottom: 1px solid var(--primary);
	margin-top: 2rem;
	width: 64rem;
	max-width: 100%;
	align-items: center;
}
.content-block > .body {
	max-width: 48rem;
	margin: auto;
	line-height: 1.5;
	letter-spacing: 0.1ex;
}
.content-block > .children.link-list {
	width: 64rem;
	flex-wrap: wrap;
}
.content-block > .link-list {
	width: 48rem;
	max-width: 100%;
}
.content-block > .link-list:last-of-type {
	padding-bottom: 8rem;
}


.fig {
	position: relative;
	margin: 0;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: center;
	max-width: 64rem;
}
.fig > img {
	object-fit: contain;
	height: 100%;
	flex: 1 1 auto;
	max-height: 100vh;
	max-width: 100%;
}
.fig > figcaption {
	position: absolute;
	bottom: 0;
	right: 0;
	padding: 0.5rem;
	background-color: rgba(17, 17, 17, 0.5);
}
.fig.fullwidth {
	max-width: 100%;
	align-items: stretch;
	width: 100%;
}
.fig.fullwidth > img {
	object-fit: cover;
	margin: 0;
}
.fig.min50 {
	min-height: 50vh;
}
.article-concept .fig {
	flex: 1 1 auto;
	height: 75vh;
}


h1, h2, h3, h4, h5, h6, .heading, .link, .strong {
	font-family: 'Josefin Sans', sans-serif;
    /*font-weight: 300;*/
    font-style: normal;
    letter-spacing: .1em;
    text-transform: uppercase;
    box-sizing: border-box;
}

.heading {
    font-size: 4rem;
	font-weight: lighter;
	/*padding: 0 1rem;*/
}

/*
@media screen and (min-width: 45rem) {
	h1, h2, h3, h4, h5, h6 {
		letter-spacing: .25em;
		font-weight: 100;
	}
}

@media screen and (min-width: 60rem) {
	h1, h2, h3, h4, h5, h6 {
		letter-spacing: .5em;
	}
}*/

a {
	text-decoration: none;
	/*color: #9c234c;*/
	color: var(--skyblue);
	font-weight: bolder;
	letter-spacing: 1pt;
	font-family: 'Josefin Sans', sans-serif;
	font-variant: small-caps;
}

.link {
	color: var(--skyblue);
	font-weight: normal;
}

.external-link {
	padding: 0.5rem 1rem;
	font-weight: normal;
	text-transform: uppercase;
	letter-spacing: 1pt;
	font-size: 1;
	background-color: var(--red);
	color: var(--primary);
	display: inline-block;
	/*font-size: 1.5em;*/

}
/*
.external-link:before {
	content: '';
	display: inline-block;
	background: no-repeat center url('../icons/external-link.svg');
	width: 0.75em;
	height: 0.75em;
	padding-right: 1ex;
	vertical-align: top;
}*/

.fittext {
	text-align: center;
	width: 100%;
	margin: 0;
	font-weight: 100;
}

.fittext > span {
	display: inline-block;
	box-sizing: border-box;
}


@media screen and (max-width: 30em) {
	.fittext > span {
		display: inline;
		/*font-weight: bold;*/
	}
	.fittext {
		letter-spacing: 0.15rem;
	}
}

.fittext a {
  -moz-osx-font-smoothing: grayscale;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: transform 0.25s ease-out;
  /*transition: transform 0.25s ease-out, text-shadow 0.5s;*/
  /*text-shadow: 0 0 2rem rgba(58, 199, 142, 0.16);*/
  display: inline-block;
}

.fittext a:hover,
.fittext a:focus {
  transform: scale(1.05);
  /*text-shadow: 0 0 2rem rgba(58, 199, 142, 0.76);*/
}

.fittext a:active {
  transform: scale(.90);
}

.icon, .icon-big {
    background-size: cover;
	background-repeat: no-repeat;
    background-color: transparent;
	box-sizing: border-box;
	display: block;
}

.icon.noun {
	background-size: contain;
	background-position: center;
	margin: 0 auto;
}

.icon.noun {
    width: calc(var(--thumb-size) * 0.5);
    height: calc(var(--thumb-size) * 0.5);
}

.icon.small {
	width: 1em;
	height: 1em;
}

.icon-ceres {
    background-image: url('../icons/ceres.svg');
}

.icon-triton {
    background-image: url('../icons/triton.png');
}

.icon-pluto-and-charon {
    background-image: url('../icons/pluto-and-charon.png');
}

.icon-pluto {
    background-image: url('../icons/pluto.png');
}

.icon-charon {
    background-image: url('../icons/charon.png');
}

.icon-neptune {
    background-image: url('../icons/neptune.svg');
}

.icon-makemake {
    background-image: url('../icons/makemake.png');
}

.icon-haumea {
    background-image: url('../icons/haumea.png');
}

.icon-quaoar {
    background-image: url('../icons/quaoar.png');
}

.icon-sol {
    background-image: url('../icons/sol.svg');
}

.icon-2007OR10 {
    background-image: url('../icons/2007-OR10.png');
}

.icon-sedna {
    background-image: url('../icons/sedna.png');
}

.icon-eris {
    background-image: url('../icons/eris.svg');
}

.icon-planet9 {
    background-image: url('../icons/planet9.svg');
}

.icon-air { background-image: url('../icons/nouns/air.svg'); }
.icon-birdfolk { background-image: url('../icons/nouns/birdfolk.svg'); }
.icon-cataclysm { background-image: url('../icons/nouns/cataclysm.svg'); }
.icon-darkness { background-image: url('../icons/nouns/darkness.svg'); }
.icon-distance { background-image: url('../icons/nouns/distance.svg'); }
.icon-ice { background-image: url('../icons/nouns/ice.svg'); }
.icon-isolation { background-image: url('../icons/nouns/isolation.svg'); }
.icon-life { background-image: url('../icons/nouns/life.svg'); }
.icon-merfolk { background-image: url('../icons/nouns/merfolk.svg'); }
.icon-mother { background-image: url('../icons/nouns/mother.svg'); }
.icon-native { background-image: url('../icons/nouns/native.svg'); }
.icon-persephone { background-image: url('../icons/nouns/persephone.svg'); }
.icon-seasons { background-image: url('../icons/nouns/seasons.svg'); }
.icon-tar { background-image: url('../icons/nouns/tar.svg'); }
.icon-underworld { background-image: url('../icons/nouns/underworld.svg'); }
.icon-unknown { background-image: url('../icons/nouns/unknown.svg'); }
.icon-voyage { background-image: url('../icons/nouns/voyage.svg'); }
.icon-water { background-image: url('../icons/nouns/water.svg'); }

.icon-back:before {
	content: '❮';
}

.icon-close:before {
    content: '✖';
}

.icon-prev:before, .icon-back:before {
	content: '❮';
}
.icon-next:before {
	content: '❯';
}

.icon.has-text {
	width: auto;
}

.icon-main:before {
	content: '☰';
}

.icon-about:before {
	content: 'ⓘ';
}

.icon-link {
  color: currentColor;
  position: absolute;
  margin-left: 8px;
  margin-top: 10px;
  width: 7px;
  height: 1px;
  background-color: red;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.icon-link:before {
  content: '';
  position: absolute;
  top: -3px;
  left: -7px;
  width: 8px;
  height: 5px;
  border-radius: 2px;
  border: solid 1px red;
}

.icon-link:after {
  content: '';
  position: absolute;
  top: -3px;
  right: -7px;
  width: 8px;
  height: 5px;
  border-radius: 2px;
  border: solid 1px red;
}
