release: promote beta to main (gyms, brand colours, JPEG XL, SEO per gym) #3

Merged
andre merged 74 commits from beta into main 2026-10-26 19:47:48 +00:00
Showing only changes of commit 938347779c - Show all commits
+20 -10
View File
@@ -628,20 +628,30 @@ section[id] {
z-index: 2;
}
/* Gradient blur: the hero photo is blurred hardest behind the text (the middle)
and sharpens smoothly outward — a backdrop blur masked by a radial gradient.
The layer sits behind the text (z-index -1 in the container's stacking
context) and above the photo and its overlays. */
.hero-section .container::before {
/* Frosted band: the hero photo is blurred at full strength along a horizontal
line through the text and fades to sharp (0) outward, up and down — a backdrop
blur masked by a vertical gradient. ::before is the blur, ::after the frost:
a faint white veil plus fine grain, same mask. Both sit behind the text
(z-index -1 in the container's stacking context) and above the photo. */
.hero-section .container::before,
.hero-section .container::after {
content: '';
position: absolute; /* the container is static, so this fills the hero */
position: absolute; /* the container is static, so these fill the hero */
inset: 0;
z-index: -1;
pointer-events: none;
-webkit-backdrop-filter: blur(18px);
backdrop-filter: blur(18px);
-webkit-mask-image: radial-gradient(ellipse 52% 46% at 50% 52%, #000 0%, rgba(0, 0, 0, .6) 40%, transparent 100%);
mask-image: radial-gradient(ellipse 52% 46% at 50% 52%, #000 0%, rgba(0, 0, 0, .6) 40%, transparent 100%);
-webkit-mask-image: linear-gradient(to bottom, transparent 18%, rgba(0, 0, 0, .55) 36%, #000 50%, rgba(0, 0, 0, .55) 64%, transparent 82%);
mask-image: linear-gradient(to bottom, transparent 18%, rgba(0, 0, 0, .55) 36%, #000 50%, rgba(0, 0, 0, .55) 64%, transparent 82%);
}
.hero-section .container::before {
-webkit-backdrop-filter: blur(22px) saturate(1.1);
backdrop-filter: blur(22px) saturate(1.1);
}
.hero-section .container::after {
background:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' seed='12' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='1.6' intercept='-.2'/%3E%3CfeFuncG type='linear' slope='1.6' intercept='-.2'/%3E%3CfeFuncB type='linear' slope='1.6' intercept='-.2'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)' opacity='.34'/%3E%3C/svg%3E") 0 0 / 180px 180px,
linear-gradient(rgba(255, 255, 255, .07), rgba(255, 255, 255, .07));
background-blend-mode: overlay, normal;
}
.hero-text {