/* Homepage-only visuals. Kept isolated from main.css. */
.bms-hero-visual{
  position:relative;
  min-height:360px;
  padding:24px;
  overflow:hidden;
  border:1px solid #ffffff18;
  border-radius:22px;
  background:linear-gradient(145deg,#0c2820,#071612);
  box-shadow:0 24px 70px #07161235;
}
.bms-hero-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
  color:#fff;
  font:800 12px var(--display);
  letter-spacing:.12em;
}
.bms-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--green-2);
  font:700 10px var(--display);
  letter-spacing:.08em;
}
.bms-status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 5px #20b87518;
  animation:bms-pulse 1.8s ease-in-out infinite;
}
.bms-floor{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1.2fr 1fr;
  gap:12px;
  margin-top:12px;
}
.bms-node{
  position:relative;
  min-height:74px;
  padding:14px;
  border:1px solid #ffffff14;
  border-radius:13px;
  background:#ffffff08;
  color:#d9eee5;
}
.bms-node small{
  display:block;
  margin-bottom:6px;
  color:#7fa79a;
  font:700 9px var(--display);
  letter-spacing:.09em;
}
.bms-node strong{
  display:block;
  color:#fff;
  font:800 14px var(--display);
}
.bms-value{
  margin-top:5px;
  color:var(--green-2);
  font:700 10px var(--display);
}
.bms-controller{
  position:relative;
  min-height:100px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  border:1px solid #20b87570;
  border-radius:16px;
  background:#20b87512;
  box-shadow:inset 0 0 30px #20b8750c,0 0 35px #20b8750c;
}
.bms-controller::after{
  content:"";
  position:absolute;
  inset:7px;
  border:1px dashed #20b87535;
  border-radius:11px;
  animation:bms-spin 8s linear infinite;
}
.bms-controller span{
  position:relative;
  z-index:1;
  color:var(--green-2);
  font:700 9px var(--display);
  letter-spacing:.1em;
}
.bms-controller strong{
  position:relative;
  z-index:1;
  margin-top:4px;
  color:#fff;
  font:800 18px var(--display);
}
.bms-line{
  position:absolute;
  height:1px;
  background:linear-gradient(90deg,transparent,#20b875,#5ee3a1,transparent);
  transform-origin:left center;
  opacity:.65;
  animation:bms-flow 2.2s linear infinite;
}
.bms-line-a{left:28%;top:54%;width:26%;transform:rotate(0deg)}
.bms-line-b{left:47%;top:54%;width:27%;transform:rotate(0deg)}
.bms-line-c{left:50%;top:31%;width:1px;height:23%;transform:rotate(0deg)}
.bms-bottom{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:14px;
}
.bms-mini{
  padding:11px 12px;
  border-radius:11px;
  background:#fff6;
  border:1px solid #ffffff0e;
}
.bms-mini span{display:block;color:#7fa79a;font:600 9px var(--display)}
.bms-mini strong{display:block;margin-top:4px;color:#fff;font:800 13px var(--display)}
.bms-projects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
  margin-top:30px;
}
.bms-project-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--white);
  box-shadow:0 12px 35px rgba(7,22,18,.07);
}
.bms-project-image{
  aspect-ratio:16/9;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--paper);
}
.bms-project-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
  transition:transform .35s ease;
}
.bms-project-card:hover .bms-project-image img{transform:scale(1.015)}
.bms-project-body{padding:22px 24px 24px}
.bms-project-body small{color:var(--green);font:700 11px var(--display);letter-spacing:.08em}
.bms-project-body h3{margin:7px 0 8px;font:800 23px/1.2 var(--display);letter-spacing:-.03em}
.bms-project-body p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.bms-project-more{display:inline-block;margin-top:14px;color:var(--ink);font:800 12px var(--display)}
@keyframes bms-pulse{0%,100%{transform:scale(.8);opacity:.55}50%{transform:scale(1.15);opacity:1}}
@keyframes bms-flow{0%{opacity:.15;transform:translateX(-12px)}50%{opacity:1}100%{opacity:.15;transform:translateX(12px)}}
@keyframes bms-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.bms-projects{grid-template-columns:1fr}.bms-floor{grid-template-columns:1fr}.bms-line{display:none}}
@media(max-width:560px){.bms-hero-visual{padding:18px;min-height:0}.bms-bottom{grid-template-columns:1fr}.bms-project-body{padding:19px 20px 21px}}
