/* @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); */
/*@import url('https://fonts.font.im/css2?family=Inter:wght@300;400;500;600;700&display=swap');*/

:root { --primary-color:#0062FF; --secondary-color:#0A2540; --accent-color:#00B4FF; --text-color:#333333; --light-bg:#F5F9FF; }

body { font-family:'Inter',sans-serif; color:var(--text-color); overflow-x:hidden; }

.btn-primary { background-color:var(--primary-color); transition:all .3s ease; }
.btn-primary:hover { background-color:#0051d3; transform:translateY(-2px); box-shadow:0 10px 15px -3px rgba(0,98,255,.3); }

.btn-secondary { background-color:transparent; border:2px solid var(--primary-color); color:var(--primary-color); transition:all .3s ease; }
.btn-secondary:hover { background-color:var(--primary-color); color:#fff; }

.nav-link { position:relative; transition:all .3s ease; }
.nav-link::after { content:''; position:absolute; bottom:-5px; left:0; width:0; height:2px; background-color:var(--primary-color); transition:width .3s ease; }
.nav-link:hover::after { width:100%; }
.active::after { width:100%; }

.animate-fade-in { opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
.animate-fade-in.visible { opacity:1; transform:translateY(0); }

.gradient-bg { background:linear-gradient(135deg, var(--secondary-color) 0%, var(--primary-color) 100%); }

.hero-bg { background-image:linear-gradient(135deg, #F6F9FF 0%, #E9F3FF 45%, #FFFFFF 100%); background-size:cover; background-position:center; }

.feature-card { transition:all .3s ease; border:1px solid transparent; }
.feature-card:hover { transform:translateY(-5px); box-shadow:0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04); border-color:var(--accent-color); }

.stats-card { background:rgba(255,255,255,.1); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.2); }

.pricing-card { transition:all .3s ease; border:2px solid transparent; }
.pricing-card:hover { transform:translateY(-10px); border-color:var(--primary-color); }
.pricing-popular { border-color:var(--primary-color); transform:scale(1.05); }
.pricing-popular:hover { transform:scale(1.05) translateY(-10px); }

#canvas-container { position:absolute; top:0; left:0; width:100%; height:100%; z-index:-1; }

.counter { font-weight:700; font-size:2.5rem; color:var(--primary-color); }
@media (max-width:768px){ .counter{ font-size:2rem; } }

@media (prefers-color-scheme:dark){
  :root { --text-color:#F5F5F5; --light-bg:#1A1A1A; }
  body { background-color:#121212; }
  .card { background-color:#1E1E1E; }
}

.loader { border:4px solid rgba(0,98,255,.1); border-left-color:var(--primary-color); border-radius:50%; width:40px; height:40px; animation:spin 1s linear infinite; }
@keyframes spin { 0%{ transform:rotate(0deg); } 100%{ transform:rotate(360deg); } }

::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:#f1f1f1; }
::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:#94a3b8; }

.feature-icon { transition:all .3s ease; }
.feature-card:hover .feature-icon { transform:scale(1.1); color:var(--primary-color); }

.progress-bar { height:8px; background-color:#e2e8f0; border-radius:4px; overflow:hidden; }
.progress-bar-fill { height:100%; background-color:var(--primary-color); border-radius:4px; transition:width 1s ease; }

.case-card { transition:all .3s ease; border:1px solid transparent; }
.case-card:hover { transform:translateY(-5px); box-shadow:0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04); border-color:var(--accent-color); }

.category-btn { transition:all .3s ease; }
.category-btn:hover, .category-btn.active { background-color:var(--primary-color); color:#fff; }

.form-input:focus { box-shadow:0 0 0 3px rgba(0,98,255,.2); }

.contact-info-box { transition:all .3s ease; }
.contact-info-box:hover { transform:translateY(-5px); box-shadow:0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04); }

.team-card { transition:all .3s ease; }
.team-card:hover { transform:translateY(-5px); box-shadow:0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04); }

.counter-box { position:relative; }
.counter-box::after { content:''; position:absolute; top:0; right:0; width:1px; height:100%; background-color:rgba(255,255,255,.2); }
.counter-box:last-child::after { display:none; }




/* 文档正文（程序注入内容）的响应式与可读性 */
#article {
  font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
  line-height: 1.65;
  color: #374151;
  word-break: break-word;
  overflow-wrap: anywhere;
}
#article h1, #article h2, #article h3, #article h4 {
  color: #111827;
  line-height: 1.3;
  margin: 1rem 0 0.75rem;
}
#article h1 { font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem); }
#article h2 { font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem); scroll-margin-top: 6rem; }
#article h3 { font-size: clamp(1.125rem, 1rem + 0.4vw, 1.25rem); }
#article p { margin: 0.75rem 0; }
#article ul, #article ol { margin: 0.75rem 0 1rem; padding-left: 1.25rem; }
#article li { margin: 0.25rem 0; }
#article a { color: #2563eb; text-decoration: none; }
#article a:hover { color: #1d4ed8; }
#article img { max-width: 100%; height: auto; display: block; border-radius: 0.5rem; }
#article code {
  background-color: #f3f4f6;
  border-radius: 0.25rem;
  padding: 0.15em 0.35em;
  font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
#article pre {
  background-color: #f3f4f6;
  border-radius: 0.5rem;
  padding: 1rem;
  overflow: auto;
  font-size: 0.95rem;
  line-height: 1.6;
  font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
#article table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
#article th, #article td { border-bottom: 1px solid #e5e7eb; padding: 0.5rem 0.75rem; text-align: left; }
#article blockquote { border-left: 3px solid #e5e7eb; padding-left: 0.75rem; color: #6b7280; margin: 0.75rem 0; }
#article hr { border: 0; border-top: 1px solid #e5e7eb; margin: 1.5rem 0; }

@media (max-width: 1024px) {
  #article { font-size: clamp(0.95rem, 0.92rem + 0.15vw, 1rem); line-height: 1.65; }
  #article pre { font-size: 0.9rem; }
}
@media (max-width: 640px) {
  #article { font-size: 0.95rem; line-height: 1.6; }
  #article h1 { font-size: 1.75rem; }
  #article h2 { font-size: 1.25rem; }
}