:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--fg:#1f2328;--fg-muted:#59636e;--bg:#fff;--border:#d1d9e0;--code-bg:#f6f8fa;--surface:#f6f8fa;--link:#0969da}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--fg:#e6edf3;--fg-muted:#9198a1;--bg:#0d1117;--border:#3d444d;--code-bg:#161b22;--surface:#161b22;--link:#4493f8}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--fg);background:var(--bg);word-break:keep-all;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;line-height:1.7}main{max-width:48rem;margin:0 auto;padding:2rem 1rem 4rem}.site-header,.site-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.25rem;max-width:48rem;margin:0 auto;padding:.75rem 1rem;font-size:.9375rem;display:flex}.site-header{border-bottom:1px solid var(--border)}.site-footer{border-top:1px solid var(--border);color:var(--fg-muted)}.site-header nav,.site-footer nav{flex-wrap:wrap;gap:.25rem 1rem;display:flex}.site-header a,.site-footer a{color:inherit;text-decoration:none}.site-header a:hover,.site-footer a:hover{text-decoration:underline}.site-brand{font-size:1.125rem;font-weight:700}.auth-nav form{margin:0}.auth-nav button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.auth-nav button:hover{text-decoration:underline}.badge-private{border:1px solid var(--border);vertical-align:middle;color:var(--fg-muted);background:var(--surface);border-radius:999px;margin-left:.5rem;padding:0 .5rem;font-size:.75rem;font-weight:600;line-height:1.5rem;display:inline-block}.login{max-width:24rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-form label{flex-direction:column;gap:.25rem;font-weight:600;display:flex}.login-form input{border:1px solid var(--border);color:inherit;background:var(--bg);font:inherit;border-radius:.375rem;padding:.5rem .75rem;font-weight:400}.login-form button{border:1px solid var(--link);color:var(--bg);background:var(--link);font:inherit;cursor:pointer;border-radius:.375rem;align-self:flex-start;padding:.5rem 1.25rem;font-weight:600}.form-error{color:#d1242f;margin:0}@media (prefers-color-scheme:dark){.form-error{color:#f85149}}.section-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin-top:1.5rem;display:grid}.section-tile{border:1px solid var(--border);color:inherit;background:var(--surface);border-radius:.75rem;flex-direction:column;justify-content:flex-end;gap:.25rem;padding:1rem;text-decoration:none;display:flex}.section-tile:hover{border-color:var(--link)}.section-tile:focus-visible{outline:2px solid var(--link);outline-offset:2px}.section-tile-name{font-weight:600}.section-tile-description{color:var(--fg-muted);font-size:.875rem}.section-tile[data-size=large]{grid-column:span 3;min-height:9rem}.section-tile[data-size=large] .section-tile-name{font-size:1.375rem}.section-tile[data-size=medium]{grid-column:span 2;min-height:6.5rem}.section-tile[data-size=medium] .section-tile-name{font-size:1.125rem}.section-tile[data-size=small]{grid-column:span 3;padding:.75rem 1rem;font-size:.9375rem}@media (max-width:40rem){.section-tile[data-size=large],.section-tile[data-size=medium],.section-tile[data-size=small]{grid-column:span 6;min-height:0}}.legal h2{margin-top:2rem;font-size:1.25rem}a{color:var(--link)}h1,h2,h3{line-height:1.3}.muted{color:var(--fg-muted)}.item-list{margin:0;padding:0;list-style:none}.item-list>li{border-top:1px solid var(--border);padding:1.25rem 0}.item-list>li:first-child{border-top:none}.item-list h2{margin:0 0 .25rem;font-size:1.25rem}.project-meta{color:var(--fg-muted);overflow-wrap:anywhere;flex-wrap:wrap;gap:.25rem 1rem;margin:.25rem 0 .5rem;padding:0;font-size:.9375rem;display:flex}.project-meta>div{gap:.375rem;display:flex}.project-meta dt{font-weight:600}.project-meta dd{margin:0}.tech-stack,.tag-list{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:inline-flex}.tech-stack>li,.tag-list>li{border:1px solid var(--border);border-radius:999px;padding:0 .5rem;font-size:.8125rem}.tag-list a{color:inherit;text-decoration:none}.tag-list a:hover{text-decoration:underline}.blog-post-meta{color:var(--fg-muted);margin:.25rem 0 .5rem;font-size:.9375rem}.blog-post-meta+.tag-list{margin-bottom:.5rem}.tag-filter{margin:0 0 1rem}.tag-list>li.is-active{background:var(--code-bg);border-color:var(--fg-muted);font-weight:600}.pagination{border-top:1px solid var(--border);justify-content:space-between;margin-top:2rem;padding-top:1rem;display:flex}.article-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1rem}.article-header h1{margin:0 0 .5rem;font-size:1.75rem}.project-timestamps{color:var(--fg-muted);margin:.5rem 0 0;font-size:.875rem}.project-images{gap:1rem;margin:0 0 2rem;padding:0;list-style:none;display:grid}.project-images img{border:1px solid var(--border);border-radius:6px;max-width:100%;height:auto;display:block}.prose{overflow-wrap:anywhere}.prose img{max-width:100%;height:auto}.table-wrap{margin:1rem 0;overflow-x:auto}.prose table{border-collapse:collapse}.prose th,.prose td{border:1px solid var(--border);padding:.375rem .75rem}.prose th{background:var(--code-bg)}.prose blockquote{border-left:.25rem solid var(--border);color:var(--fg-muted);margin:1rem 0;padding:0 1rem}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.875em}.prose :not(pre)>code{background:var(--code-bg);border-radius:.375rem;padding:.125rem .375rem}.prose pre{background:var(--code-bg);border-radius:.5rem;margin:1rem 0;padding:1rem;line-height:1.5;overflow-x:auto}.prose pre code{font-size:.875rem}pre.shiki,.shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight);-webkit-text-decoration:var(--shiki-light-text-decoration);text-decoration:var(--shiki-light-text-decoration)}@media (prefers-color-scheme:dark){pre.shiki,.shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);-webkit-text-decoration:var(--shiki-dark-text-decoration);text-decoration:var(--shiki-dark-text-decoration)}}.notice{text-align:center;padding:4rem 1rem}.digest{font-size:.8125rem}
