@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{--bg:#101316;--side:#0c0f12;--line:#292e33;--text:#e5e8e9;--muted:#a0aab2;--accent:#a0dcbd;--mono:"IBM Plex Mono",monospace;color-scheme:dark;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--text);--pagefind-ui-background:var(--bg);--pagefind-ui-border:var(--line);--pagefind-ui-tag:#202b26}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.8 Noto Sans KR,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.muted{color:var(--muted)}.accent{color:var(--accent)}.small{font:12px/1.8 var(--mono);letter-spacing:.7px}.skip{background:var(--accent);color:var(--bg);z-index:20;padding:12px;position:fixed;top:-100px;left:20px}.skip:focus{top:10px}.sidebar{background:var(--side);border-right:1px solid var(--line);flex-direction:column;width:248px;padding:30px 25px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{font:600 32px var(--mono);letter-spacing:-2px}.brand span{color:var(--accent)}.sidebar>p{margin:12px 0 24px}.sidebar nav{font:13px/1.6 var(--mono)}.sidebar nav a{color:var(--muted);padding:5px 10px;display:block}.sidebar nav a:hover,.sidebar nav a.active{color:var(--accent)}.sidebar nav a.active{border-left:2px solid var(--accent);background:#1c2426}.sidebar nav small{float:right;color:var(--muted);font-size:11px}.sidebar .depth-1{text-transform:uppercase;letter-spacing:1px;margin-top:18px;font-size:12px}.sidebar .depth-2{margin-top:6px}.sidebar .depth-3{border-left:1px solid var(--line);margin-left:12px;padding-left:12px;font-size:12px}.sidebar-bottom{font:12px/1.8 var(--mono);color:var(--muted);margin-top:auto;padding-top:24px}.menu-toggle{display:none}.shell{margin-left:248px}.topbar{border-bottom:1px solid var(--line);height:65px;font:13px var(--mono);justify-content:space-between;align-items:center;padding:0 48px;display:flex}main{outline:none;max-width:1240px;min-height:80vh;margin:auto;padding:0 64px}.hero{padding:60px 0 38px}.eyebrow{font:13px/1.8 var(--mono);letter-spacing:.7px;margin-bottom:22px}h1{letter-spacing:-2.8px;overflow-wrap:anywhere;margin:0 0 26px;font-size:clamp(38px,4.5vw,66px);font-weight:500;line-height:1.16}h1>span{color:var(--accent)}.intro{color:var(--muted);font-size:15px;line-height:1.95}.hero-foot{font:12px/1.8 var(--mono);justify-content:space-between;gap:20px;margin-top:33px;display:flex}.hero-foot a{color:var(--accent)}.tracks{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.tracks>a{padding:27px 30px 25px 0}.tracks>a+a{border-left:1px solid var(--line);padding-left:32px}.track-num{font:12px var(--mono);letter-spacing:1px;color:var(--muted)}.tracks h2{font:500 25px/1.3 var(--mono);letter-spacing:-1px;margin:15px 0}.tracks h2 span{float:right;color:var(--muted)}.tracks p{font:12px/1.8 var(--mono);color:var(--muted);margin:17px 0 0}.notes{margin-top:44px}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading h2{font-size:19px;font-weight:500}.section-heading h2 span{font:12px var(--mono);color:var(--muted)}.entry{border-bottom:1px solid var(--line);grid-template-columns:108px minmax(0,1fr) 20px;gap:12px;padding:29px 0;display:grid}.entry-date{font:12px/1.6 var(--mono);color:var(--muted)}.entry-date>span{font:32px var(--mono);color:#48565c;margin-top:18px;display:block}.entry-meta{font:12px/1.8 var(--mono);letter-spacing:.4px}.entry-meta>span{color:var(--muted)}.entry h3{letter-spacing:-.5px;overflow-wrap:anywhere;margin:12px 0 6px;font-size:19px;font-weight:500}.entry p{color:var(--muted);margin:0;font-size:14px}.tags{font:12px/1.8 var(--mono);color:#acb7b0;flex-wrap:wrap;gap:8px 14px;margin-top:18px;display:flex}.tags span{color:var(--muted)}.entry-arrow{color:var(--muted);padding-top:24px}footer{border-top:1px solid var(--line);font:12px/1.8 var(--mono);color:var(--muted);justify-content:space-between;gap:20px;margin-top:60px;padding:22px 0;display:flex}.article-wrap{grid-template-columns:minmax(0,1fr) 175px;gap:40px;padding-top:43px;display:grid}.back{font:13px var(--mono);color:var(--muted)}.article-head{border-bottom:1px solid var(--line);padding:36px 0 28px}.article-head h1{letter-spacing:-1.5px;margin:17px 0;font-size:36px;line-height:1.45}.prose{color:#bec7cb;overflow-wrap:anywhere;font-size:16px;line-height:1.95}.prose h2,.prose h3,.prose h4{color:var(--text);margin-top:42px;scroll-margin-top:25px;font-weight:500}.prose h2{font-size:25px}.prose a{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.prose img{max-width:100%;height:auto;margin:20px auto;display:block}.prose table{border-collapse:collapse;max-width:100%;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);min-width:100px;padding:10px 14px}.prose blockquote{border-left:2px solid var(--accent);margin-left:0;padding-left:20px}.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}.callout{border-left:2px solid var(--accent);color:#bec7cb;background:#16201d;margin:28px 0;padding:20px 24px;font-size:14px}.code{border:1px solid var(--line);background:#0d1117;margin:22px 0;padding-top:35px;position:relative}.copy{color:var(--muted);font:12px/1.8 var(--mono);background:0 0;border:0;position:absolute;top:5px;right:12px}pre{max-width:100%;font:13px/1.9 var(--mono);margin:22px 0;padding:20px;overflow-x:auto}.code pre{margin:0}.prose :not(pre)>code{font:13px var(--mono);color:#d6e5df;background:#222a2e;padding:3px 6px}.toc{max-height:85vh;font:12px/1.9 var(--mono);align-self:start;padding-top:85px;position:sticky;top:25px;overflow-y:auto}.toc p{color:var(--muted);letter-spacing:1px}.toc a{border-left:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere;padding:7px 0 7px 14px;display:block}.toc a:hover{border-color:var(--accent);color:var(--accent)}.toc a.nested{padding-left:24px;font-size:11px}.image-open{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.image-open img{margin-inline:auto}dialog{border:1px solid var(--line);background:var(--bg);max-width:95vw;max-height:95vh;padding:50px 15px 15px}dialog::backdrop{background:#000d}dialog img{object-fit:contain;max-width:88vw;max-height:80vh}.close-image{color:var(--text);background:0 0;border:0;position:absolute;top:10px;right:15px}.tag-cloud{flex-wrap:wrap;gap:12px;display:flex}.tag-cloud a{border:1px solid var(--line);font:14px/1.8 var(--mono);padding:10px 16px}.tag-cloud span{color:var(--muted);margin-left:10px}.tag-title{margin-top:24px}.empty{border-top:1px solid var(--line);padding:38px 0}.empty p{color:var(--muted)}.empty a{color:var(--accent)}.about{max-width:760px}.pagefind-ui{--pagefind-ui-font:"Noto Sans KR",sans-serif}.pagefind-ui__search-input{color:var(--text)}@media (width>=1550px){main{padding-inline:82px}.hero{padding-top:78px}}@media (width<=1100px){.sidebar{width:210px;padding:24px 18px}.shell{margin-left:210px}main,.topbar{padding-inline:30px}.article-wrap{grid-template-columns:minmax(0,1fr)}.toc{display:none}.entry{grid-template-columns:85px minmax(0,1fr) 15px}}@media (width<=760px){.sidebar{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;width:100%;padding:18px 24px;display:grid;position:relative;overflow:visible}.sidebar>p{margin:5px 0 0;font-size:11px}.brand{font-size:26px}.menu-toggle{color:var(--accent);border:1px solid var(--line);background:0 0;grid-area:1/2/3;padding:8px 12px;font-size:13px;display:block}.sidebar nav,.sidebar-bottom{display:none}.sidebar.menu-open nav{grid-column:1/-1;margin-top:18px;display:block}.shell{margin:0}.topbar{height:48px;padding-inline:24px}main{padding-inline:24px}.hero{padding-top:36px}h1{letter-spacing:-2px;font-size:42px}.intro{font-size:14px}.hero-foot{flex-wrap:wrap;font-size:11px}.tracks h2{font-size:19px}.tracks>a{padding-right:16px}.tracks>a+a{padding-left:18px}.tracks p{font-size:11px}.entry{grid-template-columns:minmax(0,1fr) 15px}.entry-date{grid-column:1/-1}.entry-date>span{display:none}.entry h3{font-size:18px}.article-head h1{font-size:29px}.article-wrap{padding-top:28px}footer{flex-wrap:wrap;font-size:11px}.tag-title{font-size:34px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
