* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 50px;
  overflow-x: hidden;
  max-width: 100vw;
  color: #333;
  font-family: 'Courier Prime', Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
  font-size: 20px;
  font-weight: normal;
  background: #e3dfdc;
}

a {
  /*color: #307082;*/
  color: #0066ff;
}

a:hover {
  color: #D60808;
}

acronym {
  border: none;
}

div.menu {
  margin: 0;
  padding: 0 26px 0 10px;
}

div.menu table tr > td:last-of-type a {
  position: relative;
  top: 20px;
  transition: transform 0.3s ease-in-out;
}

div.menu table tr > td:last-of-type a:hover {
  background: transparent;
  transform: scale(1.1);
}

div.container {
  position: relative;
  display: block;
  overflow-x: hidden;
  max-width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  background: white;
}

div.allmenu {
  height: 30px;
  margin: 10px 0;
}

div.allmenu a:link,
div.allmenu a:visited {
  color: inherit;
  text-decoration: none;
}

div.allmenu a:hover {
  background: #333;
  color: #fff !important;
}

div.allmenu .menu table td:first-of-type a:hover {
  background: transparent;
}

div.sidemenu {
  width: 58%;
  margin-left: auto;
  margin-right: auto;
}

div.sidemenu ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  column-gap: .5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

div.sidemenu ul ul {
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  position: relative;
  line-height: 1;
  transform: translateX(-50px);
}

div.sidemenu ul ul li {
  transform: translateX(50px);
}

div.sidemenu ul ul ul {
  transform: translateX(0);
}

div.sidemenu ul ul > li:first-of-type::before {
  content: "\27F6"; /* Unicode for ⟶ */
  position: relative;
  padding-right: 5px;
}

div.sidemenu a:link,
div.sidemenu a:visited,
div.allmenu .menu table td a {
  font-weight: normal;
  color: #333;
  text-decoration: none;
  display: inline-block;
  padding: 6px 8px;
  line-height: 1;
}

div.sidemenu a:hover,
div.allmenu a:focus-visible {
  background: #333;
  color: #fff;
}

div.page {
  margin: 0;
  padding: 20px 80px;
  min-height: 400px;
  clear: both;
  line-height: 150%;
}

div.page img {
  float: left; 
  padding-right: 1em;
  padding-bottom: 1em;
  /* Mozilla has a rather ugly default of borders around any-link-img */
  border-style: none;
}

div.page p {
  text-align: justify;
  line-height: 1.4;
}

div.p {
  clear: both;
}

div.page h1,
.heading h1,
h2.news {
  font-size: 2.2rem;
  font-weight: bold;
  color: #0066ff;
  line-height: 1;
}

div.page h2 {
  padding-top: 30px;
  color: #ff0000;
}

div.page h1:not(:first-of-type) {
  margin-top: 4rem;
}

div.page h3 {
  font-size: 1.2em;
  font-weight: bold;
  color: #09345f;
}

div.code {
  margin-top: 1em;
  margin-bottom: 1em;
  background-color: #DDDDDD;
  font-family: monospace, mono, monotype, serif, sans-serif;
  padding: 0 10px;
}

pre {
  margin-top: 1em;
  margin-bottom: 1em;
  margin-left: 2em;
  background-color: #DDDDDD;
  font-family: monospace, mono, monotype, serif, sans-serif;
}

div.screen {
  margin-top: 1em;
  margin-bottom: 1em;
  background-color: #121212;
  color: #fff;
  font-family: monospace, mono, monotype, serif, sans-serif;
  padding: 15px;
}

div.footer {
  width: 100%;
  text-align: center;
  font-style: italic; 
  font-size: 80%;
  margin: 0;
  padding: 40px 80px;
}

div.head {
  font-size: 112%;
  font-weight: bold;
}

div.cont {
  text-align: justify;
  margin-left: 2em;
  margin-bottom: 1.5em;
}

article p {
  text-align: justify;
  margin-left: 2em;
  margin-bottom: 1.5em;
}

article > p:last-of-type {
  margin-bottom: 2.5em;
}

article ul li {
  list-style-position: inside;
}

article h2 {
  font-size: 150%;
  font-weight: bold;
}

article time,
.slider-content time {
  font-size: 90%;
  color: #333;
  background-color: rgba(255, 255, 0, 1);
  padding: 2px 6px;
}

article:target {
  background: #e3dfdc;
  -moz-box-shadow: 0 0 5px 10px #999999ff;
  -webkit-box-shadow: 0 0 5px 10px #999999ff;
  box-shadow: 0 0 5px 5px #999999ff;
  border-radius: 10px;
  padding: 1px 20px;
}

#newslinkid {
  color: #333 !important;
  text-decoration: none;
}

#newslinkid:hover {
  color: grey !important;
  text-decoration: none;
}

div.subentry {
  margin-left: 1em;
}

article h2 {
  margin-bottom: 1px;
}

.container > img:first-of-type {
  width: 300px;
  height: auto;
  margin: .5em auto;
}

/* Slider START */
.carousel {
  position: relative;
  overflow: hidden;
  width: calc(100% - 60px);
  height: 51vh;
  background-color: #fff;
  /* background-image: url("data:image/svg+xml,%3Csvg width='340' height='340' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.2' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); */
  border-radius: 0;
  border: 1px solid rgba(0,0,0,.14);
  margin: 0 auto;
}

.slides-container {
  width: 300%;
  height: 100%;
  display: flex;
  transition: transform .9s ease-in-out;
  will-change: transform;
}

.slide {
  width: 33.33%;
  display: flex;
  flex-flow: row nowrap;
  gap: 2em;
  padding: 2em 2em calc(2em + 4px) 2em;
  box-sizing: border-box;
  cursor: pointer;
}

.slider-image, .slider-content {
  flex: 0 1 50%;
  box-sizing: border-box;
}

.slider-content h2 {
  color: #b31b1b;
  margin-block: 0;
  margin-bottom: 5px;
}

.slider-content time {
  width: fit-content;
}

.slider-content p {
  text-align: justify;
  margin-block: .5em;
}

.slider-image {
  position: relative;
  width: 100%;
  height: 100%;
  /* max-height: calc(50vh - 4em); */
  overflow: hidden;
  border-radius: 0;
}

.slider-image img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.slider-content {
  display: flex;
  flex-flow: column;
  height: min-content;
}

.slider-content .link {
  display: inline;
  width: fit-content;
  padding: 8px 14px;
  text-decoration: none;
  color: #fff;
  background: #6969ff;
  border-radius: 4px;
  transition: all .24s ease-out;
  font-size: 95%;
  margin: 10px 0;
}

.slider-content .link:hover {
  background: rgba(105,105,255,.64);
}

/* Radio button controls */
input[type="radio"] {
  display: none;
}

#slide1:checked ~ .slides-container { transform: translateX(0%); }
#slide2:checked ~ .slides-container { transform: translateX(-33.33%); }
#slide3:checked ~ .slides-container { transform: translateX(-66.66%); }

/* Indicator */
.indicator-container {
  position: absolute;
  bottom: 14px;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 10px;
}

.indicator-dot {
  height: 16px;
  width: 48px;
  background: rgba(0,102,255,.34);
  cursor: pointer;
}

.indicator-dot:hover {
  background: rgba(0,102,255,.54);
}

#slide1:checked ~ .indicator-container .dot1,
#slide2:checked ~ .indicator-container .dot2,
#slide3:checked ~ .indicator-container .dot3 {
  background: rgba(0,102,255,1);
}
/* Slider END */

div.menu table tr > td:last-of-type {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-end;
  position: relative;
  right: -5px;
}

.heading {
  padding: 90px 80px 50px 80px;
}

.heading h1 {
  margin-block: 0;
  margin-bottom: 5px;
}

.heading p {
  margin-block: 0;
}

div.page h2.news { color: #0066ff; padding-top: 0; }


/*************************************** responsive ***************************************/
@media only screen and (max-width:1200px) {
 div.sidemenu {
  width: 80%;
 }

 div.menu table tr > td:last-of-type {
  right: unset;
 }

 div.menu table tr > td:last-of-type a {
  top: 10px;
  right: -5px;
 }

 div.allmenu {
  height: 55px;
 }

 .container:not(:has(.carousel)) .sidemenu {
  margin-top: 10px;
 }

 div.menu table tr > td:first-of-type a img {
  width: 100px;
 }
 
 div.page {
  padding: 20px 30px;
 }

 .heading {
  padding: 70px 30px 40px 30px;
 }
 
}

@media only screen and (max-width:1024px) {
 body {
  padding: 30px;
 }

 div.page,
 div.footer {
  padding: 40px;
 }

 .slide {
  gap: 2em;
  padding: 2em;
 }

}
 
@media only screen and (max-width:992px) {
 body {
  font-size: 17px;
 }

 div.sidemenu {
   width: calc(100% - 240px);
 }
 
 .carousel {
  width: calc(100% - 40px);
  height: auto;
  min-height: var(--carousel-min-height, 66vh);
}

.slide {
  flex-direction: column;
  gap: .5em;
  padding: 1.5em;
}

.slider-image, .slider-content {
  flex: 1 0 100%;
  width: 100%;
}

.slider-image {
  max-height: 30vh;
  order: 1;
}

.slider-content {
  order: 2;
}

.slides-container {
  height: auto;
}

.container > img:first-of-type {
  width: 200px;
}

.slider-content h2 {
  margin-top: 15px;
}

}


@media only screen and (max-width:767px) {
 body {
  padding: 10px;
 }

 body,
 html {
  font-size: 14px;
 }

 div.allmenu {
  width: 100%;
  height: 30px;
  margin-left: 0;
  background-position: center 10px;
 }

 div.menu table tr > td:last-of-type a {
  top: 0;
  right: 5px;
 }

 div.menu {
  padding: 0;
 }

 div.container {
  width: 100%;
  background: #FFF;
  box-shadow: none;
 }

 div.sidemenu {
  position: relative;
  top: 25px;
  left: 0;
  width: 100%;
  margin: 30px 0 0 0;
 }

 div.sidemenu ul {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  column-gap: 0;
  max-width: calc(100% - 20px);
  margin-left: auto;
  margin-right: auto;
 }

 div.page {
  margin: 0 10px;
 }

 div.page,div.footer {
  padding: 0;
 }

 div.sidemenu li {
  display: inline;
  list-style-type: none;
  padding-right: 8px;
 }

 div.footer {
  margin: 30px 0 20px 0;
  padding: 0 10px;
 }

 article p,
 article pre {
  margin-left: 0;
 }

 article pre,
 div.code {
  white-space: wrap;
  padding: 15px;
  overflow-x: scroll;
 }

 article ul li {
  list-style-position: outside;
 }

 .carousel {
  width: calc(100% - 20px);
  /* min-height: 83vh; */
 }

 div.menu table tr > td:first-of-type a img {
  width: 80px;
 }

 div.menu table tr > td:first-of-type a:has(img) {
  padding: 0;
  position: relative;
    top: -5px;
  }

 div.menu table tr > td:first-of-type {
  width: fit-content;
  padding-left: 10px; 
 }
 
 .container:not(:has(.carousel)) .sidemenu {
  margin-top: 30px;
 }

 .heading {
  padding: 70px 15px 40px 15px;
  text-align: justify;
 }

 .container:not(:has(.carousel)) div.page {
  padding-top: 20px;
 }

 article:target {
  padding: 1px 10px;
 }

 .slider-image {
  max-height: 25vh;
 }

 div.page img {
  max-width: 100%;
 }

}

/* For very small screens */
@media screen and (max-width: 480px) {
  .slide {
      padding: 1em;
      gap: 1em;
  }
  
  .slider-content .link {
      padding: 8px 16px;
  }
}

@media (prefers-color-scheme: light) {
 div.allmenu { background: #ffffff;}
}
 
@media (prefers-color-scheme: dark) {
 body { background: #121212; color: #cad3f5; }
 div.container { background: #232323; }
 div.allmenu a:hover { background: #4dc4c4; color: #121212 !important; }
 div.sidemenu a:link, div.sidemenu a:visited, div.allmenu .menu table td a { color: #fff; }
 div.sidemenu a:hover, div.allmenu a:focus-visible { background: #4dc4c4; color: #121212; }
 div.page h1, .heading h1, div.page h2.news { color: #39648f; }
 div.page h2 { color: #b31b1b; }
 div.page h3 { color: #6969ff; }
 #newslinkid { color: #808080 !important; text-decoration: none; }
 #newslinkid:hover h2 { /*color: #a78080;*/ opacity: .9; text-decoration: none; }
 article time { color: #ffff00; background-color: transparent; padding: 0; }
 article:target { background: #3c4562; }
 pre { background-color: #363a4f; }
 div.code { background-color: #363a4f; }
 div.screen { background-color: #363a4f; color: #61c192; }
 div.allmenu { background: #232323; }
 a { color: #6070ff; }
 a:hover { color: #f69816; }
 div.footer { background: #232323; }
 div.menu table tr > td:last-of-type #symbol_github { content: url("/images/symbol_github_light.svg"); }
 div.menu table tr > td:last-of-type #symbol_discord { content: url("/images/symbol_discord_light.svg"); }
 div.menu table tr > td:last-of-type #symbol_patreon { content: url("/images/symbol_patreon_light.svg"); }
 /* Slider START */
 .carousel { background-color: #121212; border: 1px solid rgba(255,255,255,.14); }
 /* .carousel { background-image: url("data:image/svg+xml,%3Csvg width='340' height='340' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.04' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E"); } */
 .indicator-dot { background: rgba(202,211,245,.14); }
 .indicator-dot:hover { background: rgba(202,211,245,.34); }
 #slide1:checked ~ .indicator-container .dot1, #slide2:checked ~ .indicator-container .dot2, #slide3:checked ~ .indicator-container .dot3 { background: #cad3f5; }
 /* Slider END */
}
