.article-shell{border-radius:1.5rem;margin:-4.5rem auto 0;padding:clamp(1.5rem,2vw,2.75rem);position:relative;overflow:hidden}.article-shell:before{content:"";background:linear-gradient(90deg,hsl(var(--primary)) 0,#33bdcc 100%);pointer-events:none;height:.375rem;position:absolute;inset:0 0 auto}@media (width<=640px){.article-shell{border-radius:1.25rem;margin-top:-2.75rem;padding:1.25rem}}.article-meta{border-bottom:1px solid hsl(var(--border)/.8);color:hsl(var(--muted-foreground));margin-bottom:2rem;padding-bottom:1.25rem;font-size:.875rem}.article-meta .article-meta-main{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;display:flex}.article-meta .article-meta-label{margin-right:.25rem;font-weight:600}.article-meta .article-author,.article-meta .article-date{border:1px solid hsl(var(--border)/.75);background:hsl(var(--muted)/.55);border-radius:9999px;align-items:center;gap:.35rem;margin:0;padding:.45rem .8rem;display:inline-flex}.article-meta .article-author{white-space:nowrap}.article-meta .article-date{flex-wrap:wrap}.article-meta .article-date .article-dot{opacity:.75}.article-meta .article-tags{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.article-meta .article-tags .article-tag{border:1px solid hsl(var(--border)/.75);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted-foreground));background:hsl(var(--muted)/.4);border-radius:9999px;align-items:center;padding:.25rem .7rem;font-size:.7rem;display:inline-flex}.article-hero{margin:1.75rem 0 2.25rem}.article-hero img{border:1px solid hsl(var(--border));border-radius:1rem;width:100%;height:auto;display:block;box-shadow:0 20px 40px #0f172a1f}.article-body{color:hsl(var(--foreground)/.9);font-size:1.04rem;line-height:1.8}.article-body>p:first-of-type{color:hsl(var(--foreground)/.82);font-size:1.125rem}.article-body p{margin:0 0 1.25rem}.article-body h2,.article-body h3,.article-body h4{font-family:var(--font-sans);color:hsl(var(--foreground));letter-spacing:-.02em;scroll-margin-top:7rem;font-weight:700}.article-body h2,.article-body h3{margin-top:2.5rem}.article-body h4{margin-top:1.75rem}.article-body h2{border-top:1px solid hsl(var(--border)/.7);margin-bottom:1rem;padding-top:1.25rem;font-size:1.7rem}.article-body>:first-child:is(h2,h3,h4){border-top:0;margin-top:0;padding-top:0}.article-body h3{margin-bottom:.75rem;font-size:1.3rem}.article-body h4{margin-bottom:.65rem;font-size:1.1rem}.article-body ol,.article-body ul{margin:0 0 1.25rem;padding-left:1.4rem}.article-body ul{list-style-type:disc}.article-body ol{list-style-type:decimal}.article-body li+li{margin-top:.35rem}.article-body li::marker{color:hsl(var(--primary))}.article-body figure{text-align:left;margin:2rem 0}.article-body figure img{border:1px solid hsl(var(--border));border-radius:1rem;width:100%;height:auto;margin:0 auto;display:block;box-shadow:0 18px 40px #0f172a1f}.article-body figure figcaption{color:hsl(var(--muted-foreground));margin-top:.85rem;font-size:.875rem}.article-body .guide-inline-media{border:1px solid hsl(var(--border)/.75);background:linear-gradient(180deg,hsl(var(--muted)/.45) 0,hsl(var(--card)) 100%);border-radius:1.25rem;padding:.9rem}.article-body .guide-inline-link{border-radius:1rem;display:block;overflow:hidden}.article-body .guide-inline-link img{transition:transform .45s}.article-body .guide-inline-link:hover img{transform:scale(1.025)}.article-body a{color:hsl(var(--primary));text-underline-offset:3px;text-decoration:underline 1px;transition:color .2s}.article-body a:hover{color:hsl(var(--foreground))}.article-body blockquote{border-left:3px solid hsl(var(--primary));background:hsl(var(--muted)/.45);color:hsl(var(--foreground)/.78);border-radius:0 1rem 1rem 0;margin:1.75rem 0;padding:1rem 1.25rem}.article-body code{background-color:hsl(var(--muted));border-radius:.25rem;padding:.15em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em}.article-body pre{color:#e5e7eb;background-color:#0b1120;border-radius:.75rem;margin:1.75rem 0;padding:1rem 1.25rem;font-size:.9rem;overflow-x:auto}.article-body pre code{background:0 0;padding:0}.article-footer{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));margin-top:3rem;padding-top:1.5rem;font-size:.75rem}