:root{background-color:#020617;color:#f8fafc;overflow:hidden}html,body{overscroll-behavior-y:none;touch-action:manipulation;height:100%}::selection{background:#4f46e54d;color:#fff}.clip-tech{clip-path:polygon(0 15px,15px 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,0 100%)}.clip-tech-sm{clip-path:polygon(0 8px,8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)}.scanlines{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(#12101000 50%,#0000001a 50%),linear-gradient(90deg,#ff000008,#00ff0003,#0000ff08);background-size:100% 2px,3px 100%;pointer-events:none;z-index:50}.bg-grid{background-size:40px 40px;background-image:linear-gradient(to right,rgba(79,70,229,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(79,102,241,.05) 1px,transparent 1px)}.danger-pulse{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;box-shadow:inset 0 0 80px #dc262666;animation:danger-pulse-anim 2s infinite}@keyframes danger-pulse-anim{0%,to{opacity:.2}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.animate-shake{animation:shake .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .5s ease-out forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideUp .4s ease-out forwards}@keyframes progressIndeterminate{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.animate-progress-indeterminate{animation:progressIndeterminate 1.5s infinite linear}.glitch-text{position:relative}.glitch-text:before,.glitch-text:after{content:attr(class);content:"Iris";position:absolute;top:0;left:0;width:100%;height:100%}.glitch-text:before{left:2px;text-shadow:-1px 0 red;clip:rect(44px,450px,56px,0);animation:glitch-anim-1 5s infinite linear alternate-reverse}.glitch-text:after{left:-2px;text-shadow:-1px 0 blue;clip:rect(44px,450px,56px,0);animation:glitch-anim-2 5s infinite linear alternate-reverse}@keyframes glitch-anim-1{0%{clip:rect(2px,9999px,5px,0)}20%{clip:rect(30px,9999px,60px,0)}40%{clip:rect(15px,9999px,25px,0)}60%{clip:rect(5px,9999px,85px,0)}80%{clip:rect(50px,9999px,55px,0)}to{clip:rect(10px,9999px,40px,0)}}@keyframes glitch-anim-2{0%{clip:rect(50px,9999px,65px,0)}20%{clip:rect(10px,9999px,20px,0)}40%{clip:rect(35px,9999px,45px,0)}60%{clip:rect(60px,9999px,75px,0)}80%{clip:rect(25px,9999px,35px,0)}to{clip:rect(5px,9999px,15px,0)}}
