/* https://github.com/hyrious/github-markdown-css?tab=readme-ov-file */
/* https://cdn.jsdelivr.net/gh/hyrious/github-markdown-css@main/dist/dark_dimmed.css */
* {
  margin: 0;
  padding: 0;
}

/* 스크롤바 스타일링 */
/* Webkit 브라우저 (Chrome, Safari, Edge) */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: #3d444d;
  border-radius: 4px;
}

/* ::-webkit-scrollbar-thumb:hover {
  background: #478be6;
} */

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: #3d444d transparent;
}

/* Utility classes */
.hidden {
  display: none !important;
}

body {
  background-color: #212830;

  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji',
    'Segoe UI Emoji';
}
#app {
  max-width: 800px;
  margin: auto;
}
/* 상단 네비게이션 */
#nav {
  max-width: 800px;
  margin: 0 auto 12px;
  border-bottom: 1px solid #3d444db3;
  height: 64px;
}
.blog-logo-container {
  height: 100%;
  /* padding: 0 8px; */
}
.blog-logo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  gap: 12px;
}
.logo-img {
  width: 40px;
  height: 40px;
}
#nav ul {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
#nav ul li {
  list-style-type: none;
}
#nav a {
  color: #478be6;
  text-decoration: none;
  font-weight: 600;
}
#nav ul .github-link {
  width: 104px;
  text-align: right;
}
/* 블로그 글 목록 */
.blog-list {
  list-style-type: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.blog-item {
  border-bottom: 1px solid #3d444db3;
}
.blog-item.hidden {
  display: none;
}
.blog-link {
  background-color: transparent;
  color: #478be6;
  text-decoration: none;
  font-weight: 600;
}
.blog-date {
  color: #9198a1;
  margin: 8px 0 4px;
}
.blog-description {
  color: #9198a1;
  margin: 4px 0 4px;
}
.blog-divider {
  border: 0;
  height: 1px;
  color: #3d444db3;
  margin: 8px 0 0 0;
}
.tag-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.tag-item {
  box-sizing: border-box;
  font-size: 16px;
  line-height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.tag-item:hover .tag-text {
  color: #6cb6ff;
}
.selected-tag-item .tag-text {
  color: #478be6;
}
.tag-text {
  font-size: 16px;
  line-height: 16px;
  height: 16px;
  white-space: nowrap;
  text-align: center;
  color: #9198a1;

  text-decoration: none;
}

#search-popup {
  position: fixed;
  top: 25vh;
  z-index: 2;
}

#popup-container {
  position: absolute;
  width: 50vw;
  /* top: 25vh; */
  top: 0;
  left: 25vw;
  background-color: #f0f6fc;
  border-radius: 6px;
  padding: 12px;
  z-index: 2;
}

#search-form {
  border: solid 1px #9198a1;
  border-radius: 4px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  padding: 0 12px;
}
#search-icon {
  margin: 4px;

  filter: invert(62%) sepia(14%) saturate(192%) hue-rotate(174deg) brightness(93%) contrast(94%);

  width: 20px;
  height: 20px;
}
#search-input {
  all: unset;
  width: 100%;
  color: #212830;
  padding: 6px 12px;
  font-size: 16px;
  -webkit-appearance: none;
  appearance: none;
}

/* Chrome, Safari, Edge (WebKit) CSS search 삭제버튼 제거 */
input[type='search']::-webkit-search-decoration,
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-results-button,
input[type='search']::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
}
#popup-container #search-blog-list {
  padding: 8px 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 256px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #3d444db3 transparent;
}

#popup-container #search-blog-list .search-item {
  text-decoration: none;
  list-style-type: none;
  display: flex;
}

#popup-container #search-blog-list .search-item .search-item-link {
  all: unset;
  width: 100%;
  color: #9198a1;
  border: solid 1px #9198a1;
  border-radius: 4px;
  padding: 4px 8px;
  cursor: pointer;
}

#popup-container #search-blog-list .search-item .search-item-link:hover {
  color: #478be6;
  border: solid 1px #478be6;
}
#popup-container #search-blog-list .search-item .search-item-focus {
  color: #478be6;
  border: solid 1px #478be6;
}

#popup-container #search-blog-list .search-item .search-item-link .search-highlight {
  background-color: #478be6;
  color: #f0f6fc;
  font-weight: 500;
}

#popup-container #search-blog-list .search-item .search-item-link .search-highlight {
  background-color: #478be6;
  color: #f0f6fc;
  font-weight: 500;
}

#popup-container #search-tag-list .search-tag-item .tag-link .search-highlight {
  background-color: #478be6;
  color: #f0f6fc;
  font-weight: 500;
}

#search-form:has(#search-input:hover) {
  border: solid 1px #6cb6ff;
}
#search-form:has(#search-input:hover) #search-icon {
  filter: invert(79%) sepia(29%) saturate(7152%) hue-rotate(185deg) brightness(105%) contrast(101%);
}

#search-form:has(#search-input:focus) {
  border: solid 1px #478be6;
}
#search-form:has(#search-input:focus) #search-icon {
  filter: invert(50%) sepia(98%) saturate(1953%) hue-rotate(194deg) brightness(95%) contrast(90%);
}

#search-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0 0;
  max-height: 248px;
  overflow-y: auto;

  scrollbar-width: thin;
  scrollbar-color: #3d444db3 transparent;
}
/* scrollbar */
/* #search-tag-list::-webkit-scrollbar-track {
  background: transparent;
}

#search-tag-list::-webkit-scrollbar-thumb {
  background: #9198a1;
  border-radius: 4px;
} */

#search-tag-list .search-tag-item {
  text-decoration: none;
  list-style-type: none;
  display: flex;
}

#search-tag-list .search-tag-item .tag-link {
  border-radius: 4px;
  color: #9198a1;
  border: solid 1px #9198a1;
  box-sizing: border-box;
  padding: 4px 8px;
  font-size: 16px;
  text-decoration: none;
  z-index: 3;
}

#search-tag-list .search-tag-item .tag-link.selected {
  border: solid 1px #478be6;
  color: #478be6;
}

#search-tag-list .search-tag-item .tag-link:hover {
  border: solid 1px #6cb6ff;
  color: #6cb6ff;
  cursor: pointer;
}

#overlay {
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.3);
  width: calc(100vw - (100vw - 100%));
  height: 100vh;
  z-index: 1;
}

.footer {
  height: 150px;
}

/* copy button */
#content .code-block-wraper {
  z-index: 0;
  position: relative;
}

#content .code-block-wraper:hover > .copy-warrper {
  display: block;
}

.copy-warrper {
  width: 36px !important;
  height: 36px;
  position: absolute;
  border-radius: 4px;
  top: 0;
  right: 0;
  margin: 8px;
  display: none;

  aspect-ratio: 1 / 1;
}
.copy-warrper:hover {
  background-color: #22272e;
}

#content .copy-warrper > .btn {
  all: unset;
  width: 100%;
  aspect-ratio: 1 / 1;
  cursor: pointer;
  background-repeat: no-repeat;
  background-position: center center;
}

.copy-btn {
  background-color: #9198a1 !important;
  mask: url(/clipboard.svg) no-repeat center !important;
}

.clicked-copy-btn {
  background-color: #478be6 !important;
  mask: url(/clipboard-check.svg) no-repeat center !important;
}

/* 
  * code block 가로스크롤 예외 처리
  * 오른쪽으로 스크롤 끝까지 가면 16px 만큼 추가해서 좌우 대칭 맞춤 
  */
code > .line > span:last-child {
  padding: 0 16px 0 0;
}
#popup-btn {
  all: unset;
  display: flex;
  background-color: #262c36;
  color: #9198a1;
  height: 40px;
  width: 160px;
  padding: 0 12px;
  font-size: 14px;
  border-radius: 4px;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  border: solid 1px #3d444db3;
  box-sizing: border-box;
}

#popup-btn .icon {
  margin: 4px;
  filter: invert(62%) sepia(14%) saturate(192%) hue-rotate(174deg) brightness(93%) contrast(94%);
  width: 16px;
  height: 16px;
}

#not-found {
  padding: 72px 0;
  display: flex;
  flex: 0 0 1;
  flex-direction: column;
  align-items: center;
  color: #d1d7e0;
}
#not-found .status-code {
  font-size: 56px;
  font-weight: 700;
}
#not-found .not-found-text {
  padding: 4px 0 24px 0;
  font-size: 20px;
  font-weight: 700;
}

#not-found .not-found-btn {
  all: unset;
  cursor: pointer;
}

#not-found .go-home {
  background-color: none;
  border: solid 1px #478be6;
  color: #478be6;
  box-sizing: border-box;
  height: 40px;
  padding: 0 12px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 600;
}

/* dark_dimmed */
.markdown-body {
  color-scheme: dark;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  color: #d1d7e0;
  background-color: #212830;
  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji',
    'Segoe UI Emoji';
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body .octicon {
  display: inline-block;
  fill: currentColor;
  vertical-align: text-bottom;
}

.markdown-body h1:hover .anchor .octicon-link:before,
.markdown-body h2:hover .anchor .octicon-link:before,
.markdown-body h3:hover .anchor .octicon-link:before,
.markdown-body h4:hover .anchor .octicon-link:before,
.markdown-body h5:hover .anchor .octicon-link:before,
.markdown-body h6:hover .anchor .octicon-link:before {
  width: 16px;
  height: 16px;
  content: ' ';
  display: inline-block;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
  mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
}

.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
  display: block;
}

.markdown-body summary {
  display: list-item;
}

.markdown-body [hidden] {
  display: none !important;
}

.markdown-body a {
  background-color: transparent;
  color: #478be6;
  text-decoration: none;
}

.markdown-body abbr[title] {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

.markdown-body b,
.markdown-body strong {
  font-weight: 600;
}

.markdown-body dfn {
  font-style: italic;
}

.markdown-body h1 {
  margin: 0.67em 0;
  font-weight: 600;
  padding-bottom: 0.3em;
  font-size: 2em;
  border-bottom: 1px solid #3d444db3;
}

.markdown-body mark {
  background-color: #ae7c1426;
  color: #d1d7e0;
}

.markdown-body small {
  font-size: 90%;
}

.markdown-body sub,
.markdown-body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

.markdown-body sub {
  bottom: -0.25em;
}

.markdown-body sup {
  top: -0.5em;
}

.markdown-body img {
  border-style: none;
  max-width: 100%;
  box-sizing: content-box;
}

.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
  font-family: monospace;
  font-size: 1em;
}

.markdown-body figure {
  margin: 1em 2.5rem;
}

.markdown-body hr {
  box-sizing: content-box;
  overflow: hidden;
  background: transparent;
  border-bottom: 1px solid #3d444db3;
  height: 0.25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #3d444d;
  border: 0;
}

.markdown-body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body [type='button'],
.markdown-body [type='reset'],
.markdown-body [type='submit'] {
  -webkit-appearance: button;
  appearance: button;
}

.markdown-body [type='checkbox'],
.markdown-body [type='radio'] {
  box-sizing: border-box;
  padding: 0;
}

.markdown-body [type='number']::-webkit-inner-spin-button,
.markdown-body [type='number']::-webkit-outer-spin-button {
  height: auto;
}

.markdown-body [type='search']::-webkit-search-cancel-button,
.markdown-body [type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

.markdown-body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body ::placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body hr::before {
  display: table;
  content: '';
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: '';
}

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: max-content;
  max-width: 100%;
  overflow: auto;
  font-variant: tabular-nums;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body details summary {
  cursor: pointer;
}

.markdown-body a:focus,
.markdown-body [role='button']:focus,
.markdown-body input[type='radio']:focus,
.markdown-body input[type='checkbox']:focus {
  outline: 2px solid #316dca;
  outline-offset: -2px;
  box-shadow: none;
}

.markdown-body a:focus:not(:focus-visible),
.markdown-body [role='button']:focus:not(:focus-visible),
.markdown-body input[type='radio']:focus:not(:focus-visible),
.markdown-body input[type='checkbox']:focus:not(:focus-visible) {
  outline: solid 1px transparent;
}

.markdown-body a:focus-visible,
.markdown-body [role='button']:focus-visible,
.markdown-body input[type='radio']:focus-visible,
.markdown-body input[type='checkbox']:focus-visible {
  outline: 2px solid #316dca;
  outline-offset: -2px;
  box-shadow: none;
}

.markdown-body a:not([class]):focus,
.markdown-body a:not([class]):focus-visible,
.markdown-body input[type='radio']:focus,
.markdown-body input[type='radio']:focus-visible,
.markdown-body input[type='checkbox']:focus,
.markdown-body input[type='checkbox']:focus-visible {
  outline-offset: 0;
}

.markdown-body kbd {
  display: inline-block;
  padding: 0.25rem;
  font:
    11px ui-monospace,
    SFMono-Regular,
    SF Mono,
    Menlo,
    Consolas,
    Liberation Mono,
    monospace;
  line-height: 10px;
  color: #d1d7e0;
  vertical-align: middle;
  background-color: #262c36;
  border: solid 1px #3d444db3;
  border-bottom-color: #3d444db3;
  border-radius: 6px;
  box-shadow: inset 0 -1px 0 #3d444db3;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h2 {
  font-weight: 600;
  padding-bottom: 0.3em;
  font-size: 1.5em;
  border-bottom: 1px solid #3d444db3;
}

.markdown-body h3 {
  font-weight: 600;
  font-size: 1.25em;
}

.markdown-body h4 {
  font-weight: 600;
  font-size: 1em;
}

.markdown-body h5 {
  font-weight: 600;
  font-size: 0.875em;
}

.markdown-body h6 {
  font-weight: 600;
  font-size: 0.85em;
  color: #9198a1;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: #9198a1;
  border-left: 0.25em solid #3d444d;
}

.markdown-body ul,
.markdown-body ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body tt,
.markdown-body code,
.markdown-body samp {
  font-family:
    ui-monospace,
    SFMono-Regular,
    SF Mono,
    Menlo,
    Consolas,
    Liberation Mono,
    monospace;
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family:
    ui-monospace,
    SFMono-Regular,
    SF Mono,
    Menlo,
    Consolas,
    Liberation Mono,
    monospace;
  font-size: 12px;
  word-wrap: normal;
}

.markdown-body .octicon {
  display: inline-block;
  overflow: visible !important;
  vertical-align: text-bottom;
  fill: currentColor;
}

.markdown-body input::-webkit-outer-spin-button,
.markdown-body input::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
}

.markdown-body .mr-2 {
  margin-right: 0.5rem !important;
}

.markdown-body::before {
  display: table;
  content: '';
}

.markdown-body::after {
  display: table;
  clear: both;
  content: '';
}

.markdown-body > *:first-child {
  margin-top: 0 !important;
}

.markdown-body > *:last-child {
  margin-bottom: 0 !important;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

.markdown-body .absent {
  color: #e5534b;
}

.markdown-body .anchor {
  float: left;
  padding-right: 0.25rem;
  margin-left: -20px;
  line-height: 1;
}

.markdown-body .anchor:focus {
  outline: none;
}

.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
  margin-top: 0;
  margin-bottom: 1rem;
}

.markdown-body blockquote > :first-child {
  margin-top: 0;
}

.markdown-body blockquote > :last-child {
  margin-bottom: 0;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: #d1d7e0;
  vertical-align: middle;
  visibility: hidden;
}

.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none;
}

.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible;
}

.markdown-body h1 tt,
.markdown-body h1 code,
.markdown-body h2 tt,
.markdown-body h2 code,
.markdown-body h3 tt,
.markdown-body h3 code,
.markdown-body h4 tt,
.markdown-body h4 code,
.markdown-body h5 tt,
.markdown-body h5 code,
.markdown-body h6 tt,
.markdown-body h6 code {
  padding: 0 0.2em;
  font-size: inherit;
}

.markdown-body summary h1,
.markdown-body summary h2,
.markdown-body summary h3,
.markdown-body summary h4,
.markdown-body summary h5,
.markdown-body summary h6 {
  display: inline-block;
}

.markdown-body summary h1 .anchor,
.markdown-body summary h2 .anchor,
.markdown-body summary h3 .anchor,
.markdown-body summary h4 .anchor,
.markdown-body summary h5 .anchor,
.markdown-body summary h6 .anchor {
  margin-left: -40px;
}

.markdown-body summary h1,
.markdown-body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

.markdown-body ul.no-list,
.markdown-body ol.no-list {
  padding: 0;
  list-style-type: none;
}

.markdown-body ol[type='a s'] {
  list-style-type: lower-alpha;
}

.markdown-body ol[type='A s'] {
  list-style-type: upper-alpha;
}

.markdown-body ol[type='i s'] {
  list-style-type: lower-roman;
}

.markdown-body ol[type='I s'] {
  list-style-type: upper-roman;
}

.markdown-body ol[type='1'] {
  list-style-type: decimal;
}

.markdown-body div > ol:not([type]) {
  list-style-type: decimal;
}

.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li > p {
  margin-top: 1rem;
}

.markdown-body li + li {
  margin-top: 0.25em;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: 1rem;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

.markdown-body dl dd {
  padding: 0 1rem;
  margin-bottom: 1rem;
}

.markdown-body table th {
  font-weight: 600;
}

.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid #3d444d;
}

.markdown-body table td > :last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: #212830;
  border-top: 1px solid #3d444db3;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #262c36;
}

.markdown-body table img {
  background-color: transparent;
}

.markdown-body img[align='right'] {
  padding-left: 20px;
}

.markdown-body img[align='left'] {
  padding-right: 20px;
}

.markdown-body .emoji {
  max-width: none;
  vertical-align: text-top;
  background-color: transparent;
}

.markdown-body span.frame {
  display: block;
  overflow: hidden;
}

.markdown-body span.frame > span {
  display: block;
  float: left;
  width: auto;
  padding: 7px;
  margin: 13px 0 0;
  overflow: hidden;
  border: 1px solid #3d444d;
}

.markdown-body span.frame span img {
  display: block;
  float: left;
}

.markdown-body span.frame span span {
  display: block;
  padding: 5px 0 0;
  clear: both;
  color: #d1d7e0;
}

.markdown-body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-center > span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: center;
}

.markdown-body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}

.markdown-body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-right > span {
  display: block;
  margin: 13px 0 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body span.align-right span img {
  margin: 0;
  text-align: right;
}

.markdown-body span.float-left {
  display: block;
  float: left;
  margin-right: 13px;
  overflow: hidden;
}

.markdown-body span.float-left span {
  margin: 13px 0 0;
}

.markdown-body span.float-right {
  display: block;
  float: right;
  margin-left: 13px;
  overflow: hidden;
}

.markdown-body span.float-right > span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body code,
.markdown-body tt {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: #656c7633;
  border-radius: 6px;
}

.markdown-body code br,
.markdown-body tt br {
  display: none;
}

.markdown-body del code {
  text-decoration: inherit;
}

.markdown-body samp {
  font-size: 85%;
}

.markdown-body pre code {
  font-size: 100%;
}

.markdown-body pre > code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: 1rem;
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 1rem;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: #d1d7e0;
  background-color: #262c36;
  border-radius: 6px;
}

.markdown-body pre code,
.markdown-body pre tt {
  display: inline;
  max-width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0;
}

.markdown-body .csv-data td,
.markdown-body .csv-data th {
  padding: 5px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1;
  text-align: left;
  white-space: nowrap;
}

.markdown-body .csv-data .blob-num {
  padding: 10px 0.5rem 9px;
  text-align: right;
  background: #212830;
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: 600;
  background: #262c36;
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: '[';
}

.markdown-body [data-footnote-ref]::after {
  content: ']';
}

.markdown-body .footnotes {
  font-size: 12px;
  color: #9198a1;
  border-top: 1px solid #3d444d;
}

.markdown-body .footnotes ol {
  padding-left: 1rem;
}

.markdown-body .footnotes ol ul {
  display: inline-block;
  padding-left: 1rem;
  margin-top: 1rem;
}

.markdown-body .footnotes li {
  position: relative;
}

.markdown-body .footnotes li:target::before {
  position: absolute;
  top: calc(0.5rem * -1);
  right: calc(0.5rem * -1);
  bottom: calc(0.5rem * -1);
  left: calc(1.5rem * -1);
  pointer-events: none;
  content: '';
  border: 2px solid #316dca;
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: #d1d7e0;
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: #9198a1;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #6cb6ff;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #dcbdfb;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #f0f6fc;
}

.markdown-body .pl-ent {
  color: #8ddb8c;
}

.markdown-body .pl-k {
  color: #f47067;
}

.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: #96d0ff;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #f69d50;
}

.markdown-body .pl-bu {
  color: #e5534b;
}

.markdown-body .pl-ii {
  color: #f0f6fc;
  background-color: #922323;
}

.markdown-body .pl-c2 {
  color: #f0f6fc;
  background-color: #ad2e2c;
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #8ddb8c;
}

.markdown-body .pl-ml {
  color: #eac55f;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #316dca;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #f0f6fc;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #f0f6fc;
}

.markdown-body .pl-md {
  color: #ffd8d3;
  background-color: #78191b;
}

.markdown-body .pl-mi1 {
  color: #b4f1b4;
  background-color: #1b4721;
}

.markdown-body .pl-mc {
  color: #ffddb0;
  background-color: #682d0f;
}

.markdown-body .pl-mi2 {
  color: #f0f6fc;
  background-color: #255ab2;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #dcbdfb;
}

.markdown-body .pl-ba {
  color: #9198a1;
}

.markdown-body .pl-sg {
  color: #3d444d;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #96d0ff;
}

.markdown-body [role='button']:focus:not(:focus-visible),
.markdown-body [role='tabpanel'][tabindex='0']:focus:not(:focus-visible),
.markdown-body button:focus:not(:focus-visible),
.markdown-body summary:focus:not(:focus-visible),
.markdown-body a:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

.markdown-body [tabindex='0']:focus:not(:focus-visible),
.markdown-body details-dialog:focus:not(:focus-visible) {
  outline: none;
}

.markdown-body g-emoji {
  display: inline-block;
  min-width: 1ch;
  font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  font-size: 1em;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1;
  vertical-align: -0.075em;
}

.markdown-body g-emoji img {
  width: 1em;
  height: 1em;
}

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item label {
  font-weight: 400;
}

.markdown-body .task-list-item.enabled label {
  cursor: pointer;
}

.markdown-body .task-list-item + .task-list-item {
  margin-top: 0.25rem;
}

.markdown-body .task-list-item .handle {
  display: none;
}

.markdown-body .task-list-item-checkbox {
  margin: 0 0.2em 0.25em -1.4em;
  vertical-align: middle;
}

.markdown-body ul:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em 0.25em 0.2em;
}

.markdown-body ol:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em 0.25em 0.2em;
}

.markdown-body .contains-task-list:hover .task-list-item-convert-container,
.markdown-body .contains-task-list:focus-within .task-list-item-convert-container {
  display: block;
  width: auto;
  height: 24px;
  overflow: visible;
  clip: auto;
}

.markdown-body ::-webkit-calendar-picker-indicator {
  filter: invert(50%);
}

.markdown-body .markdown-alert {
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
  color: inherit;
  border-left: 0.25em solid #3d444d;
}

.markdown-body .markdown-alert > :first-child {
  margin-top: 0;
}

.markdown-body .markdown-alert > :last-child {
  margin-bottom: 0;
}

.markdown-body .markdown-alert .markdown-alert-title {
  display: flex;
  font-weight: 500;
  align-items: center;
  line-height: 1;
}

.markdown-body .markdown-alert.markdown-alert-note {
  border-left-color: #316dca;
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: #478be6;
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: #8256d0;
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: #986ee2;
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: #966600;
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: #c69026;
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: #347d39;
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: #57ab5a;
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: #c93c37;
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: #e5534b;
}

.markdown-body > *:first-child > .heading-element:first-child {
  margin-top: 0 !important;
}

/* Post Navigation */
.post-navigation {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid #30363d;
}

.post-navigation .previous-post,
.post-navigation .next-post {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 45%;
}

.post-navigation .previous-post {
  align-items: flex-start;
}

.post-navigation .next-post {
  align-items: flex-end;
  margin-left: auto;
}

.post-navigation .nav-label {
  font-size: 0.875rem;
  color: #8b949e;
}

.post-navigation .nav-link {
  color: #58a6ff;
  text-decoration: none;
  font-weight: 500;
  line-height: 1.4;
}

.post-navigation .nav-link:hover {
  text-decoration: underline;
}

.post-navigation .next-post .nav-link {
  text-align: right;
}

/* ==================== Callout Styles ==================== */
.callout {
  padding: 1rem 1.25rem;
  margin: 1.5rem 0;
  border-left: 4px solid;
  border-radius: 0 8px 8px 0;
  background-color: #21262d;
}

.callout p {
  margin: 0;
}

.callout p + p {
  margin-top: 0.75rem;
}

/* Info callout - 파란색 */
.callout-info {
  background-color: rgba(56, 139, 253, 0.1);
  border-color: #388bfd;
}

/* Tip callout - 초록색 */
.callout-tip {
  background-color: rgba(63, 185, 80, 0.1);
  border-color: #3fb950;
}

/* Note callout - 보라색 */
.callout-note {
  background-color: rgba(163, 113, 247, 0.1);
  border-color: #a371f7;
}

/* Caution callout - 노란색 */
.callout-caution {
  background-color: rgba(210, 153, 34, 0.1);
  border-color: #d29922;
}

/* Warning callout - 주황색 */
.callout-warning {
  background-color: rgba(219, 109, 40, 0.1);
  border-color: #db6d28;
}

/* Danger callout - 빨간색 */
.callout-danger {
  background-color: rgba(248, 81, 73, 0.1);
  border-color: #f85149;
}

/* ==================== TOC Styles ==================== */
#toc {
  position: fixed;
  /* #app(800px) 오른쪽 여백에 배치 */
  left: calc(50% + 400px + 24px);
  top: 100px;
  width: 200px;
  max-height: calc(100vh - 150px);
  overflow-y: auto;
}

/* 화면이 좁으면 숨김 (TOC 공간 부족 시) */
@media (max-width: 1100px) {
  #toc {
    display: none;
  }
}

.toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.toc-item {
  line-height: 1.4;
}

.toc-item a {
  display: block;
  color: #9198a1;
  text-decoration: none;
  font-size: 14px;
  /* 말줄임표 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.toc-item a:hover {
  color: #478be6;
}

/* 레벨별 들여쓰기 */
.toc-level-2 {
  padding-left: 0;
}

.toc-level-3 {
  padding-left: 12px;
}

.toc-level-4 {
  padding-left: 24px;
}

.toc-level-5 {
  padding-left: 36px;
}

.toc-level-6 {
  padding-left: 48px;
}
