From 762a4ed193f21890fef669ba0c83730ec9acbff7 Mon Sep 17 00:00:00 2001 From: Bannerets Date: Sun, 1 Feb 2026 00:13:51 -0500 Subject: [PATCH] Clean up junk files, add .gitignore --- .gitignore | 4 + about/index.html-BAK | 150 ---------------- blog/post/global-south-banking.html-BAK | 186 -------------------- clip-junk | 106 ----------- junk-text | 224 ------------------------ server.log | 20 --- style.css | 39 ----- 7 files changed, 4 insertions(+), 725 deletions(-) create mode 100644 .gitignore delete mode 100644 about/index.html-BAK delete mode 100644 blog/post/global-south-banking.html-BAK delete mode 100644 clip-junk delete mode 100644 junk-text delete mode 100644 server.log delete mode 100644 style.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2bbbefc --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.log +*-BAK +clip-junk +junk-text diff --git a/about/index.html-BAK b/about/index.html-BAK deleted file mode 100644 index a9e0364..0000000 --- a/about/index.html-BAK +++ /dev/null @@ -1,150 +0,0 @@ - - - - About - RSP Works - - - - - - - - - - - - - - - - - -
-

Skip to Content [alt-c]

- -
-
-

About RSP Works

- -
-

- Background in travel industry management, airline sales, and international business operations. - Experience with international financial compliance and regulatory frameworks. Healthcare marketing - management experience in Thailand rehabilitation sector. Experienced ESL secondary teacher 7+ years. - Interest in Philosophy, Politics & Economics studies. -

-
- -
-

Service Areas

-

Some of the areas I work in:

-
    -
  • Infrastructure automation and CI/CD pipeline optimization for development teams
  • -
  • Cloud migration planning and implementation across AWS, Azure, and hybrid environments
  • -
  • Academic technology modernization and institutional system integration
  • -
  • Legal sector technology compliance and data governance frameworks
  • -
  • Custom software development and legacy system modernization
  • -
-
- -
-

Current Work

-

- Developing frameworks for operational excellence in technology consulting. Academic pursuits - in political economy and institutional analysis. Focus on sustainable technology implementations - for small to mid-size organizations. -

-
- -
-

Professional Experience

- -

Technology Consulting

-

- Specializing in infrastructure automation, cloud migration strategies, and academic technology - modernization. Work with development teams on CI/CD pipeline optimization and with organizations - on digital transformation initiatives. -

- -

International Business Operations

-

- Experience in travel industry management and airline sales operations. International financial - compliance and regulatory framework development across multiple jurisdictions. -

- -

Healthcare Technology Management

-

- Healthcare marketing management in Thailand rehabilitation sector. Technology implementation - and compliance in international healthcare environments. -

- -

Educational Technology

-

- Seven years of ESL secondary teaching experience with focus on educational technology integration. - Academic technology modernization and institutional system development. -

-
- -
-

Academic Interests

-

- Philosophy, Politics & Economics studies with focus on institutional analysis and political - economy. Research interests in economic competitiveness, regulatory frameworks, and policy analysis. -

-
- -
-

Approach

-

- Focus on sustainable technology implementations that provide long-term value. Emphasis on - operational excellence, compliance frameworks, and institutional system integration. Work - with organizations to develop technology strategies that align with business objectives and - regulatory requirements. -

-
- -
-

Contact

-

- For consulting inquiries or collaboration opportunities, please reach out via - ray@rspworks.tech or connect through - LinkedIn. -

-
-
-
- -
- - diff --git a/blog/post/global-south-banking.html-BAK b/blog/post/global-south-banking.html-BAK deleted file mode 100644 index b2f20a8..0000000 --- a/blog/post/global-south-banking.html-BAK +++ /dev/null @@ -1,186 +0,0 @@ - - - - Global South Banking Leadership - RSP Works - - - - - - - - - - - - - -
-

Skip to Content [alt-c]

- -
-
- -
-
-
August 21, 2025
-

When "Developing" Countries Lead: How the Global South Outpaces Canada and the EU on Banking Access for Entrepreneurs

-
-

A legal policy analysis revealing how supposed "third world" nations have built better financial inclusion frameworks than their wealthy counterparts

- -

The regulatory geography of financial inclusion reveals an uncomfortable truth for wealthy nations: when it comes to ensuring banking access for low-income entrepreneurs and micro-enterprises, countries like India, Kenya, and Brazil have implemented more innovative, effective, and comprehensive solutions than Canada and the European Union.

- -

The Innovation Gap

-

While Canada and the EU have focused primarily on consumer banking rights—leaving micro-enterprises in regulatory limbo between consumer protections and full commercial banking requirements—countries traditionally labeled as "developing" have built entirely new regulatory frameworks specifically designed for financial inclusion.

- -

India's Revolutionary Scale

-

India's Business Correspondent model, launched in 2006, now serves almost 600,000 village habitations through 24,329 individual agents deployed across the country. This isn't just policy—it's a complete transformation of banking infrastructure that brings services directly to entrepreneurs' doorsteps.

- -

Compare this to Canada, where banking protections explicitly exclude business accounts and FINTRAC's stringent KYC requirements impose uniform burdens on all businesses with no micro-enterprise relief. The result? Low-income entrepreneurs face the same regulatory obstacles as multinational corporations, while unreasonable credit bureau score requirements exclude those with thin credit files or past financial difficulties from basic banking access.

- -

Kenya's Mobile Money Revolution

-

Kenya's M-Pesa serves over 40 million people with transaction volumes exceeding $100 billion in 2024—nearly transforming the entire economy. By 2014, M-Pesa transactions already represented almost half of Kenya's GDP.

- -

This wasn't achieved through incremental reform but bold regulatory innovation. M-Pesa obtained a "special" license from regulators, despite concerns about non-branch banking adding to financial instability. Kenyan regulators chose inclusion over caution—and created a global model that bypassed traditional credit scoring entirely.

- -

Meanwhile, the EU's Payment Accounts Directive, while comprehensive for consumers, excludes businesses from basic account rights, leaving micro-enterprises exposed to excessive de-risking practices that create documentation barriers beyond legal requirements—including impossible credit bureau thresholds for people whose economic activity doesn't fit traditional employment patterns.

- -

Brazil's Correspondent Banking Success

-

Brazil's banking agent network facilitated 12.4 million new bank accounts within just five years and now comprises 56% of all points of sale in the Brazilian financial system, reaching all 5,561 municipalities.

- -

This comprehensive approach stands in stark contrast to Canada's fragmented system, where micro-enterprises fall through the cracks between consumer protections that don't apply to them and commercial banking requirements they can't meet—compounded by credit bureau systems that penalize irregular income patterns typical of small-scale entrepreneurship.

- -

Why the Global South Succeeded

-

The success of these "developing" nations stems from three key factors that wealthy countries have largely ignored:

- -

1. Necessity-Driven Innovation Beyond Traditional Banking

-

Countries with massive unbanked populations couldn't afford to exclude anyone from financial services. Rather than creating separate tiers for "consumers" versus "businesses," they built inclusive frameworks that serve everyone—without requiring perfect credit histories or traditional employment verification.

- -

India's BC model specifically helps financial institutions extend microloans and credit facilities to the underserved by completing detailed assessments and using digital records—treating micro-entrepreneurs as legitimate financial participants rather than regulatory afterthoughts, and focusing on actual economic activity rather than historical credit scores.

- -

Kenya's M-Pesa allows farmers and informal workers in remote rural areas to receive payments for goods or services directly into their phones, eliminating cash requirements and reducing theft risks. No distinction between "personal" and "business" use, no credit checks for basic access—just financial inclusion for economic activity.

- -

Brazil's correspondent banking reaches everyone through retail outlets ranging from supermarkets to lottery outlets, where clients can receive social payments AND access banking services—recognizing that low-income individuals often blend personal and micro-enterprise activities, and that traditional credit scoring systems systematically exclude those most in need of basic financial services.

- -

2. Regulatory Boldness That Transcends Traditional Categories

-

These countries didn't ask whether someone had an acceptable credit score or fit standard "consumer" versus "business" categories—they asked whether they needed financial services and built frameworks accordingly.

- -

Kenya's government owns 35% of Safaricom, which assisted in establishing a strong relationship with the Central Bank and getting M-Pesa deposits insured under the Deposit Protection Fund—treating mobile money users as citizens deserving protection regardless of credit history or use case.

- -

India expanded Business Correspondent eligibility from just NGOs and MFIs to include individuals, local grocery shops, and for-profit companies—recognizing that inclusion requires diverse service providers, not institutional gatekeepers applying rigid creditworthiness standards.

- -

Brazil pioneered branchless banking through distribution partnerships between banks, retailers, and technology providers, allowing unprecedented growth in bank outreach—focusing on access outcomes rather than regulatory purity or traditional risk assessment metrics that systematically exclude the economically vulnerable.

- -

3. Technology-First Infrastructure That Ignores Traditional Boundaries

-

Rather than retrofitting old systems designed around branch banking, account categories, and credit bureau gatekeeping, these countries built new digital-native infrastructure designed for universal inclusion.

- -

India's government now provides social welfare benefits digitally via direct benefit transfer, with bank accounts linked to biometric identification (Aadhaar) and cellphone numbers—creating seamless integration between identity, payments, and economic activity without requiring traditional credit verification.

- -

M-Pesa enables users to send and receive money, pay bills, save, and even access credit and insurance, all through a mobile phone—treating financial services as basic utilities rather than privileged products requiring complex account structures and creditworthiness assessments.

- -

Brazil's correspondent banking model involves partnerships between banks, several kinds of retailers, and technology providers—recognizing that inclusion requires ecosystem thinking, not institutional silos that exclude based on imperfect credit histories or non-traditional income patterns.

- -

The Wealthy World's Blind Spot

-

Canada and the EU have fallen into the trap of assuming that robust consumer protections automatically translate to inclusive access for entrepreneurs. This assumption fails catastrophically for micro-enterprises, which face business-level compliance costs, onerous KYC documentation requirements, and unreasonable credit bureau score thresholds—all without the resources to meet such demands.

- -

Even the EU's comprehensive Payment Accounts Directive has resulted in "persistent barriers due to affordability, excessive de-risking, and implementation gaps" despite years of implementation. Canada's situation is worse—there's no equivalent framework even attempting to address micro-enterprise banking access, leaving low-income entrepreneurs trapped by credit scoring systems designed for traditional employment patterns they don't fit.

- -

The Path Forward

-

The lesson isn't that Canada and the EU should copy these models wholesale, but that they must abandon incremental thinking. The Global South succeeded because they:

- -
    -
  • Created new regulatory categories for micro-enterprises rather than forcing them into consumer or commercial boxes
  • -
  • Embraced technology-enabled solutions rather than defending traditional banking models
  • -
  • Prioritized inclusion outcomes over institutional risk aversion and credit bureau gatekeeping
  • -
  • Built agent-based distribution networks to reach underserved populations
  • -
  • Abandoned credit score requirements for basic financial access in favor of alternative assessment methods
  • -
- -

Conclusion: Leadership from Unexpected Places

-

When a Kenyan farmer can receive payments instantly via mobile phone while a Canadian sole proprietor struggles with onerous documentation requirements and unreasonable credit score thresholds just to access basic banking, we must question our assumptions about where financial innovation truly flourishes.

- -

The Global South's success in financial inclusion isn't despite their "developing" status—it's because necessity forced them to build better systems from scratch, unencumbered by legacy credit bureau systems that systematically exclude the economically vulnerable. Meanwhile, wealthy nations remain trapped by institutional inertia and risk-averse thinking that prioritizes perfect information over basic inclusion.

- -

It's time for Canada and the EU to learn from their supposed pupils. In financial inclusion, the teachers have become the students.

- -

The evidence is clear: regulatory innovation, not just regulatory sophistication, determines inclusion outcomes. Countries that dared to reimagine banking infrastructure—free from the tyranny of traditional credit scoring—have delivered transformative results that put wealthy nations' incremental reforms to shame.

- -
-

References

-
    -
  1. Union Bank of India. "Business Correspondent Model."
  2. -
  3. Federal Reserve Bank of Minneapolis. "Business Correspondent model boosts financial inclusion in India."
  4. -
  5. Conduit Blog. "What is M-Pesa? A Revolutionary Change in Africa's Digital Economy."
  6. -
  7. Centre for Public Impact. "Mobile currency in Kenya: the M-Pesa."
  8. -
  9. Wikipedia. "Banking agent."
  10. -
  11. Canada Gazette. "Financial Consumer Protection Framework Regulations."
  12. -
  13. Finance Watch. "Report: Breaking down barriers to basic payment accounts in the EU."
  14. -
  15. EUR-Lex. "Directive 2014/92/EU on payment accounts."
  16. -
  17. Nature. "Digital financial inclusion in micro enterprises: understanding the determinants and impact on ease of doing business from World Bank survey."
  18. -
  19. Government of UK. "Millions of people and businesses protected against debanking."
  20. -
- -

About the Analysis: This article synthesizes findings from extensive research into Canadian and EU financial inclusion frameworks compared with innovative approaches from India, Kenya, and Brazil. The analysis draws from primary legal sources, regulatory guidance, and peer-reviewed studies to examine how different jurisdictions address systemic banking barriers for low-income entrepreneurs.

-
-
-
- -
-
-

Previous

-

Muck Rack Guide

-
- -
-
-
-
- -
- - diff --git a/clip-junk b/clip-junk deleted file mode 100644 index 0149ba7..0000000 --- a/clip-junk +++ /dev/null @@ -1,106 +0,0 @@ --rw-------. 1 u0_a539 u0_a539 4274 Aug 22 16:15 blog/index.html - - - - Blog - RSP Works - - - - - - - - - - - - - -
-

Skip to Content [alt-c]

- - - -
- - diff --git a/junk-text b/junk-text deleted file mode 100644 index 9c96498..0000000 --- a/junk-text +++ /dev/null @@ -1,224 +0,0 @@ -$ ls /data/data/com.termux/files/usr/opt/htdocs/index.html /data/data/com.termux/files/usr/opt/htdocs/index.html - - - - - - Blog - RSP Works - - - - - - - - - - - - - -
-

Skip to Content [alt-c]

- - - -
- - - ---- - -ls /data/data/com.termux/files/usr/opt/htdocs/blog/index.html -/data/data/com.termux/files/usr/opt/htdocs/blog/index.html - ---- - - -ggd: - - - Blog - RSP Works - - - - - - - - - - - - - -
-

Skip to Content [alt-c]

- - - -
- - diff --git a/server.log b/server.log deleted file mode 100644 index 41053b7..0000000 --- a/server.log +++ /dev/null @@ -1,20 +0,0 @@ -::1 - - [17/Nov/2025 14:35:46] "GET /index.html HTTP/1.1" 200 - -::1 - - [17/Nov/2025 14:35:46] "GET /css/style.css HTTP/1.1" 200 - -::1 - - [17/Nov/2025 14:35:46] "GET /art/symbols.svg HTTP/1.1" 200 - -::1 - - [17/Nov/2025 14:35:46] "GET /art/favicon-96x96.png HTTP/1.1" 200 - -::1 - - [17/Nov/2025 14:35:46] code 404, message File not found -::1 - - [17/Nov/2025 14:35:46] "GET /art/appleicon-lightbg-180x180.png HTTP/1.1" 404 - -::1 - - [17/Nov/2025 14:35:46] "GET /art/favicon-32x32.png HTTP/1.1" 200 - -::1 - - [17/Nov/2025 14:35:46] "GET /favicon.png HTTP/1.1" 200 - -::1 - - [17/Nov/2025 14:35:46] code 404, message File not found -::1 - - [17/Nov/2025 14:35:46] "GET /art/appleicon-lightbg-167x167.png HTTP/1.1" 404 - -::1 - - [17/Nov/2025 14:35:46] code 404, message File not found -::1 - - [17/Nov/2025 14:35:46] "GET /art/appleicon-lightbg-152x152.png HTTP/1.1" 404 - -::1 - - [17/Nov/2025 14:36:01] "GET /index.html HTTP/1.1" 304 - -::1 - - [17/Nov/2025 14:36:24] "GET /blog/ HTTP/1.1" 200 - -::1 - - [18/Nov/2025 09:23:02] code 404, message File not found -::1 - - [18/Nov/2025 09:23:02] "GET /art/appleicon-lightbg-180x180.png HTTP/1.1" 404 - -::1 - - [18/Nov/2025 09:23:02] code 404, message File not found -::1 - - [18/Nov/2025 09:23:02] "GET /art/appleicon-lightbg-167x167.png HTTP/1.1" 404 - -::1 - - [18/Nov/2025 09:23:02] code 404, message File not found -::1 - - [18/Nov/2025 09:23:02] "GET /art/appleicon-lightbg-152x152.png HTTP/1.1" 404 - diff --git a/style.css b/style.css deleted file mode 100644 index 073bc50..0000000 --- a/style.css +++ /dev/null @@ -1,39 +0,0 @@ -@namespace url(http://www.w3.org/1999/xhtml);@namespace svg url(http://www.w3.org/2000/svg);#skiptocontent{display:none}html,body{margin:0;padding:0;height:100%}body{background:#f6f6e3;color:black;font-family:serif;font-size:12pt;counter-reset:sidenote_counter}::selection{background:#898;color:white}a[href],svg|a[href]{text-decoration:underline}a[href]:link,a[href]:visited,svg|a[href]:link,svg|a[href]:visited{color:#565}a[href]:hover,a[href]:focus,a[href]:active,svg|a[href]:hover,svg|a[href]:focus,svg|a[href]:active{color:black}a.nav-more,a.nav-next,a.nav-prev,a.nav-up{text-decoration:none}a.nav-more span,a.nav-next span,a.nav-prev span,a.nav-up span{text-decoration:underline}a.nav-more span,a.nav-next span{margin-right:.3em}a.nav-prev span{margin-left:.3em}a.nav-up span{margin-left:.2em}a.nav-more:after{content:"\25B8"}a.nav-prev:before{content:"\2190"}a.nav-up:before{content:"\2191"}a.nav-next:after{content:"\2192"}ul,ol{padding:0 1.5em 0 2.5em}form{margin:0;padding:0}strong{font-weight:bold}em{font-style:italic}acronym,dfn,abbr{cursor:help;border-bottom-style:dotted;border-bottom-width:1px;font-style:inherit}h2{font-size:170%;font-weight:bold;margin:0 0 .8em 0}h3{font-size:140%;font-weight:bold;margin:0 0 .7em 0}h4{font-size:110%;font-weight:bold;margin:1.5em 0 .7em 0}h2 a.feed,h3 a.feed{margin-left:.5em;color:#444}h2 a.feed svg|svg,h3 a.feed svg|svg{vertical-align:baseline;width:auto;height:.7em;fill:currentColor}.nojustify{text-align:left}.clearer{display:block;margin:0;padding:0;clear:both}.nobr{white-space:nowrap}.section{margin-top:2em;margin-bottom:2em}.fluff{display:none}#root{margin:0 auto;padding:2em 4em 13em 4em;max-width:70em;position:relative;min-height:100%;box-sizing:border-box}#header{color:#565;height:4em;line-height:4em;margin-bottom:2em;white-space:nowrap;position:relative}#header .inner_header{position:relative;padding:0 0 0 .3em;z-index:1}#header .header_background{position:absolute;bottom:0;left:0;right:0;top:0;z-index:0;overflow:hidden}#header .header_background svg|svg{position:absolute;right:0;bottom:0;height:100%;fill:currentColor}@media(max-width:53em){#header svg|*.header_tree{display:none}}#header h1{margin:0;font-size:100%;display:inline}#header h1 a{color:inherit;text-decoration:none}#header h1 a:hover span,#header h1 a:focus span{text-decoration:underline}#header h1 svg|svg,#header h1 span{vertical-align:middle;font-size:160%}#header h1 svg|svg{fill:currentColor;margin-right:.5em;border:0;width:auto;height:1.3em}#header h2{display:none}#header ul{display:inline;margin:0 0 0 1em;padding:0}#header li{display:inline;margin:0 1em 0 0;padding:0}#header li a{color:inherit;text-decoration:underline;vertical-align:middle}#header li a:hover,#header li a:focus{color:black}#body{clear:both}.home_page{line-height:1.5em;text-align:justify}.home_page .portrait{float:left;margin:0 1em .5em 0}@media(max-width:720px){.home_page .portrait{width:50px}}.home_page ul.contact{margin:0}.static_page{line-height:1.5em;text-align:justify}.blog_page{position:relative;min-height:10em}.blog_page .blog_sidebar{position:absolute;top:0;left:0;width:6em}.blog_page .blog_sidebar>div{font-size:85%}.blog_page .blog_sidebar h2{margin:0 0 .4em 0;font-size:110%;font-weight:bold}.blog_page .blog_sidebar ul,.blog_page .blog_sidebar li{margin:0;padding:0;list-style-type:none;line-height:1.5em}.blog_page .blog_content,.blog_page .wide_blog_content{margin-left:6em}.blog_page .blog_content{margin-right:6em}.blog_page .promotion{border:solid #898 1px;border-radius:4px;font-size:95%;margin:2em 0 2em 0;min-height:72px;position:relative;padding:.75em;line-height:1.4em}.blog_page .promotion p{margin:.5em 0 0 72px;padding:0 0 0 .75em}.blog_page .promotion p.first{margin-top:0}.blog_page .promotion p.photo{position:absolute;top:0;bottom:0;left:0;width:72px;padding:.75em;margin:0}.blog_page .subscribe{margin:1.75rem 0 1.75rem 0;padding:0 1rem;border:solid #898 1px;border-radius:4px}.blog_page .subscribe>*{display:block;margin:.5rem auto;text-align:center;font-size:95%}.blog_page .subscribe>p:first-child{font-size:130%;font-weight:bold;margin-top:1rem;margin-bottom:.75rem}.blog_page .subscribe>input,.blog_page .subscribe>button{box-sizing:border-box;width:min(30rem,100%)}.blog_page .subscribe>input{padding:.2em .1em;font-family:sans-serif;background:inherit;border-style:none none solid none;border-radius:0;border-width:1px;border-color:#bbb;color:black;outline:0}.blog_page .subscribe>input:focus{border-color:#565}.blog_page .subscribe>button{font-size:110%}.blog_page .post_nav{margin:2em 0 2em 0}@media(max-width:720px){.blog_page .post_nav .older,.blog_page .post_nav .newer{margin:1em 0}}@media(min-width:720px){.blog_page .post_nav .older,.blog_page .post_nav .newer{width:50%;float:left;box-sizing:border-box}.blog_page .post_nav .older{padding-right:.5em}.blog_page .post_nav .newer{padding-left:.5em}}.blog_page .post_nav h3{margin:0 0 .3em 0;font-weight:bold;font-size:85%;color:#444}.blog_page .post_nav p{margin:0;line-height:1.3em}@media(min-width:720px){.blog_page .post_nav p{font-size:110%}}.blog_page .comments,.blog_page .post_comment_form,.blog_page .comment_preview{margin:2em 0}@media(max-width:720px){.blog_page{min-height:0}.blog_page .blog_sidebar{position:static;width:auto;margin-bottom:1em}.blog_page .blog_sidebar h2{margin-bottom:.2em}.blog_page .blog_sidebar ul,.blog_page .blog_sidebar li{display:inline}.blog_page .blog_sidebar li{margin-right:.5em;line-height:1.5em}.blog_page .blog_content,.blog_page .wide_blog_content{margin-left:0;margin-right:0}}.blog_page a.featured_blog_post{font-weight:bold;text-decoration:none;box-shadow:inset 0 -0 0 currentColor,inset 0 -2px 0 currentColor}.blog_post{margin-bottom:2.5em;counter-reset:sidenote_counter}.blog_post .date{font-size:85%;margin:0 0 .5em 0;color:#444}.blog_post h2,.blog_post h3{margin:0;font-size:150%;line-height:1.3em;color:#222}.blog_post h2 a,.blog_post h3 a{text-decoration:none}.blog_post h2 a:link,.blog_post h2 a:visited,.blog_post h3 a:link,.blog_post h3 a:visited{color:inherit}.blog_post h2 a:hover,.blog_post h3 a:hover{text-decoration:underline}.blog_post .content{line-height:1.6em;text-align:justify}.blog_post+.blog_post{margin-top:3.5em}div.blog_post_index{line-height:1.2em}div.blog_post_index p{margin:.3em 0 0 0}div.blog_post_index h4{margin:1.2em 0 0 0;font-size:85%;color:#444;font-weight:bold}#footer{position:absolute;bottom:0;left:0;right:0;text-align:center}#footer p.copyright{color:#555;font-size:80%;margin:0 0 2em 0}#footer p.trees{margin:0;color:#565}#footer p.trees svg|svg{display:block;margin:0 auto;fill:currentColor;width:auto;height:7em}@media(max-width:720px){#footer p.trees svg|svg{height:4em}}@media(max-width:720px){#root{padding:.5em 1em 9em 1em}#header{height:3em;line-height:3em;margin-bottom:1em;border-bottom-style:solid;border-bottom-width:1px}#header .inner_header{position:static;padding:0}#header h1 svg|svg{font-size:120%;margin:0}#header h1 span{font-size:100%}#header h1 a.logo{position:absolute;top:0;left:.3em;width:3.75em;height:3em;text-align:left}#header h1 a.title{position:absolute;bottom:1.5em;left:4em;line-height:1.3em;height:1.3em}#header ul{position:absolute;top:1.5em;left:4em;line-height:1.3em;height:1.3em;margin:0}#header li{margin-right:.5em}#header .header_background{display:none}}.sidenote_label{counter-increment:sidenote_counter}.sidenote_label:after{content:counter(sidenote_counter)}.sidenote_label:after,.sidenote:before{position:relative;vertical-align:baseline;font-size:80%;top:-0.4em}.sidenote_toggle{display:none}.sidenote{float:right;clear:right;margin-right:-14em;margin-bottom:1em;width:10em;padding:0 2em;font-size:80%;line-height:1.3em;text-align:left}.sidenote:before{content:counter(sidenote_counter);margin-right:.4em}.sidenote .parens{position:absolute;top:auto;left:-10000px;width:1px;height:1px;overflow:hidden}ul .sidenote{margin-right:-15.5em}@media(max-width:90em){.sidenote{display:none;float:left;clear:both;width:100%;margin:1em 0;padding:0 2em;box-sizing:border-box;font-size:90%}.sidenote_toggle:checked+.sidenote{display:block}.sidenote_label:after{border:solid #999 1px;cursor:pointer}ul .sidenote{margin-right:1.5em}}.aside{background:#eee;padding:.5em;border-radius:3px}ul.contact{list-style-type:none;padding:0}ul.contact li{line-height:1.7em;margin-left:1.5em}ul.contact .list_icon{color:#232}ul.contact .list_icon svg|svg{width:1.2em;height:1.2em;vertical-align:middle;margin-left:-1.5em;margin-right:.3em;fill:currentColor}.post_comment_form .policy{font-style:italic;font-size:80%;color:#333}.post_comment_form .requirement{font-style:italic;font-size:80%;color:#444;white-space:nowrap}.post_comment_form .formatting_help{font-size:80%;color:#333;padding-left:1.3em}.post_comment_form label{font-weight:bold;color:#444;font-size:80%;display:block;padding:0 0 .2em 0}.post_comment_form textarea{width:100%;box-sizing:border-box}.post_comment_form input[type=text]{background:inherit;border-style:none none solid none;padding:.2em .1em;font-family:sans-serif;border-radius:0}.post_comment_form textarea{background:inherit;border-style:solid;border-radius:3px;font-family:sans-serif;padding:.2em .3em}.post_comment_form input[type=text],.post_comment_form textarea{margin:0;border-width:1px;border-color:#bbb;font-size:100%;color:black;outline:0}.post_comment_form input[type=text]:focus,.post_comment_form textarea:focus{border-color:#565}.post_comment_form div.errors{background:#FCC;padding:.3em .4em}.post_comment_form div.errors p{margin:0}.post_comment_form div.errors h4{margin:.1em;font-size:100%;font-weight:bold}.post_comment_form div.errors ul{margin:.4em 0 .2em 0}.comment{margin:1em 0 1em 0;font-size:90%}.comment h4{font-size:100%;font-weight:normal;margin:0 0 .2em 0;color:#444}.comment h4 .poster{font-weight:bold}.comment p{line-height:1.4em;text-align:justify;margin:.6em 0}.comments .level .level{margin-left:1.75em}.comment_preview .comment{border:dotted #999 1px;padding:.5em .5em 0 .5em}.in_reply_to{font-size:90%;color:#222;line-height:1.4em}.photos_page div.album{margin-bottom:2em;padding-left:200px}.photos_page div.album h3{font-size:120%;font-weight:bold;border:0;padding-top:0;margin:0 0 .7em 0}.photos_page div.album .highlight{margin:0 0 0 -200px;float:left;width:200px;text-align:center}.photos_page div.album .highlight img{border:solid black 1px}.photos_page div.album .info_area{margin-left:1em}.photos_page div.album .info{margin:.3em 0}.photos_page div.album .desc{margin-top:1em;font-style:italic;text-align:justify}.photos_page div.thumbnails{text-align:center}.photos_page p.thumbnail{display:block;display:inline-block;width:250px;text-align:center;margin:0 0 .5em 0}.photos_page p.thumbnail a{display:block;display:inline-block;padding:20px}.photos_page p.thumbnail a:hover,.photos_page p.thumbnail a:focus{background:#DDD}.photos_page p.thumbnail img{display:block;margin:0 auto 1em auto;border:solid black 1px}.photos_page p.thumbnail .title{display:block;font-weight:bold}.photos_page div.photo{text-align:center}.photos_page div.photo img{border:solid black 1px}.photos_page div.photo .nav a{margin:0 .4em}.photos_page div.photo .nav a:not(:link){color:#999}.photos_page div.photo .nav a:not(:link) span{text-decoration:none}@media(min-width:720px){.git_tree{margin:0 2em}}.git_tree ul,.git_tree li{margin:0;padding:0;list-style-type:none}.git_tree ul{line-height:1.3em}.git_tree ul ul{margin-left:1.5em}.git_tree ul ul li{list-style-type:"\21B3";padding-left:.2em}.git_tree ul.children li{list-style-type:disc;padding-left:0;margin-left:.2em}code,kbd,samp,var{display:inline;font-style:italic;font-weight:normal;font-family:inherit}code.block,kbd.block,samp.block{white-space:nowrap;font-size:95%}code.block p,kbd.block p,samp.block p{margin:0}blockquote.pre,code.pre,kbd.pre,samp.pre{white-space:pre;font-style:normal;font-family:monospace}blockquote.pre,code.block,kbd.block,samp.block{display:block;margin:.5em 1em 0 1em;padding:.3em .4em;line-height:150%;font-style:normal;font-family:monospace}@media(max-width:720px){blockquote.pre,code.block,kbd.block,samp.block{overflow:auto}}blockquote{line-height:150%}span.arg{font-style:italic;font-family:monospace}code span.arg{font-style:italic;font-family:inherit;text-decoration:underline}span.replaceable{font-style:italic}code.block.terminal,kbd.block.terminal,samp.block.terminal{background:#002;color:#DDD;border:0;overflow:auto}kbd.cmd span.prompt-user:before{content:"$ "}kbd.cmd span.prompt-root:before{content:"# "}.img-block{margin:.5em 1em 0 1em}.img-block p{margin:0}.img-block img{margin:0}.img-block.align-center{text-align:center}.img-block.captioned{padding:1em;background:#f0f0f0;text-align:center}.img-block.captioned.align-center{margin-left:auto;margin-right:auto}.proper.play{font-style:italic}.latin{font-style:italic}.tldr{font-style:italic;line-height:140%;margin:0 2em}.math{font-style:italic;white-space:nowrap}.math .prose{font-style:normal}table.equations{margin-left:3em}table.equations .left{text-align:right}table.equations .op{text-align:center}table.equations .remark{padding-left:2em}.cryptobyte_message_table{margin:0 auto;border-collapse:collapse}.cryptobyte_message_table td,.cryptobyte_message_table th{border:solid black 1px;text-align:center}.cryptobyte_message_table td{width:3em}.cryptobyte_message_table code{font-style:normal;font-family:monospace}.pygments{margin:.5em 1em 0 1em;padding:.3em .4em;line-height:150%;font-family:monospace;font-size:95%}.pygments pre{margin:0}@media(max-width:720px){.pygments{overflow:auto}}.pygments .hll{background-color:#ffc}.pygments .c{color:#080;font-style:italic}.pygments .err{color:#a61717;background-color:#e3d2d2}.pygments .k{color:navy;font-weight:bold}.pygments .cm{color:#080;font-style:italic}.pygments .cp{color:teal}.pygments .c1{color:#080;font-style:italic}.pygments .cs{color:#080;font-weight:bold}.pygments .gd{color:#000;background-color:#fdd}.pygments .ge{font-style:italic}.pygments .gr{color:#a00}.pygments .gh{color:#999}.pygments .gi{color:#000;background-color:#dfd}.pygments .go{color:#888}.pygments .gp{color:#555}.pygments .gs{font-weight:bold}.pygments .gu{color:#aaa}.pygments .gt{color:#a00}.pygments .kc{color:navy;font-weight:bold}.pygments .kd{color:navy;font-weight:bold}.pygments .kn{color:navy;font-weight:bold}.pygments .kp{color:navy;font-weight:bold}.pygments .kr{color:navy;font-weight:bold}.pygments .kt{color:navy;font-weight:bold}.pygments .m{color:#00f}.pygments .s{color:#00f}.pygments .na{color:red}.pygments .nt{color:navy;font-weight:bold}.pygments .ow{font-weight:bold}.pygments .w{color:#bbb}.pygments .mf{color:#00f}.pygments .mh{color:#00f}.pygments .mi{color:#00f}.pygments .mo{color:#00f}.pygments .sb{color:#00f}.pygments .sc{color:purple}.pygments .sd{color:#00f}.pygments .s2{color:#00f}.pygments .se{color:#00f}.pygments .sh{color:#00f}.pygments .si{color:#00f}.pygments .sx{color:#00f}.pygments .sr{color:#00f}.pygments .s1{color:#00f}.pygments .ss{color:#00f}.pygments .il{color:#00f} - -/* ========================================================= - Academic Footnotes (no-JS) - Endnotes → sticky sidenotes on wide screens - Accessible roles + backlinks; print-friendly - Scoped to .footnote-doc to avoid collisions with .sidenote* - ========================================================= */ -.footnote-doc{--fn-max:72ch;--fn-gap:2rem;--fn-rule:1px solid rgba(0,0,0,.2)} -.footnote-doc .content-inner{max-width:var(--fn-max);margin:0 auto} -.footnote-doc .article{} -.footnote-doc a.fn-ref{text-decoration:none;border-bottom:0} -.footnote-doc a.fn-ref sup[role="doc-noteref"]{font-size:.75em;line-height:0;vertical-align:super;padding:0 .1em} -.footnote-doc a.fn-ref:focus sup,.footnote-doc a.fn-ref:hover sup{text-decoration:underline} -.footnote-doc .footnotes{margin-top:2rem;border-top:var(--fn-rule);padding-top:1rem;font-size:.925rem;color:#222} -.footnote-doc .footnotes h4{margin:0 0 .5rem 0;font-size:.95rem;font-weight:600;letter-spacing:.01em;text-transform:uppercase} -.footnote-doc .footnotes ol{counter-reset:fn;margin:0;padding:0;list-style:none} -.footnote-doc .footnotes li{counter-increment:fn;margin:0 0 .75rem 0;padding-left:2.25em;position:relative} -.footnote-doc .footnotes li::before{content:counter(fn) ".";position:absolute;left:0;top:0;width:2em;text-align:right;font-variant-numeric:tabular-nums;color:rgba(0,0,0,.65)} -.footnote-doc .footnotes li:target{background:rgba(255,230,150,.35);transition:background .3s ease-in} -.footnote-doc a.fn-backref{font-size:.9em;text-decoration:none;margin-left:.5em} -.footnote-doc a.fn-backref::before{content:"↩";margin-right:.25em} -.fn-source{display:block} -.fn-author{font-weight:600} -.fn-title{font-style:italic} -.fn-venue{opacity:.9} -.fn-year{opacity:.8} -.fn-meta{display:block;margin-top:.25rem;font-size:.9em;opacity:.9} -@media (min-width:1000px){ - .footnote-doc .content-inner{display:grid;grid-template-columns:1fr minmax(18ch,28ch);grid-column-gap:var(--fn-gap);align-items:start} - .footnote-doc .article{grid-column:1/2;min-width:0} - .footnote-doc .footnotes{grid-column:2/3;border-top:none;padding-top:0;position:sticky;top:2rem;max-height:calc(100vh - 4rem);overflow:auto;scrollbar-width:thin} -} -@media print{ - .footnote-doc .content-inner{display:block} - .footnote-doc .footnotes{break-before:page;font-size:.9rem} - .footnote-doc .footnotes li{page-break-inside:avoid} - .footnote-doc a{color:#000;text-decoration:none} -}