/* EPS shared tokens (design.txt PART A). Linked from Header New.
   Page-specific layout CSS stays on each page. Do not put page CSS here. */
:root{
  --eps-bg:#0a0a0a;--eps-surface:#111111;--eps-accent:#f15a24;
  --eps-accent-hover:#d94e1f;--eps-body:#c8c6c5;--eps-heading:#ffffff;
  --eps-radius-btn:2px;--eps-card:#111111;
  --font-display:'Space Grotesk',sans-serif;--font-label:'Montserrat',sans-serif;
  --font-body:'Open Sans',sans-serif;--font-serif:'Fraunces',Georgia,serif;
}
.eps-rf *{box-sizing:border-box}
.eps-rf a{text-decoration:none;color:inherit}
.eps-rf .border-technical{border:0!important}
.eps-rf .connector{font-family:var(--font-serif);font-style:italic;color:#ffb4a3}
.eps-rf h1,.eps-rf h2,.eps-rf h3{
  text-wrap:balance;overflow-wrap:normal;word-break:normal;
}
.eps-rf .btn-outline,.eps-rf a.btn-outline,.eps-rf button.btn-outline{
  border-color:rgba(255,255,255,.28)!important;box-shadow:none!important;
}
.eps-rf .eps-btn,.eps-rf button.eps-btn,.eps-rf a.eps-btn{
  border-radius:var(--eps-radius-btn)!important;box-shadow:none!important;
}
.eps-rf .btn-primary,.eps-rf a.btn-primary,.eps-rf button.btn-primary,
.eps-rf .btn-primary:hover,.eps-rf a.btn-primary:hover{
  box-shadow:none!important;
}
.eps-rf .btn-sweep{position:relative;overflow:hidden;isolation:isolate}
.eps-rf .btn-sweep::before{
  content:"";position:absolute;inset:0;background:currentColor;opacity:.12;
  transform:translateX(-105%) skewX(-12deg);
  transition:transform .45s cubic-bezier(.22,.61,.36,1);z-index:-1;
}
.eps-rf .btn-sweep:hover::before{transform:translateX(0) skewX(-12deg)}
/* Flat dark: no decorative grids / glow blobs / section divider lines */
.eps-rf .bg-tech-grid{background-image:none!important}
.eps-rf .hero-glow,.eps-rf .glow,.eps-rf .glow-a,.eps-rf .glow-b,.eps-rf .glow-orb,
.eps-rf .orb-a,.eps-rf .orb-b,.eps-rf .hero-grid{display:none!important}
.eps-rf .card-tech,.eps-rf .card-glass,.eps-rf .card-surface,.eps-rf .card-interactive,
.eps-rf .kpi,.eps-rf .metric,.eps-rf .info-card,.eps-rf .panel{
  border:0!important;box-shadow:none!important;background-color:var(--eps-card)!important;
  background-image:none!important;
}
.mogrt-word{
  display:inline-block;white-space:nowrap;
}
.mogrt-char{
  display:inline-block;opacity:0;transform:translate3d(0,55px,0);
  animation:mogrtRevealChar 900ms cubic-bezier(.22,.75,.25,1) forwards;
  animation-play-state:paused;
}
@keyframes mogrtRevealChar{
  0%{opacity:0;transform:translate3d(0,55px,0)}
  45%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0)}
}
.mogrt-heading.mogrt-play .mogrt-char{animation-play-state:running}
.reveal-up{
  opacity:0;transform:translate3d(0,48px,0);
  transition:opacity 1.1s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1);
}
.reveal-up.is-in{opacity:1;transform:translate3d(0,0,0)}
.reveal-fade{opacity:0;transition:opacity 1.1s cubic-bezier(.16,1,.3,1)}
.reveal-fade.is-in{opacity:1}
.reveal-scale{opacity:0;transform:translate3d(0,28px,0) scale(.94);transition:opacity 1.25s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1)}
.reveal-scale.is-in{opacity:1;transform:none}
.magnetic{display:inline-block;transition:transform .25s cubic-bezier(.22,.61,.36,1);will-change:transform}
.reveal-clip{
  clip-path:inset(0 0 100% 0);opacity:0;
  transition:clip-path 1.2s cubic-bezier(.16,1,.3,1),opacity .6s ease;
}
.reveal-clip.is-revealed{clip-path:inset(0 0 0% 0);opacity:1}
.reveal-clip img{transform:scale(1.15);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.reveal-clip.is-revealed img{transform:scale(1)}
.line-reveal-line{overflow:hidden;display:block}
.line-reveal-line>span{
  display:block;transform:translateY(110%);
  transition:transform .9s cubic-bezier(.16,1,.3,1);
}
.line-reveal-line.is-in>span{transform:translateY(0)}
