.article-page{gap:clamp(60px,8vw,100px)}.article-page>article{flex-direction:column;gap:clamp(40px,6vw,70px);display:flex}.article-hero{border-radius:var(--radius-xl);background:linear-gradient(180deg, var(--gray-100), var(--white));text-align:center;flex-direction:column;align-items:center;gap:22px;padding:clamp(40px,6vw,70px) clamp(20px,5vw,60px) 0;display:flex}.article-hero__back{color:var(--gray-500);align-self:flex-start;font-size:14px}.article-hero__back:hover{color:var(--ink)}.article-hero__meta{color:var(--gray-500);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.article-hero__title{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;max-width:900px;font-size:clamp(34px,5vw,60px);font-weight:600;line-height:1.08}.article-hero__lead{max-width:700px;font-size:19px}.article-hero__author{text-align:left;align-items:center;gap:12px;display:flex}.article-hero__author img{object-fit:cover;border-radius:50%;width:44px;height:44px}.article-hero__author>div{flex-direction:column;gap:2px;display:flex}.article-hero__author-name{font-family:var(--font-display);font-size:16px;font-weight:500}.article-hero__author a{color:var(--gray-500);font-size:13px}.article-hero__author a:hover{color:var(--ink)}.article-hero__cover{aspect-ratio:1200/630;object-fit:cover;border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:1000px;margin-top:18px}.article-layout{grid-template-columns:minmax(0,720px) 270px;justify-content:space-between;gap:60px;padding:0 clamp(0px,2vw,20px);display:grid}.article-aside{position:relative}.article-toc{background:var(--gray-100);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:22px;display:flex;position:sticky;top:110px}.article-toc__title{color:var(--gray-500);font-size:13px}.article-toc ul{flex-direction:column;gap:10px;display:flex}.article-toc a{font-size:14px;line-height:1.35;display:block}.article-toc a:hover{color:var(--orange)}@media (max-width:960px){.article-layout{grid-template-columns:1fr}.article-aside{display:none}}.next-post{background:var(--gray-100);border-radius:var(--radius-xl);transition:background-color var(--dur) var(--ease);grid-template-columns:minmax(0,360px) 1fr;align-items:center;gap:30px;padding:12px;display:grid}.next-post:hover{background:var(--gray-200)}.next-post img{aspect-ratio:1200/630;object-fit:cover;border-radius:var(--radius-lg);width:100%}.next-post__body{flex-direction:column;gap:12px;padding:10px 20px 10px 0;display:flex}.next-post__title{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;font-size:clamp(22px,2.6vw,30px);font-weight:500;line-height:1.2}@media (max-width:700px){.next-post{grid-template-columns:1fr;gap:16px}.next-post__body{padding:0 14px 18px}}.blog-prose{color:var(--gray-500);min-width:0;font-size:18px;line-height:1.65}.blog-prose>*+*{margin-top:20px}.blog-prose>p:first-child{color:var(--ink);font-size:21px;line-height:1.5}.blog-prose strong{color:var(--ink)}.blog-prose a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange);text-underline-offset:3px}.blog-prose a:hover{color:var(--orange)}.blog-prose h2{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);text-wrap:balance;margin-top:64px;font-size:clamp(28px,3.2vw,36px);font-weight:600;line-height:1.15}.blog-prose h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin-top:40px;font-size:23px;font-weight:500;line-height:1.25}.blog-prose h2+*,.blog-prose h3+*{margin-top:16px}.blog-prose ul,.blog-prose ol{flex-direction:column;gap:10px;padding-left:0;display:flex}.blog-prose ul>li{padding-left:26px;position:relative}.blog-prose ul>li:before{content:"";background:var(--orange);border-radius:50%;width:8px;height:8px;position:absolute;top:.62em;left:4px}.blog-prose ol{counter-reset:prose-ol}.blog-prose ol>li{counter-increment:prose-ol;padding-left:34px;position:relative}.blog-prose ol>li:before{content:counter(prose-ol);background:var(--grad-green);width:24px;height:24px;color:var(--orange);font-family:var(--font-display);text-align:center;border-radius:50%;font-size:13px;font-weight:600;line-height:24px;position:absolute;top:.2em;left:0}.blog-prose blockquote{border-left:3px solid var(--orange);font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin-top:32px;margin-bottom:12px;padding:6px 0 6px 24px;font-size:24px;font-weight:500;line-height:1.35}.blog-prose blockquote p{margin:0}.blog-prose hr{border:0;border-top:1px solid var(--ink-a10);margin:48px 0}.blog-prose img{border-radius:var(--radius-lg)}.blog-prose code{background:var(--gray-100);border-radius:6px;padding:2px 6px;font-size:.9em}.blog-callout{background:var(--gray-100);border-radius:var(--radius-xl);color:var(--ink);padding:26px 30px;font-size:17px;line-height:1.55}.blog-callout>*+*{margin-top:12px}.blog-framework__grid{gap:14px;display:grid}.blog-framework__grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.blog-framework__grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.blog-framework__cell{background:var(--gray-100);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:22px;font-size:15px;line-height:1.5;display:flex}.blog-framework__cell strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:19px;font-weight:500}.blog-framework__cell--dark{background:var(--grad-green);color:var(--gray-300)}.blog-framework__cell--dark strong{color:var(--white)}.blog-framework__cell--accent{background:var(--orange);color:var(--ink)}.blog-table-wrap{border-radius:var(--radius-lg);background:var(--gray-100);overflow-x:auto}.blog-table-wrap table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.45}.blog-table-wrap th{text-align:left;font-family:var(--font-display);color:var(--white);background:var(--green);padding:16px 18px;font-size:15px;font-weight:500}.blog-table-wrap td{border-top:1px solid var(--ink-a10);color:var(--gray-700);vertical-align:top;padding:14px 18px}.blog-table-wrap td strong{color:var(--ink)}.blog-table-wrap tr:last-child td{font-weight:400}.blog-cta{background:var(--grad-green);border-radius:var(--radius-xl);color:var(--gray-300);flex-direction:column;gap:14px;padding:clamp(28px,4vw,40px);display:flex;margin-top:40px!important}.blog-cta h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--white);margin:0;font-size:26px;font-weight:500;line-height:1.2}.blog-cta p{font-size:16px;line-height:1.5}.blog-cta .btn-row{margin-top:8px}.blog-cta .btn--green{background:var(--orange);color:var(--ink);box-shadow:var(--shadow-orange)}.blog-cta .btn--green .btn__chip{background:var(--ink);color:var(--orange)}.blog-cta .btn--bordered{color:var(--white);border-color:var(--white-a30)}.blog-cta .btn--bordered:hover{background:var(--white-a04);color:var(--white)}.blog-cta a.btn{text-decoration:none}.blog-figure{background:var(--gray-100);border-radius:var(--radius-xl);flex-direction:column;gap:20px;margin:32px 0 0;padding:clamp(22px,3vw,32px);display:flex}.blog-figure__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:19px;font-weight:500;line-height:1.3}.blog-figure__meta{color:var(--gray-500);flex-direction:column;gap:4px;font-size:13px;line-height:1.45;display:flex}.blog-chart{flex-direction:column;gap:14px;display:flex}.blog-chart__row{grid-template-columns:minmax(0,200px) 1fr 64px;align-items:center;gap:14px;font-size:15px;line-height:1.3;display:grid}.blog-chart__label{color:var(--gray-700)}.blog-chart__track{background:var(--white);border-radius:var(--radius-sm);height:28px;overflow:hidden}.blog-chart__bar{background:var(--grad-green);border-radius:var(--radius-sm);height:100%}.blog-chart__row:last-child .blog-chart__bar{background:var(--grad-orange)}.blog-chart__value{font-family:var(--font-display);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.blog-prose ol.blog-steps{counter-reset:steps;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px;display:grid}.blog-prose ol.blog-steps>li{counter-increment:steps;background:var(--white);border-radius:var(--radius-lg);color:var(--ink);flex-direction:column;gap:10px;padding:18px;font-size:15px;line-height:1.35;display:flex}.blog-prose ol.blog-steps>li:before{content:counter(steps);background:var(--green);width:30px;height:30px;color:var(--white);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:14px;display:grid;position:static}.blog-prose ol.blog-steps>li:last-child{background:var(--orange)}.blog-prose ol.blog-steps>li:last-child:before{background:var(--ink);color:var(--orange)}.blog-template{border-radius:var(--radius-xl);background:var(--gray-50);box-shadow:0 0 0 2px var(--orange)}.blog-template:not([open]){animation:template-glow 2.4s var(--ease) infinite}.blog-template summary{cursor:pointer;background:var(--grad-orange);border-radius:var(--radius-xl);color:var(--ink);transition:filter var(--dur) var(--ease);align-items:center;gap:16px;padding:20px 22px;list-style:none;display:flex}.blog-template summary:hover{filter:brightness(1.05)}.blog-template summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.blog-template summary::-webkit-details-marker{display:none}.blog-template[open] summary{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.blog-template__icon{border-radius:var(--radius-md);background:var(--ink);width:46px;height:46px;color:var(--orange);flex:none;place-items:center;display:grid}.blog-template__label{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.blog-template__title{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px;font-weight:500;line-height:1.25}.blog-template__hint{color:var(--ink-850);opacity:.8;font-size:14px;line-height:1.35}.blog-template__toggle{background:var(--white);width:36px;height:36px;transition:transform var(--dur) var(--ease);border-radius:50%;flex:none;position:relative}.blog-template__toggle:before,.blog-template__toggle:after{content:"";background:var(--ink);border-radius:2px;width:14px;height:2px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.blog-template__toggle:after{transform:translate(-50%,-50%)rotate(90deg)}.blog-template:not([open]) .blog-template__toggle{animation:template-nudge 2.4s var(--ease) infinite}.blog-template[open] .blog-template__toggle{transform:rotate(45deg)}.blog-template__body{padding:26px;font-size:16px;line-height:1.6}.blog-template__body>*+*{margin-top:14px}.blog-template__body p strong{font-family:var(--font-display);font-weight:500}@keyframes template-glow{0%,to{box-shadow:0 0 0 2px var(--orange), 0 0 0 0 #ff8c1f66}50%{box-shadow:0 0 0 2px var(--orange), 0 0 0 10px #ff8c1f00}}@keyframes template-nudge{0%,60%,to{transform:scale(1)}30%{transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.blog-template:not([open]),.blog-template:not([open]) .blog-template__toggle{animation:none}}.blog-prose .blog-jump a.btn{color:var(--ink);text-decoration:none}.blog-prose .faq-list{margin-top:20px}.blog-prose .faq-q{font-size:18px}.blog-prose .faq-a{font-size:16px}@media (max-width:640px){.blog-prose{font-size:17px}.blog-prose>p:first-child{font-size:19px}.blog-callout{padding:22px}.blog-chart__row{grid-template-columns:1fr 56px;gap:6px 12px}.blog-chart__label{grid-column:1/-1}.blog-template__body{padding:20px}.blog-template summary{gap:12px;padding:16px}.blog-template__icon{width:40px;height:40px}.blog-template__title{font-size:17px}}
