/* Bitwolt premium motion — progressive enhancement */
:root{--bw-ease:cubic-bezier(.22,.61,.36,1)}

/* Reveal system is activated only after motion.js marks the document ready. */
html.bw-motion-ready [data-bw-reveal]{
  opacity:0;
  transform:translate3d(0,18px,0);
  transition:opacity .58s var(--bw-ease) var(--bw-reveal-delay,0ms),transform .58s var(--bw-ease) var(--bw-reveal-delay,0ms);
  will-change:opacity,transform;
}
html.bw-motion-ready [data-bw-reveal].is-revealed{opacity:1;transform:translate3d(0,0,0)}

/* Homepage ambient field: technical, not galaxy-like. */
.bw-home-hero{isolation:isolate}
html[data-design="future"] .bw-home-hero::before{
  content:"";
  position:absolute;
  z-index:-2;
  width:min(760px,62vw);
  aspect-ratio:1;
  top:-36%;
  right:-8%;
  border-radius:50%;
  background:
    radial-gradient(circle at 34% 42%,rgba(5,185,242,.16),transparent 32%),
    radial-gradient(circle at 68% 62%,rgba(185,219,27,.08),transparent 28%);
  filter:blur(12px);
  opacity:.82;
  animation:bwAmbientDrift 13s ease-in-out infinite alternate;
  pointer-events:none;
}
html[data-design="classic"] .bw-home-hero::before{
  content:"";
  position:absolute;
  z-index:-2;
  width:min(760px,62vw);
  aspect-ratio:1;
  top:-36%;
  right:-8%;
  border-radius:50%;
  background:
    radial-gradient(circle at 34% 42%,rgba(5,185,242,.13),transparent 34%),
    radial-gradient(circle at 68% 62%,rgba(185,219,27,.065),transparent 30%);
  filter:blur(15px);
  opacity:.82;
  animation:bwAmbientDrift 17s ease-in-out infinite alternate;
  pointer-events:none;
}
html[data-design="future"] .bw-home-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background-image:
    linear-gradient(rgba(105,205,242,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(105,205,242,.035) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent 88%);
  opacity:.56;
  pointer-events:none;
}
html[data-design="classic"] .bw-home-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background-image:
    linear-gradient(rgba(44,104,134,.085) 1px,transparent 1px),
    linear-gradient(90deg,rgba(44,104,134,.085) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent 90%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent 90%);
  opacity:.72;
  pointer-events:none;
}
@keyframes bwAmbientDrift{
  0%{transform:translate3d(-2%,0,0) scale(.96)}
  100%{transform:translate3d(5%,4%,0) scale(1.06)}
}

.bw-motion-particles{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bw-ambient-particle{
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:var(--s);
  height:var(--s);
  border-radius:50%;
  background:rgba(91,211,247,.76);
  box-shadow:0 0 12px rgba(5,185,242,.34);
  opacity:0;
  animation:bwParticleFloat var(--d) ease-in-out var(--delay) infinite;
}
.bw-ambient-particle:nth-child(3n){background:rgba(196,224,73,.72);box-shadow:0 0 10px rgba(185,219,27,.24)}
html[data-design="classic"] .bw-motion-particles{display:block;opacity:.82}
html[data-design="classic"] .bw-ambient-particle{background:rgba(5,137,182,.68);box-shadow:0 0 12px rgba(5,185,242,.24)}
html[data-design="classic"] .bw-ambient-particle:nth-child(3n){background:rgba(132,158,0,.60);box-shadow:0 0 10px rgba(185,219,27,.20)}
@keyframes bwParticleFloat{
  0%,100%{opacity:.08;transform:translate3d(0,8px,0) scale(.9)}
  50%{opacity:.72;transform:translate3d(10px,-12px,0) scale(1.08)}
}

/* Service panel activity rail — dedicated gutter, never overlays cards. */
.bw-home-system{isolation:isolate}
.bw-home-system__rows{position:relative;z-index:1}
.bw-home-system__row .bw-icon{position:relative;z-index:2}
.bw-home-activity{
  position:absolute;
  z-index:0;
  left:36px;
  top:138px;
  bottom:56px;
  width:2px;
  border-radius:999px;
  background:linear-gradient(to bottom,rgba(5,185,242,.06),rgba(5,185,242,.38),rgba(185,219,27,.12));
  pointer-events:none;
}
.bw-home-activity__pulse{
  position:absolute;
  left:50%;
  top:0;
  width:8px;
  height:8px;
  margin-left:-4px;
  border-radius:50%;
  background:var(--bw-blue);
  box-shadow:0 0 0 5px rgba(5,185,242,.07),0 0 16px rgba(5,185,242,.26);
  animation:bwRailPulse 4.8s var(--bw-ease) infinite;
}
html[data-design="classic"] .bw-home-activity{opacity:.34}
html[data-design="classic"] .bw-home-activity__pulse{
  animation:bwRailPulse 6.6s var(--bw-ease) infinite;
  box-shadow:0 0 0 4px rgba(5,185,242,.07),0 0 14px rgba(5,185,242,.20);
}
@keyframes bwRailPulse{
  0%{top:2%;opacity:.14}
  15%{opacity:1}
  84%{opacity:1}
  100%{top:96%;opacity:.08}
}

.bw-home-system__row{transition:transform .18s var(--bw-ease),border-color .18s ease,background .18s ease,box-shadow .18s ease}
.bw-home-system__row:hover{transform:translateX(2px);border-color:rgba(5,185,242,.25)!important;box-shadow:0 8px 22px rgba(16,34,56,.05)}
html[data-design="future"] .bw-home-system__row:hover{background:rgba(5,185,242,.045)!important;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.bw-home-system__row>span:last-child{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px}
.bw-home-system__row>span:last-child::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bw-blue);box-shadow:0 0 0 3px rgba(5,185,242,.07)}
.bw-home-system__row:last-child>span:last-child::before{background:var(--bw-volt);box-shadow:0 0 0 3px rgba(185,219,27,.08)}
html[data-design="future"] .bw-home-system__row>span:last-child::before{box-shadow:0 0 0 3px rgba(5,185,242,.06),0 0 10px rgba(5,185,242,.16)}
html[data-design="future"] .bw-home-system__row:last-child>span:last-child::before{box-shadow:0 0 0 3px rgba(185,219,27,.06),0 0 10px rgba(185,219,27,.14)}

/* Mobile service scanner: horizontal laser + moving node + staggered status pulses. */
@keyframes bwMobileLaserSweep{
  0%,100%{left:0;opacity:.32}
  12%{opacity:1}
  50%{left:calc(100% - 8px);opacity:1}
  88%{opacity:1}
}
@keyframes bwMobileStatusPulse{
  0%,100%{opacity:.32;transform:scale(.82)}
  50%{opacity:1;transform:scale(1.12)}
}

/* Market line drawing */
html.bw-motion-ready .bw-market-line path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.35s var(--bw-ease)}
html.bw-motion-ready .bw-market-line.is-drawn path{stroke-dashoffset:0}
html.bw-motion-ready .bw-market-line path.volt{transition-delay:.16s}

/* Micro feedback */
.bw-card,.box,.card{transition:transform .18s var(--bw-ease),box-shadow .18s ease,border-color .18s ease}
.bw-card:hover{border-color:rgba(5,185,242,.20);box-shadow:0 14px 36px rgba(16,34,56,.08)}
html[data-design="future"] .bw-card:hover{border-color:rgba(5,185,242,.20);box-shadow:0 15px 38px rgba(0,0,0,.22),0 0 22px rgba(5,185,242,.03)}
.btn:active,.btn-primary:active,.btn-ghost:active,.bw-btn:active,.bw-ghost:active{transform:translateY(0) scale(.985)!important}

@media(max-width:620px){
  /* Desktop vertical rail is replaced by a compact horizontal mobile scanner. */
  .bw-home-activity{display:none}
  .bw-home-system__head{
    position:relative;
    padding-bottom:18px;
    margin-bottom:18px;
  }
  .bw-home-system__head::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg,rgba(5,185,242,.05),rgba(5,185,242,.48) 42%,rgba(185,219,27,.18) 70%,rgba(5,185,242,.04));
    box-shadow:0 0 12px rgba(5,185,242,.12);
    pointer-events:none;
  }
  .bw-home-system__head::before{
    content:"";
    position:absolute;
    z-index:2;
    left:0;
    bottom:-3px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#24c9f5;
    box-shadow:
      0 0 0 4px rgba(5,185,242,.08),
      0 0 16px rgba(5,185,242,.55),
      -12px 0 14px rgba(5,185,242,.24),
      -24px 0 22px rgba(5,185,242,.12);
    animation:bwMobileLaserSweep 5.8s ease-in-out infinite;
    pointer-events:none;
  }
  .bw-home-system__row>span:last-child::before{
    animation:bwMobileStatusPulse 3.2s ease-in-out infinite;
  }
  .bw-home-system__row:nth-child(2)>span:last-child::before{animation-delay:-.8s}
  .bw-home-system__row:nth-child(3)>span:last-child::before{animation-delay:-1.6s}
  .bw-home-system__row:nth-child(4)>span:last-child::before{animation-delay:-2.4s}
  .bw-motion-particles .bw-ambient-particle:nth-child(n+5){display:none}
  .bw-home-system__row:hover{transform:none}
}
@media(prefers-reduced-motion:reduce){
  html.bw-motion-ready [data-bw-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  html[data-design="future"] .bw-home-hero::before,html[data-design="classic"] .bw-home-hero::before,.bw-ambient-particle,.bw-home-activity__pulse,.bw-home-system__head::before,.bw-home-system__row>span:last-child::before{animation:none!important}
  .bw-motion-particles{display:none!important}
  html.bw-motion-ready .bw-market-line path{stroke-dasharray:none!important;stroke-dashoffset:0!important;transition:none!important}
  .bw-home-system__row:hover,.bw-card:hover{transform:none!important}
}

/* Graph-based AI hero visual */
.bw-ai-graph{
  --ai-ring:rgba(82,204,244,.28);
  --ai-ring-soft:rgba(82,204,244,.13);
  --ai-edge:rgba(91,211,247,.25);
  --ai-node:#52d7ff;
  --ai-node-stroke:#dff9ff;
  --ai-glow:rgba(5,185,242,.34);
  --ai-beam:rgba(5,185,242,.18);
  --ai-orbit:rgba(91,211,247,.25);
  opacity:.98;
  pointer-events:none;
  user-select:none;
}
html[data-design="classic"] .bw-ai-graph{
  --ai-ring:rgba(20,112,149,.25);
  --ai-ring-soft:rgba(20,112,149,.11);
  --ai-edge:rgba(14,119,158,.28);
  --ai-node:#079dcf;
  --ai-node-stroke:#e7f7fc;
  --ai-glow:rgba(5,185,242,.19);
  --ai-beam:rgba(5,137,182,.15);
  --ai-orbit:rgba(14,119,158,.22);
  opacity:.9;
}
.bw-ai-graph svg{display:block;width:100%;height:100%;overflow:visible;animation:bwAiFloat 7.5s ease-in-out infinite;filter:drop-shadow(0 8px 20px rgba(0,0,0,.14))}
html[data-design="future"] .bw-ai-graph svg{filter:drop-shadow(0 0 15px rgba(5,185,242,.10)) drop-shadow(0 10px 24px rgba(0,0,0,.18))}
.bw-ai-graph__beam path{fill:none;stroke:var(--ai-beam);stroke-width:1;vector-effect:non-scaling-stroke}
.bw-ai-graph__ring,.bw-ai-graph__orbit-line{fill:none;vector-effect:non-scaling-stroke}
.bw-ai-graph__ring{stroke:var(--ai-ring);stroke-width:1.05}
.bw-ai-graph__ring--dash{stroke-dasharray:3 7;stroke:var(--ai-ring)}
.bw-ai-graph__ring--fine{stroke:var(--ai-ring-soft);stroke-dasharray:1 5}
.bw-ai-graph__rings{transform-box:fill-box;transform-origin:center;animation:bwAiRingSpin 32s linear infinite}
.bw-ai-graph__orbit{transform-box:fill-box;transform-origin:center;animation:bwAiOrbitSpin 18s linear infinite reverse}
.bw-ai-graph__orbit-line{stroke:var(--ai-orbit);stroke-width:.9;stroke-dasharray:4 9}
.bw-ai-graph__orbit-dot{fill:var(--ai-node);filter:drop-shadow(0 0 5px var(--ai-glow))}
.bw-ai-graph__orbit-dot--volt{fill:var(--bw-volt,#B9DB1B)}
.bw-ai-graph__edges path{fill:none;stroke:var(--ai-edge);stroke-width:1.05;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.bw-ai-graph__flow path{fill:none;stroke:var(--ai-node);stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 15;animation:bwAiDataFlow 4.4s linear infinite;filter:drop-shadow(0 0 4px var(--ai-glow))}
.bw-ai-graph__flow .bw-ai-graph__flow--delay{animation-delay:-1.8s;opacity:.72}
.bw-ai-graph__flow .bw-ai-graph__flow--volt{stroke:var(--bw-volt,#B9DB1B);animation-duration:5.3s;animation-delay:-.9s;opacity:.64}
.bw-ai-graph__node{fill:var(--ai-node);stroke:var(--ai-node-stroke);stroke-width:1.1;transform-box:fill-box;transform-origin:center;animation:bwAiNodePulse 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * -.31s);filter:drop-shadow(0 0 4px var(--ai-glow))}
.bw-ai-graph__node--volt{fill:var(--bw-volt,#B9DB1B);filter:drop-shadow(0 0 5px rgba(185,219,27,.26))}
.bw-ai-graph__node--core{animation:bwAiCorePulse 2.5s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--ai-glow))}
@keyframes bwAiRingSpin{to{transform:rotate(360deg)}}
@keyframes bwAiOrbitSpin{to{transform:rotate(360deg)}}
@keyframes bwAiDataFlow{to{stroke-dashoffset:-92}}
@keyframes bwAiNodePulse{0%,100%{opacity:.48;transform:scale(.82)}50%{opacity:1;transform:scale(1.15)}}
@keyframes bwAiCorePulse{0%,100%{opacity:.78;transform:scale(.92)}50%{opacity:1;transform:scale(1.28)}}
@keyframes bwAiFloat{0%,100%{transform:translate3d(0,2px,0)}50%{transform:translate3d(0,-6px,0)}}
@media(max-width:620px){
  .bw-ai-graph{opacity:.95}
  .bw-ai-graph__ring--fine{display:none}
  .bw-ai-graph__edges{opacity:.82}
  .bw-ai-graph__flow path{stroke-width:2.5;stroke-dasharray:7 13}
  .bw-ai-graph svg{animation-duration:8.8s}
}
@media(prefers-reduced-motion:reduce){
  .bw-ai-graph svg,.bw-ai-graph__rings,.bw-ai-graph__orbit,.bw-ai-graph__flow path,.bw-ai-graph__node{animation:none!important}
  .bw-ai-graph__flow path{stroke-dasharray:none!important;opacity:.55!important}
  .bw-ai-graph__node{opacity:.82!important;transform:none!important}
}
