.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}.header[data-astro-cid-nen7h5rs]{z-index:100;height:var(--header-height);transition:background-color var(--duration-normal) var(--ease-default), backdrop-filter var(--duration-normal) var(--ease-default), border-color var(--duration-normal) var(--ease-default);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.header--scrolled[data-astro-cid-nen7h5rs]{background:var(--color-header-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom-color:var(--color-border)}.header__nav[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;height:100%;display:flex}.header__logo[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text-primary);letter-spacing:-.02em;transition:opacity var(--duration-fast) var(--ease-default);display:flex}.header__logo[data-astro-cid-nen7h5rs]:hover{opacity:.8}.header__logo-dot[data-astro-cid-nen7h5rs]{background:var(--color-accent);border-radius:50%;width:8px;height:8px;display:inline-block}.header__right[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-6);display:flex}.header__links[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-8);display:flex}.header__link[data-astro-cid-nen7h5rs]{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-tertiary);padding:var(--space-2) 0;transition:color var(--duration-fast) var(--ease-default);position:relative}.header__link[data-astro-cid-nen7h5rs]:after{content:"";background:var(--color-accent);border-radius:var(--radius-full);width:0;height:2px;transition:width var(--duration-normal) var(--ease-default);position:absolute;bottom:0;left:0}.header__link[data-astro-cid-nen7h5rs]:hover{color:var(--color-text-primary)}.header__link[data-astro-cid-nen7h5rs]:hover:after{width:100%}.header__link--active[data-astro-cid-nen7h5rs]{color:var(--color-text-primary)}.header__link--active[data-astro-cid-nen7h5rs]:after{width:100%}.theme-toggle[data-astro-cid-nen7h5rs]{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text-tertiary);transition:color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default);justify-content:center;align-items:center;display:flex}.theme-toggle[data-astro-cid-nen7h5rs]:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.theme-toggle__icon[data-astro-cid-nen7h5rs]{display:inline-block}.theme-toggle__sun[data-astro-cid-nen7h5rs]{display:block}.theme-toggle__moon[data-astro-cid-nen7h5rs],[data-theme=light] .theme-toggle__sun[data-astro-cid-nen7h5rs]{display:none}[data-theme=light] .theme-toggle__moon[data-astro-cid-nen7h5rs]{display:block}@media (width<=768px){.header__links[data-astro-cid-nen7h5rs]{gap:var(--space-6)}}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--color-border);padding:var(--space-8) 0}.footer__inner[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;display:flex}.footer__copyright[data-astro-cid-jo6i4kqk]{font-size:var(--text-sm);color:var(--color-text-muted)}.footer__links[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-4);display:flex}.footer__link[data-astro-cid-jo6i4kqk]{color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-default);padding:var(--space-2);border-radius:var(--radius-sm);justify-content:center;align-items:center;display:flex}.footer__link[data-astro-cid-jo6i4kqk]:hover{color:var(--color-text-primary)}@media (width<=768px){.footer__inner[data-astro-cid-jo6i4kqk]{gap:var(--space-4);flex-direction:column}}:root{--color-bg-primary:#0e0e0e;--color-bg-secondary:#1a1a1a;--color-bg-tertiary:#252525;--color-bg-elevated:#2a2a2a;--color-bg-hover:#333;--color-text-primary:#f5f5f7;--color-text-secondary:#d4d4d8;--color-text-tertiary:#a1a1aa;--color-text-muted:#8f8f9d;--color-accent:#3182f6;--color-accent-hover:#1b6cf2;--color-accent-subtle:#3182f61f;--color-border:#ffffff0f;--color-border-hover:#ffffff1f;--color-success:#34d399;--color-warning:#fbbf24;--color-error:#f87171;--font-sans:"Pretendard Variable", "Inter", -apple-system, "BlinkMacSystemFont", system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--text-5xl:3rem;--leading-tight:1.3;--leading-normal:1.6;--leading-relaxed:1.8;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--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;--max-width:720px;--max-width-wide:1080px;--header-height:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #3182f626;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--color-header-glass:#0e0e0ecc}[data-theme=light]{--color-bg-primary:#fafafa;--color-bg-secondary:#f0f0f0;--color-bg-tertiary:#e5e5e5;--color-bg-elevated:#ebebeb;--color-bg-hover:#dedede;--color-text-primary:#171717;--color-text-secondary:#404040;--color-text-tertiary:#525252;--color-text-muted:#6b7280;--color-accent:#1b64da;--color-accent-hover:#1556c0;--color-accent-subtle:#1b64da1a;--color-border:#00000014;--color-border-hover:#00000026;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001a;--shadow-glow:0 0 20px #1b64da1a;--color-header-glass:#fafafacc}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;text-size-adjust:100%;scrollbar-gutter:stable;font-size:16px}body{font-family:var(--font-sans);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-normal) var(--ease-default), color var(--duration-normal) var(--ease-default);overflow-x:hidden}a{color:inherit;text-decoration:none}img,video,svg{max-width:100%;height:auto;display:block}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}ul,ol{list-style:none}::selection{background:var(--color-accent);color:var(--color-text-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-6);text-align:justify;margin:0 auto}.container--wide{max-width:var(--max-width-wide)}.prose{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.prose>*+*{margin-top:var(--space-6)}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--color-text-primary);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin-top:var(--space-12);margin-bottom:var(--space-4)}.prose h1{font-size:var(--text-3xl)}.prose h2{font-size:var(--text-2xl)}.prose h3{font-size:var(--text-xl)}.prose h4{font-size:var(--text-lg)}.prose :is(h2,h3)[id]{scroll-margin-top:calc(var(--header-height) + var(--space-6))}.prose p{color:var(--color-text-secondary)}.prose a{color:var(--color-accent);text-underline-offset:3px;transition:text-decoration-color var(--duration-fast) var(--ease-default);text-decoration:underline #3182f666}.prose a:hover{text-decoration-color:var(--color-accent)}.prose strong{color:var(--color-text-primary);font-weight:var(--weight-semibold)}.prose em{font-style:italic}.prose ul,.prose ol{padding-left:var(--space-6)}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li{margin-top:var(--space-2)}.prose li::marker{color:var(--color-text-tertiary)}.prose blockquote{border-left:3px solid var(--color-accent);padding:var(--space-4) var(--space-6);background:var(--color-bg-secondary);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-secondary);font-style:italic}.prose pre{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);font-family:var(--font-mono);font-size:var(--text-sm);tab-size:2;line-height:1.7;overflow-x:auto}.prose code{font-family:var(--font-mono);font-size:.9em}.prose :not(pre)>code{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-accent);padding:.15em .4em}.prose img{border-radius:var(--radius-lg);margin-top:var(--space-8);margin-bottom:var(--space-8);cursor:zoom-in;transition:opacity var(--duration-fast) var(--ease-default)}.prose img:hover{opacity:.85}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-12) 0}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.prose th,.prose td{border:1px solid var(--color-border);padding:var(--space-3) var(--space-4);text-align:left}.prose th{background:var(--color-bg-secondary);font-weight:var(--weight-semibold);color:var(--color-text-primary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.animate-fade-in-up{animation:fadeInUp var(--duration-slow) var(--ease-default) both}.animate-fade-in{animation:fadeIn var(--duration-slow) var(--ease-default) both}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}@media (width<=768px){:root{--text-5xl:2.25rem;--text-4xl:2rem;--text-3xl:1.75rem}.container{padding:0 var(--space-5)}.prose{font-size:var(--text-base)}}.main[data-astro-cid-z4jru4n3]{min-height:calc(100vh - var(--header-height) - 120px);padding-top:calc(var(--header-height) + var(--space-8));padding-bottom:var(--space-16)}
