:root{--navy:#163172;--bg:#fff;--bg-soft:#f6f7fa;--bg-code:#f3f4f7;--text:#1c2230;--text-soft:#4a5568;--text-faint:#7a8597;--line:#e3e6ec;--accent:#163172;--accent-soft:#e8edf8;--link:#1f47a8;--danger:#b42318;--radius:10px;--wrap:720px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1420;--bg-soft:#161c2b;--bg-code:#161c2b;--text:#e6e9f0;--text-soft:#b3bccb;--text-faint:#8590a3;--line:#273047;--accent:#8fa8ec;--accent-soft:#1c2640;--link:#9db5f5;--danger:#f97066;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);word-break:keep-all;overflow-wrap:anywhere;flex-direction:column;min-height:100vh;margin:0;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;font-size:17px;line-height:1.75;display:flex}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}main.wrap{flex:1;padding-top:40px;padding-bottom:72px}.skip{position:absolute;left:-9999px}.skip:focus{background:var(--bg);z-index:10;padding:6px 10px;top:12px;left:12px}.site-header{border-bottom:1px solid var(--line)}.header-row{justify-content:space-between;align-items:center;gap:16px;height:64px;display:flex}.brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.brand-mark{width:30px;height:30px;display:inline-flex}.brand-mark svg{width:100%;height:100%}.brand-text b{color:var(--accent);font-weight:700}.site-header nav{gap:4px;display:flex}.site-header nav a{color:var(--text-soft);border-radius:8px;padding:6px 10px;font-size:15px}.site-header nav a:hover{background:var(--bg-soft);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--accent);font-weight:600}.site-footer{border-top:1px solid var(--line);color:var(--text-faint);font-size:14px}.footer-row{flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;padding-bottom:28px;display:flex}.footer-row p{margin:0}.footer-row a{color:var(--text-soft)}.side-ad{max-width:var(--wrap);margin:40px auto 24px;padding:0 20px;position:relative}.side-ad a{border:1px solid var(--line);background:var(--bg-soft);color:var(--text);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.side-ad a:hover{border-color:var(--accent)}.side-ad img{border-radius:11px;flex:none;width:48px;height:48px}.side-ad .txt{flex-direction:column;flex:1;min-width:0;font-size:14px;line-height:1.45;display:flex}.side-ad .txt span{color:var(--text-soft);font-size:13px}.side-ad .btn{background:var(--navy);color:#fff;border-radius:9px;flex:none;padding:7px 12px;font-size:13px;font-weight:600}.side-ad .tag{color:var(--text-faint);background:var(--bg);padding:0 5px;font-size:11px;position:absolute;top:-9px;left:34px}.side-ad .close{border:1px solid var(--line);background:var(--bg);width:22px;height:22px;color:var(--text-faint);cursor:pointer;border-radius:50%;padding:0;font-size:14px;line-height:1;position:absolute;top:-10px;right:30px}@media (width<=520px){.side-ad .btn{display:none}}@media (width>=1200px){.side-ad{z-index:10;width:230px;margin:0;padding:0;position:fixed;bottom:24px;right:24px}.side-ad a{text-align:center;flex-direction:column;gap:8px;padding:18px 14px 14px;box-shadow:0 6px 24px #00000014}.side-ad img{border-radius:15px;width:64px;height:64px}.side-ad .btn{align-self:stretch}.side-ad .tag{left:14px}.side-ad .close{right:10px}}.visits b{color:var(--text-soft);font-variant-numeric:tabular-nums;font-weight:600}@media (width<=520px){body{font-size:16px}.wrap{padding:0 16px}.brand-text{display:none}main.wrap{padding-top:28px}}.page-title{letter-spacing:-.02em;margin:0 0 8px;font-size:30px;line-height:1.3}.page-lead{color:var(--text-soft);margin:0 0 36px}.meta{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:14px;display:flex}.meta .dot:before{content:"·";margin-right:12px}.tag{color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:13px;display:inline-block}.tag:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.tags{flex-wrap:wrap;gap:6px;display:flex}.series-badge{color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-block}.post-list{margin:0;padding:0;list-style:none}.post-item{border-bottom:1px solid var(--line);padding:26px 0}.post-item:first-child{padding-top:0}.post-item h2{letter-spacing:-.015em;margin:6px 0;font-size:22px;line-height:1.4}.post-item h2 a{color:var(--text)}.post-item p.desc{color:var(--text-soft);margin:0 0 10px}.pager{justify-content:space-between;margin-top:32px;font-size:15px;display:flex}.post-header{margin-bottom:36px}.post-header h1{letter-spacing:-.025em;margin:10px 0 14px;font-size:34px;line-height:1.3}@media (width<=520px){.post-header h1{font-size:27px}}.post-cover{aspect-ratio:1200/630;object-fit:cover;border-radius:14px;width:100%;margin-top:24px;display:block}.prose>:first-child{margin-top:0}.prose h2{letter-spacing:-.015em;margin:52px 0 14px;font-size:24px;line-height:1.4}.prose h3{margin:36px 0 10px;font-size:19px;line-height:1.45}.prose p,.prose ul,.prose ol,.prose blockquote,.prose table,.prose pre,.prose figure{margin:0 0 20px}.prose ul,.prose ol{padding-left:1.4em}.prose li,.prose li>ul,.prose li>ol{margin:4px 0}.prose strong{font-weight:700}.prose a{text-underline-offset:3px;text-decoration:underline 1px}.prose blockquote{border-left:3px solid var(--accent);background:var(--bg-soft);color:var(--text-soft);border-radius:0 var(--radius) var(--radius) 0;padding:12px 18px}.prose blockquote>:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:44px 0}.prose img{border-radius:var(--radius);border:1px solid var(--line);margin:0 auto;display:block}.prose figure img{margin-bottom:8px}.prose figcaption{text-align:center;color:var(--text-faint);font-size:14px}.prose :not(pre)>code{background:var(--bg-code);border-radius:5px;padding:2px 6px;font-size:.88em}.prose pre{border-radius:var(--radius);border:1px solid var(--line);padding:16px 18px;font-size:14px;line-height:1.6;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.prose th{background:var(--bg-soft);white-space:nowrap;font-weight:600}.prose .shots{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 20px;display:grid}.prose .shots img{width:100%}@media (prefers-color-scheme:dark){.prose pre.astro-code,.prose pre.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.store-cta{border:1px solid var(--line);background:var(--bg-soft);border-radius:14px;align-items:center;gap:16px;margin:0 0 24px;padding:18px 20px;display:flex}.store-cta img{border:0;border-radius:13px;flex:none;width:56px;height:56px;margin:0}.store-cta .txt{flex:1;min-width:0;line-height:1.5}.store-cta .txt b{display:block}.store-cta .txt span{color:var(--text-soft);font-size:14px}.store-cta a.btn{background:var(--navy);color:#fff;border-radius:10px;flex:none;padding:9px 16px;font-size:15px;font-weight:600;text-decoration:none}.store-cta a.btn:hover{filter:brightness(1.15)}@media (width<=520px){.store-cta{flex-wrap:wrap}.store-cta a.btn{text-align:center;width:100%}}.series-box{border:1px solid var(--line);background:var(--bg-soft);border-radius:14px;margin:48px 0 0;padding:18px 20px}.series-box h2{margin:0 0 10px;font-size:16px}.series-box h2 a{color:var(--text)}.series-box ol{margin:0;padding-left:1.3em}.series-box li{color:var(--text-soft);margin:4px 0}.series-box li[aria-current]{color:var(--accent);font-weight:600}.post-nav{grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;display:grid}.post-nav a{border:1px solid var(--line);color:var(--text);border-radius:12px;padding:14px 16px;display:block}.post-nav a:hover{border-color:var(--accent);text-decoration:none}.post-nav small{color:var(--text-faint);font-size:13px;display:block}.post-nav .next{text-align:right;grid-column:2}@media (width<=520px){.post-nav{grid-template-columns:1fr}.post-nav .next{grid-column:1}}.post-footer{border-top:1px solid var(--line);margin-top:40px;padding-top:24px}.comments{margin-top:56px}.comments h2{margin:0 0 18px;font-size:20px}.comments h2 .count{color:var(--accent)}.c-login{border:1px dashed var(--line);color:var(--text-soft);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:16px 18px;font-size:15px;display:flex}.c-form{margin-bottom:28px}.c-form textarea{resize:vertical;width:100%;min-height:96px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.6}.c-form textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.c-form .row{color:var(--text-faint);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;font-size:14px;display:flex}.c-form .who{align-items:center;gap:8px;min-width:0;display:flex}.c-btn{font:inherit;background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:9px;padding:8px 16px;font-size:14px;font-weight:600}.c-btn:disabled{opacity:.5;cursor:default}.c-btn.ghost{color:var(--text-soft);border:1px solid var(--line);background:0 0;font-weight:500}.c-link{font:inherit;color:var(--text-faint);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.c-link:hover{color:var(--accent);text-decoration:underline}.c-list{margin:0;padding:0;list-style:none}.c-item{border-top:1px solid var(--line);padding:16px 0}.c-item .c-head{align-items:center;gap:8px;font-size:14px;display:flex}.c-item .c-name{font-weight:600}.c-item .c-time{color:var(--text-faint);font-size:13px}.c-item .c-body{white-space:pre-wrap;margin:6px 0 6px 38px;font-size:15.5px;line-height:1.65}.c-item .c-actions{gap:14px;margin-left:38px;display:flex}.c-item.deleted .c-body{color:var(--text-faint);font-style:italic}.c-replies{margin:8px 0 0 38px;padding:0;list-style:none}.c-replies .c-item{border-top:0;padding:10px 0 0}.c-reply-form{margin:10px 0 0 38px}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);object-fit:cover;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.c-error{color:var(--danger);margin:8px 0 0;font-size:14px}.c-empty{color:var(--text-faint);padding:8px 0;font-size:15px}
