/* Reference-inspired light and motion. Section geometry stays in refinements.css. */
.sc-hero-atmosphere { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.sc-ambient-light { position: absolute; display: block; width: 720px; height: 620px; border-radius: 50%; background: radial-gradient(ellipse, #ee1c2523, #ee1c2509 42%, transparent 70%); animation: sc-light-drift 18s ease-in-out infinite alternate; animation-play-state: paused; }
.sc-ambient-light-one { left: 20%; top: -34%; }
.sc-ambient-light-two { right: -15%; bottom: -29%; width: 620px; height: 520px; opacity: .65; animation-duration: 24s; animation-direction: alternate-reverse; }
.sc-flow-lines { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .72; }
.sc-flow-line { stroke: url(#sc-flow-gradient); stroke-width: 1.4; stroke-dasharray: 8 18; animation: sc-flow 30s linear infinite; animation-play-state: paused; }
.sc-flow-line-secondary { stroke-width: 1; opacity: .5; stroke-dasharray: 4 22; animation-duration: 42s; animation-direction: reverse; }
.sc-flow-trace { stroke: url(#sc-flow-gradient); stroke-width: .65; opacity: .25; }
.sc-hero h1 strong { background-image: linear-gradient(110deg, #ee1c25 0%, #ee1c25 25%, #ee1c25 42%, #ee1c25 58%, #ee1c25 80%, #ee1c25 100%); background-size: 240% 100%; animation: sc-title-light 9s ease-in-out infinite; animation-play-state: paused; }
.sc-config h2 strong, .sc-cta h2 strong { background: linear-gradient(105deg, #ee1c25, #ee1c25 35%, #ee1c25 48%, #ee1c25 68%); background-size: 240% 100%; background-clip: text; -webkit-background-clip: text; color: transparent; animation: sc-title-light 11s ease-in-out infinite; animation-play-state: paused; }
.sc-hero .sc-eyebrow > span { position: relative; }
.sc-hero .sc-eyebrow > span::after { content: ''; position: absolute; left: 0; top: -2px; width: 6px; height: 6px; border-radius: 50%; background: #ee1c25; box-shadow: 0 0 10px #ee1c25; animation: sc-signal 3.8s ease-out infinite; animation-play-state: paused; }
.sc-motion-active .sc-ambient-light, .sc-motion-active .sc-flow-line, .sc-motion-active h1 strong, .sc-motion-active h2 strong, .sc-motion-active .sc-eyebrow > span::after { animation-play-state: running; }
.sc-motion-paused .sc-ambient-light, .sc-motion-paused .sc-flow-line, .sc-motion-paused h1 strong, .sc-motion-paused h2 strong, .sc-motion-paused .sc-eyebrow > span::after { animation-play-state: paused; }
.sc-button { background-image: linear-gradient(130deg, #ffffff13, transparent 65%); border-top-color: #ee1c255c; box-shadow: inset 0 1px #ffffff14, 0 8px 26px #ee1c251c; }
.sc-button-outline { background-image: linear-gradient(130deg, #ffffff08, transparent); border-top-color: #ffffff38; box-shadow: inset 0 1px #ffffff08; }
.sc-button:hover { box-shadow: inset 0 1px #ffffff24, 0 8px 36px #ee1c2548; }
.sc-button-outline:hover { box-shadow: inset 0 1px #ffffff18, 0 8px 28px #0003; }
.sc-services, .sc-config, .sc-project, .sc-results, .sc-cta { border-top-color: #ffffff30; }
.sc-service, .sc-project, .sc-config, .sc-results, .sc-cta { --sc-light-x: -400px; --sc-light-y: -400px; }
.sc-card-light { position: absolute; inset: 0; z-index: 3; pointer-events: none; overflow: hidden; border-radius: inherit; opacity: 0; background: radial-gradient(260px circle at var(--sc-light-x) var(--sc-light-y), #ee1c2517 0%, #ee1c250b 35%, transparent 72%); transition: opacity .4s; }
.sc-light-active > .sc-card-light { opacity: 1; }
.sc-project::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(115deg, transparent 20%, #ffffff13 48%, transparent 76%); transform: translateX(-140%) skewX(-12deg); transition: transform .85s cubic-bezier(.2,.65,.2,1); }
.sc-project:hover::before, .sc-project:focus-visible::before { transform: translateX(140%) skewX(-12deg); }
.sc-service:hover > .sc-icon { filter: drop-shadow(0 0 8px #ee1c254d); }
.sc-benefit-icon { transition: box-shadow .35s, border-color .35s, background .35s; }
.sc-benefit:hover .sc-benefit-icon { background: #ee1c2516; border-color: #ee1c25bb; box-shadow: 0 0 24px #ee1c2521; }
.sc-config:focus-within { border-color: #ee1c2561; }
.sc-results.is-updated { animation: sc-results-light .9s ease-out; }
.sc-result-grid [data-value] { font-variant-numeric: tabular-nums; }
@keyframes sc-light-drift { from { transform: translate3d(-30px, -15px, 0) scale(.94); } to { transform: translate3d(65px, 35px, 0) scale(1.08); } }
@keyframes sc-flow { to { stroke-dashoffset: -260; } }
@keyframes sc-title-light { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes sc-signal { 0%, 65%, 100% { opacity: .8; transform: scale(1); } 35% { opacity: .25; transform: scale(2); } }
@keyframes sc-results-light { from { border-color: #ee1c25; box-shadow: 0 0 35px #ee1c2536, 0 12px 40px #0005; } to { border-color: #ffffff24; box-shadow: 0 12px 40px #0005; } }
@media (max-width: 640px) {
  .sc-ambient-light { width: 380px; height: 420px; opacity: .6; }
  .sc-ambient-light-one { left: -35%; top: 0; }
  .sc-ambient-light-two { display: none; }
  .sc-flow-lines { top: 48%; height: 52%; opacity: .5; }
  .sc-card-light { display: none; }
  .sc-hero h1 strong { animation-duration: 13s; }
}
@media (prefers-reduced-motion: reduce) {
  .sc-ambient-light, .sc-flow-line, .sc-hero h1 strong, .sc-config h2 strong, .sc-cta h2 strong, .sc-hero .sc-eyebrow > span::after { animation: none!important; }
  .sc-card-light, .sc-project::before { display: none; }
  .sc-results.is-updated { animation: none; }
}
.editor-styles-wrapper .sc-hero-atmosphere { display: none; }
.editor-styles-wrapper .sc-hero h1 strong, .editor-styles-wrapper .sc-config h2 strong, .editor-styles-wrapper .sc-cta h2 strong { animation: none; }
