/* Signal language: square pixels, registration marks and crimson hardware edges. */
.signal-toolbar{height:43px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #292c30;gap:15px;position:relative;z-index:2}.signal-signature{display:flex;align-items:center;gap:4px;color:#9a9fa7;font:9px/1.3 var(--mono);letter-spacing:1.5px}.signal-signature i{display:block;width:4px;height:4px;background:#68359c}.signal-signature i:nth-child(2){height:10px;background:#944edb}.signal-signature i:nth-child(3){height:17px;background:#d4d6db}.signal-signature i:nth-child(4){height:8px}.signal-signature>span{margin-left:12px}.effects-toggle{display:flex;align-items:center;gap:10px;min-height:43px;padding:0 4px 0 15px;font:10px/1 var(--mono);letter-spacing:1px;border:0;background:transparent;color:#cfd1d5;cursor:pointer}.effects-toggle:before{content:'';width:6px;height:6px;background:var(--accent-bright);box-shadow:-3px 3px 0 #573777}.effects-toggle[aria-pressed=false]:before{background:#71757d;box-shadow:none}.effects-toggle:disabled{color:#8f959d;cursor:default}.effects-toggle:hover{color:#fff}
.portal-hero{background-image:radial-gradient(#747a821e .7px,transparent .7px);background-size:16px 16px}.portal-hero .hero-copy{background:radial-gradient(ellipse at 22% 55%,#070809 26%,#07080900 74%)}.hero-index{border-top-style:dashed}.identity-strip{background:repeating-linear-gradient(90deg,transparent 0,transparent 79px,#73798310 79px,#73798310 80px)}
.pixel-stage{overflow:hidden;position:relative;isolation:isolate;line-height:0;min-width:0}.pixel-stage>img{display:block;position:relative;width:100%;height:auto}.pixel-canvas{position:absolute;top:0;left:0;pointer-events:none;z-index:2;image-rendering:pixelated}.pixel-frame{position:absolute;inset:10px;z-index:3;pointer-events:none;border:1px solid #884dc324;background:linear-gradient(#c69cff,#c69cff) left top/22px 2px no-repeat,linear-gradient(#c69cff,#c69cff) left top/2px 22px no-repeat,linear-gradient(#bec2c9,#bec2c9) right bottom/22px 2px no-repeat,linear-gradient(#bec2c9,#bec2c9) right bottom/2px 22px no-repeat}.pixel-frame:before{content:'';position:absolute;top:15%;right:-4px;width:7px;height:7px;background:#c69cff;box-shadow:0 13px #553674,0 26px #45424a}.pixel-frame:after{content:'';position:absolute;left:5%;right:5%;top:0;height:1px;background:linear-gradient(90deg,transparent,#b477f13d,transparent);box-shadow:0 -6px 14px #9350d619;animation:signal-sweep 8s linear infinite}.pixel-replay{position:absolute;bottom:23px;right:23px;z-index:4;border:1px solid #5f506e;background:#0a090ae6;color:#cbbfd6;padding:0 11px;min-height:44px;font:9px/1.2 var(--mono);letter-spacing:1px;cursor:pointer}.pixel-replay:hover{color:#fff;border-color:#c69cff;background:#1a1223}.pixel-replay:disabled{display:none}.hero-art .pixel-stage{mask-image:linear-gradient(90deg,transparent,#000 7%,#000 98%,transparent);transform:translate(var(--art-x,0),var(--art-y,0));transition:transform 350ms ease-out}.hero-art .pixel-stage>img{mix-blend-mode:lighten}.hero-art .pixel-frame{inset:4% 4% 8% 8%;border-color:#945ecb26}.hero-art .pixel-replay{right:10%;bottom:11%}.hero-art .pixel-canvas{mix-blend-mode:lighten}.hero-art .pixel-stage>img{mask-image:linear-gradient(0deg,transparent,#000 5%,#000 96%,transparent)}
.forensics-art .pixel-stage{height:100%}.forensics-art .pixel-stage>img{height:100%;object-fit:cover;object-position:73% 53%;opacity:.8}.forensics-art .pixel-frame{inset:7px}.forensics-art .pixel-replay{bottom:auto;top:8px;right:8px;min-height:32px;font-size:8px}.forensics-art::after{z-index:3}.forensics-art figcaption{z-index:4;pointer-events:none}.lab-art .pixel-stage>img{height:220px;object-fit:cover;object-position:100% 52%}.lab-art .pixel-replay{bottom:15px;right:15px}
.service-card{position:relative;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}.service-card:before{content:'';position:absolute;top:0;left:0;width:35px;height:3px;background:#995bd8;box-shadow:40px 0 #624481,49px 0 #413251}.service-card:after{content:'';position:absolute;right:10px;bottom:10px;width:6px;height:6px;border:1px solid #8160a3}.service-card:focus-visible{outline-offset:-5px}.service-card:is(:hover,:focus-visible):after{background:#c69cff;box-shadow:-9px 0 #7a46ae,-18px 0 #4c3365}.portal-hero h1 em{background:linear-gradient(180deg,#c58bff 0%,#ad6af0 58%,#8544c7 100%);background-clip:text;-webkit-background-clip:text;color:transparent}.button{overflow:hidden}.button:after{content:'';position:absolute;right:-10px;top:0;width:9px;height:100%;background:repeating-linear-gradient(0deg,transparent 0 5px,#6a31a4 5px 8px);transform:translateX(0);transition:transform 180ms steps(3)}.button:is(:hover,:focus-visible):after{transform:translateX(-12px)}.article-number:before{content:'[';margin-right:3px;color:#794da6}.article-number:after{content:']';margin-left:3px;color:#794da6}.lab-art-top{background:repeating-linear-gradient(90deg,#72469f0c 0 1px,transparent 1px 8px)}
@keyframes signal-sweep{from{transform:translateY(0)}to{transform:translateY(480px)}}
.pixel-stage[data-inview=false] .pixel-frame:after{animation-play-state:paused}html[data-fx=off] .pixel-frame:after{animation:none;display:none}html[data-fx=off] .pixel-canvas{display:none}html[data-fx=off] .hero-art .pixel-stage{transform:none;transition:none}html[data-fx=off] .button:after{transition:none}html[data-fx=off] *{scroll-behavior:auto!important}html[data-fx=off] .choice-card,html[data-fx=off] .service-card,html[data-fx=off] .button .icon,html[data-fx=off] .service-cta .icon{transform:none!important;transition:none!important}
@media(max-width:700px){.signal-toolbar{height:40px}.signal-signature{font-size:8px;letter-spacing:.8px}.signal-signature>span{margin-left:7px}.effects-toggle{font-size:9px;min-height:40px}.hero-art .pixel-stage>img{max-height:360px;object-fit:contain}.hero-art .pixel-stage{mask-image:none}.hero-art .pixel-frame{inset:2% 4%}.hero-art .pixel-replay{right:7%;bottom:6%}.lab-art .pixel-stage>img{height:190px}.pixel-replay{min-height:40px}.portal-hero{background-size:20px 20px}}
@media(prefers-reduced-motion:reduce){.pixel-canvas,.pixel-frame:after{display:none!important}.pixel-stage{transform:none!important;transition:none!important}.button:after{transition:none!important}}

html[data-page-hidden=true] .pixel-frame:after{animation-play-state:paused}.pixel-replay[hidden]{display:none!important}
