body{position:relative}body::before{content:"";position:fixed;z-index:1;top:0;left:0;width:100%;height:calc(var(--header-h) + var(--header-gap) * 2);background:linear-gradient(to bottom,var(--bg),transparent)}.article-wrap{padding-block:var(--space-2xs) var(--space-3xl);max-width:1280px}.article-hero{aspect-ratio:40/21;position:relative;background-size:cover;background-position:center;background-color:var(--surface-1);--ch:2rem}.article-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(7,9,13,.92) 2%,rgba(7,9,13,.35) 45%,transparent 80%)}.article-head{position:relative;z-index:1;padding:var(--space-l) 0 var(--space-m) 0;background:var(--bg)}.article-head .article-title{margin-block:var(--space-s) var(--space-m)}.article-meta{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-m);align-items:baseline;margin-bottom:var(--space-s)}.article-meta .publish-date,.article-meta time{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-dim)}.article-intro,.article-lede{font-size:var(--text-lg);color:var(--fg-muted)}.article-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl)}.article-body{min-width:0}.article-body .article-section{margin-bottom:var(--space-xl);scroll-margin-top:calc(var(--header-h) + var(--space-l))}.article-body .article-section.subsection{margin-bottom:var(--space-l);padding-left:var(--space-m);border-left:1px solid var(--hairline)}.article-body h2{display:block;font-size:var(--text-xl);margin-bottom:var(--space-s)}.article-body h2.eyebrow{font-size:var(--text-sm)}.article-body h3{display:block;margin-bottom:var(--space-2xs);font-size:var(--text-base)}.article-body h4{font-size:var(--text-sm);margin-bottom:var(--space-2xs)}.article-body p{margin-bottom:var(--space-s);color:var(--fg-muted)}.article-body p strong{color:var(--fg)}.article-body ol,.article-body ul{margin:0 0 var(--space-s) var(--space-l)}.article-body li{margin-bottom:var(--space-2xs);color:var(--fg-muted)}.article-body li::marker{color:var(--fg-dim)}.article-body ol li::marker{font-family:var(--font-mono);color:var(--accent)}.article-body .article-figure{margin-block:var(--space-m)}.article-body .article-image,.article-body img,.article-body video{width:100%;border:1px solid var(--hairline)}.article-body figcaption{margin-top:var(--space-2xs);font-size:var(--text-xs);color:var(--fg-dim)}.article-figure.inline .article-image{height:100%;max-width:100%;width:auto}.article-body .btn{display:inline-block;margin-right:var(--space-s);margin-bottom:var(--space-s)}.article-stats{display:flex;flex-wrap:wrap;justify-content:center;margin:var(--space-s) 0}.article-stat{display:flex;flex-direction:column;flex:1 1 15rem;gap:.5rem;max-width:25rem;padding:1.5rem 1.25rem;font-family:var(--font-mono);text-align:center}.article-stat-number{font-size:2.25rem;font-weight:700;line-height:1;background:linear-gradient(to right,var(--accent-2),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.article-stat-label{font-size:.8rem;line-height:1.35rem;color:var(--fg);text-transform:uppercase}.article-body .article-callout{margin-block:var(--space-m);padding:var(--space-s) var(--space-m);border-left:3px solid var(--fg-dim);background:var(--surface-1);font-size:var(--text-sm);font-weight:300;line-height:1.6;color:var(--fg-muted)}.article-body .article-callout strong{display:block;margin-bottom:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--fg)}.article-body .article-callout-warning{border-left-color:var(--accent);background:rgba(241,102,64,.07)}.article-body .article-callout-warning strong{color:var(--accent)}.article-body .article-callout-info{border-left-color:#6ea8ff;background:rgba(110,168,255,.07)}.article-body .article-callout-info strong{color:#6ea8ff}.article-body .article-callout-tip{border-left-color:var(--ok);background:rgba(61,220,132,.07)}.article-body .article-callout-tip strong{color:var(--ok)}.article-body .article-quote{margin-block:var(--space-l);padding-left:var(--space-m);border-left:3px solid var(--accent-line);font-family:var(--font-mono);font-style:italic;font-size:var(--text-base);line-height:1.7;color:var(--fg)}.article-body .article-quote cite{display:block;margin-top:var(--space-2xs);font-family:var(--font-mono);font-style:normal;font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-dim)}.article-body .job-quote{margin-block:var(--space-l)}.article-body .job-quote .panel__body{display:flex;flex-direction:column;gap:var(--space-2xs)}.article-body .job-quote__name{margin:0;font-size:var(--text-lg);color:var(--fg)}.article-body p.job-quote__spec{margin:0;font-size:var(--text-xs);font-weight:400;color:var(--fg-dim)}.article-body .job-quote__row{display:grid;grid-template-columns:3px minmax(0,1fr) auto;align-items:center;gap:var(--space-s);margin:var(--space-2xs) 0 0;padding-top:var(--space-s);border-top:1px solid var(--hairline)}.article-body .job-quote__row .tier__stripe{height:100%;min-height:1.5rem}.article-body .job-quote__row dd{display:flex;align-items:baseline;gap:var(--space-s);margin:0}.article-body .job-quote__row time{font-size:var(--text-sm);color:var(--fg-muted)}.article-body .job-quote__row .price{font-size:var(--text-xl);font-weight:500;color:var(--livery)}.article-body .article-table{--col-min:11rem;width:100%;margin-block:var(--space-m) var(--space-l);border:1px solid var(--hairline);overflow-x:auto;font-size:var(--text-sm)}.article-body .article-header,.article-body .article-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(var(--col-min),1fr)}.article-body .article-header>div,.article-body .article-row>div{padding:var(--space-2xs) var(--space-s);border-right:1px solid var(--hairline);line-height:1.45;font-weight:300;color:var(--fg-muted)}.article-body .article-header>div:last-child,.article-body .article-row>div:last-child{border-right:0}.article-body .article-header>div{background:var(--surface-2);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--fg)}.article-body .article-row>div{border-top:1px solid var(--hairline)}.article-body .article-row:nth-child(2n)>div{background:var(--surface-1)}.article-body .article-row>div.article-bad,.article-body .article-row>div.article-good,.article-body .article-row>div.article-mid{font-family:var(--font-mono);font-weight:500}.article-body .article-row>div.article-good{color:var(--ok)}.article-body .article-row>div.article-mid{color:var(--warn)}.article-body .article-row>div.article-bad{color:var(--error)}.article-body .article-table--matrix .article-header,.article-body .article-table--matrix .article-row{grid-template-columns:minmax(7.5rem,.7fr);grid-auto-columns:minmax(var(--col-min),1fr)}.article-body .article-table--matrix .article-row>div:first-child{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg)}.article-body .article-header>div.article-own,.article-body .article-row>div.article-own{--lamp:var(--accent);background:var(--surface-2);color:var(--fg)}.article-body .article-header>div.article-own{display:flex;align-items:center;gap:var(--space-2xs);color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.article-body .article-roadmap{margin-block:var(--space-l);padding:var(--space-m);background:var(--surface-1);border:1px solid var(--hairline)}.article-body .article-roadmap-title{margin-bottom:var(--space-m);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--fg-dim)}.article-body .article-roadmap-item{position:relative;margin:0;padding-left:var(--space-m)}.article-body .article-roadmap-item:not(:last-child){padding-bottom:var(--space-m)}.article-body .article-roadmap-marker{position:absolute;left:-4px;top:6px;width:9px;height:9px;background:var(--accent)}.article-body .article-roadmap-item:not(:last-child)::before{content:"";position:absolute;left:0;top:6px;width:1px;height:calc(100% - 6px);background:var(--hairline-bright)}.article-body .article-roadmap-content{font-size:var(--text-sm);font-weight:300;line-height:1.6;color:var(--fg-muted)}.article-body .article-roadmap-content strong{display:block;margin-bottom:var(--space-3xs);font-size:var(--text-sm);color:var(--fg)}.article-body .article-fit{margin-block:var(--space-m) var(--space-l);border-top:1px solid var(--hairline)}.article-body .article-fit>div{display:grid;gap:var(--space-2xs) var(--space-l);padding:var(--space-s) var(--space-2xs);border-bottom:1px solid var(--hairline)}.article-body .article-fit>div.article-own{--lamp:var(--accent);background:var(--surface-2)}.article-body .article-fit dt{color:var(--fg);line-height:1.45}.article-body .article-fit dd{margin:0}.article-body .article-fit dd p{margin:0;font-size:var(--text-sm)}.article-body .article-fit__type{display:flex;align-items:flex-start;gap:var(--space-2xs);margin-bottom:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg)}.article-body .article-fit__type .lamp{margin-top:.45em}.article-body .article-own .article-fit__type{color:var(--accent)}.article-end{margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:1px solid var(--hairline)}.article-end__title{margin-bottom:var(--space-m)}.related-grid{display:grid;gap:var(--space-2xs)}.related-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr;grid-template-areas:"badge arrow" "title arrow";row-gap:var(--space-xs);padding:var(--space-s) 0 var(--space-s) var(--space-s);background:var(--surface-1);border:1px solid var(--hairline);color:inherit;transition:border-color var(--dur-fast) var(--ease)}.related-card:hover{border-color:var(--accent)}.related-card .badge{grid-area:badge;justify-self:start}.related-card__title{grid-area:title;font-size:clamp(1rem, .6rem + .5vw, 1.375rem);line-height:1.15;text-wrap:balance;transition:color var(--dur-fast) var(--ease),transform var(--dur) var(--ease)}.related-card:hover .related-card__title{color:var(--accent);transform:translateX(var(--space-2xs))}.article-cta{display:flex;flex-wrap:wrap;gap:var(--space-m);align-items:center;justify-content:space-between;margin-top:var(--space-l);padding:var(--space-m);background:var(--surface-1);border:1px solid var(--hairline)}.article-cta p{color:var(--fg-muted);margin:0}.hub-head{max-width:60ch;margin-bottom:var(--space-2xl)}.hub-head h1{margin-block:var(--space-xs) var(--space-s)}.hub-head p{font-size:var(--text-lg);color:var(--fg-muted)}.article-group{margin-bottom:var(--space-l)}.article-group__title{display:block;margin-bottom:var(--space-s);padding-bottom:var(--space-2xs);border-bottom:1px solid var(--hairline)}.article-grid-list{display:grid;gap:var(--space-xs)}.article-group--wide .article-grid-list{grid-template-columns:1fr}.article-card{display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--hairline);color:inherit;transition:border-color var(--dur-fast) var(--ease)}.article-card:hover{border-color:var(--accent)}.article-card__thumb{position:relative;aspect-ratio:40/21;overflow:hidden;background:var(--surface-2)}.article-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.article-card:hover .article-card__thumb img{transform:scale(1.05)}.article-card__body{display:flex;flex-direction:column;flex:1;gap:var(--space-3xs);padding:var(--space-s)}.article-card__body h3{font-size:var(--text-base);font-weight:500;line-height:1.3}.article-card__body p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;font-size:var(--text-sm);color:var(--fg-muted)}.article-card__date{margin-top:auto;padding-top:var(--space-2xs);font-size:var(--text-xs);letter-spacing:var(--tracking-label);color:var(--fg-dim)}.article-card--text{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr;grid-template-areas:"plate arrow" "body arrow"}.article-card__plate{grid-area:plate;padding:var(--space-m) 0 0 var(--space-s)}.article-card__plate h3{padding-bottom:var(--space-s);border-bottom:1px solid var(--hairline);font-size:clamp(1.5rem, .8rem + .9vw, 2.25rem);font-weight:300;line-height:1;text-transform:uppercase;text-wrap:balance;transition:color var(--dur-fast) var(--ease),transform var(--dur) var(--ease)}.article-card--text .article-card__body{grid-area:body;padding-right:0}.article-card__arrow{grid-area:arrow;align-self:center;padding:var(--space-s) var(--space-m);font-size:var(--text-sm);color:var(--fg-dim);transition:transform var(--dur) var(--ease),color var(--dur) var(--ease)}.article-card--text:hover .article-card__plate h3{color:var(--accent);transform:translateX(var(--space-3xs))}.article-card--text:hover .article-card__arrow,.related-card:hover .article-card__arrow{transform:translateX(calc(var(--space-3xs) + 4px));color:var(--accent)}@media (width < 768px){.article-stat-number{font-size:2.75rem}.article-stat-label{font-size:1rem;line-height:1.5rem}.article-body .article-table--matrix{border:0;overflow:visible}.article-body .article-table--matrix .article-header{display:none}.article-body .article-table--matrix .article-row{display:block;margin-bottom:var(--space-s);border:1px solid var(--hairline)}.article-body .article-table--matrix .article-row>div{border-right:0;background:0 0}.article-body .article-table--matrix .article-row>div:first-child{border-top:0;background:var(--surface-1)}.article-body .article-table--matrix .article-row>div.article-own{background:var(--surface-2);box-shadow:inset 0 2px 0 var(--accent)}.article-body .article-table--matrix .article-row>div[data-label]::before{content:attr(data-label);display:block;margin-bottom:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-dim)}.article-body .article-table--matrix .article-row>div.article-own::before{color:var(--accent)}}@media (width >= 600px){.article-grid-list,.related-grid{grid-template-columns:repeat(2,1fr)}}@media (width >= 700px){.article-body .article-fit>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width >= 900px){.article-grid-list{grid-template-columns:repeat(3,1fr)}.article-group--wide .article-grid-list{grid-template-columns:repeat(2,1fr)}}@media (width >= 1000px){.article-head{margin-top:clamp(-5rem,-3rem - 4vw,-2.5rem);margin-right:clamp(0rem,-2rem + 6vw,4rem);padding-right:var(--space-2xl);max-width:54rem}.article-intro,.article-lede{max-width:62ch}.article-grid{grid-template-columns:minmax(0,1fr) 15rem;gap:var(--space-2xl);align-items:start;margin-top:var(--space-xl)}.article-body{max-width:46rem}.toc{max-height:calc(100vh - var(--header-h) - (var(--header-gap) * 2) - var(--space-m))}}@media (width >= 1000px) and (height >= 620px){.article-wrap{padding-block:var(--space-l) var(--space-3xl)}}@media (width >= 1000px) and (height <= 920px){.article-hero{aspect-ratio:40/11}}@media (width >= 1200px){.article-grid-list{grid-template-columns:repeat(4,1fr)}.article-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-m) var(--space-s)}.article-groups .article-group{display:grid;grid-template-columns:subgrid;grid-template-rows:auto 1fr;grid-column:span 1;margin-bottom:0}.article-groups .article-group:not(.article-group--wide):has(.article-card:nth-child(2)){grid-column:span 2}.article-groups .article-group:not(.article-group--wide):has(.article-card:nth-child(3)){grid-column:span 3}.article-groups .article-group:not(.article-group--wide):has(.article-card:nth-child(4)){grid-column:1/-1}.article-groups .article-group--wide{grid-column:1/-1}.article-groups .article-group--wide .article-card--text{grid-column:span 2}.article-groups .article-grid-list,.article-groups .article-group__title{grid-column:1/-1}.article-groups .article-grid-list{grid-template-columns:subgrid}}@media (prefers-reduced-motion:reduce){.article-card,.article-card__arrow,.article-card__plate h3,.article-card__thumb img,.related-card,.related-card__title,.toc a{transition:none}}