diff --git a/src/app/globals.css b/src/app/globals.css index bd676e2..dc12fc4 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -174,6 +174,9 @@ [data-theme='macos'] { --background: #c0c0c0; --foreground: #000000; } [data-theme='zelda'] { --background: #0a1a04; --foreground: #f0c040; } [data-theme='mario'] { --background: #5c94fc; --foreground: #ffffff; } +[data-theme='win95'] { --background: #008080; --foreground: #000000; } +[data-theme='notebook'] { --background: #f8f1d8; --foreground: #1a2540; } +[data-theme='manuscript'] { --background: #f5f1e8; --foreground: #1a1a1a; } body { background-color: var(--background); @@ -524,7 +527,7 @@ body { line-height: 1.4 !important; } -.theme-knuth * { +.theme-knuth *:not([data-theme-dropdown]):not([data-theme-dropdown] *) { font-family: "Times New Roman", Times, serif !important; background-color: transparent !important; color: #000000 !important; @@ -1629,3 +1632,139 @@ body { .theme-mario [class*="border-"] { border-color: #000000 !important; } .theme-mario [class*="shadow"] { box-shadow: inset -4px -4px 0 #000 !important; } .theme-mario [class*="skew"], .theme-mario [class*="rotate"] { transform: none !important; } + +/* ===================================================================== + WIN95 — Windows 95 desktop. Teal background, beveled gray windows, + MS Sans Serif / Tahoma typeface, classic 3D borders. + ===================================================================== */ +.theme-win95 { + font-family: "Tahoma", "MS Sans Serif", "Geneva", sans-serif !important; + background-color: transparent !important; + color: #000 !important; +} +.theme-win95 * { + font-family: "Tahoma", "MS Sans Serif", "Geneva", sans-serif !important; + letter-spacing: 0 !important; + transform: none !important; + clip-path: none !important; + backdrop-filter: none !important; + border-radius: 0 !important; +} +.theme-win95 h1, .theme-win95 h2, .theme-win95 h3 { + font-family: "Tahoma", sans-serif !important; + color: #000 !important; + font-weight: bold !important; + border: none !important; + text-shadow: none !important; + letter-spacing: 0 !important; + margin: 0 0 0.5em !important; +} +.theme-win95 h1 { font-size: 18px !important; } +.theme-win95 h2 { font-size: 14px !important; } +.theme-win95 h3 { font-size: 12px !important; } +.theme-win95 p { color: #000 !important; font-size: 11px !important; line-height: 1.5 !important; margin: 0 0 8px !important; } +.theme-win95 a, .theme-win95 a:link { color: #0000a8 !important; text-decoration: underline !important; } +.theme-win95 a:visited { color: #5c2d91 !important; } +.theme-win95 a:hover { background: #000080 !important; color: #fff !important; } +.theme-win95 ul { padding-left: 24px !important; list-style: square !important; } +/* 3D bevel utility */ +.win95-window { background: #c0c0c0; border: 2px solid; border-color: #ffffff #404040 #404040 #ffffff; box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080; padding: 2px; color: #000; } +.win95-titlebar { background: linear-gradient(to right, #000080, #1084d0); color: #fff; font-weight: bold; padding: 2px 4px; display: flex; justify-content: space-between; align-items: center; font-size: 11px; } +.win95-titlebar-controls { display: flex; gap: 2px; } +.win95-titlebar-controls span { width: 16px; height: 14px; background: #c0c0c0; border: 1px solid; border-color: #ffffff #404040 #404040 #ffffff; color: #000; font-size: 9px; font-weight: bold; display: inline-flex; align-items: center; justify-content: center; line-height: 1; } +.win95-body { padding: 8px; background: #c0c0c0; } +.win95-button { display: inline-block; background: #c0c0c0 !important; color: #000 !important; border: 2px solid !important; border-color: #ffffff #404040 #404040 #ffffff !important; box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080 !important; padding: 4px 12px !important; font-size: 11px !important; font-weight: normal !important; text-decoration: none !important; cursor: pointer; } +.win95-button:active, .win95-button:hover { border-color: #404040 #ffffff #ffffff #404040 !important; box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #dfdfdf !important; } +.win95-fieldset { border: 1px solid #808080; box-shadow: inset 1px 1px 0 #ffffff; padding: 8px; margin: 8px 0; } +.win95-fieldset legend { font-size: 11px; padding: 0 4px; background: #c0c0c0; } +.theme-win95 [class*="bg-"] { background-color: transparent !important; background-image: none !important; } +.theme-win95 [class*="text-"]:not(a) { color: #000 !important; } +.theme-win95 [class*="border-"] { border-color: #808080 !important; } +.theme-win95 [class*="shadow"] { box-shadow: inset 1px 1px 0 #dfdfdf, inset -1px -1px 0 #808080 !important; } +.theme-win95 [class*="skew"], .theme-win95 [class*="rotate"] { transform: none !important; } + +/* ===================================================================== + NOTEBOOK — Lab notebook on lined paper with red margin and + coffee ring stains. Cream paper, navy ink, slightly handwritten feel. + ===================================================================== */ +.theme-notebook { + font-family: "Bradley Hand", "Comic Sans MS", "Segoe Print", "Georgia", serif !important; + background-color: transparent !important; + color: #1a2540 !important; +} +.theme-notebook * { + font-family: "Bradley Hand", "Comic Sans MS", "Segoe Print", "Georgia", serif !important; + transform: none !important; + clip-path: none !important; + backdrop-filter: none !important; + letter-spacing: 0 !important; +} +.theme-notebook h1, .theme-notebook h2, .theme-notebook h3 { + font-weight: bold !important; + color: #0e1a3a !important; + border: none !important; + text-shadow: none !important; + text-align: left !important; +} +.theme-notebook h1 { font-size: 1.8em !important; margin-bottom: 0.4em !important; } +.theme-notebook h2 { font-size: 1.3em !important; margin: 0.8em 0 0.3em !important; text-decoration: underline; text-decoration-color: #c93030; } +.theme-notebook h3 { font-size: 1.1em !important; margin: 0.6em 0 0.2em !important; } +.theme-notebook p { color: #1a2540 !important; line-height: 28px !important; margin: 0 !important; } +.theme-notebook a, .theme-notebook a:link { color: #c93030 !important; text-decoration: underline !important; } +.theme-notebook a:hover { background: #ffe066 !important; } +.theme-notebook ul { list-style: none !important; padding-left: 0 !important; } +.theme-notebook ul li { padding-left: 1.5em; position: relative; line-height: 28px; } +.theme-notebook ul li::before { content: "→"; position: absolute; left: 0; color: #c93030; font-weight: bold; } +.theme-notebook hr { border: 0 !important; border-top: 2px dashed #c93030 !important; margin: 1em 0 !important; } +.notebook-sticky { background: #fff8a8; padding: 12px 16px; box-shadow: 2px 4px 8px rgba(0,0,0,0.15); transform: rotate(-1.5deg); display: inline-block; margin: 8px; } +.notebook-stamp { display: inline-block; border: 3px double #c93030; color: #c93030; padding: 4px 12px; font-weight: bold; text-transform: uppercase; transform: rotate(-4deg); letter-spacing: 0.1em; } +.theme-notebook [class*="bg-"] { background-color: transparent !important; background-image: none !important; } +.theme-notebook [class*="text-"]:not(a) { color: #1a2540 !important; } +.theme-notebook [class*="border-"] { border-color: #1a2540 !important; } +.theme-notebook [class*="shadow"] { box-shadow: 1px 2px 4px rgba(0,0,0,0.1) !important; } +.theme-notebook [class*="skew"], .theme-notebook [class*="rotate"] { transform: none !important; } + +/* ===================================================================== + MANUSCRIPT — Two-column scientific journal (MBE / Bioinformatics + style). Serif body, sans-serif headings, citation badges, + small-caps section labels. + ===================================================================== */ +.theme-manuscript { + font-family: "Times New Roman", Times, Georgia, serif !important; + background-color: transparent !important; + color: #1a1a1a !important; +} +.theme-manuscript * { + font-family: inherit; + transform: none !important; + clip-path: none !important; + backdrop-filter: none !important; +} +.theme-manuscript h1, .theme-manuscript h2, .theme-manuscript h3 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; + color: #1a1a1a !important; + border: none !important; + text-shadow: none !important; + text-align: left !important; + letter-spacing: 0 !important; +} +.theme-manuscript h1 { font-size: 22pt !important; font-weight: bold !important; line-height: 1.2 !important; margin: 0 0 0.3em !important; } +.theme-manuscript h2 { font-size: 11pt !important; font-weight: bold !important; text-transform: uppercase; letter-spacing: 0.05em !important; margin: 1.2em 0 0.4em !important; color: #003366 !important; } +.theme-manuscript h3 { font-size: 10.5pt !important; font-weight: bold !important; font-style: italic; margin: 0.8em 0 0.3em !important; color: #003366 !important; } +.theme-manuscript p { font-size: 10pt !important; line-height: 1.45 !important; text-align: justify !important; margin: 0 0 0.6em !important; color: #1a1a1a !important; } +.theme-manuscript a, .theme-manuscript a:link { color: #003366 !important; text-decoration: none !important; border-bottom: 1px dotted #003366 !important; } +.theme-manuscript a:hover { background: #e8eef5 !important; } +.theme-manuscript ul { list-style: none !important; padding-left: 0 !important; } +.theme-manuscript ul li { font-size: 10pt; line-height: 1.5; padding-left: 1.2em; position: relative; } +.theme-manuscript ul li::before { content: "•"; position: absolute; left: 0; color: #003366; } +.manuscript-abstract { border-top: 1px solid #003366; border-bottom: 1px solid #003366; padding: 8px 0; margin: 12px 0; font-size: 9.5pt !important; line-height: 1.5; } +.manuscript-abstract::before { content: "ABSTRACT"; display: block; font-family: "Helvetica Neue", Arial, sans-serif; font-size: 9pt; font-weight: bold; letter-spacing: 0.1em; color: #003366; margin-bottom: 4px; } +.manuscript-cite { display: inline-block; vertical-align: super; font-size: 7.5pt; color: #003366; text-decoration: none; } +.manuscript-affil { font-size: 8.5pt !important; line-height: 1.3 !important; color: #555 !important; font-style: italic !important; } +.manuscript-doi { font-family: "Courier New", monospace; font-size: 8.5pt; color: #555; letter-spacing: 0.02em; } +.manuscript-section-num { color: #003366; font-weight: bold; margin-right: 0.4em; } +.theme-manuscript [class*="bg-"] { background-color: transparent !important; background-image: none !important; } +.theme-manuscript [class*="text-"]:not(a) { color: #1a1a1a !important; } +.theme-manuscript [class*="border-"] { border-color: #003366 !important; } +.theme-manuscript [class*="shadow"] { box-shadow: none !important; } +.theme-manuscript [class*="skew"], .theme-manuscript [class*="rotate"] { transform: none !important; } diff --git a/src/app/layout.js b/src/app/layout.js index 1e564b5..6715039 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -1,6 +1,7 @@ import { Press_Start_2P, VT323, Share_Tech_Mono, Pixelify_Sans } from "next/font/google"; import "./globals.css"; import { ThemeProvider } from "@/components/ThemeContext"; +import ThemeBackdrop from "@/components/ThemeBackdrop"; const pressStart2P = Press_Start_2P({ variable: "--font-press-start", @@ -35,6 +36,7 @@ export default function RootLayout({ children }) { + {children} diff --git a/src/app/members/page.js b/src/app/members/page.js index 6461f75..743a142 100644 --- a/src/app/members/page.js +++ b/src/app/members/page.js @@ -24,6 +24,9 @@ export default function MembersPage() { case 'macos': return 'text-black'; case 'zelda': return 'text-[#f0c040]'; case 'mario': return 'text-[#fcbc3c]'; + case 'win95': return 'text-[#000080]'; + case 'notebook': return 'text-[#0e1a3a]'; + case 'manuscript': return 'text-[#003366]'; default: return 'text-retro-amber'; } }; diff --git a/src/app/page.js b/src/app/page.js index b4596b5..fc032b5 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -58,12 +58,15 @@ export default function Home() { theme === 'bios' ? 'bg-black' : theme === 'macos' ? 'bg-[#c0c0c0]' : theme === 'zelda' ? '' : - theme === 'mario' ? '' : '' + theme === 'mario' ? '' : + theme === 'win95' ? '' : + theme === 'notebook' ? '' : + theme === 'manuscript' ? '' : '' }`}>
-
+
{theme === 'knuth' ? (

ACME Laboratory

@@ -491,6 +494,185 @@ export default function Home() { Correspondence: acme@temple.edu — SERC, Philadelphia — All dispatches welcome
+ ) : theme === 'win95' ? ( +
+ {/* Main "My Computer" window */} +
+
+ ACME Lab — My Computer +
+ _× +
+
+ {/* Menu strip */} +
+ File + Edit + View + Help +
+
+ {/* Left column */} +
+ About this Lab +

+ The ACME Laboratory develops high-performance computational tools for the + comparative analysis of sequence data. Methods apply universally; pathogens are our + primary case study. +

+
+ {/* Right column — drives */} +
+ Network +
+ + + Projects (C:) + + + + Team (D:) + + + + Papers (E:) + + + + Alumni (F:) + +
+
+
+ {/* Status bar */} +
+ 4 object(s) + 0 bytes free +
+
+ + {/* Tools "shortcut" window */} +
+
+ Installed Software +
_×
+
+
+ {['HyPhy', 'Datamonkey', 'HIV-TRACE'].map(tool => ( + + + {tool}.exe + + ))} +
+
+
+ ) : theme === 'notebook' ? ( +
+ {/* Date / page header */} +
+

14 March — Day 42

+ p. 84 +
+ +

Today: keep grinding on selection-detection methods for viral genomes.

+

The whole ACME Lab is a computational molecular evolution group at Temple University. Methods are universal — but pathogens are where it gets fun.

+ +

Aims

+ + +

Notes

+

Stuck on convergence again. Coffee helped. ←

+

Idea: re-run with relaxed clock + see last week's paper.

+ +

Where things live

+ + +
+
+ Reviewed + — D.C., 14/3 +
+
+ ) : theme === 'manuscript' ? ( +
+ {/* Header strip */} +
+ Mol. Biol. Evol. 41(4):1–24 + doi:10.1093/molbev/acme.2026 +
+ + {/* Article type */} +
+ Methods +
+ + {/* Title */} +

Statistical models and software tools for the comparative analysis of sequence data

+ + {/* Authors */} +

+ ACME Lab Authors1,* +

+

+ 1Institute for Genomics and Evolutionary Medicine, Temple University, Philadelphia, PA, USA
+ *Correspondence: acme@temple.edu +

+ + {/* Abstract */} +
+ We present a suite of statistical models and open-source software for the comparative + analysis of biological sequence data. Methods are universally applicable across all domains + of life, with measurably evolving pathogens as the primary case study. The + HyPhy package, the Datamonkey web server, + and HIV-TRACE together support hypothesis testing on phylogenies, + browser-based selection analysis, and molecular transmission cluster inference. +
+ + {/* Two-column body */} +
+

1Introduction

+

+ The comparative analysis of sequence data underpins much of modern evolutionary biology. + Yet quantitative inference of selection — and of the parameters that govern it — remains + challenging. Here we describe the toolkit developed and maintained by the ACME Laboratory, + spanning method development, web infrastructure, and applied epidemiology. +

+ +

2Software

+

+ HyPhy implements maximum-likelihood and Bayesian methods for hypothesis testing on + phylogenies. Datamonkey wraps the most-used HyPhy methods in an accessible web + interface. HIV-TRACE reconstructs molecular transmission clusters from pairwise + genetic distances. +

+

+ Full documentation, source, and installation notes are available in the + Software section. +

+ +

3Authors

+

+ The list of present and past contributors is maintained at + /members. A complete record of laboratory alumni and their + current affiliations is at /former. +

+ +

4Availability

+

+ All ACME Laboratory tools are open source and freely available. A complete list of + publications, including software citations, is at /papers. +

+
+
) : theme === 'bios' ? (

ACME LABORATORY BIOS v2.07

@@ -808,7 +990,7 @@ export default function Home() { )} - {(theme !== '2020s' && theme !== 'profdr' && theme !== 'geocities' && theme !== 'y2k' && theme !== 'vax' && theme !== 'knuth' && theme !== 'myspace' && theme !== 'typewriter' && theme !== 'bios' && theme !== 'macos' && theme !== 'zelda' && theme !== 'mario') && ( + {(theme !== '2020s' && theme !== 'profdr' && theme !== 'geocities' && theme !== 'y2k' && theme !== 'vax' && theme !== 'knuth' && theme !== 'myspace' && theme !== 'typewriter' && theme !== 'bios' && theme !== 'macos' && theme !== 'zelda' && theme !== 'mario' && theme !== 'win95' && theme !== 'notebook' && theme !== 'manuscript') && ( <>
@@ -987,6 +1169,37 @@ export default function Home() {

ACME LABORATORY — TEMPLE UNIVERSITY — PHILADELPHIA, PA

Correspondence: acme@temple.edu  |  SERC

+ ) : theme === 'win95' ? ( +
+
+
+ + + Start + + ACME.exe +
+ 3:14 PM +
+
+ ) : theme === 'notebook' ? ( +
+
+

ACME Lab — Temple University — SERC, Philadelphia.

+

p. 84 of ∞  ·  sign & date all entries

+
+
+ ) : theme === 'manuscript' ? ( +
+
+

+ © 2026 The Authors. Published by Oxford University Press on behalf of the Society for Molecular Biology and Evolution. +

+

+ ACME Laboratory · Institute for Genomics and Evolutionary Medicine · Temple University · SERC, Philadelphia, PA +

+
+
) : theme === 'bios' ? (

COPYRIGHT (C) 2026 ACME LABORATORY. ALL RIGHTS RESERVED.

diff --git a/src/app/projects/page.js b/src/app/projects/page.js index 996af50..c8cb3af 100644 --- a/src/app/projects/page.js +++ b/src/app/projects/page.js @@ -25,6 +25,9 @@ export default function ProjectsPage() { case 'macos': return 'text-black'; case 'zelda': return 'text-[#f0c040]'; case 'mario': return 'text-[#fcbc3c]'; + case 'win95': return 'text-[#000080]'; + case 'notebook': return 'text-[#0e1a3a]'; + case 'manuscript': return 'text-[#003366]'; default: return 'text-retro-blue'; } }; @@ -50,6 +53,9 @@ export default function ProjectsPage() { theme === 'macos' ? 'mac-window !m-0 overflow-hidden' : theme === 'zelda' ? 'zelda-panel !m-0 !p-0 border-2 border-[#f0c040] overflow-hidden' : theme === 'mario' ? 'mario-panel !m-0 !p-0 border-4 border-black overflow-hidden' : + theme === 'win95' ? '!m-0 !p-0 overflow-hidden' : + theme === 'notebook' ? '!m-0 !p-0 border border-[#aac4e8] overflow-hidden' : + theme === 'manuscript' ? '!m-0 !p-0 border border-[#003366] overflow-hidden' : 'pixel-border border-4 rounded-2xl' }`}> {project.image && theme !== 'vax' && theme !== 'bios' ? ( @@ -119,6 +125,9 @@ export default function ProjectsPage() { theme === 'macos' ? 'bg-white border-black shadow-[2px_2px_0_#808080]' : theme === 'zelda' ? 'bg-[#1a2c0a] border-[#f0c040]' : theme === 'mario' ? 'bg-[#c07028] border-black shadow-[inset_-2px_-2px_0_#8c4a14]' : + theme === 'win95' ? 'bg-[#c0c0c0] border-[#808080]' : + theme === 'notebook' ? 'bg-white/60 border-[#aac4e8]' : + theme === 'manuscript' ? 'bg-transparent border-[#003366]/20' : 'bg-black border-retro-green/30 rounded-xl' }`}> {(theme === 'profdr' || theme === 'enterprise' || theme === 'vax' || theme === 'knuth' || theme === 'bios' || theme === 'macos') &&
+ {title && ( +
+ {title.replace(/_/g, ' ')} + ━□✕ +
+ )} +
{children}
+
+ ); + } + + if (theme === 'notebook') { + return ( +
+ {title && ( +

+ {title.replace(/_/g, ' ')} +

+ )} +
{children}
+
+ ); + } + + if (theme === 'manuscript') { + return ( +
+ {title && ( +

+ {title.replace(/_/g, ' ')} +

+ )} +
{children}
+
+ ); + } + if (theme === 'typewriter') { return (
diff --git a/src/components/EraSelectionSplash.js b/src/components/EraSelectionSplash.js index 09794c1..6cfc381 100644 --- a/src/components/EraSelectionSplash.js +++ b/src/components/EraSelectionSplash.js @@ -51,6 +51,24 @@ export default function EraSelectionSplash() { desc: "It's dangerous to go alone. A golden kingdom, dungeon maps, heart containers, and a sword of legend.", previewClass: 'zelda-preview flex flex-col items-center justify-center' }, + { + id: 'notebook', + label: '1991 Lab Notebook', + desc: 'Cream paper, blue rule, red margin. Pencil entries, taped figures, and the occasional coffee ring of regret.', + previewClass: 'notebook-preview flex flex-col items-stretch justify-start' + }, + { + id: 'manuscript', + label: '1993 MBE Manuscript', + desc: 'Two-column serif. Authors with affiliations. ABSTRACT in small caps. The way papers are supposed to look.', + previewClass: 'manuscript-preview flex flex-col items-stretch justify-start' + }, + { + id: 'win95', + label: '1995 Windows 95', + desc: 'Beveled gray windows on a teal desktop. Tahoma, Start menu, and the cathartic click of a 3D button.', + previewClass: 'win95-preview flex flex-col items-stretch justify-start' + }, { id: 'profdr', label: '1994 Yahoo!', @@ -118,8 +136,8 @@ export default function EraSelectionSplash() { text: "How do you prefer to receive your research updates?", options: [ { text: "Printed on continuous-form paper.", themes: ['vax', '80s', 'bios'] }, - { text: "A simple TeX-rendered preprint.", themes: ['knuth', 'vax', 'typewriter'] }, - { text: "A personalized email from a web directory.", themes: ['profdr', 'geocities', 'y2k'] }, + { text: "A simple TeX-rendered preprint.", themes: ['knuth', 'vax', 'typewriter', 'manuscript'] }, + { text: "A personalized email from a web directory.", themes: ['profdr', 'geocities', 'y2k', 'win95'] }, { text: "An encrypted transmission directly to my HUD.", themes: ['90s', '2000s', '2010s'] }, { text: "An AI-generated summary delivered via a minimalist dashboard.", themes: ['enterprise', '2020s', 'macos'] } ] @@ -127,18 +145,19 @@ export default function EraSelectionSplash() { { text: "The 'correct' amount of visual clutter is...", options: [ - { text: "None. Just text.", themes: ['vax', '80s', '90s', 'knuth', 'bios', 'typewriter'] }, + { text: "None. Just text.", themes: ['vax', '80s', '90s', 'knuth', 'bios', 'typewriter', 'manuscript'] }, { text: "Blinking 'NEW' tags and rotating 3D GIFs.", themes: ['geocities', 'profdr', 'myspace', 'mario', 'zelda'] }, { text: "Holographic panels for a starship pilot feel.", themes: ['2000s', '2010s', 'y2k'] }, - { text: "Clean and slightly corporate.", themes: ['enterprise', '2020s', 'macos'] } + { text: "Clean and slightly corporate.", themes: ['enterprise', '2020s', 'macos', 'win95'] }, + { text: "Hand-drawn diagrams in the margins.", themes: ['notebook', 'typewriter', 'knuth'] } ] }, { text: "Your favorite lab tool is...", options: [ { text: "Punch cards.", themes: ['vax', 'bios'] }, - { text: "A pencil and a yellow legal pad.", themes: ['knuth', 'vax', 'typewriter'] }, - { text: "Netscape Navigator.", themes: ['profdr', 'geocities', '80s', 'macos'] }, + { text: "A pencil and a yellow legal pad.", themes: ['knuth', 'vax', 'typewriter', 'notebook', 'manuscript'] }, + { text: "Netscape Navigator.", themes: ['profdr', 'geocities', '80s', 'macos', 'win95'] }, { text: "A neural-linked sequencer.", themes: ['2000s', '2010s', '90s', 'zelda', 'mario'] }, { text: "An LLM assistant.", themes: ['2020s', 'enterprise', 'y2k'] } ] @@ -352,6 +371,29 @@ export default function EraSelectionSplash() { ONLINE
)} + {era.id === 'win95' && ( +
+
+
ACME.exe_□×
+
Welcome to ACME Lab
+
+
+ )} + {era.id === 'notebook' && ( +
+
Mar 14 — Day 42
+
→ ran HyPhy
+
→ p < 0.01 ✓
+
+ )} + {era.id === 'manuscript' && ( +
+
MOL. BIOL. EVOL.
+
Detecting selection in viral genomes
+
Lab, A.1 et al.
+
Lorem ipsum dolor sit amet consectetur.
+
+ )} {era.id === 'knuth' && (

Knuth

diff --git a/src/components/Navbar.js b/src/components/Navbar.js index b47a1bc..dcf65f4 100644 --- a/src/components/Navbar.js +++ b/src/components/Navbar.js @@ -3,7 +3,7 @@ import Link from 'next/link'; import { useTheme } from './ThemeContext'; import { useState } from 'react'; -function ThemeToggle({ theme, toggleTheme, showDropdown, setShowDropdown }) { +function ThemeToggle({ theme, toggleTheme, resetTheme, showDropdown, setShowDropdown }) { const eras = [ { id: 'typewriter', label: '1920 Broadsheet' }, { id: 'vax', label: '1978 VAX/VMS' }, @@ -12,6 +12,9 @@ function ThemeToggle({ theme, toggleTheme, showDropdown, setShowDropdown }) { { id: '80s', label: '1985 Terminal' }, { id: 'mario', label: '1985 Plumber' }, { id: 'zelda', label: '1986 Adventure' }, + { id: 'notebook', label: '1991 Lab Notebook' }, + { id: 'manuscript', label: '1993 MBE Manuscript' }, + { id: 'win95', label: '1995 Windows 95' }, { id: 'profdr', label: '1994 Yahoo!' }, { id: 'geocities', label: '1996 Geocities' }, { id: '90s', label: '1998 Tactical' }, @@ -25,7 +28,7 @@ function ThemeToggle({ theme, toggleTheme, showDropdown, setShowDropdown }) { ]; return ( -
+
{showDropdown && ( -
{eras.map(era => (
)}
@@ -90,7 +137,7 @@ function ThemeToggle({ theme, toggleTheme, showDropdown, setShowDropdown }) { } export default function Navbar() { - const { theme, toggleTheme } = useTheme(); + const { theme, toggleTheme, resetTheme } = useTheme(); const [showDropdown, setShowDropdown] = useState(false); const navItems = [ @@ -105,7 +152,7 @@ export default function Navbar() {
+ ) : theme === 'win95' ? ( +
+ ACME Laboratory — Temple University + © 2026 +
+ ) : theme === 'notebook' ? ( +
+

ACME Lab Notebook — Temple University

+

* Remember to sign your entries! *

+
+ ) : theme === 'manuscript' ? ( +
+

ACME Laboratory · Institute for Genomics and Evolutionary Medicine · Temple University

+

© 2026 · Received: Jan 2026 · Accepted: Mar 2026 · Published: Apr 2026

+
) : (