/* 灼华 GEO · 蓝白视觉主题。修改主色可从这里开始。 */
:root{--ink:#10213f;--navy:#071b42;--muted:#5f718d;--cream:#f4f8ff;--line:#e2eaf5;--orange:#075ce5;--gold:#6fc4ff;--white:#fff;--max:1240px}
body{color:var(--ink);background:#fff;letter-spacing:-.012em}
.eyebrow{color:#075ce5;letter-spacing:.22em}
.section{padding:124px 0}
.section-head h2,.intro h2,.contact h2{font-weight:800;letter-spacing:-.065em}
.section-head p{color:#61718b}
.btn{transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.btn.primary{background:#075ce5;box-shadow:0 15px 34px #075ce52a}
.btn.primary:hover{background:#004dce;box-shadow:0 20px 44px #075ce540}
.btn.secondary{border-color:#c4d7f5;color:#0c4ebf;background:#ffffffb5}
.btn.light{border-color:#dce6f4}
.site-header{background:#ffffffd9;border-color:#e7edf7;box-shadow:0 5px 30px #184d9410}
.nav{height:80px}
.brand{font-weight:800;color:#092b6b;gap:8px}
.brand-mark{width:43px;height:43px;background:transparent;box-shadow:none;color:#075ce5;border-radius:0;font-size:23px;overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand small{color:#6a8bbd;font-size:9px}
.nav-links{color:#344664}
.nav-cta{background:#075ce5;box-shadow:0 8px 21px #075ce52b}
.hero{background:linear-gradient(142deg,#f9fcff 0%,#f2f7ff 54%,#eaf3ff 100%);color:#0b2451;min-height:730px;isolation:isolate}
.hero:before{width:850px;height:850px;right:-160px;top:-145px;border:1px solid #5692e119;box-shadow:0 0 0 90px #4389e309,0 0 0 180px #4389e305}
.hero:after{background:radial-gradient(circle at 74% 40%,#a8d3ffba 0%,#b9deff64 24%,transparent 49%),radial-gradient(circle at 20% 14%,#ffffff 0%,transparent 46%)}
.hero-grid{padding:105px 0 110px;grid-template-columns:1.12fr .88fr;gap:52px}
.hero-tag{color:#0d64dc;font-weight:800}
.hero h1{font-size:clamp(58px,6.4vw,96px);font-weight:790;letter-spacing:-.078em;line-height:1.1;margin:25px 0 29px}
.hero h1 span{background:linear-gradient(105deg,#075ce5,#2294f8);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-copy{color:#586f91;font-size:18px;max-width:560px;line-height:1.9}
.hero-bottom{color:#5d789d;margin-top:70px}
.hero-bottom span{border-color:#a8bdd9}
.visual{height:540px;filter:drop-shadow(0 35px 55px #0d58bf1c)}
.orbit{width:480px;height:480px;border:1px solid #3d87e62b;box-shadow:0 0 0 75px #177ae70b,0 0 0 150px #177ae705}
.orbit.two{width:365px;height:365px;border-color:#3d87e63a;box-shadow:none}
.orbit.three{width:250px;height:250px;background:#ffffff40;border-color:#8cbdff50;box-shadow:inset 0 1px 0 #fff}
.core{width:300px;height:300px;transform:none;background:transparent;box-shadow:none;border-radius:0;display:grid;place-items:center}
.core span{display:none}
.core img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 25px 30px #075ce545)}
.float{background:#ffffffd9;border:1px solid #ffffffd9;backdrop-filter:blur(14px);box-shadow:0 20px 50px #0b4eaa1b;color:#143362;border-radius:17px;padding:15px 18px}
.float:before{background:#126beb}
.float small{color:#7190b4}.float strong{font-size:14px}
.float.a{top:42px;left:-20px}.float.b{right:-18px;top:100px}.float.c{bottom:59px;left:-28px}.float.d{bottom:95px;right:-16px}
.ticker{background:#fff;border-color:#e8eef8}.ticker-inner{min-height:84px;color:#7186a5}.ticker strong{color:#254367}
.intro{background:#f5f9ff}
.intro-text{color:#516988}
.intro-note{border-color:#d6e2f2;color:#69809e}
.intro-point{border-color:#e5edf8;box-shadow:0 12px 35px #1755a308;border-radius:20px}
.intro-point b{color:#075ce5}.intro-point p{color:#657895}
.service-card{border-color:#e4ebf5;border-radius:22px;box-shadow:0 14px 35px #10498907}
.service-card:hover{border-color:#a9c9fb;box-shadow:0 25px 45px #075ce51a}
.service-card.featured{background:linear-gradient(145deg,#062864,#0c5ad1);border-color:#0c5ad1;box-shadow:0 25px 50px #075ce529}
.service-card.featured p{color:#c7dafa}.service-card.featured .more,.service-card.featured .no{color:#9ed6ff}
.service-card .no,.service-card .more{color:#075ce5}
.industries{background:#f3f7fd}
.industry-card{background:linear-gradient(145deg,#082a69,#1764c5 84%);box-shadow:0 24px 45px #0c4b9c1f}
.industry-card:nth-child(2){background:linear-gradient(145deg,#0b3e76,#1186c9)}
.industry-card:before{border-color:#ffffff13}
.industry-card .label{color:#a4d7ff}
.industry-card p{color:#deedff}
.industry-card{display:flex;flex-direction:column}.industry-card ul{margin-bottom:20px}.industry-more{margin-top:auto;align-self:flex-start;font-size:13px;font-weight:800;color:#fff;border-bottom:1px solid #ffffff85;padding-bottom:4px}.industry-more:hover{border-color:#fff}.industry-expand{margin:26px 0 0;color:#7186a4;font-size:13px}.industry-expand a{color:#075ce5;font-weight:700}.insights .note a{font-weight:800;color:#075ce5}
.process{background:#fff;color:#10213f}
.process .section-head p{color:#61718b}
.step{border-color:#cbdcf4}.step .num{color:#0d66dc}.step p{color:#667b98}
.deliverables{border-color:#d6e5f8;background:#f4f8ff;color:#687d9b}.deliverables strong{color:#12376b}
.article{border-color:#e4ebf5;border-radius:22px;box-shadow:0 16px 38px #1b549509}
.article .tag,.article a{color:#075ce5}
.note{background:#f1f7ff;border-color:#075ce5;color:#526c90}
.faq{background:#f5f9ff}.faq details{border-color:#dce7f5}.faq summary:after{color:#075ce5}.faq p{color:#627795}
.contact{background:radial-gradient(circle at 80% 20%,#246cd9 0%,transparent 34%),linear-gradient(125deg,#071b42,#0b326d);color:#fff}
.contact .eyebrow{color:#8ecbff}.contact p{color:#c5d7ee}.contact-box{background:#ffffff10;border-color:#ffffff3a;backdrop-filter:blur(14px)}.contact-box small{color:#9abce4}.contact-box .pending{color:#a7d4ff}.contact-help{color:#b3cbed}
footer{background:#061937;color:#b7c8e0}.top-link{color:#8cc9ff}
@media(max-width:960px){.visual{transform:scale(.82)}}
@media(max-width:720px){.section{padding:82px 0}.nav{height:66px}.nav-links{top:66px}.hero-grid{padding:80px 0 58px}.hero h1{font-size:clamp(52px,11vw,76px)}.hero-copy{font-size:16px}.visual{height:390px;transform:scale(.68);margin:-42px auto -28px}.hero-bottom{margin-top:45px}.industry-card{min-height:360px}}
@media(max-width:420px){.visual{margin-left:-42px}.hero h1{font-size:49px}.brand-mark{width:39px;height:39px}}
/* 预设1：参考环绕式圆点，保留蓝白主视觉与中央品牌标识。 */
body,button,input,textarea,select{font-family:"Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif}
.step .num{font-family:"Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;font-style:normal}
.visual{width:520px;max-width:none;height:540px;flex-shrink:0;filter:drop-shadow(0 28px 45px #0d58bf16)}
.visual .orbit{width:412px;height:412px;border:1.5px solid #38bfb2a0;box-shadow:0 0 0 65px #197be709,0 0 0 125px #197be704}
.visual .orbit.two{width:310px;height:310px;border-color:#5ea3ee4a;box-shadow:none}
.visual .orbit.three{width:240px;height:240px;background:#ffffff74;border-color:#a8ccfa6b;box-shadow:inset 0 1px 0 #fff,0 22px 55px #1869c017}
.visual .core{width:238px;height:238px;z-index:2}
.visual .core img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 15px 20px #075ce532)}
.model-lines{position:absolute;inset:0;width:520px;height:540px;z-index:0;overflow:visible}
.model-lines path{fill:none;stroke:#4e93dc4a;stroke-width:1.2}
.model-node{position:absolute;z-index:3;width:104px;height:104px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#ffffffd9,#cce2ffb5);border:1px solid #ffffffef;box-shadow:0 13px 32px #2464b329,inset 0 1px 0 #fff;color:#10418e;font-size:16px;font-weight:800;letter-spacing:-.02em;text-align:center;backdrop-filter:blur(12px);transition:transform .25s ease,box-shadow .25s ease}
.model-node:hover{transform:translateY(-5px);box-shadow:0 19px 38px #2464b33a}
.model-node.n1{top:12px;left:208px}.model-node.n2{top:115px;right:30px}.model-node.n3{top:321px;right:30px}.model-node.n4{bottom:12px;left:208px}.model-node.n5{top:321px;left:30px}.model-node.n6{top:115px;left:30px}
.platform-note{color:#8296b3;font-size:11px;margin:15px 0 0}
@media(max-width:960px){.visual{transform:scale(.83);transform-origin:center center}}
@media(max-width:720px){.visual{height:540px;margin:-34px 0 -130px calc(50% - 260px);transform:scale(.66);transform-origin:center center}.platform-note{margin-top:16px}}
@media(max-width:420px){.visual{margin-left:calc(50% - 260px);margin-bottom:-165px;transform:scale(.55)}}
/* 六个圆点错峰轻浮动，环线轻呼吸；滚动时内容渐入。 */
@keyframes model-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-18px,0)}}
@keyframes ring-breathe{0%,100%{opacity:.5;filter:drop-shadow(0 0 0 #38bfb200)}50%{opacity:1;filter:drop-shadow(0 0 12px #38bfb288)}}
.model-node{animation:model-float 4.2s ease-in-out infinite;animation-delay:var(--float-delay,0s);will-change:transform}
.model-node.n1{--float-delay:-.3s}.model-node.n2{--float-delay:-1.4s}.model-node.n3{--float-delay:-3s}.model-node.n4{--float-delay:-2.1s}.model-node.n5{--float-delay:-4.2s}.model-node.n6{--float-delay:-5.1s}
.model-node:hover{box-shadow:0 19px 38px #2464b33a}
.visual .orbit:first-child{animation:ring-breathe 5.2s ease-in-out infinite}
.motion-toggle{margin-top:10px;border:1px solid #aac7ef;background:#ffffffbb;color:#17549c;padding:8px 13px;border-radius:100px;font-size:12px;cursor:pointer;box-shadow:0 8px 22px #155eb31a}
.motion-toggle:hover{background:#fff;border-color:#5a9ae9}
.motion-toggle:focus-visible{outline:3px solid #277ae5;outline-offset:3px}
.motion-off .model-node,.motion-off .visual .orbit:first-child{animation:none!important}
.motion-ready [data-reveal]{opacity:0;translate:0 28px;transition:opacity .72s ease,translate .72s cubic-bezier(.2,.8,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal].is-visible{opacity:1;translate:0 0}
@media(prefers-reduced-motion:reduce){:root:not(.motion-on) .model-node,:root:not(.motion-on) .visual .orbit:first-child{animation:none!important}:root:not(.motion-on) .model-node,:root:not(.motion-on) [data-reveal]{transition:none!important}:root:not(.motion-on).motion-ready [data-reveal]{opacity:1;translate:none}}
