@charset "UTF-8";
/**
 * Reset some basic elements
 */
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
  margin: 0;
  padding: 0;
}

/**
 * Basic styling
 */
body {
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
  font-weight: 400;
  font-size: 14px;
  font-display: swap;
  line-height: 1.6;
  color: #1d1d1f;
  background-color: #fff;
  -webkit-text-size-adjust: 100%;
  -webkit-font-feature-settings: "kern" 1;
  -moz-font-feature-settings: "kern" 1;
  -o-font-feature-settings: "kern" 1;
  font-feature-settings: "kern" 1;
  font-kerning: normal;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  transition-duration: 0.3s;
}

/**
 * Set `margin-bottom` to maintain vertical rhythm
 */
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure {
  margin-bottom: 15px;
}

/**
 * `main` element
 */
main {
  display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */
}

/**
 * Images
 */
img {
  max-width: 100%;
  vertical-align: middle;
}

.post-content img,
.page-content img {
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin: 0.75em 0;
}
.post-content figure,
.page-content figure {
  margin: 0.75em 0;
}
.post-content figure img,
.page-content figure img {
  margin: 0;
}

[data-theme=dark] .post-content img,
[data-theme=dark] .page-content img {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/**
 * Figures
 */
figure > img {
  display: block;
}

figcaption {
  font-size: 12.25px;
}

/**
 * Lists
 */
ul, ol {
  margin-left: 30px;
}

li > ul,
li > ol {
  margin-bottom: 0;
}

/**
 * Enhanced List Styles with File-Tree Rail + Node Markers
 * Scoped to .post-content only, so home / sidebars / other pages keep
 * their plain lists.
 *
 * Each list level draws a shared vertical rail; every item carries an
 * opaque round node centred on the rail (a number for <ol>, a dot for
 * <ul>). The node sits on top of the rail and masks the line behind it,
 * so the marker never visually collides with the connector. The last
 * sibling trims the rail at its node so no tail dangles below the group.
 */
.post-content ul, .post-content ol {
  list-style: none;
  margin: 0.4em 0;
  padding-left: 1.9em;
  position: relative;
}
.post-content > ul,
.post-content > ol {
  margin-left: 0.3em;
}
.post-content ol {
  counter-reset: ol-node;
}
.post-content li {
  position: relative;
  padding: 0.12em 0.4em;
  margin: 0.18em 0;
  border-radius: 4px;
  transition: background-color 0.2s ease-in-out;
}
.post-content li::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1em;
  width: 1.5px;
  background: rgba(130, 130, 130, 0.45);
  border-radius: 2px;
}
.post-content li:last-child::before {
  bottom: auto;
  height: 0.85em;
}
.post-content li::after {
  position: absolute;
  top: 0.85em;
  left: -1em;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5em;
  height: 1.5em;
  background: #ffffff;
  border: 1.5px solid rgba(120, 120, 120, 0.55);
  border-radius: 50%;
  color: rgba(70, 70, 70, 0.95);
  font-weight: 700;
  line-height: 1;
  transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out, background-color 0.2s ease-in-out;
}
.post-content ol > li {
  counter-increment: ol-node;
}
.post-content ol > li::after {
  content: counter(ol-node, decimal);
}
.post-content ol ol > li::after {
  content: counter(ol-node, lower-alpha);
}
.post-content ol ol ol > li::after {
  content: counter(ol-node, lower-roman);
}
.post-content ol ol ol ol > li::after {
  content: counter(ol-node, decimal);
}
.post-content ul > li::after {
  content: "";
  width: 0.5em;
  height: 0.5em;
  background: rgba(120, 120, 120, 0.55);
  border: none;
}
.post-content ul ul > li::after {
  background: rgba(120, 120, 120, 0.4);
}
.post-content ul ul ul > li::after {
  background: transparent;
  border: 1.5px solid rgba(120, 120, 120, 0.55);
}
.post-content li:hover {
  background-color: transparent;
}
.post-content li:hover::before {
  background: #ff3b30;
}
.post-content li:hover::after {
  border-color: #ff3b30;
  color: #ff3b30;
}
.post-content ul > li:hover::after {
  background: #ff3b30;
  border-color: #ff3b30;
}
.post-content li li li::after {
  content: "" !important;
  top: 0.85em;
  left: -1em;
  width: 1em !important;
  height: 1.5px !important;
  min-width: 0 !important;
  background: rgba(130, 130, 130, 0.45) !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: translateY(-50%) !important;
  display: block !important;
}
.post-content li li li:hover {
  background-color: transparent;
}
.post-content li li li:hover::after {
  background: #ff3b30 !important;
}

[data-theme=dark] .post-content li::before {
  background: rgba(180, 180, 180, 0.32);
}
[data-theme=dark] .post-content li::after {
  background: #1a1a1a;
  border-color: rgba(170, 170, 170, 0.5);
  color: rgba(205, 205, 205, 0.95);
}
[data-theme=dark] .post-content ul > li::after {
  background: rgba(170, 170, 170, 0.5);
  border: none;
}
[data-theme=dark] .post-content ul ul ul > li::after {
  background: transparent;
  border: 1.5px solid rgba(170, 170, 170, 0.5);
}
[data-theme=dark] .post-content li:hover {
  background-color: transparent;
}
[data-theme=dark] .post-content li:hover::before {
  background: #ff756d;
}
[data-theme=dark] .post-content li:hover::after {
  border-color: #ff756d;
  color: #ff756d;
}
[data-theme=dark] .post-content ul > li:hover::after {
  background: #ff756d;
  border-color: #ff756d;
}
[data-theme=dark] .post-content li li li::after {
  background: rgba(180, 180, 180, 0.32) !important;
}
[data-theme=dark] .post-content li li li:hover::after {
  background: #ff756d !important;
}

/**
 * Headings
 */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
}

/**
 * Links
 */
a {
  color: #ff3b30;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
.social-media-list a:hover {
  text-decoration: none;
}
.social-media-list a:hover .username {
  text-decoration: underline;
}

/**
 * Blockquotes
 */
blockquote {
  color: #777;
  border-left: 4px solid #dddddd;
  padding-left: 15px;
  font-size: 15.75px;
  letter-spacing: -1px;
  font-style: italic;
}
blockquote > :last-child {
  margin-bottom: 0;
}

/**
 * Code formatting
 */
pre,
code {
  font-size: 13.125px;
}

pre code {
  color: #abb2bf;
}

*:not(pre) > code {
  padding: 3px 6px;
  border-radius: 3px;
  background-color: #eee;
  color: #e06c75;
  margin: 0 5px;
}

pre {
  overflow-x: auto;
  position: relative;
}
pre > code {
  display: inline-block;
  background-color: transparent;
  border: 0;
}
pre table, pre pre {
  margin-bottom: 0;
}
pre table .gutter, pre table .code, pre pre .gutter, pre pre .code {
  padding: 6px;
  border: none;
}

/**
 * Wrapper
 */
.wrapper {
  max-width: 1200px;
  margin: auto;
  padding-right: 30px;
  padding-left: 30px;
}

/**
 * Clearfix
 */
.wrapper:after {
  content: "";
  display: table;
  clear: both;
}

/**
 * Tables
 */
table {
  display: block;
  margin-bottom: 30px;
  width: 100%;
  text-align: left;
  color: #29292c;
  border-collapse: collapse;
  overflow: auto;
}
table tr:nth-child(even) {
  background-color: #ececec;
}
table th, table td {
  padding: 10px 15px;
}
table th {
  background-color: #e5e5e5;
  border: 1px solid lightgray;
  border-bottom-color: #bebebe;
}
table td {
  border: 1px solid #dddddd;
}

/**
 * Flex layout
 */
.framework {
  display: flex;
}

.framework .main, .page-content {
  flex: 1;
  min-width: 0; /* <-- fix flexbox width with pre tags  */
}

/**
 * Flex sticky
 */
/**
 * Vertical center
 */
/**
 * Horizontal center
 */
/**
 * Center background image
 */
/**
 * Text Selection
 */
::selection {
  color: inherit;
  background-color: rgba(0, 196, 207, 0.3);
}

::-moz-selection { /* Code for Firefox */
  color: inherit;
  background-color: rgba(0, 196, 207, 0.3);
}

::-ms-selection {
  color: inherit;
  background-color: rgba(0, 196, 207, 0.3);
}

::-o-selection {
  color: inherit;
  background-color: rgba(0, 196, 207, 0.3);
}

::-webkit-selection {
  color: inherit;
  background-color: rgba(0, 196, 207, 0.3);
}

/**
 * Text Highlighting and Color Utilities
 */
/*
 * Highlighter (marker-pen) styles.
 *
 * Instead of a flat box that covers the whole line height, each highlight
 * paints a translucent band over only the middle of the text (like a real
 * highlighter stroke) and blends with the page via mix-blend-mode, so the
 * text stays legible and the colour reads as ink on top in both themes:
 *   - light mode uses `multiply` (ink darkens the white page)
 *   - dark mode uses `screen`  (ink lightens the dark page)
 */
.highlight-yellow {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(255, 225, 77, 0.5) 14%, rgba(255, 225, 77, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-green {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(123, 211, 137, 0.5) 14%, rgba(123, 211, 137, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-blue {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(95, 176, 245, 0.5) 14%, rgba(95, 176, 245, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-pink {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(244, 143, 177, 0.5) 14%, rgba(244, 143, 177, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-orange {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(255, 178, 77, 0.5) 14%, rgba(255, 178, 77, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-purple {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(192, 123, 224, 0.5) 14%, rgba(192, 123, 224, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-red {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(240, 98, 95, 0.5) 14%, rgba(240, 98, 95, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-cyan {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(77, 208, 225, 0.5) 14%, rgba(77, 208, 225, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-lime {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(194, 221, 58, 0.5) 14%, rgba(194, 221, 58, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-gray {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(176, 176, 176, 0.5) 14%, rgba(176, 176, 176, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-teal {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(77, 182, 172, 0.5) 14%, rgba(77, 182, 172, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.highlight-indigo {
  background-image: linear-gradient(to bottom, transparent 14%, rgba(121, 134, 203, 0.5) 14%, rgba(121, 134, 203, 0.5) 90%, transparent 90%);
  background-repeat: no-repeat;
  border-radius: 0.15em;
  padding: 0 0.12em;
  mix-blend-mode: multiply;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Text color styles */
.text-red {
  color: #e53935;
}

.text-blue {
  color: #1e88e5;
}

.text-green {
  color: #43a047;
}

.text-orange {
  color: #fb8c00;
}

.text-purple {
  color: #8e24aa;
}

.text-pink {
  color: #d81b60;
}

.text-gray {
  color: #757575;
}

/* Bold text utility */
.text-bold {
  font-weight: bold;
}

/* Italic text utility */
.text-italic {
  font-style: italic;
}

/* Underline text utility */
.text-underline {
  text-decoration: underline;
}

/* Strikethrough text utility */
.text-strike {
  text-decoration: line-through;
}

/* Box highlight styles */
.box-note {
  background-color: #e3f2fd;
  border-left: 4px solid #2196f3;
  padding: 8px 16px;
  margin: 16px 0;
  border-radius: 4px;
}

.box-warning {
  background-color: #fff3e0;
  border-left: 4px solid #ff9800;
  padding: 8px 16px;
  margin: 16px 0;
  border-radius: 4px;
}

.box-danger {
  background-color: #ffebee;
  border-left: 4px solid #f44336;
  padding: 8px 16px;
  margin: 16px 0;
  border-radius: 4px;
}

.box-success {
  background-color: #e8f5e9;
  border-left: 4px solid #4caf50;
  padding: 8px 16px;
  margin: 16px 0;
  border-radius: 4px;
}

/* kramdown wraps markdown="1" content in <p>, whose top/bottom margin
   adds a blank line inside these blocks. Strip the edge margins. */
.box-note > :first-child,
.box-warning > :first-child,
.box-danger > :first-child,
.box-success > :first-child,
.toggle-content > :first-child {
  margin-top: 0;
}
.box-note > :last-child,
.box-warning > :last-child,
.box-danger > :last-child,
.box-success > :last-child,
.toggle-content > :last-child {
  margin-bottom: 0;
}

/* Dark theme adjustments */
html[data-theme=dark] {
  /* Dark mode: NO blend mode. screen washed bright colors into the
     light text (killing contrast); multiply/overlay darken the marker
     into the background. Plain translucent bg keeps text readable and
     the color band visible — tune visibility with the alpha below. */
}
html[data-theme=dark] .highlight-yellow,
html[data-theme=dark] .highlight-green,
html[data-theme=dark] .highlight-blue,
html[data-theme=dark] .highlight-pink,
html[data-theme=dark] .highlight-orange,
html[data-theme=dark] .highlight-purple,
html[data-theme=dark] .highlight-red,
html[data-theme=dark] .highlight-cyan,
html[data-theme=dark] .highlight-lime,
html[data-theme=dark] .highlight-gray,
html[data-theme=dark] .highlight-teal,
html[data-theme=dark] .highlight-indigo {
  background-image: none;
  mix-blend-mode: normal;
}
html[data-theme=dark] .highlight-yellow {
  background-color: rgba(255, 241, 118, 0.25);
}
html[data-theme=dark] .highlight-green {
  background-color: rgba(129, 199, 132, 0.25);
}
html[data-theme=dark] .highlight-blue {
  background-color: rgba(100, 181, 246, 0.25);
}
html[data-theme=dark] .highlight-pink {
  background-color: rgba(244, 143, 177, 0.25);
}
html[data-theme=dark] .highlight-orange {
  background-color: rgba(255, 183, 77, 0.25);
}
html[data-theme=dark] .highlight-purple {
  background-color: rgba(186, 104, 200, 0.25);
}
html[data-theme=dark] .highlight-red {
  background-color: rgba(239, 83, 80, 0.25);
}
html[data-theme=dark] .highlight-cyan {
  background-color: rgba(77, 208, 225, 0.25);
}
html[data-theme=dark] .highlight-lime {
  background-color: rgba(212, 225, 87, 0.25);
}
html[data-theme=dark] .highlight-gray {
  background-color: rgba(158, 158, 158, 0.25);
}
html[data-theme=dark] .highlight-teal {
  background-color: rgba(77, 182, 172, 0.25);
}
html[data-theme=dark] .highlight-indigo {
  background-color: rgba(121, 134, 203, 0.25);
}
html[data-theme=dark] .box-note {
  background-color: rgba(33, 150, 243, 0.15);
  border-left-color: #64b5f6;
}
html[data-theme=dark] .box-warning {
  background-color: rgba(255, 152, 0, 0.15);
  border-left-color: #ffb74d;
}
html[data-theme=dark] .box-danger {
  background-color: rgba(244, 67, 54, 0.15);
  border-left-color: #e57373;
}
html[data-theme=dark] .box-success {
  background-color: rgba(76, 175, 80, 0.15);
  border-left-color: #81c784;
}

/**
 * Collapsible Toggle (Accordion)
 */
details {
  background-color: #f5f5f5;
  border-radius: 8px;
  padding: 10px 20px;
  margin: 16px 0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  border: 1px solid #e0e0e0;
}
details[open] {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
details summary {
  cursor: pointer;
  font-weight: 600;
  color: #333;
  user-select: none;
  list-style: none;
  position: relative;
  padding-left: 24px;
  transition: color 0.2s ease;
}
details summary::-webkit-details-marker {
  display: none;
}
details summary::marker {
  display: none;
}
details summary:hover {
  color: #1e88e5;
}
details summary::before {
  content: "▼";
  position: absolute;
  left: 0;
  transition: transform 0.3s ease;
  color: #666;
  font-size: 0.8em;
}
details[open] summary::before {
  transform: rotate(-180deg);
  content: "▲";
}
details .toggle-content {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e0e0e0;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Dark theme adjustments for collapsible */
html[data-theme=dark] details {
  background-color: #2a2a2a;
  border-color: #404040;
}
html[data-theme=dark] details summary {
  color: #e0e0e0;
}
html[data-theme=dark] details summary:hover {
  color: #64b5f6;
}
html[data-theme=dark] details summary::before {
  color: #999;
}
html[data-theme=dark] details .toggle-content {
  border-top-color: #404040;
}

/* Notion-style annotations (post pages). Two modes, toggled by JS via a
 * class on <html> (see extensions/notion-comments.html):
 *   .nc-margin  (wide)   — notes pinned in the LEFT page margin, open by
 *                          default; click the word to collapse/expand. JS
 *                          sets each note's top/width and pushes overlapping
 *                          ones down.
 *   .nc-popover (narrow) — click the word to open a popover; it stays open
 *                          until you click elsewhere.
 */
.notion-comment {
  background-color: rgba(255, 213, 79, 0.25);
  border-bottom: 1px dashed rgba(245, 166, 35, 0.8);
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

/* Opacity of the sticky note (registered so the hover bump can animate) */
@property --note-alpha {
  syntax: "<number>";
  inherits: false;
  initial-value: 0.55;
}
.comment-bubble {
  /* Sticky-note look. Colour via rgb vars, opacity via --note-alpha. On hover
     the rgb/ink turn red. Only the colour combo changes between light/dark. */
  --note-rgb: 255, 247, 173;
  --note-rgb2: 255, 233, 138;
  --note-alpha: 0.55;
  --note-ink: #5a4d18;
  --note-line: rgba(90, 77, 24, 0.22);
  --note-fold: rgba(0, 0, 0, 0.12);
  z-index: 30;
  padding: 12px 14px;
  font-size: 0.85em;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.55;
  text-align: left;
  color: var(--note-ink);
  background: linear-gradient(135deg, rgba(var(--note-rgb), var(--note-alpha)) 0%, rgba(var(--note-rgb2), var(--note-alpha)) 100%);
  border-radius: 3px;
  box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.14);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

/* (2) Quote prefix: the body text this note is attached to */
.comment-quote {
  font-style: italic;
  font-size: 0.92em;
  line-height: 1.4;
  opacity: 0.72;
  border-left: 2px solid currentColor;
  padding-left: 8px;
  margin-bottom: 7px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* (3) Hover link: the paired note + its anchor word both turn red
   (opacity stays the same — only the colour changes) */
.comment-bubble.nc-active {
  --note-rgb: 255, 130, 120;
  --note-rgb2: 255, 110, 100;
  --note-ink: #b3261e;
}

.notion-comment.nc-word-active {
  background-color: rgba(229, 57, 53, 0.3);
  color: #c62828;
}

html[data-theme=dark] .comment-bubble.nc-active {
  --note-rgb: 132, 46, 40;
  --note-rgb2: 150, 52, 46;
  --note-ink: #ffb1a6;
}

html[data-theme=dark] .notion-comment.nc-word-active {
  background-color: rgba(229, 57, 53, 0.32);
  color: #ff8a80;
}

/* folded corner (dog-ear) at bottom-right */
.comment-bubble::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 18px;
  height: 18px;
  background: linear-gradient(135deg, transparent 50%, var(--note-fold) 50%);
  border-bottom-right-radius: 3px;
}

.comment-item {
  display: block;
}

.comment-item + .comment-item {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--note-line);
}

/* Hide bubbles until JS picks a mode (avoids a raw text dump on first paint) */
html:not(.nc-margin):not(.nc-popover) .comment-bubble {
  display: none;
}

/* In both modes JS moves each bubble to be a direct child of .post-content and
   sets its top/left/width — so list-item positioning can't throw it off. */
html.nc-margin .post-content,
html.nc-popover .post-content {
  position: relative;
}

html.nc-margin .comment-bubble,
html.nc-popover .comment-bubble {
  position: absolute;
}

/* Smooth motion (added by JS after the first layout, so initial placement and
   image-settle reflows don't animate — only collapses, opens and reflows do) */
html.nc-animate .comment-bubble {
  transition: top 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.22s ease, transform 0.24s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

/* Wide: notes open by default; collapsed ones fade out (others slide up) */
html.nc-margin .comment-bubble.is-collapsed {
  opacity: 0;
  transform: scale(0.96) translateX(-6px);
  pointer-events: none;
}

/* Narrow: hidden until its word is clicked */
html.nc-popover .comment-bubble {
  width: max-content;
  max-width: min(320px, 80vw);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  pointer-events: none;
}

html.nc-popover .comment-bubble.is-open {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}

html.nc-popover .comment-bubble::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 16px;
  border: 7px solid transparent;
  border-bottom-color: rgba(var(--note-rgb), var(--note-alpha));
}

/* Dark mode — same sticky note, different colour combo */
html[data-theme=dark] .notion-comment {
  background-color: rgba(255, 213, 79, 0.18);
}

html[data-theme=dark] .comment-bubble {
  --note-rgb: 74, 67, 31;
  --note-rgb2: 91, 81, 38;
  --note-alpha: 0.5;
  --note-ink: #f3e7b6;
  --note-line: rgba(243, 231, 182, 0.22);
  --note-fold: rgba(0, 0, 0, 0.3);
}

/* Narrow-screen popover overlays the body text, so make it more opaque */
html.nc-popover .comment-bubble {
  --note-alpha: 0.93;
}

html[data-theme=dark].nc-popover .comment-bubble {
  --note-alpha: 0.9;
}

/**
 * Two-image side-by-side block with a single shared caption
 * 모바일에서도 줄바꿈 없이 가로 병렬 유지 (작아지더라도)
 * Usage:
 *   <figure class="img-pair">
 *     <div class="img-pair-row">
 *       <img src="/assets/images/.../a.jpg">
 *       <img src="/assets/images/.../b.jpg">
 *     </div>
 *     <figcaption>묶음 캡션 하나</figcaption>
 *   </figure>
 */
.img-pair {
  margin: 16px 0;
  text-align: center;
}
.img-pair .img-pair-row {
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
}
.img-pair .img-pair-row img {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  height: clamp(140px, 40vh, 360px);
  object-fit: cover;
  border-radius: 4px;
}
.img-pair figcaption {
  font-size: 0.9em;
  color: gray;
  margin-top: 8px;
}

/**
 * Full-width embed (iframe) — overrides the theme's 50vh height cap
 * Usage: <iframe class="embed-frame" src="..." ...></iframe>
 * (inline width/height attributes are ignored — CSS wins)
 */
.post .post-content iframe.embed-frame {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 75vh;
  max-height: none;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.25s ease;
}
.post .post-content iframe.embed-frame:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

/**
 * Animation for transparent header
 */
html[data-header-transparent] header.site-header {
  position: fixed;
}
html[data-scroll-status=top] header.site-header-transparent {
  height: 0;
  margin-top: 12px;
  background-color: transparent;
  transition: 0.1s height, background-color, box-shadow;
}
html[data-scroll-status=top] header.site-header-transparent.site-header .site-brand-inner, html[data-scroll-status=top] header.site-header-transparent.site-header .page-link {
  color: #fff;
  transition: 0.1s color;
}
@media screen and (max-width: 800px) {
  html[data-scroll-status=top] header.site-header-transparent.site-header .page-link {
    color: black;
  }
  html[data-scroll-status=top] header.site-header-transparent.site-header .menu-icon > svg {
    fill: #fdfdfd;
  }
}
html[data-scroll-status=top] footer.site-footer {
  color: unset;
  background-color: transparent;
}
html[data-scroll-status=top] footer.site-footer .site-footer-inner {
  border-top: solid 1px #eee;
}
html[data-scroll-status=down] header.site-header {
  top: -63.84px;
}
html[data-scroll-status=down] .framework .sidebar {
  top: 20px;
}

/**
 * Site header
 */
.site-header {
  background-color: #ffffff;
  height: 63.84px;
  width: 100%;
  transition: height 0.2s, text-shadow 0.2s, top 0.2s;
  box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.06);
  position: sticky;
  position: -moz-sticky; /* <-- fix sticky compatibility issue */
  position: -ms-sticky;
  position: -o-sticky;
  position: -webkit-sticky;
  align-self: flex-start; /* <-- fix the sticky not work issue */
  transform: scale(0.9999); /* <-- fix the sticky x overflow issue */
  top: 0;
  z-index: 1000;
}
.site-header > .wrapper {
  margin: 0 60px;
  padding: 0;
  max-width: 100%;
  transition: 0.2s margin;
}
@media screen and (max-width: 1024px) {
  .site-header > .wrapper {
    margin: 0 20px;
    max-width: unset;
  }
}
.site-header a {
  text-decoration: none;
}
.site-header .site-header-inner {
  position: relative;
}

.site-brand {
  line-height: 63.84px;
  margin-right: 50px;
}
.site-brand .site-brand-inner {
  font-size: 15.75px;
  font-weight: 400;
  letter-spacing: -1px;
  transition: 0.1s filter color;
}
.site-brand .site-brand-inner, .site-brand .site-brand-inner:visited {
  color: black;
}
.site-brand .site-brand-inner .site-favicon {
  display: inline-block;
  height: 42.56px;
  margin-right: 5px;
}

.site-nav {
  font-size: 15.75px;
  line-height: 63.84px;
  position: absolute;
  right: 0;
  top: 0;
}
.site-nav .nav-trigger {
  display: none;
}
.site-nav .menu-icon {
  display: none;
}
.site-nav .page-link {
  line-height: 1.6;
  color: black;
  transition: all 0.2s ease-in-out;
  font-weight: normal;
  padding: 4px 8px;
  border-radius: 4px;
}
.site-nav .page-link:not(:last-child) {
  margin-right: 16px;
}
.site-nav .page-link:hover {
  font-weight: bold;
  color: black;
  background-color: rgba(0, 0, 0, 0.08);
}
@media screen and (max-width: 800px) {
  .site-nav {
    position: absolute;
    top: 0;
    text-align: left;
  }
  .site-nav label[for=nav-trigger] {
    display: block;
    z-index: 2;
    cursor: pointer;
  }
  .site-nav .menu-icon {
    display: block;
    float: right;
    text-align: center;
  }
  .site-nav .menu-icon > svg {
    fill: rgba(0, 0, 0, 0.8);
    transition: 0.1s fill;
  }
  .site-nav input ~ .trigger {
    clear: both;
    display: none;
    border-radius: 3px;
    box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.06);
  }
  .site-nav input:checked ~ .trigger {
    display: block;
    background: #ffffff;
  }
  .site-nav .page-link {
    display: block;
    padding: 8px 10px;
    color: rgba(0, 0, 0, 0.8);
    margin: 0 25px;
    transition: all 0.2s ease-in-out;
  }
  .site-nav .page-link:first-child {
    padding-top: 12px;
  }
  .site-nav .page-link:last-child {
    padding-bottom: 12px;
  }
  .site-nav .page-link:hover {
    font-weight: bold;
    color: black;
  }
}

/**
 * Site footer
 */
.site-footer {
  font-size: 14px;
  color: #404040;
  background-color: #f2f2f2;
  text-align: left;
  transition: background-color 0.2s;
}
.site-footer .site-footer-inner {
  transition: border-top 0.2s;
  padding: 54px 0;
}
.site-footer a {
  color: #ff3b30;
}
.site-footer a:hover {
  color: #ff6b63;
}

.copyleft {
  display: inline-block;
  transform: rotate(180deg);
}

/**
 * Post header
 */
.post .post-header {
  margin-bottom: 30px;
}
.post .post-title {
  font-size: 36.75px;
  letter-spacing: -1px;
  line-height: 1;
}
@media screen and (max-width: 800px) {
  .post .post-title {
    font-size: 31.5px;
  }
}
.post .post-tags {
  padding-right: 150px;
}
.post .post-tags .post-tag {
  display: inline-block;
  margin: 0 12px 0 0;
}

/**
 * Page content
 */
.page-content {
  /* <-- Keep footer on the bottom */
  -ms-flex: none; /* <-- Fix IE footer issue */
  padding: 60px 0;
  padding-top: 72px;
}

.page-heading {
  font-size: 28px;
}

.post-list-heading {
  font-size: 24.5px;
}

/**
 * Pagination page
 */
.pagination .post-list {
  margin-left: 0;
  list-style: none;
}
.pagination .post-list > li {
  margin-bottom: 45px;
  padding-bottom: 30px;
}
.pagination .post-list > li:not(:last-child) {
  border-bottom: 1px solid #e3e3e3;
}
.pagination .post-title {
  margin-bottom: 6px;
  transition: 0.2s all;
}
.pagination .post-title a {
  text-decoration: none;
}
.pagination .post-link {
  font-size: 23.1px;
  font-weight: 600;
  color: #333;
}
.pagination .post-meta {
  color: #777;
  font-size: 14px;
  margin-bottom: 15px;
}
.pagination .post-excerpt {
  display: flex;
  position: relative;
  gap: 15px;
  margin-bottom: 15px;
}
.pagination .post-excerpt .post-image > *:first-child {
  flex: 0 1 38.2%;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  overflow: hidden;
  transition: 0.2s all ease-in-out;
}
.pagination .post-list.none-image-style .post-item .post-excerpt .post-image {
  display: none;
}
.pagination .post-list.left-image-style .post-item .post-excerpt {
  flex-direction: row;
}
.pagination .post-list.right-image-style .post-item .post-excerpt {
  flex-direction: row-reverse;
}
.pagination .post-list.post-list.top-image-style .post-item .post-excerpt {
  flex-direction: column;
}
.pagination .post-list.z-image-style .post-item:nth-child(even) .post-excerpt {
  flex-direction: row-reverse;
}
.pagination .post-list.z-reverse-image-style .post-item:nth-child(odd) .post-excerpt {
  flex-direction: row-reverse;
}
@media screen and (max-width: 800px) {
  .pagination .post-list .post-item .post-excerpt {
    flex-direction: column !important;
  }
}
.pagination .post-text {
  color: #777;
  word-break: break-word;
  overflow-wrap: break-word;
  flex: 1;
}
.pagination .post-tags .post-tag {
  display: inline-block;
  text-decoration: none;
  padding: 1px 4px;
  border-radius: 2px;
  transition: color 0.2s;
  margin-bottom: 8px;
  /* background comes from the per-tag .highlight-* class (set by JS) */
}
.pagination .post-tags .post-tag:not(:last-child) {
  margin-right: 8px;
}
.pagination .paginator {
  text-align: center;
}
.pagination .paginator > .previous:before {
  content: " ";
  border: solid #787878;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 4px;
  margin-right: 8px;
  transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
}
.pagination .paginator > .next:after {
  content: " ";
  border: solid #787878;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 4px;
  margin-left: 8px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
.pagination .paginator .previous span, .pagination .paginator .next span {
  color: #b3b3b3;
}
.pagination .paginator .indicator {
  padding: 0 15px;
}

/**
 * Posts
 */
.post .post-header {
  margin: 50px auto 60px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ebebeb;
}
.post .post-header .post-title {
  margin-bottom: 6px;
}
.post .post-header .post-subtitle {
  font-weight: 300;
}
.post .post-header .post-meta {
  color: #777;
  padding-bottom: 15px;
}
.post .post-content {
  margin-bottom: 30px;
  overflow-wrap: normal;
  word-wrap: normal;
  word-break: normal;
}
.post .post-content h2 {
  font-size: 28px;
}
@media screen and (max-width: 800px) {
  .post .post-content h2 {
    font-size: 24.5px;
  }
}
.post .post-content h3 {
  font-size: 22.75px;
}
@media screen and (max-width: 800px) {
  .post .post-content h3 {
    font-size: 19.25px;
  }
}
.post .post-content h4 {
  font-size: 17.5px;
}
@media screen and (max-width: 800px) {
  .post .post-content h4 {
    font-size: 15.75px;
  }
}
.post .post-content img, .post .post-content svg, .post .post-content iframe {
  margin-left: auto;
  margin-right: auto;
}
.post .post-content img:not(.emoji), .post .post-content svg, .post .post-content iframe {
  display: block;
  max-height: 50vh;
}
.post .post-content h2, .post .post-content h3, .post .post-content h4, .post .post-content h5, .post .post-content h6 {
  margin: 60px 0 19px;
}
.post .post-content p {
  margin-bottom: 24px;
}
.post .post-content hr {
  height: 1px;
  background-color: #ebebeb;
  border: none;
  margin: 60px 0;
}
.post .post-related > *:first-child {
  font-size: 19.95px;
  color: #333;
  margin-bottom: 14px;
}
.post .post-related ul {
  margin-left: 15px;
}
.post .post-related .post-link {
  font-size: 15.05px;
  color: #777;
}
.post .post-related .post-link:hover {
  color: black;
}

.post-comments {
  padding-top: 25px;
}

/**
 * Posts misc
 */
.post-nav {
  display: flex;
  justify-content: space-between;
  margin: 72px 0 59px;
  padding: 31px 0 0;
  gap: 36px;
}
.post-nav a {
  font-size: 15.75px;
  color: #777;
  max-width: 45%;
  display: flex;
  align-items: center;
}
.post-nav a * {
  overflow: hidden;
  text-wrap-mode: nowrap;
  text-overflow: ellipsis;
}
.post-nav .previous:before {
  content: " ";
  border: solid #787878;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 4px;
  margin-right: 8px;
  transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
}
.post-nav .next:after {
  content: " ";
  border: solid #787878;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 4px;
  margin-left: 8px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

/**
 * Archives page
 */
.page-archives .page-archives-list {
  margin-left: 0;
  list-style: none;
}
.page-archives .archives-time {
  font-size: 21px;
  margin-bottom: 8px;
}
.page-archives .archives-time:not(:first-child) {
  margin-top: 18px;
}
.page-archives .post-meta {
  font-size: 12.25px;
  color: #777;
}

/**
 * Page banner
 */
.page-banner {
  display: block;
  position: relative;
  height: 640px;
  background-color: rgba(0, 0, 0, 0.8);
  transition: height 0.2s;
}
.page-banner .page-banner-img {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.page-banner .page-banner-img > *:first-child {
  height: 100%;
  max-width: 1000%;
  background-size: cover;
  background-position: center center;
  overflow: hidden;
  transition: 0.1s all ease-in-out;
}
.page-banner .page-banner-img > video {
  width: 100vw;
  object-fit: cover;
}
.page-banner .page-banner-img > img.img-placeholder {
  display: none;
}
.page-banner .wrapper {
  height: 100%;
}
.page-banner .page-banner-inner {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  color: #fdfdfd;
  padding: 10px 5px;
  text-shadow: 1px 1px 2px rgba(51, 51, 51, 0.3333333333);
}
.page-banner .page-banner-inner > *:first-child {
  margin: 0;
}
.page-banner .page-banner-inner > *:first-child > :nth-child(1) {
  font-size: 54.6px;
  letter-spacing: -1px;
  margin-bottom: 0.1em;
  font-weight: normal;
  transition: 0.2s all;
}
@media screen and (max-width: 600px) {
  .page-banner .page-banner-inner > *:first-child > :nth-child(1) {
    font-size: 27.65px;
  }
}
.page-banner .page-banner-inner > *:first-child > :nth-child(2) {
  font-weight: lighter;
  margin-bottom: 0.8em;
  transition: 0.2s all;
}
@media screen and (max-width: 600px) {
  .page-banner .page-banner-inner > *:first-child > :nth-child(2) {
    font-size: 16.45px;
  }
}
.page-banner .page-banner-inner > *:first-child > :last-child {
  margin-bottom: 0;
}
.page-banner .page-banner-inner .post-subtitle {
  font-size: 21.35px;
  color: rgba(255, 255, 255, 0.8);
  padding-right: 280px;
}
@media screen and (max-width: 600px) {
  .page-banner .page-banner-inner .post-subtitle {
    padding-right: 0;
  }
}
.page-banner .page-banner-inner .post-meta {
  color: rgba(255, 255, 255, 0.8);
  padding-bottom: 1em;
}
.page-banner .page-banner-inner .left-vsplit:before {
  background: rgba(227, 227, 227, 0.5333333333);
}
.page-banner .page-banner-inner .post-tags {
  color: #999;
  padding-right: 280px;
}
@media screen and (max-width: 600px) {
  .page-banner .page-banner-inner .post-tags {
    padding-right: 0;
  }
}
.page-banner .page-banner-inner .post-tags .post-tag {
  font-size: 15.75px;
  display: inline-block;
  text-decoration: none;
  margin: 9px 12px 0 0;
  color: #fff;
}
.page-banner .page-banner-inner .post-tags .post-tag:hover {
  text-decoration: underline;
}
@media screen and (max-width: 600px) {
  .page-banner {
    height: 426.6666666667px;
  }
}

/**
 * Layout and sidebar
 */
.framework {
  /* On post pages the sidebar is just the ToC. Rest it a little lower so its
     top lines up with the article body once it sticks (tune the +px to taste). */
}
.framework .sidebar {
  flex: 0 0 320px;
  max-width: 320px;
  padding-left: 8px;
  transition: top 0.2s, display 0.2s;
  position: sticky;
  position: -moz-sticky; /* <-- fix sticky compatibility issue */
  position: -ms-sticky;
  position: -o-sticky;
  position: -webkit-sticky;
  align-self: flex-start; /* <-- fix the sticky not work issue */
  transform: scale(0.9999); /* <-- fix the sticky x overflow issue */
  top: 83.84px;
  /* MUST come after flex-sticky (which sets `transform: scale(...)`); keep the
     scale so the sticky x-overflow fix stays, plus a rightward nudge. */
  transform: translateX(40px) scale(0.9999);
  /* visibility is controlled by JS — see extensions/sidebar-responsive.html */
}
.framework .sidebar.is-hidden {
  display: none;
}
.framework .sidebar:has(.post-menu) {
  top: 127.84px;
}

/**
 * Segments page
 */
.page-segments .page-segments-list {
  margin-left: 0;
  list-style: none;
}
.page-segments .segment-name {
  font-weight: 600;
  margin-bottom: 8px;
  position: relative;
  font-size: 22.4px;
}
.page-segments .segment-name:not(:first-child) {
  margin-top: 28px;
}
.page-segments .segment-name:hover:before {
  content: "#";
  left: -1em;
  position: absolute;
}
.page-segments .post-meta {
  font-size: 12.25px;
  color: #777;
}
.page-segments li a {
  color: #303030;
}
.page-segments li a.post-link {
  margin-left: 5px;
}
.page-segments li a:hover {
  color: #000;
}

.left-vsplit:before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 10px;
  margin: 0 10px;
  background-color: rgba(227, 227, 227, 0.8901960784);
  vertical-align: baseline;
}

/**
 * Post badge
 */
.post-badges {
  display: inline-block;
  position: relative;
  margin-left: 8px;
  margin-top: 3px;
  user-select: none;
}

.pagination .post-badges {
  bottom: 0.5em;
}

.post-related .post-badges {
  bottom: 0.1em;
}

.page-segments .post-badges {
  bottom: 0.1em;
}

.post-badge {
  display: none;
  padding: 0px 3px;
  background-color: #ff3b30;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  border-radius: 2px;
  transition-duration: 0.3s;
}

.top-post .post-badges .post-badge.badge-top {
  display: inline-block;
}

/* Draft / work-in-progress badge: set `draft: true` in a post's front matter */
.draft-post .post-badges .post-badge.badge-draft {
  display: inline-block;
}

.post-badge.badge-draft {
  background-color: #c8860d; /* amber — distinct from TOP */
}

@media screen and (max-width: 800px) {
  html[data-theme=dark][data-scroll-status=top] header.site-header-transparent.site-header .page-link {
    color: #f8f8f8;
  }
}
html[data-theme=dark][data-scroll-status=top] footer.site-footer .site-footer-inner {
  border-top: solid 1px #2f2f2f !important;
  transition: 0s;
}
html[data-theme=dark] body {
  color: #b0b0b0;
  background-color: #0e0e0e;
}
html[data-theme=dark] *:not(pre) > code {
  color: #b0b0b0;
  background-color: #454545;
}
html[data-theme=dark] blockquote {
  border-left: 4px solid #484848;
}
html[data-theme=dark] table {
  color: #9d9d9d;
}
html[data-theme=dark] table th {
  background-color: #050505;
}
html[data-theme=dark] table tr:nth-child(even) {
  background-color: #080808;
}
html[data-theme=dark] .site-header {
  background-color: #090909;
}
html[data-theme=dark] .site-header .site-brand .site-brand-inner, html[data-theme=dark] .site-header .site-brand .site-brand-inner:visited {
  color: #f8f8f8;
}
html[data-theme=dark] .site-header .site-nav .page-link {
  color: #f8f8f8;
}
html[data-theme=dark] .site-header .ct-language-dropdown {
  color: #f8f8f8;
  background-color: #0e0e0e;
  box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.3568627451);
}
html[data-theme=dark] .site-header .ct-language-selected, .ct-language-dropdown html[data-theme=dark] .site-header li:hover, html[data-theme=dark] .site-header .ct-language-dropdown li:hover {
  background-color: #222 !important;
}
@media screen and (max-width: 800px) {
  html[data-theme=dark] .site-header .menu-icon > svg {
    fill: rgba(176, 176, 176, 0.8);
  }
  html[data-theme=dark] .site-header .site-nav input:checked ~ .trigger {
    background-color: #090909;
  }
}
html[data-theme=dark] .site-footer {
  color: #fff;
  background-color: #000;
}
html[data-theme=dark] .left-vsplit:before {
  background-color: #505050;
}
html[data-theme=dark] .page-banner .page-banner-img > *:first-child {
  opacity: 0.718;
}
html[data-theme=dark] .pagination .post-link {
  color: #bbb;
}
html[data-theme=dark] .pagination .post-excerpt {
  color: #777;
}
html[data-theme=dark] .pagination .post-list > li:not(:last-child) {
  border-bottom: 1px solid #545454;
}
html[data-theme=dark] .pagination .post-tags .post-tag:hover {
  color: #d7d7d7;
}
html[data-theme=dark] .page-segments li a {
  color: #ddd;
}
html[data-theme=dark] .post .post-header {
  border-bottom: 1px solid #555;
}
html[data-theme=dark] .post .post-content img:not(.emoji):not([raw]) {
  background-color: rgba(255, 255, 255, 0.2);
}
html[data-theme=dark] .post .post-content hr {
  background-color: #555;
}
html[data-theme=dark] .post .post-related > *:first-child {
  color: #d7d7d7;
}
html[data-theme=dark] .post .post-related a:hover {
  color: #aaa;
}
html[data-theme=dark] .common-list li {
  border-bottom: solid 1px rgba(64, 64, 64, 0.5333333333);
}
html[data-theme=dark] .common-list li a {
  color: #aaa;
}
html[data-theme=dark] .common-list li a:hover {
  background-color: #272727;
}
html[data-theme=dark] .common-list li span {
  background-color: #333;
}
html[data-theme=dark] .post-menu .post-menu-title {
  color: #ddd;
}
html[data-theme=dark] .post-menu .post-menu-content ul {
  border-left: 1px solid #787878;
}
html[data-theme=dark] .post-menu .post-menu-content ul .active {
  background-color: #2d2d2d;
  border-left: 2px solid #aaa;
}
html[data-theme=dark] .post-menu .post-menu-content ul a {
  color: #b0b0b0;
}
html[data-theme=dark] .post-menu .post-menu-content ul a:hover {
  color: #fff !important;
}
html[data-theme=dark] a .post-badges .post-badge {
  color: #0e0e0e !important;
}

.theme-toggle {
  position: relative;
  width: 107.1px;
  margin-top: 10px;
  margin-right: 60px;
  margin-left: auto;
  transition: 0.3s cubic-bezier(0.4, 0.03, 0, 1);
  /* Toggle */
}
.theme-toggle label, .theme-toggle .toggle {
  border-radius: 100px;
}
.theme-toggle label {
  display: block;
  background-color: rgba(120, 120, 120, 0.15);
  cursor: pointer;
}
.theme-toggle .toggle {
  position: absolute;
  width: 50%;
  height: 100%;
  background-color: #fff;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.15);
  transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.theme-toggle .names {
  font-size: 1em;
  font-weight: bolder;
  width: 76%;
  margin-left: 12%;
  position: relative;
  display: flex;
  justify-content: space-between;
  user-select: none;
}
.theme-toggle .names p {
  margin-bottom: 0;
  line-height: 24px;
  opacity: 0.5;
}
.theme-toggle label .light {
  color: #868686;
  margin-left: -0.2em;
}
.theme-toggle label .dark {
  color: #b9b9b9;
}
.theme-toggle [type=checkbox] {
  display: none;
}
.theme-toggle [type=checkbox]:checked ~ label .toggle {
  transform: translateX(100%);
  background-color: #34323D;
}
.theme-toggle [type=checkbox]:checked ~ label .dark {
  color: #ddd;
}
.theme-toggle [type=checkbox]:checked ~ label .light {
  color: #ccc;
}
@media screen and (max-width: 1024px) {
  .theme-toggle {
    margin-right: 35px;
  }
}
@media screen and (max-width: 600px) {
  .theme-toggle {
    width: 93.1px;
    margin-right: 20px;
  }
  .theme-toggle .names {
    font-size: 0.85em;
  }
}

/*
 * Post menu
 */
.post-menu {
  padding-left: 20px;
  min-width: 200px;
  max-width: 230px;
}
.post-menu .post-menu-title {
  font-size: 16.1px;
  margin-bottom: 14px;
  font-weight: 600;
  line-height: 1.3;
}
.post-menu .post-menu-content ul {
  border-left: 1px solid #e9ecef;
}
.post-menu .post-menu-content ul .h-h2 {
  padding-inline-start: 3.5px;
  font-size: 15.4px;
  line-height: 1.4;
}
.post-menu .post-menu-content ul .h-h3 {
  padding-inline-start: 21.7px;
  font-size: 15.4px;
  line-height: 1.4;
}
.post-menu .post-menu-content ul .h-h4 {
  padding-inline-start: 39.9px;
  font-size: 15.4px;
  line-height: 1.4;
}
.post-menu .post-menu-content ul .h-h5 {
  padding-inline-start: 58.1px;
  font-size: 15.4px;
  line-height: 1.4;
}
.post-menu .post-menu-content ul .h-h6 {
  padding-inline-start: 76.3px;
  font-size: 15.4px;
  line-height: 1.4;
}
.post-menu .post-menu-content ul a {
  display: flex;
  padding: 2px 8px;
  color: #040405;
}
.post-menu .post-menu-content ul a * {
  pointer-events: none;
}
.post-menu .post-menu-content ul a:hover {
  text-decoration: none;
  color: #67676e !important;
}
.post-menu .post-menu-content ul .active {
  background-color: #ecebec;
  transition: background 0.5s;
  border-left: 2px solid #202020;
  margin-left: -2px;
}
.post-menu .post-menu-content ul .active:hover {
  background-color: #f1f0f1;
}
.post-menu .post-menu-content ul .active a {
  color: #121416;
}
.post-menu .post-menu-content ul li {
  transition: background-color 0.18s ease, box-shadow 0.18s ease;
  border-radius: 0 4px 4px 0;
}
.post-menu .post-menu-content ul .toc-hl {
  background-color: rgba(0, 0, 0, 0.05);
  box-shadow: inset 2px 0 0 rgba(0, 0, 0, 0.28);
}
.post-menu .post-menu-content ul .toc-hl a {
  color: #111112 !important;
}
.post-menu .post-menu-content ul .toc-hl-self {
  background-color: rgba(0, 0, 0, 0.09);
  box-shadow: inset 3px 0 0 rgba(0, 0, 0, 0.55);
}
.post-menu .post-menu-content ul .toc-hl-self a {
  color: #1d1d1f !important;
  font-weight: 600;
}

html[data-theme=dark] .post-menu .post-menu-content ul .toc-hl {
  background-color: rgba(255, 255, 255, 0.08);
  box-shadow: inset 2px 0 0 rgba(255, 255, 255, 0.3);
}
html[data-theme=dark] .post-menu .post-menu-content ul .toc-hl a {
  color: #e8e8e8 !important;
}
html[data-theme=dark] .post-menu .post-menu-content ul .toc-hl-self {
  background-color: rgba(255, 255, 255, 0.14);
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.6);
}
html[data-theme=dark] .post-menu .post-menu-content ul .toc-hl-self a {
  color: #ffffff !important;
}

/**
 * Common list
 */
.common-list {
  font-size: 14px;
  min-width: 200px;
}
.common-list ul {
  list-style: none;
  margin: 0;
}
.common-list li {
  border-bottom: solid 1px rgba(0, 0, 0, 0.0941176471);
}
.common-list li:last-child {
  border-bottom: none;
}
.common-list li a {
  display: flex;
  justify-content: space-between;
  padding: 8px 20px; /* Increased padding to accommodate bold text */
  text-decoration: none;
  font-weight: normal;
  color: #1d1d1f;
  transition: all 0.2s ease-in-out;
}
.common-list li a:hover {
  background-color: #eeeeee;
  font-weight: bold;
  color: black;
}
.common-list li span {
  font-size: 11.2px;
  display: inline-block;
  border-radius: 10px;
  align-self: center;
  background: rgba(0, 0, 0, 0.7411764706);
  padding: 0px 8px;
  margin-left: 20px;
  color: #fdfdfd;
  font-weight: 600; /* Keep badge bold */
}

/* OVERRIDE GOOGLE TRANSLATE WIDGET CSS BEGIN */
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value {
  vertical-align: top !important;
  /* Remove the down arrow */
  /* when dropdown open */
  /* after clicked/touched */
  /* on page load (not yet touched or clicked) */
  /* Remove span with left border line | (next to the arrow) in Chrome & Firefox */
  /* Remove span with left border line | (next to the arrow) in Edge & IE11 */
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value:hover {
  text-decoration: none;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span {
  color: #aaa;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span:hover {
  color: white;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span[style="color: rgb(213, 213, 213);"] {
  display: none;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span[style="color: rgb(118, 118, 118);"] {
  display: none;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span[style="color: rgb(155, 155, 155);"] {
  display: none;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span[style="border-left: 1px solid rgb(187, 187, 187);"] {
  display: none;
}
div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span[style="border-left-color: rgb(187, 187, 187); border-left-width: 1px; border-left-style: solid;"] {
  display: none;
}

div#google_translate_element {
  display: inline;
}
div#google_translate_element div.goog-te-gadget {
  display: inline;
  font-size: 0;
}
div#google_translate_element div[id=":0.targetLanguage"] {
  display: inline;
}
div#google_translate_element div.goog-te-gadget-simple {
  border: none;
  background-color: transparent;
}
div#google_translate_element a.goog-logo-link {
  display: none;
}
div#google_translate_element .goog-te-gadget-icon {
  display: none !important;
  /*background: url("url for the icon") 0 0 no-repeat !important;*/
}
div#google_translate_element a.goog-te-menu-value {
  margin: 0;
}
div#google_translate_element a.goog-te-menu-value span:first-child {
  display: none;
}
div#google_translate_element a.goog-te-menu-value:before {
  content: "\f1ab  \f0d7";
  font-family: FontAwesome;
  font-size: initial;
  color: #fefefe;
  border: 1px solid rgba(254, 254, 254, 0.5215686275);
  border-radius: 3px;
  padding: 3px 6px;
}

.goog-te-menu-frame .goog-te-menu2 {
  max-width: 100%;
  overflow-x: auto;
  box-sizing: border-box;
  height: auto;
}

/* HIDE the google translate toolbar */
.skiptranslate {
  display: none !important;
  border: none;
  box-shadow: 0 0;
  -webkit-box-shadow: 0 0;
}

body {
  top: 0px !important;
}

/* OVERRIDE GOOGLE TRANSLATE WIDGET CSS END */
.ct-language-selected, .ct-language-dropdown li:hover {
  background-color: #f2f2f2 !important;
}

.ct-language-dropdown {
  overflow: hidden;
  max-height: 0;
  position: absolute;
  top: 110%;
  right: -10px;
  background-color: white;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
  width: 100px;
  text-align: center;
  margin-top: 0;
  z-index: 200;
  border-radius: 3px;
  visibility: hidden;
}
.ct-language-dropdown li {
  padding: 5px;
}
.ct-language-dropdown li:first-child {
  padding-top: 12px;
}
.ct-language-dropdown li:last-child {
  padding-bottom: 12px;
}
.ct-language-dropdown li:not(:last-child) {
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}
.ct-language-dropdown li a {
  display: block;
  color: black;
}
.ct-language-dropdown li a img {
  width: 24px;
  max-height: 24px;
  border: none;
}
.list-unstyled {
  display: inline-block;
  list-style: none;
  margin-left: 0;
}

.ct-language {
  display: inline-block;
  position: relative;
  background-color: rgba(254, 254, 254, 0.168627451);
  padding: 3px 10px;
  border-radius: 3px;
}
.ct-language:hover {
  cursor: pointer;
}
.ct-language:hover .ct-language-dropdown {
  margin-top: 8px;
  max-height: 10000px;
  visibility: visible;
  box-shadow: 0 0 9px 3px rgba(0, 0, 0, 0.06);
}
.ct-language:before {
  content: "\f1ab  \f0d7";
  font-family: FontAwesome;
}

.gitment-container {
  color: #787878 !important;
}

.gitment-editor-header {
  background-color: #fefefe;
}

.gitment-comment-main, .gitment-editor-main {
  background-color: #fff;
  border-radius: 3px !important;
}

.gitment-heart-icon {
  fill: #ff0808;
}

.click-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  width: 64px;
  height: 64px;
  border-radius: 32px;
  right: 60px;
  bottom: 48px;
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px);
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.15);
  font-size: 24px;
  user-select: none;
  transition: 0.3s;
  z-index: 10;
}
@media screen and (max-width: 800px) {
  .click-to-top {
    width: 48px;
    height: 48px;
    border-radius: 24px;
    right: 35px;
    font-size: 20px;
  }
}

.click-to-top.show {
  opacity: 1;
  transform: translateY(0);
}

html[data-theme=light] .click-to-top {
  background-color: white;
  color: #454545;
}

html[data-theme=dark] .click-to-top {
  background-color: #34323d;
  color: #bbb;
}

/*# sourceMappingURL=main.css.map */