@font-face{font-family:KO Fallback Win;src:local("Malgun Gothic"),local("맑은 고딕");size-adjust:88.5%;ascent-override:108%;descent-override:27%;line-gap-override:0%}@font-face{font-family:KO Fallback Mac;src:local("Apple SD Gothic Neo"),local("AppleSDGothicNeo-Regular");size-adjust:94.9%;ascent-override:100%;descent-override:25%;line-gap-override:0%}@font-face{font-family:EN Fallback;src:local("Arial"),local("Helvetica Neue"),local("Helvetica");size-adjust:105.3%;ascent-override:110%;descent-override:28%;line-gap-override:0%}:root{--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--mono-size: .9375em;--surface: #0B0E12;--surface-raised: #11151B;--surface-sunken: #070A0D;--surface-inverse: #F4F2EC;--ink: #ECEFF2;--ink-muted: #98A2AE;--ink-inverse: #14181E;--ink-muted-inverse: #565E68;--line: #222932;--line-strong: #39424E;--line-inverse: #D8D4CA;--accent: #4FD6C4;--accent-ink: #04211D;--accent-inverse: #0E7A6E;--accent-ink-inverse: #FFFFFF;--glow-2: #3D7BD6;--glass-tint: rgb(255 255 255 / .045);--glass-tint-2: rgb(255 255 255 / .085);--glass-edge: rgb(255 255 255 / .14);--glass-blur: 22px;--glass-sat: 150%;--glass-hi: inset 0 1px 0 rgb(255 255 255 / .22), inset 0 -1px 0 rgb(255 255 255 / .05);--glass-sheen: linear-gradient( 180deg, rgb(255 255 255 / .1) 0%, rgb(255 255 255 / .02) 22%, transparent 55% );--glass-rim: linear-gradient( 100deg, rgb(255 255 255 / .34) 0%, rgb(255 255 255 / .1) 26%, rgb(255 255 255 / .06) 58%, rgb(255 255 255 / .28) 100% );--glass-bloom: 0 0 22px -8px color-mix(in oklab, var(--accent) 42%, transparent);--core-hi: inset 0 1px 0 rgb(255 255 255 / .06);--shadow-1: 0 1px 2px rgb(0 0 0 / .5);--shadow-2: 0 2px 6px rgb(0 0 0 / .4), 0 12px 32px rgb(0 0 0 / .5);--shadow-3: 0 6px 16px rgb(0 0 0 / .45), 0 32px 80px rgb(0 0 0 / .6);--inset-hi: var(--glass-hi);--radius-sm: 3px;--radius-frame: 14px;--weight-body: 400;--weight-medium: 500;--weight-strong: 600;--control-h: 2.75rem;--control-h-sm: 2.25rem;--control-pad-x: var(--space-3);--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);--space-6: clamp(2.5rem, 1.6rem + 2.6vw, 4rem);--space-7: clamp(3.5rem, 1.9rem + 4.6vw, 7rem);--space-8: clamp(5rem, 2.6rem + 6.8vw, 10rem);--gutter: clamp(2rem, 1.4rem + 1.8vw, 2.5rem);--grid-cell: var(--space-6);--wide-pad: clamp(0rem, -3.7rem + 15.2vw, 10rem);--header-h: calc(var(--space-3) + var(--space-2) * 2 + var(--control-h-sm));--dur-instant: .12s;--dur-quick: .28s;--dur-normal: .56s;--dur-slow: .9s;--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-soft: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.64, 0, .78, 0)}@media(prefers-color-scheme:light){:root{--surface: #12161C;--surface-raised: #181D25;--glass-tint: rgb(255 255 255 / .07);--glass-tint-2: rgb(255 255 255 / .11);--glass-edge: rgb(255 255 255 / .18)}}[lang=ko]{--font-sans: "Pretendard Variable", Pretendard, "KO Fallback Win", "KO Fallback Mac", system-ui, sans-serif;--step--1: .8125rem;--step-0: 1.0625rem;--step-1: 1.328rem;--step-2: 1.66rem;--step-3: 2.076rem;--step-4: 2.595rem;--display: clamp(3rem, 1.2rem + 7.2vw, 7rem);--leading-tight: 1.06;--leading-normal: 1.7;--measure: 33em;--tracking-display: -.02em;--tracking-body: 0;--tracking-label: .08em;word-break:keep-all;overflow-wrap:break-word}[lang=en]{--font-sans: "Switzer", "EN Fallback", system-ui, -apple-system, sans-serif;--step--1: .8125rem;--step-0: 1rem;--step-1: 1.25rem;--step-2: 1.5625rem;--step-3: 1.953rem;--step-4: 2.441rem;--display: clamp(2.8rem, 1rem + 7vw, 6.6rem);--leading-tight: .98;--leading-normal: 1.55;--measure: 65ch;--tracking-display: -.04em;--tracking-body: 0;--tracking-label: .08em}.band-inverse{--surface: var(--surface-inverse);--surface-raised: #ECE8DE;--surface-sunken: #E2DED3;--ink: var(--ink-inverse);--ink-muted: var(--ink-muted-inverse);--line: var(--line-inverse);--line-strong: var(--ink-muted-inverse);--accent: var(--accent-inverse);--accent-ink: var(--accent-ink-inverse);--glass-tint: rgb(20 24 30 / .04);--glass-tint-2: rgb(20 24 30 / .07);--glass-edge: rgb(20 24 30 / .12);--glass-hi: inset 0 1px 0 rgb(255 255 255 / .8);--inset-hi: var(--glass-hi);--glass-rim: linear-gradient( 100deg, rgb(20 24 30 / .16) 0%, rgb(20 24 30 / .05) 26%, rgb(20 24 30 / .04) 58%, rgb(20 24 30 / .14) 100% );--glass-bloom: 0 0 18px -10px color-mix(in oklab, var(--ink) 30%, transparent);background:var(--surface);color:var(--ink)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--surface)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:var(--leading-normal);letter-spacing:var(--tracking-body);font-synthesis-weight:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}[lang=ko] body,[lang=ko] p,[lang=ko] li,[lang=ko] dt,[lang=ko] dd,[lang=ko] h1,[lang=ko] h2,[lang=ko] h3{word-break:keep-all;overflow-wrap:break-word}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(58vw 46vw at 14% -6%,color-mix(in oklab,var(--accent) 26%,transparent),transparent 68%),radial-gradient(52vw 44vw at 92% 8%,color-mix(in oklab,var(--glow-2) 20%,transparent),transparent 66%),radial-gradient(70vw 60vw at 62% 108%,color-mix(in oklab,var(--accent) 14%,transparent),transparent 70%)}body:after{content:"";position:fixed;inset:0;z-index:4;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:overlay}html{scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-sm);border:2px solid var(--surface)}::-webkit-scrollbar-thumb:hover{background:var(--ink-muted)}:target,section[id]{scroll-margin-top:calc(var(--header-h) + var(--space-4))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-h);padding-inline:var(--control-pad-x);border-radius:var(--radius-sm);font-size:var(--step-0);font-weight:var(--weight-medium);line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid transparent;transition:background-color var(--dur-instant) var(--ease-out),color var(--dur-instant) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.btn:active{transform:translateY(1px)}.btn-sm{min-height:var(--control-h-sm)}.btn-solid{background:var(--accent);color:var(--accent-ink)}.btn-solid:hover{background:color-mix(in oklab,var(--accent) 86%,var(--ink));color:var(--accent-ink)}.btn-quiet{background:var(--glass-tint-2);border-color:var(--glass-edge);color:var(--ink)}.btn-quiet:hover{background:var(--glass-tint);color:var(--ink)}.page{display:grid;grid-template-columns:[full-start] minmax(var(--gutter),1fr) [wide-start] minmax(0,var(--wide-pad)) [main-start] minmax(0,var(--measure)) [main-end] minmax(0,var(--wide-pad)) [wide-end] minmax(var(--gutter),1fr) [full-end]}.page>*{grid-column:main}.page>.wide{grid-column:wide}.page>.full{grid-column:full}.section{display:grid;grid-template-columns:subgrid;grid-column:full;padding-block:var(--space-7);position:relative}.section>*{grid-column:main}.section>.wide{grid-column:wide}.section>.full{grid-column:full}.page>*,.section>*{min-width:0}h1,h2,h3{margin:0;line-height:var(--leading-tight);letter-spacing:var(--tracking-display);font-weight:var(--weight-strong);text-wrap:balance}h1{font-size:var(--display)}h2{font-size:var(--step-3)}@media(min-width:1100px){.section>h2,.section>.eyebrow,.section>.head{margin-left:calc(var(--space-6) * -1)}}h3{font-size:var(--step-1)}p{margin:0 0 var(--space-3);text-wrap:pretty}p:last-child{margin-bottom:0}h1+*,h2+*,h3+*,.head+*{margin-top:var(--space-4)}.lead{font-size:var(--step-1);color:var(--ink-muted)}.eyebrow{font-size:var(--step-0);letter-spacing:var(--tracking-label);color:var(--accent);font-weight:var(--weight-medium);margin:0 0 var(--space-3)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:var(--mono-size)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:from-font;transition:color var(--dur-instant) var(--ease-out)}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.glass{position:relative;isolation:isolate;background:var(--glass-tint);border:1px solid var(--glass-edge);border-radius:var(--radius-frame);box-shadow:var(--glass-hi),var(--glass-bloom),var(--shadow-2);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat))}.glass:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:var(--glass-sheen)}.rim{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;padding:1px;-webkit-mask:linear-gradient(black 0 0) content-box,linear-gradient(black 0 0);-webkit-mask-composite:xor;mask:linear-gradient(black 0 0) content-box,linear-gradient(black 0 0);mask-composite:exclude}.rim:before{content:"";position:absolute;top:50%;left:50%;width:200%;aspect-ratio:1;translate:-50% -50%;background:conic-gradient(from 0deg,transparent 0 58%,color-mix(in oklab,var(--accent) 70%,white) 74%,transparent 86%);opacity:.55}@media(prefers-reduced-motion:no-preference){.rim:before{animation:rim-spin 11s linear infinite}}@keyframes rim-spin{to{rotate:360deg}}.glass:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;background:var(--glass-rim);-webkit-mask:linear-gradient(black 0 0) content-box,linear-gradient(black 0 0);-webkit-mask-composite:xor;mask:linear-gradient(black 0 0) content-box,linear-gradient(black 0 0);mask-composite:exclude}@media(prefers-reduced-transparency:reduce){.glass{background:color-mix(in oklab,var(--surface) 84%,var(--ink));backdrop-filter:none;-webkit-backdrop-filter:none}.site-header .glass{background:color-mix(in oklab,var(--surface) 93%,var(--ink))}}@supports not (backdrop-filter: blur(1px)){.glass{background:var(--surface-raised)}}.glass-2{background:var(--glass-tint-2)}.frame{position:relative;background:var(--surface-sunken);border:1px solid var(--glass-edge);border-radius:var(--radius-frame);box-shadow:var(--glass-hi),var(--core-hi),var(--shadow-2);overflow:clip}.frame>:is(img,picture,canvas){display:block;width:100%;height:auto}@media(prefers-reduced-motion:no-preference){.reveal{transform:translateY(14px);transition:transform var(--dur-slow) var(--ease-soft);transition-delay:var(--reveal-delay, 0ms)}.reveal.is-in{transform:none}}@media(prefers-reduced-motion:no-preference){.lift{transition:transform var(--dur-quick) var(--ease-out),box-shadow var(--dur-quick) var(--ease-out)}.lift:hover{transform:translate3d(0,-3px,0);box-shadow:var(--glass-hi),var(--shadow-3)}.link-grow{position:relative;text-decoration:none}.link-grow:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-quick) var(--ease-out)}.link-grow:hover:after{transform:scaleX(1)}.zoom-in{transition:transform var(--dur-normal) var(--ease-out)}.zoom-in:hover{transform:scale(1.012)}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.par-slow,.par-fast,.par-deep,.par-lag{animation:par linear both;animation-timeline:view();animation-range:cover 0% cover 100%;will-change:transform}.par-slow{--par-from: 26px;--par-to: -26px}.par-fast{--par-from: 58px;--par-to: -58px}.par-deep{--par-from: 92px;--par-to: -92px}.par-lag{--par-from: var(--par-lag, 14px);--par-to: calc(var(--par-lag, 14px) * -1)}@keyframes par{0%{transform:translate3d(0,var(--par-from),0)}to{transform:translate3d(0,var(--par-to),0)}}}@supports (animation-timeline: scroll()){.hero-grid,.hero-bg{animation:linear both;animation-timeline:scroll(root block);animation-range:0 92vh;will-change:transform}.hero-grid{animation-name:hero-rise}.hero-bg{animation-name:hero-sink}@keyframes hero-rise{0%{transform:translateZ(0)}to{transform:translate3d(0,-5.5rem,0)}}@keyframes hero-sink{0%{transform:translateZ(0)}to{transform:translate3d(0,3.5rem,0)}}}}.has-bg{position:relative;isolation:isolate;clip-path:inset(0)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.muted{color:var(--ink-muted)}.mono{font-family:var(--font-mono);font-size:var(--mono-size)}.nums{font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto;min-width:0}.skip[data-astro-cid-5hce7sga]{position:absolute;left:var(--space-3);top:calc(var(--space-3) * -4);padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-sm);z-index:10;transition:transform var(--dur-quick) var(--ease-out)}.skip[data-astro-cid-5hce7sga]:focus{transform:translateY(calc(var(--space-3) * 5))}.site-header[data-astro-cid-5hce7sga]{font-size:var(--step-0);position:fixed;top:var(--space-3);left:0;right:0;z-index:3;padding-inline:var(--gutter)}.header-inner[data-astro-cid-5hce7sga]{max-width:1180px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-frame);position:relative}.wordmark[data-astro-cid-5hce7sga]{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-medium);letter-spacing:-.01em;text-decoration:none}.mark[data-astro-cid-5hce7sga]{color:var(--accent);flex:none}.nav-main[data-astro-cid-5hce7sga]{display:none;gap:var(--space-1);margin-inline:auto}.nav-main[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{display:inline-flex;align-items:center;min-height:var(--control-h-sm);padding-inline:var(--space-3);border-radius:var(--radius-sm);color:var(--ink-muted);text-decoration:none;transition:color var(--dur-instant) var(--ease-out),background-color var(--dur-instant) var(--ease-out)}.nav-main[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{color:var(--ink);background:var(--glass-tint)}.nav-repo[data-astro-cid-5hce7sga]{gap:var(--space-1);opacity:.72}.nav-repo[data-astro-cid-5hce7sga]:hover{opacity:1}.header-end[data-astro-cid-5hce7sga]{display:flex;align-items:center;gap:var(--space-2);flex:none}.nav-mobile[data-astro-cid-5hce7sga]{position:static}.nav-mobile[data-astro-cid-5hce7sga]>summary[data-astro-cid-5hce7sga]{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:var(--control-h);min-height:var(--control-h);padding:0}.nav-mobile[data-astro-cid-5hce7sga]>summary[data-astro-cid-5hce7sga]::-webkit-details-marker{display:none}.nav-mobile[data-astro-cid-5hce7sga]>summary[data-astro-cid-5hce7sga]::marker{content:""}.nav-mobile[data-astro-cid-5hce7sga][open]>summary[data-astro-cid-5hce7sga]{background:var(--glass-tint);color:var(--ink)}.i-close[data-astro-cid-5hce7sga],.nav-mobile[data-astro-cid-5hce7sga][open] .i-burger[data-astro-cid-5hce7sga]{display:none}.nav-mobile[data-astro-cid-5hce7sga][open] .i-close[data-astro-cid-5hce7sga]{display:block}.nav-sheet[data-astro-cid-5hce7sga]{display:none;position:absolute;top:calc(100% + var(--space-2));left:0;right:0;padding:var(--space-2);z-index:4;border-radius:var(--radius-frame);background:color-mix(in oklab,var(--surface) 94%,white 6%);backdrop-filter:none;-webkit-backdrop-filter:none}.nav-mobile[data-astro-cid-5hce7sga][open] .nav-sheet[data-astro-cid-5hce7sga]{display:grid}.nav-sheet[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{display:flex;align-items:center;gap:var(--space-3);min-height:calc(var(--control-h) + 4px);padding-inline:var(--space-3);border-radius:var(--radius-sm);color:var(--ink);text-decoration:none}.nav-sheet[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{background:var(--glass-tint-2)}.sheet-num[data-astro-cid-5hce7sga]{font-family:var(--font-mono);font-size:var(--mono-size);color:var(--accent);flex:none}.sheet-lang[data-astro-cid-5hce7sga]{color:var(--ink-muted)}.sheet-lang[data-astro-cid-5hce7sga]:hover{color:var(--ink)}.nav-mobile[data-astro-cid-5hce7sga][open] .nav-sheet[data-astro-cid-5hce7sga]{animation:sheet-in .18s var(--ease-out) both}@keyframes sheet-in{0%{opacity:0;transform:translateY(-6px)}}@media(prefers-reduced-motion:reduce){.nav-mobile[data-astro-cid-5hce7sga][open] .nav-sheet[data-astro-cid-5hce7sga]{animation:none}}@media(min-width:900px){.nav-main[data-astro-cid-5hce7sga]{display:flex}.nav-mobile[data-astro-cid-5hce7sga]{display:none}}@media(max-width:480px){.lang-btn[data-astro-cid-5hce7sga]{display:none}.header-inner[data-astro-cid-5hce7sga]{gap:var(--space-2)}}.bg-photo[data-astro-cid-rng26azk]{z-index:-1;pointer-events:none;grid-column:full}.fixed[data-astro-cid-rng26azk]{position:fixed;inset:0}.fixed[data-astro-cid-rng26azk] img{width:100%;height:100%;object-fit:cover;display:block;opacity:var(--bg-opacity)}.drift[data-astro-cid-rng26azk]{position:absolute;inset:0}.drift[data-astro-cid-rng26azk] img{position:absolute;top:0;left:0;width:100%;height:var(--bg-h);object-fit:cover;display:block;opacity:var(--bg-opacity)}.additive[data-astro-cid-rng26azk] img{mix-blend-mode:screen}.flip[data-astro-cid-rng26azk] img{transform:scaleX(-1)}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.drift[data-astro-cid-rng26azk] img{animation:bg-parallax linear both;animation-timeline:view();animation-range:cover 0% cover 100%}.drift[data-astro-cid-rng26azk].flip img{animation-name:bg-parallax-flip}}}@keyframes bg-parallax{0%{transform:translateY(0)}to{transform:translateY(var(--bg-shift))}}@keyframes bg-parallax-flip{0%{transform:translateY(0) scaleX(-1)}to{transform:translateY(var(--bg-shift)) scaleX(-1)}}@media(prefers-reduced-motion:reduce){.fixed[data-astro-cid-rng26azk]{position:absolute}}@media(prefers-reduced-transparency:reduce){.additive[data-astro-cid-rng26azk] img{opacity:calc(var(--bg-opacity) * .9)}.bg-photo[data-astro-cid-rng26azk]:not(.additive) img{opacity:calc(var(--bg-opacity) * .7)}}
