.article-card{gap:var(--space-3);flex-direction:column;display:flex}.article-card-cover{aspect-ratio:16/9;margin:calc(-1 * var(--space-2)) 0 var(--space-1);border:1px solid var(--faint);background:var(--gray-100);border-radius:0;display:block;position:relative;overflow:hidden}.article-card-cover-img{object-fit:cover}.article-card-meta{align-items:center;gap:var(--space-3);font-family:var(--font-mono);color:var(--fg-muted);font-size:.8rem;display:flex}.article-card-meta .share-x{margin-left:auto}.share-x{align-items:center;gap:var(--space-2);color:var(--fg-muted);display:inline-flex}.share-x svg{display:block}.share-x:hover{color:var(--accent)}.article-share-bottom{align-items:center;gap:var(--space-4);margin-top:var(--space-10);display:flex}.article-share-bottom-label{font-family:var(--font-mono);color:var(--fg-muted);font-size:.8rem}.share-x--icon{padding:var(--space-2);border:1px solid var(--faint);border-radius:0;line-height:0;transition:color .15s,border-color .15s}.share-x--icon:hover{border-color:var(--accent)}[data-theme] .article-card-title{margin:0;font-size:1.2rem;line-height:1.5}.article-card-title a{color:var(--fg);text-decoration:none}.article-card-title a:hover{color:var(--accent)}.article-card-lead{color:var(--fg-muted);flex:1;font-size:.95rem;line-height:1.8}.article-empty{color:var(--fg-muted);text-align:center;padding:var(--space-12) 0}.sf-articles-more{margin-top:var(--space-6)}[data-theme] .article-container{max-width:var(--container-narrow)}.article-cover{aspect-ratio:16/9;margin-bottom:var(--space-8);border:1px solid var(--faint);background:var(--gray-100);border-radius:0;position:relative;overflow:hidden}.article-cover-img{object-fit:cover}.article-back-link{margin-bottom:var(--space-6);font-family:var(--font-mono);color:var(--fg-muted);align-items:center;font-size:.85rem;text-decoration:none;transition:color .15s;display:inline-flex}.article-back-link:before{content:"../";font-family:var(--font-mono);color:var(--ink-dim);margin-right:8px}.article-back-link:hover{color:var(--accent)}.article-header{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1.5px solid var(--rule);position:relative}[data-theme] .article-title{font-family:var(--font-display);margin:var(--space-4) 0 var(--space-3);font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.4}.article-lead{color:var(--fg-muted);font-size:1.05rem;line-height:1.9}.article-body{color:var(--fg);counter-reset:article-h2;font-size:1rem;line-height:2}.article-body h2{font-family:var(--font-display);margin:var(--space-10) 0 var(--space-4);padding-top:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--faint);font-size:1.35rem}.article-body h2:before{counter-increment:article-h2;content:counter(article-h2, decimal-leading-zero) " / ";font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;font-size:.75em;font-weight:600}.article-body blockquote{margin:var(--space-5) 0;padding-left:var(--space-4);border-left:2px solid var(--ink);color:var(--fg-muted)}.article-body img{border:1px solid var(--faint);border-radius:0;max-width:100%;height:auto}.article-body hr{border:0;border-top:1px dashed var(--dim);margin:var(--space-6) 0}.article-body h3{margin:var(--space-8) 0 var(--space-3);font-size:1.1rem}.article-body p{margin:var(--space-4) 0}.article-body ul,.article-body ol{margin:var(--space-4) 0;padding-left:var(--space-6)}.article-body li{margin:var(--space-2) 0}.article-body a{color:var(--accent)}.article-body code{font-family:var(--font-mono);background:var(--gray-100);border:1px solid var(--faint);border-radius:0;padding:.1em .4em;font-size:.9em}.article-body pre{background:var(--paper-2);color:var(--ink);padding:var(--space-4);border:1px solid var(--faint);box-shadow:none;margin:var(--space-5) 0;border-radius:0;overflow-x:auto}.article-body pre code{background:0 0;border:0;padding:0}.article-body :is(h2,h3)>a{color:inherit;text-decoration:none}.article-body :is(h2,h3)>a:hover{color:var(--accent)}.article-figure{margin:var(--space-6) 0}.article-figure figcaption{margin-top:var(--space-2);color:var(--fg-muted);text-align:center;font-size:.82rem}.article-body .article-lead{color:var(--fg);margin:var(--space-6) 0;font-size:1.25rem;font-weight:500;line-height:1.8}.article-callout{gap:var(--space-2);margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border:1px solid var(--rule);background:var(--paper);border-radius:0;flex-direction:column;display:flex}.article-callout-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:.7rem;font-weight:600}.article-callout-warn{border-color:var(--shu);background:var(--shu-soft)}.article-callout-warn .article-callout-label{color:var(--shu)}.article-callout-body>:first-child{margin-top:0}.article-callout-body>:last-child{margin-bottom:0}.article-embed{margin:var(--space-6) 0;aspect-ratio:16/9;border:1px solid var(--rule);border-radius:0;position:relative;overflow:hidden}.article-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.article-tweet{margin:var(--space-6) 0;justify-content:center;display:flex}[data-theme] .article-linkcard{align-items:stretch;gap:var(--space-4);margin:var(--space-6) 0;border:1px solid var(--rule);background:var(--paper);color:var(--fg);border-radius:0;text-decoration:none;transition:border-color .15s;display:flex;overflow:hidden}.article-linkcard:hover{border-color:var(--shu)}.article-linkcard-body{gap:var(--space-1);padding:var(--space-4);flex-direction:column;flex:1;min-width:0;display:flex}.article-linkcard-title{font-weight:600;line-height:1.4}.article-linkcard-desc{color:var(--fg-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.article-linkcard-host{font-family:var(--font-mono);color:var(--fg-muted);margin-top:auto;font-size:.72rem}.article-linkcard-img{object-fit:cover;border:0;border-radius:0;flex-shrink:0;width:200px}.article-linkcard-bare{padding:var(--space-3) var(--space-4);word-break:break-all;display:block}.article-toc{margin:var(--space-6) 0;border:1px solid var(--rule);background:var(--paper);border-radius:0}.article-toc-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--rule);margin:0;padding:8px 12px 6px;font-size:.72rem;font-weight:600}.article-toc-list{padding:var(--space-4) 12px;margin:0;list-style:none}.article-toc-item{margin:var(--space-1) 0;line-height:1.6}.article-toc-depth-3{padding-left:var(--space-4);font-size:.92em}.article-toc-item a{color:var(--fg-muted);text-decoration:none}.article-toc-item a:hover{color:var(--accent)}.article-body table{border-collapse:collapse;width:100%;margin:var(--space-5) 0;font-size:.92rem}.article-body th,.article-body td{border:1px solid var(--rule);padding:var(--space-2) var(--space-3);text-align:left}.article-body th{background:var(--paper-2);font-weight:600}.article-body li:has(>input[type=checkbox]){margin-left:calc(-1 * var(--space-6));list-style:none}.article-body input[type=checkbox]{margin-right:var(--space-2)}.article-paywall{margin:var(--space-8) 0;padding:var(--space-8);border:1px dashed var(--shu);background:var(--paper);text-align:center;border-radius:0;position:relative}.article-paywall-veil{background:linear-gradient(180deg, transparent, var(--bg));pointer-events:none;height:140px;position:absolute;top:-148px;left:0;right:0}.article-paywall-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:8px;font-size:11px;font-weight:600;display:inline-flex}.article-paywall-label:before{content:"▮";color:var(--shu)}.article-paywall-price{font-family:var(--font-mono);color:var(--shu);margin:var(--space-4) 0 var(--space-2);font-size:1.6rem;font-weight:600}.article-paywall-note{color:var(--fg-faint);font-size:.85rem}.article-purchase{align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.article-purchase-error{color:var(--danger);font-size:.85rem}.article-purchased-banner{margin-bottom:var(--space-6);padding:var(--space-3) var(--space-4);border:1px solid var(--status-green-line);background:var(--status-green-bg);color:var(--status-green-fg);border-radius:0;font-size:.9rem}.article-cta{margin-top:var(--space-12);padding:var(--space-6);background:var(--paper-2);border:1px solid var(--rule);box-shadow:none;align-items:flex-start;gap:var(--space-4);border-radius:0;flex-direction:column;display:flex;position:relative}.article-faq{margin:var(--space-6) 0;border-top:1px solid var(--line)}.article-faq-item{border-bottom:1px solid var(--line)}.article-faq-item summary{cursor:pointer;padding:var(--space-4) 0;font-family:var(--font-display);color:var(--fg);align-items:flex-start;gap:var(--space-4);font-size:1.05rem;font-weight:700;list-style:none;transition:color .18s;display:flex}.article-faq-item summary::-webkit-details-marker{display:none}.article-faq-item summary:hover{color:var(--accent)}.article-faq-item summary:before{content:"Q";font-family:var(--font-mono);color:var(--accent);letter-spacing:.05em;flex-shrink:0;margin-top:.3em;font-size:.8rem;font-weight:600}.article-faq-item summary:after{content:"+";font-family:var(--font-mono);color:var(--fg-faint);flex-shrink:0;margin-left:auto;font-size:1.4rem;font-weight:300;line-height:1;transition:transform .25s,color .18s}.article-faq-item[open] summary:after{color:var(--accent);transform:rotate(45deg)}.article-faq-item[open]{border-left:2px solid var(--shu);padding-left:var(--space-4);margin-left:calc(-1 * var(--space-4) - 2px);background:var(--shu-soft)}.article-faq-answer{padding:0 0 var(--space-5) calc(.8rem + var(--space-4));color:var(--fg-muted);font-size:.95rem;line-height:1.9}.article-faq-answer>:first-child{margin-top:0}.article-faq-answer>:last-child{margin-bottom:0}.article-faq-answer strong{color:var(--fg)}.article-video video{border:1px solid var(--rule);background:var(--paper-2);border-radius:0;width:100%;height:auto;display:block}.article-trial .btn{margin-top:var(--space-2);align-self:flex-start}.article-trial .btn[aria-disabled=true]{opacity:.6;cursor:default;pointer-events:none}.article-paywall-legal{margin-top:var(--space-4);color:var(--fg-muted);justify-content:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;font-size:.8rem;display:flex}.article-paywall-legal a{color:var(--fg-muted);text-underline-offset:.2em;text-decoration:underline}.article-paywall-legal a:hover{color:var(--accent)}
