:root{--font-heading:"Poppins", sans-serif;--font-body:Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--color-bg:#ffffff;--color-bg-muted:#f5f5f5;--color-border:#000000;--color-text:#000000;--color-heading:#1c1b1d;--color-link:#000000;--color-code-string:#d01040;--color-code-keyword:#000000;--color-code-name:#458;--page-padding-mobile:20px;--page-padding-desktop:50px;--page-border-width:18px;--wrapper-max:1000px;--text-body:18px;--line-body:1.6;--text-logo:16px;--text-summary-title:34px;--line-summary-title:38px;--text-hero:48px;--line-hero:56px;--text-h2:28px;--line-h2:1.4;--space-header-bottom:30px;--space-intro-bottom:60px;--space-summary-bottom:50px;--space-paragraph-bottom:20px}@media(min-width:767px){:root{--text-summary-title:52px;--line-summary-title:58px;--text-hero:88px;--line-hero:94px;--text-h2:30px;--space-header-bottom:40px;--space-summary-bottom:80px}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;padding:var(--page-padding-mobile);border:var(--page-border-width)solid var(--color-border);overflow-x:hidden;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}@media(min-width:767px){body{padding:var(--page-padding-desktop)}}body.menu-open{overflow:hidden}ol,ul{margin:0;padding:0;list-style:none}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.wrapper{max-width:var(--wrapper-max);margin:0 auto}.site-footer{margin-top:30px}@media(min-width:767px){.site-footer{padding-top:40px}}html:lang(ko) h1,html:lang(ko) h2,html:lang(ko) h3{word-break:keep-all;overflow-wrap:anywhere}.site-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-header-bottom);font-size:var(--text-logo)}.site-logo{margin-right:30px;font-weight:700}.site-nav{display:none}.site-nav a[aria-current=page]{font-weight:700}@media(min-width:992px){.site-nav{display:flex;gap:10px}}.hamburger{position:relative;display:block;width:30px;height:20px;border:0;border-top:2px solid;border-bottom:2px solid;padding:0;cursor:pointer;background:0 0;color:var(--color-border);font-size:0;transition:color .2s ease,border-color .2s ease;z-index:20}.hamburger::before,.hamburger::after{content:"";position:absolute;top:50%;left:50%;width:100%;height:2px;background:currentColor;transform:translate(-50%,-50%);transition:transform .25s ease}.hamburger:hover{opacity:.7}.hamburger.is-active{border-color:transparent;color:var(--color-bg)}.hamburger.is-active::before{transform:translate(-50%,-50%)rotate(45deg)}.hamburger.is-active::after{transform:translate(-50%,-50%)rotate(-45deg)}@media(min-width:992px){.hamburger{display:none}}.mobile-menu{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;visibility:hidden;opacity:0;background:var(--color-border);transition:opacity .25s ease,visibility .25s ease}.mobile-menu.open{visibility:visible;opacity:1}.mobile-menu ul{font-family:var(--font-heading);font-size:2rem;text-align:center}.mobile-menu a{color:var(--color-bg)}.author{display:flex;align-items:center;gap:10px;margin-top:30px;margin-bottom:30px;color:var(--color-heading)}.author-large{font-size:20px}.author-image{display:block;flex:none;width:50px;height:50px;border:2px solid var(--color-heading);border-radius:50%}.author-copy{min-width:0}.author-name,.author-title{display:inline}.author-name{font-weight:700}.intro{margin-bottom:var(--space-intro-bottom)}.intro h1{width:100%;margin:0 0 30px;color:var(--color-heading);font-family:var(--font-heading);font-size:var(--text-hero);font-weight:700;line-height:var(--line-hero);letter-spacing:0}.intro p{max-width:80%;margin:0;color:var(--color-text);font-size:20px;line-height:1.45}@media(min-width:767px){.intro h1{width:80%;margin-bottom:50px}.intro p{font-size:22px;line-height:32px}}.dot{color:var(--color-border)}.summary{margin-bottom:var(--space-summary-bottom);font-size:var(--text-body);line-height:1.45}.summary-date{display:block;margin-bottom:16px;color:var(--color-heading);font-weight:700}.summary-title{width:100%;margin:16px 0;color:var(--color-heading);font-family:var(--font-heading);font-size:var(--text-summary-title);font-weight:700;line-height:var(--line-summary-title);letter-spacing:0}.summary-title a{color:inherit}.summary-description{width:100%;margin:0;color:var(--color-text);font-size:var(--text-body);line-height:var(--line-body)}@media(min-width:767px){.summary-title,.summary-description{width:80%}}.content{font-size:var(--text-body)}.content p{margin:0 0 var(--space-paragraph-bottom);color:var(--color-text);font-size:var(--text-body);line-height:var(--line-body)}.content h1,.content h2,.content h3{margin-top:30px;margin-bottom:20px;color:var(--color-heading);font-family:var(--font-heading);font-weight:700;letter-spacing:0}.content h2{font-size:var(--text-h2);line-height:var(--line-h2)}.content h3{font-size:22px;line-height:1.4}.content a{text-decoration:underline}.content ul,.content ol{margin:10px 0 20px;padding-left:1.25rem;list-style-position:outside}.content ul{list-style:disc}.content ol{list-style:decimal}.content li{margin-bottom:6px;font-size:var(--text-body);line-height:1.35}@media(min-width:767px){.content ul,.content ol{margin-left:20px}}.content blockquote{margin:30px 0;border-left:5px solid var(--color-border);padding:20px}.content blockquote p{display:inline;font-size:20px}.content img{margin:40px 0}.content code,.content pre{font-family:var(--font-mono)}.highlight{margin:30px 0;background:var(--color-bg-muted)}.content .highlight pre{margin:0;border-radius:3px;padding:30px;overflow:auto;font-family:var(--font-mono);font-size:14px;line-height:18px}.highlight .c,.highlight .cm,.highlight .c1{color:#998;font-style:italic}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kr,.highlight .o{color:var(--color-code-keyword);font-weight:700}.highlight .s,.highlight .s1,.highlight .s2,.highlight .se{color:var(--color-code-string)}.highlight .nc,.highlight .kt{color:var(--color-code-name);font-weight:700}.highlight .nb{color:#0086b3}.highlight .nv,.highlight .na,.highlight .no{color:teal}.content .imgrow{display:grid;grid-template-columns:1fr;gap:20px;align-items:start;margin:30px 0}.content .imgrow img{display:block;width:100%;height:auto;margin:0}.imgrow-missing{display:block;border:2px solid var(--color-border);padding:16px;font-family:var(--font-mono);font-size:14px}@media(min-width:767px){.content .imgrow{grid-template-columns:repeat(var(--imgrow-cols,2),minmax(0,1fr))}}