/** 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: 400 17px/1.75 "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif; color: #1f2328; background-color: #ffffff; -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; }

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

/** `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; }

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

figcaption { font-size: 14.875px; }

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

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

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

/** Links */
a { color: #3b5bdb; text-decoration: none; }
a:visited { color: #1f3baa; }
a:hover { color: #1f2328; text-decoration: underline; }
.social-media-list a:hover { text-decoration: none; }
.social-media-list a:hover .username { text-decoration: underline; }

/** Blockquotes */
blockquote { color: #6b7280; border-left: 4px solid #d8dadf; padding-left: 16px; font-size: 19.125px; letter-spacing: -1px; font-style: italic; }
blockquote > :last-child { margin-bottom: 0; }

/** Code formatting */
pre, code { font-size: 15.9375px; border: 1px solid #d8dadf; border-radius: 3px; background-color: #eef; }

code { padding: 1px 5px; }

pre { padding: 8px 12px; overflow-x: auto; }
pre > code { border: 0; padding-right: 0; padding-left: 0; }

/** Wrapper */
.wrapper { max-width: -webkit-calc(760px - (32px * 2)); max-width: calc(760px - (32px * 2)); margin-right: auto; margin-left: auto; padding-right: 32px; padding-left: 32px; }
@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(760px - (32px)); max-width: calc(760px - (32px)); padding-right: 16px; padding-left: 16px; } }

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

/** Icons */
.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #6b7280; padding-right: 5px; vertical-align: text-top; }

.social-media-list li + li { padding-top: 5px; }

/** Tables */
table { margin-bottom: 32px; width: 100%; text-align: left; color: #47505c; border-collapse: collapse; border: 1px solid #d8dadf; }
table tr:nth-child(even) { background-color: #e9eaed; }
table th, table td { padding: 10.6666666667px 16px; }
table th { background-color: #e1e2e6; border: 1px solid #cdd0d5; border-bottom-color: #b7bbc3; }
table td { border: 1px solid #d8dadf; }

/** Site header */
.site-header { border-top: 5px solid #31343b; border-bottom: 1px solid #d8dadf; min-height: 59.68px; position: relative; }

.site-title { font-size: 27.625px; font-weight: 300; line-height: 66.9375px; letter-spacing: -1px; margin-bottom: 0; float: left; }
.site-title, .site-title:visited { color: #31343b; }

.site-nav { float: right; line-height: 66.9375px; }
.site-nav .nav-trigger { display: none; }
.site-nav .menu-icon { display: none; }
.site-nav .page-link { color: #1f2328; line-height: 1.75; }
.site-nav .page-link:not(:last-child) { margin-right: 20px; }
@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 16px; background-color: #ffffff; border: 1px solid #d8dadf; border-radius: 5px; text-align: right; }
  .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; }
  .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; }
  .site-nav .menu-icon > svg { fill: #31343b; }
  .site-nav input ~ .trigger { clear: both; display: none; }
  .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; }
  .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; }
  .site-nav .page-link:not(:last-child) { margin-right: 0; } }

/** Site footer */
.site-footer { border-top: 1px solid #d8dadf; padding: 32px 0; }

.footer-heading { font-size: 19.125px; margin-bottom: 16px; }

.contact-list, .social-media-list { list-style: none; margin-left: 0; }

.footer-col-wrapper { font-size: 15.9375px; color: #6b7280; margin-left: -16px; }

.footer-col { float: left; margin-bottom: 16px; padding-left: 16px; }

.footer-col-1 { width: -webkit-calc(35% - (32px / 2)); width: calc(35% - (32px / 2)); }

.footer-col-2 { width: -webkit-calc(20% - (32px / 2)); width: calc(20% - (32px / 2)); }

.footer-col-3 { width: -webkit-calc(45% - (32px / 2)); width: calc(45% - (32px / 2)); }

@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (32px / 2)); width: calc(50% - (32px / 2)); }
  .footer-col-3 { width: -webkit-calc(100% - (32px / 2)); width: calc(100% - (32px / 2)); } }
@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (32px / 2)); width: calc(100% - (32px / 2)); } }
/** Page content */
.page-content { padding: 32px 0; flex: 1; }

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

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

.post-list { margin-left: 0; list-style: none; }
.post-list > li { margin-bottom: 32px; }

.post-meta { font-size: 14.875px; color: #6b7280; }

.post-link { display: block; font-size: 25.5px; }

/** Posts */
.post-header { margin-bottom: 32px; }

.post-title { font-size: 44.625px; letter-spacing: -1px; line-height: 1; }
@media screen and (max-width: 800px) { .post-title { font-size: 38.25px; } }

.post-content { margin-bottom: 32px; }
.post-content h2 { font-size: 34px; }
@media screen and (max-width: 800px) { .post-content h2 { font-size: 29.75px; } }
.post-content h3 { font-size: 27.625px; }
@media screen and (max-width: 800px) { .post-content h3 { font-size: 23.375px; } }
.post-content h4 { font-size: 21.25px; }
@media screen and (max-width: 800px) { .post-content h4 { font-size: 19.125px; } }

/** Syntax highlighting styles */
.highlight { background: #fff; }
.highlighter-rouge .highlight { background: #eef; }
.highlight .c { color: #998; font-style: italic; }
.highlight .err { color: #a61717; background-color: #e3d2d2; }
.highlight .k { font-weight: bold; }
.highlight .o { font-weight: bold; }
.highlight .cm { color: #998; font-style: italic; }
.highlight .cp { color: #999; font-weight: bold; }
.highlight .c1 { color: #998; font-style: italic; }
.highlight .cs { color: #999; font-weight: bold; font-style: italic; }
.highlight .gd { color: #000; background-color: #fdd; }
.highlight .gd .x { color: #000; background-color: #faa; }
.highlight .ge { font-style: italic; }
.highlight .gr { color: #a00; }
.highlight .gh { color: #999; }
.highlight .gi { color: #000; background-color: #dfd; }
.highlight .gi .x { color: #000; background-color: #afa; }
.highlight .go { color: #888; }
.highlight .gp { color: #555; }
.highlight .gs { font-weight: bold; }
.highlight .gu { color: #aaa; }
.highlight .gt { color: #a00; }
.highlight .kc { font-weight: bold; }
.highlight .kd { font-weight: bold; }
.highlight .kp { font-weight: bold; }
.highlight .kr { font-weight: bold; }
.highlight .kt { color: #458; font-weight: bold; }
.highlight .m { color: #099; }
.highlight .s { color: #d14; }
.highlight .na { color: #008080; }
.highlight .nb { color: #0086B3; }
.highlight .nc { color: #458; font-weight: bold; }
.highlight .no { color: #008080; }
.highlight .ni { color: #800080; }
.highlight .ne { color: #900; font-weight: bold; }
.highlight .nf { color: #900; font-weight: bold; }
.highlight .nn { color: #555; }
.highlight .nt { color: #000080; }
.highlight .nv { color: #008080; }
.highlight .ow { font-weight: bold; }
.highlight .w { color: #bbb; }
.highlight .mf { color: #099; }
.highlight .mh { color: #099; }
.highlight .mi { color: #099; }
.highlight .mo { color: #099; }
.highlight .sb { color: #d14; }
.highlight .sc { color: #d14; }
.highlight .sd { color: #d14; }
.highlight .s2 { color: #d14; }
.highlight .se { color: #d14; }
.highlight .sh { color: #d14; }
.highlight .si { color: #d14; }
.highlight .sx { color: #d14; }
.highlight .sr { color: #009926; }
.highlight .s1 { color: #d14; }
.highlight .ss { color: #990073; }
.highlight .bp { color: #999; }
.highlight .vc { color: #008080; }
.highlight .vg { color: #008080; }
.highlight .vi { color: #008080; }
.highlight .il { color: #099; }

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body { letter-spacing: -0.01em; }

.site-header { border-top: none; border-bottom: 1px solid #edeff2; position: sticky; top: 0; background: rgba(255, 255, 255, 0.9); -webkit-backdrop-filter: saturate(180%) blur(8px); backdrop-filter: saturate(180%) blur(8px); z-index: 10; }

.site-title, .site-title:visited { font-weight: 700; color: #1f2328; letter-spacing: -0.02em; }

.site-header .wrapper { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }

.site-nav { display: flex; gap: 20px; }

.site-nav .page-link { color: #31343b; font-weight: 500; font-size: 15px; line-height: 1; }

.site-nav .page-link:hover { color: #3b5bdb; }

.page-heading { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; margin-bottom: 4px; }

.home > p { color: #31343b; margin-bottom: 32px; }

.post-list-heading { font-size: 15px; text-transform: uppercase; letter-spacing: 0.08em; color: #6b7280; font-weight: 700; margin-top: 38.4px; }

.post-list { margin-left: 0; }

.post-list > li { list-style: none; padding: 20px 0; border-bottom: 1px solid #edeff2; transition: transform 0.15s ease; }

.post-list > li:hover { transform: translateX(2px); }

.post-list > li h3 { margin-bottom: 4px; }

.post-link { font-weight: 700; color: #1f2328; }

.post-link:hover { color: #3b5bdb; text-decoration: none; }

.post-meta { color: #6b7280; font-size: 14px; }

.post-header { margin-bottom: 32px; }

.post-title { font-weight: 800; letter-spacing: -0.03em; line-height: 1.3; }

.post-content h2 { margin-top: 44.8px; padding-bottom: 6px; border-bottom: 2px solid #edeff2; }
.post-content h3 { margin-top: 32px; }
.post-content a { text-decoration: none; border-bottom: 1px solid rgba(59, 91, 219, 0.35); }
.post-content a:hover { border-bottom-color: #3b5bdb; }
.post-content img { border-radius: 10px; }
.post-content blockquote { border-left: 4px solid #3b5bdb; background: #f5f7ff; border-radius: 0 8px 8px 0; color: #31343b; }

code { background-color: #23242f; color: #e2e2f0; border-radius: 4px; padding: 0.15em 0.4em; font-size: 0.9em; }

.highlighter-rouge, .highlight, pre.highlight, pre { background-color: #1e1e2e !important; border: none; border-radius: 10px; }

pre { padding: 18px 20px; overflow-x: auto; }
pre code { background-color: transparent; color: #e2e2f0; padding: 0; }

.highlight .c, .highlight .c1, .highlight .cm, .highlight .cs { color: #7f849c; font-style: italic; }
.highlight .cp { color: #94e2d5; font-weight: bold; }
.highlight .err { color: #f38ba8; background-color: transparent; }
.highlight .k, .highlight .kc, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, .highlight .ow { color: #cba6f7; font-weight: bold; }
.highlight .o { color: #94e2d5; font-weight: bold; }
.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .mo, .highlight .il { color: #fab387; }
.highlight .s, .highlight .s1, .highlight .s2, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .ss, .highlight .dl { color: #a6e3a1; }
.highlight .na { color: #fab387; }
.highlight .nb, .highlight .bp { color: #89dceb; }
.highlight .nc { color: #f9e2af; font-weight: bold; }
.highlight .nd { color: #f9e2af; }
.highlight .ne, .highlight .nf { color: #89b4fa; font-weight: bold; }
.highlight .ni { color: #f5c2e7; }
.highlight .nl { color: #89b4fa; }
.highlight .nn { color: #f9e2af; }
.highlight .no, .highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi { color: #f38ba8; }
.highlight .nt { color: #f38ba8; }
.highlight .w { color: #7f849c; }
.highlight .gd { color: #f38ba8; background-color: rgba(243, 139, 168, 0.12); }
.highlight .gi { color: #a6e3a1; background-color: rgba(166, 227, 161, 0.12); }
.highlight .gh, .highlight .go, .highlight .gp { color: #9399b2; }
.highlight .gr, .highlight .gt { color: #f38ba8; }
.highlight .gu { color: #7f849c; }
.highlight .ge { font-style: italic; }
.highlight .gs { font-weight: bold; }

.site-footer { border-top: 1px solid #edeff2; color: #6b7280; font-size: 14px; }

html { scroll-behavior: smooth; }

.post-content h2[id], .post-content h3[id] { scroll-margin-top: 96px; }

.layout-with-sidebar { display: flex; align-items: flex-start; gap: 40px; max-width: 1280px; }

.sidebar { flex: 0 0 200px; position: sticky; top: 90px; }

.main-column { flex: 1 1 auto; min-width: 0; max-width: 760px; }

.toc-sidebar { flex: 0 0 220px; position: sticky; top: 90px; align-self: flex-start; }

.toc-title { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: #6b7280; font-weight: 700; margin-bottom: 12px; }

.toc-list { list-style: none; margin: 0; padding: 0; border-left: 2px solid #edeff2; }

.toc-item { margin: 0; }

.toc-item.toc-h3 .toc-link { padding-left: 24px; font-size: 13.5px; }

.toc-link { display: block; padding: 6px 0 6px 14px; margin-left: -2px; border-left: 2px solid transparent; color: #31343b; text-decoration: none; font-size: 14.5px; line-height: 1.4; transition: color 0.15s ease, border-color 0.15s ease; }

.toc-link:hover { color: #3b5bdb; }

.toc-link.active { color: #3b5bdb; border-left-color: #3b5bdb; font-weight: 600; }

.category-nav-title { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: #6b7280; font-weight: 700; margin-bottom: 12px; }

.category-tree { list-style: none; margin: 0; padding: 0; }

.category-tree-item { margin-bottom: 2px; }

.category-tree-item summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 4px; font-size: 15px; font-weight: 600; color: #1f2328; cursor: pointer; list-style: none; border-radius: 6px; }
.category-tree-item summary::-webkit-details-marker { display: none; }
.category-tree-item summary::before { content: ""; width: 0; height: 0; margin-right: 6px; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 5px solid #6b7280; transition: transform 0.15s ease; flex-shrink: 0; }

.category-tree-item summary:hover { background: #f2f4f8; }

.category-tree-item details[open] > summary::before { transform: rotate(90deg); }

.category-tree-label { flex: 1 1 auto; }

.post-tree { list-style: none; margin: 2px 0 8px 0; padding-left: 15px; border-left: 2px solid #edeff2; }

.post-tree li { padding: 0; }

.post-tree a { display: block; padding: 5px 0 5px 12px; color: #31343b; text-decoration: none; font-size: 14px; line-height: 1.4; }

.post-tree a:hover { color: #3b5bdb; }

.post-tree li.active a { color: #3b5bdb; font-weight: 700; }

.category-nav .count { color: #6b7280; font-size: 12px; background: #f2f4f8; border-radius: 10px; padding: 1px 8px; }

.category-section { scroll-margin-top: 90px; margin-bottom: 44.8px; }

.category-section-title { font-size: 20px; font-weight: 800; border-bottom: 2px solid #edeff2; padding-bottom: 8px; }
.category-section-title .count { color: #6b7280; font-weight: 500; font-size: 15px; }

.page-subheading { color: #31343b; margin-top: -8px; margin-bottom: 32px; }

@media screen and (max-width: 1100px) { .toc-sidebar { display: none; } }
@media screen and (max-width: 800px) { .layout-with-sidebar { flex-direction: column; gap: 24px; }
  .sidebar { position: static; flex: 1 1 auto; width: 100%; }
  .main-column { max-width: 100%; } }
@media (prefers-color-scheme: dark) { body { background-color: #12131a; color: #e6e6ef; }
  .site-header { background: rgba(18, 19, 26, 0.85); border-bottom-color: #262836; }
  .site-title, .page-heading, .post-title, .post-link { color: #f2f2f7; }
  .home > p, .post-meta, .site-footer { color: #9a9ab0; }
  .post-list > li, .site-footer { border-color: #262836; }
  .post-content blockquote { background: #1b1d2b; }
  .site-nav .page-link, .category-section-title { color: #f2f2f7; }
  .category-tree-item summary { color: #f2f2f7; }
  .category-tree-item summary:hover { background: #1b1d2b; }
  .category-tree-item summary::before { border-left-color: #9a9ab0; }
  .post-tree { border-left-color: #262836; }
  .post-tree a { color: #9a9ab0; }
  .post-tree a:hover, .post-tree li.active a { color: #89b4fa; }
  .category-nav .count { background: #23242f; color: #9a9ab0; }
  .category-section-title, .category-section-title .count { border-color: #262836; }
  .category-section-title .count { color: #9a9ab0; }
  .page-subheading { color: #9a9ab0; }
  .toc-title { color: #9a9ab0; }
  .toc-list { border-left-color: #262836; }
  .toc-link { color: #9a9ab0; }
  .toc-link:hover { color: #89b4fa; }
  .toc-link.active { color: #89b4fa; border-left-color: #89b4fa; } }
