.login-root{--panel:44%;--navy-a:#00007a;--navy-b:#000052;--ink:#040922;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-fold:cubic-bezier(.76, 0, .24, 1);--base:40ms;--pbase:0s;--lbase:0s;isolation:isolate;background:var(--background);min-height:100dvh;color:var(--text-primary);grid-template-columns:minmax(0,1fr);display:grid;position:relative}.login-root[data-intro=full]{--base:.12s;--pbase:60ms;--lbase:.12s}@media (min-width:1024px){.login-root{grid-template-columns:var(--panel) minmax(0, 1fr)}.login-root[data-intro=full]{--base:1.05s;--pbase:1.25s;--lbase:1.15s}}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes login-fade{0%{opacity:0}to{opacity:1}}.login-enter{animation:login-rise .7s var(--ease-out) both;animation-delay:calc(var(--base) + var(--i,0) * 50ms)}.login-panel-enter{animation:login-rise .8s var(--ease-out) both;animation-delay:calc(var(--pbase) + var(--i,0) * 70ms)}.login-curtain{visibility:hidden;pointer-events:none;display:none}@media (min-width:1024px) and (prefers-reduced-motion:no-preference){.login-curtain{z-index:50;background:linear-gradient(160deg, var(--navy-a) 0%, var(--navy-b) 55%, var(--ink) 100%);color:#fff;animation:login-curtain 1.45s var(--ease-fold) both;place-items:center;display:grid;position:fixed;inset:0}}@keyframes login-curtain{0%{visibility:visible;clip-path:inset(0);opacity:1}55%{clip-path:inset(0)}92%{clip-path:inset(0 calc(100% - var(--panel)) 0 0);opacity:1}to{visibility:hidden;clip-path:inset(0 calc(100% - var(--panel)) 0 0);opacity:0}}.login-curtain-mark{flex-direction:column;align-items:center;gap:26px;animation:.45s cubic-bezier(.4,0,1,1) .8s both login-mark-out;display:flex}@keyframes login-mark-out{to{opacity:0;filter:blur(6px);transform:scale(.97)}}.login-curtain .login-tile{animation:login-tile-in .75s var(--ease-out) 50ms both}@keyframes login-tile-in{0%{opacity:0;clip-path:inset(50% round 16px);transform:scale(.86)}to{opacity:1;clip-path:inset(0 round 16px);transform:none}}.login-curtain .login-wordmark-name{animation:login-wipe .6s var(--ease-out) .22s both}@keyframes login-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.login-curtain .login-wordmark-sub{animation:login-track .8s var(--ease-out) .28s both}@keyframes login-track{0%{opacity:0;letter-spacing:.42em}to{opacity:1;letter-spacing:.02em}}.login-curtain .login-dot{animation:login-dot .35s var(--ease-out) .55s both}@keyframes login-dot{0%{transform:scale(0)}to{transform:none}}.login-curtain-rule{background:linear-gradient(90deg, transparent, var(--brand-primary), transparent);transform-origin:50%;width:132px;height:1px;animation:login-rule .55s var(--ease-out) .38s both;display:block}@keyframes login-rule{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:none}}.login-lockup{color:#fff;align-items:center;gap:12px;display:inline-flex}.login-tile{width:40px;height:40px;color:var(--navy-a);letter-spacing:-.02em;background:#fff;border-radius:10px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.login-wordmark{flex-direction:column;line-height:1.15;display:flex}.login-wordmark-name{align-items:center;gap:4px;font-size:16px;font-weight:700;display:inline-flex}.login-dot{background:var(--brand-primary);border-radius:999px;width:6px;height:6px}.login-wordmark-sub{color:#ffffffad;letter-spacing:.02em;font-size:13px;font-weight:500}.login-lockup-lg{gap:18px}.login-lockup-lg .login-tile{border-radius:16px;width:64px;height:64px;font-size:18px}.login-lockup-lg .login-wordmark-name{letter-spacing:-.02em;gap:6px;font-size:28px}.login-lockup-lg .login-dot{width:8px;height:8px}.login-lockup-lg .login-wordmark-sub{font-size:15px}.login-panel{color:#fff;background:radial-gradient(110% 70% at 100% 50%, #2c35c980, transparent 62%), radial-gradient(70% 50% at 0% 100%, #ff12521a, transparent 70%), linear-gradient(160deg, var(--navy-a) 0%, var(--navy-b) 55%, var(--ink) 100%);position:relative;overflow:hidden}.login-grid{animation:1.2s ease-out both login-fade;animation-delay:var(--lbase);background-image:linear-gradient(#ffffff0e 1px,#0000 1px),linear-gradient(90deg,#ffffff0e 1px,#0000 1px);background-position:-1px -1px;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 65% at 75%,#000 15%,#0000 72%);mask-image:radial-gradient(75% 65% at 75%,#000 15%,#0000 72%)}.login-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible;-webkit-mask-image:linear-gradient(90deg,#0000 8%,#00000059 38%,#000 72%);mask-image:linear-gradient(90deg,#0000 8%,#00000059 38%,#000 72%)}.login-strand{fill:none;stroke:#ffffff24;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;animation:1.6s cubic-bezier(.65,0,.35,1) both login-draw;animation-delay:calc(var(--lbase) + var(--i,0) * 90ms)}.login-strand-accent{stroke:#2ae3f880;--i:2}.login-strand-pink{stroke:#ff125273;--i:3}@keyframes login-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.login-pulse{fill:none;stroke:#7eeaf7;stroke-width:1.6px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:.07 1;stroke-dashoffset:.07px;opacity:.85;animation:9s linear infinite login-travel;animation-delay:calc(var(--lbase) + 1.6s)}.login-pulse-pink{stroke:#ff6b93;animation-duration:12s;animation-delay:calc(var(--lbase) + 4.5s)}@keyframes login-travel{0%{stroke-dashoffset:.07px}to{stroke-dashoffset:-1px}}.login-node{fill:#fff;animation:.6s ease-out both login-fade;animation-delay:calc(var(--lbase) + 1.2s)}.login-node-ring{fill:none;stroke:#2ae3f873;stroke-width:1px;vector-effect:non-scaling-stroke;animation:.8s ease-out both login-fade;animation-delay:calc(var(--lbase) + 1.3s)}.login-node-glow{animation:1.2s ease-out both login-fade;animation-delay:calc(var(--lbase) + 1.1s)}.login-panel-inner{flex-direction:column;gap:20px;padding:20px 16px 24px;display:flex;position:relative}.login-panel-copy{flex-direction:column;gap:10px;display:flex}.login-panel-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#7eeaf7;align-items:center;gap:10px;font-size:11.5px;font-weight:700;display:inline-flex}.login-panel-eyebrow:before{content:"";opacity:.7;background:currentColor;width:20px;height:1px}.login-panel-headline{letter-spacing:-.02em;text-wrap:balance;max-width:20ch;font-size:20px;font-weight:700;line-height:1.2}.login-panel-body,.login-panel-meta{display:none}@media (min-width:640px){.login-panel-inner{padding:28px 32px 32px}.login-panel-headline{font-size:24px}}@media (min-width:1024px){.login-panel-inner{justify-content:space-between;min-height:100dvh;padding:44px 52px 40px}.login-panel-copy{gap:16px;max-width:460px}.login-panel-headline{letter-spacing:-.03em;font-size:clamp(30px,2.7vw,42px);line-height:1.1}.login-panel-body{color:#ffffffbd;max-width:40ch;font-size:15px;line-height:1.65;display:block}.login-panel-meta{color:#ffffff9e;align-items:center;gap:10px;font-size:12.5px;font-weight:500;display:inline-flex}.login-panel-meta-dot{background:var(--brand-accent);border-radius:999px;width:6px;height:6px;box-shadow:0 0 0 4px #2ae3f824}}@media (max-width:1023px){.login-lines{opacity:.6}.login-pulse{display:none}}.login-main{flex-direction:column;padding:16px 16px 24px;display:flex;position:relative}.login-topbar{justify-content:flex-end;display:flex}.login-column{width:100%;max-width:400px;margin:8px auto 0;padding-block:12px 8px}@media (min-width:640px){.login-main{padding:24px 32px 28px}.login-column{margin-top:32px}}@media (min-width:1024px){.login-main{min-height:100dvh;padding:28px 40px}.login-column{margin:auto;padding-block:48px}}.login-heading{letter-spacing:-.03em;color:var(--text-primary);font-size:30px;font-weight:700;line-height:1.12}@media (min-width:1024px){.login-heading{font-size:34px}}.login-lead{color:var(--text-secondary);margin-top:10px;font-size:15px;line-height:1.55}.login-form{gap:18px;margin-top:30px;display:grid}.login-notice{border-radius:var(--radius-control,10px);color:var(--text-primary);align-items:flex-start;gap:10px;padding:11px 13px;font-size:13.5px;line-height:1.45;display:flex}.login-notice svg{margin-top:1px}.login-notice-error{background:var(--error-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--error) 26%, transparent)}.login-notice-error svg{color:var(--error)}.login-notice-ok{background:var(--success-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--success) 24%, transparent)}.login-notice-ok svg{color:var(--success)}.login-label{color:var(--text-primary);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.login-input-wrap{position:relative}.login-input-icon{width:18px;height:18px;color:var(--text-muted);pointer-events:none;transition:color .2s;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.login-input-wrap:focus-within .login-input-icon{color:var(--brand-secondary)}.login-input{border:1px solid var(--border-strong);border-radius:var(--radius-control,10px);background:var(--surface);width:100%;height:48px;color:var(--text-primary);outline:none;padding:0 14px 0 44px;font-size:15px;transition:border-color .2s,box-shadow .2s,background-color .2s}.login-input::placeholder{color:var(--text-muted);opacity:.75}.login-input:hover{border-color:var(--text-muted)}.login-input:focus,.login-input:focus-visible{border-color:var(--brand-secondary);box-shadow:var(--focus-ring)}:is(.login-input[aria-invalid=true],.login-input:user-invalid),.login-input[aria-invalid=true]:focus{border-color:var(--error)}.login-input-password{padding-right:52px}.login-input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary);box-shadow:0 0 0 1000px var(--surface) inset;caret-color:var(--text-primary)}.login-input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--surface) inset, var(--focus-ring)}.login-reveal{width:38px;height:38px;color:var(--text-muted);border-radius:8px;place-items:center;transition:color .15s,background-color .15s;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-reveal:hover{color:var(--text-primary);background:var(--surface-tertiary)}.login-reveal-icon{width:18px;height:18px;transition:opacity .18s ease, transform .18s var(--ease-out);grid-area:1/1}.login-reveal-icon[data-shown=false]{opacity:0;transform:scale(.75)rotate(-8deg)}.login-caps{min-height:18px;color:var(--warning);margin-top:6px;font-size:12px;font-weight:600;transition:opacity .2s}.login-caps[data-visible=false]{opacity:0}.login-submit{background:var(--brand-secondary-solid);color:#fff;letter-spacing:.01em;border-radius:999px;justify-content:center;align-items:center;width:100%;height:50px;font-size:15px;font-weight:600;transition:background-color .2s,box-shadow .25s,transform .12s;display:flex;position:relative;overflow:hidden}.login-submit:before{content:"";border-radius:inherit;opacity:.7;pointer-events:none;background:linear-gradient(#ffffff24,#0000 55%);transition:opacity .2s;position:absolute;inset:0}.login-submit:hover{box-shadow:0 10px 26px -12px color-mix(in srgb, var(--brand-secondary-solid) 85%, transparent)}.login-submit:hover:before{opacity:1}.login-submit:active{transform:scale(.985)}.login-submit:focus-visible{box-shadow:var(--focus-ring)}.login-submit-label{align-items:center;gap:8px;display:inline-flex;position:relative}.login-submit-arrow{width:17px;height:17px;transition:transform .25s var(--ease-out)}.login-submit:hover .login-submit-arrow{transform:translate(3px)}.login-submit-progress{background:var(--brand-accent);opacity:0;width:40%;height:2px;position:absolute;bottom:0;left:0;transform:translate(-100%)}.login-submit[data-pending]{cursor:progress}.login-submit[data-pending] .login-submit-label{opacity:.88}.login-submit[data-pending] .login-submit-progress{opacity:1;animation:1.4s ease-in-out infinite hub-progress}.login-note{color:var(--text-muted);gap:8px;margin-top:26px;font-size:12.5px;line-height:1.55;display:flex}.login-footer{color:var(--text-muted);justify-content:center;align-items:center;gap:6px;margin-top:28px;font-size:12px;display:inline-flex}@media (prefers-reduced-motion:reduce){.login-root *,.login-root :before,.login-root :after{transition-duration:.01ms!important;animation:none!important}.login-pulse{display:none}}@media (forced-colors:active){.login-grid,.login-lines{display:none}.login-submit{border:1px solid buttontext}}
