[pypy-commit] pypy.org nikola: update content, make theme look about like other site

mattip pypy.commits at gmail.com
Mon Dec 30 08:32:05 EST 2019


Author: Matti Picus <matti.picus at gmail.com>
Branch: nikola
Changeset: r968:6fb6953b8617
Date: 2019-12-30 15:29 +0200
http://bitbucket.org/pypy/pypy.org/changeset/6fb6953b8617/

Log:	update content, make theme look about like other site

diff too long, truncating to 2000 out of 2403 lines

diff --git a/conf.py b/conf.py
--- a/conf.py
+++ b/conf.py
@@ -139,16 +139,26 @@
 
 NAVIGATION_LINKS = {
     DEFAULT_LANG: (
-        ('/index.html', '<image src="images/pypy-logo-nav.png" alt=PyPy/>'),
-        ('/features.html', 'What is PyPy?'),
+        ('/index.html', '<image src="images/pypy-logo.svg" width=75 alt=PyPy>'),
+        (
+            (
+                ('/features.html', 'What is PyPy?'),
+                ('/compat.html', 'Compatibility'),
+                ('/performance.html', 'Performance'),
+            ),
+            'Features',
+        ),
         ('/download.html', 'Download'),
-        ('/compat.html', 'Compatibility'),
-        ('/performance.html', 'Performance'),
         ('http://doc.pypy.org', 'Dev Documentation'),
         ('http://morepypy.blogspot.com', 'Blog'),
-        ('/people.html', 'People'),
-        ('/contact.html', 'Contact'),
-        ("/rss.xml", "RSS feed"),
+        (
+            (
+                ('/people.html', 'People'),
+                ('/contact.html', 'Contact'),
+            ),
+            'About',
+        ),
+        #("/rss.xml", "RSS feed"),
     ),
 }
 
@@ -944,7 +954,11 @@
 
 # A small copyright notice for the page footer (in HTML).
 # (translatable)
-CONTENT_FOOTER = 'Contents © {date}         <a href="mailto:{email}">{author}</a> - Powered by         <a href="https://getnikola.com" rel="nofollow">Nikola</a>         {license}'
+CONTENT_FOOTER = """
+<img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo" />  Contents ©
+{date} <a href="mailto:{email}">{author}</a> Powered by <a
+href="https://getnikola.com" rel="nofollow">Nikola</a> {license}
+"""
 
 # Things that will be passed to CONTENT_FOOTER.format().  This is done
 # for translatability, as dicts are not formattable.  Nikola will
diff --git a/image/pypy-logo-nav-grey.png b/image/pypy-logo-nav-grey.png
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0ac40afe49713efe05dd296a619862e5ee7f00cb
GIT binary patch

[cut]

diff --git a/image/pypy-logo.svg b/image/pypy-logo.svg
new file mode 100644
--- /dev/null
+++ b/image/pypy-logo.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 361.4 170.8" style="enable-background:new 0 0 361.4 170.8;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#90A99C;}
+	.st1{fill:#D1DCC0;}
+	.st2{opacity:0.6;fill:url(#SVGID_1_);}
+	.st3{opacity:0.6;fill:url(#SVGID_2_);}
+	.st4{opacity:0.6;fill:url(#SVGID_3_);}
+	.st5{opacity:0.6;fill:url(#SVGID_4_);}
+	.st6{opacity:0.6;fill:url(#SVGID_5_);}
+	.st7{fill:#193440;}
+	.st8{opacity:0.6;fill:url(#SVGID_6_);}
+	.st9{fill:#3F616E;}
+	.st10{opacity:0.6;fill:url(#SVGID_7_);}
+	.st11{fill:#FFFFFF;}
+</style>
+<g>
+	<path class="st0" d="M83.5,3.3c-6.8,0-12.2,1.5-18.6,3l5.1,32.5c1,0.6,1.9,1.4,2.8,2.3c3.5-0.8,7.2-1.3,10.9-1.3
+		c2.1,0,4.1,0.1,6.1,0.4c-1.3-0.7-2.2-1.7-2.1-2.8c0.1-1.9,3.1-3.2,6.6-2.9c3.5,0.3,6.2,2,6.1,3.9c-0.1,1.6-2.2,2.7-4.9,2.9
+		c19.4,5,34,22.2,35,43c0.1,0.9,0.1,1.8,0.1,2.8l0,0c0,48-47.1,83.8-47.1,83.8s0,0,0,0c46.2,0,83.7-37.5,83.7-83.8
+		C167.3,40.8,129.8,3.3,83.5,3.3z M116.4,43.6c-0.7-0.7-1.3-1.3-2-1.8l3.2-0.6C117.2,42,116.8,42.8,116.4,43.6z"/>
+	<path class="st1" d="M83.8,3.3C37.5,3.3,0,40.8,0,87.1s37.5,83.8,83.8,83.8s83.8-37.5,83.8-83.8S130,3.3,83.8,3.3z M117.6,41.1
+		c-0.4,0.9-0.8,1.7-1.2,2.5c-0.7-0.7-1.3-1.3-2-1.8L117.6,41.1z M126.3,106.3c-0.2,0.4-0.4,0.9-0.6,1.3c-2.6,5.2-6.1,9.8-10.4,13.7
+		c-0.7,0.6-1.4,1.2-2.1,1.8c-1,0.8-2.1,1.6-3.2,2.4c-1.2,0.8-2.5,1.6-3.9,2.3c-6.6,3.6-14.2,5.7-22.3,5.7c-8.1,0-15.7-2-22.3-5.7
+		c-1.3-0.7-2.6-1.5-3.9-2.3c-1.1-0.8-2.2-1.6-3.2-2.4c-0.7-0.6-1.4-1.2-2.1-1.8c-0.6-0.5-1.1-1-1.6-1.6c-3.5-3.5-6.5-7.6-8.8-12.1
+		c-0.2-0.4-0.4-0.9-0.6-1.3c-2.8-6-4.3-12.6-4.3-19.7c0-12.9,5.2-24.6,13.7-33.1c0.5-0.5,1.1-1,1.6-1.6c1.7-1.5,3.4-2.9,5.3-4.2
+		c3.4-2.3,7.2-4.2,11.2-5.5c-0.6-0.6-1.2-1.2-1.9-1.7c-1.5-1-3.3-1.6-5.2-1.9c-1.9-0.4-3.9-0.4-5.9-0.3c-2,0.1-4,0.4-6,0.9
+		c1.9-0.8,3.8-1.5,5.9-1.9c2-0.5,4.1-0.8,6.3-0.8c2.1,0,4.4,0.3,6.5,1.2c1.7,0.7,3.2,1.9,4.5,3.3c3.5-0.8,7.2-1.3,11-1.3
+		c2.1,0,4.1,0.2,6.2,0.4c-1.4-0.7-2.2-1.7-2.1-2.8c0.1-1.9,3.1-3.2,6.6-2.9c3.5,0.3,6.2,2,6.1,3.9c-0.1,1.6-2.2,2.7-5,2.9
+		c5.2,1.3,10.1,3.5,14.4,6.5c12.5,8.4,20.7,22.7,20.7,38.8C130.6,93.6,129.1,100.3,126.3,106.3z"/>
+	<g>
+		<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="88.7372" y1="39.4964" x2="83.9239" y2="37.7445">
+			<stop  offset="0" style="stop-color:#FFFFFF"/>
+			<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+			<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+			<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+			<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+			<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+			<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+			<stop  offset="0.8311" style="stop-color:#646464"/>
+			<stop  offset="0.917" style="stop-color:#353535"/>
+			<stop  offset="1" style="stop-color:#000000"/>
+		</linearGradient>
+		<path class="st2" d="M86,38.3c-0.5,0.2-1,0.4-1.4,0.5c-0.4,0.1-0.8,0.2-1.2,0.4c1.8,0,3.6,0.1,5.4,0.2c-0.6-0.6-1-1.3-1-1.9
+			c-0.1,0.1-0.2,0.1-0.3,0.2C87,37.9,86.5,38.1,86,38.3z"/>
+		<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="176.7438" y1="61.1448" x2="73.7115" y2="23.6441">
+			<stop  offset="0" style="stop-color:#FFFFFF"/>
+			<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+			<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+			<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+			<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+			<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+			<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+			<stop  offset="0.8311" style="stop-color:#646464"/>
+			<stop  offset="0.917" style="stop-color:#353535"/>
+			<stop  offset="1" style="stop-color:#000000"/>
+		</linearGradient>
+		<path class="st3" d="M83.5,3.3c-0.8,0-1.6,0-2.4,0.1c0.1,0,0.3,0.1,0.5,0.1c0.2,0,0.5,0.1,0.8,0.2c0.2,0,0.3,0.1,0.5,0.1
+			c0.2,0,0.3,0.1,0.5,0.2c0.4,0.1,0.8,0.2,1.2,0.4C85,4.4,85.5,4.6,86,4.8c0.5,0.2,1,0.5,1.5,0.7c0.5,0.3,1,0.6,1.6,0.9
+			c0.3,0.2,0.5,0.4,0.8,0.6c0.3,0.2,0.5,0.4,0.8,0.6C91.2,8,91.7,8.4,92.2,9c1,1,1.9,2.2,2.7,3.5c0.8,1.3,1.4,2.8,1.8,4.3
+			c0.1,0.4,0.2,0.8,0.3,1.2l0.1,0.3l0,0.3l0.1,0.6l0.1,0.6c0,0.2,0,0.4,0,0.6l0,0.6l0,0.3l0,0.2l0,0.1l0,0l0,0l-0.1,1.3l0,0.3
+			c0,0.1,0,0.2,0,0.3L97.2,24l-0.1,0.6l0,0.3L97,25.1c-0.1,0.4-0.2,0.8-0.3,1.2c-0.5,1.5-1,3-1.8,4.3c-0.8,1.3-1.7,2.5-2.7,3.5
+			c-0.2,0.2-0.3,0.3-0.5,0.5c0.8-0.1,1.7-0.2,2.7-0.1c3.5,0.3,6.2,2,6.1,3.9c-0.1,0.9-0.8,1.6-1.8,2.1c45.5,7.5,68.6,46.6,68.6,46.6
+			C167.3,40.8,129.8,3.3,83.5,3.3z M116.4,43.6c-0.7-0.7-1.3-1.3-2-1.8l3.2-0.6C117.2,42,116.8,42.8,116.4,43.6z"/>
+	</g>
+	<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="8.7971" y1="77.1246" x2="113.9849" y2="137.8548">
+		<stop  offset="0" style="stop-color:#FFFFFF"/>
+		<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+		<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+		<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+		<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+		<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+		<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+		<stop  offset="0.8311" style="stop-color:#646464"/>
+		<stop  offset="0.917" style="stop-color:#353535"/>
+		<stop  offset="1" style="stop-color:#000000"/>
+	</linearGradient>
+	<path class="st4" d="M130.6,87c0-0.9,0-1.9-0.1-2.8c0-0.1,0-0.1,0-0.2c0,0.9,0.1,1.7,0.1,2.6c0,7-1.6,13.7-4.3,19.7
+		c-0.2,0.4-0.4,0.9-0.6,1.3c-2.6,5.2-6.1,9.8-10.4,13.7c-0.7,0.6-1.4,1.2-2.1,1.8c-1,0.8-2.1,1.6-3.2,2.4c-1.2,0.8-2.5,1.6-3.9,2.3
+		c-6.6,3.6-14.2,5.7-22.3,5.7c-0.9,0-1.9,0-2.8-0.1c0.9,0.1,1.8,0.1,2.8,0.1c0,0-77.9,9.7-83-41.5c-0.2,0-0.4,0.1-0.5,0.1
+		c2.6,43.9,38.9,78.6,83.4,78.7c0,0,0,0,0,0S130.7,135.1,130.6,87L130.6,87z"/>
+	<path class="st1" d="M83.5,3.3c-6.8,0-12.2,1.5-18.6,3l2.8,31.3c0.2,0.1,0.3,0.1,0.5,0.2c0.5,0.2,1.1,0.5,1.6,0.8c0,0,0,0,0,0
+		c0.5,0.3,1,0.6,1.4,1l12.1-0.4c1.8,0,3.6,0.1,5.4,0.2c-0.1-0.1-0.1-0.1-0.2-0.2c-0.1-0.1-0.2-0.3-0.3-0.4c-0.1-0.1-0.1-0.1-0.1-0.2
+		c-0.1-0.1-0.1-0.3-0.2-0.4c0-0.1-0.1-0.1-0.1-0.2c-0.1-0.2-0.1-0.4-0.1-0.6c0.1-1.9,3.1-3.2,6.6-2.9c3.5,0.3,6.2,2,6.1,3.9
+		c0,0.2-0.1,0.4-0.2,0.6c-0.1,0.1-0.2,0.3-0.3,0.4c0,0-0.1,0.1-0.1,0.2c-0.2,0.2-0.3,0.3-0.5,0.5c0,0,0,0,0,0
+		c-0.2,0.2-0.5,0.3-0.7,0.4c45.5,7.5,68.6,46.6,68.6,46.6C167.3,40.8,129.8,3.3,83.5,3.3z"/>
+	<g>
+		<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="85.0501" y1="41.2733" x2="86.087" y2="38.4245">
+			<stop  offset="0" style="stop-color:#FFFFFF"/>
+			<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+			<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+			<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+			<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+			<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+			<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+			<stop  offset="0.8311" style="stop-color:#646464"/>
+			<stop  offset="0.917" style="stop-color:#353535"/>
+			<stop  offset="1" style="stop-color:#000000"/>
+		</linearGradient>
+		<path class="st5" d="M89.9,40.2c-0.4-0.2-0.8-0.5-1.1-0.8c-1.8-0.1-3.6-0.2-5.4-0.2c0.4-0.1,0.8-0.2,1.2-0.4l-2.8,0.7l-0.7,0.3
+			c0.9,0,1.7-0.1,2.6-0.1C85.8,39.8,87.9,39.9,89.9,40.2z"/>
+		<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="93.95" y1="174.5922" x2="138.1377" y2="53.1876">
+			<stop  offset="0" style="stop-color:#FFFFFF"/>
+			<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+			<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+			<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+			<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+			<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+			<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+			<stop  offset="0.8311" style="stop-color:#646464"/>
+			<stop  offset="0.917" style="stop-color:#353535"/>
+			<stop  offset="1" style="stop-color:#000000"/>
+		</linearGradient>
+		<path class="st6" d="M98.7,40.5c-0.8,0.4-1.9,0.7-3.1,0.8c19.4,5,34,22.2,35,43c0.1,0.9,0.1,1.8,0.1,2.8l0,0
+			c0,48-47.1,83.8-47.1,83.8s0,0,0,0c46.2,0,83.7-37.5,83.7-83.8C167.3,87.1,144.2,48,98.7,40.5z"/>
+	</g>
+	<g>
+		<path class="st7" d="M319.7,78.5c0-0.9,0-2.9,0.1-5.7c0-2.9,0.1-5.7,0.1-8.4c0-4.3-1.2-7.6-3.5-10.1c-2.3-2.4-5.8-3.7-10.5-3.7
+			c-1,0-2.4,0-4.1,0.1c-1.7,0-3,0.1-3.9,0.1c-0.7,0-2.2,0-4.5-0.1c-2.3,0-3.8-0.1-4.5-0.1c-2.9,0-4.4,1.4-4.4,4.3
+			c0,1.2,0,5.6,0.1,13c0,7.4,0.1,12.9,0.1,16.4c0,7.8,0,19.6-0.1,32.1h0c0,3.4,2.7,6.1,6.1,6.1c3.4,0,6.1-2.7,6.1-6.1v-7
+			c0-0.6,0.3-0.9,0.9-0.9h8.2c4.5,0,8-1.2,10.3-3.7c2.3-2.4,3.5-6,3.5-10.6c0-2.4,0-5.3-0.1-8.5C319.7,82.5,319.7,80.1,319.7,78.5z
+			 M307.5,93.4c0,2.7-1.3,4.1-4,4.1h-5.8c-0.5,0-0.8-0.3-0.8-0.8V62.8c0-0.5,0.3-0.8,0.8-0.8h5.7c2.7,0,4.1,1.4,4.1,4.1V93.4z"/>
+	</g>
+	<g>
+		<path class="st7" d="M235.7,78.5c0-0.9,0-2.9,0.1-5.7c0-2.9,0.1-5.7,0.1-8.4c0-4.3-1.2-7.6-3.5-10.1c-2.3-2.4-5.8-3.7-10.5-3.7
+			c-1,0-2.4,0-4.1,0.1c-1.7,0-3,0.1-3.9,0.1c-0.7,0-2.2,0-4.5-0.1c-2.3,0-3.8-0.1-4.5-0.1c-2.9,0-4.4,1.4-4.4,4.3
+			c0,1.2,0,5.6,0.1,13c0,7.4,0.1,12.9,0.1,16.4c0,7.8,0,19.6-0.1,32.1h0c0,3.4,2.7,6.1,6.1,6.1c3.4,0,6.1-2.7,6.1-6.1h0v-7
+			c0-0.6,0.3-0.9,0.9-0.9h8.2c4.5,0,8-1.2,10.3-3.7c2.3-2.4,3.5-6,3.5-10.6c0-2.4,0-5.3-0.1-8.5C235.7,82.5,235.7,80.1,235.7,78.5z
+			 M223.5,93.4c0,2.7-1.3,4.1-4,4.1h-5.8c-0.5,0-0.8-0.3-0.8-0.8V62.8c0-0.5,0.3-0.8,0.8-0.8h5.7c2.7,0,4.1,1.4,4.1,4.1V93.4z"/>
+	</g>
+	<path class="st7" d="M361.4,94.4c0-1.4,0-4.1-0.1-8.3c0-4.2-0.1-7.2-0.1-9l0.1-20.3c0-3.4-2.8-6.1-6.1-6.1c-3.4,0-6.1,2.7-6.1,6.1
+		h0v36.4c0,2.7-1.5,4.1-4.5,4.1h-0.8h-0.8c-3,0-4.5-1.4-4.5-4.1V56.8h0c0-3.4-2.7-6.1-6.1-6.1c-3.4,0-6.1,2.7-6.1,6.1l0.1,20.3
+		c0,1.8,0,4.8-0.1,9c0,4.2-0.1,6.9-0.1,8.3c0,4.2,1.2,7.6,3.5,10.2c2.3,2.6,5.7,3.9,10.2,3.9h3.8h0.6c-0.9,2.4-1.7,4.3-2.3,5.8
+		c-1.2,3.1,0.3,6.6,3.4,7.8c3.1,1.2,6.6-0.3,7.8-3.4l0,0l7-18.3C361,98.6,361.4,96.6,361.4,94.4z"/>
+	<path class="st7" d="M277.4,94.4c0-1.4,0-4.1-0.1-8.3c0-4.2-0.1-7.2-0.1-9l0.1-20.3c0-3.4-2.8-6.1-6.1-6.1c-3.4,0-6.1,2.7-6.1,6.1
+		h0v36.4c0,2.7-1.5,4.1-4.5,4.1h-0.8h-0.8c-3,0-4.5-1.4-4.5-4.1V56.8h0c0-3.4-2.7-6.1-6.1-6.1c-3.4,0-6.1,2.7-6.1,6.1l0.1,20.3
+		c0,1.8,0,4.8-0.1,9c0,4.2-0.1,6.9-0.1,8.3c0,4.2,1.2,7.6,3.5,10.2c2.3,2.6,5.7,3.9,10.2,3.9h3.8h0.6c-0.9,2.4-1.7,4.3-2.3,5.8
+		c-1.2,3.1,0.3,6.6,3.4,7.8c3.1,1.2,6.6-0.3,7.8-3.4l0,0l7-18.3C277,98.6,277.4,96.6,277.4,94.4z"/>
+	<path class="st0" d="M87.8,37.4c0.1-1.4,1.7-2.4,3.9-2.8c0.2-0.2,0.3-0.3,0.5-0.5c1-1,1.9-2.2,2.7-3.5c0.8-1.3,1.4-2.8,1.8-4.3
+		c0.1-0.4,0.2-0.8,0.3-1.2l0.1-0.3l0-0.3l0.1-0.6l0.1-0.6c0-0.1,0-0.2,0-0.3l0-0.3l0.1-1.3l0,0l0,0l0-0.1l0-0.2l0-0.3l0-0.6
+		c0-0.2,0-0.4,0-0.6l-0.1-0.6l-0.1-0.6l0-0.3L97,18c-0.1-0.4-0.2-0.8-0.3-1.2c-0.5-1.5-1-3-1.8-4.3c-0.8-1.3-1.7-2.5-2.7-3.5
+		c-0.5-0.5-1-1-1.5-1.4c-0.2-0.2-0.5-0.4-0.8-0.6c-0.3-0.2-0.5-0.4-0.8-0.6c-0.5-0.3-1.1-0.7-1.6-0.9C87,5.2,86.5,5,86,4.8
+		c-0.5-0.2-1-0.4-1.4-0.5c-0.4-0.1-0.8-0.2-1.2-0.4c-0.2-0.1-0.4-0.1-0.5-0.2c-0.2,0-0.3-0.1-0.5-0.1c-0.3-0.1-0.6-0.1-0.8-0.2
+		c-0.3-0.1-0.6-0.1-0.6-0.1C59.8,4,39.9,12.6,24.8,27.7C9.1,43.4,0.4,64.3,0.4,86.6c0,0.5,0,0.9,0,1.4c1.3,55.7,83.3,45.5,83.3,45.5
+		c-25.8,0-46.9-21-46.9-46.9c0-14.5,6.7-27.5,17-36.1c0.1-0.1,0.3-0.2,0.4-0.3c1-0.8,2.1-1.6,3.1-2.3c0.2-0.1,0.4-0.2,0.6-0.4
+		c1.1-0.7,2.1-1.3,3.2-2c0.2-0.1,0.4-0.2,0.6-0.3c1.1-0.6,2.2-1.1,3.4-1.6c0.2-0.1,0.5-0.2,0.7-0.3c0.9-0.4,1.9-0.7,2.8-1
+		c-0.6-0.6-1.2-1.2-1.9-1.7c-1.5-1-3.3-1.6-5.2-1.9c-1.9-0.4-3.9-0.4-5.9-0.3c-2,0.1-4,0.4-6,0.9c1.9-0.8,3.8-1.5,5.9-1.9
+		c2-0.5,4.1-0.8,6.3-0.8c2.1,0,4.4,0.3,6.5,1.2c1.7,0.7,3.2,1.9,4.5,3.3c0.4-0.1,0.7-0.2,1.1-0.3c0.3-0.1,0.5-0.1,0.8-0.2
+		c1.2-0.2,2.5-0.4,3.7-0.6c0.3,0,0.6-0.1,0.9-0.1c0.6-0.1,1.1-0.1,1.6-0.2c0,0,0,0,0,0s0.2,0,0.6-0.1c0.2,0,0.5-0.1,0.8-0.2
+		c0.1,0,0.3-0.1,0.5-0.1c0.2,0,0.3-0.1,0.5-0.2c0.4-0.1,0.8-0.2,1.2-0.4c0.4-0.2,0.9-0.3,1.4-0.5c0.5-0.2,1-0.5,1.5-0.7
+		C87.6,37.6,87.7,37.5,87.8,37.4C87.8,37.4,87.8,37.4,87.8,37.4z"/>
+	<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="48.9086" y1="3.3284" x2="48.9086" y2="134.1741">
+		<stop  offset="0" style="stop-color:#FFFFFF"/>
+		<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+		<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+		<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+		<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+		<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+		<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+		<stop  offset="0.8311" style="stop-color:#646464"/>
+		<stop  offset="0.917" style="stop-color:#353535"/>
+		<stop  offset="1" style="stop-color:#000000"/>
+	</linearGradient>
+	<path class="st8" d="M87.8,37.4c0-0.3,0.1-0.5,0.2-0.8c0,0,0,0,0,0c0,0,0,0,0,0c0.1-0.1,0.2-0.3,0.3-0.4c0,0,0,0,0,0c0,0,0,0,0,0
+		c0.4-0.5,1-0.9,1.8-1.2c0,0,0,0,0,0c0,0,0,0,0,0c0.1,0,0.2-0.1,0.3-0.1c0,0,0,0,0,0l0,0c0.4-0.1,0.8-0.3,1.3-0.3l0,0l0,0
+		c0,0,0,0,0,0c0.2-0.2,0.3-0.3,0.5-0.5c1-1,1.9-2.2,2.7-3.5c0.8-1.3,1.4-2.8,1.8-4.3c0.1-0.4,0.2-0.8,0.3-1.2l0.1-0.3l0-0.3l0.1-0.6
+		l0.1-0.6c0-0.1,0-0.2,0-0.3l0-0.3l0.1-1.3l0,0l0,0l0-0.1l0-0.2l0-0.3l0-0.6c0-0.2,0-0.4,0-0.6l-0.1-0.6l-0.1-0.6l0-0.3L97,18
+		c-0.1-0.4-0.2-0.8-0.3-1.2c-0.5-1.5-1-3-1.8-4.3c-0.8-1.3-1.7-2.5-2.7-3.5c-0.5-0.5-1-1-1.5-1.4c-0.2-0.2-0.5-0.4-0.8-0.6
+		c-0.3-0.2-0.5-0.4-0.8-0.6c-0.5-0.3-1.1-0.7-1.6-0.9C87,5.2,86.5,5,86,4.8c-0.5-0.2-1-0.4-1.4-0.5c-0.4-0.1-0.8-0.2-1.2-0.4
+		c-0.2-0.1-0.4-0.1-0.5-0.2c-0.2,0-0.3-0.1-0.5-0.1c-0.3-0.1-0.6-0.1-0.8-0.2c-0.3-0.1-0.6-0.1-0.6-0.1C59.8,4,39.9,12.6,24.8,27.7
+		C9.1,43.4,0.4,64.3,0.4,86.6c0,0.5,0,0.9,0,1.4c1.3,55.7,83.3,45.5,83.3,45.5c-25.8,0-46.9-21-46.9-46.9c0-14.5,6.7-27.5,17-36.1
+		c0.1-0.1,0.3-0.2,0.4-0.3c1-0.8,2.1-1.6,3.1-2.3c0.2-0.1,0.4-0.2,0.6-0.4c1.1-0.7,2.1-1.3,3.2-2c0.2-0.1,0.4-0.2,0.6-0.3
+		c1.1-0.6,2.2-1.1,3.4-1.6c0.2-0.1,0.5-0.2,0.7-0.3c0.9-0.4,1.9-0.7,2.8-1c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0
+		c-0.3-0.3-0.5-0.6-0.9-0.9c-0.3-0.3-0.7-0.5-1-0.8c-1.5-1-3.3-1.6-5.2-1.9c-1.9-0.4-3.9-0.4-5.9-0.3c-2,0.1-4,0.4-6,0.9
+		c1.9-0.8,3.8-1.5,5.9-1.9c2-0.5,4.1-0.8,6.3-0.8c2.1,0,4.4,0.3,6.5,1.2c0.5,0.2,0.9,0.5,1.4,0.7c0,0,0,0,0,0c0,0,0,0,0,0
+		c0.2,0.1,0.4,0.2,0.6,0.4c0,0,0,0,0,0c0,0,0,0,0,0c0.2,0.2,0.5,0.3,0.7,0.5v0c0.2,0.2,0.5,0.4,0.7,0.6c0,0,0,0,0,0v0c0,0,0,0,0,0
+		c0.1,0.1,0.1,0.1,0.2,0.2c0,0,0,0,0,0c0.3,0.3,0.7,0.6,1,1c0.4-0.1,0.7-0.2,1.1-0.3c0.3-0.1,0.5-0.1,0.8-0.2
+		c1.2-0.2,2.5-0.4,3.7-0.6c0.3,0,0.6-0.1,0.9-0.1c0.6-0.1,1.1-0.1,1.6-0.2c0,0,0,0,0,0s0.2,0,0.6-0.1c0.2,0,0.5-0.1,0.8-0.2
+		c0.1,0,0.3-0.1,0.5-0.1c0.2,0,0.3-0.1,0.5-0.2c0.4-0.1,0.8-0.2,1.2-0.4c0.4-0.2,0.9-0.3,1.4-0.5c0.5-0.2,1-0.5,1.5-0.7
+		C87.6,37.6,87.7,37.5,87.8,37.4C87.8,37.4,87.8,37.4,87.8,37.4z"/>
+	<path class="st9" d="M115.4,42.6c0.7-0.2,1.3-0.5,1.9-0.8c0,0,0,0,0,0c0.5-0.3,1.1-0.6,1.6-1c0.1,0,0.1-0.1,0.2-0.1
+		c0.5-0.4,0.9-0.8,1.4-1.2c0.1-0.1,0.1-0.1,0.2-0.2c0,0,0,0,0.1-0.1c0.4-0.4,0.8-0.8,1.1-1.3c0,0,0,0,0,0c0.4-0.5,0.7-1,1-1.5
+		c0.1-0.1,0.1-0.2,0.2-0.3c0.3-0.5,0.5-1,0.7-1.6c0-0.1,0-0.1,0.1-0.2c0.2-0.5,0.3-1,0.4-1.6c0-0.1,0-0.2,0.1-0.3
+		c0.1-0.4,0.1-0.9,0.2-1.3c0-0.1,0-0.3,0.1-0.4c0-0.1,0-0.2,0-0.4c0-0.4,0-0.7,0-1.1c0-0.3,0-0.5,0-0.8l0,0c-0.3-3.4-2-6.4-4.3-8.6
+		l0,0L104.6,5.9c-0.1-0.1-0.3-0.2-0.4-0.3l-0.7-0.7l0,0c-4-3.4-9.4-5.3-15.1-4.7c-3.4,0.3-6.6,1.5-9.2,3.3c-1,0.1-1.9,0.1-2.9,0.2
+		c-0.4,0-0.8,0.1-1.2,0.1c-1.2,0.1-2.4,0.3-3.6,0.5c-0.3,0-0.6,0.1-0.9,0.1c-45.8,9.3-33.9,80.7-33.7,82.2c0,0,0,0,0,0c0,0,0,0,0,0
+		c0,0,0,0,0,0c0,0,0,0,0,0c0-14.5,6.7-27.5,17-36.1l0.4-0.3c1-0.8,2.1-1.6,3.1-2.3c0.2-0.1,0.4-0.2,0.6-0.4c1.1-0.7,2.1-1.3,3.2-2
+		c0.2-0.1,0.4-0.2,0.6-0.3c1.1-0.6,2.2-1.1,3.4-1.6c0.2-0.1,0.5-0.2,0.7-0.3c0.9-0.4,1.9-0.7,2.8-1c-0.6-0.6-1.2-1.2-1.9-1.7
+		c-1.5-1-3.3-1.6-5.2-1.9c-1.9-0.4-3.9-0.4-5.9-0.3c-2,0.1-4,0.4-6,0.9c1.9-0.8,3.8-1.5,5.9-1.9c2-0.5,4.1-0.8,6.3-0.8
+		c2.1,0,4.4,0.3,6.5,1.2c1.7,0.7,3.2,1.9,4.5,3.3c0,0,0,0,0,0c4.1,4.7,10.4,7.5,17.2,6.8c0.6-0.1,1.2-0.2,1.8-0.3l0,0l0.2,0
+		c0,0,0,0,0.1,0l21.6-4.4C114.3,43,114.9,42.8,115.4,42.6z"/>
+	<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="35.2909" y1="43.2855" x2="124.4093" y2="43.2855">
+		<stop  offset="0" style="stop-color:#FFFFFF"/>
+		<stop  offset="0.1884" style="stop-color:#FCFCFC"/>
+		<stop  offset="0.3217" style="stop-color:#F3F3F3"/>
+		<stop  offset="0.4381" style="stop-color:#E3E3E3"/>
+		<stop  offset="0.5447" style="stop-color:#CDCDCD"/>
+		<stop  offset="0.6448" style="stop-color:#B1B1B1"/>
+		<stop  offset="0.7399" style="stop-color:#8E8E8E"/>
+		<stop  offset="0.8311" style="stop-color:#646464"/>
+		<stop  offset="0.917" style="stop-color:#353535"/>
+		<stop  offset="1" style="stop-color:#000000"/>
+	</linearGradient>
+	<path class="st10" d="M115.4,42.6c0.7-0.2,1.3-0.5,1.9-0.8c0,0,0,0,0,0c0.5-0.3,1.1-0.6,1.6-1c0.1,0,0.1-0.1,0.2-0.1
+		c0.5-0.4,0.9-0.8,1.4-1.2c0.1-0.1,0.1-0.1,0.2-0.2c0,0,0,0,0.1-0.1c0.4-0.4,0.8-0.8,1.1-1.3c0,0,0,0,0,0c0.4-0.5,0.7-1,1-1.5
+		c0.1-0.1,0.1-0.2,0.2-0.3c0.3-0.5,0.5-1,0.7-1.6c0-0.1,0-0.1,0.1-0.2c0.2-0.5,0.3-1,0.4-1.6c0-0.1,0-0.2,0.1-0.3
+		c0.1-0.4,0.1-0.9,0.2-1.3c0-0.1,0-0.3,0.1-0.4c0-0.1,0-0.2,0-0.4c0-0.4,0-0.7,0-1.1c0-0.3,0-0.5,0-0.8l0,0c-0.3-3.4-2-6.4-4.3-8.6
+		l0,0L104.6,5.9c-0.1-0.1-0.3-0.2-0.4-0.3l-0.7-0.7l0,0c-4-3.4-9.4-5.3-15.1-4.7c-3.4,0.3-6.6,1.5-9.2,3.3c-1,0.1-1.9,0.1-2.9,0.2
+		c-0.4,0-0.8,0.1-1.2,0.1c-1.2,0.1-2.4,0.3-3.6,0.5c-0.3,0-0.6,0.1-0.9,0.1c-45.8,9.3-33.9,80.7-33.7,82.2c0,0,0,0,0,0c0,0,0,0,0,0
+		c0,0,0,0,0,0c0,0,0,0,0,0c0-14.5,6.7-27.5,17-36.1l0.4-0.3c1-0.8,2.1-1.6,3.1-2.3c0.2-0.1,0.4-0.2,0.6-0.4c1.1-0.7,2.1-1.3,3.2-2
+		c0.2-0.1,0.4-0.2,0.6-0.3c1.1-0.6,2.2-1.1,3.4-1.6c0.2-0.1,0.5-0.2,0.7-0.3c0.9-0.4,1.9-0.7,2.8-1c-0.6-0.6-1.2-1.2-1.9-1.7
+		c-1.5-1-3.3-1.6-5.2-1.9c-1.9-0.4-3.9-0.4-5.9-0.3c-2,0.1-4,0.4-6,0.9c1.9-0.8,3.8-1.5,5.9-1.9c2-0.5,4.1-0.8,6.3-0.8
+		c2.1,0,4.4,0.3,6.5,1.2c1.7,0.7,3.2,1.9,4.5,3.3c0,0,0,0,0,0c4.1,4.7,10.4,7.5,17.2,6.8c0.6-0.1,1.2-0.2,1.8-0.3l0,0l0.2,0
+		c0,0,0,0,0.1,0l21.6-4.4C114.3,43,114.9,42.8,115.4,42.6z"/>
+	<path class="st11" d="M93.9,41.3c-3.5-0.3-6.2-2-6.1-3.9c0.1-1.9,3.1-3.2,6.6-2.9c3.5,0.3,6.2,2,6.1,3.9
+		C100.3,40.2,97.4,41.5,93.9,41.3z"/>
+</g>
+</svg>
diff --git a/image/pypy-logo2-white-background.png b/image/pypy-logo2-white-background.png
deleted file mode 100644
index 5e4b3ed732549b0d60e655b552f31f1baadf8e14..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch

[cut]

diff --git a/image/pypy_speed_graph.png b/image/pypy_speed_graph.png
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c6643f080d62b10300b2794b8d00a3c518fb55c3
GIT binary patch

[cut]

diff --git a/pages/compat.rst b/pages/compat.rst
--- a/pages/compat.rst
+++ b/pages/compat.rst
@@ -14,17 +14,11 @@
 PyPy3 implements the Python language version 3.6.9.  It has been released,
 but Python is a large language and it is quite possible that a few things are missing.
 
-.. class:: download_menu
-
-   `List of installable top 1000 PyPI packages`_
-
 PyPy has support for the `CPython C API`_, however there are constructs
 that are `not compatible`.  We strongly advise use of `CFFI`_
 instead. CFFI come builtin with PyPy. Many libraries will require
 a bit of effort to work, but there are known success stories. Check out
-PyPy blog for updates, as well as the `Compatibility Wiki`__.
-
-.. __: https://bitbucket.org/pypy/compatibility/wiki/Home
+PyPy blog for updates
 
 C extensions need to be recompiled for PyPy in order to work. Depending on
 your build system, it might work out of the box or will be slightly harder.
@@ -33,11 +27,11 @@
 library are implemented in pure python, so they don't have to be listed
 there. Please just check if it imports. If it imports, it should work.
 
-* ``__builtin__, __pypy__, _ast, _cffi_backend, _codecs, _collections, _continuation, _csv, _file, _hashlib, _io, _locale, _lsprof, _md5, _minimal_curses, _multibytecodec, _multiprocessing, _numpypy, _pickle_support, _pypyjson, _random, _rawffi, _sha, _socket, _sre, _ssl, _struct, _testing, _warnings, _weakref, array, binascii, bz2, cStringIO, cmath, cppyy, cpyext, crypt, errno, exceptions, fcntl, gc, imp, itertools, marshal, math, mmap, operator, parser, posix, pwd, pyexpat, pypyjit, select, signal, symbol, sys, termios, thread, time, token, unicodedata, zipimport, zlib``
+``__builtin__, __pypy__, _ast, _cffi_backend, _codecs, _collections, _continuation, _csv, _file, _hashlib, _io, _locale, _lsprof, _md5, _minimal_curses, _multibytecodec, _multiprocessing, _numpypy, _pickle_support, _pypyjson, _random, _rawffi, _sha, _socket, _sre, _ssl, _struct, _testing, _warnings, _weakref, array, binascii, bz2, cStringIO, cmath, cppyy, cpyext, crypt, errno, exceptions, fcntl, gc, imp, itertools, marshal, math, mmap, operator, parser, posix, pwd, pyexpat, pypyjit, select, signal, symbol, sys, termios, thread, time, token, unicodedata, zipimport, zlib``
 
-Supported, but written in pure Python:
+Supported, and written in pure Python:
 
-* ``cPickle, ctypes, datetime, dbm, _functools, grp, readline, resource, sqlite3, syslog``
+``cPickle, ctypes, datetime, dbm, _functools, grp, readline, resource, sqlite3, syslog``
 
 All modules that are pure python in CPython of course work.
 
@@ -79,14 +73,6 @@
 
 .. code-block:: python
 
-    f = open("filename", "w")
-    f.write("stuff")
-    f.close()
-
-or using the ``with`` keyword
-
-.. code-block:: python
-
     with open("filename", "w") as f:
         f.write("stuff")
 
@@ -95,12 +81,11 @@
 In that case, you can easily hit the system limit on the number of file
 descriptors that are allowed to be opened at the same time.
 
-Since release 5.4, PyPy can be run with the command-line option ``-X
-track-resources`` (as in, ``pypy -X track-resources myprogram.py``).
-This produces a ResourceWarning when the GC closes a non-closed file or
-socket.  The traceback for the place where the file or socket was
-allocated is given as well, which aids finding places where ``close()``
-is missing.
+PyPy can be run with the command-line option ``-X track-resources`` (as in,
+``pypy -X track-resources myprogram.py``). This produces a ``ResourceWarning``
+when the GC closes a non-closed file or socket.  The traceback for the place
+where the file or socket was allocated is given as well, which aids finding
+places where ``close()`` is missing.
 
 Similarly, remember that you must ``close()`` a non-exhausted
 generator in order to have its pending ``finally`` or ``with``
diff --git a/pages/download.rst b/pages/download.rst
--- a/pages/download.rst
+++ b/pages/download.rst
@@ -6,7 +6,10 @@
 .. link: 
 .. description: 
 
-.. class:: download_menu
+.. contents::
+    :depth: 2
+
+.. note::
 
   There are `nightly binary builds`_ available. Those builds are not always
   as stable as the release, but they contain numerous bugfixes and
@@ -24,19 +27,6 @@
 .. _what's new in PyPy 7.3.0?: http://doc.pypy.org/en/latest/release-v7.3.0.html
 
 
-.. class:: download_menu
-
- * Download
-
-   * `Default (with a JIT Compiler)`_
-   * `Other versions`_
-
- * `Installing`_ (optional)
- * `Installing more modules`_
- * `Building from source`_
- * `Packaging`_
- * `Checksums`_
-
 .. _`Default (with a JIT Compiler)`:
 
 "JIT Compiler" version
@@ -83,7 +73,7 @@
 
 * or translate_ your own PyPy.
 
-.. class:: download_menu
+.. note::
 
     SSL Certificates
 
diff --git a/pages/features.rst b/pages/features.rst
--- a/pages/features.rst
+++ b/pages/features.rst
@@ -1,12 +1,13 @@
-.. title: What is PyPy?
+.. title: PyPy - Features
 .. slug: features
 .. date: 2019-12-28 16:14:02 UTC
 .. tags: 
 .. category: 
 .. link: 
-.. description: 
+.. author: The PyPy Team
+.. description: What is PyPy and what are its features
 
-PyPy is a replacement for CPython.  It is built using the RPython
+**PyPy** is a replacement for CPython.  It is built using the RPython
 language that was co-developed with it.  The main reason to use it
 instead of CPython is speed: it runs generally faster (see next section).
 
@@ -39,16 +40,17 @@
 .. _`System Z (s390x)`: https://de.wikipedia.org/wiki/System/390
 .. _`howtohelp`: howtohelp.html
 
-
+.. |---| unicode:: U+2014  .. em dash, trimming surrounding whitespace
+   :trim:
 
 The main features of PyPy:
 --------------------------
 
 Speed
------
+=====
 
 Our `main executable`_ comes with a Just-in-Time compiler.  It is
-`really fast`_ in running most benchmarks --- including very large and
+`really fast`_ in running most benchmarks |---| including very large and
 complicated Python applications, not just 10-liners.
 
 There are two cases that you should be aware where PyPy will *not* be
@@ -72,7 +74,7 @@
 
 
 Memory usage
---------------------------
+============
 
 Memory-hungry Python programs (several hundreds of MBs or more) might
 end up taking less space than they do in CPython.  It is not always
@@ -81,7 +83,7 @@
 
 
 Stackless
---------------------------
+=========
 
 Support for Stackless_ and greenlets are now integrated in the normal
 PyPy.  More detailed information is available here__.
@@ -91,7 +93,7 @@
 
 
 Other features
----------------------------------------
+==============
 
 PyPy has many secondary features and semi-independent
 projects.  We will mention here:
@@ -105,7 +107,7 @@
 
 
 Sandboxing
---------------------
+==========
 
 PyPy's *sandboxing* is a working prototype for the idea of running untrusted
 user programs. Unlike other sandboxing approaches for Python, PyPy's does not
@@ -113,28 +115,32 @@
 calls to external libraries (C or platform) with a stub that communicates
 with an external process handling the policy.
 
-+-----------------------------------------------------------------------------+
-| **Please be aware that it is a prototype only.**  *It needs work to become  |
-| more complete, and you are welcome to help.  In particular, almost none     |
-| of the extension modules work (not even* ``time`` *), and* ``pypy_interact``|
-| *is merely a demo.  Also, a more complete system would include a way        |
-| to do the same as* ``pypy_interact`` *from other languages than Python,     |
-| to embed a sandboxed interpreter inside programs written in other           |
-| languages.*                                                                 |
-+-----------------------------------------------------------------------------+
+.. note::
+
+    **Please be aware that it is a prototype only.**  It needs work to become  
+    more complete, and you are welcome to help.  In particular, almost none     
+    of the extension modules work (not even ``time`` ), and ``pypy_interact``
+    is merely a demo.  Also, a more complete system would include a way        
+    to do the same as ``pypy_interact`` from other languages than Python,     
+    to embed a sandboxed interpreter inside programs written in other           
+    languages. 
 
 To run the sandboxed process, you need to get the full sources and
 build ``pypy-sandbox`` from it (see `Building from source`_).  These
 instructions give you a ``pypy-c`` that you should rename to
-``pypy-sandbox`` to avoid future confusion.  Then run::
+``pypy-sandbox`` to avoid future confusion.  Then run:
 
-   cd pypy/sandbox
-   pypy_interact.py path/to/pypy-sandbox
-   # don't confuse it with pypy/goal/pyinteractive.py!
+.. code-block:: bash
+
+    cd pypy/sandbox
+    pypy_interact.py path/to/pypy-sandbox
+    # don't confuse it with pypy/goal/pyinteractive.py!
 
 You get a fully sandboxed interpreter, in its own filesystem hierarchy
 (try ``os.listdir('/')``).  For example, you would run an untrusted
-script as follows::
+script as follows:
+
+.. code-block:: bash
 
    mkdir virtualtmp
    cp untrusted.py virtualtmp/
@@ -150,9 +156,6 @@
 .. _`Building from source`: download.html#building-from-source
 .. _`our documentation site`: http://pypy.readthedocs.org/en/latest/sandbox.html
 
-
-
-
 .. _`the cli-jit branch`: https://bitbucket.org/pypy/pypy/src/cli-jit
 .. _`contact us`: contact.html
 .. _Prolog: https://bitbucket.org/cfbolz/pyrolog/
diff --git a/pages/index.rst b/pages/index.rst
--- a/pages/index.rst
+++ b/pages/index.rst
@@ -7,35 +7,76 @@
 .. description: 
 .. type: text
 
-PyPy is a `fast`_, `compliant`_ alternative implementation of the `Python`_
-language (2.7.13 and 3.6.9). It has several advantages and distinct features:
+.. raw:: html
 
-  * **Speed:** thanks to its Just-in-Time compiler, Python programs
-    often run `faster`_ on PyPy.  `(What is a JIT compiler?)`_
+    <div class="row">
+    <div class="column pb-4">
 
-    "If you want your code to run faster, you should probably just use PyPy."
+.. image:: images/pypy-logo.svg
+    :alt: PyPy logo
+    :width: 350px
+
+A `fast`_, `compliant`_ alternative implementation of `Python`_
+
+.. class:: button
+
+    `Get Started`_ : Download and install
+
+.. class:: button
+
+    `What is PyPy`_ : Features
+
+.. class:: button
+
+    `Documentation`_ (external link)
+
+.. _`Get Started`: download.html
+.. _`What is PyPy`: features.html
+.. _`Documentation`: https://doc.pypy.org
+
+.. raw:: html
+
+    </div>
+    <div class="column pb-4" "flex-basis: 400px">
+
+.. class:: small
+
+On average, PyPy is **4.4 times faser** than CPython
+
+.. figure:: images/pypy_speed_graph.png
+    :alt: PyPy vs. Python speed comparison graph"
+    :figclass: text-sm
+
+    PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
+    better. Based on he geometric average of all benchmarks
+
+.. raw:: html
+
+    </div>
+    </div>
+
+::
+
+    "If you want your code to run faster,
+    you should probably just use PyPy."
     -- Guido van Rossum (creator of Python)
 
-  * **Memory usage:** memory-hungry Python programs (several hundreds of
-    MBs or more) might end up taking `less space`_ than they do in CPython.
+**Advantages and distinct Features**
 
-  * **Compatibility:** PyPy is `highly compatible`_ with existing python code.
-    It supports `cffi`_ and can run popular python libraries like `twisted`_
-    and `django`_.
+* **Speed:** thanks to its Just-in-Time compiler, Python programs
+  often run `faster`_ on PyPy.  `(What is a JIT compiler?)`_
 
-  * **Stackless:** PyPy comes by default with support for `stackless mode`_,
-    providing micro-threads for massive concurrency.
+* **Memory usage:** memory-hungry Python programs (several hundreds of
+  MBs or more) might end up taking `less space`_ than they do in CPython.
 
-  * As well as other `features`_.
+* **Compatibility:** PyPy is `highly compatible`_ with existing python code.
+  It supports `cffi`_, `cppyy`_, and can run popular python libraries like
+  `twisted`_ and `django`_.
 
-.. class:: download
+* **Stackless:** PyPy comes by default with support for `stackless mode`_,
+  providing micro-threads for massive concurrency.
 
-`Download and try out PyPy`__
-
-.. __: download.html
-
-Want to know more? A good place to start is our detailed `speed`_ and
-`compatibility`_ reports!
+* As well as other `features`_.
 
 .. _`stackless mode`: features.html#stackless
 .. _`Python`: http://python.org/
@@ -48,6 +89,7 @@
 .. _`twisted`: https://twistedmatrix.com/
 .. _`django`: https://www.djangoproject.com/
 .. _`cffi`: https://cffi.readthedocs.org
+.. _`cppyy`: https://cppyy.readthedocs.org
 .. _`features`: features.html
 .. _`less space`: http://morepypy.blogspot.com/2009/10/gc-improvements.html
 .. _`highly compatible`: compat.html
diff --git a/themes/pypy/assets/css/styles.css b/themes/pypy/assets/css/styles.css
--- a/themes/pypy/assets/css/styles.css
+++ b/themes/pypy/assets/css/styles.css
@@ -1,1070 +1,143 @@
-/*! sanitize.css v8.0.0 | CC0 License | github.com/csstools/sanitize.css */
-*,
-::before,
-::after {
-  background-repeat: no-repeat;
-  box-sizing: border-box; }
+body {
+    color: #383939;
+}
 
-::before,
-::after {
-  text-decoration: inherit;
-  vertical-align: inherit; }
+:visited {
+    color: darkolivegreen;
+}
 
-html {
-  cursor: default;
-  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-  line-height: 1.15;
-  -moz-tab-size: 4;
-  tab-size: 4;
-  -ms-text-size-adjust: 100%;
-  -webkit-text-size-adjust: 100%;
-  word-break: break-word; }
+.reference:hover {
+    color: white;
+    background-color: #d0dad5;
+}
 
-body {
-  margin: 0; }
+/* Add a black background color to the top navigation */
+.topnav {
+  /* background-color: #333; */
+  overflow: hidden;
+}
 
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0; }
+/* Style the links inside the navigation bar */
+.topnav a {
+  float: left;
+  display: block;
+  color: #383939;
+  text-align: center;
+  padding: 14px 16px;
+  text-decoration: none;
+  font-size: 17px;
+}
 
-hr {
-  height: 0;
-  overflow: visible; }
+/* Add an active class to highlight the current page */
+.active {
+  background-color: #4CAF50;
+  color: white;
+}
 
-main {
-  display: block; }
+/* Hide the link that should open and close the topnav on small screens */
+.topnav .icon {
+  display: none;
+}
 
-nav ol,
-nav ul {
-  list-style: none; }
+/* Dropdown container - needed to position the dropdown content */
+.dropdown {
+  float: left;
+  overflow: hidden;
+}
 
-pre {
-  font-family: Menlo, Consolas, Roboto Mono, Ubuntu Monospace, Noto Mono, Oxygen Mono, Liberation Mono, monospace;
-  font-size: 1em; }
+/* Style the dropdown button to fit inside the topnav */
+.dropdown .dropbtn {
+  font-size: 17px;
+  border: none;
+  outline: none;
+  color: #383939;
+  padding: 14px 16px;
+  background-color: inherit;
+  font-family: inherit;
+  margin: 0;
+}
 
-a {
-  background-color: transparent; }
+/* Style the dropdown content (hidden by default) */
+.dropdown-content {
+  display: none;
+  position: absolute;
+  background-color: #f9f9f9;
+  min-width: 160px;
+  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+  z-index: 1;
+}
 
-abbr[title] {
-  text-decoration: underline;
-  text-decoration: underline dotted; }
+/* Style the links inside the dropdown */
+.dropdown-content a {
+  float: none;
+  color: black;
+  padding: 12px 16px;
+  text-decoration: none;
+  display: block;
+  text-align: left;
+}
 
-b,
-strong {
-  font-weight: bolder; }
+/* Add a dark background on topnav links and the dropdown button on hover */
+.topnav a:hover, .dropdown:hover .dropbtn {
+  background-color: #555;
+  color: white;
+}
 
-code,
-kbd,
-samp {
-  font-family: Menlo, Consolas, Roboto Mono, Ubuntu Monospace, Noto Mono, Oxygen Mono, Liberation Mono, monospace;
-  font-size: 1em; }
+/* Add a grey background to dropdown links on hover */
+.dropdown-content a:hover {
+  background-color: #ddd;
+  color: black;
+}
 
-small {
-  font-size: 80%; }
+/* Show the dropdown menu when the user moves the mouse over the dropdown button */
+.dropdown:hover .dropdown-content {
+  display: block;
+}
 
-::-moz-selection {
-  background-color: #b3d4fc;
-  color: #000;
-  text-shadow: none; }
+/* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
+ at media screen and (max-width: 600px) {
+  .topnav a:not(:first-child), .dropdown .dropbtn {
+    display: none;
+  }
+  .topnav a.icon {
+    float: right;
+    display: block;
+  }
+}
 
-::selection {
-  background-color: #b3d4fc;
-  color: #000;
-  text-shadow: none; }
+/* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */
+ at media screen and (max-width: 600px) {
+  .topnav.responsive {position: relative;}
+  .topnav.responsive a.icon {
+    position: absolute;
+    right: 0;
+    top: 0;
+  }
+  .topnav.responsive a {
+    float: none;
+    display: block;
+    text-align: left;
+  }
+  .topnav.responsive .dropdown {float: none;}
+  .topnav.responsive .dropdown-content {position: relative;}
+  .topnav.responsive .dropdown .dropbtn {
+    display: block;
+    width: 100%;
+    text-align: left;
+  }
 
-audio,
-canvas,
-iframe,
-img,
-svg,
-video {
-  vertical-align: middle; }
 
-audio,
-video {
-  display: inline-block; }
-
-audio:not([controls]) {
-  display: none;
-  height: 0; }
-
-img {
-  border-style: none; }
-
-svg:not([fill]) {
-  fill: currentColor; }
-
-svg:not(:root) {
-  overflow: hidden; }
-
-table {
-  border-collapse: collapse; }
-
-button,
-input,
-select,
-textarea {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit; }
-
-button,
-input,
-select {
-  margin: 0; }
-
-button {
-  overflow: visible;
-  text-transform: none; }
-
-button,
-[type="button"],
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button; }
-
-fieldset {
-  padding: 0.35em 0.75em 0.625em; }
-
-input {
-  overflow: visible; }
-
-legend {
-  color: inherit;
-  display: table;
-  max-width: 100%;
-  white-space: normal; }
-
-progress {
-  display: inline-block;
-  vertical-align: baseline; }
-
-select {
-  text-transform: none; }
-
-textarea {
-  margin: 0;
-  overflow: auto;
-  resize: vertical; }
-
-[type="checkbox"],
-[type="radio"] {
-  padding: 0; }
-
-[type="search"] {
-  -webkit-appearance: textfield;
-  outline-offset: -2px; }
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
-  height: auto; }
-
-::-webkit-input-placeholder {
-  color: inherit;
-  opacity: 0.54; }
-
-::-webkit-search-decoration {
-  -webkit-appearance: none; }
-
-::-webkit-file-upload-button {
-  -webkit-appearance: button;
-  font: inherit; }
-
-::-moz-focus-inner {
-  border-style: none;
-  padding: 0; }
-
-:-moz-focusring {
-  outline: 1px dotted ButtonText; }
-
-details {
-  display: block; }
-
-dialog {
-  background-color: white;
-  border: solid;
-  color: black;
-  display: block;
-  height: -moz-fit-content;
-  height: -webkit-fit-content;
-  height: fit-content;
-  left: 0;
-  margin: auto;
-  padding: 1em;
-  position: absolute;
-  right: 0;
-  width: -moz-fit-content;
-  width: -webkit-fit-content;
-  width: fit-content; }
-
-dialog:not([open]) {
-  display: none; }
-
-summary {
-  display: list-item; }
-
-canvas {
-  display: inline-block; }
-
-template {
-  display: none; }
-
-a,
-area,
-button,
-input,
-label,
-select,
-summary,
-textarea,
-[tabindex] {
-  -ms-touch-action: manipulation;
-  touch-action: manipulation; }
-
-[hidden] {
-  display: none; }
-
-[aria-busy="true"] {
-  cursor: progress; }
-
-[aria-controls] {
-  cursor: pointer; }
-
-[aria-disabled="true"],
-[disabled] {
-  cursor: not-allowed; }
-
-[aria-hidden="false"][hidden]:not(:focus) {
-  clip: rect(0, 0, 0, 0);
-  display: inherit;
-  position: absolute; }
-
-/*! Based on https://github.com/milligram/milligram */
-*,
-*:after,
-*:before {
-  box-sizing: inherit; }
-
-html {
-  box-sizing: border-box;
-  font-size: 62.5%; }
-
-body {
-  font-size: 1.6em;
-  font-weight: 300;
-  letter-spacing: .01em;
-  line-height: 1.6;
-  background-color: #fcfcfc; }
-
-body {
-  color: #4B545C;
-  font-family: 'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; }
-
-b,
-strong {
-  font-weight: bold; }
-
-p {
-  margin-top: 0; }
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  font-weight: 300;
-  letter-spacing: -.1rem;
-  margin-bottom: 2.0rem;
-  margin-top: 0; }
-
-h1 {
-  font-size: 4.6rem;
-  line-height: 1.2; }
-
-h2 {
-  font-size: 3.6rem;
-  line-height: 1.25; }
-
-h3 {
-  font-size: 2.8rem;
-  line-height: 1.3; }
-
-h4 {
-  font-size: 2.2rem;
-  letter-spacing: -.08rem;
-  line-height: 1.35; }
-
-h5 {
-  font-size: 1.8rem;
-  letter-spacing: -.05rem;
-  line-height: 1.5; }
-
-h6 {
-  font-size: 1.6rem;
-  letter-spacing: 0;
-  line-height: 1.4; }
-
-blockquote {
-  border-left: 0.3rem solid #d1d1d1;
-  margin-left: 0;
-  margin-right: 0;
-  padding: 1rem 1.5rem; }
-  blockquote *:last-child {
-    margin-bottom: 0; }
-
-.button,
-button,
-input[type='button'],
-input[type='reset'],
-input[type='submit'] {
-  background-color: #1890ff;
-  border: 0.1rem solid #1890ff;
-  border-radius: .4rem;
-  color: #fcfcfc;
-  cursor: pointer;
-  display: inline-block;
-  font-size: 1.1rem;
-  font-weight: 700;
-  height: 3.8rem;
-  letter-spacing: .1rem;
-  line-height: 3.8rem;
-  padding: 0 3.0rem;
-  text-align: center;
-  text-decoration: none;
-  text-transform: uppercase;
-  white-space: nowrap;
-  -webkit-box-shadow: 0px 5px 10px 0px rgba(24, 144, 255, 0.2);
-    -webkit-box-shadow--moz-box-shadow: 0px 5px 10px 0px rgba(24, 144, 255, 0.2);
-    -webkit-box-shadow-box-shadow: 0px 5px 10px 0px rgba(24, 144, 255, 0.2); }
-  .button:focus, .button:hover,
-  button:focus,
-  button:hover,
-  input[type='button']:focus,
-  input[type='button']:hover,
-  input[type='reset']:focus,
-  input[type='reset']:hover,
-  input[type='submit']:focus,
-  input[type='submit']:hover {
-    background-color: #4B545C;
-    border-color: #4B545C;
-    color: #fcfcfc;
-    outline: 0;
-    -webkit-box-shadow: 0px 5px 10px 0px rgba(75, 84, 92, 0.2);
-      -webkit-box-shadow--moz-box-shadow: 0px 5px 10px 0px rgba(75, 84, 92, 0.2);
-      -webkit-box-shadow-box-shadow: 0px 5px 10px 0px rgba(75, 84, 92, 0.2); }
-  .button[disabled],
-  button[disabled],
-  input[type='button'][disabled],
-  input[type='reset'][disabled],
-  input[type='submit'][disabled] {
-    cursor: default;
-    opacity: .5; }
-    .button[disabled]:focus, .button[disabled]:hover,
-    button[disabled]:focus,
-    button[disabled]:hover,
-    input[type='button'][disabled]:focus,
-    input[type='button'][disabled]:hover,
-    input[type='reset'][disabled]:focus,
-    input[type='reset'][disabled]:hover,
-    input[type='submit'][disabled]:focus,
-    input[type='submit'][disabled]:hover {
-      background-color: #1890ff;
-      border-color: #1890ff; }
-  .button.button-outline,
-  button.button-outline,
-  input[type='button'].button-outline,
-  input[type='reset'].button-outline,
-  input[type='submit'].button-outline {
-    background-color: transparent;
-    color: #1890ff; }
-    .button.button-outline:focus, .button.button-outline:hover,
-    button.button-outline:focus,
-    button.button-outline:hover,
-    input[type='button'].button-outline:focus,
-    input[type='button'].button-outline:hover,
-    input[type='reset'].button-outline:focus,
-    input[type='reset'].button-outline:hover,
-    input[type='submit'].button-outline:focus,
-    input[type='submit'].button-outline:hover {
-      background-color: transparent;
-      border-color: #4B545C;
-      color: #4B545C; }
-    .button.button-outline[disabled]:focus, .button.button-outline[disabled]:hover,
-    button.button-outline[disabled]:focus,
-    button.button-outline[disabled]:hover,
-    input[type='button'].button-outline[disabled]:focus,
-    input[type='button'].button-outline[disabled]:hover,
-    input[type='reset'].button-outline[disabled]:focus,
-    input[type='reset'].button-outline[disabled]:hover,
-    input[type='submit'].button-outline[disabled]:focus,
-    input[type='submit'].button-outline[disabled]:hover {
-      border-color: inherit;
-      color: #1890ff; }
-  .button.button-clear,
-  button.button-clear,
-  input[type='button'].button-clear,
-  input[type='reset'].button-clear,
-  input[type='submit'].button-clear {
-    background-color: transparent;
-    border-color: transparent;
-    color: #1890ff; }
-    .button.button-clear:focus, .button.button-clear:hover,
-    button.button-clear:focus,
-    button.button-clear:hover,
-    input[type='button'].button-clear:focus,
-    input[type='button'].button-clear:hover,
-    input[type='reset'].button-clear:focus,
-    input[type='reset'].button-clear:hover,
-    input[type='submit'].button-clear:focus,
-    input[type='submit'].button-clear:hover {
-      background-color: transparent;
-      border-color: transparent;
-      color: #4B545C; }
-    .button.button-clear[disabled]:focus, .button.button-clear[disabled]:hover,
-    button.button-clear[disabled]:focus,
-    button.button-clear[disabled]:hover,
-    input[type='button'].button-clear[disabled]:focus,
-    input[type='button'].button-clear[disabled]:hover,
-    input[type='reset'].button-clear[disabled]:focus,
-    input[type='reset'].button-clear[disabled]:hover,
-    input[type='submit'].button-clear[disabled]:focus,
-    input[type='submit'].button-clear[disabled]:hover {
-      color: #1890ff; }
-
-code {
-  background: #f4f5f6;
-  border-radius: .4rem;
-  font-size: 86%;
-  margin: 0 .2rem;
-  padding: 0.8rem 1rem;
-  white-space: normal; }
-
-pre {
-  border-left: 0.3rem solid #1890ff;
-  padding-left: 2rem;
-  background: #f4f5f6;
-  overflow-y: hidden; }
-  pre > code {
-    border-radius: 0;
-    display: block;
-    padding: 1rem 1.5rem;
-    white-space: pre; }
-
-hr {
-  border: 0;
-  border-top: 0.1rem solid #d1d1d1;
-  margin: 3.0rem 0; }
-
-input[type='email'],
-input[type='number'],
-input[type='password'],
-input[type='search'],
-input[type='tel'],
-input[type='text'],
-input[type='url'],
-input[type='color'],
-input[type='date'],
-input[type='month'],
-input[type='week'],
-input[type='datetime'],
-input[type='datetime-local'],
-input:not([type]),
-textarea,
-select {
-  -webkit-appearance: none;
-    -webkit-appearance--moz-appearance: none;
-  appearance: none;
-  background-color: transparent;
-  color: #4B545C;
-  border: 0.1rem solid #d1d1d1;
-  border-radius: .4rem;
-  box-shadow: none;
-  box-sizing: inherit;
-  height: 3.8rem;
-  padding: .6rem 1.0rem;
-  width: 100%; }
-  input[type='email']:focus,
-  input[type='number']:focus,
-  input[type='password']:focus,
-  input[type='search']:focus,
-  input[type='tel']:focus,
-  input[type='text']:focus,
-  input[type='url']:focus,
-  input[type='color']:focus,
-  input[type='date']:focus,
-  input[type='month']:focus,
-  input[type='week']:focus,
-  input[type='datetime']:focus,
-  input[type='datetime-local']:focus,
-  input:not([type]):focus,
-  textarea:focus,
-  select:focus {
-    border-color: #1890ff;
-    outline: 0; }
-
-select {
-  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%23d1d1d1" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>') center right no-repeat;
-  padding-right: 3.0rem; }
-  select:focus {
-    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="%239b4dca" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>'); }
-
-textarea {
-  min-height: 6.5rem; }
-
-label,
-legend {
-  display: block;
-  font-size: 1.6rem;
-  font-weight: 700;
-  margin-bottom: .5rem; }
-
-fieldset {
-  border-width: 0;
-  padding: 0; }
-
-input[type='checkbox'],
-input[type='radio'] {
-  display: inline; }
-
-.label-inline {
-  display: inline-block;
-  font-weight: normal;
-  margin-left: .5rem; }
-
-a {
-  color: #1890ff;
-  text-decoration: none; }
-  a:focus, a:hover {
-    color: #4B545C; }
-
-dl,
-ol,
-ul {
-  list-style: none;
-  margin-top: 0;
-  padding-left: 3rem; }
-  dl dl,
-  dl ol,
-  dl ul,
-  ol dl,
-  ol ol,
-  ol ul,
-  ul dl,
-  ul ol,
-  ul ul {
-    font-size: 90%;
-    margin: 1.5rem 0 1.5rem 3.0rem; }
-
-ol {
-  list-style: decimal inside;
-  list-style-position: outside; }
-
-ul {
-  list-style: circle inside;
-  list-style-position: outside; }
-
-.button,
-button,
-dd,
-dt,
-li {
-  margin-bottom: 1.0rem; }
-
-fieldset,
-input,
-select,
-textarea {
-  margin-bottom: 1.5rem; }
-
-blockquote,
-dl,
-figure,
-form,
-ol,
-p,
-pre,
-table,
-ul {
-  margin-bottom: 2.5rem; }
-
-table {
-  border-spacing: 0;
-  width: 100%; }
-
-td,
-th {
-  border-bottom: 0.1rem solid #e1e1e1;
-  padding: 1.2rem 1.5rem;
-  text-align: left; }
-  td:first-child,
-  th:first-child {
-    padding-left: 0; }
-  td:last-child,
-  th:last-child {
-    padding-right: 0; }
-
- at media screen and (max-width: 40rem) {
-  table {
-    border-spacing: 0;
-    display: flex;
-    width: 100%; }
-    table thead {
-      border-right: solid 0.1rem #e1e1e1; }
-      table thead td,
-      table thead th {
-        padding-left: 0; }
-        table thead td:first-child,
-        table thead th:first-child {
-          padding-left: 0; }
-        table thead td:last-child,
-        table thead th:last-child {
-          padding-right: 1.2rem; }
-    table tbody {
-      display: flex;
-      overflow-x: auto;
-      white-space: nowrap; }
-      table tbody tr {
-        border-right: solid 0.1rem #e1e1e1; }
-        table tbody tr:last-child {
-          border-right: none; }
-    table td,
-    table th {
-      display: block; }
-      table td:first-child,
-      table th:first-child {
-        padding-left: 1.2rem; }
-      table td:last-child,
-      table th:last-child {
-        padding-right: 1.2rem; } }
-
-img {
-  max-width: 100%; }
-
-.p-0 {
-  padding: 0; }
-
-.pt-0 {
-  padding-top: 0; }
-
-.pb-0 {
-  padding-bottom: 0; }
-
-.pl-0 {
-  padding-left: 0; }
-
-.pr-0 {
-  padding-right: 0; }
-
-.py-0 {
-  padding-top: 0;
-  padding-bottom: 0; }
-
-.px-0 {
-  padding-left: 0;
-  padding-right: 0; }
-
-.p-1 {
-  padding: 1rem; }
-
-.pt-1 {
-  padding-top: 1rem; }
-
-.pb-1 {
-  padding-bottom: 1rem; }
-
-.pl-1 {
-  padding-left: 1rem; }
-
-.pr-1 {
-  padding-right: 1rem; }
-
-.py-1 {
-  padding-top: 1rem;
-  padding-bottom: 1rem; }
-
-.px-1 {
-  padding-left: 1rem;
-  padding-right: 1rem; }
-
-.p-2 {
-  padding: 2rem; }
-
-.pt-2 {
-  padding-top: 2rem; }
-
-.pb-2 {
-  padding-bottom: 2rem; }
-
-.pl-2 {
-  padding-left: 2rem; }
-
-.pr-2 {
-  padding-right: 2rem; }
-
-.py-2 {
-  padding-top: 2rem;
-  padding-bottom: 2rem; }
-
-.px-2 {
-  padding-left: 2rem;
-  padding-right: 2rem; }
-
-.p-3 {
-  padding: 3rem; }
-
-.pt-3 {
-  padding-top: 3rem; }
-
-.pb-3 {
-  padding-bottom: 3rem; }
-
-.pl-3 {
-  padding-left: 3rem; }
-
-.pr-3 {
-  padding-right: 3rem; }
-
-.py-3 {
-  padding-top: 3rem;
-  padding-bottom: 3rem; }
-
-.px-3 {
-  padding-left: 3rem;
-  padding-right: 3rem; }
-
-.p-4 {
-  padding: 6rem; }
-
-.pt-4 {
-  padding-top: 6rem; }
-
-.pb-4 {
-  padding-bottom: 6rem; }
-
-.pl-4 {
-  padding-left: 6rem; }
-
-.pr-4 {
-  padding-right: 6rem; }
-
-.py-4 {
-  padding-top: 6rem;
-  padding-bottom: 6rem; }
-
-.px-4 {
-  padding-left: 6rem;
-  padding-right: 6rem; }
-
-.p-5 {
-  padding: 8rem; }
-
-.pt-5 {
-  padding-top: 8rem; }
-
-.pb-5 {
-  padding-bottom: 8rem; }
-
-.pl-5 {
-  padding-left: 8rem; }
-
-.pr-5 {
-  padding-right: 8rem; }
-
-.py-5 {
-  padding-top: 8rem;
-  padding-bottom: 8rem; }
-
-.px-5 {
-  padding-left: 8rem;
-  padding-right: 8rem; }
-
-.m-0 {
-  margin: 0; }
-
-.mt-0 {
-  margin-top: 0; }
-
-.mb-0 {
-  margin-bottom: 0; }
-
-.ml-0 {
-  margin-left: 0; }
-
-.mr-0 {
-  margin-right: 0; }
-
-.my-0 {
-  margin-top: 0;
-  margin-bottom: 0; }
-
-.mx-0 {
-  margin-left: 0;
-  margin-right: 0; }
-
-.m-1 {
-  margin: 1rem; }
-
-.mt-1 {
-  margin-top: 1rem; }
-
-.mb-1 {
-  margin-bottom: 1rem; }
-
-.ml-1 {
-  margin-left: 1rem; }
-
-.mr-1 {
-  margin-right: 1rem; }
-
-.my-1 {
-  margin-top: 1rem;
-  margin-bottom: 1rem; }
-
-.mx-1 {
-  margin-left: 1rem;
-  margin-right: 1rem; }
-
-.m-2 {
-  margin: 2rem; }
-
-.mt-2 {
-  margin-top: 2rem; }
-
-.mb-2 {
-  margin-bottom: 2rem; }
-
-.ml-2 {
-  margin-left: 2rem; }
-
-.mr-2 {
-  margin-right: 2rem; }
-
-.my-2 {
-  margin-top: 2rem;
-  margin-bottom: 2rem; }
-
-.mx-2 {
-  margin-left: 2rem;
-  margin-right: 2rem; }
-
-.m-3 {
-  margin: 3rem; }
-
-.mt-3 {
-  margin-top: 3rem; }
-
-.mb-3 {
-  margin-bottom: 3rem; }
-
-.ml-3 {
-  margin-left: 3rem; }
-
-.mr-3 {
-  margin-right: 3rem; }
-
-.my-3 {
-  margin-top: 3rem;
-  margin-bottom: 3rem; }
-
-.mx-3 {
-  margin-left: 3rem;
-  margin-right: 3rem; }
-
-.m-4 {
-  margin: 6rem; }
-
-.mt-4 {
-  margin-top: 6rem; }
-
-.mb-4 {
-  margin-bottom: 6rem; }
-
-.ml-4 {
-  margin-left: 6rem; }
-
-.mr-4 {
-  margin-right: 6rem; }
-
-.my-4 {
-  margin-top: 6rem;
-  margin-bottom: 6rem; }
-
-.mx-4 {
-  margin-left: 6rem;
-  margin-right: 6rem; }
-
-.m-5 {
-  margin: 8rem; }
-
-.mt-5 {
-  margin-top: 8rem; }
-
-.mb-5 {
-  margin-bottom: 8rem; }
-
-.ml-5 {
-  margin-left: 8rem; }
-
-.mr-5 {
-  margin-right: 8rem; }
-
-.my-5 {
-  margin-top: 8rem;
-  margin-bottom: 8rem; }
-
-.mx-5 {
-  margin-left: 8rem;
-  margin-right: 8rem; }
-
-.mx-auto {
-  margin-left: auto;
-  margin-right: auto; }
-
-.text-justify {
-  text-align: justify; }
-
-.text-left {
-  text-align: left; }
-
-.text-center {
-  text-align: center; }
-
-.text-left {
-  text-align: right; }
-
-.text-sm {
-  font-size: 1rem; }
-
-.text-lg {
-  font-size: 2rem; }
-
-.text-xl {
-  font-size: 2.5rem; }
-
-.display-none {
-  display: none; }
-
-.display-inline {
-  display: inline; }
-
-.display-inline-block {
-  display: inline-block; }
-
-.display-block {
-  display: block; }
-
-.display-flex {
-  display: flex; }
-
-.display-inline-flex {
-  display: inline-flex; }
-
-.display-table {
-  display: table; }
-
-.clearfix:after {
-  clear: both;
-  content: ' ';
-  display: table; }
-
-.float-left {
-  float: left; }
-
-.float-right {
-  float: right; }
-
-.container {
-  margin: 0 auto;
-  max-width: 112.0rem;
-  padding: 0 2.0rem;
-  position: relative;
-  width: 100%; }
-
-.row {
+} .row {
   display: flex;
   flex-direction: column;
   padding: 0;
   width: 100%; }
-  .row.row-no-padding {
-    padding: 0; }
-    .row.row-no-padding > .column {
-      padding: 0; }
-  .row.row-wrap {
-    flex-wrap: wrap; }
-  .row.row-top {
-    align-items: flex-start; }
-  .row.row-bottom {
-    align-items: flex-end; }
-  .row.row-center {
-    align-items: center; }
-  .row.row-stretch {
-    align-items: stretch; }
-  .row.row-baseline {
-    align-items: baseline; }
   .row .column {
     display: block;
     flex: 1 1 auto;
     margin-left: 0;
     max-width: 100%;
     width: 100%; }
-    .row .column.column-offset-10 {
-      margin-left: 10%; }
-    .row .column.column-offset-20 {
-      margin-left: 20%; }
-    .row .column.column-offset-25 {
-      margin-left: 25%; }
-    .row .column.column-offset-33, .row .column.column-offset-34 {
-      margin-left: 33.3333%; }
-    .row .column.column-offset-50 {
-      margin-left: 50%; }
-    .row .column.column-offset-66, .row .column.column-offset-67 {
-      margin-left: 66.6666%; }
-    .row .column.column-offset-75 {
-      margin-left: 75%; }
-    .row .column.column-offset-80 {
-      margin-left: 80%; }
-    .row .column.column-offset-90 {
-      margin-left: 90%; }
-    .row .column.column-10 {
-      flex: 0 0 10%;
-      max-width: 10%; }
-    .row .column.column-20 {
-      flex: 0 0 20%;
-      max-width: 20%; }
-    .row .column.column-25 {
-      flex: 0 0 25%;
-      max-width: 25%; }
-    .row .column.column-33, .row .column.column-34 {
-      flex: 0 0 33.3333%;
-      max-width: 33.3333%; }
-    .row .column.column-40 {
-      flex: 0 0 40%;
-      max-width: 40%; }
-    .row .column.column-50 {
-      flex: 0 0 50%;
-      max-width: 50%; }
-    .row .column.column-60 {
-      flex: 0 0 60%;
-      max-width: 60%; }
-    .row .column.column-66, .row .column.column-67 {
-      flex: 0 0 66.6666%;
-      max-width: 66.6666%; }
-    .row .column.column-75 {
-      flex: 0 0 75%;
-      max-width: 75%; }
-    .row .column.column-80 {
-      flex: 0 0 80%;
-      max-width: 80%; }
-    .row .column.column-90 {
-      flex: 0 0 90%;
-      max-width: 90%; }
-    .row .column .column-top {
-      align-self: flex-start; }
-    .row .column .column-bottom {
-      align-self: flex-end; }
-    .row .column .column-center {
-      align-self: center; }
 
 @media (min-width: 40rem) {
   .row {
@@ -1075,313 +148,54 @@
       margin-bottom: inherit;
       padding: 0 1.0rem; } }
 
- at font-face {
-  font-family: 'ico';
-  src: url("../font/ico.eot?13319731");
-  src: url("../font/ico.eot?13319731#iefix") format("embedded-opentype"), url("../font/ico.woff2?13319731") format("woff2"), url("../font/ico.woff?13319731") format("woff"), url("../font/ico.ttf?13319731") format("truetype"), url("../font/ico.svg?13319731#ico") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
-/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
-/*
-  @media screen and (-webkit-min-device-pixel-ratio:0) {
-    @font-face {
-      font-family: 'ico';
-      src: url('../font/ico.svg?13319731#ico') format('svg');
-    }
-  }
-  */
-[class^="icon-"]:before, [class*=" icon-"]:before {
-  font-family: "ico";
-  font-style: normal;
-  font-weight: normal;
-  speak: none;
-  display: inline-block;
-  text-decoration: inherit;
-  width: 1em;
-  margin-right: .2em;
-  text-align: center;
-  /* opacity: .8; */
-  /* For safety - reset parent styles, that can break glyph codes*/
-  font-variant: normal;
-  text-transform: none;
-  /* fix buttons height, for twitter bootstrap */
-  line-height: 1em;
-  /* Animation center compensation - margins should be symmetric */
-  /* remove if not needed */
-  margin-left: .2em;
-  /* you can be more comfortable with increased icons size */
-  /* font-size: 120%; */
-  /* Font smoothing. That was taken from TWBS */
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  /* Uncomment for 3D effect */
-  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ }
-
-/*
-     Animation example, for spinners
-  */
-.animate-spin {
-  -moz-animation: spin 2s infinite linear;
-  -o-animation: spin 2s infinite linear;
-  -webkit-animation: spin 2s infinite linear;
-  animation: spin 2s infinite linear;
-  display: inline-block; }
-
- at -moz-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-    -o-transform: rotate(0deg);
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg); }
-  100% {
-    -moz-transform: rotate(359deg);
-    -o-transform: rotate(359deg);
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg); } }
-
- at -webkit-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-    -o-transform: rotate(0deg);
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg); }
-  100% {
-    -moz-transform: rotate(359deg);
-    -o-transform: rotate(359deg);
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg); } }
-
- at -o-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-    -o-transform: rotate(0deg);
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg); }
-  100% {
-    -moz-transform: rotate(359deg);
-    -o-transform: rotate(359deg);
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg); } }
-
- at -ms-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-    -o-transform: rotate(0deg);
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg); }
-  100% {
-    -moz-transform: rotate(359deg);
-    -o-transform: rotate(359deg);
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg); } }
-
- at keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-    -o-transform: rotate(0deg);
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg); }
-  100% {
-    -moz-transform: rotate(359deg);
-    -o-transform: rotate(359deg);
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg); } }
-
-.icon-menu-outline:before {
-  content: '\e800'; }
-
-.icon-github-circled:before {
-  content: '\f09b'; }
-
-.icon-rss:before {
-  content: '\f09e'; }
-
-.icon-menu:before {
-  content: '\f0c9'; }
-
-.icon-spinner:before {
-  content: '\f110'; }
-
-.icon-code:before {
-  content: '\f121'; }
-
-.icon-bitbucket:before {
-  content: '\f171'; }
-
-.icon-circle-notch:before {
-  content: '\f1ce'; }
-
-.icon-github-text:before {
-  content: '\f307'; }
-
-.navbar {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: space-between;
-  margin-top: 2rem;
-  padding-left: 0;
-  padding-inline-start: 0; }
-
-.navbar-item {
-  padding: 0.5rem 0.66rem;
-  margin: 0 0.2rem; }
-
-.nav-item-active {
-  border-radius: .4rem;
-  border: 0.1rem solid #1890ff; }
-  .nav-item-active:hover {
-    border-color: #4B545C; }
-
-.navbar-menu {


More information about the pypy-commit mailing list