@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";
.header-module__9yYryW__header{z-index:100;height:var(--header-height);-webkit-backdrop-filter:blur(12px);background-color:#0a0a0ad9;align-items:center;padding:0;transition:background-color .25s cubic-bezier(.4,0,.2,1),padding .35s cubic-bezier(.4,0,.2,1),-webkit-backdrop-filter .35s cubic-bezier(.4,0,.2,1),backdrop-filter .35s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;right:0}[data-theme=light] .header-module__9yYryW__header{background-color:#fafafae0}.header-module__9yYryW__header[data-scrolled=true]{-webkit-backdrop-filter:none;padding:var(--space-3) var(--space-6) 0;background-color:#0000}[data-theme=light] .header-module__9yYryW__header[data-scrolled=true]{background-color:#0000}.header-module__9yYryW__headerInner{width:100%;height:100%;max-width:var(--container-max);padding:0 var(--space-6);box-shadow:none;will-change:border-radius, background-color;background-color:#0000;border-radius:0;justify-content:space-between;align-items:center;margin:0 auto;transition:background-color .35s cubic-bezier(.4,0,.2,1),border-radius .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1),max-width .35s cubic-bezier(.4,0,.2,1),padding .35s cubic-bezier(.4,0,.2,1),-webkit-backdrop-filter .35s cubic-bezier(.4,0,.2,1),backdrop-filter .35s cubic-bezier(.4,0,.2,1);display:flex}.header-module__9yYryW__header[data-scrolled=false] .header-module__9yYryW__headerInner{max-width:var(--container-max);padding:0 var(--space-6);-webkit-backdrop-filter:none;box-shadow:none;background-color:#0000;border-radius:0}.header-module__9yYryW__header[data-scrolled=true] .header-module__9yYryW__headerInner{max-width:720px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);-webkit-backdrop-filter:blur(16px);background-color:#121212e0;border-radius:9999px;box-shadow:0 4px 24px #0000004d,0 1px 4px #0003}[data-theme=light] .header-module__9yYryW__header[data-scrolled=true] .header-module__9yYryW__headerInner{background-color:#fcfcfce6;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a}.header-module__9yYryW__headerLogo{align-items:center;gap:var(--space-2);font-weight:var(--font-bold);font-size:var(--text-base);color:var(--color-text-primary);letter-spacing:-.01em;transition:color var(--transition-fast);white-space:nowrap;display:flex}.header-module__9yYryW__headerLogoImage{object-fit:contain;width:32px;height:32px;display:block}.header-module__9yYryW__headerLogo:hover{color:var(--color-accent)}.header-module__9yYryW__headerNav{align-items:center;gap:var(--space-1);display:flex}.header-module__9yYryW__headerNavLink{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);border-radius:var(--radius-md);transition:color var(--transition-fast), background-color var(--transition-fast);white-space:nowrap}.header-module__9yYryW__headerNavLink:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.header-module__9yYryW__headerNavLink[data-active=true]{color:var(--color-accent);background-color:var(--color-accent-dim)}.header-module__9yYryW__headerActions{align-items:center;gap:var(--space-2);display:flex}.header-module__9yYryW__headerIconBtn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.header-module__9yYryW__headerIconBtn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover);border-color:var(--color-border)}.header-module__9yYryW__mobileMenuBtn{display:none}.header-module__9yYryW__mobileNav{top:var(--header-height);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:var(--space-4);gap:var(--space-1);z-index:99;visibility:hidden;opacity:0;pointer-events:none;flex-direction:column;transition:opacity .2s,transform .2s,visibility .2s;display:flex;position:fixed;left:0;right:0;transform:translateY(-8px)}.header-module__9yYryW__mobileNav[data-open=true]{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}.header-module__9yYryW__mobileNavScrolled{top:var(--header-height);left:var(--space-4);right:var(--space-4);border-radius:var(--radius-lg)}@keyframes header-module__9yYryW__mobileNavIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.header-module__9yYryW__mobileNavLink{padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);transition:color var(--transition-fast), background-color var(--transition-fast);display:flex}.header-module__9yYryW__mobileNavLink:hover,.header-module__9yYryW__mobileNavLink[data-active=true]{color:var(--color-accent);background-color:var(--color-accent-dim)}@media (max-width:768px){.header-module__9yYryW__headerNav{display:none}.header-module__9yYryW__mobileMenuBtn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);transition:color var(--transition-fast);justify-content:center;align-items:center;display:flex}.header-module__9yYryW__mobileMenuBtn:hover{color:var(--color-text-primary)}}
.theme-module__oJ_kwW__btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.theme-module__oJ_kwW__btn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover);border-color:var(--color-border)}
.search-module__Fggsuq__trigger{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.search-module__Fggsuq__trigger:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover);border-color:var(--color-border)}.search-module__Fggsuq__overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;justify-content:center;align-items:flex-start;padding-top:15vh;animation:.15s search-module__Fggsuq__fadeIn;display:flex;position:fixed;inset:0}.search-module__Fggsuq__modal{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:560px;box-shadow:var(--shadow-xl);margin-inline:var(--space-4);animation:.2s search-module__Fggsuq__fadeInUp;overflow:hidden}.search-module__Fggsuq__inputWrap{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.search-module__Fggsuq__inputIcon{color:var(--color-text-tertiary);flex-shrink:0}.search-module__Fggsuq__input{font-size:var(--text-base);color:var(--color-text-primary);font-family:var(--font-sans), monospace;background:0 0;border:none;outline:none;flex:1}.search-module__Fggsuq__input::placeholder{color:var(--color-text-muted)}.search-module__Fggsuq__closeBtn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-tertiary);border:1px solid var(--color-border);transition:color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.search-module__Fggsuq__closeBtn:hover{color:var(--color-text-primary)}.search-module__Fggsuq__results{max-height:360px;padding:var(--space-2);overflow-y:auto}.search-module__Fggsuq__resultItem{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-align:left;transition:background-color var(--transition-fast);flex-direction:column;gap:2px;display:flex}.search-module__Fggsuq__resultItem:hover{background-color:var(--color-bg-hover)}.search-module__Fggsuq__resultCategory{font-size:var(--text-xs);color:var(--color-accent);font-weight:var(--font-semibold)}.search-module__Fggsuq__resultTitle{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);line-height:1.4}.search-module__Fggsuq__resultSummary{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.search-module__Fggsuq__empty{padding:var(--space-8);text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary)}.search-module__Fggsuq__hint{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted)}.search-module__Fggsuq__hint span{font-family:var(--font-mono), monospace;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 5px}
.footer-module__ErOclq__footer{border-top:1px solid var(--color-border);background-color:var(--color-bg-secondary);padding-block:var(--space-12) var(--space-8);margin-top:var(--space-16)}.footer-module__ErOclq__footerInner{gap:var(--space-8);padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border);grid-template-columns:1.5fr 1fr 1fr 1fr;display:grid}.footer-module__ErOclq__footerBrand{gap:var(--space-3);flex-direction:column;display:flex}.footer-module__ErOclq__footerLogoMark{width:fit-content;display:block}.footer-module__ErOclq__footerLogoMarkImage{object-fit:contain;width:96px;height:96px;display:block}.footer-module__ErOclq__footerLogoMarkDark{display:block}.footer-module__ErOclq__footerLogoMarkLight,[data-theme=light] .footer-module__ErOclq__footerLogoMarkDark{display:none}[data-theme=light] .footer-module__ErOclq__footerLogoMarkLight{display:block}.footer-module__ErOclq__footerLogo{width:fit-content;display:block}.footer-module__ErOclq__footerLogoText{font-weight:var(--font-bold);font-size:var(--text-base);color:var(--color-text-primary);letter-spacing:-.01em;transition:color var(--transition-fast)}.footer-module__ErOclq__footerLogo:hover .footer-module__ErOclq__footerLogoText{color:var(--color-accent)}.footer-module__ErOclq__footerDescription{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);max-width:220px}.footer-module__ErOclq__footerSocial{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.footer-module__ErOclq__footerSocialLink{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-tertiary);border:1px solid var(--color-border);transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);justify-content:center;align-items:center;display:flex}.footer-module__ErOclq__footerSocialLink:hover{color:var(--color-accent);border-color:var(--color-accent-border);background-color:var(--color-accent-dim)}.footer-module__ErOclq__footerSection{gap:var(--space-3);flex-direction:column;display:flex}.footer-module__ErOclq__footerSectionTitle{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em}.footer-module__ErOclq__footerLinks{gap:var(--space-2);flex-direction:column;display:flex}.footer-module__ErOclq__footerLink{font-size:var(--text-sm);color:var(--color-text-secondary);transition:color var(--transition-fast)}.footer-module__ErOclq__footerLink:hover{color:var(--color-accent)}.footer-module__ErOclq__footerBottom{padding-top:var(--space-6);justify-content:space-between;align-items:center;display:flex}.footer-module__ErOclq__footerCopyright{font-size:var(--text-xs);color:var(--color-text-tertiary)}.footer-module__ErOclq__footerLicenseBtn{font-size:var(--text-xs);color:var(--color-text-tertiary);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:color var(--transition-fast), border-color var(--transition-fast)}.footer-module__ErOclq__footerLicenseBtn:hover{color:var(--color-accent);border-color:var(--color-accent-border)}.footer-module__ErOclq__backToTop{border-radius:var(--radius-md);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-tertiary);transition:color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:flex}.footer-module__ErOclq__backToTop:hover{color:var(--color-accent);border-color:var(--color-accent-border)}.footer-module__ErOclq__footerSectionAbout{margin-top:var(--space-2);gap:var(--space-2);flex-direction:column;display:flex}.footer-module__ErOclq__footerAboutText{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.6}.footer-module__ErOclq__footerMore{font-size:var(--text-xs);color:var(--color-text-muted);transition:color var(--transition-fast);margin-top:-4px;display:inline-block}.footer-module__ErOclq__footerMore:hover{color:var(--color-accent)}.footer-module__ErOclq__footerBtnGroup{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (max-width:900px){.footer-module__ErOclq__footerInner{gap:var(--space-8);grid-template-columns:1fr 1fr}}@media (max-width:600px){.footer-module__ErOclq__footerInner{gap:var(--space-6);grid-template-columns:1fr}.footer-module__ErOclq__footerBottom{gap:var(--space-3);flex-direction:column;align-items:flex-start}}
:root{--color-bg-primary:#0a0a0a;--color-bg-secondary:#111;--color-bg-tertiary:#161616;--color-bg-elevated:#1a1a1a;--color-bg-hover:#1f1f1f;--color-bg-card:#121212;--color-border:#ffffff0f;--color-border-hover:#ffffff1f;--color-text-primary:#f0f0f0;--color-text-secondary:#888;--color-text-tertiary:#555;--color-text-muted:#404040;--color-accent:#e2e8f0;--color-accent-hover:#fff;--color-accent-dim:#e2e8f014;--color-accent-border:#e2e8f026;--color-success:#3ecf8e;--color-warning:#f0a500;--color-danger:#e5484d;--color-tag-bg:#ffffff0a;--color-tag-border:#ffffff14;--color-tag-text:#888;--color-code-bg:#0d0d0d;--color-code-border:#ffffff0f;--color-inline-code-bg:#ffffff0f;--font-sans:"PretendardVariable", -apple-system, BlinkMacSystemFont, "Malgun Gothic", "맑은 고딕", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.6;--leading-relaxed:1.75;--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;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 32px #0009;--shadow-xl:0 20px 60px #000000b3;--shadow-accent:0 0 24px #e2e8f00f;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--container-max:1200px;--header-height:64px}main{padding-top:var(--header-height);min-height:calc(100vh - 350px)}[data-theme=light]{--color-bg-primary:#fafafa;--color-bg-secondary:#f5f5f5;--color-bg-tertiary:#efefef;--color-bg-elevated:#fff;--color-bg-hover:#f0f0f0;--color-bg-card:#fff;--color-border:#00000014;--color-border-hover:#00000026;--color-text-primary:#111;--color-text-secondary:#555;--color-text-tertiary:#888;--color-text-muted:#aaa;--color-accent:#1a1a1a;--color-accent-hover:#000;--color-accent-dim:#0000000f;--color-accent-border:#0000001f;--color-tag-bg:#0000000a;--color-tag-border:#00000014;--color-tag-text:#555;--color-code-bg:#f6f6f6;--color-code-border:#00000014;--color-inline-code-bg:#0000000f;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 32px #0000001f;--shadow-xl:0 20px 60px #00000026;--shadow-accent:0 0 24px #00000014;--color-accent-on-dark:#e2e8f0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans), monospace;background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:var(--leading-normal);font-weight:var(--font-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base), color var(--transition-base)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:var(--font-sans), monospace;background:0 0;border:none}ul,ol{list-style:none}.container{width:100%;max-width:var(--container-max);padding-inline:var(--space-6);margin-inline:auto}@media (max-width:768px){.container{padding-inline:var(--space-4)}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background-color:var(--color-accent-dim);color:var(--color-accent)}::-webkit-scrollbar{width:6px;height: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)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--color-text-primary)}p{line-height:var(--leading-relaxed);color:var(--color-text-secondary)}code{font-family:var(--font-mono), monospace;font-size:.875em}.skip-link{top:-100%;left:var(--space-4);z-index:9999;padding:var(--space-2) var(--space-4);background:var(--color-accent);color:#fff;border-radius:var(--radius-md);font-weight:var(--font-semibold);transition:top var(--transition-fast);position:absolute}.skip-link:focus{top:var(--space-4)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:.4s both fadeIn}.animate-fadeInUp{animation:.5s both fadeInUp}.skeleton{background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-bg-elevated) 50%, var(--color-bg-tertiary) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
