- credits
-
Everything borrowed, credited.
+ credits
+ Everything borrowed, credited.
The desk is built out of five CC0 textures and three open-licensed typefaces. Nothing is scraped
@@ -51,8 +51,8 @@ export default function Credits() {
- textures
-
ambientCG — CC0 1.0
+ textures
+ ambientCG — CC0 1.0
All five materials come from{" "}
@@ -98,8 +98,8 @@ export default function Credits() {
- type
-
Google Fonts — SIL OFL 1.1
+ type
+ Google Fonts — SIL OFL 1.1
{FONTS.map((f) => (
@@ -122,8 +122,8 @@ export default function Credits() {
- notes
-
Other marks
+ notes
+ Other marks
The social ports use brand marks that remain the property of their owners and are used only to
diff --git a/src/app/web.css b/src/app/web.css
index c186f62..62c5934 100644
--- a/src/app/web.css
+++ b/src/app/web.css
@@ -1,10 +1,13 @@
/* ============================================================
- WEB THEME — “the desk”
+ WEB THEME — “the desk” (modern pass)
------------------------------------------------------------
- A warm-lit workbench. One palette everywhere:
- walnut desk → graphite hardware → cream paper → brass → amber
- Every section is a physical object resting on that desk, not a
- row of UI. Nothing on the page is pure white or pure black.
+ A dark, precisely lit workbench. One palette everywhere:
+ near-black desk → graphite hardware → machined aluminium →
+ clean labels → orange accent.
+ Objects are still physical (skeuomorphism), but the materials
+ are the modern ones: anodised metal, bead-blasted aluminium,
+ matte plastic, thermal labels, black glass. No sepia, no
+ brass, no tractor paper, no pure white, no pure black.
Textures are CC0 (see /credits).
@@ -19,45 +22,45 @@
html[data-theme="web"] {
color-scheme: dark;
- /* desk (walnut, dimmed) */
- --wood: #2a1c11;
- --wood-edge: #120b06;
+ /* near-black desk */
+ --desk: #141518;
+ --desk-edge: #0a0b0c;
- /* graphite hardware */
- --g1: #3d3831; /* lit face */
- --g2: #2a2622; /* mid */
- --g3: #171412; /* shade */
- --rim: rgba(255, 226, 180, 0.14);
- --edge: #0c0a08;
+ /* graphite hardware (cool) */
+ --g1: #34383c; /* lit face */
+ --g2: #212427; /* mid */
+ --g3: #101214; /* shade */
+ --rim: rgba(255, 255, 255, 0.1);
+ --edge: #0b0c0d;
- /* screen glass */
- --s1: #17130f;
- --s2: #0c0a08;
+ /* machined aluminium */
+ --alu-ink: #26292c;
- /* cream paper */
- --paper: #e8ddc2;
- --paper-2: #ded1b1;
- --ink: #3a332a;
- --ink-soft: #6d6350;
+ /* black glass */
+ --s1: #121417;
+ --s2: #08090b;
- /* brass */
- --brass-1: #d3ab6a;
- --brass-2: #a87f3d;
- --brass-3: #75541f;
- --brass-ink: #3b2a0b;
+ /* clean paper / labels */
+ --paper: #eceae4;
+ --paper-2: #dcdad3;
+ --ink: #2b2e30;
+ --ink-soft: #62666a;
+
+ /* one accent */
+ --orange: #ff7a18;
+ --orange-ink: #b34e08;
/* signals */
- --amber: #e69a3f;
- --on: #a4b25f;
- --off: #6d4a3a;
+ --on: #7fd3a0;
+ --off: #5a4a44;
/* text on dark */
- --ftext: #e6dcc4;
- --ftext-dim: #b1a48a;
- --ftext-faint: #8b7e68;
+ --ftext: #e9eae8;
+ --ftext-dim: #a9adaa;
+ --ftext-faint: #7c807e;
- /* one shadow language: light from above */
- --drop: 0 2px 2px rgba(0, 0, 0, 0.45), 0 26px 38px -22px rgba(0, 0, 0, 0.85);
+ /* light from above: tight contact + soft ambient */
+ --drop: 0 1px 1px rgba(0, 0, 0, 0.55), 0 18px 30px -18px rgba(0, 0, 0, 0.85);
}
/* ------------------------------------------------------------- the desk */
@@ -69,13 +72,13 @@ html[data-theme="web"] body {
line-height: 1.6;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
- background-color: var(--wood);
+ background-color: var(--desk);
background-image:
- radial-gradient(120% 68% at 50% -12%, rgba(255, 214, 158, 0.1) 0%, transparent 58%),
- radial-gradient(150% 130% at 50% 40%, transparent 34%, rgba(0, 0, 0, 0.62) 100%),
- linear-gradient(rgba(30, 19, 10, 0.55), rgba(13, 8, 4, 0.76)),
+ radial-gradient(120% 70% at 50% -10%, rgba(255, 255, 255, 0.055) 0%, transparent 58%),
+ radial-gradient(150% 130% at 50% 42%, transparent 34%, rgba(0, 0, 0, 0.68) 100%),
+ linear-gradient(rgba(21, 22, 25, 0.72), rgba(10, 11, 13, 0.86)),
url("/textures/desk.jpg");
- background-size: auto, auto, auto, 540px;
+ background-size: auto, auto, auto, 520px;
background-position: top center, center, center, center;
background-repeat: no-repeat, no-repeat, no-repeat, repeat;
background-attachment: fixed;
@@ -91,9 +94,9 @@ html[data-theme="web"] body {
/* graphite faceplate / chassis */
.w-mt-metal {
background:
- linear-gradient(180deg, rgba(255, 235, 200, 0.07), rgba(0, 0, 0, 0.12) 46%, rgba(0, 0, 0, 0.34)),
- linear-gradient(rgba(62, 56, 49, 0.82), rgba(30, 27, 23, 0.88)),
- url("/textures/metal.jpg") center / 360px;
+ linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(0, 0, 0, 0.12) 46%, rgba(0, 0, 0, 0.34)),
+ linear-gradient(rgba(46, 50, 54, 0.86), rgba(22, 25, 27, 0.92)),
+ url("/textures/metal.jpg") center / 340px;
border: 1px solid var(--edge);
box-shadow:
inset 0 1px 0 var(--rim),
@@ -101,65 +104,68 @@ html[data-theme="web"] body {
var(--drop);
}
-/* same metal, no cast shadow (things mounted on other things) */
+/* same metal, mounted flush on another surface */
.w-mt-metal-flush {
background:
- linear-gradient(180deg, rgba(255, 235, 200, 0.06), rgba(0, 0, 0, 0.3)),
- linear-gradient(rgba(58, 52, 46, 0.84), rgba(28, 25, 22, 0.9)),
- url("/textures/metal.jpg") center / 320px;
+ linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(0, 0, 0, 0.32)),
+ linear-gradient(rgba(42, 46, 50, 0.88), rgba(20, 23, 25, 0.94)),
+ url("/textures/metal.jpg") center / 300px;
border: 1px solid var(--edge);
box-shadow:
- inset 0 1px 0 rgba(255, 226, 180, 0.1),
+ inset 0 1px 0 rgba(255, 255, 255, 0.09),
inset 0 -1px 0 rgba(0, 0, 0, 0.5);
}
.w-mt-plastic {
- background: linear-gradient(180deg, #322d28, #1a1714);
+ background: linear-gradient(180deg, #26292c, #141619);
border: 1px solid var(--edge);
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.08),
+ inset 0 1px 0 rgba(255, 255, 255, 0.08),
var(--drop);
}
-.w-mt-brass {
+/* bead-blasted / brushed aluminium: plaques, tabs, plates */
+.w-mt-alu {
background:
- linear-gradient(180deg, rgba(255, 240, 205, 0.42), rgba(255, 255, 255, 0) 36%, rgba(60, 38, 8, 0.42)),
- linear-gradient(150deg, var(--brass-1), var(--brass-2) 46%, var(--brass-1) 64%, var(--brass-3));
- border: 1px solid #593c12;
- color: var(--brass-ink);
+ linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0) 42%, rgba(0, 0, 0, 0.14)),
+ linear-gradient(100deg, #c9ccd0, #e4e7ea 22%, #bfc3c8 46%, #d9dcdf 68%, #b2b6bb),
+ url("/textures/metal.jpg") center / 280px;
+ border: 1px solid #71767c;
+ color: var(--alu-ink);
box-shadow:
- inset 0 1px 0 rgba(255, 244, 214, 0.55),
- inset 0 -1px 0 rgba(70, 44, 10, 0.6),
- 0 2px 2px rgba(0, 0, 0, 0.4),
- 0 14px 20px -14px rgba(0, 0, 0, 0.8);
- text-shadow: 0 1px 0 rgba(255, 240, 200, 0.35);
+ inset 0 1px 0 rgba(255, 255, 255, 0.75),
+ inset 0 -1px 0 rgba(0, 0, 0, 0.28),
+ 0 1px 1px rgba(0, 0, 0, 0.45),
+ 0 16px 26px -20px rgba(0, 0, 0, 0.85);
}
+/* clean paper */
.w-mt-paper {
background:
- linear-gradient(rgba(255, 250, 236, 0.34), rgba(232, 220, 190, 0.46)),
+ linear-gradient(rgba(255, 255, 255, 0.34), rgba(226, 224, 217, 0.42)),
url("/textures/paper.jpg") center / 330px,
var(--paper);
color: var(--ink);
- border: 1px solid rgba(84, 67, 42, 0.22);
+ border: 1px solid rgba(60, 64, 68, 0.16);
box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.55),
- 0 1px 1px rgba(0, 0, 0, 0.3),
- 0 20px 26px -20px rgba(0, 0, 0, 0.85);
+ inset 0 1px 0 rgba(255, 255, 255, 0.7),
+ 0 1px 1px rgba(0, 0, 0, 0.35),
+ 0 18px 26px -20px rgba(0, 0, 0, 0.9);
}
-/* dark glass panel */
+/* black glass */
.w-mt-glass {
position: relative;
background:
- radial-gradient(130% 100% at 26% -14%, rgba(255, 214, 158, 0.11), transparent 56%),
- linear-gradient(158deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0) 34%),
+ radial-gradient(120% 90% at 28% -14%, rgba(255, 255, 255, 0.06), transparent 55%),
+ radial-gradient(90% 70% at 80% 108%, rgba(255, 122, 24, 0.06), transparent 60%),
+ linear-gradient(158deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0) 34%),
linear-gradient(var(--s1), var(--s2));
- border: 1px solid #070605;
+ border: 1px solid #050607;
box-shadow:
- inset 0 0 0 1px rgba(255, 235, 200, 0.05),
+ inset 0 0 0 1px rgba(255, 255, 255, 0.045),
inset 0 22px 44px rgba(0, 0, 0, 0.72),
- 0 1px 0 rgba(255, 226, 180, 0.07);
+ 0 1px 0 rgba(255, 255, 255, 0.06);
overflow: hidden;
}
@@ -171,20 +177,21 @@ html[data-theme="web"] body {
height: 11px;
border-radius: 50%;
flex: none;
- background: radial-gradient(circle at 34% 28%, #8a8172, #2c2823 70%);
+ background: radial-gradient(circle at 34% 28%, #9aa0a6, #33383c 70%);
box-shadow:
- inset 0 0 0 1px rgba(0, 0, 0, 0.65),
+ inset 0 0 0 1px rgba(0, 0, 0, 0.6),
0 1px 1px rgba(0, 0, 0, 0.5);
}
-.w-screw--brass {
- background: radial-gradient(circle at 34% 28%, #f0cf8e, #7a571d 70%);
+.w-screw--alu {
+ background: radial-gradient(circle at 34% 28%, #f2f4f6, #8a9096 72%);
}
.w-screw::after {
content: "";
position: absolute;
inset: 3px;
- background: linear-gradient(90deg, transparent 36%, #0e0c0a 36%, #0e0c0a 64%, transparent 64%);
- transform: rotate(38deg);
+ background: #0d0f11;
+ border-radius: 1px;
+ clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}
/* Screws are `position: relative` so the slot can be drawn, which means a
@@ -195,89 +202,97 @@ html[data-theme="web"] body {
.w-corner-br { position: absolute; bottom: 12px; right: 12px; }
.w-vents {
- background-image: radial-gradient(circle, rgba(0, 0, 0, 0.88) 1.1px, transparent 1.35px);
+ background-image: radial-gradient(circle, rgba(0, 0, 0, 0.9) 1.1px, transparent 1.35px);
background-size: 8px 8px;
}
.w-grille {
background-image: repeating-linear-gradient(
180deg,
- #12100d 0 2px,
- #4a443b 2px 3px,
- #221f1b 3px 5px,
- #12100d 5px 7px
+ #0d0f10 0 2px,
+ #4d5358 2px 3px,
+ #1b1e20 3px 5px,
+ #0d0f10 5px 7px
);
}
.w-led {
- width: 8px;
- height: 8px;
+ width: 7px;
+ height: 7px;
border-radius: 50%;
flex: none;
background: currentColor;
box-shadow:
- 0 0 7px currentColor,
- inset 0 0 2px rgba(255, 255, 255, 0.55);
+ 0 0 6px currentColor,
+ inset 0 0 2px rgba(255, 255, 255, 0.6);
}
.w-led--on { color: var(--on); }
-.w-led--amber { color: var(--amber); }
+.w-led--amber { color: var(--orange); }
.w-led--off { color: var(--off); box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.8); }
.w-led--pulse { animation: w-pulse 1.8s ease-in-out infinite; }
.w-led--pulse-slow { animation: w-pulse 3.2s ease-in-out infinite; }
@keyframes w-pulse {
0%, 100% { opacity: 1; }
- 50% { opacity: 0.3; }
+ 50% { opacity: 0.32; }
}
-/* printed label tape stuck onto hardware */
+/* A printed label stuck onto hardware: crisp, matte, thin border. */
.w-tape {
display: inline-block;
max-width: 100%;
padding: 0.16rem 0.5rem;
- color: #4b4133;
+ color: #3a3e42;
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.66rem;
letter-spacing: 0.02em;
- background:
- linear-gradient(rgba(255, 252, 240, 0.5), rgba(238, 226, 198, 0.42)),
- url("/textures/paper.jpg") center / 220px,
- #e6dabc;
- transform: rotate(-0.5deg);
- border-left: 1px dashed rgba(90, 74, 50, 0.3);
- border-right: 1px dashed rgba(90, 74, 50, 0.3);
+ background: linear-gradient(#f2f1ed, #e2e1db);
+ border: 1px solid rgba(40, 44, 48, 0.22);
+ border-radius: 3px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}
-/* rack rails: a column of square-ish holes */
+/* rack rails: a column of square holes */
.w-rails {
border-radius: 3px;
background-image:
- radial-gradient(circle at 50% 50%, #070605 0 2.6px, rgba(0, 0, 0, 0) 3.1px),
- linear-gradient(90deg, #2e2a25, #15130f 62%, #0c0b09);
+ radial-gradient(circle at 50% 50%, #060708 0 2.6px, rgba(0, 0, 0, 0) 3.1px),
+ linear-gradient(90deg, #2c3034, #14171a 62%, #0a0c0e);
background-size: 100% 22px, auto;
background-repeat: repeat, no-repeat;
background-position: 50% 8px, center;
box-shadow:
inset 0 0 0 1px rgba(0, 0, 0, 0.6),
- inset 1px 0 0 rgba(255, 226, 180, 0.06);
+ inset 1px 0 0 rgba(255, 255, 255, 0.05);
}
-/* engraved lettering in metal */
+/* laser-etched lettering in metal */
.w-engrave {
font-family: var(--font-plexmono), ui-monospace, monospace;
- color: #cdc1a6;
+ color: #c3c7ca;
text-shadow:
0 1px 0 rgba(0, 0, 0, 0.9),
0 -1px 0 rgba(255, 255, 255, 0.07);
}
+/* etched into aluminium: dark, hairline-deep */
+.w-engrave-dark {
+ font-family: var(--font-plexmono), ui-monospace, monospace;
+ color: #2b2f33;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.45);
+}
/* ------------------------------------------------------ text & typography */
+.w-display {
+ font-family: var(--font-plex), ui-sans-serif, system-ui, sans-serif;
+ font-weight: 600;
+ letter-spacing: -0.024em;
+ line-height: 1.04;
+}
.w-serif {
font-family: var(--font-news), Georgia, serif;
font-weight: 500;
letter-spacing: -0.012em;
- line-height: 1.08;
+ line-height: 1.1;
}
.w-mono {
font-family: var(--font-plexmono), ui-monospace, monospace;
@@ -294,32 +309,32 @@ html[data-theme="web"] body {
line-height: 1.68;
}
.w-link {
- color: var(--amber);
+ color: var(--orange);
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-thickness: 1px;
- text-decoration-color: rgba(230, 154, 63, 0.45);
+ text-decoration-color: rgba(255, 122, 24, 0.4);
}
-.w-link:hover { text-decoration-color: var(--amber); }
+.w-link:hover { text-decoration-color: var(--orange); }
.w-mt-paper .w-link,
.w-sheet .w-link,
-.w-sticky .w-link {
- color: #9a5410;
- text-decoration-color: rgba(154, 84, 16, 0.4);
+.w-note .w-link {
+ color: var(--orange-ink);
+ text-decoration-color: rgba(179, 78, 8, 0.4);
}
-.w-mt-paper .w-link:hover { text-decoration-color: #9a5410; }
-.w-mt-brass .w-link {
- color: #5c3d0e;
- text-decoration-color: rgba(92, 61, 14, 0.45);
+.w-mt-paper .w-link:hover { text-decoration-color: var(--orange-ink); }
+.w-mt-alu .w-link {
+ color: #a34a08;
+ text-decoration-color: rgba(163, 74, 8, 0.45);
}
-.w-mt-brass .w-link:hover { text-decoration-color: #5c3d0e; }
+.w-mt-alu .w-link:hover { text-decoration-color: #a34a08; }
-/* painted/printed on a dark surface */
+/* printed on a dark surface */
.w-paint {
color: var(--ftext);
text-shadow:
- 0 1px 0 rgba(0, 0, 0, 0.75),
- 0 0 22px rgba(0, 0, 0, 0.5);
+ 0 1px 0 rgba(0, 0, 0, 0.85),
+ 0 0 26px rgba(0, 0, 0, 0.6);
}
/* terminal text on a screen */
@@ -332,13 +347,13 @@ html[data-theme="web"] body {
z-index: 1;
}
.w-tft b { color: var(--ftext); font-weight: 400; }
-.w-tft .a { color: var(--amber); }
+.w-tft .a { color: var(--orange); }
.w-caret {
display: inline-block;
width: 0.55em;
height: 1.02em;
vertical-align: -0.16em;
- background: var(--amber);
+ background: var(--orange);
animation: w-blink 1.1s step-end infinite;
}
@keyframes w-blink {
@@ -349,14 +364,34 @@ html[data-theme="web"] body {
display: inline-block;
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.84rem;
- color: var(--amber);
- border-bottom: 1px solid rgba(230, 154, 63, 0.35);
+ color: var(--orange);
+ border-bottom: 1px solid rgba(255, 122, 24, 0.32);
padding-bottom: 2px;
transition: text-shadow 160ms ease-out, border-color 160ms ease-out;
}
.w-cmd:hover {
- text-shadow: 0 0 12px rgba(230, 154, 63, 0.55);
- border-bottom-color: var(--amber);
+ text-shadow: 0 0 12px rgba(255, 122, 24, 0.55);
+ border-bottom-color: var(--orange);
+}
+
+/* a barcode strip printed on labels */
+.w-barcode {
+ display: block;
+ height: 12px;
+ border-radius: 1px;
+ background:
+ repeating-linear-gradient(
+ 90deg,
+ #2b2e30 0 1px,
+ transparent 1px 2px,
+ #2b2e30 2px 3px,
+ transparent 3px 5px,
+ #2b2e30 5px 6px,
+ transparent 6px 9px,
+ #2b2e30 9px 12px,
+ transparent 12px 13px
+ );
+ opacity: 0.85;
}
/* ------------------------------------------------------------ chunky keys */
@@ -367,25 +402,25 @@ html[data-theme="web"] body {
gap: 0.5rem;
padding: 0.5rem 0.85rem;
border-radius: 7px;
- background: linear-gradient(180deg, #3f3a33, #221f1b);
- border: 1px solid #0d0b09;
+ background: linear-gradient(180deg, #363a3e, #1b1e21);
+ border: 1px solid #0a0b0c;
color: var(--ftext);
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.72rem;
letter-spacing: 0.04em;
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.14),
- 0 2px 0 #0b0a08,
- 0 10px 16px -8px rgba(0, 0, 0, 0.75);
+ inset 0 1px 0 rgba(255, 255, 255, 0.14),
+ 0 2px 0 #0a0b0c,
+ 0 10px 16px -8px rgba(0, 0, 0, 0.8);
transition: filter 140ms ease-out, transform 80ms ease-out, box-shadow 80ms ease-out;
}
.w-keybtn:hover { filter: brightness(1.12); }
.w-keybtn:active {
transform: translateY(2px);
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.08),
- 0 0 0 #0b0a08,
- 0 5px 10px -6px rgba(0, 0, 0, 0.75);
+ inset 0 1px 0 rgba(255, 255, 255, 0.08),
+ 0 0 0 #0a0b0c,
+ 0 5px 10px -6px rgba(0, 0, 0, 0.8);
}
/* rocker power switch */
@@ -395,7 +430,7 @@ html[data-theme="web"] body {
height: 30px;
border-radius: 7px;
flex: none;
- background: linear-gradient(180deg, #0d0b09, #1c1916);
+ background: linear-gradient(180deg, #0a0b0c, #1a1d20);
border: 1px solid #000;
box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.85);
}
@@ -406,10 +441,10 @@ html[data-theme="web"] body {
width: 25px;
height: 22px;
border-radius: 5px;
- background: linear-gradient(180deg, #5c554b, #2b2823);
+ background: linear-gradient(180deg, #54595e, #26292c);
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.24),
- 0 2px 4px rgba(0, 0, 0, 0.6);
+ inset 0 1px 0 rgba(255, 255, 255, 0.24),
+ 0 2px 4px rgba(0, 0, 0, 0.65);
transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
}
.w-rocker__knob::after {
@@ -417,7 +452,7 @@ html[data-theme="web"] body {
position: absolute;
inset: 6px 5px;
border-radius: 2px;
- background: repeating-linear-gradient(180deg, rgba(255, 235, 200, 0.16) 0 1px, transparent 1px 4px);
+ background: repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0 1px, transparent 1px 4px);
}
.w-rocker__led {
position: absolute;
@@ -432,18 +467,18 @@ html[data-theme="web"] body {
.w-monitor__frame {
position: relative;
- padding: 11px 11px 30px;
- border-radius: 13px;
- background: linear-gradient(180deg, #2f2a25, #14110e);
- border: 1px solid #080706;
+ padding: 10px 10px 28px;
+ border-radius: 14px;
+ background: linear-gradient(180deg, #26292c, #101214);
+ border: 1px solid #060708;
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.1),
+ inset 0 1px 0 rgba(255, 255, 255, 0.1),
inset 0 -2px 0 rgba(0, 0, 0, 0.6),
var(--drop);
}
.w-monitor__glass {
- border-radius: 6px;
+ border-radius: 7px;
padding: clamp(1.4rem, 3.4vw, 2.6rem);
min-height: clamp(320px, 42vw, 420px);
display: flex;
@@ -457,23 +492,23 @@ html[data-theme="web"] body {
position: absolute;
inset: 0;
pointer-events: none;
- background: linear-gradient(114deg, rgba(255, 240, 210, 0.055) 0 18%, rgba(255, 240, 210, 0) 42%);
+ background: linear-gradient(114deg, rgba(255, 255, 255, 0.05) 0 16%, rgba(255, 255, 255, 0) 40%);
}
.w-monitor__chin {
position: absolute;
left: 16px;
right: 16px;
- bottom: 9px;
+ bottom: 8px;
display: flex;
align-items: center;
gap: 8px;
}
.w-monitor__brand {
font-family: var(--font-plexmono), ui-monospace, monospace;
- font-size: 0.6rem;
- letter-spacing: 0.32em;
- color: #7d7364;
+ font-size: 0.58rem;
+ letter-spacing: 0.34em;
+ color: #6f757a;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);
}
.w-monitor__osd {
@@ -483,12 +518,12 @@ html[data-theme="web"] body {
}
.w-osdkey {
width: 22px;
- height: 12px;
+ height: 11px;
border-radius: 3px;
- background: linear-gradient(180deg, #413b34, #262220);
+ background: linear-gradient(180deg, #3a3e42, #212427);
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.14),
- 0 1px 0 #0b0a08;
+ inset 0 1px 0 rgba(255, 255, 255, 0.14),
+ 0 1px 0 #090a0b;
}
.w-monitor__stand {
@@ -498,42 +533,50 @@ html[data-theme="web"] body {
align-items: center;
}
.w-monitor__neck {
- width: 76px;
- height: 54px;
+ width: 72px;
+ height: 52px;
margin-top: -2px;
- background: linear-gradient(90deg, #201d19, #3b352e 38%, #17140f);
- clip-path: polygon(22% 0, 78% 0, 100% 100%, 0 100%);
- box-shadow: 0 8px 14px -8px rgba(0, 0, 0, 0.8);
+ background: linear-gradient(90deg, #1b1e21, #383d41 38%, #131518);
+ clip-path: polygon(24% 0, 76% 0, 100% 100%, 0 100%);
+ box-shadow: 0 8px 14px -8px rgba(0, 0, 0, 0.85);
}
.w-monitor__base {
- width: min(260px, 62%);
- height: 15px;
+ width: min(250px, 60%);
+ height: 14px;
border-radius: 50% / 60%;
- background: linear-gradient(180deg, #3d3730, #16130f);
+ background: linear-gradient(180deg, #3a3f43, #121417);
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.14),
- 0 16px 22px -10px rgba(0, 0, 0, 0.85);
+ inset 0 1px 0 rgba(255, 255, 255, 0.14),
+ 0 16px 22px -10px rgba(0, 0, 0, 0.9);
}
-/* keyboard: real keycaps, seen slightly from above */
+/* keyboard: low-profile keycaps, seen slightly from above */
.w-keyboard {
transform: perspective(760px) rotateX(17deg);
transform-origin: 50% 0;
- filter: drop-shadow(0 22px 20px rgba(0, 0, 0, 0.55));
+ filter: drop-shadow(0 22px 20px rgba(0, 0, 0, 0.6));
}
.w-keyboard__deck {
- padding: 12px;
+ padding: 12px 12px 14px;
border-radius: 10px;
background:
- linear-gradient(180deg, rgba(255, 235, 200, 0.04), rgba(0, 0, 0, 0.34)),
- linear-gradient(rgba(34, 31, 28, 0.62), rgba(16, 14, 12, 0.72)),
+ linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.36)),
+ linear-gradient(rgba(32, 35, 38, 0.66), rgba(14, 16, 18, 0.76)),
url("/textures/carbon.jpg") center / 150px,
- #171412;
- border: 1px solid #0a0907;
+ #131518;
+ border: 1px solid #08090b;
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.1),
+ inset 0 1px 0 rgba(255, 255, 255, 0.1),
inset 0 -3px 0 rgba(0, 0, 0, 0.5);
}
+/* the light bar mechanical keyboards have under the spacebar row */
+.w-keyboard__bar {
+ height: 3px;
+ margin: 10px 6px 0;
+ border-radius: 2px;
+ background: linear-gradient(90deg, rgba(255, 122, 24, 0) 0%, rgba(255, 122, 24, 0.85) 50%, rgba(255, 122, 24, 0) 100%);
+ box-shadow: 0 0 10px rgba(255, 122, 24, 0.5);
+}
.w-keyboard__row {
display: flex;
gap: 6px;
@@ -543,22 +586,31 @@ html[data-theme="web"] body {
.w-key {
flex: 1 1 0;
min-width: 0;
- height: 34px;
- border-radius: 6px;
+ height: 33px;
+ border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
font-family: var(--font-plexmono), ui-monospace, monospace;
- font-size: 0.58rem;
- color: #8f8676;
- background: linear-gradient(180deg, #423c35 0%, #2b2723 62%, #211e1a 100%);
+ font-size: 0.56rem;
+ color: #8b9196;
+ background: linear-gradient(180deg, #33383c 0%, #24282b 60%, #1b1e21 100%);
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.16),
+ inset 0 1px 0 rgba(255, 255, 255, 0.14),
inset 0 -1px 0 rgba(0, 0, 0, 0.6),
- 0 2px 0 #100e0c,
- 0 3px 4px rgba(0, 0, 0, 0.45);
+ 0 2px 0 #0c0e10,
+ 0 3px 4px rgba(0, 0, 0, 0.5);
}
.w-key--space { flex: 4.4 1 0; }
+.w-key--accent {
+ color: #ffd9b8;
+ background: linear-gradient(180deg, #b8560f 0%, #8e3f08 60%, #6f3106 100%);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.22),
+ inset 0 -1px 0 rgba(0, 0, 0, 0.5),
+ 0 2px 0 #3d1a03,
+ 0 3px 4px rgba(0, 0, 0, 0.5);
+}
/* ---------------------------------------------------------------- THE RACK */
@@ -574,9 +626,9 @@ html[data-theme="web"] body {
width: clamp(60px, 18%, 150px);
height: 20px;
border-radius: 4px;
- border: 1px solid #0a0908;
- background-color: #14110e;
- box-shadow: inset 0 0 0 1px rgba(255, 235, 200, 0.04);
+ border: 1px solid #090a0b;
+ background-color: #101214;
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}
.w-rack__grid {
display: grid;
@@ -585,30 +637,30 @@ html[data-theme="web"] body {
align-items: stretch;
}
-/* one rack unit */
+/* one rack unit: 1U of anodised faceplate */
.w-unit {
position: relative;
display: flex;
align-items: center;
gap: 14px;
- min-height: 66px;
+ min-height: 64px;
padding: 10px 16px;
- border-radius: 7px;
+ border-radius: 6px;
background:
- linear-gradient(180deg, rgba(255, 235, 200, 0.05), rgba(0, 0, 0, 0.16) 52%, rgba(0, 0, 0, 0.32)),
- linear-gradient(rgba(64, 57, 48, 0.86), rgba(30, 27, 23, 0.9)),
- url("/textures/metal.jpg") center / 340px;
+ linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.14) 52%, rgba(0, 0, 0, 0.34)),
+ linear-gradient(rgba(33, 37, 41, 0.9), rgba(14, 16, 18, 0.95)),
+ url("/textures/metal.jpg") center / 320px;
border: 1px solid var(--edge);
box-shadow:
- inset 0 1px 0 rgba(255, 226, 180, 0.11),
+ inset 0 1px 0 rgba(255, 255, 255, 0.08),
inset 0 -1px 0 rgba(0, 0, 0, 0.5),
- 0 3px 5px -2px rgba(0, 0, 0, 0.6);
+ 0 3px 5px -2px rgba(0, 0, 0, 0.65);
transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1), filter 180ms ease-out;
}
.w-unit + .w-unit { margin-top: 7px; }
.w-unit--link:hover {
transform: translateX(4px);
- filter: brightness(1.1);
+ filter: brightness(1.12);
}
/* the small vertical grip on the left of a rack unit */
.w-unit__grip {
@@ -617,16 +669,16 @@ html[data-theme="web"] body {
border-radius: 3px;
flex: none;
background:
- repeating-linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0 2px, rgba(255, 235, 200, 0.07) 2px 3px),
- linear-gradient(90deg, #2b2723, #45403a 55%, #191613);
+ repeating-linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0 2px, rgba(255, 255, 255, 0.06) 2px 3px),
+ linear-gradient(90deg, #22262a, #40454a 55%, #141719);
}
.w-unit__grille {
width: 54px;
height: 38px;
border-radius: 4px;
flex: none;
- border: 1px solid #0a0908;
- box-shadow: inset 0 0 0 1px rgba(255, 235, 200, 0.045);
+ border: 1px solid #0a0b0c;
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.045);
}
.w-unit__id {
min-width: 0;
@@ -663,32 +715,34 @@ html[data-theme="web"] body {
.w-unit__state { margin-right: 16px; }
}
-/* ----------------------------------------------------------- brass plaques */
+/* ------------------------------------------------------- aluminium plaques */
.w-plaque {
- padding: 0.85rem 1rem;
- border-radius: 6px;
+ position: relative;
+ padding: 0.8rem 1rem;
+ border-radius: 5px;
display: flex;
align-items: baseline;
gap: 0.7rem;
}
.w-plaque__value {
- font-family: var(--font-news), Georgia, serif;
- font-size: 1.9rem;
+ font-family: var(--font-plex), ui-sans-serif, system-ui, sans-serif;
+ font-size: 1.85rem;
line-height: 1;
font-weight: 600;
+ letter-spacing: -0.03em;
}
.w-plaque__label {
font-family: var(--font-plexmono), ui-monospace, monospace;
- font-size: 0.62rem;
- letter-spacing: 0.1em;
+ font-size: 0.6rem;
+ letter-spacing: 0.12em;
text-transform: uppercase;
- opacity: 0.75;
+ opacity: 0.7;
}
-.w-plaque__screw {
+.w-plaque__dot {
position: absolute;
- top: 5px;
- right: 5px;
+ top: 7px;
+ right: 8px;
}
/* --------------------------------------------------------- section headers */
@@ -710,10 +764,10 @@ html[data-theme="web"] body {
font-size: 0.64rem;
letter-spacing: 0.18em;
text-transform: uppercase;
- transform: rotate(-1.2deg);
}
+.w-sechead__tab b { color: var(--orange-ink); font-weight: 400; }
.w-sechead__title {
- font-size: clamp(1.45rem, 3.4vw, 2.05rem);
+ font-size: clamp(1.4rem, 3.2vw, 1.95rem);
}
/* ------------------------------------------------------------------ paper */
@@ -727,7 +781,7 @@ html[data-theme="web"] body {
align-items: center;
gap: 0.75rem;
padding-bottom: 0.7rem;
- border-bottom: 1px solid rgba(90, 74, 50, 0.28);
+ border-bottom: 1px solid rgba(60, 64, 68, 0.22);
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.64rem;
letter-spacing: 0.14em;
@@ -736,7 +790,7 @@ html[data-theme="web"] body {
}
.w-rule {
- border-bottom: 1px solid rgba(90, 74, 50, 0.22);
+ border-bottom: 1px solid rgba(60, 64, 68, 0.2);
}
/* small card, slightly off-square like a real card index */
@@ -747,66 +801,66 @@ html[data-theme="web"] body {
}
.w-cardindex--alt { transform: rotate(0.8deg); }
-/* sticky note */
-.w-sticky {
+/* matte memo note */
+.w-note {
position: relative;
- padding: 1.15rem 1.2rem 1.35rem;
- border-radius: 2px;
+ padding: 1.15rem 1.2rem 1.3rem;
+ border-radius: 3px;
background:
- linear-gradient(rgba(255, 248, 214, 0.44), rgba(226, 208, 150, 0.4)),
+ linear-gradient(rgba(255, 255, 255, 0.5), rgba(226, 223, 214, 0.4)),
url("/textures/paper.jpg") center / 300px,
- #e9d99e;
- color: #4a4232;
- border: 1px solid rgba(110, 92, 44, 0.25);
- border-bottom-color: rgba(110, 92, 44, 0.4);
+ #e7e5dd;
+ color: #34383b;
+ border: 1px solid rgba(60, 64, 68, 0.2);
box-shadow:
- inset 0 1px 0 rgba(255, 255, 255, 0.5),
- 0 2px 3px rgba(0, 0, 0, 0.35),
- 0 18px 22px -16px rgba(0, 0, 0, 0.85);
- transform: rotate(1.1deg);
+ inset 0 1px 0 rgba(255, 255, 255, 0.6),
+ 0 1px 1px rgba(0, 0, 0, 0.35),
+ 0 16px 22px -16px rgba(0, 0, 0, 0.9);
+ transform: rotate(0.9deg);
}
/* the lifted corner */
-.w-sticky::after {
+.w-note::after {
content: "";
position: absolute;
right: 0;
bottom: 0;
- width: 34px;
- height: 34px;
- background: linear-gradient(135deg, rgba(0, 0, 0, 0) 46%, rgba(0, 0, 0, 0.22) 50%, rgba(255, 250, 225, 0.65) 54%);
- border-bottom-right-radius: 2px;
+ width: 32px;
+ height: 32px;
+ background: linear-gradient(135deg, rgba(0, 0, 0, 0) 46%, rgba(0, 0, 0, 0.2) 50%, rgba(255, 255, 255, 0.6) 54%);
+ border-bottom-right-radius: 3px;
}
-/* a resting pencil */
-.w-pencil {
- height: 11px;
- border-radius: 3px;
+/* a matte black pen resting on the desk */
+.w-pen {
+ position: relative;
+ height: 9px;
+ border-radius: 4px;
background:
- linear-gradient(180deg, rgba(255, 235, 200, 0.28), rgba(0, 0, 0, 0.28)),
- linear-gradient(90deg, #6d5a35 0 76%, #d8c9a4 76% 82%, #3a332a 82% 88%, #d8c9a4 88% 92%, #b8562e 92% 100%),
- #8a7442;
- box-shadow: 0 2px 3px rgba(0, 0, 0, 0.5);
- transform: rotate(-2.4deg);
+ linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(0, 0, 0, 0.4) 60%),
+ linear-gradient(90deg, #1f2225 0 78%, #c8ccd0 78% 84%, #6f757a 84% 88%, #c8ccd0 88% 92%, #1b1e21 92% 100%),
+ #202326;
+ box-shadow: 0 2px 3px rgba(0, 0, 0, 0.55);
+ transform: rotate(-2.2deg);
}
/* --------------------------------------------------------- drawer of drives */
.w-drawer {
- border-radius: 12px;
+ border-radius: 14px;
padding: 12px;
}
.w-drawer__inner {
border-radius: 8px;
padding: 14px;
- border: 1px solid #0a0907;
+ border: 1px solid #08090b;
background:
- linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.18) 18%, rgba(0, 0, 0, 0.25)),
- linear-gradient(rgba(38, 34, 30, 0.9), rgba(22, 20, 17, 0.94)),
+ linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.18) 18%, rgba(0, 0, 0, 0.26)),
+ linear-gradient(rgba(30, 33, 36, 0.9), rgba(16, 18, 20, 0.95)),
url("/textures/plastic.jpg") center / 260px;
box-shadow:
inset 0 14px 20px -12px rgba(0, 0, 0, 0.9),
inset 0 -20px 26px -20px rgba(0, 0, 0, 0.95),
- inset 0 -2px 0 rgba(255, 235, 200, 0.04);
+ inset 0 -2px 0 rgba(255, 255, 255, 0.03);
max-height: 540px;
overflow-y: auto;
scrollbar-gutter: stable;
@@ -823,17 +877,17 @@ html[data-theme="web"] body {
flex: none;
width: 46%;
max-width: 300px;
- height: 16px;
+ height: 15px;
margin: 0 auto;
border-radius: 8px;
- background: linear-gradient(180deg, #464038, #221f1b);
- border: 1px solid #0a0907;
+ background: linear-gradient(180deg, #3f4448, #1b1e21);
+ border: 1px solid #090a0b;
box-shadow:
- inset 0 1px 0 rgba(255, 235, 200, 0.16),
- 0 3px 5px -2px rgba(0, 0, 0, 0.7);
+ inset 0 1px 0 rgba(255, 255, 255, 0.16),
+ 0 3px 5px -2px rgba(0, 0, 0, 0.75);
}
-/* 2.5" drive with a printed sticker */
+/* 2.5" drive with a clean printed label */
.w-drive {
position: relative;
display: block;
@@ -842,18 +896,18 @@ html[data-theme="web"] body {
padding: 12px 14px 12px 12px;
border-radius: 5px;
background:
- linear-gradient(180deg, rgba(255, 235, 200, 0.06), rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.34)),
- linear-gradient(rgba(52, 47, 41, 0.8), rgba(24, 22, 19, 0.88)),
+ linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.34)),
+ linear-gradient(rgba(40, 44, 48, 0.86), rgba(18, 21, 23, 0.92)),
url("/textures/metal.jpg") center / 300px;
border: 1px solid var(--edge);
box-shadow:
- inset 0 1px 0 rgba(255, 226, 180, 0.1),
- 0 6px 10px -6px rgba(0, 0, 0, 0.85);
+ inset 0 1px 0 rgba(255, 255, 255, 0.09),
+ 0 6px 10px -6px rgba(0, 0, 0, 0.9);
transition: transform 170ms cubic-bezier(0.22, 1, 0.36, 1), filter 170ms ease-out;
}
.w-drive:hover {
transform: translateY(-3px) rotate(0deg);
- filter: brightness(1.12);
+ filter: brightness(1.14);
}
/* sata connector notch on the left edge */
.w-drive__port {
@@ -864,19 +918,16 @@ html[data-theme="web"] body {
width: 5px;
height: 26px;
border-radius: 2px;
- background: linear-gradient(180deg, #c9a95f 0 42%, #1b1916 42% 100%);
+ background: linear-gradient(180deg, #d0a95c 0 42%, #17191b 42% 100%);
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.7);
}
.w-drive__sticker {
display: block;
- border-radius: 2px;
- padding: 0.55rem 0.65rem;
- color: #3d3529;
- background:
- linear-gradient(rgba(255, 252, 240, 0.45), rgba(236, 224, 196, 0.35)),
- url("/textures/paper.jpg") center / 240px,
- #e6dabc;
- border: 1px solid rgba(90, 74, 50, 0.28);
+ border-radius: 3px;
+ padding: 0.55rem 0.65rem 0.5rem;
+ color: #33373a;
+ background: linear-gradient(#f3f2ee, #e4e3dd);
+ border: 1px solid rgba(40, 44, 48, 0.22);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
transform: rotate(-0.4deg);
}
@@ -887,7 +938,7 @@ html[data-theme="web"] body {
white-space: nowrap;
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.76rem;
- color: #332c22;
+ color: #2b2f32;
}
.w-drive__meta {
display: block;
@@ -898,7 +949,15 @@ html[data-theme="web"] body {
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.6rem;
letter-spacing: 0.04em;
- color: #6f6450;
+ color: #6b7075;
+}
+.w-drive__bar {
+ margin-top: 6px;
+ width: 58%;
+ height: 8px;
+ opacity: 0.45;
+ mask-image: linear-gradient(90deg, #000 0 62%, transparent 100%);
+ -webkit-mask-image: linear-gradient(90deg, #000 0 62%, transparent 100%);
}
.w-drive__led {
position: absolute;
@@ -906,63 +965,74 @@ html[data-theme="web"] body {
top: 9px;
}
-/* ----------------------------------------------------- pegboard & hang tags */
+/* ----------------------------------------------------- pegboard & labels */
.w-pegboard {
- border-radius: 12px;
+ border-radius: 14px;
padding: clamp(0.9rem, 2.2vw, 1.4rem);
}
.w-pegboard__face {
border-radius: 8px;
padding: clamp(0.9rem, 2.4vw, 1.5rem);
- background-color: #16130f;
- background-image: radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.9) 1.6px, rgba(0, 0, 0, 0) 2.1px);
+ background-color: #101214;
+ background-image: radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.92) 1.7px, rgba(0, 0, 0, 0) 2.2px);
background-size: 26px 26px;
- border: 1px solid #0a0908;
- box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.8);
+ border: 1px solid #090a0b;
+ box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.85);
}
+/* asset label held by a slim clip */
.w-hangtag {
position: relative;
- border-radius: 2px;
- padding: 1rem 1rem 1rem 2.5rem;
+ display: flex;
+ flex-direction: column;
+ border-radius: 3px;
+ padding: 1.35rem 1rem 1rem;
transform: rotate(-0.6deg);
transition: transform 170ms cubic-bezier(0.22, 1, 0.36, 1);
}
.w-hangtag:nth-child(3n + 2) { transform: rotate(0.9deg); }
.w-hangtag:nth-child(3n + 3) { transform: rotate(-0.2deg); }
.w-hangtag:hover { transform: rotate(0deg) translateY(-3px); }
-/* punched hole + brass eyelet */
-.w-hangtag__hole {
+.w-hangtag__clip {
position: absolute;
- left: 13px;
- top: 15px;
- width: 15px;
- height: 15px;
- border-radius: 50%;
- background: radial-gradient(circle at 50% 50%, #241d14 0 4px, #b8893f 4px 6px, #6d4f1c 6px 100%);
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
+ top: 7px;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 42px;
+ height: 8px;
+ border-radius: 3px;
+ background: linear-gradient(180deg, #d3d7db, #8f959a);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.7),
+ 0 1px 2px rgba(0, 0, 0, 0.5);
+}
+.w-hangtag__bar {
+ margin-top: auto;
+ width: 58%;
+ height: 9px;
+ opacity: 0.5;
+ mask-image: linear-gradient(90deg, #000 0 74%, transparent 100%);
+ -webkit-mask-image: linear-gradient(90deg, #000 0 74%, transparent 100%);
}
-/* ------------------------------------------------------- dot-matrix report */
+/* ------------------------------------------------- label-printer report */
.w-printout { position: relative; }
.w-printout__paper {
position: relative;
- padding: 1.1rem clamp(2.1rem, 5vw, 2.6rem);
- border-radius: 2px;
- transform: rotate(-0.35deg);
+ border-radius: 6px;
+ padding: clamp(1.2rem, 3vw, 1.7rem) clamp(1.2rem, 3.4vw, 2rem);
+ transform: rotate(-0.3deg);
}
-.w-printout__perf {
+.w-printout__paper::after {
+ /* the sheen of a thermal label */
+ content: "";
position: absolute;
- top: 0;
- bottom: 0;
- width: clamp(1.5rem, 3.6vw, 2rem);
- background-image: radial-gradient(circle, rgba(58, 51, 42, 0.55) 2.4px, rgba(0, 0, 0, 0) 2.9px);
- background-size: 100% 17px;
- background-position: 0 8px;
+ inset: 0;
+ border-radius: inherit;
+ pointer-events: none;
+ background: linear-gradient(112deg, rgba(255, 255, 255, 0.5) 0 12%, rgba(255, 255, 255, 0) 34%);
}
-.w-printout__perf--l { left: 0; border-right: 1px dashed rgba(90, 74, 50, 0.35); }
-.w-printout__perf--r { right: 0; border-left: 1px dashed rgba(90, 74, 50, 0.35); }
.w-print__head {
display: flex;
@@ -973,8 +1043,8 @@ html[data-theme="web"] body {
font-size: 0.68rem;
letter-spacing: 0.16em;
text-transform: uppercase;
- color: #4a4133;
- border-bottom: 2px solid rgba(58, 51, 42, 0.55);
+ color: #3d4145;
+ border-bottom: 1px solid rgba(40, 44, 48, 0.5);
padding-bottom: 0.55rem;
}
.w-dotgrid {
@@ -988,16 +1058,16 @@ html[data-theme="web"] body {
width: 9px;
height: 9px;
border-radius: 1px;
- background: #3a332a;
+ background: #2b2e30;
}
.w-print__log {
margin-top: 0.9rem;
padding-top: 0.7rem;
- border-top: 1px dashed rgba(90, 74, 50, 0.4);
+ border-top: 1px dashed rgba(40, 44, 48, 0.3);
font-family: var(--font-plexmono), ui-monospace, monospace;
font-size: 0.68rem;
line-height: 1.75;
- color: #4f4636;
+ color: #4a4e52;
}
/* --------------------------------------------------------- business cards */
@@ -1007,7 +1077,7 @@ html[data-theme="web"] body {
display: block;
transform: rotate(var(--tilt, 0deg));
border-radius: 4px;
- padding: 1.15rem 1.25rem;
+ padding: 1.2rem 1.3rem;
transition: transform 170ms cubic-bezier(0.22, 1, 0.36, 1);
}
.w-bizcard::after {
@@ -1015,25 +1085,25 @@ html[data-theme="web"] body {
content: "";
position: absolute;
inset: 5px;
- border: 1px solid rgba(90, 74, 50, 0.22);
+ border: 1px solid rgba(60, 64, 68, 0.2);
border-radius: 2px;
pointer-events: none;
}
.w-bizcard:hover { transform: rotate(0deg) translateY(-4px); }
-/* ---------------------------------------------------- clipboard training log */
+/* --------------------------------------------------------- gym clipboard */
.w-clipboard {
position: relative;
- border-radius: 8px;
- padding: 16px 16px 26px;
+ border-radius: 10px;
+ padding: 16px 16px 24px;
background:
- linear-gradient(rgba(60, 40, 22, 0.35), rgba(30, 20, 10, 0.5)),
- url("/textures/desk.jpg") center / 320px,
- #4a3320;
- border: 1px solid #120b06;
+ linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.34)),
+ linear-gradient(rgba(32, 35, 38, 0.94), rgba(14, 16, 18, 0.96)),
+ url("/textures/plastic.jpg") center / 300px;
+ border: 1px solid #090a0b;
box-shadow:
- inset 0 1px 0 rgba(255, 226, 180, 0.08),
+ inset 0 1px 0 rgba(255, 255, 255, 0.08),
var(--drop);
}
.w-clipboard__clip {
@@ -1041,8 +1111,8 @@ html[data-theme="web"] body {
left: 50%;
top: -12px;
transform: translateX(-50%);
- width: 132px;
- height: 40px;
+ width: 130px;
+ height: 38px;
border-radius: 8px;
display: flex;
align-items: center;
@@ -1053,12 +1123,12 @@ html[data-theme="web"] body {
width: 54px;
height: 9px;
border-radius: 5px;
- background: linear-gradient(180deg, #14120f, #2b2723);
+ background: linear-gradient(180deg, #0f1113, #26292c);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.9);
}
.w-logsheet {
border-radius: 3px;
- padding: 2.2rem clamp(1.1rem, 3vw, 2rem) clamp(1.2rem, 3vw, 1.8rem);
+ padding: 2.1rem clamp(1.1rem, 3vw, 2rem) clamp(1.2rem, 3vw, 1.8rem);
}
.w-logrow {
display: grid;
@@ -1066,7 +1136,7 @@ html[data-theme="web"] body {
align-items: baseline;
gap: 0.8rem;
padding: 0.85rem 0;
- border-bottom: 1px solid rgba(90, 74, 50, 0.22);
+ border-bottom: 1px solid rgba(60, 64, 68, 0.2);
}
.w-logrow:last-of-type { border-bottom: 0; }
.w-logrow__lift {
@@ -1077,9 +1147,10 @@ html[data-theme="web"] body {
color: var(--ink-soft);
}
.w-logrow__weight {
- font-family: var(--font-news), Georgia, serif;
- font-size: 1.55rem;
+ font-family: var(--font-plex), ui-sans-serif, system-ui, sans-serif;
+ font-size: 1.5rem;
font-weight: 600;
+ letter-spacing: -0.02em;
color: var(--ink);
white-space: nowrap;
}
@@ -1092,7 +1163,7 @@ html[data-theme="web"] body {
/* -------------------------------------------------------------- patch panel */
-.w-patch { border-radius: 12px; padding: 14px; }
+.w-patch { border-radius: 14px; padding: 14px; }
.w-patch__face {
border-radius: 8px;
padding: clamp(0.9rem, 2.4vw, 1.35rem);
@@ -1104,7 +1175,7 @@ html[data-theme="web"] body {
padding-bottom: 0.9rem;
margin-bottom: 1rem;
border-bottom: 1px solid rgba(0, 0, 0, 0.5);
- box-shadow: 0 1px 0 rgba(255, 226, 180, 0.05);
+ box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}
.w-port {
display: flex;
@@ -1112,13 +1183,13 @@ html[data-theme="web"] body {
gap: 0.7rem;
padding: 0.6rem 0.7rem;
border-radius: 5px;
- background: linear-gradient(180deg, rgba(255, 235, 200, 0.05), rgba(0, 0, 0, 0.22));
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.24));
border: 1px solid rgba(0, 0, 0, 0.55);
- box-shadow: inset 0 1px 0 rgba(255, 226, 180, 0.07);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
transition: filter 140ms ease-out, transform 140ms ease-out;
}
.w-port:hover {
- filter: brightness(1.16);
+ filter: brightness(1.18);
transform: translateY(-1px);
}
.w-port__jack {
@@ -1127,9 +1198,9 @@ html[data-theme="web"] body {
height: 22px;
border-radius: 3px;
flex: none;
- background: linear-gradient(180deg, #353029, #1a1714);
+ background: linear-gradient(180deg, #303438, #16191b);
box-shadow:
- inset 0 1px 0 rgba(255, 226, 180, 0.12),
+ inset 0 1px 0 rgba(255, 255, 255, 0.12),
inset 0 -2px 3px rgba(0, 0, 0, 0.6);
}
.w-port__slot {
@@ -1140,7 +1211,7 @@ html[data-theme="web"] body {
width: 15px;
height: 11px;
border-radius: 1px;
- background: #070605;
+ background: #060708;
box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.9);
}
.w-port__slot::after {
@@ -1150,7 +1221,7 @@ html[data-theme="web"] body {
right: 4px;
bottom: 2px;
height: 3px;
- background: #4d463c;
+ background: #4a4f54;
border-radius: 1px;
}
.w-port__label {
@@ -1162,7 +1233,7 @@ html[data-theme="web"] body {
font-size: 0.7rem;
color: var(--ftext-dim);
}
-.w-port__icon { color: #8b7e68; flex: none; }
+.w-port__icon { color: #7c807e; flex: none; }
/* ---------------------------------------------------------------- the rail */
@@ -1172,8 +1243,8 @@ html[data-theme="web"] body {
left: 0;
right: 0;
z-index: 60;
- border-bottom: 1px solid rgba(0, 0, 0, 0.65);
- box-shadow: 0 14px 26px -14px rgba(0, 0, 0, 0.9);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.7);
+ box-shadow: 0 14px 26px -14px rgba(0, 0, 0, 0.95);
}
.w-wordmark {
font-family: var(--font-plexmono), ui-monospace, monospace;
@@ -1188,21 +1259,21 @@ html[data-theme="web"] body {
color: var(--ftext-faint);
transition: color 140ms ease-out;
}
-.w-navlink:hover { color: var(--amber); }
+.w-navlink:hover { color: var(--orange); }
/* --------------------------------------------------------- scrolling areas */
-.w-scroll { scrollbar-width: thin; scrollbar-color: #57503f #14110e; }
+.w-scroll { scrollbar-width: thin; scrollbar-color: #45494e #101214; }
.w-scroll::-webkit-scrollbar { width: 12px; height: 12px; }
.w-scroll::-webkit-scrollbar-track {
- background: #14110e;
+ background: #101214;
border-radius: 8px;
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.6);
}
.w-scroll::-webkit-scrollbar-thumb {
border-radius: 8px;
- background: linear-gradient(180deg, #57503f, #332e27);
- border: 1px solid #0b0a08;
+ background: linear-gradient(180deg, #45494e, #2a2e32);
+ border: 1px solid #090a0b;
}
/* ------------------------------------------------------------------ socials */