/* INZYRA FX v1 – sign-in animation + buffering loader (decoration only, never touches sign-in itself) */
.inz-ov{position:fixed;inset:0;z-index:2147483000;background:#042C53;overflow:hidden;font-family:"Sora",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;transition:opacity .45s}
.inz-ov.built{background:transparent}
.inz-ov.inz-out{opacity:0;pointer-events:none}
.inz-door{position:absolute;top:0;bottom:0;width:50.5%;background:#042C53;transition:transform 1.1s cubic-bezier(.75,0,.25,1)}
.inz-door.l{left:0}.inz-door.r{right:0}
.inz-ov.open .inz-door.l{transform:translateX(-101%)}
.inz-ov.open .inz-door.r{transform:translateX(101%)}
.inz-ov.open{pointer-events:none}
.inz-seam{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#5DCAA5;box-shadow:0 0 18px 4px #5DCAA5;opacity:0;transition:opacity .3s}
.inz-seam.on{opacity:1}.inz-ov.open .inz-seam{opacity:0}
.inz-in{position:absolute;inset:0;transition:opacity .35s}
.inz-cv{position:absolute;inset:0;width:100%;height:100%}
.inz-fp{position:absolute;left:50%;top:40%;width:120px;height:140px;margin:-70px 0 0 -60px;transition:opacity .3s}
.inz-fp path{fill:none;stroke:#378ADD;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke .3s}
.inz-ov.draw .inz-fp path{animation:inzDraw .9s ease-out forwards}
.inz-ov.drawn .inz-fp path{stroke-dashoffset:0}
.inz-ov.ok .inz-fp path{stroke:#5DCAA5}
.inz-ov.bad .inz-fp path{stroke:#E24B4A}
.inz-ov.bad .inz-fp{animation:inzShake .4s 2}
@keyframes inzDraw{to{stroke-dashoffset:0}}
@keyframes inzShake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.inz-scan{position:absolute;left:50%;top:40%;width:150px;height:3px;margin-left:-75px;background:#5DCAA5;box-shadow:0 0 14px 3px #5DCAA5;opacity:0}
.inz-scan.go{animation:inzScan 1s ease-in-out infinite}
@keyframes inzScan{0%,100%{opacity:1;transform:translateY(-75px)}50%{opacity:1;transform:translateY(70px)}}
.inz-status{position:absolute;left:0;right:0;top:calc(40% + 90px);margin:0;text-align:center;color:#85B7EB;font-size:13px;letter-spacing:3px}
.inz-ov.ok .inz-status{color:#5DCAA5}.inz-ov.bad .inz-status{color:#F09595}
.inz-logo{position:absolute;left:50%;top:40%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:34px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:0}
.inz-logo img{height:118px;width:auto;display:block}
.inz-logo.show{animation:inzPop .7s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes inzPop{0%{opacity:0;transform:scale(.6) rotate(-8deg)}100%{opacity:1;transform:none}}
.inz-logo::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.85) 50%,transparent 65%);transform:translateX(-120%)}
.inz-logo.show::after{animation:inzShine 1s ease-out .4s}
@keyframes inzShine{to{transform:translateX(120%)}}
.inz-ring{position:absolute;left:50%;top:40%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:3px solid #5DCAA5;opacity:0;pointer-events:none}
.inz-ring.go{animation:inzRing 1.1s ease-out}.inz-ring.r2.go{animation-delay:.25s}
@keyframes inzRing{0%{opacity:.9;transform:scale(.9)}100%{opacity:0;transform:scale(3.2)}}
.inz-txt{position:absolute;left:0;right:0;margin:0;text-align:center;opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s}
.inz-txt.show{opacity:1;transform:none}
.inz-name{top:calc(40% + 100px);color:#fff;font-size:32px;letter-spacing:10px;font-weight:800;font-family:ui-monospace,Consolas,monospace;transition:opacity .3s}
.inz-tag{top:calc(40% + 150px);color:#85B7EB;font-size:12px;letter-spacing:4px}
.inz-wel{top:calc(40% + 180px);color:#E6F1FB;font-size:16px}
.inz-skip{position:absolute;right:18px;bottom:18px;z-index:2;padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#E6F1FB;font:inherit;font-size:13px;cursor:pointer}
.inz-skip:hover{background:rgba(255,255,255,.12)}
.inz-ov.open .inz-skip{display:none}
/* buffering loader */
.inz-load{position:fixed;inset:0;z-index:2147482000;background:rgba(4,44,83,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;opacity:0;pointer-events:none;transition:opacity .25s;font-family:"Sora",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.inz-load.on{opacity:1;pointer-events:auto}
.inz-lw{position:relative;width:140px;height:140px}
.inz-lw svg{position:absolute;inset:0;animation:inzSpin 1.4s linear infinite}
.inz-lw span{position:absolute;left:28px;top:28px;width:84px;height:84px;border-radius:20px;background:#fff;display:flex;align-items:center;justify-content:center;animation:inzPulse 1.4s ease-in-out infinite}
.inz-lw img{height:64px;width:auto}
@keyframes inzSpin{to{transform:rotate(360deg)}}
@keyframes inzPulse{50%{transform:scale(.92)}}
.inz-lname{color:#E6F1FB;font-size:16px;letter-spacing:7px;font-weight:800}
.inz-dots{color:#85B7EB;font-size:13px}
.inz-dots i{font-style:normal;animation:inzDot 1.2s infinite;opacity:.2}
.inz-dots i:nth-child(2){animation-delay:.2s}.inz-dots i:nth-child(3){animation-delay:.4s}
@keyframes inzDot{40%{opacity:1}}
@media (max-width:520px){.inz-name{font-size:24px;letter-spacing:6px}}

/* v3 welcome "Time Portal" */
.inz-ov.tp .inz-cv{position:absolute;inset:0;width:100%;height:100%}
.tp-status{position:absolute;left:0;right:0;top:calc(32% + 90px);margin:0;text-align:center;color:#5DCAA5;font-size:16px;font-weight:800;letter-spacing:5px;text-shadow:0 0 12px rgba(93,202,165,.8);transition:opacity .3s}
.tp-flash{position:absolute;inset:0;background:#E6F1FB;opacity:0;pointer-events:none}
.tp-flash.go{animation:tpFlash .6s ease-out}
@keyframes tpFlash{0%{opacity:.85}100%{opacity:0}}
.tp-logo{position:absolute;left:50%;top:32%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:30px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 30px rgba(93,202,165,.55);opacity:0;transform:scale(.2);transition:opacity .25s,transform .7s cubic-bezier(.2,1.8,.4,1)}
.tp-logo img{height:92px;width:auto}
.tp-logo.show{opacity:1;transform:scale(1)}
.tp-name{position:absolute;left:0;right:0;top:calc(32% + 84px);margin:0;text-align:center;font-size:46px;font-weight:900;letter-spacing:14px;line-height:1.1}
.tp-name span{display:inline-block;color:#fff;opacity:0;transform:translateY(-60px) rotate(-20deg);text-shadow:0 0 6px rgba(133,183,235,.9),0 0 22px rgba(93,202,165,.75),0 0 44px rgba(55,138,221,.55)}
.tp-name span.in{animation:tpDrop .6s cubic-bezier(.3,1.7,.5,1) forwards}
@keyframes tpDrop{to{opacity:1;transform:none}}
.tp-name.shine span{background:linear-gradient(100deg,#fff 0%,#fff 40%,#9FE1CB 50%,#fff 60%,#fff 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tpShine 1.6s ease-in-out forwards}
.tp-name.shine span.in{opacity:1;transform:none}
@keyframes tpShine{from{background-position:100% 0}to{background-position:0 0}}
.tp-txt{position:absolute;left:0;right:0;margin:0;text-align:center;opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s}
.tp-txt.show{opacity:1;transform:none}
.tp-tag{top:calc(32% + 146px);color:#9FE1CB;font-size:14px;font-weight:800;letter-spacing:5px;text-shadow:0 0 12px rgba(93,202,165,.7)}
.tp-wel{top:calc(32% + 176px);color:#fff;font-size:20px;font-weight:700;text-shadow:0 0 14px rgba(133,183,235,.6)}
.tp-wel b{color:#5DCAA5;font-weight:900;text-shadow:0 0 14px rgba(93,202,165,.9)}
.tp-clk{top:calc(32% + 214px)}
.tp-clk span{display:inline-block;padding:5px 14px;border-radius:20px;background:rgba(93,202,165,.16);border:1px solid rgba(93,202,165,.6);color:#9FE1CB;font-size:13px;font-weight:700;letter-spacing:1px}
@media (max-width:520px){.tp-name{font-size:32px;letter-spacing:8px}.tp-tag{font-size:11px;letter-spacing:3px}.tp-wel{font-size:17px}}
