:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#f7f6f2;--raised:#fffefb;--ink:#1d1c19;--muted:#6d6a62;--rule:#dfdcd3;--accent:#1f5d4c;--accent-ink:#f7f6f2;--danger:#a33a2a;--code-bg:#efede6;--ease-out:cubic-bezier(.22, 1, .36, 1);--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#161513;--raised:#1e1d1a;--ink:#eceae4;--muted:#9b978d;--rule:#2e2c28;--accent:#7fc4ae;--accent-ink:#12211c;--danger:#e38a7a;--code-bg:#211f1c}}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);min-height:100dvh;color:var(--ink);word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.site-header{justify-content:space-between;align-items:center;max-width:1080px;margin:0 auto;padding:24px;display:flex}.site-header nav{color:var(--muted);gap:20px;font-size:14px;display:flex}.site-header nav a{text-decoration:none;transition:color .16s ease-out}@media (hover:hover){.site-header nav a:hover{color:var(--ink)}}.wordmark{letter-spacing:-.02em;font-weight:650;text-decoration:none}.page{max-width:720px;margin:0 auto;padding:40px 24px 120px}.page-title{letter-spacing:-.025em;font-size:clamp(28px,5vw,36px);font-weight:650;line-height:1.25}.page-lead{color:var(--muted);margin-top:12px}.tag-row{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-top:28px;font-size:14px;display:flex}.tag-row a{text-decoration:none;transition:color .16s ease-out}.tag-row a[aria-current=page]{color:var(--accent);font-weight:600}@media (hover:hover){.tag-row a:hover{color:var(--ink)}}.post-list{border-top:1px solid var(--rule);margin-top:40px;padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--rule)}.post-link{padding:24px 0;text-decoration:none;display:block}.post-link h2{letter-spacing:-.01em;font-size:19px;font-weight:600;line-height:1.45;transition:color .16s ease-out}@media (hover:hover){.post-link:hover h2{color:var(--accent)}}.post-link p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:15px;display:-webkit-box;overflow:hidden}.meta{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:10px;font-size:13px}.empty{color:var(--muted);padding:56px 0}.post-layout{grid-template-columns:minmax(0,720px) 200px;justify-content:center;gap:48px;max-width:1080px;margin:0 auto;padding:40px 24px 120px;display:grid}.post-head h1{letter-spacing:-.03em;font-size:clamp(30px,5.5vw,40px);font-weight:650;line-height:1.25}.post-head .meta{margin-top:16px;font-size:14px}.post-tags{color:var(--accent);flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:14px;display:flex}.post-tags a{text-decoration:none}@media (hover:hover){.post-tags a:hover{text-decoration:underline}}.toc{color:var(--muted);align-self:start;font-size:13px;line-height:1.5;position:sticky;top:32px}.toc ul{gap:8px;padding:0;list-style:none;display:grid}.toc a{text-decoration:none;transition:color .16s ease-out}@media (hover:hover){.toc a:hover{color:var(--ink)}}.toc .h3{padding-left:12px}@media (max-width:960px){.post-layout{grid-template-columns:minmax(0,720px)}.toc{display:none}}.prose{margin-top:40px;font-size:17px;line-height:1.8}.prose>*+*{margin-top:1.1em}.prose h1,.prose h2,.prose h3,.prose h4{letter-spacing:-.02em;scroll-margin-top:24px;font-weight:650;line-height:1.4}.prose h1{margin-top:2em;font-size:1.7em}.prose h2{margin-top:2em;font-size:1.45em}.prose h3{margin-top:1.7em;font-size:1.2em}.prose h4{margin-top:1.4em;font-size:1.05em}.prose a{color:var(--accent)}.prose img{border-radius:4px;max-width:100%;height:auto;display:block}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.3em}.prose li:has(>input[type=checkbox]){margin-left:-1.4em;list-style:none}.prose blockquote{border-left:2px solid var(--rule);color:var(--muted);padding-left:1em}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.5em 0}.prose code{font-family:var(--mono);background:var(--code-bg);border-radius:3px;padding:.15em .35em;font-size:.88em}.prose pre{background:var(--code-bg);border-radius:6px;padding:16px 18px;font-size:14px;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--rule);text-align:left;padding:8px 12px}.prose th{font-weight:600}.hljs-keyword,.hljs-built_in,.hljs-selector-tag{color:var(--accent)}.hljs-string,.hljs-attr,.hljs-template-variable{color:#8a5a1f}.hljs-comment,.hljs-quote{color:var(--muted);font-style:italic}.hljs-number,.hljs-literal{color:#9a3f55}.hljs-title,.hljs-section{font-weight:600}@media (prefers-color-scheme:dark){.hljs-string,.hljs-attr,.hljs-template-variable{color:#d9b37a}.hljs-number,.hljs-literal{color:#e0a0ae}}input,textarea{font:inherit;color:inherit}.field{background:var(--raised);border:1px solid var(--rule);border-radius:6px;width:100%;padding:9px 12px;transition:border-color .16s ease-out}.field:focus{border-color:var(--accent);outline:none}.btn{font:inherit;color:var(--ink);border:1px solid var(--rule);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:550;text-decoration:none;transition:background-color .16s ease-out,border-color .16s ease-out,transform .12s ease-out;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}@media (hover:hover){.btn:hover:not(:disabled){border-color:var(--muted)}}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}@media (hover:hover){.btn-primary:hover:not(:disabled){border-color:var(--accent);opacity:.92}}.btn-text{color:var(--muted);border:0;padding:2px 0;font-size:13px;font-weight:400}@media (hover:hover){.btn-text:hover:not(:disabled){color:var(--ink)}}.error{color:var(--danger);font-size:14px}.comments{border-top:1px solid var(--rule);margin-top:72px;padding-top:32px}.comments h2{font-size:18px;font-weight:600}.comment-list{margin-top:20px;padding:0;list-style:none}.comment{border-bottom:1px solid var(--rule);padding:16px 0}.comment-head{justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;display:flex}.comment-head b{font-weight:600}.comment-head time{color:var(--muted);margin-left:8px;font-size:13px}.comment p{white-space:pre-wrap;margin-top:6px}.comment-delete{gap:8px;margin-top:10px;display:flex}.comment-delete .field{max-width:200px;padding:5px 10px;font-size:14px}.comment-form{gap:10px;margin-top:24px;display:grid}.comment-ids{grid-template-columns:1fr 1fr;gap:10px;display:grid}.comment-form textarea{resize:vertical;min-height:96px}.comment-foot{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;font-size:13px;display:flex}.login{gap:12px;max-width:320px;margin-top:24px;display:grid}.manage-row{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.manage-row a{font-weight:550;text-decoration:none}.manage-actions{flex:none;align-items:center;gap:12px;display:flex}.badge{color:var(--muted);font-size:12px}.editor-bar{z-index:3;background:var(--paper);justify-content:space-between;align-items:center;gap:12px;padding:10px 24px;display:flex;position:sticky;top:0}.editor-status{color:var(--muted);font-size:13px}.editor-actions{gap:8px;display:flex}.editor-doc{max-width:720px;margin:0 auto;padding:24px 24px 0}.editor-meta{border-bottom:1px solid var(--rule);gap:2px;padding-bottom:16px;display:grid}.title-input{letter-spacing:-.03em;background:0 0;border:0;outline:none;width:100%;padding:4px 0 12px;font-size:clamp(30px,5.5vw,40px);font-weight:650}.prop{grid-template-columns:56px minmax(0,1fr);align-items:center;font-size:14px;display:grid}.prop label{color:var(--muted)}.prop input{background:0 0;border:0;outline:none;width:100%;padding:3px 0}.title-input::placeholder,.prop input::placeholder{color:var(--muted);opacity:.7}.editor-body{margin-left:-60px;padding-left:60px;position:relative}.editor-body .prose{outline:none;min-height:50dvh;margin-top:24px;padding-bottom:40dvh}.editor-body .prose>:first-child{margin-top:0}.editor-body .prose p.is-empty:before,.editor-body .prose :is(h1,h2,h3,h4).is-empty:before{content:attr(data-placeholder);float:left;height:0;color:var(--muted);opacity:.7;pointer-events:none}.editor-body .prose li p,.editor-body .prose th p,.editor-body .prose td p{margin:0}.editor-body .prose img{cursor:default}.editor-body .prose img.ProseMirror-selectednode{outline:2px solid var(--accent);outline-offset:2px}.editor-body .prose hr.ProseMirror-selectednode{border-top-color:var(--accent)}.editor-body .prose ul[data-type=taskList]{padding-left:0;list-style:none}.editor-body .prose ul[data-type=taskList] li{gap:8px;display:flex}.editor-body .prose ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none;flex:none}.editor-body .prose ul[data-type=taskList] li>div{flex:1;min-width:0}.editor-body .prose table{min-width:50%}.editor-body .prose th,.editor-body .prose td{min-width:80px;position:relative}.editor-body .prose .selectedCell{background:var(--code-bg)}.code-block{position:relative}.code-lang{font:inherit;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:4px;padding:2px 4px;font-size:12px;transition:opacity .12s ease-out;position:absolute;top:8px;right:8px}.code-block:hover .code-lang,.code-block:focus-within .code-lang{opacity:1}.block-tools{z-index:2;color:var(--muted);gap:2px;display:flex;position:absolute;left:8px;transform:translateY(-50%)}.block-tool{width:24px;height:24px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;transition:background-color .12s ease-out,color .12s ease-out;display:grid}@media (hover:hover){.block-tool:hover{background:var(--code-bg);color:var(--ink)}}.block-grip{cursor:grab}.block-grip:active{cursor:grabbing}.block-menu{background:var(--raised);border:1px solid var(--rule);transform-origin:0 0;width:120px;animation:pop .14s var(--ease-out);border-radius:8px;padding:4px;position:absolute;top:28px;left:0;box-shadow:0 8px 24px #0000001a}.block-menu button{width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 10px;font-size:14px;display:block}.block-menu button.danger{color:var(--danger)}@media (hover:hover){.block-menu button:hover{background:var(--code-bg)}}.sel-bar{z-index:4;background:var(--raised);border:1px solid var(--rule);white-space:nowrap;animation:pop .12s var(--ease-out);border-radius:8px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;box-shadow:0 8px 24px #0000001a}.sel-btn{min-width:28px;height:28px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:0 7px;font-size:13px;transition:background-color .12s ease-out}.sel-btn[aria-pressed=true]{color:var(--accent);background:var(--code-bg)}@media (hover:hover){.sel-btn:hover{background:var(--code-bg)}}.sel-sep{background:var(--rule);width:1px;height:16px;margin:0 4px}.sel-link-input{background:0 0;border:0;outline:none;width:220px;height:28px;padding:0 8px;font-size:14px}.slash{z-index:4;background:var(--raised);border:1px solid var(--rule);transform-origin:0 0;width:240px;max-height:320px;animation:pop .14s var(--ease-out);border-radius:8px;padding:4px;list-style:none;position:absolute;overflow-y:auto;box-shadow:0 8px 24px #0000001a}.slash button{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:space-between;padding:6px 10px;font-size:14px;display:flex}.slash button span{color:var(--muted);font-family:var(--mono);font-size:12px}.slash button[aria-selected=true]{background:var(--code-bg)}@keyframes pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}@media (max-width:860px),(hover:none){.editor-body{margin-left:0;padding-left:0}.block-tools{display:none}}@media (max-width:820px){.editor-bar{flex-wrap:wrap}.editor-body .prose{padding-bottom:96px}.slash{max-width:calc(100vw - 48px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:active:not(:disabled){transform:none}}
