.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:Gothic A1;src:url(/fonts/GothicA1-Black-subset.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #0f1116;--surface: #15171d;--surface-2: #1a1d24;--surface-3: #242833;--fg: #f7f8f8;--fg-secondary: #d0d6e0;--muted: #8a8f98;--faint: #62666d;--accent: #5b9cff;--accent-strong: #3182f6;--accent-hover: #7db0ff;--accent-press: #2670e8;--on-accent: #ffffff;--marker: rgba(34, 229, 255, .5);--success: #27a644;--warn: #d97706;--danger: #dc2626;--free: #3182f6;--border: #232630;--border-subtle: #191c22;--font-sans: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Pretendard", "Noto Sans KR", "Malgun Gothic", "Segoe UI", Roboto, sans-serif;--font-display: "Clash Display", "Gothic A1", var(--font-sans);--font-mono: ui-monospace, "SF Mono", "Berkeley Mono", "JetBrains Mono", "D2Coding", Menlo, Consolas, monospace;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-6: 1.5rem;--s-8: 2rem;--s-12: 3rem;--s-16: 4rem;--s-24: 6rem;--radius-sm: 4px;--radius: 6px;--radius-card: 8px;--radius-panel: 12px;--radius-pill: 9999px;--maxw: 1120px;--measure: 38em;--sidebar-w: 264px;--ease: cubic-bezier(.2, 0, 0, 1);--header-h: 60px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{word-break:keep-all;overflow-wrap:anywhere;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}body{background-color:var(--bg);color:var(--fg-secondary);font-family:var(--font-sans);font-size:1rem;line-height:1.7;font-feature-settings:"ss01","cv01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh}.sidebar{position:fixed;top:0;left:0;z-index:60;width:var(--sidebar-w);height:100dvh}.app-main{margin-left:var(--sidebar-w);min-height:100dvh;display:flex;flex-direction:column}.app-main>main{flex:1 0 auto}.mobile-topbar{display:none}.nav-scrim-fx{position:fixed;inset:0;z-index:55;background:#0000008c}@media(max-width:1023px){.sidebar{width:min(82vw,320px);transform:translate(-100%);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(140%) blur(16px);box-shadow:0 0 60px #00000080}.app-main{margin-left:0}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;height:54px;padding-inline:clamp(1rem,4vw,1.5rem);background:color-mix(in oklab,var(--surface) 90%,transparent);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border-subtle)}.m-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;background:none;color:var(--fg);cursor:pointer;border-radius:var(--radius)}.m-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}}img,picture,svg,video{display:block;max-width:100%;height:auto}a{color:var(--accent);text-decoration:none;transition:color .16s var(--ease)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}::selection{background:color-mix(in oklab,var(--accent) 35%,transparent);color:var(--fg)}hr{border:0;border-top:1px solid var(--border-subtle);margin:var(--s-8) 0}h1,h2,h3,h4{color:var(--fg);font-weight:590;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}.t-hero{font-size:clamp(2.75rem,7vw,5.5rem);font-weight:600;line-height:1.04;letter-spacing:-.03em;color:var(--fg);text-wrap:balance}.t-display{font-size:clamp(2.25rem,5vw,3.5rem);font-weight:590;line-height:1.06;letter-spacing:-.025em;color:var(--fg);text-wrap:balance}h1,.t-h1{font-size:clamp(2rem,4vw,2.5rem)}h2,.t-h2{font-size:1.5rem;letter-spacing:-.01em}.t-hero,.t-display,h1,.t-h1,h2,.t-h2{font-family:var(--font-display);font-weight:900;letter-spacing:-.022em}h3,.t-h3{font-size:1.25rem;line-height:1.35;letter-spacing:-.01em}.lede{font-size:clamp(1.0625rem,1.6vw,1.1875rem);line-height:1.75;color:var(--fg-secondary);max-width:34em}.kicker{display:inline-block;font-family:var(--font-mono);font-size:.78rem;font-weight:510;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}main{flex:1 0 auto}.section{padding-block:clamp(3.5rem,9vw,6rem)}.section-tight{padding-block:clamp(2.5rem,6vw,4rem)}.stack>*+*{margin-top:var(--s-4)}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--surface-2);color:var(--fg);padding:.6rem 1rem;border-radius:var(--radius);border:1px solid var(--border)}.skip-link:focus{left:1rem;top:1rem}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.95rem;font-weight:510;letter-spacing:.01em;padding:.625rem 1.1rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background-color .16s var(--ease),border-color .16s var(--ease),transform .12s var(--ease),color .16s var(--ease);white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent-strong);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-press);color:var(--on-accent)}.btn-ghost{background:#ffffff05;border-color:var(--border);color:var(--fg)}.btn-ghost:hover{background:#ffffff0f;color:var(--fg)}.arrow{transition:transform .16s var(--ease)}.btn:hover .arrow,.link-arrow:hover .arrow{transform:translate(3px)}.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:510;color:var(--accent)}.pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:510;letter-spacing:.01em;color:var(--fg-secondary);padding:.25rem .7rem;border:1px solid var(--border);border-radius:var(--radius-pill);transition:border-color .16s var(--ease),color .16s var(--ease),background-color .16s var(--ease)}a.pill:hover{color:var(--fg);border-color:#ffffff2e;background:#ffffff08}.segment{display:inline-flex;flex-wrap:wrap;gap:.15rem;padding:.25rem;background:#ffffff09;border-radius:var(--radius-pill)}.segment-item{position:relative;border:0;background:none;cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:510;letter-spacing:.01em;padding:.32rem .8rem;border-radius:var(--radius-pill);color:var(--muted);transition:color .15s var(--ease)}.segment-item:hover{color:var(--fg-secondary)}.segment-item.is-active{color:var(--fg)}.segment-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.segment-pill{position:absolute;inset:0;z-index:0;background:#ffffff14;border-radius:var(--radius-pill)}.segment-label{position:relative;z-index:1}.card{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-6);background:#ffffff05;border:1px solid var(--border);border-radius:var(--radius-card);transition:background-color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease);height:100%}a.card:hover,.card-link:hover .card{background:#ffffff0d;border-color:#ffffff24}.grid{display:grid;gap:var(--s-4)}@media(min-width:700px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}}.hero{position:relative;padding-block:clamp(4rem,12vw,8.5rem) clamp(3rem,8vw,5.5rem);overflow:clip}.hero:before{content:"";position:absolute;inset:-20% -10% auto;height:70%;background:radial-gradient(55% 65% at 28% 0%,color-mix(in oklab,var(--accent) 15%,transparent) 0%,transparent 72%);filter:blur(26px);opacity:.4;pointer-events:none;z-index:0}.hero>*{position:relative;z-index:1}.hero-title{white-space:pre-line;margin-top:var(--s-4)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-8)}.section-border{border-top:1px solid var(--border-subtle)}.prose{max-width:var(--measure);font-size:1.0625rem;line-height:1.8;color:var(--fg-secondary)}.prose>*+*{margin-top:1.15em}.prose h2,.prose h3,.prose h4{font-family:var(--font-sans);letter-spacing:-.01em}.prose h2{margin-top:2.4em;margin-bottom:.1em;font-size:1.45rem;font-weight:700;scroll-margin-top:calc(var(--header-h) + 1rem)}.prose h3{margin-top:1.9em;margin-bottom:.1em;font-size:1.18rem;font-weight:650;color:var(--fg);scroll-margin-top:calc(var(--header-h) + 1rem)}.prose p,.prose li{color:var(--fg-secondary)}.prose strong{color:var(--fg);font-weight:700;background-image:linear-gradient(to top,var(--marker) 0,var(--marker) 44%,transparent 44%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .06em;border-radius:2px}.prose a{color:var(--accent);font-weight:510;text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--accent) 38%,transparent);text-underline-offset:3px;transition:color .16s var(--ease),text-decoration-color .16s var(--ease)}.prose a:hover{color:var(--accent-hover);text-decoration-color:var(--accent-hover)}.prose ul,.prose ol{padding-left:1.3em}.prose li{padding-left:.2em}.prose li::marker{color:color-mix(in oklab,var(--accent) 70%,var(--muted))}.prose li+li{margin-top:.45em}.prose blockquote{border-left:2px solid color-mix(in oklab,var(--accent) 50%,transparent);padding:.15em 0 .15em 1.15em;color:var(--fg-secondary);font-style:normal}.prose blockquote p{color:var(--fg-secondary)}.prose .takeaway{margin:1.6em 0;padding:1.05em 1.25em;border-radius:var(--radius-panel);background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 12%,transparent),color-mix(in oklab,var(--accent) 4%,transparent))}.prose .takeaway-k{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.4em}.prose .takeaway>:not(.takeaway-k){color:var(--fg);font-weight:590}.prose .takeaway>*+*{margin-top:.6em}.prose .callout{margin:1.4em 0;padding:.95em 1.15em;border-radius:var(--radius-panel);background:color-mix(in oklab,var(--accent) 7%,transparent);color:var(--fg-secondary)}.prose .callout-warn{background:#ff6b6b1a;color:#eccfcf}.prose .callout-warn p{color:#eccfcf}.prose .callout-ic{display:inline-flex;align-items:center;gap:.4em;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--accent);margin-bottom:.45em}.prose .callout-warn .callout-ic{color:#ff6b6b}.prose .callout-ic svg{display:block}.prose .callout>*+*{margin-top:.5em}.prose .callout p{color:var(--fg-secondary)}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.12em .4em}.prose pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--s-4);overflow-x:auto;font-size:.875rem;line-height:1.6}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose pre span[style*="#6A737D"],.prose pre span[style*="#6a737d"]{color:#9aa4af!important}.prose img{border-radius:var(--radius-card);border:1px solid var(--border)}.notice{display:flex;gap:var(--s-3);padding:var(--s-4);background:#ffffff05;border:1px solid var(--border);border-radius:var(--radius-card);font-size:.92rem;color:var(--muted)}.notice svg{flex:none;color:var(--warn);margin-top:.15rem}.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}.reveal.is-in,.no-js .reveal{opacity:1;transform:none}.no-js .card-link,.no-js [data-motion-reveal]{opacity:1!important;transform:none!important}.hero-reveal{opacity:1;animation:hero-in .55s var(--ease) backwards;animation-delay:var(--reveal-delay, 0ms)}@keyframes hero-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.hero-reveal{animation:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.flow>*+*{margin-top:var(--s-6)}.eyebrow-row{display:flex;align-items:center;gap:var(--s-3)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:.85rem;color:var(--muted)}.dot:before{content:"·";margin-right:.75rem;color:var(--faint)}.dot-bg[data-astro-cid-56bzma7l]{position:fixed;inset:0;z-index:-1;pointer-events:none}.dot-bg[data-astro-cid-56bzma7l] canvas[data-astro-cid-56bzma7l]{display:block;width:100%;height:100%}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.avatar[data-astro-cid-vjqwbl62]{border-radius:50%;object-fit:cover;object-position:62% 30%;display:block;flex:none;box-shadow:0 0 0 1.5px color-mix(in oklab,var(--accent-strong) 70%,transparent)}.sidebar[data-astro-cid-bhtsftca]{display:flex;flex-direction:column;background:transparent;border-right:0;padding:var(--s-8) var(--s-4) var(--s-6)}.brand[data-astro-cid-bhtsftca]{display:flex;align-items:center;gap:.55rem;padding:0 .6rem var(--s-8);color:var(--fg);font-weight:590;font-size:1.05rem;letter-spacing:-.01em;line-height:1}.brand-text[data-astro-cid-bhtsftca]{display:inline-flex;align-items:baseline;gap:.28rem}.brand-suffix[data-astro-cid-bhtsftca]{color:color-mix(in oklab,var(--fg-secondary) 80%,var(--muted));font-size:.78rem;font-weight:510}.sidebar-scroll[data-astro-cid-bhtsftca]{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.sidebar-scroll[data-astro-cid-bhtsftca]::-webkit-scrollbar{display:none}.nav-group[data-astro-cid-bhtsftca]+.nav-group[data-astro-cid-bhtsftca],.nav-tree[data-astro-cid-bhtsftca],.nav-recent[data-astro-cid-bhtsftca]{margin-top:var(--s-8)}.nav-group-label[data-astro-cid-bhtsftca]{font-size:.7rem;font-weight:590;letter-spacing:.11em;text-transform:uppercase;color:color-mix(in oklab,var(--muted) 70%,var(--fg));padding:0 .6rem;margin-bottom:var(--s-2)}.nav-group-label[data-astro-cid-bhtsftca].accent{color:var(--accent)}.nav-cat[data-astro-cid-bhtsftca]{font-size:.7rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:color-mix(in oklab,var(--fg-secondary) 70%,var(--muted));padding:0 .6rem;margin-bottom:var(--s-2)}.nav-list[data-astro-cid-bhtsftca],.recent-list[data-astro-cid-bhtsftca]{list-style:none;padding:0;display:flex;flex-direction:column;gap:.05rem}.nav-item[data-astro-cid-bhtsftca]{display:block;padding:.38rem .6rem;border-radius:var(--radius);color:color-mix(in oklab,var(--fg-secondary) 82%,var(--muted));font-size:.925rem;font-weight:560;line-height:1.5;transition:color .15s var(--ease),background-color .15s var(--ease)}.nav-item[data-astro-cid-bhtsftca]:hover{color:var(--fg);background:#ffffff09}.nav-item[data-astro-cid-bhtsftca].active{color:var(--accent);font-weight:650;background:color-mix(in oklab,var(--accent) 14%,transparent)}.nav-subgroup[data-astro-cid-bhtsftca]+.nav-subgroup[data-astro-cid-bhtsftca]{margin-top:var(--s-5)}.nav-tree[data-astro-cid-bhtsftca] .nav-list[data-astro-cid-bhtsftca]{gap:.2rem}.tree-item[data-astro-cid-bhtsftca]{font-size:.88rem;color:var(--fg-secondary)}.recent-list[data-astro-cid-bhtsftca]{gap:.45rem}.recent-link[data-astro-cid-bhtsftca]{display:flex;flex-direction:column;gap:.18rem;padding:.5rem .6rem;border-radius:var(--radius);color:var(--fg-secondary);transition:background-color .15s var(--ease),color .15s var(--ease)}.recent-link[data-astro-cid-bhtsftca]:hover{background:#ffffff09;color:var(--fg)}.recent-title[data-astro-cid-bhtsftca]{font-size:.86rem;line-height:1.35}.recent-track[data-astro-cid-bhtsftca]{color:var(--muted);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.04em}.sidebar-foot[data-astro-cid-bhtsftca]{padding-top:var(--s-6)}.side-cta[data-astro-cid-bhtsftca]{width:100%;justify-content:space-between}.site-footer[data-astro-cid-sz7xmlte]{margin-top:var(--s-24);border-top:1px solid var(--border-subtle);background:var(--surface);padding-block:var(--s-12) var(--s-6)}.footer-inner[data-astro-cid-sz7xmlte]{display:grid;gap:var(--s-8);grid-template-columns:1fr}@media(min-width:700px){.footer-inner[data-astro-cid-sz7xmlte]{grid-template-columns:1.6fr 1fr 1.2fr;gap:var(--s-12)}}.brand[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.45rem;color:var(--fg);font-weight:590;font-size:1.0625rem}.brand-suffix[data-astro-cid-sz7xmlte]{color:var(--muted);font-size:.85rem}.footer-tagline[data-astro-cid-sz7xmlte]{margin-top:var(--s-3);color:var(--fg-secondary);max-width:30ch}.footer-draft[data-astro-cid-sz7xmlte]{margin-top:var(--s-3);font-size:.72rem;color:var(--muted);letter-spacing:.02em;max-width:36ch}.footer-nav[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte],.footer-connect[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin-top:var(--s-4);display:flex;flex-direction:column;gap:.6rem}.footer-nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte],.connect-link[data-astro-cid-sz7xmlte]{color:var(--fg-secondary);font-size:.925rem}.footer-nav[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover,.connect-link[data-astro-cid-sz7xmlte]:hover{color:var(--fg)}.connect-link[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.5rem}.footer-bottom[data-astro-cid-sz7xmlte]{margin-top:var(--s-12);padding-top:var(--s-6);border-top:1px solid var(--border-subtle)}.footer-bottom[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{font-size:.78rem;color:var(--muted);letter-spacing:.02em}.m-brand[data-astro-cid-37fxchfa]{display:inline-flex;align-items:center;gap:.5rem;color:var(--fg);font-weight:590;font-size:1rem}.m-brand-text[data-astro-cid-37fxchfa]{display:inline-flex;align-items:baseline;gap:.28rem}.m-suffix[data-astro-cid-37fxchfa]{color:var(--muted);font-size:.8rem}.m-toggle[data-astro-cid-37fxchfa]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);border:1px solid var(--border);color:var(--fg);cursor:pointer}
