:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fff;--bg-subtle:#f6f6f5;--card:#fff;--fg:#1c1c1a;--fg-strong:#0a0a09;--muted:#71716b;--faint:#9a9a92;--line:#11110f17;--line-strong:#11110f24;--chip-bg:#f1f1ef;--chip-fg:#3a3a36;--ink:#111110;--ink-fg:#fff;--accent:#111110;--radius:12px;--maxw:1200px;--readw:680px;--rail:300px;--toc:220px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d0d0c;--bg-subtle:#161615;--card:#161615;--fg:#e7e7e2;--fg-strong:#fafaf6;--muted:#9a9a92;--faint:#6f6f68;--line:#ffffff1a;--line-strong:#ffffff29;--chip-bg:#24241f;--chip-fg:#cfcfc8;--ink:#fafaf6;--ink-fg:#0a0a09;--accent:#fafaf6}}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--bg);min-height:100%;color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Pretendard,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,Malgun Gothic,sans-serif}a{color:inherit;text-decoration:none}::selection{background:#11110f1f}@media (prefers-color-scheme:dark){::selection{background:#ffffff2e}}.shell{flex-direction:column;min-height:100vh;display:flex}.reading-progress{z-index:50;pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.reading-progress span{transform-origin:0;background:var(--accent);width:100%;height:100%;transition:transform 80ms linear;display:block;transform:scaleX(0)}.site-header{width:min(var(--maxw), calc(100vw - 48px));justify-content:space-between;align-items:center;gap:20px;margin:0 auto;padding:20px 0;display:flex}.brand{letter-spacing:-.02em;color:var(--fg-strong);align-items:center;gap:11px;font-size:18px;font-weight:700;display:inline-flex}.brand-mark{background:var(--chip-bg);border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:inline-grid;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%}.brand-initials{color:var(--fg-strong);letter-spacing:.01em;font-size:12px;font-weight:800}.brand-name{align-items:center;gap:11px;display:inline-flex}.brand-name:after{content:"Blog";color:var(--faint);border-left:1px solid var(--line-strong);padding-left:11px;font-size:15px;font-weight:500}.site-nav{align-items:center;gap:8px;font-size:14px;display:flex}.site-nav a{color:var(--muted);padding:7px 2px;transition:color .12s}.site-nav a:hover{color:var(--fg-strong)}.site-nav a.nav-cta{background:var(--ink);color:var(--ink-fg);border-radius:999px;margin-left:8px;padding:9px 16px;font-weight:600}.site-nav a.nav-cta:hover{opacity:.85;color:var(--ink-fg)}.site-footer{width:min(var(--maxw), calc(100vw - 48px));border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;margin:72px auto 0;padding:28px 0 44px;font-size:13px;display:flex}.footer-brand{flex-wrap:wrap;gap:8px 18px;display:flex}.footer-domain{color:var(--faint)}.footer-powered{color:var(--muted);font-weight:500}.footer-powered:hover{color:var(--fg-strong)}.content{width:min(var(--maxw), calc(100vw - 48px));flex:1;margin:0 auto;padding-top:20px}.eyebrow{color:var(--faint);text-transform:uppercase;letter-spacing:.11em;margin:0 0 12px;font-size:12px;font-weight:700}h1{color:var(--fg-strong);letter-spacing:-.03em;margin:0;font-weight:700}.description{color:var(--muted);margin:16px 0 0;font-size:18px;line-height:1.6}.category-chip{background:var(--chip-bg);color:var(--chip-fg);letter-spacing:0;text-transform:capitalize;border-radius:999px;align-self:flex-start;align-items:center;padding:5px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.home-hero{max-width:760px;padding:28px 0 44px}.home-hero h1{font-size:clamp(36px,5.5vw,56px);line-height:1.05}.home-empty{padding:40px 0}.featured-card{border-bottom:1px solid var(--line);grid-template-columns:1.1fr 1fr;align-items:center;gap:32px;margin-bottom:44px;padding-bottom:44px;display:grid}.featured-thumb{aspect-ratio:16/9;border-radius:var(--radius);background:var(--bg-subtle);display:block;overflow:hidden}.featured-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.featured-card:hover .featured-thumb img{transform:scale(1.02)}.featured-body{flex-direction:column;gap:14px;display:flex}.featured-body h2{letter-spacing:-.025em;color:var(--fg-strong);margin:0;font-size:30px;line-height:1.15}.featured-body p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:16px;line-height:1.6;display:-webkit-box;overflow:hidden}.card-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.featured-flag{text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-size:12px;font-weight:700}.card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:40px 28px;display:grid}.article-card{flex-direction:column;display:flex}.card-thumb{aspect-ratio:16/9;border-radius:var(--radius);background:var(--bg-subtle);display:block;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.article-card:hover .card-thumb img{transform:scale(1.02)}.card-body{flex-direction:column;gap:10px;padding:16px 0 0;display:flex}.card-body h2{letter-spacing:-.015em;color:var(--fg-strong);margin:0;font-size:19px;line-height:1.32}.card-body p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.card-date{color:var(--faint);margin-top:auto;padding-top:4px;font-size:13px}.article-grid{grid-template-columns:var(--toc) minmax(0, var(--readw)) var(--rail);justify-content:center;align-items:start;gap:56px;display:grid}.article-main{min-width:0;max-width:var(--readw)}.article-head{flex-direction:column;gap:16px;margin-bottom:30px;display:flex}.article-title{font-size:clamp(28px,4vw,40px);line-height:1.15}.article-lede{color:var(--muted);margin:0;font-size:18px;font-weight:400;line-height:1.55}.byline{align-items:center;gap:11px;padding-top:4px;display:flex}.byline-avatar{background:var(--chip-bg);width:40px;height:40px;color:var(--fg-strong);border-radius:999px;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:inline-grid;overflow:hidden}.byline-avatar img{object-fit:cover;width:100%;height:100%}.byline-name{color:var(--fg-strong);font-size:14.5px;font-weight:600}.byline-name:hover{text-underline-offset:2px;text-decoration:underline}.byline-sub{color:var(--faint);flex-wrap:wrap;gap:6px;margin-top:2px;font-size:13px;display:flex}.share-row{align-items:center;gap:8px;padding-top:6px;display:flex}.share-btn{border:1px solid var(--line-strong);background:var(--bg);height:34px;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:600;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.share-btn:hover{color:var(--fg-strong);border-color:var(--fg-strong)}.share-btn svg{display:block}.share-copy{font-family:inherit}.share-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding-top:24px;display:flex}.share-footer-label{color:var(--fg-strong);font-size:14px;font-weight:600}.hero-image{border-radius:var(--radius);background:var(--bg-subtle);aspect-ratio:16/9;margin:0 0 8px;overflow:hidden}.hero-image img{object-fit:cover;width:100%;height:100%;display:block}.toc{align-self:start;max-height:calc(100vh - 116px);position:sticky;top:88px;overflow-y:auto}.toc-title{color:var(--fg-strong);letter-spacing:-.01em;margin:0 0 16px;font-size:16px;font-weight:700}.toc ul{margin:0;padding:0;list-style:none}.toc li a{color:var(--muted);padding:5px 0;font-size:13.5px;line-height:1.45;transition:color .12s;display:block}.toc li a:hover{color:var(--fg-strong)}.toc li a.is-active{color:var(--fg-strong);font-weight:700}.toc li.toc-sub a{padding-left:14px;font-size:13px}.toc-mobile{border:1px solid var(--line);background:var(--bg-subtle);border-radius:10px;margin-bottom:28px;padding:2px 16px;display:none}.toc-mobile summary{cursor:pointer;color:var(--fg-strong);padding:14px 0;font-size:15px;font-weight:700}.toc-mobile ul{margin:0 0 12px;padding:0;list-style:none}.toc-mobile li a{color:var(--muted);padding:6px 0;font-size:14px;display:block}.toc-mobile li.toc-sub a{padding-left:16px}.article-rail{flex-direction:column;align-self:start;gap:14px;display:flex;position:sticky;top:88px}.rail-title{color:var(--fg-strong);letter-spacing:-.01em;margin:0 0 4px;font-size:16px;font-weight:700}.rail-item{border-bottom:1px solid var(--line);grid-template-columns:1fr 76px;align-items:start;gap:14px;padding:12px 0;display:grid}.rail-item:hover .rail-item-title{text-underline-offset:2px;text-decoration:underline}.rail-item-title{color:var(--fg-strong);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.rail-item-thumb{aspect-ratio:4/3;background:var(--bg-subtle);border-radius:7px;width:76px;overflow:hidden}.rail-item-thumb img{object-fit:cover;width:100%;height:100%}.article-body{color:var(--fg);font-size:17px;line-height:1.78}.article-body>:first-child{margin-top:0}.article-body h2,.article-body h3,.article-body h4{color:var(--fg-strong);letter-spacing:-.025em;scroll-margin-top:84px;line-height:1.3;position:relative}.article-body h2{margin:48px 0 16px;font-size:25px;font-weight:700}.article-body h3{margin:36px 0 12px;font-size:20px;font-weight:700}.article-body h4{margin:28px 0 10px;font-size:17px;font-weight:700}.article-body .anchor{opacity:0;width:20px;height:100%;transition:opacity .12s;position:absolute;top:0;left:-20px}.article-body .anchor:before{content:"#";color:var(--faint);font-weight:500}.article-body h2:hover .anchor,.article-body h3:hover .anchor,.article-body h4:hover .anchor{opacity:1}.article-body p,.article-body ul,.article-body ol,.article-body blockquote{margin:0 0 20px}.article-body ul,.article-body ol{padding-left:24px}.article-body li{margin-bottom:8px}.article-body li::marker{color:var(--faint)}.article-body a{color:var(--fg-strong);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1.5px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);transition:text-decoration-color .12s}.article-body a:hover{-webkit-text-decoration-color:var(--fg-strong);text-decoration-color:var(--fg-strong)}.article-body strong{color:var(--fg-strong);font-weight:700}.article-body blockquote{background:var(--bg-subtle);border-left:3px solid var(--fg-strong);color:var(--fg);border-radius:0 10px 10px 0;padding:18px 22px}.article-body blockquote p:last-child{margin-bottom:0}.article-body img{border-radius:10px;max-width:100%;height:auto;margin:8px 0}.article-body hr{border:0;border-top:1px solid var(--line);margin:36px 0}.article-body code{background:var(--bg-subtle);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.87em}.article-body pre{background:var(--bg-subtle);border:1px solid var(--line);border-radius:10px;margin:0 0 22px;padding:18px 20px;font-size:14px;line-height:1.6;overflow-x:auto}.article-body pre code{background:0 0;border:0;padding:0}.article-body table{border-collapse:collapse;-webkit-overflow-scrolling:touch;width:100%;margin:26px 0;font-size:15px;line-height:1.5;display:block;overflow-x:auto}.article-body th,.article-body td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px 14px 12px 0}.article-body th{color:var(--fg-strong);border-bottom:1.5px solid var(--line-strong);font-weight:700}.article-body th p,.article-body td p{margin:0}.faq-section{border-top:1px solid var(--line);margin:52px 0 0;padding-top:36px}.faq-section h2{letter-spacing:-.025em;color:var(--fg-strong);margin:0 0 6px;font-size:24px}.faq-section details{border-bottom:1px solid var(--line)}.faq-section summary{cursor:pointer;color:var(--fg-strong);padding:18px 28px 18px 0;font-weight:600;line-height:1.45;list-style:none;position:relative}.faq-section summary::-webkit-details-marker{display:none}.faq-section summary:after{content:"+";color:var(--faint);font-size:20px;font-weight:400;transition:transform .16s;position:absolute;top:15px;right:2px}.faq-section details[open] summary:after{transform:rotate(45deg)}.faq-section p{color:var(--muted);margin:0;padding:0 0 20px;line-height:1.65}.related-bottom{border-top:1px solid var(--line);margin-top:56px;padding-top:36px}.related-bottom h2{letter-spacing:-.025em;color:var(--fg-strong);margin:0 0 24px;font-size:22px}.related-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:32px 24px;display:grid}.related-card{flex-direction:column;gap:10px;display:flex}.related-thumb{aspect-ratio:16/9;background:var(--bg-subtle);border-radius:10px;display:block;overflow:hidden}.related-thumb img{object-fit:cover;width:100%;height:100%}.related-card h3{letter-spacing:-.01em;color:var(--fg-strong);margin:0;font-size:16px;line-height:1.35}.related-date{color:var(--faint);font-size:13px}.breadcrumb{color:var(--faint);align-items:center;gap:8px;margin-bottom:22px;font-size:13px;display:flex}.breadcrumb a:hover{color:var(--fg-strong)}.breadcrumb-current{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:55vw;overflow:hidden}.author-details{max-width:var(--readw);margin-top:36px}.author-details h2{letter-spacing:-.02em;color:var(--fg-strong);margin:0 0 16px;font-size:22px}.author-details ul{color:var(--muted);margin:0;padding-left:22px;line-height:1.7}.author-details li+li{margin-top:10px}.root-landing{place-items:center;min-height:100vh;padding:40px 24px;display:grid}.root-landing-card{text-align:center;width:min(560px,100%)}.root-landing-card h1{font-size:clamp(30px,5vw,44px)}.root-landing-link{background:var(--ink);min-height:44px;color:var(--ink-fg);border-radius:999px;justify-content:center;align-items:center;margin-top:28px;padding:0 22px;font-size:14px;font-weight:600;display:inline-flex}@media (max-width:1120px){.article-grid{grid-template-columns:var(--toc) minmax(0, var(--readw));gap:48px}.article-rail{display:none}}@media (max-width:900px){.article-grid{grid-template-columns:minmax(0, var(--readw))}.toc{display:none}.toc-mobile{display:block}.featured-card{grid-template-columns:1fr;gap:18px}}@media (min-width:1121px){.related-bottom.has-rail{display:none}}@media (max-width:640px){.site-header,.content,.site-footer{width:calc(100vw - 32px)}.site-nav a:not(.nav-cta){display:none}.article-body{font-size:16px}.article-body .anchor{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
