:root{--paper:#fff;--ink:#1b2330;--graphite:#5a6575;--rule:#e3e7ed;--shelf:#f2f4f7;--link:#1d5bb8;--marker:#ffe45c;--accent:#d6361a;--todo-bg:#ffe1dc;--todo-ink:#a8321d;--font-body:"Malgun Gothic", "맑은 고딕", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-mono:ui-monospace, Consolas, "D2Coding", "SFMono-Regular", monospace;--measure:44rem;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:1.0625rem;line-height:1.8}a{color:var(--link);text-underline-offset:.2em}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:2px}[hidden]{display:none!important}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--measure);margin:0 auto;padding:0 1rem}.site-head{border-bottom:1px solid var(--rule)}.site-head .wrap{align-items:center;gap:1.25rem;min-height:3.5rem;display:flex}.site-name{letter-spacing:-.02em;color:var(--ink);flex:none;align-items:center;gap:.55rem;font-weight:800;text-decoration:none;display:inline-flex}.site-name .mark{flex:none;width:1.5rem;height:1.5rem}.site-nav{white-space:nowrap;scrollbar-width:none;gap:1rem;margin-left:auto;font-size:.9375rem;display:flex;overflow-x:auto}.site-nav a{color:var(--graphite);padding:.25rem 0;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink)}.site-nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--ink)}@media (width<=30rem){.site-head .wrap{flex-wrap:wrap;row-gap:0;min-height:0;padding-top:.7rem;padding-bottom:.35rem}.site-nav{width:100%;margin-left:0;padding-top:.3rem}}main{padding:2.25rem 0 4rem}.thesis{letter-spacing:-.025em;margin:.5rem 0 .4rem;font-size:clamp(1.5rem,1.2rem + 1.5vw,2.125rem);font-weight:800;line-height:1.5}.thesis-sub{color:var(--graphite);margin:0 0 1.75rem;font-size:1.125rem}.finder{margin:0 0 2rem}.finder label{color:var(--graphite);margin-bottom:.5rem;font-size:.9375rem;font-weight:700;display:block}.finder-box{border:2px solid var(--ink);background:var(--paper);border-radius:12px;align-items:center;gap:.65rem;padding:0 1rem;display:flex}.finder-box:focus-within{border-color:var(--link);box-shadow:0 0 0 4px #1d5bb829}.finder-box svg{width:1.3rem;height:1.3rem;color:var(--graphite);flex:none}.finder input{min-width:0;height:3.5rem;font:inherit;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:1.125rem}.finder input::placeholder{color:#8a94a3}.finder-status{min-height:1.5rem;color:var(--graphite);font-variant-numeric:tabular-nums;margin:.5rem 0 0;font-size:.875rem}.group+.group{margin-top:3rem}.group-head{border-bottom:3px solid var(--ink);letter-spacing:-.01em;align-items:baseline;gap:.6rem;margin:0;padding-bottom:.6rem;font-size:1.125rem;font-weight:800;line-height:1.5;display:flex}.group-head a{color:var(--ink);text-decoration:none}.group-head a:hover{text-underline-offset:.2em;text-decoration:underline}.group-head .count{color:var(--graphite);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700}.hub-head{letter-spacing:-.025em;font-size:clamp(1.5rem,1.2rem + 1.4vw,2rem)}.hl{background:linear-gradient(transparent 58%, var(--marker) 58%, var(--marker) 92%, transparent 92%);padding:0 .1em}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--rule)}.post-list a{color:var(--ink);border-radius:10px;grid-template-columns:1fr auto;align-items:center;column-gap:1rem;margin:0 -.75rem;padding:1.05rem .75rem;text-decoration:none;display:grid}.post-list a:after{content:"";border-top:2px solid var(--graphite);border-right:2px solid var(--graphite);opacity:.55;grid-area:1/2/span 3;width:.6rem;height:.6rem;margin-right:.25rem;transform:rotate(45deg)}.post-list a:hover{background:var(--shelf)}.post-list a:hover:after{opacity:1;border-color:var(--ink)}.post-list .t{letter-spacing:-.015em;grid-column:1;font-size:1.125rem;font-weight:800;line-height:1.5}.post-list .hint{color:var(--graphite);grid-column:1;margin-top:.15rem;font-size:.9375rem;line-height:1.55}.post-list .meta{grid-column:1}.meta{color:var(--graphite);font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:.875rem;display:block}.empty{color:var(--graphite)}.badge-draft{background:var(--todo-bg);color:var(--todo-ink);vertical-align:.1em;border-radius:4px;margin-right:.4rem;padding:0 .4rem;font-size:.75rem;font-weight:700;display:inline-block}.crumbs{color:var(--graphite);margin:0 0 .75rem;font-size:.875rem}.crumbs a{color:var(--graphite)}.post-title{letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,1.3rem + 2.1vw,2.5rem);font-weight:800;line-height:1.35}.post-title .lead{display:block}.post-title .rest{letter-spacing:-.015em;color:var(--graphite);margin-top:.7rem;font-size:.56em;font-weight:700;line-height:1.55;display:block}.post-title .badge-draft{vertical-align:.5em}.read-progress{z-index:10;background:var(--accent);transform-origin:0;height:3px;position:fixed;inset:0 0 auto;transform:scaleX(0)}@supports (animation-timeline:scroll()){.read-progress{animation:linear both read-progress scroll(root)}@keyframes read-progress{to{transform:scaleX(1)}}}.tested{background:var(--shelf);color:var(--graphite);border-radius:8px;flex-wrap:wrap;gap:.25rem 1rem;margin:1.25rem 0 2rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.tested strong{color:var(--ink);font-weight:700}.tested dl{display:contents}.tested div{gap:.35rem;display:flex}.tested dt{color:var(--graphite)}.tested dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0}.prose{font-size:1.1875rem;line-height:2.05}.prose h2{border-top:3px solid var(--ink);letter-spacing:-.02em;margin:4rem 0 1.5rem;padding-top:1.25rem;font-size:1.625rem;line-height:1.45}.prose h2.step{grid-template-columns:auto 1fr;align-items:start;column-gap:.9rem;display:grid}.step-no{background:var(--ink);width:2.6rem;height:2.6rem;color:var(--paper);letter-spacing:0;font-variant-numeric:tabular-nums;border-radius:10px;place-items:center;margin-top:-.1rem;font-size:1.5rem;font-weight:800;line-height:1;display:inline-grid}.prose strong{color:var(--accent);font-weight:800}.prose em{background-image:linear-gradient(transparent 58%, var(--marker) 58%, var(--marker) 94%, transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone;font-style:normal;font-weight:700}.prose h3{margin:2.5rem 0 .75rem;font-size:1.3125rem}.prose p,.prose ul,.prose ol{margin:0 0 1.75rem}.prose li+li{margin-top:.75rem}.prose ol{padding-left:1.4rem}.prose ol>li::marker{font-weight:800}.prose code{font-family:var(--font-mono);background:var(--shelf);border-radius:4px;padding:.1em .35em;font-size:.9em}.prose pre{background:var(--shelf);border-radius:8px;padding:1rem;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;margin:1.5rem 0 2rem;font-size:1.0625rem;line-height:1.6}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:.8rem .9rem}.prose th{color:var(--graphite);background:var(--shelf);font-size:.875rem;font-weight:700}.prose td:last-child{font-weight:700}.prose img{border:1px solid var(--rule);border-radius:6px;max-width:100%;height:auto;margin:1.25rem 0;display:block}.prose blockquote{text-align:center;border:0;margin:3rem 0;padding:0 .5rem}.prose blockquote:before{content:"“";height:2.25rem;color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:4rem;line-height:1;display:block}.prose blockquote p{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800;line-height:1.6}.prose blockquote p+p{margin-top:.5rem}mark.todo{background:var(--todo-bg);color:var(--todo-ink);border-radius:4px;padding:0 .25rem;font-size:.875em;font-weight:700}.ad-slot{min-height:280px;margin:2.25rem 0}.ai-notice{border-top:1px solid var(--rule);color:var(--graphite);margin:3rem 0 0;padding-top:1rem;font-size:.875rem}.related{margin-top:3.5rem}.page h1{letter-spacing:-.02em;margin:0 0 1.5rem;font-size:1.75rem}.page h2{margin:2rem 0 .5rem;font-size:1.125rem}.page p,.page ul{margin:0 0 1rem}.site-foot{border-top:1px solid var(--rule);color:var(--graphite);padding:1.5rem 0 2.5rem;font-size:.875rem}.site-foot nav{flex-wrap:wrap;gap:.25rem 1rem;margin-bottom:.5rem;display:flex}.site-foot a{color:var(--graphite)}
