.elementor-117 .elementor-element.elementor-element-c94e8da{--display:flex;--min-height:100vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;overflow:visible;}.elementor-117 .elementor-element.elementor-element-4915cb9{--display:flex;--min-height:30vh;--justify-content:space-evenly;overflow:visible;}.elementor-widget-heading .elementor-heading-title{color:var( --e-global-color-primary );}.elementor-117 .elementor-element.elementor-element-c2d8e5c{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + -20px) 0px;text-align:center;}.elementor-117 .elementor-element.elementor-element-c2d8e5c .elementor-heading-title{font-family:"Fira Code", Barlow;font-size:3.55rem;font-weight:400;text-transform:uppercase;line-height:1.05;letter-spacing:0.15em;word-spacing:0em;color:#E0F2F1;}.elementor-widget-text-editor{color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-117 .elementor-element.elementor-element-652c774{text-align:center;font-family:"Fira Code", Barlow;font-size:0.937rem;font-weight:400;line-height:1.6;letter-spacing:0em;word-spacing:0em;}.elementor-117 .elementor-element.elementor-element-652c774 a{color:var( --e-global-color-11693c8 );}@media(max-width:1024px){.elementor-117 .elementor-element.elementor-element-c2d8e5c .elementor-heading-title{font-size:3rem;line-height:1.08em;letter-spacing:-0.012em;}}@media(min-width:769px){.elementor-117 .elementor-element.elementor-element-c94e8da{--content-width:666px;}.elementor-117 .elementor-element.elementor-element-4915cb9{--width:666px;}}@media(min-width:1800px){.elementor-117 .elementor-element.elementor-element-c94e8da{--content-width:600px;}.elementor-117 .elementor-element.elementor-element-4915cb9{--width:666px;}}@media(max-width:768px){.elementor-117 .elementor-element.elementor-element-c94e8da{--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-117 .elementor-element.elementor-element-c2d8e5c .elementor-heading-title{font-size:2.5rem;line-height:1.1em;letter-spacing:0em;word-spacing:0em;}.elementor-117 .elementor-element.elementor-element-652c774{font-size:13px;line-height:1.75em;letter-spacing:0.02em;}.elementor-117 .elementor-element.elementor-element-652c774 p{margin-block-end:10px;}}/* Start custom CSS for heading, class: .elementor-element-c2d8e5c *//* 01a · Heading "CAREERS": phosphor Fira Code with the glow it has always shown. Rises in 0.7s on first paint (no JavaScript wait);
   the original 4s glitch (dim, skew, red/cyan split) starts after the rise. */
.elementor-117 .elementor-element.elementor-element-c2d8e5c{animation:rbsRise .7s var(--rbs-ease) backwards}
.elementor-117 .elementor-element.elementor-element-c2d8e5c .elementor-heading-title{font-family:var(--rbs-mono)!important;color:var(--mjm-phosphor)!important;text-transform:uppercase;letter-spacing:4px;text-wrap:balance;text-shadow:0 0 4px rgba(224,242,241,.8),0 0 10px rgba(224,242,241,.5);animation:mjmGlitch 4s .7s infinite}
@keyframes mjmGlitch{0%,20%,24%,55%,100%{opacity:1;text-shadow:0 0 4px rgba(224,242,241,.8),0 0 10px rgba(224,242,241,.5);transform:skewX(0)}21%,23%{opacity:.8;text-shadow:none}22%{transform:skewX(-3deg);text-shadow:2px 0 0 rgba(255,0,0,.5),-2px 0 0 rgba(0,255,255,.5)}}/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-652c774 *//* 01b · Riddle: phosphor Fira Code with its glow and the original 6s flicker. Rises 0.2s after the heading on first paint;
   capped at about 60 characters per line and balanced; 14px on phones. No cursor: a block after static text reads as an input prompt. */
.elementor-117 .elementor-element.elementor-element-652c774{animation:rbsRise .7s var(--rbs-ease) .2s backwards}
.elementor-117 .elementor-element.elementor-element-652c774 p{font-family:var(--rbs-mono)!important;color:var(--mjm-phosphor)!important;text-shadow:0 0 2px rgba(224,242,241,.8),0 0 6px rgba(224,242,241,.5);letter-spacing:1px;line-height:1.8em;max-width:68ch;margin-inline:auto;text-wrap:balance;animation:mjmFlicker 6s .9s infinite alternate}
@media (max-width:768px){.elementor-117 .elementor-element.elementor-element-652c774 p{font-size:14px}}
@keyframes mjmFlicker{0%,19%,21%,23%,25%,54%,56%,100%{opacity:1;text-shadow:0 0 2px rgba(224,242,241,.8),0 0 6px rgba(224,242,241,.5)}20%,24%,55%{opacity:.8;text-shadow:none}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-c94e8da *//* ~~~~~ RBS 2026 REFRESH · PAGE TOKENS + MOTION (CRT terminal look; page-wide; lives on the Hero container) ~~~~~ */
.elementor-117{--rbs-bg-0:#0A0A0A;--rbs-ease:cubic-bezier(.2,.8,.2,1);--rbs-mono:'Fira Code',ui-monospace,SFMono-Regular,Menlo,monospace;--mjm-phosphor:#E0F2F1;--mjm-header:85px}
@media (max-width:768px){.elementor-117{--mjm-header:90px}}
@keyframes rbsRise{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.elementor-117 *,.elementor-117 *::before,.elementor-117 *::after{animation:none!important}}

/* 01 · Mystical Job Machine: full-screen CRT "terminal void". Content is centered in the space under the fixed header (100svh on phones).
   Static: a 180px tiled noise (90px on phones) jittered with transform only, instead of one noise raster four times the screen.
   Scanlines + vignette: one layer over the static, painted once and never animated. Soft 4px lines (beam profile, not hard stripes) stay crisp
   on scaled laptop screens, where scrolling hard-edged lines shimmered; the vignette darkens the edges like a tube.
   Explicit width/height: Elementor's own .e-con::before/::after rules would otherwise cap these layers at 100%.
   The empty listings widget (7edc4bf) is hidden on the front end; its text is printed in <head> by Code Snippet #24. */
.elementor-117 .elementor-element.elementor-element-c94e8da{position:relative;overflow:hidden;min-height:100vh;min-height:100svh;--padding-top:var(--mjm-header)}
body:not(.elementor-editor-active) .elementor-117 .elementor-element.elementor-element-c94e8da .elementor-element-7edc4bf{display:none}
.elementor-117 .elementor-element.elementor-element-c94e8da::before{content:"";position:absolute;top:-10%;left:-10%;width:120%;height:120%;pointer-events:none;z-index:0;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.25' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;will-change:transform;animation:mjmStatic .4s steps(2) infinite}
.elementor-117 .elementor-element.elementor-element-c94e8da::after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;background:radial-gradient(130% 110% at 50% 50%,rgba(0,0,0,0) 55%,rgba(0,0,0,.5) 100%),repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 2px,rgba(0,0,0,0) 4px)}
.elementor-117 .elementor-element.elementor-element-c94e8da>*{position:relative;z-index:1}
@media (max-width:768px){.elementor-117 .elementor-element.elementor-element-c94e8da::before{background-size:90px 90px}}
@keyframes mjmStatic{0%{transform:translate(0,0)}10%{transform:translate(-1%,-1%)}20%{transform:translate(-2%,1%)}30%{transform:translate(1%,-2%)}40%{transform:translate(-1%,2%)}50%{transform:translate(-2%,1%)}60%{transform:translate(2%,0)}70%{transform:translate(0,1%)}80%{transform:translate(1%,3%)}90%{transform:translate(-1%,1%)}100%{transform:translate(0,0)}}/* End custom CSS */