all: remove vulncheck page

The page was needed for initial dashboarding of vulnerability findings.
This will now be done outside of the repo. If needed, we can always
revert back to it.

Change-Id: Ide2298609578decd82393b7bc720e699fff4263c
Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/474196
Run-TryBot: Zvonimir Pavlinovic <zpavlinovic@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/internal/worker/server.go b/internal/worker/server.go
index 9afbe7d..c7cd9fd 100644
--- a/internal/worker/server.go
+++ b/internal/worker/server.go
@@ -178,8 +178,6 @@
 	if err != nil {
 		return err
 	}
-	// returns an HTML page displaying information about vulncheck.
-	s.handle("/vulncheck", h.handlePage)
 
 	s.handle("/vulncheck/enqueueall", h.handleEnqueueAll)
 	s.handle("/vulncheck/enqueue", h.handleEnqueue)
diff --git a/internal/worker/vulncheck.go b/internal/worker/vulncheck.go
index a91926d..7561359 100644
--- a/internal/worker/vulncheck.go
+++ b/internal/worker/vulncheck.go
@@ -8,7 +8,6 @@
 	"context"
 	"errors"
 	"fmt"
-	"net/http"
 	"runtime/debug"
 
 	"golang.org/x/pkgsite-metrics/internal/derrors"
@@ -83,232 +82,3 @@
 	}
 	return "", fmt.Errorf("module %s not found", modulePath)
 }
-
-func (h *VulncheckServer) handlePage(w http.ResponseWriter, r *http.Request) error {
-	ctx := r.Context()
-	page, err := h.createVulncheckPage(ctx)
-	if err != nil {
-		return err
-	}
-	tmpl, err := h.Server.maybeLoadTemplate(vulncheckTemplate)
-	if err != nil {
-		return err
-	}
-	return renderPage(ctx, w, page, tmpl)
-}
-
-func (h *VulncheckServer) createVulncheckPage(ctx context.Context) (*VulncheckPage, error) {
-	if h.bqClient == nil {
-		return nil, errBQDisabled
-	}
-	table := h.bqClient.FullTableName(ivulncheck.TableName)
-	page := newPage(table)
-	page.basePage = newBasePage()
-
-	rows, err := ivulncheck.FetchResults(ctx, h.bqClient)
-	if err != nil {
-		return nil, err
-	}
-
-	vulnsScanned := handleVulncheckRows(ctx, page, rows)
-	page.NumVulnsScanned = len(vulnsScanned)
-	page.addErrors()
-	return page, nil
-}
-
-type VulncheckPage struct {
-	basePage
-
-	TableName string
-
-	NumVulnsInDatabase int
-	NumVulnsScanned    int
-
-	VTAStacksResult *VulncheckResult
-	ImportsResult   *VulncheckResult
-
-	Errors []*ErrorCategory
-}
-
-type ErrorCategory struct {
-	Name              string
-	VTANumModules     int
-	ImportsNumModules int
-}
-
-func (p *VulncheckPage) PercentVulnsScanned() float64 {
-	return (float64(p.NumVulnsScanned) / float64(p.NumVulnsInDatabase)) * 100
-}
-
-func (p *VulncheckPage) NumModulesSuccess() int {
-	return p.VTAStacksResult.NumModulesSuccess + p.ImportsResult.NumModulesSuccess
-}
-
-type VulncheckResult struct {
-	NumModulesScanned int
-	NumModulesSuccess int
-	NumModulesError   int
-	NumModulesVuln    int
-
-	ErrorCategory map[string]int
-
-	maxScanSeconds float64
-	sumScanSeconds float64
-
-	maxScanMemory float64
-	sumScanMemory float64
-}
-
-func (v *VulncheckResult) AverageScanSeconds() float64 {
-	return v.sumScanSeconds / float64(v.NumModulesSuccess)
-}
-
-func (v *VulncheckResult) MaxScanSeconds() float64 {
-	return v.maxScanSeconds
-}
-
-// AverageScanMemory in megabytes.
-func (v *VulncheckResult) AverageScanMemory() float64 {
-	return v.sumScanMemory / (float64(v.NumModulesSuccess) * 1024 * 1024)
-}
-
-// MaxScanMemory in megabytes.
-func (v *VulncheckResult) MaxScanMemory() float64 {
-	return v.maxScanMemory / (1024 * 1024)
-}
-
-func (v *VulncheckResult) NumModulesNoVuln() int {
-	return v.NumModulesSuccess - v.NumModulesVuln
-}
-
-func (v *VulncheckResult) PercentSuccess() float64 {
-	return (float64(v.NumModulesSuccess) / float64(v.NumModulesScanned)) * 100
-}
-
-func (v *VulncheckResult) PercentFailed() float64 {
-	return (float64(v.NumModulesError) / float64(v.NumModulesScanned)) * 100
-}
-
-func (v *VulncheckResult) PercentVuln() float64 {
-	return (float64(v.NumModulesVuln) / float64(v.NumModulesSuccess)) * 100
-}
-
-func (v *VulncheckResult) PercentNoVuln() float64 {
-	return (float64(v.NumModulesNoVuln()) / float64(v.NumModulesSuccess)) * 100
-}
-
-func (r *VulncheckResult) update(row *ivulncheck.Result) {
-	r.NumModulesScanned++
-	if row.Error != "" {
-		r.NumModulesError++
-		r.ErrorCategory[row.ErrorCategory]++
-		return
-	}
-	r.NumModulesSuccess++
-
-	s := row.ScanSeconds
-	if s > r.maxScanSeconds {
-		r.maxScanSeconds = s
-	}
-	r.sumScanSeconds += s
-
-	m := float64(row.ScanMemory)
-	if m > r.maxScanMemory {
-		r.maxScanMemory = m
-	}
-	r.sumScanMemory += m
-
-	if len(row.Vulns) > 0 {
-		if row.ScanMode == ModeImports {
-			r.NumModulesVuln++
-		} else {
-			// VTA and VTA with stacks mode.
-			for _, v := range row.Vulns {
-				if v.CallSink.Int64 > 0 {
-					r.NumModulesVuln++
-					break
-				}
-			}
-		}
-	}
-}
-
-// ReportResults contains aggregate results for a
-// vulnerability reports, such as number of modules
-// in which the vulnerability is found by vulncheck.
-type ReportResult struct {
-	VTANumModules     int
-	ImportsNumModules int
-}
-
-// handleVulncheckRows populates page based on vulncheck result rows and
-// returns statistics for each vulnerability detected.
-func handleVulncheckRows(ctx context.Context, page *VulncheckPage, rows []*ivulncheck.Result) map[string]*ReportResult {
-	vulnsScanned := map[string]*ReportResult{}
-	for _, row := range rows {
-		switch row.ScanMode {
-		case ModeVTAStacks:
-			page.VTAStacksResult.update(row)
-		case ModeImports:
-			page.ImportsResult.update(row)
-		default:
-			log.Errorf(ctx, nil, "unexpected mode for %s@%s: %q", row.ModulePath, row.Version, row.ScanMode)
-			continue
-		}
-
-		// For each vuln, count the number of modules in which it
-		// was detected for each mode. Since a vuln in row.Vulns
-		// is defined by a symbol, make sure not to count multiple
-		// symbols of each vuln separately.
-		importsSeen := make(map[string]bool)
-		callsSeen := make(map[string]bool)
-		for _, v := range row.Vulns {
-			if _, ok := vulnsScanned[v.ID]; !ok {
-				vulnsScanned[v.ID] = &ReportResult{}
-			}
-			r := vulnsScanned[v.ID]
-
-			if row.ScanMode == ModeImports {
-				if !importsSeen[v.ID] {
-					r.ImportsNumModules++
-				}
-				importsSeen[v.ID] = true
-			}
-
-			if row.ScanMode == ModeVTAStacks && v.CallSink.Int64 > 0 {
-				if !callsSeen[v.ID] {
-					r.VTANumModules++
-				}
-				callsSeen[v.ID] = true
-			}
-		}
-	}
-	return vulnsScanned
-}
-
-func newPage(table string) *VulncheckPage {
-	return &VulncheckPage{
-		TableName:       table,
-		VTAStacksResult: &VulncheckResult{ErrorCategory: make(map[string]int)},
-		ImportsResult:   &VulncheckResult{ErrorCategory: make(map[string]int)},
-	}
-}
-
-func (page *VulncheckPage) addErrors() {
-	ecs := map[string]*ErrorCategory{}
-	for category, count := range page.VTAStacksResult.ErrorCategory {
-		if _, ok := ecs[category]; !ok {
-			ecs[category] = &ErrorCategory{Name: category}
-		}
-		ecs[category].VTANumModules = count
-	}
-	for category, count := range page.ImportsResult.ErrorCategory {
-		if _, ok := ecs[category]; !ok {
-			ecs[category] = &ErrorCategory{Name: category}
-		}
-		ecs[category].ImportsNumModules = count
-	}
-	for _, ec := range ecs {
-		page.Errors = append(page.Errors, ec)
-	}
-}
diff --git a/internal/worker/vulncheck_test.go b/internal/worker/vulncheck_test.go
deleted file mode 100644
index 65a933a..0000000
--- a/internal/worker/vulncheck_test.go
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2022 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package worker
-
-import (
-	"context"
-	"testing"
-
-	"github.com/google/go-cmp/cmp"
-	"golang.org/x/pkgsite-metrics/internal/bigquery"
-	ivulncheck "golang.org/x/pkgsite-metrics/internal/vulncheck"
-)
-
-func TestVulnsScanned(t *testing.T) {
-	p := newPage("test")
-
-	vuln1A := &ivulncheck.Vuln{ID: "1", Symbol: "A", CallSink: bigquery.NullInt(100)}
-	vuln1B := &ivulncheck.Vuln{ID: "1", Symbol: "B", CallSink: bigquery.NullInt(101)}
-	vuln1C := &ivulncheck.Vuln{ID: "1", Symbol: "C"}
-	vuln2A := &ivulncheck.Vuln{ID: "2", Symbol: "A"}
-
-	rows := []*ivulncheck.Result{
-		{ModulePath: "m1", ScanMode: ModeImports, Vulns: []*ivulncheck.Vuln{vuln1A, vuln1B, vuln1C, vuln2A}},
-		{ModulePath: "m1", ScanMode: ModeVTAStacks, Vulns: []*ivulncheck.Vuln{vuln1A, vuln1B}},
-		{ModulePath: "m2", ScanMode: ModeImports, Vulns: []*ivulncheck.Vuln{vuln2A}},
-		{ModulePath: "m2", ScanMode: ModeVTAStacks, Vulns: []*ivulncheck.Vuln{}},
-	}
-
-	got := handleVulncheckRows(context.Background(), p, rows)
-	// Vuln 1 is detected in m1 module in both IMPORTS and VTA modes.
-	// Vuln 2 is detected in m1 and m2 in IMPORTS mode, but nowhere
-	// in VTA mode.
-	want := map[string]*ReportResult{
-		"1": &ReportResult{ImportsNumModules: 1, VTANumModules: 1},
-		"2": &ReportResult{ImportsNumModules: 2, VTANumModules: 0},
-	}
-	if diff := cmp.Diff(want, got); diff != "" {
-		t.Errorf("mismatch (-want, +got):\n%s", diff)
-	}
-}
diff --git a/static/index.tmpl b/static/index.tmpl
deleted file mode 100644
index aea5637..0000000
--- a/static/index.tmpl
+++ /dev/null
@@ -1,16 +0,0 @@
-<!--
-  Copyright 2022 The Go Authors. All rights reserved.
-  Use of this source code is governed by a BSD-style
-  license that can be found in the LICENSE file.
--->
-
-<!DOCTYPE html>
-<html lang="en">
-<meta charset="utf-8">
-<link href="/static/static.css" rel="stylesheet">
-<title>Go Metrics</title>
-
-<body>
-  <h1>Hello!</h1>
-</body>
-</html>
diff --git a/static/shared/breadcrumb/breadcrumb.css b/static/shared/breadcrumb/breadcrumb.css
deleted file mode 100644
index 42f8dd3..0000000
--- a/static/shared/breadcrumb/breadcrumb.css
+++ /dev/null
@@ -1,26 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Breadcrumb ol {
-  line-height: 1.5rem;
-  white-space: initial;
-}
-.go-Breadcrumb li {
-  align-items: center;
-  color: var(--color-text-subtle);
-  display: inline-flex;
-  font-size: 0.875rem;
-}
-.go-Breadcrumb li:not(:last-child)::after {
-  content: '>';
-  padding: 0 0.5rem;
-}
-.go-Breadcrumb li:last-child > a {
-  color: var(--color-text-subtle);
-}
-.go-Breadcrumb li > .go-Clipboard {
-  margin: 0 0.5rem;
-}
diff --git a/static/shared/breadcrumb/breadcrumb.md b/static/shared/breadcrumb/breadcrumb.md
deleted file mode 100644
index 0d69bac..0000000
--- a/static/shared/breadcrumb/breadcrumb.md
+++ /dev/null
@@ -1,30 +0,0 @@
-## Breadcrumbs
-
----
-
-```html
-<nav class="go-Breadcrumb" aria-label="Breadcrumb">
-  <ol>
-    <li><a href="#" data-gtmc="breadcrumb link">Discover Packages</a></li>
-    <li><a href="#" data-gtmc="breadcrumb link">Standard Library</a></li>
-    <li><a href="#" data-gtmc="breadcrumb link">net</a></li>
-    <li>
-      <a href="#" data-gtmc="breadcrumb link" aria-current="location">http</a>
-      <button
-        class="go-Button go-Button--inline go-Clipboard js-clipboard"
-        aria-label="Copy Path to Clipboard"
-        data-to-copy="hello"
-        data-gtmc="clipboard button"
-      >
-        <img
-          class="go-Icon go-Icon--accented"
-          height="24"
-          width="24"
-          src="/static/shared/icon/content_copy_gm_grey_24dp.svg"
-          alt=""
-        />
-      </button>
-    </li>
-  </ol>
-</nav>
-```
diff --git a/static/shared/button/button.css b/static/shared/button/button.css
deleted file mode 100644
index 0a2f5bf..0000000
--- a/static/shared/button/button.css
+++ /dev/null
@@ -1,86 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-button:focus:not([disabled]) {
-  border-color: var(--color-brand-primary);
-  -webkit-box-shadow: var(--focus-box-shadow);
-  box-shadow: var(--focus-box-shadow);
-  outline: transparent;
-}
-
-.go-Button {
-  align-items: center;
-  background-color: var(--color-button);
-  border: 0.0625rem solid transparent;
-  border-radius: var(--border-radius);
-  color: var(--color-button-text);
-  cursor: pointer;
-  display: inline-flex;
-  font-weight: 500;
-  gap: 0.25rem;
-}
-.go-Button:not(.go-Button--inline) {
-  padding: 0.5rem;
-}
-
-.go-Button--accented {
-  background-color: var(--color-button-accented);
-  color: var(--color-button-accented-text);
-}
-.go-Button--inverted,
-.go-Button--text,
-.go-Button--inline {
-  background-color: var(--color-button-inverted);
-  color: var(--color-button-inverted-text);
-}
-.go-Button--inline {
-  background-color: transparent;
-}
-
-.go-Button--inverted {
-  border: var(--border);
-}
-
-.go-Button:hover {
-  box-shadow: var(--focus-box-shadow);
-  filter: contrast(0.95);
-}
-.go-Button--inline:hover {
-  box-shadow: none;
-  text-decoration: underline var(--color-button-inverted-text);
-}
-.go-Button:focus {
-  filter: contrast(0.95);
-}
-.go-Button--inverted:focus {
-  border-color: var(--color-button-inverted-text);
-}
-.go-Button:active {
-  box-shadow: none;
-  filter: contrast(0.85);
-}
-
-.go-Button:disabled {
-  background-color: var(--color-button-disabled);
-  box-shadow: none;
-  color: var(--color-button-text-disabled);
-  cursor: initial;
-  filter: none;
-  text-decoration: none;
-}
-.go-Button--accented:disabled {
-  background-color: var(--color-button-accented-disabled);
-  color: var(--color-button-accented-text-disabled);
-}
-.go-Button--inverted:disabled,
-.go-Button--text:disabled,
-.go-Button--inline:disabled {
-  background-color: var(--color-button-inverted-disabled);
-  color: var(--color-button-inverted-text-disabled);
-}
-.go-Button--inline:disabled {
-  background-color: transparent;
-}
diff --git a/static/shared/button/button.md b/static/shared/button/button.md
deleted file mode 100644
index 36800b8..0000000
--- a/static/shared/button/button.md
+++ /dev/null
@@ -1,53 +0,0 @@
-## Buttons
-
----
-
-### Primary {#button-primary}
-
-```html
-<button class="go-Button">Primary</button>
-```
-
-```html
-<button class="go-Button" disabled>Primary</button>
-```
-
-### Inverted {#button-inverted}
-
-```html
-<button class="go-Button go-Button--inverted">Inverted</button>
-```
-
-```html
-<button class="go-Button go-Button--inverted" disabled>Inverted</button>
-```
-
-### Accented {#button-accented}
-
-```html
-<button class="go-Button go-Button--accented">Accented</button>
-```
-
-```html
-<button class="go-Button go-Button--accented" disabled>Accented</button>
-```
-
-### Text {#button-text}
-
-```html
-<button class="go-Button go-Button--text">Text</button>
-```
-
-```html
-<button class="go-Button go-Button--text" disabled>Text</button>
-```
-
-### Inline {#button-inline}
-
-```html
-<button class="go-Button go-Button--inline">Inline</button>
-```
-
-```html
-<button class="go-Button go-Button--inline" disabled>Inline</button>
-```
diff --git a/static/shared/carousel/carousel.css b/static/shared/carousel/carousel.css
deleted file mode 100644
index 1c454e2..0000000
--- a/static/shared/carousel/carousel.css
+++ /dev/null
@@ -1,73 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Carousel {
-  align-items: center;
-  display: flex;
-  flex-direction: column;
-  position: relative;
-  text-align: center;
-}
-.go-Carousel-slide {
-  margin: 0.5rem 3rem;
-}
-.go-Carousel-slide[aria-hidden] {
-  display: none;
-}
-.go-Carousel-prevSlide {
-  left: 0;
-}
-.go-Carousel-nextSlide {
-  right: 0;
-}
-.go-Carousel-prevSlide,
-.go-Carousel-nextSlide {
-  background-color: transparent;
-  border-radius: var(--border-radius);
-  font-size: 1.5rem;
-  height: 2.75rem;
-  margin-top: -1.375rem;
-  opacity: 0;
-  position: absolute;
-  top: 50%;
-  width: 2.75rem;
-}
-.go-Carousel-prevSlide:hover,
-.go-Carousel-nextSlide:hover {
-  background-color: var(--color-background-accented);
-  cursor: pointer;
-}
-.go-Carousel:hover .go-Carousel-prevSlide,
-.go-Carousel:hover .go-Carousel-nextSlide,
-.go-Carousel:focus-within .go-Carousel-prevSlide,
-.go-Carousel:focus-within .go-Carousel-nextSlide {
-  opacity: 1;
-}
-.go-Carousel-dots {
-  display: flex;
-  font-size: 0.4375rem;
-  gap: 0.5rem;
-}
-.go-Carousel-dot {
-  background-color: var(--color-border);
-  border-radius: 2rem;
-  height: 0.4375rem;
-  width: 0.4375rem;
-}
-.go-Carousel-dot--active,
-.go-Carousel-dot:hover {
-  background-color: var(--color-text-subtle);
-}
-.go-Carousel-obscured {
-  border: 0;
-  clip: rect(0 0 0 0);
-  height: 0.0625rem;
-  margin: -0.0625rem;
-  overflow: hidden;
-  padding: 0;
-  position: absolute;
-  width: 0.0625rem;
-}
diff --git a/static/shared/carousel/carousel.md b/static/shared/carousel/carousel.md
deleted file mode 100644
index 03bf45d..0000000
--- a/static/shared/carousel/carousel.md
+++ /dev/null
@@ -1,42 +0,0 @@
-## Carousel
-
----
-
-### With Heading
-
-```html
-<section class="go-Carousel js-carousel" data-slide-index="0">
-  <h5>Search Tips</h2>
-  <ul>
-    <li class="go-Carousel-slide">
-      <p>Search for a package by name, for example “logrus”</p>
-    </li>
-    <li class="go-Carousel-slide" aria-hidden>
-      <p>Search for a symbol by name, for example "sql.DB"</p>
-    </li>
-    <li class="go-Carousel-slide" aria-hidden>
-      <p>Search for a symbol in a path, for example "#error golang.org/x"</p>
-    </li>
-  </ul>
-</section>
-```
-
-### Aria Label
-
-Use aria-label to create an accessible label that is visually hidden.
-
-```html
-<section class="go-Carousel js-carousel" aria-label="Search Tips Carousel" data-slide-index="0">
-  <ul>
-    <li class="go-Carousel-slide">
-      <p>Search for a package by name, for example “logrus”</p>
-    </li>
-    <li class="go-Carousel-slide" aria-hidden>
-      <p>Search for a symbol by name, for example "sql.DB"</p>
-    </li>
-    <li class="go-Carousel-slide" aria-hidden>
-      <p>Search for a symbol in a path, for example "#error golang.org/x"</p>
-    </li>
-  </ul>
-</section>
-```
diff --git a/static/shared/carousel/carousel.test.ts b/static/shared/carousel/carousel.test.ts
deleted file mode 100644
index b62b799..0000000
--- a/static/shared/carousel/carousel.test.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { parse } from '../../markdown';
-import { CarouselController } from './carousel';
-
-describe('Tooltip', () => {
-  let carousel: HTMLDetailsElement;
-  let prevArrow: HTMLButtonElement;
-  let nextArrow: HTMLButtonElement;
-  let dots: HTMLElement[];
-  let slides: HTMLElement[];
-  let liveRegion: HTMLElement;
-
-  beforeEach(async () => {
-    document.body.innerHTML = await parse(__dirname + '/carousel.md');
-    carousel = document.querySelector('.js-carousel');
-    new CarouselController(carousel);
-    prevArrow = carousel.querySelector('.go-Carousel-prevSlide');
-    nextArrow = carousel.querySelector('.go-Carousel-nextSlide');
-    dots = Array.from(carousel.querySelectorAll('.go-Carousel-dot'));
-    slides = Array.from(carousel.querySelectorAll('.go-Carousel-slide'));
-    liveRegion = carousel.querySelector('[aria-live]');
-  });
-
-  afterEach(() => {
-    document.body.innerHTML = '';
-  });
-
-  it('generates arrows, dots, and live region', () => {
-    expect(prevArrow).toBeDefined();
-    expect(nextArrow).toBeDefined();
-    expect(dots).toBeDefined();
-    expect(liveRegion).toBeDefined();
-  });
-
-  it('shows only the first slide', () => {
-    expect(slides[0].getAttribute('aria-hidden')).toBeFalsy();
-    expect(slides[1].getAttribute('aria-hidden')).toBeTruthy();
-    expect(slides[2].getAttribute('aria-hidden')).toBeTruthy();
-  });
-
-  it('shows next slide on next arrow click', () => {
-    nextArrow.click();
-    expect(slides[0].getAttribute('aria-hidden')).toBeTruthy();
-    expect(slides[1].getAttribute('aria-hidden')).toBeFalsy();
-    expect(slides[2].getAttribute('aria-hidden')).toBeTruthy();
-  });
-
-  it('shows prev slide on prev arrow click', () => {
-    prevArrow.click();
-    expect(slides[0].getAttribute('aria-hidden')).toBeTruthy();
-    expect(slides[1].getAttribute('aria-hidden')).toBeTruthy();
-    expect(slides[2].getAttribute('aria-hidden')).toBeFalsy();
-  });
-
-  it('sets active slide on dot click', () => {
-    dots[1].click();
-    expect(slides[0].getAttribute('aria-hidden')).toBeTruthy();
-    expect(slides[1].getAttribute('aria-hidden')).toBeFalsy();
-    expect(slides[2].getAttribute('aria-hidden')).toBeTruthy();
-  });
-
-  it('updates live region', () => {
-    expect(liveRegion.textContent).toContain('Slide 1 of 3');
-    dots[1].click();
-    expect(liveRegion.textContent).toContain('Slide 2 of 3');
-  });
-});
diff --git a/static/shared/carousel/carousel.ts b/static/shared/carousel/carousel.ts
deleted file mode 100644
index d311e4e..0000000
--- a/static/shared/carousel/carousel.ts
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-/**
- * Carousel Controller adds event listeners, accessibility enhancements, and
- * control elements to a carousel component.
- */
-export class CarouselController {
-  /**
-   * slides is a collection of slides in the carousel.
-   */
-  private slides: HTMLLIElement[];
-  /**
-   * dots is a collection of dot navigation controls, added to the carousel
-   * by this controller.
-   */
-  private dots: HTMLElement[];
-  /**
-   * liveRegion is a visually hidden element that notifies assitive devices
-   * of visual changes to the carousel. They are added to the carousel by
-   * this controller.
-   */
-  private liveRegion: HTMLElement;
-  /**
-   * activeIndex is the 0-index of the currently active slide.
-   */
-  private activeIndex: number;
-
-  constructor(private el: HTMLElement) {
-    this.slides = Array.from(el.querySelectorAll('.go-Carousel-slide'));
-    this.dots = [];
-    this.liveRegion = document.createElement('div');
-    this.activeIndex = Number(el.getAttribute('data-slide-index') ?? 0);
-
-    this.initSlides();
-    this.initArrows();
-    this.initDots();
-    this.initLiveRegion();
-  }
-
-  private initSlides() {
-    for (const [i, v] of this.slides.entries()) {
-      if (i === this.activeIndex) continue;
-      v.setAttribute('aria-hidden', 'true');
-    }
-  }
-
-  private initArrows() {
-    const arrows = document.createElement('ul');
-    arrows.classList.add('go-Carousel-arrows');
-    arrows.innerHTML = `
-      <li>
-        <button class="go-Carousel-prevSlide" aria-label="Go to previous slide">
-          <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_left_gm_grey_24dp.svg" alt="">
-        </button>
-      </li>
-      <li>
-        <button class="go-Carousel-nextSlide" aria-label="Go to next slide">
-          <img class="go-Icon" height="24" width="24" src="/static/shared/icon/arrow_right_gm_grey_24dp.svg" alt="">
-        </button>
-      </li>
-    `;
-    arrows
-      .querySelector('.go-Carousel-prevSlide')
-      ?.addEventListener('click', () => this.setActive(this.activeIndex - 1));
-    arrows
-      .querySelector('.go-Carousel-nextSlide')
-      ?.addEventListener('click', () => this.setActive(this.activeIndex + 1));
-    this.el.append(arrows);
-  }
-
-  private initDots() {
-    const dots = document.createElement('ul');
-    dots.classList.add('go-Carousel-dots');
-    for (let i = 0; i < this.slides.length; i++) {
-      const li = document.createElement('li');
-      const button = document.createElement('button');
-      button.classList.add('go-Carousel-dot');
-      if (i === this.activeIndex) {
-        button.classList.add('go-Carousel-dot--active');
-      }
-      button.innerHTML = `<span class="go-Carousel-obscured">Slide ${i + 1}</span>`;
-      button.addEventListener('click', () => this.setActive(i));
-      li.append(button);
-      dots.append(li);
-      this.dots.push(button);
-    }
-    this.el.append(dots);
-  }
-
-  private initLiveRegion() {
-    this.liveRegion.setAttribute('aria-live', 'polite');
-    this.liveRegion.setAttribute('aria-atomic', 'true');
-    this.liveRegion.setAttribute('class', 'go-Carousel-obscured');
-    this.liveRegion.textContent = `Slide ${this.activeIndex + 1} of ${this.slides.length}`;
-    this.el.appendChild(this.liveRegion);
-  }
-
-  private setActive = (index: number) => {
-    this.activeIndex = (index + this.slides.length) % this.slides.length;
-    this.el.setAttribute('data-slide-index', String(this.activeIndex));
-    for (const d of this.dots) {
-      d.classList.remove('go-Carousel-dot--active');
-    }
-    this.dots[this.activeIndex].classList.add('go-Carousel-dot--active');
-    for (const s of this.slides) {
-      s.setAttribute('aria-hidden', 'true');
-    }
-    this.slides[this.activeIndex].removeAttribute('aria-hidden');
-    this.liveRegion.textContent = 'Slide ' + (this.activeIndex + 1) + ' of ' + this.slides.length;
-  };
-}
diff --git a/static/shared/chip/chip.css b/static/shared/chip/chip.css
deleted file mode 100644
index 6681cba..0000000
--- a/static/shared/chip/chip.css
+++ /dev/null
@@ -1,44 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Chip {
-  background: var(--color-button);
-  border: 0.0625rem solid var(--color-button);
-  border-radius: 1.25rem;
-  color: var(--color-button-text);
-  font-size: 0.75rem;
-  padding: 0.125rem 0.625rem;
-}
-.go-Chip--accented {
-  background: var(--color-button-accented);
-  border: 0.0625rem solid var(--color-button-accented);
-  color: var(--color-button-accented-text);
-}
-.go-Chip--inverted {
-  background: var(--color-button-inverted);
-  border: var(--border);
-  color: var(--color-text);
-}
-.go-Chip--highlighted {
-  background: var(--color-background-highlighted-link);
-  border-color: var(--color-background-highlighted-link);
-  color: var(--color-brand-primary);
-}
-.go-Chip--alert {
-  background: var(--pink);
-  border: 0.0625rem solid var(--pink);
-  color: var(--color-text-inverted);
-}
-.go-Chip--vuln {
-  background: var(--pink-light);
-  border: 0.0625rem solid var(--pink-light);
-  color: var(--color-text-inverted);
-}
-.go-Chip--subtle {
-  background-color: var(--color-background-accented);
-  border-color: transparent;
-  color: var(--color-text-subtle);
-}
diff --git a/static/shared/chip/chip.md b/static/shared/chip/chip.md
deleted file mode 100644
index 27bb63b..0000000
--- a/static/shared/chip/chip.md
+++ /dev/null
@@ -1,27 +0,0 @@
-## Chips
-
----
-
-```html #chip-primary
-<span class="go-Chip">Primary</span>
-```
-
-```html #chip-inverted
-<span class="go-Chip go-Chip--inverted">Inverted</span>
-```
-
-```html #chip-highlighted
-<span class="go-Chip go-Chip--highlighted">Highlighted</span>
-```
-
-```html #chip-warning
-<span class="go-Chip go-Chip--accented">Warning</span>
-```
-
-```html #chip-alert
-<span class="go-Chip go-Chip--alert">Alert</span>
-```
-
-```html #chip-subtle
-<span class="go-Chip go-Chip--subtle">Subtle</span>
-```
diff --git a/static/shared/clipboard/clipboard.css b/static/shared/clipboard/clipboard.css
deleted file mode 100644
index 6408d71..0000000
--- a/static/shared/clipboard/clipboard.css
+++ /dev/null
@@ -1,42 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Clipboard {
-  position: relative;
-}
-.go-Clipboard::before {
-  background-color: var(--color-background-inverted);
-  border-radius: var(--border-radius);
-  color: var(--color-text-inverted);
-  content: attr(data-tooltip);
-  display: block;
-  font-size: 0.9em;
-  left: calc(100% + 0.125rem);
-  padding: 0.25rem 0.3rem;
-  position: absolute;
-  text-transform: uppercase;
-  top: 0.125rem;
-  white-space: nowrap;
-  z-index: 1000;
-}
-.go-Clipboard::after {
-  border-bottom: 0.25rem solid transparent;
-  border-left: 0;
-  border-right: 0.25rem solid var(--color-background-inverted);
-  border-top: 0.25rem solid transparent;
-  content: '';
-  display: block;
-  position: absolute;
-  right: -0.125rem;
-  top: 0.5625rem;
-  z-index: 1000;
-}
-.go-Clipboard:not([data-tooltip])::before,
-.go-Clipboard:not([data-tooltip])::after,
-.go-Clipboard[data-tooltip='']::before,
-.go-Clipboard[data-tooltip='']::after {
-  display: none;
-}
diff --git a/static/shared/clipboard/clipboard.md b/static/shared/clipboard/clipboard.md
deleted file mode 100644
index 31fe29f..0000000
--- a/static/shared/clipboard/clipboard.md
+++ /dev/null
@@ -1,62 +0,0 @@
-## Clipboard
-
----
-
-Use an aria-label on buttons to provide context about the data being copied.
-
-### Button {#clipboard-button}
-
-```html
-<button
-  class="go-Button go-Button--inline go-Clipboard js-clipboard"
-  data-to-copy="hello, world!"
-  aria-label="Copy _DATA_ to Clipboard"
-  data-gtmc="clipboard button"
->
-  <img
-    class="go-Icon"
-    height="24"
-    width="24"
-    src="/static/shared/icon/content_copy_gm_grey_24dp.svg"
-    alt=""
-  />
-</button>
-```
-
-```html
-<button
-  class="go-Button go-Button--inverted go-Clipboard js-clipboard"
-  data-to-copy="hello, world!"
-  aria-label="Copy _DATA_ to Clipboard"
-  data-gtmc="clipboard button"
->
-  <img
-    class="go-Icon"
-    height="24"
-    width="24"
-    src="/static/shared/icon/content_copy_gm_grey_24dp.svg"
-    alt=""
-  />
-</button>
-```
-
-### Input {#clipboard-input}
-
-```html
-<div class="go-InputGroup">
-  <input class="go-Input" value="hello, world!" readonly />
-  <button
-    class="go-Button go-Button--inverted go-Clipboard js-clipboard"
-    aria-label="Copy to Clipboard"
-    data-gtmc="clipboard button"
-  >
-    <img
-      class="go-Icon"
-      height="24"
-      width="24"
-      src="/static/shared/icon/content_copy_gm_grey_24dp.svg"
-      alt=""
-    />
-  </button>
-</div>
-```
diff --git a/static/shared/clipboard/clipboard.test.ts b/static/shared/clipboard/clipboard.test.ts
deleted file mode 100644
index 33729ff..0000000
--- a/static/shared/clipboard/clipboard.test.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { parse } from '../../markdown';
-import { ClipboardController } from './clipboard';
-
-describe('ClipboardController', () => {
-  const buttons: HTMLButtonElement[] = [];
-  const controllers: ClipboardController[] = [];
-  const dataToCopy = 'hello, world!';
-
-  beforeAll(async () => {
-    document.body.innerHTML = await parse(__dirname + '/clipboard.md');
-    for (const button of document.querySelectorAll<HTMLButtonElement>('.js-clipboard')) {
-      buttons.push(button);
-      controllers.push(new ClipboardController(button));
-    }
-  });
-
-  afterAll(() => {
-    document.body.innerHTML = '';
-  });
-
-  it('copys data-to-copy when clicked', () => {
-    Object.assign(navigator, { clipboard: { writeText: () => Promise.resolve() } });
-    jest.spyOn(navigator.clipboard, 'writeText');
-    buttons[0].click();
-    expect(navigator.clipboard.writeText).toHaveBeenCalledWith(dataToCopy);
-  });
-
-  it('copys input value when clicked', () => {
-    Object.assign(navigator, { clipboard: { writeText: () => Promise.resolve() } });
-    jest.spyOn(navigator.clipboard, 'writeText');
-    buttons[2].click();
-    expect(navigator.clipboard.writeText).toHaveBeenCalledWith(dataToCopy);
-  });
-
-  it('shows error when clicked if clipboard is undefined', () => {
-    Object.assign(navigator, { clipboard: undefined });
-    jest.spyOn(controllers[1], 'showTooltipText');
-    buttons[1].click();
-    expect(controllers[1].showTooltipText).toHaveBeenCalledWith('Unable to copy', 1000);
-  });
-});
diff --git a/static/shared/clipboard/clipboard.ts b/static/shared/clipboard/clipboard.ts
deleted file mode 100644
index 0afa223..0000000
--- a/static/shared/clipboard/clipboard.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-/**
- * This class decorates an element to copy arbitrary data attached via a data-
- * attribute to the clipboard.
- */
-export class ClipboardController {
-  /**
-   * The data to be copied to the clipboard.
-   */
-  private data: string;
-
-  /**
-   * @param el The element that will trigger copying text to the clipboard. The text is
-   * expected to be within its data-to-copy attribute.
-   */
-  constructor(private el: HTMLButtonElement) {
-    this.data = el.dataset['toCopy'] ?? el.innerText;
-    // if data-to-copy is empty and the button is part of an input group
-    // capture the value of the input.
-    if (!this.data && el.parentElement?.classList.contains('go-InputGroup')) {
-      this.data = (this.data || el.parentElement?.querySelector('input')?.value) ?? '';
-    }
-    el.addEventListener('click', e => this.handleCopyClick(e));
-  }
-
-  /**
-   * Handles when the primary element is clicked.
-   */
-  handleCopyClick(e: MouseEvent): void {
-    e.preventDefault();
-    const TOOLTIP_SHOW_DURATION_MS = 1000;
-
-    // This API is not available on iOS.
-    if (!navigator.clipboard) {
-      this.showTooltipText('Unable to copy', TOOLTIP_SHOW_DURATION_MS);
-      return;
-    }
-    navigator.clipboard
-      .writeText(this.data)
-      .then(() => {
-        this.showTooltipText('Copied!', TOOLTIP_SHOW_DURATION_MS);
-      })
-      .catch(() => {
-        this.showTooltipText('Unable to copy', TOOLTIP_SHOW_DURATION_MS);
-      });
-  }
-
-  /**
-   * Shows the given text in a tooltip for a specified amount of time, in milliseconds.
-   */
-  showTooltipText(text: string, durationMs: number): void {
-    this.el.setAttribute('data-tooltip', text);
-    setTimeout(() => this.el.setAttribute('data-tooltip', ''), durationMs);
-  }
-}
diff --git a/static/shared/color/color-intent.md b/static/shared/color/color-intent.md
deleted file mode 100644
index a7f9eb9..0000000
--- a/static/shared/color/color-intent.md
+++ /dev/null
@@ -1,115 +0,0 @@
-## Color Intents
-
----
-
-### Brand {#color-intent-brand}
-
-<span style="display:contents;">
-  <go-color id="--color-brand-primary"></go-color>
-</span>
-
-### Background {#color-intent-background}
-
-<span style="display:contents;">
-  <go-color id="--color-background"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-background-inverted"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-background-accented"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-background-highlighted"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-background-warning"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-background-alert"></go-color>
-</span>
-
-### Border {#color-intent-border}
-
-<span style="display:contents;">
-  <go-color id="--color-border"></go-color>
-</span>
-
-### Text {#color-intent-text}
-
-<span style="display:contents;">
-  <go-color id="--color-text"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-text-subtle"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-text-inverted"></go-color>
-</span>
-
-### Input {#color-intent-input}
-
-<span style="display:contents;">
-  <go-color id="--color-input"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-input-text"></go-color>
-</span>
-
-### Button {#color-intent-button}
-
-<span style="display:contents;">
-  <go-color id="--color-button"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-disabled"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-text"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-text-disabled"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-inverted"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-inverted-disabled"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-inverted-text"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-inverted-text-disabled"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-accented"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-accented-disabled"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-accented-text"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--color-button-accented-text-disabled"></go-color>
-</span>
diff --git a/static/shared/color/color.css b/static/shared/color/color.css
deleted file mode 100644
index bc7554a..0000000
--- a/static/shared/color/color.css
+++ /dev/null
@@ -1,66 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-:root {
-  /* Colors */
-  --gray-1: #202224;
-  --gray-2: #3e4042;
-  --gray-3: #555759;
-  --gray-4: #6e7072;
-  --gray-5: #848688;
-  --gray-6: #aaacae;
-  --gray-7: #c6c8ca;
-  --gray-8: #dcdee0;
-  --gray-9: #f0f1f2;
-  --gray-10: #f8f8f8;
-  --turq-light: #5dc9e2;
-  --turq-med: #50b7e0;
-  --turq-dark: #007d9c;
-  --blue: #bfeaf4;
-  --blue-light: #f2fafd;
-  --black: #000;
-  --green: #3a6e11;
-  --green-light: #5fda64;
-  --pink: #c85e7a;
-  --pink-light: #fdecf1;
-  --purple: #542c7d;
-  --slate: #253443; /* Footer background. */
-  --white: #fff;
-  --yellow: #fceea5;
-  --yellow-light: #fff8cc;
-
-  /* Color Intents */
-  --color-brand-primary: var(--turq-dark);
-  --color-background: var(--white);
-  --color-background-inverted: var(--slate);
-  --color-background-accented: var(--gray-10);
-  --color-background-highlighted: var(--blue);
-  --color-background-highlighted-link: var(--blue-light);
-  --color-background-info: var(--gray-9);
-  --color-background-warning: var(--yellow-light);
-  --color-background-alert: var(--pink-light);
-  --color-border: var(--gray-7);
-  --color-text: var(--gray-1);
-  --color-text-subtle: var(--gray-4);
-  --color-text-inverted: var(--white);
-  --color-code-comment: var(--green);
-
-  /* Interactive Colors */
-  --color-input: var(--color-background);
-  --color-input-text: var(--color-text);
-  --color-button: var(--turq-dark);
-  --color-button-disabled: var(--gray-9);
-  --color-button-text: var(--white);
-  --color-button-text-disabled: var(--gray-3);
-  --color-button-inverted: var(--color-background);
-  --color-button-inverted-disabled: var(--color-background);
-  --color-button-inverted-text: var(--color-brand-primary);
-  --color-button-inverted-text-disabled: var(--color-text-subtle);
-  --color-button-accented: var(--yellow);
-  --color-button-accented-disabled: var(--gray-9);
-  --color-button-accented-text: var(--gray-1);
-  --color-button-accented-text-disabled: var(--gray-3);
-}
diff --git a/static/shared/color/color.md b/static/shared/color/color.md
deleted file mode 100644
index 73fb5fc..0000000
--- a/static/shared/color/color.md
+++ /dev/null
@@ -1,116 +0,0 @@
-## Colors
-
----
-
-Prefer the use of Color Intent over Color variables where possible. Color Intents are themed and
-adjust for dark mode.
-
-### Gray {#colors-gray}
-
-<span style="display:contents;">
-  <go-color id="--gray-1"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-2"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-3"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-4"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-5"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-6"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-7"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-8"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-9"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--gray-10"></go-color>
-</span>
-
-### Brand {#colors-brand}
-
-<span style="display:contents;">
-  <go-color id="--turq-light"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--turq-med"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--turq-dark"></go-color>
-</span>
-
-### Other {#colors-other}
-
-<span style="display:contents;">
-  <go-color id="--blue"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--blue-light"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--black"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--green"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--green-light"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--pink"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--pink-light"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--purple"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--purple-light"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--slate"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--white"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--yellow"></go-color>
-</span>
-
-<span style="display:contents;">
-  <go-color id="--yellow-light"></go-color>
-</span>
diff --git a/static/shared/form/form.css b/static/shared/form/form.css
deleted file mode 100644
index 4df4de2..0000000
--- a/static/shared/form/form.css
+++ /dev/null
@@ -1,116 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-select:focus:not([disabled]),
-input:focus:not([disabled]) {
-  border-color: var(--color-brand-primary);
-  -webkit-box-shadow: var(--focus-box-shadow);
-  box-shadow: var(--focus-box-shadow);
-  outline: transparent;
-  z-index: 2;
-}
-
-input::placeholder {
-  color: var(--color-text-subtle);
-}
-
-.go-Form {
-  align-items: start;
-  display: flex;
-  flex-direction: column;
-  gap: 1rem;
-}
-
-.go-Label {
-  display: flex;
-  flex-direction: column;
-  gap: 0.5rem;
-}
-.go-Label--inline {
-  align-items: center;
-  flex-direction: row;
-}
-.go-Label legend {
-  margin-bottom: 0.5rem;
-}
-.go-Label--inline legend {
-  float: left;
-  margin-bottom: 0;
-}
-.go-Input,
-.go-Select {
-  background: var(--color-input);
-  border: var(--border);
-  border-radius: var(--border-radius);
-  color: var(--color-input-text);
-}
-.go-Input {
-  padding: 0.40625rem 0.5rem;
-}
-.go-Select {
-  -webkit-appearance: none;
-  -moz-appearance: none;
-  appearance: none;
-  background: url('/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg') right no-repeat;
-  background-color: var(--color-background);
-  background-position: right center;
-  border-radius: var(--border-radius);
-  margin: 0;
-  padding: 0.34375rem 1.25rem 0.34375rem 0.5rem;
-}
-
-.go-InputGroup {
-  display: flex;
-}
-.go-InputGroup .go-Input {
-  flex: 1;
-}
-.go-InputGroup > :not(:first-child, :last-child) {
-  border-radius: 0;
-  margin-left: -0.0625rem;
-}
-.go-InputGroup > :first-child {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
-}
-.go-InputGroup > :last-child {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
-  margin-left: -0.0625rem;
-}
-.go-InputGroup > *:hover,
-.go-InputGroup > *:focus {
-  z-index: 1;
-}
-
-.go-ShortcutKey {
-  display: flex;
-  position: relative;
-}
-.go-ShortcutKey .go-Input {
-  flex-grow: 1;
-}
-.go-ShortcutKey::after {
-  align-self: center;
-  background-color: var(--color-background-accented);
-  border-radius: 0.5rem;
-  color: var(--gray-6);
-  content: attr(data-shortcut);
-  content: attr(data-shortcut) / attr(data-shortcut-alt);
-  display: none;
-  font-size: 0.75rem;
-  padding: 0.0625rem 0;
-  position: absolute;
-  right: 0.75rem;
-  text-align: center;
-  width: 1.5rem;
-  z-index: 1;
-}
-@media only screen and (min-width: 52rem) {
-  .go-ShortcutKey::after {
-    display: initial;
-  }
-}
diff --git a/static/shared/form/form.md b/static/shared/form/form.md
deleted file mode 100644
index 936c587..0000000
--- a/static/shared/form/form.md
+++ /dev/null
@@ -1,128 +0,0 @@
-## Forms
-
----
-
-### Input {#form-input}
-
-```html
-<input class="go-Input" placeholder="Placeholder text" />
-```
-
-### Input w/ Label {#form-input-label}
-
-```html
-<label class="go-Label">
-  URL
-  <input class="go-Input" placeholder="e.g., https://pkg.go.dev/net/http" />
-</label>
-```
-
-### Input w/ Shortcut Key {#form-input-shortcut}
-
-```html
-<div class="go-ShortcutKey" data-shortcut="/" data-shortcut-alt="search">
-  <input class="go-Input" placeholder="e.g., https://pkg.go.dev/net/http" />
-</div>
-```
-
-### Select w/ Inline Label {#form-select}
-
-```html
-<label class="go-Label go-Label--inline">
-  Rendered for
-  <select class="go-Select">
-    <option>linux/amd64</option>
-    <option>windows/amd64</option>
-    <option>darwin/amd64</option>
-    <option>js/wasm</option>
-  </select>
-</label>
-```
-
-### Input Groups {#form-groups}
-
-```html
-<form
-  class="go-InputGroup"
-  action="#forms"
-  data-gtmc="search form"
-  aria-label="Search for a package"
-  role="search"
->
-  <input name="q" class="go-Input" placeholder="Search for a package" />
-  <button class="go-Button go-Button--inverted" aria-label="Submit search">
-    <img
-      class="go-Icon"
-      height="24"
-      width="24"
-      src="/static/shared/icon/search_gm_grey_24dp.svg"
-      alt=""
-    />
-  </button>
-</form>
-```
-
-```html
-<form
-  class="go-InputGroup"
-  action="#forms"
-  data-gtmc="search form"
-  aria-label="Search for a package"
-  role="search"
->
-  <input name="q" class="go-Input" placeholder="Search for a package" />
-  <button class="go-Button">Submit</button>
-</form>
-```
-
-```html
-<div class="go-InputGroup">
-  <button class="go-Button go-Button--inverted" data-gtmc="menu button" aria-label="Open menu">
-    <img
-      class="go-Icon"
-      height="24"
-      width="24"
-      src="/static/shared/icon/filter_list_gm_grey_24dp.svg"
-      alt=""
-    />
-  </button>
-  <button class="go-Button go-Button--inverted" data-gtmc="menu button">Share</button>
-  <button class="go-Button go-Button--inverted" data-gtmc="menu button">Format</button>
-  <button class="go-Button go-Button--inverted" data-gtmc="menu button">Run</button>
-  <button class="go-Button go-Button--inverted" data-gtmc="menu button" aria-label="Search">
-    <img
-      class="go-Icon"
-      height="24"
-      width="24"
-      src="/static/shared/icon/search_gm_grey_24dp.svg"
-      alt=""
-    />
-  </button>
-</div>
-```
-
-```html
-<fieldset class="go-Label go-Label--inline">
-  <legend>Label</legend>
-  <div class="go-InputGroup">
-    <button class="go-Button go-Button--inverted" data-gtmc="menu button" aria-label="Open menu">
-      <img
-        class="go-Icon"
-        height="24"
-        width="24"
-        src="/static/shared/icon/filter_list_gm_grey_24dp.svg"
-        alt=""
-      />
-    </button>
-    <button class="go-Button go-Button--inverted" data-gtmc="menu button" aria-label="Search">
-      <img
-        class="go-Icon"
-        height="24"
-        width="24"
-        src="/static/shared/icon/search_gm_grey_24dp.svg"
-        alt=""
-      />
-    </button>
-  </div>
-</fieldset>
-```
diff --git a/static/shared/gopher/airplane-1200x945.svg b/static/shared/gopher/airplane-1200x945.svg
deleted file mode 100644
index 275283a..0000000
--- a/static/shared/gopher/airplane-1200x945.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg viewBox="0 0 1200 945" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M811 927c-4-1-11-3-14-4-7-3-23-12-35-20-10-6-12-8-12-9-1-1-3-2-4-2-2-1-5-3-7-5-13.823-6.912-28.998-19.998-40-31-8-5-15-11-22-17-3-2-11-8-18-14-23.578-17.427-46.246-36.246-67-57-4-3-10-7-12-10-14.3-9.533-13.184-10.638-27-21-8.686-8.686-9.993-8.669-24-4-10.285 2.236-20.648 4.1-31 6-2.387.438-4.353-.32-6.125 2-2.625 3.436-4.696 7.265-6.875 11-4 8-4 9-3 13 0 2 3 6 6 9 5.328 6.659 20 21.344 20 32 3.552 5.92 4.288 16.413 4 23-.478 10.941-1.368 23.278-9 32-10 12-22 21-32 22-3 0-8 1-10 2-12 2-13 2-15 0l-3-3h-1c-2 1-11-1-13-3-2-1-5-3-8-5-14.272-8.92-23.364-26.642-25-43 0-6 0-13 1-16v-8l-1-2 2-2c1-1 3-4 4-6 0-3 3-7 5-11 4-6 4-6 3-12 0-7-3-12-11-19-6.34-6.34-15.705-6.478-24-7-4.477-.282-10.363-.637-14 3-2 1-5 3-5 4-1 2-12 10-19 13-7.726 5.795-17.398-.196-25.625 3.75C302.22 776.141 298.508 789 287 789h-1v-1s2-3 5-6c9-11 11-15 7-18-6.865-6.865-20.118 13-25 13h-1v-1c0-1 3-4 7-8 10-9 11-12 6-19-2-2-4-7-4-9-1-3-3-7-4-8-9.798-6.532-21.839-8.075-32.625-12.125-7.128-2.676-7.424-4.57-13.546-8.795-1.195-.826-2.377-2.08-3.829-2.08h-1v2s3 5 6 9c9 9 15 18 15 20 0 0 1 1 1 2 5 5 16 24 20 34 3 6 6 14 8 17 3 7 3 13 0 17-1 2-2 4-2 5-8.517 12.296-20.837 11.568-32 2-1.789-1.789-24-16.507-24-25l-4-6c-8-15-10-18-14-30-9.49-22.144-10.381-47.144-18-70-2-4-3-4-11-7-6-1-14-5-16-8-4.539-4.539-2.519-17.962 0-23 7.288-10.932-3.601-21.772-10-30-14-16-24-29-26-32-3-6-11-18-14-22-7-10-19-33-22-41-4-13-4-18-3-24 2.268-7.937 6.132-15.556 15.805-12.171 1.915.67 3.455 2.127 5.195 3.171 18.572 9.286 29.634 28.668 38.299 46.61 3.081 6.379 6.755 12.578 8.701 19.39 2 8 10 29 13 37 1.282 3.845 2.074 10.148 4 14 2 3 4 8 5 12 2 4 4 9 5 10l2 1 3-1c3-2 10-19 13-33 4-17 6-22 9-23 7.141-7.141 9.419-17.551 12.75-26.625 1.232-3.355 3.496-10.498 7.25-12.375 2-2 11-13 14-17 1-2 3-5 5-6 1 0 4-4 6-6 2-3 4-6 5-8 5-5 2-7-29-31-7.928-5.285-16.265-12.265-23-19-4.561-1.52-7.439-6.48-12-8-2-1-5-4-7-6-3-1-7-5-10-7-11.658-5.829-18.587-13.19-29-21-9-7-17-14-18-18-1-1-2-6-3-10 0-9.501 2.849-24 15-24 3-1 8-2 12-3 3.788-1.337 25.045-3.047 20.54-13.352-1.06-2.425-2.622-4.598-3.97-6.876-3.401-5.75-6.68-11.577-10.277-17.207-3.597-5.632-7.061-11.393-11.293-16.565-6-6-16-19-27-32-7.063-7.063-9.317-12.78-8-22 1-10 3-13 18-24 5-4 15-11 19-12l10-5c11-5 30-12 38-13 3-1 9-2 12-3 5.211 0 28.294-1.823 33-3 17-3 37-2 51 2 13 5 35 17 56 33 3 3 8 6 12 8 3 2 9 6 13 9 10 8 28 21 33 24 2 1 8 6 13 10 5 3 15 10 22 15 6 4 15 10 18 13 4 2 9 6 12 7l4 2 2-1c0-12.429 9.324-25.408 18-33 11-7 15-9 30-7l6 1v-1c0-2 23-19 26-19l8-4c7-3 8-4 11-10 1.82-2.73 3.833-5.426 6.381-7.493 5.981-4.85 11.76 4.774 13.619 8.493 3 4 3 4 14 7 11 2 31 8 40 12 2 1 6 3 9 5 7 6 18 13 23 15 2 1 5 2 7 2 1-1 5-1 9-2 4 0 6 0 9 2 8.637 4.318 18.088 12.401 11.587 22.907-2.324 3.756-5.263 7.184-8.587 10.093-4 5-4 5-4 18 1 14 1 14-2 21-6.854 13.708-3.462 16.385-8 30-2 10 0 12 11 6 9-4 19-14 26-25 6-8 10-12 18-17 5-3 7-5 9-10 7-12 10-14 23-18 9-2 17 0 44 10 11 4 17 8 25 13 2.588 1.849 7.653 5.36 11.068 5.566 11.949.721 18.209-9.981 23.932-18.566 6-11 9-14 19-21 4-3 7-9 12-9 0 0 3-1 5-2 1.083-1.083 16.356-10 19-10 10-6 33-12 40-11 14.29 2.382 29.991 10.991 40 21 3.584 0 11.414 10.349 13 12 2 0 6 4 8 9 1 3 3 7 4 8 8 9 12 45 8 64-1 5-2 12-3 17 0 5-2 12-3 17-1.412 3.529-1.74 7.414-3 11-3.065 8.725-5.138 11.221-10 19-3 3-3 4-2 6 0 1 5 6 11 12 22 21 43 44 48 52 1 2 4 6 6 10 8 10 9 21 3 29-2 3-4 4-10 6-6.326 1.054-14.524 6.397-21 7-5.285.492-22.08-2.032-27-4-13.874-6.937-14.373-5.567-28-13-11-5-23-11-25-12-3-2-6-4-7-5l-4-2c-1 0-3-1-5-2-6.905-6.905-11.439-.468-18 5-14 12-19 15-32 22-6 3-13 7-16 9-2.25 2.25-24.376 17.782-26 19-4 4-7 6-11 7-2 1-6 2-8 3-5 3-4 6 5 13 4 4 11 10 15 15 5 4 12 10 16 14 13 10 30 24 37 29 3 3 12 10 18 17 13.647 12.282 25.416 29.168 16 48-3 7-11 16-20 23-12.134 9.1-11.775 9.632-17 24-2.713 9.947-8.778 26.177 1 34 3 2 10 7 15 10 12 8 17 14 22 22 3.58 7.16 5.824 21.764 1 29-2 5-11 13-18 16-45 20-80 33-93 35-4 1-13 1-20 2-8 0-16 1-18 1-2 1-7 0-10 0zM83 700c-1.581-1.581-2-4-3-6-.333-.667-.255-2-1-2-3-2-9-27-11-45-4-37-2-62 7-80 2-3 3-7 4-9l1-4h2l-1 3c0 2-2 6-3 10-8 18-9 34-7 64 1.463 26.342 3.722 29.533 10 55 .82 3.327 1.341 8.341 4 11 1 2 2 4 2 6v2h-1s-2-2-3-5zm-30-62c0-7.364-.959-14.71-2-22-2-24 1-44 9-60 6-14 10-20 13-20h1v3h-1s-2 3-4 7c-3 4-5 9-6 11-3 4-7 16-8 23-2 10-1 46 1 53 0 2 0 4-1 4l-1 2-1-1zm886-441c0-2.907 4.981-5.341 6.75-6.375 4.941-2.886 19.103-10.478 23.25-14.625 2-1 5-2 9-2 4-1 11-2 16-4 20-7 31-9 54-11 20-1 22-1 29 0 11.498 2.3 27.183 2.637 37 10l10 5c3 1 7 4 9 6 2 1 5 4 8 5 2 1 5 3 5 4l1 2v1h-1l-8-4c-4-3-8-5-8-5-1 0-2-1-3-1-2-3-19-12-26-13-4-1-9-3-11-3-6-2-34-2-42-1-4 1-12 2-16 2-11 1-27 5-47 12-8.989 2.996-16.266 2.633-25 7-6.726 2.883-13.825 5.825-19 11l-2 1v-1zm-41-26c0-1 8-8 15-12 3-3 10-8 16-13 14-10 21-15 30-17 4-2 11-4 15-5 3-2 9-4 12-5 2 0 11-3 18-6 15-5 25-8 36-8 3-1 11-2 16-3 7.546-2.322 14.874-3.669 22.774-3.953 3.027-.109 10.226-.031 10.226 4.953v1l-2-1c-5-2-18-1-32 4-5 1-12 2-15 3-5.082 0-16.806 2.403-22 5-2 0-9 2-16 5-6 3-13 5-13 5-1 0-2 1-3 2l-1 1h-2c-1-1-19 5-26 8-13.671 6.835-26.81 15.858-39 25-10 8-15 11-18 11h-2v-1z" fill="#0e0e0e" fill-rule="nonzero"/><path d="M809 922c-7-2-18-8-22-11-2-2-5-3-7-4-3-2-23-15-31-21-3.399-3.399-7.993-5.344-12-8-12.089-8.013-12.273-7.465-23-17-24-19-26-20-33-26-4-2-11-7-14-10-15-12-18-14-24-19-5.035-2.518-22.383-17.383-25-20-5-4-11-9-12-11-2-3-5-6-8-8-5-4-11-9-15-13-1-2-6-6-17-15-2.247-1.966-9.223-6.07-8.459-10.562.974-5.722 9.107-2.79 11.459-.438 10.018 5.009 18.254 13.003 27 20 36 31 51 43 58 49 10 10 37 32 46 39 4.472 2.236 8.007 5.99 12 9 17.674 13.324 35.822 26.043 53 40 8 7 22 16 27 18 2 1 9 3 15 4 17 3 36 2 58-4 15-4 19-5 39-12 11-4 24-8 29-10 5-1 14-4 19-7 5-2 9-4 10-4h2l1 2c1 5-5 9-22 17-6 2-13 5-17 7-3 2-6 3-7 3 0 0-2 1-5 2-9 4-46 16-59 19-22.814 3.802-22.741 2-46 2zm9-17c-8 0-18-3-23-6-6-2-17-10-22-14-2-2-8-6-12-9-5-4-11-9-14-12-3-2-11-8-17-13-6.853-3.916-9.264-6.697-15-12-1.424-1.317-3.697-4-6-4-1-1-4-3-7-6-4.192-6.288-25.784-22.088-31-26-7-6-13-10-38-30-14-11-33-27-36-30-1-2-6-6-11-10l-9-9c-1-3 0-5 3-6 7-1 17-5 23-8 3-1 10-4 15-6 4-2 12-4 16-6 9.537-6.358 15.28.21 23 6 10 8 24 19 28 22 5 4 26 21 30 25 11.368 12.992 26.465 21.279 41 30 10.726 7.15 19.164 10.582 30 16 .117.039 19.555 4.555 21 6 3 1 9 9 14 18 23 39 32 52 36 54 2 0 9-3 9-6 1-2-1-12-3-18-6.312-13.772-13.121-28.364-18-43-3.556-9.779 2.403-14.282 11-17 10.382-3.282 17.8-6.08 28-2 9 4 14 8 16 13v11c-1.188 7.72-1.43 15.567-1.625 23.375-.139 5.544-.173 11.137.625 16.625 1.61 11.063 10.536 1.902 12.484-2.501 2.106-4.757 6.558-21.062 9.516-25.499 3-9 7-9 15-1 2 1 6 4 9 6 7 3 14 9 16 14 6.151 12.303-7.63 25.726-19 28-1 0-3 1-4 2-3 2-14 7-37 14-4 1-9 3-12 4-3 2-8 3-10 3-3 1-10 3-16 4-14 5-34 7-45 6zm-369-28c-5-1-11-2-13-3l-9-3c-5-3-15-13-19-20-5-8-6-15-6-28 1-10 1-11 4-18 3.844-9.61 8.804-17.483 18-23 9-6 29-12 35-10 3 0 21 9 27 13 7 5 16 18 18 26 3 10 2 15-3 30-3 11-5 15-8 18-8 10-22 17-31 18h-13zm19-33c3.169-1.584 10.061-5.373 10.375-10 .248-3.66-.07-7.344-.375-11 0-12 0-13-3-16-3-4-10-9-14-10-2 0-5 1-9 3-3.062 1.413-7.63 3.631-10.36 6.169-7.543 7.012-7.693 20.41-2.64 28.831.995 1.493 3.49 5.875 5 7 1.255.936 2.787 1.506 4.313 1.859 5.988 1.388 13.653 2.554 19.687.141zm386 22c-6-8-14-20-16-24 0-1-2-5-3-7-4.549-7.278-13.594-22.051-17-30-.487-1.136 1.386-3.329 2.25-3.625 2.172-.745 4.455-1.294 6.75-1.375 4.825-.169 5.674 1.123 8 5 3 2 6 8 7 12 2 4 6 12 8 17 11 22 13 30 11 33-1 3-4 2-7-1zm50-19c-1-3 0-13 4-34 1-5 2-16 2-23 1-17 2-20 5-22 3-3 10-4 11-2 3 2 2 6-3 23-2 9-5 21-6 26-1 9-7 29-8 32-1 1-2 2-3 2h-1l-1-2zm-652-29c-5-3-13-8-15-12-1-1-2-3-3-3 0 0-3-3-5-6-1.671-3.342-3.924-7.413-7-10 0-1-2-3-3-6-9-13-11-20-22-61-2-6-3-14-4-17 0-4-2-12-3-19-2-7-3-13-3-14l1-1 1 1c1 1 4 6 7 12 3 5 7 12 9 15 3 3 8 10 13 16 4 5 10 13 14 17 7 9 12 17 23 38 8.193 16.386 10.588 20.924 14 39 .536 2.842-1.08 6.08-3 8-3 4-9 5-14 3zm553-24c-3.113 0-15.814-2.271-18-3-17-8-26-13-37-21-6-5-14-10-16-11-3-2-10-8-16-13-14.872-14.872-23.396-21.166-40-34-3.956-3.058-7.528-6.764-12-9-20-14-29-21-42-32-4-3-10-8-14-10-4-3-12-9-17-15-11-10-30-25-39-30-24.216-15.135-42.575-38.345-67-53-8-6-14-10-30-23-2-1-8-6-14-11-7-5-13-10-15-12-3-1-8-6-12-9-5.576-3.834-11.079-7.787-16.375-12-4.125-3.282-7.756-8.565-12.625-11l-3-1v-1c0-1-4-4-9-8-5-3-10-7-11-9-2-1-6-5-10-8-9.372-12.496-23.203-21.042-36-30-4-2-11-8-16-12-16-14-33-27-45-35-12.158-7.599-22.176-18.588-35-25-11.165-8.374-21.278-18.065-32-27-14-10-29-23-32-27-1-2-6-6-10-9-12-11-27-27-31-34-3-6-4-12-1-13h1l1 2c1 2 2 4 4 4 1 1 8 8 15 16 14 14 20 20 38 34 11.482 7.655 21.518 17.345 33 25 3 3 12 9 18 14 7 5 17 12 22 16 16 10 21 14 44 33 12 10 24 20 27 22 4 3 8 7 11 9 8.541 8.541 18.568 15.455 28 23 16 15 27 23 57 44 3 3 9 7 14 11 4 3 11 8 15 11 4 2 12 9 18 14 7 5 16 12 21 15 4 4 13 11 20 16 4.802 4.162 9.361 8.638 14.5 12.375 2.061 1.498 7.597 1.722 9.5 3.625 0 1 2 2 4 3 2 2 9 7 15 12 7 5 16 13 21 16 5 4 11 9 13 12 2 2 8 6 12 9 20.137 15.49 40.082 31.23 60 47 14.659 11.606 28.162 23.921 44 34 5 4 12 10 16 13 3 4 7 7 7 7 1 0 19 14 26 20 12 12 33 27 39 30 17.404 4.351 41.14 7.43 58-1 9-6 83-31 95-33 3.302-1.101 6.707-1.875 10-3 1.383-.473 6.486-4.029 8-1h1l-1 3c-2 4-8 7-17 12-5 2-9 4-9 5-1 0-4 2-7 3-4 0-14 4-23 8-9 3-19 7-22 8-7.987 1.997-19.971 11-29 11-3 1-10 3-16 5-11 3-22 5-27 3zm89-7c-2-2-5-5-5-6l-1-1 1-2c2.743-2.743 7.514-4.325 11.224-4.948 1.825-.307 4.135.254 5.023 2.059 1.571 3.192.566 6.637-.247 9.889-2 6-4 6-11 2zm-474-15c-1-1-3-3-4-5-3-5-10-13-15-18-4-5-7-11-6-14 0-2.815 4.313-3.235 5.866-3.277 9.19-.249 24.979.585 34.134-.723 4-1 15-2 24-3 14-1 16-2 22-4 7-3 8-4 10-1 2 1 1 5-4 15-4 7-9 19-9 25-1 2-2 4-3 5l-1 1-5-2c-10.874-5.437-31.29-2.474-41 4-4 2-6 2-8 1zm383 0c-4-1-9-2-12-3-11-6-20-12-27-17-4-3-10-8-14-10-3-3-7-6-8-8-1-1-3-4-6-6-6-5-33-26-40-32-3-3-10-8-15-12-30-20-31-21-44-33-2-2-11-9-19-15-9-6-18-13-21-15-3-3-8-7-12-9-7.517-7.517-15.834-14.195-24-21-3.841-3.201-8.464-5.464-12-9-5-4-12-9-16-12-8-5-15-11-25-19-3-2-8-6-12-9-4-2-7-5-8-6 0-1-4-4-8-6-11.455-11.455-26.04-19.28-39-29-8-5-11-8-33-24-6-5-15-11-20-15-5-3-12-8-16-12-4-3-7-6-8-6 0 0-5-4-11-10-6-5-13-11-14-12-2-1-6-3-9-6-22.095-19.333-36.73-32.076-60-50-7.495-5.773-24.23-16.23-31-23-3-2-7-5-10-7-13-8-34-24-42-32-4-3-8-6-10-7-4.298-1.719-7.926-4.85-11.47-7.828C150.418 276.474 138.957 259.957 125 246c-4-5-5-11-2-17 3-5 12-12 27-19 13-7 20-9 35-13 6-2 14-4 18-5 5-2 8-2 58-5 8 0 12 0 16 1 16.051 8.025 17.362 4.47 33 13 27 15 39 23 43 27 1 2 5 5 9 8 4 2 8 6 11 8 4 4 7 7 39 28 12 8 26 17 29 20 4 2 13 9 21 14 14 10 18 13 22 23 3 6 3 7 3 13-2.72 8.161-5.194 29.548-6 36-1 15-1 16 1 22 2 4 4 9 6 11 3.792 6.635 13.631 15.932 20 20 3.394 2.168 7.546 2.928 11 5 12 7 12 7 25 10 17 3 35 5 51 4 8 0 15-1 16-1 0-3.029 3.821-2.51 5.621-2.355 12.112 1.048 23.936 1.587 35.379 6.355 7 3 14 7 15 8 2 1 6 4 10 8 4 3 10 7 12 9 3 1 5 4 6 4l6 6c3 1 11 7 18 13 16.659 13.883 33.898 28.932 52 41 5 4 15 12 22 18 7 5 15 12 18 14 16 12 27 21 32 25 3 3 9 8 14 11 8.515 8.515 18.485 15.485 27 24 7 5 26 22 41 35 6 5 15 13 20 16 7 6 14 14 16 19 3.775 3.775 1.333 18.532-3.056 20.952-8.799 4.852-25.24 10.125-34.944 13.048-2.514.757-6.927.927-9 3-2 1-6 3-9 4-3 0-6 2-7 2-6.613 2.48-14.123 3.082-20 7-4 1-9 3-12 4-2 0-9 3-14 5-7 3-12 5-29 9-4 1-9 1-20 0zm-471-24c3-2 8-3 14-1 8 3 6 7-7 15-6 3-9 4-13 5-2.49 0-5.732.558-8-1-1.306-.897-1.215-3.546-1-4.75.559-3.124 1.387-6.735 4.25-8.625 3.317-2.19 7.828-1.703 10.75-4.625zm-30 11c-4-4-4-6-1-11 3-4 6-4 9 0 .553.553 1.114 1.115 1.536 1.773 2.021 3.157 1.361 6.397-.911 9.227-1.086 1.353-2.699 3-4.625 3 0 0-2-2-4-3zm-13-12c-3-2-5-9-3-10 2-3 11-2 13 2 1 4-4 10-8 10 0 0-2-1-2-2zm69-6c-4 0-8-1-9 0-2 0-14-2-18-3-4-2-4-4-3-14v-14l1-7-2-1h-1v3c0 5-3 22-4 24-3.342 5.012-7.019 4.491-12 2-1-2-1-3 0-9 1-8 2-17 4-33v-9h-3v7c-2 13-3 26-4 33-2 10-3 11-13 8-9-3-15-5-15-7l-1-2 2-2c3-2 13-24 15-32 1-3 2-7 2-9 4.729-18.916 5.774-39.739.25-58.625-3.097-10.588-8.48-21.494-13.25-31.375-5.264-11.844-16.382-26.953-29-32-10.362-5.181-8.912-7.217-19.25-12.125-2.716-1.289-6.772.247-9.139-2.301-2.318-2.495 1.683-7.938 2.571-9.141 3.426-4.642 13.682-15.297 16.818-18.433 10-9 15-13 25-19 6-4 12-7 13-7 0 0 4-2 8-5 13.526-8.695 32.694-20.107 50-20 4.346.027 8.789 3.707 12 6 12 10 21 16 24 17 8.028 8.028 17.135 14.908 26 22 5 3 10 7 12 8 1 2 5 4 7 6 .96.32 20.921 14.947 21 15 4 3 11 8 27 22 3 2 8 6 10 8 3 2 11 10 18 16 7 7 16 15 21 17 6.248 4.686 11.752 10.314 18 15 11 10 12 11 7 15-7.861 4.866-17.855 8.122-22.359 17.016-3.2 6.317 2.378 10.984 8.359 10.984 7-1 25-6 32-10 6-3 7-3 12-3 5 1 17 7 20 11 3 3 17 13 18 13l8 6c4 4 9 8 11 10 2 3 4 5 4 6-1 2-10 7-21 10-4 2-10 4-13 5-18 7-22 8-28 10-4 0-12 2-17 3-13 4-25 7-34 9-4 1-9 3-11 4-2.246 1.021-4.538 2.134-6.984 2.453-9.347 1.219-7.296-9.013-10.016-14.453-3-3-4-3-14 1-1.693.423-16.243 2.622-19 4-3 0-9 2-15 2-7 1-16 1-20 2-11.119 0-24.001-.124-35 2-3.908.755-3.222 10.222-5 12-3 1-22 2-29 0zm-102-22c-10-3-17-6-20-10-9-7-27-25-27-26v-2h4c5 0 14-2 19-4 3-2 13-12 15-15 5.952-17.855 4.527-37.982-12-49-10-7-17-10-26-10-5-1-9-2-9-2-1-1-1-3 0-5 0-2 0-5 1-7 1-8 14-37 18-40 7.017-4.678 22.999.999 28 6 2 1 6 5 10 7 12.547 9.411 19.672 17.565 27 31 3 7 7 15 7 19 3 11 6 39 4 43-1 1-2 7-2 15-2 17-5 24-12 35-5 8-6 9-11 11-7 4-11 4-14 3zm-90-49c-7.444-3.722-11.362-16.532-3.781-22.141C169.441 642.516 178.206 641 187 641c3.028.303 7.332.697 10.125 2.125 5.271 2.694 6.218 9.368 5.875 14.625-.107 1.645-.68 5.93-2 7.25-2 3-5 2-12-4-3-3-7-6-8-6h-2v2c-.687 0-.861 1.57-.875 1.875-.13 2.79.031 5.596-.25 8.375-.097.957-.195 2.07-.875 2.75-1 3-6 3-11 0zm44 1c-4.283-8.566.973-19.036-5-27-3-6-8-11-10-12-7-1-8-8-3-14 4-6 10-9 17-9 7-1 12 1 22 7 9 6 12 10 13 20 1 7 1 8 0 15-3 10-4 12-9 15-6 4-10 5-17 6-5 0-7 0-8-1zm319-20l-2-1v-2c0-1.777 2.046-4.436 3.25-5.5 6.153-5.435 9.535-7.899 17-11.375 3.342-1.556 7.887-2.975 11.578-1.438 3.728 1.554 11.003 8.207 4.172 10.938A218.176 218.176 0 01551 645c-16 6-19 7-22 6zm-368-22c-1-1-6-8-11-15-6-7-13-16-15-19-3-4-8-12-12-16-6.614-8.267-10.401-19.401-18-27-9.786-15.378-18.184-29.393-19.648-47.666-1.248-15.568 19.495-6.345 24.648-.334 8 9 21 27 26 38 6 13 11 26 14 34 8 21 16 48 16 53v3h-1c-1 0-3-1-4-3zm683-38c-17-12-25-18-33-24-5-4-13-10-17-14-13-10-28-22-28-23-1-1-16-14-23-19-10-7-16-11-24-18-.453-.226-14.761-9.761-16-11-2-3-8-7-12-10-5-4-10-8-11-9l-3-3 3-7c1-3 4-9 5-13 0-3 2-7 3-8 1 0 5-2 9-2 6-1 11-2 32-6 5-1 14-3 19-3 5-1 13-3 17-4 5.959 0 31.04-2.434 35-3 22-5 21-5 19 14v2l6 2c5 2 8 2 16 1 6-1 14-1 18-2 3-1 13-2 22-3 8-1 17-3 19-3 3-1 7-1 9-1 2 1 8 0 14-1 13-2 11-2 33 0 24 1 37 5 38 10v2l-2 1c-2 1-15 2-53 2-28 1-53 1-55 2-3.956.989-14.709 5.801-12.5 12.375 1.07 3.185 6.193 7.548 8.5 9.625 5 4 13 10 18 14 5 3 11 8 14 10 2 2 10 8 18 13 6.885 4.711 13.543 9.75 20.125 14.875 1.732 1.348 5.904 5.459 5.875 8.125-.023 2.153-4.399 6.909-5.659 8.149-9.38 9.229-20.863 17.474-32.341 23.851-7.168 4.301-21.497 15.832-31 19-2 1-6 4-9 5-8.311 5.541-23.919 18.041-34 13zm205-37c-12-4-33-15-55-29-6.289-3.145-13.028-6.028-18-11-7-6-13-10-22-16-16-10-21-14-25-17-2-2-5-4-5-4s-3-2-5-4c-6.483-4.322-21.03-16.03-26-21l-6-6 1-1c0-1.121 1.418-1.955 2.5-2.25 2.744-.748 5.656-.726 8.5-.75 27.332-.227 54.667-.002 82 0 11.168.001 15.333-1 26 3 4 2 9 5 12 6 6 5 31 28 37 36 3 3 9 10 14 15 10 9 16 18 22 31 4 9 4 11-1 16-2 3-4 4-11 6-12 3-20 3-31-1zm-27-2c-3-2-7-4-10-6-4.669-1.556-8.708-4.592-13-7-9.375-5.259-18.884-10.303-28-16-4-3-10-7-13-9-4-2-10-6-13-10-9.68-8.066-20.052-15.274-30.375-22.5-7.284-5.099-8.371-3.246-14.625-9.5-5-3-10-8-12-10-7-5-8-6-8-8v-2h2c1-1 6 1 11 5l5 5c8.527 4.264 14.473 12.736 23 17 3 3 9 7 14 10 6.779 6.779 19.158 13.733 27 19 28.574 19.192 27.746 20.36 58 37 7 3 12 7 12 8v1h-3c-1 0-5-1-7-2zm-768-68c-7-4-14-10-28-22-8.693-8.693-12.761-10.071-22-17-7-5-10-7-21-14-3-3-8-7-10-9-4.16-2.774-7.847-6.215-12-9-2.192-1.47-9-2.938-9-7-8.148-8.148-24-16.388-24-30v-3l1-1c5.254 0 8.839 6.032 12 9 9.267 8.701 14.416 12.944 25 20 6.76 6.76 30.816 24.012 35 27 6 5 14 11 17 14 3 2 9 7 14 11 17 13 33 26 34 29l2 2-1 2c-2 2-5 1-13-2zm17-8c-2-1-7-5-11-8-3-3-11-9-16-13-5-3-11-8-13-10-2-1-6-4-9-5-3-2-5-4-6-4-1-2-9-9-16-13-5-4-12-10-33-28-5-5-11-10-13-11-6.601-4.401-30.276-23.945-10-28 9.524-2.597 19.19-4.902 29-6 1.367-.153 2.518 1.299 3.375 2.375 1.726 2.169 15.862 29.269 23.625 17.625 1-3 1-3-3-13-2-8-3-10-2-11l1-2 2 1c2 1 23 16 33 24 3 3 8 6 11 7 2.754 1.377 5.938 4.938 8 7 5 3 21 15 29 22 3 3 8 7 10 8 10 7 24 19 27 23 3 3 6 18 4 20-1.068 3.205-5.881 5.673-8.5 7-4.788 2.425-9.739 4.522-14.5 7-7.131 3.713-17.334 12.933-26 6zm54-21c-1 0-1-3-2-5 0-3 0-5 1-6l2-1 2 2c2 2 3 6 0 9-1 2-3 3-3 1zm338-7c-3-1-6-3-8-4-1-2-3-2-5-2-1 1-4 0-7 0-4-2-9-1-27 0-15 1-22 1-23 0l-1-1 1-2 1-2-3-3c-5-5-14-8-19-5-2 1-3 1-5 0-1-1-3-1-3 0h-1l1 4c0 4-2 6-7 9-4.389 1.755-11.174.247-15.235-1.088-19.517-6.415-39.58-17.239-49.765-35.912-4-8-4-8-4-18 1-17 4-34 5-35 2-3 5-2 7 1 2 2 2 7 0 11 0 3 4 7 9 8 4 1 4 1 7-2 5.431-7.241 16.582-4.279 23 0 8 7 20 12 28 12 13 2 23-2 37-14 6-6 7-6 12-6 5 1 7 1 10 4 8.583 5.364 9.796 11.322 13 21 2.525 7.627 3.748 17.874 12 22 1 1 8 3 16 5 7 2 13 4 14 4 2 2 1 5-1 15-4 13-4 15-7 16-3 2-3 2-10-1zm-91-4c-3-2-2-4 2-9 3-4 4-4 7-4 2 1 4 1 6 2l3 2v1c-.284.851-1.38 2.116-2.047 2.672-3.33 2.778-4.322 3.435-8.219 5.344-.812.398-2.799 1.044-3.734.984l-4-1zm441-3c-3-2-9-7-12-11-6-5-9-7-14-9-12.031-5.156-25.457-2.579-38-3-10.643-.357-23.629-4.186-34 1-3 0-10 1-17 2-8 0-15 1-16 1-3 2-41 4-46 3-2 0-5-1-6-1-2-2-1-8 2-13 8.607-17.214 19.316-34.503 32-49 4-3 8-8 10-11 22-37 36-51 63-64 6-3 13-6 17-6 8.886-2.962 19.588-5.345 29-4 15 3 27 10 41 28 5 6 9 11 10 15 1 3 3 7 4 9 6.945 11.111 6.434 25.614 6 38-.351 10.016-.352 20.114-2 30 0 5-1 12-2 14 0 6-6 22-8 26-2.286 3.048-6.896 7.449-11 8-1.797.241-6.649-3.324-8-4zm-320-19l-2-2 1-3c1-1 6-5 15-9 7-4 15-8 16-10 4-3 8-9 15-19 6.047-8.063 21.201-27.377 33.612-19.992 5.812 3.458 6.656 6.655 11.388 10.992 6 6 14 13 16 16 6 5 14 14 14 16v2l-1 1c-11.785 0-24.459-.27-35 5-7 2-24 5-36 6-6 1-14 2-18 3-4 0-9 1-13 2-4 0-8 1-9 2-4 1-5 1-8-1zm-30-13c-12-3-17-8-19-19 0-2-2-8-3-13-.486-1.783-2.554-8.073-1.375-10.125 1.369-2.383 6.524-1.696 8.375-1.875 10.575-1.024 20.071-1.745 30-6 3-2 6-3 8-3h2v1c1 1 0 4 0 6-2.428 8.498-6.872 32.643 9.391 27.085 2.59-.885 5.332-1.567 7.609-3.085 7-4 20-14 25-22 10-14 16-19 23-21 2.37-1.58 5.161-2.772 8-3 3.766-.302 7.911 3.179 6 7 0 0-4 3-9 6-5 2-11 6-14 9-10.505 8.754-8.431 10.397-17 21-7.882 9.754-11.711 13.356-23 19-8 5-10 5-19 6-13 1-14 1-22 0zm163-16c-15.484-8.602-26.704-19.704-39-32 0-1 1-4 3-6 7-8 6-14 0-21-4.877-6.503-11.975-3.756-19-2-11.122 3.707-7.991-6.221-2.234-9.829 9.021-5.657 21.333-5.371 31.234-3.171 11 3 33 12 39 17 3 2 8 6 11 8 10 5 10 8 4 20-7 13-21 31-24 31l-4-2zm-267-19c-11-4-18-8-21-13-1-3-1-10 0-10l1-1 1 1s2 2 4 5c3 4 12 9 19 11 2 0 6 0 10-2 8-2 15-6 20-16 4.901-8.169 5.991-18.011 0-26-3-7-10-12-19-15-8-3-17-2-26 1-2.519 1.44-5.277 2.62-7.375 4.625-3.37 3.22-6.706 14.267-12.625 6.375-1-1-4-3-5-4-5-2-6-5-5-10 1-3 2-7 2-10 2-9-4-18-13-22-3 0-6-2-6-2l-1-1 2-2c1-1 3-1 8-1 10 1 19 6 30 15 8 7 8 8 21 12 7 2 16 5 19 5 7 2 14 7 22 14 9.033 10.324 14.096 24.857 6 37-5 9-16 19-23 22-8 3-19 4-26 1zm-52-7a4.828 4.828 0 01-1.045-.958c-2.112-2.579.388-6.042 2.045-8.042.57-.688 1.733-2.254 2.875-2.25 1.052.004 1.71 1.627 2.125 2.25 2 2 2 6-1 9-2 3-3 2-5 0zm-320-6c-1.302-3.907-1.935-3.507-4-7-5.066-8.568-5.546-10.091-10-19-3-5-5-10-5-11l-1-2 1-1c4-1 14 9 17 18 1 2 3 8 5 14 2 5 4 10 4 11-2 2-4 1-7-3zm368-5c-6-4-10-8-11-13-1-10 2-22 9-27 3.114-2.076 7.448-2.339 11-2 12.122 1.158 24.931 6.102 26 20 2 9-2 16-12 22-7.36 2.944-16.041 5.219-23 0zm5-15c4-3 1-9-5-9h-3l-1 2c-1 3 1 7 3 8 3 1 4 1 6-1zm69 16c-2.216-.511-11.498-.909-13.032-5.697-.814-2.542-.974-12.182 3.032-12.303 2.107-.064 4.114 1.057 6 2 7 3 13 3 28 2 14-1 20-3 34-9 5-2 7-3 8-2l2 1-1 2c-1 5-19 18-29 21-9 3-27 4-38 1zm-107-1c-2.362 0-4.145-1.881-6-3-2.301-1.389-4.596-2.798-7-4-3.591-1.539-7.018-4.339-7.705-8.408-.144-.852-.075-1.739.065-2.591.17-1.036.417-2.078.857-3.031 2.205-4.769 6.065-3.201 9.783-.97 2 2 6 3 9 4 6 1 9 4 10 9 1 6-3 10-9 9zm254-15l1-3 3-1c1.982 0 4.025.183 5.563 1.591a20.269 20.269 0 011.837 1.927c.421.501.806 1.297.725 1.982-.187 1.574-2.059 2.7-3.125 3.5-.92.92-2.051 2.198-3.5 2.25-1.232.044-2.358-1.145-3.103-1.909-1.403-1.44-2.397-3.291-2.397-5.341zm-143-3c-8-2-11-4-17-14-4-9-13-18-21-22-3-2-11-5-17-7-7-2-15-5-17-5-2-1-6-2-7-3-3 0-16-13-19-18l-1-2 3-3c13.4-16.08 36.751-20 56-20 18-1 19-1 26 1 8 2 16 6 18 8 1 0 4 1 6 1 4 1 6 2 8 4 2 1 6 4 9 6 2 2 6 5 9 7 4 5 5 7 2 12l-1 3 4 5c4 4 5 6 7 12 .641 3.848 3.583 13.209 10 10 5-1 8 5 5 10-3 3-21 13-27 14-8 1-31 2-36 1zm-116-7c-3-2-4-5-1-7 2-3 5-2 8 0 2 3 3 4 0 6-1 2-4 2-7 1zm-30-16c-4.529-4.529-7.821-12.864-5.762-19.266 2.44-7.582 8.987-13.79 16.762-15.734 6-1 9-1 12 3 3 3 4 17 2 22-2.614 6.969-9.834 14.184-17.892 13.074-3.66-.504-4.069-1.048-7.108-3.074zm5-7c.701-.654 1.736-1.591 2.347-2.438 1.255-1.738 1.461-4.292.777-6.305-.81-2.384-3.188-5.636-5.96-3.622-2.035 1.479-3.767 3.987-2.83 6.596.374 1.043 1.207 2.19 1.916 3.019.845.989 2.188 2.75 3.75 2.75zm197-3c-1.946 0-2.323-3.072-1.313-4.234 2.188-2.517 4.321-4.27 7.313-5.766l3-2v-4l-6-1c-4 0-8 0-9-1h-2v-2c1.252-3.757 6.299-5.781 9.844-6.328 6.637-1.024 16.624-.98 18.375 7.344.402 1.913.199 4.101-.219 5.984-2 5-13 15-18 15 0 0-2-1-2-2zm-109-69c-2-1-1-5 1-7 1.966-1.475 5.781-2.815 7.313 0 .224.412.39.858.507 1.313.115.444.179.905.184 1.363.017 1.552-1.004 2.807-1.004 4.324-1 1-7 1-8 0zM451 837c-3-1-5.845-3.873-8-6-.93-.918-2.385-2.489-2.625-3.875-.349-2.015-.294-4.081-.375-6.125-.064-1.614-.056-4.189.5-5.75 1.207-3.388 5.195-6.249 7.861-8.145 4.369-3.106 10.516-6.1 15.849-3.437 3.411 1.703 5.925 5.135 7.79 8.332 3 5 3 10-1 17-5 11-10 13-20 8z" fill="#fff" fill-rule="nonzero"/></svg>
\ No newline at end of file
diff --git a/static/shared/gopher/gopher.css b/static/shared/gopher/gopher.css
deleted file mode 100644
index 14c2644..0000000
--- a/static/shared/gopher/gopher.css
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * Copyright 2020 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-GopherMessage img {
-  display: block;
-  height: 15rem;
-  margin: 0 auto;
-  padding: 1.25rem 0;
-  width: 15rem;
-}
-.go-GopherMessage p {
-  font-weight: 600;
-  margin: auto;
-  text-align: center;
-}
diff --git a/static/shared/gopher/gopher.tmpl b/static/shared/gopher/gopher.tmpl
deleted file mode 100644
index 456b79a..0000000
--- a/static/shared/gopher/gopher.tmpl
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
-  Copyright 2021 The Go Authors. All rights reserved.
-  Use of this source code is governed by a BSD-style
-  license that can be found in the LICENSE file.
--->
-
-{{define "gopher-airplane"}}
-  <div class="go-GopherMessage">
-    <img width="1200" height="945"src="/static/shared/gopher/airplane-1200x945.svg"
-        alt="The Go Gopher">
-    {{if .}}<p data-test-id="gopher-message">{{.}}</p>{{end}}
-  </div>
-{{end}}
diff --git a/static/shared/gopher/package-search-700x300.jpeg b/static/shared/gopher/package-search-700x300.jpeg
deleted file mode 100644
index 2be4db5..0000000
--- a/static/shared/gopher/package-search-700x300.jpeg
+++ /dev/null
Binary files differ
diff --git a/static/shared/gopher/pilot-bust-1431x901.svg b/static/shared/gopher/pilot-bust-1431x901.svg
deleted file mode 100644
index a654dc7..0000000
--- a/static/shared/gopher/pilot-bust-1431x901.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg viewBox="0 0 1431 901" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M335.6 867.8c-.6-33-1.1-47.7-2.2-69.6-.6-10.6-.7-11.2-2.4-10-1 .7-5.7 4.6-10.6 8.6-15.4 12.5-25.1 16.2-47.4 17.7-12.7.9-17.2 2.1-32 9-7.5 3.5-15.5 6.8-17.8 7.5-3.1.8-15.6.9-45 .4l-40.7-.7-9.5 4c-18.4 7.8-31.9 11-41.5 9.8-9-1.2-21.4-4.4-26.4-7-11.5-5.8-23.1-18.3-38.8-42-19.7-29.6-24.6-42-19.2-48.9 1.2-1.5 4.9-4.1 8.3-5.8 11.3-5.6 11.9-6.4 14.1-17.1 1.2-6 7.3-8.4 13.3-5.3 3.7 2 9.4 8.1 13.4 14.6 4.4 7.1 4.6 7.5 6.9 20.5 2.8 15.5 8.5 38.9 10.8 44 1.8 4 2.4 4.5 7.7 6.1 8.5 2.4 23.5 1.5 32.9-2.1 3.9-1.4 12.2-4 18.5-5.6 11.1-2.9 12.5-3.1 36.5-3.4 35-.4 54.8-3.6 62.5-10.1 7-5.9 28-56.1 35.4-84.8 5.2-19.7 5.7-30.9 2.2-46.5-5.3-23.4-13.3-77.8-14.3-96.6-.6-11.5 1-23.3 6-46l2.2-10-5.1-5.2c-6.2-6.1-11.4-15.1-14.4-24.8-3-9.6-3.8-28.1-1.6-38.4.9-4.1 1.5-7.5 1.3-7.6-.1-.1-3.1-2.2-6.7-4.7-22-15.4-33.1-36.4-33.3-62.8-.1-13.6 1.3-22.8 5.9-37 4.6-14.5 10.8-24.6 21.3-35 10.1-10 18.1-14.9 30.8-19 13.1-4.2 20.8-5.3 38.3-5.3h15.6l2.3-11.1c3.4-16.3 8.6-32.9 13.7-43.4 7.5-15.5 20.5-27 45.1-39.9 8.5-4.4 12.6-7.4 19.3-13.8 5.3-5.1 14.5-12.1 24.5-18.8 18.3-12.1 35.8-26.7 47.2-39.4 11.3-12.7 14.6-15.6 26.8-23.7 18.8-12.5 55-31.8 79.1-42.1 14.6-6.3 23-8.3 62.4-14.9 18.4-3.2 39.1-6.9 46-8.4C689.2.6 690.3.5 723.5.5c35.9 0 51.2.9 82.5 5.1 21.1 2.8 34.6 6 44 10.2 6.9 3.2 34.5 13.3 62 22.7 43.7 15.1 57 19.9 62.5 22.7 14.2 7.1 36.1 24.7 70 56.3 20.2 18.8 22 20.2 42.9 34.5 32.3 22 35.4 26.2 48.7 67.5 12.3 38.2 11 35 14.5 34.8 5.6-.3 24.6 1.7 31.3 3.3 3.6.8 11.2 3.8 16.8 6.5 21.8 10.7 35.3 28.8 43.1 57.8 2.1 8.1 2.6 11.8 2.6 24.1.1 13.4-.1 15.2-2.8 23.3-4.6 14-14.3 27.1-25.6 34.8l-5.1 3.4.8 10c1.3 16.4.8 39-1.1 48.4-1.8 8.9-6.1 19.3-9.2 22.5-1.6 1.7-1.8 3.2-1.6 10.2.4 8.1-1.6 26.9-4.3 40.7-1.3 7-1.3 7.3 1 11.2 1.3 2.2 5.1 7.2 8.5 11 3.4 3.9 7 8.7 8.1 10.8 5.5 10.4 8.6 35.4 7.5 60-1.3 29.3-4.8 40.9-26.6 86.4-8.6 18-11.4 25.6-10.6 29.7.8 4.3 5.3 10.7 10.6 15.1 6.7 5.6 29 20.3 40.9 26.9 7.7 4.4 12.9 8.3 20.5 15.5 13.2 12.5 18.7 15.5 28.1 15.5 12.6-.1 19.7-5.3 28.4-21 7.6-13.7 11-18 26.9-34.5 15.4-15.9 23.6-22.5 35.2-28.4 19.8-10 37.8-9.9 49.2.3 5.7 5.2 7.8 9.2 7.8 15.1 0 5.5-1.3 8.4-6.2 13.7-8.2 8.9-22 16.5-44.2 24.3-13.7 4.9-18.2 7.7-29.8 19.1l-10.6 10.5-4.1 12.8c-2.2 7-5.3 14.6-7 17-6.8 9.8-24.2 23.7-31.5 25.1-2.5.5-5.8-.2-13-2.8-11.8-4.3-21-6.3-35.2-7.5-18.2-1.7-31.8-7.6-66.6-29.4-16.9-10.5-27.8-16.7-29.3-16.7-.3 0-.3 14.5.1 32.3.4 17.7.4 36.1 0 41l-.8 8.7H336.3l-.7-33.2z" fill="#0a0a0a" fill-rule="nonzero"/><g fill="#fefefe" fill-rule="nonzero"><path d="M348 874.8c0-14.5-.7-42.9-1.5-63.3l-1.4-37 3.7-3c13.5-10.9 22.7-22.5 31.7-39.8 6.6-12.9 6.9-15.6 2.8-35.8-4.9-24.8-3.7-39.6 5.9-75.9 1.7-6.3 3.3-12.5 3.6-13.7.2-1.3.8-2.3 1.1-2.3.4 0 5.4 2.4 11.2 5.4 12.3 6.5 27.3 11.8 41.3 14.8 8.1 1.7 13.6 2.1 27.6 2.2 36.6.1 71.3-8.2 103.4-24.6 10.3-5.3 29.9-17.9 31.3-20.1.4-.6 1.2 2.6 1.9 7.1 2.7 19.2 13 30 32 33.5l6.9 1.3-.3 7.5c-.1 4.1-.7 16.4-1.2 27.4-1.5 32-1.4 37.2 1.4 43.1 6.6 14.1 24 21.9 41 18.4 7.5-1.5 19.9-7.9 26.2-13.4l4.9-4.3 4.4 3.4c9.7 7.4 24.6 12.6 36.1 12.5 15.9-.1 29.1-10.4 33.7-26.4 2.3-8.3 2.8-35.4.9-53.4-.9-8.3-1.6-15.6-1.6-16.2 0-.7 1.2-1.2 2.8-1.2 4.6 0 15.6-2.7 20.5-5 11.2-5.3 19.3-16.8 21.8-31.2.7-4 1.3-7.4 1.5-7.6.1-.2 2.8 1.3 6 3.4 16 10.2 42.3 20.6 65.4 25.8 21.5 4.8 32.9 6 57 6 24.9.1 33.7-1.2 51.9-7.6 21.5-7.5 49.1-24.7 63-39.2 1.9-2 3.8-3.6 4.2-3.6.4 0 1 4.6 1.3 10.3 1.9 28.8 5.2 44.5 12.6 59.2 8 16.1 9.4 22.4 9.4 45.5l.1 19.5-5.1 17.5c-7.1 24.1-9.6 36.5-9.8 48.5-.1 8.7.2 10.6 2.3 14.4 4.8 9.1 17.7 20.5 33.8 30l7.3 4.3.2 43.7.3 43.6v14.95c4.5.9-86 3.267-390.7 3.367L348 914.264V874.8z"/><path d="M1288.5 863.9c-9.3-3.7-23.3-6.8-35.4-7.9-19.1-1.6-30.4-6.5-65.8-28.6-10.1-6.3-25.1-15-33.4-19.4-26.6-14.2-40.8-24.9-45.5-34.6-2.5-5-2.6-6.2-2.1-13.4.8-9.8 4.4-26.3 10.4-46.9 4.1-14.3 4.5-16.8 5-29.9.9-23.2-2.5-40.5-10.8-55.7-6.9-12.7-10.5-31.3-11.5-59.5l-.6-16.5 5.8-7c9.6-11.7 18.8-26.7 24.2-39.3l2.3-5.3 4.7.8c2.6.4 11.9.7 20.7.6 15.3-.1 23.9-1.3 32.9-4.9 1.8-.7 1.9-.3 1.2 8.2-.3 4.9-1.8 16.3-3.2 25.4-1.4 9-2.3 17.7-2 19.3.7 3.4 5 9.8 12.9 19 3.3 3.8 6.8 9.2 7.9 11.9 3.2 8.4 4.8 22.9 4.8 42.8 0 34-2.1 41.6-24.5 89.5-5.7 12.1-10.8 23.8-11.4 26-3.6 13.4 1.7 24.2 18.2 36.4 10.2 7.6 27 18.4 38.7 24.9 4.6 2.5 11.7 8.1 18.4 14.2 6.3 5.9 13.5 11.5 17 13.3 5.7 3 6.8 3.2 16.1 3.2 8.9 0 10.6-.3 15.7-2.8 7.4-3.6 15.4-12.4 21.3-23.2 2.6-4.7 6.3-10.7 8.3-13.4 4.6-6 28-30.7 28.5-30.1.2.3 2.3 6 4.5 12.8l4.1 12.2-5.7 3.6c-7.1 4.6-25.8 22.7-28.2 27.4-.9 1.9-3.1 8-4.8 13.5-3.6 11.5-7.2 17.5-14.5 24.1-6.4 5.8-15 11.4-17.4 11.4-1-.1-4-1-6.8-2.1zM77.5 833.4c-10.4-2.2-16.8-5.6-24.2-12.6-7.8-7.5-15.4-17.3-26.3-34-8.1-12.2-18-30.7-18-33.4 0-.7 3.5-3.1 7.8-5.3 10.6-5.3 14.7-10.2 16.4-19.6.4-1.7 1-1.4 4.6 2.4 6.5 7.1 8.7 12.3 11.7 27.6 5.4 28.8 10.4 45.2 14.8 49.4 8 7.5 31.7 8.7 48.8 2.5 19.8-7.2 22.1-7.6 52.9-8.4 46.7-1.3 64-5.5 71.8-17.8 11.3-17.5 31.6-70.9 36.2-94.9 2.9-15.5 2.5-29-1.8-48.8-6.4-30.2-13.7-85.3-12.7-96 .6-6.2 7-40.4 7.7-41 .2-.2 4.1 1 8.8 2.6 10.8 3.6 21.3 5.2 30.7 4.7 4.8-.2 7.3 0 7.3.8 0 .6 2 5.2 4.5 10.2 12.5 25.9 39.2 56.8 62.9 73.1 3.5 2.4 4.6 3.7 4.1 4.9-1.3 3.4-9.5 36.1-11.7 46.7-3.1 15.5-3 31.5.6 49.4 3.5 18.2 3.4 21.5-1 30.4-4.7 9.4-13.2 22.1-18.6 27.7-2.4 2.5-11.1 10.4-19.2 17.5-34.1 29.8-37.2 31.5-62.2 33.5-16.9 1.3-21.2 2.5-36.9 10.2l-13 6.3-44.5.1-44.5.2-12.5 5c-20.9 8.5-29.4 9.8-44.5 6.6zM1375.5 785.8c-3.7-10-4.4-13.2-3.3-13.9 1.9-1.2 2.6-.3 4.3 5.9.9 3.1 1.8 6.5 2.1 7.5.6 2-2.4 2.5-3.1.5zM1380.7 782.6c-.4-1 1.3-2 5.6-3.6 9.5-3.4 23.7-10.8 28.5-14.7 7.2-5.9 8.8-11.1 5.2-17.1-5.7-9.4-24.3-9.7-43.7-.7-8.6 4-10.7 2.9-3.1-1.5 11.9-6.8 25.5-10 34.3-8.1 9.4 2.1 17.5 9.3 17.5 15.5 0 8.6-11.6 18.1-33.3 27.4-5.4 2.3-9.9 4.2-10.1 4.2-.2 0-.6-.6-.9-1.4z"/><path d="M1378.2 774.3c-1.1-3.7-.9-5.3 1-5.3 1.7 0 18.1-7.9 20-9.7 2.5-2.2 2.3-5.1-.5-5.8-2.3-.6-10 1.5-19.5 5.4l-5.3 2.1-1.8-4.2-1.8-4.3 4.6-2.4c7.3-3.8 18-7.1 25.1-7.7 5.4-.5 7.5-.3 11.3 1.4 5.1 2.3 9 7.4 8.1 10.7-1 3.7-10.1 11.1-18.6 15.3-8.7 4.2-18.5 8.2-20.4 8.2-.6 0-1.6-1.6-2.2-3.7z"/><path d="M1369.6 769.3c-2.3-2.3 4.7-6.4 19.3-11.3 12.2-4.1 11.8-1.5-.6 4.3-10.9 5-18 7.7-18.7 7zM1365.6 756.5c-3.1-9.5-1.6-10.9 2.4-2.1 3.4 7.5 3.5 8.2 1.6 8.9-1.1.4-2.1-1.4-4-6.8zM672.3 707.4c-4.9-1.8-12-8.5-13-12.3-.7-2.6 1.3-60.3 2.3-67.7l.6-4.2 5.8-.6c3.3-.4 8.3-1.4 11.2-2.2 16.2-4.5 24.1-6.3 30.7-6.9l7.3-.7-.3 38.7-.4 38.7-6 5.6c-11.6 10.8-27.3 15.6-38.2 11.6zM754.1 705.5c-8.1-1.8-17.6-6.3-22.2-10.6l-3.7-3.4.5-39.4.6-39.4 7.8.7c9.7.8 44.1 6.5 45.1 7.4.4.4 1.4 8.1 2.3 17.2 2.1 20.4 1.7 45-.9 52.1-4.6 12.6-15.6 18.4-29.5 15.4zM453.8 616.5c-43.5-6.8-87.7-37.3-116.7-80.4-16.4-24.3-20-36.7-20.8-72.2-.6-25.1.4-39.1 4.2-58.4 11.4-57.3 38.8-101 81.4-129.6 49-33 132.7-53.8 248.6-61.9 31.8-2.2 107.8-3.3 140.9-2.1 138.2 5 222.7 27 270 70.2 33.4 30.6 55.2 72.2 63.6 121.3 6 35.2 4 78.4-4.7 99-3.5 8.5-12 22.7-18.8 31.6-26.9 34.8-59.3 57.1-97 66.7-10.5 2.7-12.1 2.8-34 2.8-28.6 0-44.5-2.2-70.4-9.7-18.9-5.4-39.3-14.7-52.6-23.9-6.4-4.4-7.2-5.4-9-10.6-5.2-15.2-21.8-29.7-44.9-38.9l-8-3.3-1.1-4.9c-1.3-5.7-4.1-9.9-9.3-14-17.4-13.8-52.1-18.1-79.7-10-20.3 5.9-32.2 18.1-29.5 30.2l.7 3.3-8.6 3.9c-18.5 8.3-35 22.2-41.9 35.2-2.6 4.9-5.1 7.7-11 12.4-19.6 15.7-43 27.7-68.4 35.4-27.3 8.2-60.7 11.3-83 7.9zm83.7-50.9c29.7-5.2 58.3-17.2 80.7-33.8 11.1-8.2 30.3-25.4 37-33.1 17.2-19.7 27.5-39.9 32.9-64.7 3.1-13.7 3.3-39.7.6-53.3-9.1-44.9-38-81.8-79.8-101.6-39.3-18.7-79.7-19.9-123.9-3.8-66.2 24.1-109.2 65.8-122.5 118.7-3.7 14.8-4.8 24.2-4.7 41 .1 16.9 1.6 28 5.7 40.9 13.5 42.7 49.3 74.4 97.5 86.6 8.3 2.1 12.5 2.8 27.5 4.9 6.1.9 41.3-.4 49-1.8zm413-18.6c37.9-3.7 70.6-17.5 93.5-39.6 18.4-17.7 29.5-39.4 33.7-65.8 2.4-15.5 1.4-48.9-2.1-65.3-14.4-68.2-64.7-110.1-147.6-122.8-14.5-2.2-48.3-3.1-59.1-1.6-47 6.8-86.5 33-109.3 72.8-13.1 22.8-18.3 44.6-17.3 73.1.6 18.3 2.7 29.3 8.7 44.7 9.5 24.5 27.9 48 49.7 63.7 10.4 7.5 35 20.7 48.3 26 32.7 12.8 68.2 18 101.5 14.8z"/><path d="M480.2 557.4c-24.5-3.5-48.5-13.1-67.2-26.7-14.4-10.5-30.4-30.5-37-46.3-11.8-28.3-12.8-63.9-2.8-95.3 7.1-22.5 17.4-38.9 35.7-57.1 10.8-10.7 22.1-20.2 22.1-18.7 0 .3-1.6 2.5-3.7 4.9-9.6 11.4-19.2 28.7-24.1 43.5-5.7 16.8-6.7 23.8-6.7 45.3.1 17 .4 20.7 2.4 29 7 28.4 20.6 52 41.3 71.5 26.5 24.9 59.6 38.6 96.8 40.2 13.1.5 30-.6 34.5-2.3.8-.3 1.5-.1 1.5.4 0 1.2-14.5 6.1-25.5 8.7-19.5 4.5-47.9 5.8-67.3 2.9z"/><path d="M527.5 535.4c-17.2-2.5-29.8-6.2-43.4-12.5-39.8-18.6-67.6-54.5-74.7-96.4-2.4-14.3-1.5-37.3 2-50.5 6.5-24.4 16.8-42.3 34.5-60.1 34.1-34 84.4-47.5 132.1-35.4 50.9 13 89.1 52.6 99.1 103 2.1 10.4 1.8 36.8-.5 47.3-5.4 25.2-17.3 47-35.6 65.2-18.8 18.9-42.4 31.5-70 37.5-7.3 1.6-36.9 2.9-43.5 1.9zm110.6-82.6c12.1-6 21.1-16.9 24.3-29.3 6.9-26.1-10.1-52-37.1-56.7-21.6-3.7-43.4 9.8-50.3 31.1-1.9 6.1-2.2 8.6-1.8 16.7.5 8.4 1 10.3 4.2 16.9 5.9 11.9 15.2 19.9 28.1 24.1 2.5.9 7.8 1.3 14.6 1.1 9.9-.2 11-.4 18-3.9z"/><path d="M627.8 428.4c-3.1-1.6-5.8-6.1-5.8-9.5 0-3.4 3.8-8.6 7.1-9.8 6-2.1 13 1.7 14.4 7.9.9 4-1.7 9.6-5.4 11.4-3.7 2-6.8 2-10.3 0zM912.5 538.4c-18.5-2.1-25.8-4.4-13.7-4.4 10.9 0 27.8-3.4 42.2-8.5 42.7-15.1 77-50.6 89.8-93 4.6-15 5.7-23.3 5.6-41-.1-12.5-.6-18.3-2.3-26.5-4-18.9-11.8-36.8-23.2-53-6.8-9.7-24.4-27.2-33.7-33.5-4-2.7-6.9-5.1-6.4-5.3 1.6-.5 19.7 7.4 28.7 12.5 30.2 17.2 52.1 43.1 62.5 74.1 8.9 26.7 11 65.2 5 90.1-11.9 48.9-53.3 80.6-115 88.1-7.8.9-32.4 1.2-39.5.4z"/><path d="M880 522.3c-51.6-3.7-96.5-34.8-116.1-80.3-6.8-15.7-9-26.1-9.6-45-.4-12.4-.1-18.7 1.1-25.5 8.4-48.5 46.6-90.1 95.1-103.6 18.9-5.2 43.3-6.6 62.2-3.3 50.5 8.5 92.4 44.5 106.7 91.4 7.5 24.7 7.2 51.4-.9 75.7-6.1 18.2-15.1 33.4-28.2 47.3-23.4 24.9-54.3 39.8-88.8 43-10.7 1-12.2 1-21.5.3zM980.2 441c12.3-4.6 23.2-15.9 27.4-28.2 2.8-8.2 2.5-21.5-.6-30.1-4.6-12.9-15.6-23.4-29-27.7-5.8-1.9-8.6-2.2-16.4-1.8-8.3.3-10.2.8-16.8 4.1-9.7 4.7-16.8 11.8-21.5 21.5-3.2 6.4-3.7 8.5-4.1 16.4-.6 11.1 1.5 19.5 6.7 27.6 6.5 9.9 17.7 17.9 28.4 20.2 6.7 1.4 19.5.5 25.9-2z"/><path d="M971.3 412.5c-3.2-3.2-3.5-3.9-3-7.8 1.5-11.3 16-13.4 20.4-3 2.8 6.9-2.3 14.3-9.9 14.3-3.2 0-4.7-.7-7.5-3.5zM646.5 610.9c-7.7-1.2-15.6-5.1-18.9-9.4-3.6-4.7-6-14.5-5.2-21.5 1.4-11.8 9.9-24.1 23.2-33.6 5.9-4.2 25.7-14.4 28-14.4.6 0 3.8 1.6 7 3.5 21.6 13 61.7 13.9 85.6 1.9 3.7-1.9 8.3-4.7 10.2-6.4l3.4-3.1 6.7 2.5c13 5 22.7 10.7 30.1 18.1 9.9 9.8 11.9 14.3 11.9 27 0 8.9-.4 10.7-2.9 16.3-7.8 17-23.1 20.3-62.1 13.3-30.8-5.5-58.7-5.2-77.3.9-14.3 4.7-29 6.5-39.7 4.9zM290.1 500.9c-22.4-4.4-35.5-15.2-41.9-34.7-2.1-6.5-2.5-9.6-2.6-20.2 0-6.9.2-13 .6-13.5.4-.7 5.1-.6 14.5.3 12 1.1 41.3 1.2 45 .1 1-.3 1.4 5.5 1.7 25.6.3 22.6 1 31.8 3.1 41.3.5 2.1.4 2.2-7.7 2.1-4.6-.1-10.3-.5-12.7-1zM1139 492.1c-3-.3-5.4-1-5.3-1.6 2.4-15 3.4-29.6 3.1-47.7l-.3-20.8 3.5.8c7.5 1.6 29.2.5 45.4-2.2 8.7-1.5 16.1-2.4 16.5-2.1 1.3 1.4.6 41.8-.8 47.5-2.1 8.5-5.5 15.3-8.9 18.2-8.5 7.2-30.1 10.4-53.2 7.9zM279.3 423.4c.3-1.1 1.8-7.3 3.2-13.9 3.6-16.3 10.1-42.3 13-52.1 5.4-17.8 20.8-45.6 47.9-86.6l1.8-2.8-2.8-1.1c-4.2-1.6-17.4-4.9-19.6-4.9-3 0-3-2-.3-14.1 3.6-16.2 8-30.1 12.5-39.5 6.1-12.8 18.3-23.5 39.1-34.8l8.6-4.6.7 3.1c.3 1.7.6 5.7.6 8.8 0 7.9 2.6 31.5 5 45.2 2.3 13.7 6.1 27.2 9.5 34.3l2.5 5.1-2.2 1.5c-16.6 11.1-37 30.2-47.9 45-20.7 28.1-34.8 62.8-40.5 100.2-1.4 8.9-2.2 11.7-3.4 11.7-.8 0-7.5.4-14.9.7-12.7.6-13.3.6-12.8-1.2z"/><path d="M256.5 416.7c-24.4-9.9-39.4-26.4-44.1-48.8-4.5-21 2.8-52 16.3-69.9 10.7-14.1 28.1-23.2 49.8-26.1 14.5-1.9 47.4.7 46.8 3.7-.1.6-4.2 7.4-9.1 15.3-5 7.8-11.2 18.3-13.8 23.2l-4.9 8.9-4.5-.7c-18.2-2.6-30.5 2.3-33.8 13.3-2.1 7.1-1.5 16.3 1.3 22.1 2.3 4.5 8.7 11.7 15.2 17l2.2 1.8-2.8 12c-1.6 6.6-3.9 16.4-5.1 21.8-1.7 7.5-2.5 9.7-3.8 9.7-.9 0-5.3-1.5-9.7-3.3zM1141 413.7c-4.7-1-5.5-1.5-5.8-3.7-.9-7.2-5.6-28.7-8.2-37.3-16.7-56.1-53.4-101.8-100.5-125.4-4.9-2.5-9.1-4.6-9.2-4.7-.2-.2 2.4-6.5 5.8-14.2 3.3-7.6 7.8-18.4 10.1-23.9 3.1-7.8 26.3-58 27.3-59.3.1-.2 4.7 2.8 10.1 6.6 5.5 3.8 15 10.4 21.2 14.7 11.5 8 20.7 17.6 25.1 26.3 1 2.1 5.9 16.3 10.9 31.7 5 15.4 9.4 28.8 9.7 29.7.5 1.3 0 1.9-2.2 2.4-7.5 1.6-18 4.6-19.2 5.4-1.1.6.9 5.7 9.8 25 22.5 48.6 29.9 67.4 32.7 83 1.8 10.1 4 41 3.1 43.4-.5 1.3-2 1.6-7.9 1.5-4 0-9.8-.6-12.8-1.2z"/><path d="M1173.6 399.3c-.3-4.3-1.1-12.9-1.7-19.1-.6-6.3-.9-11.5-.7-11.6.2-.2 2.8-1.7 5.8-3.4 6.7-3.7 13.5-10.3 16.3-15.7 4.8-9 1.6-22.9-7-30.5-6.5-5.7-12.3-7.3-24.9-6.9l-10.5.4-9.8-21.3c-5.4-11.7-9.6-21.4-9.2-21.6 1.4-.9 16.6-2.6 23.1-2.6 38 0 62.8 18.4 73.6 54.5 2.1 6.9 2.8 11.9 3.1 21.5.6 14.1-.6 20.9-5.4 30.8-3.9 8-15.9 19.8-24.8 24.4-6.3 3.3-22.7 8.8-26 8.8-.9 0-1.5-2.3-1.9-7.7zM402.2 254.3c-6-15.6-10.2-39.8-12.3-70.7l-1.3-17.9 8-7.6c4.7-4.6 14.3-11.9 23.9-18.3 19-12.5 33.2-24.5 51.5-43.5 17.6-18.2 29.4-26 72.5-47.8 36.7-18.6 41.3-20 95-28.9 14.9-2.5 32.8-5.7 39.9-7.1 7-1.4 12.9-2.5 13.1-2.5.7 0 1.5 5.5 3.9 26 5.6 47.8 5.9 52.8 6.1 105.5.1 27.5.5 52.5.9 55.6l.8 5.7-15.8.6c-122.7 5-210.4 22-270.4 52.7-6.4 3.2-12 5.9-12.3 5.9-.3 0-1.9-3.5-3.5-7.7zM1000.4 236c-35.5-13.7-89.9-24.5-147.9-29.4-36.8-3.2-54.1-3.9-98-4l-45-.1-.7-13.5c-.4-7.4-.6-31.7-.6-54 .2-43.2-.6-55.3-6.7-104.9-1.4-10.7-2.2-19.7-1.9-20 1-1.1 51.7-.4 66.4.8 33.4 2.7 58.8 6.4 70.5 10.1 3.3 1 11.4 4.1 18 6.8 10.7 4.4 43.9 16.3 70.5 25.3 20.3 6.8 41.7 14.7 46.6 17.2 11.3 5.7 37.8 27.4 68.6 56.1l15.7 14.6-2.8 6.3c-1.6 3.4-6.3 13.4-10.6 22.2-4.2 8.8-9.8 21.2-12.4 27.5-10 24-18.4 43-19 42.9-.3 0-5.2-1.8-10.7-3.9z"/></g></svg>
\ No newline at end of file
diff --git a/static/shared/icon/alert_gm_grey_24dp.svg b/static/shared/icon/alert_gm_grey_24dp.svg
deleted file mode 100644
index d5adf84..0000000
--- a/static/shared/icon/alert_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><g><rect fill="none" height="24" width="24" y="0"/></g><g><g><path d="M21.26,18L13.73,4.99c-0.77-1.33-2.69-1.33-3.46,0L2.74,18c-0.77,1.33,0.19,3,1.73,3h15.06C21.07,21,22.03,19.33,21.26,18 z M4.47,19L12,5.99L19.53,19H4.47z"/><path d="M11,11v2c0,0.55,0.45,1,1,1c0.55,0,1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,10,11,10.45,11,11z"/><circle cx="12" cy="17" r="1"/></g></g></svg>
\ No newline at end of file
diff --git a/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg b/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg
deleted file mode 100644
index 4f24323..0000000
--- a/static/shared/icon/arrow_drop_down_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M7 10l5 5 5-5H7z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/arrow_drop_up_gm_grey_24dp.svg b/static/shared/icon/arrow_drop_up_gm_grey_24dp.svg
deleted file mode 100644
index 6f1b558..0000000
--- a/static/shared/icon/arrow_drop_up_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M7 14l5-5 5 5H7z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/arrow_left_alt_gm_grey_24dp.svg b/static/shared/icon/arrow_left_alt_gm_grey_24dp.svg
deleted file mode 100644
index 257c171..0000000
--- a/static/shared/icon/arrow_left_alt_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><g><rect fill="none" height="24" width="24"/></g><g><polygon fill-rule="evenodd" points="10,18 11.41,16.59 7.83,13 20,13 20,11 7.83,11 11.41,7.41 10,6 4,12"/></g></svg>
\ No newline at end of file
diff --git a/static/shared/icon/arrow_left_gm_grey_24dp.svg b/static/shared/icon/arrow_left_gm_grey_24dp.svg
deleted file mode 100644
index 5f099d0..0000000
--- a/static/shared/icon/arrow_left_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M14 7l-5 5 5 5V7z"/><path d="M24 0v24H0V0h24z" fill="none" opacity=".87"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/arrow_right_alt_gm_grey_24dp.svg b/static/shared/icon/arrow_right_alt_gm_grey_24dp.svg
deleted file mode 100644
index f94fb16..0000000
--- a/static/shared/icon/arrow_right_alt_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M14 6l-1.41 1.41L16.17 11H4v2h12.17l-3.58 3.59L14 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/arrow_right_gm_grey_24dp.svg b/static/shared/icon/arrow_right_gm_grey_24dp.svg
deleted file mode 100644
index 7460cb0..0000000
--- a/static/shared/icon/arrow_right_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M10 17l5-5-5-5v10z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/brightness_2_gm_grey_24dp.svg b/static/shared/icon/brightness_2_gm_grey_24dp.svg
deleted file mode 100644
index 76e555b..0000000
--- a/static/shared/icon/brightness_2_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/brightness_6_gm_grey_24dp.svg b/static/shared/icon/brightness_6_gm_grey_24dp.svg
deleted file mode 100644
index fbde09f..0000000
--- a/static/shared/icon/brightness_6_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/call_split_gm_grey_24dp.svg b/static/shared/icon/call_split_gm_grey_24dp.svg
deleted file mode 100644
index 8839733..0000000
--- a/static/shared/icon/call_split_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M10 6V4H4v6h2V7.42l5 4.99V20h2v-8.41L7.42 6zm4-2v2h2.58l-3.17 3.17 1.42 1.42L18 7.42V10h2V4z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/cancel_gm_grey_24dp.svg b/static/shared/icon/cancel_gm_grey_24dp.svg
deleted file mode 100644
index 3b5d677..0000000
--- a/static/shared/icon/cancel_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none" opacity=".87"/><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/check_circle_gm_grey_24dp.svg b/static/shared/icon/check_circle_gm_grey_24dp.svg
deleted file mode 100644
index c05117b..0000000
--- a/static/shared/icon/check_circle_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-2-5.8l-2.6-2.6L6 13l4 4 8-8-1.4-1.4z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/chrome_reader_mode_gm_grey_24dp.svg b/static/shared/icon/chrome_reader_mode_gm_grey_24dp.svg
deleted file mode 100644
index 7c4537a..0000000
--- a/static/shared/icon/chrome_reader_mode_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 18V6h7v12H4zm16 0h-7V6h7v12zm-6-9.5h5V10h-5zm0 2.5h5v1.5h-5zm0 2.5h5V15h-5zm-7.25-.81"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/close_gm_grey_24dp.svg b/static/shared/icon/close_gm_grey_24dp.svg
deleted file mode 100644
index 6840fbe..0000000
--- a/static/shared/icon/close_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/code_gm_grey_24dp.svg b/static/shared/icon/code_gm_grey_24dp.svg
deleted file mode 100644
index dfeed30..0000000
--- a/static/shared/icon/code_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16 6l-1.41 1.41L19.17 12l-4.58 4.59L16 18l6-6zM8 18l1.41-1.41L4.83 12l4.58-4.59L8 6l-6 6z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/content_copy_gm_grey_24dp.svg b/static/shared/icon/content_copy_gm_grey_24dp.svg
deleted file mode 100644
index 8c8a652..0000000
--- a/static/shared/icon/content_copy_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M18 21H4V7H2v14c0 1.1.9 2 2 2h14v-2zm3-4V3c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2zm-2 0H8V3h11v14z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/depsdev-logo.svg b/static/shared/icon/depsdev-logo.svg
deleted file mode 100644
index 304e267..0000000
--- a/static/shared/icon/depsdev-logo.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M13.5872 16.2042L15.8035 18.4205C16.0642 18.6735 16.0642 19.0877 15.8111 19.3484L15.8035 19.3561L3.34168 31.8102C3.08861 32.0633 2.67449 32.0633 2.42142 31.8102L0.189803 29.5786C-0.0632676 29.3255 -0.0632676 28.9114 0.189803 28.6583L12.6516 16.1965C12.9047 15.9358 13.3188 15.9358 13.5795 16.1889C13.5795 16.1965 13.5872 16.2042 13.5872 16.2042Z" fill="#1AAC94"/>
-<circle cx="17" cy="15" r="13" stroke="#32E0C4" stroke-width="4"/>
-<circle cx="17" cy="15" r="4" stroke="#32E0C4" stroke-width="4"/>
-</svg>
diff --git a/static/shared/icon/favicon.ico b/static/shared/icon/favicon.ico
deleted file mode 100644
index 8d22584..0000000
--- a/static/shared/icon/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/static/shared/icon/filter_list_gm_grey_24dp.svg b/static/shared/icon/filter_list_gm_grey_24dp.svg
deleted file mode 100644
index 884b9e3..0000000
--- a/static/shared/icon/filter_list_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/folder_gm_grey_24dp.svg b/static/shared/icon/folder_gm_grey_24dp.svg
deleted file mode 100644
index bcbf551..0000000
--- a/static/shared/icon/folder_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/help_gm_grey_24dp.svg b/static/shared/icon/help_gm_grey_24dp.svg
deleted file mode 100644
index be81972..0000000
--- a/static/shared/icon/help_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/horizontal_split_gm_grey_24dp.svg b/static/shared/icon/horizontal_split_gm_grey_24dp.svg
deleted file mode 100644
index 2c9e9d2..0000000
--- a/static/shared/icon/horizontal_split_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M21 5H3v2h18V5zm0 4H3v2h18V9zm0 4H3v6h18v-6z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/icon.css b/static/shared/icon/icon.css
deleted file mode 100644
index 8a0c212..0000000
--- a/static/shared/icon/icon.css
+++ /dev/null
@@ -1,26 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.depsdev-Icon {
-  height: 1.125em;
-  vertical-align: text-bottom;
-  width: auto;
-}
-
-.go-Icon {
-  filter: none;
-  height: 1.125em;
-  vertical-align: text-bottom;
-  width: auto;
-}
-.go-Icon--accented {
-  filter: brightness(0) invert(45%) sepia(94%) saturate(6735%) hue-rotate(176deg) brightness(94%)
-    contrast(101%);
-}
-.go-Icon--inverted {
-  filter: brightness(0) saturate(100%) invert(100%) sepia(97%) saturate(13%) hue-rotate(245deg)
-    brightness(103%) contrast(107%);
-}
diff --git a/static/shared/icon/icon.md b/static/shared/icon/icon.md
deleted file mode 100644
index 8e53dd8..0000000
--- a/static/shared/icon/icon.md
+++ /dev/null
@@ -1,139 +0,0 @@
-## Icons
-
----
-
-<span style="display:contents;">
-  <go-icon name="alert"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="arrow_drop_up"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="arrow_drop_down"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="arrow_left"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="arrow_left_alt"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="arrow_right"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="arrow_right_alt"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="brightness_2"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="brightness_6"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="call_split"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="cancel"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="check_circle"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="chrome_reader_mode"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="close"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="code"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="content_copy"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="filter_list"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="folder"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="help"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="info"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="insert_drive_file"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="keyboard"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="launch"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="light_mode"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="list"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="menu"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="more_vert"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="navigate_before"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="navigate_next"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="responsive_layout"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="search"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="star"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="table_rows"></go-icon>
-</span>
-
-<span style="display:contents;">
-  <go-icon name="toolbar"></go-icon>
-</span>
diff --git a/static/shared/icon/info_gm_grey_24dp.svg b/static/shared/icon/info_gm_grey_24dp.svg
deleted file mode 100644
index ba73bf2..0000000
--- a/static/shared/icon/info_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/insert_drive_file_gm_grey_24dp.svg b/static/shared/icon/insert_drive_file_gm_grey_24dp.svg
deleted file mode 100644
index dd8ca81..0000000
--- a/static/shared/icon/insert_drive_file_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/keyboard_grey_24dp.svg b/static/shared/icon/keyboard_grey_24dp.svg
deleted file mode 100644
index faea75d..0000000
--- a/static/shared/icon/keyboard_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"/><path d="M0 0h24v24H0zm0 0h24v24H0z" fill="none"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/launch_gm_grey_24dp.svg b/static/shared/icon/launch_gm_grey_24dp.svg
deleted file mode 100644
index 656d73e..0000000
--- a/static/shared/icon/launch_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/light_mode_gm_grey_24dp.svg b/static/shared/icon/light_mode_gm_grey_24dp.svg
deleted file mode 100644
index e5cd8da..0000000
--- a/static/shared/icon/light_mode_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><rect fill="none" height="24" width="24"/><path d="M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0 c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2 c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1 C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06 c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41 l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41 c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36 c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/list_gm_grey_24dp.svg b/static/shared/icon/list_gm_grey_24dp.svg
deleted file mode 100644
index 2385eb0..0000000
--- a/static/shared/icon/list_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none" opacity=".87"/><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/menu_gm_grey_24dp.svg b/static/shared/icon/menu_gm_grey_24dp.svg
deleted file mode 100644
index 6b49702..0000000
--- a/static/shared/icon/menu_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/more_vert_gm_grey_24dp.svg b/static/shared/icon/more_vert_gm_grey_24dp.svg
deleted file mode 100644
index 0e809ca..0000000
--- a/static/shared/icon/more_vert_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/navigate_before_gm_grey_24dp.svg b/static/shared/icon/navigate_before_gm_grey_24dp.svg
deleted file mode 100644
index f790237..0000000
--- a/static/shared/icon/navigate_before_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12l4.58-4.59z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/navigate_next_gm_grey_24dp.svg b/static/shared/icon/navigate_next_gm_grey_24dp.svg
deleted file mode 100644
index b44fd75..0000000
--- a/static/shared/icon/navigate_next_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/responsive_layout_gm_grey_24dp.svg b/static/shared/icon/responsive_layout_gm_grey_24dp.svg
deleted file mode 100644
index b58b9ec..0000000
--- a/static/shared/icon/responsive_layout_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><rect fill="none" height="24" width="24"/><g><rect fill="none" height="24" width="24"/><g><g><path d="M8,2v6H2v14h20V2H8z M8,20H4V10h4V20z M20,20h-4V8h-6V4h10V20z"/></g></g></g></svg>
\ No newline at end of file
diff --git a/static/shared/icon/search_gm_grey_24dp.svg b/static/shared/icon/search_gm_grey_24dp.svg
deleted file mode 100644
index aa154bf..0000000
--- a/static/shared/icon/search_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M20.49 19l-5.73-5.73C15.53 12.2 16 10.91 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.41 0 2.7-.47 3.77-1.24L19 20.49 20.49 19zM5 9.5C5 7.01 7.01 5 9.5 5S14 7.01 14 9.5 11.99 14 9.5 14 5 11.99 5 9.5z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/side_navigation_gm_grey_24dp.svg b/static/shared/icon/side_navigation_gm_grey_24dp.svg
deleted file mode 100644
index 39b7de1..0000000
--- a/static/shared/icon/side_navigation_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><g><rect fill="none" height="24" width="24"/><path d="M2,22h20V2H2V22z M20,20h-8V4h8V20z"/></g></svg>
\ No newline at end of file
diff --git a/static/shared/icon/star_gm_grey_24dp.svg b/static/shared/icon/star_gm_grey_24dp.svg
deleted file mode 100644
index d0bde17..0000000
--- a/static/shared/icon/star_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none"/><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/table_rows_gm_grey_24dp.svg b/static/shared/icon/table_rows_gm_grey_24dp.svg
deleted file mode 100644
index 22035ec..0000000
--- a/static/shared/icon/table_rows_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><rect fill="none" height="24" width="24"/><path d="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,5v3H5V5H19z M19,10v4H5v-4H19z M5,19v-3h14v3H5z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/toolbar_gm_grey_24dp.svg b/static/shared/icon/toolbar_gm_grey_24dp.svg
deleted file mode 100644
index bb2d026..0000000
--- a/static/shared/icon/toolbar_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0z" fill="none"/><path d="M2 2v20h20V2H2zm2 2h16v3H4V4zm0 16V9h16v11H4z"/></svg>
\ No newline at end of file
diff --git a/static/shared/icon/vertical_split_gm_grey_24dp.svg b/static/shared/icon/vertical_split_gm_grey_24dp.svg
deleted file mode 100644
index 1deb958..0000000
--- a/static/shared/icon/vertical_split_gm_grey_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#455A64"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M3 13h8v2H3zm0 4h8v2H3zm0-8h8v2H3zm0-4h8v2H3zm18 0h-8v14h8V5z"/></svg>
\ No newline at end of file
diff --git a/static/shared/jump/jump.ts b/static/shared/jump/jump.ts
deleted file mode 100644
index d671a56..0000000
--- a/static/shared/jump/jump.ts
+++ /dev/null
@@ -1,298 +0,0 @@
-/*!
- * @license
- * Copyright 2019-2020 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-// This file implements the behavior of the "jump to symbol" dialog for Go
-// package documentation, as well as the simple dialog that displays keyboard
-// shortcuts.
-
-// The DOM for the dialogs is at the bottom of static/frontend/unit/main/_modals.tmpl.
-// The CSS is in static/frontend/unit/main/_modals.css.
-
-// The dialog is activated by pressing the 'f' key. It presents a list
-// (#JumpDialog-list) of all Go symbols displayed in the documentation.
-// Entering text in the dialog's text box (#JumpDialog-filter) restricts the
-// list to symbols containing the text. Clicking on an symbol jumps to
-// its documentation.
-
-// This code is based on
-// https://go.googlesource.com/gddo/+/refs/heads/master/gddo-server/assets/site.js.
-// It was modified to remove the dependence on jquery and bootstrap.
-
-import { keyboard } from '../keyboard/keyboard';
-
-export function initModals(): void {
-  const jumpDialog = document.querySelector<HTMLDialogElement>('.JumpDialog');
-  const jumpBody = jumpDialog?.querySelector<HTMLDivElement>('.JumpDialog-body');
-  const jumpList = jumpDialog?.querySelector<HTMLDivElement>('.JumpDialog-list');
-  const jumpFilter = jumpDialog?.querySelector<HTMLInputElement>('.JumpDialog-input');
-  const doc = document.querySelector<HTMLDivElement>('.js-documentation');
-
-  interface JumpListItem {
-    link: HTMLAnchorElement;
-    name: string;
-    kind: string;
-    lower: string;
-  }
-
-  let jumpListItems: JumpListItem[] | undefined; // All the symbols in the doc; computed only once.
-
-  // collectJumpListItems returns a list of items, one for each symbol in the
-  // documentation on the current page.
-  //
-  // It uses the data-kind attribute generated in the documentation HTML to find
-  // the symbols and their id attributes.
-  //
-  // If there are no data-kind attributes, then we have older doc; fall back to
-  // a less precise method.
-  function collectJumpListItems() {
-    const items = [];
-    if (!doc) return;
-    for (const el of doc.querySelectorAll('[data-kind]')) {
-      items.push(newJumpListItem(el));
-    }
-
-    // Clicking on any of the links closes the dialog.
-    for (const item of items) {
-      item.link.addEventListener('click', function () {
-        jumpDialog?.close();
-      });
-    }
-    // Sort case-insensitively by symbol name.
-    items.sort(function (a, b) {
-      return a.lower.localeCompare(b.lower);
-    });
-    return items;
-  }
-
-  // newJumpListItem creates a new item for the DOM element el.
-  // An item is an object with:
-  // - name: the element's id (which is the symbol name)
-  // - kind: the element's kind (function, variable, etc.),
-  // - link: a link ('a' tag) to the element
-  // - lower: the name in lower case, just for sorting
-  function newJumpListItem(el: Element): JumpListItem {
-    const a = document.createElement('a');
-    const name = el.getAttribute('id');
-    a.setAttribute('href', '#' + name);
-    a.setAttribute('tabindex', '-1');
-    a.setAttribute('data-gtmc', 'jump to link');
-    const kind = el.getAttribute('data-kind');
-    return {
-      link: a,
-      name: name ?? '',
-      kind: kind ?? '',
-      lower: name?.toLowerCase() ?? '', // for sorting
-    };
-  }
-
-  let lastFilterValue: string; // The last contents of the filter text box.
-  let activeJumpItem = -1; // The index of the currently active item in the list.
-
-  // updateJumpList sets the elements of the dialog list to
-  // everything whose name contains filter.
-  function updateJumpList(filter: string) {
-    lastFilterValue = filter;
-    if (!jumpListItems) {
-      jumpListItems = collectJumpListItems();
-    }
-    setActiveJumpItem(-1);
-
-    // Remove all children from list.
-    while (jumpList?.firstChild) {
-      jumpList.firstChild.remove();
-    }
-
-    if (filter) {
-      // A filter is set. We treat the filter as a substring that can appear in
-      // an item name (case insensitive), and find the following matches - in
-      // order of priority:
-      //
-      // 1. Exact matches (the filter matches the item's name exactly)
-      // 2. Prefix matches (the item's name starts with filter)
-      // 3. Infix matches (the filter is a substring of the item's name)
-      const filterLowerCase = filter.toLowerCase();
-
-      const exactMatches = [];
-      const prefixMatches = [];
-      const infixMatches = [];
-
-      // makeLinkHtml creates the link name HTML for a list item. item is the DOM
-      // item. item.name.substr(boldStart, boldEnd) will be bolded.
-      const makeLinkHtml = (item: JumpListItem, boldStart: number, boldEnd: number) => {
-        return (
-          item.name.substring(0, boldStart) +
-          '<b>' +
-          item.name.substring(boldStart, boldEnd) +
-          '</b>' +
-          item.name.substring(boldEnd)
-        );
-      };
-
-      for (const item of jumpListItems ?? []) {
-        const nameLowerCase = item.name.toLowerCase();
-
-        if (nameLowerCase === filterLowerCase) {
-          item.link.innerHTML = makeLinkHtml(item, 0, item.name.length);
-          exactMatches.push(item);
-        } else if (nameLowerCase.startsWith(filterLowerCase)) {
-          item.link.innerHTML = makeLinkHtml(item, 0, filter.length);
-          prefixMatches.push(item);
-        } else {
-          const index = nameLowerCase.indexOf(filterLowerCase);
-          if (index > -1) {
-            item.link.innerHTML = makeLinkHtml(item, index, index + filter.length);
-            infixMatches.push(item);
-          }
-        }
-      }
-
-      for (const item of exactMatches.concat(prefixMatches).concat(infixMatches)) {
-        jumpList?.appendChild(item.link);
-      }
-    } else {
-      if (!jumpListItems || jumpListItems.length === 0) {
-        const msg = document.createElement('i');
-        msg.innerHTML = 'There are no symbols on this page.';
-        jumpList?.appendChild(msg);
-      }
-      // No filter set; display all items in their existing order.
-      for (const item of jumpListItems ?? []) {
-        item.link.innerHTML = item.name + ' <i>' + item.kind + '</i>';
-        jumpList?.appendChild(item.link);
-      }
-    }
-
-    if (jumpBody) {
-      jumpBody.scrollTop = 0;
-    }
-    if (jumpListItems?.length && jumpList && jumpList.children.length > 0) {
-      setActiveJumpItem(0);
-    }
-  }
-
-  // Set the active jump item to n.
-  function setActiveJumpItem(n: number) {
-    const cs = jumpList?.children as HTMLCollectionOf<HTMLElement> | null | undefined;
-    if (!cs || !jumpBody) {
-      return;
-    }
-    if (activeJumpItem >= 0) {
-      cs[activeJumpItem].classList.remove('JumpDialog-active');
-    }
-    if (n >= cs.length) {
-      n = cs.length - 1;
-    }
-    if (n >= 0) {
-      cs[n].classList.add('JumpDialog-active');
-
-      // Scroll so the active item is visible.
-      // For some reason cs[n].scrollIntoView() doesn't behave as I'd expect:
-      // it moves the entire dialog box in the viewport.
-
-      // Get the top and bottom of the active item relative to jumpBody.
-      const activeTop = cs[n].offsetTop - cs[0].offsetTop;
-      const activeBottom = activeTop + cs[n].clientHeight;
-      if (activeTop < jumpBody.scrollTop) {
-        // Off the top; scroll up.
-        jumpBody.scrollTop = activeTop;
-      } else if (activeBottom > jumpBody.scrollTop + jumpBody.clientHeight) {
-        // Off the bottom; scroll down.
-        jumpBody.scrollTop = activeBottom - jumpBody.clientHeight;
-      }
-    }
-    activeJumpItem = n;
-  }
-
-  // Increment the activeJumpItem by delta.
-  function incActiveJumpItem(delta: number) {
-    if (activeJumpItem < 0) {
-      return;
-    }
-    let n = activeJumpItem + delta;
-    if (n < 0) {
-      n = 0;
-    }
-    setActiveJumpItem(n);
-  }
-
-  // Pressing a key in the filter updates the list (if the filter actually changed).
-  jumpFilter?.addEventListener('keyup', function () {
-    if (jumpFilter.value.toUpperCase() != lastFilterValue.toUpperCase()) {
-      updateJumpList(jumpFilter.value);
-    }
-  });
-
-  // Pressing enter in the filter selects the first element in the list.
-  jumpFilter?.addEventListener('keydown', function (event) {
-    const upArrow = 38;
-    const downArrow = 40;
-    const enterKey = 13;
-    switch (event.which) {
-      case upArrow:
-        incActiveJumpItem(-1);
-        event.preventDefault();
-        break;
-      case downArrow:
-        incActiveJumpItem(1);
-        event.preventDefault();
-        break;
-      case enterKey:
-        if (activeJumpItem >= 0) {
-          if (jumpList) {
-            (jumpList.children[activeJumpItem] as HTMLElement).click();
-            event.preventDefault();
-          }
-        }
-        break;
-    }
-  });
-
-  const shortcutsDialog = document.querySelector<HTMLDialogElement>('.ShortcutsDialog');
-
-  // - Pressing 'f' or 'F' opens the jump-to-symbol dialog.
-  // - Pressing '?' opens up the shortcut dialog.
-  // Ignore a keypress if a dialog is already open, or if it is pressed on a
-  // component that wants to consume it.
-  keyboard
-    .on('f', 'open jump to modal', e => {
-      if (jumpDialog?.open || shortcutsDialog?.open) {
-        return;
-      }
-      e.preventDefault();
-      if (jumpFilter) {
-        jumpFilter.value = '';
-      }
-      jumpDialog?.showModal?.();
-      jumpFilter?.focus();
-      updateJumpList('');
-    })
-    .on('?', 'open shortcuts modal', () => {
-      if (jumpDialog?.open || shortcutsDialog?.open) {
-        return;
-      }
-      shortcutsDialog?.showModal?.();
-    });
-
-  const jumpOutlineInput = document.querySelector('.js-jumpToInput');
-  if (jumpOutlineInput) {
-    jumpOutlineInput.addEventListener('click', () => {
-      if (jumpFilter) {
-        jumpFilter.value = '';
-      }
-      updateJumpList('');
-      if (jumpDialog?.open || shortcutsDialog?.open) {
-        return;
-      }
-      jumpDialog?.showModal?.();
-      jumpFilter?.focus();
-    });
-  }
-
-  document.querySelector('.js-openShortcuts')?.addEventListener('click', () => {
-    shortcutsDialog?.showModal?.();
-  });
-}
diff --git a/static/shared/logo/go-blue-gradient.svg b/static/shared/logo/go-blue-gradient.svg
deleted file mode 100644
index baaae77..0000000
--- a/static/shared/logo/go-blue-gradient.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="77" viewBox="0 0 206 77" width="206" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" x1="100%" x2="0%" y1="50%" y2="50%"><stop offset="0" stop-color="#00a29c"/><stop offset="1" stop-color="#00add8"/></linearGradient><path d="m127.481483 31.4343267c1.445351-4.5790807 3.790459-8.9059246 6.918517-13 7.3-9.59999996 16.1-14.59999996 28-16.69999996 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.39999996 12.8 12.69999996 14.1 22.29999996 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9-9.1-.2-17.4-2.8-24.4-8.8-4.923224-4.2556681-8.314592-9.4861534-9.999798-15.5752516-1.1695 2.3617137-2.567865 4.6235348-4.200202 6.7752516-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.29999996 16.5-15.19999996 28-17.29999996 9.4-1.70000001 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.29999996 11.6 14.09999996.6.9.2 1.4-1 1.7-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6zm-111.981483-8.2c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6zm-15.1 9.2c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6zm24.2 9.2c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7zm160.7-5.3c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill="url(#a)"/></svg>
diff --git a/static/shared/logo/go-blue.svg b/static/shared/logo/go-blue.svg
deleted file mode 100644
index da6ea83..0000000
--- a/static/shared/logo/go-blue.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="78" viewBox="0 0 207 78" width="207" xmlns="http://www.w3.org/2000/svg"><g fill="#00acd7" fill-rule="evenodd"><path d="m16.2 24.1c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6z"/><path d="m1.1 33.3c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6z"/><path d="m25.3 42.5c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7z"/><g transform="translate(55)"><path d="m74.1 22.3c-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6h36.4c-.2 2.7-.2 5.4-.6 8.1-1.1 7.2-3.8 13.8-8.2 19.6-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.3 16.5-15.2 28-17.3 9.4-1.7 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.3 11.6 14.1.6.9.2 1.4-1 1.7z"/><path d="m107.2 77.6c-9.1-.2-17.4-2.8-24.4-8.8-5.9-5.1-9.6-11.6-10.8-19.3-1.8-11.3 1.3-21.3 8.1-30.2 7.3-9.6 16.1-14.6 28-16.7 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.4 12.8 12.7 14.1 22.3 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9zm23.8-40.4c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill-rule="nonzero"/></g></g></svg>
\ No newline at end of file
diff --git a/static/shared/logo/go-white.svg b/static/shared/logo/go-white.svg
deleted file mode 100644
index 727a62e..0000000
--- a/static/shared/logo/go-white.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="78" viewBox="0 0 207 78" width="207" xmlns="http://www.w3.org/2000/svg"><g fill="#ffffff" fill-rule="evenodd"><path d="m16.2 24.1c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6z"/><path d="m1.1 33.3c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6z"/><path d="m25.3 42.5c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7z"/><g transform="translate(55)"><path d="m74.1 22.3c-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6h36.4c-.2 2.7-.2 5.4-.6 8.1-1.1 7.2-3.8 13.8-8.2 19.6-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.3 16.5-15.2 28-17.3 9.4-1.7 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.3 11.6 14.1.6.9.2 1.4-1 1.7z"/><path d="m107.2 77.6c-9.1-.2-17.4-2.8-24.4-8.8-5.9-5.1-9.6-11.6-10.8-19.3-1.8-11.3 1.3-21.3 8.1-30.2 7.3-9.6 16.1-14.6 28-16.7 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.4 12.8 12.7 14.1 22.3 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9zm23.8-40.4c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill-rule="nonzero"/></g></g></svg>
\ No newline at end of file
diff --git a/static/shared/logo/google-white.svg b/static/shared/logo/google-white.svg
deleted file mode 100644
index d017d2a..0000000
--- a/static/shared/logo/google-white.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="74" height="24" xmlns="http://www.w3.org/2000/svg"><g fill="#fff" fill-rule="evenodd"><path d="M.128 9.276c0-5.105 4.32-9.261 9.457-9.261 2.842 0 4.865 1.107 6.388 2.552l-1.796 1.785c-1.091-1.017-2.569-1.807-4.592-1.807-3.75 0-6.683 3.004-6.683 6.731s2.932 6.732 6.683 6.732c2.432 0 3.82-.971 4.706-1.853.727-.722 1.204-1.761 1.386-3.184H9.585V8.44h8.57c.091.451.137.993.137 1.58 0 1.898-.523 4.248-2.206 5.92-1.636 1.693-3.728 2.597-6.5 2.597-5.139 0-9.458-4.156-9.458-9.262M25.218 16.189c-1.819 0-3.387-1.491-3.387-3.615 0-2.146 1.568-3.614 3.387-3.614 1.818 0 3.387 1.468 3.387 3.614 0 2.124-1.569 3.615-3.387 3.615m0-9.578c-3.32 0-6.024 2.507-6.024 5.963 0 3.434 2.705 5.964 6.024 5.964 3.318 0 6.024-2.53 6.024-5.964 0-3.456-2.706-5.963-6.024-5.963M38.36 16.189c-1.82 0-3.388-1.491-3.388-3.615 0-2.146 1.569-3.614 3.387-3.614 1.819 0 3.387 1.468 3.387 3.614 0 2.124-1.568 3.615-3.387 3.615m0-9.578c-3.319 0-6.024 2.507-6.024 5.963 0 3.434 2.705 5.964 6.024 5.964s6.024-2.53 6.024-5.964c0-3.456-2.705-5.963-6.024-5.963M51.466 16.189c-1.818 0-3.341-1.514-3.341-3.592 0-2.1 1.523-3.637 3.341-3.637 1.796 0 3.206 1.536 3.206 3.637 0 2.078-1.41 3.592-3.206 3.592zm3.024-9.217v.972h-.091c-.591-.7-1.728-1.333-3.16-1.333-3 0-5.751 2.62-5.751 5.986 0 3.343 2.75 5.941 5.75 5.941 1.433 0 2.57-.633 3.16-1.356h.092v.859c0 2.281-1.228 3.501-3.206 3.501-1.614 0-2.614-1.152-3.023-2.123l-2.296.949c.66 1.581 2.41 3.524 5.32 3.524 3.091 0 5.705-1.808 5.705-6.212V6.972h-2.5zM61.446 18.176h-2.637V.647h2.637zM68.47 8.915c1.046 0 1.932.52 2.228 1.265l-5.365 2.214c-.068-2.305 1.796-3.48 3.137-3.48m.205 7.275c-1.342 0-2.296-.61-2.91-1.807l8.025-3.298-.273-.678c-.5-1.333-2.024-3.795-5.138-3.795-3.092 0-5.66 2.417-5.66 5.963 0 3.344 2.546 5.964 5.956 5.964 2.75 0 4.342-1.672 5-2.643L71.63 14.54c-.682.994-1.614 1.649-2.955 1.649"/></g></svg>
\ No newline at end of file
diff --git a/static/shared/message/message.css b/static/shared/message/message.css
deleted file mode 100644
index b2ed112..0000000
--- a/static/shared/message/message.css
+++ /dev/null
@@ -1,27 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Message {
-  color: var(--color-text);
-  font-size: 0.875rem;
-  line-height: 1.5rem;
-  padding: 0.25rem 0.5rem;
-  width: 100%;
-}
-.go-Message--notice {
-  background-color: var(--color-background-info);
-}
-.go-Message--warning {
-  background-color: var(--color-background-warning);
-  color: var(--gray-1);
-}
-.go-Message--alert {
-  background-color: var(--color-background-alert);
-}
-
-.go-Message > .go-Icon {
-  vertical-align: text-top;
-}
diff --git a/static/shared/message/message.md b/static/shared/message/message.md
deleted file mode 100644
index 1a53a97..0000000
--- a/static/shared/message/message.md
+++ /dev/null
@@ -1,46 +0,0 @@
-## Messages
-
----
-
-### Notice {#message-notice}
-
-```html
-<div class="go-Message go-Message--notice">
-  <img
-    class="go-Icon"
-    height="24"
-    width="24"
-    src="/static/shared/icon/info_gm_grey_24dp.svg"
-    alt="Notice"
-  />&nbsp; The highest tagged major version is v3.
-</div>
-```
-
-### Warning {#message-warning}
-
-```html
-<div class="go-Message go-Message--warning">
-  <img
-    class="go-Icon"
-    height="24"
-    width="24"
-    src="/static/shared/icon/alert_gm_grey_24dp.svg"
-    alt="Warning"
-  />&nbsp; <strong>Retracted:</strong> This version of Syntax has been retracted.
-</div>
-```
-
-### Alert {#message-alert}
-
-```html
-<div class="go-Message go-Message--alert">
-  <img
-    class="go-Icon"
-    height="24"
-    width="24"
-    src="/static/shared/icon/alert_gm_grey_24dp.svg"
-    alt="Alert"
-  />&nbsp;
-  <strong>Critical error</strong>
-</div>
-```
diff --git a/static/shared/modal/modal.css b/static/shared/modal/modal.css
deleted file mode 100644
index eec7b20..0000000
--- a/static/shared/modal/modal.css
+++ /dev/null
@@ -1,60 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-@import url('../../../third_party/dialog-polyfill/dialog-polyfill.css');
-
-.go-Modal {
-  background: var(--color-background);
-  border: var(--border);
-  border-radius: var(--border-radius);
-  bottom: 0;
-  box-shadow: var(--box-shadow);
-  color: var(--color-text);
-  display: flex;
-  flex-direction: column;
-  gap: 1rem;
-  max-height: 100%;
-  max-width: 100%;
-  position: fixed;
-  top: 0;
-}
-.go-Modal > form {
-  display: contents;
-}
-.go-Modal--small {
-  width: 20rem;
-}
-.go-Modal--md {
-  width: 30rem;
-}
-.go-Modal--lg {
-  width: 40rem;
-}
-.go-Modal-header {
-  display: flex;
-  justify-content: space-between;
-}
-.go-Modal-header h2 {
-  font-size: 1.15rem;
-  line-height: 1.25rem;
-}
-.go-Modal-body {
-  flex-grow: 1;
-  min-height: 2rem;
-  min-width: 18rem;
-}
-.go-Modal-actions {
-  text-align: right;
-}
-
-/* Safari only */
-@media not all and (min-resolution: 0.001dpcm) {
-  @supports (-webkit-appearance: none) {
-    .go-Modal {
-      padding-bottom: 0;
-    }
-  }
-}
diff --git a/static/shared/modal/modal.md b/static/shared/modal/modal.md
deleted file mode 100644
index cd1f8d4..0000000
--- a/static/shared/modal/modal.md
+++ /dev/null
@@ -1,107 +0,0 @@
-## Modals
-
----
-
-The size modifer class is optional. The base modal will grow to fit the inner content.
-
-### Small {#modal-small}
-
-```html
-<dialog id="example-modal-id1" class="go-Modal go-Modal--sm js-modal">
-  <form method="dialog">
-    <div class="go-Modal-header">
-      <h2>Small Modal</h2>
-      <button
-        class="go-Button go-Button--inline"
-        type="button"
-        data-modal-close
-        data-gtmc="modal button"
-        aria-label="Close"
-      >
-        <img
-          class="go-Icon"
-          height="24"
-          width="24"
-          src="/static/shared/icon/close_gm_grey_24dp.svg"
-          alt=""
-        />
-      </button>
-    </div>
-    <div class="go-Modal-body">
-      <p>Hello, world!</p>
-    </div>
-    <div class="go-Modal-actions">
-      <button class="go-Button" data-modal-close data-gtmc="modal button">Submit</button>
-    </div>
-  </form>
-</dialog>
-<button class="go-Button" aria-controls="example-modal-id1" data-gtmc="modal button">Open</button>
-```
-
-### Medium {#modal-medium}
-
-```html
-<dialog id="example-modal-id2" class="go-Modal go-Modal--md js-modal">
-  <form method="dialog">
-    <div class="go-Modal-header">
-      <h2>Medium Modal</h2>
-      <button
-        class="go-Button go-Button--inline"
-        type="button"
-        data-modal-close
-        data-gtmc="modal button"
-        aria-label="Close"
-      >
-        <img
-          class="go-Icon"
-          height="24"
-          width="24"
-          src="/static/shared/icon/close_gm_grey_24dp.svg"
-          alt=""
-        />
-      </button>
-    </div>
-    <div class="go-Modal-body">
-      <p>Hello, world!</p>
-    </div>
-    <div class="go-Modal-actions">
-      <button class="go-Button" data-modal-close data-gtmc="modal button">Submit</button>
-    </div>
-  </form>
-</dialog>
-<button class="go-Button" aria-controls="example-modal-id2">Open</button>
-```
-
-### Large {#modal-large}
-
-```html
-<dialog id="example-modal-id3" class="go-Modal go-Modal--lg js-modal">
-  <form method="dialog">
-    <div class="go-Modal-header">
-      <h2>Large Modal</h2>
-      <button
-        class="go-Button go-Button--inline"
-        type="button"
-        data-modal-close
-        data-gtmc="modal button"
-        aria-label="Close"
-      >
-        <img
-          class="go-Icon"
-          height="24"
-          width="24"
-          src="/static/shared/icon/close_gm_grey_24dp.svg"
-          alt=""
-        />
-      </button>
-    </div>
-    <div class="go-Modal-body">
-      <p>Hello, world!</p>
-    </div>
-    <div class="go-Modal-actions">
-      <button class="go-Button" data-modal-close data-gtmc="modal button">Submit</button>
-    </div>
-  </form>
-</dialog>
-<button class="go-Button" aria-controls="example-modal-id3" data-gtmc="modal button">Open</button>
-```
diff --git a/static/shared/modal/modal.test.ts b/static/shared/modal/modal.test.ts
deleted file mode 100644
index 841d79c..0000000
--- a/static/shared/modal/modal.test.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { parse } from '../../markdown';
-import { ModalController } from './modal';
-
-describe('Modal', () => {
-  let modal: HTMLDialogElement;
-  let openButton: HTMLButtonElement;
-  let closeButton: HTMLButtonElement;
-
-  beforeEach(async () => {
-    document.body.innerHTML = await parse(__dirname + '/modal.md');
-    modal = document.querySelector('#example-modal-id1');
-    openButton = document.querySelector('[aria-controls="example-modal-id1"]');
-    new ModalController(modal);
-    openButton.click();
-    closeButton = document.querySelector('[data-modal-close]');
-  });
-
-  afterEach(() => {
-    document.body.innerHTML = '';
-  });
-
-  it('opens', () => {
-    expect(modal.getAttribute('opened')).toBeTruthy();
-  });
-
-  it('closes on cancel', async () => {
-    closeButton.click();
-    expect(modal.getAttribute('opened')).toBeFalsy();
-  });
-});
diff --git a/static/shared/modal/modal.ts b/static/shared/modal/modal.ts
deleted file mode 100644
index 91d8feb..0000000
--- a/static/shared/modal/modal.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-interface Window {
-  dialogPolyfill?: {
-    registerDialog: (el: HTMLDialogElement) => void;
-  };
-}
-
-declare const window: Window;
-
-/**
- * ModalController registers a dialog element with the polyfill if
- * necessary for the current browser, add adds event listeners to
- * close and open modals.
- */
-export class ModalController {
-  constructor(private el: HTMLDialogElement) {
-    if (window.dialogPolyfill) {
-      window.dialogPolyfill.registerDialog(el);
-    }
-    this.init();
-  }
-
-  init() {
-    const button = document.querySelector<HTMLButtonElement>(`[aria-controls="${this.el.id}"]`);
-    if (button) {
-      button.addEventListener('click', () => {
-        if (this.el.showModal) {
-          this.el.showModal();
-        } else {
-          this.el.setAttribute('opened', 'true');
-        }
-        this.el.querySelector('input')?.focus();
-      });
-    }
-    for (const btn of this.el.querySelectorAll<HTMLButtonElement>('[data-modal-close]')) {
-      btn.addEventListener('click', () => {
-        if (this.el.close) {
-          this.el.close();
-        } else {
-          this.el.removeAttribute('opened');
-        }
-      });
-    }
-  }
-}
diff --git a/static/shared/outline/__snapshots__/select.test.ts.snap b/static/shared/outline/__snapshots__/select.test.ts.snap
deleted file mode 100644
index d4f74e3..0000000
--- a/static/shared/outline/__snapshots__/select.test.ts.snap
+++ /dev/null
@@ -1,97 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`creates select nav from tree 1`] = `
-<label
-  aria-label="Menu"
-  class="go-Label"
->
-  <select
-    class="go-Select js-selectNav"
-  >
-    <optgroup
-      label="Outline"
-    >
-      <option
-        label="Level 1"
-        value="#one"
-      >
-        Level 1
-      </option>
-    </optgroup>
-    <optgroup
-      label="Level 1"
-    >
-      <option
-        label="Level 2-1"
-        value="#two-one"
-      >
-        Level 2-1
-      </option>
-      <option
-        label="Level 2-2"
-        value="#two-two"
-      >
-        Level 2-2
-      </option>
-      <option
-        label="Level 2-3"
-        value="#two-three"
-      >
-        Level 2-3
-      </option>
-    </optgroup>
-    <optgroup
-      label="Level 2-2"
-    >
-      <option
-        label="Level 3-1"
-        value="#three-one"
-      >
-        Level 3-1
-      </option>
-    </optgroup>
-    <optgroup
-      label="Level 3-1"
-    >
-      <option
-        label="Level 4-1"
-        value="#four-one"
-      >
-        Level 4-1
-      </option>
-      <option
-        label="Level 4-2"
-        value="#four-two"
-      >
-        Level 4-2
-      </option>
-    </optgroup>
-    <optgroup
-      label="Level 2-3"
-    >
-      <option
-        label="Level 3-2"
-        value="#three-two"
-      >
-        Level 3-2
-      </option>
-    </optgroup>
-    <optgroup
-      label="Level 3-2"
-    >
-      <option
-        label="Level 4-3"
-        value="#four-three"
-      >
-        Level 4-3
-      </option>
-      <option
-        label="Level 4-4"
-        value="#four-four"
-      >
-        Level 4-4
-      </option>
-    </optgroup>
-  </select>
-</label>
-`;
diff --git a/static/shared/outline/__snapshots__/tree.test.ts.snap b/static/shared/outline/__snapshots__/tree.test.ts.snap
deleted file mode 100644
index 1732086..0000000
--- a/static/shared/outline/__snapshots__/tree.test.ts.snap
+++ /dev/null
@@ -1,248 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`creates tree nav from ul 1`] = `
-<ul
-  class="go-Tree js-tree"
-  role="tree"
-  style="--js-tree-height: 0px;"
->
-  
-  
-  <li
-    role="none"
-  >
-    
-    
-    <a
-      aria-expanded="false"
-      aria-level="1"
-      aria-owns="_nav_group_Level_1"
-      class="focus"
-      href="#one"
-      role="treeitem"
-      tabindex="0"
-    >
-      Level 1
-    </a>
-    
-    
-    <ul
-      id="_nav_group_Level_1"
-      role="group"
-    >
-      
-      
-      <li
-        role="none"
-      >
-        
-        
-        <a
-          aria-level="2"
-          href="#two-one"
-          role="treeitem"
-          tabindex="-1"
-        >
-          Level 2-1
-        </a>
-        
-      
-      </li>
-      
-      
-      <li
-        role="none"
-      >
-        
-        
-        <a
-          aria-expanded="false"
-          aria-level="2"
-          aria-owns="Level_1_nav_group_Level_2_2"
-          href="#two-two"
-          role="treeitem"
-          tabindex="-1"
-        >
-          Level 2-2
-        </a>
-        
-        
-        <ul
-          id="Level_1_nav_group_Level_2_2"
-          role="group"
-        >
-          
-          
-          <li
-            role="none"
-          >
-            
-            
-            <a
-              aria-expanded="false"
-              aria-level="3"
-              aria-owns="Level_2_2_nav_group_Level_3_1"
-              href="#three-one"
-              role="treeitem"
-              tabindex="-1"
-            >
-              Level 3-1
-            </a>
-            
-            
-            <ul
-              id="Level_2_2_nav_group_Level_3_1"
-              role="group"
-            >
-              
-              
-              <li
-                role="none"
-              >
-                
-                
-                <a
-                  aria-level="4"
-                  href="#four-one"
-                  role="treeitem"
-                  tabindex="-1"
-                >
-                  Level 4-1
-                </a>
-                
-              
-              </li>
-              
-              
-              <li
-                role="none"
-              >
-                
-                
-                <a
-                  aria-level="4"
-                  href="#four-two"
-                  role="treeitem"
-                  tabindex="-1"
-                >
-                  Level 4-2
-                </a>
-                
-              
-              </li>
-              
-            
-            </ul>
-            
-          
-          </li>
-          
-        
-        </ul>
-        
-      
-      </li>
-      
-      
-      <li
-        role="none"
-      >
-        
-        
-        <a
-          aria-expanded="false"
-          aria-level="2"
-          aria-owns="Level_1_nav_group_Level_2_3"
-          href="#two-three"
-          role="treeitem"
-          tabindex="-1"
-        >
-          Level 2-3
-        </a>
-        
-        
-        <ul
-          id="Level_1_nav_group_Level_2_3"
-          role="group"
-        >
-          
-          
-          <li
-            role="none"
-          >
-            
-            
-            <a
-              aria-expanded="false"
-              aria-level="3"
-              aria-owns="Level_2_3_nav_group_Level_3_2"
-              href="#three-two"
-              role="treeitem"
-              tabindex="-1"
-            >
-              Level 3-2
-            </a>
-            
-            
-            <ul
-              id="Level_2_3_nav_group_Level_3_2"
-              role="group"
-            >
-              
-              
-              <li
-                role="none"
-              >
-                
-                
-                <a
-                  aria-level="4"
-                  href="#four-three"
-                  role="treeitem"
-                  tabindex="-1"
-                >
-                  Level 4-3
-                </a>
-                
-              
-              </li>
-              
-              
-              <li
-                role="none"
-              >
-                
-                
-                <a
-                  aria-level="4"
-                  href="#four-four"
-                  role="treeitem"
-                  tabindex="-1"
-                >
-                  Level 4-4
-                </a>
-                
-              
-              </li>
-              
-            
-            </ul>
-            
-          
-          </li>
-          
-        
-        </ul>
-        
-      
-      </li>
-      
-    
-    </ul>
-    
-  
-  </li>
-  
-
-</ul>
-`;
diff --git a/static/shared/outline/outline.md b/static/shared/outline/outline.md
deleted file mode 100644
index da253bd..0000000
--- a/static/shared/outline/outline.md
+++ /dev/null
@@ -1,56 +0,0 @@
-## Outline
-
----
-
-### Tree {#outline-tree}
-
-```html
-<ul class="go-Tree js-tree" role="tree">
-  <li>
-    <a href="#one">Level 1</a>
-    <ul>
-      <li>
-        <a href="#two-one">Level 2-1</a>
-      </li>
-      <li>
-        <a href="#two-two">Level 2-2</a>
-        <ul>
-          <li>
-            <a href="#three-one">Level 3-1</a>
-            <ul>
-              <li>
-                <a href="#four-one">Level 4-1</a>
-              </li>
-              <li>
-                <a href="#four-two">Level 4-2</a>
-              </li>
-            </ul>
-          </li>
-        </ul>
-      </li>
-      <li>
-        <a href="#two-three">Level 2-3</a>
-        <ul>
-          <li>
-            <a href="#three-two">Level 3-2</a>
-            <ul>
-              <li>
-                <a href="#four-three">Level 4-3</a>
-              </li>
-              <li>
-                <a href="#four-four">Level 4-4</a>
-              </li>
-            </ul>
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-</ul>
-```
-
-### Select {#outline-select}
-
-```html
-<div class="js-select"></div>
-```
diff --git a/static/shared/outline/select.test.ts b/static/shared/outline/select.test.ts
deleted file mode 100644
index 3b26880..0000000
--- a/static/shared/outline/select.test.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { parse } from '../../markdown';
-import { TreeNavController } from './tree';
-import { makeSelectNav } from './select';
-
-const observe = jest.fn();
-window.IntersectionObserver = jest.fn(() => ({
-  observe,
-})) as any;
-
-let treeEl: HTMLElement;
-let tree: TreeNavController;
-let selectNav: HTMLElement;
-
-beforeEach(async () => {
-  document.body.innerHTML = await parse(__dirname + '/outline.md');
-  treeEl = document.querySelector('.js-tree') as HTMLElement;
-  tree = new TreeNavController(treeEl);
-  selectNav = makeSelectNav(tree);
-});
-
-afterEach(() => {
-  document.body.innerHTML = '';
-});
-
-it('creates select nav from tree', () => {
-  expect(selectNav).toMatchSnapshot();
-});
diff --git a/static/shared/outline/select.ts b/static/shared/outline/select.ts
deleted file mode 100644
index 9f56211..0000000
--- a/static/shared/outline/select.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { TreeNavController } from './tree.js';
-
-export class SelectNavController {
-  constructor(private el: Element) {
-    this.el.addEventListener('change', e => {
-      const target = e.target as HTMLSelectElement;
-      let href = target.value;
-      if (!target.value.startsWith('/')) {
-        href = '/' + href;
-      }
-      window.location.href = href;
-    });
-  }
-}
-
-export function makeSelectNav(tree: TreeNavController): HTMLLabelElement {
-  const label = document.createElement('label');
-  label.classList.add('go-Label');
-  label.setAttribute('aria-label', 'Menu');
-  const select = document.createElement('select');
-  select.classList.add('go-Select', 'js-selectNav');
-  label.appendChild(select);
-  const outline = document.createElement('optgroup');
-  outline.label = 'Outline';
-  select.appendChild(outline);
-  const groupMap: Record<string, HTMLOptGroupElement> = {};
-  let group: HTMLOptGroupElement;
-  for (const t of tree.treeitems) {
-    if (Number(t.depth) > 4) continue;
-    if (t.groupTreeitem) {
-      group = groupMap[t.groupTreeitem.label];
-      if (!group) {
-        group = groupMap[t.groupTreeitem.label] = document.createElement('optgroup');
-        group.label = t.groupTreeitem.label;
-        select.appendChild(group);
-      }
-    } else {
-      group = outline;
-    }
-    const o = document.createElement('option');
-    o.label = t.label;
-    o.textContent = t.label;
-    o.value = (t.el as HTMLAnchorElement).href.replace(window.location.origin, '').replace('/', '');
-    group.appendChild(o);
-  }
-  tree.addObserver(t => {
-    const hash = (t.el as HTMLAnchorElement).hash;
-    const value = select.querySelector<HTMLOptionElement>(`[value$="${hash}"]`)?.value;
-    if (value) {
-      select.value = value;
-    }
-  }, 50);
-  return label;
-}
diff --git a/static/shared/outline/tree.css b/static/shared/outline/tree.css
deleted file mode 100644
index 3dd1e40..0000000
--- a/static/shared/outline/tree.css
+++ /dev/null
@@ -1,119 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Tree {
-  --js-tree-height: 0;
-
-  display: flex;
-  flex-direction: column;
-}
-
-.go-Tree ul {
-  list-style: none;
-  padding-left: 0;
-}
-.go-Tree li:last-of-type {
-  padding-bottom: 0.25rem;
-}
-.go-Tree a + ul {
-  display: none;
-}
-.go-Tree a[aria-expanded='true'] + ul[role='group'] {
-  display: block;
-}
-.go-Tree a[aria-level='1'] + ul[role='group'] {
-  max-height: calc(
-    100vh - var(--js-tree-height, 0) - var(--js-sticky-header-height, 3.5rem) - 5rem
-  );
-  overflow-y: auto;
-  padding: 0.5rem 0.25rem 0 0.25rem;
-}
-.go-Tree a {
-  color: var(--color-text-subtle);
-  display: block;
-  line-height: 1.5rem;
-  overflow: hidden;
-  padding: 0.125rem 0 0.125rem 1.25rem;
-  position: relative;
-  text-overflow: ellipsis;
-  user-select: none;
-  white-space: nowrap;
-}
-.go-Tree > li > a,
-.go-Tree a[aria-level='1'] {
-  display: block;
-  font-size: 1rem;
-  font-weight: 500;
-  line-height: 2.5rem;
-  padding: 0 1rem;
-}
-.go-Tree a:focus,
-.go-Tree a:hover {
-  text-decoration: underline;
-  z-index: 1;
-}
-.go-Tree a[aria-selected='true'] {
-  color: var(--color-text);
-  font-weight: 500;
-}
-.go-Tree a[aria-level='1'][aria-selected='true'],
-.go-Tree a[aria-level='1'][aria-expanded='true'] {
-  background-color: var(--color-background-accented);
-}
-.go-Tree a[aria-level='3'][aria-expanded='true'] {
-  margin-bottom: 0.375em;
-}
-.go-Tree a[aria-level='2'] {
-  margin-bottom: 0.25rem;
-  position: relative;
-}
-.go-Tree a[aria-level='3'] {
-  padding-left: 2.5rem;
-}
-.go-Tree a[aria-level='4'] {
-  border-left: 0.125rem solid var(--color-background-accented);
-  margin-left: 2.5rem;
-  padding-left: 0.5rem;
-}
-.go-Tree a[aria-selected='true'][aria-level='2']:not([aria-expanded])::before,
-.go-Tree a[aria-selected='true'][aria-level='3']:not([aria-expanded])::before {
-  background-color: var(--color-brand-primary);
-  border-radius: 50%;
-  content: '';
-  display: block;
-  height: 0.3125rem;
-  left: 0.4688rem;
-  position: absolute;
-  top: 0.75rem;
-  width: 0.3125rem;
-}
-.go-Tree a[aria-expanded][aria-owns][aria-level='2']::before,
-.go-Tree a[aria-expanded][aria-owns][aria-level='3']::before {
-  border-bottom: 0.25rem solid transparent;
-  border-left: 0.25rem solid var(--color-border);
-  border-right: 0;
-  border-top: 0.25rem solid transparent;
-  content: '';
-  display: block;
-  height: 0;
-  left: 0.5rem;
-  position: absolute;
-  top: 0.625rem;
-  transition: transform 0.1s linear;
-  width: 0;
-}
-.go-Tree a[aria-expanded='true'][aria-level='2']::before,
-.go-Tree a[aria-expanded='true'][aria-level='3']::before {
-  transform: rotate(90deg);
-}
-.go-Tree a[aria-expanded][aria-level='3']:not([empty])::before,
-.go-Tree a[aria-selected][aria-level='3']:not([empty])::before {
-  left: 1.5rem;
-  top: 0.75rem;
-}
-.go-Tree a[aria-selected='true'][aria-level='4'] {
-  border-left: 0.125rem solid var(--color-brand-primary);
-}
diff --git a/static/shared/outline/tree.test.ts b/static/shared/outline/tree.test.ts
deleted file mode 100644
index 9b5d243..0000000
--- a/static/shared/outline/tree.test.ts
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { parse } from '../../markdown';
-import { TreeNavController } from './tree';
-
-const observe = jest.fn();
-window.IntersectionObserver = jest.fn(() => ({
-  observe,
-})) as any;
-
-let treeEl: HTMLElement;
-let a1: HTMLElement;
-let a21: HTMLElement;
-let a22: HTMLElement;
-let a23: HTMLElement;
-let a31: HTMLElement;
-let a41: HTMLElement;
-let a42: HTMLElement;
-
-beforeEach(async () => {
-  document.body.innerHTML = await parse(__dirname + '/outline.md');
-  treeEl = document.querySelector('.js-tree') as HTMLElement;
-  new TreeNavController(treeEl);
-  a1 = a('#one');
-  a21 = a('#two-one');
-  a22 = a('#two-two');
-  a23 = a('#two-three');
-  a31 = a('#three-one');
-  a41 = a('#four-one');
-  a42 = a('#four-two');
-  a1.focus();
-});
-
-afterEach(() => {
-  document.body.innerHTML = '';
-});
-
-it('creates tree nav from ul', () => {
-  expect(treeEl).toMatchSnapshot();
-});
-
-it('adds role=group attribute to ul elements', () => {
-  for (const ul of treeEl.querySelectorAll('ul')) {
-    expect(attr(ul, 'role')).toBe('group');
-  }
-});
-
-it('adds role=none attribute to li elements', () => {
-  for (const ul of treeEl.querySelectorAll('li')) {
-    expect(attr(ul, 'role')).toBe('none');
-  }
-});
-
-it('adds role=treeitem attribute to a elements', () => {
-  for (const ul of treeEl.querySelectorAll('a')) {
-    expect(attr(ul, 'role')).toBe('treeitem');
-  }
-});
-
-it('adds aria-expanded role to tree items with children', () => {
-  expect(attr(a1, 'aria-expanded')).toBe('false');
-  expect(attr(a22, 'aria-expanded')).toBe('false');
-  expect(attr(a31, 'aria-expanded')).toBe('false');
-});
-
-it('does not add aria-expanded role to tree items with children', () => {
-  expect(attr(a21, 'aria-expanded')).toBeNull();
-  expect(attr(a41, 'aria-expanded')).toBeNull();
-  expect(attr(a42, 'aria-expanded')).toBeNull();
-});
-
-it('adds aria-level to tree items', () => {
-  expect(attr(a1, 'aria-level')).toBe('1');
-  expect(attr(a21, 'aria-level')).toBe('2');
-  expect(attr(a22, 'aria-level')).toBe('2');
-  expect(attr(a31, 'aria-level')).toBe('3');
-  expect(attr(a41, 'aria-level')).toBe('4');
-  expect(attr(a42, 'aria-level')).toBe('4');
-});
-
-it('focuses tree item on click', () => {
-  a1.click();
-  expect(attr(a1, 'aria-expanded')).toBe('true');
-  expect(attr(a1, 'aria-selected')).toBe('true');
-});
-
-it('closes unfocused branches', () => {
-  a1.click();
-  expect(attr(a1, 'aria-expanded')).toBe('true');
-  expect(attr(a1, 'aria-selected')).toBe('true');
-  a22.click();
-  expect(attr(a22, 'aria-expanded')).toBe('true');
-  expect(attr(a22, 'aria-selected')).toBe('true');
-  a21.click();
-  expect(attr(a22, 'aria-expanded')).toBe('false');
-  expect(attr(a22, 'aria-selected')).toBe('false');
-});
-
-it('navigates treeitems with the keyboard', () => {
-  keydown(a1, 'ArrowRight'); // expand a1
-  expect(attr(a1, 'aria-expanded')).toBe('true');
-
-  keydown(a1, 'ArrowRight'); // focus a21
-  expect(attr(a1, 'tabindex')).toBe('-1');
-  expect(attr(a21, 'tabindex')).toBe('0');
-
-  keydown(a21, 'ArrowDown'); // focus a22
-  expect(attr(a21, 'tabindex')).toBe('-1');
-  expect(attr(a22, 'tabindex')).toBe('0');
-
-  keydown(a22, 'ArrowRight'); // expand a22
-  expect(attr(a22, 'aria-expanded')).toBe('true');
-
-  keydown(a22, 'ArrowRight'); // focus a31
-  expect(attr(a22, 'tabindex')).toBe('-1');
-  expect(attr(a31, 'tabindex')).toBe('0');
-
-  keydown(a31, 'ArrowUp'); // focus a22
-  expect(attr(a31, 'tabindex')).toBe('-1');
-  expect(attr(a22, 'tabindex')).toBe('0');
-
-  keydown(a22, 'ArrowUp'); // focus a21
-  expect(attr(a22, 'tabindex')).toBe('-1');
-  expect(attr(a21, 'tabindex')).toBe('0');
-
-  keydown(a21, 'ArrowLeft'); // focus a1
-  expect(attr(a21, 'tabindex')).toBe('-1');
-  expect(attr(a1, 'tabindex')).toBe('0');
-
-  keydown(a1, 'End'); // focus a31
-  expect(attr(a1, 'tabindex')).toBe('-1');
-  expect(attr(a23, 'tabindex')).toBe('0');
-
-  keydown(a23, 'Home'); // focus a1
-  expect(attr(a31, 'tabindex')).toBe('-1');
-  expect(attr(a1, 'tabindex')).toBe('0');
-});
-
-it('expands sibling items with * key', () => {
-  keydown(a1, 'ArrowRight');
-  keydown(a1, 'ArrowDown');
-  keydown(a21, '*');
-  expect(attr(a22, 'aria-expanded')).toBe('true');
-  expect(attr(a23, 'aria-expanded')).toBe('true');
-});
-
-function a(href: string): HTMLElement {
-  return document.querySelector(`[href="${href}"]`);
-}
-
-function attr(el: Element, name: string): string {
-  return el.getAttribute(name);
-}
-
-function keydown(el: Element, key: string): void {
-  el.dispatchEvent(new KeyboardEvent('keydown', { key }));
-}
diff --git a/static/shared/outline/tree.tmpl b/static/shared/outline/tree.tmpl
deleted file mode 100644
index 6f048f9..0000000
--- a/static/shared/outline/tree.tmpl
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
-  Copyright 2021 The Go Authors. All rights reserved.
-  Use of this source code is governed by a BSD-style
-  license that can be found in the LICENSE file.
--->
-
-{{define "treeitems"}}
-  {{range .}}
-    <li>
-      <a href="#{{.ID}}">{{.Text}}</a>
-      {{if and .Children (lt .Level 4)}}
-        <ul>
-          {{template "treeitems" .Children}}
-        </ul>
-      {{end}}
-    </li>
-  {{end}}
-{{end}}
-
-{{define "tree-nav"}}
-  <ul class="go-Tree js-tree" role="tree">
-    {{template "treeitems" .}}
-  </ul>
-{{end}}
diff --git a/static/shared/outline/tree.ts b/static/shared/outline/tree.ts
deleted file mode 100644
index fbacbe0..0000000
--- a/static/shared/outline/tree.ts
+++ /dev/null
@@ -1,483 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-/**
- * TreeNavController is the navigation tree component of the documentation page.
- * It adds accessiblity attributes to a tree, observes the heading elements
- * focus the topmost link for headings visible on the page, and implements the
- * WAI-ARIA Treeview Design Pattern with full
- * [keyboard support](https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html#kbd_label).
- */
-export class TreeNavController {
-  treeitems: TreeItem[];
-
-  /**
-   * firstChars is the first character of each treeitem in the same order
-   * as this.treeitems. We use this array to set focus by character when
-   * navigating the tree with a keyboard.
-   */
-  private firstChars: string[];
-  private firstTreeitem: TreeItem | null;
-  private lastTreeitem: TreeItem | null;
-  private observerCallbacks: ((t: TreeItem) => void)[];
-
-  constructor(private el: HTMLElement) {
-    this.treeitems = [];
-    this.firstChars = [];
-    this.firstTreeitem = null;
-    this.lastTreeitem = null;
-    this.observerCallbacks = [];
-    this.init();
-  }
-
-  private init(): void {
-    this.handleResize();
-    window.addEventListener('resize', this.handleResize);
-    this.findTreeItems();
-    this.updateVisibleTreeitems();
-    this.observeTargets();
-    if (this.firstTreeitem) {
-      this.firstTreeitem.el.tabIndex = 0;
-    }
-  }
-
-  private handleResize = (): void => {
-    this.el.style.setProperty('--js-tree-height', '100vh');
-    this.el.style.setProperty('--js-tree-height', this.el.clientHeight + 'px');
-  };
-
-  private observeTargets() {
-    this.addObserver(treeitem => {
-      this.expandTreeitem(treeitem);
-      this.setSelected(treeitem);
-      // TODO: Fix scroll issue in https://golang.org/issue/47450.
-      // treeitem.el.scrollIntoView({ block: 'nearest' });
-    });
-
-    const targets = new Map<string, boolean>();
-    const observer = new IntersectionObserver(
-      entries => {
-        for (const entry of entries) {
-          targets.set(entry.target.id, entry.isIntersecting || entry.intersectionRatio === 1);
-        }
-        for (const [id, isIntersecting] of targets) {
-          if (isIntersecting) {
-            const active = this.treeitems.find(t =>
-              (t.el as HTMLAnchorElement)?.href.endsWith(`#${id}`)
-            );
-            if (active) {
-              for (const fn of this.observerCallbacks) {
-                fn(active);
-              }
-            }
-            break;
-          }
-        }
-      },
-      {
-        threshold: 1.0,
-        rootMargin: '-60px 0px 0px 0px',
-      }
-    );
-
-    for (const href of this.treeitems.map(t => t.el.getAttribute('href'))) {
-      if (href) {
-        const id = href.replace(window.location.origin, '').replace('/', '').replace('#', '');
-        const target = document.getElementById(id);
-        if (target) {
-          observer.observe(target);
-        }
-      }
-    }
-  }
-
-  addObserver(fn: (t: TreeItem) => void, delay = 200): void {
-    this.observerCallbacks.push(debounce(fn, delay));
-  }
-
-  setFocusToNextItem(currentItem: TreeItem): void {
-    let nextItem = null;
-    for (let i = currentItem.index + 1; i < this.treeitems.length; i++) {
-      const ti = this.treeitems[i];
-      if (ti.isVisible) {
-        nextItem = ti;
-        break;
-      }
-    }
-    if (nextItem) {
-      this.setFocusToItem(nextItem);
-    }
-  }
-
-  setFocusToPreviousItem(currentItem: TreeItem): void {
-    let prevItem = null;
-    for (let i = currentItem.index - 1; i > -1; i--) {
-      const ti = this.treeitems[i];
-      if (ti.isVisible) {
-        prevItem = ti;
-        break;
-      }
-    }
-    if (prevItem) {
-      this.setFocusToItem(prevItem);
-    }
-  }
-
-  setFocusToParentItem(currentItem: TreeItem): void {
-    if (currentItem.groupTreeitem) {
-      this.setFocusToItem(currentItem.groupTreeitem);
-    }
-  }
-
-  setFocusToFirstItem(): void {
-    this.firstTreeitem && this.setFocusToItem(this.firstTreeitem);
-  }
-
-  setFocusToLastItem(): void {
-    this.lastTreeitem && this.setFocusToItem(this.lastTreeitem);
-  }
-
-  setSelected(currentItem: TreeItem): void {
-    for (const l1 of this.el.querySelectorAll('[aria-expanded="true"]')) {
-      if (l1 === currentItem.el) continue;
-      if (!l1.nextElementSibling?.contains(currentItem.el)) {
-        l1.setAttribute('aria-expanded', 'false');
-      }
-    }
-    for (const l1 of this.el.querySelectorAll('[aria-selected]')) {
-      if (l1 !== currentItem.el) {
-        l1.setAttribute('aria-selected', 'false');
-      }
-    }
-    currentItem.el.setAttribute('aria-selected', 'true');
-    this.updateVisibleTreeitems();
-    this.setFocusToItem(currentItem, false);
-  }
-
-  expandTreeitem(treeitem: TreeItem): void {
-    let currentItem: TreeItem | null = treeitem;
-    while (currentItem) {
-      if (currentItem.isExpandable) {
-        currentItem.el.setAttribute('aria-expanded', 'true');
-      }
-      currentItem = currentItem.groupTreeitem;
-    }
-    this.updateVisibleTreeitems();
-  }
-
-  expandAllSiblingItems(currentItem: TreeItem): void {
-    for (const ti of this.treeitems) {
-      if (ti.groupTreeitem === currentItem.groupTreeitem && ti.isExpandable) {
-        this.expandTreeitem(ti);
-      }
-    }
-  }
-
-  collapseTreeitem(currentItem: TreeItem): void {
-    let groupTreeitem = null;
-
-    if (currentItem.isExpanded()) {
-      groupTreeitem = currentItem;
-    } else {
-      groupTreeitem = currentItem.groupTreeitem;
-    }
-
-    if (groupTreeitem) {
-      groupTreeitem.el.setAttribute('aria-expanded', 'false');
-      this.updateVisibleTreeitems();
-      this.setFocusToItem(groupTreeitem);
-    }
-  }
-
-  setFocusByFirstCharacter(currentItem: TreeItem, char: string): void {
-    let start: number, index: number;
-    char = char.toLowerCase();
-
-    // Get start index for search based on position of currentItem
-    start = currentItem.index + 1;
-    if (start === this.treeitems.length) {
-      start = 0;
-    }
-
-    // Check remaining slots in the menu
-    index = this.getIndexFirstChars(start, char);
-
-    // If not found in remaining slots, check from beginning
-    if (index === -1) {
-      index = this.getIndexFirstChars(0, char);
-    }
-
-    // If match was found...
-    if (index > -1) {
-      this.setFocusToItem(this.treeitems[index]);
-    }
-  }
-
-  private findTreeItems() {
-    const findItems = (el: HTMLElement, group: TreeItem | null) => {
-      let ti = group;
-      let curr = el.firstElementChild as HTMLElement;
-      while (curr) {
-        if (curr.tagName === 'A' || curr.tagName === 'SPAN') {
-          ti = new TreeItem(curr, this, group);
-          this.treeitems.push(ti);
-          this.firstChars.push(ti.label.substring(0, 1).toLowerCase());
-        }
-        if (curr.firstElementChild) {
-          findItems(curr, ti);
-        }
-        curr = curr.nextElementSibling as HTMLElement;
-      }
-    };
-    findItems(this.el as HTMLElement, null);
-    this.treeitems.map((ti, idx) => (ti.index = idx));
-  }
-
-  private updateVisibleTreeitems(): void {
-    this.firstTreeitem = this.treeitems[0];
-
-    for (const ti of this.treeitems) {
-      let parent = ti.groupTreeitem;
-      ti.isVisible = true;
-      while (parent && parent.el !== this.el) {
-        if (!parent.isExpanded()) {
-          ti.isVisible = false;
-        }
-        parent = parent.groupTreeitem;
-      }
-      if (ti.isVisible) {
-        this.lastTreeitem = ti;
-      }
-    }
-  }
-
-  private setFocusToItem(treeitem: TreeItem, focusEl = true) {
-    treeitem.el.tabIndex = 0;
-    if (focusEl) {
-      treeitem.el.focus();
-    }
-    for (const ti of this.treeitems) {
-      if (ti !== treeitem) {
-        ti.el.tabIndex = -1;
-      }
-    }
-  }
-
-  private getIndexFirstChars(startIndex: number, char: string): number {
-    for (let i = startIndex; i < this.firstChars.length; i++) {
-      if (this.treeitems[i].isVisible && char === this.firstChars[i]) {
-        return i;
-      }
-    }
-    return -1;
-  }
-}
-
-class TreeItem {
-  el: HTMLElement;
-  groupTreeitem: TreeItem | null;
-  label: string;
-  isExpandable: boolean;
-  isVisible: boolean;
-  depth: number;
-  index: number;
-
-  private tree: TreeNavController;
-  private isInGroup: boolean;
-
-  constructor(el: HTMLElement, treeObj: TreeNavController, group: TreeItem | null) {
-    el.tabIndex = -1;
-    this.el = el;
-    this.groupTreeitem = group;
-    this.label = el.textContent?.trim() ?? '';
-    this.tree = treeObj;
-    this.depth = (group?.depth || 0) + 1;
-    this.index = 0;
-
-    const parent = el.parentElement;
-    if (parent?.tagName.toLowerCase() === 'li') {
-      parent?.setAttribute('role', 'none');
-    }
-    el.setAttribute('aria-level', this.depth + '');
-    if (el.getAttribute('aria-label')) {
-      this.label = el?.getAttribute('aria-label')?.trim() ?? '';
-    }
-
-    this.isExpandable = false;
-    this.isVisible = false;
-    this.isInGroup = !!group;
-
-    let curr = el.nextElementSibling;
-    while (curr) {
-      if (curr.tagName.toLowerCase() == 'ul') {
-        const groupId = `${group?.label ?? ''} nav group ${this.label}`.replace(/[\W_]+/g, '_');
-        el.setAttribute('aria-owns', groupId);
-        el.setAttribute('aria-expanded', 'false');
-        curr.setAttribute('role', 'group');
-        curr.setAttribute('id', groupId);
-        this.isExpandable = true;
-        break;
-      }
-
-      curr = curr.nextElementSibling;
-    }
-    this.init();
-  }
-
-  private init() {
-    this.el.tabIndex = -1;
-    if (!this.el.getAttribute('role')) {
-      this.el.setAttribute('role', 'treeitem');
-    }
-    this.el.addEventListener('keydown', this.handleKeydown.bind(this));
-    this.el.addEventListener('click', this.handleClick.bind(this));
-    this.el.addEventListener('focus', this.handleFocus.bind(this));
-    this.el.addEventListener('blur', this.handleBlur.bind(this));
-  }
-
-  isExpanded() {
-    if (this.isExpandable) {
-      return this.el.getAttribute('aria-expanded') === 'true';
-    }
-
-    return false;
-  }
-
-  isSelected() {
-    return this.el.getAttribute('aria-selected') === 'true';
-  }
-
-  private handleClick(event: MouseEvent) {
-    // only process click events that directly happened on this treeitem
-    if (event.target !== this.el && event.target !== this.el.firstElementChild) {
-      return;
-    }
-    if (this.isExpandable) {
-      if (this.isExpanded() && this.isSelected()) {
-        this.tree.collapseTreeitem(this);
-      } else {
-        this.tree.expandTreeitem(this);
-      }
-      event.stopPropagation();
-    }
-    this.tree.setSelected(this);
-  }
-
-  private handleFocus() {
-    let el = this.el;
-    if (this.isExpandable) {
-      el = (el.firstElementChild as HTMLElement) ?? el;
-    }
-    el.classList.add('focus');
-  }
-
-  private handleBlur() {
-    let el = this.el;
-    if (this.isExpandable) {
-      el = (el.firstElementChild as HTMLElement) ?? el;
-    }
-    el.classList.remove('focus');
-  }
-
-  private handleKeydown(event: KeyboardEvent) {
-    if (event.altKey || event.ctrlKey || event.metaKey) {
-      return;
-    }
-
-    let captured = false;
-    switch (event.key) {
-      case ' ':
-      case 'Enter':
-        if (this.isExpandable) {
-          if (this.isExpanded() && this.isSelected()) {
-            this.tree.collapseTreeitem(this);
-          } else {
-            this.tree.expandTreeitem(this);
-          }
-          captured = true;
-        } else {
-          event.stopPropagation();
-        }
-        this.tree.setSelected(this);
-        break;
-
-      case 'ArrowUp':
-        this.tree.setFocusToPreviousItem(this);
-        captured = true;
-        break;
-
-      case 'ArrowDown':
-        this.tree.setFocusToNextItem(this);
-        captured = true;
-        break;
-
-      case 'ArrowRight':
-        if (this.isExpandable) {
-          if (this.isExpanded()) {
-            this.tree.setFocusToNextItem(this);
-          } else {
-            this.tree.expandTreeitem(this);
-          }
-        }
-        captured = true;
-        break;
-
-      case 'ArrowLeft':
-        if (this.isExpandable && this.isExpanded()) {
-          this.tree.collapseTreeitem(this);
-          captured = true;
-        } else {
-          if (this.isInGroup) {
-            this.tree.setFocusToParentItem(this);
-            captured = true;
-          }
-        }
-        break;
-
-      case 'Home':
-        this.tree.setFocusToFirstItem();
-        captured = true;
-        break;
-
-      case 'End':
-        this.tree.setFocusToLastItem();
-        captured = true;
-        break;
-
-      default:
-        if (event.key.length === 1 && event.key.match(/\S/)) {
-          if (event.key == '*') {
-            this.tree.expandAllSiblingItems(this);
-          } else {
-            this.tree.setFocusByFirstCharacter(this, event.key);
-          }
-          captured = true;
-        }
-        break;
-    }
-
-    if (captured) {
-      event.stopPropagation();
-      event.preventDefault();
-    }
-  }
-}
-
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-function debounce<T extends (...args: any[]) => any>(func: T, wait: number) {
-  let timeout: ReturnType<typeof setTimeout> | null;
-  return (...args: Parameters<T>) => {
-    const later = () => {
-      timeout = null;
-      func(...args);
-    };
-    if (timeout) {
-      clearTimeout(timeout);
-    }
-    timeout = setTimeout(later, wait);
-  };
-}
diff --git a/static/shared/reset.css b/static/shared/reset.css
deleted file mode 100644
index f5bf9bc..0000000
--- a/static/shared/reset.css
+++ /dev/null
@@ -1,152 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-/*!
- * http://meyerweb.com/eric/tools/css/reset/
- * v2.0 | 20110126
- * License: none (public domain)
- */
-
-html,
-body,
-button,
-div,
-span,
-applet,
-object,
-iframe,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-hr,
-input,
-p,
-blockquote,
-pre,
-a,
-abbr,
-acronym,
-address,
-big,
-cite,
-code,
-del,
-dfn,
-dialog,
-em,
-img,
-ins,
-kbd,
-q,
-s,
-samp,
-small,
-strike,
-strong,
-sub,
-sup,
-tt,
-var,
-b,
-u,
-i,
-center,
-dl,
-dt,
-dd,
-ol,
-ul,
-li,
-fieldset,
-form,
-label,
-legend,
-table,
-caption,
-tbody,
-tfoot,
-thead,
-tr,
-th,
-td,
-article,
-aside,
-canvas,
-details,
-embed,
-figure,
-figcaption,
-footer,
-header,
-hgroup,
-menu,
-nav,
-output,
-ruby,
-section,
-summary,
-time,
-mark,
-audio,
-video {
-  border: 0;
-  font: inherit;
-  font-size: 100%;
-  margin: 0;
-  padding: 0;
-  vertical-align: baseline;
-}
-
-/* HTML5 display-role reset for older browsers */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-menu,
-nav,
-section {
-  display: block;
-}
-
-body {
-  line-height: 1;
-}
-
-ol,
-ul {
-  list-style: none;
-}
-
-blockquote,
-q {
-  quotes: none;
-}
-
-blockquote::before,
-blockquote::after,
-q::before,
-q::after {
-  content: '';
-  content: none;
-}
-
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-*,
-::before,
-::after {
-  box-sizing: border-box;
-}
diff --git a/static/shared/shared.css b/static/shared/shared.css
deleted file mode 100644
index 4229bf8..0000000
--- a/static/shared/shared.css
+++ /dev/null
@@ -1,100 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-@import url('./reset.css');
-
-/**
- * Typography should be imported first in the list below to ensure expected
- * CSS rule inheritance on text elements.
- */
-@import url('./typography/typography.css');
-@import url('./button/button.css');
-@import url('./breadcrumb/breadcrumb.css');
-@import url('./carousel/carousel.css');
-@import url('./chip/chip.css');
-@import url('./clipboard/clipboard.css');
-@import url('./color/color.css');
-@import url('./footer/footer.css');
-@import url('./form/form.css');
-@import url('./gopher/gopher.css');
-@import url('./header/header.css');
-@import url('./icon/icon.css');
-@import url('./message/message.css');
-@import url('./modal/modal.css');
-@import url('./outline/tree.css');
-@import url('./tabnav/tabnav.css');
-@import url('./tooltip/tooltip.css');
-
-:root {
-  /* Padding at the left and right of the viewport. */
-  --gutter: 1.5rem;
-
-  /* Margin between containers in the grid layout. */
-  --gap: 1rem;
-
-  /* The margin placed above elements scrolled to by clicking hash links. */
-  --scroll-margin: calc(
-    var(--js-sticky-header-height, 3.5rem) + var(--js-sticky-nav-height, 0) + 2rem
-  );
-
-  /* Default styles for page elements. */
-  --border: 0.0625rem solid var(--color-border);
-  --border-radius: 0.25rem;
-  --box-shadow: 0 0 0.375rem 0 rgb(0 0 0 / 25%);
-  --focus-box-shadow: 0 0 0.0625rem 0.0625rem rgb(0 112 210 / 60%);
-}
-
-@media (min-width: 50rem) {
-  :root {
-    --gap: 2rem;
-    --scroll-margin: calc(
-      var(--js-sticky-header-height, 3.5rem) + var(--js-sticky-nav-height, 0) + 1rem
-    );
-  }
-}
-
-*:target {
-  scroll-margin-top: var(--scroll-margin);
-}
-
-body {
-  background-color: var(--color-background);
-  display: flex;
-  flex-direction: column;
-  min-height: 100vh;
-  min-width: 23.5rem;
-
-  /**
-   * This is used to programatically detect whether overflow needs to be altered
-   * to prevent jitter when focusing within fixed elements on iOS.
-   * It also must be set to 'touch' for the fix to work.
-   */
-  -webkit-overflow-scrolling: touch;
-}
-
-.go-Container {
-  display: flex;
-  flex-direction: column;
-  flex-grow: 1;
-  height: 100%;
-  margin-bottom: 5rem;
-}
-
-.go-Content {
-  display: flex;
-  flex-flow: column;
-  gap: 1rem;
-  margin: 0 auto;
-  max-width: 63rem;
-  min-height: 32rem;
-  padding: 2rem var(--gutter);
-  width: 100%;
-}
-
-.go-Content--center {
-  justify-content: center;
-  margin: auto;
-}
diff --git a/static/shared/table/table.test.ts b/static/shared/table/table.test.ts
deleted file mode 100644
index 681bc01..0000000
--- a/static/shared/table/table.test.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-/*!
- * @license
- * Copyright 2020 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { ExpandableRowsTableController } from './table';
-
-describe('ExpandableRowsTableController', () => {
-  let table: HTMLTableElement;
-  let toggle1: HTMLButtonElement;
-  let toggle2: HTMLButtonElement;
-  let toggleAll: HTMLButtonElement;
-
-  beforeEach(() => {
-    document.body.innerHTML = `
-      <div>
-        <button class="js-toggleAll">Expand all</button>
-      </div>
-      <table class="js-table">
-        <tbody>
-          <tr>
-            <th>Toggle</th>
-            <th>Foo</th>
-            <th>Bar</th>
-          </tr>
-          <tr>
-            <td></td>
-            <td data-id="label-id-1">Hello World</td>
-            <td>Simple row with no toggle or hidden elements</td>
-          </tr>
-          <tr data-aria-controls="hidden-row-id-1 hidden-row-id-2">
-            <td>
-              <button
-                type="button"
-                aria-expanded="false"
-                aria-label="2 more from"
-                data-aria-controls="hidden-row-id-1 hidden-row-id-2"
-                data-aria-labelledby="toggle-id-1 label-id-2"
-                data-id="toggle-id-1"
-              >
-                +
-              </button>
-            </td>
-            <td data-id="label-id-2">
-              <span>Baz</span>
-            </td>
-            <td></td>
-          </tr>
-          <tr data-id="hidden-row-id-1">
-            <td></td>
-            <td>First hidden row</td>
-            <td></td>
-          </tr>
-          <tr data-id="hidden-row-id-2">
-            <td></td>
-            <td>Second hidden row</td>
-            <td></td>
-          </tr>
-          <tr data-aria-controls="hidden-row-id-3">
-            <td>
-              <button
-                type="button"
-                aria-expanded="false"
-                aria-label="2 more from"
-                data-aria-controls="hidden-row-id-3"
-                data-aria-labelledby="toggle-id-2 label-id-3"
-                data-id="toggle-id-2"
-              >
-                +
-              </button>
-            </td>
-            <td data-id="label-id-3">
-              <span>Baz</span>
-            </td>
-            <td></td>
-          </tr>
-          <tr data-id="hidden-row-id-3">
-            <td></td>
-            <td>First hidden row</td>
-            <td></td>
-          </tr>
-        </tbody>
-      </table>
-    `;
-    table = document.querySelector<HTMLTableElement>('.js-table');
-    toggleAll = document.querySelector<HTMLButtonElement>('.js-toggleAll');
-    new ExpandableRowsTableController(table, toggleAll);
-    toggle1 = document.querySelector<HTMLButtonElement>('#toggle-id-1');
-    toggle2 = document.querySelector<HTMLButtonElement>('#toggle-id-2');
-  });
-
-  afterEach(() => {
-    document.body.innerHTML = '';
-  });
-
-  it('sets data-aria-* and data-id attributes to regular html attributes', () => {
-    expect(document.querySelector('#label-id-1')).toBeTruthy();
-    expect(
-      document.querySelector('[aria-controls="hidden-row-id-1 hidden-row-id-2"]')
-    ).toBeTruthy();
-    expect(document.querySelector('[aria-labelledby="toggle-id-1 label-id-2"]')).toBeTruthy();
-    expect(document.querySelector('#toggle-id-1')).toBeTruthy();
-    expect(document.querySelector('#label-id-2')).toBeTruthy();
-    expect(document.querySelector('#hidden-row-id-1')).toBeTruthy();
-    expect(document.querySelector('#hidden-row-id-2')).toBeTruthy();
-  });
-
-  it('hides rows with unexpanded toggles', () => {
-    expect(document.querySelector('#hidden-row-id-1').classList).toContain('hidden');
-    expect(document.querySelector('#hidden-row-id-2').classList).toContain('hidden');
-  });
-
-  it('shows rows with expanded toggles', () => {
-    toggleAll.click();
-    expect(document.querySelector('#hidden-row-id-1').classList).toContain('visible');
-    expect(document.querySelector('#hidden-row-id-2').classList).toContain('visible');
-  });
-
-  it('expands rows when entering text search', () => {
-    document.dispatchEvent(new KeyboardEvent('keydown', { key: 'f', ctrlKey: true }));
-    expect(document.querySelector('#hidden-row-id-1').classList).toContain('visible');
-    expect(document.querySelector('#hidden-row-id-2').classList).toContain('visible');
-  });
-
-  it('toggle expands and collapses all elements', async () => {
-    jest.useFakeTimers();
-    toggleAll.click();
-    jest.runAllTimers();
-    expect(document.querySelector('#hidden-row-id-1').classList).toContain('visible');
-    expect(document.querySelector('#hidden-row-id-2').classList).toContain('visible');
-    expect(toggleAll.innerText).toBe('Collapse all');
-    toggleAll.click();
-    jest.runAllTimers();
-    expect(document.querySelector('#hidden-row-id-1').classList).toContain('hidden');
-    expect(document.querySelector('#hidden-row-id-2').classList).toContain('hidden');
-    expect(toggleAll.innerText).toBe('Expand all');
-  });
-
-  it('toggle changes text only when all items expanded', () => {
-    jest.useFakeTimers();
-    toggle1.click();
-    jest.runAllTimers();
-    expect(toggleAll.innerText).toBe('Expand all');
-    toggle2.click();
-    jest.runAllTimers();
-    expect(toggleAll.innerText).toBe('Collapse all');
-  });
-});
diff --git a/static/shared/table/table.ts b/static/shared/table/table.ts
deleted file mode 100644
index 7675b65..0000000
--- a/static/shared/table/table.ts
+++ /dev/null
@@ -1,126 +0,0 @@
-/*!
- * @license
- * Copyright 2020 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-/**
- * Controller for a table element with expandable rows. Adds event listeners to
- * a toggle within a table row that controls visiblity of additional related
- * rows in the table.
- *
- * @example
- * ```typescript
- * import {ExpandableRowsTableController} from '/static/js/table';
- *
- * const el = document .querySelector<HTMLTableElement>('.js-myTableElement')
- * new ExpandableRowsTableController(el));
- * ```
- */
-export class ExpandableRowsTableController {
-  private rows: HTMLTableRowElement[];
-  private toggles: HTMLButtonElement[];
-
-  /**
-   * Create a table controller.
-   * @param table - The table element to which the controller binds.
-   */
-  constructor(private table: HTMLTableElement, private toggleAll?: HTMLButtonElement | null) {
-    this.rows = Array.from(table.querySelectorAll<HTMLTableRowElement>('[data-aria-controls]'));
-    this.toggles = Array.from(this.table.querySelectorAll('[aria-expanded]'));
-    this.setAttributes();
-    this.attachEventListeners();
-    this.update();
-  }
-
-  /**
-   * setAttributes sets data-aria-* and data-id attributes to regular
-   * html attributes as a workaround for limitations from safehtml.
-   */
-  private setAttributes() {
-    for (const a of ['data-aria-controls', 'data-aria-labelledby', 'data-id']) {
-      this.table.querySelectorAll(`[${a}]`).forEach(t => {
-        t.setAttribute(a.replace('data-', ''), t.getAttribute(a) ?? '');
-        t.removeAttribute(a);
-      });
-    }
-  }
-
-  private attachEventListeners() {
-    this.rows.forEach(t => {
-      t.addEventListener('click', e => {
-        this.handleToggleClick(e);
-      });
-    });
-    this.toggleAll?.addEventListener('click', () => {
-      this.expandAllItems();
-    });
-
-    document.addEventListener('keydown', e => {
-      if ((e.ctrlKey || e.metaKey) && e.key === 'f') {
-        this.expandAllItems();
-      }
-    });
-  }
-
-  private handleToggleClick(e: MouseEvent) {
-    let target = e.currentTarget as HTMLTableRowElement | null;
-    if (!target?.hasAttribute('aria-expanded')) {
-      target = this.table.querySelector(
-        `button[aria-controls="${target?.getAttribute('aria-controls')}"]`
-      );
-    }
-    const isExpanded = target?.getAttribute('aria-expanded') === 'true';
-    target?.setAttribute('aria-expanded', isExpanded ? 'false' : 'true');
-    e.stopPropagation();
-    this.update();
-  }
-
-  expandAllItems = (): void => {
-    this.toggles.map(t => t.setAttribute('aria-expanded', 'true'));
-    this.update();
-  };
-
-  private collapseAllItems = () => {
-    this.toggles.map(t => t.setAttribute('aria-expanded', 'false'));
-    this.update();
-  };
-
-  private update = () => {
-    this.updateVisibleItems();
-    setTimeout(() => this.updateGlobalToggle());
-  };
-
-  private updateVisibleItems() {
-    this.rows.map(t => {
-      const isExpanded = t?.getAttribute('aria-expanded') === 'true';
-      const rowIds = t?.getAttribute('aria-controls')?.trimEnd().split(' ');
-      rowIds?.map(id => {
-        const target = document.getElementById(`${id}`);
-        if (isExpanded) {
-          target?.classList.add('visible');
-          target?.classList.remove('hidden');
-        } else {
-          target?.classList.add('hidden');
-          target?.classList.remove('visible');
-        }
-      });
-    });
-  }
-
-  private updateGlobalToggle() {
-    if (!this.toggleAll) return;
-    if (this.rows.some(t => t.hasAttribute('aria-expanded'))) {
-      this.toggleAll.style.display = 'block';
-    }
-    const someCollapsed = this.toggles.some(el => el.getAttribute('aria-expanded') === 'false');
-    if (someCollapsed) {
-      this.toggleAll.innerText = 'Expand all';
-      this.toggleAll.onclick = this.expandAllItems;
-    } else {
-      this.toggleAll.innerText = 'Collapse all';
-      this.toggleAll.onclick = this.collapseAllItems;
-    }
-  }
-}
diff --git a/static/shared/tabnav/tabnav.css b/static/shared/tabnav/tabnav.css
deleted file mode 100644
index b669fb7..0000000
--- a/static/shared/tabnav/tabnav.css
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-TabNav {
-  margin: 0 0 0.5rem 0;
-}
-.go-TabNav ul {
-  display: flex;
-  gap: 2rem;
-}
-.go-TabNav li {
-  border-bottom: 0.25rem transparent solid;
-  display: flex;
-  font-size: 1rem;
-  height: 2.375rem;
-  padding: 0 0.25rem;
-}
-.go-TabNav li[aria-current] {
-  border-color: var(--color-brand-primary);
-}
-.go-TabNav li:hover {
-  border-color: var(--color-brand-primary);
-}
-.go-TabNav a {
-  align-items: center;
-  color: var(--color-text-subtle);
-  display: inline-flex;
-}
-.go-TabNav li:hover a {
-  text-decoration: none;
-}
-.go-TabNav li[aria-current] a {
-  color: var(--color-text);
-}
diff --git a/static/shared/tabnav/tabnav.md b/static/shared/tabnav/tabnav.md
deleted file mode 100644
index fa42c72..0000000
--- a/static/shared/tabnav/tabnav.md
+++ /dev/null
@@ -1,13 +0,0 @@
-## Tab Nav
-
----
-
-```html
-<nav class="go-TabNav">
-  <ul>
-    <li aria-current="page"><a href="#nav-tab">Package</a></li>
-    <li><a href="#nav-tab">Symbol</a></li>
-  </ul>
-  <hr />
-</nav>
-```
diff --git a/static/shared/tooltip/tooltip.css b/static/shared/tooltip/tooltip.css
deleted file mode 100644
index df6e23c..0000000
--- a/static/shared/tooltip/tooltip.css
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-.go-Tooltip {
-  border-radius: var(--border-radius);
-  cursor: pointer;
-  display: inline-block;
-  position: relative;
-}
-.go-Tooltip > summary {
-  list-style: none;
-}
-.go-Tooltip > summary::-webkit-details-marker,
-.go-Tooltip > summary::marker {
-  display: none;
-}
-.go-Tooltip > summary > img {
-  vertical-align: text-bottom;
-}
-.go-Tooltip p {
-  background: var(--color-background) 80%;
-  border: var(--border);
-  border-radius: var(--border-radius);
-  color: var(--color-text);
-  font-size: 0.75rem;
-  letter-spacing: 0.01875rem;
-  line-height: 1rem;
-  padding: 0.5rem;
-  position: absolute;
-  top: 1.5rem;
-  white-space: normal;
-  width: 12rem;
-  z-index: 100;
-}
diff --git a/static/shared/tooltip/tooltip.md b/static/shared/tooltip/tooltip.md
deleted file mode 100644
index 7c6dc2c..0000000
--- a/static/shared/tooltip/tooltip.md
+++ /dev/null
@@ -1,22 +0,0 @@
-## Tooltips
-
----
-
-```html
-<details class="go-Tooltip js-tooltip" data-gtmc="tooltip">
-  <summary>
-    Valid <a href="#tooltips">go.mod</a> file
-    <img
-      class="go-Icon"
-      height="24"
-      width="24"
-      src="/static/shared/icon/help_gm_grey_24dp.svg"
-      alt=""
-    />
-  </summary>
-  <p>
-    The Go module system was introduced in Go 1.11 and is the official dependency management
-    solution for Go.
-  </p>
-</details>
-```
diff --git a/static/shared/tooltip/tooltip.test.ts b/static/shared/tooltip/tooltip.test.ts
deleted file mode 100644
index a9086bc..0000000
--- a/static/shared/tooltip/tooltip.test.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-import { parse } from '../../markdown';
-import { ToolTipController } from './tooltip';
-
-describe('Tooltip', () => {
-  let tooltip: HTMLDetailsElement;
-  let summary: HTMLElement;
-
-  beforeEach(async () => {
-    document.body.innerHTML = await parse(__dirname + '/tooltip.md');
-    tooltip = document.querySelector('.js-tooltip');
-    summary = tooltip.firstElementChild as HTMLElement;
-    new ToolTipController(tooltip);
-    summary.click();
-  });
-
-  afterEach(() => {
-    document.body.innerHTML = '';
-  });
-
-  it('opens', () => {
-    expect(tooltip.open).toBeTruthy();
-  });
-
-  it('closes on click', () => {
-    summary.click();
-    expect(tooltip.open).toBeFalsy();
-  });
-
-  it('closes on outside click', () => {
-    document.body.click();
-    expect(tooltip.open).toBeFalsy();
-  });
-});
diff --git a/static/shared/tooltip/tooltip.ts b/static/shared/tooltip/tooltip.ts
deleted file mode 100644
index c45dcd2..0000000
--- a/static/shared/tooltip/tooltip.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * @license
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-/**
- * ToolTipController handles closing tooltips on external clicks.
- */
-export class ToolTipController {
-  constructor(private el: HTMLDetailsElement) {
-    document.addEventListener('click', e => {
-      const insideTooltip = this.el.contains(e.target as Element);
-      if (!insideTooltip) {
-        this.el.removeAttribute('open');
-      }
-    });
-  }
-}
diff --git a/static/shared/typography/typography.css b/static/shared/typography/typography.css
deleted file mode 100644
index 2b656b1..0000000
--- a/static/shared/typography/typography.css
+++ /dev/null
@@ -1,119 +0,0 @@
-/*!
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-body {
-  color: var(--color-text);
-  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,
-    'Apple Color Emoji', 'Segoe UI Emoji';
-  font-size: 1rem;
-  line-height: normal;
-}
-h1 {
-  font-size: 1.5rem;
-}
-h2 {
-  font-size: 1.375rem;
-}
-h3 {
-  font-size: 1.25rem;
-}
-h4 {
-  font-size: 1.125rem;
-}
-h5 {
-  font-size: 1rem;
-}
-h6 {
-  font-size: 0.875rem;
-}
-
-h1,
-h2,
-h3,
-h4 {
-  font-weight: 600;
-  line-height: 1.25em;
-  word-break: break-word;
-}
-h5,
-h6 {
-  font-weight: 500;
-  line-height: 1.3em;
-  word-break: break-word;
-}
-
-hr {
-  border: none;
-  border-bottom: var(--border);
-  margin: 0;
-  width: 100%;
-}
-
-p {
-  font-size: 1rem;
-  line-height: 1.5rem;
-  max-width: 60rem;
-}
-strong {
-  font-weight: 600;
-}
-
-.go-textSubtle {
-  color: var(--color-text-subtle);
-}
-.go-textTitle {
-  font-size: 1.125rem;
-  font-weight: 600;
-  line-height: 1.25rem;
-}
-.go-textLabel {
-  font-size: 0.875rem;
-  font-weight: 600;
-  line-height: 1rem;
-}
-.go-textPagination {
-  font-size: 0.875rem;
-  line-height: 1rem;
-}
-code,
-pre,
-textarea.code {
-  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
-  font-size: 0.875rem;
-  line-height: 1.5em;
-}
-pre,
-textarea.code {
-  background-color: var(--color-background-accented);
-  border: var(--border);
-  border-radius: var(--border-radius);
-  color: var(--color-text);
-  overflow-x: auto;
-  padding: 0.625rem;
-  tab-size: 4;
-  white-space: pre;
-}
-
-button,
-input,
-select,
-textarea {
-  font: inherit;
-}
-
-a,
-a:link,
-a:visited {
-  color: var(--color-brand-primary);
-  text-decoration: none;
-}
-a:hover {
-  color: var(--color-brand-primary);
-  text-decoration: underline;
-}
-a:hover > * {
-  text-decoration: underline;
-}
diff --git a/static/shared/typography/typography.md b/static/shared/typography/typography.md
deleted file mode 100644
index 7bd0fee..0000000
--- a/static/shared/typography/typography.md
+++ /dev/null
@@ -1,55 +0,0 @@
-## Typography
-
----
-
-```html {#h1}
-<h1>Heading 1</h1>
-```
-
-```html {#h2}
-<h2>Heading 2</h2>
-```
-
-```html {#h3}
-<h3>Heading 3</h3>
-```
-
-```html {#h4}
-<h4>Heading 4</h4>
-```
-
-```html {#h5}
-<h5>Heading 5</h5>
-```
-
-```html {#h6}
-<h6>Heading 6</h6>
-```
-
-```html {#paragraph}
-<p>Paragraph</p>
-```
-
-```html {#subtle-text}
-<div class="go-textSubtle">Subtle text</div>
-```
-
-```html {#label-text}
-<div class="go-textLabel">Label text</div>
-```
-
-```html {#pagination-text}
-<div class="go-textPagination">Pagination text</div>
-```
-
-```html {#code-text}
-<code>Code text</code>
-```
-
-```html {#pre-text}
-<pre>Preformated text</pre>
-```
-
-```html {#link-text}
-<a href="#typography" data-gtmc="_ link">Link</a>
-```
diff --git a/static/shared/vuln/vuln.tmpl b/static/shared/vuln/vuln.tmpl
deleted file mode 100644
index 40a03a6..0000000
--- a/static/shared/vuln/vuln.tmpl
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--
-  Copyright 2021 The Go Authors. All rights reserved.
-  Use of this source code is governed by a BSD-style
-  license that can be found in the LICENSE file.
--->
-
-{{define "vuln-message"}}
-  <div class="go-Message go-Message--alert">
-    <img
-        class="go-Icon"
-        height="24"
-        width="24"
-        src="/static/shared/icon/alert_gm_grey_24dp.svg"
-        alt="Alert"
-    />&nbsp;
-    <a href="/vuln/{{.ID}}">{{.ID}}</a>: {{.Details}}
-  </div>
-{{end}}
diff --git a/static/static.css b/static/static.css
deleted file mode 100644
index 1639534..0000000
--- a/static/static.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * Copyright 2021 The Go Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file.
- */
-
-@import url('shared/shared.css');
diff --git a/static/vulncheck.tmpl b/static/vulncheck.tmpl
deleted file mode 100644
index f023c2b..0000000
--- a/static/vulncheck.tmpl
+++ /dev/null
@@ -1,159 +0,0 @@
-<!--
-  Copyright 2022 The Go Authors. All rights reserved.
-  Use of this source code is governed by a BSD-style
-  license that can be found in the LICENSE file.
--->
-
-<!DOCTYPE html>
-<html lang="en">
-<meta charset="utf-8">
-<link href="/static/static.css" rel="stylesheet">
-<title>Go Vulnerability Management - Metrics</title>
-
-<body>
-<main class="go-Container">
-<div class="go-Content">
-  <h1>Go Vulnerability Management - Metrics</h1>
-  <div class="Container">
-    <p>Results are from {{.TableName}}</p>
-    {{template "vulncheck" .}}
-  </div>
-</div>
-</main>
-</body>
-</html>
-
-{{define "vulncheck"}}
-{{/* . is VulncheckPage */}}
-<div>
-  {{template "corpus" .}}
-  {{template "errors" .}}
-  {{template "vulnerabilities" .}}
-</div>
-{{end}}
-
-{{define "corpus"}}
-{{/* . is VulncheckPage */}}
-<div>
-  <h2>Scan Results</h2>
-  <table>
-    <tbody>
-      <tr>
-        <th>Mode</th>
-        <th>Imports Only</th>
-        <th>VTA</th>
-        <th>VTA - Stacks</th>
-      </tr>
-      <tr>
-        <td># Modules Scanned</td>
-        <td>{{.ImportsResult.NumModulesScanned}}</td>
-        <td>{{.VTAResult.NumModulesScanned}}</td>
-        <td>{{.VTAStacksResult.NumModulesScanned}}</td>
-      </tr>
-      <tr>
-        <td># Modules Success</td>
-        <td>{{.ImportsResult.NumModulesSuccess}}</td>
-        <td>{{.VTAResult.NumModulesSuccess}}</td>
-        <td>{{.VTAStacksResult.NumModulesSuccess}}</td>
-      </tr>
-      <tr>
-        <td>% Modules Success</td>
-        <td>{{round .ImportsResult.PercentSuccess}}%</td>
-        <td>{{round .VTAResult.PercentSuccess}}%</td>
-        <td>{{round .VTAStacksResult.PercentSuccess}}%</td>
-      </tr>
-      <tr>
-        <td># Modules Failed</td>
-        <td>{{.ImportsResult.NumModulesError}}</td>
-        <td>{{.VTAResult.NumModulesError}}</td>
-        <td>{{.VTAStacksResult.NumModulesError}}</td>
-      </tr>
-      <tr>
-        <td>Avg Scan Seconds</td>
-        <td>{{round .ImportsResult.AverageScanSeconds}}s</td>
-        <td>{{round .VTAResult.AverageScanSeconds}}s</td>
-        <td>{{round .VTAStacksResult.AverageScanSeconds}}s</td>
-      </tr>
-      <tr>
-        <td>Max Scan Seconds</td>
-        <td>{{round .ImportsResult.MaxScanSeconds}}s</td>
-        <td>{{round .VTAResult.MaxScanSeconds}}s</td>
-        <td>{{round .VTAStacksResult.MaxScanSeconds}}s</td>
-      </tr>
-      <tr>
-        <td>Avg Scan Memory (MB)</td>
-	    <td>{{round .ImportsResult.AverageScanMemory}}MB</td>
-	    <td>{{round .VTAResult.AverageScanMemory}}MB</td>
-	    <td>{{round .VTAStacksResult.AverageScanMemory}}MB</td>
-      </tr>
-      <tr>
-        <td>Max Scan Memory (MB)</td>
-	    <td>{{round .ImportsResult.MaxScanMemory}}MB</td>
-	    <td>{{round .VTAResult.MaxScanMemory}}MB</td>
-	    <td>{{round .VTAStacksResult.MaxScanMemory}}MB</td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-{{end}}
-
-{{define "vulnerabilities"}}
-{{/* . is VulncheckPage */}}
-<div>
-  <h2>Vulnerabilities</h2>
-  <p><strong>VTA: {{.VTAResult.NumModulesSuccess}}</strong> scans succeeded (<strong>{{round .VTAResult.PercentSuccess}}%</strong>)</p>
-  <p><strong>Imports: {{.ImportsResult.NumModulesSuccess}}</strong> scans succeeded (<strong>{{round .ImportsResult.PercentSuccess}}%</strong>)</p>
-  <div>
-    <table>
-      <tbody>
-        <tr>
-          <th>Category</th>
-          <th>VTA</br># modules calls</th>
-          <th>Imports Only</br># modules imports</th>
-          <th>VTA</br>% of success</th>
-          <th>Imports Only</br>% of success</th>
-        </tr>
-        <tr>
-          <td>0 vulns</td>
-          <td>{{.VTAResult.NumModulesNoVuln}}</td>
-          <td>{{.ImportsResult.NumModulesNoVuln}}</td>
-          <td>{{round .VTAResult.PercentNoVuln}}%</td>
-          <td>{{round .ImportsResult.PercentNoVuln}}%</td>
-        </tr>
-        <tr>
-          <td>1+ vulns</td>
-          <td>{{.VTAResult.NumModulesVuln}}</td>
-          <td>{{.ImportsResult.NumModulesVuln}}</td>
-          <td>{{round .VTAResult.PercentVuln}}%</td>
-          <td>{{round .ImportsResult.PercentVuln}}%</td>
-        </tr>
-      </tbody>
-    </table>
-  </div>
-</div>
-{{end}}
-
-{{define "errors"}}
-{{/* . is VulncheckPage */}}
-<div>
-  <h2>Errors</h2>
-  <p><strong>VTA: {{.VTAResult.NumModulesError}}</strong> scans failed (<strong>{{round .VTAResult.PercentFailed}}%</strong>)</p>
-  <p><strong>Imports: {{.ImportsResult.NumModulesError}}</strong> scans failed (<strong>{{round .ImportsResult.PercentFailed}}%</strong>)</p>
-  <table>
-    <tbody>
-      <tr>
-        <th>Category</th>
-        <th>VTA</br># Modules</th>
-        <th>Imports Only</br># Modules</th>
-      </tr>
-      {{range .Errors}}
-      <tr>
-        <td>{{.Name}}</td>
-        <td>{{.VTANumModules}}</td>
-        <td>{{.ImportsNumModules}}</td>
-      </tr>
-      {{end}}
-    </tbody>
-  </table>
-</div>
-{{end}}