diff --git a/styles/globals.css b/styles/globals.css
index 2b03d9f..03a604a 100644
--- a/styles/globals.css
+++ b/styles/globals.css
@@ -188,17 +188,78 @@ body {
}
}
-/* Apply theme colors */
+/* Apply theme colors.
+ The hearth gradient: a soft warm wash that gives glass surfaces a real
+ substrate to blur and distort. Without this the page bg is flat warm-
+ white and the blur is functionally invisible (the chief reason the
+ first 3 redesign PRs landed but the user said "still looks the same").
+ Two layers:
+ - A radial ember glow biased to the bottom-left (the seat of a fire)
+ - A soft vertical gradient from cooler-top to warmer-bottom
+ Fixed attachment so scrolling content slides over the gradient rather
+ than pulling it along — that's what gives glass surfaces their
+ parallax-blur behavior. */
body {
background-color: var(--bg-primary-light);
+ background-image:
+ radial-gradient(
+ ellipse 80% 60% at 15% 100%,
+ rgba(255, 128, 0, 0.08) 0%,
+ rgba(255, 128, 0, 0.02) 40%,
+ transparent 70%
+ ),
+ radial-gradient(
+ ellipse 60% 50% at 85% 0%,
+ rgba(255, 171, 64, 0.06) 0%,
+ transparent 60%
+ ),
+ linear-gradient(
+ 180deg,
+ rgba(254, 252, 248, 1) 0%,
+ rgba(252, 246, 235, 1) 100%
+ );
+ background-attachment: fixed;
color: var(--text-primary-light);
}
[data-theme="dark"] body {
background-color: var(--bg-primary-dark);
+ background-image:
+ radial-gradient(
+ ellipse 80% 60% at 15% 100%,
+ rgba(255, 128, 0, 0.16) 0%,
+ rgba(255, 128, 0, 0.04) 40%,
+ transparent 70%
+ ),
+ radial-gradient(
+ ellipse 60% 50% at 85% 0%,
+ rgba(124, 58, 237, 0.08) 0%,
+ transparent 60%
+ ),
+ linear-gradient(
+ 180deg,
+ rgba(26, 15, 10, 1) 0%,
+ rgba(38, 22, 14, 1) 100%
+ );
+ background-attachment: fixed;
color: var(--text-primary-dark);
}
+/* .page-header-glass — the recurring "page header strip" pattern
+ (full-bleed band at the top of authenticated pages: dashboard, my-
+ cards, cards, collections, community/collections, collection/[id],
+ scanner). Uses a higher-tint surface than .glass-panel because the
+ strip spans the whole content width and needs more visual weight,
+ but inherits the same rim + blur recipe. Pairs with `border-bottom:
+ 1px solid var(--border)` for the separator line below. */
+.page-header-glass {
+ background: var(--glass-surface-high);
+ backdrop-filter: blur(20px) saturate(180%);
+ box-shadow:
+ var(--rim-light-inner),
+ 0 1px 0 var(--border);
+}
+
/* Card Scanner Animations */
@keyframes pulse {
0%, 100% {