.article{--measure:36rem;--line:1.6rem;font-size:1rem;line-height:1.6;container-type:inline-size}@media (width>=40rem){.article{--line:1.7rem;font-size:1.0625rem}}.article-column{width:min(var(--measure), 100% - 2rem);margin-inline:auto}.article-meta{--gap:1.25em;column-gap:var(--gap);flex-wrap:wrap;display:flex;overflow:clip;&>*{position:relative}&>:not(:empty):before{content:"·" / "";position:absolute;inset-inline-start:calc(var(--gap) / -2);translate:-50%}}.article-rail{margin-block:.75rem 2rem}@media (width>=40rem){.article-rail{margin-block-end:2.5rem}}@media (width>=80rem){.article-rail{width:calc((100% - var(--measure)) / 2 - 3rem);margin:0;padding-block-start:5rem;position:absolute;inset-block:0;inset-inline-start:0}.article-meta{flex-direction:column;width:100%;max-width:14rem;margin-block-end:2rem;margin-inline-start:auto;line-height:1.5rem;&>:not(:empty):before{content:none}}}.article-body{display:flow-root;&>:is(p,ul,ol,blockquote){margin-block:0 var(--line)}& :is(li,li>p){margin-block:.35em}& h2{margin-block:calc(var(--line) * 2) calc(var(--line) / 2);font-size:1.25rem;line-height:1.3}& h3{margin-block:calc(var(--line) * 1.5) calc(var(--line) / 4);font-size:1.0625rem;line-height:1.35}&>:first-child{margin-block-start:0}&>:last-child{margin-block-end:0}}.two-column{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1.5rem;margin-block:1.5em;display:grid;&>*>:first-child{margin-block-start:0}&>*>:last-child{margin-block-end:0}}.column-margin{border-inline-start:2px solid var(--color-border);color:var(--color-muted-foreground);margin-block:1.5em;padding-inline-start:1em;font-size:.875em;&>:first-child{margin-block-start:0}&>:last-child{margin-block-end:0}}@media (width>=48rem){.article-body>:is(.expressive-code,code-switcher,.code-figure){--code-width:min(46rem, 100cqi - 2rem);clear:right;margin-inline:calc((100% - var(--code-width)) / 2);width:var(--code-width)}}@media (width>=80rem){.article-body>.column-margin{--note-width:min(18rem, (100cqi - 100%) / 2 - 5rem);float:right;clear:right;width:var(--note-width);border:0;margin-block:.25em 1.5em;margin-inline-end:calc(-1 * (var(--note-width) + 3rem));padding:0;& pre{font-size:.75rem;line-height:1.25rem}}.article-body>:is(.expressive-code,code-switcher,.code-figure){--code-width:min(46rem, var(--measure) + (100cqi - var(--measure)) / 2 - 2rem);margin-inline:0 calc(100% - var(--code-width))}.article-body>:is(.wider,.column-body-outset){clear:both;margin-inline-end:max(50% - 50cqi + 2rem,100% - 72rem)}}.callout{margin-block:var(--line);border-radius:var(--radius);background:color-mix(in oklab, var(--color-muted) 60%, transparent);padding:1rem 1.25rem;&>:nth-child(2){margin-block-start:0}&>:last-child{margin-block-end:0}}.callout-title{color:var(--color-foreground);align-items:center;gap:.5rem;margin-block:0 .5rem;font-size:.875em;font-weight:600;display:flex}.callout-icon{width:1rem;height:1rem;color:var(--color-primary);flex-shrink:0}.steps{counter-reset:step;margin-inline-start:.875rem;margin-block:var(--line);border-inline-start:1px solid var(--color-border);padding-inline-start:1.75rem;&>h4{counter-increment:step;position:relative}&>h4:first-child{margin-block-start:0}&>:last-child{margin-block-end:0}&>h4:before{border:1px solid var(--color-border);background:var(--color-background);content:counter(step);width:1.75rem;height:1.75rem;font:500 .8125rem/1 var(--font-mono);font-variant-numeric:tabular-nums;border-radius:9999px;place-items:center;display:grid;position:absolute;inset-block-start:50%;inset-inline-start:-2.625rem;translate:0 -50%}}.embed{margin-block:var(--line);& iframe{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-background);width:100%;display:block}& figcaption{color:var(--color-muted-foreground);justify-content:space-between;gap:1rem;margin-block-start:.5rem;font-size:.875rem;display:flex}& a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);flex-shrink:0;&:active{text-decoration-color:currentColor}}}.image{margin-block:var(--line);flex-direction:column;align-items:center;gap:.75rem;display:flex;& img{outline-offset:-1px;border-radius:calc(var(--radius) - 2px);outline:1px solid oklch(0% 0 none/.1);max-width:100%;height:auto;margin:0}& figcaption{color:var(--color-muted-foreground);text-align:center;margin:0;font-size:.875rem}}.dark .image img{outline-color:oklch(100% 0 none/.1)}.article-body .expressive-code{margin-block:var(--line)}.article-body :is(code-switcher,.code-figure) .expressive-code{margin-block:0}.code-figure{margin-block:var(--line);& figcaption{color:var(--color-muted-foreground);text-align:center;margin-block-start:.5rem;font-size:.875rem}}.expressive-code .ec-line.has-callout{grid-template-areas:"gutter code"".callout"}.expressive-code .ch-callout{border:1px solid var(--color-border);border-radius:calc(var(--radius) - 2px);background:var(--color-muted);width:fit-content;max-width:calc(100% - var(--callout-offset));color:var(--color-foreground);white-space:break-spaces;grid-area:callout;margin-block:.25rem .375rem;margin-inline-start:var(--callout-offset);padding-inline:.75rem;position:relative;&:before{border-block-start:1px solid var(--color-border);border-inline-start:1px solid var(--color-border);background:inherit;content:"";width:.5rem;height:.5rem;position:absolute;inset-block-start:-1px;inset-inline-start:var(--callout-arrow);translate:0 -50%;rotate:45deg}}.expressive-code .ec-line.has-callout:has(.ch-callout.right){grid-template-columns:auto auto 1fr;grid-template-areas:"gutter code callout";& .ch-callout{margin-block:0;margin-inline-start:1rem;&:before{inset-block-start:50%;inset-inline-start:-1px;translate:-50% -50%;rotate:-45deg}}}.expressive-code .ec-section summary:active{color:var(--color-foreground)}code-switcher{margin-block:var(--line);border:1px solid var(--color-border);border-radius:var(--radius);display:block;overflow:clip;& .expressive-code .frame,& .expressive-code .frame pre{border:0;border-radius:0}}.code-switcher-tabs{border-block-end:1px solid var(--color-border);display:flex;overflow-x:auto;& button{height:2.5rem;color:var(--color-muted-foreground);font:.875rem var(--font-mono);border-block-end:2px solid #0000;flex-shrink:0;margin-block-end:-1px;padding-inline:1rem;transition:color .15s;&:active{color:var(--color-foreground)}@media (hover:hover) and (pointer:fine){&:hover{color:var(--color-foreground)}}&[aria-selected=true]{border-color:var(--color-foreground);color:var(--color-foreground)}&:focus-visible{outline-offset:-2px}}}
