.auth-bg-wrapper{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background-color:var(--background);perspective:1000px}.auth-bg-gradient{position:absolute;border-radius:50%;filter:blur(100px);opacity:.2;animation-duration:40s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out;transition:transform .8s cubic-bezier(.2,.8,.2,1);will-change:transform,opacity}:is(.dark) .auth-bg-gradient{opacity:.15}.auth-bg-gradient--1{width:90vw;height:90vw;top:-45vw;left:-20vw;background:radial-gradient(circle,var(--auth-grad-1) 0%,transparent 65%);animation-name:auth-float-1}.auth-bg-gradient--2{width:80vw;height:80vw;bottom:-40vw;right:-15vw;background:radial-gradient(circle,var(--auth-grad-2) 0%,transparent 65%);animation-name:auth-float-2;animation-duration:55s}@keyframes auth-float-1{0%{transform:translate(0) scale(1);opacity:.15}50%{transform:translate(6%,8%) scale(1.05);opacity:.25}to{transform:translate(-4%,6%) scale(.95);opacity:.15}}@keyframes auth-float-2{0%{transform:translate(0) scale(1);opacity:.15}50%{transform:translate(-8%,-6%) scale(1.1);opacity:.25}to{transform:translate(6%,-8%) scale(.9);opacity:.15}}.auth-bg-grid{position:absolute;inset:-50%;width:200%;height:200%;opacity:.02;background-image:linear-gradient(var(--auth-line) 1px,transparent 1px),linear-gradient(90deg,var(--auth-line) 1px,transparent 1px);background-size:60px 60px;animation:auth-grid-fade 30s infinite alternate ease-in-out;transform-origin:center;will-change:transform,opacity}:is(.dark) .auth-bg-grid{opacity:.035}@keyframes auth-grid-fade{0%{opacity:.01;transform:scale(1)}50%{opacity:.035;transform:scale(1.01)}to{opacity:.01;transform:scale(1)}}.auth-bg-engineering{position:absolute;inset:0;transition:transform 1s cubic-bezier(.2,.8,.2,1);opacity:.6;will-change:transform}:is(.dark) .auth-bg-engineering{opacity:.3}.auth-bg-svg{width:100%;height:100%;fill:none;stroke:var(--auth-line);stroke-width:.5}.auth-bg-shape{vector-effect:non-scaling-stroke}.auth-bg-shape--circle{stroke-dasharray:4 4}.auth-bg-shape--pulse{animation:auth-svg-pulse 20s infinite alternate ease-in-out;transform-origin:85% 15%;will-change:transform,stroke-dashoffset,opacity}.auth-bg-shape--line{opacity:.25}.auth-bg-shape--marker{fill:transparent;stroke:var(--auth-line);stroke-width:1;opacity:.6}.auth-bg-shape--wireframe{stroke:var(--auth-accent);stroke-width:1.5;opacity:.2}.auth-bg-shape--dash{stroke-dasharray:8 8;stroke-width:.5;animation:auth-dash-move 60s linear infinite;will-change:stroke-dashoffset}.auth-bg-text{font-family:SF Pro Display,Helvetica Neue,Helvetica,monospace;font-size:10px;fill:var(--auth-line);letter-spacing:.15em;opacity:.45;stroke:none}.auth-bg-text--pulse{animation:auth-text-pulse 4s infinite alternate ease-in-out}@keyframes auth-dash-move{0%{stroke-dashoffset:0}to{stroke-dashoffset:400}}@keyframes auth-svg-pulse{0%{transform:scale(.98) rotate(0);stroke-dashoffset:0;opacity:.3}to{transform:scale(1.02) rotate(5deg);stroke-dashoffset:30;opacity:.6}}@keyframes auth-text-pulse{0%{opacity:.3}to{opacity:.6}}:root{--auth-grad-1: hsl(220 45% 91%);--auth-grad-2: hsl(220 25% 95%);--auth-line: hsl(220 25% 36%);--auth-accent: hsl(220 50% 48%)}.dark{--auth-grad-1: hsl(220 42% 22%);--auth-grad-2: hsl(222 40% 14%);--auth-line: hsl(220 10% 82%);--auth-accent: hsl(220 60% 58%)}.auth-bg-overlay{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 30%,var(--background) 100%);opacity:.6;pointer-events:none}@media(prefers-reduced-motion:reduce){.auth-bg-gradient,.auth-bg-grid,.auth-bg-shape--pulse,.auth-bg-shape--dash,.auth-bg-text--pulse{animation:none!important}}.auth-page{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem;overflow:hidden;background-color:var(--background)}.auth-content{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center;gap:2rem;animation:auth-fadeIn .5s ease-out both}@keyframes auth-fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-logo-block{display:flex;flex-direction:column;align-items:center;gap:.5rem}.auth-logo{height:5.5rem;width:auto;object-fit:contain;transition:transform .3s ease}@media(min-width:640px){.auth-logo{height:6.5rem}}.auth-logo:hover{transform:scale(1.03)}.auth-tagline{font-family:Helvetica Neue Corporate Medium,Helvetica Neue Medium,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:#05193b;text-align:center;opacity:.8}:is(.dark) .auth-tagline{color:#ffffffa6}@media(min-width:640px){.auth-tagline{font-size:.7rem;letter-spacing:.22em}}.auth-card{width:100%;border-radius:1rem;border:1px solid hsl(var(--border) / .6);background-color:var(--card);padding:2rem 1.75rem;box-shadow:0 1px 2px #0000000a,0 4px 16px #0000000f,0 12px 40px #0000000a;transition:box-shadow .3s ease,border-color .3s ease}:is(.dark) .auth-card{border-color:hsl(var(--border) / .6);box-shadow:0 1px 2px #0006,0 8px 24px #0006,0 24px 60px #0000004d,inset 0 1px 1px #ffffff0d}@media(min-width:640px){.auth-card{padding:2.5rem 2.25rem;border-radius:1.25rem}}.auth-card__header{text-align:center;margin-bottom:1.75rem}.auth-card__title{font-size:1.375rem;font-weight:700;letter-spacing:-.02em;color:var(--foreground);line-height:1.3;margin-bottom:.375rem}.auth-card__subtitle{font-size:.8125rem;color:var(--muted-foreground);line-height:1.5}.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;height:2.75rem;border-radius:.625rem;border:1px solid var(--border);background-color:var(--background);color:var(--foreground);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.auth-google-btn:hover{background-color:var(--accent);border-color:var(--border);box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.auth-google-btn:active{transform:translateY(0);opacity:.85}.auth-google-btn:disabled{opacity:.6;cursor:not-allowed}.auth-google-btn svg{width:1.125rem;height:1.125rem;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:.875rem;margin:1.5rem 0}.auth-divider__line{flex:1;height:1px;background-color:var(--border)}.auth-divider__text{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);white-space:nowrap}.auth-form{display:flex;flex-direction:column;gap:1.125rem}.auth-field{display:flex;flex-direction:column;gap:.375rem}.auth-field__label{font-size:.8125rem;font-weight:500;color:var(--foreground)}.auth-submit-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;height:2.75rem;border-radius:.625rem;border:none;background-color:var(--primary);color:var(--primary-foreground);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;margin-top:.25rem}.auth-submit-btn:hover{opacity:.92;box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.auth-submit-btn:active{transform:translateY(0);opacity:.85}.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.auth-footer{text-align:center;font-size:.8125rem;color:var(--muted-foreground);margin-top:1.25rem;line-height:1.6}.auth-footer a,.auth-footer .auth-link{color:var(--primary);font-weight:600;text-decoration:none;transition:color .15s ease}.auth-footer a:hover,.auth-footer .auth-link:hover{text-decoration:underline;text-underline-offset:3px}.auth-error{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem .875rem;border-radius:.5rem;background-color:#ef434314;border:1px solid hsl(0 84% 60% / .2);color:#bc1010;font-size:.8125rem;line-height:1.5}:is(.dark) .auth-error{background-color:#ef43431f;border-color:#ef434340;color:#f37272}.auth-alert{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem .875rem;border-radius:.5rem;background-color:#fbb32314;border:1px solid hsl(40 96% 56% / .2);color:#a15912;font-size:.8125rem;line-height:1.5;margin-bottom:.5rem}:is(.dark) .auth-alert{background-color:#fbb3231a;border-color:#fbb32333;color:#fccb69}.auth-alert__title{font-weight:700;margin-bottom:.125rem}.auth-pw-strength{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.auth-pw-strength__bar-wrap{display:flex;align-items:center;gap:.625rem}.auth-pw-strength__bar{flex:1;height:3px;border-radius:999px;background-color:var(--muted);overflow:hidden}.auth-pw-strength__bar-fill{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:999px}.auth-pw-strength__label{font-size:.6875rem;font-weight:600;color:var(--muted-foreground);min-width:2.5rem;text-align:end}.auth-pw-rules{display:flex;flex-direction:column;gap:.25rem}.auth-pw-rule{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--muted-foreground);transition:color .2s ease}.auth-pw-rule--ok{color:#1ea465}:is(.dark) .auth-pw-rule--ok{color:#28d785}.auth-pw-rule svg{width:.875rem;height:.875rem;flex-shrink:0}.auth-forgot-link{display:block;text-align:end;font-size:.75rem;font-weight:500;color:var(--muted-foreground);text-decoration:none;transition:color .15s ease;margin-top:-.125rem}.auth-forgot-link:hover{color:var(--primary)}.auth-success{text-align:center;padding:1rem 0;font-size:.875rem;font-weight:500;color:var(--primary);line-height:1.6}.auth-otp-wrap{display:flex;justify-content:center;padding:.5rem 0}.auth-otp-wrap [data-input-otp]{gap:.5rem}.auth-resend-btn{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;height:2.75rem;border-radius:.625rem;border:1px solid var(--border);background-color:var(--background);color:var(--foreground);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.auth-resend-btn:hover{background-color:var(--accent);border-color:var(--border);box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.auth-resend-btn:active{transform:translateY(0);opacity:.85}.auth-resend-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:480px){.auth-page{padding:1rem .75rem}.auth-card{padding:1.5rem 1.25rem;border-radius:.875rem}.auth-logo{height:4.5rem}.auth-card__title{font-size:1.25rem}}.auth-recovery-email{margin:-.5rem 0 1.25rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:.625rem;background:var(--muted);color:var(--muted-foreground);font-size:.8125rem;font-weight:600;line-height:1.5;text-align:center;overflow-wrap:anywhere}.auth-footer button.auth-link{appearance:none;border:0;padding:0;background:transparent;color:var(--primary);font:inherit;font-weight:600;cursor:pointer}.auth-footer button.auth-link:hover{text-decoration:underline;text-underline-offset:3px}
