html {
   height: 100%;
	font-family: 'Helvetica Neue', Helvetica, "Hiragino Sans", "Meiryo", "Arial Unicode MS", "Arial Unicode", Arial, sans-serif;
   font-weight: normal;
   color: #333;
   font-size: 14px;
   box-sizing: border-box;
}
*, *:before, *:after {
   box-sizing: inherit;
}
html, body {
   margin: 0;
   padding: 0;
}
body {
   height: 100%;
   background: #f5f5f5;
   scroll-behavior: smooth;
   -webkit-scroll-behavior: smooth;
}
#sections {   
   display: -webkit-flex;
   display: -ms-flexbox;
   display: flex;
   
   -ms-flex-direction: column;
   -webkit-flex-direction: column;
   flex-direction: column;
   
   height: 100%;
}
h1,h2 {
   font-weight: bold;
}
.thin {
   font-weight: 300;
}
.links {
   -webkit-justify-content: flex-end;
   -ms-flex-pack: flex-end;
   justify-content: flex-end;
}
#main .links nav {
   margin-top: 0;
}
h1 {
   margin: 0;
   font-size: 1.25rem;
   line-height: 0;
   position: fixed;
   padding: 0.75rem;
   background: rgba(245, 245, 245, 0.95);
   border-bottom-right-radius: 10px;
   z-index: 1000;
}

header, .contents {
   padding: 1rem;
}
header, footer { 
   display: -webkit-flex;
   display: -ms-flexbox;
   display: flex;

   -webkit-flex: 0 0 auto;
   -ms-flex: 0 0 auto;
   flex: 0 0 auto;   

   -webkit-flex-direction: row;
   -ms-flex-direction: row;
   flex-direction: row;
   
   -webkit-align-items: baseline;
   -ms-flex-align: baseline;
   align-items: baseline;
}
#sections section {
   display: -webkit-flex;
   display: -ms-flexbox;
   display: flex;

   -webkit-flex: 1 0 auto;
   -ms-flex: 1 0 auto;
   flex: 1 0 auto;
   
   -webkit-flex-direction: column;
   -ms-flex-direction: column;
   flex-direction: column;
   
   -webkit-justify-content: space-between;
   -ms-flex-pack: space-between;
   justify-content: space-between;
      
/*    min-height: 100vh; */
   -webkit-box-shadow: 0 0 5vh 0 rgba(0,0,0,0.25);
   -moz-box-shadow: 0 0 5vh 0 rgba(0,0,0,0.25);
   box-shadow: 0 0 5vh 0 rgba(0,0,0,0.25);
}

#sections .contents {
   padding-left: 7.5%;
   padding-right: 7.5%;
   
   display: -webkit-flex;
   display: -ms-flexbox;
   display: flex;
   
   -webkit-flex-direction: row;
   -ms-flex-direction: row;
   flex-direction: row;

   -webkit-justify-content: space-between;
   -ms-flex-pack: space-between;
   justify-content: space-between;
   
   -webkit-align-items: center;
   -ms-flex-align: center;  
   align-items: center;
}

footer {
   -webkit-justify-content: center;
   -ms-flex-pack: center;
   justify-content: center;
   text-align: center;
   padding: 1rem;
}

nav a {
   font-size: 1rem;
   margin-left: 1rem;
}
nav a:first-of-type {
   margin-left: 0.5rem;
}
a {
   color: #00518a;
}
a::selection {
   background: #00518a;
}
a::-moz-selection {
   background: #00518a;
}
h2 {
   font-size: 2rem;
   margin-top:0;
   margin-bottom: 1rem;
}
code {
   font-family: Consolas, monaco, monospace;
   white-space: pre-wrap;       /* CSS 3 */
   white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
   word-wrap: break-word;       /* Internet Explorer 5.5+ */
}
.typed-cursor{
   -webkit-touch-callout: none;
   -webkit-user-select: none;
   -khtml-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
   -webkit-animation: 1s blink infinite;
   -moz-animation: 1s blink infinite;
   -ms-animation: 1s blink infinite;
   animation: 1s blink infinite;
   font-size: inherit;
   color: #333;
   opacity: 1;
}
.typed-cursor.pause {
   -webkit-animation: none !important;
   -moz-animation: none !important;
   -ms-animation: none !important;
   animation: none !important;
}
.jsTransparent {
   opacity: 0;
}
.transitionAll {
   transition: all 0.5s ease;
   -webkit-font-smoothing: subpixel-antialiased;
}
p {
   font-size: 1.1rem;
   line-height: 1.4
}
@keyframes blink{
   0% { opacity:1; }
   50% { opacity:0; }
   100% { opacity:1; }
}
@-webkit-keyframes blink{
   0% { opacity:1; }
   50% { opacity:0; }
   100% { opacity:1; }
}
@-moz-keyframes blink{
   0% { opacity:1; }
   50% { opacity:0; }
   100% { opacity:1; }
}
@-ms-keyframes blink{
   0% { opacity:1; }
   50% { opacity:0; }
   100% { opacity:1; }
}
@media only screen and (min-width : 480px) {
   h2 {
      font-size: 2.5rem;
   }
}
@media only screen and (min-width : 480px) and (min-height : 600px) {
   h2 {
      font-size: 3.5rem;
   }
}
#main {
   background: #f5f5f5;
   color: #333;
   z-index: 100;
}
#main *::selection {
   background: #333;
   color: #f5f5f5;
}
#main *::-moz-selection {
   background: #333;
   color: #f5f5f5;
}
#main .hintArrow svg, #twostepCompanion .hintArrow svg {
   stroke: #333;
}

.logotype {
   height: auto;
   
   display: block;
   
   max-width: 100%;
   max-height: 6.5rem;
   margin-bottom: 1.5rem;
}

.collection {
   overflow-x: auto;
   overflow-y: hidden;
   -webkit-overflow-scrolling: touch;
   white-space: nowrap;
   text-align: center;
}


.noselect {
   -moz-user-select: none;
   -khtml-user-select: none;
   -webkit-user-select: none;
   -ms-user-select: none;
   user-select: none;
}



