This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch update/theme
in repository https://gitbox.apache.org/repos/asf/sis-site.git

commit c6d5bcb2def1e0c9ac72e25d8f54fa97db8f4cbe
Author: jsorel <[email protected]>
AuthorDate: Wed Nov 4 10:09:44 2026 +0100

    Logo and theme update
---
 content/_index.md                  |  18 ++
 layouts/_default/baseof.html       |  12 +-
 static/images/apple-touch-icon.png | Bin 0 -> 13318 bytes
 static/images/favicon.png          | Bin 0 -> 2395 bytes
 static/images/logo-apache-sis.svg  | 112 +++++++++
 static/images/sis-hero.svg         | 226 +++++++++++++++++++
 static/images/topbar-pattern.svg   |  12 +
 static/sis.css                     | 451 +++++++++++++++++++++++++++----------
 static/syntax.css                  |  97 ++++----
 9 files changed, 760 insertions(+), 168 deletions(-)

diff --git a/content/_index.md b/content/_index.md
index 2d65c681..aca0c2bb 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -2,6 +2,24 @@
 title: The Apache SIS™ library
 ---
 
+<div class="hero">
+  <img class="hero-globe" src="/images/sis-hero.svg" alt="Globe with a 
discrete global grid, extruded data cells, satellites in orbit and a 
timestamped flight from Paris to New York"/>
+  <div class="hero-text">
+    <p class="hero-tagline">Space <span>and</span> time, in Java.</p>
+    <ul>
+      <li>Coordinate reference systems and operations, backed by the EPSG 
geodetic dataset.</li>
+      <li>Temporal and multi-dimensional data: time axes, 4D envelopes, moving 
features.</li>
+      <li>Rasters and features from GeoTIFF, netCDF, GPX, SQL databases and 
more.</li>
+      <li>Discrete global grid systems, 2D and 3D geometries.</li>
+      <li>Metadata and services following OGC and ISO standards.</li>
+    </ul>
+    <p class="hero-buttons">
+      <a class="button" href="/downloads.html">Download</a>
+      <a class="button secondary" href="/howto/index.html">How to…</a>
+    </p>
+  </div>
+</div>
+
 Apache Spatial Information System (SIS) is a free software, Java language 
library for developing geospatial applications.
 SIS provides data structures for geographic features and associated metadata 
along with methods to manipulate those data structures.
 The library is an implementation of [GeoAPI 3.0.2][geoapi] interfaces and can 
be used for desktop or server applications.
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 32526e8e..61f266c7 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -20,12 +20,17 @@
     <title>Apache SIS - {{ .Title }}</title>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#7C297D">
+    <link rel="icon" type="image/png" href="/images/favicon.png">
+    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
     <link rel="stylesheet" type="text/css" media="screen" href="/sis.css">
     <link rel="stylesheet" type="text/css" media="screen" href="/syntax.css">
   </head>
   <body>
-    <div class="topbar">
-      <a class="topbar-brand" href="/index.html">Apache <abbr title="Spatial 
Information System">SIS</abbr>™</a>
+    <header class="topbar">
+      <a class="topbar-brand" href="/index.html">
+        <img class="sis-logo" src="/images/logo-apache-sis.svg" alt="Apache 
SIS™ (Spatial Information System)"/>
+      </a>
       <ul class="topbar-items">
         <li>
           <a href="https://www.apache.org/events/current-event.html";>
@@ -33,7 +38,7 @@
           </a>
         </li>
       </ul>
-    </div>
+    </header>
     <div class="main-section">
       <nav class="left-bar">
         <ul class="nav-pills">
@@ -51,7 +56,6 @@
       <div class="main-content">
         <main class="container">
           <article>
-            <img src="/images/logo.png" class="sis-logo" align="left"/>
             <p class="page-title">{{ .Title }}</p>
             {{ block "main" . }}{{ end }}
           </article>
diff --git a/static/images/apple-touch-icon.png 
b/static/images/apple-touch-icon.png
new file mode 100644
index 00000000..7c83940c
Binary files /dev/null and b/static/images/apple-touch-icon.png differ
diff --git a/static/images/favicon.png b/static/images/favicon.png
new file mode 100644
index 00000000..2a8e4a0e
Binary files /dev/null and b/static/images/favicon.png differ
diff --git a/static/images/logo-apache-sis.svg 
b/static/images/logo-apache-sis.svg
new file mode 100644
index 00000000..0d6b2729
--- /dev/null
+++ b/static/images/logo-apache-sis.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="30.715mm"
+   height="13.165mm"
+   viewBox="0 0 30.715001 13.165"
+   version="1.1"
+   id="svg1"
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:svg="http://www.w3.org/2000/svg";>
+  <defs
+     id="defs1" />
+  <g
+     id="layer1">
+    <g
+       id="g43"
+       transform="translate(-89.24507,-69.384761)">
+      <g
+         id="g6-3"
+         transform="translate(8.8998254,40.50752)">
+        <path
+           id="path864-9-3-2-0"
+           
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decorat
 [...]
+           d="m 84.131536,38.320699 c -0.999892,0.110281 -1.846866,0.368558 
-2.260066,0.708418 l -1.091552,0.198466 v 0.424756 l 0.973491,0.194694 
9e-6,10e-6 c 0.352837,0.394465 1.287027,0.712442 2.532615,0.817607 
0.138136,0.265722 0.281461,0.528824 0.422802,0.79287 h 0.849489 l 
0.499261,-0.796259 h 1e-5 c 1.2301,-0.108179 2.168405,-0.422186 
2.546422,-0.811034 l 0.989421,-0.197888 v -0.424756 l -1.047812,-0.190508 c 
-0.412677,-0.337957 -1.261217,-0.619423 -2.293576,-0.724741 -0.220876,-0 [...]
+        <path
+           
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decorat
 [...]
+           d="m 85.593033,36.692439 -0.0045,0.01227 c 0.0015,-0.0038 
0.0025,-0.0074 0.004,-0.01119 0,-5.01e-4 0,-7.52e-4 9.91e-4,-9.91e-4 z"
+           id="path854-78" />
+        <path
+           id="path1-2-0-6-3-4-3-68"
+           style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
+           class="cls-3"
+           d="m -368.52539,-239.27344 c -9.23135,-0.32302 -16.97361,3.77334 
-22.1543,8.59571 -4.1581,3.8705 -6.79674,7.93205 -8.91406,11.4375 
-5.18188,-2.96877 -10.47121,-4.86134 -15.95508,-5.11914 -9.65539,-0.45393 
-17.54657,4.12564 -22.32031,9.55078 -3.29236,3.74083 -5.42682,7.8812 
-6.5625,11.98828 -0.87939,3.17748 -1.27565,6.25334 -1.39258,9.19336 
-1.27809,-0.4316 -2.51253,-0.9 -3.84765,-1.27344 -5.42407,-1.51712 
-11.60692,-2.62617 -18.3418,-1.70898 -7.12001,0.96965 -14.63655,4.636 -1 [...]
+           transform="matrix(0.03486792,0,0,0.03486792,101.53407,37.635747)" />
+        <path
+           id="path1-2-0-6-84"
+           style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
+           class="cls-3"
+           d="m -368.59375,-236.87109 c -8.49436,-0.30258 -15.61631,3.45826 
-20.44727,7.95507 -4.64177,4.32073 -7.56777,9.17295 -9.77734,12.93946 
-5.55436,-3.54745 -11.14081,-5.71237 -16.84375,-5.98047 -8.8362,-0.41541 
-16.03524,3.77608 -20.40039,8.73633 -3.04679,3.46145 -5.01035,7.28488 
-6.04883,11.03906 -1.1689,4.22178 -1.31822,8.18308 -1.15429,11.95898 
-2.25543,-0.86848 -4.60679,-1.67664 -7.05469,-2.36132 -5.24386,-1.46672 
-11.10513,-2.49565 -17.36914,-1.64258 -6.56566,0.89415 -13.429 [...]
+           transform="matrix(0.03486792,0,0,0.03486792,101.59278,37.737153)" />
+        <path
+           class="cls-3"
+           d="m 86.925185,33.565787 c 0.235507,-0.582352 0.498268,-1.163559 
0.780225,-1.678698 -0.420881,-0.312608 -0.825009,-0.986696 -0.991066,-1.285355 
-0.05963,0.06775 -0.09834,0.145781 -0.115899,0.209264 -0.156415,0.564798 
0.400409,1.246821 -0.04812,0.997637 -0.373684,-0.207643 -1.215139,-0.662364 
-1.5361,-0.210408 0.359464,0.461876 1.299665,1.623935 1.910932,1.96756 z"
+           id="path1-3-0-31"
+           style="fill:#dd552c;stroke-width:0.00922545" />
+        <path
+           class="cls-2"
+           d="m 87.70541,31.887089 c 0.273202,-0.49915 0.564336,-0.936317 
0.866191,-1.251271 0,0 -0.301073,0.435788 -0.731085,1.306938 0.260427,0.07172 
1.002114,0.218887 2.03523,-0.04797 0.02538,-0.187746 -0.100812,-0.394246 
-0.729791,-0.463382 -0.410635,-0.04509 0.49286,-0.980503 -0.161657,-1.422903 
-0.02112,-0.0143 -0.04189,-0.02694 -0.06224,-0.03823 -0.02197,-0.0078 
-0.0451,-0.01508 -0.06986,-0.02153 -0.764425,-0.199468 -0.87038,1.096708 
-1.175412,0.818067 -0.492924,-0.450274 -0.80406 [...]
+           id="path2-4-2-4"
+           style="fill:#f79a23;stroke-width:0.00922545" />
+        <path
+           class="cls-4"
+           d="m 86.310372,35.243645 c 0.172559,-0.516943 0.380149,-1.09773 
0.614813,-1.677858 -0.611267,-0.343625 -1.551468,-1.505684 -1.910932,-1.96756 
-0.06418,0.0903 -0.108037,0.21624 -0.122637,0.388474 -0.0784,0.925137 
0.87602,1.610048 0.685749,1.735149 -0.251683,0.165502 -0.7526,-0.397551 
-0.95002,-0.03979 0.286146,0.367616 0.86904,1.031846 1.683027,1.561593 z"
+           id="path3-0-7-9"
+           style="fill:#d22128;stroke-width:0.00922545" />
+        <path
+           class="cls-3"
+           d="m 88.954842,33.24843 c -0.483246,-0.172352 0.504981,-0.63459 
0.825882,-1.124961 0.04104,-0.0627 0.08351,-0.143741 0.09502,-0.228685 
-1.033116,0.266859 -1.774803,0.119691 -2.03523,0.04797 -0.222618,0.451056 
-0.479664,1.019462 -0.747758,1.704791 0.279208,0.119391 1.419267,0.560409 
3.029548,0.562692 0.27074,-0.705171 -0.708828,-0.79829 -1.167464,-0.96181 z"
+           id="path4-3-6-2"
+           style="fill:#dd552c;stroke-width:0.00922545" />
+        <path
+           class="cls-4"
+           d="m 86.49709,35.336705 c 0.283963,0.08849 1.224852,0.352828 
2.224111,0.313029 0.134233,-0.363467 -0.367647,-0.398935 -0.408518,-0.690441 
-0.03166,-0.225559 1.320783,0.189547 1.755941,-0.630625 0.022,-0.04149 
0.0392,-0.08062 0.0537,-0.118429 -1.610284,-0.0022 -2.750344,-0.4433 
-3.029552,-0.562692 -0.195925,0.50083 -0.397459,1.062923 -0.595667,1.689158 z"
+           id="path5-9-1-0"
+           style="fill:#d22128;stroke-width:0.00922545" />
+        <path
+           class="cls-1"
+           d="m 86.49709,35.336705 c -0.127595,0.403085 -0.253478,0.833699 
-0.375665,1.288783 -0.04335,0.161355 -0.08618,0.325713 -0.128408,0.493679 
0.94843,0.313089 1.821775,7.53e-4 1.851382,-0.386428 0,-0.0031 0,-0.0054 
0,-0.0083 0.02258,-0.410054 -0.592035,-0.182755 -0.577486,-0.429292 
0.0146,-0.248343 1.072994,-0.0015 1.400303,-0.533898 0.02509,-0.04082 
0.04145,-0.07707 0.05414,-0.111516 -0.999259,0.03979 -1.940147,-0.224536 
-2.224111,-0.313029 z"
+           id="path6-1-3-6"
+           style="fill:#7c297d;stroke-width:0.00922545" />
+        <path
+           class="cls-1"
+           d="m 84.627345,33.682052 c -0.01385,0.02507 -0.02629,0.05405 
-0.03693,0.08867 -0.183804,0.597381 1.115926,1.399876 0.939087,1.574817 
-0.159395,0.157626 -0.367136,-0.202595 -0.623294,-0.05381 -0.02805,0.01636 
-0.05656,0.03697 -0.08582,0.06697 -0.289694,0.296796 -0.0045,1.151834 
0.817408,1.60824 -0.191801,0.64403 -0.382754,1.363566 -0.569689,2.116049 
0.06781,-0.02374 0.148969,-0.04756 0.169163,-0.111518 0.03036,-0.124682 
0.217776,-0.883352 0.522115,-1.912612 0,0 0.05555,-0.21082 [...]
+           id="path7-9-2-8"
+           style="fill:#7c297d;stroke-width:0.00922545" />
+      </g>
+      <g
+         id="g16"
+         transform="translate(1.1190287,0.17225015)">
+        <path
+           d="m 101.78252,80.267745 c 1.7981,0 2.67018,-0.899052 
2.67018,-1.950943 0,-2.310563 -3.65914,-1.510407 -3.65914,-2.670184 0,-0.395583 
0.33265,-0.719242 1.19574,-0.719242 0.55741,0 1.15977,0.16183 1.74416,0.494479 
l 0.44952,-1.105834 c -0.58438,-0.368611 -1.39353,-0.557412 -2.18469,-0.557412 
-1.78912,0 -2.652205,0.890061 -2.652205,1.959933 0,2.337535 3.659145,1.528388 
3.659145,2.706146 0,0.386593 -0.35063,0.674289 -1.21372,0.674289 -0.75521,0 
-1.54637,-0.269715 -2.076814,-0.656 [...]
+           id="text18"
+           
style="font-weight:bold;font-size:8.99052px;line-height:1.3;font-family:Montserrat;-inkscape-font-specification:'Montserrat
 
Bold';letter-spacing:0.0123574px;fill:#3c3c3c;stroke-width:0.0116761;stroke-linejoin:round"
+           aria-label="S I S" />
+        <path
+           d="m 99.73399,72.486069 h 0.31092 l 0.11613,-0.280953 h 0.60873 l 
0.11613,0.280953 h 0.31841 l -0.58625,-1.311114 h -0.29969 z m 
0.52257,-0.511335 0.20978,-0.500096 0.20791,0.500096 z m 3.05116,0.511335 h 
0.30343 v -0.361493 h 0.2641 c 0.35025,0 0.5694,-0.181683 0.5694,-0.473874 
0,-0.294064 -0.21915,-0.475747 -0.5694,-0.475747 h -0.56753 z m 
0.30343,-0.608732 v -0.455144 h 0.24724 c 0.18543,0 0.27908,0.08429 
0.27908,0.228509 0,0.142349 -0.0936,0.226635 -0.27908,0.226635 z m 2. [...]
+           id="text28"
+           
style="font-weight:bold;font-size:1.87302px;line-height:1.3;font-family:Montserrat;-inkscape-font-specification:'Montserrat
 
Bold';letter-spacing:1.96668px;fill:#999999;stroke-width:0.0106187;stroke-linejoin:round"
+           aria-label="APACHE" />
+        <g
+           id="g13"
+           transform="translate(-0.06806744,0.22130093)">
+          <rect
+             
style="fill:#7c297d;fill-opacity:1;stroke-width:0.0106187;stroke-linejoin:round"
+             id="rect1"
+             width="1.0012671"
+             height="0.88434207"
+             x="105.70436"
+             y="79.11261" />
+          <rect
+             
style="fill:#7c297d;fill-opacity:1;stroke-width:0.0106187;stroke-linejoin:round"
+             id="rect1-6"
+             width="1.0012671"
+             height="0.88434207"
+             x="110.92635"
+             y="79.162094" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/static/images/sis-hero.svg b/static/images/sis-hero.svg
new file mode 100644
index 00000000..6aaa052f
--- /dev/null
+++ b/static/images/sis-hero.svg
@@ -0,0 +1,226 @@
+<svg xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; viewBox="0 0 600 570" width="600" 
height="570" role="img" aria-label="Globe with a discrete global grid, extruded 
data cells, satellites in orbit and a timestamped flight from Paris to New 
York">
+<defs>
+  <radialGradient id="ocean" cx="38%" cy="32%" r="75%">
+    <stop offset="0" stop-color="#FFFFFF"/><stop offset="0.6" 
stop-color="#F3ECF4"/><stop offset="1" stop-color="#E2D3E4"/>
+  </radialGradient>
+  <radialGradient id="halo" r="50%">
+    <stop offset="0.78" stop-color="#7C297D" stop-opacity="0.16"/><stop 
offset="1" stop-color="#7C297D" stop-opacity="0"/>
+  </radialGradient>
+  <linearGradient id="timefill" x1="0" x2="1">
+    <stop offset="0" stop-color="#F69A23"/><stop offset="0.5" 
stop-color="#D22128"/><stop offset="1" stop-color="#7C297D"/>
+  </linearGradient>
+  <filter id="shadow" x="-20%" y="-50%" width="140%" 
height="200%"><feGaussianBlur stdDeviation="8"/></filter>
+  <clipPath id="globe"><circle cx="300.0" cy="272.0" r="178.0"/></clipPath>
+  <g id="sat">
+    <rect x="-11" y="-2.5" width="7" height="5" rx="0.8" fill="#7C297D"/>
+    <rect x="4" y="-2.5" width="7" height="5" rx="0.8" fill="#7C297D"/>
+    <line x1="-4" y1="0" x2="4" y2="0" stroke="#3C3C3C" stroke-width="1.2"/>
+    <rect x="-3" y="-3" width="6" height="6" rx="1.2" fill="#FFFFFF" 
stroke="#3C3C3C" stroke-width="1.4"/>
+  </g>
+</defs>
+<circle cx="300.0" cy="272.0" r="201.14" fill="url(#halo)"/>
+<ellipse cx="306.0" cy="472.0" rx="124.6" ry="9" fill="#5E1F5F" 
fill-opacity="0.16" filter="url(#shadow)"/>
+<path d="M478.2 278.4 475.2 276.9 472.1 275.3 468.9 273.7 465.5 272.1 462.1 
270.5 458.5 268.9 454.9 267.3 451.1 265.8 447.2 264.2 443.3 262.6 439.2 261.0 
435.0 259.5 430.8 257.9 426.4 256.4 422.0 254.9 417.4 253.4 412.8 251.9 408.2 
250.4 403.4 248.9 398.6 247.4 393.7 246.0 388.7 244.6 383.7 243.2 378.7 241.8 
373.5 240.4 368.3 239.1 363.1 237.7 357.9 236.4 352.5 235.2 347.2 233.9 341.8 
232.7 336.4 231.5 331.0 230.3 325.5 229.2 320.1 228.1 314.6 227.0 309.1 226.0 
303.6 224.9 298.1 224.0 29 [...]
+<path d="M123.6 344.4 122.2 348.8 120.9 353.2 119.7 357.5 118.6 361.8 117.7 
366.0 116.8 370.2 116.2 374.2 115.6 378.3 115.1 382.2 114.8 386.1 114.7 389.9 
114.6 393.6 114.7 397.2 114.9 400.7 115.2 404.2 115.6 407.5 116.2 410.8 116.9 
414.0 117.7 417.0 118.7 420.0 119.8 422.9 121.0 425.7 122.3 428.3 123.7 430.9 
125.3 433.3 127.0 435.7 128.8 437.9 130.7 440.0 132.7 442.0 134.9 443.9 137.1 
445.6 139.5 447.3 142.0 448.8 144.6 450.2 147.3 451.5 150.1 452.6 153.0 453.7 
156.0 454.6 159.1 455.4 16 [...]
+<path d="M381.7 129.8 386.1 134.8 390.4 139.9 394.6 145.0 398.7 150.3 402.8 
155.6 406.8 161.0 410.8 166.5 414.6 172.1 418.4 177.7 422.1 183.4 425.8 189.1 
429.3 195.0 432.8 200.8 436.1 206.7 439.4 212.7 442.6 218.7 445.6 224.7 448.6 
230.8 451.5 236.9 454.2 243.0 456.9 249.1 459.4 255.3 461.9 261.5 464.2 267.6 
466.4 273.8 468.6 280.0 470.5 286.1 472.4 292.3 474.2 298.5 475.8 304.6 477.3 
310.7 478.7 316.8 480.0 322.8 481.1 328.8 482.2 334.8 483.1 340.7 483.8 346.6 
484.5 352.5 485.0 358.2 48 [...]
+<circle cx="300.0" cy="272.0" r="178.0" fill="url(#ocean)"/>
+<g clip-path="url(#globe)">
+<path d="M438.5 200.0 439.9 199.8 440.1 198.6 439.5 197.2 439.7 196.0 439.5 
194.6 438.2 192.4 438.3 191.0 437.7 190.0 438.4 190.1 438.6 189.8 438.9 189.2 
439.7 188.9 440.0 188.8 439.7 187.2 440.2 187.3 439.5 185.9 439.7 185.2 439.5 
184.7 438.8 183.7 438.2 182.4 438.8 182.3 439.4 183.1 439.6 182.9 441.1 184.9 
441.8 185.2 441.5 184.3 441.4 183.5 440.7 181.8 441.0 181.2 441.2 180.0 441.7 
180.4 441.9 181.4 442.1 182.4 442.1 184.0 442.2 185.7 442.9 187.4 443.7 188.1 
444.6 189.1 445.2 190.7 44 [...]
+<path d="M282.3 94.9 282.6 94.9 283.8 94.9 284.9 95.2 286.1 95.7 287.3 96.4 
288.6 97.3 289.8 98.4 291.0 99.7 292.3 101.3 293.6 103.0 294.8 105.0 296.1 
107.2 297.4 109.5 298.7 112.1 M258.6 98.9 259.6 98.7 262.1 98.3 264.6 98.1 
267.1 98.1 269.7 98.4 272.4 98.8 275.0 99.5 277.7 100.4 280.5 101.5 283.2 102.8 
286.0 104.3 288.8 106.0 291.6 107.9 294.4 110.0 297.2 112.3 M230.7 108.0 233.4 
107.0 236.9 105.8 240.4 104.8 244.1 104.1 247.8 103.5 251.6 103.2 255.4 103.0 
259.3 103.1 263.2 103.3 267.2 [...]
+<path d="M285 106 295 105 297 102 287 101 280 104Z M270 105 280 104 287 101 
285 99 274 99 267 102Z M257 104 267 102 274 99 272 98 261 100 253 103Z M242 106 
253 103 261 100 259 99 247 102 239 105Z M287 101 297 102 305 100 305 98 294 97 
285 99Z M274 99 285 99 294 97 293 95 282 96 272 98Z M261 100 272 98 282 96 280 
95 268 97 259 99Z M294 97 305 98 314 97 313 95 303 95 293 95Z M282 96 293 95 
303 95 301 94 290 94 280 95Z M303 95 313 95 323 96 322 95 311 94 301 94Z M449 
186 448 189 453 198 457 [...]
+</g>
+<circle cx="300.0" cy="272.0" r="178.0" fill="none" stroke="#7C297D" 
stroke-width="1.6"/>
+<g stroke-linejoin="round" stroke-width="0.6">
+<path d="M155.6 174.9 159.4 174.9 151.6 169.5 147.5 169.5Z" fill="#763C14" 
stroke="#A3531C"/>
+<path d="M160.4 160.1 165.3 150.4 161.1 150.4 152.2 160.1 147.5 169.5 151.6 
169.5Z" fill="#F77D2A" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M155.6 174.9 148.6 184.4 142.7 180.9 149.9 171.1Z" fill="#9A5918" 
stroke="#A8611A"/>
+<path d="M159.4 174.9 155.6 174.9 149.9 171.1 153.9 171.1Z" fill="#7A4613" 
stroke="#A8611A"/>
+<path d="M145.6 193.3 149.3 193.3 143.4 190.2 139.5 190.2Z" fill="#7A4613" 
stroke="#A8611A"/>
+<path d="M150.5 180.8 153.9 171.1 149.9 171.1 142.7 180.9 139.5 190.2 143.4 
190.2Z" fill="#FE9227" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M182.1 148.6 172.4 156.9 167.5 152.4 177.6 143.8Z" fill="#9A5918" 
stroke="#A8611A"/>
+<path d="M187.0 149.7 182.1 148.6 177.6 143.8 182.6 145.0Z" fill="#7D4913" 
stroke="#A8611A"/>
+<path d="M167.8 166.0 172.7 166.9 167.8 162.8 162.7 161.9Z" fill="#7A4713" 
stroke="#A8611A"/>
+<path d="M182.2 158.9 187.0 149.7 182.6 145.0 177.6 154.5Z" fill="#935517" 
stroke="#A8611A"/>
+<path d="M177.6 154.5 182.6 145.0 177.6 143.8 167.5 152.4 162.7 161.9 167.8 
162.8Z" fill="#FF9528" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M167.8 166.0 159.4 174.9 140.3 161.7 149.8 151.6Z" fill="#86211A" 
stroke="#96251D"/>
+<path d="M151.4 163.4 155.4 152.6 149.8 151.6 140.3 161.7 136.6 172.3 142.1 
173.0Z" fill="#E5392D" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M142.4 330.0 149.1 339.1 143.5 341.7 136.5 332.2Z" fill="#BC6D1D" 
stroke="#A9621A"/>
+<path d="M144.8 314.4 140.3 317.7 134.3 319.4 138.9 316.0Z" fill="#7B4713" 
stroke="#A9621A"/>
+<path d="M153.7 335.8 151.5 323.4 145.9 325.3 148.2 338.2Z" fill="#8A5015" 
stroke="#A9621A"/>
+<path d="M145.9 325.3 138.9 316.0 134.3 319.4 136.5 332.2 143.5 341.7 148.2 
338.2Z" fill="#EB8924" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M149.1 339.1 152.6 351.0 133.1 361.5 129.2 348.0Z" fill="#7D2118" 
stroke="#96271D"/>
+<path d="M165.0 356.0 161.6 344.2 143.3 353.8 147.2 367.1Z" fill="#792018" 
stroke="#96271D"/>
+<path d="M143.3 353.8 134.3 344.2 129.2 348.0 133.1 361.5 142.1 371.0 147.2 
367.1Z" fill="#CD3528" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M165.2 370.3 173.9 377.6 164.4 385.6 154.9 377.8Z" fill="#B44F21" 
stroke="#9E451D"/>
+<path d="M173.9 377.6 178.2 374.2 169.0 382.0 164.4 385.6Z" fill="#A6491F" 
stroke="#9E451D"/>
+<path d="M164.3 370.5 154.8 362.4 150.0 366.1 154.9 377.8 164.4 385.6 169.0 
382.0Z" fill="#D35C27" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M161.6 344.2 167.2 340.3 148.9 349.7 142.6 354.2Z" fill="#6D1A15" 
stroke="#96241D"/>
+<path d="M167.2 340.3 164.9 328.1 146.4 335.8 148.9 349.7Z" fill="#771D17" 
stroke="#96241D"/>
+<path d="M146.4 335.8 137.5 326.2 131.1 330.4 133.6 344.5 142.6 354.2 148.9 
349.7Z" fill="#D23328" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M178.2 374.2 187.6 380.5 182.2 385.8 172.4 379.2Z" fill="#BA641F" 
stroke="#A5591B"/>
+<path d="M173.9 363.6 178.2 374.2 172.4 379.2 167.8 368.0Z" fill="#834716" 
stroke="#A5591B"/>
+<path d="M187.6 380.5 192.5 376.5 187.4 381.5 182.2 385.8Z" fill="#AE5E1D" 
stroke="#A5591B"/>
+<path d="M192.5 376.5 188.5 366.1 183.2 370.6 187.4 381.5Z" fill="#7F4415" 
stroke="#A5591B"/>
+<path d="M183.2 370.6 173.4 363.7 167.8 368.0 172.4 379.2 182.2 385.8 187.4 
381.5Z" fill="#DD7725" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M161.6 344.2 165.0 356.0 139.9 371.7 135.8 357.7Z" fill="#6D1420" 
stroke="#871828"/>
+<path d="M152.8 362.2 142.4 353.0 135.8 357.7 139.9 371.7 150.4 380.6 156.7 
375.8Z" fill="#B92237" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M441.4 241.7 448.9 245.3 455.8 244.1 448.0 240.3Z" fill="#784213" 
stroke="#A65A1B"/>
+<path d="M437.2 229.5 441.4 241.7 448.0 240.3 443.6 227.5Z" fill="#A95C1B" 
stroke="#A65A1B"/>
+<path d="M454.9 222.7 447.2 218.9 443.6 227.5 448.0 240.3 455.8 244.1 459.2 
235.1Z" fill="#D17222" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M432.8 352.5 434.6 343.4 439.2 345.8 437.3 355.2Z" fill="#AD681A" 
stroke="#AA6619"/>
+<path d="M418.9 358.0 425.1 359.6 429.3 362.5 422.9 360.9Z" fill="#985B17" 
stroke="#AA6619"/>
+<path d="M434.6 343.4 428.4 341.5 432.7 343.8 439.2 345.8Z" fill="#985B17" 
stroke="#AA6619"/>
+<path d="M420.3 349.0 418.9 358.0 422.9 360.9 424.3 351.6Z" fill="#AB6719" 
stroke="#AA6619"/>
+<path d="M439.2 345.8 432.7 343.8 424.3 351.6 422.9 360.9 429.3 362.5 437.3 
355.2Z" fill="#CF7C1F" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M451.9 257.9 448.9 245.3 466.3 242.2 469.7 256.2Z" fill="#9B2F1F" 
stroke="#982E1E"/>
+<path d="M447.4 267.2 451.9 257.9 469.7 256.2 464.7 266.6Z" fill="#B13623" 
stroke="#982E1E"/>
+<path d="M439.8 263.8 447.4 267.2 464.7 266.6 456.2 262.8Z" fill="#6E2216" 
stroke="#982E1E"/>
+<path d="M466.3 242.2 457.9 238.2 452.7 248.4 456.2 262.8 464.7 266.6 469.7 
256.2Z" fill="#BD3A26" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M401.4 382.2 409.6 374.3 413.6 378.0 405.1 386.2Z" fill="#C4731E" 
stroke="#A9631A"/>
+<path d="M409.6 374.3 410.9 365.5 415.0 368.9 413.6 378.0Z" fill="#A46119" 
stroke="#A9631A"/>
+<path d="M395.4 372.6 394.2 381.6 397.6 385.6 398.9 376.3Z" fill="#A46119" 
stroke="#A9631A"/>
+<path d="M404.0 364.4 395.4 372.6 398.9 376.3 407.8 367.8Z" fill="#C5741E" 
stroke="#A9631A"/>
+<path d="M415.0 368.9 407.8 367.8 398.9 376.3 397.6 385.6 405.1 386.2 413.6 
378.0Z" fill="#CD791F" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M164.9 328.1 167.2 340.3 155.7 346.2 153.3 333.0Z" fill="#7C3118" 
stroke="#9C3E1E"/>
+<path d="M167.2 340.3 175.9 348.0 165.2 354.6 155.7 346.2Z" fill="#A94421" 
stroke="#9C3E1E"/>
+<path d="M171.4 324.0 164.9 328.1 153.3 333.0 160.3 328.5Z" fill="#712D16" 
stroke="#9C3E1E"/>
+<path d="M175.9 348.0 182.1 343.6 172.0 349.8 165.2 354.6Z" fill="#712D16" 
stroke="#9C3E1E"/>
+<path d="M179.8 331.8 171.4 324.0 160.3 328.5 169.5 336.9Z" fill="#A44220" 
stroke="#9C3E1E"/>
+<path d="M182.1 343.6 179.8 331.8 169.5 336.9 172.0 349.8Z" fill="#783017" 
stroke="#9C3E1E"/>
+<path d="M169.5 336.9 160.3 328.5 153.3 333.0 155.7 346.2 165.2 354.6 172.0 
349.8Z" fill="#DC582A" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M179.2 359.5 188.5 366.1 182.7 371.0 172.9 364.1Z" fill="#B45E1E" 
stroke="#A4551B"/>
+<path d="M188.5 366.1 194.3 361.5 188.8 366.2 182.7 371.0Z" fill="#AC591D" 
stroke="#A4551B"/>
+<path d="M194.3 361.5 191.2 350.4 185.5 354.5 188.8 366.2Z" fill="#7C4015" 
stroke="#A4551B"/>
+<path d="M185.5 354.5 175.9 347.3 169.4 352.0 172.9 364.1 182.7 371.0 188.8 
366.2Z" fill="#E27626" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M404.0 364.4 410.9 365.5 428.0 380.0 420.0 378.7Z" fill="#8A1B1B" 
stroke="#941D1D"/>
+<path d="M412.9 346.7 404.6 354.6 420.8 367.3 430.4 358.2Z" fill="#AD2222" 
stroke="#941D1D"/>
+<path d="M438.9 360.9 430.4 358.2 420.8 367.3 420.0 378.7 428.0 380.0 437.2 
371.3Z" fill="#B42323" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M420.3 349.0 428.4 341.5 445.6 350.8 436.4 359.4Z" fill="#AE2D22" 
stroke="#96261D"/>
+<path d="M412.9 346.7 420.3 349.0 436.4 359.4 428.1 356.7Z" fill="#87221A" 
stroke="#96261D"/>
+<path d="M429.4 331.2 421.9 328.6 438.2 336.2 446.7 339.1Z" fill="#86221A" 
stroke="#96261D"/>
+<path d="M413.5 336.6 412.9 346.7 428.1 356.7 428.7 345.3Z" fill="#96261D" 
stroke="#96261D"/>
+<path d="M446.7 339.1 438.2 336.2 428.7 345.3 428.1 356.7 436.4 359.4 445.6 
350.8Z" fill="#B72F24" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M437.2 229.5 428.5 226.1 443.8 220.7 453.5 224.4Z" fill="#6E2115" 
stroke="#982E1D"/>
+<path d="M423.8 235.0 427.9 247.5 443.0 244.6 438.5 230.6Z" fill="#9A2E1E" 
stroke="#982E1D"/>
+<path d="M453.5 224.4 443.8 220.7 438.5 230.6 443.0 244.6 453.0 248.4 458.1 
238.2Z" fill="#C43B26" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M395.4 372.6 404.0 364.4 419.2 378.0 409.4 387.4Z" fill="#AE2622" 
stroke="#95201D"/>
+<path d="M404.0 364.4 404.6 354.6 419.9 366.7 419.2 378.0Z" fill="#911F1C" 
stroke="#95201D"/>
+<path d="M387.6 360.9 387.1 371.1 399.8 385.6 400.5 374.0Z" fill="#901F1C" 
stroke="#95201D"/>
+<path d="M419.9 366.7 410.7 364.4 400.5 374.0 399.8 385.6 409.4 387.4 419.2 
378.0Z" fill="#B52723" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M439.8 263.8 436.8 250.9 448.5 249.1 451.9 263.1Z" fill="#9F401F" 
stroke="#9C3F1E"/>
+<path d="M436.8 250.9 427.9 247.5 438.9 245.4 448.5 249.1Z" fill="#712E16" 
stroke="#9C3F1E"/>
+<path d="M427.9 247.5 421.9 257.0 432.4 255.7 438.9 245.4Z" fill="#B34823" 
stroke="#9C3F1E"/>
+<path d="M421.9 257.0 425.0 270.0 435.7 269.9 432.4 255.7Z" fill="#9E401E" 
stroke="#9C3F1E"/>
+<path d="M448.5 249.1 438.9 245.4 432.4 255.7 435.7 269.9 445.5 273.5 451.9 
263.1Z" fill="#C75026" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M258.3 141.1 253.7 150.3 250.2 141.1 255.1 131.3Z" fill="#733215" 
stroke="#9E451D"/>
+<path d="M259.2 147.7 273.0 144.2 277.6 134.3 268.7 128.0 255.1 131.3 250.2 
141.1Z" fill="#F66C2E" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M404.6 354.6 412.9 346.7 443.4 366.9 432.9 376.9Z" fill="#652266" 
stroke="#571D58"/>
+<path d="M412.9 346.7 413.5 336.6 444.2 354.0 443.4 366.9Z" fill="#561D57" 
stroke="#571D58"/>
+<path d="M413.5 336.6 405.1 333.6 433.4 350.3 444.2 354.0Z" fill="#4E1A4E" 
stroke="#571D58"/>
+<path d="M396.5 341.7 396.6 352.6 422.7 374.3 422.5 360.6Z" fill="#541C55" 
stroke="#571D58"/>
+<path d="M405.1 333.6 396.5 341.7 422.5 360.6 433.4 350.3Z" fill="#652266" 
stroke="#571D58"/>
+<path d="M444.2 354.0 433.4 350.3 422.5 360.6 422.7 374.3 432.9 376.9 443.4 
366.9Z" fill="#69236A" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M413.5 336.6 421.9 328.6 438.7 336.4 429.2 345.5Z" fill="#AE2A21" 
stroke="#96241D"/>
+<path d="M421.9 328.6 421.9 317.2 438.7 323.5 438.7 336.4Z" fill="#96251D" 
stroke="#96241D"/>
+<path d="M404.7 322.5 405.1 333.6 419.6 342.1 419.1 329.5Z" fill="#94241C" 
stroke="#96241D"/>
+<path d="M413.1 314.1 404.7 322.5 419.1 329.5 428.7 319.9Z" fill="#AE2A21" 
stroke="#96241D"/>
+<path d="M438.7 323.5 428.7 319.9 419.1 329.5 419.6 342.1 429.2 345.5 438.7 
336.4Z" fill="#B82D23" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M377.3 379.1 387.1 371.1 390.1 374.5 379.9 382.7Z" fill="#C7771E" 
stroke="#AA6619"/>
+<path d="M387.1 371.1 387.6 360.9 390.6 364.0 390.1 374.5Z" fill="#A56218" 
stroke="#AA6619"/>
+<path d="M387.6 360.9 378.2 358.4 380.9 361.4 390.6 364.0Z" fill="#9E5E17" 
stroke="#AA6619"/>
+<path d="M390.6 364.0 380.9 361.4 370.4 369.8 370.0 380.6 379.9 382.7 390.1 
374.5Z" fill="#CF7B1F" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M387.6 360.9 396.6 352.6 411.6 365.1 401.2 374.7Z" fill="#AE2222" 
stroke="#941D1D"/>
+<path d="M396.5 341.7 387.4 338.8 400.9 349.2 411.4 352.5Z" fill="#871A1A" 
stroke="#941D1D"/>
+<path d="M387.4 338.8 378.1 347.2 390.1 358.8 400.9 349.2Z" fill="#AD2222" 
stroke="#941D1D"/>
+<path d="M411.4 352.5 400.9 349.2 390.1 358.8 390.3 371.8 401.2 374.7 411.6 
365.1Z" fill="#B82424" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M396.5 341.7 405.1 333.6 419.6 342.1 409.8 351.4Z" fill="#AF2B22" 
stroke="#96241D"/>
+<path d="M387.4 338.8 396.5 341.7 409.8 351.4 399.5 348.1Z" fill="#89211A" 
stroke="#96241D"/>
+<path d="M404.7 322.5 395.3 319.0 408.5 325.6 419.2 329.5Z" fill="#86201A" 
stroke="#96241D"/>
+<path d="M386.6 327.3 387.4 338.8 399.5 348.1 398.5 334.9Z" fill="#91231C" 
stroke="#96241D"/>
+<path d="M419.2 329.5 408.5 325.6 398.5 334.9 399.5 348.1 409.8 351.4 419.6 
342.1Z" fill="#BC2E24" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M404.7 322.5 413.1 314.1 416.6 315.4 407.9 324.0Z" fill="#C87C1D" 
stroke="#AC6A18"/>
+<path d="M395.3 319.0 404.7 322.5 407.9 324.0 398.2 320.5Z" fill="#995F16" 
stroke="#AC6A18"/>
+<path d="M394.0 307.2 395.3 319.0 398.2 320.5 396.8 308.2Z" fill="#A86818" 
stroke="#AC6A18"/>
+<path d="M415.5 302.8 405.4 299.2 396.8 308.2 398.2 320.5 407.9 324.0 416.6 
315.4Z" fill="#DA881F" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M353.0 163.5 340.5 163.1 344.1 153.3 357.8 153.7Z" fill="#712C16" 
stroke="#9B3C1F"/>
+<path d="M356.6 182.4 361.2 173.3 366.6 164.5 361.6 174.4Z" fill="#A13E20" 
stroke="#9B3C1F"/>
+<path d="M336.2 172.3 344.2 181.8 348.1 173.7 339.4 163.3Z" fill="#90381D" 
stroke="#9B3C1F"/>
+<path d="M357.8 153.7 344.1 153.3 339.4 163.3 348.1 173.7 361.6 174.4 366.6 
164.5Z" fill="#E5592D" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M378.1 347.2 387.4 338.8 392.5 342.8 382.6 351.6Z" fill="#BE5F21" 
stroke="#A2511C"/>
+<path d="M367.7 343.7 378.1 347.2 382.6 351.6 371.6 348.0Z" fill="#964B1A" 
stroke="#A2511C"/>
+<path d="M366.9 331.8 367.7 343.7 371.6 348.0 370.8 335.3Z" fill="#9C4E1B" 
stroke="#A2511C"/>
+<path d="M391.6 330.5 381.0 326.7 370.8 335.3 371.6 348.0 382.6 351.6 392.5 
342.8Z" fill="#D06824" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M345.2 335.5 345.9 347.7 348.7 352.5 348.1 339.5Z" fill="#9A4B1B" 
stroke="#A24E1D"/>
+<path d="M355.8 327.6 345.2 335.5 348.1 339.5 359.3 331.1Z" fill="#BA5A21" 
stroke="#A24E1D"/>
+<path d="M371.1 335.5 359.3 331.1 348.1 339.5 348.7 352.5 360.8 356.8 371.9 
348.2Z" fill="#D36625" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M366.9 331.8 376.5 323.6 383.0 328.0 372.6 336.8Z" fill="#B44A23" 
stroke="#9C401E"/>
+<path d="M355.8 327.6 366.9 331.8 372.6 336.8 360.5 332.3Z" fill="#8E3A1B" 
stroke="#9C401E"/>
+<path d="M354.7 315.4 355.8 327.6 360.5 332.3 359.3 319.0Z" fill="#953D1D" 
stroke="#9C401E"/>
+<path d="M381.5 315.1 369.9 310.6 359.3 319.0 360.5 332.3 372.6 336.8 383.0 
328.0Z" fill="#CF5428" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M334.7 355.3 345.9 347.7 348.5 352.1 336.7 360.1Z" fill="#BC5E20" 
stroke="#A2511C"/>
+<path d="M345.9 347.7 345.2 335.5 347.8 339.2 348.5 352.1Z" fill="#9A4D1B" 
stroke="#A2511C"/>
+<path d="M322.4 338.3 322.9 350.5 324.2 355.0 323.7 342.1Z" fill="#984C1A" 
stroke="#A2511C"/>
+<path d="M333.5 330.8 322.4 338.3 323.7 342.1 335.5 334.2Z" fill="#B95C20" 
stroke="#A2511C"/>
+<path d="M347.8 339.2 335.5 334.2 323.7 342.1 324.2 355.0 336.7 360.1 348.5 
352.1Z" fill="#D86C25" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M333.5 330.8 345.2 335.5 355.1 349.4 340.9 343.7Z" fill="#6B1836" 
stroke="#741A3B"/>
+<path d="M354.7 315.4 343.3 310.9 352.7 319.4 366.6 324.9Z" fill="#691735" 
stroke="#741A3B"/>
+<path d="M343.3 310.9 332.7 318.4 339.8 328.6 352.7 319.4Z" fill="#831D42" 
stroke="#741A3B"/>
+<path d="M366.6 324.9 352.7 319.4 339.8 328.6 340.9 343.7 355.1 349.4 368.0 
339.8Z" fill="#9D234F" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M354.7 315.4 364.5 307.6 372.0 311.8 361.1 320.5Z" fill="#AD3522" 
stroke="#982E1E"/>
+<path d="M364.5 307.6 362.8 295.9 370.1 298.6 372.0 311.8Z" fill="#922C1D" 
stroke="#982E1E"/>
+<path d="M362.8 295.9 351.8 291.6 357.8 293.9 370.1 298.6Z" fill="#6E2216" 
stroke="#982E1E"/>
+<path d="M342.0 298.8 343.3 310.9 348.3 315.4 346.9 302.0Z" fill="#902C1D" 
stroke="#982E1E"/>
+<path d="M351.8 291.6 342.0 298.8 346.9 302.0 357.8 293.9Z" fill="#A93321" 
stroke="#982E1E"/>
+<path d="M370.1 298.6 357.8 293.9 346.9 302.0 348.3 315.4 361.1 320.5 372.0 
311.8Z" fill="#D03F29" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M310.7 333.0 322.4 338.3 324.5 344.5 311.7 338.8Z" fill="#90361D" 
stroke="#9B3A1F"/>
+<path d="M333.5 330.8 332.7 318.4 335.8 322.8 336.7 336.4Z" fill="#92371D" 
stroke="#9B3A1F"/>
+<path d="M310.2 320.7 310.7 333.0 311.7 338.8 311.1 325.3Z" fill="#8F361D" 
stroke="#9B3A1F"/>
+<path d="M332.7 318.4 321.1 313.5 323.0 317.4 335.8 322.8Z" fill="#8D351C" 
stroke="#9B3A1F"/>
+<path d="M335.8 322.8 323.0 317.4 311.1 325.3 311.7 338.8 324.5 344.5 336.7 
336.4Z" fill="#D4502A" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M321.1 313.5 332.7 318.4 337.0 324.6 323.9 319.0Z" fill="#89241B" 
stroke="#96271D"/>
+<path d="M342.0 298.8 330.7 294.3 334.7 297.3 347.6 302.4Z" fill="#86231A" 
stroke="#96271D"/>
+<path d="M330.7 294.3 320.3 301.4 323.0 305.3 334.7 297.3Z" fill="#A52B20" 
stroke="#96271D"/>
+<path d="M347.6 302.4 334.7 297.3 323.0 305.3 323.9 319.0 337.0 324.6 349.0 
316.0Z" fill="#D13629" stroke="#FFFFFF" stroke-opacity="0.7"/>
+<path d="M342.0 298.8 351.8 291.6 353.4 292.2 343.3 299.7Z" fill="#BF761B" 
stroke="#AC6A18"/>
+<path d="M350.1 280.3 339.1 276.2 340.3 276.3 351.6 280.6Z" fill="#7D4D12" 
stroke="#AC6A18"/>
+<path d="M339.1 276.2 329.5 282.9 330.4 283.2 340.3 276.3Z" fill="#BA731B" 
stroke="#AC6A18"/>
+<path d="M351.6 280.6 340.3 276.3 330.4 283.2 331.6 295.0 343.3 299.7 353.4 
292.2Z" fill="#F19522" stroke="#FFFFFF" stroke-opacity="0.7"/>
+</g>
+<path d="M329.4 206.1 328.0 205.8 326.7 205.5 325.4 205.2 324.0 204.9 322.7 
204.6 321.3 204.3 320.0 204.0 318.7 203.7 317.3 203.4 316.0 203.1 314.6 202.8 
313.3 202.5 311.9 202.3 310.6 202.0 309.2 201.7 307.9 201.5 306.5 201.2 305.2 
201.0 303.8 200.7 302.5 200.5 301.1 200.2 299.8 200.0 298.4 199.7 297.1 199.5 
295.7 199.3 294.4 199.1 293.0 198.9 291.7 198.7 290.3 198.4 289.0 198.2 287.6 
198.0 286.3 197.9 284.9 197.7 283.6 197.5 282.2 197.3 280.9 197.1 279.6 196.9 
278.2 196.8 276.9 196.6 27 [...]
+<circle cx="329.4" cy="206.1" r="3.2" fill="#FFFFFF" stroke="#3C3C3C" 
stroke-width="1.6"/>
+<text x="337.4" y="198.1" text-anchor="start" font-family="system-ui, 
-apple-system, 'Segoe UI', Arial, sans-serif" font-size="11" font-weight="600" 
fill="#3C3C3C" stroke="#FFFFFF" stroke-width="3" 
paint-order="stroke">08:00Z</text>
+<circle cx="249.2" cy="194.2" r="3.2" fill="#FFFFFF" stroke="#3C3C3C" 
stroke-width="1.6"/>
+<text x="249.2" y="185.2" text-anchor="middle" font-family="system-ui, 
-apple-system, 'Segoe UI', Arial, sans-serif" font-size="11" font-weight="600" 
fill="#3C3C3C" stroke="#FFFFFF" stroke-width="3" 
paint-order="stroke">12:00Z</text>
+<circle cx="179.4" cy="198.4" r="3.2" fill="#FFFFFF" stroke="#3C3C3C" 
stroke-width="1.6"/>
+<text x="177.4" y="188.4" text-anchor="middle" font-family="system-ui, 
-apple-system, 'Segoe UI', Arial, sans-serif" font-size="11" font-weight="600" 
fill="#3C3C3C" stroke="#FFFFFF" stroke-width="3" 
paint-order="stroke">16:00Z</text>
+<g><circle r="7" fill="#F69A23" fill-opacity="0.35"/><circle r="4" 
fill="#D22128" stroke="#FFFFFF" stroke-width="1.5"/><animateMotion dur="14s" 
begin="0.00s" repeatCount="indefinite" calcMode="linear" path="M329.4 206.1 
328.0 205.8 326.7 205.5 325.4 205.2 324.0 204.9 322.7 204.6 321.3 204.3 320.0 
204.0 318.7 203.7 317.3 203.4 316.0 203.1 314.6 202.8 313.3 202.5 311.9 202.3 
310.6 202.0 309.2 201.7 307.9 201.5 306.5 201.2 305.2 201.0 303.8 200.7 302.5 
200.5 301.1 200.2 299.8 200.0 298.4 19 [...]
+<path d="M89.9 233.8 89.9 235.0 90.0 236.3 90.3 237.6 90.7 238.9 91.2 240.2 
91.9 241.6 92.8 243.0 93.8 244.4 94.9 245.8 96.1 247.2 97.5 248.7 99.1 250.2 
100.8 251.7 102.6 253.2 104.5 254.7 106.6 256.2 108.8 257.7 111.2 259.3 113.7 
260.8 116.3 262.4 119.0 264.0 121.8 265.6 124.8 267.1 127.9 268.7 131.1 270.3 
134.5 271.9 137.9 273.5 141.5 275.1 145.1 276.7 148.9 278.2 152.8 279.8 156.7 
281.4 160.8 283.0 165.0 284.5 169.2 286.1 173.6 287.6 178.0 289.1 182.6 290.6 
187.2 292.1 191.8 293.6 196 [...]
+<path d="M132.7 442.0 134.9 443.9 137.1 445.6 139.5 447.3 142.0 448.8 144.6 
450.2 147.3 451.5 150.1 452.6 153.0 453.7 156.0 454.6 159.1 455.4 162.3 456.0 
165.6 456.5 169.0 456.9 172.5 457.2 176.1 457.4 179.7 457.4 183.4 457.3 187.3 
457.1 191.2 456.7 195.1 456.2 199.2 455.6 203.3 454.9 207.4 454.0 211.7 453.0 
216.0 451.9 220.3 450.7 224.7 449.3 229.2 447.9 233.7 446.3 238.3 444.5 242.9 
442.7 247.5 440.8 252.2 438.7 256.9 436.5 261.6 434.2 266.4 431.8 271.2 429.3 
276.0 426.7 280.8 423.9 28 [...]
+<path d="M381.7 129.8 386.1 134.8 390.4 139.9 394.6 145.0 398.7 150.3 402.8 
155.6 406.8 161.0 410.8 166.5 414.6 172.1 418.4 177.7 422.1 183.4 425.8 189.1 
429.3 195.0 432.8 200.8 436.1 206.7 439.4 212.7 442.6 218.7 445.6 224.7 448.6 
230.8 451.5 236.9 454.2 243.0 456.9 249.1 459.4 255.3 461.9 261.5 464.2 267.6 
466.4 273.8 468.6 280.0 470.5 286.1 472.4 292.3 474.2 298.5 475.8 304.6 477.3 
310.7 478.7 316.8 480.0 322.8 481.1 328.8 482.2 334.8 483.1 340.7 483.8 346.6 
484.5 352.5 485.0 358.2 48 [...]
+<path d="M166.5 49.0 170.0 47.1 173.5 45.3 177.1 43.7 180.8 42.2 184.5 40.9 
188.4 39.7 192.3 38.7 196.3 37.9 200.4 37.2 204.5 36.7 208.7 36.3 213.0 36.1 
217.3 36.1 221.7 36.2 226.2 36.5 230.7 37.0 235.2 37.6 239.8 38.3 244.4 39.3 
249.1 40.4 253.8 41.6 258.5 43.0 263.2 44.6 268.0 46.3 272.8 48.2 277.6 50.2 
282.5 52.4 287.3 54.7 292.2 57.2 297.0 59.8 301.9 62.6 306.8 65.5 311.6 68.6 
316.5 71.8 321.3 75.1 326.2 78.6 331.0 82.2 335.7 85.9 340.5 89.8 345.2 93.8 
349.9 97.9 354.6 102.1 359.2 10 [...]
+<circle r="2.2" fill="#7C297D" opacity="0.25"><animateMotion dur="26s" 
begin="-0.62s" repeatCount="indefinite" calcMode="linear" path="M478.2 278.4 
475.2 276.9 472.1 275.3 468.9 273.7 465.5 272.1 462.1 270.5 458.5 268.9 454.9 
267.3 451.1 265.8 447.2 264.2 443.3 262.6 439.2 261.0 435.0 259.5 430.8 257.9 
426.4 256.4 422.0 254.9 417.4 253.4 412.8 251.9 408.2 250.4 403.4 248.9 398.6 
247.4 393.7 246.0 388.7 244.6 383.7 243.2 378.7 241.8 373.5 240.4 368.3 239.1 
363.1 237.7 357.9 236.4 352.5 23 [...]
+<circle r="2.6" fill="#7C297D" opacity="0.45"><animateMotion dur="26s" 
begin="-0.34s" repeatCount="indefinite" calcMode="linear" path="M478.2 278.4 
475.2 276.9 472.1 275.3 468.9 273.7 465.5 272.1 462.1 270.5 458.5 268.9 454.9 
267.3 451.1 265.8 447.2 264.2 443.3 262.6 439.2 261.0 435.0 259.5 430.8 257.9 
426.4 256.4 422.0 254.9 417.4 253.4 412.8 251.9 408.2 250.4 403.4 248.9 398.6 
247.4 393.7 246.0 388.7 244.6 383.7 243.2 378.7 241.8 373.5 240.4 368.3 239.1 
363.1 237.7 357.9 236.4 352.5 23 [...]
+<use xlink:href="#sat" href="#sat"><animateMotion dur="26s" begin="0.00s" 
repeatCount="indefinite" calcMode="linear" path="M478.2 278.4 475.2 276.9 472.1 
275.3 468.9 273.7 465.5 272.1 462.1 270.5 458.5 268.9 454.9 267.3 451.1 265.8 
447.2 264.2 443.3 262.6 439.2 261.0 435.0 259.5 430.8 257.9 426.4 256.4 422.0 
254.9 417.4 253.4 412.8 251.9 408.2 250.4 403.4 248.9 398.6 247.4 393.7 246.0 
388.7 244.6 383.7 243.2 378.7 241.8 373.5 240.4 368.3 239.1 363.1 237.7 357.9 
236.4 352.5 235.2 347.2 23 [...]
+<circle r="2.2" fill="#D22128" opacity="0.25"><animateMotion dur="38s" 
begin="-0.91s" repeatCount="indefinite" calcMode="linear" path="M123.6 344.4 
122.2 348.8 120.9 353.2 119.7 357.5 118.6 361.8 117.7 366.0 116.8 370.2 116.2 
374.2 115.6 378.3 115.1 382.2 114.8 386.1 114.7 389.9 114.6 393.6 114.7 397.2 
114.9 400.7 115.2 404.2 115.6 407.5 116.2 410.8 116.9 414.0 117.7 417.0 118.7 
420.0 119.8 422.9 121.0 425.7 122.3 428.3 123.7 430.9 125.3 433.3 127.0 435.7 
128.8 437.9 130.7 440.0 132.7 44 [...]
+<circle r="2.6" fill="#D22128" opacity="0.45"><animateMotion dur="38s" 
begin="-0.49s" repeatCount="indefinite" calcMode="linear" path="M123.6 344.4 
122.2 348.8 120.9 353.2 119.7 357.5 118.6 361.8 117.7 366.0 116.8 370.2 116.2 
374.2 115.6 378.3 115.1 382.2 114.8 386.1 114.7 389.9 114.6 393.6 114.7 397.2 
114.9 400.7 115.2 404.2 115.6 407.5 116.2 410.8 116.9 414.0 117.7 417.0 118.7 
420.0 119.8 422.9 121.0 425.7 122.3 428.3 123.7 430.9 125.3 433.3 127.0 435.7 
128.8 437.9 130.7 440.0 132.7 44 [...]
+<use xlink:href="#sat" href="#sat"><animateMotion dur="38s" begin="0.00s" 
repeatCount="indefinite" calcMode="linear" path="M123.6 344.4 122.2 348.8 120.9 
353.2 119.7 357.5 118.6 361.8 117.7 366.0 116.8 370.2 116.2 374.2 115.6 378.3 
115.1 382.2 114.8 386.1 114.7 389.9 114.6 393.6 114.7 397.2 114.9 400.7 115.2 
404.2 115.6 407.5 116.2 410.8 116.9 414.0 117.7 417.0 118.7 420.0 119.8 422.9 
121.0 425.7 122.3 428.3 123.7 430.9 125.3 433.3 127.0 435.7 128.8 437.9 130.7 
440.0 132.7 442.0 134.9 44 [...]
+<circle r="2.2" fill="#DD552C" opacity="0.25"><animateMotion dur="50s" 
begin="-1.20s" repeatCount="indefinite" calcMode="linear" path="M381.7 129.8 
386.1 134.8 390.4 139.9 394.6 145.0 398.7 150.3 402.8 155.6 406.8 161.0 410.8 
166.5 414.6 172.1 418.4 177.7 422.1 183.4 425.8 189.1 429.3 195.0 432.8 200.8 
436.1 206.7 439.4 212.7 442.6 218.7 445.6 224.7 448.6 230.8 451.5 236.9 454.2 
243.0 456.9 249.1 459.4 255.3 461.9 261.5 464.2 267.6 466.4 273.8 468.6 280.0 
470.5 286.1 472.4 292.3 474.2 29 [...]
+<circle r="2.6" fill="#DD552C" opacity="0.45"><animateMotion dur="50s" 
begin="-0.65s" repeatCount="indefinite" calcMode="linear" path="M381.7 129.8 
386.1 134.8 390.4 139.9 394.6 145.0 398.7 150.3 402.8 155.6 406.8 161.0 410.8 
166.5 414.6 172.1 418.4 177.7 422.1 183.4 425.8 189.1 429.3 195.0 432.8 200.8 
436.1 206.7 439.4 212.7 442.6 218.7 445.6 224.7 448.6 230.8 451.5 236.9 454.2 
243.0 456.9 249.1 459.4 255.3 461.9 261.5 464.2 267.6 466.4 273.8 468.6 280.0 
470.5 286.1 472.4 292.3 474.2 29 [...]
+<use xlink:href="#sat" href="#sat"><animateMotion dur="50s" begin="0.00s" 
repeatCount="indefinite" calcMode="linear" path="M381.7 129.8 386.1 134.8 390.4 
139.9 394.6 145.0 398.7 150.3 402.8 155.6 406.8 161.0 410.8 166.5 414.6 172.1 
418.4 177.7 422.1 183.4 425.8 189.1 429.3 195.0 432.8 200.8 436.1 206.7 439.4 
212.7 442.6 218.7 445.6 224.7 448.6 230.8 451.5 236.9 454.2 243.0 456.9 249.1 
459.4 255.3 461.9 261.5 464.2 267.6 466.4 273.8 468.6 280.0 470.5 286.1 472.4 
292.3 474.2 298.5 475.8 30 [...]
+<line x1="150.0" y1="535.0" x2="450.0" y2="535.0" stroke="#7C297D" 
stroke-opacity="0.25" stroke-width="4" stroke-linecap="round"/>
+<rect x="150.0" y="533.0" width="0" height="4" rx="2" 
fill="url(#timefill)"><animate attributeName="width" from="0" to="300.0" 
dur="14s" repeatCount="indefinite"/></rect>
+<line x1="150.0" y1="540.0" x2="150.0" y2="546.0" stroke="#999999" 
stroke-width="1"/>
+<text x="150.0" y="559.0" text-anchor="middle" font-family="system-ui, 
-apple-system, 'Segoe UI', Arial, sans-serif" font-size="11" 
fill="#999999">08:00Z</text>
+<line x1="187.5" y1="540.0" x2="187.5" y2="543.0" stroke="#999999" 
stroke-width="1"/>
+<line x1="225.0" y1="540.0" x2="225.0" y2="543.0" stroke="#999999" 
stroke-width="1"/>
+<line x1="262.5" y1="540.0" x2="262.5" y2="543.0" stroke="#999999" 
stroke-width="1"/>
+<line x1="300.0" y1="540.0" x2="300.0" y2="546.0" stroke="#999999" 
stroke-width="1"/>
+<text x="300.0" y="559.0" text-anchor="middle" font-family="system-ui, 
-apple-system, 'Segoe UI', Arial, sans-serif" font-size="11" 
fill="#999999">12:00Z</text>
+<line x1="337.5" y1="540.0" x2="337.5" y2="543.0" stroke="#999999" 
stroke-width="1"/>
+<line x1="375.0" y1="540.0" x2="375.0" y2="543.0" stroke="#999999" 
stroke-width="1"/>
+<line x1="412.5" y1="540.0" x2="412.5" y2="543.0" stroke="#999999" 
stroke-width="1"/>
+<line x1="450.0" y1="540.0" x2="450.0" y2="546.0" stroke="#999999" 
stroke-width="1"/>
+<text x="450.0" y="559.0" text-anchor="middle" font-family="system-ui, 
-apple-system, 'Segoe UI', Arial, sans-serif" font-size="11" 
fill="#999999">16:00Z</text>
+<text x="136.0" y="539.0" text-anchor="end" font-family="Georgia, 'Times New 
Roman', serif" font-style="italic" font-size="16" fill="#3C3C3C">t</text>
+<circle cx="150.0" cy="535.0" r="6" fill="#FFFFFF" stroke="#D22128" 
stroke-width="2.5"><animate attributeName="cx" from="150.0" to="450.0" 
dur="14s" repeatCount="indefinite"/></circle>
+</svg>
\ No newline at end of file
diff --git a/static/images/topbar-pattern.svg b/static/images/topbar-pattern.svg
new file mode 100644
index 00000000..8561b33d
--- /dev/null
+++ b/static/images/topbar-pattern.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 2400 80" width="2400" 
height="80" preserveAspectRatio="xMinYMid slice">
+<defs>
+  <linearGradient id="fade" x1="0" x2="1">
+    <stop offset="0" stop-color="#FFFFFF" stop-opacity="0"/>
+    <stop offset="0.08" stop-color="#FFFFFF" stop-opacity="0"/>
+    <stop offset="0.24" stop-color="#FFFFFF" stop-opacity="1"/>
+  </linearGradient>
+  <mask id="m"><rect width="2400" height="80" fill="url(#fade)"/></mask>
+</defs>
+<g mask="url(#m)" stroke="#FFFFFF" stroke-width="1"><path d="M883.3 -18.0 
883.3 -6.0 873.0 0.0 862.6 -6.0 862.6 -18.0 873.0 -24.0Z" fill="#DB4E2B" 
fill-opacity="0.18"/><path d="M1091.2 -18.0 1091.2 -6.0 1080.8 0.0 1070.4 -6.0 
1070.4 -18.0 1080.8 -24.0Z" fill="#D22228" fill-opacity="0.22"/><path 
d="M1112.0 -18.0 1112.0 -6.0 1101.6 0.0 1091.2 -6.0 1091.2 -18.0 1101.6 -24.0Z" 
fill="#C82232" fill-opacity="0.23"/><path d="M1465.3 -18.0 1465.3 -6.0 1454.9 
0.0 1444.5 -6.0 1444.5 -18.0 1454.9 -2 [...]
+<path mask="url(#m)" d="M-10.4 -18.0 -10.4 -6.0 -20.8 0.0 -31.2 -6.0 -31.2 
-18.0 -20.8 -24.0Z M10.4 -18.0 10.4 -6.0 0.0 0.0 -10.4 -6.0 -10.4 -18.0 -0.0 
-24.0Z M31.2 -18.0 31.2 -6.0 20.8 0.0 10.4 -6.0 10.4 -18.0 20.8 -24.0Z M52.0 
-18.0 52.0 -6.0 41.6 0.0 31.2 -6.0 31.2 -18.0 41.6 -24.0Z M72.7 -18.0 72.7 -6.0 
62.4 0.0 52.0 -6.0 52.0 -18.0 62.4 -24.0Z M93.5 -18.0 93.5 -6.0 83.1 0.0 72.7 
-6.0 72.7 -18.0 83.1 -24.0Z M114.3 -18.0 114.3 -6.0 103.9 0.0 93.5 -6.0 93.5 
-18.0 103.9 -24.0Z M135.1 -1 [...]
+</svg>
\ No newline at end of file
diff --git a/static/sis.css b/static/sis.css
index 32755dfe..5b534f9c 100644
--- a/static/sis.css
+++ b/static/sis.css
@@ -4,6 +4,32 @@
  * http://www.apache.org/licenses/LICENSE-2.0
  */
 
+/*
+ * ┌──────────────────────────────────────────────────────────┐
+ * │ Colors of the Apache SIS logo, used everywhere below.    │
+ * └──────────────────────────────────────────────────────────┘
+ */
+:root {
+  --sis-purple:      #7C297D;     /* Base of the feather and dots of "S.I.S". 
*/
+  --sis-purple-dark: #5E1F5F;
+  --sis-red:         #D22128;
+  --sis-orange:      #DD552C;
+  --sis-amber:       #F69A23;
+  --sis-ink:         #3C3C3C;     /* Letters "S.I.S". */
+  --sis-grey:        #999999;     /* Letters "APACHE". */
+
+  --text:            #2E2E2E;
+  --text-muted:      #6B6B6B;
+  --border:          #E7E1E8;
+  --surface:         #FFFFFF;
+  --surface-alt:     #F8F5F9;     /* Light tint of the purple. */
+  --surface-code:    #FAF8FB;
+  --accent-gradient: linear-gradient(90deg, var(--sis-amber), 
var(--sis-orange), var(--sis-red), var(--sis-purple));
+
+  --topbar-height:   5rem;
+  --radius:          0.5rem;
+}
+
 /*
  * ┌──────────────────────────────────────────────────────────┐
  * │ Modifications to standard elements anywhere in the site. │
@@ -15,28 +41,36 @@
 *::after {
   box-sizing: border-box;
 }
+html {
+  scroll-padding-top: calc(var(--topbar-height) + 1rem);    /* Anchors not 
hidden by the top bar. */
+}
 body {
-  margin:      0;
-  padding-top: 3.5rem;
-  font-family: system-ui, "Helvetica Neue", Arial, "Noto Sans", "Liberation 
Sans", sans-serif;
+  margin:           0;
+  padding-top:      var(--topbar-height);
+  font-family:      system-ui, -apple-system, "Segoe UI", "Helvetica Neue", 
Arial, "Noto Sans", "Liberation Sans", sans-serif;
+  font-size:        1rem;
+  line-height:      1.6;
+  color:            var(--text);
+  background-color: var(--surface);
+  -webkit-font-smoothing: antialiased;
 }
 pre, code {
   /* Avoid Monaco font, because box (or tree) symbols do not render well. */
-  font-family: Menlo,Consolas,"Courier New",monospace;
+  font-family: Menlo, Consolas, "Courier New", monospace;
   font-size:   0.875em;
 }
 pre code {
   font-size: inherit;
 }
-.topbar, .left-bar {
-  background-color: #003366;
-}
 a {
   text-decoration: none;
-  color: #1f618d;
+  color:           var(--sis-purple);
+  transition:      color 0.15s;
 }
 a:hover {
-  color: #0a58ca;
+  color:           var(--sis-red);
+  text-decoration: underline;
+  text-underline-offset: 0.15em;
 }
 a > code {
   color: inherit;
@@ -45,20 +79,27 @@ summary {
   display: list-item;
   cursor:  pointer;
 }
+summary:hover {
+  color: var(--sis-purple);
+}
 img {
   vertical-align: middle;
 }
 footer {
-  padding-top: 1rem;
-  font-size: smaller;
-  color: gray;
+  margin-top:  4rem;
+  padding:     1.5rem 0 1rem 0;
+  border-top:  1px solid var(--border);
+  font-size:   0.8125rem;
+  color:       var(--text-muted);
 }
 footer p {
   text-align: center;
 }
 footer a {
-  text-decoration: none;
-  color: gray;
+  color: var(--text-muted);
+}
+footer a:hover {
+  color: var(--sis-purple);
 }
 
 /*
@@ -66,44 +107,48 @@ footer a {
  * │ Classes used in the top bar and in the page title. │
  * └────────────────────────────────────────────────────┘
  */
-img.apache-con {
-  width:  auto;
-  height: 2.5rem;
-}
-img.sis-logo {
-  width:        auto;
-  height:       4rem;
-  margin-right: 2rem;
-}
-p.page-title {
-  font-size:      2.5rem;
-  font-weight:    bolder;
-  text-align:     left;
-  margin-top:     2rem;
-  padding-bottom: 0.75rem;
-}
-div.topbar {
-  position:        fixed;
-  display:         flex;
-  flex-wrap:       wrap;
-  align-items:     center;
-  justify-content: space-between;
-  padding-left:    1.0rem;
-  padding-right:   0.5rem;
-  padding-top:     0.5rem;
-  padding-bottom:  0.5rem;
-  top:             0;
-  right:           0;
-  left:            0;
+header.topbar {
+  position:         fixed;
+  z-index:          10;
+  top:              0;
+  right:            0;
+  left:             0;
+  height:           var(--topbar-height);
+  display:          flex;
+  align-items:      center;
+  justify-content:  space-between;
+  padding:          0 1rem;
+  background-color: rgba(255, 255, 255, 0.96);
+  background-image: url("images/topbar-pattern.svg");     /* Hexagons similar 
to the discrete global grid. */
+  background-repeat: repeat-x;
+  background-size:  auto 100%;
+  box-shadow:       0 1px 8px rgba(60, 60, 60, 0.08);
+}
+header.topbar::after {      /* Thin strip with the colors of the feather. */
+  content:    "";
+  position:   absolute;
+  left:       0;
+  right:      0;
+  bottom:     0;
+  height:     3px;
+  background: var(--accent-gradient);
 }
 a.topbar-brand {
-  margin-right:    1rem;
-  font-size:       1.5rem;
-  font-weight:     bolder;
-  color:           white;
+  display:     flex;
+  align-items: center;
+  height:      100%;
 }
 a.topbar-brand:hover {
-  color: white;
+  text-decoration: none;
+}
+img.sis-logo {
+  width:  auto;
+  height: 4.25rem;
+}
+img.apache-con {
+  width:         auto;
+  height:        2.5rem;
+  border-radius: 0.25rem;
 }
 ul.topbar-items {
   display:        flex;
@@ -113,6 +158,25 @@ ul.topbar-items {
   margin-top:     0;
   margin-bottom:  0;
 }
+p.page-title {
+  font-size:      2.25rem;
+  font-weight:    700;
+  line-height:    1.2;
+  letter-spacing: -0.01em;
+  color:          var(--sis-ink);
+  text-align:     left;
+  margin-top:     2.5rem;
+  margin-bottom:  1.5rem;
+}
+p.page-title::after {       /* Short underline with the colors of the feather. 
*/
+  content:       "";
+  display:       block;
+  width:         4rem;
+  height:        4px;
+  margin-top:    0.75rem;
+  border-radius: 2px;
+  background:    var(--accent-gradient);
+}
 
 /*
  * 
┌─────────────────────────────────────────────────────────────────────────────┐
@@ -121,6 +185,7 @@ ul.topbar-items {
  */
 .container {
   width:        100%;
+  max-width:    68rem;
   margin-right: auto;
   margin-left:  auto;
 }
@@ -129,48 +194,49 @@ ul.topbar-items {
   flex-wrap:  nowrap;
   margin-top: 0;
 }
-.main-section > * {
-  flex-shrink: 0;
-  width:       100%;
-  max-width:   100%;
-  margin-top:  0;
-}
 .main-content {
-  flex: 1 0 0%;
-  padding-right: 1.5rem;
-  padding-left:  1.5rem;
+  flex:          1 1 0%;
+  min-width:     0;            /* Let wide tables and code blocks scroll 
instead of widening the page. */
+  padding-right: 2rem;
+  padding-left:  2rem;
 }
 .left-bar {
-  padding:     1rem;
-  width:      12rem;
-  min-height: 40rem;
+  flex-shrink:      0;
+  width:            13rem;
+  background-color: var(--surface-alt);
+  border-right:     1px solid var(--border);
 }
-.left-bar, ul.nav-pills {
+ul.nav-pills {
+  position:       sticky;
+  top:            var(--topbar-height);
   display:        flex;
   flex-direction: column;
-  flex-shrink:    0;
-  margin-top:     0;
-  margin-bottom:  0;
-  padding-left:   0.5rem;
-}
-ul.nav-pills {
-  flex-wrap:      wrap;
-  padding-left:   0;
+  gap:            0.125rem;
   list-style:     none;
-  position:       fixed;
+  margin:         0;
+  padding:        1.25rem 0.75rem;
 }
 a.nav-link {
   display:         block;
-  padding:         0.5rem 1rem;
-  color:           #0d6efd;
+  padding:         0.5rem 0.875rem;
+  border-radius:   var(--radius);
+  font-size:       0.9375rem;
+  font-weight:     500;
   text-decoration: none;
+  transition:      background-color 0.15s, color 0.15s;
 }
 a.nav-link.inactive {
-  color: white;
+  color: var(--sis-ink);
+}
+a.nav-link.inactive:hover {
+  color:            var(--sis-purple);
+  background-color: rgba(124, 41, 125, 0.08);
+  text-decoration:  none;
 }
 ul.nav-pills a.nav-link.active {
-  color: white;
-  background-color: #0d6efd;
+  color:            white;
+  background-color: var(--sis-purple);
+  box-shadow:       0 2px 6px rgba(124, 41, 125, 0.3);
 }
 
 /*
@@ -178,17 +244,29 @@ ul.nav-pills a.nav-link.active {
  * │ Classes for the main content (article) │
  * └────────────────────────────────────────┘
  */
+main h1, main h2, main h3, main h4 {
+  line-height: 1.3;
+  color:       var(--sis-ink);
+}
 main h1 {
-  margin-top:    3rem;
-  margin-bottom: 2rem;
-  border-bottom: 2px solid rgb(192, 192, 192);
+  margin-top:     3rem;
+  margin-bottom:  1.5rem;
+  padding-bottom: 0.4rem;
+  font-size:      1.75rem;
+  font-weight:    700;
+  border-bottom:  1px solid var(--border);
 }
 main h2 {
-  margin-top: 2rem;
+  margin-top: 2.25rem;
+  font-size:  1.375rem;
+  color:      var(--sis-purple);
+}
+main h3 {
+  margin-top: 1.75rem;
+  font-size:  1.125rem;
 }
 main p {
-  text-align:    justify;
-  line-height:   1.4;
+  margin-top:    0;
   margin-bottom: 1rem;
 }
 main abbr[title] {
@@ -198,7 +276,13 @@ main ol,
 main ul {
   margin-top:    0;
   margin-bottom: 1rem;
-  padding-left:  2rem;
+  padding-left:  1.75rem;
+}
+main li {
+  margin-bottom: 0.25rem;
+}
+main li::marker {
+  color: var(--sis-purple);
 }
 main ol ol,
 main ol ul,
@@ -208,53 +292,148 @@ main ul ol {
 }
 main pre {
   /* Shall be small enough for avoiding space between box (or tree) symbols. */
-  line-height:    1.25;
-  border-left:    0.25rem solid gray;
-  padding-left:   1rem;
-  padding-top:    0.5rem;
-  padding-bottom: 0.5rem;
-  margin-top:     0;
-  margin-bottom:  1rem;
-  display:        block;
-  overflow:       auto;
+  line-height:      1.25;
+  background-color: var(--surface-code);
+  border:           1px solid var(--border);
+  border-left:      4px solid var(--sis-amber);
+  border-radius:    var(--radius);
+  padding:          0.875rem 1rem;
+  margin-top:       0;
+  margin-bottom:    1.25rem;
+  display:          block;
+  overflow:         auto;
+}
+main pre.chroma, main .highlight pre {
+  background-color: var(--surface-code);
 }
 main code {
-  padding: 2px 2px;
-  word-wrap: break-word;
+  padding:       0.1em 0.3em;
+  border-radius: 0.25rem;
+  background-color: var(--surface-alt);
+  word-wrap:     break-word;
 }
-main table {
-  background-color: #F4F8FF;
-  border-color:     Black;
-  border-style:     solid;
-  border-width:     1px;
-  border-spacing:   0;
-  margin:           12px 0 12px 0;
+main pre code {
   padding:          0;
-  width:            auto;
+  background-color: transparent;
+}
+main table {
+  border-collapse: separate;
+  border-spacing:  0;
+  border:          1px solid var(--border);
+  border-radius:   var(--radius);
+  overflow:        hidden;
+  margin:          1rem 0 1.5rem 0;
+  padding:         0;
+  width:           auto;
+  font-size:       0.9375rem;
 }
 main table tr th {
-  background-color:    #B9DCFF;
-  border-bottom-color: Black;
-  border-bottom-style: solid;
-  border-bottom-width: 1px;
-  padding:             3px;
+  background-color: #F3EAF3;
+  color:            var(--sis-ink);
+  font-weight:      600;
+  text-align:       left;
+  border-bottom:    2px solid rgba(124, 41, 125, 0.25);
+  padding:          0.5rem 0.75rem;
 }
 main table tr td {
-  padding: 0px 9px;
+  padding:        0.4rem 0.75rem;
   vertical-align: text-top;
+  border-top:     1px solid var(--border);
+}
+main table tr:first-child td {
+  border-top: none;
+}
+main table tbody tr:nth-child(even) td {
+  background-color: #FCFAFC;
+}
+main blockquote {
+  margin:           1rem 0;
+  padding:          0.5rem 1rem;
+  border-left:      4px solid var(--sis-purple);
+  background-color: var(--surface-alt);
+  border-radius:    0 var(--radius) var(--radius) 0;
+}
+div.hero {                  /* Illustration and summary on the home page. */
+  display:          flex;
+  align-items:      center;
+  gap:              1.5rem;
+  margin:           0 0 2rem 0;
+  padding:          1rem 2rem 1rem 1rem;
+  border-radius:    1rem;
+  background-color: var(--surface-alt);
+  background-image: radial-gradient(rgba(124, 41, 125, 0.10) 1px, transparent 
1.5px),
+                    linear-gradient(135deg, #FBF8FB, #F2EAF3);
+  background-size:  24px 24px, auto;
+  box-shadow:       0 2px 12px rgba(124, 41, 125, 0.10);
+}
+img.hero-globe {
+  flex:      0 1 26rem;
+  min-width: 0;
+  width:     100%;
+  height:    auto;
+}
+div.hero-text {
+  flex: 1 1 18rem;
+}
+p.hero-tagline {
+  margin:         0 0 1rem 0;
+  font-size:      2rem;
+  font-weight:    700;
+  line-height:    1.2;
+  letter-spacing: -0.01em;
+  color:          var(--sis-ink);
+}
+p.hero-tagline span {
+  color: var(--sis-orange);
+}
+div.hero-text ul {
+  padding-left: 1.25rem;
+}
+div.hero-text li {
+  margin-bottom: 0.4rem;
+}
+p.hero-buttons {
+  display:    flex;
+  flex-wrap:  wrap;
+  gap:        0.75rem;
+  margin:     1.25rem 0 0 0;
+}
+a.button {
+  display:          inline-block;
+  padding:          0.55rem 1.25rem;
+  border-radius:    999px;
+  font-weight:      600;
+  color:            white;
+  background-color: var(--sis-purple);
+  box-shadow:       0 2px 6px rgba(124, 41, 125, 0.3);
+  transition:       background-color 0.15s;
+}
+a.button:hover {
+  color:            white;
+  background-color: var(--sis-purple-dark);
+  text-decoration:  none;
+}
+a.button.secondary {
+  color:            var(--sis-purple);
+  background-color: white;
+  box-shadow:       inset 0 0 0 1.5px var(--sis-purple);
+}
+a.button.secondary:hover {
+  color:            var(--sis-red);
+  box-shadow:       inset 0 0 0 1.5px var(--sis-red);
 }
 div.warning {
-  color:        crimson;
-  background:   lightyellow;
-  border-color: lightcoral;
-  border-style: solid;
-  border-width: 2px;
-  padding:      9px;
-  margin:      21px;
+  color:            #8A1C1F;
+  background-color: #FFF6EC;
+  border:           1px solid var(--sis-amber);
+  border-left:      4px solid var(--sis-red);
+  border-radius:    var(--radius);
+  padding:          0.75rem 1rem;
+  margin:           1.5rem 0;
 }
 
 table.images {
-  background-color: #FDFEFF;
+  background-color: var(--surface);
   border-style:     none;
 }
 table.images tr th,
@@ -263,7 +442,7 @@ table.images tr td {
   vertical-align: middle;
   border-width:   1px;
   border-style:   dotted;
-  border-color:   cornflowerblue;
+  border-color:   rgba(124, 41, 125, 0.35);
 }
 table.images tr td img {
   margin:     10px;
@@ -275,3 +454,43 @@ table.images tr td img {
 table.images tr td img:hover {
   transform: scale(3);
 }
+
+/*
+ * ┌────────────────────────────────────────────────────────────┐
+ * │ Small screens: the navigation bar goes above the content. │
+ * └────────────────────────────────────────────────────────────┘
+ */
+@media (max-width: 52rem) {
+  .main-section {
+    flex-direction: column;
+  }
+  .left-bar {
+    width:         100%;
+    border-right:  none;
+    border-bottom: 1px solid var(--border);
+  }
+  ul.nav-pills {
+    position:       static;
+    flex-direction: row;
+    flex-wrap:      wrap;
+    padding:        0.75rem;
+  }
+  .main-content {
+    padding-right: 1rem;
+    padding-left:  1rem;
+  }
+  img.apache-con {
+    display: none;
+  }
+  p.page-title {
+    font-size: 1.75rem;
+  }
+  div.hero {
+    flex-direction: column;
+    padding:        1rem;
+  }
+  img.hero-globe {
+    flex-basis: auto;
+    max-width:  26rem;
+  }
+}
diff --git a/static/syntax.css b/static/syntax.css
index 2d85d088..6eaf9985 100644
--- a/static/syntax.css
+++ b/static/syntax.css
@@ -2,74 +2,75 @@
  *
  * - Do not use dark background for `chroma.err`, because this
  *   is sometime valid syntax not recognized by the highlighter.
+ * - Colors derived from the Apache SIS logo (see `sis.css`).
  */
-/* Background */ .chroma { color: #272822; background-color: #fafafa }
+/* Background */ .chroma { color: #2E2E2E; background-color: #FAF8FB }
 /* Error */ .chroma .err { color: #960050; }
 /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; 
border: 0; }
 /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; 
border: 0; width: auto; overflow: auto; display: block; }
 /* LineHighlight */ .chroma .hl { display: block; width: 
100%;background-color: #ffffcc }
 /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 
0.4em;color: #7f7f7f }
 /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 
0.4em;color: #7f7f7f }
-/* Keyword */ .chroma .k { color: #00a8c8 }
-/* KeywordConstant */ .chroma .kc { color: #00a8c8 }
-/* KeywordDeclaration */ .chroma .kd { color: #00a8c8 }
-/* KeywordNamespace */ .chroma .kn { color: #f92672 }
-/* KeywordPseudo */ .chroma .kp { color: #00a8c8 }
-/* KeywordReserved */ .chroma .kr { color: #00a8c8 }
-/* KeywordType */ .chroma .kt { color: #00a8c8 }
+/* Keyword */ .chroma .k { color: #7C297D }
+/* KeywordConstant */ .chroma .kc { color: #7C297D }
+/* KeywordDeclaration */ .chroma .kd { color: #7C297D }
+/* KeywordNamespace */ .chroma .kn { color: #D22128 }
+/* KeywordPseudo */ .chroma .kp { color: #7C297D }
+/* KeywordReserved */ .chroma .kr { color: #7C297D }
+/* KeywordType */ .chroma .kt { color: #7C297D }
 /* Name */ .chroma .n { color: #111111 }
-/* NameAttribute */ .chroma .na { color: #75af00 }
+/* NameAttribute */ .chroma .na { color: #1F6F8B }
 /* NameBuiltin */ .chroma .nb { color: #111111 }
 /* NameBuiltinPseudo */ .chroma .bp { color: #111111 }
-/* NameClass */ .chroma .nc { color: #75af00 }
-/* NameConstant */ .chroma .no { color: #00a8c8 }
-/* NameDecorator */ .chroma .nd { color: #75af00 }
+/* NameClass */ .chroma .nc { color: #1F6F8B }
+/* NameConstant */ .chroma .no { color: #7C297D }
+/* NameDecorator */ .chroma .nd { color: #1F6F8B }
 /* NameEntity */ .chroma .ni { color: #111111 }
-/* NameException */ .chroma .ne { color: #75af00 }
-/* NameFunction */ .chroma .nf { color: #75af00 }
+/* NameException */ .chroma .ne { color: #1F6F8B }
+/* NameFunction */ .chroma .nf { color: #1F6F8B }
 /* NameFunctionMagic */ .chroma .fm { color: #111111 }
 /* NameLabel */ .chroma .nl { color: #111111 }
 /* NameNamespace */ .chroma .nn { color: #111111 }
-/* NameOther */ .chroma .nx { color: #75af00 }
+/* NameOther */ .chroma .nx { color: #1F6F8B }
 /* NameProperty */ .chroma .py { color: #111111 }
-/* NameTag */ .chroma .nt { color: #f92672 }
+/* NameTag */ .chroma .nt { color: #D22128 }
 /* NameVariable */ .chroma .nv { color: #111111 }
 /* NameVariableClass */ .chroma .vc { color: #111111 }
 /* NameVariableGlobal */ .chroma .vg { color: #111111 }
 /* NameVariableInstance */ .chroma .vi { color: #111111 }
 /* NameVariableMagic */ .chroma .vm { color: #111111 }
-/* Literal */ .chroma .l { color: #ae81ff }
-/* LiteralDate */ .chroma .ld { color: #d88200 }
-/* LiteralString */ .chroma .s { color: #d88200 }
-/* LiteralStringAffix */ .chroma .sa { color: #d88200 }
-/* LiteralStringBacktick */ .chroma .sb { color: #d88200 }
-/* LiteralStringChar */ .chroma .sc { color: #d88200 }
-/* LiteralStringDelimiter */ .chroma .dl { color: #d88200 }
-/* LiteralStringDoc */ .chroma .sd { color: #d88200 }
-/* LiteralStringDouble */ .chroma .s2 { color: #d88200 }
-/* LiteralStringEscape */ .chroma .se { color: #8045ff }
-/* LiteralStringHeredoc */ .chroma .sh { color: #d88200 }
-/* LiteralStringInterpol */ .chroma .si { color: #d88200 }
-/* LiteralStringOther */ .chroma .sx { color: #d88200 }
-/* LiteralStringRegex */ .chroma .sr { color: #d88200 }
-/* LiteralStringSingle */ .chroma .s1 { color: #d88200 }
-/* LiteralStringSymbol */ .chroma .ss { color: #d88200 }
-/* LiteralNumber */ .chroma .m { color: #ae81ff }
-/* LiteralNumberBin */ .chroma .mb { color: #ae81ff }
-/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff }
-/* LiteralNumberHex */ .chroma .mh { color: #ae81ff }
-/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff }
-/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff }
-/* LiteralNumberOct */ .chroma .mo { color: #ae81ff }
-/* Operator */ .chroma .o { color: #f92672 }
-/* OperatorWord */ .chroma .ow { color: #f92672 }
+/* Literal */ .chroma .l { color: #9C5D00 }
+/* LiteralDate */ .chroma .ld { color: #B5491B }
+/* LiteralString */ .chroma .s { color: #B5491B }
+/* LiteralStringAffix */ .chroma .sa { color: #B5491B }
+/* LiteralStringBacktick */ .chroma .sb { color: #B5491B }
+/* LiteralStringChar */ .chroma .sc { color: #B5491B }
+/* LiteralStringDelimiter */ .chroma .dl { color: #B5491B }
+/* LiteralStringDoc */ .chroma .sd { color: #B5491B }
+/* LiteralStringDouble */ .chroma .s2 { color: #B5491B }
+/* LiteralStringEscape */ .chroma .se { color: #7C297D }
+/* LiteralStringHeredoc */ .chroma .sh { color: #B5491B }
+/* LiteralStringInterpol */ .chroma .si { color: #B5491B }
+/* LiteralStringOther */ .chroma .sx { color: #B5491B }
+/* LiteralStringRegex */ .chroma .sr { color: #B5491B }
+/* LiteralStringSingle */ .chroma .s1 { color: #B5491B }
+/* LiteralStringSymbol */ .chroma .ss { color: #B5491B }
+/* LiteralNumber */ .chroma .m { color: #9C5D00 }
+/* LiteralNumberBin */ .chroma .mb { color: #9C5D00 }
+/* LiteralNumberFloat */ .chroma .mf { color: #9C5D00 }
+/* LiteralNumberHex */ .chroma .mh { color: #9C5D00 }
+/* LiteralNumberInteger */ .chroma .mi { color: #9C5D00 }
+/* LiteralNumberIntegerLong */ .chroma .il { color: #9C5D00 }
+/* LiteralNumberOct */ .chroma .mo { color: #9C5D00 }
+/* Operator */ .chroma .o { color: #D22128 }
+/* OperatorWord */ .chroma .ow { color: #D22128 }
 /* Punctuation */ .chroma .p { color: #111111 }
-/* Comment */ .chroma .c { color: #75715e }
-/* CommentHashbang */ .chroma .ch { color: #75715e }
-/* CommentMultiline */ .chroma .cm { color: #75715e }
-/* CommentSingle */ .chroma .c1 { color: #75715e }
-/* CommentSpecial */ .chroma .cs { color: #75715e }
-/* CommentPreproc */ .chroma .cp { color: #75715e }
-/* CommentPreprocFile */ .chroma .cpf { color: #75715e }
+/* Comment */ .chroma .c { color: #8A8A8A; font-style: italic }
+/* CommentHashbang */ .chroma .ch { color: #8A8A8A; font-style: italic }
+/* CommentMultiline */ .chroma .cm { color: #8A8A8A; font-style: italic }
+/* CommentSingle */ .chroma .c1 { color: #8A8A8A; font-style: italic }
+/* CommentSpecial */ .chroma .cs { color: #8A8A8A; font-style: italic }
+/* CommentPreproc */ .chroma .cp { color: #8A8A8A; font-style: italic }
+/* CommentPreprocFile */ .chroma .cpf { color: #8A8A8A; font-style: italic }
 /* GenericEmph */ .chroma .ge { font-style: italic }
 /* GenericStrong */ .chroma .gs { font-weight: bold }

Reply via email to