@font-face {
  font-family: Pretendard;
  src: url('../assets/fonts/Pretendard-Light.subset.woff') format('woff');
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: Pretendard;
  src: url('../assets/fonts/Pretendard-Medium.subset.woff') format('woff');
  font-weight: 400 700;
  font-display: swap;
}

:root, [data-md-color-scheme='default'] {
  --md-text-font: 'Pretendard';
  --md-code-font: ui-monospace, SFMono-Regular, Consolas, monospace;
  --md-primary-fg-color: #0b1017;
  --md-primary-fg-color--light: #182231;
  --md-primary-fg-color--dark: #0b1017;
  --md-primary-bg-color: #f1f5f9;
  --md-primary-bg-color--light: #a4b2c5;
  --md-accent-fg-color: #2563eb;
  --md-accent-fg-color--transparent: #2563eb12;
  --md-default-bg-color: #ffffff;
  --md-default-fg-color: #334155;
  --md-default-fg-color--light: #647184;
  --md-default-fg-color--lighter: #8996a7;
  --md-default-fg-color--lightest: #d7dee7;
  --md-typeset-a-color: #2563eb;
  --docs-surface: #f7f8fa;
  --docs-border: #d7dee7;
  --docs-heading: #111827;
  --md-code-bg-color: #111827;
  --md-code-fg-color: #dbe5f2;
  --md-code-hl-color: #253852;
  --md-code-hl-number-color: #b8c9ef;
  --md-code-hl-special-color: #f6adad;
  --md-code-hl-function-color: #bfcced;
  --md-code-hl-constant-color: #adc6ec;
  --md-code-hl-keyword-color: #93c5fd;
  --md-code-hl-string-color: #a9d4c5;
  --md-code-hl-name-color: #dbe5f2;
  --md-code-hl-operator-color: #a4b2c5;
  --md-code-hl-punctuation-color: #a4b2c5;
  --md-code-hl-comment-color: #9baabe;
  --md-code-hl-generic-color: #b7c3d2;
  --md-code-hl-variable-color: #dbe5f2;
  --md-mermaid-font-family: 'Pretendard', sans-serif;
  --md-mermaid-node-bg-color: #eff3f8;
  --md-mermaid-node-fg-color: #71859e;
  --md-mermaid-edge-color: #647184;
  --md-mermaid-label-fg-color: #334155;
  --md-mermaid-label-bg-color: #f7f8fa;
  --md-footer-bg-color: #111827;
  --md-footer-bg-color--dark: #0b1017;
  --md-footer-fg-color: #e5e7eb;
  --md-footer-fg-color--light: #a4b2c5;
  --md-footer-fg-color--lighter: #a4b2c5;
}
[data-md-color-scheme='slate'] {
  --md-default-bg-color: #111827;
  --md-default-fg-color: #c7d2e1;
  --md-default-fg-color--light: #a4b2c5;
  --md-default-fg-color--lighter: #91a1b8;
  --md-default-fg-color--lightest: #374151;
  --md-typeset-a-color: #93c5fd;
  --md-accent-fg-color: #93c5fd;
  --md-accent-fg-color--transparent: #93c5fd12;
  --docs-surface: #182231;
  --docs-border: #374151;
  --docs-heading: #f1f5f9;
  --md-code-bg-color: #0b1017;
  --md-code-fg-color: #dbe5f2;
  --md-mermaid-node-bg-color: #182231;
  --md-mermaid-node-fg-color: #87a5cc;
  --md-mermaid-edge-color: #9baabe;
  --md-mermaid-label-fg-color: #e5e7eb;
  --md-mermaid-label-bg-color: #111827;
}

html { scroll-behavior: smooth; }
body { font-weight: 300; word-break: keep-all; overflow-wrap: break-word; }
strong, b { font-weight: 500; }
:focus-visible { outline: 2px solid #2563eb; outline-offset: 4px; }
.md-grid { max-width: 76rem; }
.md-header { border-bottom: 1px solid #2b3749; box-shadow: none; }
.md-header__inner { min-height: 3.6rem; padding: 0 .9rem; }
.md-header__button.md-logo { display: flex; align-items: center; margin: 0 1.1rem 0 0; padding: .6rem 0; }
.md-header__button.md-logo img { width: 9rem; height: auto; }
.md-header__title { margin-left: 0; font-size: .8rem; font-weight: 500; }
.md-header__button { color: #c7d2e1; min-width: 2.2rem; min-height: 2.2rem; }
.md-header :focus-visible, .md-sidebar--primary :focus-visible { outline-color: #93c5fd; }
.md-header__topic { font-weight: 500; }
.md-search__form { background: #182231; border: 1px solid #374151; border-radius: .5rem; }
.md-search__input { font-family: Pretendard, sans-serif; font-size: .72rem; }
.md-search__input::placeholder { color: #a4b2c5; opacity: 1; }
.md-search__output { border: 1px solid var(--docs-border); box-shadow: 0 20px 40px -20px #0005; }
.md-search-result__meta { background: var(--docs-surface); color: var(--md-default-fg-color--light); }
.md-search-result__article { border-bottom: 1px solid var(--docs-border); }
.md-search-result__title { font-weight: 500; }
.md-search-result__teaser { line-height: 1.7; }

.md-main__inner { margin-top: 2rem; }
.md-content__inner { margin: 0 1.6rem 3rem; padding-top: 0; }
.md-sidebar { width: 12.5rem; }
.md-sidebar--primary { --md-default-bg-color: #111827; --md-default-fg-color: #c7d2e1; --md-default-fg-color--light: #a4b2c5; --md-default-fg-color--lightest: #374151; --md-typeset-a-color: #93c5fd; --md-accent-fg-color: #93c5fd; }
.md-sidebar--primary .md-sidebar__scrollwrap { margin: 0 .5rem; padding: .9rem .65rem; border: 1px solid #374151; border-radius: .75rem; background: #111827; scrollbar-color: #4b5563 #111827; }
.md-sidebar--primary .md-nav { background: transparent; color: #b7c3d2; font-size: .68rem; }
.md-sidebar--primary .md-nav__title { background: #111827; box-shadow: none; color: #e5e7eb; font-size: .72rem; font-weight: 500; padding: .4rem .5rem .9rem; }
.md-sidebar--primary .md-nav__item { padding: 0; }
.md-sidebar--primary .md-nav__link { align-items: center; margin: 0; padding: .55rem .5rem; min-height: 2.2rem; border-radius: .3rem; color: #b7c3d2; line-height: 1.65; font-size: .68rem; box-shadow: none; }
.md-sidebar--primary .md-nav__link:hover { color: #fff; background: #1a2638; }
.md-sidebar--primary .md-nav__link--active { color: #93c5fd; background: #1b2a40; }
.md-sidebar--primary .md-nav__item--section > .md-nav__link { margin-top: .65rem; border-top: 1px solid #2e3b4e; border-radius: 0; color: #e5e7eb; font-weight: 500; }
.md-sidebar--primary .md-nav__list .md-nav__list { padding-left: .5rem; }
.md-sidebar--primary .md-nav__icon { color: #91a4bc; }
.md-nav__link:focus-visible { outline-offset: -2px; }
.md-sidebar--secondary .md-nav { border-left: 1px solid var(--docs-border); padding-left: .85rem; font-size: .65rem; }
.md-sidebar--secondary .md-nav__title { padding-left: 0; color: var(--docs-heading); background: var(--md-default-bg-color); box-shadow: none; font-size: .65rem; font-weight: 500; }
.md-sidebar--secondary .md-nav__link { line-height: 1.65; margin-top: .65rem; color: var(--md-default-fg-color--light); }
.md-sidebar--secondary .md-nav__link--active { color: var(--md-typeset-a-color); }

.md-typeset { font-size: .8rem; line-height: 1.85; }
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 { font-weight: 500; color: var(--docs-heading); letter-spacing: -.025em; text-wrap: balance; }
.md-typeset h1 { margin: 0 0 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--docs-border); font-size: 2rem; line-height: 1.2; }
.md-typeset h2 { margin-top: 2.5rem; font-size: 1.3rem; line-height: 1.4; }
.md-typeset h3 { margin-top: 1.7rem; font-size: 1.05rem; }
.md-typeset h4 { font-size: .85rem; }
.md-typeset p { margin: 1em 0; }
.md-typeset hr { margin: 2.5rem 0; border-color: var(--docs-border); }
.md-typeset a { text-underline-offset: .2em; }
.md-typeset a:hover { text-decoration: underline; }
.md-typeset .headerlink { color: var(--md-typeset-a-color); }
.md-typeset code { font-size: .83em; border-radius: .2rem; word-break: normal; }
.md-typeset :not(pre) > code { background: var(--docs-surface); color: var(--md-typeset-a-color); padding: .15em .35em; overflow-wrap: anywhere; }
.md-typeset pre { margin: 1.2rem 0; }
.md-typeset pre > code { padding: 1.2rem; border: 1px solid #374151; border-radius: .6rem; line-height: 1.85; font-size: .67rem; scrollbar-color: #4b5563 #111827; }
.md-typeset .highlight { background: transparent; }
.md-code__button { color: #a4b2c5; }
.md-code__button:hover { color: #93c5fd; }
.md-typeset .md-annotation__index { background: #2563eb; color: white; }
.md-typeset__scrollwrap { margin: 1.2rem 0; }
.md-typeset__table { padding: 0; display: block; }
.md-typeset table:not([class]) { display: table; width: 100%; border: 1px solid var(--docs-border); border-radius: .5rem; font-size: .7rem; box-shadow: none; overflow: hidden; }
.md-typeset table:not([class]) th { min-width: 5rem; background: var(--docs-surface); color: var(--docs-heading); font-weight: 500; padding: .85rem 1rem; }
.md-typeset table:not([class]) td { padding: .85rem 1rem; border-top: 1px solid var(--docs-border); }
.md-typeset table:not([class]) tbody tr:hover { background: var(--docs-surface); box-shadow: none; }
.md-typeset .admonition, .md-typeset details { margin: 1.4rem 0; border: 1px solid var(--docs-border); border-radius: .5rem; background: var(--md-default-bg-color); box-shadow: none; font-size: .73rem; }
.md-typeset .admonition-title, .md-typeset summary { background: var(--docs-surface); font-weight: 500; }
.md-typeset .tabbed-labels { border-bottom: 1px solid var(--docs-border); }
.md-typeset .tabbed-labels > label { font-size: .7rem; min-height: 2.2rem; font-weight: 500; }
.md-typeset .tabbed-content { margin-top: .8rem; }
.md-typeset .mermaid { overflow-x: auto; padding: 1.2rem; border: 1px solid var(--docs-border); border-radius: .6rem; background: var(--docs-surface); }
.md-typeset .mermaid svg { max-width: 100%; height: auto; }

.docs-home > h1 { border: 0; margin-bottom: 1rem; font-size: 2.5rem; }
.hero { margin: 0 0 2.5rem; padding: 1.8rem; border: 1px solid #374151; border-radius: .8rem; background: #111827; color: #b7c3d2; }
.hero > p:first-child { margin-top: 0; color: #f1f5f9; font-size: 1.1rem; line-height: 1.6; }
.hero > p { font-size: .78rem; line-height: 1.9; }
.quick-links { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.4rem; }
.quick-links p { display: contents; }
.md-typeset .quick-links .md-button { min-height: 2.4rem; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .6rem 1.1rem; border: 1px solid #64748b; border-radius: .6rem; color: #e5e7eb; background: transparent; font-size: .72rem; font-weight: 500; transition: border-color 180ms ease, background-color 180ms ease; }
.md-typeset .quick-links .md-button--primary { background: #2563eb; border-color: #2563eb; color: white; }
.md-typeset .quick-links .md-button:hover { text-decoration: none; border-color: #93c5fd; }
.md-typeset .quick-links .md-button--primary:hover { background: #1d4ed8; border-color: #1d4ed8; }
.feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; margin: 1.5rem 0; }
.feature-card { min-width: 0; border-top: 1px solid var(--docs-border); padding: 1.2rem 0; }
.feature-card h3 { margin: 0 0 .6rem; font-size: .9rem; }
.feature-card p { margin: 0; color: var(--md-default-fg-color--light); font-size: .73rem; }
.md-footer { margin-top: 2rem; border-top: 1px solid #374151; }
.md-footer__inner { padding: .6rem .9rem; }
.md-footer__link { padding-top: 1rem; padding-bottom: 1rem; }
.md-footer__title { font-size: .85rem; }
.md-footer__direction { color: #a4b2c5; font-size: .65rem; }
.md-footer-meta__inner { padding: 2rem 1.2rem; align-items: center; gap: 1.5rem; }
.docs-footer-identity { display: flex; flex-direction: column; align-items: start; gap: .65rem; }
.docs-footer-identity img { width: 8.5rem; height: auto; }
.docs-footer-identity > span { color: #c8d2df; font-size: .72rem; }
.docs-footer-identity small { color: #a4b2c5; font-size: .6rem; }
.docs-footer-links { display: flex; flex-direction: column; gap: .4rem; margin-left: auto; font-size: .65rem; }
.docs-footer-links a { display: inline-flex; align-items: center; min-height: 1.8rem; color: #c7d2e1; }
.md-footer :focus-visible { outline-color: #93c5fd; }
.md-top { border: 1px solid var(--docs-border); border-radius: .5rem; box-shadow: 0 8px 24px -12px #0005; }
.docs-not-found { padding: 2rem 0 4rem; max-width: 36rem; }
.docs-error-code { display: block; font-size: 4rem; line-height: 1; color: var(--md-typeset-a-color); margin-bottom: 1.5rem; font-weight: 500; }
.docs-not-found .quick-links .md-button:not(.md-button--primary) { color: var(--docs-heading); border-color: var(--docs-border); }
.md-skip { font-size: .75rem; background: #2563eb; color: white; }

@media (max-width: 76.1875em) {
  .md-header__button[for='__drawer'] { margin-left: 0; }
  .md-sidebar--primary { width: 12.1rem; background: #111827; visibility: hidden; }
  #__drawer:checked ~ .md-container .md-sidebar--primary { visibility: visible; }
  .md-sidebar--primary .md-nav__list { background: #111827; }
  .md-sidebar--primary .md-sidebar__scrollwrap { margin: 0; border: 0; border-radius: 0; padding: 1rem; }
  .md-sidebar--primary .md-nav__title { height: auto; padding: 1rem .5rem; color: #e5e7eb; }
  .md-sidebar--primary .md-nav__title .md-logo { display: block; position: static; width: auto; height: auto; margin: 0 0 1.25rem; padding: 0; }
  .md-sidebar--primary .md-nav__title .md-logo img { width: 8rem; height: auto; }
  .md-sidebar--primary .md-nav__title::before { color: #93c5fd; }
}
@media (max-width: 59.984375em) {
  .md-header__inner { padding: 0 .5rem; min-height: 3.2rem; }
  .md-header__button.md-logo { order: 1; margin: 0 .6rem; }
  .md-header__button.md-logo img { width: 7.3rem; }
  .md-header__button[for='__drawer'] { order: 0; }
  .md-header__title { display: none; }
  .md-header__option { order: 2; margin-left: auto; }
  .md-header__button[for='__search'] { order: 3; }
  .md-search { order: 4; }
  .md-main__inner { margin-top: 1.5rem; }
  .md-content__inner { margin: 0 1rem 2rem; }
  .md-typeset h1 { font-size: 1.7rem; }
  .md-typeset h2 { font-size: 1.2rem; }
  .md-typeset pre > code { padding: 1rem; font-size: .65rem; }
  .md-typeset__scrollwrap { margin-left: 0; margin-right: 0; }
  .md-typeset table:not([class]) th, .md-typeset table:not([class]) td { padding: .7rem; }
  .hero { padding: 1.25rem; }
  .feature-grid { grid-template-columns: 1fr; }
  .md-footer-meta__inner { padding: 1.5rem 1rem; align-items: start; }
  .docs-footer-links { margin-left: 0; }
}
@media (max-width: 360px) {
  .md-header__button.md-logo img { width: 6rem; }
  .md-header__button.md-logo { margin: 0 .25rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
