@@ -142,140 +142,29 @@ html.anaglyph-active * {
142142 transition : text-shadow 0.4s ease, box-shadow 0.4s ease, filter 0.4s ease;
143143}
144144
145- /* ── Text: red/cyan text-shadow on everything ────────────── */
145+ /* ── Text: static red/cyan parallax, scales with font size ──
146+ The element's own glyph (white in dark mode / black in light
147+ mode) stays as the zero-parallax neutral body; the two shadows
148+ are the left/right colour fringes each eye fuses into depth.
149+ - offset in em so the parallax holds at any zoom / font size
150+ - pure opaque colours so the lenses cleanly cancel each other
151+ - NO animation: stereo fusion needs a static offset */
146152html .anaglyph-active * {
147153 text-shadow :
148- -3 px 0 rgba (255 , 0 , 0 , 0.7 ),
149- 3 px 0 rgba (0 , 255 , 255 , 0.7 ) !important ;
150- animation : anaglyph-text-wobble 3 s ease-in-out infinite ;
154+ -0.09 em 0 0 rgb (255 , 0 , 0 ),
155+ 0.09 em 0 0 rgb (0 , 255 , 255 ) !important ;
156+ animation : none !important ;
151157}
152158
153159/* ── SVG icons (Lucide etc.) ─────────────────────────────── */
154160html .anaglyph-active svg {
155161 filter :
156- drop-shadow (-2px 0 rgba (255 , 0 , 0 , 0.65 )) drop-shadow (2px 0 rgba (0 , 255 , 255 , 0.65 ));
157- animation : anaglyph-icon-wobble 3s ease-in-out infinite;
162+ drop-shadow (-0.09em 0 rgb (255 , 0 , 0 )) drop-shadow (0.09em 0 rgb (0 , 255 , 255 ));
158163}
159164
160165/* ── Images ──────────────────────────────────────────────── */
161166html .anaglyph-active img {
162167 filter :
163- drop-shadow (-3px 0 rgba (255 , 0 , 0 , 0.5 )) drop-shadow (3px 0 rgba (0 , 255 , 255 , 0.5 ));
168+ drop-shadow (-3px 0 rgb (255 , 0 , 0 )) drop-shadow (3px 0 rgb (0 , 255 , 255 ));
164169}
165170
166- /* ── Interactive elements: buttons, inputs ───────────────── */
167- html .anaglyph-active button ,
168- html .anaglyph-active [role = "button" ],
169- html .anaglyph-active input ,
170- html .anaglyph-active select ,
171- html .anaglyph-active textarea {
172- box-shadow :
173- -3px 0 0 rgba (255 , 0 , 0 , 0.25 ),
174- 3px 0 0 rgba (0 , 255 , 255 , 0.25 ) !important ;
175- }
176-
177- /* ── Cards, tables, bordered containers ──────────────────── */
178- html .anaglyph-active [data-slot = "card" ],
179- html .anaglyph-active table ,
180- html .anaglyph-active .border ,
181- html .anaglyph-active [class *= "rounded-lg" ][class *= "border" ] {
182- box-shadow :
183- -3px 0 0 rgba (255 , 0 , 0 , 0.18 ),
184- 3px 0 0 rgba (0 , 255 , 255 , 0.18 );
185- }
186-
187- /* ── Top nav bar ─────────────────────────────────────────── */
188- html .anaglyph-active nav .border-b {
189- box-shadow :
190- 0 2px 0 rgba (255 , 0 , 0 , 0.2 ),
191- 0 -2px 0 rgba (0 , 255 , 255 , 0.2 );
192- }
193-
194- /* ── CRT scanline overlay ────────────────────────────────── */
195- html .anaglyph-active body ::after {
196- content : '' ;
197- position : fixed;
198- inset : 0 ;
199- z-index : 99999 ;
200- pointer-events : none;
201- background : repeating-linear-gradient (0deg ,
202- rgba (255 , 255 , 255 , 0.025 ) 0px ,
203- rgba (255 , 255 , 255 , 0.025 ) 1px ,
204- transparent 1px ,
205- transparent 3px );
206- opacity : 0 ;
207- animation : anaglyph-fade-in 0.5s ease forwards, anaglyph-scanline-scroll 8s linear infinite;
208- }
209-
210- /* ── Wobble animations ───────────────────────────────────── */
211- @keyframes anaglyph-text-wobble {
212-
213- 0% ,
214- 100% {
215- text-shadow :
216- -3px 0 rgba (255 , 0 , 0 , 0.7 ),
217- 3px 0 rgba (0 , 255 , 255 , 0.7 );
218- }
219-
220- 25% {
221- text-shadow :
222- -4px 1px rgba (255 , 0 , 0 , 0.75 ),
223- 4px -1px rgba (0 , 255 , 255 , 0.75 );
224- }
225-
226- 50% {
227- text-shadow :
228- -2px -0.5px rgba (255 , 0 , 0 , 0.65 ),
229- 2px 0.5px rgba (0 , 255 , 255 , 0.65 );
230- }
231-
232- 75% {
233- text-shadow :
234- -4px 0.5px rgba (255 , 0 , 0 , 0.7 ),
235- 4px -0.5px rgba (0 , 255 , 255 , 0.7 );
236- }
237- }
238-
239- @keyframes anaglyph-icon-wobble {
240-
241- 0% ,
242- 100% {
243- filter :
244- drop-shadow (-2px 0 rgba (255 , 0 , 0 , 0.65 )) drop-shadow (2px 0 rgba (0 , 255 , 255 , 0.65 ));
245- }
246-
247- 25% {
248- filter :
249- drop-shadow (-3px 0.5px rgba (255 , 0 , 0 , 0.7 )) drop-shadow (3px -0.5px rgba (0 , 255 , 255 , 0.7 ));
250- }
251-
252- 50% {
253- filter :
254- drop-shadow (-1.5px -0.5px rgba (255 , 0 , 0 , 0.6 )) drop-shadow (1.5px 0.5px rgba (0 , 255 , 255 , 0.6 ));
255- }
256-
257- 75% {
258- filter :
259- drop-shadow (-3px 0.3px rgba (255 , 0 , 0 , 0.65 )) drop-shadow (3px -0.3px rgba (0 , 255 , 255 , 0.65 ));
260- }
261- }
262-
263- @keyframes anaglyph-scanline-scroll {
264- 0% {
265- background-position : 0 0 ;
266- }
267-
268- 100% {
269- background-position : 0 100px ;
270- }
271- }
272-
273- @keyframes anaglyph-fade-in {
274- from {
275- opacity : 0 ;
276- }
277-
278- to {
279- opacity : 1 ;
280- }
281- }
0 commit comments