@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/variable/woff2-dynamic-subset/PretendardVariable.subset.91.woff2)format("woff2-variations");unicode-range:U+20-22,U+27-2A,U+2C-39,U+3A-3B,U+3F,U+41-5D,U+61-7B,U+7D,U+A0-A1,U+AB,U+AD-AE,U+B7,U+BB,U+BF,U+2013-2014,U+201C-201D,U+2122,U+AC00,U+ACE0,U+AE30,U+B2E4,U+B85C,U+B9AC,U+C0AC,U+C2A4,U+C2DC,U+C774,U+C778,U+C9C0,U+D558}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.site-header[data-astro-cid-qse2wdo2]{width:100%;z-index:var(--layer-site-header);-webkit-backdrop-filter:saturate(180%)blur(20px);background:#ffffffe6;transition:background-color .3s;position:fixed;top:0;left:0}.site-header[data-astro-cid-qse2wdo2].is-open{background:#fff}.header-nav[data-astro-cid-qse2wdo2]{align-items:center;gap:var(--space-6);height:var(--site-header-block-size);display:flex}.header-logo[data-astro-cid-qse2wdo2]{align-items:center;gap:var(--space-2);z-index:101;margin-right:auto;display:flex}.logo-mark[data-astro-cid-qse2wdo2]{object-fit:contain;flex:0 0 28px;block-size:28px;inline-size:28px}.logo-text[data-astro-cid-qse2wdo2]{letter-spacing:.231px;color:var(--color-text-primary);font-size:21px;font-weight:600;line-height:24px}.header-links[data-astro-cid-qse2wdo2]{gap:var(--space-6);display:flex}.header-link[data-astro-cid-qse2wdo2]{color:#1d1d1f;transition:opacity var(--transition-fast), color var(--transition-fast);padding:var(--space-2) 0;font-size:13px;font-weight:400;line-height:22px}.header-link[data-astro-cid-qse2wdo2]:hover{opacity:.8}.header-link[data-astro-cid-qse2wdo2].active{color:var(--color-text-primary)}.header-actions[data-astro-cid-qse2wdo2]{align-items:center;gap:var(--space-2);z-index:calc(var(--layer-site-header) + 1);display:flex}.search-toggle[data-astro-cid-qse2wdo2]{cursor:pointer;color:var(--color-text-primary);transition:opacity var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.search-toggle[data-astro-cid-qse2wdo2]:hover{opacity:.7}.mobile-toggle[data-astro-cid-qse2wdo2]{cursor:pointer;width:44px;height:44px;z-index:calc(var(--layer-site-header) + 1);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;display:none}.hamburger-line[data-astro-cid-qse2wdo2]{background-color:var(--color-text-primary);width:18px;height:1px;transition:transform .3s,background-color .3s;display:block}@media (width<=768px){.logo-text[data-astro-cid-qse2wdo2]{letter-spacing:.228px;font-size:19px;font-weight:600;line-height:24px}.logo-mark[data-astro-cid-qse2wdo2]{flex-basis:26px;block-size:26px;inline-size:26px}.mobile-toggle[data-astro-cid-qse2wdo2]{display:flex}.header-links[data-astro-cid-qse2wdo2]{width:100%;height:calc(100dvh - var(--site-header-block-size));padding:var(--space-8) var(--page-gutter);visibility:hidden;opacity:0;align-items:flex-start;gap:var(--space-6);overscroll-behavior:contain;background:#fff;flex-direction:column;transition:opacity .3s,transform .3s,visibility .3s;position:fixed;top:48px;left:0;overflow-y:auto;transform:translateY(-10px)}.site-header[data-astro-cid-qse2wdo2].is-open{-webkit-backdrop-filter:none;width:100%;position:fixed;top:0;left:0}.site-header[data-astro-cid-qse2wdo2].is-open .header-links[data-astro-cid-qse2wdo2]{visibility:visible;opacity:1;transform:translateY(0)}.site-header[data-astro-cid-qse2wdo2].is-open .hamburger-line[data-astro-cid-qse2wdo2]:first-child{transform:translateY(3px)rotate(45deg)}.site-header[data-astro-cid-qse2wdo2].is-open .hamburger-line[data-astro-cid-qse2wdo2]:nth-child(2){transform:translateY(-3px)rotate(-45deg)}.header-links[data-astro-cid-qse2wdo2] li[data-astro-cid-qse2wdo2]{width:100%}.header-links[data-astro-cid-qse2wdo2] .header-link[data-astro-cid-qse2wdo2]{text-align:left;border-bottom:1px solid var(--color-border-light);width:100%;padding-block-end:var(--space-4);font-size:24px;font-weight:600;display:block}.header-links[data-astro-cid-qse2wdo2]{top:var(--site-header-block-size)}}.site-footer[data-astro-cid-jjw2feqf]{background:#f5f5f7;margin-block-start:var(--space-24);padding-block-start:var(--space-8);padding-block-end:calc(var(--space-8) + 80px)}.footer-inner[data-astro-cid-jjw2feqf]{align-items:start;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;display:grid}.footer-nav[data-astro-cid-jjw2feqf]{min-width:0}.footer-link-groups[data-astro-cid-jjw2feqf]{align-items:start;gap:var(--space-1);min-width:0;display:grid}.footer-links[data-astro-cid-jjw2feqf]{align-items:start;gap:0;min-width:0;margin:0;padding:0;display:grid}.footer-link[data-astro-cid-jjw2feqf]{color:var(--color-text-secondary);overflow-wrap:anywhere;align-items:center;min-height:32px;padding-block:2px;font-size:13px;font-weight:600;line-height:1.5;display:inline-flex}.footer-link[data-astro-cid-jjw2feqf]:hover{color:var(--color-text-primary)}.footer-copy[data-astro-cid-jjw2feqf]{color:var(--color-text-tertiary);font-size:var(--text-xs);text-align:right;white-space:nowrap;align-items:center;min-height:32px;margin:0;font-weight:500;line-height:1.5;display:flex}@media (width<=420px){.footer-inner[data-astro-cid-jjw2feqf]{gap:var(--space-4);grid-template-columns:1fr}.footer-copy[data-astro-cid-jjw2feqf]{text-align:left;white-space:normal}}.search-dialog{box-sizing:border-box;background:0 0;border:0;block-size:auto;max-block-size:none;inline-size:auto;max-inline-size:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.search-dialog::backdrop{background:0 0}.search-backdrop{inset:var(--site-header-block-size) 0 0;-webkit-backdrop-filter:blur(20px);cursor:default;background-color:#e8e8ed80;border:0;block-size:auto;inline-size:auto;margin:0;padding:0;display:block;position:absolute}.search-flyout{z-index:1;inline-size:100%;max-block-size:calc(100dvh - var(--site-header-block-size));box-sizing:border-box;opacity:0;background:#fff;flex-direction:column;margin-block-start:var(--site-header-block-size);transition:transform .32s cubic-bezier(.4,0,.6,1),opacity .24s cubic-bezier(.4,0,.6,1);display:flex;position:relative;overflow:hidden;transform:translateY(-1rem)}.search-dialog[open] .search-flyout{opacity:1;transform:translateY(0)}@starting-style{.search-dialog[open] .search-flyout{opacity:0;transform:translateY(-1rem)}}.search-bar{inline-size:100%;max-inline-size:var(--page-width);box-sizing:border-box;padding:16px var(--page-gutter);border-radius:var(--radius-md);background:#fff;flex:none;align-items:center;gap:12px;margin-inline:auto;display:flex}.search-bar-icon,.search-bar-close{flex:none}.search-bar-input{color:#333336;background:0 0;border:none;outline:none;flex:auto;min-inline-size:0;font-family:inherit;font-size:24px;font-weight:600;line-height:24px}.search-bar-input:focus-visible{outline:none}.search-bar-input::-webkit-search-cancel-button{appearance:none;display:none}.search-bar-close:focus-visible{border-radius:var(--radius-sm);outline-offset:2px;outline:1px solid #1d1d1f33}.search-bar-input::placeholder{color:#6e6e73;opacity:1}.search-bar-close{color:#6e6e73;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .2s;display:flex}.search-bar-close:hover{opacity:.6}.search-results{min-block-size:0;max-block-size:calc(100dvh - var(--site-header-block-size) - 64px);inline-size:100%;max-inline-size:var(--page-width);box-sizing:border-box;padding:0 var(--page-gutter) 20px;overscroll-behavior:contain;margin-inline:auto;overflow:hidden auto}.search-results[hidden]{display:none}.search-results-actions{padding-block:16px 4px}.search-results-more{min-block-size:var(--touch-target-min);color:var(--color-text-primary,#1d1d1f);overflow-wrap:anywhere;text-underline-offset:3px;align-items:center;font-size:15px;font-weight:600;text-decoration:underline;display:inline-flex}.search-empty{color:#6e6e73;text-align:center;padding:24px 0;font-size:15px}.search-result-item{border-bottom:1px solid var(--color-border-light,#00000014);color:inherit;overflow-wrap:anywhere;padding:16px 0;text-decoration:none;transition:opacity .2s;display:block}.search-result-item:hover{opacity:.7}.search-result-title{color:var(--color-text-primary,#1d1d1f);overflow-wrap:anywhere;margin-bottom:4px;font-size:17px;font-weight:600;display:block}.search-result-excerpt{color:#6e6e73;overflow-wrap:anywhere;font-size:14px;line-height:1.5;display:block}.search-result-excerpt mark{color:var(--color-text-primary,#1d1d1f);background:0 0;font-weight:600}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{text-size-adjust:100%;scroll-behavior:smooth;hanging-punctuation:first last;scrollbar-gutter:stable}body{flex-direction:column;min-height:100dvh;line-height:1.7;display:flex}main{flex:1}img,picture,video,canvas,svg{max-width:100%;display:block}img{height:auto;font-style:italic}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance;line-height:1.2}p{overflow-wrap:break-word;text-wrap:pretty}a{color:inherit;text-decoration:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0}button{cursor:pointer;background:0 0;border:none}ul[role=list],ol[role=list]{list-style:none}table{border-collapse:collapse}[role=button],.btn,.nav-link{min-height:var(--touch-target-min,48px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--font-primary:"Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", "JetBrains Mono", monospace;--text-xs:clamp(.75rem, .7rem + .25vw, .8125rem);--text-sm:clamp(.875rem, .82rem + .28vw, .9375rem);--text-base:clamp(1rem, .95rem + .25vw, 1.0625rem);--text-lg:clamp(1.125rem, 1rem + .625vw, 1.25rem);--text-xl:clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.2rem + 1.5vw, 2rem);--text-3xl:clamp(2rem, 1.5rem + 2.5vw, 2.75rem);--text-4xl:clamp(2.5rem, 1.8rem + 3.5vw, 3.5rem);--prose-body-size:1.0625rem;--prose-body-line-height:1.65;--prose-h2-size:1.875rem;--prose-h2-line-height:1.4;--prose-h2-space-after:1.5rem;--prose-h3-size:1.4375rem;--prose-h3-line-height:1.45;--prose-h3-space-before:2rem;--prose-h3-space-after:1rem;--prose-flow-space:1em;--prose-section-space:3rem;--prose-h2-size-compact:1.625rem;--prose-h2-line-height-compact:1.35;--prose-h2-space-after-compact:1.25rem;--prose-h3-size-compact:1.3125rem;--prose-h3-line-height-compact:1.4;--prose-h3-space-after-compact:.875rem;--prose-code-padding-block:var(--space-6);--prose-code-padding-inline:var(--space-6);--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.7;--leading-relaxed:1.85;--tracking-tight:-.022em;--tracking-normal:0;--tracking-wide:.02em;--color-bg:#fff;--color-bg-secondary:#f5f5f7;--color-surface:#fbfbfd;--color-text-primary:#1d1d1f;--color-text-secondary:#6e6e73;--color-text-tertiary:#86868b;--color-border:#d2d2d7;--color-border-light:#e8e8ed;--color-accent:#0071e3;--color-accent-hover:#0077ed;--color-accent-subtle:#0071e314;--color-code-bg:#1d1d1f;--color-code-text:#f5f5f7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--content-width:680px;--page-width:980px;--grid-gap:44px;--page-gutter:clamp(1rem, 5vw, 2.5rem);--site-header-block-size:52px;--safe-area-inset-bottom:env(safe-area-inset-bottom,0px);--layer-site-header:100;--layer-floating-toc:110;--touch-target-min:48px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 12px 40px #0000001f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--admin-bg:#f4f5f7;--admin-bg-elevated:#f4f5f7;--admin-sidebar-bg:#fafbfc;--admin-sidebar-glass-bg:#fafbfceb;--admin-sidebar-glass-shadow:0 0 0 1px #ffffffb8 inset, 0 1px 0 #ffffffd1 inset, 0 18px 34px -28px #0f172a52;--admin-sidebar-glass-blur:saturate(150%) blur(8px);--admin-sidebar-radius:24px;--admin-sidebar-inset:12px;--admin-sidebar-selected-bg:#00000014;--admin-sidebar-hover-bg:#0000000b;--admin-surface:#fff;--admin-surface-hover:#0000000b;--admin-surface-active:#00000013;--admin-surface-subtle:#f6f7f9d1;--admin-paper:#fff;--admin-nav-hover:#0000000d;--admin-nav-active:#0071e31a;--admin-control-bg:#ffffffc2;--admin-control-border:#1d1d1f14;--admin-control-height:44px;--admin-control-height-sm:36px;--admin-switch-width:51px;--admin-switch-height:31px;--admin-switch-thumb:27px;--admin-switch-inset:2px;--admin-switch-on:#34c759;--admin-switch-off:#78788029;--admin-divider:#1d1d1f11;--admin-border:var(--admin-divider);--admin-border-strong:var(--admin-control-border);--admin-console-bg:#f6f8fcbd;--admin-console-log-bg:#f6f7f9e6;--admin-glass-bg:#ffffff94;--admin-glass-bg-strong:#ffffffc7;--admin-glass-border:#ffffffb3;--admin-glass-stroke:#1d1d1f0e;--admin-glass-blur:saturate(170%) blur(16px);--admin-glass-shadow:0 24px 68px #0f172a1c, 0 2px 10px #0f172a0b;--admin-icon-size:18px;--admin-radius-control:14px;--admin-radius-surface:22px;--admin-radius-floating:28px;--admin-accent:#0071e3;--admin-accent-hover:#0077ed;--admin-accent-subtle:#0071e31a;--admin-accent-text:#003a70;--admin-text:var(--color-text-primary);--admin-text-muted:var(--color-text-secondary);--admin-text-faint:var(--color-text-tertiary);--admin-text-xs:12px;--admin-text-sm:13px;--admin-text-base:14px;--admin-text-md:15px;--admin-text-lg:17px;--admin-text-xl:22px;--admin-success-bg:#34c7591f;--admin-success-text:#167d36;--admin-success-border:#34c75933;--admin-warning-bg:#ffcc0029;--admin-warning-text:#8f5a00;--admin-warning-border:#ff95003d;--admin-danger-bg:#ff3b301c;--admin-danger-text:#b42318;--admin-danger-border:#ff3b3033;--admin-focus-ring:#0071e329;--admin-shadow-control:0 1px 2px #0f172a0d, 0 8px 18px #0f172a0e;--admin-shadow-surface:0 18px 46px #0f172a13, 0 1px 0 #ffffffb8 inset;--admin-shadow-paper:0 22px 70px #0f172a14;--admin-shadow-floating:0 28px 86px #0f172a29, 0 6px 18px #0f172a0f}html{scroll-padding-top:var(--site-header-block-size)}body{font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg);letter-spacing:var(--tracking-normal);word-break:normal;padding-top:var(--site-header-block-size)}html:has(body.has-mobile-nav-open),html:has(body.has-search-dialog-open),body.has-mobile-nav-open,body.has-search-dialog-open{overflow:hidden}.page-container{width:100%;max-width:var(--page-width);padding-inline:var(--page-gutter);margin-inline:auto}.content-container{width:100%;max-width:var(--content-width);margin-inline:auto}a{transition:color var(--transition-fast)}a:hover{color:var(--color-accent)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.skip-link{top:-100%;left:var(--space-4);z-index:9999;padding:var(--space-2) var(--space-4);background:var(--color-text-primary);color:var(--color-bg);font-size:var(--text-sm);border-radius:var(--radius-sm);font-weight:600;position:absolute}.skip-link:focus{top:var(--space-4)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose{max-width:var(--content-width);font-size:var(--prose-body-size);line-height:var(--prose-body-line-height);color:var(--color-text-primary);word-break:normal;overflow-wrap:break-word;line-break:auto;container-type:inline-size}.prose h1{font-size:var(--text-3xl);letter-spacing:var(--tracking-tight);margin-block:var(--space-16) var(--space-6);font-weight:700}.prose h2{color:#1d1d1f;font-size:var(--prose-h2-size);font-weight:700;line-height:var(--prose-h2-line-height);letter-spacing:0}.prose h3{font-size:var(--prose-h3-size);font-weight:650;line-height:var(--prose-h3-line-height);letter-spacing:0;margin-block:var(--prose-h3-space-before) var(--prose-h3-space-after)}.prose h4{font-size:var(--text-lg);margin-block:var(--space-6) var(--space-2);font-weight:600}.prose p,.prose li{color:#1d1d1f;font-size:var(--prose-body-size);font-weight:400;line-height:var(--prose-body-line-height);letter-spacing:0;margin-block:0 var(--prose-flow-space)}.prose p+p{margin-block-start:0}.prose :where(ul,ol){margin-block:0 var(--prose-flow-space);padding-inline-start:1.55em;list-style-position:outside}.prose :where(ul,ol) :where(ul,ol){margin-block:.55em 0;padding-inline-start:1.35em}.prose ul{list-style-type:disc}.prose ul ul{list-style-type:circle}.prose ul ul ul{list-style-type:square}.prose ol{list-style-type:decimal}.prose ol ol{list-style-type:lower-alpha}.prose ol ol ol{list-style-type:lower-roman}.prose li{margin-block:0 .55em;padding-inline-start:.15em}.prose li>p{margin-block:0 .65em}.prose li>:last-child{margin-block-end:0}.prose li::marker{color:var(--color-text-tertiary)}.prose .task-list-item,.prose li[data-checked],.prose li:has(>input[type=checkbox]:first-child),.prose li:has(>p:first-child>input[type=checkbox]:first-child){list-style-type:none}.prose .task-list-item>input[type=checkbox],.prose .task-list-item>p:first-child>input[type=checkbox],.prose li[data-checked]>input[type=checkbox],.prose li>input[type=checkbox]:first-child,.prose li>p:first-child>input[type=checkbox]:first-child{block-size:1em;inline-size:1em;accent-color:var(--color-accent);vertical-align:-.125em;margin-block:0;margin-inline:-1.35em .55em}.prose a{color:#06c;font:inherit;letter-spacing:inherit;line-height:inherit;transition:color var(--transition-fast), text-decoration-color var(--transition-fast);text-decoration-line:underline;text-decoration-style:solid;text-decoration-color:#06c}.prose a:hover{color:var(--color-accent-hover)}.prose blockquote{border-inline-start:3px solid var(--color-border);margin-block:var(--space-6);color:var(--color-text-secondary);padding-inline-start:var(--space-6);font-style:italic}.prose :not(pre)>code{font-family:var(--font-mono);background-color:var(--color-bg-secondary);word-break:break-word;border-radius:4px;padding:.15em .4em;font-size:.875em}.prose pre{font-family:var(--font-mono);font-size:var(--text-sm);background-color:var(--color-code-bg);color:var(--color-code-text);padding-block:var(--prose-code-padding-block);padding-inline:var(--prose-code-padding-inline);border-radius:var(--radius-md);margin-block:var(--space-6);line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.prose img{border-radius:var(--radius-md);margin-block:var(--space-8);aspect-ratio:auto;content-visibility:auto;contain-intrinsic-size:auto 680px 383px;block-size:auto;max-inline-size:100%;margin-inline:auto;display:block}.prose p>a:has(>img:only-child){inline-size:fit-content;max-inline-size:100%;margin-inline:auto;display:block}.prose hr{border:none;border-top:1px solid var(--color-border-light);margin-block:var(--space-12)}.prose .table-wrapper{width:100%;font-size:var(--text-sm);margin-block:var(--space-6);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);overflow-x:auto}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light);white-space:nowrap}.prose th{background-color:var(--color-bg-secondary);font-weight:600}.prose strong{font-weight:700}.prose h2 strong,.prose h3 strong{font-weight:inherit}.prose h2,.prose h3{scroll-margin-block-start:calc(var(--site-header-block-size) + var(--space-4))}.prose em{font-style:italic}.content-section{content-visibility:auto;contain-intrinsic-size:auto 1000px}.content-section.is-visible{content-visibility:visible}.prose .content-section>h2{margin-block:var(--prose-section-space) var(--prose-h2-space-after)}.prose>.content-section:first-child>h2{margin-block-start:0}@container (width<=40rem){.prose p,.prose li{font-size:var(--prose-body-size)}.prose h2{font-size:var(--prose-h2-size-compact);line-height:var(--prose-h2-line-height-compact)}.prose h3{font-size:var(--prose-h3-size-compact);line-height:var(--prose-h3-line-height-compact);margin-block-end:var(--prose-h3-space-after-compact)}.prose .content-section>h2{margin-block:var(--prose-section-space) var(--prose-h2-space-after-compact)}}@media (width<=768px){:root{--site-header-block-size:48px}.prose h1{margin-block-start:var(--space-8)}}
