/* GENERATED FILE - do not edit by hand.
 * Structure "devblog" landing + chrome rules.
 * Source: landing.css
 * Rebuild: php tools/build-landing-css.php
 */

.lnch-devblog-top { background: var(--bsp-ink); color: #fff; display: flex; justify-content: space-between; align-items: center; max-width: none; padding: .65rem 22px; }
.lnch-devblog-brand { color: #fff; font-weight: 800; font-size: 1.1rem; text-decoration: none; margin-left: max(22px, calc((100% - 1080px)/2)); }
.lnch-devblog-nav { display: flex; gap: 1.2rem; align-items: center; margin-right: max(22px, calc((100% - 1080px)/2)); }
.lnch-devblog-nav a { color: rgba(255,255,255,.85); text-decoration: none; font-size: .88rem; }
.lnch-devblog-cta { background: var(--bsp-accent); color: var(--bsp-on-accent) !important; padding: .4rem 1rem; border-radius: 4px; font-weight: 700; }
/* Page h1 (masthead): the community title the landing composes from
   bsp_head_copy()['kicker']. Sized like .ln-digit-head's — the CN family's own
   page-title treatment — so the four landings that gained it read alike. */
.ln-devblog-head h1 { font-size: 1.9rem; margin: 1.4rem 0 .4rem; }
.ln-devblog-flash { display: flex; gap: .8rem; align-items: center; margin-top: 1.3rem; background: color-mix(in srgb, var(--bsp-accent) 7%, var(--bsp-bg)); border: 1px solid var(--bsp-line); border-radius: 6px; padding: .65rem .9rem; }
.ln-devblog-flash .tag { flex: none; color: var(--bsp-accent-text); font-weight: 700; font-size: .8rem; }
.ln-devblog-flash a { color: var(--bsp-ink); text-decoration: none; font-weight: 600; font-size: .9rem; }
.ln-devblog-grid { display: grid; grid-template-columns: 180px 1fr 260px; gap: 1.6rem; margin-top: 1.3rem; }
@media (max-width: 900px) { .ln-devblog-grid { grid-template-columns: 1fr; } }
.ln-devblog-rail { border-right: 1px solid var(--bsp-line); padding-right: 1.2rem; }
@media (max-width: 900px) { .ln-devblog-rail { border-right: none; padding-right: 0; } }
/* Rail/aside headings are h2 — sections of the page under its single h1 — so
   the old h3 type is declared on both levels and nothing shifts. */
.ln-devblog-rail h2, .ln-devblog-rail h3 { font-size: .92rem; margin: .2rem 0 .8rem; }
.ln-devblog-rail a { display: flex; justify-content: space-between; color: var(--bsp-ink); text-decoration: none; font-size: .9rem; padding: .4rem 0; }
.ln-devblog-rail a:hover { color: var(--bsp-accent-text); }
.ln-devblog-rail i { font-style: normal; color: var(--bsp-muted); font-size: .78rem; }
.ln-devblog-list { border-top: 1px solid var(--bsp-line); }
.ln-devblog-item { padding: 1.05rem .2rem; border-bottom: 1px solid var(--bsp-line); }
.ln-devblog-title { color: var(--bsp-accent-text); font-weight: 700; font-size: 1.05rem; text-decoration: none; line-height: 1.5; }
.ln-devblog-item p { color: var(--bsp-muted); font-size: .9rem; line-height: 1.7; margin: .4rem 0 .45rem; }
.ln-devblog-meta { color: var(--bsp-muted); font-size: .78rem; }
.ln-devblog-side .ln-devblog-box { border: 1px solid var(--bsp-line); border-radius: 6px; padding: 1rem 1.1rem; margin-bottom: 1.2rem; }
.ln-devblog-side h2, .ln-devblog-side h3 { font-size: .95rem; margin: 0 0 .8rem; }
.ln-devblog-blog { display: flex; justify-content: space-between; text-decoration: none; padding: .4rem 0; border-bottom: 1px solid var(--bsp-line); }
.ln-devblog-blog:last-child { border-bottom: none; }
.ln-devblog-blog strong { font-size: .88rem; color: var(--bsp-ink); }
.ln-devblog-blog span { font-size: .76rem; color: var(--bsp-muted); }
.lnch-devblog-foot { background: var(--bsp-ink); color: #fff; margin-top: 2.6rem; padding: 1.8rem 22px 1.6rem; }
.lnch-devblog-cols p { opacity: .75; font-size: .86rem; max-width: 34rem; }
.lnch-devblog-cols a { color: rgba(255,255,255,.85); }
.lnch-devblog-legal { max-width: 1080px; margin: 1.3rem auto 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.18); font-size: .8rem; opacity: .7; }

