/* ============================================
   砼箴科技 — Homepage (Tech Purple Theme)
   ============================================ */

body.home-page{background:var(--bg-deep);color:var(--text-primary-dark)}

/* ======== Particle Canvas ======== */
#particles{
  position:fixed;top:0;left:0;
  width:100%;height:100%;
  pointer-events:none;z-index:0;
}

/* ======== Hero ======== */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(100px, 14vw, 180px) clamp(20px, 4vw, 48px) clamp(60px, 8vw, 120px);
  z-index:1;
}
.hero-grid{
  max-width:var(--max-width);width:100%;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:clamp(48px, 8vw, 140px);
  align-items:center;
}
.hero-glow{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:min(1000px, 85vw);height:min(1000px, 85vw);
  background:radial-gradient(circle, rgba(139,92,246,0.18) 0%, transparent 65%);
  pointer-events:none;
}
.hero-content{position:relative;z-index:2}

.hero-badge{
  display:inline-block;
  padding:8px 22px;
  border:1px solid rgba(139,92,246,0.32);
  border-radius:100px;
  font-size:13px;color:var(--purple-400);
  letter-spacing:0.07em;
  margin-bottom:clamp(28px, 3.5vw, 44px);
}
.hero-title{
  font-size:clamp(38px, 6vw, 78px);
  font-weight:600;line-height:1.08;
  letter-spacing:-0.03em;
  margin-bottom:clamp(24px, 3vw, 40px);
}
.hero-title .line{
  display:block;
  background:linear-gradient(135deg, #ffffff 0%, #c4b5fd 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-desc{
  font-size:clamp(15px, 1.3vw, 19px);
  color:var(--text-secondary-dark);
  line-height:1.85;
  margin-bottom:clamp(44px, 5.5vw, 72px);
  max-width:500px;
  font-weight:400;
}
.hero-actions{display:flex;gap:20px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;
  padding:14px 32px;
  border-radius:100px;
  font-size:15px;font-weight:500;
  letter-spacing:0.03em;
  transition:all 0.35s var(--ease-out);
  cursor:pointer;border:none;
}
.btn-primary{
  background:linear-gradient(135deg, var(--purple-600) 0%, var(--purple-500) 100%);
  color:#fff;
  box-shadow:0 4px 24px rgba(139,92,246,0.35);
}
.btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 32px rgba(139,92,246,0.5);
}
.btn-ghost{
  background:transparent;
  color:var(--text-secondary-dark);
  border:1px solid rgba(255,255,255,0.15);
}
.btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,0.35)}

/* ---- Hero Visual (Ring Logo) ---- */
.hero-visual{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:1;
  max-height:min(520px, 65vw);
}
.hero-ring{
  position:absolute;border-radius:50%;
  border:1.5px solid;
  animation:ringSpin linear infinite;
}
.hero-ring.r1{
  width:min(460px, 62vw);height:min(460px, 62vw);
  border-color:rgba(139,92,246,0.10);
  animation-duration:30s;
}
.hero-ring.r2{
  width:min(350px, 48vw);height:min(350px, 48vw);
  border-color:rgba(139,92,246,0.18);
  animation-duration:22s;
  animation-direction:reverse;
}
.hero-ring.r3{
  width:min(250px, 35vw);height:min(250px, 35vw);
  border-color:rgba(139,92,246,0.28);
  animation-duration:15s;
}
.hero-center{
  position:relative;z-index:2;
  width:min(150px, 20vw);height:min(150px, 20vw);
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle, rgba(139,92,246,0.16) 0%, transparent 70%);
  border-radius:50%;
}
.hero-center img{width:60%;height:auto;filter:brightness(1.1)}

@keyframes ringSpin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

/* Scroll hint */
.scroll-hint{
  position:absolute;bottom:clamp(28px, 3.5vw, 52px);
  left:50%;transform:translateX(-50%);
}
.scroll-hint span{
  display:block;
  width:22px;height:38px;
  border:1.5px solid rgba(255,255,255,0.12);
  border-radius:11px;position:relative;
}
.scroll-hint span::after{
  content:'';position:absolute;
  top:8px;left:50%;
  transform:translateX(-50%);
  width:3px;height:7px;
  background:var(--purple-400);border-radius:2px;
  animation:scrollPulse 2.2s ease-in-out infinite;
}
@keyframes scrollPulse{
  0%,100%{opacity:0.25;top:8px}
  50%{opacity:1;top:18px}
}

/* ======== Home Sections Layout ======== */
.home-section{
  position:relative;z-index:1;
  max-width:var(--max-width);
  margin:0 auto;
  padding:clamp(80px, 10vw, 160px) clamp(20px, 4vw, 48px);
}

.home-section .label{
  display:inline-block;
  font-size:12px;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--purple-400);
  margin-bottom:clamp(16px, 2vw, 24px);
}
.home-section h2{
  font-size:clamp(30px, 4.5vw, 56px);
  font-weight:600;letter-spacing:-0.025em;
  line-height:1.15;margin-bottom:clamp(16px, 2vw, 28px);
}
.home-section .intro{
  font-size:clamp(15px, 1.2vw, 18px);
  color:var(--text-secondary-dark);
  max-width:600px;line-height:1.75;
  margin-bottom:clamp(48px, 6vw, 80px);
}

/* Feature cards (2-up) */
.feat-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px, 3vw, 40px);
}
.feat-card{
  background:var(--bg-card-dark);
  border:1px solid var(--border-dark);
  border-radius:var(--radius-lg);
  padding:clamp(36px, 5vw, 56px) clamp(28px, 5vw, 48px);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  transition:background 0.5s ease, border-color 0.5s ease, transform 0.4s var(--ease-out);
}
.feat-card:hover{
  background:var(--bg-card-hover-dark);
  border-color:rgba(255,255,255,0.12);
  transform:translateY(-3px);
}
.feat-card .icon{
  width:48px;height:48px;color:var(--purple-400);
  margin-bottom:clamp(20px, 2.5vw, 32px);
}
.feat-card h4{
  font-size:clamp(20px, 2.2vw, 28px);
  font-weight:600;margin-bottom:10px;
  letter-spacing:-0.015em;
}
.feat-card .tag{
  font-size:13px;color:var(--purple-400);
  margin-bottom:28px;letter-spacing:0.04em;
}
.feat-card ul{list-style:none}
.feat-card ul li{
  position:relative;padding-left:22px;
  margin-bottom:14px;
  font-size:15px;color:var(--text-secondary-dark);
  line-height:1.65;
}
.feat-card ul li::before{
  content:'';position:absolute;
  left:0;top:10px;
  width:5px;height:5px;border-radius:50%;
  background:var(--purple-500);
}

/* Stat Row */
.stat-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(20px, 2.5vw, 32px);
}
.stat-item{
  background:var(--bg-card-dark);
  border:1px solid var(--border-dark);
  border-radius:var(--radius-lg);
  padding:clamp(32px, 4vw, 48px) clamp(20px, 2.5vw, 32px);
  text-align:center;
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  transition:background 0.5s ease, border-color 0.5s ease;
}
.stat-item:hover{background:var(--bg-card-hover-dark);border-color:rgba(255,255,255,0.12)}
.stat-item .num{
  display:block;
  font-size:clamp(28px, 3.2vw, 44px);
  font-weight:600;
  background:linear-gradient(135deg, var(--purple-400) 0%, var(--purple-600) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
  margin-bottom:12px;
}
.stat-item .lbl{font-size:14px;color:var(--text-secondary-dark);letter-spacing:0.04em}

/* Preview cards -> link to subpages */
.preview-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px, 2.5vw, 32px);
}
.preview-card{
  position:relative;
  background:var(--bg-card-dark);
  border:1px solid var(--border-dark);
  border-radius:var(--radius-lg);
  padding:clamp(36px, 5vw, 52px) clamp(28px, 4vw, 40px);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  transition:all 0.5s var(--ease-out);
  overflow:hidden;
  display:flex;flex-direction:column;
}
.preview-card:hover{
  background:var(--bg-card-hover-dark);
  border-color:rgba(139,92,246,0.25);
  transform:translateY(-4px);
}
.preview-card:hover .preview-arrow{opacity:1;transform:translateX(0)}
.preview-card::before{
  content:'';position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--purple-500) 50%, transparent 100%);
  opacity:0;transition:opacity 0.5s;
}
.preview-card:hover::before{opacity:1}
.preview-card .num{
  font-size:11px;font-weight:500;color:var(--purple-400);
  letter-spacing:0.10em;margin-bottom:20px;
}
.preview-card h3{
  font-size:clamp(20px, 2vw, 26px);
  font-weight:600;margin-bottom:12px;
  letter-spacing:-0.015em;
}
.preview-card p{
  font-size:14px;color:var(--text-secondary-dark);
  line-height:1.7;margin-bottom:32px;flex:1;
}
.preview-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;color:var(--purple-400);
  font-weight:500;letter-spacing:0.03em;
  transition:gap 0.35s var(--ease-out);
}
.preview-arrow{
  opacity:0.5;transform:translateX(-4px);
  transition:all 0.35s var(--ease-out);
}
.preview-card:hover .preview-link{gap:12px}

/* ======== Responsive ======== */
@media(max-width:1024px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .hero-desc{margin-left:auto;margin-right:auto}
  .hero-actions{justify-content:center}
  .hero-visual{max-height:320px}
  .feat-grid{grid-template-columns:1fr}
  .preview-grid{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:768px){
  .home-section{padding:72px 20px}
  .home-section h2{font-size:32px}
}

@media(max-width:640px){
  .hero{padding:110px 16px 56px}
  .hero-grid{gap:40px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .btn{justify-content:center}
  .hero-visual{max-height:240px}
  .stat-row{grid-template-columns:1fr 1fr}
  .feat-card{padding:32px 24px}
  .preview-card{padding:32px 24px}
  .scroll-hint{display:none}
}

@media(prefers-reduced-motion:reduce){
  .hero-ring{animation:none}
  .scroll-hint span::after{animation:none}
}
