diff --git a/README.md b/README.md
index 51d1b73..8c10587 100644
--- a/README.md
+++ b/README.md
@@ -84,6 +84,16 @@ $config['skin'] = 'eternity-classic';
Both variants use their own Eternity Project logo and browser icon. They are intended for Roundcube 1.6 installations where the matching legacy base skin is available.
+### Eternity Larry Wasteland
+
+`eternity-larry-wasteland` is the dark Larry variant using the Wasteland palette from `docker-ep-blog-web-server/themes`: charcoal surfaces, parchment text, olive selected states, rust-orange accents, and the technical-grid background.
+
+It requires the Larry base skin, installed as described above, then activates with:
+
+```php
+$config['skin'] = 'eternity-larry-wasteland';
+```
+
## Docker Install
### Docker Compose (persistent)
@@ -194,6 +204,13 @@ eternity-larry/
images/ Eternity Project logo and browser icon
meta.json Larry child-skin registration
styles.css Larry import and Eternity legacy UI overrides
+eternity-larry-wasteland/
+ images/ Wasteland logo, browser icon, and preview watermark
+ includes/links.html Larry shared asset links and browser icon
+ mail.css Larry mail stylesheet import
+ meta.json Larry Wasteland child-skin registration
+ styles.css Wasteland palette and Larry UI overrides
+ watermark.html Dark Wasteland preview background
eternity-classic/
images/ Eternity Project logo and browser icon
common.css Classic common UI import and Eternity overrides
diff --git a/eternity-larry-wasteland/images/favicon.svg b/eternity-larry-wasteland/images/favicon.svg
new file mode 100644
index 0000000..693a8ac
--- /dev/null
+++ b/eternity-larry-wasteland/images/favicon.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/eternity-larry-wasteland/images/logo.svg b/eternity-larry-wasteland/images/logo.svg
new file mode 100644
index 0000000..aee99d9
--- /dev/null
+++ b/eternity-larry-wasteland/images/logo.svg
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/eternity-larry-wasteland/images/watermark.svg b/eternity-larry-wasteland/images/watermark.svg
new file mode 100644
index 0000000..e0798c0
--- /dev/null
+++ b/eternity-larry-wasteland/images/watermark.svg
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/eternity-larry-wasteland/includes/links.html b/eternity-larry-wasteland/includes/links.html
new file mode 100644
index 0000000..5fc056e
--- /dev/null
+++ b/eternity-larry-wasteland/includes/links.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+.css" />
+
+
+
+
+
\ No newline at end of file
diff --git a/eternity-larry-wasteland/mail.css b/eternity-larry-wasteland/mail.css
new file mode 100644
index 0000000..a250812
--- /dev/null
+++ b/eternity-larry-wasteland/mail.css
@@ -0,0 +1,45 @@
+@import "../larry/mail.css";
+
+#mailboxcontainer,
+#folderlist-content,
+#folderlist-footer,
+#messagelistcontainer,
+#messagelistheader,
+#messagelistfooter,
+#mailview-left,
+#mailview-right {
+ background: var(--field);
+ border-color: var(--line);
+ color: var(--ink);
+}
+
+#messagelistheader,
+#messagelistfooter {
+ background: var(--field) !important;
+ border-color: var(--line) !important;
+}
+
+#messagelistheader a,
+#messagelistfooter a,
+#folderlist-footer a {
+ color: var(--ink);
+}
+
+#messagelistheader a:hover,
+#messagelistfooter a:hover,
+#folderlist-footer a:hover {
+ background: var(--acid);
+ color: var(--paper);
+}
+
+#mailboxmenulink.listbutton.groupactions {
+ background: var(--field);
+ border-color: var(--line);
+ color: var(--ink);
+}
+
+#mailboxmenulink.listbutton.groupactions:hover {
+ background: var(--acid);
+ border-color: var(--acid);
+ color: var(--paper);
+}
\ No newline at end of file
diff --git a/eternity-larry-wasteland/meta.json b/eternity-larry-wasteland/meta.json
new file mode 100644
index 0000000..9f20a5e
--- /dev/null
+++ b/eternity-larry-wasteland/meta.json
@@ -0,0 +1,13 @@
+{
+ "name": "Eternity Larry Wasteland",
+ "author": "Eternity Project",
+ "license": "GNU Affero General Public License",
+ "version": "1.0.0",
+ "extends": "larry",
+ "localization": false,
+ "config": {
+ "product_name": "eternityproject.fi",
+ "skin_logo": "skins/eternity-larry-wasteland/images/logo.svg",
+ "skin_favicon": "skins/eternity-larry-wasteland/images/favicon.svg"
+ }
+}
\ No newline at end of file
diff --git a/eternity-larry-wasteland/styles.css b/eternity-larry-wasteland/styles.css
new file mode 100644
index 0000000..54c8f20
--- /dev/null
+++ b/eternity-larry-wasteland/styles.css
@@ -0,0 +1,160 @@
+@import "../larry/styles.css";
+
+:root {
+ --ink: #e7e2d3;
+ --paper: #161210;
+ --acid: #8fae3d;
+ --orange: #e4632c;
+ --line: #4a3f33;
+ --muted: #a89a86;
+ --field: #211b17;
+}
+
+html,
+body,
+#mainscreen,
+#layout,
+#main-menu,
+#taskbar,
+#mailboxlist,
+#messagelist,
+#messageframe {
+ background: var(--paper);
+ color: var(--ink);
+}
+
+body {
+ font-family: "Space Grotesk", "Helvetica Neue", sans-serif;
+ background-image: linear-gradient(90deg, transparent 49.5%, rgb(228 98 44 / 7%) 50%, transparent 50.5%), linear-gradient(rgb(228 98 44 / 5%) 1px, transparent 1px);
+ background-size: 70px 70px, 7px 7px;
+}
+
+body::after {
+ content: "";
+ position: fixed;
+ inset: 0;
+ z-index: -1;
+ pointer-events: none;
+ background-image: radial-gradient(circle at 12% 20%, rgb(143 174 61 / 12%), transparent 35%), radial-gradient(circle at 85% 75%, rgb(228 98 44 / 14%), transparent 40%);
+}
+
+a,
+#taskbar a,
+#mailboxlist li a,
+#messagelist tr td {
+ color: var(--ink);
+}
+
+a:hover,
+#taskbar a:hover,
+#mailboxlist li a:hover {
+ color: var(--orange);
+}
+
+#taskbar,
+#mailboxlist,
+#messagelist,
+#messagelist-header,
+#mailboxlist-header,
+.box,
+.boxcontent,
+.popupmenu,
+.menu,
+.toolbar {
+ border-color: var(--line);
+ box-shadow: none;
+}
+
+#taskbar a.selected,
+#taskbar a:hover,
+#mailboxlist li.selected > a,
+#mailboxlist li a:hover,
+#messagelist tr:hover td {
+ background: var(--acid);
+ color: var(--paper);
+}
+
+#messagelist tr.selected td {
+ background: var(--ink);
+ color: var(--paper);
+}
+
+input[type="text"],
+input[type="password"],
+textarea,
+select {
+ border: 1px solid var(--line);
+ border-radius: 0;
+ box-shadow: none;
+ background: var(--field);
+ color: var(--ink);
+}
+
+input:focus,
+textarea:focus,
+select:focus {
+ outline: 3px solid var(--acid);
+ outline-offset: 1px;
+}
+
+input[type="submit"],
+input[type="button"],
+button,
+.button,
+.toolbar .button {
+ border: 1px solid var(--ink);
+ border-radius: 0;
+ box-shadow: none;
+ background: var(--ink);
+ color: var(--paper);
+ font-family: "DM Mono", "Courier New", monospace;
+}
+
+input[type="submit"]:hover,
+input[type="button"]:hover,
+button:hover,
+.button:hover,
+.toolbar .button:hover {
+ background: var(--acid);
+ color: var(--paper);
+}
+
+#login-form,
+#login-form .box-inner,
+#login-form .boxcontent {
+ border-color: var(--line);
+ border-radius: 0;
+ box-shadow: none;
+ background: var(--paper);
+}
+
+#login-form #logo {
+ max-width: 260px;
+ height: auto;
+}
+
+#toplogo {
+ display: block;
+ width: 180px;
+ max-width: calc(100% - 40px);
+ height: auto;
+ max-height: 36px;
+ margin: 8px 12px;
+}
+
+#topnav {
+ background: var(--paper);
+ border-bottom: 1px solid var(--line);
+}
+
+#taskbar a.button-selected,
+#taskbar a.button-selected:hover {
+ background: var(--acid);
+ border-color: var(--acid);
+ color: var(--paper);
+}
+
+#taskbar a.button-selected::before,
+#taskbar a.button-selected:hover::before {
+ color: var(--paper);
+}
\ No newline at end of file
diff --git a/eternity-larry-wasteland/watermark.html b/eternity-larry-wasteland/watermark.html
new file mode 100644
index 0000000..f2fa99f
--- /dev/null
+++ b/eternity-larry-wasteland/watermark.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/eternity-larry/styles.css b/eternity-larry/styles.css
index d79faa0..f2d3e95 100644
--- a/eternity-larry/styles.css
+++ b/eternity-larry/styles.css
@@ -131,4 +131,21 @@ button:hover,
height: auto;
max-height: 36px;
margin: 8px 12px;
+}
+
+#topnav {
+ background: var(--paper);
+ border-bottom: 1px solid var(--ink);
+}
+
+#taskbar a.button-selected,
+#taskbar a.button-selected:hover {
+ background: var(--acid);
+ border-color: var(--acid);
+ color: var(--ink);
+}
+
+#taskbar a.button-selected::before,
+#taskbar a.button-selected:hover::before {
+ color: var(--ink);
}
\ No newline at end of file