{"id":20337,"date":"2026-01-08T01:36:36","date_gmt":"2026-01-07T23:36:36","guid":{"rendered":"https:\/\/webbingstone.com\/service\/%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96\/"},"modified":"2026-01-18T21:07:32","modified_gmt":"2026-01-18T19:07:32","slug":"%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96","status":"publish","type":"portfolio","link":"https:\/\/webbingstone.com\/zh-hans\/service\/%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e4%bc%98%e5%8c%96\/","title":{"rendered":"\u641c\u7d22\u5f15\u64ce\u4f18\u5316"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"20337\" class=\"elementor elementor-20337 elementor-17755\" data-elementor-post-type=\"portfolio\">\n\t\t\t\t<div class=\"elementor-element elementor-element-27d07e9 e-con-full e-flex e-con e-parent\" data-id=\"27d07e9\" data-element_type=\"container\" data-e-type=\"container\">\r\n\t\t\t\t<div class=\"elementor-element elementor-element-71bfec7 elementor-widget elementor-widget-html\" data-id=\"71bfec7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Complete WordPress SEO Services Page with Enhanced Hero Animations -->\r\n<!-- Google Fonts -->\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&amp;display=swap\" rel=\"stylesheet\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap\" rel=\"stylesheet\">\r\n\r\n<div id=\"seo-complete-page\" style=\"font-family: 'Noto Sans SC', 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: linear-gradient(135deg, #1a0d22 0%, #2d1b35 50%, #0f0612 100%); color: #fff; overflow-x: hidden;\">\r\n\r\n    <!-- Hero Section -->\r\n    <div id=\"seo-hero-container\" style=\"position: relative; width: 100%; min-height: 100vh; height: auto; overflow: visible; padding-top: 120px; padding-bottom: 60px; box-sizing: border-box;\">\r\n        \r\n        <!-- WebGL Canvas -->\r\n        <canvas id=\"seo-webgl-canvas\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; opacity: 0; transition: opacity 2s ease-in-out;\"><\/canvas>\r\n        \r\n        <!-- Animated Background Elements -->\r\n        <div id=\"hero-bg-elements\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; opacity: 0;\">\r\n            <div class=\"bg-particle\" style=\"position: absolute; width: 4px; height: 4px; background: #EE5946; border-radius: 50%; top: 20%; left: 10%; opacity: 0;\"><\/div>\r\n            <div class=\"bg-particle\" style=\"position: absolute; width: 6px; height: 6px; background: #b794d6; border-radius: 50%; top: 30%; right: 15%; opacity: 0;\"><\/div>\r\n            <div class=\"bg-particle\" style=\"position: absolute; width: 3px; height: 3px; background: #EE5946; border-radius: 50%; top: 60%; left: 20%; opacity: 0;\"><\/div>\r\n            <div class=\"bg-particle\" style=\"position: absolute; width: 5px; height: 5px; background: #b794d6; border-radius: 50%; top: 70%; right: 25%; opacity: 0;\"><\/div>\r\n            <div class=\"bg-particle\" style=\"position: absolute; width: 4px; height: 4px; background: #EE5946; border-radius: 50%; top: 80%; left: 80%; opacity: 0;\"><\/div>\r\n        <\/div>\r\n        \r\n        <!-- Hero Content -->\r\n        <div style=\"position: relative; z-index: 20; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 40px;\">\r\n            <div style=\"max-width: 1200px; width: 100%;\">\r\n                <!-- Title with individual letter animation and REDUCED GLOW -->\r\n                <h1 id=\"hero-title\" style=\"font-family: 'Noto Sans SC', sans-serif; font-size: clamp(80px, 14vw, 200px); font-weight: 700; line-height: 0.9; margin-top: 80px; margin-bottom: 15px; letter-spacing: 0px; text-transform: uppercase; color: #ffffff; text-shadow: none; opacity: 0; padding: 20px 0;\">\r\n                    <span class=\"hero-line\" style=\"display: block;\">\r\n                        <span class=\"hero-word\">\r\n                            \u6570\u5b57\r\n                        <\/span>\r\n                    <\/span>\r\n                    <span class=\"hero-line\" style=\"display: block;\">\r\n                        <span class=\"hero-word\">\r\n                            \u4e3b\u5bfc\u5730\u4f4d\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/h1>\r\n                \r\n                <!-- Animated subtitle -->\r\n                <div id=\"hero-subtitle\" style=\"margin-bottom: 60px;\">\r\n                    <p id=\"hero-paragraph\" style=\"font-size: clamp(16px, 2.5vw, 24px); font-weight: 300; color: rgba(255, 255, 255, 0.8); letter-spacing: 0.5px; max-width: 800px; margin-left: auto; margin-right: auto; line-height: 1.6; opacity: 0; transform: translateY(30px);\">\r\n                        \u5728\u57c3\u53ca\u63a8\u52a8\u5173\u952e\u7ee9\u6548\u6307\u6807\u589e\u957f\u7684<span class=\"scroll-highlight\" style=\"color: #EE5946; font-weight: 400;\">\u641c\u7d22\u5f15\u64ce\u4f18\u5316<\/span><span class=\"scroll-word\">\u670d\u52a1<\/span> <span class=\"scroll-word\">\u4ece<\/span> <span class=\"scroll-word\">\u5168\u7ad9<\/span> <span class=\"scroll-word\">\u6280\u672f<\/span> <span class=\"scroll-highlight\" style=\"color: #EE5946; font-weight: 400;\">SEO<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-word\">\u9875\u9762<\/span> <span class=\"scroll-word\">\u4f18\u5316<\/span> <span class=\"scroll-word\">\u5230<\/span> <span class=\"scroll-word\">\u963f\u62c9\u4f2f\u8bed<\/span> <span class=\"scroll-word\">\u5185\u5bb9<\/span><span class=\"scroll-word\">\u3001<\/span><span class=\"scroll-word\">\u5f00\u7f57<\/span><span class=\"scroll-word\">\u672c\u5730<\/span> <span class=\"scroll-highlight\" style=\"color: #EE5946; font-weight: 400;\">SEO<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-word\">\u7535\u5546<\/span> <span class=\"scroll-highlight\" style=\"color: #EE5946; font-weight: 400;\">SEO<\/span>\uff0c<span class=\"scroll-word\">\u6211\u4eec<\/span> <span class=\"scroll-word\">\u6839\u636e<\/span> <span class=\"scroll-word\">\u60a8\u7684<\/span> <span class=\"scroll-word\">\u5e02\u573a<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-word\">\u884c\u4e1a<\/span> <span class=\"scroll-word\">\u8c03\u6574<\/span> <span class=\"scroll-word\">\u7b56\u7565\u3002<\/span> <span class=\"scroll-word\">\u6211\u4eec\u7684<\/span> <span class=\"scroll-word\">\u6570\u636e\u9a71\u52a8<\/span> <span class=\"scroll-highlight\" style=\"color: #EE5946; font-weight: 400;\">SEO<\/span> <span class=\"scroll-word\">\u670d\u52a1<\/span> <span class=\"scroll-word\">\u63d0\u5347<\/span> <span class=\"scroll-word\">\u53ef\u89c1\u5ea6<\/span><span class=\"scroll-word\">\u3001<\/span><span class=\"scroll-word\">\u8f6c\u5316\u7387<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-highlight\" style=\"color: #EE5946; font-weight: 400;\">\u6295\u8d44\u56de\u62a5\u7387<\/span>\uff0c<span class=\"scroll-word\">\u8ba9\u60a8<\/span> <span class=\"scroll-word\">\u5728<\/span> <span class=\"scroll-word\">\u6700\u91cd\u8981\u7684<\/span> <span class=\"scroll-word\">\u4f4d\u7f6e<\/span> <span class=\"scroll-word\">\u5360\u636e<\/span> <span class=\"scroll-word\">\u6392\u540d\u3002<\/span>\r\n                    <\/p>\r\n                <\/div>\r\n                \r\n                <!-- Animated CTA button -->\r\n                <div id=\"hero-cta-container\">\r\n                    <a href=\"https:\/\/4p7q5.share.hsforms.com\/2ePgWHDDxQDyycnRQx8cvqw\" target=\"_blank\" id=\"hero-cta\" class=\"seo-cta-button\" style=\"display: inline-flex; align-items: center; gap: 20px; padding: 25px 60px; border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(135deg, rgba(45, 27, 53, 0.3) 0%, rgba(68, 39, 100, 0.2) 100%); backdrop-filter: blur(30px); color: #fff; text-decoration: none; font-weight: 400; letter-spacing: 4px; text-transform: uppercase; font-size: 14px; transition: all 1s cubic-bezier(0.23, 1, 0.320, 1); border-radius: 2px; opacity: 0;\" rel=\"noopener\">\r\n                        <span class=\"cta-text\">\u63a2\u7d22\u670d\u52a1<\/span> \r\n<span class=\"cta-arrow\" style=\"margin-left: 10px; transition: transform 0.6s ease;\">\u2192<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Services Section -->\r\n    <div id=\"services\" style=\"position: relative; z-index: 10; padding: 150px 40px;\">\r\n        <div style=\"max-width: 1600px; margin: 0 auto;\">\r\n            \r\n            <!-- Service 1 -->\r\n            <div class=\"seo-service-panel\" style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 150px; align-items: center; margin-bottom: 200px; opacity: 0; transform: translateY(100px); transition: all 1s ease;\">\r\n                <div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: #b794d6; margin-bottom: 40px; font-weight: 200;\">\u667a\u80fd\u4e0e\u5206\u6790<\/div>\r\n                    <h2 style=\"font-family: 'Noto Sans SC', sans-serif; font-size: clamp(50px, 8vw, 120px); font-weight: 400; line-height: 1.2; margin-top: 60px; margin-bottom: 50px; letter-spacing: -4px; text-transform: uppercase; background: linear-gradient(135deg, #fff 0%, rgba(183, 148, 214, 0.8) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;\">\r\n\u641c\u7d22<br>\u7b56\u7565\r\n                    <\/h2>\r\n                    <p class=\"service-paragraph\" style=\"font-size: 18px; font-weight: 400; color: rgba(255, 255, 255, 0.7); line-height: 1.8; margin-bottom: 60px; letter-spacing: 0.5px;\">\r\n                        <span class=\"scroll-word\">\u7531<\/span> <span class=\"scroll-word\">\u673a\u5668\u5b66\u4e60<\/span> <span class=\"scroll-word\">\u7b97\u6cd5<\/span> <span class=\"scroll-word\">\u9a71\u52a8\u7684<\/span> <span class=\"scroll-word\">\u9ad8\u7ea7<\/span> <span class=\"scroll-word\">\u5173\u952e\u8bcd<\/span> <span class=\"scroll-word\">\u667a\u80fd<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-word\">\u7ade\u4e89<\/span> <span class=\"scroll-word\">\u5206\u6790\u3002<\/span> <span class=\"scroll-word\">\u6211\u4eec<\/span> <span class=\"scroll-word\">\u8bc6\u522b<\/span> <span class=\"scroll-word\">\u672a\u5f00\u53d1\u7684<\/span> <span class=\"scroll-word\">\u673a\u4f1a<\/span>\uff0c<span class=\"scroll-word\">\u521b\u5efa<\/span> <span class=\"scroll-word\">\u6570\u636e\u9a71\u52a8\u7684<\/span> <span class=\"scroll-word\">\u5185\u5bb9<\/span> <span class=\"scroll-word\">\u7b56\u7565<\/span>\uff0c<span class=\"scroll-word\">\u5c06<\/span> <span class=\"scroll-word\">\u60a8\u7684<\/span> <span class=\"scroll-word\">\u54c1\u724c<\/span> <span class=\"scroll-word\">\u5b9a\u4f4d<\/span> <span class=\"scroll-word\">\u5728<\/span> <span class=\"scroll-word\">\u641c\u7d22<\/span> <span class=\"scroll-word\">\u7ed3\u679c\u7684<\/span> <span class=\"scroll-word\">\u6700\u524d\u6cbf\u3002<\/span>\r\n                    <\/p>\r\n                    <div class=\"seo-pricing\" style=\"font-size: 24px; font-weight: 400; color: #EE5946; letter-spacing: 2px; margin-bottom: 50px; opacity: 0; transform: translateX(-50px) scale(0.8);\">\u8d77\u4ef7 15,000 \u57c3\u9551\/\u6708<\/div>\r\n                    <a href=\"https:\/\/webbingstone.com\/zh-hans\/contact-us\/\" class=\"seo-service-button\" style=\"display: inline-flex; align-items: center; gap: 15px; padding: 20px 60px; border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(135deg, rgba(45, 27, 53, 0.2) 0%, rgba(68, 39, 100, 0.15) 100%); backdrop-filter: blur(20px); color: #fff; text-decoration: none; font-weight: 400; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); border-radius: 1px;\">\r\n\u4e86\u89e3\u66f4\u591a <span style=\"transition: transform 0.6s ease; color: #EE5946;\">\u2197<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                <div class=\"seo-service-visual\" style=\"height: 500px; width: 500px; background: transparent; border: none; border-radius: 50%; position: relative; overflow: hidden; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); margin: 0 auto;\">\r\n                    <!-- Canvas for sphere -->\r\n                    <canvas id=\"sphere-canvas-1\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\"><\/canvas>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Service 2 -->\r\n            <div class=\"seo-service-panel\" style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 150px; align-items: center; margin-bottom: 200px; opacity: 0; transform: translateY(100px); transition: all 1s ease;\">\r\n                <div class=\"seo-service-visual\" style=\"height: 500px; background: linear-gradient(135deg, rgba(45, 27, 53, 0.3) 0%, rgba(68, 39, 100, 0.2) 100%); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 4px; position: relative; overflow: hidden; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1);\">\r\n                    <div class=\"light-ray light-ray-1\"><\/div>\r\n                    <div class=\"light-ray light-ray-2\"><\/div>\r\n                    <div class=\"light-ray light-ray-3\"><\/div>\r\n                    <div class=\"floating-orb orb-1\"><\/div>\r\n                    <div class=\"floating-orb orb-2\"><\/div>\r\n                    <div class=\"floating-orb orb-3\"><\/div>\r\n                    <div class=\"grid-overlay\"><\/div>\r\n                <\/div>\r\n                <div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: #b794d6; margin-bottom: 40px; font-weight: 200;\">\u6280\u672f\u5353\u8d8a<\/div>\r\n                    <h2 style=\"font-family: 'Noto Sans SC', sans-serif; font-size: clamp(50px, 8vw, 120px); font-weight: 400; line-height: 1.2; margin-top: 60px; margin-bottom: 50px; letter-spacing: -4px; text-transform: uppercase; background: linear-gradient(135deg, #fff 0%, rgba(183, 148, 214, 0.8) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;\">\r\n\u6027\u80fd<br>\u5de5\u7a0b\r\n                    <\/h2>\r\n                    <p class=\"service-paragraph\" style=\"font-size: 18px; font-weight: 200; color: rgba(255, 255, 255, 0.7); line-height: 1.8; margin-bottom: 60px; letter-spacing: 0.5px;\">\r\n                        <span class=\"scroll-word\">\u5168\u9762\u7684<\/span> <span class=\"scroll-word\">\u6280\u672f<\/span> <span class=\"scroll-word\">\u4f18\u5316<\/span>\uff0c<span class=\"scroll-word\">\u5305\u62ec<\/span> <span class=\"scroll-word\">\u6838\u5fc3<\/span> <span class=\"scroll-word\">\u7f51\u9875<\/span> <span class=\"scroll-word\">\u6307\u6807<\/span> <span class=\"scroll-word\">\u589e\u5f3a<\/span><span class=\"scroll-word\">\u3001<\/span><span class=\"scroll-word\">\u79fb\u52a8\u4f18\u5148<\/span> <span class=\"scroll-word\">\u7d22\u5f15<\/span><span class=\"scroll-word\">\u3001<\/span><span class=\"scroll-word\">\u7ed3\u6784\u5316<\/span> <span class=\"scroll-word\">\u6570\u636e<\/span> <span class=\"scroll-word\">\u5b9e\u65bd<\/span> <span class=\"scroll-word\">\u4ee5\u53ca<\/span> <span class=\"scroll-word\">\u9ad8\u7ea7<\/span> <span class=\"scroll-word\">\u722c\u866b<\/span> <span class=\"scroll-word\">\u6539\u8fdb<\/span>\uff0c<span class=\"scroll-word\">\u786e\u4fdd<\/span> <span class=\"scroll-word\">\u60a8\u7684<\/span> <span class=\"scroll-word\">\u7f51\u7ad9<\/span> <span class=\"scroll-word\">\u5728<\/span> <span class=\"scroll-word\">\u6700\u9ad8<\/span> <span class=\"scroll-word\">\u6c34\u5e73<\/span> <span class=\"scroll-word\">\u4e0a<\/span> <span class=\"scroll-word\">\u8fd0\u884c\u3002<\/span>\r\n                    <\/p>\r\n                    <div class=\"seo-pricing\" style=\"font-size: 24px; font-weight: 400; color: #EE5946; letter-spacing: 2px; margin-bottom: 50px; opacity: 0; transform: translateX(-50px) scale(0.8);\">\u8d77\u4ef7 20,000 \u57c3\u9551\/\u6708<\/div>\r\n                    <a href=\"https:\/\/webbingstone.com\/zh-hans\/contact-us\/\" class=\"seo-service-button\" style=\"display: inline-flex; align-items: center; gap: 15px; padding: 20px 60px; border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(135deg, rgba(45, 27, 53, 0.2) 0%, rgba(68, 39, 100, 0.15) 100%); backdrop-filter: blur(20px); color: #fff; text-decoration: none; font-weight: 200; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); border-radius: 1px;\">\r\n\u4e86\u89e3\u66f4\u591a <span style=\"transition: transform 0.6s ease; color: #EE5946;\">\u2197<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Service 3 -->\r\n            <div class=\"seo-service-panel\" style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 150px; align-items: center; margin-bottom: 200px; opacity: 0; transform: translateY(100px); transition: all 1s ease;\">\r\n                <div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: #b794d6; margin-bottom: 40px; font-weight: 200;\">\u5185\u5bb9\u4e0e\u4f53\u9a8c<\/div>\r\n                    <h2 style=\"font-family: 'Noto Sans SC', sans-serif; font-size: clamp(50px, 8vw, 120px); font-weight: 400; line-height: 1.2; margin-top: 60px; margin-bottom: 50px; letter-spacing: -4px; text-transform: uppercase; background: linear-gradient(135deg, #fff 0%, rgba(183, 148, 214, 0.8) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;\">\r\n\u6570\u5b57<br>\u53d9\u4e8b\r\n                    <\/h2>\r\n                    <p class=\"service-paragraph\" style=\"font-size: 18px; font-weight: 200; color: rgba(255, 255, 255, 0.7); line-height: 1.8; margin-bottom: 60px; letter-spacing: 0.5px;\">\r\n                        <span class=\"scroll-word\">\u6218\u7565\u6027<\/span> <span class=\"scroll-word\">\u5185\u5bb9<\/span> <span class=\"scroll-word\">\u521b\u4f5c<\/span>\uff0c<span class=\"scroll-word\">\u65e0\u7f1d<\/span> <span class=\"scroll-word\">\u878d\u5408<\/span> <span class=\"scroll-word\">\u7528\u6237<\/span> <span class=\"scroll-word\">\u4f53\u9a8c<\/span> <span class=\"scroll-word\">\u4e0e<\/span> <span class=\"scroll-word\">\u641c\u7d22<\/span> <span class=\"scroll-word\">\u4f18\u5316\u3002<\/span> <span class=\"scroll-word\">\u6211\u4eec<\/span> <span class=\"scroll-word\">\u6253\u9020<\/span> <span class=\"scroll-word\">\u5f15\u4eba\u5165\u80dc\u7684<\/span> <span class=\"scroll-word\">\u53d9\u4e8b<\/span>\uff0c<span class=\"scroll-word\">\u5438\u5f15<\/span> <span class=\"scroll-word\">\u53d7\u4f17<\/span>\uff0c<span class=\"scroll-word\">\u540c\u65f6<\/span> <span class=\"scroll-word\">\u901a\u8fc7<\/span> <span class=\"scroll-word\">\u6c89\u6d78\u5f0f<\/span> <span class=\"scroll-word\">\u6570\u5b57<\/span> <span class=\"scroll-word\">\u4f53\u9a8c<\/span> <span class=\"scroll-word\">\u6ee1\u8db3<\/span> <span class=\"scroll-word\">\u590d\u6742\u7684<\/span> <span class=\"scroll-word\">\u641c\u7d22<\/span> <span class=\"scroll-word\">\u7b97\u6cd5\u3002<\/span>\r\n                    <\/p>\r\n                    <div class=\"seo-pricing\" style=\"font-size: 24px; font-weight: 400; color: #EE5946; letter-spacing: 2px; margin-bottom: 50px; opacity: 0; transform: translateX(-50px) scale(0.8);\">\u8d77\u4ef7 23,000 \u57c3\u9551\/\u6708<\/div>\r\n                    <a href=\"https:\/\/webbingstone.com\/zh-hans\/contact-us\/\" class=\"seo-service-button\" style=\"display: inline-flex; align-items: center; gap: 15px; padding: 20px 60px; border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(135deg, rgba(45, 27, 53, 0.2) 0%, rgba(68, 39, 100, 0.15) 100%); backdrop-filter: blur(20px); color: #fff; text-decoration: none; font-weight: 200; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); border-radius: 1px;\">\r\n\u4e86\u89e3\u66f4\u591a <span style=\"transition: transform 0.6s ease; color: #EE5946;\">\u2197<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                <div class=\"seo-service-visual\" style=\"height: 500px; background: linear-gradient(135deg, rgba(45, 27, 53, 0.3) 0%, rgba(68, 39, 100, 0.2) 100%); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 4px; position: relative; overflow: hidden; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1);\">\r\n                    <div class=\"light-ray light-ray-1\"><\/div>\r\n                    <div class=\"light-ray light-ray-2\"><\/div>\r\n                    <div class=\"light-ray light-ray-3\"><\/div>\r\n                    <div class=\"floating-orb orb-1\"><\/div>\r\n                    <div class=\"floating-orb orb-2\"><\/div>\r\n                    <div class=\"floating-orb orb-3\"><\/div>\r\n                    <div class=\"grid-overlay\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Service 4 -->\r\n            <div class=\"seo-service-panel\" style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 150px; align-items: center; margin-bottom: 200px; opacity: 0; transform: translateY(100px); transition: all 1s ease;\">\r\n                <div class=\"seo-service-visual\" style=\"height: 500px; background: linear-gradient(135deg, rgba(45, 27, 53, 0.3) 0%, rgba(68, 39, 100, 0.2) 100%); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 4px; position: relative; overflow: hidden; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1);\">\r\n                    <div class=\"light-ray light-ray-1\"><\/div>\r\n                    <div class=\"light-ray light-ray-2\"><\/div>\r\n                    <div class=\"light-ray light-ray-3\"><\/div>\r\n                    <div class=\"floating-orb orb-1\"><\/div>\r\n                    <div class=\"floating-orb orb-2\"><\/div>\r\n                    <div class=\"floating-orb orb-3\"><\/div>\r\n                    <div class=\"grid-overlay\"><\/div>\r\n                <\/div>\r\n                <div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: #b794d6; margin-bottom: 40px; font-weight: 200;\">\u6743\u5a01\u4e0e\u5f71\u54cd\u529b<\/div>\r\n                    <h2 style=\"font-family: 'Noto Sans SC', sans-serif; font-size: clamp(50px, 8vw, 120px); font-weight: 400; line-height: 1.2; margin-top: 60px; margin-bottom: 50px; letter-spacing: -4px; text-transform: uppercase; background: linear-gradient(135deg, #fff 0%, rgba(183, 148, 214, 0.8) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;\">\r\n\u6570\u5b57<br>\u6743\u5a01\r\n                    <\/h2>\r\n                    <p class=\"service-paragraph\" style=\"font-size: 18px; font-weight: 200; color: rgba(255, 255, 255, 0.7); line-height: 1.8; margin-bottom: 60px; letter-spacing: 0.5px;\">\r\n                        <span class=\"scroll-word\">\u9ad8\u7aef<\/span> <span class=\"scroll-word\">\u94fe\u63a5<\/span> <span class=\"scroll-word\">\u83b7\u53d6<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-word\">\u6570\u5b57<\/span> <span class=\"scroll-word\">\u516c\u5173<\/span> <span class=\"scroll-word\">\u6d3b\u52a8<\/span>\uff0c<span class=\"scroll-word\">\u5c06<\/span> <span class=\"scroll-word\">\u60a8\u7684<\/span> <span class=\"scroll-word\">\u54c1\u724c<\/span> <span class=\"scroll-word\">\u786e\u7acb\u4e3a<\/span> <span class=\"scroll-word\">\u884c\u4e1a<\/span> <span class=\"scroll-word\">\u6743\u5a01\u3002<\/span> <span class=\"scroll-word\">\u6211\u4eec<\/span> <span class=\"scroll-word\">\u901a\u8fc7<\/span> <span class=\"scroll-word\">\u6218\u7565\u6027<\/span> <span class=\"scroll-word\">\u5173\u7cfb<\/span> <span class=\"scroll-word\">\u5efa\u7acb<\/span> <span class=\"scroll-word\">\u548c<\/span> <span class=\"scroll-word\">\u601d\u60f3<\/span> <span class=\"scroll-word\">\u9886\u5bfc\u529b<\/span>\uff0c<span class=\"scroll-word\">\u4e0e<\/span> <span class=\"scroll-word\">\u6709\u5f71\u54cd\u529b\u7684<\/span> <span class=\"scroll-word\">\u57df\u540d<\/span> <span class=\"scroll-word\">\u5efa\u7acb<\/span> <span class=\"scroll-word\">\u9ad8\u8d28\u91cf<\/span> <span class=\"scroll-word\">\u8fde\u63a5\u3002<\/span>\r\n                    <\/p>\r\n                    <div class=\"seo-pricing\" style=\"font-size: 24px; font-weight: 400; color: #EE5946; letter-spacing: 2px; margin-bottom: 50px; opacity: 0; transform: translateX(-50px) scale(0.8);\">\u8d77\u4ef7 30,000 \u57c3\u9551\/\u6708<\/div>\r\n                    <a href=\"https:\/\/webbingstone.com\/zh-hans\/contact-us\/\" class=\"seo-service-button\" style=\"display: inline-flex; align-items: center; gap: 15px; padding: 20px 60px; border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(135deg, rgba(45, 27, 53, 0.2) 0%, rgba(68, 39, 100, 0.15) 100%); backdrop-filter: blur(20px); color: #fff; text-decoration: none; font-weight: 200; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); border-radius: 1px;\">\r\n\u4e86\u89e3\u66f4\u591a <span style=\"transition: transform 0.6s ease; color: #EE5946;\">\u2197<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Stats Section -->\r\n    <div id=\"results\" style=\"position: relative; z-index: 10; padding: 200px 40px; text-align: center;\">\r\n        <div style=\"max-width: 1200px; margin: 0 auto; width: 100%;\">\r\n            <div style=\"display: grid; grid-template-columns: repeat(4, 1fr); gap: 60px; justify-items: center; align-items: center;\">\r\n                <div class=\"seo-stat-item\" style=\"opacity: 0; transform: translateY(100px); transition: all 1s ease; display: flex; flex-direction: column; align-items: center; text-align: center;\">\r\n                    <div class=\"seo-counter\" data-target=\"500\" style=\"font-family: 'Poppins', sans-serif; font-size: clamp(48px, 8vw, 96px); font-weight: 100; color: #EE5946; margin-bottom: 30px; letter-spacing: -3px; line-height: 0.8;\">0<\/div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); font-weight: 200;\">\u5df2\u4ea4\u4ed8\u9879\u76ee<\/div>\r\n                <\/div>\r\n                <div class=\"seo-stat-item\" style=\"opacity: 0; transform: translateY(100px); transition: all 1s ease; display: flex; flex-direction: column; align-items: center; text-align: center;\">\r\n                    <div class=\"seo-counter\" data-target=\"350\" style=\"font-family: 'Poppins', sans-serif; font-size: clamp(48px, 8vw, 96px); font-weight: 100; color: #EE5946; margin-bottom: 30px; letter-spacing: -3px; line-height: 0.8;\">0<\/div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); font-weight: 200;\">\u5e73\u5747\u589e\u957f\u7387<\/div>\r\n                <\/div>\r\n                <div class=\"seo-stat-item\" style=\"opacity: 0; transform: translateY(100px); transition: all 1s ease; display: flex; flex-direction: column; align-items: center; text-align: center;\">\r\n                    <div class=\"seo-counter\" data-target=\"95\" style=\"font-family: 'Poppins', sans-serif; font-size: clamp(48px, 8vw, 96px); font-weight: 100; color: #EE5946; margin-bottom: 30px; letter-spacing: -3px; line-height: 0.8;\">0<\/div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); font-weight: 200;\">\u6210\u529f\u7387<\/div>\r\n                <\/div>\r\n                <div class=\"seo-stat-item\" style=\"opacity: 0; transform: translateY(100px); transition: all 1s ease; display: flex; flex-direction: column; align-items: center; text-align: center;\">\r\n                    <div style=\"font-family: 'Poppins', sans-serif; font-size: clamp(48px, 8vw, 96px); font-weight: 100; color: #EE5946; margin-bottom: 30px; letter-spacing: -3px; line-height: 0.8;\">24\/7<\/div>\r\n                    <div style=\"font-size: 14px; letter-spacing: 6px; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); font-weight: 200;\">\u6027\u80fd\u76d1\u63a7<\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Contact Section -->\r\n    <div id=\"contact\" style=\"position: relative; z-index: 10; padding: 300px 40px; text-align: center;\">\r\n        <div style=\"max-width: 800px; margin: 0 auto;\">\r\n            <h2 id=\"contact-title\" style=\"font-family: 'Noto Sans SC', sans-serif; font-size: clamp(60px, 12vw, 180px); font-weight: 100; margin-bottom: 80px; letter-spacing: -6px; text-transform: uppercase; line-height: 0.8; color: #ffffff; opacity: 0;\">\r\n                <span class=\"hero-line\" style=\"display: block;\">\r\n                    <span class=\"hero-word\">\r\n                        <span class=\"hero-letter\">\u51c6<\/span><span class=\"hero-letter\">\u5907<\/span><span class=\"hero-letter\">\u597d<\/span>\r\n                    <\/span>\r\n                <\/span>\r\n                <span class=\"hero-line\" style=\"display: block;\">\r\n                    <span class=\"hero-word\">\r\n                        <span class=\"hero-letter\">\u4e3b<\/span><span class=\"hero-letter\">\u5bfc<\/span><span class=\"hero-letter\">\u4e86<\/span><span class=\"hero-letter\">\u5417<\/span><span class=\"hero-letter\">\uff1f<\/span>\r\n                    <\/span>\r\n                <\/span>\r\n            <\/h2>\r\n            \r\n            <p class=\"service-paragraph\" style=\"font-size: 20px; font-weight: 200; color: rgba(255, 255, 255, 0.6); margin-bottom: 100px; line-height: 1.6;\">\r\n                <span class=\"scroll-word\">\u8ba9\u6211\u4eec<\/span> <span class=\"scroll-word\">\u4e00\u8d77<\/span> <span class=\"scroll-word\">\u521b\u9020<\/span> <span class=\"scroll-word\">\u975e\u51e1\u3002<\/span> <span class=\"scroll-word\">\u6211\u4eec\u7684<\/span> <span class=\"scroll-word\">SEO<\/span> <span class=\"scroll-word\">\u4e13\u5bb6<\/span> <span class=\"scroll-word\">\u56e2\u961f<\/span> <span class=\"scroll-word\">\u5df2\u51c6\u5907\u597d<\/span> <span class=\"scroll-word\">\u8f6c\u53d8<\/span> <span class=\"scroll-word\">\u60a8\u7684<\/span> <span class=\"scroll-word\">\u6570\u5b57<\/span> <span class=\"scroll-word\">\u5f62\u8c61<\/span>\uff0c<span class=\"scroll-word\">\u4e3a<\/span> <span class=\"scroll-word\">\u60a8\u7684<\/span> <span class=\"scroll-word\">\u4e1a\u52a1<\/span> <span class=\"scroll-word\">\u63a8\u52a8<\/span> <span class=\"scroll-word\">\u524d\u6240\u672a\u6709\u7684<\/span> <span class=\"scroll-word\">\u589e\u957f\u3002<\/span>\r\n            <\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<!-- Three.js Library -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\r\n<!-- GSAP Library -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.2\/gsap.min.js\"><\/script>\r\n\r\n<script>\r\n(function() {\r\n    let seoScene, seoCamera, seoRenderer, seoParticles, seoTexts = [], seoTextGlows = [];\r\n    let seoMouseX = 0, seoMouseY = 0;\r\n    let seoContainer, seoCanvas;\r\n    let isIntersectionObserverAvailable = 'IntersectionObserver' in window;\r\n    \r\n    function initSEOPage() {\r\n        seoContainer = document.getElementById('seo-hero-container');\r\n        seoCanvas = document.getElementById('seo-webgl-canvas');\r\n        \r\n        if (!seoContainer || !seoCanvas || !window.THREE || !window.gsap) {\r\n            setTimeout(initSEOPage, 500);\r\n            return;\r\n        }\r\n        \r\n        createSEOWebGL();\r\n        initHeroAnimations();\r\n        initScrollAnimations();\r\n    }\r\n    \r\n    function initHeroAnimations() {\r\n        const heroTL = gsap.timeline({ delay: 0.5 });\r\n        \r\n        gsap.set('.hero-letter', { \r\n            y: 100, \r\n            opacity: 0, \r\n            rotationX: 90,\r\n            transformOrigin: \"50% 50% -50px\"\r\n        });\r\n        \r\n        gsap.set('#hero-subtitle p', { y: 30, opacity: 0 });\r\n        gsap.set('#hero-cta', { y: 100, scale: 0.8, opacity: 0 });\r\n        gsap.set('.bg-particle', { scale: 0, opacity: 0 });\r\n        \r\n        heroTL.to('#hero-bg-elements', {\r\n            duration: 1,\r\n            opacity: 1,\r\n            ease: \"power2.out\"\r\n        })\r\n        .to('.bg-particle', {\r\n            duration: 1.5,\r\n            scale: 1,\r\n            opacity: 0.8,\r\n            stagger: 0.2,\r\n            ease: \"back.out(1.7)\"\r\n        }, \"-=0.5\");\r\n        \r\n        heroTL.to('#hero-title', {\r\n            duration: 0.5,\r\n            opacity: 1,\r\n            ease: \"power2.out\"\r\n        }, \"-=1\")\r\n        .to('.hero-letter', {\r\n            duration: 1.2,\r\n            y: 0,\r\n            opacity: 1,\r\n            rotationX: 0,\r\n            stagger: {\r\n                each: 0.08,\r\n                from: \"start\"\r\n            },\r\n            ease: \"back.out(1.7)\",\r\n            onComplete: function() {\r\n                gsap.to('.hero-letter', {\r\n                    duration: 4,\r\n                    y: -10,\r\n                    stagger: {\r\n                        each: 0.1,\r\n                        from: \"start\"\r\n                    },\r\n                    ease: \"sine.inOut\",\r\n                    repeat: -1,\r\n                    yoyo: true\r\n                });\r\n            }\r\n        }, \"-=0.8\");\r\n        \r\n        heroTL.to('#hero-subtitle p', {\r\n            duration: 1.2,\r\n            y: 0,\r\n            opacity: 1,\r\n            ease: \"power2.out\",\r\n            onComplete: function() {\r\n                initScrollHighlight();\r\n            }\r\n        }, \"-=0.5\");\r\n        \r\n        heroTL.to('#hero-cta', {\r\n            duration: 1,\r\n            y: 0,\r\n            scale: 1,\r\n            opacity: 1,\r\n            ease: \"back.out(1.7)\"\r\n        }, \"-=0.3\");\r\n        \r\n        const ctaButton = document.getElementById('hero-cta');\r\n        const ctaText = ctaButton.querySelector('.cta-text');\r\n        const ctaArrow = ctaButton.querySelector('.cta-arrow');\r\n        \r\n        ctaButton.addEventListener('mouseenter', () => {\r\n            gsap.to(ctaButton, {\r\n                duration: 0.3,\r\n                scale: 1.05,\r\n                rotationY: 5,\r\n                transformOrigin: \"center center\",\r\n                ease: \"power2.out\"\r\n            });\r\n            \r\n            gsap.to(ctaArrow, {\r\n                duration: 0.3,\r\n                x: 10,\r\n                ease: \"power2.out\"\r\n            });\r\n            \r\n            gsap.to(ctaText, {\r\n                duration: 0.3,\r\n                letterSpacing: \"6px\",\r\n                ease: \"power2.out\"\r\n            });\r\n        });\r\n        \r\n        ctaButton.addEventListener('mouseleave', () => {\r\n            gsap.to(ctaButton, {\r\n                duration: 0.3,\r\n                scale: 1,\r\n                rotationY: 0,\r\n                ease: \"power2.out\"\r\n            });\r\n            \r\n            gsap.to(ctaArrow, {\r\n                duration: 0.3,\r\n                x: 0,\r\n                ease: \"power2.out\"\r\n            });\r\n            \r\n            gsap.to(ctaText, {\r\n                duration: 0.3,\r\n                letterSpacing: \"4px\",\r\n                ease: \"power2.out\"\r\n            });\r\n        });\r\n        \r\n        heroTL.call(() => {\r\n            gsap.to('.bg-particle', {\r\n                duration: 8,\r\n                y: -20,\r\n                x: 10,\r\n                rotation: 360,\r\n                ease: \"sine.inOut\",\r\n                repeat: -1,\r\n                yoyo: true,\r\n                stagger: 0.5\r\n            });\r\n        });\r\n        \r\n        heroTL.call(() => {\r\n            const letters = document.querySelectorAll('.hero-letter');\r\n            \r\n            setInterval(() => {\r\n                gsap.to(letters, {\r\n                    duration: 0.8,\r\n                    color: \"#EE5946\",\r\n                    textShadow: \"none\",\r\n                    stagger: {\r\n                        each: 0.08,\r\n                        from: 0\r\n                    },\r\n                    ease: \"power2.out\",\r\n                    onComplete: () => {\r\n                        gsap.to(letters, {\r\n                            duration: 0.8,\r\n                            color: \"#ffffff\",\r\n                            textShadow: \"none\",\r\n                            stagger: {\r\n                                each: 0.08,\r\n                                from: 0\r\n                            },\r\n                            ease: \"power2.inOut\",\r\n                            delay: 0.5\r\n                        });\r\n                    }\r\n                });\r\n            }, 2000);\r\n        });\r\n    }\r\n    \r\n    function initScrollHighlight() {\r\n        const scrollWords = document.querySelectorAll('#hero-paragraph .scroll-word');\r\n        const highlightWords = document.querySelectorAll('#hero-paragraph .scroll-highlight');\r\n        \r\n        gsap.set(scrollWords, {\r\n            opacity: 0.5,\r\n            color: 'rgba(255, 255, 255, 0.5)'\r\n        });\r\n        \r\n        gsap.set(highlightWords, {\r\n            opacity: 1,\r\n            color: '#EE5946'\r\n        });\r\n        \r\n        let currentIndex = 0;\r\n        \r\n        const handleScroll = () => {\r\n            const scrollProgress = window.scrollY;\r\n            const heroHeight = document.getElementById('seo-hero-container').offsetHeight;\r\n            \r\n            const progressRatio = Math.min(scrollProgress \/ (heroHeight * 0.5), 1);\r\n            const wordsToHighlight = Math.floor(progressRatio * scrollWords.length);\r\n            \r\n            scrollWords.forEach((word, index) => {\r\n                if (index < wordsToHighlight && index >= currentIndex) {\r\n                    gsap.to(word, {\r\n                        duration: 0.5,\r\n                        opacity: 1,\r\n                        color: '#ffffff',\r\n                        ease: 'power2.out',\r\n                        delay: (index - currentIndex) * 0.05\r\n                    });\r\n                }\r\n            });\r\n            \r\n            currentIndex = Math.max(currentIndex, wordsToHighlight);\r\n            \r\n            if (progressRatio >= 1) {\r\n                gsap.to(scrollWords, {\r\n                    duration: 0.5,\r\n                    opacity: 1,\r\n                    color: '#ffffff',\r\n                    ease: 'power2.out'\r\n                });\r\n                window.removeEventListener('scroll', handleScroll);\r\n            }\r\n        };\r\n        \r\n        window.addEventListener('scroll', handleScroll);\r\n        handleScroll();\r\n        initServiceParagraphsHighlight();\r\n    }\r\n    \r\n    function initServiceParagraphsHighlight() {\r\n        const serviceParagraphs = document.querySelectorAll('.service-paragraph');\r\n        \r\n        serviceParagraphs.forEach(paragraph => {\r\n            const words = paragraph.querySelectorAll('.scroll-word');\r\n            \r\n            gsap.set(words, {\r\n                opacity: 0.3,\r\n                color: 'rgba(255, 255, 255, 0.3)'\r\n            });\r\n            \r\n            paragraph.dataset.wordsHighlighted = '0';\r\n        });\r\n        \r\n        const handleServiceScroll = () => {\r\n            serviceParagraphs.forEach(paragraph => {\r\n                const rect = paragraph.getBoundingClientRect();\r\n                const windowHeight = window.innerHeight;\r\n                \r\n                if (rect.top < windowHeight && rect.bottom > 0) {\r\n                    const words = paragraph.querySelectorAll('.scroll-word');\r\n                    \r\n                    const paragraphTop = rect.top;\r\n                    const paragraphHeight = rect.height;\r\n                    const visibleAmount = windowHeight - paragraphTop;\r\n                    const scrollProgress = Math.max(0, Math.min(1, visibleAmount \/ (paragraphHeight + windowHeight * 0.5)));\r\n                    \r\n                    const wordsToHighlight = Math.floor(scrollProgress * words.length);\r\n                    const currentHighlighted = parseInt(paragraph.dataset.wordsHighlighted);\r\n                    \r\n                    if (wordsToHighlight > currentHighlighted) {\r\n                        for (let i = currentHighlighted; i < wordsToHighlight; i++) {\r\n                            if (words[i]) {\r\n                                gsap.to(words[i], {\r\n                                    duration: 0.4,\r\n                                    opacity: 1,\r\n                                    color: 'rgba(255, 255, 255, 0.7)',\r\n                                    ease: 'power2.out',\r\n                                    delay: (i - currentHighlighted) * 0.02\r\n                                });\r\n                            }\r\n                        }\r\n                        paragraph.dataset.wordsHighlighted = wordsToHighlight.toString();\r\n                    }\r\n                }\r\n            });\r\n        };\r\n        \r\n        window.addEventListener('scroll', handleServiceScroll);\r\n        handleServiceScroll();\r\n    }\r\n    \r\n    function createSEOWebGL() {\r\n        seoScene = new THREE.Scene();\r\n        seoCamera = new THREE.PerspectiveCamera(75, seoContainer.offsetWidth \/ seoContainer.offsetHeight, 1, 3000);\r\n        seoCamera.position.z = 1000;\r\n\r\n        seoRenderer = new THREE.WebGLRenderer({ canvas: seoCanvas, alpha: true, antialias: true });\r\n        seoRenderer.setSize(seoContainer.offsetWidth, seoContainer.offsetHeight);\r\n        seoRenderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\r\n\r\n        createSEOTexts();\r\n        createSEOParticles();\r\n        animateSEO();\r\n        \r\n        setTimeout(() => {\r\n            seoCanvas.style.opacity = '0.8';\r\n        }, 1000);\r\n        \r\n        seoContainer.addEventListener('mousemove', handleSEOMouseMove);\r\n        window.addEventListener('resize', handleSEOResize);\r\n    }\r\n    \r\n    function createSEOTexts() {\r\n        const canvas = document.createElement('canvas');\r\n        const context = canvas.getContext('2d');\r\n        canvas.width = 1024;\r\n        canvas.height = 512;\r\n        \r\n        context.clearRect(0, 0, canvas.width, canvas.height);\r\n        \r\n        const gradient = context.createLinearGradient(0, 0, canvas.width, 0);\r\n        gradient.addColorStop(0, '#EE5946');\r\n        gradient.addColorStop(1, '#442764');\r\n        \r\n        context.font = 'bold 240px Arial';\r\n        context.fillStyle = gradient;\r\n        context.textAlign = 'center';\r\n        context.textBaseline = 'middle';\r\n        context.fillText('SEO', canvas.width \/ 2, canvas.height \/ 2);\r\n        \r\n        const texture = new THREE.CanvasTexture(canvas);\r\n        texture.minFilter = THREE.LinearFilter;\r\n        texture.magFilter = THREE.LinearFilter;\r\n        \r\n        const material = new THREE.MeshBasicMaterial({\r\n            map: texture,\r\n            transparent: true,\r\n            alphaTest: 0.3,\r\n            side: THREE.DoubleSide\r\n        });\r\n        \r\n        const textConfigs = [\r\n            { x: 0, y: -200, z: -800, scale: 1.2, opacity: 0.15 },\r\n            { x: -200, y: -150, z: -600, scale: 0.8, opacity: 0.12 },\r\n            { x: 200, y: -250, z: -700, scale: 0.9, opacity: 0.1 },\r\n            { x: -600, y: 200, z: -300, scale: 0.6, opacity: 0.08 },\r\n            { x: 700, y: -150, z: -200, scale: 0.7, opacity: 0.06 },\r\n            { x: 0, y: -400, z: -900, scale: 1.5, opacity: 0.08 },\r\n        ];\r\n        \r\n        textConfigs.forEach((config, index) => {\r\n            const geometry = new THREE.PlaneGeometry(800, 400);\r\n            const instanceMaterial = material.clone();\r\n            instanceMaterial.opacity = config.opacity;\r\n            \r\n            const seoText = new THREE.Mesh(geometry, instanceMaterial);\r\n            seoText.position.set(config.x, config.y, config.z);\r\n            seoText.scale.set(config.scale, config.scale, 1);\r\n            seoText.userData = { \r\n                originalX: config.x, \r\n                originalY: config.y, \r\n                originalZ: config.z,\r\n                index: index,\r\n                baseScale: config.scale\r\n            };\r\n            seoScene.add(seoText);\r\n            seoTexts.push(seoText);\r\n        });\r\n        \r\n        createSEOGlows();\r\n    }\r\n    \r\n    function createSEOGlows() {\r\n        const glowCanvas = document.createElement('canvas');\r\n        const glowContext = glowCanvas.getContext('2d');\r\n        glowCanvas.width = 1024;\r\n        glowCanvas.height = 512;\r\n        \r\n        glowContext.clearRect(0, 0, glowCanvas.width, glowCanvas.height);\r\n        glowContext.shadowColor = '#442764';\r\n        glowContext.shadowBlur = 80;\r\n        glowContext.shadowOffsetX = 0;\r\n        glowContext.shadowOffsetY = 0;\r\n        \r\n        glowContext.font = 'bold 240px Arial';\r\n        glowContext.fillStyle = '#442764';\r\n        glowContext.textAlign = 'center';\r\n        glowContext.textBaseline = 'middle';\r\n        glowContext.fillText('SEO', glowCanvas.width \/ 2, glowCanvas.height \/ 2);\r\n        \r\n        const glowTexture = new THREE.CanvasTexture(glowCanvas);\r\n        glowTexture.minFilter = THREE.LinearFilter;\r\n        glowTexture.magFilter = THREE.LinearFilter;\r\n        \r\n        const glowMaterial = new THREE.MeshBasicMaterial({\r\n            map: glowTexture,\r\n            transparent: true,\r\n            alphaTest: 0.1,\r\n            blending: THREE.AdditiveBlending,\r\n            opacity: 0.3,\r\n            side: THREE.DoubleSide\r\n        });\r\n        \r\n        seoTexts.forEach((textMesh, index) => {\r\n            const glowGeometry = new THREE.PlaneGeometry(880, 440);\r\n            const glowMaterialInstance = glowMaterial.clone();\r\n            glowMaterialInstance.opacity = textMesh.material.opacity * 0.4;\r\n            \r\n            const seoTextGlow = new THREE.Mesh(glowGeometry, glowMaterialInstance);\r\n            seoTextGlow.position.copy(textMesh.position);\r\n            seoTextGlow.position.z -= 1;\r\n            seoTextGlow.scale.copy(textMesh.scale);\r\n            seoTextGlow.userData = { \r\n                textIndex: index,\r\n                baseScale: textMesh.userData.baseScale\r\n            };\r\n            seoScene.add(seoTextGlow);\r\n            seoTextGlows.push(seoTextGlow);\r\n        });\r\n    }\r\n    \r\n    function createSEOParticles() {\r\n        const geometry = new THREE.BufferGeometry();\r\n        const vertices = [];\r\n        const colors = [];\r\n\r\n        for (let i = 0; i < 100; i++) {\r\n            vertices.push(\r\n                (Math.random() - 0.5) * 2000,\r\n                (Math.random() - 0.5) * 1000,\r\n                (Math.random() - 0.5) * 1000\r\n            );\r\n\r\n            const color = new THREE.Color();\r\n            if (Math.random() < 0.5) {\r\n                color.setRGB(0.93, 0.35, 0.27);\r\n            } else {\r\n                color.setRGB(0.27, 0.15, 0.39);\r\n            }\r\n            colors.push(color.r, color.g, color.b);\r\n        }\r\n\r\n        geometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3));\r\n        geometry.setAttribute('color', new THREE.Float32BufferAttribute(colors, 3));\r\n\r\n        const material = new THREE.PointsMaterial({\r\n            size: 2,\r\n            vertexColors: true,\r\n            transparent: true,\r\n            opacity: 0.7,\r\n            blending: THREE.AdditiveBlending,\r\n            sizeAttenuation: true\r\n        });\r\n\r\n        seoParticles = new THREE.Points(geometry, material);\r\n        seoScene.add(seoParticles);\r\n    }\r\n    \r\n    function animateSEO() {\r\n        requestAnimationFrame(animateSEO);\r\n\r\n        const time = Date.now() * 0.001;\r\n\r\n        seoCamera.position.x += (seoMouseX * 0.3 - seoCamera.position.x) * 0.05;\r\n        seoCamera.position.y += (-seoMouseY * 0.3 - seoCamera.position.y) * 0.05;\r\n        seoCamera.lookAt(seoScene.position);\r\n\r\n        seoTexts.forEach((textMesh, index) => {\r\n            if (textMesh) {\r\n                const userData = textMesh.userData;\r\n                const timeOffset = index * 0.5;\r\n                \r\n                const pulseScale = userData.baseScale * (1 + Math.sin(time * 2 + timeOffset) * 0.08);\r\n                textMesh.scale.set(pulseScale, pulseScale, 1);\r\n                textMesh.rotation.z = Math.sin(time * 0.5 + timeOffset) * 0.05;\r\n                textMesh.position.y = userData.originalY + Math.sin(time * 0.8 + timeOffset) * 20;\r\n                textMesh.position.x = userData.originalX + Math.cos(time * 0.3 + timeOffset) * 10;\r\n            }\r\n        });\r\n\r\n        seoTextGlows.forEach((glowMesh, index) => {\r\n            if (glowMesh) {\r\n                const userData = glowMesh.userData;\r\n                const textMesh = seoTexts[userData.textIndex];\r\n                const timeOffset = index * 0.5;\r\n                \r\n                if (textMesh) {\r\n                    const glowScale = userData.baseScale * 1.1 * (1 + Math.sin(time * 1.5 + timeOffset) * 0.1);\r\n                    glowMesh.scale.set(glowScale, glowScale, 1);\r\n                    glowMesh.rotation.z = Math.sin(time * 0.3 + timeOffset) * 0.03;\r\n                    glowMesh.position.y = textMesh.position.y;\r\n                    glowMesh.position.x = textMesh.position.x;\r\n                    \r\n                    const baseOpacity = textMesh.material.opacity * 0.4;\r\n                    glowMesh.material.opacity = baseOpacity * (0.3 + Math.sin(time * 3 + timeOffset) * 0.2);\r\n                }\r\n            }\r\n        });\r\n\r\n        if (seoParticles) {\r\n            seoParticles.rotation.x = time * 0.05;\r\n            seoParticles.rotation.y = time * 0.02;\r\n            \r\n            const positions = seoParticles.geometry.attributes.position.array;\r\n            for (let i = 0; i < positions.length; i += 3) {\r\n                positions[i + 1] += Math.sin(time + i) * 0.3;\r\n                positions[i] += Math.cos(time + i * 0.1) * 0.2;\r\n            }\r\n            seoParticles.geometry.attributes.position.needsUpdate = true;\r\n        }\r\n\r\n        if (seoRenderer && seoScene && seoCamera) {\r\n            seoRenderer.render(seoScene, seoCamera);\r\n        }\r\n    }\r\n    \r\n    function initScrollAnimations() {\r\n        if (isIntersectionObserverAvailable) {\r\n            const observer = new IntersectionObserver((entries) => {\r\n                entries.forEach(entry => {\r\n                    if (entry.isIntersecting) {\r\n                        entry.target.style.opacity = '1';\r\n                        entry.target.style.transform = 'translateY(0)';\r\n                        \r\n                        if (entry.target.classList.contains('seo-stat-item')) {\r\n                            const counter = entry.target.querySelector('.seo-counter');\r\n                            if (counter && counter.dataset.target) {\r\n                                animateCounter(counter);\r\n                            }\r\n                        }\r\n                        \r\n                        if (entry.target.classList.contains('seo-service-panel')) {\r\n                            const pricingElement = entry.target.querySelector('.seo-pricing');\r\n                            if (pricingElement && !pricingElement.hasAnimated) {\r\n                                const index = Array.from(document.querySelectorAll('.seo-pricing')).indexOf(pricingElement);\r\n                                animatePricing(pricingElement, index);\r\n                                pricingElement.hasAnimated = true;\r\n                            }\r\n                            \r\n                            const serviceVisual = entry.target.querySelector('.seo-service-visual');\r\n                            if (serviceVisual && !serviceVisual.hasAnimated) {\r\n                                animateServiceLights(serviceVisual);\r\n                                serviceVisual.hasAnimated = true;\r\n                            }\r\n                        }\r\n                        \r\n                        if (entry.target.id === 'contact-title' && !entry.target.hasAnimated) {\r\n                            animateContactTitle();\r\n                            entry.target.hasAnimated = true;\r\n                        }\r\n                    }\r\n                });\r\n            }, { threshold: 0.1 });\r\n\r\n            document.querySelectorAll('.seo-service-panel').forEach(panel => {\r\n                observer.observe(panel);\r\n            });\r\n\r\n            document.querySelectorAll('.seo-stat-item').forEach(stat => {\r\n                observer.observe(stat);\r\n            });\r\n            \r\n            const contactTitle = document.getElementById('contact-title');\r\n            if (contactTitle) {\r\n                observer.observe(contactTitle);\r\n            }\r\n        } else {\r\n            window.addEventListener('scroll', () => {\r\n                document.querySelectorAll('.seo-service-panel, .seo-stat-item').forEach(el => {\r\n                    const rect = el.getBoundingClientRect();\r\n                    if (rect.top < window.innerHeight && rect.bottom > 0) {\r\n                        el.style.opacity = '1';\r\n                        el.style.transform = 'translateY(0)';\r\n                        \r\n                        if (el.classList.contains('seo-stat-item')) {\r\n                            const counter = el.querySelector('.seo-counter');\r\n                            if (counter && counter.dataset.target && !counter.hasAnimated) {\r\n                                animateCounter(counter);\r\n                                counter.hasAnimated = true;\r\n                            }\r\n                        }\r\n                        \r\n                        if (el.classList.contains('seo-service-panel')) {\r\n                            const pricingElement = el.querySelector('.seo-pricing');\r\n                            if (pricingElement && !pricingElement.hasAnimated) {\r\n                                const index = Array.from(document.querySelectorAll('.seo-pricing')).indexOf(pricingElement);\r\n                                animatePricing(pricingElement, index);\r\n                                pricingElement.hasAnimated = true;\r\n                            }\r\n                            \r\n                            const serviceVisual = el.querySelector('.seo-service-visual');\r\n                            if (serviceVisual && !serviceVisual.hasAnimated) {\r\n                                animateServiceLights(serviceVisual);\r\n                                serviceVisual.hasAnimated = true;\r\n                            }\r\n                        }\r\n                    }\r\n                });\r\n            });\r\n        }\r\n    }\r\n    \r\n    function animateCounter(counter) {\r\n        const target = parseInt(counter.dataset.target);\r\n        const duration = 2000;\r\n        const increment = target \/ (duration \/ 16);\r\n        let current = 0;\r\n        \r\n        const timer = setInterval(() => {\r\n            current += increment;\r\n            if (current >= target) {\r\n                current = target;\r\n                clearInterval(timer);\r\n            }\r\n            \r\n            let displayValue = Math.floor(current);\r\n            if (target === 350 || target === 95) {\r\n                displayValue += '%';\r\n            } else if (target === 500) {\r\n                displayValue += '+';\r\n            }\r\n            \r\n            counter.textContent = displayValue;\r\n        }, 16);\r\n    }\r\n    \r\n    function animateContactTitle() {\r\n        const contactTitle = document.getElementById('contact-title');\r\n        if (!contactTitle) return;\r\n        \r\n        const letters = contactTitle.querySelectorAll('.hero-letter');\r\n        \r\n        gsap.set(letters, { \r\n            y: 100, \r\n            opacity: 0, \r\n            rotationX: 90,\r\n            transformOrigin: \"50% 50% -50px\"\r\n        });\r\n        \r\n        gsap.to(contactTitle, {\r\n            duration: 0.5,\r\n            opacity: 1,\r\n            ease: \"power2.out\"\r\n        });\r\n        \r\n        gsap.to(letters, {\r\n            duration: 1.2,\r\n            y: 0,\r\n            opacity: 1,\r\n            rotationX: 0,\r\n            stagger: {\r\n                each: 0.08,\r\n                from: \"start\"\r\n            },\r\n            ease: \"back.out(1.7)\",\r\n            onComplete: function() {\r\n                gsap.to(letters, {\r\n                    duration: 4,\r\n                    y: -10,\r\n                    stagger: {\r\n                        each: 0.1,\r\n                        from: \"start\"\r\n                    },\r\n                    ease: \"sine.inOut\",\r\n                    repeat: -1,\r\n                    yoyo: true\r\n                });\r\n                \r\n                setInterval(() => {\r\n                    gsap.to(letters, {\r\n                        duration: 0.8,\r\n                        color: \"#EE5946\",\r\n                        textShadow: \"none\",\r\n                        stagger: {\r\n                            each: 0.08,\r\n                            from: 0\r\n                        },\r\n                        ease: \"power2.out\",\r\n                        onComplete: () => {\r\n                            gsap.to(letters, {\r\n                                duration: 0.8,\r\n                                color: \"#ffffff\",\r\n                                textShadow: \"none\",\r\n                                stagger: {\r\n                                    each: 0.08,\r\n                                    from: 0\r\n                                },\r\n                                ease: \"power2.inOut\",\r\n                                delay: 0.5\r\n                            });\r\n                        }\r\n                    });\r\n                }, 2000);\r\n            }\r\n        });\r\n    }\r\n    \r\n    function animatePricing(pricingElement, index) {\r\n        const tl = gsap.timeline({ delay: index * 0.2 });\r\n        \r\n        tl.to(pricingElement, {\r\n            duration: 0.8,\r\n            opacity: 1,\r\n            x: 0,\r\n            scale: 1,\r\n            ease: \"back.out(1.7)\"\r\n        })\r\n        .to(pricingElement, {\r\n            duration: 0.3,\r\n            color: \"#ffffff\",\r\n            ease: \"power2.inOut\"\r\n        }, \"-=0.3\")\r\n        .to(pricingElement, {\r\n            duration: 0.4,\r\n            color: \"#EE5946\",\r\n            scale: 1.05,\r\n            ease: \"power2.inOut\"\r\n        })\r\n        .to(pricingElement, {\r\n            duration: 0.3,\r\n            scale: 1,\r\n            ease: \"power2.inOut\"\r\n        })\r\n        .to(pricingElement, {\r\n            duration: 1,\r\n            letterSpacing: \"4px\",\r\n            ease: \"power2.out\"\r\n        }, \"-=0.8\");\r\n        \r\n        gsap.to(pricingElement, {\r\n            duration: 2,\r\n            textShadow: \"0 0 20px rgba(238, 89, 70, 0.5)\",\r\n            repeat: -1,\r\n            yoyo: true,\r\n            ease: \"power2.inOut\"\r\n        });\r\n    }\r\n    \r\n    function animateServiceLights(serviceVisual) {\r\n        const lightRays = serviceVisual.querySelectorAll('.light-ray');\r\n        const orbs = serviceVisual.querySelectorAll('.floating-orb');\r\n        const gridOverlay = serviceVisual.querySelector('.grid-overlay');\r\n        \r\n        gsap.fromTo(lightRays, {\r\n            opacity: 0,\r\n            scaleY: 0\r\n        }, {\r\n            opacity: 1,\r\n            scaleY: 1,\r\n            duration: 1.5,\r\n            stagger: 0.5,\r\n            ease: \"power2.out\",\r\n            repeat: -1,\r\n            yoyo: true\r\n        });\r\n        \r\n        gsap.fromTo(orbs, {\r\n            opacity: 0,\r\n            scale: 0\r\n        }, {\r\n            opacity: 0.7,\r\n            scale: 1,\r\n            duration: 2,\r\n            stagger: 0.3,\r\n            ease: \"back.out(1.7)\"\r\n        });\r\n        \r\n        gsap.to(gridOverlay, {\r\n            opacity: 0.6,\r\n            duration: 3,\r\n            ease: \"power2.inOut\",\r\n            repeat: -1,\r\n            yoyo: true\r\n        });\r\n        \r\n        gsap.to(serviceVisual, {\r\n            boxShadow: \"0 0 30px rgba(238, 89, 70, 0.2)\",\r\n            duration: 4,\r\n            ease: \"power2.inOut\",\r\n            repeat: -1,\r\n            yoyo: true\r\n        });\r\n    }\r\n    \r\n    function handleSEOMouseMove(event) {\r\n        const rect = seoContainer.getBoundingClientRect();\r\n        seoMouseX = (event.clientX - rect.left - rect.width \/ 2);\r\n        seoMouseY = (event.clientY - rect.top - rect.height \/ 2);\r\n    }\r\n    \r\n    function handleSEOResize() {\r\n        if (!seoContainer || !seoCamera || !seoRenderer) return;\r\n        \r\n        seoCamera.aspect = seoContainer.offsetWidth \/ seoContainer.offsetHeight;\r\n        seoCamera.updateProjectionMatrix();\r\n        seoRenderer.setSize(seoContainer.offsetWidth, seoContainer.offsetHeight);\r\n    }\r\n    \r\n    if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', initSEOPage);\r\n    } else {\r\n        initSEOPage();\r\n    }\r\n    \r\n    function initServiceSphere() {\r\n        const canvas = document.getElementById('sphere-canvas-1');\r\n        if (!canvas || !window.THREE) return;\r\n        \r\n        const container = canvas.parentElement;\r\n        const scene = new THREE.Scene();\r\n        const camera = new THREE.PerspectiveCamera(75, container.offsetWidth \/ container.offsetHeight, 0.1, 1000);\r\n        camera.position.z = 8;\r\n        \r\n        const renderer = new THREE.WebGLRenderer({ canvas, alpha: true, antialias: true });\r\n        renderer.setSize(container.offsetWidth, container.offsetHeight);\r\n        renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\r\n        \r\n        const mainRadius = 7;\r\n        const smallSphereRadius = 0.08;\r\n        const spheresData = [];\r\n        const numSpheres = 300;\r\n        const phi = Math.PI * (3 - Math.sqrt(5));\r\n        \r\n        for (let i = 0; i < numSpheres; i++) {\r\n            const y = 1 - (i \/ (numSpheres - 1)) * 2;\r\n            const radiusAtY = Math.sqrt(1 - y * y);\r\n            const theta = phi * i;\r\n            const x = Math.cos(theta) * radiusAtY;\r\n            const z = Math.sin(theta) * radiusAtY;\r\n            \r\n            const geometry = new THREE.SphereGeometry(smallSphereRadius, 16, 16);\r\n            const material = new THREE.MeshPhongMaterial({\r\n                color: 0x442764,\r\n                emissive: 0x2d1b35,\r\n                shininess: 100,\r\n            });\r\n            \r\n            const sphere = new THREE.Mesh(geometry, material);\r\n            sphere.position.set(x * mainRadius, y * mainRadius, z * mainRadius);\r\n            scene.add(sphere);\r\n            spheresData.push(sphere);\r\n        }\r\n        \r\n        const lines = [];\r\n        const maxLines = 15;\r\n        const lineMaterial = new THREE.LineBasicMaterial({\r\n            color: 0xffffff,\r\n            transparent: true,\r\n            opacity: 0.6,\r\n            linewidth: 1\r\n        });\r\n        \r\n        for (let i = 0; i < maxLines; i++) {\r\n            const lineGeometry = new THREE.BufferGeometry();\r\n            const positions = new Float32Array(6);\r\n            lineGeometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));\r\n            \r\n            const line = new THREE.Line(lineGeometry, lineMaterial.clone());\r\n            line.visible = false;\r\n            line.userData = {\r\n                progress: 0,\r\n                startSphere: null,\r\n                endSphere: null,\r\n                active: false,\r\n                opacity: 0\r\n            };\r\n            \r\n            scene.add(line);\r\n            lines.push(line);\r\n        }\r\n        \r\n        const activateLine = () => {\r\n            const inactiveLines = lines.filter(l => !l.userData.active);\r\n            if (inactiveLines.length === 0) return;\r\n            \r\n            const line = inactiveLines[Math.floor(Math.random() * inactiveLines.length)];\r\n            const randomStartSphere = spheresData[Math.floor(Math.random() * spheresData.length)];\r\n            const randomEndSphere = spheresData[Math.floor(Math.random() * spheresData.length)];\r\n            \r\n            if (randomStartSphere === randomEndSphere) return;\r\n            \r\n            line.userData.active = true;\r\n            line.userData.progress = 0;\r\n            line.userData.startSphere = randomStartSphere;\r\n            line.userData.endSphere = randomEndSphere;\r\n            line.userData.opacity = 0;\r\n            line.visible = true;\r\n        };\r\n        \r\n        const lineInterval = setInterval(() => {\r\n            if (Math.random() > 0.3) activateLine();\r\n        }, 200);\r\n        \r\n        const ambientLight = new THREE.AmbientLight(0xffffff, 0.4);\r\n        scene.add(ambientLight);\r\n        \r\n        const pointLight1 = new THREE.PointLight(0xffffff, 1, 100);\r\n        pointLight1.position.set(10, 10, 10);\r\n        scene.add(pointLight1);\r\n        \r\n        const pointLight2 = new THREE.PointLight(0x442764, 0.8, 100);\r\n        pointLight2.position.set(-10, -10, -10);\r\n        scene.add(pointLight2);\r\n        \r\n        let rotationSpeedX = 0.002;\r\n        let rotationSpeedY = 0.001;\r\n        let rotationSpeedZ = 0.0005;\r\n        let targetSpeedX = 0.002;\r\n        let targetSpeedY = 0.001;\r\n        let targetSpeedZ = 0.0005;\r\n        let movementPattern = 0;\r\n        \r\n        const changeMovementPattern = () => {\r\n            movementPattern = Math.floor(Math.random() * 5);\r\n            \r\n            switch(movementPattern) {\r\n                case 0:\r\n                    targetSpeedX = (Math.random() - 0.5) * 0.004;\r\n                    targetSpeedY = (Math.random() - 0.5) * 0.004;\r\n                    targetSpeedZ = (Math.random() - 0.5) * 0.002;\r\n                    break;\r\n                case 1:\r\n                    targetSpeedX = (Math.random() - 0.5) * 0.008;\r\n                    targetSpeedY = (Math.random() - 0.5) * 0.008;\r\n                    targetSpeedZ = (Math.random() - 0.5) * 0.004;\r\n                    break;\r\n                case 2:\r\n                    targetSpeedX = (Math.random() - 0.5) * 0.001;\r\n                    targetSpeedY = (Math.random() - 0.5) * 0.001;\r\n                    targetSpeedZ = (Math.random() - 0.5) * 0.0005;\r\n                    break;\r\n                case 3:\r\n                    targetSpeedX = Math.sin(Date.now() * 0.001) * 0.005;\r\n                    targetSpeedY = Math.cos(Date.now() * 0.001) * 0.005;\r\n                    targetSpeedZ = (Math.random() - 0.5) * 0.003;\r\n                    break;\r\n                case 4:\r\n                    targetSpeedX = 0;\r\n                    targetSpeedY = (Math.random() - 0.5) * 0.006;\r\n                    targetSpeedZ = (Math.random() - 0.5) * 0.003;\r\n                    break;\r\n            }\r\n        };\r\n        \r\n        changeMovementPattern();\r\n        const patternInterval = setInterval(() => {\r\n            changeMovementPattern();\r\n        }, 5000 + Math.random() * 5000);\r\n        \r\n        let animationId;\r\n        const animate = () => {\r\n            animationId = requestAnimationFrame(animate);\r\n            \r\n            rotationSpeedX += (targetSpeedX - rotationSpeedX) * 0.02;\r\n            rotationSpeedY += (targetSpeedY - rotationSpeedY) * 0.02;\r\n            rotationSpeedZ += (targetSpeedZ - rotationSpeedZ) * 0.02;\r\n            \r\n            scene.rotation.y += rotationSpeedY;\r\n            scene.rotation.x += rotationSpeedX;\r\n            scene.rotation.z += rotationSpeedZ;\r\n            \r\n            if (movementPattern === 3) {\r\n                const pulse = Math.sin(Date.now() * 0.001) * 0.002;\r\n                scene.rotation.x += pulse;\r\n                scene.rotation.y += pulse;\r\n            }\r\n            \r\n            lines.forEach((line) => {\r\n                if (line.userData.active) {\r\n                    line.userData.progress += 0.015;\r\n                    line.userData.opacity = Math.min(line.userData.opacity + 0.05, 0.6);\r\n                    \r\n                    if (line.userData.progress >= 1) {\r\n                        line.userData.active = false;\r\n                        line.visible = false;\r\n                        line.userData.progress = 0;\r\n                    } else {\r\n                        const startSphere = line.userData.startSphere;\r\n                        const endSphere = line.userData.endSphere;\r\n                        \r\n                        if (startSphere && endSphere) {\r\n                            const startPos = startSphere.position;\r\n                            const endPos = endSphere.position;\r\n                            \r\n                            const currentPos = new THREE.Vector3().lerpVectors(\r\n                                startPos,\r\n                                endPos,\r\n                                line.userData.progress\r\n                            );\r\n                            \r\n                            const positions = line.geometry.attributes.position.array;\r\n                            positions[0] = startPos.x;\r\n                            positions[1] = startPos.y;\r\n                            positions[2] = startPos.z;\r\n                            positions[3] = currentPos.x;\r\n                            positions[4] = currentPos.y;\r\n                            positions[5] = currentPos.z;\r\n                            \r\n                            line.geometry.attributes.position.needsUpdate = true;\r\n                            line.material.opacity = line.userData.opacity * (1 - line.userData.progress * 0.5);\r\n                        }\r\n                    }\r\n                }\r\n            });\r\n            \r\n            renderer.render(scene, camera);\r\n        };\r\n        \r\n        animate();\r\n        \r\n        return () => {\r\n            cancelAnimationFrame(animationId);\r\n            clearInterval(lineInterval);\r\n            clearInterval(patternInterval);\r\n            spheresData.forEach((sphere) => {\r\n                sphere.geometry.dispose();\r\n                sphere.material.dispose();\r\n            });\r\n            lines.forEach((line) => {\r\n                line.geometry.dispose();\r\n                line.material.dispose();\r\n            });\r\n            renderer.dispose();\r\n        };\r\n    }\r\n    \r\n    if (isIntersectionObserverAvailable) {\r\n        const sphereObserver = new IntersectionObserver((entries) => {\r\n            entries.forEach(entry => {\r\n                if (entry.isIntersecting && !entry.target.dataset.sphereInitialized) {\r\n                    entry.target.dataset.sphereInitialized = 'true';\r\n                    setTimeout(initServiceSphere, 500);\r\n                }\r\n            });\r\n        }, { threshold: 0.1 });\r\n        \r\n        const firstServicePanel = document.querySelector('.seo-service-panel');\r\n        if (firstServicePanel) {\r\n            sphereObserver.observe(firstServicePanel);\r\n        }\r\n    } else {\r\n        setTimeout(initServiceSphere, 2000);\r\n    }\r\n})();\r\n<\/script>\r\n\r\n<style>\r\n.hero-letter {\r\n    display: inline-block;\r\n    transform-style: preserve-3d;\r\n    transition: all 0.3s ease;\r\n}\r\n\r\n.hero-letter:hover {\r\n    color: #EE5946 !important;\r\n    transform: scale(1.1) rotateY(10deg);\r\n}\r\n\r\n.bg-particle {\r\n    filter: blur(1px);\r\n    box-shadow: 0 0 10px currentColor;\r\n    animation: particleFloat 8s infinite ease-in-out;\r\n}\r\n\r\n@keyframes particleFloat {\r\n    0%, 100% {\r\n        transform: translateY(0) scale(1);\r\n    }\r\n    50% {\r\n        transform: translateY(-20px) scale(1.2);\r\n    }\r\n}\r\n\r\n.seo-service-visual {\r\n    position: relative;\r\n}\r\n\r\n.light-ray {\r\n    position: absolute;\r\n    background: linear-gradient(45deg, transparent, rgba(238, 89, 70, 0.3), transparent);\r\n    width: 2px;\r\n    height: 100%;\r\n    opacity: 0;\r\n    animation: lightRayMove 4s infinite ease-in-out;\r\n}\r\n\r\n.light-ray-1 {\r\n    left: 20%;\r\n    animation-delay: 0s;\r\n    background: linear-gradient(45deg, transparent, rgba(238, 89, 70, 0.4), transparent);\r\n}\r\n\r\n.light-ray-2 {\r\n    left: 50%;\r\n    animation-delay: 1.5s;\r\n    background: linear-gradient(45deg, transparent, rgba(183, 148, 214, 0.3), transparent);\r\n}\r\n\r\n.light-ray-3 {\r\n    left: 80%;\r\n    animation-delay: 3s;\r\n    background: linear-gradient(45deg, transparent, rgba(238, 89, 70, 0.2), transparent);\r\n}\r\n\r\n@keyframes lightRayMove {\r\n    0%, 100% {\r\n        opacity: 0;\r\n        transform: translateY(-100px) scaleY(0.5);\r\n    }\r\n    50% {\r\n        opacity: 1;\r\n        transform: translateY(0) scaleY(1);\r\n    }\r\n}\r\n\r\n.floating-orb {\r\n    position: absolute;\r\n    border-radius: 50%;\r\n    background: radial-gradient(circle, rgba(238, 89, 70, 0.4), transparent);\r\n    animation: floatOrb 6s infinite ease-in-out;\r\n}\r\n\r\n.orb-1 {\r\n    width: 60px;\r\n    height: 60px;\r\n    top: 20%;\r\n    left: 15%;\r\n    animation-delay: 0s;\r\n    background: radial-gradient(circle, rgba(238, 89, 70, 0.3), transparent);\r\n}\r\n\r\n.orb-2 {\r\n    width: 40px;\r\n    height: 40px;\r\n    top: 60%;\r\n    right: 20%;\r\n    animation-delay: 2s;\r\n    background: radial-gradient(circle, rgba(183, 148, 214, 0.4), transparent);\r\n}\r\n\r\n.orb-3 {\r\n    width: 30px;\r\n    height: 30px;\r\n    top: 80%;\r\n    left: 60%;\r\n    animation-delay: 4s;\r\n    background: radial-gradient(circle, rgba(238, 89, 70, 0.2), transparent);\r\n}\r\n\r\n@keyframes floatOrb {\r\n    0%, 100% {\r\n        transform: translateY(0px) translateX(0px) scale(1);\r\n        opacity: 0.3;\r\n    }\r\n    33% {\r\n        transform: translateY(-30px) translateX(20px) scale(1.2);\r\n        opacity: 0.7;\r\n    }\r\n    66% {\r\n        transform: translateY(-10px) translateX(-15px) scale(0.8);\r\n        opacity: 0.5;\r\n    }\r\n}\r\n\r\n.grid-overlay {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    bottom: 0;\r\n    background-image: \r\n        linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),\r\n        linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);\r\n    background-size: 40px 40px;\r\n    opacity: 0;\r\n    animation: gridPulse 8s infinite ease-in-out;\r\n}\r\n\r\n@keyframes gridPulse {\r\n    0%, 100% {\r\n        opacity: 0;\r\n        transform: scale(1);\r\n    }\r\n    50% {\r\n        opacity: 0.6;\r\n        transform: scale(1.05);\r\n    }\r\n}\r\n\r\n.seo-service-visual:hover .light-ray {\r\n    animation-duration: 2s;\r\n}\r\n\r\n.seo-service-visual:hover .floating-orb {\r\n    animation-duration: 3s;\r\n}\r\n\r\n.seo-service-visual:hover .grid-overlay {\r\n    animation-duration: 4s;\r\n}\r\n\r\n.seo-service-visual::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    bottom: 0;\r\n    background: radial-gradient(circle at 50% 50%, rgba(238, 89, 70, 0.1), transparent);\r\n    opacity: 0;\r\n    transition: opacity 1s ease;\r\n}\r\n\r\n.seo-service-visual:hover::before {\r\n    opacity: 1;\r\n}\r\n\r\n.seo-cta-button:hover {\r\n    background: linear-gradient(135deg, rgba(68, 39, 100, 0.4) 0%, rgba(88, 51, 128, 0.3) 100%) !important;\r\n    border-color: rgba(68, 39, 100, 0.6) !important;\r\n    transform: translateY(-2px) translateX(5px) !important;\r\n}\r\n\r\n.seo-service-button:hover {\r\n    background: linear-gradient(135deg, rgba(68, 39, 100, 0.3) 0%, rgba(88, 51, 128, 0.25) 100%) !important;\r\n    border-color: rgba(68, 39, 100, 0.4) !important;\r\n    transform: translateY(-5px) !important;\r\n}\r\n\r\n.seo-service-button:hover span {\r\n    transform: translate(5px, -5px) !important;\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n    .seo-service-panel {\r\n        grid-template-columns: 1fr !important;\r\n        gap: 80px !important;\r\n        text-align: center !important;\r\n    }\r\n    \r\n    #results > div > div {\r\n        grid-template-columns: repeat(2, 1fr) !important;\r\n        gap: 60px !important;\r\n    }\r\n}\r\n\r\n@media (max-width: 768px) {\r\n    #seo-hero-container {\r\n        height: 80vh !important;\r\n        min-height: 500px !important;\r\n        padding-top: 80px !important;\r\n    }\r\n    \r\n    #services, #results, #contact {\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n    }\r\n    \r\n    .seo-service-panel {\r\n        margin-bottom: 120px !important;\r\n        gap: 60px !important;\r\n        text-align: center !important;\r\n    }\r\n    \r\n    .seo-service-panel > div {\r\n        padding-left: 0 !important;\r\n        padding-right: 0 !important;\r\n        max-width: 100% !important;\r\n        text-align: center !important;\r\n    }\r\n    \r\n    #results > div > div {\r\n        grid-template-columns: 1fr !important;\r\n        gap: 40px !important;\r\n    }\r\n    \r\n    .seo-cta-button, .seo-service-button {\r\n        padding: 20px 40px !important;\r\n        font-size: 12px !important;\r\n    }\r\n    \r\n    .hero-letter {\r\n        font-size: clamp(40px, 10vw, 120px) !important;\r\n    }\r\n    \r\n    #hero-paragraph {\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n        max-width: 100% !important;\r\n        box-sizing: border-box !important;\r\n        text-align: center !important;\r\n    }\r\n    \r\n    .service-paragraph {\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n        max-width: 100% !important;\r\n        box-sizing: border-box !important;\r\n        text-align: center !important;\r\n        margin-left: auto !important;\r\n        margin-right: auto !important;\r\n    }\r\n    \r\n    .seo-service-panel h2 {\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n        text-align: center !important;\r\n    }\r\n    \r\n    .seo-pricing {\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n        text-align: center !important;\r\n        line-height: 1.8 !important;\r\n        margin-top: 40px !important;\r\n        margin-bottom: 60px !important;\r\n    }\r\n    \r\n    .seo-service-visual {\r\n        width: 100% !important;\r\n        max-width: 400px !important;\r\n        height: 400px !important;\r\n        margin: 0 auto !important;\r\n        display: block !important;\r\n    }\r\n    \r\n    #sphere-canvas-1 {\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n    }\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u6570\u5b57 \u4e3b\u5bfc\u5730\u4f4d \u5728\u57c3\u53ca\u63a8\u52a8\u5173\u952e\u7ee9\u6548\u6307\u6807\u589e\u957f\u7684\u641c\u7d22\u5f15\u64ce\u4f18\u5316\u670d\u52a1 \u4ece \u5168\u7ad9 \u6280\u672f SEO \u548c \u9875\u9762 \u4f18\u5316 \u5230 \u963f\u62c9 [&hellip;]<\/p>\n","protected":false},"featured_media":1249,"template":"elementor_header_footer","meta":{"footnotes":""},"portfolio_cat":[],"portfolio_skills":[],"class_list":["post-20337","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/portfolio\/20337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/types\/portfolio"}],"version-history":[{"count":5,"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/portfolio\/20337\/revisions"}],"predecessor-version":[{"id":21226,"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/portfolio\/20337\/revisions\/21226"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/media\/1249"}],"wp:attachment":[{"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=20337"}],"wp:term":[{"taxonomy":"portfolio_cat","embeddable":true,"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/portfolio_cat?post=20337"},{"taxonomy":"portfolio_skills","embeddable":true,"href":"https:\/\/webbingstone.com\/zh-hans\/wp-json\/wp\/v2\/portfolio_skills?post=20337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}