
/*Copyright 2023 2C Media. All rights reserved.*/

/* FONTS */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} /*Lato (body text)*/
@font-face {
  font-family: 'Raleway';
  font-style: normal;
  font-weight: 400 800;
  src: url(https://fonts.gstatic.com/s/raleway/v28/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
} /*Raleway (headings)*/
#root { 
  --bgcolor1: #2c2c2c;
  --bgcolor2: #504848;
  --fgcolor1: #eeeeee;
  --linkcolor: #7dbbf7;
  --linkvcolor: #be7bc5;
  --fgcolorinv: #111111;
  --bgcolorfoot: #000000;
  --bgcolor3: color-mix(in srgb, var(--bgcolor2), var(--bgcolor1));
  --fgcolor2: color-mix(in srgb, var(--bgcolor2), var(--fgcolor1));
  --fgcolor3: color-mix(in srgb, var(--bgcolor2), var(--fgcolor1) 80%);
}
#root.light {  
  --bgcolor1: #bbb;
  --bgcolor2: #eee;
  --fgcolor1: #111;
  --fgcolorinv: #eee;
  --linkcolor: #0000EE;
  --linkvcolor: #551A8B;
  --bgcolorfoot: var(--bgcolor3);
}

html {
  background-color: var(--bgcolor1);
  padding: 0;
  height: 100%;
}
body {
  color: var(--fgcolor1);
  width: 95%;
  max-width: 1024px;
  min-width: 320px;
  margin: 0 auto;
  min-height: 100%;
  /*padding: 0 1rem;*/
  font-family: 'sans-serif';
}

code {
  font-size: .85rem;
  background-color: color-mix(in srgb, var(--bgcolor2) 66%, var(--bgcolor1));
}
a {color:var(--linkcolor);} 
a:visited {color:var(--linkvcolor);}
a:visited.b {color:var(--linkcolor);}
h1 {
  font-size: 2.5em;
  font-family: 'Raleway';
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 1rem;
}
.sub {
  display: block;
  margin-top: -0.2rem;
  font-family: 'Raleway';
  font-style: italic;
  font-weight: 450;
  font-size: 1rem;
}
h2 {
  background-color: var(--bgcolor1);
  font-family: 'Raleway';
  text-transform: uppercase;
  font-weight: 600;
  font-size: 1.3em;
  padding: 0.2em 0.66em;
  margin: 0.67em 0 1em 0;
  min-width: fit-content;
  /*width: 75%;*/
} h2 .sub{font-size: .8rem;text-transform:none;}
.hidden {display: none;}
.nomargtop {margin-top: 0;}
.nomargbot {margin-bottom: 0;}

header {
  margin: 1em 0;
  width: fit-content;
  max-width: 100%;
  background: var(--bgcolor3);
  border-radius: 32px;
}
#logo {
  display: flex; 
  align-items: center;
  background: var(--bgcolor2);
  height: 64px;
  border-radius: 32px;
} #logo span {
  margin: 0 16px 0 0;
  padding: 0 12px 0 0;
  font-family: 'Raleway';
  text-transform: uppercase;
  font-size: 36px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  flex-grow: 1;
  text-align: center;
} #logo img {
  height: 100%;
  box-sizing: border-box;
  border: 3px solid black;
  border-radius: 32px;
  aspect-ratio: 1 / 1;
}
#collapse-btn {
  cursor: pointer;
  align-self: flex-end;
  position: relative;
  left: -8px;
  top: 4px;
  color: var(--fgcolor2);
} #collapse-btn path {opacity:0; transition:all 0.5s;}
  #collapse-btn:not(.checked) #btn-arrow {opacity:1;}
  #collapse-btn.checked #btn-dot {opacity:1;}
#menu {
  padding: 0 16px;
  transition: max-height 0.75s, max-width, 0.5s;
  max-height: 64px;
  max-width: 100%;
  overflow: hidden;
}#menu.collapsed {
  max-height: 0;
  max-width: 0;
}#menu ul {
  list-style: none;
  --fgcolor2: color-mix(in srgb, var(--bgcolor2), var(--fgcolor1));
  margin: 0;
  min-height: 32px;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  padding: 0;
  overflow: hidden;
} #menu ul li {
  margin: 0.2em .6em;
  white-space: nowrap;
} #menu ul li.icon {
  margin: 0.2em 0.4em;
} #menu ul li a {
  color: var(--fgcolor1);
  text-decoration: underline;
} #menu ul li a.selected {
  color: var(--fgcolor2);
}
.menu-social-icon {
  height: 1.2em;
  vertical-align: bottom;
}
#theme-btn {
  cursor: pointer;
  height: 1.2em;
  vertical-align: bottom;
} #theme-btn path {opacity: 0;}
  #theme-btn:not(.checked) #btn-light {opacity:1;}
  #theme-btn.checked #btn-dark {opacity:1;}


article {
  font-family: 'Lato';
  background: var(--bgcolor2);
  padding: 1rem;
}
.article-img {
  width: min(max(480px, 60%), 100%);
} .article-img.small {
  width: min(max(400px, 40%), 100%);
} .article-img img {
  width: 100%;
  display: block;
  min-height: 2em;
  border: 1px solid black;
  cursor: pointer;
} .article-img img.noborder {
  border: none;
} .article-img .caption {
  margin-top: 0;
  font-family: 'serif';
  font-style: italic;
  font-size: 80%;
  color: var(--fgcolor3);
}

slider {
  display: block;
  width: 100%;
  height: clamp(180px, 30vw, 250px);
  position: relative; /*hack*/
  overflow-x: hidden;
  overflow-y: show;
} slider * {
  box-sizing: border-box;
} slider svg {
  height: 20px;
  width: 24px;
  position: absolute;
  top: 4px;
  cursor: pointer;
} slider svg:hover {
  color: var(--fgcolor3);
} slider svg:active {
  color: var(--fgcolorinv);
} slider svg.limit {
  color: var(--fgcolor2);
  cursor: unset;
} slider .header {
  width: 100%;
  height: 28px;
  background-color: var(--bgcolor1);
  padding: 0 32px;
  vertical-align: middle;
  border-radius: 8px 8px 0 0;
} slider .title {
  font-family: 'Raleway';
  font-size: 24px;
  font-weight: 600;
} slider .title .sub {
  display: inline;
  margin-left: 4px;
  font-size: 12px;
  font-weight: 520;
  font-style: italic;
} slider-itm {
  width: 33.3333333333%;
  display: block;
  position: absolute;
  top: 28px;
  cursor: pointer;
  transition: left 0.5s;
} slider-itm img {
  width: 100%;
  display: block;
  border: 1px solid var(--bgcolor1);
} slider-itm cap {
  display: block;
  padding: 0 3px;
  /*text-align: center;*/
  font-family: 'serif';
  font-style: italic;
  font-size: 75%;
  color: var(--fgcolor3);
} slider-itm cap a {
  cursor: pointer;
}

.article-card {
  display: block;
  color: inherit;
  text-decoration: none;
  background-color: var(--bgcolor1);
  height: 80px;
  min-height: fit-content;
  width: min(max(fit-content, 60%), 100%);
  border-radius: 8px;
  clip-path: inset(0 round 8px);
  display: flex;
  align-items: center;
  margin: 8px 0;
} .article-card img {
  height: 100%;
  mask-image: linear-gradient(to right, rgba(0,0,0,1), rgba(0,0,0,1) 70%, rgba(0,0,0,0));
} .article-card .text-wrapper {
  margin: 0 0.75em;
  color: var(--fgcolor1);
} .article-card .title {
  font-size: 32px;
} .article-card .desc {
  font-size: 14px;
}
#res-container {
  width: 100%;
  aspect-ratio: 8.5 / 11;
}

footer {
  margin-top: 0;
  /*background-color: black;color: #ddd;*/
  background-color:var(--bgcolorfoot);color:var(--fgcolor1);
  font-family: 'Arial','sans-serif';
  font-size: .8em;
  padding: 1.5em 1rem 2em 1rem;
} footer img.company-logo {
  height: 2.5em;
  float: left;
  padding-right: 0.5em;
} footer p {
  margin: 0.5em 0;
  line-height: 1.05;
}footer p:first-of-type {
  margin-top: 0;
}

#modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: var(--bgcolor1);
} #modal-content {
  width: fit-content;
  max-width: 95%;
  height: 100%;
  margin: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: visible;
} #modal-img {
  display: block;
  max-width: 100%;
  max-height: 90%;
  object-fit: contain;
} #modal-img.gal {
  max-height: 66vh;
  max-width: 80%;
} #modal-caption {
  font-style: italic;
  margin-top: 0.4em;
  font-size: 90%;
  width: 128px; /*set with js*/
  padding: 0 .67em;
  box-sizing: border-box;
} #modal-caption.gal {
/*  font-size: 80%;*/
} #modal-close {
  align-self: flex-end;
  font-size: 32px;
  line-height: 1;
  font-weight: bold;
  cursor: pointer;
  margin-right: 0.5%;
} #modal-close:hover {
  color: var(--fgcolor2);
}

@media (max-width: 600px) {
  body {width:100%;margin:0;}
  header {margin:1em 3%;border-radius:24px;}
  #logo {height:48px;border-radius:24px;} #logo span {font-size:30px;}
  #menu {font-size:.9em;min-height:24px;} #menu ul {min-height:24px;} #menu ul li {margin:.2em .3em;} #menu ul li.icon {margin:.2em .2em;}
  h1 {font-size: 1.6em;}
  #modal-content {max-width:100%;} #modal-close {margin-right:2%}
}
@media print {
  *:not(html,body,article) {display:none;}
  html {background-color: #fff;}
  article {background-color: unset;}
}
