.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@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}.site-header[data-astro-cid-3ef6ksr2]{position:fixed;top:0;left:0;width:100%;z-index:100;background:#ffffffb8;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);transition:background-color .3s ease}.site-header[data-astro-cid-3ef6ksr2].is-open{background:#fff}.header-nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-6);height:52px}.header-logo[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-2);margin-right:auto;z-index:101}.logo-mark[data-astro-cid-3ef6ksr2]{inline-size:28px;block-size:28px;flex:0 0 28px;object-fit:contain}.logo-text[data-astro-cid-3ef6ksr2]{font-size:21px;font-weight:600;letter-spacing:.231px;line-height:24px;color:var(--color-text-primary)}.header-links[data-astro-cid-3ef6ksr2]{display:flex;gap:var(--space-6)}.header-link[data-astro-cid-3ef6ksr2]{color:#1d1d1f;font-size:13px;font-weight:400;line-height:22px;transition:opacity var(--transition-fast),color var(--transition-fast);padding:var(--space-2) 0}.header-link[data-astro-cid-3ef6ksr2]:hover{opacity:.8}.header-link[data-astro-cid-3ef6ksr2].active{color:var(--color-text-primary)}.header-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-2);z-index:101}.search-toggle[data-astro-cid-3ef6ksr2]{background:transparent;border:none;cursor:pointer;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;padding:0;transition:opacity var(--transition-fast)}.search-toggle[data-astro-cid-3ef6ksr2]:hover{opacity:.7}.mobile-toggle[data-astro-cid-3ef6ksr2]{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;z-index:101;padding:0}.hamburger-line[data-astro-cid-3ef6ksr2]{display:block;width:18px;height:1px;background-color:var(--color-text-primary);transition:transform .3s ease,background-color .3s ease}@media(max-width:768px){.logo-text[data-astro-cid-3ef6ksr2]{font-size:19px;font-weight:600;letter-spacing:.228px;line-height:24px}.logo-mark[data-astro-cid-3ef6ksr2]{inline-size:26px;block-size:26px;flex-basis:26px}.header-nav[data-astro-cid-3ef6ksr2]{height:48px}.mobile-toggle[data-astro-cid-3ef6ksr2]{display:flex}.header-links[data-astro-cid-3ef6ksr2]{position:fixed;top:48px;left:0;width:100%;height:calc(100dvh - 48px);background:#fff;flex-direction:column;align-items:flex-start;padding:var(--space-8) var(--page-gutter);visibility:hidden;opacity:0;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease,visibility .3s ease;gap:var(--space-6);overflow-y:auto;overscroll-behavior:contain}.site-header[data-astro-cid-3ef6ksr2].is-open{position:fixed;top:0;left:0;width:100%;backdrop-filter:none;-webkit-backdrop-filter:none}.site-header[data-astro-cid-3ef6ksr2].is-open .header-links[data-astro-cid-3ef6ksr2]{visibility:visible;opacity:1;transform:translateY(0)}.site-header[data-astro-cid-3ef6ksr2].is-open .hamburger-line[data-astro-cid-3ef6ksr2]:nth-child(1){transform:translateY(3px) rotate(45deg)}.site-header[data-astro-cid-3ef6ksr2].is-open .hamburger-line[data-astro-cid-3ef6ksr2]:nth-child(2){transform:translateY(-3px) rotate(-45deg)}.header-links[data-astro-cid-3ef6ksr2] li[data-astro-cid-3ef6ksr2]{width:100%}.header-links[data-astro-cid-3ef6ksr2] .header-link[data-astro-cid-3ef6ksr2]{display:block;text-align:left;font-size:24px;font-weight:600;width:100%;border-bottom:1px solid var(--color-border-light);padding-block-end:var(--space-4)}}.site-footer[data-astro-cid-sz7xmlte]{margin-block-start:var(--space-24);padding-block-start:var(--space-8);padding-block-end:calc(var(--space-8) + 80px);background:#f5f5f7}.footer-inner[data-astro-cid-sz7xmlte]{align-items:start;display:grid;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto}.footer-nav[data-astro-cid-sz7xmlte]{min-width:0}.footer-link-groups[data-astro-cid-sz7xmlte]{align-items:start;display:grid;gap:var(--space-1);min-width:0}.footer-links[data-astro-cid-sz7xmlte]{align-items:start;display:grid;gap:0;margin:0;min-width:0;padding:0}.footer-link[data-astro-cid-sz7xmlte]{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:13px;font-weight:600;line-height:1.5;min-height:32px;overflow-wrap:anywhere;padding-block:2px}.footer-link[data-astro-cid-sz7xmlte]:hover{color:var(--color-text-primary)}.footer-copy[data-astro-cid-sz7xmlte]{color:var(--color-text-tertiary);display:flex;align-items:center;font-size:var(--text-xs);font-weight:500;line-height:1.5;margin:0;min-height:32px;text-align:right;white-space:nowrap}@media(max-width:420px){.footer-inner[data-astro-cid-sz7xmlte]{gap:var(--space-4);grid-template-columns:1fr}.footer-copy[data-astro-cid-sz7xmlte]{text-align:left;white-space:normal}}.search-backdrop{position:fixed;top:52px;left:0;width:100%;height:calc(100dvh - 52px);background-color:#e8e8ed80;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:98;opacity:0;visibility:hidden;transition:opacity .32s cubic-bezier(.4,0,.6,1) .08s,visibility .32s}.search-backdrop.is-active{opacity:1;visibility:visible}.search-dialog{position:fixed;top:52px;left:0;width:100%;max-height:calc(80vh - 52px);margin:0;padding:0;border:none;background:transparent;z-index:99;overflow:visible}.search-flyout{background:#fff;width:100%;display:flex;flex-direction:column;transform:translateY(-100%);opacity:0;transition:transform .32s cubic-bezier(.4,0,.6,1),opacity .24s cubic-bezier(.4,0,.6,1)}.search-dialog.is-active .search-flyout{transform:translateY(0);opacity:1}.search-bar{display:flex;align-items:center;gap:12px;width:100%;max-width:var(--page-width);margin-inline:auto;padding:16px var(--page-gutter);box-sizing:border-box}.search-bar-icon{flex-shrink:0}.search-bar-input{flex:1;border:none;background:transparent;font-size:24px;font-weight:600;line-height:24px;color:#333336;font-family:inherit;outline:none}.search-bar-input::placeholder{color:#6e6e73;opacity:1}.search-bar-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;cursor:pointer;color:#6e6e73;transition:opacity .2s ease}.search-bar-close:hover{opacity:.6}.search-results{overflow-y:auto;width:100%;max-width:var(--page-width);margin-inline:auto;padding:0 var(--page-gutter) 20px;max-height:calc(80vh - 116px);box-sizing:border-box}.search-results:empty{display:none}.search-empty{padding:24px 0;text-align:center;color:#6e6e73;font-size:15px}.search-result-item{display:block;padding:16px 0;border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .08));text-decoration:none;color:inherit;transition:opacity .2s ease}.search-result-item:hover{opacity:.7}.search-result-title{display:block;font-size:17px;font-weight:600;color:var(--color-text-primary, rgb(29, 29, 31));margin-bottom:4px}.search-result-excerpt{display:block;font-size:14px;line-height:1.5;color:#6e6e73}.search-result-excerpt mark{background:transparent;color:var(--color-text-primary, rgb(29, 29, 31));font-weight:600}@media(max-width:768px){.search-backdrop{top:48px;height:calc(100dvh - 48px)}.search-dialog{top:48px;max-height:calc(80vh - 48px)}.search-results{max-height:calc(80vh - 112px)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;hanging-punctuation:first last;scrollbar-gutter:stable}body{min-height:100dvh;line-height:1.7;display:flex;flex-direction:column}main{flex:1}img,picture,video,canvas,svg{display:block;max-width:100%}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;border:none;background: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{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!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;--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: #ffffff;--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: rgba(0, 113, 227, .08);--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);--touch-target-min: 48px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .12);--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: rgba(250, 251, 252, .92);--admin-sidebar-glass-shadow: 0 0 0 1px rgba(255, 255, 255, .72) inset, 0 1px 0 rgba(255, 255, 255, .82) inset, 0 18px 34px -28px rgba(15, 23, 42, .32);--admin-sidebar-glass-blur: saturate(150%) blur(8px);--admin-sidebar-radius: 24px;--admin-sidebar-inset: 12px;--admin-sidebar-selected-bg: rgba(0, 0, 0, .08);--admin-sidebar-hover-bg: rgba(0, 0, 0, .045);--admin-surface: #ffffff;--admin-surface-hover: rgba(0, 0, 0, .045);--admin-surface-active: rgba(0, 0, 0, .075);--admin-surface-subtle: rgba(246, 247, 249, .82);--admin-paper: #ffffff;--admin-nav-hover: rgba(0, 0, 0, .05);--admin-nav-active: rgba(0, 113, 227, .1);--admin-control-bg: rgba(255, 255, 255, .76);--admin-control-border: rgba(29, 29, 31, .08);--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: rgb(52, 199, 89);--admin-switch-off: rgba(120, 120, 128, .16);--admin-divider: rgba(29, 29, 31, .065);--admin-border: var(--admin-divider);--admin-border-strong: var(--admin-control-border);--admin-console-bg: rgba(255, 255, 255, .88);--admin-glass-bg: rgba(255, 255, 255, .58);--admin-glass-bg-strong: rgba(255, 255, 255, .78);--admin-glass-border: rgba(255, 255, 255, .7);--admin-glass-stroke: rgba(29, 29, 31, .055);--admin-glass-blur: saturate(170%) blur(16px);--admin-glass-shadow: 0 24px 68px rgba(15, 23, 42, .11), 0 2px 10px rgba(15, 23, 42, .045);--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: rgba(0, 113, 227, .1);--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: rgba(52, 199, 89, .12);--admin-success-text: #167d36;--admin-success-border: rgba(52, 199, 89, .2);--admin-warning-bg: rgba(255, 204, 0, .16);--admin-warning-text: #8f5a00;--admin-warning-border: rgba(255, 149, 0, .24);--admin-danger-bg: rgba(255, 59, 48, .11);--admin-danger-text: #b42318;--admin-danger-border: rgba(255, 59, 48, .2);--admin-focus-ring: rgba(0, 113, 227, .16);--admin-shadow-control: 0 1px 2px rgba(15, 23, 42, .05), 0 8px 18px rgba(15, 23, 42, .055);--admin-shadow-surface: 0 18px 46px rgba(15, 23, 42, .075), 0 1px 0 rgba(255, 255, 255, .72) inset;--admin-shadow-paper: 0 22px 70px rgba(15, 23, 42, .08);--admin-shadow-floating: 0 28px 86px rgba(15, 23, 42, .16), 0 6px 18px rgba(15, 23, 42, .06)}html{scroll-padding-top:52px}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:keep-all;padding-top:52px}.page-container{width:100%;max-width:var(--page-width);margin-inline:auto;padding-inline:var(--page-gutter)}.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{position:absolute;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);font-weight:600;border-radius:var(--radius-sm)}.skip-link:focus{top:var(--space-4)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.prose{max-width:var(--content-width);container-type:inline-size;font-size:var(--prose-body-size);line-height:var(--prose-body-line-height);color:var(--color-text-primary);word-break:keep-all;overflow-wrap:anywhere;line-break:strict}.prose h1{font-size:var(--text-3xl);font-weight:700;letter-spacing:var(--tracking-tight);margin-block:var(--space-16) var(--space-6)}.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);font-weight:600;margin-block:var(--space-6) var(--space-2)}.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{inline-size:1em;block-size:1em;margin-block:0;margin-inline:-1.35em .55em;accent-color:var(--color-accent);vertical-align:-.125em}.prose a{color:#06c;font:inherit;letter-spacing:inherit;line-height:inherit;text-decoration-line:underline;text-decoration-style:solid;text-decoration-color:#06c;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}.prose a:hover{color:var(--color-accent-hover)}.prose blockquote{border-inline-start:3px solid var(--color-border);padding-inline-start:var(--space-6);margin-block:var(--space-6);color:var(--color-text-secondary);font-style:italic}.prose :not(pre)>code{font-family:var(--font-mono);font-size:.875em;padding:.15em .4em;background-color:var(--color-bg-secondary);border-radius:4px;word-break:break-word}.prose pre{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6;background-color:var(--color-code-bg);color:var(--color-code-text);padding:var(--space-6);border-radius:var(--radius-md);overflow-x:auto;margin-block:var(--space-6)}.prose pre code{font-size:inherit;padding:0;background:none;border-radius:0}.prose img{display:block;border-radius:var(--radius-md);margin-block:var(--space-8);margin-inline:auto;max-inline-size:100%;block-size:auto;aspect-ratio:auto;content-visibility:auto;contain-intrinsic-size:auto 680px 383px}.prose p>a:has(>img:only-child){display:block;inline-size:fit-content;max-inline-size:100%;margin-inline:auto}.prose hr{border:none;border-top:1px solid var(--color-border-light);margin-block:var(--space-12)}.prose .table-wrapper{width:100%;overflow-x:auto;font-size:var(--text-sm);margin-block:var(--space-6);border:1px solid var(--color-border-light);border-radius:var(--radius-sm)}.prose table{width:100%;border-collapse:collapse}.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{font-weight:600;background-color:var(--color-bg-secondary)}.prose strong{font-weight:700}.prose h2 strong,.prose h3 strong{font-weight:inherit}.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 (max-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(max-width:768px){html{scroll-padding-top:48px}body{padding-top:48px}.prose h1{margin-block-start:var(--space-8)}.prose pre{border-radius:0;margin-inline:calc(-1 * var(--page-gutter));padding-inline:var(--page-gutter)}}
