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

.lnch-osc-top { max-width: none; }
.lnch-osc-bar { background: var(--bsp-accent-strong, var(--bsp-accent)); display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; flex-wrap: wrap; padding: .8rem max(22px, calc((100% - 1080px)/2)); }
.lnch-osc-brand { display: flex; align-items: center; gap: .5rem; color: #fff; font-weight: 800; font-size: 1.15rem; text-decoration: none; }
.lnch-osc-brand .dot { width: 22px; height: 22px; border-radius: 50%; background: #fff; opacity: .9; }
.lnch-osc-nav { display: flex; gap: 1.1rem; align-items: center; }
.lnch-osc-nav a { color: rgba(255,255,255,.9); text-decoration: none; font-size: .9rem; }
.lnch-osc-cta { border: 1px solid rgba(255,255,255,.7); border-radius: 4px; padding: .4rem 1rem !important; }
.lnch-osc-sub { background: var(--bsp-bg); border-bottom: 1px solid var(--bsp-line); padding: .5rem max(22px, calc((100% - 1080px)/2)); color: var(--bsp-muted); font-size: .85rem; }
/* 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-osc-head h1 { font-size: 1.9rem; margin: 1.4rem 0 .4rem; }
.ln-osc-tabs { display: flex; gap: 1.3rem; border-bottom: 1px solid var(--bsp-line); margin-top: 1.4rem; }
.ln-osc-tabs a { padding: .5rem 0; color: var(--bsp-muted); font-size: .95rem; text-decoration: none; border-bottom: 2px solid transparent; }
.ln-osc-tabs a:hover, .ln-osc-tabs a:focus-visible { color: var(--bsp-ink); border-bottom-color: color-mix(in srgb, var(--bsp-accent) 45%, transparent); }
.ln-osc-tabs a.on { color: var(--bsp-accent-text); font-weight: 700; border-bottom-color: var(--bsp-accent); }
.ln-osc-list { border-top: 1px solid var(--bsp-line); margin-top: .2rem; }
.ln-osc-item { padding: 1.05rem .2rem; border-bottom: 1px solid var(--bsp-line); }
.ln-osc-day { font-size: .95rem; margin: 1.5rem 0 .1rem; padding-bottom: .45rem; border-bottom: 1px solid var(--bsp-line); }
.ln-osc-item-day { padding: .75rem .2rem; }
.ln-osc-item-day .ln-osc-title { font-weight: 600; }
.ln-osc-title { color: var(--bsp-ink); font-weight: 700; font-size: 1.05rem; text-decoration: none; line-height: 1.5; }
.ln-osc-item:hover .ln-osc-title { color: var(--bsp-accent-text); }
.ln-osc-item p { color: var(--bsp-muted); font-size: .9rem; line-height: 1.7; margin: .4rem 0 .45rem; }
.ln-osc-meta { display: flex; gap: 1rem; color: var(--bsp-muted); font-size: .78rem; }
.ln-osc-share { color: var(--bsp-accent-text); }
.ln-osc-signin { display: flex; justify-content: space-between; align-items: center; gap: .8rem; background: color-mix(in srgb, var(--bsp-accent) 7%, var(--bsp-bg)); border: 1px solid var(--bsp-line); border-radius: 8px; padding: .85rem 1rem; margin-top: 1.4rem; }
.ln-osc-signin span { font-size: .86rem; color: var(--bsp-ink); }
.ln-osc-signin .ln-cta { margin-top: 0; padding: .5rem 1rem; font-size: .85rem; }
.ln-osc-tools { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; margin: 1.2rem 0; }
.ln-osc-tools a { display: flex; flex-direction: column; align-items: center; gap: .35rem; text-decoration: none; color: var(--bsp-ink); font-size: .78rem; }
.ln-osc-tools i { font-style: normal; width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; font-size: 1.1rem; font-weight: 800; color: #fff; }
.ln-osc-tools .t1 { background: #6FA8DC; } .ln-osc-tools .t2 { background: #93C47D; }
.ln-osc-tools .t3 { background: #E0969A; } .ln-osc-tools .t4 { background: #B49ACD; }
.ln-osc-panel { border: 1px solid var(--bsp-line); border-radius: 8px; padding: 1rem 1.1rem; margin-bottom: 1.2rem; }
/* 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-osc-day is
   class-only, so it needs nothing here.) */
.ln-osc-panel h2, .ln-osc-panel h3 { font-size: .95rem; margin: 0 0 .8rem; }
.ln-osc-author { display: flex; align-items: center; gap: .6rem; text-decoration: none; padding: .42rem 0; border-bottom: 1px solid var(--bsp-line); position: relative; }
.ln-osc-author:last-child { border-bottom: none; }
.ln-osc-author i { font-style: normal; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--bsp-accent-soft); color: var(--bsp-accent-text); font-weight: 800; display: grid; place-items: center; font-size: .95rem; }
.ln-osc-author strong { flex: 1; font-size: .88rem; color: var(--bsp-ink); }
.ln-osc-author span { font-size: .74rem; color: var(--bsp-muted); }
.lnch-osc-foot { background: var(--bsp-ink); color: #fff; margin-top: 2.6rem; padding: 1.8rem max(22px, calc((100% - 1080px)/2)) 1.6rem; }
.lnch-osc-cols { display: flex; gap: 3rem; flex-wrap: wrap; }
.lnch-osc-cols p { opacity: .75; font-size: .86rem; max-width: 34rem; }
.lnch-osc-cols a { color: rgba(255,255,255,.85); }
.lnch-osc-legal { border-top: 1px solid rgba(255,255,255,.18); margin-top: 1.3rem; padding-top: 1rem; font-size: .8rem; opacity: .7; }

