/* Blog v2: /blog/ listing, category/tag/search archives, post page. Design: concepts/blog/plan.md + v1 screens.
   Loads after base.css + header.css + blog-chrome.css (footer rules only), never the 200 KB homepage sections.css.
   Reading pages stay calm: no scroll effects; the one signature is the 3px reading line + the TOC that follows the text.
   Shared by the static prototypes (home/blog/) and the WordPress templates (dist-wp/blog-v2/). */
/* subpage container (28/09/2026): narrower than the homepage from tablet up, so text and tables get side room; phones keep the 16px gutter */
@media (min-width:761px){:root{--container:min(88vw,76rem)}}
:root{
  --bl-blue:#288cf8; --bl-blue-2:#1767d6; --bl-ink:#16182c; --bl-grey:#5b6478; --bl-grey-2:#7d869a; --bl-line:#dbe4f2;
  --bl-panel:#eef5ff; --bl-panel-2:#f5f9ff; --bl-night:#071a45; --bl-night-2:#0b2256; --bl-night-3:#123279;
  --bl-col:45rem; --bl-toc:15rem; --bl-gap:4rem; --bl-r:1rem;
  --hdr:64px;
}
@media (min-width:1800px){:root{--hdr:74.24px}}
@media (min-width:2200px){:root{--hdr:85.76px}}
@media (min-width:2560px){:root{--hdr:96px}}
@media (min-width:3200px){:root{--hdr:115.2px}}
@media (min-width:3600px){:root{--hdr:128px}}

.bl-page{background:#fff}
.bl{padding-top:var(--hdr);color:var(--bl-ink)}
.bl-skip{position:fixed;left:1rem;top:-4rem;z-index:200;padding:.75rem 1rem;border-radius:.6rem;background:var(--bl-ink);color:#fff;font-weight:700}
.bl-skip:focus{top:1rem}
/* current menu item */
@media (min-width:1201px){.mh__link[aria-current="page"]{color:var(--bl-blue-2);box-shadow:inset 0 -2px 0 var(--bl-blue)}}
.mh__link[aria-current="page"] .mh__t{color:var(--bl-blue-2)}

.bl :focus-visible{outline:2px solid var(--bl-blue);outline-offset:3px;border-radius:.3rem}
.bl svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bl .kicker{color:var(--bl-blue-2);font-size:.74rem}

/* ---------- shared bits ---------- */
.bl-crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .55rem;font-size:.92rem;color:var(--bl-grey)}
.bl-crumb li{display:flex;align-items:center;gap:.55rem}
.bl-crumb li+li::before{content:"/";color:#a9b3c6}
.bl-crumb a{color:var(--bl-blue-2);min-height:44px;display:inline-flex;align-items:center}
.bl-crumb a:hover{text-decoration:underline}
.bl-crumb [aria-current]{color:var(--bl-grey)}
.bl-chip{position:relative;z-index:2;display:inline-flex;align-items:center;align-self:flex-start;padding:.28rem .7rem;border-radius:999px;font-size:.82rem;font-weight:600;line-height:1.3;
  color:color-mix(in srgb,var(--c,#288cf8) 78%,#0b1a3a);background:color-mix(in srgb,var(--c,#288cf8) 11%,#fff)}
@supports not (color:color-mix(in srgb,red,blue)){.bl-chip{color:var(--bl-blue-2);background:var(--bl-panel)}}
.bl-chip--lg{min-height:44px;padding:.55rem 1.05rem;font-size:.92rem;font-weight:600;color:var(--bl-ink);background:#fff;border:1px solid var(--bl-line);white-space:nowrap;transition:border-color .2s,background .2s}
.bl-chip--lg:hover{border-color:var(--bl-blue)}
.bl-chip--lg.is-on{color:#fff;background:var(--bl-blue);border-color:var(--bl-blue)}
.bl-link{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;font-weight:700;color:var(--bl-blue-2)}
.bl-link svg{width:1rem;height:1rem;flex:none;transition:transform .2s}
.bl-link:hover svg{transform:translateX(3px)}
.bl-link--sub{font-weight:600;color:var(--bl-grey);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#b9c6dc}
.bl-link--dark{color:#bfe0ff}
.bl-sec-t{font-size:clamp(1.5rem,2.4vw,2rem);margin:.2rem 0 1.6rem}
.bc__meta{font-size:.86rem;color:var(--bl-grey-2);margin-top:.55rem}
.bl-h1{font-size:clamp(2.1rem,3.6vw,3.1rem);line-height:1.2;letter-spacing:-.025em;max-width:32ch}
.bl-hero__p{margin-top:1rem;max-width:44rem;font-size:1.08rem;line-height:1.7;color:var(--bl-grey)}

/* post card */
.bc{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--bl-line);border-radius:var(--bl-r);overflow:hidden;
  box-shadow:0 1rem 2rem -1.8rem rgba(10,24,56,.35);transition:box-shadow .25s,border-color .25s,transform .25s}
@media (hover:hover){.bc:hover{border-color:color-mix(in srgb,var(--c,#288cf8) 45%,#dbe4f2);box-shadow:0 1.4rem 2.4rem -1.8rem rgba(10,24,56,.5)}}
.bc__media{aspect-ratio:16/10;background:var(--bl-panel);overflow:hidden}
.bc__media img{width:100%;height:100%;object-fit:cover}
.bc--text{border-top:4px solid var(--c,#288cf8)}
.bc__media--text{display:flex;align-items:flex-start;padding:1.2rem 1.3rem;background:linear-gradient(160deg,color-mix(in srgb,var(--c,#288cf8) 9%,#fff),#fff 90%)}
.bc__media--text p{font-size:1rem;line-height:1.6;color:#4a5368;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.bc__body{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.2rem 1.25rem;flex:1}
.bc__t{font-size:1.1rem;line-height:1.4;font-weight:700;letter-spacing:-.01em}
.bc__t a::after{content:"";position:absolute;inset:0;z-index:1}
.bc__t a:hover{color:var(--bl-blue-2)}
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}

/* search */
.bl-search{position:relative;display:flex;align-items:center;gap:.6rem;width:100%;max-width:33rem;min-height:3.6rem;padding:.35rem .4rem .35rem 1rem;background:#fff;border:1px solid var(--bl-line);border-radius:.9rem;box-shadow:0 1rem 2rem -1.6rem rgba(10,24,56,.35)}
.bl-search:focus-within{border-color:var(--bl-blue);box-shadow:0 0 0 3px rgba(40,140,248,.15)}
.bl-search>svg{width:1.35rem;height:1.35rem;color:var(--bl-grey);flex:none}
.bl-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:16px;color:var(--bl-ink);min-height:44px}
.bl-search input::placeholder{color:#8a93a7}
.bl-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.bl-search button{flex:none;display:grid;place-items:center;width:2.9rem;height:2.9rem;border:0;border-radius:.65rem;background:var(--bl-blue);color:#fff}
.bl-search button svg{width:1.2rem;height:1.2rem}

/* chips row */
.bl-chips{margin-top:1.8rem}
.bl-chips__row{display:flex;flex-wrap:wrap;gap:.6rem}

/* pagination */
.bl-pg{display:flex;justify-content:center;align-items:center;gap:.35rem;margin-top:2.4rem;flex-wrap:wrap}
.bl-pg__n,.bl-pg__arr{display:grid;place-items:center;min-width:44px;height:44px;padding:0 .6rem;border-radius:999px;font-weight:600;color:var(--bl-ink)}
.bl-pg a:hover{background:var(--bl-panel)}
.bl-pg__n.is-on{background:var(--bl-blue);color:#fff}
.bl-pg__gap{padding:0 .3rem;color:var(--bl-grey-2)}
.bl-pg__arr svg{width:1.1rem;height:1.1rem}
.bl-pg__arr--prev svg{transform:scaleX(-1)}

/* ---------- /blog/ ---------- */
.bl-hero{position:relative;padding:1.2rem 0 2.2rem;background:linear-gradient(180deg,#f3f8ff 0%,#fff 100%)}
.bl-hero::after{content:"";position:absolute;inset:0 0 0 auto;width:40%;pointer-events:none;
  background:radial-gradient(circle,rgba(40,140,248,.16) 1px,transparent 1.5px) 0 0/18px 18px;
  -webkit-mask:linear-gradient(90deg,transparent,#000 60%);mask:linear-gradient(90deg,transparent,#000 60%)}
.bl-hero .wrap{z-index:1}
.bl-hero .kicker{margin:1.4rem 0 .9rem}
.bl-hero__g{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem 3rem;align-items:end}
.bl-hero__g .bl-search{width:28rem}

.bl-top{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:2.4rem;padding:1.6rem 0 3.4rem}
.bl-feat{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--bl-line);border-radius:1.2rem;overflow:hidden;box-shadow:0 1.4rem 2.6rem -2rem rgba(10,24,56,.45)}
.bl-feat__media{aspect-ratio:3/2;overflow:hidden;background:var(--bl-panel)}
.bl-feat__media img{width:100%;height:100%;object-fit:cover}
.bl-feat__b{display:flex;flex-direction:column;gap:.6rem;padding:1.3rem 1.6rem 1.6rem}
.bl-feat__t{font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.3}
.bl-feat__t a::after{content:"";position:absolute;inset:0;z-index:1}
.bl-feat__t a:hover{color:var(--bl-blue-2)}
.bl-feat__ex{color:var(--bl-grey);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bl-recent .kicker{margin-bottom:.6rem}
.bl-recent ul{list-style:none;margin:0;padding:0}
.bm{position:relative;display:grid;grid-template-columns:13rem minmax(0,1fr);gap:1.2rem;align-items:start;padding:1rem 0;border-bottom:1px solid var(--bl-line)}
.bm:first-child{padding-top:0}
.bm__img{display:block;aspect-ratio:16/10;border-radius:.8rem;overflow:hidden;background:var(--bl-panel)}
.bm__img img{width:100%;height:100%;object-fit:cover}
.bm--text{grid-template-columns:minmax(0,1fr);padding-left:1rem;box-shadow:inset 3px 0 0 var(--c,#288cf8)}
.bm>div{display:flex;flex-direction:column;gap:.45rem}
.bm__t{font-size:1.08rem;line-height:1.4;font-weight:700}
.bm__t a::after{content:"";position:absolute;inset:0;z-index:1}
.bm__t a:hover{color:var(--bl-blue-2)}
.bm .bc__meta{margin-top:0}

.bl-shelf{display:grid;grid-template-columns:minmax(0,19rem) minmax(0,1fr);gap:2.4rem;padding:2.4rem 0;border-top:1px solid var(--bl-line)}
.bl-shelf[hidden]{display:none}
.bl-shelf__h{display:flex;flex-direction:column;align-items:flex-start}
.bl-shelf__h .kicker{margin-bottom:.7rem}
.bl-shelf__t{font-size:clamp(1.6rem,2.3vw,2.05rem);line-height:1.22}
.bl-shelf__p{margin:.8rem 0 .6rem;color:var(--bl-grey);line-height:1.65}
.bl-shelf__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.bl-more{display:flex;justify-content:center;padding:.4rem 0 3rem}
.bl-more__btn{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.7rem 1.5rem;border-radius:.9rem;border:1.5px solid var(--bl-blue);background:#fff;color:var(--bl-blue-2);font-weight:700}
.bl-more__btn svg{width:1.1rem;height:1.1rem;transition:transform .25s}
.bl-more__btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.no-js .bl-more,.bl-more[hidden]{display:none}
html:not(.js) .bl-shelf[hidden]{display:grid}
html:not(.js) .bl-more{display:none}

/* navy band: the only dark band of the listing, kept calm (no stars, no motion) */
.bl-cases{position:relative;padding:3.4rem 0 3.6rem;color:#fff;background:linear-gradient(180deg,var(--bl-night) 0%,var(--bl-night-2) 60%,var(--bl-night-3) 100%)}
.bl-cases::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 80% at 85% 0%,rgba(40,140,248,.22),transparent 70%)}
.bl-cases .kicker{color:#ffb08a}
.bl-cases__h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.8rem}
.bl-cases__h h2{font-size:clamp(1.7rem,2.8vw,2.4rem);color:#fff}
.bl-cases .grad{background-image:var(--grad-dark)}
.bl-cases__row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
.bl-case a{display:flex;flex-direction:column;height:100%;background:#fff;color:var(--bl-ink);border-radius:var(--bl-r);overflow:hidden;box-shadow:0 1.6rem 3rem -2rem rgba(0,0,0,.6);transition:transform .25s}
@media (hover:hover){.bl-case a:hover{transform:translateY(-3px)}}
.bl-case__img{aspect-ratio:16/10;overflow:hidden;background:#eef3fb}
.bl-case__img img{width:100%;height:100%;object-fit:cover}
.bl-case__b{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.2rem 1.2rem}
.bl-case__b b{font-size:1.1rem}
.bl-case__b span{color:var(--bl-grey);line-height:1.5}
.bl-case__b em{display:inline-flex;align-items:center;gap:.35rem;margin-top:.3rem;font-style:normal;font-weight:700;color:var(--bl-blue-2)}
.bl-case__b em svg{width:.95rem;height:.95rem}
.bl-all{padding:3.6rem 0 4.4rem}

/* ---------- archives ---------- */
.bl-hero--arch{padding-bottom:1.6rem}
.bl-h1--arch{max-width:none}
.bl-desc p+p{margin-top:.6rem}
.bl-arch__g{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:3rem;align-items:start;padding:1.6rem 0 4.4rem}
.bl-start{margin-bottom:2.6rem}
.bl-start .kicker,.bl-arch__main .kicker{display:flex;margin-bottom:1rem}
.bl-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.bl-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--bl-line)}
.bl-row a{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;min-height:52px;padding:.8rem .4rem;border-bottom:1px solid var(--bl-line);transition:background .2s}
.bl-row a:hover{background:var(--bl-panel-2)}
.bl-row a:hover .bl-row__t{color:var(--bl-blue-2)}
.bl-row__t{font-weight:600;line-height:1.45}
.bl-row__m{flex:none;font-size:.86rem;color:var(--bl-grey-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.bl-side{position:sticky;top:calc(var(--hdr) + 1.2rem)}
.bl-side__card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.4rem;border:1px solid var(--bl-line);border-radius:1.1rem;background:#fff;box-shadow:0 1.4rem 2.6rem -2.2rem rgba(10,24,56,.5)}
.bl-side__img{display:block;width:100%;aspect-ratio:16/9;border-radius:.8rem;overflow:hidden;margin:.2rem 0 .4rem;background:var(--bl-panel)}
.bl-side__img img{width:100%;height:100%;object-fit:cover}
.bl-side__t{font-weight:800;font-size:1.15rem;line-height:1.3}
.bl-side__p{color:var(--bl-grey);line-height:1.6;font-size:.96rem}
.bl-side hr{width:100%;border:0;border-top:1px solid var(--bl-line);margin:.8rem 0}
.bl-side__btn{width:100%;margin-top:.5rem;white-space:normal;text-align:center}
.bl-empty{padding:2rem;border-radius:var(--bl-r);background:var(--bl-panel-2);border:1px solid var(--bl-line)}
.bl-empty p{font-weight:700;margin-bottom:1rem}

/* ---------- post ---------- */
.bl-progress{position:fixed;left:0;right:0;top:var(--hdr);z-index:85;height:3px;background:rgba(40,140,248,.12);transition:top .5s ease-in-out;pointer-events:none}
.bl-progress span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#1159c4,#288cf8 70%,#4fa6ff);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.bl-page.hdr-out .bl-progress{top:0}
.bl-post__g{display:grid;grid-template-columns:var(--bl-toc) minmax(0,var(--bl-col)) minmax(0,1fr);gap:0 var(--bl-gap);padding:2rem 0 3rem}
.bl-post__g--notoc{grid-template-columns:minmax(0,1fr) minmax(0,var(--bl-col)) minmax(0,1fr)}
.bl-post__g--notoc .bl-art{grid-column:2}

.bl-toc{position:relative}
.bl-toc__in{position:sticky;top:calc(var(--hdr) + 1.6rem);max-height:calc(100vh - var(--hdr) - 3rem);max-height:calc(100dvh - var(--hdr) - 3rem);overflow:auto;overscroll-behavior:contain;
  padding:.2rem .8rem 1rem 0;border-right:1px solid var(--bl-line);scrollbar-width:thin}
.bl-toc .kicker{margin-bottom:.9rem}
.bl-toc ol{list-style:none;margin:0;padding:0}
.bl-toc a{position:relative;display:block;padding:.45rem .4rem .45rem .95rem;font-size:.92rem;line-height:1.45;color:var(--bl-grey);border-radius:.4rem;transition:color .2s,background .2s}
.bl-toc a::before{content:"";position:absolute;left:0;top:.45rem;bottom:.45rem;width:3px;border-radius:3px;background:transparent;transition:background .2s}
.bl-toc a:hover{color:var(--bl-ink)}
.bl-toc a.is-on{color:var(--bl-blue-2);font-weight:700;background:var(--bl-panel-2)}
.bl-toc a.is-on::before{background:var(--bl-blue)}
.bl-toc .n{display:none}
.bl-toc li>ol{display:none;padding-left:.9rem}
.bl-toc li.is-open>ol{display:block}
.bl-toc li>ol a{font-size:.86rem;padding-top:.32rem;padding-bottom:.32rem}
.bl-toc__pct{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--bl-line);font-size:.86rem;font-weight:600;color:var(--bl-grey-2);font-variant-numeric:tabular-nums}

.bl-art{min-width:0}
.bl-art__h{display:flex;flex-direction:column;gap:.8rem}
.bl-art__h .bl-crumb{margin-bottom:-.2rem}
.bl-art__t{font-size:clamp(2rem,3.2vw,2.75rem);line-height:1.22;letter-spacing:-.025em}
.bl-sapo{font-size:1.15rem;line-height:1.65;color:#3d4659;font-weight:500}
.bl-meta{display:flex;align-items:center;gap:.8rem;padding:.9rem 0;border-top:1px solid var(--bl-line);border-bottom:1px solid var(--bl-line)}
.bl-meta__logo{width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--bl-line);background:#fff;object-fit:contain;padding:.2rem}
.bl-meta p{display:flex;flex-direction:column;line-height:1.45}
.bl-meta b{font-weight:700}
.bl-meta span{font-size:.88rem;color:var(--bl-grey-2)}
.bl-cover{margin:1.6rem 0 0;border-radius:1.1rem;overflow:hidden;background:var(--bl-panel);box-shadow:0 1.4rem 2.6rem -2.2rem rgba(10,24,56,.5)}
.bl-cover img{width:100%;height:auto}

/* the article body: styles for the_content of 435 old posts */
.post-body{--bleed:max(0px,min(15rem,calc(var(--container) - var(--bl-toc) - var(--bl-gap) - var(--bl-col) - 1rem)));
  margin-top:2rem;font-size:1.125rem;line-height:1.7;color:#22263a;overflow-wrap:break-word}
.post-body>*+*{margin-top:1.15em}
.post-body p,.post-body li{text-wrap:pretty}
.post-body a{color:var(--bl-blue-2);text-decoration:underline;text-decoration-color:rgba(23,103,214,.35);text-underline-offset:3px}
.post-body a:hover{text-decoration-color:currentColor}
.post-body strong,.post-body b{font-weight:700;color:var(--bl-ink)}
.post-body h2{position:relative;margin-top:2.6em;padding-top:1.1rem;font-size:1.875rem;line-height:1.25;scroll-margin-top:calc(var(--hdr) + 1.5rem)}
.post-body h2::before{content:"";position:absolute;top:0;left:0;width:2.8rem;height:4px;border-radius:4px;background:var(--bl-blue)}
.post-body h3{margin-top:2em;font-size:1.375rem;line-height:1.3;font-weight:700;scroll-margin-top:calc(var(--hdr) + 1.5rem)}
.post-body h4{margin-top:1.6em;font-size:1.15rem;line-height:1.35}
.post-body h2+*,.post-body h3+*{margin-top:.7em}
.post-body ul,.post-body ol{padding-left:1.4em}
.post-body li+li{margin-top:.4em}
.post-body li::marker{color:var(--bl-blue)}
.post-body img{height:auto;border-radius:.8rem}
.post-body p>img:only-child,.post-body p>a>img:only-child{margin-inline:auto}
.post-body figure{margin:1.6em 0}
.post-body figcaption,.post-body .wp-caption-text,.post-body .wp-element-caption{margin-top:.6rem;font-size:.9rem;line-height:1.5;color:var(--bl-grey-2);text-align:center}
.post-body .wp-caption{max-width:100%!important;width:auto!important}
.post-body .aligncenter{margin-inline:auto}
.post-body .alignleft,.post-body .alignright{float:none;margin-inline:auto}
.post-body span[style*="font-size"]{font-size:inherit!important}
.post-body [style*="color"]:not(.mona-cta):not(.mona-cta *){color:inherit!important}
.post-body blockquote{position:relative;margin:1.8em 0;padding:.3rem 0 .3rem 1.4rem;font-size:1.2rem;line-height:1.6;font-weight:700;color:var(--bl-ink)}
.post-body blockquote::before{content:"";position:absolute;left:0;top:.2rem;bottom:.2rem;width:3px;border-radius:3px;background:linear-gradient(180deg,#ff7a59,#f68920)}
.post-body blockquote p+p{margin-top:.6em}
.post-body hr{border:0;border-top:1px solid var(--bl-line);margin:2.4em 0}
.post-body code{font-family:var(--mono);font-size:.86em;padding:.12em .38em;border-radius:.35em;background:#eef3fb;color:#0b2a66}
.post-body pre{margin:1.6em 0;padding:1.1rem 1.25rem;border-radius:.9rem;background:#0b1a3a;color:#e6eefc;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.86rem;line-height:1.65;tab-size:2}
.post-body pre code{padding:0;background:none;color:inherit;font-size:inherit;white-space:pre}
.post-body .entry-header,.post-body .author-date,.post-body #toc_container,.post-body .toc_widget{display:none!important}
.post-body::after{content:"";display:table;clear:both}

/* tables: scroll sideways, first column pinned, calm hairlines; old inline widths are overridden */
.post-body .tbl-scroll{position:relative;margin:1.8em 0;width:calc(100% + var(--bleed));overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  border:1px solid var(--bl-line);border-radius:.9rem;background:#fff;scrollbar-width:thin}
.post-body .tbl-scroll:focus-visible{outline-offset:2px}
.post-body table{width:100%!important;height:auto!important;min-width:36rem;border-collapse:separate;border-spacing:0;font-size:.95rem;line-height:1.55}
.post-body td,.post-body th{width:auto!important;height:auto!important;min-width:9rem;max-width:26rem;padding:.75rem .9rem;text-align:left!important;vertical-align:top;border:0;border-bottom:1px solid var(--bl-line);background:#fff}
.post-body tr>*:first-child{position:sticky;left:0;z-index:1;min-width:8rem;font-weight:700;color:var(--bl-ink);box-shadow:1px 0 0 var(--bl-line)}
.post-body thead th,.post-body thead td,.post-body tbody tr:first-child>*:has(>strong:only-child),.post-body tbody tr:first-child>*:has(>span>strong){background:var(--bl-panel);font-weight:700;color:var(--bl-ink)}
.post-body tr:last-child>*{border-bottom:0}
.post-body td ul,.post-body td ol{padding-left:1.1em}
.post-body td li+li{margin-top:.25em}
.post-body td p{margin:0}
.post-body td p+p{margin-top:.4em}
.post-body .tbl-hint{display:none;align-items:center;justify-content:flex-end;gap:.3rem;margin:1.6em 0 -1.2em;font-size:.84rem;color:var(--bl-grey-2)}
.post-body .tbl-hint svg{width:.95rem;height:.95rem}
.post-body .tbl-hint.is-on{display:flex}

/* YouTube: thumbnail link until clicked */
.post-body .wp-block-embed__wrapper,.post-body .video-iframe{position:relative}
.post-body .yt{position:relative;display:block;aspect-ratio:16/9;border-radius:.9rem;overflow:hidden;background:#0b1a3a;text-decoration:none}
.post-body .yt img{width:100%;height:100%;object-fit:cover;border-radius:0;opacity:.92;transition:opacity .25s}
.post-body .yt:hover img{opacity:1}
.yt__play{position:absolute;left:50%;top:50%;width:4.4rem;height:3.1rem;margin:-1.55rem 0 0 -2.2rem;border-radius:.9rem;background:rgba(10,20,50,.78);box-shadow:0 .6rem 1.4rem rgba(0,0,0,.35);transition:background .2s}
.yt__play::after{content:"";position:absolute;left:52%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:.62rem 0 .62rem 1.05rem;border-color:transparent transparent transparent #fff}
.post-body .yt:hover .yt__play{background:#f5851e}
.post-body iframe{max-width:100%;border:0;border-radius:.9rem}
.post-body .yt-frame{display:block;width:100%;aspect-ratio:16/9;height:auto}

/* FAQ */
.post-body .faq{border:1px solid var(--bl-line);border-radius:.8rem;background:#fff;margin-top:.7rem}
.post-body .faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:52px;padding:.8rem 1.1rem;cursor:pointer}
.post-body .faq summary::-webkit-details-marker{display:none}
.post-body .faq summary::after{content:"";flex:none;width:1rem;height:1rem;background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 100% no-repeat;color:var(--bl-grey);transition:transform .2s}
.post-body .faq[open] summary::after{background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat}
.post-body .faq summary h3{margin:0;font-size:1.05rem;line-height:1.45;font-weight:700}
.post-body .faq__a{padding:0 1.1rem 1rem;color:#3d4659;font-size:1.02rem}
.post-body .faq__a>*+*{margin-top:.8em}
.post-body .faq+.faq{margin-top:.6rem}

/* cluster CTA in the middle of the post */
.bl-mid{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:1.3rem;align-items:center;margin:2.4em 0!important;padding:1.1rem;border:1.5px solid rgba(40,140,248,.45);border-radius:1.1rem;background:linear-gradient(135deg,#fff,#f3f8ff)}
.bl-mid__img{margin:0!important;aspect-ratio:4/3;border-radius:.8rem;overflow:hidden;background:var(--bl-panel)}
.bl-mid__img img{width:100%;height:100%;object-fit:cover;border-radius:0}
.bl-mid__b{display:flex;flex-direction:column;gap:.4rem}
.bl-mid .kicker{margin:0 0 .15rem;font-size:.68rem}
.bl-mid__q{font-size:1.15rem;font-weight:800;line-height:1.35;color:var(--bl-ink)}
.bl-mid__t{font-size:.98rem;line-height:1.6;color:var(--bl-grey)}
.bl-mid__act{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;margin-top:.4rem}
.bl-mid__act .btn{min-height:2.9rem;padding:.65rem 1.2rem;text-decoration:none;color:#fff;font-size:.95rem}
.bl-mid__act .bl-link{text-decoration:none;font-size:.95rem}

/* old factory CTA blocks inside the_content (inline purple styles): re-dressed, text untouched */
.post-body .mona-cta{position:relative;margin:2.4em 0!important;padding:1.4rem 1.5rem!important;border-radius:1.1rem!important;color:var(--bl-ink)!important;
  background:linear-gradient(135deg,#fff,#f3f8ff)!important;border:1.5px solid rgba(40,140,248,.45)}
.post-body .mona-cta h3{margin:0 0 .5rem;padding:0;font-size:1.2rem;line-height:1.35;color:var(--bl-ink)!important}
.post-body .mona-cta p{color:#3d4659!important;font-size:1rem;line-height:1.65}
.post-body .mona-cta p+p{margin-top:.8em}
.post-body .mona-cta a.btn-mona-cta{display:inline-flex!important;align-items:center;min-height:2.9rem;padding:.65rem 1.25rem!important;border-radius:.8rem!important;background:var(--orange-cta)!important;color:#fff!important;text-decoration:none;font-weight:700;margin:.2rem .6rem .2rem 0}
.post-body .mona-cta a.btn-mona-cta-secondary{display:inline-flex!important;align-items:center;min-height:44px;padding:.4rem 0!important;margin:0!important;border:0!important;color:var(--bl-blue-2)!important;background:none!important;font-weight:700}
.post-body .mona-cta-hard{color:#fff!important;border:0;background:radial-gradient(70% 90% at 90% 0%,rgba(40,140,248,.35),transparent 70%),linear-gradient(160deg,var(--bl-night),var(--bl-night-2) 60%,var(--bl-night-3))!important;
  box-shadow:0 1.6rem 3rem -2rem rgba(7,26,69,.8)}
.post-body .mona-cta-hard h3{color:#fff!important}
.post-body .mona-cta-hard p{color:#d3e2fa!important}
.post-body .mona-cta-hard a.btn-mona-cta-secondary{color:#bfe0ff!important}

/* article foot */
.bl-art__f{margin-top:3rem;display:flex;flex-direction:column;gap:1.4rem}
.bl-author{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1.1rem;padding:1.3rem;border:1px solid var(--bl-line);border-radius:1rem;background:#fff}
.bl-author img{width:4rem;height:4rem;border-radius:50%;border:1px solid var(--bl-line);padding:.3rem;object-fit:contain}
.bl-author p{color:var(--bl-grey);line-height:1.6;font-size:.96rem}
.bl-author .bl-author__n{font-weight:800;color:var(--bl-ink);font-size:1.1rem}
.bl-art__tags{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}
.bl-tags{display:flex;flex-wrap:wrap;gap:.5rem}
.bl-tag{display:inline-flex;align-items:center;min-height:40px;padding:.4rem .9rem;border-radius:999px;background:var(--bl-panel-2);border:1px solid var(--bl-line);font-size:.88rem;color:#3d4659}
.bl-tag:hover{border-color:var(--bl-blue);color:var(--bl-blue-2)}
.bl-share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.bl-share__b{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.45rem .9rem;border-radius:.7rem;border:1px solid var(--bl-line);background:#fff;font-size:.88rem;font-weight:600;color:var(--bl-ink)}
.bl-share__b svg{width:1.1rem;height:1.1rem;color:var(--bl-blue-2)}
.bl-share__b:hover{border-color:var(--bl-blue)}
.bl-share__ok{font-size:.86rem;color:#1aa37a;font-weight:600;min-width:1px}

/* end CTA: navy card, one per post */
.bl-end{padding:1rem 0 3rem}
.bl-end__card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);align-items:stretch;border-radius:1.4rem;overflow:hidden;color:#fff;max-width:72rem;
  background:radial-gradient(60% 90% at 95% 0%,rgba(40,140,248,.3),transparent 70%),linear-gradient(160deg,var(--bl-night),var(--bl-night-2) 60%,var(--bl-night-3));box-shadow:0 2rem 4rem -3rem rgba(7,26,69,.9)}
.bl-end__img{margin:0;min-height:100%;background:#0b2256}
.bl-end__img img{width:100%;height:100%;object-fit:cover}
.bl-end__b{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:2.2rem 2.4rem}
.bl-end .kicker{margin:0;color:#ffb08a}
.bl-end__h{font-size:clamp(1.55rem,2.4vw,2.15rem);line-height:1.25;color:#fff}
.bl-end .grad{background-image:var(--grad-dark)}
.bl-end__p{color:#c9d8f1;line-height:1.65}
.bl-end__act{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem;margin-top:.4rem}
.bl-end__tel{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#fff}
.bl-related{padding:1rem 0 4.4rem}
.bl-related>.bl-link{margin-top:1.2rem}

/* mobile TOC bar + bottom sheet (global mobile menu rules: overlay, scrim, Esc, focus return, scroll lock, ≥44px) */
.bl-tocbar{display:none}
.bl-sheet{position:fixed;inset:0;z-index:120}
.bl-sheet[hidden]{display:none}
.bl-sheet__scrim{position:absolute;inset:0;background:rgba(4,15,43,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s}
.bl-sheet__panel{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;max-height:82vh;max-height:82dvh;background:#fff;border-radius:1.3rem 1.3rem 0 0;
  box-shadow:0 -1rem 3rem rgba(4,15,43,.3);transform:translateY(100%);transition:transform .38s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom);outline:0}
.bl-sheet.is-open .bl-sheet__scrim{opacity:1}
.bl-sheet.is-open .bl-sheet__panel{transform:translateY(var(--drag,0px))}
.bl-sheet.is-drag .bl-sheet__panel{transition:none}
.bl-sheet__grab{display:flex;justify-content:center;padding:.7rem 0 .3rem;touch-action:none;cursor:grab}
.bl-sheet__grab span{width:2.6rem;height:.3rem;border-radius:1rem;background:#cfd8e6}
.bl-sheet__h{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.2rem 1.1rem .7rem;touch-action:none}
.bl-sheet__t{font-size:1.25rem;font-weight:800;line-height:1.3}
.bl-sheet__pct{font-size:.92rem;color:var(--bl-grey);font-variant-numeric:tabular-nums}
.bl-sheet__x{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;border:0;background:#eef2f8;color:var(--bl-ink)}
.bl-sheet__x svg{width:1.2rem;height:1.2rem}
.bl-sheet__bar{margin:0 1.1rem .6rem;height:5px;border-radius:5px;background:#e6edf7;overflow:hidden}
.bl-sheet__bar span{display:block;height:100%;background:var(--bl-blue);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.bl-sheet__list{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-top:1px solid var(--bl-line)}
.bl-sheet__list ol{list-style:none;margin:0;padding:0}
.bl-sheet__list>ol>li>a{display:flex;align-items:center;gap:.9rem;min-height:52px;padding:.55rem 1.1rem;border-bottom:1px solid #edf1f7;font-size:1rem;line-height:1.4;color:var(--bl-ink)}
.bl-sheet__list .n{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:50%;background:#eef2f8;font-size:.88rem;font-weight:700;color:var(--bl-grey)}
.bl-sheet__list a.is-on{background:var(--bl-panel-2);color:var(--bl-blue-2);font-weight:700}
.bl-sheet__list a.is-on .n{background:var(--bl-blue);color:#fff}
.bl-sheet__list li>ol{display:none}
html.bl-lock,html.bl-lock body{overflow:hidden}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  :root{--bl-toc:13.5rem;--bl-gap:2.6rem}
  .bl-post__g{grid-template-columns:var(--bl-toc) minmax(0,var(--bl-col)) minmax(0,1fr)}
}
@media (max-width:1100px){
  .bl-post__g{grid-template-columns:minmax(0,1fr);max-width:var(--bl-col)}
  .bl-post__g--notoc .bl-art{grid-column:auto}
  .bl-toc{display:none}
  .post-body{--bleed:0px}
  .bl-tocbar{display:block;position:sticky;top:calc(var(--hdr) + 3px);z-index:80;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--bl-line);transition:top .5s ease-in-out}
  .bl-page.hdr-out .bl-tocbar{top:3px}
  .bl-tocbar__b{display:flex;align-items:center;gap:.7rem;width:var(--container);max-width:var(--bl-col);margin:0 auto;min-height:52px;padding:0;border:0;background:none;text-align:left}
  .bl-tocbar__b>svg{width:1.3rem;height:1.3rem;flex:none;color:var(--bl-blue-2)}
  .bl-tocbar__l{flex:none;font-weight:700}
  .bl-tocbar__cur{flex:1;min-width:0;font-size:.9rem;color:var(--bl-grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
  .bl-tocbar__b .bl-tocbar__chev{width:1.1rem;height:1.1rem;flex:none;color:var(--bl-grey)}
  .bl-top{grid-template-columns:minmax(0,1fr)}
  .bl-shelf{grid-template-columns:minmax(0,1fr);gap:1.2rem}
  .bl-arch__g{grid-template-columns:minmax(0,1fr)}
  .bl-side{position:static}
  .bl-end__card{grid-template-columns:minmax(0,1fr)}
  .bl-end__img{aspect-ratio:16/8}
}
@media (max-width:900px){
  .bl-hero__g{grid-template-columns:minmax(0,1fr)}
  .bl-hero__g .bl-search{width:100%;max-width:none}
  .bl-grid,.bl-grid--3,.bl-shelf__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bl-cases__row{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .wrap{width:calc(100% - 32px)}
  .bl-tocbar__b{width:calc(100% - 32px)}
  .bl-hero{padding:.4rem 0 1.4rem}
  .bl-hero .kicker{margin:.8rem 0 .7rem}
  .bl-h1{font-size:1.95rem;max-width:none}
  .bl-hero__p{font-size:1rem}
  .bl-chips{margin:1.2rem -16px 0}
  .bl-chips__row{flex-wrap:nowrap;overflow-x:auto;padding:0 16px 4px;scroll-padding-inline:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .bl-chips__row::-webkit-scrollbar{display:none}
  .bl-top{gap:1.6rem;padding:1rem 0 2.2rem}
  .bl-feat__b{padding:1rem 1.1rem 1.2rem}
  .bl-feat__t{font-size:1.3rem}
  .bm{grid-template-columns:7.5rem minmax(0,1fr);gap:.9rem}
  .bm__t{font-size:1rem}
  .bm.bm--text{grid-template-columns:minmax(0,1fr)}
  .bl-recent li:nth-child(n+4){display:none}
  .bl-grid,.bl-grid--3,.bl-shelf__cards{grid-template-columns:minmax(0,1fr);gap:1rem}
  .bl-shelf{padding:1.8rem 0}
  .bl-shelf__t{font-size:1.6rem}
  .bl-shelf__cards{grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 6px;scroll-padding-inline:16px;scrollbar-width:none}
  .bl-shelf__cards::-webkit-scrollbar{display:none}
  .bl-shelf__cards .bc{scroll-snap-align:start}
  .bl-cases{padding:2.6rem 0}
  .bl-all{padding:2.6rem 0 3.4rem}
  .bl-row a{flex-direction:column;gap:.25rem}
  .bl-post__g{padding:1.1rem 0 2rem}
  .bl-art__t{font-size:1.85rem}
  .bl-sapo{font-size:1.05rem}
  .bl-cover{margin:1.2rem -16px 0;border-radius:0}
  .post-body{font-size:1.0625rem;line-height:1.7}
  .post-body h2{font-size:1.5rem}
  .post-body h3{font-size:1.2rem}
  .post-body .tbl-scroll,.post-body pre{margin-inline:-16px;width:auto;border-radius:0;border-left:0;border-right:0}
  .post-body table{min-width:32rem;font-size:.9rem}
  .post-body td,.post-body th{min-width:8rem;padding:.6rem .7rem}
  .post-body .yt{margin-inline:-16px;border-radius:0}
  .bl-mid{grid-template-columns:minmax(0,1fr);padding:1rem}
  .bl-mid__img{aspect-ratio:16/8}
  .bl-author{grid-template-columns:3rem minmax(0,1fr);padding:1rem}
  .bl-author img{width:3rem;height:3rem}
  .bl-art__tags{flex-direction:column;align-items:flex-start}
  .bl-share__b span{font-size:.86rem}
  .bl-end{padding:.4rem 0 2.2rem}
  .bl-end__card{border-radius:1.1rem}
  .bl-end__b{padding:1.4rem 1.2rem 1.6rem}
  .bl-end__h{font-size:1.45rem}
  .bl-crumb ol{font-size:.86rem}
}
@media (prefers-reduced-motion:reduce){
  .bl-sheet__panel,.bl-sheet__scrim,.bl-progress,.bl-tocbar,.bc,.bl-case a,.bl-link svg{transition:none!important}
}
@media (max-width:1100px){.post-body h2,.post-body h3{scroll-margin-top:calc(var(--hdr) + 4.6rem)}}
html.bl-lock monachat-widget{display:none!important} /* the Gấu Cười bubbles must not sit on top of the TOC sheet */
.post-body td ul,.post-body td ol{margin:0}
.nw{white-space:nowrap}
@media (max-width:760px){.bl-art__h .bl-crumb li:first-child,.bl-art__h .bl-crumb li:last-child{display:none}.bl-art__h .bl-crumb li:nth-child(2)::before{display:none}}

/* category / tag / search list: image, chip, title, sapo, meta (28/09/2026; was title-only rows) */
.bl-items{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--bl-line)}
.bi{display:grid;grid-template-columns:clamp(9rem,26%,17rem) minmax(0,1fr);gap:1.4rem;align-items:start;padding:1.25rem 0;border-bottom:1px solid var(--bl-line)}
.bi__media{display:block;aspect-ratio:16/10;border-radius:.8rem;overflow:hidden;background:var(--bl-panel-2)}
.bi__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.bi__ph{display:flex;align-items:flex-end;width:100%;height:100%;padding:.9rem;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 16%,#fff),color-mix(in srgb,var(--c) 34%,#fff))}
.bi__ph span{font-weight:800;font-size:.95rem;line-height:1.3;color:color-mix(in srgb,var(--c) 70%,#16182c)}
.bi__body{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;min-width:0}
.bi__t{margin:0;font-size:1.18rem;line-height:1.35;font-weight:700;text-wrap:pretty}
.bi__t a{color:inherit;text-decoration:none}
.bi__p{margin:0;color:var(--bl-grey,#5f6477);font-size:.97rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bi .bc__meta{margin:0}
@media (hover:hover){.bi:hover .bi__t a{color:var(--bl-blue-2)}.bi:hover .bi__media img{transform:scale(1.04)}}
@media (max-width:760px){
  .bi{grid-template-columns:7.5rem minmax(0,1fr);gap:.9rem;padding:1rem 0}
  .bi__media{aspect-ratio:1/1;border-radius:.7rem}
  .bi__t{font-size:1.02rem}
  .bi__p{-webkit-line-clamp:2;font-size:.92rem}
  .bi__ph{padding:.6rem}.bi__ph span{font-size:.8rem}
}
@media (prefers-reduced-motion:reduce){.bi__media img{transition:none}}
.bl-items--cat .bi .bl-chip{display:none} /* every item in a category shares its chip */
