:root{--bg:#fbfaf8;--fg:#1d1c1a;--muted:#6b6862;--line:#e6e2da;--accent:#2f5d50;--accent-soft:#e4efe9;--code-bg:#f1eee8;--max:42rem;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#161614;--fg:#ecebe7;--muted:#9b978f;--line:#2d2c29;--accent:#8cc4b0;--accent-soft:#1f2b27;--code-bg:#22211f}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,Segoe UI,sans-serif;font-size:1.0625rem;line-height:1.75}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}.wrap{max-width:var(--max);margin:0 auto;padding:0 1rem}.site-header{border-bottom:1px solid var(--line)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1.5rem;padding-top:1rem;padding-bottom:1rem;display:flex}.brand{color:var(--fg);font-weight:700;text-decoration:none}.site-header nav{flex-wrap:wrap;gap:.25rem 1.1rem;font-size:.95rem;display:flex}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--fg)}main.wrap{min-height:60vh;padding-top:2.5rem;padding-bottom:4rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding:1.25rem 0;font-size:.9rem}.site-footer .wrap{justify-content:space-between;display:flex}.intro h1{margin:0 0 .25rem;font-size:1.9rem;line-height:1.3}.intro p{color:var(--muted);margin:0 0 2.5rem}.section-label{letter-spacing:.04em;color:var(--muted);margin:2.5rem 0 .75rem;font-size:.85rem;font-weight:600}.cards{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;display:grid}.card{border:1px solid var(--line);color:var(--fg);border-radius:.6rem;flex-direction:column;gap:.2rem;padding:.9rem 1rem;line-height:1.5;text-decoration:none;display:flex}.card:hover{border-color:var(--accent)}.card span{color:var(--muted);font-size:.9rem}.card small{color:var(--accent)}.page-head h1{margin:0 0 .25rem;font-size:1.7rem}.page-head p{color:var(--muted);margin:0 0 1.5rem}.note-list{margin:0;padding:0;list-style:none}.note-list li{border-bottom:1px solid var(--line);padding:1rem 0}.note-title{color:var(--fg);font-size:1.15rem;font-weight:600;text-decoration:none}.note-title:hover{color:var(--accent)}.note-meta{color:var(--muted);flex-wrap:wrap;gap:.25rem .75rem;font-size:.88rem;display:flex}.note-summary{color:var(--muted);margin:.35rem 0 0}.empty{color:var(--muted)}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:0 .55rem;font-size:.78rem}.badge-draft{border:1px dashed var(--muted);color:var(--muted);background:0 0}.tags{flex-wrap:wrap;gap:.25rem .6rem;margin-top:.4rem;font-size:.88rem;display:flex}.tags a{text-decoration:none}.tags-cloud{gap:.5rem 1rem;font-size:1rem}.tags-foot{margin-top:2rem}.note-head h1{margin:.25rem 0 .5rem;font-size:1.9rem;line-height:1.35}.crumb{font-size:.9rem;text-decoration:none}.series{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 .5rem .5rem 0;margin:1.5rem 0;padding:.9rem 1.1rem;font-size:.95rem;line-height:1.6}.series ol{margin:.4rem 0 0;padding-left:1.3rem}.series [aria-current=page]{font-weight:700}.prose{margin-top:1.75rem}.prose h2{margin:2.25rem 0 .5rem;font-size:1.45rem;line-height:1.4}.prose h3{margin:1.75rem 0 .4rem;font-size:1.2rem}.prose p,.prose ul,.prose ol{margin:0 0 1.1rem}.prose blockquote{border-left:3px solid var(--line);color:var(--muted);margin:1.25rem 0;padding:.1rem 1rem}.prose code{background:var(--code-bg);border-radius:.3rem;padding:.1em .35em;font-size:.92em}.prose pre{border-radius:.5rem;padding:1rem;font-size:.9rem;line-height:1.55;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{background:0 0;padding:0}.prose img{max-width:100%;height:auto}.prose table{border-collapse:collapse;width:100%;margin:1.25rem 0;font-size:.95rem}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;padding:.45rem .6rem}.prose a.wikilink{text-decoration-style:dotted}.wikilink-missing{color:var(--muted);border-bottom:1px dashed var(--muted);cursor:help}.connections{border-top:1px solid var(--line);gap:1.25rem;margin-top:2.5rem;padding-top:1.25rem;display:grid}.connections h2{letter-spacing:.04em;color:var(--muted);margin:0 0 .4rem;font-size:.85rem;font-weight:600}.connections ul{margin:0;padding:0;list-style:none}.connections li{flex-wrap:wrap;align-items:baseline;gap:.1rem .6rem;padding:.2rem 0;display:flex}.connections small{color:var(--muted)}.prev-next{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:3rem;display:grid}.prev-next a{border:1px solid var(--line);color:var(--fg);border-radius:.5rem;flex-direction:column;padding:.75rem 1rem;line-height:1.45;text-decoration:none;display:flex}.prev-next a:hover{border-color:var(--accent)}.prev-next small{color:var(--muted)}.prev-next .next{text-align:right;grid-column:2}@media (width<=30rem){body{font-size:1rem}.note-head h1{font-size:1.6rem}}:root{--node-l:44%;--node-s:46%}@media (prefers-color-scheme:dark){:root{--node-l:64%;--node-s:42%}}.graph{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, var(--fg) 8%);border-radius:.6rem;position:relative;overflow:hidden}.graph-stage{height:var(--graph-height,280px);color:var(--muted);padding:0;font-size:.9rem}.graph-stage:not(:has(svg)){padding:1rem}.graph svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.graph-full svg{touch-action:none;cursor:grab}.graph-full.is-panning svg{cursor:grabbing}.graph .edge{stroke:color-mix(in srgb, var(--fg) 26%, transparent);transition:stroke .15s,opacity .15s}.graph .gnode{cursor:pointer;outline:none;transition:opacity .15s}.graph .gnode .hit{fill:#0000;stroke:none}.graph .gnode .dot{fill:hsl(var(--hue) var(--node-s) var(--node-l));stroke:var(--bg);stroke-width:1.5px}.graph .gnode.is-note .dot{fill:var(--bg);stroke:hsl(var(--hue) var(--node-s) var(--node-l));stroke-width:2px}.graph .gnode.is-focus .dot{stroke:var(--fg);stroke-width:2.5px}.graph .gnode:focus-visible .dot{stroke:var(--fg);stroke-width:3px}.graph .gnode .label{fill:var(--fg);opacity:0;pointer-events:none;paint-order:stroke;stroke:var(--bg);stroke-linejoin:round;transition:opacity .15s}.graph .gnode.always .label,.graph.show-labels .gnode .label,.graph .gnode.hl .label,.graph .gnode:hover .label,.graph .gnode:focus-visible .label{opacity:1}.graph.has-hl .gnode:not(.hl){opacity:.25}.graph.has-hl .edge:not(.hl){opacity:.15}.graph .edge.hl{stroke:var(--accent)}.graph-controls{gap:.25rem;display:flex;position:absolute;top:.5rem;right:.5rem}.graph-controls button{font:inherit;min-width:2rem;height:2rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:.4rem;padding:0 .55rem;font-size:.85rem;line-height:1}.graph-controls button:hover{border-color:var(--accent)}.graph-legend{color:var(--muted);pointer-events:none;flex-wrap:wrap;gap:.15rem .9rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex;position:absolute;bottom:.5rem;left:.6rem}.graph-legend i{background:hsl(var(--hue) var(--node-s) var(--node-l));border-radius:50%;width:.65rem;height:.65rem;margin-right:.3rem;display:inline-block}.graph-more{margin:.4rem 0 0;font-size:.9rem}.graph-list{margin-top:1.5rem}.graph-list summary{cursor:pointer;color:var(--muted)}.graph-list ul{margin:.25rem 0;padding-left:1rem;list-style:none}.graph-list>ul{margin-top:.75rem;padding-left:0}.graph-list small{color:var(--muted);margin-left:.5rem}@media (prefers-reduced-motion:reduce){.graph .edge,.graph .gnode,.graph .gnode .label{transition:none}}#hover-preview{z-index:50;background:var(--bg);width:min(22rem,100vw - 1rem);color:var(--fg);border:1px solid var(--line);pointer-events:none;border-radius:.6rem;padding:.75rem .9rem;font-size:.9rem;line-height:1.55;position:absolute;box-shadow:0 8px 24px #00000024}#hover-preview[hidden]{display:none}#hover-preview .hp-meta{color:var(--accent);font-size:.78rem}#hover-preview .hp-title{font-size:1rem;line-height:1.4;display:block}#hover-preview .hp-excerpt{color:var(--muted);margin:.3rem 0 0}#hover-preview .hp-tags{color:var(--accent);margin-top:.4rem;font-size:.8rem}
