@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css";
@import "https://fonts.googleapis.com/css2?family=Gowun+Dodum&family=IBM+Plex+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", sans-serif;--font-plex:"IBM Plex Sans KR", var(--font-sans);--font-gowun:"Gowun Dodum", var(--font-sans);--font-serif:"Noto Serif KR", ui-serif, Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-heading:var(--font-sans);--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-16:16px;--fs-17:17px;--fs-18:18px;--fs-20:20px;--fs-24:24px;--fs-28:28px;--fs-32:32px;--fs-40:40px;--fs-48:48px;--fs-56:56px;--fs-64:64px;--fs-72:72px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;--sp-10:64px;--sp-11:80px;--sp-12:96px;--sp-13:128px;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-full:999px;--bg:#fafaf7;--bg-elev:#fff;--surface:#fff;--surface-2:#f4f4f0;--surface-3:#ecece6;--border:#0a0a0a14;--border-strong:#0a0a0a29;--text:#0a0a0a;--text-2:#3f3f3f;--text-3:#6b6b6b;--text-4:#9a9a9a;--text-on-accent:#fff;--accent:#ff5a1f;--accent-soft:#ff5a1f1a;--accent-strong:#e84e14;--shadow-xs:0 1px 2px #0a0a0a0a;--shadow-sm:0 2px 8px #0a0a0a0a, 0 1px 2px #0a0a0a08;--shadow-md:0 8px 24px #0a0a0a0f, 0 2px 6px #0a0a0a0a;--shadow-lg:0 24px 48px #0a0a0a14, 0 4px 12px #0a0a0a0a;--container:1280px;--container-narrow:760px;--header-h:64px}.theme-dark{--bg:#0a0a0a;--bg-elev:#111;--surface:#141414;--surface-2:#1a1a1a;--surface-3:#232323;--border:#ffffff14;--border-strong:#ffffff29;--text:#f5f5f2;--text-2:#c7c7c2;--text-3:#8a8a86;--text-4:#5f5f5c;--accent-soft:#ff5a1f24;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 2px 8px #0000004d, 0 1px 2px #0003;--shadow-md:0 8px 24px #0006, 0 2px 6px #0000004d;--shadow-lg:0 24px 48px #00000080, 0 4px 12px #0000004d}.accent-orange{--accent:#ff5a1f;--accent-soft:#ff5a1f1f;--accent-strong:#e84e14}.accent-blue{--accent:#2e6bff;--accent-soft:#2e6bff1f;--accent-strong:#1e5be6}.accent-green{--accent:#16a34a;--accent-soft:#16a34a1f;--accent-strong:#128a3e}.accent-violet{--accent:#7c3aed;--accent-soft:#7c3aed1f;--accent-strong:#6a2edc}.accent-ink{--accent:#0a0a0a;--accent-soft:#0a0a0a14;--accent-strong:#000;--text-on-accent:#fafaf7}.theme-dark.accent-ink{--accent:#f5f5f2;--accent-soft:#ffffff1a;--accent-strong:#fff;--text-on-accent:#0a0a0a}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:var(--fs-16);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em;font-feature-settings:"ss01", "ss02";line-height:1.6;transition:background-color .22s,color .22s}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}input,textarea,select{color:inherit;font-family:inherit}.heading{font-family:var(--font-heading);letter-spacing:-.025em;color:var(--text);text-wrap:balance;font-weight:700;line-height:1.18}.font-mono{font-family:var(--font-mono)}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-weight:500}.container{width:100%;max-width:var(--container);padding:0 var(--sp-6);margin:0 auto}@media (min-width:768px){.container{padding:0 var(--sp-8)}}.btn{align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-5);border-radius:var(--r-full);font-size:var(--fs-14);letter-spacing:-.01em;white-space:nowrap;font-weight:600;transition:all .16s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover{background:var(--accent-strong);transform:translateY(-1px)}.btn-ghost{background:var(--surface-2);color:var(--text)}.btn-ghost:hover{background:var(--surface-3)}.btn-outline{color:var(--text);border:1px solid var(--border-strong);background:0 0}.btn-outline:hover{background:var(--surface-2)}.btn-sm{height:32px;padding:0 var(--sp-4);font-size:var(--fs-13)}.btn-lg{height:48px;padding:0 var(--sp-6);font-size:var(--fs-15)}.chip{align-items:center;gap:var(--sp-2);height:28px;padding:0 var(--sp-3);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-13);white-space:nowrap;border:1px solid #0000;font-weight:500;transition:all .16s;display:inline-flex}.chip:hover{background:var(--surface-3);color:var(--text)}.chip.is-active{background:var(--text);color:var(--bg)}.chip-accent{background:var(--accent-soft);color:var(--accent)}.chip-outline{border-color:var(--border);color:var(--text-2);background:0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:all .22s;overflow:hidden}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.img-ph{background:repeating-linear-gradient(135deg, var(--surface-2) 0 14px, var(--surface-3) 14px 15px);position:relative;overflow:hidden}.img-ph:after{content:attr(data-label);font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-3);letter-spacing:.05em;background:var(--bg);border-radius:var(--r-xs);border:1px solid var(--border);white-space:nowrap;padding:4px 10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.divider{background:var(--border);width:100%;height:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-4)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.text-4{color:var(--text-4)}.accent-text{color:var(--accent)}.grid{gap:var(--sp-6);display:grid}.flex{display:flex}.row{align-items:center;display:flex}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.gap-8{gap:var(--sp-8)}.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}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.36s cubic-bezier(.2,.7,.2,1) both fadeUp}.prose{color:var(--text)}.prose>:first-child{margin-top:0}.prose p{font-size:var(--fs-18);color:var(--text);letter-spacing:-.005em;text-wrap:pretty;word-break:keep-all;margin:0 0 24px;line-height:1.85}.prose h2{font-family:var(--font-heading);font-size:var(--fs-28);letter-spacing:-.025em;margin:64px 0 20px;scroll-margin-top:96px;font-weight:700;line-height:1.3}.prose h3{font-family:var(--font-heading);font-size:var(--fs-20);margin:40px 0 14px;scroll-margin-top:96px;font-weight:700;line-height:1.35}.prose strong{color:var(--text);font-weight:700}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1.5px}.prose ul,.prose ol{margin:0 0 24px;padding-left:22px}.prose li{font-size:var(--fs-18);word-break:keep-all;margin:0 0 8px;line-height:1.8}.prose blockquote{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:var(--r-sm);color:var(--text-2);margin:28px 0;padding:14px 20px}.prose img{border-radius:var(--r-md);max-width:100%;height:auto;margin:24px auto;display:block}.prose figure{margin:28px 0}.prose figure img{border-radius:var(--r-md);max-width:100%;height:auto;margin:0 auto;display:block}.prose figcaption{font-size:var(--fs-13);color:var(--text-3);text-align:center;margin-top:8px}.prose table{border-collapse:collapse;width:100%;font-size:var(--fs-14);border:1px solid var(--border);border-radius:var(--r-md);margin:32px 0;overflow:hidden}.prose thead{background:var(--surface-2)}.prose th{font-size:var(--fs-13);color:var(--text-2);text-align:left;padding:12px 16px;font-weight:600}.prose td{font-size:var(--fs-14);color:var(--text);border-top:1px solid var(--border);padding:12px 16px}.prose pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--text-2);margin:24px 0;padding:20px 24px;font-size:13.5px;line-height:1.7;overflow-x:auto}.prose code{font-family:var(--font-mono);font-size:.92em}
