/* ============================================
   周斌 · 作品集 — ABOUT
   ============================================ */
.about-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:4rem;align-items:center}
.about-visual{position:relative}
.about-image{width:100%;border-radius:20px;overflow:hidden;border:1px solid var(--border-light);position:relative;transform-style:preserve-3d;perspective:1000px;cursor:default;transition:transform .25s ease,box-shadow .4s ease,border-color .4s ease}
.about-image img{width:100%;display:block}
.about-image:hover{border-color:rgba(255,106,0,.3);box-shadow:0 0 40px rgba(255,106,0,.08)}
.about-visual.has-float{animation:aboutFloat 4s ease-in-out infinite}
@keyframes aboutFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

.about-content h3{
  font-size:1.6rem;font-weight:700;color:var(--text);margin-bottom:1.5rem;line-height:1.3
}
.about-info{
  display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;
  margin:1.5rem 0;padding:1.25rem 1.5rem;
  background:var(--card-bg);border-radius:14px;
  border:1px solid var(--border);
  backdrop-filter:blur(12px) saturate(1.2);
  -webkit-backdrop-filter:blur(12px) saturate(1.2);
  transition:transform .4s cubic-bezier(.23,1,.32,1),border-color .35s ease,box-shadow .35s ease;
  position:relative;overflow:hidden;
  cursor:default
}
.about-info:hover{
  transform:translateY(-4px);
  border-color:rgba(var(--accent-rgb),.2);
  box-shadow:var(--card-hover-shadow)
}
.about-info::before{
  content:'';position:absolute;top:var(--gy,50%);left:var(--gx,50%);
  width:200px;height:200px;transform:translate(-50%,-50%) scale(.8);
  background:radial-gradient(circle,var(--accent-light-06),transparent 70%);
  opacity:0;transition:opacity .35s ease,transform .35s ease;
  pointer-events:none;z-index:1;border-radius:50%
}
.about-info:hover::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.info-item{
  display:flex;align-items:center;gap:.7rem;color:var(--text-secondary);font-size:.88rem
}
.info-item i{
  width:auto;height:auto;border-radius:0;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:1.05rem;color:var(--accent);
  background:none;flex-shrink:0;
  line-height:1
}
.about-info span{font-weight:500;letter-spacing:.3px}
.about-texts{
  padding:1.25rem 1.5rem;margin:1.5rem 0;
  background:var(--card-bg);border-radius:14px;
  border:1px solid var(--border);
  backdrop-filter:blur(12px) saturate(1.2);
  -webkit-backdrop-filter:blur(12px) saturate(1.2);
  transition:transform .4s cubic-bezier(.23,1,.32,1),border-color .35s ease,box-shadow .35s ease;
  position:relative;overflow:hidden;
  cursor:default
}
.about-texts:hover{
  transform:translateY(-4px);
  border-color:rgba(var(--accent-rgb),.2);
  box-shadow:var(--card-hover-shadow)
}
.about-texts::before{
  content:'';position:absolute;top:var(--gy,50%);left:var(--gx,50%);
  width:200px;height:200px;transform:translate(-50%,-50%) scale(.8);
  background:radial-gradient(circle,var(--accent-light-06),transparent 70%);
  opacity:0;transition:opacity .35s ease,transform .35s ease;
  pointer-events:none;z-index:1;border-radius:50%
}
.about-texts:hover::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.about-texts p{
  color:var(--text-secondary);line-height:1.85;margin-bottom:.8rem;font-size:.95rem;
  padding-left:1.2rem;position:relative
}
.about-texts p:last-child{margin-bottom:0}
.about-text-dot{
  position:absolute;left:0;top:.6rem;
  width:6px;height:6px;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 8px rgba(var(--accent-rgb),.5);
  animation:textDotPulse 2.5s ease-in-out infinite
}
.about-texts p:nth-child(2) .about-text-dot{animation-delay:.3s}
.about-texts p:nth-child(3) .about-text-dot{animation-delay:.6s}
.about-texts p:nth-child(4) .about-text-dot{animation-delay:.9s}
@keyframes textDotPulse{
  0%,100%{opacity:.4;transform:scale(1)}
  50%{opacity:1;transform:scale(1.4)}
}
.about-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 2rem}
.about-tag{
  padding:.35rem 1rem .35rem 2.2rem;border-radius:20px;
  color:var(--text-secondary);font-size:.8rem;font-weight:500;transition:all .3s ease;
  cursor:default;position:relative;
  background:var(--about-tag-bg);backdrop-filter:blur(12px) saturate(1.2);
  -webkit-backdrop-filter:blur(12px) saturate(1.2);
  border:1px solid var(--about-tag-border)
}
.about-tag::before{
  content:'';position:absolute;left:10px;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:var(--about-tag-dot);
  box-shadow:0 0 6px var(--about-tag-dot-shadow);
  animation:gd 2s ease-in-out infinite
}
@keyframes gd{0%,100%{opacity:.4;transform:translateY(-50%) scale(1)}50%{opacity:1;transform:translateY(-50%) scale(1.3)}}
.about-tag:hover{
  border-color:rgba(0,230,118,.4);
  transform:translateY(-3px);
  background:var(--about-tag-hover-bg);
  box-shadow:0 4px 15px var(--about-tag-hover-shadow)
}
.about-contact{display:flex;gap:1rem}
.about-contact a{
  width:44px;height:44px;border-radius:50%;
  border:1px solid var(--border-light);
  display:flex;align-items:center;justify-content:center;
  color:var(--text-light);font-size:1.15rem;text-decoration:none;transition:all .3s ease;
  background:var(--card-bg);backdrop-filter:blur(12px) saturate(1.2);
  -webkit-backdrop-filter:blur(12px) saturate(1.2)
}
.about-contact a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-3px);box-shadow:0 4px 15px rgba(var(--accent-rgb),.12)}

@media(max-width:1024px){
  .about-grid{grid-template-columns:1fr;gap:2.5rem}.about-image{max-width:400px;margin:0 auto}
  .about-info{grid-template-columns:1fr}
}
