@font-face{font-family:Pretendard;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/Pretendard-400.woff2) format("woff2")}@font-face{font-family:Pretendard;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/Pretendard-500.woff2) format("woff2")}@font-face{font-family:Pretendard;font-weight:800;font-style:normal;font-display:swap;src:url(/fonts/Pretendard-800.woff2) format("woff2")}@font-face{font-family:Pretendard;font-weight:900;font-style:normal;font-display:swap;src:url(/fonts/Pretendard-900.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexMono-500.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexMono-600.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/IBMPlexMono-700.woff2) format("woff2")}:root{--bg: #E8E6E0;--panel: #F6F4EF;--panel-2: #FBFAF6;--ink: #0E0E0E;--body: #5A5A55;--muted: #87867E;--accent: #1F8A5B;--accent-2: #18794F;--accent-soft: rgba(31, 138, 91, .08);--accent-mid: rgba(31, 138, 91, .16);--rule: #D6D2C8;--rule-soft: #E0DDD4;--ink-inv: #F6F4EF;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "Pretendard", system-ui, -apple-system, sans-serif;--maxw: 920px;--readw: 700px;--sml-bg: var(--bg);--sml-bg-1: var(--panel);--sml-bg-2: var(--panel);--sml-bg-3: var(--bg);--sml-bg-4: var(--rule-soft);--sml-border: var(--rule);--sml-border-bright: var(--rule);--sml-text: var(--ink);--sml-text-dim: var(--body);--sml-text-muted: var(--muted);--sml-accent: var(--accent);--sml-accent-dim: var(--accent-mid);--sml-accent-glow: var(--accent-soft);--sml-purple: var(--accent);--sml-purple-dim: var(--accent-mid);--sml-font-mono: var(--mono);--sml-font-body: var(--sans);--sml-r: 6px;--sml-r-lg: 8px;--sml-r-sm: 4px;--text: var(--ink);--text-muted: var(--muted);--text-dim: var(--body);--border: var(--rule);--font-mono: var(--mono);--font-body: var(--sans);--radius: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:var(--accent-mid);color:var(--ink)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--rule);border:3px solid var(--bg);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}h1,h2,h3,h4,h5,h6{font-family:var(--sans);font-weight:800;line-height:1.25;color:var(--ink);letter-spacing:-.02em}p{color:var(--body);margin-bottom:1.1rem}a{color:var(--accent);text-decoration:none;transition:color .18s}a:hover{color:var(--accent-2)}strong{color:var(--ink);font-weight:700}hr{border:none;border-top:1px solid var(--rule);margin:2rem 0}.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: no-preference){html.anim .reveal{opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.22,.61,.36,1) forwards}html.anim .reveal.d1{animation-delay:.05s}html.anim .reveal.d2{animation-delay:.12s}html.anim .reveal.d3{animation-delay:.19s}html.anim .reveal.d4{animation-delay:.26s}html.anim .reveal.d5{animation-delay:.33s}}@keyframes rise{to{opacity:1;transform:translateY(0)}}.sml-tag,.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 11px;border-radius:999px;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.02em;border:1px solid var(--accent-mid);color:var(--accent);background:var(--accent-soft);white-space:nowrap;text-decoration:none;transition:border-color .18s,background .18s,color .18s}.sml-tag:hover,.tag:hover{border-color:var(--accent);background:var(--accent-mid);color:var(--accent-2);text-decoration:none}.sml-btn,.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--sml-r);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;border:1px solid var(--rule);background:var(--panel);color:var(--body);cursor:pointer;text-decoration:none;transition:border-color .18s,color .18s,background .18s}.sml-btn:hover,.sml-btn.active,.btn:hover,.btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);text-decoration:none}.sml-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.sml-btn-primary:hover{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.sml-code-inline,:not(pre)>code{font-family:var(--mono);font-size:.85em;background:var(--bg);color:var(--accent-2);padding:1px 6px;border-radius:4px;border:1px solid var(--rule)}pre{position:relative;border:1px solid var(--ink);border-radius:var(--sml-r);padding:1.1rem 1.25rem;overflow-x:auto;font-family:var(--mono);font-size:.8125rem;line-height:1.65;margin:1.6rem 0}pre code{font-family:var(--mono);font-size:inherit;background:none;border:none;padding:0;color:inherit}code{font-family:var(--mono)}.card{position:relative;background:var(--panel);border:1px solid var(--rule);border-radius:var(--sml-r-lg);overflow:hidden;transition:border-color .18s,background .18s}.card:hover{border-color:var(--accent);background:var(--panel-2)}.prose{max-width:var(--readw);color:var(--ink);font-size:17.5px;line-height:1.8;letter-spacing:-.003em}@media (min-width: 768px){.prose{font-size:18px}}.prose p{color:#232320;margin-bottom:1.45rem}.prose>p:first-of-type{font-size:1.04em}.prose h2{font-family:var(--sans);font-size:1.55em;font-weight:800;line-height:1.25;letter-spacing:-.025em;color:var(--ink);margin-top:2.6rem;margin-bottom:1rem;padding-bottom:.4rem;border-bottom:2px solid var(--ink)}.prose h2:before{content:none}.prose h3{font-family:var(--sans);font-size:1.22em;font-weight:800;line-height:1.3;letter-spacing:-.02em;color:var(--ink);margin-top:2rem;margin-bottom:.7rem}.prose h3:before{content:"#";font-family:var(--mono);color:var(--accent);font-weight:700;margin-right:.4em}.prose h4{font-family:var(--sans);font-size:1.05em;font-weight:700;color:var(--ink);margin-top:1.6rem;margin-bottom:.5rem}.prose ul,.prose ol{padding-left:1.4rem;margin-bottom:1.45rem;color:#232320}.prose li{margin-bottom:.5rem;line-height:1.75}.prose li::marker{color:var(--accent)}.prose ul ul,.prose ol ol,.prose ul ol,.prose ol ul{margin-top:.5rem;margin-bottom:.5rem}.prose blockquote{border-left:3px solid var(--accent);padding:.6rem 0 .6rem 1.25rem;margin:1.7rem 0;background:var(--accent-soft);border-radius:0 6px 6px 0;color:var(--body);font-style:normal}.prose blockquote p{margin-bottom:.5rem;color:var(--body)}.prose blockquote p:last-child{margin-bottom:0}.prose img{border-radius:var(--sml-r-lg);border:1px solid var(--rule);max-width:100%;height:auto;margin:1.7rem 0}.prose a{color:var(--accent-2);font-weight:500;text-decoration:underline;text-decoration-color:var(--accent-mid);text-underline-offset:3px;text-decoration-thickness:1.5px}.prose a:hover{text-decoration-color:var(--accent)}.prose hr{border-top:1px solid var(--rule);margin:2.4rem 0}.prose table{width:100%;border-collapse:collapse;margin:1.7rem 0;font-size:.92em}.prose th,.prose td{padding:10px 14px;border:1px solid var(--rule);text-align:left}.prose th{background:var(--bg);color:var(--ink);font-weight:700;font-family:var(--mono);font-size:.85em;letter-spacing:.02em}.prose tbody tr:nth-child(2n) td{background:var(--panel)}.prose strong{color:var(--ink)}.animate-in{animation:fade-in-up .5s ease both}.text-mono{font-family:var(--mono)}.text-accent{color:var(--accent)}.text-muted{color:var(--muted)}.text-dim{color:var(--body)}.sml-mono{font-family:var(--mono)}.sml-text{color:var(--ink)}.sml-dim{color:var(--body)}.sml-muted{color:var(--muted)}.sml-accent{color:var(--accent)}@media (max-width: 768px){.hide-mobile{display:none!important}}@media (min-width: 769px){.hide-desktop{display:none!important}}.site-header[data-astro-cid-37fxchfa]{position:sticky;top:0;z-index:100;background:var(--bg);border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}.header-inner[data-astro-cid-37fxchfa]{display:flex;align-items:center;justify-content:space-between;max-width:var(--maxw);margin:0 auto;padding:16px 24px;gap:16px}.brand[data-astro-cid-37fxchfa]{display:inline-flex;align-items:baseline;gap:7px;font-family:var(--mono);font-weight:700;font-size:16px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none}.brand[data-astro-cid-37fxchfa]:hover{color:var(--ink)}.brand-slash[data-astro-cid-37fxchfa]{color:var(--accent);letter-spacing:0}.brand-sub[data-astro-cid-37fxchfa]{font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--muted);text-transform:lowercase}.topnav[data-astro-cid-37fxchfa]{display:flex;align-items:stretch}.nav-item[data-astro-cid-37fxchfa]{font-family:var(--mono);font-weight:600;font-size:12.5px;letter-spacing:.06em;color:var(--body);text-decoration:none;padding:6px 14px;border-left:1px solid var(--rule);transition:color .15s,background .15s}.nav-item[data-astro-cid-37fxchfa]:first-child{border-left:none}.nav-item[data-astro-cid-37fxchfa]:hover{color:var(--ink);background:var(--accent-soft)}.nav-item--active[data-astro-cid-37fxchfa]{color:var(--accent)}.nav-item[data-astro-cid-37fxchfa]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.site-main[data-astro-cid-37fxchfa]{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:48px 24px 72px}@media (min-width: 768px){.site-main[data-astro-cid-37fxchfa]{padding:56px 40px 88px}}.site-footer[data-astro-cid-37fxchfa]{border-top:1px solid var(--ink);background:var(--bg)}.footer-inner[data-astro-cid-37fxchfa]{max-width:var(--maxw);margin:0 auto;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}@media (min-width: 768px){.footer-inner[data-astro-cid-37fxchfa]{padding:22px 40px}}.foot-l[data-astro-cid-37fxchfa]{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.foot-slash[data-astro-cid-37fxchfa]{color:var(--accent)}.foot-nav[data-astro-cid-37fxchfa]{display:flex;gap:18px;flex-wrap:wrap}.foot-link[data-astro-cid-37fxchfa]{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--body);text-decoration:none;transition:color .15s}.foot-link[data-astro-cid-37fxchfa]:hover{color:var(--accent)}.foot-r[data-astro-cid-37fxchfa]{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted)}@media (max-width: 560px){.header-inner[data-astro-cid-37fxchfa]{flex-direction:column;align-items:flex-start;gap:12px}.topnav[data-astro-cid-37fxchfa]{width:100%}.nav-item[data-astro-cid-37fxchfa]:first-child{padding-left:0}.footer-inner[data-astro-cid-37fxchfa]{justify-content:flex-start}}
