/* Astrabit Blog 2.0: standalone UI layer, scoped under .ab2 */
.ab2{--ab2-orange:#f39800;--ab2-orange-dark:#db8100;--ab2-ink:#202d40;--ab2-muted:#718197;--ab2-border:#e7ebf0;--ab2-soft:#f7f9fc;--ab2-shadow:0 14px 36px rgba(32,45,64,.06);color:var(--ab2-ink);background:#fff;font:400 16px/1.65 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;padding:22px 0 78px}.ab2 *{box-sizing:border-box}.ab2 a{color:inherit;text-decoration:none}.ab2 a:hover{color:var(--ab2-orange-dark)}.ab2 img{display:block;max-width:100%;height:auto}.ab2-wrap{width:min(1440px,calc(100% - 48px));margin:0 auto}.ab2-crumbs{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:#8290a0;font-size:13px;margin:8px 0 34px}.ab2-crumbs a:hover{text-decoration:underline}.ab2-hero{background:linear-gradient(116deg,#fff 5%,#fff9ed 100%);padding:65px clamp(24px,5vw,78px);border:1px solid var(--ab2-border);border-radius:18px;margin-bottom:28px}.ab2-eyebrow{font-size:11px;letter-spacing:.14em;font-weight:850;color:#da8300;display:block;margin-bottom:12px}.ab2-hero h1,.ab2-article-hero h1{font-size:clamp(34px,4.2vw,62px);font-weight:850;letter-spacing:-.045em;line-height:1.12;color:var(--ab2-ink);margin:0 0 22px}.ab2-hero h1{max-width:820px}.ab2-hero h1 em{color:var(--ab2-orange);font-style:normal}.ab2-hero p{color:var(--ab2-muted);font-size:17px;max-width:720px;margin:0 0 28px}.ab2-search{display:flex;gap:10px;max-width:660px}.ab2-search input{width:100%;min-width:0;background:#fff;border:1px solid #dfe5ed;border-radius:10px;padding:16px 18px;font:inherit;color:var(--ab2-ink);box-shadow:0 5px 20px #202d4008}.ab2-search button,.ab2-cta>a,.ab2-side-cta>a{background:var(--ab2-orange);border:0;border-radius:10px;color:#fff;font-weight:800;font-size:14px;padding:15px 23px;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ab2-search button:hover,.ab2-cta>a:hover,.ab2-side-cta>a:hover{background:var(--ab2-orange-dark);color:#fff}.ab2-chips{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 45px}.ab2-chips a{border:1px solid #e4e9ef;border-radius:100px;font-size:13px;font-weight:700;padding:9px 17px;color:#52627a;background:#fff}.ab2-chips a.is-active,.ab2-chips a:hover{border-color:#f4b64d;background:#fff7e9;color:#be7200}.ab2-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:40px 0 22px}.ab2-section-head h2{font-size:clamp(25px,3vw,36px);line-height:1.2;font-weight:820;letter-spacing:-.035em;color:var(--ab2-ink);margin:0}.ab2-count{font-size:13px;color:var(--ab2-muted)}.ab2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.ab2-card{border:1px solid var(--ab2-border);background:#fff;box-shadow:var(--ab2-shadow);border-radius:15px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:transform .18s ease,box-shadow .18s ease}.ab2-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px #202d4017}.ab2-card__image{aspect-ratio:16/9;background:linear-gradient(120deg,#243448 4%,#456076 60%,#f39800 100%);display:block;overflow:hidden}.ab2-card__image img{width:100%;height:100%;object-fit:cover}.ab2-card__placeholder{height:100%;width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#fff;font-size:23px;letter-spacing:.12em;font-weight:900}.ab2-card__placeholder b{font-size:10px;letter-spacing:.3em;color:#ffb83d}.ab2-card__body{padding:23px 24px;flex:1;display:flex;flex-direction:column}.ab2-tag{font-size:11px;font-weight:800;color:#c87c00!important;background:#fff6e8;border-radius:5px;display:inline-block;width:max-content;padding:5px 9px;margin-bottom:12px}.ab2-card h2{font-size:21px;line-height:1.32;letter-spacing:-.025em;margin:0 0 12px;color:var(--ab2-ink);font-weight:800}.ab2-card__body>p{font-size:14px;color:var(--ab2-muted);line-height:1.7;margin:0 0 25px}.ab2-card__bottom{margin-top:auto;border-top:1px solid var(--ab2-border);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ab2-author{display:flex;align-items:center;gap:10px;min-width:0}.ab2-author img.ab2-author__photo{width:44px;height:44px;flex:0 0 44px;object-fit:cover;border-radius:50%;background:#f0f3f7}.ab2-author strong{font-size:12px;font-weight:800;display:block;line-height:1.3;color:var(--ab2-ink)}.ab2-author small{display:block;font-size:10px;color:var(--ab2-muted);margin-top:3px;line-height:1.3}.ab2-meta{color:#8491a3;font-size:11px;display:flex;flex-direction:column;text-align:right;gap:3px}.ab2-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin:38px 0}.ab2-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:39px;min-height:39px;padding:8px 12px;border:1px solid var(--ab2-border);border-radius:8px;font-size:13px;font-weight:700}.ab2-pagination .current{background:var(--ab2-ink);color:#fff}.ab2-empty{padding:40px;border:1px solid var(--ab2-border);border-radius:12px}.ab2-cta{display:flex;gap:35px;justify-content:space-between;align-items:center;background:linear-gradient(105deg,#202d40,#374e66);color:white;border-radius:16px;margin-top:60px;padding:38px clamp(24px,4vw,55px)}.ab2-cta h2{font-size:28px;color:#fff;margin:0 0 8px;letter-spacing:-.03em}.ab2-cta p{font-size:14px;color:#d6dee9;margin:0}.ab2-article-hero{text-align:center;max-width:930px;margin:0 auto 40px}.ab2-article-hero .ab2-tag{margin-bottom:21px}.ab2-article-hero h1{font-size:clamp(35px,4vw,57px)}.ab2-lead{font-size:19px;line-height:1.7;color:var(--ab2-muted);margin:0 auto 27px;max-width:750px}.ab2-article-byline{display:flex;justify-content:center;align-items:center;gap:27px}.ab2-article-byline .ab2-meta{text-align:left}.ab2-cover{max-width:1160px;margin:0 auto 55px;aspect-ratio:16/8;overflow:hidden;border-radius:16px;background:#eef1f6}.ab2-cover img{width:100%;height:100%;object-fit:cover}.ab2-article-layout{display:grid;grid-template-columns:minmax(0,780px) minmax(230px,310px);gap:70px;align-items:start;justify-content:center}.ab2-prose{color:#38485b;font-size:17px;line-height:1.9;min-width:0;overflow-wrap:anywhere}.ab2-prose p{margin:0 0 1.5em}.ab2-prose h2{font-size:29px;color:var(--ab2-ink);margin:1.8em 0 .6em;line-height:1.25;letter-spacing:-.025em}.ab2-prose h3{font-size:23px;color:var(--ab2-ink);margin:1.5em 0 .55em;line-height:1.35}.ab2-prose a{color:#bb7100;text-decoration:underline;text-underline-offset:3px}.ab2-prose ul,.ab2-prose ol{margin:0 0 1.5em;padding-left:26px}.ab2-prose blockquote{border-left:4px solid var(--ab2-orange);background:#fff9ef;margin:30px 0;padding:25px 30px;border-radius:0 12px 12px 0}.ab2-prose img{height:auto;max-width:100%}.ab2-prose pre{overflow:auto;background:#1e2e42;color:#fff;padding:20px;border-radius:10px}.ab2-article-side{position:sticky;top:110px;display:flex;flex-direction:column;gap:20px}.ab2-side-box{border:1px solid var(--ab2-border);padding:25px;border-radius:13px;box-shadow:var(--ab2-shadow)}.ab2-side-box h2{font-size:21px;line-height:1.3;margin:0 0 14px;color:var(--ab2-ink)}.ab2-side-box p{color:var(--ab2-muted);font-size:13px;line-height:1.7;margin:7px 0}.ab2-side-cta{background:#fff9ef}.ab2-side-cta>a{margin-top:12px;font-size:13px}.ab2-end-author{border:1px solid var(--ab2-border);padding:24px;border-radius:13px;margin-top:55px}.ab2-end-author p{font-size:14px;margin:13px 0 0;color:var(--ab2-muted)}.ab2-tags{display:flex;flex-wrap:wrap;gap:8px;padding-top:20px}.ab2-tags a{font-size:12px;padding:7px 11px;background:#f5f7fa;border-radius:6px;text-decoration:none}.ab2-related{margin-top:75px}@media(max-width:1100px){.ab2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ab2-article-layout{grid-template-columns:minmax(0,1fr) 250px;gap:32px}}@media(max-width:750px){.ab2{padding:16px 0 45px}.ab2-wrap{width:min(100% - 30px,650px)}.ab2-crumbs{margin-bottom:21px}.ab2-hero{padding:35px 23px}.ab2-hero p{font-size:15px}.ab2-search{flex-direction:column}.ab2-search button{width:100%}.ab2-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.ab2-chips a{white-space:nowrap}.ab2-grid{grid-template-columns:1fr;gap:18px}.ab2-card__body{padding:22px}.ab2-card h2{font-size:20px}.ab2-cta{flex-direction:column;align-items:start;gap:20px;margin-top:40px}.ab2-cta h2{font-size:24px}.ab2-article-hero{text-align:left;margin-bottom:28px}.ab2-article-hero h1{font-size:clamp(32px,8vw,43px)}.ab2-lead{font-size:16px}.ab2-article-byline{justify-content:flex-start;flex-wrap:wrap}.ab2-cover{aspect-ratio:16/10;margin-bottom:32px}.ab2-article-layout{display:block}.ab2-article-side{position:static;margin-top:36px}.ab2-prose{font-size:16px}.ab2-prose h2{font-size:25px}.ab2-related{margin-top:48px}}@media(prefers-reduced-motion:reduce){.ab2-card{transition:none}.ab2-card:hover{transform:none}}

/* V2: progressive listing and three-column editorial article */
.ab2-load-nav{display:flex;justify-content:center;margin:34px 0 0}.ab2-load-more{background:#fff;border:1px solid #f39800;border-radius:10px;color:#bc7300!important;font-weight:800;padding:15px 30px;box-shadow:0 8px 22px #202d4010}.ab2-load-more:hover{background:#fff7e8}.ab2-status{min-height:0;color:#61738a;font-size:13px}.ab2-status:not(:empty){padding:0 0 16px}.ab2 [hidden]{display:none!important}.ab2-article-layout{display:grid;grid-template-columns:minmax(145px,205px) minmax(0,715px) minmax(215px,275px);gap:32px;align-items:start;justify-content:space-between}.ab2-toc-sticky{position:sticky;top:105px}.ab2-toc h2{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#61717b;margin:0 0 15px}.ab2-toc a{display:block;font-size:13px;line-height:1.55;border-left:2px solid #e2e8ed;padding:10px 12px;color:#718197;word-break:break-word}.ab2-toc a:hover,.ab2-toc a:focus{border-left-color:#f39800;background:#fff7ed;color:#af6800}.ab2-toc a.ab2-toc-sub{padding-left:22px}.ab2-share{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:25px}.ab2-share span{width:100%;font-size:11px;font-weight:800;text-transform:uppercase;color:#7a889a}.ab2-share a{width:35px;height:35px;border-radius:100%;background:#edf1f4;display:grid;place-items:center;font-weight:800;color:#34495b}.ab2-prose h2,.ab2-prose h3{scroll-margin-top:125px}.ab2-side-posts{display:grid;gap:14px}.ab2-side-posts a{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #e9edf1;font-size:13px;line-height:1.4}.ab2-side-posts a:last-child{padding-bottom:0;border-bottom:0}.ab2-side-posts img{width:62px;height:62px;object-fit:cover;flex:0 0 62px;border-radius:8px}.ab2-side-posts strong{font-size:13px;line-height:1.35}.ab2-article-side{position:static}.ab2-article-hero{max-width:1060px}.ab2-cover{max-width:1200px}.ab2-prose{font-size:17px;line-height:1.85}.ab2-prose p{margin-bottom:1.45em}@media(max-width:1100px){.ab2-article-layout{grid-template-columns:minmax(0,1fr) minmax(215px,280px)}.ab2-toc-col{grid-column:1/-1}.ab2-toc-sticky{position:static}.ab2-toc{display:flex;flex-wrap:wrap;gap:6px}.ab2-toc h2{width:100%}.ab2-toc a{border:1px solid #e2e8ed;border-radius:6px;padding:8px 12px}.ab2-share{margin:12px 0 0}}@media(max-width:750px){.ab2-article-layout{display:flex;flex-direction:column;gap:30px}.ab2-toc-col,.ab2-article-side,.ab2-prose{width:100%}.ab2-prose{order:2}.ab2-article-side{order:3}.ab2-toc-col{order:1}}


/* Astrabit Blog 2.1 - wider article, distinct sharing controls */
@media (min-width: 1101px) {
  .ab2.ab2-article .ab2-wrap { width: min(1440px, calc(100% - 64px)); }
  .ab2.ab2-article .ab2-cover { max-width: 1440px; }
  .ab2.ab2-article .ab2-article-layout {
    grid-template-columns: 260px minmax(0, 1fr) 300px;
    gap: 34px;
    justify-content: stretch;
  }
  .ab2.ab2-article .ab2-article-hero { max-width: 1060px; }
}
.ab2.ab2-article .ab2-toc h2 { margin-bottom: 14px; }
.ab2.ab2-article .ab2-toc a {
  border: 0;
  border-radius: 8px;
  padding: 10px 12px;
  margin: 2px 0;
  overflow-wrap: break-word;
  word-break: normal;
  font-size: 13px;
  line-height: 1.55;
}
.ab2.ab2-article .ab2-toc a.ab2-toc-sub { padding-left: 23px; }
.ab2.ab2-article .ab2-toc a:hover,
.ab2.ab2-article .ab2-toc a:focus-visible {
  background: #fff5e5;
  color: #ad6900;
  outline: none;
}
.ab2.ab2-article .ab2-share {
  margin-top: 28px;
  padding: 18px;
  background: #f7f9fc;
  border: 1px solid #e7ebf0;
  border-radius: 13px;
  gap: 10px;
  align-items: center;
}
.ab2.ab2-article .ab2-share span {
  margin-bottom: 4px;
  font-size: 11px;
  letter-spacing: .08em;
  color: #52627a;
}
.ab2.ab2-article .ab2-share a {
  width: 42px;
  height: 42px;
  font-size: 15px;
  border: 1px solid #e1e8ef;
  background: #fff;
  color: #27374b;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.ab2.ab2-article .ab2-share a:hover,
.ab2.ab2-article .ab2-share a:focus-visible {
  color: #fff;
  background: #f39800;
  border-color: #f39800;
}
@media (max-width: 1100px) {
  .ab2.ab2-article .ab2-share { width: fit-content; max-width: 100%; }
  .ab2.ab2-article .ab2-toc a { border: 1px solid #e7ebf0; }
}

/* Astrabit Blog 2.2: remove inherited vertical separator and stick both sidebars. */
.ab2.ab2-article .ab2-toc-col,
.ab2.ab2-article .ab2-toc-sticky,
.ab2.ab2-article .ab2-article-side,
.ab2.ab2-article .ab2-share {
  border-left: 0 !important;
  box-shadow: none;
}
.ab2.ab2-article .ab2-toc-col::before,
.ab2.ab2-article .ab2-toc-col::after,
.ab2.ab2-article .ab2-toc-sticky::before,
.ab2.ab2-article .ab2-toc-sticky::after { display: none !important; content: none !important; }
.ab2.ab2-article .ab2-toc a,
.ab2.ab2-article .ab2-toc a:hover,
.ab2.ab2-article .ab2-toc a:focus {
  border-left: 0 !important;
}
.ab2.ab2-article .ab2-share {
  border: 1px solid #e7ebf0;
  margin-left: 0;
}
@media (min-width: 1101px) {
  .ab2.ab2-article .ab2-article-layout { align-items: start; }
  .ab2.ab2-article .ab2-toc-col,
  .ab2.ab2-article .ab2-article-side {
    position: sticky !important;
    top: 100px;
    align-self: start;
    min-height: 0;
    max-height: calc(100vh - 120px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #dce4eb transparent;
  }
  .ab2.ab2-article .ab2-toc-sticky { position: static !important; top: auto; }
  .ab2.ab2-article .ab2-toc-col { padding: 0 6px 4px 0; }
  .ab2.ab2-article .ab2-article-side { padding: 0 6px 4px 0; }
}
@media (max-width: 1100px) {
  .ab2.ab2-article .ab2-toc-col,
  .ab2.ab2-article .ab2-article-side {
    position: static !important;
    max-height: none;
    overflow: visible;
  }
}

/* Astrabit Blog 2.3: widen only the shared site header in the private blog preview.
   Keep the rest of the website unchanged. */
@media (min-width: 1200px) {
  body:has(.ab2) #header .grid-container,
  body:has(.ab2) #header .container,
  body:has(.ab2) #header .inner,
  body:has(.ab2) .site-header .grid-container,
  body:has(.ab2) .site-header .container,
  body:has(.ab2) .site-header .inner,
  body:has(.ab2) .header-wrapper .grid-container,
  body:has(.ab2) .header-wrapper .container,
  body:has(.ab2) .header-wrapper .inner {
    width: calc(100% - 64px);
    max-width: 1440px;
    margin-inline: auto;
  }
}

/* Astrabit Blog 2.4 - shared AB v2 header wrapper, not only blog body. */
@media (min-width: 768px) {
  body:has(.ab2) #ab-v2-preview .ab-v2-wrap,
  #ab-v2-preview .ab-v2-wrap {
    width: calc(100% - 48px) !important;
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
@media (max-width: 767px) {
  body:has(.ab2) #ab-v2-preview .ab-v2-wrap {
    width: calc(100% - 32px) !important;
    max-width: 100% !important;
  }
}


/* Astrabit Blog 2.5 - article hero image: use full 1440px, never crop. */
.ab2.ab2-article .ab2-cover {
    width: 100%;
    max-width: 1440px;
    height: auto;
    aspect-ratio: auto;
    overflow: visible;
    margin-inline: auto;
    background: transparent;
}
.ab2.ab2-article .ab2-cover img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
    border-radius: inherit;
}

/* Mobile: override legacy Reco and previous desktop editorial rules. */
@media (max-width: 767px) {
    .ab2.ab2-article {
        width: 100%;
        min-width: 0;
        padding: 16px 0 48px;
        overflow-x: clip;
    }
    .ab2.ab2-article .ab2-wrap {
        width: calc(100% - 32px);
        max-width: 100%;
        min-width: 0;
        margin-inline: auto;
    }
    .ab2.ab2-article .ab2-crumbs {
        font-size: 12px;
        line-height: 1.5;
        gap: 7px;
        margin: 0 0 24px;
        overflow-wrap: anywhere;
    }
    .ab2.ab2-article .ab2-article-hero {
        max-width: none;
        margin: 0 0 24px;
        padding: 0;
        text-align: left;
    }
    .ab2.ab2-article .ab2-article-hero h1 {
        font-size: clamp(29px, 8vw, 39px);
        line-height: 1.16;
        letter-spacing: -.035em;
        margin-bottom: 18px;
        overflow-wrap: break-word;
    }
    .ab2.ab2-article .ab2-lead {
        font-size: 16px;
        line-height: 1.65;
        margin-bottom: 20px;
    }
    .ab2.ab2-article .ab2-article-byline {
        justify-content: flex-start;
        gap: 12px;
        flex-wrap: wrap;
    }
    .ab2.ab2-article .ab2-article-byline .ab2-meta {
        text-align: left;
        font-size: 11px;
    }
    .ab2.ab2-article .ab2-cover {
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: auto;
        overflow: visible;
        margin: 0 0 28px;
        border-radius: 12px;
    }
    .ab2.ab2-article .ab2-cover img {
        width: 100%;
        height: auto;
        object-fit: contain;
        border-radius: 12px;
    }
    .ab2.ab2-article .ab2-article-layout {
        display: flex;
        flex-direction: column;
        gap: 24px;
        width: 100%;
        min-width: 0;
    }
    .ab2.ab2-article .ab2-toc-col,
    .ab2.ab2-article .ab2-prose,
    .ab2.ab2-article .ab2-article-side {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        position: static !important;
        overflow: visible;
        max-height: none;
    }
    .ab2.ab2-article .ab2-toc-col { order: 1; padding: 0; }
    .ab2.ab2-article .ab2-prose { order: 2; font-size: 16px; line-height: 1.8; }
    .ab2.ab2-article .ab2-article-side { order: 3; padding: 0; margin-top: 4px; }
    .ab2.ab2-article .ab2-toc-sticky { position: static !important; }
    .ab2.ab2-article .ab2-toc {
        display: block;
        padding: 16px;
        border: 1px solid #e7ebf0;
        border-radius: 12px;
        background: #f8fafc;
    }
    .ab2.ab2-article .ab2-toc h2 { margin: 0 0 10px; }
    .ab2.ab2-article .ab2-toc a {
        display: block;
        width: 100%;
        margin: 0;
        padding: 8px 4px;
        border: 0 !important;
        border-bottom: 1px solid #e7ebf0 !important;
        border-radius: 0;
        font-size: 13px;
        line-height: 1.45;
        overflow-wrap: anywhere;
    }
    .ab2.ab2-article .ab2-toc a:last-child { border-bottom: 0 !important; }
    .ab2.ab2-article .ab2-share {
        display: flex;
        width: 100%;
        max-width: 100%;
        flex-wrap: wrap;
        gap: 10px;
        padding: 14px 16px;
        margin: 14px 0 0;
        border: 1px solid #e7ebf0;
        border-radius: 12px;
        background: #f8fafc;
    }
    .ab2.ab2-article .ab2-share span { flex-basis: 100%; }
    .ab2.ab2-article .ab2-share a { flex: 0 0 42px; }
    .ab2.ab2-article .ab2-prose h2 { font-size: 25px; line-height: 1.3; }
    .ab2.ab2-article .ab2-prose h3 { font-size: 21px; line-height: 1.35; }
    .ab2.ab2-article .ab2-prose img,
    .ab2.ab2-article .ab2-prose video,
    .ab2.ab2-article .ab2-prose iframe { max-width: 100%; height: auto; }
    .ab2.ab2-article .ab2-prose pre,
    .ab2.ab2-article .ab2-prose table { max-width: 100%; overflow-x: auto; }
    .ab2.ab2-article .ab2-side-box { padding: 20px; }
    .ab2.ab2-article .ab2-related { margin-top: 42px; }
    .ab2.ab2-article .ab2-related .ab2-grid { grid-template-columns: 1fr; }
}
