/* DCT Forge™ — bespoke page styles ported from the original React ForgePage.
   Static CSS; copy and links unchanged. Grad: #FB572B → #CF4A6F → #823790 → #5C2C9D */
.fg-rise{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.fg-rise.in{opacity:1;transform:none}
.fg-grad-word{background:linear-gradient(100deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:220% 100%;animation:fgShimmer 7s ease-in-out infinite}
@keyframes fgShimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes fgFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(0,-22px)}}
@keyframes fgOrb{0%,100%{transform:translate(0,0) scale(1);opacity:.5}50%{transform:translate(30px,-24px) scale(1.12);opacity:.72}}
@keyframes fgBlink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes fgLine{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
@keyframes fgDash{to{stroke-dashoffset:0}}
@keyframes fgSignal{0%{offset-distance:0%}100%{offset-distance:100%}}
@keyframes fgScan{0%{transform:translateY(-100%)}100%{transform:translateY(320%)}}
@keyframes fgSpin{to{transform:rotate(360deg)}}
@keyframes fgCodeRise{0%{transform:translateY(24px);opacity:0}12%,80%{opacity:.9}100%{transform:translateY(-140px);opacity:0}}
@keyframes fgSweep{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}
.fg-eyebrow-dot{animation:fgBlink 1.6s steps(1) infinite}
/* floating code glyphs behind hero console */
.fg-codeflow{position:absolute;inset:-30px;z-index:-1;pointer-events:none;overflow:hidden;border-radius:26px}
.fg-code-glyph{position:absolute;font-family:ui-monospace,monospace;font-size:13px;font-weight:600;white-space:nowrap;color:transparent;background:linear-gradient(100deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%);-webkit-background-clip:text;background-clip:text;opacity:0;animation:fgCodeRise linear infinite}
/* button shine sweep on hover */
.fg-shine{position:relative;overflow:hidden;border-radius:9999px;display:inline-block}
.fg-shine::after{content:"";position:absolute;top:0;bottom:0;width:38%;background:linear-gradient(100deg,transparent,rgba(255,255,255,0.45),transparent);transform:translateX(-120%);pointer-events:none}
.fg-shine:hover::after{animation:fgSweep .85s ease}
/* hero terminal */
.fg-hero-float{position:relative;animation:fgFloat 9s ease-in-out infinite}
.fg-term{position:relative;overflow:hidden;border-radius:22px;background:#0d0b12;border:1px solid rgba(255,255,255,0.09);box-shadow:0 40px 100px -50px rgba(92,44,157,0.7),0 2px 0 rgba(255,255,255,0.04) inset;padding:18px 22px 22px}
.fg-term-scan{position:absolute;left:0;right:0;height:120px;background:linear-gradient(180deg,transparent,rgba(130,55,144,0.16),transparent);animation:fgScan 5.5s linear infinite;pointer-events:none}
.fg-term-line{display:flex;gap:10px;align-items:baseline;font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:13.5px;line-height:1.9;animation:fgLine .4s ease both}
.fg-term-line .g{flex-shrink:0;width:14px;text-align:center;font-weight:700}
.fg-cursor{display:inline-block;width:8px;height:15px;background:#FB572B;margin-left:2px;transform:translateY(2px);animation:fgBlink 1s steps(1) infinite}
/* capability cards */
.fg-cap{position:relative;background:#fff;border:1px solid var(--color-hairline);border-radius:20px;padding:28px;overflow:hidden;height:100%;display:flex;flex-direction:column;will-change:transform;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,border-color .3s ease}
.fg-cap::before{content:"";position:absolute;inset:0;border-radius:20px;padding:1px;background:linear-gradient(100deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease;pointer-events:none}
.fg-cap:hover{transform:translateY(-6px);box-shadow:0 30px 60px -34px rgba(92,44,157,0.5)}
.fg-cap:hover::before{opacity:1}
.fg-cap-glow{position:absolute;top:-40px;right:-40px;width:150px;height:150px;background:var(--gradient-orb);opacity:0;filter:blur(6px);transition:opacity .35s ease;pointer-events:none}
.fg-cap:hover .fg-cap-glow{opacity:.8}
.fg-cap-num{font-family:ui-monospace,monospace;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--color-stone)}
/* pipeline */
.fg-stage{position:relative;background:#fff;border:1px solid var(--color-hairline);border-radius:18px;padding:22px 20px;height:100%;box-sizing:border-box;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease,border-color .35s ease}
.fg-stage:hover{transform:translateY(-5px);border-color:color-mix(in srgb,#5C2C9D 40%,#fff);box-shadow:0 24px 50px -30px rgba(92,44,157,0.45)}
.fg-stage-idx{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;font-family:ui-monospace,monospace;background:linear-gradient(100deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%)}
.fg-rise.in .fg-pipe-draw{animation:fgDash 2.4s ease forwards}
/* outcome tiles */
.fg-out{position:relative;overflow:hidden;background:var(--color-surface-soft,#f4f4f5);border:1px solid var(--color-hairline);border-radius:16px;padding:24px 22px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.fg-out:hover{transform:translateY(-4px);border-color:color-mix(in srgb,#5C2C9D 35%,#fff);box-shadow:0 22px 44px -28px rgba(92,44,157,0.4)}
.fg-out-bar{position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%);transform:scaleY(0);transform-origin:top;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.fg-rise.in .fg-out-bar,.fg-out.in .fg-out-bar{transform:scaleY(1)}
/* industry marquee */
.fg-marquee-wrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.fg-marquee{display:flex;gap:14px;width:max-content;animation:fgMarquee 26s linear infinite}
@keyframes fgMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.fg-marquee-wrap:hover .fg-marquee{animation-play-state:paused}
.fg-ind-pill{white-space:nowrap;font-size:15px;font-weight:600;padding:12px 22px;border-radius:9999px;border:1px solid var(--color-hairline);background:#fff;color:var(--color-charcoal);display:inline-flex;align-items:center;gap:10px}
.fg-ind-pill .dot{width:7px;height:7px;border-radius:9999px;background:linear-gradient(100deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%)}
/* challenge / related cards */
.fg-chal{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--color-hairline);border-radius:16px;padding:22px 24px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.fg-chal:hover{transform:translateX(4px);border-color:color-mix(in srgb,#5C2C9D 32%,#fff);box-shadow:0 18px 40px -30px rgba(92,44,157,0.4)}
.fg-chal-x{flex-shrink:0;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,#5C2C9D 9%,#fff)}
.fg-chal-x.grad{background:linear-gradient(100deg,#FB572B 0%,#CF4A6F 34%,#823790 66%,#5C2C9D 100%)}
@media (prefers-reduced-motion:reduce){
  .fg-rise{opacity:1!important;transform:none!important}
  .fg-grad-word,.fg-term-scan,.fg-cursor,.fg-eyebrow-dot,.fg-marquee,.fg-code-glyph,.fg-shine::after,.fg-hero-float{animation:none!important}
  .fg-pipe-draw{animation:none!important;stroke-dashoffset:0!important}
  .fg-pipe-signal{display:none}
  .fg-out-bar{transform:scaleY(1)!important;transition:none!important}
  .fg-cap,.fg-stage,.fg-out,.fg-chal{transform:none!important}
}
@media (max-width:1080px){.fg-hero-grid{grid-template-columns:1fr!important}.fg-hero-visual{order:-1}}
@media (max-width:1180px){.fg-pipe-grid{grid-template-columns:repeat(3,1fr)!important}}
@media (max-width:900px){.fg-cap-grid{grid-template-columns:1fr 1fr!important}}
@media (max-width:720px){.fg-cap-grid,.fg-pipe-grid,.fg-out-grid,.fg-chal-grid{grid-template-columns:1fr!important}}
