.auth-shell{grid-template-columns:minmax(22rem,1.05fr) minmax(28rem,.95fr);min-height:100vh;display:grid}.auth-context{background:var(--bg-deep);isolation:isolate;flex-direction:column;min-height:100vh;padding:1.6rem clamp(2rem,5vw,5rem) 2rem;display:flex;position:relative;overflow:hidden}.auth-context:before{content:"";z-index:-1;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.7;background-size:5rem 5rem;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70% at 30% 60%,#000 0%,#0000 75%);mask-image:radial-gradient(80% 70% at 30% 60%,#000 0%,#0000 75%)}.auth-context:after{content:"";z-index:-1;background:var(--violet-glow);filter:blur(90px);border-radius:50%;width:38rem;height:38rem;animation:16s ease-in-out infinite alternate auth-drift;position:absolute;top:-10rem;right:-12rem}@keyframes auth-drift{to{transform:translate(-4rem,3rem)scale(1.1)}}.auth-context__trace{z-index:-1;width:100%;height:46%;position:absolute;bottom:12%;left:0;right:0}.auth-context__trace path{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;opacity:.5;stroke-dasharray:2600;animation:auth-draw 2.4s var(--ease-out) .3s both}.auth-context__trace circle{fill:var(--accent);animation:auth-pop .5s var(--ease-expo) 2.5s both;transform-box:fill-box;transform-origin:50%}@keyframes auth-draw{0%{stroke-dashoffset:2600px}to{stroke-dashoffset:0}}@keyframes auth-pop{0%{opacity:0;transform:scale(0)}}.auth-context__statement{max-width:40rem;margin:auto 0}.auth-context h1{color:var(--text-primary);letter-spacing:-.025em;text-transform:uppercase;margin:0;font-size:clamp(1.4rem,2.55vw,2.9rem);font-weight:800;font-stretch:125%;line-height:.98}.auth-context h1 em{color:var(--accent);font-style:normal}.auth-context h1 .mask-line{white-space:nowrap}.auth-context h1 .mask-line>span{animation:auth-rise 1.1s var(--ease-expo) both;animation-delay:calc(.15s + var(--line,0) * .11s)}@keyframes auth-rise{0%{transform:translateY(108%)}}.auth-context p{max-width:30rem;color:var(--text-secondary);animation:auth-fade 1s var(--ease-expo) .6s both;margin:1.6rem 0 0;font-size:1.05rem;line-height:1.6}@keyframes auth-fade{0%{opacity:0;transform:translateY(1rem)}}.auth-context__foot{color:var(--text-muted);justify-content:space-between;gap:1rem;display:flex}.auth-panel{background:var(--bg-main);place-items:center;padding:3rem 2rem;display:grid}.auth-panel__inner{width:min(26rem,100%);animation:auth-fade .9s var(--ease-expo) .1s both}.back-link{min-height:2.75rem;color:var(--text-secondary);transition:color .2s var(--ease-out);align-items:center;gap:.5rem;margin-bottom:clamp(2rem,8vh,4.5rem);font-size:.95rem;text-decoration:none;display:inline-flex}.back-link:before{content:"";width:.55rem;height:.55rem;transition:transform .3s var(--ease-expo);border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg)}.back-link:hover{color:var(--text-primary)}.back-link:hover:before{transform:translate(-.25rem)rotate(45deg)}.auth-panel__head h2{color:var(--text-primary);letter-spacing:-.02em;margin:0;font-size:clamp(1.9rem,3vw,2.125rem);font-weight:700;line-height:1.1}.auth-panel__head>span{max-width:25rem;color:var(--text-secondary);margin-top:.6rem;font-size:1rem;line-height:1.55;display:block}.notice{border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 3px 0 0 var(--accent);margin-top:1.5rem;padding:.95rem 1.1rem}.notice--error{box-shadow:inset 3px 0 0 var(--danger)}.notice strong,.notice span{display:block}.notice strong{color:var(--text-primary);font-size:.98rem}.notice--error strong{color:var(--danger)}.notice span{color:var(--text-secondary);margin-top:.25rem;font-size:.92rem;line-height:1.55}.auth-form{gap:1.1rem;margin-top:1.8rem;display:grid}.auth-form label{gap:.45rem;display:grid}.auth-form label>span{color:var(--text-secondary);font-size:.9rem;font-weight:500}.auth-form input:not([type=hidden]){border-radius:var(--radius-md);background:var(--bg-surface);width:100%;min-height:3.25rem;color:var(--text-primary);transition:border-color .2s var(--ease-out), background .2s var(--ease-out), box-shadow .2s var(--ease-out);border:1.5px solid #0000;outline:none;padding:.8rem 1rem;font-size:1.0625rem}.auth-form input::placeholder{color:var(--text-muted)}.auth-form input:hover{background:var(--bg-elevated)}.auth-form input:focus{border-color:var(--accent);background:var(--bg-elevated);box-shadow:0 0 0 4px var(--accent-tint)}.auth-form input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary);box-shadow:0 0 0 100px var(--bg-elevated) inset;caret-color:var(--text-primary)}.auth-form .button{width:100%;min-height:3.4rem;margin-top:.5rem}.auth-switch{color:var(--text-secondary);text-align:center;margin:1.6rem 0 0;font-size:.98rem}.auth-switch a{color:var(--accent);margin-left:.25rem;font-weight:600;text-decoration:none}.auth-switch a:hover{text-underline-offset:.25em;text-decoration:underline}.auth-panel__note{color:var(--text-muted);text-align:center;margin:1.1rem 0 0;font-size:.86rem;line-height:1.55}.auth-success{border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:var(--shadow-card);margin-top:1.8rem;padding:1.5rem}.auth-success__mark{border-radius:var(--radius-md);background:var(--bg-elevated);width:3rem;height:3rem;color:var(--accent);place-items:center;margin-bottom:1.1rem;display:grid}.auth-success__mark svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.4rem;height:1.4rem}.auth-success strong{color:var(--text-primary);letter-spacing:-.01em;font-size:1.375rem;font-weight:700;display:block}.auth-success p{color:var(--text-secondary);margin:.5rem 0 0;font-size:.98rem;line-height:1.6}@media (width<=860px){.auth-shell{min-height:100dvh;display:block}.auth-context{display:none}.auth-panel{min-height:100dvh;padding:max(1.25rem, env(safe-area-inset-top)) 1.25rem max(2rem, env(safe-area-inset-bottom));place-items:start center}.auth-panel__inner{width:min(100%,28rem);margin:0 auto}.back-link{margin-bottom:clamp(1.5rem,8vh,4rem)}}@media (prefers-reduced-motion:reduce){.auth-context:after{animation:none}}
