/* DockFlip blog v2: editorial, Zapier-style illustrated cards. Uses site tokens. */
.bl{--ff:"Inter Tight",Inter,system-ui,sans-serif;max-width:75rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem);color:var(--ink,#14141c)}
.c1{--pc:#e9e4ff}.c2{--pc:#ffe7d6}.c3{--pc:#d9f5ea}.c4{--pc:#dcecff}
.bl-art{background:var(--pc,#f1eeff);display:grid;place-items:center;overflow:hidden}
.bl-art svg{width:100%;height:auto;display:block;max-width:34rem}
.bl-chip{font-size:.78rem;font-weight:700;padding:.22rem .7rem;border-radius:999px;background:#fff;border:1.5px solid var(--ink,#14141c);color:var(--ink,#14141c);line-height:1.3}
.bl-meta{display:flex;flex-wrap:wrap;gap:.35rem .8rem;align-items:center;font-size:.88rem;color:var(--muted,#5f6378)}
/* index */
.bl-hero{padding-block:clamp(2.4rem,6vw,4.2rem) 1.4rem;display:grid;gap:1rem}
.bl-hero h1{font-family:var(--ff);font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.035em;margin:0;max-width:15ch;text-wrap:balance}
.bl-hero p{color:var(--muted,#5f6378);font-size:1.18rem;max-width:44ch;margin:0;line-height:1.55}
.bl-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.bl-pill{font:inherit;font-weight:600;font-size:.95rem;padding:.5rem 1.05rem;border-radius:999px;border:1.5px solid var(--line,#e4e6ef);background:#fff;color:var(--ink,#14141c);cursor:pointer;min-height:2.5rem;transition:background .15s,border-color .15s}
.bl-pill:hover{border-color:var(--ink,#14141c)}
.bl-pill[aria-pressed=true]{background:var(--ink,#14141c);color:#fff;border-color:var(--ink,#14141c)}
.bl-pill:focus-visible,.bl-feat:focus-visible,.bl-card:focus-visible,.bl-btn:focus-visible{outline:3px solid var(--primary,#5b3df5);outline-offset:3px}
.bl-feat{display:grid;grid-template-columns:1.15fr 1fr;border-radius:28px;overflow:hidden;text-decoration:none;color:inherit;background:var(--pc);margin-top:1.4rem;transition:transform .22s cubic-bezier(.2,.7,.2,1)}
.bl-feat:hover{transform:translateY(-4px)}
.bl-feat .bl-art{padding:clamp(1rem,3vw,2.2rem)}
.bl-feat .bl-txt{background:#fff;margin:.6rem;border-radius:22px;padding:clamp(1.3rem,3vw,2.5rem);display:flex;flex-direction:column;gap:1rem;justify-content:center;min-width:0}
.bl-feat h2{font-family:var(--ff);font-size:clamp(1.55rem,3vw,2.3rem);line-height:1.12;letter-spacing:-.025em;margin:0;text-wrap:balance}
.bl-feat p{margin:0;color:var(--muted,#5f6378);line-height:1.6}
.bl-go{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--primary,#5b3df5)}
.bl-feat:hover .bl-go svg{transform:translateX(4px)}.bl-go svg{transition:transform .2s}
.bl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19.5rem),1fr));gap:1.4rem;margin-top:2.4rem}
.bl-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border-radius:22px;overflow:hidden;background:#fff;border:1.5px solid var(--line,#e4e6ef);transition:transform .22s cubic-bezier(.2,.7,.2,1),border-color .2s}
a.bl-card:hover{transform:translateY(-4px);border-color:var(--ink,#14141c)}
.bl-card .bl-art{aspect-ratio:8/5}
.bl-card .bl-txt{padding:1.1rem 1.2rem 1.4rem;display:grid;gap:.7rem}
.bl-card h3{font-family:var(--ff);font-size:1.22rem;line-height:1.22;letter-spacing:-.015em;margin:0;text-wrap:balance}
.bl-soon .bl-art{filter:saturate(.75)}
.bl-tag{font-size:.78rem;font-weight:700;color:var(--muted,#5f6378)}
.bl-empty{display:none;margin-top:2rem;color:var(--muted,#5f6378)}
.bl-end{margin:3rem 0 4rem;padding:1.6rem;border-radius:22px;background:var(--soft,#f1eeff);display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;justify-content:space-between}
.bl-end p{margin:0;font-weight:600;font-size:1.05rem}
.bl-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;padding:.65rem 1.4rem;border-radius:999px;background:var(--ink,#14141c);color:#fff;font-weight:700;text-decoration:none;transition:transform .15s}
.bl-btn:hover{transform:translateY(-2px)}
/* article */
.bl-prog{position:fixed;inset:0 0 auto 0;height:3px;z-index:60;transform-origin:0 50%;transform:scaleX(0);background:var(--primary,#5b3df5);pointer-events:none}
.bl-crumbs{font-size:.9rem;color:var(--muted,#5f6378);padding-block:1.4rem .4rem}
.bl-crumbs a{color:var(--muted,#5f6378);text-decoration:none}.bl-crumbs a:hover{color:var(--ink,#14141c);text-decoration:underline}
.bl-head{display:grid;gap:1.1rem;padding-block:1rem 1.8rem;max-width:52rem}
.bl-head .bl-chip{justify-self:start}
.bl-head h1{font-family:var(--ff);font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.05;letter-spacing:-.032em;margin:0;text-wrap:balance}
.bl-lede{font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.55;color:var(--muted,#5f6378);margin:0;max-width:40rem}
.bl-cover{background:var(--pc);border-radius:28px;padding:clamp(1rem,3vw,2.4rem)}
.bl-cover svg{width:100%;max-width:40rem;margin-inline:auto;display:block;height:auto}
.bl-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);margin-top:2.6rem;align-items:start}
.bl-toc{position:sticky;top:5.5rem;display:grid;gap:.15rem;font-size:.92rem}
.bl-toc b{font-family:var(--ff);font-size:1rem;margin-bottom:.5rem}
.bl-toc a{color:var(--muted,#5f6378);text-decoration:none;padding:.4rem .7rem;border-left:2px solid var(--line,#e4e6ef);line-height:1.35}
.bl-toc a:hover{color:var(--ink,#14141c)}
.bl-toc a.on{color:var(--primary,#5b3df5);border-left-color:var(--primary,#5b3df5);font-weight:700}
.bl-body{max-width:43rem;font-size:1.1rem;line-height:1.78;color:#25263a}
.bl-body>*+*{margin-top:1.15rem}
.bl-body h2{font-family:var(--ff);font-size:clamp(1.65rem,3vw,2.2rem);line-height:1.15;letter-spacing:-.025em;color:var(--ink,#14141c);margin-top:3.4rem;scroll-margin-top:5.5rem}
.bl-body h3{font-family:var(--ff);font-size:1.28rem;letter-spacing:-.015em;color:var(--ink,#14141c);margin-top:2rem}
.bl-body a{color:var(--primary,#5b3df5);text-underline-offset:3px;text-decoration-thickness:1.5px}
.bl-body code{background:var(--soft,#f1eeff);padding:.12rem .45rem;border-radius:6px;font-size:.92em}
.bl-quick{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start;background:#fff4dc;border-radius:22px;padding:1.4rem 1.5rem;margin-top:0}
.bl-quick b{font-family:var(--ff);font-size:1.15rem;color:var(--ink,#14141c);display:block;margin-bottom:.3rem}
.bl-quick p{margin:0;font-size:1.04rem;line-height:1.65}
.bl-steps{list-style:none;padding:0;display:grid;gap:.9rem;counter-reset:s}
.bl-steps li{counter-increment:s;display:grid;grid-template-columns:2.4rem 1fr;gap:1rem;align-items:start;background:#fff;border:1.5px solid var(--line,#e4e6ef);border-radius:18px;padding:1rem 1.1rem}
.bl-steps li::before{content:counter(s);width:2.4rem;height:2.4rem;border-radius:50%;background:var(--primary,#5b3df5);color:#fff;font:800 1.05rem var(--ff);display:grid;place-items:center}
.bl-steps li>div{line-height:1.6;font-size:1.04rem}
.bl-steps b{color:var(--ink,#14141c)}
.bl-tool{display:grid;grid-template-columns:1fr auto;gap:1rem 1.6rem;align-items:center;background:var(--primary,#5b3df5);color:#fff;border-radius:26px;padding:1.6rem clamp(1.2rem,3vw,2rem);margin-block:1.8rem;overflow:hidden}
.bl-tool b{font-family:var(--ff);font-size:1.5rem;letter-spacing:-.02em;display:block;line-height:1.15}
.bl-tool span{display:block;margin-top:.4rem;color:#e6e0ff;font-size:1rem;line-height:1.5}
.bl-tool .bl-btn{background:#fff;color:var(--ink,#14141c)}
.bl-note{background:var(--soft,#f1eeff);border-radius:18px;padding:1.1rem 1.3rem}.bl-note p{margin:0;font-size:1rem}
.bl-tbl{overflow-x:auto;border:1.5px solid var(--line,#e4e6ef);border-radius:18px;background:#fff}
.bl-tbl table{border-collapse:collapse;width:100%;min-width:30rem;font-size:.98rem;line-height:1.5}
.bl-tbl th{background:var(--soft,#f1eeff);text-align:left;font-family:var(--ff);color:var(--ink,#14141c)}
.bl-tbl th,.bl-tbl td{padding:.8rem 1rem;border-bottom:1px solid var(--line,#e4e6ef);vertical-align:top}
.bl-tbl tr:last-child td{border-bottom:0}
.bl-faq{display:grid;gap:.7rem}
.bl-faq details{background:#fff;border:1.5px solid var(--line,#e4e6ef);border-radius:16px}
.bl-faq details[open]{border-color:var(--ink,#14141c)}
.bl-faq summary{cursor:pointer;list-style:none;padding:1.05rem 3.4rem 1.05rem 1.2rem;font:700 1.05rem/1.4 var(--ff);color:var(--ink,#14141c);position:relative}
.bl-faq summary::-webkit-details-marker{display:none}
.bl-faq summary::after{content:"+";position:absolute;right:1rem;top:50%;translate:0 -50%;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--soft,#f1eeff);display:grid;place-items:center;font-size:1.3rem;color:var(--primary,#5b3df5)}
.bl-faq details[open] summary::after{content:"\2212"}
.bl-faq details>p{margin:0;padding:0 1.2rem 1.2rem;font-size:1.02rem}
.bl-author{display:flex;gap:1rem;align-items:center;margin-top:3rem;padding-top:1.6rem;border-top:1.5px solid var(--line,#e4e6ef)}
.bl-author img{border-radius:12px}.bl-author p{margin:0;font-size:.98rem;line-height:1.55}
.bl-related{margin-block:3.4rem 4.5rem}.bl-related h2{font-family:var(--ff);font-size:1.8rem;letter-spacing:-.025em;margin:0}
@media(max-width:60rem){.bl-layout{grid-template-columns:minmax(0,1fr)}.bl-toc{display:none}.bl-body{max-width:none}}
@media(max-width:46rem){.bl-feat{grid-template-columns:1fr}.bl-tool{grid-template-columns:1fr}.bl-quick{grid-template-columns:1fr}.bl-body{font-size:1.05rem}.bl-cover{border-radius:20px}}
@media(prefers-reduced-motion:reduce){.bl *{transition:none!important}.bl-prog{display:none}}

.bl-quick.mint{background:#d9f5ea}

/* "Keep reading": gap between heading and cards */
.bl-related h2{margin:0 0 1.6rem}
.bl-related .bl-grid{margin-top:0}
