@@ -82,71 +82,103 @@ body {
8282 background-image : linear-gradient (180deg , var (--dark-bg-start ) 0% , # 10213a 100% );
8383}
8484
85- body ::before {
85+ body ::before ,
86+ body ::after {
8687 content : "" ;
8788 position : fixed;
8889 inset : -28vmax ;
8990 z-index : -1 ;
9091 pointer-events : none;
91- transform : translate3d (-2vmax , -2.5vmax , 0 ) scale (1 );
9292 transform-origin : center;
9393 background-repeat : no-repeat;
9494 background-size : 100% 100% ;
9595 background-position : center;
9696 will-change : transform, opacity;
9797}
9898
99+ /* Top-left orb (light mode) */
99100: root : not ([data-theme = "dark" ]) body ::before {
100101 background-image :
101102 radial-gradient (ellipse 28vw 16vh at 50% 16% , rgba (44 , 110 , 194 , 1 ) 0% , rgba (44 , 110 , 194 , 0.92 ) 18% , rgba (44 , 110 , 194 , 0.48 ) 48% , rgba (44 , 110 , 194 , 0.156 ) 76% , rgba (44 , 110 , 194 , 0 ) 100% ),
102103 radial-gradient (ellipse 42vw 26vh at 8% 14% , rgba (44 , 110 , 194 , 0.619 ) 0% , rgba (44 , 110 , 194 , 0.448 ) 18% , rgba (44 , 110 , 194 , 0.225 ) 46% , rgba (44 , 110 , 194 , 0.077 ) 74% , rgba (44 , 110 , 194 , 0 ) 100% ),
103- radial-gradient (ellipse 42vw 26vh at 92% 86% , rgba (44 , 110 , 194 , 0.336 ) 0% , rgba (44 , 110 , 194 , 0.246 ) 18% , rgba (44 , 110 , 194 , 0.125 ) 46% , rgba (44 , 110 , 194 , 0.042 ) 74% , rgba (44 , 110 , 194 , 0 ) 100% ),
104104 radial-gradient (ellipse 59vw 30vh at 50% 17% , rgba (44 , 110 , 194 , 1 ) 0% , rgba (44 , 110 , 194 , 1 ) 9% , rgba (44 , 110 , 194 , 0.84 ) 38% , rgba (44 , 110 , 194 , 0.34 ) 69% , rgba (44 , 110 , 194 , 0 ) 100% ),
105- radial-gradient (ellipse 86vw 50vh at 8% 14% , rgba (44 , 110 , 194 , 1 ) 0% , rgba (44 , 110 , 194 , 0.742 ) 10% , rgba (44 , 110 , 194 , 0.389 ) 36% , rgba (44 , 110 , 194 , 0.16 ) 66% , rgba (44 , 110 , 194 , 0 ) 100% ),
106- radial-gradient (ellipse 86vw 50vh at 92% 86% , rgba (44 , 110 , 194 , 0.576 ) 0% , rgba (44 , 110 , 194 , 0.408 ) 10% , rgba (44 , 110 , 194 , 0.215 ) 36% , rgba (44 , 110 , 194 , 0.088 ) 66% , rgba (44 , 110 , 194 , 0 ) 100% );
105+ radial-gradient (ellipse 86vw 50vh at 8% 14% , rgba (44 , 110 , 194 , 1 ) 0% , rgba (44 , 110 , 194 , 0.742 ) 10% , rgba (44 , 110 , 194 , 0.389 ) 36% , rgba (44 , 110 , 194 , 0.16 ) 66% , rgba (44 , 110 , 194 , 0 ) 100% );
107106 opacity : 1 ;
108- animation : ambientSpotlightLight 3 s ease-in-out infinite alternate;
107+ animation : breatheTopLight 4 s ease-in-out infinite alternate;
109108}
110109
110+ /* Bottom-right orb (light mode) — more opaque/blue than before */
111+ : root : not ([data-theme = "dark" ]) body ::after {
112+ background-image :
113+ radial-gradient (ellipse 42vw 26vh at 92% 86% , rgba (44 , 110 , 194 , 0.72 ) 0% , rgba (44 , 110 , 194 , 0.54 ) 18% , rgba (44 , 110 , 194 , 0.28 ) 46% , rgba (44 , 110 , 194 , 0.095 ) 74% , rgba (44 , 110 , 194 , 0 ) 100% ),
114+ radial-gradient (ellipse 86vw 50vh at 92% 86% , rgba (44 , 110 , 194 , 0.88 ) 0% , rgba (44 , 110 , 194 , 0.66 ) 10% , rgba (44 , 110 , 194 , 0.36 ) 36% , rgba (44 , 110 , 194 , 0.14 ) 66% , rgba (44 , 110 , 194 , 0 ) 100% );
115+ opacity : 1 ;
116+ animation : breatheBottomRightLight 5.5s ease-in-out infinite alternate;
117+ }
118+
119+ /* Top-left orb (dark mode) */
111120: root [data-theme = "dark" ] body ::before {
112121 background-image :
113122 radial-gradient (ellipse 29vw 17vh at 50% 16% , rgba (43 , 106 , 188 , 1 ) 0% , rgba (43 , 106 , 188 , 0.88 ) 18% , rgba (43 , 106 , 188 , 0.48 ) 48% , rgba (43 , 106 , 188 , 0.176 ) 76% , rgba (43 , 106 , 188 , 0 ) 100% ),
114123 radial-gradient (ellipse 44vw 28vh at 8% 14% , rgba (51 , 122 , 205 , 1 ) 0% , rgba (51 , 122 , 205 , 0.896 ) 18% , rgba (51 , 122 , 205 , 0.503 ) 46% , rgba (51 , 122 , 205 , 0.175 ) 74% , rgba (51 , 122 , 205 , 0 ) 100% ),
115- radial-gradient (ellipse 44vw 28vh at 92% 86% , rgba (51 , 122 , 205 , 0.6 ) 0% , rgba (51 , 122 , 205 , 0.492 ) 18% , rgba (51 , 122 , 205 , 0.276 ) 46% , rgba (51 , 122 , 205 , 0.096 ) 74% , rgba (51 , 122 , 205 , 0 ) 100% ),
116124 radial-gradient (ellipse 62vw 33vh at 50% 17% , rgba (37 , 88 , 150 , 1 ) 0% , rgba (37 , 88 , 150 , 1 ) 10% , rgba (37 , 88 , 150 , 0.928 ) 40% , rgba (37 , 88 , 150 , 0.408 ) 70% , rgba (37 , 88 , 150 , 0 ) 100% ),
117- radial-gradient (ellipse 90vw 54vh at 8% 14% , rgba (43 , 102 , 168 , 1 ) 0% , rgba (43 , 102 , 168 , 1 ) 11% , rgba (43 , 102 , 168 , 0.917 ) 38% , rgba (43 , 102 , 168 , 0.386 ) 68% , rgba (43 , 102 , 168 , 0 ) 100% ),
125+ radial-gradient (ellipse 90vw 54vh at 8% 14% , rgba (43 , 102 , 168 , 1 ) 0% , rgba (43 , 102 , 168 , 1 ) 11% , rgba (43 , 102 , 168 , 0.917 ) 38% , rgba (43 , 102 , 168 , 0.386 ) 68% , rgba (43 , 102 , 168 , 0 ) 100% );
126+ opacity : 1 ;
127+ animation : breatheTopDark 4s ease-in-out infinite alternate;
128+ }
129+
130+ /* Bottom-right orb (dark mode) — original transparency */
131+ : root [data-theme = "dark" ] body ::after {
132+ background-image :
133+ radial-gradient (ellipse 44vw 28vh at 92% 86% , rgba (51 , 122 , 205 , 0.6 ) 0% , rgba (51 , 122 , 205 , 0.492 ) 18% , rgba (51 , 122 , 205 , 0.276 ) 46% , rgba (51 , 122 , 205 , 0.096 ) 74% , rgba (51 , 122 , 205 , 0 ) 100% ),
118134 radial-gradient (ellipse 90vw 54vh at 92% 86% , rgba (43 , 102 , 168 , 0.6 ) 0% , rgba (43 , 102 , 168 , 0.6 ) 11% , rgba (43 , 102 , 168 , 0.504 ) 38% , rgba (43 , 102 , 168 , 0.212 ) 68% , rgba (43 , 102 , 168 , 0 ) 100% );
119135 opacity : 1 ;
120- animation : ambientSpotlightDark 3 s ease-in-out infinite alternate;
136+ animation : breatheBottomRightDark 5.5 s ease-in-out infinite alternate;
121137}
122138
123- @keyframes ambientSpotlightLight {
139+ /* Top-left orb breathes in (expands) while bottom-right breathes out (contracts) */
140+ @keyframes breatheTopLight {
124141 0% {
125- transform : translate3d (-2.6vmax , -3vmax , 0 ) scale (0.985 );
126- opacity : 0.74 ;
142+ transform : translate3d (-0.6vmax , -0.6vmax , 0 ) scale (0.96 );
143+ opacity : 0.80 ;
144+ }
145+ 100% {
146+ transform : translate3d (0.6vmax , 0.4vmax , 0 ) scale (1.07 );
147+ opacity : 1 ;
127148 }
128- 50% {
129- transform : translate3d (0.9vmax , -1.2vmax , 0 ) scale (1.04 );
130- opacity : 0.93 ;
149+ }
150+
151+ @keyframes breatheTopDark {
152+ 0% {
153+ transform : translate3d (-0.5vmax , -0.5vmax , 0 ) scale (0.962 );
154+ opacity : 0.82 ;
131155 }
132156 100% {
133- transform : translate3d (3.2 vmax , 1.7 vmax , 0 ) scale (1.075 );
157+ transform : translate3d (0.5 vmax , 0.35 vmax , 0 ) scale (1.065 );
134158 opacity : 1 ;
135159 }
136160}
137161
138- @keyframes ambientSpotlightDark {
162+ /* Bottom-right orb starts expanded and contracts — opposite phase to top orb */
163+ @keyframes breatheBottomRightLight {
139164 0% {
140- transform : translate3d (-2.5vmax , -2.9vmax , 0 ) scale (0.988 );
165+ transform : scale (1.09 );
166+ opacity : 1 ;
167+ }
168+ 100% {
169+ transform : scale (0.91 );
141170 opacity : 0.76 ;
142171 }
143- 50% {
144- transform : translate3d (0.8vmax , -1.3vmax , 0 ) scale (1.038 );
145- opacity : 0.94 ;
172+ }
173+
174+ @keyframes breatheBottomRightDark {
175+ 0% {
176+ transform : scale (1.08 );
177+ opacity : 1 ;
146178 }
147179 100% {
148- transform : translate3d ( 3.1 vmax , 1.6 vmax , 0 ) scale (1.07 );
149- opacity : 1 ;
180+ transform : scale (0.92 );
181+ opacity : 0.78 ;
150182 }
151183}
152184
@@ -1443,11 +1475,13 @@ html.theme-transitions * {
14431475 transition-duration : 0.01ms !important ;
14441476 }
14451477
1446- : root : not ([data-theme = "dark" ]) body ::before {
1478+ : root : not ([data-theme = "dark" ]) body ::before ,
1479+ : root : not ([data-theme = "dark" ]) body ::after {
14471480 animation : none !important ;
14481481 }
14491482
1450- : root [data-theme = "dark" ] body ::before {
1483+ : root [data-theme = "dark" ] body ::before ,
1484+ : root [data-theme = "dark" ] body ::after {
14511485 animation : none !important ;
14521486 }
14531487
0 commit comments