:root{color-scheme:light;--bg: #ffffff;--surface: #ffffff;--surface-muted: #f5f5f5;--sidebar-bg: #fafafa;--border: #e4e4e4;--border-strong: #c8c8c8;--text: #0a0a0a;--text-secondary: #434343;--text-tertiary: #8a8a8a;--accent: #0a0a0a;--accent-hover: #000000;--accent-soft: #f5f5f5;--accent-ring: rgba(0, 0, 0, .1);--kr: "Gungsuh", "GungsuhChe", "궁서", "궁서체", "Nanum Myeongjo";--sans: "Geist", var(--kr), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif: "Fraunces", var(--kr), "Iowan Old Style", Georgia, "Times New Roman", serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--shell: 72rem;--reading: 44rem;--header-h: 3.75rem;--rail-w: 15rem}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);font-size:16px;scroll-behavior:smooth}body{display:flex;min-height:100vh;flex-direction:column;margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-feature-settings:"cv01","cv03","ss03";font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#0a0a0a;color:#fff}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}main{flex:1 0 auto}.page-shell{width:min(calc(100% - 2.5rem),var(--shell));margin-inline:auto}.skip-link{position:fixed;z-index:100;top:.75rem;left:.75rem;padding:.5rem .75rem;border-radius:.5rem;background:var(--text);color:#fff;font-size:.875rem;font-weight:500;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:30;height:var(--header-h);border-bottom:1px solid var(--border);background:#ffffffe0;backdrop-filter:blur(12px)}.header-inner,.footer-inner{display:flex;width:min(calc(100% - 2.5rem),var(--shell));height:100%;margin-inline:auto;align-items:center;justify-content:space-between}.header-inner{gap:1rem}.wordmark{display:inline-flex;align-items:center;color:var(--text);font-family:var(--serif);font-size:1.35rem;font-weight:500;letter-spacing:-.01em;text-decoration:none}.site-header nav ul,.tag-list{display:flex;margin:0;padding:0;list-style:none}.site-header nav ul{gap:.25rem}.site-header nav a{display:block;padding:.45rem .75rem;border-radius:.5rem;color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s ease,color .15s ease}.site-header nav a:hover,.site-header nav a.active{background:var(--surface-muted);color:var(--text)}main.has-rail{position:relative}.hero{padding-block:clamp(2.75rem,6vw,4.5rem) clamp(1.5rem,4vw,2.5rem);border-bottom:1px solid var(--border);background:radial-gradient(120% 120% at 0% 0%,#fafafa 0%,transparent 55%),var(--surface)}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;color:var(--text-tertiary);font-family:var(--serif);font-size:.9375rem;font-style:italic;font-weight:500;letter-spacing:0;text-transform:none}.eyebrow:before,.section-kicker:before{content:"";width:1.75rem;height:1px;background:var(--border-strong)}.hero h1{max-width:20ch;margin:0;font-family:var(--serif);font-size:clamp(2.75rem,7vw,4.5rem);font-weight:500;letter-spacing:-.02em;line-height:1.05}.hero-description{max-width:42rem;margin:1.25rem 0 0;color:var(--text-secondary);font-size:1.125rem;line-height:1.7;word-break:keep-all}.button{display:inline-flex;min-height:2.5rem;align-items:center;justify-content:center;padding:.55rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);color:var(--text);font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s ease,border-color .15s ease}.button:hover{background:var(--surface-muted)}.button.primary{border-color:#0a0a0a;background:#0a0a0a;color:#fff}.button.primary:hover{border-color:var(--accent-hover);background:var(--accent-hover)}.latest{padding-block:clamp(2rem,5vw,3rem) 4rem}.section-heading{display:flex;margin-bottom:1.75rem;align-items:end;justify-content:space-between;gap:1.5rem}.section-heading .section-kicker{margin-bottom:.35rem}.section-heading h2,.page-header h1{margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;letter-spacing:-.03em;line-height:1.2}.section-heading>a,.article-footer a{color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none}.section-heading>a:hover,.article-footer a:hover{color:var(--accent)}.post-count-inline{color:var(--text-tertiary);font-family:var(--serif);font-size:.9em;font-weight:500}.archive-layout,.archive-main{min-width:0}.tag-rail{margin-bottom:1.5rem}.tag-filter{display:flex;min-height:0;flex-direction:column;padding:0;background:transparent}.tag-filter-head{display:flex;flex-shrink:0;align-items:baseline;justify-content:space-between;gap:.75rem;padding-bottom:.75rem}.tag-filter-label{display:inline-flex;align-items:baseline;gap:.4rem;margin:0;color:var(--text-tertiary);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:none}.tag-filter-count{color:var(--text-tertiary);font-family:var(--serif);font-size:.8125rem;font-style:italic;font-weight:500;letter-spacing:0}.tag-filter-list{display:flex;flex-direction:column;gap:.1rem;margin:.85rem 0 0;padding:.1rem .35rem .1rem 0;overflow-y:auto;overscroll-behavior:contain;list-style:none;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.tag-filter-list::-webkit-scrollbar{width:8px}.tag-filter-list::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background-clip:padding-box;background-color:var(--border-strong)}.tag-filter-list>li{min-width:0}.tag-chip{display:flex;width:100%;min-height:1.95rem;align-items:center;gap:.55rem;padding:.35rem .4rem;border:0;border-radius:.4rem;background:transparent;color:var(--text-tertiary);cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:400;line-height:1.3;text-align:left;word-break:keep-all;transition:background .15s ease,color .15s ease}.tag-chip:before{content:"";flex-shrink:0;width:.3rem;height:.3rem;border-radius:50%;background:var(--border-strong);transition:background .15s ease,transform .15s ease}.tag-chip:hover{background:var(--surface-muted);color:var(--text-secondary)}.tag-chip:hover:before{background:var(--text-tertiary)}.tag-chip.active{background:transparent;color:var(--text);font-weight:600}.tag-chip.active:before{background:var(--text);transform:scale(1.35)}.tag-filter-clear{padding:0;border:0;background:none;color:var(--text-tertiary);cursor:pointer;font-family:var(--serif);font-size:.8125rem;font-style:italic;font-weight:500;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.2em;transition:color .15s ease,text-decoration-color .15s ease}.tag-filter-clear:hover{color:var(--text);text-decoration-color:currentColor}.tag-filter-status{flex-shrink:0;min-height:1rem;margin:.85rem 0 0;padding-top:.75rem;border-top:1px solid var(--border);color:var(--text-tertiary);font-size:.75rem;line-height:1.4;text-align:center;word-break:keep-all}.tag-filter-empty{margin:.85rem 0 0;padding:.85rem;border:1px dashed var(--border-strong);border-radius:.5rem;background:var(--surface);color:var(--text-secondary);font-size:.8125rem;line-height:1.55;text-align:center;word-break:keep-all}.tag-filter-empty strong{color:var(--text);font-weight:600}.post-list{display:grid;margin:0;padding:0;gap:.75rem;list-style:none}.post-card-inner{display:flex;gap:1rem;padding:1.25rem 1.35rem;border:1px solid var(--border);border-radius:.75rem;background:var(--surface);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.post-card:hover .post-card-inner{border-color:var(--border-strong);box-shadow:0 6px 24px -12px #0a0a0a2e}.post-card-index{flex-shrink:0;color:var(--text-tertiary);font-family:var(--serif);font-size:1.05rem;font-weight:500;line-height:1.9;transition:color .15s ease}.post-card:hover .post-card-index{color:var(--text)}.post-card-body{min-width:0;flex:1}.post-list:not(.post-list--large) .post-card-index{font-size:.9rem;line-height:1.7}.post-card-link{display:block;margin-top:.35rem;text-decoration:none}.post-card-meta{color:var(--text-tertiary);font-family:var(--serif);font-size:.85rem;font-style:italic}.post-card-link h3{margin:.35rem 0 0;color:var(--text);font-size:1.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.35}.post-card-desc{margin:.5rem 0 0;color:var(--text-secondary);font-size:.9375rem;line-height:1.6;word-break:keep-all}.post-list--large{gap:0;border-top:1px solid var(--border)}.post-list--large .post-card{border-bottom:1px solid var(--border)}.post-list--large .post-card-inner{gap:1.5rem;padding:clamp(1.75rem,3.5vw,2.5rem) .5rem;border:0;border-radius:0;background:transparent;box-shadow:none}.post-list--large .post-card:hover .post-card-inner{background:var(--surface-muted);box-shadow:none}.post-list--large .post-card-index{font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.35}.post-list--large .post-card-link h3{font-size:clamp(1.6rem,3.5vw,2.35rem);font-weight:600;letter-spacing:-.035em;line-height:1.15}.post-list--large .post-card-desc{max-width:46rem;margin-top:.75rem;font-size:1.0625rem;line-height:1.65}.post-list--large .post-card-meta{font-size:.9rem}.tag-list{flex-wrap:wrap;gap:.4rem;margin-top:.9rem}.tag-list li{padding:.2rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);font-size:.8125rem;transition:border-color .15s ease,color .15s ease}.tag-list li:hover{border-color:var(--border-strong);color:var(--text)}.tag-link{color:inherit;text-decoration:none}.empty-state{padding:3rem 1.5rem;border:1px dashed var(--border-strong);border-radius:.75rem;color:var(--text-secondary);text-align:center}.page-header{padding-block:clamp(2.5rem,6vw,3.5rem) 1.5rem;border-bottom:1px solid var(--border);background:radial-gradient(120% 120% at 0% 0%,#fafafa 0%,transparent 55%),var(--surface)}.page-header>p:last-child{max-width:36rem;margin:.75rem 0 0;color:var(--text-secondary);word-break:keep-all}.archive{padding-block:2rem 4rem}.article{width:min(calc(100% - 2.5rem),var(--reading));padding-block:clamp(2rem,5vw,3rem) 4rem}.article-header{padding-bottom:2rem;border-bottom:1px solid var(--border)}.back-link{display:inline-flex;margin-bottom:1.5rem;align-items:center;gap:.35rem;color:var(--text-tertiary);font-size:.875rem;font-weight:500;text-decoration:none}.back-link:hover{color:var(--accent)}.article-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;color:var(--text-tertiary);font-family:var(--serif);font-size:.9rem;font-style:italic}.article-header h1{margin:.75rem 0 0;font-size:clamp(1.85rem,5vw,2.75rem);font-weight:600;letter-spacing:-.035em;line-height:1.15;word-break:keep-all}.article-header>p{margin:.85rem 0 0;color:var(--text-secondary);font-size:1.0625rem;line-height:1.65;word-break:keep-all}.article-header .tag-list{margin-top:1rem}.prose{color:var(--text);font-size:1.0625rem;line-height:1.8;overflow-wrap:break-word;word-break:keep-all}.article>.prose{padding-block:2.5rem}.prose h2,.prose h3,.prose h4{color:var(--text);font-weight:600;letter-spacing:-.02em;line-height:1.3}.prose h2{margin:2.5rem 0 .75rem;font-size:1.5rem}.prose h3{margin:2rem 0 .5rem;font-size:1.25rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre{margin-block:1.1rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li::marker{color:var(--text-tertiary)}.prose strong{font-weight:600}.prose a{color:var(--text);text-decoration:underline;text-underline-offset:.15em;text-decoration-color:var(--border-strong)}.prose a:hover{text-decoration-color:var(--text)}.prose blockquote{margin-inline:0;padding:.5rem 0 .5rem 1.15rem;border-left:2px solid var(--text);color:var(--text-secondary);font-family:var(--serif);font-size:1.15rem;font-style:italic}.prose code{padding:.12em .35em;border:1px solid var(--border);border-radius:.35rem;background:var(--surface-muted);font-family:var(--mono);font-size:.9em}.prose pre{padding:1rem 1.15rem;border:1px solid var(--border);border-radius:.75rem;background:#111;overflow-x:auto}.prose pre code{padding:0;border:0;background:transparent;color:#e5e5e5;font-size:.9rem;line-height:1.6}.prose img{max-width:100%;height:auto;border-radius:.5rem}.prose hr{margin-block:2.5rem;border:0;border-top:1px solid var(--border)}.article-footer{padding-top:1.5rem;border-top:1px solid var(--border)}.not-found{display:flex;min-height:calc(100vh - 10rem);padding-block:4rem;flex-direction:column;align-items:flex-start;justify-content:center}.error-code{margin:0;color:var(--text-tertiary);font-family:var(--serif);font-size:.9375rem;font-style:italic;font-weight:500}.not-found h1{margin:.75rem 0 0;font-size:clamp(2rem,5vw,3rem);font-weight:600;letter-spacing:-.03em;line-height:1.15}.not-found>p:not(.error-code){margin:1rem 0 1.5rem;color:var(--text-secondary)}.site-footer{border-top:1px solid var(--border);background:var(--surface)}.footer-inner{height:auto;align-items:center;padding-block:1.1rem;color:var(--text-tertiary)}.footer-inner p{margin:0}.footer-brand{display:flex;flex-direction:column}.footer-tagline{color:var(--text);font-family:var(--serif);font-size:1.05rem;font-style:italic;font-weight:500;letter-spacing:-.01em;line-height:1.2}.footer-copy{margin-top:.2rem!important;color:var(--text-tertiary);font-size:.75rem}.footer-author{display:inline-flex;align-items:center;gap:.3rem;color:var(--text-tertiary);font-family:var(--serif);font-size:.95rem;font-style:italic;text-decoration:none;transition:color .15s ease}.footer-author:hover{color:var(--text)}.footer-author span{font-style:normal;font-size:.8em}.header-actions{display:flex;align-items:center;gap:.6rem}.header-link{padding:.45rem .6rem;border-radius:.5rem;color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s ease,color .15s ease}.header-link:hover{background:var(--surface-muted);color:var(--text)}.search-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .55rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);color:var(--text-tertiary);cursor:pointer;font-family:inherit;font-size:.85rem;transition:border-color .15s ease,color .15s ease}.search-trigger:hover{border-color:var(--border-strong);color:var(--text)}.search-trigger-kbd{padding:.05rem .3rem;border:1px solid var(--border);border-radius:.3rem;font-family:var(--mono);font-size:.7rem}.search-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:clamp(1rem,10vh,8rem) 1rem 1rem}.search-modal[hidden]{display:none}.search-backdrop{position:absolute;inset:0;background:#0a0a0a59;backdrop-filter:blur(2px)}.search-panel{position:relative;width:min(100%,40rem);max-height:75vh;padding:.65rem;border:1px solid var(--border);border-radius:.9rem;background:var(--surface);box-shadow:0 30px 60px -20px #00000059;overflow:auto}.search-hint{margin:.6rem .4rem .2rem;color:var(--text-tertiary);font-size:.75rem}.search-hint kbd{padding:.05rem .3rem;border:1px solid var(--border);border-radius:.3rem;font-family:var(--mono);font-size:.7rem}.search-unavailable{padding:1.75rem 1rem;color:var(--text-tertiary);font-size:.9rem;text-align:center}#pagefind-search{--pagefind-ui-scale: .9;--pagefind-ui-primary: #0a0a0a;--pagefind-ui-text: #0a0a0a;--pagefind-ui-background: #ffffff;--pagefind-ui-border: var(--border);--pagefind-ui-tag: var(--surface-muted);--pagefind-ui-border-width: 1px;--pagefind-ui-border-radius: .5rem;--pagefind-ui-font: var(--sans)}.graph-page{display:flex;flex-direction:column}.graph-head{padding-block:clamp(1.75rem,4vw,2.5rem) 1.1rem}.graph-head h1{margin:.25rem 0 0;font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:500;letter-spacing:-.02em;line-height:1.1}.graph-head p{max-width:42rem;margin:.6rem 0 0;color:var(--text-secondary);word-break:keep-all}.graph-canvas-wrap{position:relative;width:100%;height:calc(100vh - var(--header-h) - 12rem);min-height:24rem;border-top:1px solid var(--border);touch-action:none}canvas[data-graph-canvas]{display:block;width:100%;height:100%}.graph-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-tertiary)}.stat-views b{color:var(--text-secondary);font-weight:600}.article-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.like-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .85rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:.9rem;transition:border-color .15s ease,color .15s ease,transform .12s ease}.like-btn:hover{border-color:var(--border-strong);color:var(--text)}.like-btn:active{transform:scale(.95)}.like-btn[aria-pressed=true]{border-color:var(--text);color:var(--text)}.like-btn[aria-pressed=true] svg path{fill:var(--text)}.tag-back{margin-top:2rem}.tag-back a{color:var(--text-secondary);font-size:.9rem;text-decoration:none}.tag-back a:hover{color:var(--text)}@media(min-width:60rem){main.has-rail{padding-left:calc(var(--rail-w) + 2.5rem)}.tag-rail{position:fixed;z-index:10;top:calc(var(--header-h) + 1.75rem);left:max(1.5rem,calc((100vw - var(--shell)) / 2 - var(--rail-w) - 1.5rem));width:var(--rail-w);max-height:calc(100vh - var(--header-h) - 3.5rem);margin-bottom:0}.tag-rail .tag-filter{max-height:calc(100vh - var(--header-h) - 3.5rem)}}@media(max-width:60rem){.tag-filter-list{max-height:15rem}}@media(max-width:48rem){.post-card-index,.search-trigger-label,.search-trigger-kbd{display:none}.section-heading{flex-direction:column;align-items:flex-start}.footer-inner{flex-direction:column;align-items:flex-start;justify-content:center;gap:1.25rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
