/* 
	THEMING
	Mode: light/dark is automatically determined by system color scheme.
	There is no mode toggle.
*/

/* ------ THEMING - Dark Mode ------ */
:root {
  --palette-primary: #20bdff;

  --text: #d2d3d7;
  --text: #d4d4d8;
  --text-muted: #d2d3d7;
  --text-heading: #fafafa;
  --text-link: #fbb040;

  --code-text: #cbd5e0;
  --code-background: #1f2631;
  --code-border: #2d3748;

  --border: #2d3748;
  --background: #18181b;
}

/* ------ GLOBAL STYLES - START ------ */

:root {
  font-family: Verdana, sans-serif;
  line-height: 1.75;
  scroll-behavior: smooth;
}

body::-webkit-scrollbar {
    display: none;
}

body {
  color: var(--text);
  background: var(--background);
  padding: 0 2rem;
  margin: auto;
  max-width: 70ch;
  text-align: left;
  word-wrap: break-word;
  overflow-wrap: break-word;
  transition: background-color 0.3s ease;
  display: grid;
  min-height: 100vh;
  grid-template-areas:
    "header"
    "main"
    "footer";
  grid-template-rows: 5rem minmax(0, 1fr) 5rem;
  grid-template-columns: minmax(0, 1fr);
}

strong,
b {
  color: var(--text-heading);
}

a {
  color: var(--text-link);
  /* text-decoration: none; */
}


a.not(.project-link)
a:not(.unset) {
  color: var(--text-link);
  text-decoration: none;
}

a:not(.project-link)
a:not(.header) {
  border-bottom: 1px solid #ccc;
}


.header {
    color: var(--text-heading);

}

.project-link {
    color: var(--text);
}

nav a:not(.unset) {
  margin-right: 10px;
}

textarea {
  width: 100%;
  font-size: 1rem;
}

input {
  font-size: 1rem;
}

content {
  line-height: 1.6;
}

table {
  width: 100%;
}

img {
  max-width: 100%;
  height: auto;
}


@font-face {
    font-family: 'Geist Mono';
    font-weight: normal;
    src: url('GeistMono-Regular.woff2') format('woff2');
}


code {
  padding: 2px 5px;
  color: var(--code-text);
  background-color: var(--code-background);
  border: 1px solid var(--code-border);
  border-radius: 4px;
  font-family: 'Geist Mono'

}

code * {
    font-family: 'Geist Mono';
    font-size: 0.9rem;
}

code.unset {
  background-color: transparent;
  border: none;
}

pre {
  padding: 1rem;
}

pre > code {
  all: unset;
}

blockquote:not(.unset) {
  font-size: 1.125rem;
  width: 85%;
  margin: 0 auto;
  font-style: italic;
  color: var(--text);
  padding: 1.5rem 3rem;
  line-height: 1.9;
  position: relative;
}

blockquote:not(.unset)::before {
  font-family: Arial;
  content: "\201C";
  color: var(--text);
  font-size: 4rem;
  position: absolute;
  left: 10px;
  top: -10px;
}

blockquote:not(.unset)::after {
  content: "";
}

ul {
  padding-left: 1.5em;
}

ul li {
  padding-left: 0.4em;
  margin-top: 0.4em;
  margin-bottom: 0.4em;
}

/* ------ GLOBAL STYLES - END ------ */

/* ------ REUSABLE UTIL STYLES - START ------ */

/* 
	class: gradient-text
	The text will be gradient.
	To use this, just set the css vars using a custom class in your component
*/
.gradient-text {
  --gradient-text-from: hotpink;
  --gradient-text-to: hotpink;
  --gradient-text-via: var(--gradient-text-from), var(--gradient-text-to);
  color: transparent;
  background-clip: text;
  -webkit-background-clip: text;
  text-fill-color: transparent;
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(
    135deg,
    var(--gradient-text-from),
    var(--gradient-text-via),
    var(--gradient-text-to)
  );
}

/* 
	class: a.animated
	Animated links. An animated underline on hover.
*/
a.animated {
  --animated-underline-from: var(--text-link);
  --animated-underline-to: var(--text-link);
  position: relative;
  box-decoration-break: clone;
  text-decoration: none;
}

a.animated:after {
  left: 0;
  right: 0;
  bottom: -2px;
  content: "";
  height: 2px;
  position: absolute;
  transform: translateZ(0) scaleX(0);
  transform-origin: left center;
  transition: all 0.20s ease-in-out;
  background-image: linear-gradient(
    to right,
    var(--animated-underline-from),
    var(--animated-underline-to)
  );
}

a.animated:hover:after {
  transform: translateZ(0) scale(1);
}

a.animated.active:after {
  transform: translateZ(0) scale(1);
}

/* ------ REUSABLE UTIL STYLES - START ------ */

.wrap-collabsible {
  margin-bottom: 1.2rem 0;
}

input[type="checkbox"] {
  display: none;
}

.lbl-toggle {
  /* display: block; */

  font-weight: bold;
  /* font-family: monospace; */
  font-size: 2rem;
  /* text-transform: uppercase; */
  text-align: left;

  padding: 1rem;

  /* color: #A77B0E; */
  /* background: #FAE042; */

  cursor: pointer;

  border-radius: 7px;
  transition: all 0.25s ease-out;
}

.lbl-toggle:hover {
  /* color: #7C5A0B; */
}

.lbl-toggle::before {
  content: " ";
  display: inline-block;

  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 5px solid currentColor;
  vertical-align: middle;
  margin-right: 0.7rem;
  transform: translateY(-2px);

  transition: transform 0.2s ease-out;
}

.toggle:checked + .lbl-toggle::before {
  transform: rotate(90deg) translateX(-3px);
}

.collapsible-content {
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.25s ease-in-out;
}

.toggle:checked + .lbl-toggle + .collapsible-content {
  max-height: 100vh;
}

.toggle:checked + .lbl-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.collapsible-content .content-inner {
  /* background: rgba(250, 224, 66, .2); */
  /* border-bottom: 1px solid rgba(250, 224, 66, .45); */
  border-bottom-left-radius: 7px;
  border-bottom-right-radius: 7px;
  padding: 0.5rem 1rem;
}

.gradient {
    
  background: linear-gradient(to right, var(--text-link), #f05a29, #c54726);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 3rem;
    margin: 0;
    letter-spacing: -2px;
    line-height: 3.5rem;
}


.wrapper {
    padding-top: 1rem;
    text-align: left;
}

.subtext {
    color: var(--text-heading);
    font-size: 1.25rem;
    letter-spacing: -0.51px;
    line-height: 2rem;
    margin-top: 0.5rem;
}

@media (min-width: 640px) {
    .name {
        font-size: 4rem;
        line-height: 4.75rem;
    }
    .subtext {
        font-size: 1.5rem;
        letter-spacing: -0.51px;
        line-height: 2rem;
        margin-top: 0.5rem;
    }
}

.social-handles > a {
    text-decoration: none;
}


header {
    grid-area: header;
    display: grid;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) minmax(0, max-content) minmax(
            0,
            max-content
        );
}

nav {
    display: flex;
    gap: 0.5rem;
}

nav ul {
    display: flex;
    gap: 1rem;
    padding: 0;
    list-style-type: none;
}

nav ul > li {
    padding: 0;
}

@media screen and (min-width: 720px) {
    .social-footer {
        display: none
    }
}

/* This is used to style the SVGs correctly  */
.dev-icons {
    display: flex;
    justify-content: center;
    align-items: center;
}
.dev-icon {
    font-size: 1.5rem;
}
.icon-cls-1 {
  fill-rule: evenodd;
}
.twitter-icon-cls-1 {
    fill: none;
}

.icon-cls-2 {
  fill: none;
}

.icon-wrapper {
    display: inline-block;
}

.icon {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
}

.icon path {
    fill: var(--text-heading);
}
/* ---- END ---- */
.post-byline {
    font-style: italic;
}


main {
  grid-area: main;
}

.social-handles {
    display: flex;
    gap: 0.75rem;
}

/* This is the footer styles */

footer {
    grid-area: footer;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    margin-top: 1rem;
    line-height: 1.75;
}

.social-footer {
    display: none;
    align-items: flex-end;
    justify-content: center;
    gap: 0.75rem;
}

.social-footer a {
    color: var(--text-heading);
    border-bottom: none;
    text-decoration: none;
}
.social-footer a:hover {
    color: var(--palette-primary);
}

@media screen and (max-width: 720px) {
    .social-footer {
        display: flex
    }
    .social-handles {
        display: none;
    }
}
/* -- End Footer --*/

.title {
    font-size: 2.5em;
    line-height: 1.2 !important;
    margin: 0.25em 0 0;
}
.description {
    font-size: 1em;
    margin: 0.25em 0 0.25em;
    font-weight: 500;
}

.publish-date {
    font-size: 0.875em;
    color: var(--text-muted);
    margin-bottom: 2rem;
    display: block;
}

 #comments-section {
      margin-top: 2em;
      font-size: 0.9em;
    }
    .comment {
      margin-bottom: 1em;
      border-left: 2px solid #ddd;
      padding-left: 1em;
    }
    .comment-thread {
      margin-left: 2em;
      border-left: 1px dashed #ccc;
      padding-left: 1em;
    }
    .author {
      display: flex;
      align-items: center;
      font-weight: bold;
      margin-bottom: 0.5em;
    }
    .author a {
      display: flex;
      align-items: center;
      text-decoration: none;
      color: inherit;
    }
    .author img {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      margin-right: 0.5em;
    }
    .comment-body a {
      text-decoration: none !important; /* No underline */
      color: inherit !important; /* No blue */
    }
    .comment-body {
      cursor: pointer; /* Pointer cursor to indicate interactivity */
    }
    /* .comment-body:hover { */
    /*   background-color: #f1f1f1; /* Grey hover effect */ */
    /* } */
    .actions {
      font-size: 0.8em;
      color: #555;
      margin-top: 0.5em;
    }
