@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');

html.dark-mode {
  --color-background: #333544;
  --color-heading: #fff;
  --color-subheading: #ddd;
  --color-body: #ccc;
  --color-code-bg: #333340;
  --color-footer: #223;
  --color-article-hover: #445;
  --color-about-highlight-bg: #443944;
  --color-about-highlight-hover: #333544;
  --color-highlight-container-bg: #223;
  --color-code-file-label: #223;
  --color-code-language-label-bg: #223;
  --color-code-border: #445;
  --color-console-header-bg: #445;
  --color-divider: #556;
  --color-border-code-file-label: #ddd;
  --color-viewMore-bg: #445;
  --color-viewMore-text: white;
  --color-viewMore-bg--hover: #223;
  --color-header-shadow: #223;
  --color-tooltip-icon-background: #112;
  --color-tooltip-icon-border: #6246ea;
  --color-tooltip-icon-text: #6246ea;
  --color-tag-bg: #223;
  --color-tag-text: #fff;
  --color-tag-bg-active: #6246ea;
  --color-tag-text-active: #000;
  --color-view-tag-bg: #6246ea;
  --color-view-tag-bg-hover: #3c1ae3;
  --color-search-background: #445;
  --color-search-border: #4a5568;
  --color-view-writeup-text: var(--color-tag-text);
  --color-view-writeup-bg: var(--color-tag-bg);
  --color-view-writeup-bg--hover: var(--color-tooltip-icon-background);
}

html {
  --color-background: #fcfcff;
  --color-heading: #2d3748;
  --color-subheading: #4a5568;
  --color-body: #444444;
  --color-code-bg: #f9f9ff;
  --color-code-border: rgba(74, 85, 104, 0.1);
  --color-footer: var(--color-heading);
  --color-article-hover: #eeeeee;
  --color-about-highlight-bg: #b0b0bb;
  --color-about-highlight-hover: #808088;
  --color-highlight-container-bg: #eae6fc;
  --color-code-file-label: #2d3748;
  --color-code-language-label-bg: #2d3748;
  --color-divider: #eeeeee;
  --color-border-code-file-label: transparent;
  --color-console-header-bg: #eeeeee;
  --color-viewMore-bg: #eeeeee;
  --color-viewMore-text: #4a5568;
  --color-viewMore-bg--hover: #d5d5d5;
  --color-header-shadow: #eeeeee;
  --color-tooltip-icon-background: #fcfcff;
  --color-tooltip-icon-border: rgba(98, 70, 234, 0.5);
  --color-tooltip-icon-text: #6246ea;
  --color-tag-bg: #eee;
  --color-tag-text: #333;
  --color-tag-bg-active: #6246ea;
  --color-tag-text-active: #FFF;
  --color-view-tag-bg: #6246ea;
  --color-view-tag-bg-hover: #3c1ae3;
  --color-search-background: #ffffff;
  --color-search-border: #eeeeee;
  --color-search-placeholder: #848991;
  --color-view-writeup-text: #e45858;
  --color-view-writeup-bg: #fdf2f2;
  --color-view-writeup-bg--hover: #f9dcdc;
}

* {
 font-family: "Lato", sans-serif;
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 max-width: 100vw;
}

.post-body {
   margin: 0 auto;
}

body {
  background-color: var(--color-background);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

h1, h2, h3, h4, h5 {
  color: var(--color-heading);
  line-height: 1.2;
}

a {    
  color: var(--color-heading);
  text-decoration: none;
}

h2 {
  font-size: clamp(24px, 1.5vw, 3vw);
  font-weight: 300;
  margin: 0;
}

h3 {
  font-size: clamp(20px, 1vw, 2vw);
  font-weight: 300;
  margin: 0;
}

p {
  font-size: clamp(16px, 1.2vw, 1.2vw);
  line-height: 2;
  color: var(--color-body);
  margin-bottom: 20px;
}

button {
  padding: 0;
  border: none;
  background: none;
}

input[type="text" i] {
  padding: 1px 2px;
}

.bold-text {
    font-weight: bold;
}

.italic-text {
    font-style: italic;
}

.underline-text {
    text-decoration: underline;
}

#about-me-root {
  margin: 0;
}
#articles-root {
   margin: 0;
}
#projects-root {
   margin: 0;
}
.post-body {
  padding-top: 100px;
  max-width: 1000px;
  min-height: 100vh;
  padding: 100px 50px;
}
@media (max-width: 460px) {
  .post-body {
    padding-bottom: 30px;
    padding-left: 10px;
    padding-right: 10px;
  }

}


@media (prefers-color-scheme: dark) {
  :root {
    --color-background: #333544;
    --color-heading: #fff;
    --color-subheading: #ddd;
    --color-body: #ccc;
    --color-code-bg: #333340;
    --color-footer: #223;
    --color-article-hover: #445;
    --color-about-highlight-bg: #443944;
    --color-about-highlight-hover: #333544;
    --color-highlight-container-bg: #223;
    --color-code-file-label: #223;
    --color-code-language-label-bg: #223;
    --color-code-border: #445;
    --color-console-header-bg: #445;
    --color-divider: #556;
    --color-border-code-file-label: #ddd;
    --color-viewMore-bg: #445;
    --color-viewMore-text: white;
    --color-viewMore-bg--hover: #223;
    --color-header-shadow: #223;
    --color-tooltip-icon-background: #112;
    --color-tooltip-icon-border: #6246ea;
    --color-tooltip-icon-text: #6246ea;
    --color-tag-bg: #223;
    --color-tag-text: #fff;
    --color-view-tag-bg: #6246ea;
    --color-view-tag-bg-hover: #3c1ae3;
    --color-search-background: #445;
    --color-search-border: #4a5568;
    --color-view-writeup-text: var(--color-tag-text);
    --color-view-writeup-bg: var(--color-tag-bg);
    --color-view-writeup-bg--hover: var(--color-tooltip-icon-background);
  }
}

/* ========================== Navigation Bar ============================= */
.navbar
{
   position: fixed;
   z-index: 100;
   background-color: var(--color-background);
   height: 75px;
   width: 100%;
   transition-property: box-shadow, background-color;
   transition-duration: 400ms;
}

.navbar nav {
   height: 100%;
}

.main-menu {
   width: 100%;
   max-width: 950px;
   margin: 0 auto;
   padding: 20px;
   display: flex;
   align-items: center;
   transition-property: height, padding;
   transition-duration: 400ms;
}

.main-menu .logo a {
   text-decoration: none;
}

.main-menu .menu-list {
   display: flex;
   list-style: none;
   justify-content: space-between;
   align-items: center;
   margin-left: auto;
}

.main-menu .menu-list li a {
   padding: 0 20px;
   color: var(--color-heading);
   text-transform: uppercase;
}


.menu-branding {
   display: flex;
   align-items: center;
   margin-left: 50px;
}

.menu-branding img {
   width: 40px;
   height: 40px;
   border-radius: 50%;
   background-color: black;
}

.menu-branding h3 {
   text-transform: uppercase;
   font-weight: 700;
   padding-left: 20px;
   color: var(--color-heading);
}

.display-switch {
   display: inline-block;    
   color: var(--color-body);
   background-color: transparent;
   border: none;
   cursor: pointer;
   margin-left: 40px;
   width: 24px;
   font-size: 24px;
}


/* MEDIA */

@media (max-width: 768px) {
   .main-menu .menu-list li {
      padding: 0;
      margin-left: 0;
   }
}

@media (max-width: 460px) {
   .navbar {
      height: 72px;
   }
   
   .main-menu {
      height: auto;
      /* padding: 20px; */
   }
   .menu-branding h3 {
      display: none;
   }

   .main-menu .menu-list {
      flex: 1 1 100%;
      display: flex;
      justify-content: center;
   }

  .main-menu .menu-list li {
      font-size: 16px;
   }

   .main-menu .menu-list li a {
      padding: 0;
      font-size: 14px;
  }

  .main-menu .menu-list li .display-switch {
      display: inline-block;
      margin-left: 0;
      width: 24px;
      font-size: 20px;
   }
   .menu-branding {
      margin-left: 0;
      margin-right: 20px;
   }
}


/* ========================== Footer ============================= */
.footer {
   background-color: var(--color-footer);
   color: white;
   margin-top: auto;
}

.footer-container {
   width: 100%;
   max-width: 950px;
   margin: 0 auto;
   padding: 30px;
   text-align: center;
}

.footer-container .footer-small {
   font-size: 10px;
   color: #ffffff;
   margin-top: 10px;
}

.footer-container ul {
   display: flex;
   justify-content: center;
   align-items: center;
   list-style: none;
}

.footer-container ul li {
   width: 30px;
   height: 30px;
   margin: 5px;
}

.footer-container ul li img {
   width: 30px;
   filter: invert(93%) sepia(2%) saturate(82%) hue-rotate(78deg) brightness(90%) contrast(88%);
}

@media only screen and (max-width: 768px) {
   .footer-container {
      padding: 30px 15px;
  }
   
}




.post-header-container {
   display: flex;
   justify-content: space-between;
   margin-bottom: 30px;
   padding-bottom: 20px;
   border-bottom: 1px solid var(--color-divider);
}

.post-header-container .post-header-details {
   margin: 0;
}

.post-header-container #post-header-title {
   font-weight: 600;
   font-size: 34px;
   margin-bottom: 15px;
}

.post-header-container .post-header-meta{
   display: flex;
   align-items: center;
   margin-bottom: 30px;
   font-weight: 500;
}
.post-header-container .post-header-icon {
   width: 35px;
   height: 35px;
   object-fit: cover;
   border-radius: 999px;
   margin: 0;
   margin-right: 10px;
}

.post-header-container .post-header-time {
   font-size: 16px;
   letter-spacing: -0.25px;
   margin: 0 10px;
}

.post-header-container .post-header-time.small-screen {
   font-size: 14px;
   margin: 0;
   margin-right: 2px;
}

.post-header-container #post-read-time {
   font-size: 16px;
   letter-spacing: -0.25px;
   margin: 0 8px;
}

.post-header-container #post-read-time.small-screen {
   font-size: 14px;
   margin: 0;
   margin-right: 2px;
}

.post-header-container .post-header-meta {
   display: flex;
   align-items: center;
   margin-bottom: 30px;
   font-weight: 500;
}

.post-header-container .post-header-divider {
   display: inline-block;
   color: var(--color-body);
   margin: 0;
   margin-right: 10px;
   font-size: 18px;
}

.post-header-container .post-header-shareButton {
   color: var(--color-body);
   display: inline-block;
   font-size: 16px;
   border: 0;
   cursor: pointer;
   font-weight: 500;
   margin: -5px;
   padding: 5px;
   border-radius: 5px;
   background: transparent;
}

.post-header-shareButton .post-header-shareButton-icon:first-child {
   margin-right: 10px;
}

.post-header-shareButton .post-header-shareButton-icon {
   display: flex;
   align-content: center;
   justify-content: center;
}

.post-header-shareButton .post-header-shareButton-icon img {
   width: 25px;
   padding-right: 5px;
   filter: invert(70%) sepia(97%) saturate(1%) hue-rotate(321deg) brightness(102%) contrast(83%); /* https://codepen.io/sosuke/pen/Pjoqqp */
}

#shareButton.small-screen  {
   font-size: 14px;
}

.post-header-container .post-header-image {
   height: 120px;
   max-width: 160px;
   object-position: top;
   object-fit: contain;
   margin-right: 30px;
}

.post-header-tag {
   display: block;
   font-size: 14px;
   font-weight: 500;
   text-decoration: none;
   padding: 8px 15px;
   border-radius: 5px;
   color: #fffffe;
   background-color: var(--color-view-tag-bg);
   display: inline-block;
   margin: 0 10px 10px 0;
   text-transform: capitalize;
}

.post-header-tag:hover {
   background-color: var(--color-view-tag-bg-hover);
}

.post-content {
   position: relative;
}

.post-body.post-container {
   padding-bottom: 50px;
}

@media (max-width: 1000px) {
   .post-body.post-container {
       padding-left: 20px;
       padding-right: 20px;
   }
}

@media (max-width: 460px) {
   /* .post-header-container .post-header-time {
     
   } */
   .post-header-container #post-header-title {
       font-size: 30px;
   }
   .post-header-container .post-header-image {
       height: 65px;
   }  
}

.post-content p {
   font-weight: 400;
   color: var(--color-body);
   line-height: 1.9;
   font-size: 16px;
   margin-bottom: 20px;
   text-indent: 40px;
}

.post-content h2, .post-content h3, .post-content h4 {
   margin-top: 40px;
   margin-bottom: 15px;
   color: var(--color-subheading);
}

.post-content .post-image-container {
   margin: 30px 0;
}

.post-content img {
   width: 100%;
   margin-bottom: 5px;
   box-shadow: 0 0 8px 0 rgb(0 0 0 / 20%);
   border-radius: 5px;
}

.post-content figcaption {
   font-size: 14px;
   color: #777;
}

.post-content p + ul, .post-content p + ol {
   /* margin-top: -10px;
   margin-left: 50px; */
   margin: 10px 0 10px 50px;
}

.post-content li {
   font-size: 16px;
   margin-bottom: 10px;
   line-height: 1.9;
   color: var(--color-body);
}

.post-list-item ol.sublist {
   margin-left: 25px;
   padding-left: 20px;
}

.post-list-item ul.sublist {
   margin-left: 20px;
   padding-left: 20px;
}

.post-link {
   color: #649FFF;
  /* color: #6495ED; cornflower blue */
}

.post-link:hover {
   color: #649FED;
  /* color: #6495ED; cornflower blue */
}

.main-menu {
   width: 100%;
   max-width: 950px;
   margin: 0 auto;
   padding: 20px;
   display: flex;
   align-items: center;
   transition-property: height, padding;
   transition-duration: 400ms;
}

.main-menu .logo a {
   text-decoration: none;
}

.main-menu .menu-list {
   display: flex;
   list-style: none;
   justify-content: space-between;
   align-items: center;
   margin-left: auto;
}

.main-menu .menu-list li a {
   padding: 0 20px;
   color: var(--color-heading);
   text-transform: uppercase;
}


.menu-branding {
   display: flex;
   align-items: center;
   margin-left: 50px;
}

.menu-branding img {
   width: 40px;
   height: 40px;
   border-radius: 50%;
   background-color: black;
}

.menu-branding h3 {
   text-transform: uppercase;
   font-weight: 700;
   padding-left: 20px;
   color: var(--color-heading);
}

.display-switch {
   display: inline-block;    
   color: var(--color-body);
   background-color: transparent;
   border: none;
   cursor: pointer;
   margin-left: 40px;
   width: 24px;
   font-size: 24px;
}

.header-container--mini {
   box-shadow: 2px 2px 8px var(--color-header-shadow);
   background-color: var(--color-background);
}

.header-content--mini {
   height: 75px;
}

/* MEDIA */

@media (max-width: 768px) {
   .main-menu .menu-list li {
      padding: 0;
      margin-left: 0;
   }
}

@media (max-width: 460px) {
   .navbar {
      height: 72px;
   }
   
   .main-menu {
      height: auto;
      /* padding: 20px; */
   }
   .menu-branding h3 {
      display: none;
   }

   .main-menu .menu-list {
      flex: 1 1 100%;
      display: flex;
      justify-content: space-between;
   }

  .main-menu .menu-list li {
      font-size: 16px;
   }

   .main-menu .menu-list li a {
      padding: 0;
      font-size: 14px;
  }

  .main-menu .menu-list li .display-switch {
      display: inline-block;
      margin-left: 0;
      width: 24px;
      font-size: 20px;
   }
   .menu-branding {
      margin-left: 0;
      margin-right: 20px;
   }
}

.code-snippet-container {
   /* margin: 30px 0; */
   background-color: var(--color-code-language-label-bg);
   overflow: hidden;
   border-radius: 5px;

}

.code-snippet-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   background-color: var(--color-console-header-bg);
   border-bottom: solid;
   border-color: #fcf1c2;
   border-width: 1px;
   color: white;
}
.code-snippet-header button {
   padding: 10px;
   padding-right: 20px;
}
.code-snippet-header .copy-icon {
   width: 25px;
   height: 25px;
   color: white;
   filter: invert(93%) sepia(2%) saturate(82%) hue-rotate(78deg) brightness(90%) contrast(88%);
   box-shadow: -1px 8px 131px 10px rgba(0,0,0,0.63);
   -webkit-box-shadow: -1px 8px 131px 10px rgba(0,0,0,0.63);
   -moz-box-shadow: -1px 8px 131px 10px rgba(0,0,0,0.63);
}

.code-snippet-header .code-snippet-title {
   font-weight: 400;
   padding: 10px;
   margin-top: 5px;
   margin-bottom: 5px;
   font-size: 20px;
}
.code-snippet-body {
   border-radius: 5px;
   border-top-left-radius: 0;
   border-top-right-radius: 0;
   border: solid;
   border-top: none;
   border-width: 1px;
}
.code-line {
   font-size: 15px;
   line-height: 10px;
}


.user-define-code {
   color: red;
}

pre[class*=language-] {
    background: var(--color-code-language-label-bg);
    padding: 1rem;
}

code[class*=language-], pre[class*=language-] {
    font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
    text-shadow: none;
    color: #F2F0EB;
    tab-size: 4;
}

.token.punctuation {
    color: #ECC82B;
}

.token.cdata, .token.comment, .token.doctype, .token.prolog {
    color: #4D9A7E;
}

.token.class-name, .token.function {
    color: #dd4a68;
}

.token.atrule, .token.attr-value, .token.keyword {
    color: #BD86D2;
}

.language-docker .token.atrule, .token.attr-value, .token.keyword {
    color: #07A;
}

.token.attr-name, .token.builtin, .token.char, .token.inserted, .token.selector, .token.string {
    color: #C67D1C;
}

.language-css .token.string, .style .token.string, .token.entity, .token.operator, .token.url {
    color: #9a6e3a;
    /* background: hsla(0,0%,100%,.5); */
}

.token.boolean, .token.constant, .token.deleted, .token.number, .token.property, .token.symbol, .token.tag {
    color: #905;
}


table {
    text-indent: 0;
  width: 100%;
    border-color: inherit;
    border-collapse: collapse;
}

.table-view-container { /* Apply this to the parent element of the table */
  overflow: hidden;
  overflow-x: auto;
  border-radius: 0.75rem; /* Equivalent to rounded-2xl */
  border: 1px solid #e5e7eb; /* Equivalent to border border-gray-200 */
  background-color: #fff;     /* Equivalent to bg-white */
  padding-left: 1rem;       /* Equivalent to px-4 */
  padding-right: 1rem;      /* Equivalent to px-4 */
  padding-bottom: 0.75rem;  /* Equivalent to pb-3 */
  padding-top: 1rem;        /* Equivalent to pt-4 */
}

.table-container {
  width: 100%;        /* Equivalent to w-full */
  overflow-x: auto;  /* Equivalent to overflow-x-auto */
}

tr {
  border-top: 1px solid #f3f4f6;
  border-bottom: 1px solid #f3f4f6;
}

th {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

table > p {
  font-weight: 500;
  color: #6b7280;
  font-size: 0.75rem;
}

tbody > tr:not(:first-child) {
  border-top: 1px solid #f3f4f6;
}

td {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.table-title {
  font-weight: 700;
  color: #001524;
}


@media (max-width: 768px) {
   .code-snippet-container {
      margin: 10px;
      margin-bottom: 20px;
   
   }
}