DNS authentication

BIMI Setup Guide: From DMARC Enforcement to a Logo in the Inbox

By Toukir AhmedPublished August 17, 2026Read 3 min

BIMI is the standard that puts your logo next to your messages in the inbox. It is also the most frequently half-finished piece of email configuration I see, because the record is easy and everything around it — DMARC enforcement, the SVG profile, the certificate — is where the rules live. This is the whole path, in the order that avoids doing anything twice.

what has to be true, in order
1DMARC at p=quarantine or p=reject, no pct, sp enforcingPREREQUISITE
2logo as SVG Tiny PS, square, under 32 KB, with </span><span class="chip ok">FILE</span></div><div class="chk-row"><span class="chk-name">3</span><span class="chk-val">default._bimi TXT with l= (and a=)</span><span class="chip ok">RECORD</span></div><div class="chk-row"><span class="chk-name">4</span><span class="chk-val">VMC or CMC certificate for Gmail, Apple, Yahoo</span><span class="chip warn">OPTIONAL</span></div></div><div class="g-note">Steps 1–3 take an hour. Step 4 takes a trademark and a budget.</div></div> <h2 id="s1">Step 1: DMARC has to be enforcing</h2> <p>Receivers will not evaluate BIMI unless the message passed DMARC and the domain's policy is <code>quarantine</code> or <code>reject</code>. If <code>pct</code> is present it must be 100 — and since it was removed in <a href="/blog/dmarc-rfc-9989">RFC 9989</a>, remove it. Gmail additionally requires the subdomain policy to be enforcing, so <code>sp=none</code> disqualifies you. If your domain is at <code>p=none</code>, the <a href="/blog/dmarc-none-to-reject">none-to-reject guide</a> comes first; there is no shortcut.</p> <h2 id="s2">Step 2: convert the logo</h2> <p>The format is SVG Tiny Portable/Secure, a restricted profile of SVG. The rules: root <code><svg></code> with <code>version="1.2"</code> and <code>baseProfile="tiny-ps"</code>; a <code><title></code> element directly inside it containing the brand name; no <code>x</code> or <code>y</code> attributes on the root; a square <code>viewBox</code> because Gmail crops to a circle; no scripts, external references, embedded raster images, animation or filters; and under 32 KB. Inline CSS is technically disallowed, so convert <code><style></code> blocks to presentation attributes.</p> <p>In practice: export the logo as plain SVG from your design tool, open it in a text editor, change the <code>baseProfile</code> and <code>version</code>, add the title, delete anything that is not a shape, and check the viewBox is square. Then paste it into the <a href="/tools/bimi-checker">BIMI checker</a>'s SVG validator, which runs all of those checks in the browser. Solid backgrounds work better than transparent ones once cropped to a circle.</p> <h2 id="s3">Step 3: host and publish</h2> <p>Serve the file over HTTPS from a URL that does not redirect, ideally on your own domain. Then create the record:</p> <pre style="background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:14px 16px;font-family:'IBM Plex Mono',monospace;font-size:13px;line-height:1.6;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:16px 0">default._bimi.yourdomain.com TXT "v=BIMI1; l=https://yourdomain.com/bimi/logo.svg; a=;"</pre> <p>An empty <code>a=</code> means "no certificate" and is valid. Re-run the checker; it reads the record, confirms DMARC, and fetches the logo if the server allows it.</p> <h2 id="s4">Step 4: the certificate question</h2> <p>Gmail, Apple Mail and Yahoo only display logos backed by a certificate that proves you are entitled to use the mark. A <b>Verified Mark Certificate</b> requires a registered trademark on the logo and costs on the order of $1,000–1,500 a year from DigiCert or Entrust. The newer <b>Common Mark Certificate</b> drops the trademark requirement in exchange for proof that the logo has been in use for at least a year, at a somewhat lower price. Either way you get a <code>.pem</code> file to host and reference with <code>a=https://…/vmc.pem</code>.</p> <p>Without one, the record is valid and a handful of smaller receivers show the logo, but the three that matter do not. For a company whose brand is worth protecting the certificate is reasonable. For a cold email fleet it is not, and the practical value of BIMI there is the DMARC enforcement it forces you to complete.</p> <h2 id="s5">Why it still does not show</h2> <p>In rough order of frequency: DMARC not enforcing on the subdomain the mail is sent from; the message itself failing DMARC because of a non-aligned source; the SVG missing its title or carrying the wrong baseProfile; a redirect on the logo URL; the domain being too new or too low-reputation, because Gmail also applies a reputation gate that is not documented and not appealable; and finally, a certificate whose logo hash does not match the SVG that is actually being served — re-hosting a tweaked logo after the cert was issued breaks it.</p> <div class="callout"><p>Gmail caches BIMI results. After fixing something, allow a day or two before concluding it did not work.</p></div> <h2 id="src">Sources</h2> <ul><li><a href="https://bimigroup.org/implementation-guide/" rel="noopener" target="_blank">BIMI implementation guide</a> — BIMI Group</li><li><a href="https://bimigroup.org/resources/SVG_PS-latest.pdf" rel="noopener" target="_blank">SVG Tiny Portable/Secure specification</a> — BIMI Group</li><li><a href="https://support.google.com/a/answer/10911320" rel="noopener" target="_blank">Set up BIMI</a> — Google Workspace Admin Help</li></ul> <div class="bp-tools"><h4>Tools for this</h4><a href="/tools/bimi-checker" style="--cc:var(--c0);--tt:var(--t0)"><span class="ic"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.55" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M11.6 2.6H6.2a1.6 1.6 0 0 0-1.6 1.6v11.6a1.6 1.6 0 0 0 1.6 1.6h7.6a1.6 1.6 0 0 0 1.6-1.6V6.6l-3.8-4Z"/><path d="M11.6 2.6v4h3.8"/></svg></span><span><span class="nm">BIMI checker</span><span class="ds">Record check plus SVG Tiny PS validator.</span></span></a></div> <h2>Frequently asked questions</h2> <div class="faq"><details><summary>Does BIMI improve deliverability?</summary><p>Not directly; receivers do not score on it. The DMARC enforcement it requires does, and a displayed logo lifts open rates in the mailboxes that show it.</p></details><details><summary>Can I use a PNG logo?</summary><p>No. SVG Tiny PS only. Convert real vector artwork rather than tracing a raster image, which produces files far over the 32 KB limit.</p></details><details><summary>Is a VMC required?</summary><p>Only for Gmail, Apple Mail and Yahoo to display the logo. The record itself is valid without one and some other receivers will show it.</p></details><details><summary>How long until the logo appears?</summary><p>Once everything is correct, typically within a day or two for Gmail. It also depends on the domain having enough reputation, which is not documented and cannot be forced.</p></details><details><summary>Can I have different logos for different mail streams?</summary><p>Yes, using selectors — a BIMI-Selector header on the message and a matching selector._bimi record. Almost nobody needs it.</p></details></div> <h2>Keep reading</h2> <div class="related"><a class="rel-card" href="/blog/dmarc-none-to-reject"><span class="rel-tag">DNS authentication</span><b>Moving DMARC from p=none to p=reject Without Breaking Your Own Mail</b></a><a class="rel-card" href="/blog/dmarc-rfc-9989"><span class="rel-tag">DNS authentication</span><b>The New DMARC Standard (RFC 9989): What Actually Changed</b></a><a class="rel-card" href="/blog/mta-sts-tls-rpt-setup-guide"><span class="rel-tag">DNS authentication</span><b>MTA-STS and TLS-RPT Setup Guide: Enforce Encrypted Delivery in an Afternoon</b></a></div> </article><aside class="bp-side"><div class="bp-card"><div class="bp-au"><span class="av">TA</span><span><span class="nm">Toukir Ahmed</span><br><span class="rl">Cold email infrastructure</span></span></div><p>I run sending infrastructure for agencies and founders. These write-ups are what I learn doing it.</p><a class="bp-btn g" href="/book">Get in touch</a></div><div class="bp-card"><h4>Seeing this on your domain?</h4><p>Bring a domain and the symptom. Thirty minutes, no pitch — most people leave able to fix it themselves.</p><a class="bp-btn" href="/book">Book a call</a></div></aside></div></div><script>(function(){var ls=[].slice.call(document.querySelectorAll('.bp-toc a'));if(!ls.length)return;var hs=ls.map(function(a){return document.getElementById(a.getAttribute('href').slice(1))}).filter(Boolean);function up(){var y=window.scrollY+120,cur=0;hs.forEach(function(h,i){if(h.offsetTop<=y)cur=i});ls.forEach(function(a,i){a.classList.toggle('on',i===cur)})}addEventListener('scroll',up,{passive:true});up()})();</script> </article> </main> <footer><div class="wrap"><div class="foot-tools"><style>footer{--c5:#f2708f;--t5:rgba(242,112,143,.13);--c6:#ff9247;--t6:rgba(255,146,71,.13);--c7:#8b97f6;--t7:rgba(139,151,246,.13);--c8:#b7d64e;--t8:rgba(183,214,78,.13);--c9:#d982f2;--t9:rgba(217,130,242,.13);--c10:#2fb3bd;--t10:rgba(47,179,189,.13);}html[data-theme="light"] footer{--c5:#b02a4c;--t5:rgba(176,42,76,.12);--c6:#b5500e;--t6:rgba(181,80,14,.12);--c7:#3346b0;--t7:rgba(51,70,176,.12);--c8:#5e7a0b;--t8:rgba(94,122,11,.12);--c9:#8a2ca3;--t9:rgba(138,44,163,.12);--c10:#0f6f77;--t10:rgba(15,111,119,.12);}.foot-tools{margin:26px 0 0;padding-top:24px;border-top:1px solid var(--line)}.foot-tools .ft-t{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);font-weight:500}.foot-tools .ft-t a{font-size:11px;color:var(--muted);text-transform:none;letter-spacing:0;margin-left:auto}.ft-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 16px}.ft-grid h5{display:flex;align-items:center;gap:7px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--text);margin:0 0 10px;font-weight:500}.ft-grid h5 .d{width:7px;height:7px;border-radius:2px;flex:0 0 auto}.ft-grid a{display:block;font-size:13px;line-height:1.3;color:var(--muted);margin-bottom:7px;text-decoration:none}.ft-grid a:hover{color:var(--amber);text-decoration:none}.ft-grid a.more{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--amber);margin-top:2px;opacity:.9}.ft-grid a.more:hover{opacity:1;text-decoration:underline}.foot-tools+.foot-nav{margin-top:10px}@media(max-width:1180px){.ft-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.ft-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.ft-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}}</style><div class="ft-t">Free tools <a href="/tools">Browse all 93 tools →</a></div><div class="ft-grid"><div><h5><span class="d" style="background:var(--c0)"></span>Auth checkers</h5><a href="/tools/spf-checker">SPF checker</a><a href="/tools/dmarc-checker">DMARC checker</a><a href="/tools/dkim-checker">DKIM checker</a><a href="/tools/spf-lookup-counter">SPF lookup counter</a><a href="/tools/dmarc-report-parser">DMARC report parser</a><a class="more" href="/tools#g0">See all 10 →</a></div><div><h5><span class="d" style="background:var(--c1)"></span>Generators</h5><a href="/tools/spf-generator">SPF generator</a><a href="/tools/dmarc-generator">DMARC generator</a><a href="/tools/dkim-generator">DKIM generator</a><a href="/tools/spf-flattener">SPF flattener</a><a href="/tools/spf-merger">SPF merger</a><a class="more" href="/tools#g1">See all 8 →</a></div><div><h5><span class="d" style="background:var(--c2)"></span>AI generators</h5><a href="/tools/ai-cold-email-generator">AI cold email generator</a><a href="/tools/ai-subject-line-generator">AI subject line generator</a><a href="/tools/ai-follow-up-generator">AI follow-up generator</a><a href="/tools/ai-spintax-generator">AI spintax generator</a><a href="/tools/ai-icp-generator">AI ICP generator</a><a class="more" href="/tools#g2">See all 5 →</a></div><div><h5><span class="d" style="background:var(--c3)"></span>Reputation & monitoring</h5><a href="/tools/blacklist-checker">Blacklist checker</a><a href="/tools/email-header-analyzer">Header analyzer</a><a href="/tools/deliverability-score">Deliverability score</a><a href="/tools/gateway-checker">Gateway checker</a><a href="/tools/bulk-sender-checker">Bulk sender checker</a><a class="more" href="/tools#g3">See all 10 →</a></div><div><h5><span class="d" style="background:var(--c4)"></span>Email content</h5><a href="/tools/spam-word-checker">Spam word checker</a><a href="/tools/spintax-previewer">Spintax previewer</a><a href="/tools/email-size-checker">Email size checker</a><a href="/tools/inbox-preview">Inbox preview</a><a href="/tools/email-signature-checker">Email signature checker</a><a class="more" href="/tools#g4">See all 9 →</a></div><div><h5><span class="d" style="background:var(--c5)"></span>Find, verify & clean</h5><a href="/tools/email-verifier">Email verifier</a><a href="/tools/bounce-code-decoder">Bounce code decoder</a><a href="/tools/email-list-cleaner">Email list cleaner</a><a href="/tools/email-permutator">Email permutator</a><a href="/tools/email-extractor">Email extractor</a><a class="more" href="/tools#g5">See all 9 →</a></div><div><h5><span class="d" style="background:var(--c6)"></span>DNS lookups</h5><a href="/tools/txt-lookup">TXT lookup</a><a href="/tools/cname-lookup">CNAME lookup</a><a href="/tools/aaaa-lookup">AAAA lookup</a><a href="/tools/soa-lookup">SOA lookup</a><a href="/tools/srv-lookup">SRV lookup</a><a class="more" href="/tools#g6">See all 9 →</a></div><div><h5><span class="d" style="background:var(--c7)"></span>DNS tools</h5><a href="/tools/mx-checker">MX / ESP checker</a><a href="/tools/dns-propagation-checker">DNS propagation checker</a><a href="/tools/ns-checker">NS checker</a><a href="/tools/workspace-dns-checker">Workspace / M365 DNS checker</a><a href="/tools/dnssec-checker">DNSSEC checker</a><a class="more" href="/tools#g7">See all 7 →</a></div><div><h5><span class="d" style="background:var(--c8)"></span>Domains</h5><a href="/tools/domain-lookup">Domain lookup</a><a href="/tools/domain-age">Domain age checker</a><a href="/tools/subdomain-finder">Subdomain finder</a><a href="/tools/domain-checker">Domain checker</a><a href="/tools/domain-host-checker">Domain host checker</a><a class="more" href="/tools#g8">See all 11 →</a></div><div><h5><span class="d" style="background:var(--c9)"></span>Web & security</h5><a href="/tools/ssl-checker">SSL checker</a><a href="/tools/wordpress-theme-detector">WordPress theme detector</a><a href="/tools/redirect-checker">Redirect checker</a><a href="/tools/security-headers-checker">Security headers checker</a><a href="/tools/robots-sitemap-checker">Robots & sitemap checker</a><a class="more" href="/tools#g9">See all 6 →</a></div><div><h5><span class="d" style="background:var(--c10)"></span>Planning & cost</h5><a href="/tools/inbox-cost">Inbox cost comparison</a><a href="/tools/capacity-calculator">Capacity calculator</a><a href="/tools/warmup-calculator">Warmup calculator</a><a href="/tools/cold-email-roi-calculator">Cold email ROI calculator</a><a href="/tools/domain-inbox-planner">Domain & inbox planner</a><a class="more" href="/tools#g10">See all 9 →</a></div></div></div><div class="foot-nav"><div><h5>Popular</h5><a href="/tools/spf-checker">SPF checker</a><a href="/tools/dmarc-checker">DMARC checker</a><a href="/tools/dkim-checker">DKIM checker</a><a href="/tools/blacklist-checker">Blacklist checker</a><a href="/tools/mx-checker">MX / ESP checker</a><a href="/tools/domain-lookup">Domain lookup</a></div><div><h5>Learn</h5><a href="/learn/spf">SPF</a><a href="/learn/dkim">DKIM</a><a href="/learn/dmarc">DMARC</a><a href="/learn/email-warmup">Email warmup</a><a href="/learn/sender-reputation">Sender reputation</a><a href="/learn/smtp-error-codes">SMTP error codes</a><a href="/learn">All guides →</a></div><div><h5>Services</h5><a href="/services/cold-email-infrastructure">Cold email infrastructure</a><a href="/services/deliverability-audit">Deliverability audit</a><a href="/services/spf-dkim-dmarc-setup">SPF, DKIM & DMARC</a><a href="/services/google-workspace-setup">Workspace & M365 inboxes</a><a href="/services/domain-dns-migration">Domain, DNS & migration</a><a href="/services/deliverability-monitoring">Monitoring & retainer</a><a href="/services/campaign-operations">Campaign operations</a><a href="https://rooster4am.com" rel="noopener">B2B lead data</a></div><div><h5>Site</h5><a href="/">Home</a><a href="/services">Services</a><a href="/tools">Tools</a><a href="/learn">Learn</a><a href="/blog">Blog</a><a href="/how-i-work">How I work</a><a href="/about">About</a><a href="/deals">Tools I use</a><a href="/book">Book a call</a></div></div><div class="foot-grid" style="margin-top:26px"><div><p><b style="color:var(--text)">Toukir Ahmed</b> — cold email infrastructure & deliverability</p><p class="mono">toukirahmed.com · Rangpur, Bangladesh · working worldwide</p></div><div class="foot-social" aria-label="Social links"><a href="mailto:toukir@toukirahmed.com" aria-label="Email"><svg viewBox="0 0 24 24"><path d="M2 5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5zm2 .4v.35l8 5.33 8-5.33V5.4l-8 5.33L4 5.4zM20 19V8.15l-8 5.33-8-5.33V19h16z"/></svg></a><a href="https://wa.me/8801750284642" rel="noopener" aria-label="WhatsApp"><svg viewBox="0 0 24 24"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5.1-1.3A10 10 0 1 0 12 2zm0 18a8 8 0 0 1-4.1-1.1l-.3-.2-3 .8.8-2.9-.2-.3A8 8 0 1 1 12 20zm4.4-5.9c-.2-.1-1.4-.7-1.6-.8-.2-.1-.4-.1-.5.1-.2.2-.6.8-.7.9-.1.1-.3.2-.5.1a6.6 6.6 0 0 1-3.3-2.9c-.2-.4.2-.4.6-1.2.1-.2 0-.4 0-.5l-.7-1.7c-.2-.5-.4-.4-.5-.4h-.5c-.2 0-.5.1-.7.3-.2.3-.9.9-.9 2.2s1 2.6 1.1 2.7c.1.2 1.9 3 4.7 4.2.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.6-.1 1.4-.6 1.6-1.1.2-.6.2-1 .1-1.1 0-.1-.2-.2-.5-.4z"/></svg></a><a href="https://www.linkedin.com/in/toukirahmed" rel="noopener" aria-label="LinkedIn"><svg viewBox="0 0 24 24"><path d="M4.98 3.5A2.5 2.5 0 1 1 0 3.5a2.5 2.5 0 0 1 4.98 0zM.5 8h4.4v14H.5V8zm7.5 0h4.2v1.9h.1c.6-1.1 2-2.3 4.2-2.3 4.5 0 5.3 3 5.3 6.8V22h-4.4v-6.7c0-1.6 0-3.7-2.2-3.7s-2.6 1.7-2.6 3.6V22H8V8z"/></svg></a><a href="https://x.com/mr_toukirahmed" rel="noopener" aria-label="X / Twitter"><svg viewBox="0 0 24 24"><path d="M18.9 2H22l-6.8 7.8L23.2 22h-6.3l-4.9-6.4L6.4 22H3.3l7.3-8.3L1 2h6.5l4.4 5.9L18.9 2zm-1.1 18h1.7L6.6 3.8H4.8L17.8 20z"/></svg></a><a href="https://gravatar.com/toukirahmedme" rel="me noopener" aria-label="Gravatar"><svg viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 4.5a3.2 3.2 0 1 1 0 6.4 3.2 3.2 0 0 1 0-6.4zm0 13.6a7.9 7.9 0 0 1-5.4-2.1c.6-1.9 2.8-3 5.4-3s4.8 1.1 5.4 3A7.9 7.9 0 0 1 12 20.1z"/></svg></a></div></div><p class="mono" style="margin-top:22px">© <span id="yr"></span> Toukir Ahmed · SPF aligned, DKIM signed, DMARC enforced. · <a href="/privacy" style="color:var(--muted)">Privacy</a> · <a href="/terms" style="color:var(--muted)">Terms</a></p></div></footer><script>;try{(function(){ var w=document.getElementById("mgw"); if(!w)return; var btn=document.getElementById("megaBtn"); if(!btn)return; var q=document.getElementById("mgq"),cols=document.getElementById("mgcols"),none=document.getElementById("mgnone"); var items=[].slice.call(w.querySelectorAll(".mgi")),groups=[].slice.call(w.querySelectorAll(".mgc")); function open(v){ w.hidden=!v; btn.setAttribute("aria-expanded",v?"true":"false"); document.documentElement.style.overflow=v?"hidden":""; if(v&&window.innerWidth>860&&q){setTimeout(function(){try{q.focus()}catch(e){}},30)} } btn.addEventListener("click",function(e){ e.preventDefault(); open(w.hidden); }); w.addEventListener("click",function(e){ if(e.target.closest("[data-mgclose]")) open(false); }); addEventListener("keydown",function(e){ if(e.key==="Escape"&&!w.hidden) open(false); }); if(q)q.addEventListener("input",function(){ var t=q.value.trim().toLowerCase(),shown=0; items.forEach(function(a){var ok=!t||a.dataset.t.indexOf(t)>-1;a.style.display=ok?"":"none";if(ok)shown++}); groups.forEach(function(g){ var n=[].slice.call(g.querySelectorAll(".mgi")).filter(function(a){return a.style.display!=="none"}).length; g.classList.toggle("hide",n===0); var c=g.querySelector(".n"); if(c)c.textContent=n; }); if(none)none.hidden=shown>0; }); addEventListener("resize",function(){ if(!w.hidden) open(false); }); })()}catch(e){}</script><script>document.getElementById('yr').textContent=new Date().getFullYear();</script> <script>(function(){var b=document.querySelector('.nav-toggle'),n=document.querySelector('.nav-links')||document.querySelector('.nav-r');if(!b||!n)return;b.addEventListener('click',function(){var o=n.classList.toggle('open');b.setAttribute('aria-expanded',o?'true':'false')});n.addEventListener('click',function(e){if(e.target.closest('a')){n.classList.remove('open');b.setAttribute('aria-expanded','false')}});document.addEventListener('keydown',function(e){if(e.key==='Escape'){n.classList.remove('open');b.setAttribute('aria-expanded','false')}})})();</script><script>(function(){var b=document.getElementById('tgl');if(!b)return;b.addEventListener('click',function(){var h=document.documentElement,n=h.getAttribute('data-theme')==='light'?'dark':'light';h.setAttribute('data-theme',n);try{localStorage.setItem('theme',n)}catch(e){}})})();</script> <style>html{scroll-behavior:smooth}.btt{position:fixed;right:20px;bottom:20px;z-index:70;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--surface,#151b23);border:1px solid var(--border,#26303d);color:var(--fg-muted,#8d99aa);font:600 17px/1 IBM Plex Sans,system-ui,sans-serif;text-decoration:none;box-shadow:var(--shadow,none);transition:color .15s,border-color .15s,background .15s}.btt:hover{color:var(--accent,#ffb224);border-color:var(--accent,#ffb224);background:var(--surface-3,#1a212b)}.btt:focus-visible{outline:2px solid var(--accent,#ffb224);outline-offset:2px}.btt-l{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}body:has(.hb-tb) .btt,body:has(.hub-tb) .btt{bottom:74px}@supports (animation-timeline:scroll()){.btt{opacity:0;animation:btt-in both;animation-timeline:scroll(root block);animation-range:320px 640px}}@keyframes btt-in{from{opacity:0}to{opacity:1}}@media(max-width:560px){.btt{right:14px;bottom:16px;width:38px;height:38px}body:has(.hb-tb) .btt,body:has(.hub-tb) .btt{bottom:70px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btt{opacity:1;animation:none}}@media print{.btt{display:none}}</style><a class=btt href=#top onclick=window.scrollTo(0,0);return!1><span class=btt-l>Back to top</span>↑</a></body> </html>