[hidden]{display:none!important}

.sfp-blog,.sfp-article{overflow-x:clip}
.sfp-blog *, .sfp-article *, .article-float *{box-sizing:border-box;min-width:0}
.sfp-blog-hero{padding-block:var(--space-hero-crumb) var(--space-4);background:var(--paper);color:var(--ink)}
.sfp-blog-hero h1{font-family:var(--f-head);font-size:var(--text-section);line-height:var(--lh-heading);letter-spacing:-.035em;margin:0;overflow-wrap:break-word}
.sfp-blog-intro{max-width:52rem;margin:var(--space-3) 0 0;color:var(--muted);font-size:var(--text-base);line-height:var(--lh-body)}
.sfp-blog-count{display:inline-flex;align-items:center;gap:var(--space-1);margin:var(--space-3) 0 0;font-size:var(--text-sm);font-variant-numeric:tabular-nums}
#blg-article-count{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding-inline:var(--space-1);border-radius:var(--r-pill);background:var(--sand);color:var(--sand-ink);line-height:1;font-weight:var(--weight-label)}
.sfp-blog-content{padding-block:var(--space-4) var(--space-5)}
.sfp-blog-panel + .sfp-blog-panel{margin-top:var(--space-5)}
.blg-magazine{margin-bottom:var(--space-3)}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:stretch}
.blog-grid.sfp-blog-months{display:block}
.sfp-blog-month{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:var(--space-3);position:relative}
.sfp-blog-month + .sfp-blog-month{margin-top:var(--space-4)}
.sfp-blog-month__label{font-family:var(--f-head);font-size:var(--text-sm);line-height:var(--lh-small);margin:0;padding-top:var(--space-2);font-variant-numeric:tabular-nums;color:var(--muted);overflow-wrap:break-word}
.sfp-blog-month__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:stretch;position:relative}
.sfp-blog-month__cards::before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--space-2) * -1);width:1px;background:var(--line)}
.sfp-blog-month__label::after{content:"";position:absolute;left:calc(7.5rem + var(--space-1) - 3px);top:var(--space-3);width:7px;height:7px;border-radius:var(--r-pill);background:var(--primary)}
.sfp-blog-month__cards--lead{grid-template-columns:minmax(0,1fr)}
.blog-card.blg-featured{display:flex;flex-direction:column;gap:0;grid-column:1/-1;height:auto;min-height:0;align-self:start;overflow:hidden;text-decoration:none;border-radius:var(--r-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card);transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}
.blog-card.blg-featured:hover{transform:translateY(-3px);box-shadow:var(--shadow-window)}
.blog-card.blg-featured:focus-visible,.sfp-blog-entry:focus-visible,.article-cta-link:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.blg-featured__media{position:relative;width:100%;height:clamp(15rem,24vw,20rem);background:var(--dark);color:var(--dark-card-ink);overflow:hidden}
.blg-featured__img{display:block;width:100%;height:100%;object-fit:cover}
.blg-featured__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,20,24,.05),rgba(26,20,24,.94));color:var(--dark-card-ink);pointer-events:none}
.blg-featured__overlay{position:absolute;inset:auto var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}
.blg-featured__pill{display:inline-flex;align-items:center;gap:.4em;padding:.4em .9em;line-height:1;width:fit-content;align-self:flex-start;border-radius:var(--r-pill);background:var(--dark-card);color:#fff;font-size:var(--text-xs)}
.blg-featured__hl{margin:0;font-family:var(--f-head);font-size:clamp(1.35rem,2.1vw,1.6rem);line-height:var(--lh-tight);letter-spacing:-.025em;color:#fff;overflow-wrap:break-word}
.blg-featured__body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);flex:1}
.blg-featured__excerpt{margin:0 0 var(--space-2);font-size:var(--text-base);line-height:var(--lh-body);color:var(--muted);overflow-wrap:break-word}
.blg-featured__meta{margin-top:auto;border-top:1px solid var(--line);padding-top:var(--space-2);color:var(--muted)}
.blg-featured__hint{font-size:var(--text-xs);line-height:var(--lh-small);font-variant-numeric:tabular-nums}
.blog-card.blg-featured.blg-compact{grid-column:auto;display:flex;flex-direction:column;height:100%;align-self:stretch}
.blg-featured.blg-compact .blg-featured__media{height:15rem}
.blg-featured.blg-compact .blg-featured__hl{font-size:1.2rem;line-height:var(--lh-tight)}
.blg-featured.blg-compact .blg-featured__overlay{inset:auto var(--space-3) var(--space-3)}
.sfp-blog-empty{padding:var(--space-4);border-radius:var(--r-lg);background:var(--sand);color:var(--sand-ink)}
.sfp-blog-empty>h2{font-family:var(--f-head);font-size:var(--text-read);line-height:var(--lh-tight);margin:0}
.sfp-blog-empty>p{margin:var(--space-2) 0 var(--space-3);line-height:var(--lh-body);color:var(--sand-muted)}
.sfp-blog-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:stretch}
.sfp-blog-entry{display:flex;flex-direction:column;gap:var(--space-3);height:100%;padding:var(--space-3);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);text-decoration:none}
.sfp-blog-entry h3{margin:0;font-family:var(--f-head);font-size:var(--text-lg);line-height:var(--lh-tight)}
.sfp-blog-entry p{margin:0;color:var(--muted);line-height:var(--lh-body)}
.sfp-blog-entry>span{margin-top:auto;font-weight:var(--weight-label)}
.sfp-blog-entry:hover>span{color:var(--primary)}
.sfp-blog-closing{padding-block:var(--space-5) var(--space-close);background:var(--paper);color:var(--ink)}
.sfp-blog-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-4);border-radius:var(--r-lg);background:var(--dark);color:var(--dark-card-ink)}
.sfp-blog-cta h2{font-family:var(--f-head);font-size:var(--text-read);line-height:var(--lh-tight);margin:0;color:var(--dark-card-ink)}
.sfp-blog-cta p{margin:var(--space-2) 0 0;color:var(--dark-muted);line-height:var(--lh-body)}
.sfp-blog-cta-actions{display:flex;flex-direction:column;gap:var(--space-2);align-items:stretch}
.sfp-blog-cta .c-btn--ghost{color:var(--dark-card-ink);border:1px solid color-mix(in srgb,currentColor 45%,transparent)}

.crumb ol{display:flex;flex-wrap:nowrap;align-items:center;gap:0;min-width:0;margin:0;padding:0;list-style:none}
.crumb li{display:flex;align-items:center;flex:0 0 auto;min-width:0;white-space:nowrap}
.crumb li:last-child{flex:1 1 auto;overflow:hidden}
.crumb li+li::before{content:"/";flex:none;margin-inline:.6rem;color:var(--faint)}
.crumb [aria-current="page"]{display:block;min-width:0;max-width:38ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crumb{font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-4)}
.crumb a{color:var(--muted);text-underline-offset:.2em}
.crumb a:hover{color:var(--primary)}

.sfp-article{padding-top:var(--space-hero-crumb);padding-bottom:var(--space-close);background:var(--paper);color:var(--ink)}
.sfp-article>*{width:min(calc(100% - var(--gutter)*2),56rem);margin-inline:auto;padding-inline:0}
.sfp-article-head{margin-bottom:var(--space-3)}
.sfp-article-head h1{font-family:var(--f-head);font-size:var(--text-section);line-height:var(--lh-heading);letter-spacing:-.035em;margin:0;overflow-wrap:break-word}
.sfp-article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}
.blog-article-date,.blog-article-lead{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4em;width:fit-content;padding:.4em .9em;border-radius:var(--r-pill);line-height:var(--lh-small);font-size:var(--text-sm);margin:0;background:var(--sand);color:var(--sand-ink);font-variant-numeric:tabular-nums}
.article-hero{margin-top:0;margin-bottom:var(--space-3);overflow:hidden;border-radius:var(--r-lg)}
.article-hero img{display:block;width:100%;height:clamp(13rem,30vw,28rem);max-height:28rem;object-fit:cover}
.blog-article-body{font-size:var(--text-base);line-height:var(--lh-body);overflow-wrap:break-word}
:where(.blog-article-body) :is(h2,h3,p,dl,ul,ol,pre,blockquote,figure){margin:0}
.blog-article-body h2,.blog-article-body h3{font-family:var(--f-head);font-size:var(--text-read);line-height:var(--lh-tight);color:var(--ink);margin-top:var(--space-4);margin-bottom:var(--space-2)}
.blog-article-body h3{margin-top:var(--space-3)}
.blog-article-body :is(h2,h3)[id]{scroll-margin-top:calc(var(--header-height) + var(--space-3))}
.blog-article-body p,.blog-article-body ul,.blog-article-body ol{margin-bottom:var(--space-3)}
.blog-article-body ul,.blog-article-body ol{padding-left:var(--space-3)}
.blog-article-body li+li{margin-top:var(--space-1)}
.blog-article-body a:not(.c-btn){color:var(--primary);text-underline-offset:.2em}
.blog-article-body a:not(.c-btn):hover{color:var(--primary-hover)}
.blog-article-body pre{position:relative;overflow-x:auto;max-width:100%;margin-block:var(--space-3);padding:var(--space-3);border-radius:var(--r-md);background:var(--dark);color:var(--dark-card-ink);font-size:var(--text-sm);line-height:var(--lh-body)}
.blog-article-body code{font-family:var(--f-mono);overflow-wrap:anywhere}
.blog-article-body p code,.blog-article-body li code{padding:.1em .3em;border-radius:var(--r-sm);background:var(--sand);color:var(--sand-ink)}
.blog-article-body pre code{overflow-wrap:normal;white-space:pre}
.blog-article-body blockquote{margin-block:var(--space-3);padding:var(--space-2) var(--space-3);border-left:3px solid var(--primary);background:var(--fog);color:var(--fog-ink);border-radius:0 var(--r-md) var(--r-md) 0}
.blog-article-body blockquote p{margin:0}
.blog-article-body dl{margin-block:var(--space-3)}
.blog-article-body dt{font-weight:var(--weight-label);margin-bottom:var(--space-1)}
.blog-article-body dd{margin:0 0 var(--space-2);padding-left:var(--space-2);border-left:1px solid var(--line);color:var(--muted)}
.blog-article-body .table-scroll{position:relative;overflow-x:auto;max-width:100%;margin-block:var(--space-3)}
.blog-article-body table{display:table;width:100%;border-collapse:collapse;background:var(--surface);color:var(--ink);font-size:var(--text-sm);text-align:left}
.blog-article-body th,.blog-article-body td{padding:var(--space-2);border-bottom:1px solid var(--line);vertical-align:top;text-align:left;overflow-wrap:break-word}
.blog-article-body th{background:var(--sand);color:var(--sand-ink);font-weight:var(--weight-label)}
.blog-article-body mark{background:var(--apricot);color:var(--apricot-ink);padding:.1em .2em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.blog-article-body del{color:var(--faint)}
.blog-article-body img{display:block;max-width:100%;height:auto;border-radius:var(--r-md);box-shadow:var(--shadow-card)}
.blog-article-body figure{margin-block:var(--space-3)}
.blog-article-body figcaption{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm);text-align:center}
.article-toc{margin-block:var(--space-3);padding:var(--space-3);border-left:3px solid var(--primary);border-radius:0 var(--r-lg) var(--r-lg) 0;background:var(--sand);color:var(--sand-ink)}
.blog-article-body .article-toc__title{font-family:var(--f-head);font-weight:var(--weight-heading);color:var(--primary);margin:0 0 var(--space-2)}
.blog-article-body .article-toc__list{margin:0;padding-left:var(--space-3)}
.article-toc__list>li::marker{color:var(--primary);font-weight:var(--weight-label)}
.blog-article-body .article-toc__sublist{margin:var(--space-1) 0 0;padding-left:var(--space-3);font-size:var(--text-sm)}
.article-faq__item{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line)}
.article-faq__item:first-child{border-top:1px solid var(--line)}
.article-faq__q{padding:var(--space-2) var(--space-3);font-weight:var(--weight-label);cursor:pointer;line-height:var(--lh-small)}
.article-faq__q::marker{color:var(--primary)}
.article-faq__a{margin-inline:var(--space-3);padding:var(--space-2) var(--space-2);border-top:1px solid var(--line);background:var(--surface);color:var(--ink)}
.article-faq__a p:last-child{margin-bottom:0}
.article-further-reading{margin-block:var(--space-3)}
.blog-article-body .article-further-reading h3{margin-top:0}
.blog-article-body .article-further-reading ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
.blog-article-body .article-further-reading li{margin:0}
.article-cta-link{display:block;height:100%;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);text-decoration:none;transition:transform var(--duration) var(--ease)}
.article-cta-link::after{content:"→";margin-inline-start:.5em}
.article-cta-link:hover{transform:translateY(-2px)}
.article-mac-promo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-block:var(--space-3);padding:var(--space-3);border-radius:var(--r-lg);background:var(--sand);color:var(--sand-ink)}
.blog-article-body .article-mac-promo p{margin:0;flex:1 1 18rem}
.article-mac-promo strong{display:block;font-family:var(--f-head);font-size:var(--text-lg);line-height:var(--lh-tight)}
.sfp-promo-price{display:block;margin-top:var(--space-1);font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--price)}
.sfp-promo-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.article-float{position:fixed;right:var(--space-3);bottom:var(--space-3);z-index:30;width:min(18rem,calc(100vw - var(--gutter)*2));padding:var(--space-2);border-top:3px solid var(--primary);border-radius:var(--r-lg);background:var(--dark);color:var(--dark-card-ink);box-shadow:var(--shadow-window)}
.sfp-float-top{display:flex;align-items:flex-start;gap:var(--space-1);margin-bottom:var(--space-2)}
.sfp-float-title{flex:1;margin:0;font-family:var(--f-head);font-size:var(--text-sm);font-weight:var(--weight-label);line-height:var(--lh-small)}
.sfp-float-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--line-dark);border-radius:var(--r-pill);background:var(--dark-card);color:var(--dark-card-ink);cursor:pointer}
.sfp-float-close svg{width:1.1rem;height:1.1rem}
.sfp-float-close:focus-visible{outline:2px solid var(--dark-card-ink);outline-offset:3px}
.article-float>.c-btn{width:100%;white-space:normal}

@media(max-width:900px){
.article-float{display:none!important}
}
@media(max-width:48rem){
.sfp-blog-month{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
.sfp-blog-month__label{padding-top:0}
.sfp-blog-month__label::after,.sfp-blog-month__cards::before{display:none}
.sfp-blog-month__cards,.blog-grid,.sfp-blog-entry-grid,.blog-article-body .article-further-reading ul{grid-template-columns:minmax(0,1fr)}
.sfp-blog-cta{grid-template-columns:minmax(0,1fr)}
.sfp-blog-cta-actions{margin-top:var(--space-2)}
.sfp-blog-empty,.sfp-blog-cta{padding:var(--space-3)}
.sfp-blog-hero{padding-top:var(--space-hero-crumb)}
.blg-featured__media,.blg-featured.blg-compact .blg-featured__media{height:16rem}
.blg-featured__hl{font-size:1.3rem}
.sfp-promo-actions{width:100%;flex-direction:column;align-items:stretch}
.sfp-promo-actions .c-btn,.sfp-blog-cta-actions .c-btn{white-space:normal;text-align:center}
}
@media(prefers-reduced-motion:reduce){
.blog-card.blg-featured,.article-cta-link{transition:none}
.blog-card.blg-featured:hover,.article-cta-link:hover{transform:none}
}
