:root{color-scheme:light dark;--key-purple: #7967c3;--key-yellow: #ffc639;--key: light-dark(var(--key-purple), var(--key-yellow));--on-key: light-dark(#ffffff, #17150f);--key-display: var(--key);--key-text: light-dark(var(--fg), var(--key));--key-tint: color-mix(in srgb, var(--key) 12%, var(--surface));--key-tint-strong: color-mix(in srgb, var(--key) 24%, var(--surface));--bg: light-dark(#f4f3f8, #17150f);--surface: light-dark(#fbfafd, #1f1c15);--surface-2: light-dark(#ebe9f2, #29261d);--border: light-dark(#dcd9e6, #38342a);--border-strong: light-dark(#c4bfd6, #4f4a3c);--fg: light-dark(#1d1a29, #f0ebdf);--fg-muted: light-dark(#575269, #b4ad9b);--fg-subtle: light-dark(#86819a, #878171);--alert-note: light-dark(#2b62c4, #7aaefc);--alert-tip: light-dark(#2c7a45, #6fcf8e);--alert-important: var(--key);--alert-warning: light-dark(#b45309, #ff9b52);--alert-caution: light-dark(#c4302b, #ff7a70);--on-alert: light-dark(#ffffff, #17150f);--focus-ring: var(--key);--surface-shadow: light-dark( 0 10px 24px color-mix(in srgb, #1d1a29 8%, transparent), 0 12px 28px color-mix(in srgb, #000000 45%, transparent) );--box-shadow: var(--surface-shadow);--hover-shadow: 0 14px 30px color-mix(in srgb, var(--key) 22%, transparent);--space-xs: .35rem;--space-sm: .6rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 28px;--container: 1200px;--gutter: clamp(1rem, 4vw, 2rem);--prose-measure: 38em;--tap-min: 44px;--font-sans: "Inter", "Pretendard Variable", "Pretendard JP Variable", system-ui, sans-serif;--font-mono: "Cascadia Code", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-display: "Ostrich Sans", var(--font-sans);--font-features: "calt", "ss01", "ss02";--font-features-mono: "calt", "zero", "ss01", "ss02", "ss03", "ss04", "ss05", "ss06";--text-h1: clamp(2rem, 1.6rem + 1.6vw, 2.875rem);--text-h2: clamp(1.625rem, 1.35rem + 1.1vw, 2.3rem);--text-h3: clamp(1.375rem, 1.2rem + .7vw, 1.85rem);--text-h4: clamp(1.2rem, 1.1rem + .4vw, 1.5rem);--text-h5: clamp(1.0625rem, 1rem + .25vw, 1.25rem)}@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/InterVariable-Italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Cascadia Code;src:url(/fonts/CascadiaCode.woff2) format("woff2");font-weight:200 700;font-style:normal;font-display:swap}@font-face{font-family:Ostrich Sans;src:url(/fonts/ostrich-sans-light.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Ostrich Sans;src:url(/fonts/ostrich-sans-black.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}body{position:relative;z-index:0;font-family:var(--font-sans);font-feature-settings:var(--font-features);font-synthesis-style:none;margin:0;padding:0;text-align:left;overflow-wrap:break-word;word-break:keep-all;color:var(--fg);font-weight:400;font-size:clamp(1.0625rem,.95rem + .4vw,1.2rem);line-height:1.6;text-wrap:pretty}:root:lang(ko) body{line-height:1.7;letter-spacing:-.01em}code,pre,kbd,samp{letter-spacing:0}time,table,.date{font-variant-numeric:tabular-nums}html{min-height:100%;margin:0;background:var(--bg)}:focus-visible{outline:2.5px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}main{position:relative;z-index:1;width:min(var(--container),100% - 2 * var(--gutter));margin-inline:auto;padding:1.5rem 0 3rem}.page-shell{display:flex;flex-direction:column;gap:1.5rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);margin:0 0 .5rem;padding:.5em 0 0;color:var(--fg);font-weight:600;line-height:1.25;letter-spacing:-.015em;text-wrap:balance}h1{font-size:var(--text-h1);font-weight:650;letter-spacing:-.025em}h2{font-size:var(--text-h2);letter-spacing:-.02em}h3{font-size:var(--text-h3)}h4{font-size:var(--text-h4)}h5{font-size:var(--text-h5)}h6{font-size:1em;letter-spacing:0}strong,b{font-weight:600}a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--key);text-underline-offset:.15em;text-decoration-thickness:max(1.5px,.08em)}a:hover,a:focus-visible{background:var(--key-tint);text-decoration-thickness:max(2px,.12em)}p{margin-bottom:1em}mark{background-color:var(--key-tint-strong);padding:0 5px;border-radius:5px;font-weight:600;color:var(--fg)}textarea{width:100%;font-size:16px}input{font-size:16px}table{display:block;width:max-content;max-width:100%;margin:1.25em 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;font-size:.92em;line-height:1.45;background:linear-gradient(to right,var(--bg) 30%,transparent) left / 2rem 100% no-repeat local,linear-gradient(to left,var(--bg) 30%,transparent) right / 2rem 100% no-repeat local,radial-gradient(farthest-side at 0 50%,color-mix(in srgb,var(--fg) 22%,transparent),transparent) left / .75rem 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,color-mix(in srgb,var(--fg) 22%,transparent),transparent) right / .75rem 100% no-repeat scroll}th,td{padding:.5em .85em;border-bottom:1px solid var(--border);text-align:start;vertical-align:top}thead th{border-bottom:2px solid var(--key);font-weight:600;white-space:nowrap}tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface-2) 50%,transparent)}img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.img-row{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:flex-start;margin:1rem 0}.img-row figure{flex:1 1 320px;margin:0}.img-row img{display:block;width:100%}.img-row figcaption{display:block;text-align:start;font-size:.85em;color:var(--fg-muted);margin-top:.35rem}img+em{display:block;text-align:start;font-size:.85em;color:var(--fg-muted)}code{padding:1px 4px;margin:0 2px;counter-reset:line;font-family:var(--font-mono);font-feature-settings:var(--font-features-mono);font-size:.875em;-webkit-box-decoration-break:clone;box-decoration-break:clone;background-color:var(--surface-2);border:1px solid var(--border-strong);border-radius:4px}pre{padding:1em;line-height:1.4em;border-radius:var(--radius-sm)}pre code{all:unset;counter-reset:line;counter-increment:line 0;font-size:.85em;word-break:normal;font-family:var(--font-mono);font-feature-settings:var(--font-features-mono)}pre code .line:before{content:counter(line);counter-increment:line 1;color:var(--fg-subtle);width:2rem;display:inline-block;text-align:right;margin-right:1em}blockquote{margin:1.25em 0;padding:.1em 0 .1em 1em;border-left:3px solid var(--key);color:var(--fg-muted)}blockquote p{margin:.5em 0}.markdown-alert{--alert: var(--key);margin:1.5em 0;padding:.5em;background:color-mix(in srgb,var(--alert) 10%,var(--bg));border-radius:var(--radius-md);border-top:1em solid var(--alert);position:relative}.markdown-alert p{margin:.5em}.markdown-alert:before{position:absolute;top:0;left:1.5em;transform:translateY(-1rem);padding:.2em .5em;border-radius:999px;background:var(--alert);color:var(--on-alert);font-family:var(--font-sans);font-size:.85em;font-weight:600;letter-spacing:.02em;text-transform:uppercase;content:"";pointer-events:none}.markdown-alert .markdown-alert-title,.markdown-alert .octicon{display:none}.markdown-alert-note{--alert: var(--alert-note)}.markdown-alert-note:before{content:"Note"}.markdown-alert-tip{--alert: var(--alert-tip)}.markdown-alert-tip:before{content:"Tip"}.markdown-alert-important{--alert: var(--alert-important)}.markdown-alert-important:before{content:"Important"}.markdown-alert-warning{--alert: var(--alert-warning)}.markdown-alert-warning:before{content:"Warning"}.markdown-alert-caution{--alert: var(--alert-caution)}.markdown-alert-caution:before{content:"Caution"}hr{border:none;border-top:1px solid var(--border)}@media (prefers-color-scheme: dark){body{font-weight:380}.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.astro-code{background-color:var(--surface-2)!important}.astro-code span{background-color:transparent!important}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}
