/* ============================================
   FarmsWork Landing Page — Constellation Hero
   ============================================ */

/* === HERO CONTAINER === */
.fw-hero-constellation {
  background: #030907;
  min-height: 580px;
  position: relative;
  overflow: hidden;
  perspective: 1200px;
  margin-bottom: 0;
}

/* === NEBULA CLOUDS === */
@keyframes fw-neb-1 { 0% { transform:translate(-5%,-5%) rotate(0deg) scale(1); } 33% { transform:translate(3%,2%) rotate(120deg) scale(1.1); } 66% { transform:translate(-2%,4%) rotate(240deg) scale(0.95); } 100% { transform:translate(-5%,-5%) rotate(360deg) scale(1); } }
@keyframes fw-neb-2 { 0% { transform:translate(5%,3%) rotate(0deg); } 50% { transform:translate(-3%,-2%) rotate(180deg) scale(1.15); } 100% { transform:translate(5%,3%) rotate(360deg); } }
@keyframes fw-neb-op { 0% { opacity:0.05; } 25% { opacity:0.11; } 50% { opacity:0.06; } 75% { opacity:0.13; } 100% { opacity:0.05; } }

.fw-nebula { position:absolute; inset:-20%; width:140%; height:140%; pointer-events:none; }
.fw-nebula__blob { position:absolute; border-radius:50%; filter:blur(60px); }
.fw-nebula__blob--1 { left:40%; top:20%; width:400px; height:400px; background:radial-gradient(circle,rgba(196,118,43,0.15) 0%,transparent 70%); animation:fw-neb-1 25s ease-in-out infinite, fw-neb-op 8s ease-in-out infinite; }
.fw-nebula__blob--2 { right:20%; bottom:10%; width:350px; height:350px; background:radial-gradient(circle,rgba(43,107,90,0.12) 0%,transparent 70%); filter:blur(50px); animation:fw-neb-2 30s ease-in-out infinite, fw-neb-op 10s ease-in-out 3s infinite; }
.fw-nebula__blob--3 { left:20%; bottom:30%; width:300px; height:300px; background:radial-gradient(circle,rgba(196,118,43,0.08) 0%,transparent 70%); filter:blur(40px); animation:fw-neb-1 20s ease-in-out 5s infinite, fw-neb-op 12s ease-in-out 6s infinite; }

/* === GHOST SILHOUETTES === */
@keyframes fw-ghost-1 { 0%,100% { transform:translateX(0) translateY(0); opacity:0.018; } 50% { transform:translateX(8px) translateY(-5px); opacity:0.035; } }
@keyframes fw-ghost-2 { 0%,100% { transform:translateX(0) translateY(0); opacity:0.015; } 50% { transform:translateX(-6px) translateY(4px); opacity:0.028; } }

.fw-ghost-barn { position:absolute; right:15%; top:8%; width:180px; height:140px; animation:fw-ghost-1 15s ease-in-out infinite; }
.fw-ghost-pig { position:absolute; left:52%; bottom:12%; width:120px; height:80px; animation:fw-ghost-2 18s ease-in-out 3s infinite; }

/* === GRID FLOOR === */
@keyframes fw-grid-scroll { from { transform:perspective(400px) rotateX(65deg) translateY(0); } to { transform:perspective(400px) rotateX(65deg) translateY(40px); } }
.fw-grid-floor { position:absolute; bottom:-10%; left:10%; width:80%; height:40%; overflow:hidden; opacity:0.035; }
.fw-grid-floor svg { width:100%; height:200%; animation:fw-grid-scroll 4s linear infinite; }

/* === STARS === */
@keyframes fw-sd { 0%,100% { opacity:0.06; } 50% { opacity:0.35; } }
@keyframes fw-sm { 0%,100% { opacity:0.1; } 50% { opacity:0.55; } }
@keyframes fw-sn { 0%,100% { opacity:0.15; } 50% { opacity:0.85; } }
@keyframes fw-sf { 0%,100% { opacity:0; transform:scale(0.5); } 50% { opacity:0.9; transform:scale(1); } }
@keyframes fw-ss1 { 0% { transform:translate(0,0); opacity:0; } 3% { opacity:1; } 100% { transform:translate(140px,70px); opacity:0; } }
@keyframes fw-ss2 { 0% { transform:translate(0,0); opacity:0; } 3% { opacity:0.7; } 100% { transform:translate(-100px,80px); opacity:0; } }

/* === 3D NETWORK LAYERS === */
@keyframes fw-lb { from { transform:rotateY(0) rotateX(2deg); } to { transform:rotateY(360deg) rotateX(2deg); } }
@keyframes fw-lm { 0%,100% { transform:translateZ(-20px) scale(0.96); } 50% { transform:translateZ(15px) rotateY(3deg) scale(1.02); } }
@keyframes fw-lf { 0%,100% { transform:translateZ(0); } 50% { transform:translateZ(30px) rotateY(-2deg) scale(1.04); } }

.fw-net-wrap { position:absolute; right:-8%; top:-2%; width:68%; height:104%; transform-style:preserve-3d; }
.fw-net-back { position:absolute; inset:0; width:100%; height:100%; animation:fw-lb 150s linear infinite; transform-origin:50% 45%; opacity:0.18; }
.fw-net-mid { position:absolute; inset:0; width:100%; height:100%; animation:fw-lm 12s ease-in-out infinite; opacity:0.35; }
.fw-net-front { position:absolute; inset:0; width:100%; height:100%; animation:fw-lf 8s ease-in-out infinite; }

/* === NETWORK ANIMATIONS === */
@keyframes fw-ndraw { from { stroke-dashoffset:1000; } to { stroke-dashoffset:0; } }
@keyframes fw-nhub { 0%,100% { filter:drop-shadow(0 0 12px rgba(196,118,43,0.4)); } 50% { filter:drop-shadow(0 0 25px rgba(196,118,43,0.7)); } }
@keyframes fw-nshim { 0%,100% { stroke-opacity:0.03; } 50% { stroke-opacity:0.22; } }
@keyframes fw-nfire { 0% { stroke-dashoffset:80; opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.6; } 100% { stroke-dashoffset:0; opacity:0; } }
@keyframes fw-npulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.2); } }

/* Particle paths */
@keyframes fw-po { 0% { offset-distance:0%; opacity:0; } 6% { opacity:1; } 94% { opacity:1; } 100% { offset-distance:100%; opacity:0; } }
.fw-p1 { offset-path:path('M210,120 C260,50 360,80 370,180 C380,280 330,350 270,380'); animation:fw-po 3.2s linear infinite; }
.fw-p2 { offset-path:path('M210,120 C160,50 60,100 50,210 C40,310 90,380 160,400'); animation:fw-po 3.8s linear 0.6s infinite; }
.fw-p3 { offset-path:path('M210,120 L235,35'); animation:fw-po 1.8s linear 0.2s infinite; }
.fw-p4 { offset-path:path('M370,180 C390,230 390,310 370,380'); animation:fw-po 2.8s linear 1.2s infinite; }
.fw-p5 { offset-path:path('M50,210 C30,270 20,340 50,400'); animation:fw-po 3s linear 1.8s infinite; }
.fw-p6 { offset-path:path('M210,120 C190,80 160,45 150,30'); animation:fw-po 2s linear 1s infinite; }
.fw-p7 { offset-path:path('M270,380 C230,400 180,410 160,400'); animation:fw-po 2.5s linear 2.2s infinite; }
.fw-p8 { offset-path:path('M45,340 C35,370 25,410 20,440'); animation:fw-po 2.2s linear 2.8s infinite; }
.fw-p9 { offset-path:path('M390,310 C395,340 398,380 395,420'); animation:fw-po 2.3s linear 3.2s infinite; }
.fw-trail { filter:drop-shadow(0 0 4px currentColor); }

/* === DATA CARDS === */
@keyframes fw-card-fade { 0% { opacity:0; transform:translateY(6px) scale(0.95); } 10% { opacity:1; transform:translateY(0) scale(1); } 80% { opacity:1; } 100% { opacity:0; transform:translateY(-4px) scale(0.98); } }
@keyframes fw-card-fade-2 { 0% { opacity:0; transform:translateY(6px) scale(0.95); } 10% { opacity:1; transform:translateY(0) scale(1); } 80% { opacity:1; } 100% { opacity:0; transform:translateY(-4px); } }

.fw-data-card {
  backdrop-filter:blur(12px); border-radius:8px; padding:8px 14px;
  font-size:10px; white-space:nowrap; position:absolute; z-index:3;
}
.fw-data-card--green { background:rgba(43,76,63,0.12); border:1px solid rgba(43,107,90,0.15); color:rgba(255,255,255,0.5); }
.fw-data-card--orange { background:rgba(196,118,43,0.1); border:1px solid rgba(196,118,43,0.12); color:rgba(255,255,255,0.5); }
.fw-data-card__dot--green { color:#3d6b5a; font-weight:700; }
.fw-data-card__dot--orange { color:#C4762B; font-weight:700; }

/* === TEXT ANIMATIONS === */
@keyframes fw-bar-in { from { width:0; } to { width:56px; } }
@keyframes fw-text-up { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes fw-gradient-shift { 0% { background-position:0% 50%; } 50% { background-position:100% 50%; } 100% { background-position:0% 50%; } }
@keyframes fw-underline { from { width:0; } to { width:100%; } }
@keyframes fw-tag-pop { from { opacity:0; transform:scale(0.85) translateY(8px); } to { opacity:1; transform:scale(1) translateY(0); } }
@keyframes fw-cta-glow { 0%,100% { box-shadow:0 0 0 rgba(196,118,43,0); } 50% { box-shadow:0 6px 32px rgba(196,118,43,0.35); } }
@keyframes fw-cta-shine { 0% { background-position:200% center; } 100% { background-position:-200% center; } }

/* === TICKER === */
@keyframes fw-ticker { 0% { transform:translateX(100%); } 100% { transform:translateX(-200%); } }
.fw-ticker-wrap {
  overflow:hidden; height:18px; border-top:1px solid rgba(255,255,255,0.04);
  border-bottom:1px solid rgba(255,255,255,0.04); padding:2px 0;
}
.fw-ticker-content {
  white-space:nowrap; animation:fw-ticker 25s linear infinite;
  font-size:10px; color:rgba(255,255,255,0.15); font-weight:500;
}

/* === HERO CONTENT === */
.fw-hero-content { position:absolute; inset:0; padding:56px 52px; z-index:2; }
.fw-hero-content__inner { max-width:42%; }
.fw-hero-bar { height:2px; width:0; background:linear-gradient(90deg,#C4762B,#3d6b5a); border-radius:2px; margin-bottom:30px; animation:fw-bar-in 1s ease-out 0.3s forwards; }
.fw-hero-label { font-size:12px; color:rgba(196,118,43,0.6); font-weight:600; letter-spacing:5px; margin-bottom:20px; animation:fw-text-up 0.7s ease-out 0.2s both; }
.fw-hero-title { font-size:36px; font-weight:800; color:#fff; line-height:1.25; letter-spacing:-0.03em; animation:fw-text-up 0.7s ease-out 0.4s both; }
.fw-hero-title__gradient {
  background:linear-gradient(90deg,#C4762B,#e8a050,#C4762B); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  animation:fw-gradient-shift 4s linear infinite;
}
.fw-hero-title__underline {
  position:absolute; bottom:-4px; left:0; height:2px;
  background:linear-gradient(90deg,#C4762B,rgba(196,118,43,0.1)); border-radius:2px;
  animation:fw-underline 1.2s ease-out 1.4s both;
}
.fw-hero-sub { font-size:15px; color:rgba(255,255,255,0.25); margin-top:16px; margin-bottom:34px; line-height:1.8; animation:fw-text-up 0.7s ease-out 0.55s both; }
.fw-hero-tags { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.fw-hero-tag {
  border:1px solid rgba(43,76,63,0.2); color:rgba(255,255,255,0.28); padding:6px 16px;
  border-radius:20px; font-size:11px; font-weight:600; backdrop-filter:blur(8px); background:rgba(43,76,63,0.03);
}
.fw-hero-tag--accent { border-color:rgba(196,118,43,0.18); color:rgba(196,118,43,0.6); background:rgba(196,118,43,0.03); }
.fw-hero-cta {
  background:linear-gradient(135deg,#C4762B,#d4883a); color:#fff; padding:13px 30px;
  border-radius:8px; font-size:15px; font-weight:700; letter-spacing:0.02em;
  position:relative; overflow:hidden; display:inline-block; text-decoration:none;
  animation:fw-cta-glow 3s ease-in-out 2.5s infinite;
}
.fw-hero-cta:hover { color:#fff; text-decoration:none; }
.fw-hero-cta__shine {
  position:absolute; inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.15) 50%,transparent 100%);
  background-size:200% 100%; animation:fw-cta-shine 3s ease-in-out 2s infinite;
}
.fw-hero-cta--secondary {
  border:1.5px solid rgba(255,255,255,0.1); color:rgba(255,255,255,0.4);
  padding:13px 30px; border-radius:8px; font-size:15px; font-weight:600;
  backdrop-filter:blur(6px); display:inline-block; text-decoration:none;
}
.fw-hero-cta--secondary:hover { color:rgba(255,255,255,0.6); border-color:rgba(255,255,255,0.2); text-decoration:none; }

/* === RESPONSIVE === */
@media (max-width: 992px) {
  .fw-hero-content__inner { max-width:60%; }
  .fw-hero-title { font-size:28px; }
  .fw-net-wrap { width:55%; right:-15%; }
}
@media (max-width: 768px) {
  .fw-hero-constellation { min-height:500px; }
  .fw-hero-content { padding:36px 24px; }
  .fw-hero-content__inner { max-width:100%; }
  .fw-hero-title { font-size:24px; }
  .fw-hero-sub { font-size:13px; }
  .fw-net-wrap { width:100%; right:-30%; opacity:0.4; }
  .fw-data-card { display:none; }
  .fw-ghost-barn, .fw-ghost-pig { display:none; }
}
