/* Glowpedia blog (Glow Guides): blog home, world pages and articles. Loaded on blog pages only, after site.css; every class starts with bl-. */

/* headings and labels */
.bl-sech{font-size:clamp(1.25rem,2.4vw,1.6rem)}
.bl-sidek{font:800 .72rem/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--violet-i)}

/* article cards (blog home, world pages, Keep reading) */
.bl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:14px}
.bl-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 18px 18px;text-decoration:none;color:var(--ink);min-width:0;overflow:hidden}
.bl-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#FF6FAE,#FF2E88)}
.bl-card.w-hair::before{background:linear-gradient(90deg,#B08BFF,#7A3CFF)}
.bl-card.w-body::before{background:linear-gradient(90deg,#4FD3FF,#00B4F0)}
.bl-card:focus-visible{border-radius:var(--r)}
.bl-card .pill{align-self:flex-start;padding:6px 10px;font-size:.72rem}
.bl-title{font:700 1.06rem/1.3 var(--f-display);letter-spacing:-.01em;overflow-wrap:break-word;hyphens:auto;transition:color .2s}
.bl-card:hover .bl-title{color:var(--violet-i)}
.bl-desc{font-size:.9rem;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:auto;padding-top:4px;font:700 .8rem/1.3 var(--f-body);color:var(--muted)}
.bl-meta .reviewed{font-size:.78rem}

/* featured row: one large card and two beside it */
.bl-feat{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.bl-fc::before{display:none}
.bl-cover{position:relative;display:block;flex:none;height:96px;margin:-22px -18px 4px;overflow:hidden;background:linear-gradient(135deg,var(--pink-s),var(--violet-s))}
.bl-fc.w-hair .bl-cover{background:linear-gradient(135deg,var(--violet-s),var(--cyan-s))}
.bl-fc.w-body .bl-cover{background:linear-gradient(135deg,var(--cyan-s),var(--teal-s))}
.bl-cover i{position:absolute;border-radius:50%;filter:blur(26px);opacity:.7}
.bl-cover i:nth-child(1){width:190px;height:190px;left:-40px;top:-90px;background:#FF8BC0}
.bl-cover i:nth-child(2){width:170px;height:170px;right:-30px;bottom:-110px;background:#C9B2FF}
.bl-fc.w-hair .bl-cover i:nth-child(1){background:#C9B2FF}.bl-fc.w-hair .bl-cover i:nth-child(2){background:#8FE3FF}
.bl-fc.w-body .bl-cover i:nth-child(1){background:#8FE3FF}.bl-fc.w-body .bl-cover i:nth-child(2){background:#7FE8D4}
.bl-cover b{position:absolute;right:16px;bottom:8px;font:800 2.4rem/1 var(--f-display);letter-spacing:-.04em;z-index:1}
.bl-cover::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgb(255 255 255 / .8) 1.2px,transparent 1.7px);background-size:14px 14px;-webkit-mask-image:linear-gradient(115deg,transparent 35%,#000 95%);mask-image:linear-gradient(115deg,transparent 35%,#000 95%)}
.bl-feat > .bl-card:first-child .bl-title{font-size:clamp(1.25rem,2.6vw,1.75rem);line-height:1.2}
.bl-feat > .bl-card:first-child .bl-desc{font-size:.98rem;-webkit-line-clamp:4}
@media (min-width:761px){
  .bl-feat{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
  .bl-feat > .bl-card:first-child{grid-row:span 2}
  .bl-feat > .bl-card:first-child .bl-cover{flex:1 0 auto;height:auto;min-height:150px;max-height:260px}
  .bl-feat > .bl-card:first-child .bl-cover b{font-size:clamp(3rem,6vw,4.6rem);right:22px;bottom:14px}
  .bl-feat > .bl-card:first-child:nth-last-child(2){grid-row:auto}
  .bl-feat > .bl-card:only-child{grid-column:1 / -1}
}

/* empty state */
.bl-empty .more{align-self:flex-start;margin-top:6px}

/* article header */
.bl-head h1{font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.12;max-width:26ch;overflow-wrap:break-word;hyphens:auto}
.bl-byline{display:flex;flex-wrap:wrap;gap:4px 8px;font:700 .86rem/1.4 var(--f-body);color:var(--muted)}
.bl-head .reviewed{align-self:flex-start;font-size:.86rem;padding:7px 12px;border-radius:14px;background:var(--good-s)}
.bl-unrev{align-self:flex-start;display:inline-flex;align-items:center;gap:9px;max-width:100%;font:700 .82rem/1.4 var(--f-body);color:var(--muted);background:rgb(255 255 255 / .75);border:1px solid #DCD8EE;border-radius:14px;padding:7px 13px}
.bl-unrev::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--violet);opacity:.55}

/* article layout: body + sticky side column */
.bl-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start;padding-block:clamp(20px,3vw,36px) clamp(36px,5vw,60px)}
.bl-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.bl-side{display:flex;flex-direction:column;gap:18px;min-width:0}
.bl-toc{display:flex;flex-direction:column;gap:10px}
.bl-toclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:bl-t}
.bl-toclist li{counter-increment:bl-t}
.bl-toclist a{display:flex;align-items:center;gap:10px;min-height:40px;padding:7px 10px;border-radius:12px;text-decoration:none;color:var(--ink);font:600 .9rem/1.35 var(--f-body);transition:background .2s,color .2s}
.bl-toclist a::before{content:counter(bl-t,decimal-leading-zero);flex:none;font:600 .72rem/1 var(--f-mono);color:var(--violet-i)}
.bl-toclist a:hover{background:var(--tint);color:var(--violet-i)}
.bl-tocm{padding:0;box-shadow:none;background:var(--tint)}
.bl-tocm summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:12px 16px;cursor:pointer;font:800 .78rem/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--violet-i);border-radius:var(--r)}
.bl-tocm summary::-webkit-details-marker{display:none}
.bl-tocm summary::after{content:"";flex:none;width:9px;height:9px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.bl-tocm[open] summary::after{transform:translateY(2px) rotate(225deg)}
.bl-tocm nav{padding:0 8px 10px}
.bl-tocm .bl-toclist a{min-height:44px}
.bl-topics{padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:none}
.bl-topics ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.bl-topics a{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-radius:12px;text-decoration:none;color:var(--ink);transition:background .2s}
.bl-topics a:hover{background:var(--tint)}
/* the side column scrolls on desktop: keep focus rings inside it */
.bl-side a:focus-visible,.bl-body .tbl a:focus-visible{outline-offset:-3px}
.bl-topics b{font:700 .95rem/1.3 var(--f-display);letter-spacing:-.01em}
.bl-topics span{font-size:.82rem;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:981px){
  .bl-layout{grid-template-columns:minmax(0,1fr) 290px;gap:clamp(32px,4vw,64px)}
  .bl-layout.bl-solo{grid-template-columns:minmax(0,1fr)}
  .bl-side{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px}
  .bl-tocm{display:none}
}
@media (max-width:980px){.bl-toc{display:none}}

/* article body: the HTML the backend renders from Markdown */
.bl-body{max-width:70ch;font-size:1.06rem;line-height:1.75;overflow-wrap:break-word}
.bl-body > * + *{margin-top:1.05em}
.bl-body h2{font-size:clamp(1.3rem,2.6vw,1.7rem);line-height:1.2;margin-top:2.1em;scroll-margin-top:90px}
.bl-body h2::before{content:"";display:block;width:30px;height:4px;margin-bottom:14px;border-radius:9px;background:var(--holo);background-size:200% 100%}
.bl-body h3{font-size:1.1rem;line-height:1.35;margin-top:1.7em;scroll-margin-top:90px}
.bl-body h4{font:800 1rem/1.4 var(--f-body);margin:1.4em 0 0}
.bl-body h2 + *,.bl-body h3 + *,.bl-body h4 + *{margin-top:.55em}
.bl-body > :first-child{margin-top:0}
.bl-body ul,.bl-body ol{margin-bottom:0;padding-left:1.3em}
.bl-body li + li{margin-top:.45em}
.bl-body li::marker{color:var(--violet)}
.bl-body ol > li::marker{font-weight:800;color:var(--violet-i)}
.bl-body strong{font-weight:800}
.bl-body a{color:var(--violet-i);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:3px}
.bl-body a:hover{color:var(--pink-i)}
.bl-body a.ext::after{content:"↗";content:"↗" / "";display:inline-block;margin-left:2px;font-size:.8em;text-decoration:none}
.bl-body code{font:500 .86em/1.4 var(--f-mono);background:var(--tint);border:1px solid var(--line);border-radius:6px;padding:1px 5px}
.bl-body blockquote{margin:1.5em 0 0;padding:16px 20px;border-radius:var(--r);background:var(--tint);border:1px solid var(--line);font-size:1rem}
/* the first quote is the "Quick answer" box */
.bl-body > blockquote:first-of-type{padding:20px 22px;border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--holo) border-box;box-shadow:var(--shadow)}
.bl-body > blockquote:first-of-type > strong:first-child{display:block;margin-bottom:8px;font:800 .74rem/1.2 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--violet-i)}
/* tables scroll sideways on small screens: inside the backend's .tbl wrapper, or on their own */
.bl-body .tbl{margin-top:1.5em;max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 26px -22px rgb(90 40 200 / .4);scrollbar-width:thin}
.bl-body > table{display:block;width:fit-content;max-width:100%;overflow-x:auto;margin-top:1.5em;border:1px solid var(--line);border-radius:16px;scrollbar-width:thin}
.bl-body table{border-collapse:collapse;font-size:.9rem;line-height:1.45;overflow-wrap:normal}
.bl-body .tbl table{width:100%}
.bl-body th,.bl-body td{padding:11px 14px;text-align:left;vertical-align:top;min-width:8.5em}
.bl-body th{background:var(--tint);font:800 .74rem/1.3 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bl-body td{border-top:1px solid var(--line)}
.bl-body td:first-child{font-weight:700}
.bl-body tbody tr:nth-child(even) td{background:#FCFBFF}
/* Sources list at the end, a little smaller */
.bl-body #sources ~ ul{font-size:.92rem}

/* Keep reading + closing line */
.bl-more{border-top:1px solid var(--line);background:linear-gradient(180deg,var(--tint),#fff 70%)}
.bl-disc{margin:22px 0 40px;font-size:.86rem;color:var(--muted);text-align:center;text-wrap:balance}

@media (max-width:600px){
  .bl-body{font-size:1rem;line-height:1.7}
  .bl-body h2,.bl-body h3{scroll-margin-top:124px}
  .bl-body blockquote{padding:14px 16px}
  .bl-body > blockquote:first-of-type{padding:16px 18px}
  .bl-body th,.bl-body td{padding:10px 12px;min-width:8em}
  .bl-card{padding:20px 16px 16px}
  .bl-cover{margin:-20px -16px 4px;height:72px}
  .bl-cover b{font-size:2rem}
  .bl-feat > .bl-card:first-child .bl-cover{height:110px}
  .bl-feat > .bl-card:first-child .bl-cover b{font-size:2.8rem}
}
