/* *******************************************************
 *                     COLOR SCHEME 
 * *******************************************************/
/* Nord */
:root {
  --nord-0: #2e3440; /* Polar Night */
  --nord-1: #3b4252;
  --nord-2: #434c5e;
  --nord-3: #4c566a;
  --nord-4: #d8dee9; /* Snow Storm */
  --nord-5: #e5e9f0;
  --nord-6: #eceff4;
  --nord-7: #8fbcbb; /* Frost */
  --nord-8: #88c0d0;
  --nord-9: #81a1c1;
  --nord-10: #5e81ac; /* Aurora */
  --nord-11: #bf616a; /* Red */
  --nord-12: #d08770; /* Orange */
  --nord-13: #ebcb8b; /* Yellow */
  --nord-14: #a3be8c; /* Green */
  --nord-15: #b48ead; /* Purple */
}

/* *******************************************************
 *                     MAIN BODY 
 * *******************************************************/
/* universal selector */
* {
  padding: 0;
  margin: 0;
  text-decoration: none;
  /* list-style: none; */
  box-sizing: border-box;
}

body {
  background-color: var(--nord-0); /* Polar Night */
  color: var(--nord-5); /* Snow Storm for text */
  /*font-family: 'Roboto Serif', serif;*/
  font-family: 'Roboto', sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  min-height: 100vh;
}

.content {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  flex: 1;
  width: 100%;
  max-width: 60em; /* Restrict the width to a maximum of 60em */
  padding: 0 0.5em; /* Add some padding for small screens */
}

.outline-2 {
  width: 100%;
}

b {
  font-weight: 700;
}
/* *******************************************************
 *                     HEADERS 
 * *******************************************************/
h1 {
  padding-top: 0.5em;
  font-weight: 300;
  color: var(--nord-6);
  font-size: 3em;
  width:100%;
}

.title {
  margin-bottom: 0;
  text-align: center;
  line-height: 0.9em;
}
.subtitle {
  width:100%;
  color: var(--nord-5);
  font-style:italic;
  font-weight: 200;
  font-size: 0.5em;
  border-bottom: solid 1px var(--nord-13);
  line-height: 0.5em;
}

.date {
  font-size: 1em;
  padding: .3em 0 1em 0;
}

h2 {
  font-weight: 400;
  font-size: 1.66em;
  color: var(--nord-6);
  padding-top: 1em;
  border-bottom: solid 1px var(--nord-13);
}

h3 {
  font-weight: 300;
  font-size: 1.33em;
  color: var(--nord-15);
  padding-top: 1em;
  padding-bottom: 2px;
  border-bottom: solid 1px var(--nord-3);
}

p {
  padding-top: 1em;
  font-size: 1em;
  font-weight: 300;
  line-height: 1.5em;
}

li {
  padding-top: 1em;
  font-size: 1em;
  font-weight: 300;
}
/* *******************************************************
 *                     SOURCE(SRC) BLOCKS 
 * *******************************************************/
.org-src-container {
  margin-top: 1em; /* Add some padding for small screens */
  padding: 1em 1em 1em 1em;
  background-color: var(--nord-1); /* Polar Night */
  font-size: 1em;
  border-radius: 10px;
  overflow: auto;
}
/* *******************************************************
 *                     MATHJAX MATH LATEX 
 * *******************************************************/
mjx-container {
  min-width: 9px !important;
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  padding: 4px 1px 4px 1px;
}
mjx-table {
  margin-left: 0px !important;
}

/* *******************************************************
 *                     QUOTE BLOCKS 
 * *******************************************************/
blockquote{
  width:100%;
  margin:30px auto 20px auto;
  font-style:italic;
  padding:1em 20px 1.6em 0;
  border-left:8px solid var(--nord-13) ;
  line-height:1;
  position: relative;
  background:var(--nord-2);
  border-radius: 10px;
}
blockquote p {
  padding-top: 0;
}
blockquote ul {
}
blockquote ul li {
}

/* *******************************************************
 *                     EMPHASIS BLOCK 
 * *******************************************************/
.emphasis {
  font-size: 0.9em;
  margin:30px auto 20px auto;
  padding:0em 20px 1.6em 0px;
  border-left:8px solid var(--nord-10) ;
  line-height:1;
  position: relative;
  background:var(--nord-2);
  border-radius: 10px;
}
.emphasis p {
  padding-top: 1em;
  padding-left: 1em;
}
.emphasis ul {
  margin-left: 1em;
}
.emphasis ol {
  margin-left: 1em;
}

/* *******************************************************
 *                     EXTRA BLOCK 
 * *******************************************************/
.extra {
  width:100%;
  font-size: 1.2em;
  margin:30px auto 20px auto;
  padding:0em 20px 1.6em 0;
  border-left:8px solid var(--nord-15) ;
  line-height:1;
  position: relative;
  background:var(--nord-2);
  border-radius: 10px;
}
.extra p {
  padding-top: 1em;
  padding-left: 1em;
}
.extra ul {
  margin-left: 1em;
}

/* *******************************************************
 *                     FIGURES 
 * *******************************************************/
.figure {
  text-align: center;
}

/* *******************************************************
 *                     BLOG IMAGES 
 * *******************************************************/
.blog-image{
  width: 75%;
  max-width: 99%;
}
.tall-image{
  width: auto;
  max-height: 600px;
  max-width: 99%;
}

/* *******************************************************
 *                     BLOG VIDEO 
 * *******************************************************/
.blog-video{
  width: 100%;
  max-width: 99%;
}

/* *******************************************************
 *                     ORDERED LISTS UL LI 
 * *******************************************************/
.org-ol {
  list-style-position: inside; 
}
.org-ol li{
  padding-left: 1em; 
}
/* *******************************************************
 *                     HERO IMAGE 
 * *******************************************************/
.hero-image-caption {
  text-align: center;
  font-size: 1em;
}
.hero-image {
  max-height: 500px;
  max-width: 100%;
}

/* *******************************************************
 *                     HERO LATEX 
 * *******************************************************/
.hero-latex {
  font-size: 2em;
  background-color: var(--nord-1);
  width: 100%;
  padding: 1em 0 1em 0;
  border-radius: 10px;
}

/* *******************************************************
 *                     NAV BAR 
 * *******************************************************/
#preamble {
  height: 80px;
}
.navbar-ul {
  height:100%;
}

.navbar-ul li a:hover {
  background: var(--nord-0); 
  color: var(--nord-13);

}

nav {
  position: sticky;
  top: 0;
  background: var(--nord-1);/* Aurora */
  height: 80px;
  width: 100vw;
  z-index: 99999999999;  
}

/* Logo container styling */
label.logo {
  font-size: 25px;
  line-height: 80px;
  padding: 0 100px;
  font-weight: normal;
  font-style: oblique;
}

/* Anchor tag inside the logo */
label.logo a {
  color: var(--nord-13); /* Snow Storm */
  text-decoration: none; /* Remove underline */
}

/* Prevent hover effects for the logo link */
label.logo a:hover {
  color: var(--nord-13); /* Maintain the original color */
  text-decoration: none; /* No decoration */
  background: var(--nord-3); 
  border-radius: 4px;
}

/* Prevent color change after clicking */
label.logo a:visited {
  color: var(--nord-13); /* Keep the original color */
  text-decoration: none; /* No decoration */
}

nav ul {
  float: right;
  margin-right: 20px;
  padding-left: 0px;
  margin-left: 0px;
}

nav ul li {
  display: inline-block;
  line-height: 80px;
  margin: 0 5px;
  padding-top: 0px;
}

nav ul li a {
  color: var(--nord-4); /* Snow Storm */
  font-size: 17px;
  padding: 7px 13px;
  border-radius: 3px;
  text-transform: uppercase;
}

.checkbtn {
  font-size: 22px;
  color: var(--nord-4);
  float: right;
  line-height: 80px;
  margin-right: 30px;
  cursor: pointer;
  display: none;
}

#check {
  display: none;
}

/* *******************************************************
 *                     LINKS
 * *******************************************************/
a.active {
  background: var(--nord-0); 
  border-radius: 5px;
  transition: .5s;
}
a:hover {
  transition: .5s;
  border-radius: 5px;
  background: var(--nord-1);
  color: var(--nord-9);
}
a {
  color: var(--nord-10)
}

/* *******************************************************
 *                     LISTS 
 * *******************************************************/
/* List item styling */
li {
  padding-top: 10px; /* Adds space between each list item */
}
ul {
  padding-left: 1em; /* Indent the bullets */
  margin-left: 1em; /* Optional: Add space between the list and surrounding content */
}

/* *******************************************************
 *                     BLOG LINKS 
 * *******************************************************/
.blog-list li {
  padding-top: 10px; /* Adds space between each list item */
}

/* Link styling */
.blog-links {
  color: var(--nord-6);
  text-decoration: none; /* Ensures links remain without underline */
  font-size: 1em;
  font-weight: 200;
}

.blog-links:hover {
  color: var(--nord-6);
  font-weight: bold;
  border-radius: 3px;
}

#text-blog-section {
  background-color: var(--nord-1);
  border-radius: 10px;
  margin-top: 1em;
  padding-bottom: 1em;
}

/* *******************************************************
 *                   MODEL VIEWERS / THREE JS
 * *******************************************************/
canvas {
  width: 100% !important;
  height: 100% !important;
  border: 1px solid var(--nord-3);
  cursor: grab;
}

#three-js-container {
  width: 100%;
  height: 500px;
  margin: 1em 0 0 0;
}

.three-js-caption {
  text-align: center;
}

/* *******************************************************
 *                    CODE 
 * *******************************************************/
code {
  word-wrap: break-word; /* Older browsers */
  overflow-wrap: break-word; /* Modern browsers */
  white-space: pre-wrap; /* Preserve whitespace but allow wrapping */
  background: var(--nord-2);
  padding-left: 3px;
  padding-right: 3px;
  padding-bottom: 2px;
  padding-top: 1px;
  border-radius: 2px;
}

/* *******************************************************
 *               REFERENCES / BIBLIOGRAPHY 
 * *******************************************************/
.csl-bib-body {
  font-weight: 200;
  padding-top: 0.5em;
}

/* *******************************************************
 *                    ABOUT PAGE 
 * *******************************************************/
.about-tags {
  background: var(--nord-3);
  padding: 1em 1em 1em 1em;
  margin-top: 2em;
  border-radius: 10px;
}

/* *******************************************************
 *                     FOOTER 
 * *******************************************************/
/* Footer Styling */
#postamble {
  width: 100vw;
  background: var(--nord-1); /* Aurora */
  text-align: center;
  margin-top: 2.5em;
}

footer {
  padding: 1em 0 1em 0;
  color: var(--nord-13);
  font-style:italic;
}

.githubfooter {
  color: #272C36;
  font-size: 2em;
}
/* *******************************************************
 *                   MEDIA: TABLET  
 * *******************************************************/
@media (max-width: 1050px) {
  blockquote {
    margin:20px auto;
    padding: 1em 10px 1em 0;
    }
  label.logo {
    padding-left: 30px;
  }
  nav ul li a {
    font-size: 16px;
    color: var(--nord-5); /* Light text for smaller screens */
  }
  .hero-latex {
    font-size: 1.5em;
  }
}

/* *******************************************************
 *                     MEDIA: PHONE 
 * *******************************************************/
@media (max-width: 890px) {
  body {
    font-size: 14px;
  }
  /* *******************************************************
   *                     NAV BAR (MOBILE) 
   * *******************************************************/
  .checkbtn {
    display: block;
  }
  #check:checked~ul {
    left: 0;
  }
  label.logo {
    font-size: 22px;
    padding: 0 10px;
  }
  nav ul {
    position: fixed;
    width: 100%;
    height: 100vh;
    background: var(--nord-1); /* Darker background for mobile */
    top: 80px;
    left: -100%;
    text-align: center;
    transition: all .5s;
  }
  nav ul li {
    display: block;
    margin: 50px 0;
    line-height: 30px;
  }
  nav ul li a {
    font-size: 20px;
    color: var(--nord-6); /* Snow Storm text color */
  }
  a:hover,
  a.active {
    background: none;
    color: var(--nord-10); /* Aurora text color */
  }
  /* *******************************************************
   *             MODEL VIEWERS / THREE JS (MOBILE) 
   * *******************************************************/
  canvas {
    height: 50vw !important;
  }
  #three-js-container {
    height: 50vw !important;
  }

  /* *******************************************************
   *                     BLOG IMAGES (MOBILE) 
   * *******************************************************/
  .blog-image{
    width: 100%;
  }

  /* *******************************************************
   *                     HEADERS (MOBILE) 
   * *******************************************************/
  h1 {
    font-size: 1.8em;
  }

  .title {
    line-height: 1em;
  }

  .subtitle {
    font-size: 0.66em;
  }
  
  .date {
    font-size: 1em;
    padding: .3em 0 1em 0;
  }
  
  h2 {
    font-size: 1.5em;
  }

  /* *******************************************************
   *                 SOURCE BLOCK SRC (MOBILE)
   * *******************************************************/
  .org-src-container {
    font-size:12px;
  }

/* *******************************************************
 *                    BLOCKQUOTE (MOBILE)
 * *******************************************************/
  blockquote{
    width:100%;
    margin:10px auto 10px auto;
    padding: 0.5em 0.5em 1em 0;
  }
  blockquote ul {
    margin-left: 10px;
  }
  blockquote ul li {
  }

  /* *******************************************************
   *               REFERENCES / BIBLIOGRAPHY (MOBILE) 
   * *******************************************************/
  .csl-bib-body {
    overflow: scroll;
  }

/* *******************************************************
 *                    EMPHASIS BLOCK (MOBILE)
 * *******************************************************/
  .emphasis {
    padding: 0em 0.5em 1.4em 0;
  }
  .emphasis p {
    padding-left: 0.5em;
  }
  .emphasis ol {
    margin-left: 0.4em;
  }
/* *******************************************************
 *                    EXTRA BLOCK (MOBILE)
 * *******************************************************/
  .extra {
    padding:0em 0.5em 1.4em 0;
  }
  .extra p {
    padding-top: 1em;
    padding-left: 0.5em;
  }
}

/* *******************************************************
 *                     MEDIA: SMALL SCREEN 
 * *******************************************************/
@media (max-width: 60em) {
  .content {
    width: 100vw; /* On smaller screens, make it span the full viewport width */
  }
}

