/* ═══════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════ */
@keyframes fadein  { from{opacity:0;}                     to{opacity:1;} }
@keyframes slideup { from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);} }
@keyframes scale-in { from{opacity:0;transform:scale(.92);} to{opacity:1;transform:scale(1);} }
@keyframes glow-pulse { 0%,100%{box-shadow:0 0 0 0 rgba(var(--amber-rgb),.0);} 50%{box-shadow:0 0 20px 2px rgba(var(--amber-rgb),.12);} }

/* ─── TILT ON HOVER (project cards, design items) ─── */
.project-card { transition:transform .35s ease, box-shadow .35s ease; }
.project-card:hover { transform:translateY(-6px); box-shadow:0 12px 40px rgba(0,0,0,.25); }
.dg-item { transition:transform .35s ease; }
.dg-item:hover { transform:scale(1.03); }

/* ─── SOCIAL ITEM STAGGER ─── */
.social-item { transition:background .2s, transform .2s; }
.social-item:hover { transform:translateX(6px); }

/* ─── SECTION TAG LINE DRAW ─── */
.section-tag::before { transition:width .6s cubic-bezier(.16,1,.3,1); width:0; }
.section-tag.revealed::before { width:28px; }

/* ─── INFO CELL HOVER ─── */
.info-cell { transition:background .2s, transform .2s; }
.info-cell:hover { background:var(--bg2); transform:translateX(4px); }

/* ─── DOC ITEM SLIDE ─── */
.doc-item { transition:transform .25s ease, background .2s; }
.doc-item:hover { transform:translateX(8px); }

/* ─── UPWORK BADGE PULSE ─── */
.uw-badge { animation:glow-pulse 3s ease-in-out infinite; }

/* ─── ABOUT IMAGE FLOAT ─── */
.about-gallery { animation:about-float 6s ease-in-out infinite; }
@keyframes about-float { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);} }

/* ─── STAT COUNT-UP (JS adds .counted) ─── */
.stat-num, .uw-stat-val { transition:opacity .4s, transform .4s; }
.stat-num.count-up, .uw-stat-val.count-up { opacity:0; transform:translateY(10px); }
.stat-num.counted, .uw-stat-val.counted { opacity:1; transform:translateY(0); }

/* ─── NAV LINK UNDERLINE GROW ─── */
.nav-links a::after { transition:width .3s cubic-bezier(.16,1,.3,1); }

/* ─── FORM VALIDATION ─── */
.form-row.error .form-label { color:var(--rust); }
.form-row.error { border-bottom-color:var(--rust); }
.form-row.success .form-label { color:#6dbf7e; }
.form-error-msg {
  font-family:'DM Mono',monospace; font-size:10px; color:var(--rust);
  letter-spacing:1px; margin-top:4px; display:none;
}
.form-row.error .form-error-msg { display:block; }

.form-success {
  display:none; padding:40px 24px;
  flex-direction:column; align-items:center; justify-content:center; gap:16px;
  text-align:center;
}
.form-success.visible { display:flex; }
.fs-icon {
  width:48px; height:48px; border:1.5px solid var(--amber);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  animation:pop-in .4s cubic-bezier(.16,1,.3,1) both;
}
.fs-title { font-family:'Bebas Neue',sans-serif; font-size:28px; letter-spacing:2px; }
.fs-sub { font-family:'DM Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:1px; }
@keyframes pop-in { from{transform:scale(0); opacity:0;} to{transform:scale(1); opacity:1;} }
