:root{--page:#f4f4f5;--soft-bg:#fafafa;--card:#fff;--ink:#151617;--heading:#323538;--secondary:#494f5c;--tertiary:#6f6f6f;--line:#e7e7e9;--soft:#f0f0f0;--radius-sheet:40px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "SF Pro", "Inter Variable", "Inter", "Segoe UI", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--card)}body{color:var(--secondary);background:var(--card);font:400 16px/1.6 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}a{color:var(--ink)}.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(20px,3.5vw,50px)}.doc{max-width:820px;margin:0 auto;padding:clamp(32px,6vh,64px) 0 clamp(64px,12vh,120px)}h1{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:clamp(28px,4vw,44px);font-weight:500;line-height:1.12}.updated{color:var(--tertiary);margin-top:14px;font-size:15px}.lead{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}h2{color:var(--ink);letter-spacing:-.02em;margin:52px 0 18px;scroll-margin-top:24px;font-size:clamp(20px,2.2vw,26px);font-weight:500;line-height:1.2}h3{color:var(--heading);margin:32px 0 12px;font-size:17px;font-weight:500}p{margin:0 0 14px}ul{margin:0 0 14px;padding-left:22px}li{margin-bottom:8px}b,strong{color:var(--heading);font-weight:500}.toc{border:1px solid var(--line);border-radius:18px;margin-top:36px;padding:24px 26px}.toc h2{color:var(--tertiary);margin:0 0 14px;font-size:15px;font-weight:400}.toc ol{columns:2;column-gap:32px;margin:0;padding-left:20px}.toc a{color:var(--secondary);text-decoration:none}.toc a:hover{color:var(--ink);text-decoration:underline}@media (width<=620px){.toc ol{columns:1}}.todo{color:var(--heading);background:#eef4ff;border-left:3px solid #0064ff;border-radius:14px;margin:28px 0;padding:18px 22px;font-size:15px}.todo b{color:#0050cc}mark{color:#0050cc;background:#dee9ff;border-radius:5px;padding:1px 6px;font-weight:500}.req{color:var(--heading);margin-top:8px}.req span{display:block}.post{grid-template-columns:260px minmax(0,1fr) 280px;align-items:start;gap:clamp(28px,4vw,64px);max-width:1320px;margin:0 auto;padding:clamp(24px,4vh,44px) 0 clamp(64px,12vh,120px);display:grid}@media (width<=1180px){.post{grid-template-columns:240px minmax(0,1fr)}.post .promo{display:none}}@media (width<=900px){.post{grid-template-columns:1fr}.post .toc{order:-1;position:static}}.toc{top:calc(var(--sticky-top,88px) + 24px);position:sticky}.toc h2{border-bottom:1px solid var(--line);color:var(--tertiary);font:500 12px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;padding-bottom:12px}.toc ol{margin:0;padding:0;list-style:none}.toc li{margin-bottom:12px}.toc a{color:var(--tertiary);font-size:15px;line-height:1.35;text-decoration:none;transition:color .18s}.toc a:hover{color:var(--ink)}.promo{top:calc(var(--sticky-top,88px) + 24px);background:#eef1fa;border-radius:24px;padding:18px;position:sticky}.promo__top{align-items:center;gap:10px;display:flex}.promo__tag{height:30px;color:var(--ink);background:#d9def3;border-radius:999px;align-items:center;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.promo__note{color:var(--tertiary);font-size:14px}.promo b{color:var(--ink);letter-spacing:-.01em;margin-top:14px;font-size:18px;font-weight:500;line-height:1.25;display:block}.promo p{color:var(--secondary);margin:8px 0 14px;font-size:14px;line-height:1.45}.promo__go{background:#d9def3;border-radius:999px;height:56px;text-decoration:none;display:block;position:relative;overflow:hidden}.promo__go img{object-fit:contain;width:auto;height:88%;transition:opacity .3s,transform .3s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.promo__go i{background:#fff;border-radius:50%;place-items:center;width:48px;height:48px;transition:transform .38s cubic-bezier(.32,.72,.3,1);display:grid;position:absolute;top:4px;left:4px}.promo__go i svg{fill:none;width:18px;height:18px;stroke:var(--ink);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.promo__label{color:#494f5c8c;font:500 15px/1 var(--font);opacity:0;transition:opacity .25s .1s;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.promo__go:hover img{opacity:0;transform:translate(12px,-50%)}.promo__go:hover i{transform:translateX(calc(var(--promo-w,240px) - 56px))}.promo__go:hover .promo__label{opacity:1}@media (prefers-reduced-motion:reduce){.promo__go img,.promo__go i,.promo__label{transition:none}}.body h1{color:var(--ink);letter-spacing:-.03em;text-wrap:balance;margin:10px 0 0;font-size:clamp(30px,3.8vw,46px);font-weight:500;line-height:1.1}.kicker{height:26px;color:var(--secondary);background:#f2f2f4;border-radius:999px;align-items:center;gap:7px;margin:0;padding:0 11px 0 9px;font-size:12.5px;font-weight:500;display:inline-flex}.kicker:before{content:"";background:#0064ff;border-radius:50%;width:7px;height:7px}.meta{color:var(--tertiary);flex-wrap:wrap;align-items:center;gap:12px;margin:34px 0 36px;padding-bottom:0;font-size:15px;display:flex}.meta img{border-radius:var(--radius-pill,999px);object-fit:cover;flex:none;width:44px;height:44px}.meta b{color:var(--ink);font-weight:500}.hero{color:#fff;background:linear-gradient(150deg,#0b3fd6,#0064ff 60%,#3d86ff);border-radius:22px;align-content:end;min-height:clamp(220px,26vw,340px);margin:28px 0 32px;padding:clamp(24px,3vw,40px);display:grid}.hero span{letter-spacing:-.03em;color:#ffffffeb;font-size:clamp(28px,4vw,52px);font-weight:500;line-height:1.05}.body h2{color:var(--ink);letter-spacing:-.025em;margin:46px 0 14px;scroll-margin-top:20px;font-size:clamp(23px,2.8vw,30px);font-weight:500;line-height:1.18}.body h3{color:var(--ink);margin:30px 0 10px;font-size:18px;font-weight:500}.body p{margin:0 0 15px}.meta+p{margin-top:0}.body ul,.body ol{margin:0 0 18px;padding-left:22px}.body li{margin-bottom:9px}.body ul{padding-left:26px;list-style:none}.body ul>li{position:relative}.body ul>li:before{content:"";background:#0064ff;border-radius:50%;width:6px;height:6px;position:absolute;top:.62em;left:-18px}.body ol>li::marker{color:#0064ff;font-weight:500}.body b{color:var(--ink);font-weight:500}.body figure{margin:26px 0}.body figure img{border-radius:18px;width:100%;height:auto;display:block}.body figcaption{color:var(--tertiary);margin-top:10px;font-size:14px}.pull{color:var(--ink);letter-spacing:-.01em;border-left:3px solid #0064ff;margin:26px 0;padding:2px 0 2px 22px;font-size:19px;line-height:1.5}.nums{border:1px solid var(--line);background:var(--line);border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:26px 0;display:grid;overflow:hidden}.nums div{background:var(--card);padding:20px 18px}.nums b{color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:400;line-height:1;display:block}.nums span{color:var(--tertiary);margin-top:8px;font-size:14px;line-height:1.35;display:block}.inline-cta{background:#eef1fa;border-radius:24px;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:24px;margin:40px 0;padding:22px 24px;display:grid}.inline-cta b{color:var(--ink);letter-spacing:-.01em;font-size:19px;font-weight:500;line-height:1.25;display:block}.inline-cta p{color:var(--secondary);margin:8px 0 0;font-size:15px;line-height:1.45}.inline-cta>a{height:56px;color:var(--ink);background:#d9def3;border-radius:999px;font-size:15px;font-weight:500;text-decoration:none;display:block;position:relative;overflow:hidden}.inline-cta>a img{object-fit:contain;width:auto;height:88%;transition:opacity .3s,transform .3s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.inline-cta>a i{background:#fff;border-radius:50%;place-items:center;width:48px;height:48px;transition:transform .38s cubic-bezier(.32,.72,.3,1);display:grid;position:absolute;top:4px;left:4px}.inline-cta>a i svg{fill:none;width:18px;height:18px;stroke:var(--ink);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.inline-cta>a span{color:#494f5c8c;opacity:0;transition:opacity .25s .1s;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.inline-cta>a:hover img{opacity:0;transform:translate(12px,-50%)}.inline-cta>a:hover i{transform:translate(164px)}.inline-cta>a:hover span{opacity:1}@media (width<=640px){.inline-cta{grid-template-columns:1fr}.inline-cta>a:hover i{transform:translate(calc(100% - 56px))}}.faq h3{margin:26px 0 8px;font-size:19px}.post .toc{border:0;border-radius:0;margin:0;padding:0}.post .toc ol,.post .toc li:first-child{margin-top:0}.post .toc ol{columns:auto}.post .toc li{position:relative}.post .toc a{padding-left:18px;display:block}.post .toc a:before{content:"→";color:#0064ff;opacity:0;transition:opacity .2s,transform .2s;position:absolute;left:0;transform:translate(-4px)}.post .toc a.is-current{color:var(--ink);font-weight:500}.post .toc a.is-current:before{opacity:1;transform:none}.meta .author{color:var(--ink);border-bottom:1px solid #0000;font-weight:500;text-decoration:none;transition:border-color .18s}.meta .author:hover{border-bottom-color:var(--ink)}.share{align-items:center;gap:6px;margin-left:auto;display:flex}.share__btn{border-radius:var(--radius-pill,999px);width:34px;height:34px;color:var(--tertiary);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:color .18s,background .18s;display:grid}.share__btn:hover{color:var(--ink);background:var(--soft-bg)}.share__btn svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.share__btn.is-copied{color:#0064ff}.page{z-index:1;background:var(--card);position:relative}.page:after{display:none}.foot{background:var(--soft-bg);color:var(--heading)}.foot__inner{max-width:1440px;margin:0 auto;padding:clamp(56px,9vh,96px) clamp(20px,3.5vw,50px) clamp(28px,4vh,40px)}.foot__top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:40px;display:flex}.foot__mark{color:var(--ink);font:500 clamp(22px, 2vw, 28px)/1 var(--font);letter-spacing:-.03em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.foot__mark img{width:32px;height:32px}.foot__tagline{color:var(--secondary);margin:14px 0 0;font-size:16px}.foot__support{flex-direction:column;gap:12px;display:flex}.foot__label{color:var(--tertiary);font:400 14px/1.3 var(--font);margin:0}.foot__mail{color:var(--ink);font:500 clamp(26px, 3.4vw, 46px)/1.05 var(--font);letter-spacing:-.035em;text-decoration:none}.foot__columns{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,48px);margin-top:clamp(48px,7vh,84px);display:grid}.foot__col ul{margin:18px 0 0;padding:0;list-style:none}.foot__col li+li{margin-top:12px}.foot__col a{color:var(--ink);font:400 16px/1.35 var(--font);text-decoration:none}.foot__col a:hover{color:var(--secondary)}.foot__bottom{color:var(--tertiary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(56px,10vh,120px);font-size:14px;display:flex}.foot__legal{flex-wrap:wrap;gap:clamp(16px,2vw,32px);display:flex}.foot__legal a{color:inherit;text-decoration:none}.foot__legal a:hover{color:var(--ink)}@media (width<=860px){.foot__columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.foot__columns{grid-template-columns:1fr}.foot__bottom{flex-direction:column;align-items:flex-start}}@media (hover:none),(width<=760px){.inline-cta>a img{opacity:1;transform:translateY(-50%)}.inline-cta>a i{transform:none}.inline-cta>a span{opacity:0}.inline-cta>a:hover img{opacity:1;transform:translateY(-50%)}.inline-cta>a:hover i{transform:none}.inline-cta>a:hover span{opacity:0}.promo__go:hover img{opacity:1;transform:translateY(-50%)}.promo__go:hover i{transform:none}.promo__go:hover .promo__label{opacity:0}}.post>.body,.post>.toc,.post>.promo{min-width:0}@media (width<=900px){.post .toc,.toc__fold,.toc__fold ol,.toc__fold summary{box-sizing:border-box;max-width:100%}.toc__fold ol{columns:1;padding-left:0}.toc__fold{margin:0}.toc__fold summary{color:var(--ink);font:500 15px/1 var(--font);cursor:pointer;align-items:center;gap:8px;padding:12px 0;list-style:none;display:flex}.toc__fold summary::-webkit-details-marker{display:none}.toc__fold summary:after{content:"";border-right:1.6px solid var(--tertiary);border-bottom:1.6px solid var(--tertiary);width:8px;height:8px;transition:transform .2s;transform:rotate(45deg)translate(-2px,-2px)}.toc__fold[open] summary:after{transform:rotate(-135deg)translate(-2px,-2px)}.toc__fold ol{padding-bottom:8px}.post .toc{border-bottom:1px solid var(--line);padding-bottom:4px}.post .toc h2{display:none}}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:20px;min-width:0;max-width:100%;margin:26px 0;overflow-x:auto}.cmp{border-collapse:separate;border-spacing:0;width:100%;min-width:640px;font-size:15px}.cmp th,.cmp td{border:0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 18px}.cmp tr:last-child td,.cmp tr:last-child th{border-bottom:0}.cmp thead th{color:var(--tertiary);font:500 13px/1.3 var(--font);background:#f7f7f8}.cmp tbody th{width:24%;color:var(--heading);font:500 15px/1.5 var(--font);background:#f7f7f8}.cmp td{color:var(--heading);line-height:1.5}.cmp tbody tr:hover td{background:#fcfcfd}@media (width<=640px){.cmp{font-size:14px}.cmp th,.cmp td{padding:12px 14px}}.meta__date{color:var(--tertiary)}.meta__date:before{content:"· "}@media (width<=640px){.meta{grid-template-columns:auto 1fr;align-items:center;gap:10px 12px;display:grid}.meta img{grid-area:1/1}.meta>span{grid-area:1/2;justify-self:start}.meta__date{grid-area:2/1/auto/-1;justify-self:start}.meta__date:before{content:none}.share{grid-area:2/1/auto/-1;justify-self:end;margin:0 -6px 0 0}}