diff --git a/_includes/conference_page.html b/_includes/conference_page.html
deleted file mode 100644
index 51363d95..00000000
--- a/_includes/conference_page.html
+++ /dev/null
@@ -1,627 +0,0 @@
-{% assign conf_name = page.conf_name %}
-{% assign conf_display = page.conf_display_name %}
-{% assign conf_data = false %}
-{% for c in site.data.artifacts_by_conference %}
- {% if c.name == conf_name %}
- {% assign conf_data = c %}
- {% endif %}
-{% endfor %}
-
-{% if conf_data %}
-
-## Statistics
-
-
-
-
-
-| Year | Total | Available | Functional | Reproduced | Reusable |
-|:---:|:---:|:---:|:---:|:---:|:---:|
-{% for yd in conf_data.years reversed %}| {{ yd.year }} | **{{ yd.total }}** | {{ yd.available }} | {{ yd.functional }} | {{ yd.reproducible }} | {{ yd.reusable }} |
-{% endfor %}| **All** | {% assign _t = 0 %}{% assign _a = 0 %}{% assign _f = 0 %}{% assign _r = 0 %}{% assign _u = 0 %}{% for yd in conf_data.years %}{% assign _t = _t | plus: yd.total %}{% assign _a = _a | plus: yd.available %}{% assign _f = _f | plus: yd.functional %}{% assign _r = _r | plus: yd.reproducible %}{% assign _u = _u | plus: yd.reusable %}{% endfor %}**{{ _t }}** | **{{ _a }}** | **{{ _f }}** | **{{ _r }}** | **{{ _u }}** |
-
-{% else %}
-
-*No statistics data available for {{ conf_display }}.*
-
-{% endif %}
-
-## Authors
-
-Authors who contributed evaluated artifacts at {{ conf_display }}, ranked by artifact score.
-
-
-
-
- Legend: #=Rank, S=Artifact Score, Ar=Artifacts, P=Papers, AR%=Artifact Rate, RR%=Repro Rate, AvR%=Available/Functional Rate
-
-
-Loading author data…
-
-
-
-
-
-## Institutions
-
-Institutions at {{ conf_display }}, ranked by conference-specific artifact score.
-
-
-
-
- Legend: #=Rank, S=Artifact Score (conference-specific), R=Researchers, Ar=Artifacts, P=Papers, AE=AE Memberships, Ch=Chairs
-
-
-Loading institution data…
-
-
-
-
-
-## AE Committee
-
-Artifact evaluation committee members at {{ conf_display }}, ranked by number of service terms.
-
-
-
-
- Legend: #=Rank, Terms=AE Memberships, Ch=Times Chaired (★), First/Last=Year Range
-
-
-Loading AE data…
-
-
-
-
-
-## Repository Statistics
-
-{% assign conf_repo = false %}
-{% for cr in site.data.repo_stats.by_conference %}
- {% if cr.name == conf_name %}
- {% assign conf_repo = cr %}
- {% endif %}
-{% endfor %}
-
-{% if conf_repo %}
-{% if conf_repo.github_repos > 0 %}
-
-| Metric | Value |
-|---|:---:|
-| **GitHub Repositories** | {{ conf_repo.github_repos }} |
-| **Total Stars** | {{ conf_repo.total_stars }} |
-| **Avg Stars** | {{ conf_repo.avg_stars }} |
-| **Total Forks** | {{ conf_repo.total_forks }} |
-| **Avg Forks** | {{ conf_repo.avg_forks }} |
-| **Max Stars** | {{ conf_repo.max_stars }} |
-
-{% if conf_repo.top_repos.size > 0 %}
-### Top {{ conf_repo.top_repos.size }} Repositories by Stars
-
-
-
-| # | Repository | Authors | Year | Stars | Forks | Badges | Last Active |
-
-
-{% for repo in conf_repo.top_repos %}
-
-| {{ forloop.index }} |
-{{ repo.title | truncate: 55 }} |
-loading… |
-{{ repo.year }} |
-{{ repo.stars | default: 0 }} |
-{{ repo.forks | default: 0 }} |
-loading… |
-{% if repo.pushed_at %}{{ repo.pushed_at | date: "%Y-%m-%d" }}{% else %}—{% endif %} |
-
-{% endfor %}
-
-
-{% endif %}
-
-{% else %}
-*Repository statistics not yet available for {{ conf_display }}.*
-{% endif %}
-{% else %}
-*Repository statistics not yet available for {{ conf_display }}.*
-{% endif %}
-
-## Data Files
-
-Download the underlying data as JSON for further analysis:
-
-{% assign cat = page.conf_category %}
-| Dataset | Download |
-|---|---|
-| **Artifacts** | [artifacts.json]({{ '/assets/data/artifacts.json' | relative_url }}) |
-| **Authors** | [authors.json]({{ '/assets/data/authors.json' | relative_url }}) |
-| **Combined Rankings** | [combined_rankings.json]({{ '/assets/data/combined_rankings.json' | relative_url }}) |
-| **AE Members** | [ae_members.json]({{ '/assets/data/ae_members.json' | relative_url }}) |
-| **Institution Rankings** | [institution_rankings.json]({{ '/assets/data/institution_rankings.json' | relative_url }}) |
-
-*Filter by `conference: "{{ conf_name }}"` for {{ conf_display }}-specific data.*
-
-{% if conf_data %}
-
-{% endif %}
-
-
-
-
diff --git a/_includes/top_repos_table.html b/_includes/top_repos_table.html
deleted file mode 100644
index 857f3bd3..00000000
--- a/_includes/top_repos_table.html
+++ /dev/null
@@ -1,201 +0,0 @@
-{% comment %}
- Dynamic top repos table loaded from JSON with sorting and pagination.
- Shows top artifact repositories ranked by GitHub stars.
-
- Required page variables:
- page.top_repos_url — path to the JSON file (e.g., /assets/data/top_repos.json)
-{% endcomment %}
-
-
-
-
-
-
- per page
-
-
-
-
-
-
-
-
-
-
-Loading repository data…
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/assets/css/main.scss b/assets/css/main.scss
deleted file mode 100644
index 10c8c6bf..00000000
--- a/assets/css/main.scss
+++ /dev/null
@@ -1,705 +0,0 @@
----
-# Only the main Sass file needs front matter (the dashes are enough)
----
-
-@charset "utf-8";
-
-// Widen the page content area to use more horizontal space
-$max-width: 1600px !default;
-$right-sidebar-width-narrow: 0px !default;
-$right-sidebar-width: 0px !default;
-
-@import "minimal-mistakes/skins/default";
-@import "minimal-mistakes";
-
-// Reduce base font size on desktop screens (theme defaults: 16px / 18px large)
-html {
- font-size: 14px;
- @media (min-width: 64em) { // $large – 1024px
- font-size: 15px;
- }
- @media (min-width: 80em) { // $x-large – 1280px
- font-size: 16px;
- }
-}
-
-// Make the single layout page content wider and start further left
-.page {
- float: none;
- width: 100%;
- padding-right: 0;
-}
-
-.page__inner-wrap {
- float: none;
- width: 100%;
-}
-
-// On wide screens, ensure full width is used
-.wide .page {
- max-width: 100%;
- padding-right: 0;
-}
-
-// Remove right sidebar space and push content left
-.sidebar__right {
- display: none;
-}
-
-// Consistent padding for masthead and all content layouts.
-// On wide screens (>1400px), add ~1/6 viewport padding on each side
-// so content occupies roughly 2/3 of the screen for readability.
-// .initial-content wraps #main, so only pad the outer container.
-.initial-content,
-.masthead__inner-wrap {
- max-width: 100%;
- padding-left: 1em;
- padding-right: 1em;
-
- @media (min-width: 87.5em) { // ~1400px
- padding-left: calc(100vw / 6);
- padding-right: calc(100vw / 6);
- }
-}
-
-// Reduce masthead vertical padding (theme default is 1em top+bottom)
-.masthead__inner-wrap {
- padding-top: 0.35em;
- padding-bottom: 0.35em;
-}
-
-// Shrink logo to match the tighter masthead
-.site-logo svg {
- width: 32px;
- height: 32px;
-}
-
-// Reset #main padding — the theme sets padding-inline:1em which doubles
-// the indent since .initial-content already provides the outer padding.
-#main {
- padding-inline: 0;
-}
-
-// Dropdown submenus for masthead navigation
-// Override theme's overflow:hidden on .visible-links which clips dropdowns
-.greedy-nav .visible-links {
- overflow: visible;
-}
-.masthead__menu-item--has-children {
- position: relative;
-}
-.masthead__submenu {
- display: none;
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 100;
- background: #fff;
- border: 1px solid #ddd;
- min-width: 160px;
- padding: 0;
- margin: 0;
- list-style: none;
- box-shadow: 0 2px 6px rgba(0,0,0,0.1);
-}
-.masthead__menu-item--has-children:hover .masthead__submenu {
- display: block;
-}
-.masthead__submenu li a {
- display: block;
- padding: 0.4em 1em;
- font-size: 0.85em;
- color: #333;
- white-space: nowrap;
- text-decoration: none;
-}
-.masthead__submenu li a:hover {
- background: #f2f2f2;
-}
-
-/* Mobile hamburger menu styling */
-/* greedy-nav must be relative so hamburger-menu can drop down absolutely */
-.greedy-nav {
- position: relative;
-}
-#hamburger-menu {
- list-style: none;
- padding: 0;
- margin: 0;
- /* Drop down below the nav bar */
- position: absolute;
- top: 100%;
- right: 0;
- z-index: 200;
- min-width: 220px;
- background: #fff;
- border: 1px solid #ddd;
- border-radius: 4px;
- box-shadow: 0 4px 12px rgba(0,0,0,0.12);
- overflow: visible;
-}
-/* Initially hidden */
-#hamburger-menu.hidden {
- display: none;
-}
-/* Shown when toggle opens it */
-#hamburger-menu:not(.hidden) {
- display: block;
-}
-#hamburger-menu .masthead__menu-item {
- border-bottom: 1px solid #eee;
- padding: 0;
- margin: 0;
-}
-#hamburger-menu .masthead__menu-item:last-child {
- border-bottom: none;
-}
-#hamburger-menu > li > a {
- display: block;
- padding: 0.7em 1em;
- font-size: 0.9em;
- color: #333;
- text-decoration: none;
-}
-#hamburger-menu > li > a:hover {
- background: #f0f0f0;
-}
-
-/* Submenus inside hamburger: stack vertically, no absolute positioning */
-#hamburger-menu .masthead__submenu {
- position: static !important;
- display: none;
- background: #f0f0f0;
- border: none;
- border-left: 3px solid #ccc;
- box-shadow: none;
- min-width: auto;
-}
-#hamburger-menu .masthead__submenu li a {
- padding: 0.5em 1em 0.5em 1.5em;
- font-size: 0.85em;
- color: #555;
-}
-#hamburger-menu .masthead__submenu li a:hover {
- background: #e8e8e8;
-}
-
-// Responsive navigation: collapse last items on medium screens
-// to give more space for logo, title, and subtitle
-// On large screens (> 1400px): show all 8 items (Overview, Rankings, Systems, Security, AE, RepoStats, Methodology, Contribute + hamburger for conference details)
-// Hamburger toggle: always visible (there are always overflow items)
-.greedy-nav__toggle {
- display: flex !important;
- align-items: center;
- justify-content: center;
- cursor: pointer;
- background: none;
- border: none;
- padding: 4px 8px;
- color: #333;
-}
-
-// Desktop (≥768px): show all items, keep hamburger visible
-@media (min-width: 768px) {
- .greedy-nav .visible-links > li.masthead__menu-item {
- display: inline-block;
- }
- .greedy-nav__toggle {
- display: flex !important;
- }
-}
-
-// Mobile (<768px): hide some items, show hamburger
-@media (max-width: 767px) {
- // Mobile: hide last 5 (keep only Overview + Ranking)
- .greedy-nav .visible-links > li.masthead__menu-item:nth-last-child(-n+5) {
- display: none;
- }
- .greedy-nav__toggle {
- display: flex !important;
- }
-
- /* Compact hamburger menu for very small screens */
- .greedy-nav .hidden-links a {
- padding: 0.6em 0.8em;
- font-size: 0.85em;
- }
- .hidden-links .masthead__submenu li a {
- padding: 0.4em 0.8em 0.4em 1.2em;
- font-size: 0.8em;
- }
-}
-
-// Badge pills (colored labels for artifact badges)
-.badge-tag { display:inline-block; padding:2px 8px; border-radius:3px; font-size:0.8em; margin:1px 2px; color:#fff; }
-.badge-available { background:#3498db; }
-.badge-functional { background:#27ae60; }
-.badge-reproducible, .badge-reproduced, .badge-reusable { background:#8e44ad; }
-
-// Remove footer completely
-#footer,
-.page__footer,
-.page__footer-follow,
-.page__footer-copyright,
-.page__meta {
- display: none !important;
-}
-
-// Hide "Skip to footer" screen reader shortcut
-a[href="#footer"] {
- display: none !important;
-}
-
-// ---------------------------------------------------------------------------
-// Dark mode
-//
-// Supports three modes:
-// 1. OS preference (prefers-color-scheme) — default when no toggle used
-// 2. Manual dark — user clicks toggle → data-theme="dark"
-// 3. Manual light — user clicks toggle → data-theme="light"
-//
-// Minimal Mistakes 4.x doesn't support runtime skin switching, so this is a
-// thin overlay that re-paints background/text/borders. Charts, flag-icons,
-// and external imagery are left untouched.
-// ---------------------------------------------------------------------------
-@mixin dark-theme {
- &, body {
- background-color: #1a1d21 !important;
- color: #d6d9dc !important;
- }
-
- // Force light text for elements that use inline gray text colors
- // (color:#333..#999) in HTML or