*, *:before, *:after {
	box-sizing: border-box;
  }
  
  @media (max-width: 600px) {
	@import url("min600.css");
  }
  
  /* >>>>> ================ COLOR_VAR =============== <<<<< */
  :root {
	--primary-color: #ec42ff;
	--white-color: #FFFFFF;
	--black-color: #181818;
	--dgray-color: #464646;
	--mgray-color: #828282;
	--lgray-color: #f2f2f2;

	--background-color: var(--white-color);
	--text-color: var(--black-color);
	--gray-color: var(--lgray-color);
	--code-color: var(--mgray-color);

	--title-font-family: 'Fira Code', monospace;
	--header-font-family: 'Pretendard', sans-serif;
	--quote-font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
	--content-font-family: 'Pretendard', sans-serif;
	/* --content-font-family: "Fira Code", monospace; */
  }
  
  body[data-theme="light"] {
	--background-color: var(--white-color);
	--text-color: var(--black-color);
	--gray-color: var(--lgray-color);
	--code-color: var(--mgray-color);
  }
  
  body[data-theme="dark"] {
	--background-color: var(--black-color);
	--text-color: var(--white-color);
	--gray-color: var(--dgray-color);
	--code-color: var(--mgray-color);
  }
  
  /* >>>>> ================ MAIN_CSS =============== <<<<< */
  html {
	scroll-behavior: smooth;
  }
  
  .container {
	min-width: 600px;
	margin: 0 auto;
	padding: 0 20px;
  }
  
  body {
	width: 600px;
	font-size: 0.9rem;
	font-weight: 300;
	color: var(--text-color);
	font-family: var(--content-font-family);
	letter-spacing: -0.3px;
	line-height: 1.8;
	background-color: var(--background-color);
	padding: 20px 0;
	margin: 0 auto;
	word-break: keep-all;
	overflow-wrap: break-word;
	display: flex;
	flex-direction: column;
	justify-content: center;
  }
  
  a {
	color: var(--text-color);
	text-decoration: none;
  }
  
  a:hover {
	color: var(--primary-color);
  }
  
  /* >>>>> ================ POST_TITLE_CSS =============== <<<<< */
  div.post-title {
	font-family: var(--title-font-family);
	font-size: 0.8rem;
	margin-bottom: 4px;
  }
  
  div.post-title small {
	color: var(--mgray-color);
  }

  /* >>>>> ================ HEADER_CSS =============== <<<<< */
  .main-header {
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 600px;
	margin: 0 auto;
	padding: 12px 0;
	font-size: 0.8rem;
	font-family: var(--title-font-family);
	position: fixed;
	background-color: var(--background-color);
	z-index: 1000;
  }
  
  .main-header nav {
	display: flex;
	list-style: none;
	justify-content: flex-start;
  }
  
  .main-header nav li {
	margin-right: 14px;
  }

  .main-header nav li a.active {
	color: var(--primary-color);
  }
  
  
  /* >>>>> ================ MARKDOWN_CSS =============== <<<<< */
  h1, h2, h3, h4, h5, h6 {
	margin-bottom: 0;
	font-family: var(--header-font-family);
	letter-spacing: -1.2px;
	font-weight: 700;
  }
  
  h1 {
	font-size: 1.8rem;
	line-height: 2.0;
  }
  
  h2 {
	font-size: 1.6rem;
	line-height: 1.6;
  }
  
  h3 {
	font-size: 1.4rem;
	line-height: 1.4;
  }
  
  h4 {
	font-size: 1.2rem;
	line-height: 1.2;
  }
  
  h1::after, h2::after, h3::after, h4::after {
	font-size: 0.6em;
	font-weight: 300;
	color: var(--dgray-color);
  }
  
  h1::after { content: " h1"; }
  h2::after { content: " h2"; }
  h3::after { content: " h3"; }
  h4::after { content: " h4"; }

  blockquote {
	width: 100%;
	font-weight: 500;
	font-family: var(--quote-font-family);
	font-size: 12pt;
	font-style: italic;
	letter-spacing: 0.5px;
	line-height: 1.8;
	margin: 0;
	padding: 4px 24px;
	border-left: 5px solid var(--primary-color);
	background-color: var(--gray-color);
  }
  
  blockquote p {
	margin: 0;
  }
  
  code {
	font-family: var(--title-font-family);
	padding: 2px 4px;
	margin: 4px;
	border-radius: 4px;
	white-space: pre-wrap;
	word-wrap: break-word;
  }
  
  pre {
	font-size: 0.8rem;
	margin: 8px 0px;
	padding: 0px 12px;
	border-radius: 4px;
	tab-size: 4;
	display: block;
	overflow-x: auto;
	white-space: pre-wrap;
	word-wrap: break-word;
  }
  
  pre code::before {
	font-size: 0.6rem;
	content: attr(data-lang);
	display: block;
	color: var(--white-color);
	padding-top: 0px;
	padding-bottom: 12px;
	text-align: right;
  }
  
  p code {
	font-family: var(--title-font-family);
	background-color: var(--gray-color);
	padding: 2px 4px;
	margin: 4px;
	border-radius: 4px;
	white-space: pre-wrap;
	word-wrap: break-word;
  }

  li code {
	font-family: var(--title-font-family);
	background-color: var(--gray-color);
	padding: 2px 4px;
	margin: 4px;
	border-radius: 4px;
	white-space: pre-wrap;
	word-wrap: break-word;
  }
  
  hr {
	height: 1px;
	width: 100%;
	margin-top: 2px;
	margin-bottom: 2px;
	opacity: 40%;
	color: var(--mgray-color);
  }
  
  /* >>>>> ================ FOOTER_CSS =============== <<<<< */
  footer {
	font-family: var(--title-font-family);
	font-size: 8pt;
	color: var(--text-color);
	margin-top: 20px;
	margin-bottom: 60px;
  }
  
  /* >>>>> ================ SHORTCUT_CSS =============== <<<<< */

  div.index-title {
	font-family: var(--title-font-family);
	font-size: 1.0rem;
	font-weight: 700;
	margin-top: 20px;
	margin-bottom: 4px;
	letter-spacing: -1.6px;
  }

  div.alert {
	width: auto;
	height: 40px;
	margin: 8px 0;
	text-align: center;
	padding: 4px 0;
	border-radius: 4px;
	background-color: var(--primary-color);
  }
  
  div.alert a {
	color: var(--white-color);
	font-weight: 400;
  }
  
  div.alert a:hover {
	color: var(--dgray-color);
  }

  div.commit {
	width: 100%;
  }
  
  div.commit img {
	display: block;
	margin-bottom: 1rem;
	max-width: 600px;
	height: auto;
  }
  
  div.series {
	margin-top: 10px;
	padding: 4px 10px;
	border-radius: 4px;
	font-family: var(--title-font-family);
	font-size: 0.8rem;
	background-color: var(--gray-color);
  }
  
  div.series ul li {
	list-style: none;
  }
  
  div.series a {
	padding-left: 14px;
	padding-top: 4px;
  }
  
  /* >>>>> ================ IMAGE_CSS =============== <<<<< */

  .featured-container {
	position: relative;
  }
  
  .featured-image img {
	width: 100%;
	height: 180px;
	object-fit: cover;
  }
  
  .featured-image::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to top, rgba(0, 0, 0, 1.0), rgba(0, 0, 0, 0));
	z-index: 5;
  }
  
  .overlay-text {
	position: absolute;
	font-family: var(--title-font-family);
	bottom: 10px;
	left: 20px;
	color: white;
	z-index: 10;
  }
  
  /* >>>>> ================ TOC_CSS =============== <<<<< */
  .toc {
	position: fixed;
	font-family: var(--title-font-family);
	font-size: 0.8rem;
	top: 30px;
	right: 0px;
	width: 200px;
	text-align: left;
	max-height: 80vh;
	overflow-y: auto;
	padding: 10px;
	z-index: 1001;
	opacity: 30%;
  }
  
  .toc:hover {
	opacity: 100%;
  }
  
  .toc ul {
	list-style-type: none;
	padding-left: 0;
  }
  
  .toc ul ul {
	margin-left: 15px;
  }
  
  .toc a {
	color: var(--text-color);
  }
  
  .toc a:hover {
	color: var(--primary-color);
  }
  
  .toc ul li ul li {
	font-size: 0.7rem;
  }

  .toc ul li ul li ul li{
	font-size: 0.6rem;
  }

  /* >>>>> ================ MISC_CSS =============== <<<<< */
  div.list {
	margin-top: 0.5rem;
  }
  
  div.page-links {
	font-family: var(--title-font-family);
  }
  
  div.page-links a {
	display: block;
	letter-spacing: -1px;
	margin-right: 8px;
  }

  .breadcrumb {
	margin-top: 2rem;
	margin-bottom: 0.5rem;
	font-size: 0.8rem;
	font-weight: 600;
	font-family: var(--title-font-family);
	color: var(--text-color);
  }
  